{"title":"PHRpdGxlPkhvbmRhIG5ldWZzIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCBEb25uYWNvbmEsIHByw6hzIGRlIFF1w6liZWMsIFBvbnQtUm91Z2UgZXQgU2FpbnQtQXVndXN0aW4gfCBIb25kYSBEb25uYWNvbmE8L3RpdGxlPg==","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQknaWZyYW1lX2FwaScgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycgfHwga2V5ID09ICdpZnJhbWVfYXBpJyl7CgkJCQkJCQkJCXNhKCdkYXRhLW90LWlnbm9yZScsIHRydWUpOwoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsKCQkJCQkJCQl9IGVsc2UgaWYoY3VycmVudENvbnNlbnQgPT0gbnVsbCB8fCBjdXJyZW50Q29uc2VudC5pbmRleE9mKHVybENhdEFycltrZXldKSA9PSAtMSl7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvcGxhaW4nKTsKCQkJCQkJCQkJc2EoJ2NsYXNzJywgJ29wdGFub24tY2F0ZWdvcnktJyArIHVybENhdEFycltrZXldKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYShuLCB2KTsKCQkJfQoJCQlyZXR1cm4gczsKCQl9CgkJZnVuY3Rpb24gZ2V0Q29uc2VudCgpewoJCQlsZXQgbmFtZSA9ICdkMmNfY29va2llX2NvbnNlbnQnICsgJz0nOwoJCQlsZXQgY2EgPSAoJycrZG9jdW1lbnQuY29va2llKS5zcGxpdCgnOycpOwoJCQlmb3IobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBjID0gY2FbaV07CgkJCQljID0gYy50cmltKCk7CgkJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsKCQkJCQl0cnl7CgkJCQkJCWMgPSBkZWNvZGVVUklDb21wb25lbnQoIGMgKTsKCQkJCQl9IGNhdGNoKCBlICkKCQkJCQl7CgkJCQkJCWNvbnNvbGUubG9nKCBlICk7CgkJCQkJCXJldHVybiBudWxsOwoJCQkJCX0KCQkJCQlyZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9KShkb2N1bWVudCk7CgoJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewoJLy8gTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBET00KCQlsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKCQkJbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24obXV0YXRpb24pIHsKCQkJCWlmIChtdXRhdGlvbi5hZGRlZE5vZGVzICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgewoJCQkJCS8vIENoZWNrIGlmIG91ciBzY3JpcHQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIERPTQoJCQkJCWZvciAobGV0IGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJCQlsZXQgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbaV07CgkJCQkJCWlmIChub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgbm9kZS5zcmMgJiYgbm9kZS5zcmMuaW5jbHVkZXMoJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nKSAmJiB0eXBlb2YgT25lVHJ1c3QgIT09ICd1bmRlZmluZWQnKSB7CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQkJdHJ5e0RpZ2l0YWxJbnRlcnZpZXcuTGF1bmNoZXIuZW5hYmxlTGF1bmNoUG9pbnRzKCk7fWNhdGNoKGUpe30KCQkJCQkJCX0sIDEwMDApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9KTsKCQkvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcGFyYW1ldGVycwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7CgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5oZWFkLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCX0pOwoKICAvKiBEZWZlbnNpdmUgZmFsbGJhY2sgZm9yIEQyQ0ZiQ29uc2VudCBpbiBjYXNlIGNvb2tpZXMuY29uc2VudC5qcyBoYXMgbm90CiAgICAgbG9hZGVkIHlldC4gU2VlIEZhY2Vib29rUGl4ZWxTY3JpcHQ6OmdldENvbnNlbnRIZWxwZXJKcygpIGZvciBkZXRhaWxzLiAqLwogIHdpbmRvdy5EMkNGYkNvbnNlbnQgPSB3aW5kb3cuRDJDRmJDb25zZW50IHx8IHtfc3RhdGU6bnVsbCxfcXVldWU6W10sX2ZsdXNoOmZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5fcXVldWU7dGhpcy5fcXVldWU9W107cS5mb3JFYWNoKGZ1bmN0aW9uKGNiKXt0cnl7Y2IoKTt9Y2F0Y2goZSl7fX0pO30sZ3JhbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0nZ3JhbnQnO2lmKHR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7ZmJxKCdjb25zZW50JywnZ3JhbnQnKTt0aGlzLl9mbHVzaCgpO319LHJldm9rZTpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSdyZXZva2UnO2lmKHR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7ZmJxKCdjb25zZW50JywncmV2b2tlJyk7fX0sb25HcmFudGVkOmZ1bmN0aW9uKGNiKXtpZih0eXBlb2YgY2IhPT0nZnVuY3Rpb24nKXtyZXR1cm47fWlmKHRoaXMuX3N0YXRlPT09J2dyYW50JyYmdHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXt0cnl7Y2IoKTt9Y2F0Y2goZSl7fX1lbHNle3RoaXMuX3F1ZXVlLnB1c2goY2IpO319LHN5bmNUb0ZicTpmdW5jdGlvbigpe2lmKHRoaXMuX3N0YXRlJiZ0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsdGhpcy5fc3RhdGUpO2lmKHRoaXMuX3N0YXRlPT09J2dyYW50Jyl7dGhpcy5fZmx1c2goKTt9fX19O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih3aW5kb3cuRDJDRmJDb25zZW50Ll9zdGF0ZT09PW51bGwmJnR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudD09PSd1bmRlZmluZWQnKXt3aW5kb3cuRDJDRmJDb25zZW50LmdyYW50KCk7fX0sMTUwMCk7CiAgIWZ1bmN0aW9uKGYsYixlLHYsbix0LHMpCiAge2lmKGYuZmJxKXJldHVybjtuPWYuZmJxPWZ1bmN0aW9uKCl7bi5jYWxsTWV0aG9kPwogIG4uY2FsbE1ldGhvZC5hcHBseShuLGFyZ3VtZW50cyk6bi5xdWV1ZS5wdXNoKGFyZ3VtZW50cyl9OwogIGlmKCFmLl9mYnEpZi5fZmJxPW47bi5wdXNoPW47bi5sb2FkZWQ9ITA7bi52ZXJzaW9uPScyLjAnOwogIG4ucXVldWU9W107dD1iLmNyZWF0ZUVsZW1lbnQoZSk7dC5hc3luYz0hMDsKICB0LnNyYz12O3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTsKICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscyl9KHdpbmRvdywgZG9jdW1lbnQsJ3NjcmlwdCcsCiAgJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMnKTsKICBmYnEoJ2luaXQnLCAnMzM2ODAyMDcwMjUyNTI0Jyk7CiAgd2luZG93LkQyQ0ZiQ29uc2VudC5zeW5jVG9GYnEoKTsKICB3aW5kb3cuRDJDRmJDb25zZW50Lm9uR3JhbnRlZChmdW5jdGlvbiAoKSB7IGZicSgndHJhY2snLCAnUGFnZVZpZXcnKTsgfSk7CgovL2RhdGEtc2NvZGVyZWY9IlFQUS0yMTM1NTU1NTI2NjIyNSIKKGZ1bmN0aW9uKCl7dmFyIGxhc3RXaWR0aD0wO3ZhciBmaXJzdFJ1bj0xO3ZhciB0aW1lb3V0PWZhbHNlO3RyeXtmdW5jdGlvbiBoaWRlbWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LmFkZCgnaGlkZW1lJyk7fQpmdW5jdGlvbiBzaG93bWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZW1lJyk7fQp2YXIgcmVzcG9uc2l2ZVNpdGU9ZnVuY3Rpb24oZXZlbnQpe3ZhciBzdz13aW5kb3cuc2NyZWVuLndpZHRoP3dpbmRvdy5zY3JlZW4ud2lkdGg6d2luZG93Lm91dGVyV2lkdGg7dmFyIG93PXdpbmRvdy5vdXRlcldpZHRoLGl3PXdpbmRvdy5pbm5lcldpZHRoO3ZhciBidz1vdzw9MzYwJiZpdz5vdz9pdzpvdzt2YXIgd2lkdGg9Ync+c3c\/Ync6c3c7aWYod2lkdGg8PTM2MCl7d2lkdGg9OTYwO30KdmFyIHZlcnNpb249KHdpZHRoPDk2MCk\/J21vYmlsZSc6J2Rlc2t0b3AnO3ZhciBlbHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYm9keSA+IConKTt2YXIgaWZyYW1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2JpbGVTaXRlJyk7aWYobGFzdFdpZHRoPT13aWR0aCl7cmV0dXJuIGZhbHNlO30KZm9yKGkgaW4gZWxzKXtpZighZWxzLmhhc093blByb3BlcnR5KGkpKXtjb250aW51ZTt9CnN3aXRjaCh2ZXJzaW9uKXtjYXNlJ21vYmlsZSc6aWYoZWxzW2ldPT09aWZyYW1lKXtzaG93bWUoZWxzW2ldKTt9ZWxzZSBpZihpZnJhbWUpe2hpZGVtZShlbHNbaV0pO30KaWYoaWZyYW1lKXtpZihpZnJhbWUuc3JjPT0nYWJvdXQ6YmxhbmsnKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzcmMnLGlmcmFtZS5kYXRhc2V0WydpbWdzcmMnXSk7fQppZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWyd0b3A6MCcsJ2Rpc3BsYXk6YmxvY2snLCdsZWZ0OjAnLCd3aWR0aDpjYWxjKDEwMHZ3IC0gKDEwMHZ3IC0gMTAwJSkpJywnaGVpZ2h0OjEwMCUnLCdib3R0b206MCcsJ3JpZ2h0OjAnLCdwb3NpdGlvbjphYnNvbHV0ZScsXS5qb2luKCc7JykpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMScpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJyx0cnVlKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLWNvb2tpZWNvbnNlbnQnLCdpZ25vcmUnKTt9CmJyZWFrO2Nhc2UnZGVza3RvcCc6aWYoZWxzW2ldPT09aWZyYW1lKWhpZGVtZShlbHNbaV0pO2Vsc2Ugc2hvd21lKGVsc1tpXSk7aWYoaWZyYW1lKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWydkaXNwbGF5OiBub25lJywnJ10uam9pbignOycpKTt9CmJyZWFrO319CmlmKHZlcnNpb249PSdkZXNrdG9wJyl7aWYobGFzdFdpZHRoPT13aWR0aClyZXR1cm47c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHR5cGVvZiBqUXVlcnkhPT0ndW5kZWZpbmVkJylqUXVlcnkod2luZG93KS50cmlnZ2VyKCdyZXNpemUnKTt9LDUwMCk7fQpsYXN0V2lkdGg9d2lkdGg7fQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aW1lb3V0KTt0aW1lb3V0PXNldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMjAwKX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2NzcycpO3MuaW5uZXJIVE1MPScuaGlkZW1lIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9ICNtb2JpbGVTaXRlIHsgZGlzcGxheTogbm9uZTsgfSc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTt2YXIgdGd0PSdodHRwczovL3d3dy5ob25kYWRvbm5hY29uYS5jb20vZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xJy5yZXBsYWNlKC8lMkYvaWcsJy8nKTt0Z3QrPSgodGd0LmluZGV4T2YoJz8nKT09PS0xKT8nPyc6YCZgKSsnbmZyPTEmd3N3aWR0aD0nK3dpbmRvdy5zY3JlZW4ud2lkdGg7bGV0IHVybFBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHRndCk7bGV0IGNvdW50PTA7aWYodXJsUGFyYW1zIT09J3VuZGVmaW5lZCcmJnVybFBhcmFtcy5oYXMoJ25mcicpKXtjb3VudD11cmxQYXJhbXMuZ2V0QWxsKCduZnInKS5sZW5ndGg7fQppZihjb3VudDwzKXtpLnNldEF0dHJpYnV0ZSgnZGF0YS1pbWdzcmMnLHRndCk7aS5zZXRBdHRyaWJ1dGUoJ3NyYycsJ2Fib3V0OmJsYW5rJyk7aS5zZXRBdHRyaWJ1dGUoJ2lkJywnbW9iaWxlU2l0ZScpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7fQpyZXNwb25zaXZlU2l0ZSgpO30pO3NldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMTAwMCk7fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpO319KSgpOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLy9kYXRhLXNjb2RlcmVmPSJRUFEtMjEzNTU1NTUyNjYyMjUiCihmdW5jdGlvbigpe3ZhciBsYXN0V2lkdGg9MDt2YXIgZmlyc3RSdW49MTt2YXIgdGltZW91dD1mYWxzZTt0cnl7ZnVuY3Rpb24gaGlkZW1lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5hZGQoJ2hpZGVtZScpO30KZnVuY3Rpb24gc2hvd21lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGVtZScpO30KdmFyIHJlc3BvbnNpdmVTaXRlPWZ1bmN0aW9uKGV2ZW50KXt2YXIgc3c9d2luZG93LnNjcmVlbi53aWR0aD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5vdXRlcldpZHRoO3ZhciBvdz13aW5kb3cub3V0ZXJXaWR0aCxpdz13aW5kb3cuaW5uZXJXaWR0aDt2YXIgYnc9b3c8PTM2MCYmaXc+b3c\/aXc6b3c7dmFyIHdpZHRoPWJ3PnN3P2J3OnN3O2lmKHdpZHRoPD0zNjApe3dpZHRoPTk2MDt9CnZhciB2ZXJzaW9uPSh3aWR0aDw5NjApPydtb2JpbGUnOidkZXNrdG9wJzt2YXIgZWxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2JvZHkgPiAqJyk7dmFyIGlmcmFtZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9iaWxlU2l0ZScpO2lmKGxhc3RXaWR0aD09d2lkdGgpe3JldHVybiBmYWxzZTt9CmZvcihpIGluIGVscyl7aWYoIWVscy5oYXNPd25Qcm9wZXJ0eShpKSl7Y29udGludWU7fQpzd2l0Y2godmVyc2lvbil7Y2FzZSdtb2JpbGUnOmlmKGVsc1tpXT09PWlmcmFtZSl7c2hvd21lKGVsc1tpXSk7fWVsc2UgaWYoaWZyYW1lKXtoaWRlbWUoZWxzW2ldKTt9CmlmKGlmcmFtZSl7aWYoaWZyYW1lLnNyYz09J2Fib3V0OmJsYW5rJyl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3JjJyxpZnJhbWUuZGF0YXNldFsnaW1nc3JjJ10pO30KaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsndG9wOjAnLCdkaXNwbGF5OmJsb2NrJywnbGVmdDowJywnd2lkdGg6Y2FsYygxMDB2dyAtICgxMDB2dyAtIDEwMCUpKScsJ2hlaWdodDoxMDAlJywnYm90dG9tOjAnLCdyaWdodDowJywncG9zaXRpb246YWJzb2x1dGUnLF0uam9pbignOycpKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDEnKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLW90LWlnbm9yZScsdHJ1ZSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1jb29raWVjb25zZW50JywnaWdub3JlJyk7fQpicmVhaztjYXNlJ2Rlc2t0b3AnOmlmKGVsc1tpXT09PWlmcmFtZSloaWRlbWUoZWxzW2ldKTtlbHNlIHNob3dtZShlbHNbaV0pO2lmKGlmcmFtZSl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsnZGlzcGxheTogbm9uZScsJyddLmpvaW4oJzsnKSk7fQpicmVhazt9fQppZih2ZXJzaW9uPT0nZGVza3RvcCcpe2lmKGxhc3RXaWR0aD09d2lkdGgpcmV0dXJuO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT09J3VuZGVmaW5lZCcpalF1ZXJ5KHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fSw1MDApO30KbGFzdFdpZHRoPXdpZHRoO30Kd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGltZW91dCk7dGltZW91dD1zZXRUaW1lb3V0KHJlc3BvbnNpdmVTaXRlLDIwMCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3Muc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9jc3MnKTtzLmlubmVySFRNTD0nLmhpZGVtZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSAjbW9iaWxlU2l0ZSB7IGRpc3BsYXk6IG5vbmU7IH0nO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7dmFyIHRndD0naHR0cHM6Ly93d3cuaG9uZGFkb25uYWNvbmEuY29tL2VtYmVkZXIvcHJvY2Vzcy9mcj9uZnI9MScucmVwbGFjZSgvJTJGL2lnLCcvJyk7dGd0Kz0oKHRndC5pbmRleE9mKCc\/Jyk9PT0tMSk\/Jz8nOmAmYCkrJ25mcj0xJndzd2lkdGg9Jyt3aW5kb3cuc2NyZWVuLndpZHRoO2xldCB1cmxQYXJhbXM9bmV3IFVSTFNlYXJjaFBhcmFtcyh0Z3QpO2xldCBjb3VudD0wO2lmKHVybFBhcmFtcyE9PSd1bmRlZmluZWQnJiZ1cmxQYXJhbXMuaGFzKCduZnInKSl7Y291bnQ9dXJsUGFyYW1zLmdldEFsbCgnbmZyJykubGVuZ3RoO30KaWYoY291bnQ8Myl7aS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaW1nc3JjJyx0Z3QpO2kuc2V0QXR0cmlidXRlKCdzcmMnLCdhYm91dDpibGFuaycpO2kuc2V0QXR0cmlidXRlKCdpZCcsJ21vYmlsZVNpdGUnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO30KcmVzcG9uc2l2ZVNpdGUoKTt9KTtzZXRUaW1lb3V0KHJlc3BvbnNpdmVTaXRlLDEwMDApO31jYXRjaChlKXtjb25zb2xlLmxvZyhlKTt9fSkoKTsKCiAgLyogRGVmZW5zaXZlIGZhbGxiYWNrIGZvciBEMkNGYkNvbnNlbnQgaW4gY2FzZSBjb29raWVzLmNvbnNlbnQuanMgaGFzIG5vdAogICAgIGxvYWRlZCB5ZXQuIFNlZSBGYWNlYm9va1BpeGVsU2NyaXB0OjpnZXRDb25zZW50SGVscGVySnMoKSBmb3IgZGV0YWlscy4gKi8KICB3aW5kb3cuRDJDRmJDb25zZW50ID0gd2luZG93LkQyQ0ZiQ29uc2VudCB8fCB7X3N0YXRlOm51bGwsX3F1ZXVlOltdLF9mbHVzaDpmdW5jdGlvbigpe3ZhciBxPXRoaXMuX3F1ZXVlO3RoaXMuX3F1ZXVlPVtdO3EuZm9yRWFjaChmdW5jdGlvbihjYil7dHJ5e2NiKCk7fWNhdGNoKGUpe319KTt9LGdyYW50OmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9J2dyYW50JztpZih0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsJ2dyYW50Jyk7dGhpcy5fZmx1c2goKTt9fSxyZXZva2U6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0ncmV2b2tlJztpZih0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsJ3Jldm9rZScpO319LG9uR3JhbnRlZDpmdW5jdGlvbihjYil7aWYodHlwZW9mIGNiIT09J2Z1bmN0aW9uJyl7cmV0dXJuO31pZih0aGlzLl9zdGF0ZT09PSdncmFudCcmJnR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7dHJ5e2NiKCk7fWNhdGNoKGUpe319ZWxzZXt0aGlzLl9xdWV1ZS5wdXNoKGNiKTt9fSxzeW5jVG9GYnE6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdGF0ZSYmdHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLHRoaXMuX3N0YXRlKTtpZih0aGlzLl9zdGF0ZT09PSdncmFudCcpe3RoaXMuX2ZsdXNoKCk7fX19fTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYod2luZG93LkQyQ0ZiQ29uc2VudC5fc3RhdGU9PT1udWxsJiZ0eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQ9PT0ndW5kZWZpbmVkJyl7d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpO319LDE1MDApOwogICFmdW5jdGlvbihmLGIsZSx2LG4sdCxzKQogIHtpZihmLmZicSlyZXR1cm47bj1mLmZicT1mdW5jdGlvbigpe24uY2FsbE1ldGhvZD8KICBuLmNhbGxNZXRob2QuYXBwbHkobixhcmd1bWVudHMpOm4ucXVldWUucHVzaChhcmd1bWVudHMpfTsKICBpZighZi5fZmJxKWYuX2ZicT1uO24ucHVzaD1uO24ubG9hZGVkPSEwO24udmVyc2lvbj0nMi4wJzsKICBuLnF1ZXVlPVtdO3Q9Yi5jcmVhdGVFbGVtZW50KGUpO3QuYXN5bmM9ITA7CiAgdC5zcmM9djtzPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSlbMF07CiAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csIGRvY3VtZW50LCdzY3JpcHQnLAogICdodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0L2VuX1VTL2ZiZXZlbnRzLmpzJyk7CiAgZmJxKCdpbml0JywgJzMzNjgwMjA3MDI1MjUyNCcpOwogIHdpbmRvdy5EMkNGYkNvbnNlbnQuc3luY1RvRmJxKCk7CiAgd2luZG93LkQyQ0ZiQ29uc2VudC5vbkdyYW50ZWQoZnVuY3Rpb24gKCkgeyBmYnEoJ3RyYWNrJywgJ1BhZ2VWaWV3Jyk7IH0pOwoKCSgoZCkgPT4gewoJCWNvbnN0IGNlID0gZC5jcmVhdGVFbGVtZW50OwoJCWxldCB1cmxDYXRBcnIgPSB7CgkJCSdjbGFyaXZveS5jb20nIDogJ0MwMDAyJywKCQkJJ2RlYWxlci1sZWFkcy5jYScgOiAnQzAwMDMnLAoJCQkncm9hZHN0ZXIuY29tL3JvYWRzdGVyJyA6ICdDMDAwMicsLy9EV1AtMTIyODEKCQkJJ2Z6bG5rLmNvbS9zaWduYWxzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIyODkKCQkJJ2xpdmVjaGF0aW5jLmNvbS90cmFja2luZy5qcycgOiAnQzAwMDMnLC8vRFdQLTEyMzAzCgkJCSd0aGVsaXZlY2hhdHNvZnR3YXJlLmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMjk3CgkJCSdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzMDAKCQkJJ3Nkay5hdXRvdmVyaWZ5LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAxCgkJCSdhbmFseXRpY3MuanMnIDogJ0MwMDAyJywvL0RXUC0xMjMwOQoJCQknaHMtc2NyaXB0cy5jb20nIDogJ0MwMDA0JywvL0RXUC0xMjMyMAoJCQknbWFya2V0aW5nYXV0b21hdGlvbi5zZXJ2aWNlcycgOiAnQzAwMDQnLC8vRFdQLTEyMzIyCgkJCSdsZWFkZm94LmNvJyA6ICdDMDAwNCcsCgkJCSdzdGF0aWMudXB0cmFjcy5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjM1NAogCQkJJ2JhdC5iaW5nLmNvbScgOiAnQzAwMDInLC8vRFdQLTEyMzU0CgkJCSdndGFnL2pzJyA6ICdDMDAwMicsCgkJCSdzZC5qcycgOiAnQzAwMDEnLAoJCQknc2RhLmpzJyA6ICdDMDAwMScsCgkJCSdpZnJhbWVfYXBpJyA6ICdDMDAwMScsCgkJCQoJCX07CgkJbGV0IHVybENhdFJlZ2V4ID0gJygnICsgT2JqZWN0LmtleXModXJsQ2F0QXJyKS5qb2luKCd8JykucmVwbGFjZSgvWys\/Ll0vZywgJ1wkJicpICsgJyknOwoJCWxldCBjdXJyZW50Q29uc2VudCA9IGdldENvbnNlbnQoKTsKCQl3aW5kb3cuc2NyaXB0VXJsQXJyID0gW107CgkJZC5jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24oLi4uYXJncykgewoJCQljb25zdCBzID0gY2UuYmluZChkKSguLi5hcmdzKSwgc2EgPSBzLnNldEF0dHJpYnV0ZS5iaW5kKHMpOwoJCQlzLnNldEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKG4sIHYpIHsKCQkJCWlmKG4gPT09ICdzcmMnICYmIHdpbmRvdy5zY3JpcHRVcmxBcnIuaW5kZXhPZih2LnRvU3RyaW5nKCkpID09IC0xKSB7CgkJCQkJaWYoKG5ldyBSZWdFeHAodXJsQ2F0UmVnZXgpKS50ZXN0KHYpKXsKCQkJCQkJZm9yKGtleSBpbiB1cmxDYXRBcnIpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCQkJCQlpZiAoKG5ldyBSZWdFeHAoa2V5KSkudGVzdCh2KSkgewoJCQkJCQkJCXdpbmRvdy5zY3JpcHRVcmxBcnIucHVzaCh2LnRvU3RyaW5nKCkpOwoJCQkJCQkJCWlmKGtleSA9PSAnZ3RhZy9qcycgfHwga2V5ID09ICdiYXQuYmluZy5jb20nIHx8IGtleSA9PSAnc2QuanMnIHx8IGtleSA9PSAnc2RhLmpzJyB8fCBrZXkgPT0gJ2lmcmFtZV9hcGknKXsKCQkJCQkJCQkJc2EoJ2RhdGEtb3QtaWdub3JlJywgdHJ1ZSk7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwoJCQkJCQkJCX0gZWxzZSBpZihjdXJyZW50Q29uc2VudCA9PSBudWxsIHx8IGN1cnJlbnRDb25zZW50LmluZGV4T2YodXJsQ2F0QXJyW2tleV0pID09IC0xKXsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9wbGFpbicpOwoJCQkJCQkJCQlzYSgnY2xhc3MnLCAnb3B0YW5vbi1jYXRlZ29yeS0nICsgdXJsQ2F0QXJyW2tleV0pOwoJCQkJCQkJCX0KCQkJCQkJCQlicmVhazsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXNhKG4sIHYpOwoJCQl9CgkJCXJldHVybiBzOwoJCX0KCQlmdW5jdGlvbiBnZXRDb25zZW50KCl7CgkJCWxldCBuYW1lID0gJ2QyY19jb29raWVfY29uc2VudCcgKyAnPSc7CgkJCWxldCBjYSA9ICgnJytkb2N1bWVudC5jb29raWUpLnNwbGl0KCc7Jyk7CgkJCWZvcihsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykgewoJCQkJbGV0IGMgPSBjYVtpXTsKCQkJCWMgPSBjLnRyaW0oKTsKCQkJCWlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgewoJCQkJCXRyeXsKCQkJCQkJYyA9IGRlY29kZVVSSUNvbXBvbmVudCggYyApOwoJCQkJCX0gY2F0Y2goIGUgKQoJCQkJCXsKCQkJCQkJY29uc29sZS5sb2coIGUgKTsKCQkJCQkJcmV0dXJuIG51bGw7CgkJCQkJfQoJCQkJCXJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOwoJCQkJfQoJCQl9CgkJCXJldHVybiBudWxsOwoJCX0KCX0pKGRvY3VtZW50KTsKCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CgkvLyBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIERPTQoJCWxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewoJCQltdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgewoJCQkJaWYgKG11dGF0aW9uLmFkZGVkTm9kZXMgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGggPiAwKSB7CgkJCQkJLy8gQ2hlY2sgaWYgb3VyIHNjcmlwdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRE9NCgkJCQkJZm9yIChsZXQgaSA9IDA7IGkgPCBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aDsgaSsrKSB7CgkJCQkJCWxldCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1tpXTsKCQkJCQkJaWYgKG5vZGUubm9kZVR5cGUgPT09IDEgJiYgbm9kZS50YWdOYW1lID09PSAnU0NSSVBUJyAmJiBub2RlLnNyYyAmJiBub2RlLnNyYy5pbmNsdWRlcygnY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScpICYmIHR5cGVvZiBPbmVUcnVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCQkJCQl0cnl7RGlnaXRhbEludGVydmlldy5MYXVuY2hlci5lbmFibGVMYXVuY2hQb2ludHMoKTt9Y2F0Y2goZSl7fQoJCQkJCQkJfSwgMTAwMCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0pOwoJCX0pOwoJCS8vIFN0YXJ0IG9ic2VydmluZyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgY29uZmlndXJlZCBwYXJhbWV0ZXJzCgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmhlYWQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJfSk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iWlpaLTQxNTU2NDgiCnZhciBjdXJyZW50U2l0ZUlEPTQ3OTt2YXIgZDJjX2dhQWNjb3VudHM9eyJhbGwiOltdLCJpbnRlcm5hbCI6W119O3ZhciBkMmNfYXdjSWQ9J0FXLTg2MTU1NDUxNyc7dmFyIGQyY19hd2NMYWJlbD0nWGZIQUNPX0Q2VzBRMVk3cG1nTSc7dmFyIGxlZ2FjeV9nYT1mYWxzZTt3aW5kb3cuZGF0YUxheWVyPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO2Z1bmN0aW9uIGd0YWcoKXtkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpO30KZ3RhZygnanMnLG5ldyBEYXRlKCkpO2QyY19nYUFjY291bnRzLmFsbC5wdXNoKCdHLVo1UThaNUM3S0YnKTtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaCgnRy1QVFlDV0pDMEJQJyk7aWYoZDJjX2F3Y0lkKXtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaChkMmNfYXdjSWQpO30KKGQyY19nYUFjY291bnRzLmFsbHx8W10pLm1hcChmdW5jdGlvbihpZCl7Z3RhZygnY29uZmlnJyxpZCx7J3NlbmRfcGFnZV92aWV3JzpmYWxzZSwnbGlua2VyJzp7J2RvbWFpbnMnOkpTT04ucGFyc2UoYXRvYigiV3lKb2RIUndjenBjTDF3dmMyaHZjQzVvYjI1a1lXUnZibTVoWTI5dVlTNWpiMjBpWFE9PSIpKSwnY29va2llX2RvbWFpbic6J3d3dy5ob25kYWRvbm5hY29uYS5jb20nfX0pO30pOwovKl1dPiovCgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iRkxULTE1NjY0NTg4OTk2NDUzNDExNTM4NiIKdmFyIGRvY1JlYWR5QXJyPVtdO3ZhciBwYWdlPSJORVdDQVJTIjt2YXIgZmJDaGF0UmVmPXt9O3ZhciBkZXBsb3ltZW50VHlwZT0nbGl2ZSc7dmFyIGN1cnJlbnRTaXRlSUQ9NDc5O3ZhciBjdXJyZW50RGVhbGVySUQ9MjA1OTt2YXIgZ2FUeXBlPSdndGFnJzt2YXIgYWxsQ2FtcGFpZ25zPVtbImhvbmRhZG9ubmFjb25hLmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiVG91dGVzIiwzMjc4Ml0sWyJkb25uYWNvbmFob25kYS5jb20iLCJDb3VycmllbHMtcmVsYW5jZSIsIk5ldWYtMTUtam91cnMiLDI0OTddLFsiaG9uZGFkb25uYWNvbmEuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJPY2Nhc2lvbiIsMzI3ODRdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiR29vZ2xlIiwiT2xkLW5ldWYtb2xkIiwyNTg3XSxbIkhvbmRhZG9ubmFjb25hLmNvbSIsIkZhY2Vib29rIiwiTGVhZGFkcyIsMjU4OV0sWyJkb25uYWNvbmFob25kYS5jb20iLCJTRU0iLCJBZ2VuY3kiLDM0NTRdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiR29vZ2xlIiwiT2NjYXNpb24iLDQxMjJdLFsiZG9ubmFjb25haG9uZGEuY29tIiwiVHJhZGVyIiwiUmV0YXJnZXRpbmciLDQ0NDJdLFsiZG9ubmFjb25haG9uZGEuY29tIiwiQmluZyIsIkJpbmciLDQ5MTNdLFsiaG9uZGFkb25uYWNvbmEuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJOZXVmcyIsMzI3ODNdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiR29vZ2xlIiwiU2VydmljZSIsODk0NF0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJHb29nbGUiLCJSZWNpYmxhZ2UiLDkzNjRdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiRmFjZWJvb2siLCJSZWNpYmxhZ2UiLDk1NThdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiRmFjZWJvb2siLCJMZWFkYWRzLXVzZWQtY2F0YWxvZyIsMTAzMDRdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiRmFjZWJvb2siLCJPY2Nhc2lvbi1jYXRhbG9nIiwxMDMzOF0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJHb29nbGUiLCJUcmFkZS1pbiIsMTMxODJdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiRmFjZWJvb2siLCJOZXVmIiwxMzgzMl0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJHb29nbGUiLCJPY2Nhc2lvbi12bGEiLDE4NzgzXSxbIkhvbmRhZG9ubmFjb25hLmNvbSIsIkdvb2dsZSIsIlZsYS1uZXVmIiwzMDE3MV0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJCaW5nIiwiTmV1ZiIsMzMwNTBdLFsiSG9uZGFkb25uYWNvbmEuY29tIiwiQmluZyIsIk9jY2FzaW9uIiwzMzA1MV0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJCaW5nIiwiVHJhZGUtaW4iLDMzMDUyXSxbIkhvbmRhZG9ubmFjb25hLmNvbSIsIkdvb2dsZSIsIk5ldWYiLDMzMDYxXSxbIkhvbmRhZG9ubmFjb25hLmNvbSIsIkJpbmciLCJSZWNpYmxhZ2UiLDM0MTUzXSxbIkhvbmRhZG9ubmFjb25hLmNvbSIsIkZhY2Vib29rIiwiTmV1Zi1sZWFkYWRzIiwzNDYzNl0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJHb29nbGUiLCJDb21wZXRpdGV1ciIsMzQ3MzBdXQp2YXIgcmV0YXJnZXRpbmdDYW1wYWlnbnM9W1siSG9uZGFkb25uYWNvbmEuY29tIiwiSG9uZGFkb25uYWNvbmEuY29tIiwiR29vZ2xlIiwiR29vZ2xlIiwiUmVjaWJsYWdlIiwiUmVjaWJsYWdlIl0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJIb25kYWRvbm5hY29uYS5jb20iLCJGYWNlYm9vayIsIkZhY2Vib29rIiwiUmVjaWJsYWdlIiwiUmVjaWJsYWdlIl0sWyJIb25kYWRvbm5hY29uYS5jb20iLCJIb25kYWRvbm5hY29uYS5jb20iLCJCaW5nIiwiQmluZyIsIlJlY2libGFnZSIsIlJlY2libGFnZSJdXQp2YXIgQUlDdXJyZW50Q29uZmlnSUQ9MDt2YXIgQUlJRFBlck5ld0NhcnNGcmVuY2g9bmV3IEFycmF5KCk7dmFyIEFJSURQZXJOZXdDYXJzRW5nbGlzaD1uZXcgQXJyYXkoKTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KHN0cil7aWYoc3RyLmxlbmd0aDwxKXJldHVybnt9CnZhciB2YXJzPXt9LHY7dmFyIHFzPXN0ci5zcGxpdCgnJicpO2Zvcih2YXIgaT0wO2k8cXMubGVuZ3RoO2krKyl7dj1leHBsb2RlKHFzW2ldLCc9JywxKTt2YXJzW3ZbMF1dPXZbMV07fQpyZXR1cm4gdmFyczt9CmZ1bmN0aW9uIGRlY29kZVN0cmluZyhzdHJpbmcsdGltZXMpe2lmKHRpbWVzPT0iInx8dGltZXM9PSJ1bmRlZmluZWQiKXt0aW1lcz0xO30KZm9yKGk9MDtpPHRpbWVzO2krKyl7c3RyaW5nPWRlY29kZVVSSUNvbXBvbmVudChzdHJpbmcpO30KcmV0dXJuIHN0cmluZzt9CmZ1bmN0aW9uIGRlY29kZUhUTUwoZW5jb2RlZCl7aWYodHlwZW9mIGVuY29kZWQhPT0nc3RyaW5nJylyZXR1cm4gZW5jb2RlZDt2YXIgZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtlbC5pbm5lckhUTUw9ZW5jb2RlZDtyZXR1cm4gZWwudmFsdWU7fQpmdW5jdGlvbiBleHBsb2RlKHN0cixzZXBhcmF0b3IsbGltaXQpe3N0cj1zdHIuc3BsaXQoc2VwYXJhdG9yKTtpZihzdHIubGVuZ3RoPD1saW1pdClyZXR1cm4gc3RyO3ZhciByZXQ9c3RyLnNwbGljZSgwLGxpbWl0KTtyZXQucHVzaChzdHIuam9pbihzZXBhcmF0b3IpKTtyZXR1cm4gcmV0O30KZnVuY3Rpb24gZ2V0VXJsVmFycygpe3ZhciBxcz0od2luZG93LmxvY2F0aW9uLnNlYXJjaCkuc3Vic3RyaW5nKDEpO3JldHVybiBwYXJzZVF1ZXJ5KHFzKTt9CmZ1bmN0aW9uIGdldENvb2tpZShjX25hbWUpe3JldHVybiBDb29raWVzLmdldChjX25hbWUpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7dmFyIGNfdmFsdWU9ZG9jdW1lbnQuY29va2llO3ZhciBjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiICIrY19uYW1lKyI9Iik7aWYoY19zdGFydD09LTEpe2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKGNfbmFtZSsiPSIpO30KaWYoY19zdGFydD09LTEpe2NfdmFsdWU9bnVsbDt9ZWxzZXtjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiPSIsY19zdGFydCkrMTt2YXIgY19lbmQ9Y192YWx1ZS5pbmRleE9mKCI7IixjX3N0YXJ0KTtpZihjX2VuZD09LTEpe2NfZW5kPWNfdmFsdWUubGVuZ3RoO30KY192YWx1ZT11bmVzY2FwZShjX3ZhbHVlLnN1YnN0cmluZyhjX3N0YXJ0LGNfZW5kKSk7fQpyZXR1cm4gY192YWx1ZTt9CmZ1bmN0aW9uIHNldENvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKXtpc0Nvb2tpZUFsbG93ZWQoY19uYW1lLGZ1bmN0aW9uKGFsbG93ZWQpe2lmKCFhbGxvd2VkKXtyZXR1cm4gQ29va2llcy5zZXQoY19uYW1lLHZhbHVlLGV4ZGF5cywnLycpO2xvZ0Nvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKTtyZXR1cm47fQp2YXIgZXhkYXRlPW5ldyBEYXRlKCk7ZXhkYXRlLnNldERhdGUoZXhkYXRlLmdldERhdGUoKStleGRheXMpO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrKChleGRheXM9PW51bGwpPyIiOiI7IGV4cGlyZXM9IitleGRhdGUudG9VVENTdHJpbmcoKSkrIjsgcGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO30pO30KZnVuY3Rpb24gbG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcyl7aWYodHlwZW9mIHRyaWVzPT09J3VuZGVmaW5lZCcpe3RyaWVzPTU7fQppZih0eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj09PSd1bmRlZmluZWQnKXtpZih0cmllcyl7c2V0VGltZW91dChmdW5jdGlvbigpe2xvZ0Nvb2tpZShuYW1lLHZhbHVlLGV4cGlyZXMsdHJpZXMtMSk7fSwxMDAwKTt9fWVsc2V7d2luZG93LkNvb2tpZUxvZ2dlci5sb2cobmFtZSx2YWx1ZSxleHBpcmVzKTt9fQpmdW5jdGlvbiBpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcyl7aWYodHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50PT09J3VuZGVmaW5lZCcpe2lmKHR5cGVvZiB0cmllcz09PSd1bmRlZmluZWQnKXt0cmllcz01O30KaWYodHJpZXMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayk7fX0KZnVuY3Rpb24gZ2FQYWdlVmlldyhwcCl7KGQyY19nYUFjY291bnRzLmFsbHx8W10pLm1hcChmdW5jdGlvbihpZCl7bGV0IGQ9e3BhZ2VfcGF0aDpwcH07aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7Y29uc29sZS5sb2coJ2d0YWcnLCdjb25maWcnLGlkLGQpCnJldHVybjt9Cmd0YWcoJ2NvbmZpZycsaWQsZCk7fSk7fTtmdW5jdGlvbiBnYTRQYWdlVmlldyhwcCl7aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7cmV0dXJuO30KZ3RhZygnc2V0Jyx7J3BhZ2VfcGF0aCc6cHB9KTtndGFnKCdldmVudCcsJ3BhZ2VfdmlldycseydzZW5kX3RvJzonRy1QVFlDV0pDMEJQJ30pO30KZnVuY3Rpb24gZ2V0R2FDbGllbnRJZCgpe3JldHVybigoKHR5cGVvZiB3aW5kb3cuZ2E9PT0nb2JqZWN0JyYmd2luZG93LmdhIT09bnVsbCl8fHR5cGVvZiB3aW5kb3cuZ2E9PT0nZnVuY3Rpb24nKSYmdHlwZW9mIGdhWydnZXRBbGwnXT09PSdmdW5jdGlvbicpP2dhLmdldEFsbCgpWzBdLmdldCgnY2xpZW50SWQnKTonJzt9CmZ1bmN0aW9uIGdhVHJhY2soYWEsYyxhLGwsdil7bGV0IGFjPVtdO2NvbnN0IGNzPWRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQSc7Y29uc3QgY2g9KG8sZCk9PnR5cGVvZiBvIT09J3VuZGVmaW5lZCc\/bzpkO2FhPWNoKGFhLCcnKTtjPWNoKGMsJycpO2E9Y2goYSwnJyk7bD1jaChsLCcnKTt2PWNoKHYsMSk7aWYoYWE9PSdpbnRlcm5hbCcpe2FjPWQyY19nYUFjY291bnRzLmludGVybmFsO31lbHNlIGlmKGFhLmxlbmd0aCYmL14oYnxjfGQpXC5fdHJhY2tFdmVudC8udGVzdChhYSkmJnR5cGVvZiBkMmNfZ2FBY2NvdW50c1thYVswXV0hPSd1bmRlZmluZWQnKXthYy5wdXNoKGQyY19nYUFjY291bnRzW2FhWzBdXSk7fQppZihhYy5sZW5ndGgpe2FjLm1hcCgoaWQpPT57Y29uc3QgZD17c2VuZF90bzppZCxldmVudF9hY3Rpb246YSxldmVudF9jYXRlZ29yeTpjLGV2ZW50X2xhYmVsOmwsdmFsdWU6dn07aWYoY3Mpe2NvbnNvbGUubG9nKGBHQVRSQUNLLUdUQUctU0VORC1UT1ske2lkfV06YCwnZXZlbnQnLGEsZCk7cmV0dXJuO30KZ3RhZygnZXZlbnQnLGEsZCk7fSk7fWVsc2V7Y29uc3QgZD17ZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZygnR0FUUkFDSy1HVEFHLU5PLVNFTkQtVE86JywnZXZlbnQnLGEsZCk7fWVsc2V7Z3RhZygnZXZlbnQnLGEsZCk7fX19O2Z1bmN0aW9uIG9uQ29uZmlybVN1Ym1pdChldmVudCl7cmV0dXJuIHRydWU7fQpmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGNfbmFtZSx2YWx1ZSl7dmFyIGV4ZGF5cz1udWxsO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrIjtleHBpcmVzPTA7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO2xvZ0Nvb2tpZShjX25hbWUpO30KZnVuY3Rpb24gaW5pdExDSShwYXJhbXMsbil7aWYobj4yMClyZXR1cm4gbjt2YXIgbj0obik\/bjowO2lmKHR5cGVvZiBMQ19BUEk9PSd1bmRlZmluZWQnfHx0eXBlb2YgTENfSW52aXRlPT0ndW5kZWZpbmVkJyl7c2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0kocGFyYW1zLCsrbik7fSw1MDApO3JldHVybjt9CmlmKHR5cGVvZiBMQ19BUEkhPSd1bmRlZmluZWQnJiZ0eXBlb2YgTENfSW52aXRlIT0ndW5kZWZpbmVkJyYmcGFyYW1zKXtyZXR1cm4gTENfQVBJLnNldF9jdXN0b21fdmFyaWFibGVzKHBhcmFtcyk7fX0KZnVuY3Rpb24gc2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpe3JldHVybiByZWZlcmVyLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csJycpO30KZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihyZWZlcmVyKXtyZXR1cm4gZnVuY3Rpb24oKXtpZignJz09cmVmZXJlcilyZWZlcmVyPWRvY3VtZW50LnJlZmVycmVyO3JlZmVyZXI9c2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpO3ZhciBxcyxxc2luZGV4PXJlZmVyZXIuaW5kZXhPZignPycpKzE7aWYocXNpbmRleD4wKXt2YXIgcXM9cmVmZXJlci5zbGljZShxc2luZGV4KTtyZXR1cm4gcGFyc2VRdWVyeShxcyk7fQpyZXR1cm57fX19CnZhciBnZXRSZWZlcmVyVmFycz1nZXRSZWZlcnJlclZhckZ1bmN0aW9uKCcnKTt2YXIgdXRtX2xhbmRpbmdfY29va2llPShnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2xhbmRpbmcnKTonJyk7aWYodXRtX2xhbmRpbmdfY29va2llLmxlbmd0aD09MCl7c2V0Q29va2llKCd1dG1fbGFuZGluZycsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTt9CmlmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe3ZhciBnZW5lcmF0ZUdVSUQ9ZnVuY3Rpb24oKXt2YXIgUzQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjB4MTAwMDApLnRvU3RyaW5nKDE2KTt9O3JldHVybihTNCgpK1M0KCkrIi0iKwpTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpK1M0KCkrUzQoKSk7fQp2YXIgdXJsVmFycz1nZXRVcmxWYXJzKCk7dmFyIHJlZmVyZXJWYXJzPWdldFJlZmVyZXJWYXJzKCk7dmFyIHJlZmVyZXI9Jyc7dmFyIHJhd1JlZmVycmVyPXJlZmVyZXI7cmVmZXJlcj0ocmVmZXJlci5sZW5ndGg8MT8wOnJlZmVyZXIpO2lmKCcnPT1yYXdSZWZlcnJlcilyYXdSZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcjt2YXIgaXRlbVR5cGU9J2Nhcic7aXRlbVR5cGU9KGl0ZW1UeXBlLmxlbmd0aDwxPzA6aXRlbVR5cGUpO2lmKGlzTmFOKHJlZmVyZXIpKXtyZWZlcmVyPXJlZmVyZXIucmVwbGFjZSgvXC8vZywifCIpLnJlcGxhY2UoL1w\/L2csIl9fIikucmVwbGFjZSgvXHQvZywnJykucmVwbGFjZSgvXG4vZywnJykucmVwbGFjZSgvXHIvZywnJykucmVwbGFjZUFsbCgnJTBBJywnJykucmVwbGFjZUFsbCgnJTA5JywnJykucmVwbGFjZUFsbCgnJTBCJywnJykucmVwbGFjZUFsbCgnJTAwJywnJykucmVwbGFjZUFsbCgnJTBEJywnJyk7fQp2YXIgbWFrZT0iIjtpZihtYWtlLmxlbmd0aD09MCltYWtlPSIwIjt2YXIgbW9kZWw9IiI7aWYobW9kZWwubGVuZ3RoPT0wKW1vZGVsPSIwIjt2YXIgeWVhcj0iIjtpZih5ZWFyLmxlbmd0aD09MCl5ZWFyPSIwIjt2YXIgaXNtb2JpbGU9IiI7aWYoaXNtb2JpbGUubGVuZ3RoPT0wKWlzbW9iaWxlPSIwIjt2YXIgb3JpZ1NvdXJjZT0iIjt2YXIgb3JpZ0NhbXBhaWduPSIiO3ZhciBvcmlnS2V5d29yZD0iIjtpZih1cmxWYXJzWyJyZWxhbmNlSUQiXSE9dW5kZWZpbmVkKQpzZXRDb29raWUoJ3JlbGFuY2VJRCcsdXJsVmFyc1sicmVsYW5jZUlEIl0sMTgwKTt2YXIgc291cmNlPShnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZScpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2UnKTonJyk7dmFyIHNvdXJjZUNvb2tpZT1zb3VyY2U7dmFyIHNvdXJjZVVSTD0iIjtpZigidXRtX3NvdXJjZSJpbiB1cmxWYXJzKXtpZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT11cmxWYXJzWyd1dG1fc291cmNlJ107c291cmNlVVJMPXVybFZhcnNbJ3V0bV9zb3VyY2UnXTt9CnZhciBjYW1wYWlnbj0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ24nKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduJyk6JycpO2lmKGNhbXBhaWduLnRvTG93ZXJDYXNlKCk9PSdlY29sZS1ldHVkaWFudCcpe2NhbXBhaWduPScnO3NldENvb2tpZSgndXRtX2NhbXBhaWduJywiIiwxKTt9CnZhciBjYW1wYWlnbkNvb2tpZT1jYW1wYWlnbjt2YXIgY2FtcGFpZ25VUkw9IiI7aWYoInV0bV9jYW1wYWlnbiJpbiB1cmxWYXJzKXtpZihjYW1wYWlnbi5sZW5ndGg9PTApY2FtcGFpZ249dXJsVmFyc1sndXRtX2NhbXBhaWduJ107Y2FtcGFpZ25VUkw9dXJsVmFyc1sndXRtX2NhbXBhaWduJ107fQp2YXIgbWVkaXVtPShnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX21lZGl1bScpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9tZWRpdW0nKTonJyk7dmFyIG1lZGl1bUNvb2tpZT1tZWRpdW07dmFyIG1lZGl1bVVSTD0iIjtpZigidXRtX21lZGl1bSJpbiB1cmxWYXJzKXtpZihtZWRpdW0ubGVuZ3RoPT0wKW1lZGl1bT11cmxWYXJzWyd1dG1fbWVkaXVtJ107bWVkaXVtVVJMPXVybFZhcnNbJ3V0bV9tZWRpdW0nXTt9CnZhciBjb29raWVJbkNhbXBhaWducz1mYWxzZTt2YXIgdXJsSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIGhhc0dvb2dsZU9yZ2FuaWM9ZmFsc2U7Zm9yKHZhciBpPTA7aTxhbGxDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09Y2FtcGFpZ25VUkwudG9Mb3dlckNhc2UoKSl1cmxJbkNhbXBhaWducz10cnVlO2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCkpY29va2llSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pcXVlJyloYXNHb29nbGVPcmdhbmljPXRydWU7fQppZihzb3VyY2VVUkw9PSIiJiZjYW1wYWlnblVSTD09IiImJnNvdXJjZT09IiImJmNhbXBhaWduPT0iIiYmaGFzR29vZ2xlT3JnYW5pYyl7c291cmNlVVJMPSJHb29nbGUiO2NhbXBhaWduVVJMPSJPcmdhbmlxdWUiO3VybEluQ2FtcGFpZ25zPXRydWU7fQppZihjb29raWVJbkNhbXBhaWducz09ZmFsc2UmJnVybEluQ2FtcGFpZ25zPT10cnVlKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO3NvdXJjZUNvb2tpZT1zb3VyY2VVUkw7Y2FtcGFpZ25Db29raWU9Y2FtcGFpZ25VUkw7fQppZihzb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKT09J3NlbScmJnNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpPT0nZ29vZ2xlJyYmdXJsSW5DYW1wYWlnbnMpe3NvdXJjZT1zb3VyY2VVUkw7Y2FtcGFpZ249Y2FtcGFpZ25VUkw7fQp2YXIgY3VycmVudFNpdGVJRD00Nzk7aWYoKGN1cnJlbnRTaXRlSUQ9PTU5Mnx8Y3VycmVudFNpdGVJRD09NDM3fHxjdXJyZW50U2l0ZUlEPT01Nzl8fGN1cnJlbnRTaXRlSUQ9PTU4NSkmJnNvdXJjZUNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nc2VtJyl7c291cmNlQ29va2llPSdHb29nbGUnO3NvdXJjZT0nR29vZ2xlJztjYW1wYWlnbkNvb2tpZT0nTmV1Zic7Y2FtcGFpZ249J05ldWYnO30KaWYoY2FtcGFpZ25Db29raWUudG9Mb3dlckNhc2UoKT09J29yZ2FuaWMnfHxjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pcXVlJyl7c291cmNlQ29va2llPScnO2NhbXBhaWduQ29va2llPScnO21lZGl1bUNvb2tpZT0nJzt9CmlmKHNvdXJjZS5sZW5ndGg+MCYmKHNvdXJjZUNvb2tpZS5sZW5ndGg9PTB8fHNvdXJjZUNvb2tpZT09c291cmNlKSlzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZSwxODApO2lmKGNhbXBhaWduLmxlbmd0aD4wJiYoY2FtcGFpZ25Db29raWUubGVuZ3RoPT0wfHxjYW1wYWlnbkNvb2tpZT09Y2FtcGFpZ24pKXNldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnbiwxODApO2lmKG1lZGl1bS5sZW5ndGg+MCYmKG1lZGl1bUNvb2tpZS5sZW5ndGg9PTB8fG1lZGl1bUNvb2tpZT09bWVkaXVtKSlzZXRDb29raWUoJ3V0bV9tZWRpdW0nLG1lZGl1bSwxODApO3ZhciBrZXl3b3JkPShnZXRDb29raWUoJ3V0bV9rZXl3b3JkJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9rZXl3b3JkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2tleXdvcmQnKTonJyk7aWYoImt3ImluIHVybFZhcnMpe2tleXdvcmQ9ZGVjb2RlU3RyaW5nKHVybFZhcnNbJ2t3J10sMyk7fQppZihrZXl3b3JkLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2tleXdvcmQnLGtleXdvcmQsMTgwKTt2YXIgaXNSZXRhcmdldGluZz1mYWxzZTtmb3IodmFyIGk9MDtpPHJldGFyZ2V0aW5nQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKHJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpJiZyZXRhcmdldGluZ0NhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnblVSTC50b0xvd2VyQ2FzZSgpKWlzUmV0YXJnZXRpbmc9dHJ1ZTt9CmlmKGlzUmV0YXJnZXRpbmcpe3ZhciBzb3VyY2VSZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyk6JycpO3ZhciBjYW1wYWlnblJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKTonJyk7aWYoc291cmNlIT1zb3VyY2VVUkx8fGNhbXBhaWduIT1jYW1wYWlnblVSTCl7aWYoc291cmNlVVJMLmxlbmd0aD4wJiZzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyxzb3VyY2VVUkwsMTgwKTtpZihjYW1wYWlnblVSTC5sZW5ndGg+MCYmY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg9PTApc2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnLGNhbXBhaWduVVJMLDE4MCk7fQpzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZVVSTCwxODApO3NldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnblVSTCwxODApO30KdmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVJldGFyZ2V0aW5nLDE4MCk7aWYoY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25SZXRhcmdldGluZywxODApO2lmKCFzb3VyY2Upe2lmKHJhd1JlZmVycmVyIT0nJyl7dmFyIHNlbGZIb3N0PShkb2N1bWVudC5sb2NhdGlvbi5ocmVmKS5tYXRjaCgvXltBLXpdKzpcL1wvKFteXC9dKylcLz8uKi8pO2lmKHNlbGZIb3N0KXtzZWxmSG9zdD1zZWxmSG9zdFsxXX0KdmFyIGhvc3Q9KHJhd1JlZmVycmVyLnRvU3RyaW5nKCkpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoaG9zdCl7aG9zdD1ob3N0WzFdfWVsc2V7aG9zdD1zZWxmSG9zdDt9CmlmKGhvc3QhPXNlbGZIb3N0KXtob3N0PWhvc3Quc3BsaXQoJy4nKTtpZihob3N0Lmxlbmd0aD4yKXtzb3VyY2U9aG9zdFsxXTt9CmlmKGhvc3QubGVuZ3RoPT0yKXtzb3VyY2U9aG9zdFswXTt9CmlmKHNvdXJjZSlzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZSwxODApO2lmKCFjYW1wYWlnbil7Y2FtcGFpZ249J29yZ2FuaWMnO3NldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnbiwxODApO319fX0KaWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9IjAiO2lmKGNhbXBhaWduLmxlbmd0aD09MCljYW1wYWlnbj0iMCI7aWYoc291cmNlUmV0YXJnZXRpbmcubGVuZ3RoPT0wKXNvdXJjZVJldGFyZ2V0aW5nPSIwIjtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MCljYW1wYWlnblJldGFyZ2V0aW5nPSIwIjtpZih1cmxWYXJzWyJEaXNwbGF5U291cmNlIl0hPXVuZGVmaW5lZCl7aWYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09J3VuZGVmaW5lZCcpe2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT1udWxsfHx0eXBlb2YgZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nKT09J3VuZGVmaW5lZCcpKXNldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyx1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwxODApO2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXSE9dW5kZWZpbmVkJiYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09J3VuZGVmaW5lZCcpKXNldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScsdXJsVmFyc1sidXRtX3NvdXJjZSJdLDE4MCk7fQpzZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnLHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwxODApO30KdmFyIHNldEdjbGlkQ29va2llPXRydWU7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpe2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXT09J1NFTSd8fHVybFZhcnNbInV0bV9zb3VyY2UiXT09J1RyYWRlcid8fHVybFZhcnNbInV0bV9zb3VyY2UiXT09J0dvb2dsZS1uZXJkbWFya2V0aW5nJyl7c2V0R2NsaWRDb29raWU9ZmFsc2U7fX0KaWYodXJsVmFyc1siZ2NsaWQiXSE9dW5kZWZpbmVkJiZzZXRHY2xpZENvb2tpZSl7c2V0Q29va2llKCdnY2xpZCcsdXJsVmFyc1siZ2NsaWQiXSwxODApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbihldmVudCl7aWYoJ3VuZGVmaW5lZCchPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyl7c2F2ZUdDTElEPWZ1bmN0aW9uKCl7aWYoJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3cualF1ZXJ5KXtyZXR1cm47fQokLnBvc3QoImh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9nY2xpZC5yZXN0LmFwaS5waHAiLHtzZXNzaW9uaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkLGdjbGlkOnVybFZhcnNbJ2djbGlkJ119KTt9O3RyeXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclNlc3Npb25DYWxsYmFjayhzYXZlR0NMSUQpO31jYXRjaChlcnJvcil7Y29uc29sZS5sb2coZXJyb3IpO319fSk7fQp3aW5kb3cuYWN0aXZlUGFnZT1wYWdlO3ZhciB1aWQ9KGdldENvb2tpZSgndWlkJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3VpZCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3VpZCcpOmdlbmVyYXRlR1VJRCgpKTtzZXRDb29raWUoJ3VpZCcsdWlkLDE4MCk7dmFyIGRlYWxlcmlkPTIwNTk7dmFyIHNpdGVpZD00Nzk7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgooYXN5bmMgKCkgPT4geyB0cnkgeyB2YXIgbGFuZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5jbGFzc05hbWUubWF0Y2goJ0ZSRU5DSCcpID8gJ2ZyJyA6ICdlbic7IHZhciB1cmwgPSBuZXcgVVJMKGAvanMvanNvbi9tZW51VGl0bGVzXyR7bGFuZ30uanNvbmAsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhyZWY7IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsgaWYgKHRleHQpIHsgZGF0YSA9IEpTT04ucGFyc2UodGV4dCk7IHZhciBtdWx0aSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ1VTRUQnKTsgaWYgKG11bHRpLmxlbmd0aCkgeyBmb3IodmFyIGkgPSAwOyBpIDwgbXVsdGkubGVuZ3RoOyBpKyspIHsgbXVsdGlbaV0ucXVlcnlTZWxlY3RvcignLnNocmluay1ncm93JykudGV4dENvbnRlbnQgPSBkYXRhWydVU0VEJ10udGV4dDsgfSB9IGVsc2UgeyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjTWFpbk1lbnVfVVNFRCA+IGEnKS50ZXh0Q29udGVudCA9IGRhdGFbJ1VTRUQnXS50ZXh0OyB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTsgfSB9IH0gY2F0Y2ggKGUpeyBjb25zb2xlLmxvZyhlKTsgfSB9KSgpOwoKCS8qPCFbQ0RBVEFbKi8KCXZhciBwYXJhbXMgPSBnZXRVcmxWYXJzKCk7CgkvL3NldCBwYXJhbSB2YWx1ZSBpbnRvIHNlc3Npb24gc3RvcmFnZQoJaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHsKCgkJaWYocGFyYW1zLmhhc093blByb3BlcnR5KCdoJykpewoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdoJyxwYXJhbXMuaCk7CgkJfQoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ20nKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ20nLHBhcmFtcy5tKTsKCQl9CgoJCXZhciBoID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnaCcpOwoJCXZhciBtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbScpOwoKCQkvL3JlYWQgc2Vzc2lvbiBhbmQgcmVtb3ZlIGhlYWRlciAmIG1lbnUgaWYgb3B0aW9ucyBoYXZlIGJlZW4gc2V0CgkJaWYoaCA9PT0gJ25vJyl7CgkJCS8vc3R1ZmYgdG8gcmVtb3ZlIHRoYXQgaXMgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBoZWFkZXIKCQkJdmFyIGhlYWRlcnMgPSBbCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWluZm8nKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItZm9vdGVyJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGFuZ3VhZ2VCYXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbG9nbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vYmlsZS1oZWFkZXIgPiAqOm5vdCguYnVyZ2VyLW1lbnUtY29udGFpbmVyKScpCgkJCV07CgoJCQlmb3IodmFyIGVsZW0gb2YgaGVhZGVycyl7CgkJCQkvL3JlbW92ZSBub2RlIGxpc3QgcXVlcmllcwoJCQkJaWYgKE5vZGVMaXN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGVsZW0pKSB7CgkJCQkJZm9yKHZhciBfZWxlbSBvZiBlbGVtKXsKCQkJCQkJaWYgKF9lbGVtICE9PSBudWxsKSB7CgkJCQkJCQlfZWxlbS5yZW1vdmUoKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgaWYgKGVsZW0gIT09IG51bGwpewoJCQkJCWVsZW0ucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vbWVudQoJCWlmKG0gPT09ICdubycpewoJCQl2YXIgbWVudXMgPSBbCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLW1lbnUnKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5idXJnZXItbWVudS1jb250YWluZXInKSwKCQkJXTsKCQkJZm9yKHZhciBlbGVtIG9mIG1lbnVzKXsKCQkJCWlmKGVsZW0gIT09IG51bGwpewoJCQkJCWVsZW0ucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vc2luY2Ugbm8gaGVhZGVyIG9yIG1lbnUsIHJlbW92ZSBldmVyeXRoaW5nCgkJaWYgKG0gPT09ICdubycgJiYgaCA9PT0gJ25vJykgewoJCQl2YXIgaGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vYmlsZS1oZWFkZXInKTsKCQkJaWYoaGVhZGVyICE9PSBudWxsKXsKCQkJCWhlYWRlci5yZW1vdmUoKTsKCQkJfQoJCX0KCgl9CgkvKl1dPiovCgoJCShmdW5jdGlvbigpewoJCQlmdW5jdGlvbiBpbml0KCl7CgkJCQlpZiggdHlwZW9mIFBhZ2VCYW5uZXIgPT09ICdmdW5jdGlvbicgKSB7CgkJCQkJd2luZG93LnBhZ2VCYW5uZXIgPSBuZXcgUGFnZUJhbm5lcih7ImJhbm5lcnMiOnsic3RhdGljYmFubmVycyI6W3siaSI6IlwvaW1hZ2VzXC9OZXdDYXJQYWdlSW1hZ2VcL05PTkNCQi1UUkFERUlOLTEyNTBYMjAwLUhFWC0wMDAwMDAtRlIucG5nIiwidSI6IiRUcmFkZUJvb3N0IiwidCI6MzAwMCwiYSI6IkhvbmRhIGEgdmVuZHJlID8gRG9ubmFjb25hLCBwciZlZ3JhdmU7cyBkZSBRdSZlYWN1dGU7YmVjLCBQb250LVJvdWdlIGV0IFNhaW50LUF1Z3VzdGluIGNoZXogSG9uZGEgRG9ubmFjb25hIC0gMSJ9XX0sImNvbmZpZyI6eyJjMSI6ImZmZmZmZiIsImMyIjoiZmZmZmZmIiwiYzJfMSI6ImZmZmZmZiIsImMyXzIiOiIwMDAwMDAifX0pOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJCXNldFRpbWVvdXQoIGluaXQsIDMwMDAgKTsKCQkJfQoJCQlpbml0KCk7CgkJfSkoKTsKCQ==","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkvKjwhW0NEQVRBWyovCgkJCQl2YXIgYm94QmxvY2tzID0geyJjYXIiOnsiZmJ4X2Nhcl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjMxMDA5LCJjb25zbyI6NS43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNpdmljIFNlZGFuIiwic3BlY2lhbE9yZGVyIjoxfSwiZmJ4X2Nhcl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjMxNjA5LCJjb25zbyI6NS43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNpdmljIFNlZGFuIiwic3BlY2lhbE9yZGVyIjoyfSwiZmJ4X2Nhcl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjM0ODY5LCJjb25zbyI6Ni4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiQ2l2aWMgSGF0Y2hiYWNrIiwic3BlY2lhbE9yZGVyIjozfSwiZmJ4X2Nhcl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjM1NDY5LCJjb25zbyI6Ni4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiQ2l2aWMgSGF0Y2hiYWNrIiwic3BlY2lhbE9yZGVyIjo0fSwiZmJ4X2Nhcl81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjM5MjY5LCJjb25zbyI6Ni40MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiQ2l2aWMgU2kgU2VkYW4iLCJzcGVjaWFsT3JkZXIiOjV9LCJmYnhfY2FyXzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6Mzk4NjksImNvbnNvIjo2LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImhvbmRhIiwiY2FyTW9kZWwiOiJDaXZpYyBTaSBTZWRhbiIsInNwZWNpYWxPcmRlciI6Nn0sImZieF9jYXJfNyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NywicG9zaXRpb24iOjcsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo1NzAxOSwiY29uc28iOjguMzAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiQ2l2aWMgVHlwZSBSIiwic3BlY2lhbE9yZGVyIjo3fSwiZmJ4X2Nhcl84Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjU2MjY5LCJjb25zbyI6OC4zMDAwMDAwMDAwMDAwMDA3MTA1NDI3MzU3NjAxMDAxODU4NzExMjQyNjc1NzgxMjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImhvbmRhIiwiY2FyTW9kZWwiOiJDaXZpYyBUeXBlIFIiLCJzcGVjaWFsT3JkZXIiOjh9LCJmYnhfY2FyXzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NDE0NjksImNvbnNvIjo2LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImhvbmRhIiwiY2FyTW9kZWwiOiJBY2NvcmQgU2VkYW4iLCJzcGVjaWFsT3JkZXIiOjl9LCJmYnhfY2FyXzEwIjp7InZpc2libGUiOnRydWUsImlkIjoxMCwicG9zaXRpb24iOjEwLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NDE3NjksImNvbnNvIjo2LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImhvbmRhIiwiY2FyTW9kZWwiOiJBY2NvcmQgU2VkYW4iLCJzcGVjaWFsT3JkZXIiOjEwfX0sInN1diI6eyJmYnhfc3V2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzM3MzksImNvbnNvIjo3LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImhvbmRhIiwiY2FyTW9kZWwiOiJIUi1WIiwic3BlY2lhbE9yZGVyIjoxfSwiZmJ4X3N1dl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjMzMTQwLCJjb25zbyI6Ny40MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiSFItViIsInNwZWNpYWxPcmRlciI6Mn0sImZieF9zdXZfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo0MDQxNCwiY29uc28iOjcuMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNSLVYiLCJzcGVjaWFsT3JkZXIiOjN9LCJmYnhfc3V2XzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTg5ODksImNvbnNvIjo5LjMwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IlBpbG90Iiwic3BlY2lhbE9yZGVyIjo0fSwiZmJ4X3N1dl81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjYwNDI5LCJjb25zbyI6OS45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiUGFzc3BvcnQiLCJzcGVjaWFsT3JkZXIiOjV9fSwiaHlicmlkIjp7ImZieF9oeWJyaWRfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjozNjc2OSwiY29uc28iOjUuMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNpdmljIFNlZGFuIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MX0sImZieF9oeWJyaWRfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjozNzM2OSwiY29uc28iOjUuMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNpdmljIFNlZGFuIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6Mn0sImZieF9oeWJyaWRfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjozODY2OSwiY29uc28iOjUuNDAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNpdmljIEhhdGNoYmFjayBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjN9LCJmYnhfaHlicmlkXzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzkyNjksImNvbnNvIjo1LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImhvbmRhIiwiY2FyTW9kZWwiOiJDaXZpYyBIYXRjaGJhY2sgSHlicmlkIiwic3BlY2lhbE9yZGVyIjo0fSwiZmJ4X2h5YnJpZF81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2MTY5LCJjb25zbyI6NS43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkFjY29yZCBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjV9LCJmYnhfaHlicmlkXzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDY5NjksImNvbnNvIjo1LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiQWNjb3JkIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6Nn0sImZieF9oeWJyaWRfNyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NywicG9zaXRpb24iOjcsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo0OTMzOSwiY29uc28iOjYuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IkNSLVYgSHlicmlkIiwic3BlY2lhbE9yZGVyIjo3fSwiZmJ4X2h5YnJpZF84Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjUxNDE0LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiQ1ItViBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjh9LCJmYnhfaHlicmlkXzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NTMyNTksImNvbnNvIjo1LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiUHJlbHVkZSIsInNwZWNpYWxPcmRlciI6OX19LCJtaW5pdmFuIjp7ImZieF9taW5pdmFuXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTQ4NTksImNvbnNvIjo4LjUsImNhckNhdGVnb3J5IjoibWluaXZhbiIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiT2R5c3NleSIsInNwZWNpYWxPcmRlciI6MX19LCJ0cnVjayI6eyJmYnhfdHJ1Y2tfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo1NjQyOSwiY29uc28iOjkuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiUmlkZ2VsaW5lIiwic3BlY2lhbE9yZGVyIjoxfX0sImVsZWN0cmljIjp7ImZieF9lbGVjdHJpY18xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjYzMzI5LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaG9uZGEiLCJjYXJNb2RlbCI6IlByb2xvZ3VlIiwic3BlY2lhbE9yZGVyIjoxfSwiZmJ4X2VsZWN0cmljXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NjM0MjksImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJob25kYSIsImNhck1vZGVsIjoiUHJvbG9ndWUiLCJzcGVjaWFsT3JkZXIiOjJ9fX07CgkJCQkvKi0tKi8KCQkJCXZhciBib3hQb3NpdGlvbnMgPSB7ImZieF9jYXJfMSI6MSwiZmJ4X2Nhcl8yIjoyLCJmYnhfc3V2XzEiOjEsImZieF9zdXZfMiI6MiwiZmJ4X2Nhcl8zIjozLCJmYnhfY2FyXzQiOjQsImZieF9oeWJyaWRfMSI6MSwiZmJ4X2h5YnJpZF8yIjoyLCJmYnhfaHlicmlkXzMiOjMsImZieF9oeWJyaWRfNCI6NCwiZmJ4X2Nhcl81Ijo1LCJmYnhfY2FyXzYiOjYsImZieF9zdXZfMyI6MywiZmJ4X2Nhcl83Ijo3LCJmYnhfY2FyXzgiOjgsImZieF9jYXJfOSI6OSwiZmJ4X2Nhcl8xMCI6MTAsImZieF9oeWJyaWRfNSI6NSwiZmJ4X2h5YnJpZF82Ijo2LCJmYnhfaHlicmlkXzciOjcsImZieF9oeWJyaWRfOCI6OCwiZmJ4X2h5YnJpZF85Ijo5LCJmYnhfbWluaXZhbl8xIjoxLCJmYnhfdHJ1Y2tfMSI6MSwiZmJ4X3N1dl80Ijo0LCJmYnhfc3V2XzUiOjUsImZieF9lbGVjdHJpY18xIjoxLCJmYnhfZWxlY3RyaWNfMiI6Mn07CgkJCQkvKiogRmlsdGVyIEpTIGluIG5ld2NhcnMuanMgKiovCgkJCQkvKl1dPiovCgkJCQoKCQkJCXZhciBMZWFkQ29uZmlncyA9ICh0eXBlb2YgTGVhZENvbmZpZ3MgIT0gJ3VuZGVmaW5lZCcpID8gTGVhZENvbmZpZ3MgOiB7fTsKCgkJCQlsZXQgYWN0aXZlTGFuZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKSA\/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKS52YWx1ZSA6ICdGUkVOQ0gnOwoKCQkJCUxlYWRDb25maWdzLkRlYWxlckFwcG9pbnRtZW50ID0gewoKCQkJCQl0aXRsZTogKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ1JlcXVlc3QgYW4gYXBwb2ludG1lbnQnIDogJ1ByZW5kcmUgUmVuZGV6LXZvdXMnKSwKCQkJCQljbG9zZU9uU3VibWl0IDogdHJ1ZSwKCQkJCQluYW1lIDogJ0RlYWxlckFwcG9pbnRtZW50JywKCgkJCQkJb25CZWZvcmVPcGVuOiBmdW5jdGlvbihsZWFkQ29uZil7CiAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnRyaWdnZXIoJ2RlYWxlckFwcG9pbnRtZW50LnN0YXJ0Jyk7CgoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgkJCQkJCWNvbnN0IHRpbWVJbnB1dCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJkYXRlIl0nKTsKCQkJCQkJY29uc3QgcGlja2VyID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLmRhdGVwaWNrZXInKTsKCQkJCQkJY29uc3QgcGhvbmVFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJwaG9uZW51bSJdJyk7CgkJCQkJCWNvbnN0IGhvdXJzQmxvY2sgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuaG91cnNMaXN0Jyk7CgkJCQkJCWxldCBkYXlOb2RlcyA9IEFycmF5LmZyb20oaG91cnNCbG9jay5jaGlsZHJlbik7CgkJCQkJCWxldCBkYXRlRm9ybWF0ID0gIGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCBIOmknIDogJ2ogRiBZLCBIOmknOwoKCgkJCQkJCWNvbnN0IHNldFNlbGVjdGVkID0gKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudGx5U2VsZWN0ZWREYXRlID0gc2VsZWN0ZWREYXRlc1swXSB8fCBuZXcgRGF0ZSgpOy8vZG9uJ3QgcGxheSB3aXRoIHRoaXMgb3IgbWlnaHQgYWZmZWN0IGRhdGUvdGltZSBzZWxlY3Rpb24KCQkJCQkJCWxldCBkYXlOdW0gPSBjdXJyZW50bHlTZWxlY3RlZERhdGUuZ2V0RGF5KCk7CgoJCQkJCQkJZGF5TnVtID0gZGF5TnVtID09IDAgPyA3IDogZGF5TnVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlNaW5UaW1lID0gZGF5Tm9kZXNbZGF5TnVtIC0gMV0uZGF0YXNldC5taW5ob3VyIHx8ICcwOTowMCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5TWF4VGltZSA9IGRheU5vZGVzW2RheU51bSAtIDFdLmRhdGFzZXQubWF4aG91ciB8fCAnMTc6MDAnOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWluVGltZSBtYW5hZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIGRhdGUgaXMgdG9kYXksIG1pblRpbWUgbmVlZHMgdG8gYmUgYSBtaW5pbXVtIG9mIDFob3VyIGxhdGVyIGZyb20gY3VycmVudCB0aW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RlZERhdGVzWzBdKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWNjZXB0ZWRFeGNlcHRpb24gPSA1Oy8vbWludXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNlbGVjdGVkRGF0ZXNbMF0udG9EYXRlU3RyaW5nKCkgPT0gbm93LnRvRGF0ZVN0cmluZygpKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbkhvdXIgPSBub3cuZ2V0SG91cnMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbk1pbnV0ZSA9IG5vdy5nZXRNaW51dGVzKCkgKyA2MDsvL2FkZCAxIGhvdXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlID49IDYwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhvdXIgKz0gTWF0aC5mbG9vcihtaW5NaW51dGUgLyA2MCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgJSA2MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21ha2UgaXQgc28gdGhhdCBtaW51dGVzIGFyZSBlaXRoZXIgcm91bmRlZCB0byBuZXh0IDE1bWluIGluY3JlbWVudCBvciB0byB0aGUgcHJldmlvdXMgb25lIGlmIHdpdGhpbiBhY2NlcHRlZEV4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1IDw9IGFjY2VwdGVkRXhjZXB0aW9uKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlIC0gKG1pbk1pbnV0ZSAlIDE1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZigobWluTWludXRlICUgMTUgPiBhY2NlcHRlZEV4Y2VwdGlvbikpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgKyAoMTUgLSAobWluTWludXRlICUgMTUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcsIGFscmVhZHkgYXQgaW5jcmVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluSG91ciA+PSAyNCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL25vIG1vcmUgYXZhaWxhYmxlIHRpbWUgdG9kYXksIHNldCB0byBuZXh0IGRheSBhdCAwOTowMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zdGFuY2Uuc2V0KCdtaW5UaW1lJywgZGF5TWluVGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5TWluVGltZSA9IFN0cmluZyhtaW5Ib3VyKS5wYWRTdGFydCgyLCcwJykgKyAnOicgKyBTdHJpbmcobWluTWludXRlKS5wYWRTdGFydCgyLCcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYXhUaW1lIG1hbmFnZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhc3QgYXBwb2ludG1lbnQgdGltZSBtYW5hZ2VtZW50ICgxNW1pbiBiZWZvcmUgY2xvc2luZyB0aW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFtjbG9zaW5nSG91cnMsIGNsb3NpbmdNaW51dGVzXSA9IGRheU1heFRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlEYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheURhdGUuc2V0SG91cnMoY2xvc2luZ0hvdXJzLCBjbG9zaW5nTWludXRlcywgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlEYXRlLnNldE1pbnV0ZXMoZGF5RGF0ZS5nZXRNaW51dGVzKCkgLSAxNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Zvcm1hdCB0aGUgbmV3IHRpbWUgYmFjayBpbnRvICdISDptbScgZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xvc2luZ0hvdXJzID0gZGF5RGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWxDbG9zaW5nTWludXRlcyA9IGRheURhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU1heFRpbWUgPSBhY3R1YWxDbG9zaW5nSG91cnMgKyAnOicgKyBhY3R1YWxDbG9zaW5nTWludXRlczsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NldCBzdGFydC9lbmQgdGltZSBmb3IgdGhhdCBkYXkKCQkJCQkJCWluc3RhbmNlLnNldCgnbWluVGltZScsIGRheU1pblRpbWUpOwoJCQkJCQkJaW5zdGFuY2Uuc2V0KCdtYXhUaW1lJywgZGF5TWF4VGltZSk7CgoJCQkJCQkJLy9TZXQgY3VycmVudCBkYXRlIGluaXRpYWxseQoJCQkJCQkJdGltZVR4dEVsLnRleHRDb250ZW50ID0gIXNlbGVjdGVkRGF0ZXMubGVuZ3RoCgkJCQkJCQkJCQkJCSAgPyBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwgKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCAxMjowMCcgOiAnaiBGIFksIDEyOjAwJykpCgkJCQkJCQkJCQkJCSAgOiBkYXRlU3RyOwoKCQkJCQkJCS8vZ2V0IHRoZSBkYXRlIGluIGVuZ2xpc2ggYW5kIGZyZW5jaCBmb3IgdGhlIGxvY2FsIHN0b3JhZ2UKCQkJCQkJCXRpbWVUeHRFbC5kYXRhc2V0LmVuID0gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksJ0YgaiBZLCAxMjowMCcsIGZsYXRwaWNrci5sMTBucy5lbik7CgkJCQkJCQl0aW1lVHh0RWwuZGF0YXNldC5mciA9IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCdqIEYgWSwgMTI6MDAnLCBmbGF0cGlja3IubDEwbnMuZnIpOwoKCQkJCQkJCXRpbWVJbnB1dC52YWx1ZSA9IHRpbWVUeHRFbC50ZXh0Q29udGVudDsKCgkJCQkJCQlpbnN0YW5jZS5ob3VyRWxlbWVudC5ibHVyKCk7CgkJCQkJCX07CgoJCQkJCQlsZXQgY2xvc2VkRGF5cyA9IFtdOwoJCQkJCQlkYXlOb2Rlcy5mb3JFYWNoKChlLGkpID0+IHsKCQkJCQkJCWlmKChlLmRhdGFzZXQuY2xvc2VkIHx8ICcwJykgPT0gJzEnKSBjbG9zZWREYXlzLnB1c2goaSkKCQkJCQkJfSk7CgoJCQkJCQkvL0FkZCBmcmVuY2ggbG9jYWxpemF0aW9uIHdoZW4gbmVlZGVkCgkJCQkJCWlmKGFjdGl2ZUxhbmcgPT0gJ0ZSRU5DSCcpewoJCQkJCQkJZmxhdHBpY2tyLmxvY2FsaXplKGZsYXRwaWNrci5sMTBucy5mcik7CgkJCQkJCX0KCgoKCQkJCQkJY29uc3QgZnAgPSBmbGF0cGlja3IocGlja2VyLCB7CgkJCQkJCQlpbmxpbmU6dHJ1ZSwKCQkJCQkJCWVuYWJsZVRpbWU6IHRydWUsCgkJCQkJCQltaW5EYXRlOiAndG9kYXknLC8vYmFjayBmcm9tIG5ldyBEYXRlKCkuZnBfaW5jcigxKSBidXQgYWxzbyBhZGRlZCB0aW1lIHZhbGlkYXRpb24gZm9yIG1pblRpbWUKCQkJCQkJCW1pblRpbWU6ICIwOTowMCIsCgkJCQkJCQltYXhUaW1lOiAiMTc6MDAiLAoJCQkJCQkJZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdCwvLyJELCBqIEYgWSwgSDppIiwKCQkJCQkJCW1pbnV0ZUluY3JlbWVudDoxNSwKCQkJCQkJCXRpbWVfMjRocjp0cnVlLAoJCQkJCQkJb25DaGFuZ2U6IHNldFNlbGVjdGVkLAoJCQkJCQkJb25SZWFkeTogc2V0U2VsZWN0ZWQsCgkJCQkJCQlkaXNhYmxlOiBbCgkJCQkJCQkJZnVuY3Rpb24oZGF0ZSl7CgkJCQkJCQkJCWxldCBkYXlOdW0gPSBkYXRlLmdldERheSgpID09IDAgPyA3IDogZGF0ZS5nZXREYXkoKTsKCQkJCQkJCQkJcmV0dXJuIGNsb3NlZERheXMuaW5jbHVkZXMoZGF5TnVtIC0gMSk7CgkJCQkJCQkJfQoJCQkJCQkJXSwKCQkJCQkJCWxvY2FsZTogewoJCQkJCQkJCWZpcnN0RGF5T2ZXZWVrOiAxIC8vIHN0YXJ0IHdlZWsgb24gTW9uZGF5CgkJCQkJCQl9CgoJCQkJCQl9KTsKCgkJCQkJfSwKCgkJCQkJb25CZWZvcmVTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoJCQkJCQllbWFpbEhhbmRsZXIuZGVhbGVyQXBwb2ludG1lbnREYXRhID0gewoJCQkJCQkJZGF0ZSA6IHRpbWVUeHRFbC50ZXh0Q29udGVudAoJCQkJCQl9OwoJCQkJCX0sCgoJCQkJCW9uQWZ0ZXJTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCgkJCQkJCWNvbnN0IGNiID0gdHJhY2tTdGVwID0+IHsKCQkJCQkJCXRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mciA9IHRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCd7JEFQUE9JTlRfREFURX0nLCB0aW1lVHh0RWwuZGF0YXNldC5mcik7CgkJCQkJCQl0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4gPSB0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgneyRBUFBPSU5UX0RBVEV9JywgdGltZVR4dEVsLmRhdGFzZXQuZW4pOwoJCQkJCQl9OwoKCQkJCQkJbGV0IGNvbXBsZXRlRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3RyYWNrc3RlcC5jb21wbGV0ZScsewoJCQkJCQkJZGV0YWlsOnsKCQkJCQkJCQlzdGVwSWQgOiAnRGVhbGVyQXBwb2ludG1lbnQnLAoJCQkJCQkJCW9uQ29tcGxldGUgOiBjYgoJCQkJCQkJfQoJCQkJCQl9KTsKCgkJCQkJCWRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY29tcGxldGVFdmVudCk7CgogICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdkZWFsZXJBcHBvaW50bWVudC5lbmQnKTsKCQkJCQl9CgoJCQkJfQoKCQkJCi8qKiAvanMvc2tlbGV0b24uYmVmb3JlLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzowMyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM3OjU3IjsidXNlIHN0cmljdCI7X19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyMy0wNi0wMSAxMjozMDoxOSI7InVzZSBzdHJpY3QiO2xldCAkanNjb21wJG51bGxpc2gkdG1wMDt3aW5kb3cuZ1NwZWVkQ29ubj1wYXJzZUludChNYXRoLmZsb29yKChEYXRlLm5vdygpLShudWxsIT0oJGpzY29tcCRudWxsaXNoJHRtcDA9d2luZG93LmdUZXN0U3BlZWRDb25uKT8kanNjb21wJG51bGxpc2gkdG1wMDowKSkvMUUzKSk7bGV0ICRqc2NvbXAkbnVsbGlzaCR0bXAxO2NvbnNvbGUubG9nKCJHU1BFRUQtQkVGT1JFOiIrKERhdGUubm93KCktKG51bGwhPSgkanNjb21wJG51bGxpc2gkdG1wMT13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pPyRqc2NvbXAkbnVsbGlzaCR0bXAxOjApKS8xRTMpOwovKiogL2pzL2pxdWVyeS5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjQ5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMxOjMzIjsidXNlIHN0cmljdCI7CiFmdW5jdGlvbihuLGRhKXsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uLmRvY3VtZW50P2RhKG4sITApOmZ1bmN0aW9uKHdhKXtpZighd2EuZG9jdW1lbnQpdGhyb3cgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gZGEod2EpfTpkYShuKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c\/d2luZG93OnRoaXMsZnVuY3Rpb24obixkYSl7ZnVuY3Rpb24gd2EoYSxiLGMpe3ZhciBlLGYsZz0oYz1jfHxMKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihnLnRleHQ9YSxiKWZvcihlIGluIExjKShmPWJbZV18fGIuZ2V0QXR0cmlidXRlJiZiLmdldEF0dHJpYnV0ZShlKSkmJmcuc2V0QXR0cmlidXRlKGUsZik7Yy5oZWFkLmFwcGVuZENoaWxkKGcpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyl9ZnVuY3Rpb24gVShhKXtyZXR1cm4gbnVsbD09YT9hKwoiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP01iW2tjLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX1mdW5jdGlvbiBlYihhKXt2YXIgYj0hIWEmJiJsZW5ndGgiaW4gYSYmYS5sZW5ndGgsYz1VKGEpO3JldHVybiFNKGEpJiYha2IoYSkmJigiYXJyYXkiPT09Y3x8MD09PWJ8fCJudW1iZXIiPT10eXBlb2YgYiYmMDxiJiZiLTEgaW4gYSl9ZnVuY3Rpb24gWChhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gYmEoYSxiKXtyZXR1cm4gYj8iXHgwMCI9PT1hPyJcdWZmZmQiOmEuc2xpY2UoMCwtMSkrIlxcIithLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2F9ZnVuY3Rpb24gamEoYSxiLGMpe3JldHVybiBNKGIpP2QuZ3JlcChhLGZ1bmN0aW9uKGUsZil7cmV0dXJuISFiLmNhbGwoZSxmLGUpIT09Y30pOmIubm9kZVR5cGU\/ZC5ncmVwKGEsCmZ1bmN0aW9uKGUpe3JldHVybiBlPT09YiE9PWN9KToic3RyaW5nIiE9dHlwZW9mIGI\/ZC5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuLTE8TmEuY2FsbChiLGUpIT09Y30pOmQuZmlsdGVyKGIsYSxjKX1mdW5jdGlvbiBsYihhLGIpe2Zvcig7KGE9YVtiXSkmJjEhPT1hLm5vZGVUeXBlOyk7cmV0dXJuIGF9ZnVuY3Rpb24gWWEoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gWmEoYSl7dGhyb3cgYTt9ZnVuY3Rpb24gbWIoYSxiLGMsZSl7dmFyIGY7dHJ5e2EmJk0oZj1hLnByb21pc2UpP2YuY2FsbChhKS5kb25lKGIpLmZhaWwoYyk6YSYmTShmPWEudGhlbik\/Zi5jYWxsKGEsYixjKTpiLmFwcGx5KHZvaWQgMCxbYV0uc2xpY2UoZSkpfWNhdGNoKGcpe2MuYXBwbHkodm9pZCAwLFtnXSl9fWZ1bmN0aW9uIE9hKCl7TC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixPYSk7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixPYSk7ZC5yZWFkeSgpfWZ1bmN0aW9uIE5iKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0KZnVuY3Rpb24gQmEoYSl7cmV0dXJuIGEucmVwbGFjZShNYywibXMtIikucmVwbGFjZShOYyxOYil9ZnVuY3Rpb24gSmEoKXt0aGlzLmV4cGFuZG89ZC5leHBhbmRvK0phLnVpZCsrfWZ1bmN0aW9uIE9iKGEsYixjKXt2YXIgZSxmO2lmKHZvaWQgMD09PWMmJjE9PT1hLm5vZGVUeXBlKWlmKGU9ImRhdGEtIitiLnJlcGxhY2UoT2MsIi0kJiIpLnRvTG93ZXJDYXNlKCksInN0cmluZyI9PXR5cGVvZihjPWEuZ2V0QXR0cmlidXRlKGUpKSl7dHJ5e2M9InRydWUiPT09KGY9Yyl8fCJmYWxzZSIhPT1mJiYoIm51bGwiPT09Zj9udWxsOmY9PT0rZisiIj8rZjpQYy50ZXN0KGYpP0pTT04ucGFyc2UoZik6Zil9Y2F0Y2goZyl7fXhhLnNldChhLGIsYyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY31mdW5jdGlvbiBQYihhLGIsYyxlKXt2YXIgZixnLGg9MjAsbT1lP2Z1bmN0aW9uKCl7cmV0dXJuIGUuY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIGQuY3NzKGEsYiwiIil9LGw9bSgpLHQ9YyYmY1szXXx8CihkLmNzc051bWJlcltiXT8iIjoicHgiKSx3PWEubm9kZVR5cGUmJihkLmNzc051bWJlcltiXXx8InB4IiE9PXQmJitsKSYmeWIuZXhlYyhkLmNzcyhhLGIpKTtpZih3JiZ3WzNdIT09dCl7bC89Mjt0PXR8fHdbM107Zm9yKHc9K2x8fDE7aC0tOylkLnN0eWxlKGEsYix3K3QpLDA+PSgxLWcpKigxLShnPW0oKS9sfHwuNSkpJiYoaD0wKSx3Lz1nO3cqPTI7ZC5zdHlsZShhLGIsdyt0KTtjPWN8fFtdfXJldHVybiBjJiYodz0rd3x8K2x8fDAsZj1jWzFdP3crKGNbMV0rMSkqY1syXTorY1syXSxlJiYoZS51bml0PXQsZS5zdGFydD13LGUuZW5kPWYpKSxmfWZ1bmN0aW9uICRhKGEsYil7Zm9yKHZhciBjLGUsZixnLGgsbSxsLHQ9W10sdz0wLHI9YS5sZW5ndGg7dzxyO3crKykoZT1hW3ddKS5zdHlsZSYmKGM9ZS5zdHlsZS5kaXNwbGF5LGI\/KCJub25lIj09PWMmJih0W3ddPUcuZ2V0KGUsImRpc3BsYXkiKXx8bnVsbCx0W3ddfHwoZS5zdHlsZS5kaXNwbGF5PSIiKSksIiI9PT1lLnN0eWxlLmRpc3BsYXkmJgpRYihlKSYmKHRbd109KGw9aD1nPXZvaWQgMCxoPShmPWUpLm93bmVyRG9jdW1lbnQsbT1mLm5vZGVOYW1lLChsPWxjW21dKXx8KGc9aC5ib2R5LmFwcGVuZENoaWxkKGguY3JlYXRlRWxlbWVudChtKSksbD1kLmNzcyhnLCJkaXNwbGF5IiksZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpLCJub25lIj09PWwmJihsPSJibG9jayIpLGxjW21dPWwpKSkpOiJub25lIiE9PWMmJih0W3ddPSJub25lIixHLnNldChlLCJkaXNwbGF5IixjKSkpO2Zvcih3PTA7dzxyO3crKyludWxsIT10W3ddJiYoYVt3XS5zdHlsZS5kaXNwbGF5PXRbd10pO3JldHVybiBhfWZ1bmN0aW9uIHNhKGEsYil7dmFyIGM7cmV0dXJuIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYnx8IioiKToidW5kZWZpbmVkIiE9dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbD9hLnF1ZXJ5U2VsZWN0b3JBbGwoYnx8IioiKTpbXSx2b2lkIDA9PT1ifHxiJiYKWChhLGIpP2QubWVyZ2UoW2FdLGMpOmN9ZnVuY3Rpb24gbmIoYSxiKXtmb3IodmFyIGM9MCxlPWEubGVuZ3RoO2M8ZTtjKyspRy5zZXQoYVtjXSwiZ2xvYmFsRXZhbCIsIWJ8fEcuZ2V0KGJbY10sImdsb2JhbEV2YWwiKSl9ZnVuY3Rpb24gUmIoYSxiLGMsZSxmKXtmb3IodmFyIGcsaCxtLGwsdD1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx3PVtdLHI9MCx6PWEubGVuZ3RoO3I8ejtyKyspaWYoKGc9YVtyXSl8fDA9PT1nKWlmKCJvYmplY3QiPT09VShnKSlkLm1lcmdlKHcsZy5ub2RlVHlwZT9bZ106Zyk7ZWxzZSBpZihRYy50ZXN0KGcpKXtoPWh8fHQuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSk7bT0obWMuZXhlYyhnKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKTttPUNhW21dfHxDYS5fZGVmYXVsdDtoLmlubmVySFRNTD1tWzFdK2QuaHRtbFByZWZpbHRlcihnKSttWzJdO2ZvcihtPW1bMF07bS0tOyloPWgubGFzdENoaWxkO2QubWVyZ2UodyxoLmNoaWxkTm9kZXMpOwooaD10LmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2Ugdy5wdXNoKGIuY3JlYXRlVGV4dE5vZGUoZykpO3QudGV4dENvbnRlbnQ9IiI7Zm9yKHI9MDtnPXdbcisrXTspaWYoZSYmLTE8ZC5pbkFycmF5KGcsZSkpZiYmZi5wdXNoKGcpO2Vsc2UgaWYobD1vYihnKSxoPXNhKHQuYXBwZW5kQ2hpbGQoZyksInNjcmlwdCIpLGwmJm5iKGgpLGMpZm9yKG09MDtnPWhbbSsrXTspbmMudGVzdChnLnR5cGV8fCIiKSYmYy5wdXNoKGcpO3JldHVybiB0fWZ1bmN0aW9uIGFiKCl7cmV0dXJuITB9ZnVuY3Rpb24gYmIoKXtyZXR1cm4hMX1mdW5jdGlvbiBmYihhLGIsYyxlLGYsZyl7dmFyIGgsbTtpZigib2JqZWN0Ij09dHlwZW9mIGIpe2ZvcihtIGluInN0cmluZyIhPXR5cGVvZiBjJiYoZT1lfHxjLGM9dm9pZCAwKSxiKWZiKGEsbSxjLGUsYlttXSxnKTtyZXR1cm4gYX1pZihudWxsPT1lJiZudWxsPT1mPyhmPWMsZT1jPXZvaWQgMCk6bnVsbD09ZiYmKCJzdHJpbmciPT10eXBlb2YgYz8oZj0KZSxlPXZvaWQgMCk6KGY9ZSxlPWMsYz12b2lkIDApKSwhMT09PWYpZj1iYjtlbHNlIGlmKCFmKXJldHVybiBhO3JldHVybiAxPT09ZyYmKGg9ZiwoZj1mdW5jdGlvbihsKXtyZXR1cm4gZCgpLm9mZihsKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLmd1aWQ9aC5ndWlkfHwoaC5ndWlkPWQuZ3VpZCsrKSksYS5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC5hZGQodGhpcyxiLGYsZSxjKX0pfWZ1bmN0aW9uIHBiKGEsYixjKXtjPyhHLnNldChhLGIsITEpLGQuZXZlbnQuYWRkKGEsYix7bmFtZXNwYWNlOiExLGhhbmRsZXI6ZnVuY3Rpb24oZSl7dmFyIGYsZz1HLmdldCh0aGlzLGIpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbYl0paWYoZykoZC5ldmVudC5zcGVjaWFsW2JdfHx7fSkuZGVsZWdhdGVUeXBlJiZlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2V7aWYoZz15YS5jYWxsKGFyZ3VtZW50cyksRy5zZXQodGhpcyxiLGcpLHRoaXNbYl0oKSxmPUcuZ2V0KHRoaXMsYiksRy5zZXQodGhpcyxiLAohMSksZyE9PWYpcmV0dXJuIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLGZ9ZWxzZSBnJiYoRy5zZXQodGhpcyxiLGQuZXZlbnQudHJpZ2dlcihnWzBdLGcuc2xpY2UoMSksdGhpcykpLGUuc3RvcFByb3BhZ2F0aW9uKCksZS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1hYil9fSkpOnZvaWQgMD09PUcuZ2V0KGEsYikmJmQuZXZlbnQuYWRkKGEsYixhYil9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gWChhLCJ0YWJsZSIpJiZYKDExIT09Yi5ub2RlVHlwZT9iOmIuZmlyc3RDaGlsZCwidHIiKSYmZChhKS5jaGlsZHJlbigidGJvZHkiKVswXXx8YX1mdW5jdGlvbiBxYihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSkrIi8iK2EudHlwZSxhfWZ1bmN0aW9uICRiKGEpe3JldHVybiJ0cnVlLyI9PT0oYS50eXBlfHwiIikuc2xpY2UoMCw1KT9hLnR5cGU9YS50eXBlLnNsaWNlKDUpOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksCmF9ZnVuY3Rpb24gZ2IoYSxiKXt2YXIgYyxlLGYsZyxoO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihHLmhhc0RhdGEoYSkmJihoPUcuZ2V0KGEpLmV2ZW50cykpZm9yKGUgaW4gRy5yZW1vdmUoYiwiaGFuZGxlIGV2ZW50cyIpLGgpe3ZhciBtPTA7Zm9yKGM9aFtlXS5sZW5ndGg7bTxjO20rKylkLmV2ZW50LmFkZChiLGUsaFtlXVttXSl9eGEuaGFzRGF0YShhKSYmKGY9eGEuYWNjZXNzKGEpLGc9ZC5leHRlbmQoe30sZikseGEuc2V0KGIsZykpfX1mdW5jdGlvbiBjYihhLGIsYyxlKXtiPW9jKGIpO3ZhciBmLGcsaCxtPTAsbD1hLmxlbmd0aCx0PWwtMSx3PWJbMF0scj1NKHcpO2lmKHJ8fDE8bCYmInN0cmluZyI9PXR5cGVvZiB3JiYhTi5jaGVja0Nsb25lJiZSYy50ZXN0KHcpKXJldHVybiBhLmVhY2goZnVuY3Rpb24oRCl7dmFyIEY9YS5lcShEKTtyJiYoYlswXT13LmNhbGwodGhpcyxELEYuaHRtbCgpKSk7Y2IoRixiLGMsZSl9KTtpZihsJiYoZz0oZj1SYihiLGFbMF0ub3duZXJEb2N1bWVudCwKITEsYSxlKSkuZmlyc3RDaGlsZCwxPT09Zi5jaGlsZE5vZGVzLmxlbmd0aCYmKGY9ZyksZ3x8ZSkpe2ZvcihoPShnPWQubWFwKHNhKGYsInNjcmlwdCIpLHFiKSkubGVuZ3RoO208bDttKyspe3ZhciB6PWY7bSE9PXQmJih6PWQuY2xvbmUoeiwhMCwhMCksaCYmZC5tZXJnZShnLHNhKHosInNjcmlwdCIpKSk7Yy5jYWxsKGFbbV0seixtKX1pZihoKWZvcihmPWdbZy5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxkLm1hcChnLCRiKSxtPTA7bTxoO20rKyl6PWdbbV0sbmMudGVzdCh6LnR5cGV8fCIiKSYmIUcuYWNjZXNzKHosImdsb2JhbEV2YWwiKSYmZC5jb250YWlucyhmLHopJiYoei5zcmMmJiJtb2R1bGUiIT09KHoudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk\/ZC5fZXZhbFVybCYmIXoubm9Nb2R1bGUmJmQuX2V2YWxVcmwoei5zcmMse25vbmNlOnoubm9uY2V8fHouZ2V0QXR0cmlidXRlKCJub25jZSIpfSxmKTp3YSh6LnRleHRDb250ZW50LnJlcGxhY2UoU2MsIiIpLHosZikpfXJldHVybiBhfQpmdW5jdGlvbiBUYihhLGIsYyl7Zm9yKHZhciBlPWI\/ZC5maWx0ZXIoYixhKTphLGY9MDtudWxsIT0oYj1lW2ZdKTtmKyspY3x8MSE9PWIubm9kZVR5cGV8fGQuY2xlYW5EYXRhKHNhKGIpKSxiLnBhcmVudE5vZGUmJihjJiZvYihiKSYmbmIoc2EoYiwic2NyaXB0IikpLGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gS2EoYSxiLGMpe3ZhciBlLGYsZyxoLG09YWMudGVzdChiKSxsPWEuc3R5bGU7cmV0dXJuKGM9Y3x8VWIoYSkpJiYoaD1jLmdldFByb3BlcnR5VmFsdWUoYil8fGNbYl0sbSYmaCYmKGg9aC5yZXBsYWNlKHpiLCIkMSIpfHx2b2lkIDApLCIiIT09aHx8b2IoYSl8fChoPWQuc3R5bGUoYSxiKSksIU4ucGl4ZWxCb3hTdHlsZXMoKSYmYmMudGVzdChoKSYmVGMudGVzdChiKSYmKGU9bC53aWR0aCxmPWwubWluV2lkdGgsZz1sLm1heFdpZHRoLGwubWluV2lkdGg9bC5tYXhXaWR0aD1sLndpZHRoPWgsaD1jLndpZHRoLGwud2lkdGg9ZSxsLm1pbldpZHRoPQpmLGwubWF4V2lkdGg9ZykpLHZvaWQgMCE9PWg\/aCsiIjpofWZ1bmN0aW9uIFZiKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe2lmKCFhKCkpcmV0dXJuKHRoaXMuZ2V0PWIpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgdGhpcy5nZXR9fX1mdW5jdGlvbiBBYihhKXt2YXIgYjtpZighKGI9ZC5jc3NQcm9wc1thXXx8cGNbYV0pKXtpZighKGEgaW4gcWMpKXthOntiPWE7Zm9yKHZhciBjPWJbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGU9cmMubGVuZ3RoO2UtLTspaWYoKGI9cmNbZV0rYylpbiBxYylicmVhayBhO2I9dm9pZCAwfWE9cGNbYV09Ynx8YX1iPWF9cmV0dXJuIGJ9ZnVuY3Rpb24gV2IoYSxiLGMpe3JldHVybihhPXliLmV4ZWMoYikpP01hdGgubWF4KDAsYVsyXS0oY3x8MCkpKyhhWzNdfHwicHgiKTpifWZ1bmN0aW9uIHJiKGEsYixjLGUsZixnKXt2YXIgaD0id2lkdGgiPT09Yj8xOjAsbT0wLGw9MCx0PTA7aWYoYz09PShlPyJib3JkZXIiOiJjb250ZW50IikpcmV0dXJuIDA7CmZvcig7ND5oO2grPTIpIm1hcmdpbiI9PT1jJiYodCs9ZC5jc3MoYSxjK1BhW2hdLCEwLGYpKSxlPygiY29udGVudCI9PT1jJiYobC09ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZikpLCJtYXJnaW4iIT09YyYmKGwtPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKSkpOihsKz1kLmNzcyhhLCJwYWRkaW5nIitQYVtoXSwhMCxmKSwicGFkZGluZyIhPT1jP2wrPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKTptKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpO3JldHVybiFlJiYwPD1nJiYobCs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoYVsib2Zmc2V0IitiWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKV0tZy1sLW0tLjUpKXx8MCksbCt0fWZ1bmN0aW9uIEJiKGEsYixjKXt2YXIgZT1VYihhKSxmPSghTi5ib3hTaXppbmdSZWxpYWJsZSgpfHxjKSYmImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxnPQpmLGg9S2EoYSxiLGUpLG09Im9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSk7aWYoYmMudGVzdChoKSl7aWYoIWMpcmV0dXJuIGg7aD0iYXV0byJ9cmV0dXJuKCFOLmJveFNpemluZ1JlbGlhYmxlKCkmJmZ8fCFOLnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJlgoYSwidHIiKXx8ImF1dG8iPT09aHx8IXBhcnNlRmxvYXQoaCkmJiJpbmxpbmUiPT09ZC5jc3MoYSwiZGlzcGxheSIsITEsZSkpJiZhLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoZj0iYm9yZGVyLWJveCI9PT1kLmNzcyhhLCJib3hTaXppbmciLCExLGUpLChnPW0gaW4gYSkmJihoPWFbbV0pKSwoaD1wYXJzZUZsb2F0KGgpfHwwKStyYihhLGIsY3x8KGY\/ImJvcmRlciI6ImNvbnRlbnQiKSxnLGUsaCkrInB4In1mdW5jdGlvbiB6YShhLGIsYyxlLGYpe3JldHVybiBuZXcgemEucHJvdG90eXBlLmluaXQoYSxiLGMsZSxmKX1mdW5jdGlvbiBDYigpe1hiJiYoITE9PT1MLmhpZGRlbiYmbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU\/Cm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKENiKTpuLnNldFRpbWVvdXQoQ2IsZC5meC5pbnRlcnZhbCksZC5meC50aWNrKCkpfWZ1bmN0aW9uIERiKCl7cmV0dXJuIG4uc2V0VGltZW91dChmdW5jdGlvbigpe3NiPXZvaWQgMH0pLHNiPURhdGUubm93KCl9ZnVuY3Rpb24gdGIoYSxiKXt2YXIgYyxlPTAsZj17aGVpZ2h0OmF9O2ZvcihiPWI\/MTowOzQ+ZTtlKz0yLWIpZlsibWFyZ2luIisoYz1QYVtlXSldPWZbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihmLm9wYWNpdHk9Zi53aWR0aD1hKSxmfWZ1bmN0aW9uIHUoYSxiLGMpe2Zvcih2YXIgZSxmPSh4LnR3ZWVuZXJzW2JdfHxbXSkuY29uY2F0KHgudHdlZW5lcnNbIioiXSksZz0wLGg9Zi5sZW5ndGg7ZzxoO2crKylpZihlPWZbZ10uY2FsbChjLGIsYSkpcmV0dXJuIGV9ZnVuY3Rpb24geChhLGIsYyl7dmFyIGUsZj0wLGc9eC5wcmVmaWx0ZXJzLmxlbmd0aCxoPWQuRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgbS5lbGVtfSksCm09ZnVuY3Rpb24oKXtpZihlKXJldHVybiExO3ZhciB0PXNifHxEYigpO3Q9TWF0aC5tYXgoMCxsLnN0YXJ0VGltZStsLmR1cmF0aW9uLXQpO2Zvcih2YXIgdz0xLSh0L2wuZHVyYXRpb258fDApLHI9MCx6PWwudHdlZW5zLmxlbmd0aDtyPHo7cisrKWwudHdlZW5zW3JdLnJ1bih3KTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2wsdyx0XSksMT53JiZ6P3Q6KHp8fGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbF0pLCExKX0sbD1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpkLmV4dGVuZCh7fSxiKSxvcHRzOmQuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpkLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOnNifHxEYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKHQsdyl7dD1kLlR3ZWVuKGEsbC5vcHRzLHQsdyxsLm9wdHMuc3BlY2lhbEVhc2luZ1t0XXx8Cmwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKHQpLHR9LHN0b3A6ZnVuY3Rpb24odCl7dmFyIHc9MCxyPXQ\/bC50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDt3PHI7dysrKWwudHdlZW5zW3ddLnJ1bigxKTtyZXR1cm4gdD8oaC5ub3RpZnlXaXRoKGEsW2wsMSwwXSksaC5yZXNvbHZlV2l0aChhLFtsLHRdKSk6aC5yZWplY3RXaXRoKGEsW2wsdF0pLHRoaXN9fSk7Yz1sLnByb3BzOyFmdW5jdGlvbih0LHcpe3ZhciByLHosRCxGLE87Zm9yKHIgaW4gdClpZihEPXdbej1CYShyKV0sRj10W3JdLEFycmF5LmlzQXJyYXkoRikmJihEPUZbMV0sRj10W3JdPUZbMF0pLHIhPT16JiYodFt6XT1GLGRlbGV0ZSB0W3JdKSwoTz1kLmNzc0hvb2tzW3pdKSYmImV4cGFuZCJpbiBPKWZvcihyIGluIEY9Ty5leHBhbmQoRiksZGVsZXRlIHRbel0sRilyIGluIHR8fCh0W3JdPUZbcl0sd1tyXT1EKTtlbHNlIHdbel09RH0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7CmZvcig7ZjxnO2YrKylpZihiPXgucHJlZmlsdGVyc1tmXS5jYWxsKGwsYSxjLGwub3B0cykpcmV0dXJuIE0oYi5zdG9wKSYmKGQuX3F1ZXVlSG9va3MobC5lbGVtLGwub3B0cy5xdWV1ZSkuc3RvcD1iLnN0b3AuYmluZChiKSksYjtyZXR1cm4gZC5tYXAoYyx1LGwpLE0obC5vcHRzLnN0YXJ0KSYmbC5vcHRzLnN0YXJ0LmNhbGwoYSxsKSxsLnByb2dyZXNzKGwub3B0cy5wcm9ncmVzcykuZG9uZShsLm9wdHMuZG9uZSxsLm9wdHMuY29tcGxldGUpLmZhaWwobC5vcHRzLmZhaWwpLmFsd2F5cyhsLm9wdHMuYWx3YXlzKSxkLmZ4LnRpbWVyKGQuZXh0ZW5kKG0se2VsZW06YSxhbmltOmwscXVldWU6bC5vcHRzLnF1ZXVlfSkpLGx9ZnVuY3Rpb24gQyhhKXtyZXR1cm4oYS5tYXRjaChMYSl8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gSChhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiBQKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpPwphOiJzdHJpbmciPT10eXBlb2YgYSYmYS5tYXRjaChMYSl8fFtdfWZ1bmN0aW9uIGVhKGEsYixjLGUpe3ZhciBmO2lmKEFycmF5LmlzQXJyYXkoYikpZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXtjfHxVYy50ZXN0KGEpP2UoYSxoKTplYShhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBoJiZudWxsIT1oP2c6IiIpKyJdIixoLGMsZSl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09VShiKSllKGEsYik7ZWxzZSBmb3IoZiBpbiBiKWVhKGErIlsiK2YrIl0iLGJbZl0sYyxlKX1mdW5jdGlvbiBRYShhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWIsYj0iKiIpO3ZhciBlPTAsZj1iLnRvTG93ZXJDYXNlKCkubWF0Y2goTGEpfHxbXTtpZihNKGMpKWZvcig7Yj1mW2UrK107KSIrIj09PWJbMF0\/KGI9Yi5zbGljZSgxKXx8IioiLChhW2JdPWFbYl18fFtdKS51bnNoaWZ0KGMpKTooYVtiXT1hW2JdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gRWIoYSxiLGMsZSl7ZnVuY3Rpb24gZihtKXt2YXIgbDsKcmV0dXJuIGdbbV09ITAsZC5lYWNoKGFbbV18fFtdLGZ1bmN0aW9uKHQsdyl7dD13KGIsYyxlKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHR8fGh8fGdbdF0\/aD8hKGw9dCk6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KHQpLGYodCksITEpfSksbH12YXIgZz17fSxoPWE9PT1jYztyZXR1cm4gZihiLmRhdGFUeXBlc1swXSl8fCFnWyIqIl0mJmYoIioiKX1mdW5jdGlvbiBoYihhLGIpe3ZhciBjLGUsZj1kLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGMgaW4gYil2b2lkIDAhPT1iW2NdJiYoKGZbY10\/YTplfHwoZT17fSkpW2NdPWJbY10pO3JldHVybiBlJiZkLmV4dGVuZCghMCxhLGUpLGF9dmFyIG9hPVtdLHNjPU9iamVjdC5nZXRQcm90b3R5cGVPZix5YT1vYS5zbGljZSxvYz1vYS5mbGF0P2Z1bmN0aW9uKGEpe3JldHVybiBvYS5mbGF0LmNhbGwoYSl9OmZ1bmN0aW9uKGEpe3JldHVybiBvYS5jb25jYXQuYXBwbHkoW10sYSl9LHViPW9hLnB1c2gsTmE9b2EuaW5kZXhPZiwKTWI9e30sa2M9TWIudG9TdHJpbmcsRmI9TWIuaGFzT3duUHJvcGVydHksdGM9RmIudG9TdHJpbmcsVmM9dGMuY2FsbChPYmplY3QpLE49e30sTT1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYSYmIm51bWJlciIhPXR5cGVvZiBhLm5vZGVUeXBlJiYiZnVuY3Rpb24iIT10eXBlb2YgYS5pdGVtfSxrYj1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09PWEud2luZG93fSxMPW4uZG9jdW1lbnQsTGM9e3R5cGU6ITAsc3JjOiEwLG5vbmNlOiEwLG5vTW9kdWxlOiEwfSxXYz0vSFRNTCQvaSxkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBkLmZuLmluaXQoYSxiKX07ZC5mbj1kLnByb3RvdHlwZT17anF1ZXJ5OiIzLjcuMCIsY29uc3RydWN0b3I6ZCxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHlhLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT95YS5jYWxsKHRoaXMpOjA+YT90aGlzW2ErdGhpcy5sZW5ndGhdOnRoaXNbYV19LApwdXNoU3RhY2s6ZnVuY3Rpb24oYSl7YT1kLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYS5wcmV2T2JqZWN0PXRoaXMsYX0sZWFjaDpmdW5jdGlvbihhKXtyZXR1cm4gZC5lYWNoKHRoaXMsYSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayh5YS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuZ3JlcCh0aGlzLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGIrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuZ3JlcCh0aGlzLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGIlCjJ9KSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoO2E9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjaygwPD1hJiZhPGI\/W3RoaXNbYV1dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcigpfSxwdXNoOnViLHNvcnQ6b2Euc29ydCxzcGxpY2U6b2Euc3BsaWNlfTtkLmV4dGVuZD1kLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhLGIsYyxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxtPWFyZ3VtZW50cy5sZW5ndGgsbD0hMTsiYm9vbGVhbiI9PXR5cGVvZiBnJiYobD1nLGc9YXJndW1lbnRzW2hdfHx7fSxoKyspOyJvYmplY3QiPT10eXBlb2YgZ3x8TShnKXx8KGc9e30pO2ZvcihoPT09bSYmKGc9dGhpcyxoLS0pO2g8bTtoKyspaWYobnVsbCE9KGE9YXJndW1lbnRzW2hdKSlmb3IoYiBpbiBhKXt2YXIgdD1hW2JdOyJfX3Byb3RvX18iIT09YiYmZyE9PXQmJihsJiZ0JiYoZC5pc1BsYWluT2JqZWN0KHQpfHwKKGU9QXJyYXkuaXNBcnJheSh0KSkpPyhjPWdbYl0sZj1lJiYhQXJyYXkuaXNBcnJheShjKT9bXTplfHxkLmlzUGxhaW5PYmplY3QoYyk\/Yzp7fSxlPSExLGdbYl09ZC5leHRlbmQobCxmLHQpKTp2b2lkIDAhPT10JiYoZ1tiXT10KSl9cmV0dXJuIGd9O2QuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKygiMy43LjAiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgRXJyb3IoYSk7fSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiLGM7cmV0dXJuISghYXx8IltvYmplY3QgT2JqZWN0XSIhPT1rYy5jYWxsKGEpKSYmKCEoYj1zYyhhKSl8fCJmdW5jdGlvbiI9PXR5cGVvZihjPUZiLmNhbGwoYiwiY29uc3RydWN0b3IiKSYmYi5jb25zdHJ1Y3RvcikmJnRjLmNhbGwoYyk9PT1WYyl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LApnbG9iYWxFdmFsOmZ1bmN0aW9uKGEsYixjKXt3YShhLHtub25jZTpiJiZiLm5vbmNlfSxjKX0sZWFjaDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MDtpZihlYihhKSlmb3IoYz1hLmxlbmd0aDtlPGMmJiExIT09Yi5jYWxsKGFbZV0sZSxhW2VdKTtlKyspO2Vsc2UgZm9yKGUgaW4gYSlpZighMT09PWIuY2FsbChhW2VdLGUsYVtlXSkpYnJlYWs7cmV0dXJuIGF9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixlPTA7aWYoYj1hLm5vZGVUeXBlKXtpZigxPT09Ynx8OT09PWJ8fDExPT09YilyZXR1cm4gYS50ZXh0Q29udGVudDtpZigzPT09Ynx8ND09PWIpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2UgZm9yKDtiPWFbZSsrXTspYys9ZC50ZXh0KGIpO3JldHVybiBjfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXtiPWJ8fFtdO3JldHVybiBudWxsIT1hJiYoZWIoT2JqZWN0KGEpKT9kLm1lcmdlKGIsInN0cmluZyI9PXR5cGVvZiBhP1thXTphKTp1Yi5jYWxsKGIsYSkpLGJ9LGluQXJyYXk6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4gbnVsbD09Yj8tMTpOYS5jYWxsKGIsYSxjKX0saXNYTUxEb2M6ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiFXYy50ZXN0KGEmJmEubmFtZXNwYWNlVVJJfHxiJiZiLm5vZGVOYW1lfHwiSFRNTCIpfSxtZXJnZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0rYi5sZW5ndGgsZT0wLGY9YS5sZW5ndGg7ZTxjO2UrKylhW2YrK109YltlXTtyZXR1cm4gYS5sZW5ndGg9ZixhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1bXSxmPTAsZz1hLmxlbmd0aDtmb3IoYz0hYztmPGc7ZisrKSFiKGFbZl0sZikhPT1jJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPTAsaD1bXTtpZihlYihhKSlmb3IoZT1hLmxlbmd0aDtnPGU7ZysrKW51bGwhPShmPWIoYVtnXSxnLGMpKSYmaC5wdXNoKGYpO2Vsc2UgZm9yKGcgaW4gYSludWxsIT0oZj1iKGFbZ10sZyxjKSkmJgpoLnB1c2goZik7cmV0dXJuIG9jKGgpfSxndWlkOjEsc3VwcG9ydDpOfSk7ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGQuZm5bU3ltYm9sLml0ZXJhdG9yXT1vYVtTeW1ib2wuaXRlcmF0b3JdKTtkLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7TWJbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7dmFyIFhjPW9hLnBvcCxZYz1vYS5zb3J0LFpjPW9hLnNwbGljZSx6Yj1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdK3woKD86XnxbXlxcXFxdKSg\/OlxcXFwuKSopW1xceDIwXFx0XFxyXFxuXFxmXSskIiwiZyIpO2QuY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtiPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWJ8fCEoIWJ8fDEhPT1iLm5vZGVUeXBlfHwhKGEuY29udGFpbnM\/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYKMTYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSkpfTt2YXIgJGM9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZztkLmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKCRjLGJhKX07dmFyIFJhPUw7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShrLHAscSx2KXt2YXIgeSxFLEEsSSxCPXAmJnAub3duZXJEb2N1bWVudCxKPXA\/cC5ub2RlVHlwZTo5O2lmKHE9cXx8W10sInN0cmluZyIhPXR5cGVvZiBrfHwha3x8MSE9PUomJjkhPT1KJiYxMSE9PUopcmV0dXJuIHE7aWYoIXYmJih0KHApLHA9cHx8Wix2YSkpe2lmKDExIT09SiYmKEk9YWQuZXhlYyhrKSkpaWYoeT1JWzFdKWlmKDk9PT1KKXtpZighKEU9cC5nZXRFbGVtZW50QnlJZCh5KSkpcmV0dXJuIHE7aWYoRS5pZD09PXkpcmV0dXJuIHRhLmNhbGwocSxFKSxxfWVsc2V7aWYoQiYmKEU9Qi5nZXRFbGVtZW50QnlJZCh5KSkmJmEuY29udGFpbnMocCxFKSYmRS5pZD09PQp5KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKElbMl0pcmV0dXJuIHRhLmFwcGx5KHEscC5nZXRFbGVtZW50c0J5VGFnTmFtZShrKSkscTtpZigoeT1JWzNdKSYmcC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh5KSkscX1pZighKFlbaysiICJdfHxrYSYma2EudGVzdChrKSkpe2lmKHk9ayxCPXAsMT09PUomJih2Yi50ZXN0KGspfHxIYS50ZXN0KGspKSl7KEI9ZGMudGVzdChrKSYmbChwLnBhcmVudE5vZGUpfHxwKT09cCYmTi5zY29wZXx8KChBPXAuZ2V0QXR0cmlidXRlKCJpZCIpKT9BPWQuZXNjYXBlU2VsZWN0b3IoQSk6cC5zZXRBdHRyaWJ1dGUoImlkIixBPVcpKTtmb3IoSj0oeT1yKGspKS5sZW5ndGg7Si0tOyl5W0pdPShBPyIjIitBOiI6c2NvcGUiKSsiICIreih5W0pdKTt5PXkuam9pbigiLCIpfXRyeXtyZXR1cm4gdGEuYXBwbHkocSxCLnF1ZXJ5U2VsZWN0b3JBbGwoeSkpLHF9Y2F0Y2goUil7WShrLAohMCl9ZmluYWxseXtBPT09VyYmcC5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gU2Eoay5yZXBsYWNlKHpiLCIkMSIpLHAscSx2KX1mdW5jdGlvbiBiKCl7dmFyIGs9W107cmV0dXJuIGZ1bmN0aW9uIHkocSx2KXtyZXR1cm4gay5wdXNoKHErIiAiKT5LLmNhY2hlTGVuZ3RoJiZkZWxldGUgeVtrLnNoaWZ0KCldLHlbcSsiICJdPXZ9fWZ1bmN0aW9uIGMoayl7cmV0dXJuIGtbV109ITAsa31mdW5jdGlvbiBlKGspe3ZhciBwPVouY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTt0cnl7cmV0dXJuISFrKHApfWNhdGNoKHEpe3JldHVybiExfWZpbmFsbHl7cC5wYXJlbnROb2RlJiZwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocCl9fWZ1bmN0aW9uIGYoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiBYKHAsImlucHV0IikmJnAudHlwZT09PWt9fWZ1bmN0aW9uIGcoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybihYKHAsImlucHV0Iil8fFgocCwiYnV0dG9uIikpJiZwLnR5cGU9PT0Ka319ZnVuY3Rpb24gaChrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuImZvcm0iaW4gcD9wLnBhcmVudE5vZGUmJiExPT09cC5kaXNhYmxlZD8ibGFiZWwiaW4gcD8ibGFiZWwiaW4gcC5wYXJlbnROb2RlP3AucGFyZW50Tm9kZS5kaXNhYmxlZD09PWs6cC5kaXNhYmxlZD09PWs6cC5pc0Rpc2FibGVkPT09a3x8cC5pc0Rpc2FibGVkIT09IWsmJmJkKHApPT09azpwLmRpc2FibGVkPT09azoibGFiZWwiaW4gcCYmcC5kaXNhYmxlZD09PWt9fWZ1bmN0aW9uIG0oayl7cmV0dXJuIGMoZnVuY3Rpb24ocCl7cmV0dXJuIHA9K3AsYyhmdW5jdGlvbihxLHYpe2Zvcih2YXIgeSxFPWsoW10scS5sZW5ndGgscCksQT1FLmxlbmd0aDtBLS07KXFbeT1FW0FdXSYmKHFbeV09ISh2W3ldPXFbeV0pKX0pfSl9ZnVuY3Rpb24gbChrKXtyZXR1cm4gayYmInVuZGVmaW5lZCIhPXR5cGVvZiBrLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZrfWZ1bmN0aW9uIHQoayl7dmFyIHA7az1rP2sub3duZXJEb2N1bWVudHx8Cms6UmE7cmV0dXJuIGshPVomJjk9PT1rLm5vZGVUeXBlJiZrLmRvY3VtZW50RWxlbWVudCYmKHJhPShaPWspLmRvY3VtZW50RWxlbWVudCx2YT0hZC5pc1hNTERvYyhaKSxNYT1yYS5tYXRjaGVzfHxyYS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHJhLm1zTWF0Y2hlc1NlbGVjdG9yLFJhIT1aJiYocD1aLmRlZmF1bHRWaWV3KSYmcC50b3AhPT1wJiZwLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsY2QpLE4uZ2V0QnlJZD1lKGZ1bmN0aW9uKHEpe3JldHVybiByYS5hcHBlbmRDaGlsZChxKS5pZD1kLmV4cGFuZG8sIVouZ2V0RWxlbWVudHNCeU5hbWV8fCFaLmdldEVsZW1lbnRzQnlOYW1lKGQuZXhwYW5kbykubGVuZ3RofSksTi5kaXNjb25uZWN0ZWRNYXRjaD1lKGZ1bmN0aW9uKHEpe3JldHVybiBNYS5jYWxsKHEsIioiKX0pLE4uc2NvcGU9ZShmdW5jdGlvbigpe3JldHVybiBaLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSIpfSksTi5jc3NIYXM9ZShmdW5jdGlvbigpe3RyeXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yKCI6aGFzKCosOmpxZmFrZSkiKSwKITF9Y2F0Y2gocSl7cmV0dXJuITB9fSksTi5nZXRCeUlkPyhLLmZpbHRlci5JRD1mdW5jdGlvbihxKXt2YXIgdj1xLnJlcGxhY2UoVGEsVWEpO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geS5nZXRBdHRyaWJ1dGUoImlkIik9PT12fX0sSy5maW5kLklEPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRCeUlkJiZ2YSlyZXR1cm4ocT12LmdldEVsZW1lbnRCeUlkKHEpKT9bcV06W119KTooSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuKHk9InVuZGVmaW5lZCIhPXR5cGVvZiB5LmdldEF0dHJpYnV0ZU5vZGUmJnkuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJnkudmFsdWU9PT12fX0sSy5maW5kLklEPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRCeUlkJiZ2YSl7dmFyIHksRT12LmdldEVsZW1lbnRCeUlkKHEpO2lmKEUpe2lmKCh5PQpFLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09cSlyZXR1cm5bRV07dmFyIEE9di5nZXRFbGVtZW50c0J5TmFtZShxKTtmb3Iodj0wO0U9QVt2KytdOylpZigoeT1FLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09cSlyZXR1cm5bRV19cmV0dXJuW119fSksSy5maW5kLlRBRz1mdW5jdGlvbihxLHYpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5VGFnTmFtZT92LmdldEVsZW1lbnRzQnlUYWdOYW1lKHEpOnYucXVlcnlTZWxlY3RvckFsbChxKX0sSy5maW5kLkNMQVNTPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnZhKXJldHVybiB2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUocSl9LGthPVtdLGUoZnVuY3Rpb24ocSl7dmFyIHY7cmEuYXBwZW5kQ2hpbGQocSkuaW5uZXJIVE1MPSI8YSBpZD0nIitXKyInIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBpZD0nIisKVysiLVxyXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iO3EucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8a2EucHVzaCgiXFxbW1xceDIwXFx0XFxyXFxuXFxmXSooPzp2YWx1ZXxjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCkiKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitXKyItXSIpLmxlbmd0aHx8a2EucHVzaCgifj0iKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitXKyIrKiIpLmxlbmd0aHx8a2EucHVzaCgiLiMuK1srfl0iKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxrYS5wdXNoKCI6Y2hlY2tlZCIpOyh2PVouY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwKImhpZGRlbiIpO3EuYXBwZW5kQ2hpbGQodikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpO3JhLmFwcGVuZENoaWxkKHEpLmRpc2FibGVkPSEwOzIhPT1xLnF1ZXJ5U2VsZWN0b3JBbGwoIjpkaXNhYmxlZCIpLmxlbmd0aCYma2EucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpO3EuYXBwZW5kQ2hpbGQodik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qbmFtZVtcXHgyMFxcdFxcclxcblxcZl0qPVtcXHgyMFxcdFxcclxcblxcZl0qKD86Jyd8XCJcIikiKX0pLE4uY3NzSGFzfHxrYS5wdXNoKCI6aGFzIiksa2E9a2EubGVuZ3RoJiZuZXcgUmVnRXhwKGthLmpvaW4oInwiKSksbGE9ZnVuY3Rpb24ocSx2KXtpZihxPT09dilyZXR1cm4gaWI9ITAsMDt2YXIgeT0hcS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjsKcmV0dXJuIHl8fCgxJih5PShxLm93bmVyRG9jdW1lbnR8fHEpPT0odi5vd25lckRvY3VtZW50fHx2KT9xLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHYpOjEpfHwhTi5zb3J0RGV0YWNoZWQmJnYuY29tcGFyZURvY3VtZW50UG9zaXRpb24ocSk9PT15P3E9PT1afHxxLm93bmVyRG9jdW1lbnQ9PVJhJiZhLmNvbnRhaW5zKFJhLHEpPy0xOnY9PT1afHx2Lm93bmVyRG9jdW1lbnQ9PVJhJiZhLmNvbnRhaW5zKFJhLHYpPzE6aGE\/TmEuY2FsbChoYSxxKS1OYS5jYWxsKGhhLHYpOjA6NCZ5Py0xOjEpfSksWn1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIHIoayxwKXt2YXIgcSx2LHksRSxBLEk7aWYoQT1WYVtrKyIgIl0pcmV0dXJuIHA\/MDpBLnNsaWNlKDApO0E9azt2YXIgQj1bXTtmb3IoST1LLnByZUZpbHRlcjtBOyl7Zm9yKEUgaW4gcSYmISh2PW1hLmV4ZWMoQSkpfHwodiYmKEE9QS5zbGljZSh2WzBdLmxlbmd0aCl8fEEpLEIucHVzaCh5PVtdKSkscT0hMSwodj1IYS5leGVjKEEpKSYmKHE9CnYuc2hpZnQoKSx5LnB1c2goe3ZhbHVlOnEsdHlwZTp2WzBdLnJlcGxhY2UoemIsIiAiKX0pLEE9QS5zbGljZShxLmxlbmd0aCkpLEsuZmlsdGVyKSEodj1ZYltFXS5leGVjKEEpKXx8SVtFXSYmISh2PUlbRV0odikpfHwocT12LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6RSxtYXRjaGVzOnZ9KSxBPUEuc2xpY2UocS5sZW5ndGgpKTtpZighcSlicmVha31yZXR1cm4gcD9BLmxlbmd0aDpBP2EuZXJyb3Ioayk6VmEoayxCKS5zbGljZSgwKX1mdW5jdGlvbiB6KGspe2Zvcih2YXIgcD0wLHE9ay5sZW5ndGgsdj0iIjtwPHE7cCsrKXYrPWtbcF0udmFsdWU7cmV0dXJuIHZ9ZnVuY3Rpb24gRChrLHAscSl7dmFyIHY9cC5kaXIseT1wLm5leHQsRT15fHx2LEE9cSYmInBhcmVudE5vZGUiPT09RSxJPURhKys7cmV0dXJuIHAuZmlyc3Q\/ZnVuY3Rpb24oQixKLFIpe2Zvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlyZXR1cm4gayhCLEosUik7cmV0dXJuITF9OmZ1bmN0aW9uKEIsCkosUil7dmFyIFQsVixpYT1bZmEsSV07aWYoUilmb3IoO0I9Qlt2XTspe2lmKCgxPT09Qi5ub2RlVHlwZXx8QSkmJmsoQixKLFIpKXJldHVybiEwfWVsc2UgZm9yKDtCPUJbdl07KWlmKDE9PT1CLm5vZGVUeXBlfHxBKWlmKFY9QltXXXx8KEJbV109e30pLHkmJlgoQix5KSlCPUJbdl18fEI7ZWxzZXtpZigoVD1WW0VdKSYmVFswXT09PWZhJiZUWzFdPT09SSlyZXR1cm4gaWFbMl09VFsyXTtpZigoVltFXT1pYSlbMl09ayhCLEosUikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIEYoayl7cmV0dXJuIDE8ay5sZW5ndGg\/ZnVuY3Rpb24ocCxxLHYpe2Zvcih2YXIgeT1rLmxlbmd0aDt5LS07KWlmKCFrW3ldKHAscSx2KSlyZXR1cm4hMTtyZXR1cm4hMH06a1swXX1mdW5jdGlvbiBPKGsscCxxLHYseSl7Zm9yKHZhciBFLEE9W10sST0wLEI9ay5sZW5ndGgsSj1udWxsIT1wO0k8QjtJKyspKEU9a1tJXSkmJihxJiYhcShFLHYseSl8fChBLnB1c2goRSksSiYmcC5wdXNoKEkpKSk7cmV0dXJuIEF9CmZ1bmN0aW9uIGFhKGsscCxxLHYseSxFKXtyZXR1cm4gdiYmIXZbV10mJih2PWFhKHYpKSx5JiYheVtXXSYmKHk9YWEoeSxFKSksYyhmdW5jdGlvbihBLEksQixKKXt2YXIgUixULFY9W10saWE9W10scGE9SS5sZW5ndGgsbmE7aWYoIShuYT1BKSl7bmE9cHx8IioiO2Zvcih2YXIgRWE9Qi5ub2RlVHlwZT9bQl06QixjYT1bXSxBYT0wLFdhPUVhLmxlbmd0aDtBYTxXYTtBYSsrKWEobmEsRWFbQWFdLGNhKTtuYT1jYX1uYT0ha3x8IUEmJnA\/bmE6TyhuYSxWLGssQixKKTtpZihxP3EobmEsVD15fHwoQT9rOnBhfHx2KT9bXTpJLEIsSik6VD1uYSx2KXt2YXIgRmE9TyhULGlhKTt2KEZhLFtdLEIsSik7Zm9yKEI9RmEubGVuZ3RoO0ItLTspKFI9RmFbQl0pJiYoVFtpYVtCXV09IShuYVtpYVtCXV09UikpfWlmKEEpe2lmKHl8fGspe2lmKHkpe0ZhPVtdO2ZvcihCPVQubGVuZ3RoO0ItLTspKFI9VFtCXSkmJkZhLnB1c2gobmFbQl09Uik7eShudWxsLFQ9W10sRmEsSil9Zm9yKEI9VC5sZW5ndGg7Qi0tOykoUj0KVFtCXSkmJi0xPChGYT15P05hLmNhbGwoQSxSKTpWW0JdKSYmKEFbRmFdPSEoSVtGYV09UikpfX1lbHNlIFQ9TyhUPT09ST9ULnNwbGljZShwYSxULmxlbmd0aCk6VCkseT95KG51bGwsSSxULEopOnRhLmFwcGx5KEksVCl9KX1mdW5jdGlvbiBHYShrKXtmb3IodmFyIHAscSx2PWsubGVuZ3RoLHk9Sy5yZWxhdGl2ZVtrWzBdLnR5cGVdLEU9eXx8Sy5yZWxhdGl2ZVsiICJdLEE9eT8xOjAsST1EKGZ1bmN0aW9uKFIpe3JldHVybiBSPT09cH0sRSwhMCksQj1EKGZ1bmN0aW9uKFIpe3JldHVybi0xPE5hLmNhbGwocCxSKX0sRSwhMCksSj1bZnVuY3Rpb24oUixULFYpe1I9IXkmJihWfHxUIT1TKXx8KChwPVQpLm5vZGVUeXBlP0koUixULFYpOkIoUixULFYpKTtyZXR1cm4gcD1udWxsLFJ9XTtBPHY7QSsrKWlmKEU9Sy5yZWxhdGl2ZVtrW0FdLnR5cGVdKUo9W0QoRihKKSxFKV07ZWxzZXtpZigoRT1LLmZpbHRlcltrW0FdLnR5cGVdLmFwcGx5KG51bGwsa1tBXS5tYXRjaGVzKSlbV10pe2ZvcihxPQorK0E7cTx2JiYhSy5yZWxhdGl2ZVtrW3FdLnR5cGVdO3ErKyk7cmV0dXJuIGFhKDE8QSYmRihKKSwxPEEmJnooay5zbGljZSgwLEEtMSkuY29uY2F0KHt2YWx1ZToiICI9PT1rW0EtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZSh6YiwiJDEiKSxFLEE8cSYmR2Eoay5zbGljZShBLHEpKSxxPHYmJkdhKGs9ay5zbGljZShxKSkscTx2JiZ6KGspKX1KLnB1c2goRSl9cmV0dXJuIEYoSil9ZnVuY3Rpb24gcWEoayxwKXt2YXIgcSx2LHksRSxBPVtdLEk9W10sQj11YVtrKyIgIl07aWYoIUIpe3B8fChwPXIoaykpO2ZvcihxPXAubGVuZ3RoO3EtLTspKEI9R2EocFtxXSkpW1ddP0EucHVzaChCKTpJLnB1c2goQik7KEI9dWEoaywodj0wPEEubGVuZ3RoLHk9MDxJLmxlbmd0aCxFPWZ1bmN0aW9uKEosUixULFYsaWEpe3ZhciBwYSxuYSxFYT0wLGNhPSIwIixBYT1KJiZbXSxXYT1bXSxGYT1TLHVjPUp8fHkmJksuZmluZC5UQUcoIioiLGlhKSx2Yz1mYSs9bnVsbD09RmE\/MTpNYXRoLnJhbmRvbSgpfHwKLjEsZGQ9dWMubGVuZ3RoO2ZvcihpYSYmKFM9Uj09Wnx8Unx8aWEpO2NhIT09ZGQmJm51bGwhPShwYT11Y1tjYV0pO2NhKyspe2lmKHkmJnBhKXt2YXIgZWM9MDtmb3IoUnx8cGEub3duZXJEb2N1bWVudD09Wnx8KHQocGEpLFQ9IXZhKTtuYT1JW2VjKytdOylpZihuYShwYSxSfHxaLFQpKXt0YS5jYWxsKFYscGEpO2JyZWFrfWlhJiYoZmE9dmMpfXYmJigocGE9IW5hJiZwYSkmJkVhLS0sSiYmQWEucHVzaChwYSkpfWlmKEVhKz1jYSx2JiZjYSE9PUVhKXtmb3IoZWM9MDtuYT1BW2VjKytdOyluYShBYSxXYSxSLFQpO2lmKEope2lmKDA8RWEpZm9yKDtjYS0tOylBYVtjYV18fFdhW2NhXXx8KFdhW2NhXT1YYy5jYWxsKFYpKTtXYT1PKFdhKX10YS5hcHBseShWLFdhKTtpYSYmIUomJjA8V2EubGVuZ3RoJiYxPEVhK0EubGVuZ3RoJiZkLnVuaXF1ZVNvcnQoVil9cmV0dXJuIGlhJiYoZmE9dmMsUz1GYSksQWF9LHY\/YyhFKTpFKSkpLnNlbGVjdG9yPWt9cmV0dXJuIEJ9ZnVuY3Rpb24gU2EoaywKcCxxLHYpe3ZhciB5LEUsQSxJLEIsSj0iZnVuY3Rpb24iPT10eXBlb2YgayYmayxSPSF2JiZyKGs9Si5zZWxlY3Rvcnx8ayk7aWYocT1xfHxbXSwxPT09Ui5sZW5ndGgpe2lmKDI8KEU9UlswXT1SWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oQT1FWzBdKS50eXBlJiY5PT09cC5ub2RlVHlwZSYmdmEmJksucmVsYXRpdmVbRVsxXS50eXBlXSl7aWYoIShwPShLLmZpbmQuSUQoQS5tYXRjaGVzWzBdLnJlcGxhY2UoVGEsVWEpLHApfHxbXSlbMF0pKXJldHVybiBxO0omJihwPXAucGFyZW50Tm9kZSk7az1rLnNsaWNlKEUuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcih5PVliLm5lZWRzQ29udGV4dC50ZXN0KGspPzA6RS5sZW5ndGg7eS0tJiYoQT1FW3ldLCFLLnJlbGF0aXZlW0k9QS50eXBlXSk7KWlmKChCPUsuZmluZFtJXSkmJih2PUIoQS5tYXRjaGVzWzBdLnJlcGxhY2UoVGEsVWEpLGRjLnRlc3QoRVswXS50eXBlKSYmbChwLnBhcmVudE5vZGUpfHxwKSkpe2lmKEUuc3BsaWNlKHksCjEpLCEoaz12Lmxlbmd0aCYmeihFKSkpcmV0dXJuIHRhLmFwcGx5KHEsdikscTticmVha319cmV0dXJuKEp8fHFhKGssUikpKHYscCwhdmEscSwhcHx8ZGMudGVzdChrKSYmbChwLnBhcmVudE5vZGUpfHxwKSxxfXZhciBRLEssUyxoYSxpYixaLHJhLHZhLGthLE1hLHRhPXViLFc9ZC5leHBhbmRvLGZhPTAsRGE9MCxkYj1iKCksVmE9YigpLHVhPWIoKSxZPWIoKSxsYT1mdW5jdGlvbihrLHApe3JldHVybiBrPT09cCYmKGliPSEwKSwwfSxJYT1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl0rIiwiZyIpLG1hPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qLFtcXHgyMFxcdFxcclxcblxcZl0qIiksSGE9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSooWz4rfl18W1xceDIwXFx0XFxyXFxuXFxmXSlbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLHZiPVJlZ0V4cCgiW1xceDIwXFx0XFxyXFxuXFxmXXw+IiksZmM9UmVnRXhwKCI6KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfFxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0pKil8LiopXFwpfCkiKSwKZWQ9UmVnRXhwKCJeKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSskIiksWWI9e0lEOlJlZ0V4cCgiXiMoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspIiksQ0xBU1M6UmVnRXhwKCJeXFwuKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLFRBRzpSZWdFeHAoIl4oKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSt8WypdKSIpLEFUVFI6UmVnRXhwKCJeXFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSIpLApQU0VVRE86UmVnRXhwKCJeOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCkNISUxEOlJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoW1xceDIwXFx0XFxyXFxuXFxmXSooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufClbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OihbKy1dfClbXFx4MjBcXHRcXHJcXG5cXGZdKihcXGQrKXwpKVtcXHgyMFxcdFxcclxcblxcZl0qXFwpfCkiLCJpIiksYm9vbDpSZWdFeHAoIl4oPzpjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCkkIiwiaSIpLG5lZWRzQ29udGV4dDpSZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoW1xceDIwXFx0XFxyXFxuXFxmXSooKD86LVxcZCk\/XFxkKilbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpKD89W14tXXwkKSIsCiJpIil9LGZkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksZ2Q9L15oXGQkL2ksYWQ9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxkYz0vWyt+XS8sVGE9UmVnRXhwKCJcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFwoW15cXHJcXG5cXGZdKSIsImciKSxVYT1mdW5jdGlvbihrLHApe2s9IjB4IitrLnNsaWNlKDEpLTY1NTM2O3JldHVybiBwfHwoMD5rP1N0cmluZy5mcm9tQ2hhckNvZGUoays2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShrPj4xMHw1NTI5NiwxMDIzJmt8NTYzMjApKX0sY2Q9ZnVuY3Rpb24oKXt0KCl9LGJkPUQoZnVuY3Rpb24oayl7cmV0dXJuITA9PT1rLmRpc2FibGVkJiZYKGssImZpZWxkc2V0Iil9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7dGEuYXBwbHkob2E9eWEuY2FsbChSYS5jaGlsZE5vZGVzKSxSYS5jaGlsZE5vZGVzKSxvYVtSYS5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goayl7dGE9CnthcHBseTpmdW5jdGlvbihwLHEpe3ViLmFwcGx5KHAseWEuY2FsbChxKSl9LGNhbGw6ZnVuY3Rpb24ocCl7dWIuYXBwbHkocCx5YS5jYWxsKGFyZ3VtZW50cywxKSl9fX1mb3IoUSBpbiBhLm1hdGNoZXM9ZnVuY3Rpb24oayxwKXtyZXR1cm4gYShrLG51bGwsbnVsbCxwKX0sYS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oayxwKXtpZih0KGspLCEoIXZhfHxZW3ArIiAiXXx8a2EmJmthLnRlc3QocCkpKXRyeXt2YXIgcT1NYS5jYWxsKGsscCk7aWYocXx8Ti5kaXNjb25uZWN0ZWRNYXRjaHx8ay5kb2N1bWVudCYmMTEhPT1rLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBxfWNhdGNoKHYpe1kocCwhMCl9cmV0dXJuIDA8YShwLFosbnVsbCxba10pLmxlbmd0aH0sYS5jb250YWlucz1mdW5jdGlvbihrLHApe3JldHVybihrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspLGQuY29udGFpbnMoayxwKX0sYS5hdHRyPWZ1bmN0aW9uKGsscCl7KGsub3duZXJEb2N1bWVudHx8aykhPVomJnQoayk7CnZhciBxPUsuYXR0ckhhbmRsZVtwLnRvTG93ZXJDYXNlKCldO3E9cSYmRmIuY2FsbChLLmF0dHJIYW5kbGUscC50b0xvd2VyQ2FzZSgpKT9xKGsscCwhdmEpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cT9xOmsuZ2V0QXR0cmlidXRlKHApfSxhLmVycm9yPWZ1bmN0aW9uKGspe3Rocm93IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2spO30sZC51bmlxdWVTb3J0PWZ1bmN0aW9uKGspe3ZhciBwLHE9W10sdj0wLHk9MDtpZihpYj0hTi5zb3J0U3RhYmxlLGhhPSFOLnNvcnRTdGFibGUmJnlhLmNhbGwoaywwKSxZYy5jYWxsKGssbGEpLGliKXtmb3IoO3A9a1t5KytdOylwPT09a1t5XSYmKHY9cS5wdXNoKHkpKTtmb3IoO3YtLTspWmMuY2FsbChrLHFbdl0sMSl9cmV0dXJuIGhhPW51bGwsa30sZC5mbi51bmlxdWVTb3J0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQudW5pcXVlU29ydCh5YS5hcHBseSh0aGlzKSkpfSwoSz1kLmV4cHI9CntjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86YyxtYXRjaDpZYixhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS5yZXBsYWNlKFRhLFVhKSxrWzNdPShrWzNdfHxrWzRdfHxrWzVdfHwiIikucmVwbGFjZShUYSxVYSksIn49Ij09PWtbMl0mJihrWzNdPSIgIitrWzNdKyIgIiksay5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihrKXtyZXR1cm4ga1sxXT1rWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1rWzFdLnNsaWNlKDAsMyk\/KGtbM118fGEuZXJyb3Ioa1swXSksa1s0XT0rKGtbNF0\/a1s1XSsoa1s2XXx8MSk6MiooImV2ZW4iPT09a1szXXx8Im9kZCI9PT1rWzNdKSksa1s1XT0KKyhrWzddK2tbOF18fCJvZGQiPT09a1szXSkpOmtbM10mJmEuZXJyb3Ioa1swXSksa30sUFNFVURPOmZ1bmN0aW9uKGspe3ZhciBwLHE9IWtbNl0mJmtbMl07cmV0dXJuIFliLkNISUxELnRlc3Qoa1swXSk\/bnVsbDooa1szXT9rWzJdPWtbNF18fGtbNV18fCIiOnEmJmZjLnRlc3QocSkmJihwPXIocSwhMCkpJiYocD1xLmluZGV4T2YoIikiLHEubGVuZ3RoLXApLXEubGVuZ3RoKSYmKGtbMF09a1swXS5zbGljZSgwLHApLGtbMl09cS5zbGljZSgwLHApKSxrLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oayl7dmFyIHA9ay5yZXBsYWNlKFRhLFVhKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWs\/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24ocSl7cmV0dXJuIFgocSxwKX19LENMQVNTOmZ1bmN0aW9uKGspe3ZhciBwPWRiW2srIiAiXTtyZXR1cm4gcHx8KHA9bmV3IFJlZ0V4cCgiKF58W1xceDIwXFx0XFxyXFxuXFxmXSkiK2srIihbXFx4MjBcXHRcXHJcXG5cXGZdfCQpIiksCmRiKGssZnVuY3Rpb24ocSl7cmV0dXJuIHAudGVzdCgic3RyaW5nIj09dHlwZW9mIHEuY2xhc3NOYW1lJiZxLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBxLmdldEF0dHJpYnV0ZSYmcS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pKX0sQVRUUjpmdW5jdGlvbihrLHAscSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3Y9YS5hdHRyKHYsayk7cmV0dXJuIG51bGw9PXY\/IiE9Ij09PXA6IXB8fCh2Kz0iIiwiPSI9PT1wP3Y9PT1xOiIhPSI9PT1wP3YhPT1xOiJePSI9PT1wP3EmJjA9PT12LmluZGV4T2YocSk6Iio9Ij09PXA\/cSYmLTE8di5pbmRleE9mKHEpOiIkPSI9PT1wP3EmJnYuc2xpY2UoLXEubGVuZ3RoKT09PXE6In49Ij09PXA\/LTE8KCIgIit2LnJlcGxhY2UoSWEsIiAiKSsiICIpLmluZGV4T2YocSk6Inw9Ij09PXAmJih2PT09cXx8di5zbGljZSgwLHEubGVuZ3RoKzEpPT09cSsiLSIpKX19LENISUxEOmZ1bmN0aW9uKGsscCxxLHYseSl7dmFyIEU9Im50aCIhPT1rLnNsaWNlKDAsCjMpLEE9Imxhc3QiIT09ay5zbGljZSgtNCksST0ib2YtdHlwZSI9PT1wO3JldHVybiAxPT09diYmMD09PXk\/ZnVuY3Rpb24oQil7cmV0dXJuISFCLnBhcmVudE5vZGV9OmZ1bmN0aW9uKEIsSixSKXt2YXIgVCxWLGlhO0o9RSE9PUE\/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIjt2YXIgcGE9Qi5wYXJlbnROb2RlLG5hPUkmJkIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxFYT0hUiYmIUksY2E9ITE7aWYocGEpe2lmKEUpe2Zvcig7Sjspe2ZvcihWPUI7Vj1WW0pdOylpZihJP1goVixuYSk6MT09PVYubm9kZVR5cGUpcmV0dXJuITE7dmFyIEFhPUo9Im9ubHkiPT09ayYmIUFhJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKEFhPVtBP3BhLmZpcnN0Q2hpbGQ6cGEubGFzdENoaWxkXSxBJiZFYSlmb3IoY2E9KGlhPShUPShSPXBhW1ddfHwocGFbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pJiZUWzJdLFY9aWEmJnBhLmNoaWxkTm9kZXNbaWFdO1Y9KytpYSYmViYmVltKXXx8CihjYT1pYT0wKXx8QWEucG9wKCk7KXtpZigxPT09Vi5ub2RlVHlwZSYmKytjYSYmVj09PUIpe1Jba109W2ZhLGlhLGNhXTticmVha319ZWxzZSBpZihFYSYmKGNhPWlhPShUPShCW1ddfHwoQltXXT17fSkpW2tdfHxbXSlbMF09PT1mYSYmVFsxXSksITE9PT1jYSlmb3IoOyhWPSsraWEmJlYmJlZbSl18fChjYT1pYT0wKXx8QWEucG9wKCkpJiYoKEk\/IVgoVixuYSk6MSE9PVYubm9kZVR5cGUpfHwhKytjYXx8KEVhJiYoKFI9VltXXXx8KFZbV109e30pKVtrXT1bZmEsY2FdKSxWIT09QikpOyk7cmV0dXJuKGNhLT15KT09PXZ8fDA9PWNhJXYmJjA8PWNhL3Z9fX0sUFNFVURPOmZ1bmN0aW9uKGsscCl7dmFyIHEsdj1LLnBzZXVkb3Nba118fEsuc2V0RmlsdGVyc1trLnRvTG93ZXJDYXNlKCldfHxhLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrayk7cmV0dXJuIHZbV10\/dihwKToxPHYubGVuZ3RoPyhxPVtrLGssIiIscF0sSy5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGsudG9Mb3dlckNhc2UoKSk\/CmMoZnVuY3Rpb24oeSxFKXtmb3IodmFyIEEsST12KHkscCksQj1JLmxlbmd0aDtCLS07KXlbQT1OYS5jYWxsKHksSVtCXSldPSEoRVtBXT1JW0JdKX0pOmZ1bmN0aW9uKHkpe3JldHVybiB2KHksMCxxKX0pOnZ9fSxwc2V1ZG9zOntub3Q6YyhmdW5jdGlvbihrKXt2YXIgcD1bXSxxPVtdLHY9cWEoay5yZXBsYWNlKHpiLCIkMSIpKTtyZXR1cm4gdltXXT9jKGZ1bmN0aW9uKHksRSxBLEkpe3ZhciBCO0E9dih5LG51bGwsSSxbXSk7Zm9yKEk9eS5sZW5ndGg7SS0tOykoQj1BW0ldKSYmKHlbSV09IShFW0ldPUIpKX0pOmZ1bmN0aW9uKHksRSxBKXtyZXR1cm4gcFswXT15LHYocCxudWxsLEEscSkscFswXT1udWxsLCFxLnBvcCgpfX0pLGhhczpjKGZ1bmN0aW9uKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gMDxhKGsscCkubGVuZ3RofX0pLGNvbnRhaW5zOmMoZnVuY3Rpb24oayl7cmV0dXJuIGs9ay5yZXBsYWNlKFRhLFVhKSxmdW5jdGlvbihwKXtyZXR1cm4tMTwocC50ZXh0Q29udGVudHx8CmQudGV4dChwKSkuaW5kZXhPZihrKX19KSxsYW5nOmMoZnVuY3Rpb24oayl7cmV0dXJuIGVkLnRlc3Qoa3x8IiIpfHxhLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2spLGs9ay5yZXBsYWNlKFRhLFVhKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHApe3ZhciBxO2RvIGlmKHE9dmE\/cC5sYW5nOnAuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxwLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybihxPXEudG9Mb3dlckNhc2UoKSk9PT1rfHwwPT09cS5pbmRleE9mKGsrIi0iKTt3aGlsZSgocD1wLnBhcmVudE5vZGUpJiYxPT09cC5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGspe3ZhciBwPW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gcCYmcC5zbGljZSgxKT09PWsuaWR9LHJvb3Q6ZnVuY3Rpb24oayl7cmV0dXJuIGs9PT1yYX0sZm9jdXM6ZnVuY3Rpb24oayl7YTp7dHJ5e3ZhciBwPVouYWN0aXZlRWxlbWVudDticmVhayBhfWNhdGNoKHEpe31wPQp2b2lkIDB9cmV0dXJuIGs9PT1wJiZaLmhhc0ZvY3VzKCkmJiEhKGsudHlwZXx8ay5ocmVmfHx+ay50YWJJbmRleCl9LGVuYWJsZWQ6aCghMSksZGlzYWJsZWQ6aCghMCksY2hlY2tlZDpmdW5jdGlvbihrKXtyZXR1cm4gWChrLCJpbnB1dCIpJiYhIWsuY2hlY2tlZHx8WChrLCJvcHRpb24iKSYmISFrLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihrKXtyZXR1cm4gay5wYXJlbnROb2RlJiZrLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWsuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGspe2ZvcihrPWsuZmlyc3RDaGlsZDtrO2s9ay5uZXh0U2libGluZylpZig2Pmsubm9kZVR5cGUpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihrKXtyZXR1cm4hSy5wc2V1ZG9zLmVtcHR5KGspfSxoZWFkZXI6ZnVuY3Rpb24oayl7cmV0dXJuIGdkLnRlc3Qoay5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGspe3JldHVybiBmZC50ZXN0KGsubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywKImlucHV0IikmJiJidXR0b24iPT09ay50eXBlfHxYKGssImJ1dHRvbiIpfSx0ZXh0OmZ1bmN0aW9uKGspe3ZhciBwO3JldHVybiBYKGssImlucHV0IikmJiJ0ZXh0Ij09PWsudHlwZSYmKG51bGw9PShwPWsuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1wLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDptKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDptKGZ1bmN0aW9uKGsscCl7cmV0dXJuW3AtMV19KSxlcTptKGZ1bmN0aW9uKGsscCxxKXtyZXR1cm5bMD5xP3ErcDpxXX0pLGV2ZW46bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0wO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLG9kZDptKGZ1bmN0aW9uKGsscCl7Zm9yKHZhciBxPTE7cTxwO3ErPTIpay5wdXNoKHEpO3JldHVybiBrfSksbHQ6bShmdW5jdGlvbihrLHAscSl7Zm9yKHA9MD5xP3ErcDpwPHE\/cDpxOzA8PS0tcDspay5wdXNoKHApO3JldHVybiBrfSksZ3Q6bShmdW5jdGlvbihrLHAscSl7Zm9yKHE9MD5xPwpxK3A6cTsrK3E8cDspay5wdXNoKHEpO3JldHVybiBrfSl9fSkucHNldWRvcy5udGg9Sy5wc2V1ZG9zLmVxLHtyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlLLnBzZXVkb3NbUV09ZihRKTtmb3IoUSBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KUsucHNldWRvc1tRXT1nKFEpO3cucHJvdG90eXBlPUsuZmlsdGVycz1LLnBzZXVkb3M7Sy5zZXRGaWx0ZXJzPW5ldyB3O04uc29ydFN0YWJsZT1XLnNwbGl0KCIiKS5zb3J0KGxhKS5qb2luKCIiKT09PVc7dCgpO04uc29ydERldGFjaGVkPWUoZnVuY3Rpb24oayl7cmV0dXJuIDEmay5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihaLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0IikpfSk7ZC5maW5kPWE7ZC5leHByWyI6Il09ZC5leHByLnBzZXVkb3M7ZC51bmlxdWU9ZC51bmlxdWVTb3J0O2EuY29tcGlsZT1xYTthLnNlbGVjdD1TYTthLnNldERvY3VtZW50PXQ7YS5lc2NhcGU9ZC5lc2NhcGVTZWxlY3RvcjsKYS5nZXRUZXh0PWQudGV4dDthLmlzWE1MPWQuaXNYTUxEb2M7YS5zZWxlY3RvcnM9ZC5leHByO2Euc3VwcG9ydD1kLnN1cHBvcnQ7YS51bmlxdWVTb3J0PWQudW5pcXVlU29ydH0oKTt2YXIgd2I9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZT1bXSxmPXZvaWQgMCE9PWM7KGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlOylpZigxPT09YS5ub2RlVHlwZSl7aWYoZiYmZChhKS5pcyhjKSlicmVhaztlLnB1c2goYSl9cmV0dXJuIGV9LHdjPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfSx4Yz1kLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHljPS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8\/Pig\/OjxcL1wxPnwpJC9pO2QuZmlsdGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1iWzBdO3JldHVybiBjJiYoYT0iOm5vdCgiK2ErIikiKSwxPT09Yi5sZW5ndGgmJgoxPT09ZS5ub2RlVHlwZT9kLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGUsYSk\/W2VdOltdOmQuZmluZC5tYXRjaGVzKGEsZC5ncmVwKGIsZnVuY3Rpb24oZil7cmV0dXJuIDE9PT1mLm5vZGVUeXBlfSkpfTtkLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPXRoaXMubGVuZ3RoLGU9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKGQoYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtiPGM7YisrKWlmKGQuY29udGFpbnMoZVtiXSx0aGlzKSlyZXR1cm4hMH0pKTt2YXIgZj10aGlzLnB1c2hTdGFjayhbXSk7Zm9yKGI9MDtiPGM7YisrKWQuZmluZChhLGVbYl0sZik7cmV0dXJuIDE8Yz9kLnVuaXF1ZVNvcnQoZik6Zn0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqYSh0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIWphKHRoaXMsCiJzdHJpbmciPT10eXBlb2YgYSYmeGMudGVzdChhKT9kKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIGhkPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KGQuZm4uaW5pdD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZighYSlyZXR1cm4gdGhpcztpZihjPWN8fGlkLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoIShlPSI8Ij09PWFbMF0mJiI+Ij09PWFbYS5sZW5ndGgtMV0mJjM8PWEubGVuZ3RoP1tudWxsLGEsbnVsbF06aGQuZXhlYyhhKSl8fCFlWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8YykuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoZVsxXSl7aWYoYj1iIGluc3RhbmNlb2YgZD9iWzBdOmIsZC5tZXJnZSh0aGlzLGQucGFyc2VIVE1MKGVbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6TCwhMCkpLHljLnRlc3QoZVsxXSkmJmQuaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKU0odGhpc1tlXSk\/dGhpc1tlXShiW2VdKToKdGhpcy5hdHRyKGUsYltlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGY9TC5nZXRFbGVtZW50QnlJZChlWzJdKSkmJih0aGlzWzBdPWYsdGhpcy5sZW5ndGg9MSksdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6TShhKT92b2lkIDAhPT1jLnJlYWR5P2MucmVhZHkoYSk6YShkKTpkLm1ha2VBcnJheShhLHRoaXMpfSkucHJvdG90eXBlPWQuZm47dmFyIGlkPWQoTCksamQ9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sa2Q9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07ZC5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYj1kKGEsdGhpcyksYz1iLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGM7ZSsrKWlmKGQuY29udGFpbnModGhpcyxiW2VdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0wLGY9dGhpcy5sZW5ndGgsCmc9W10saD0ic3RyaW5nIiE9dHlwZW9mIGEmJmQoYSk7aWYoIXhjLnRlc3QoYSkpZm9yKDtlPGY7ZSsrKWZvcihjPXRoaXNbZV07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoMTE+Yy5ub2RlVHlwZSYmKGg\/LTE8aC5pbmRleChjKToxPT09Yy5ub2RlVHlwZSYmZC5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zy5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPGcubGVuZ3RoP2QudW5pcXVlU29ydChnKTpnKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE\/InN0cmluZyI9PXR5cGVvZiBhP05hLmNhbGwoZChhKSx0aGlzWzBdKTpOYS5jYWxsKHRoaXMsYS5qcXVlcnk\/YVswXTphKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU\/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoZC5tZXJnZSh0aGlzLmdldCgpLGQoYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09CmE\/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2QuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybihhPWEucGFyZW50Tm9kZSkmJjExIT09YS5ub2RlVHlwZT9hOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gd2IoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGxiKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIGxiKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciLGMpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxiLApjKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gd2MoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEuY29udGVudERvY3VtZW50JiZzYyhhLmNvbnRlbnREb2N1bWVudCk\/YS5jb250ZW50RG9jdW1lbnQ6KFgoYSwidGVtcGxhdGUiKSYmKGE9YS5jb250ZW50fHxhKSxkLm1lcmdlKFtdLGEuY2hpbGROb2RlcykpfX0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMsZSl7dmFyIGY9ZC5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGU9YyksZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoZj1kLmZpbHRlcihlLGYpKSwxPHRoaXMubGVuZ3RoJiYoa2RbYV18fGQudW5pcXVlU29ydChmKSxqZC50ZXN0KGEpJiZmLnJldmVyc2UoKSksCnRoaXMucHVzaFN0YWNrKGYpfX0pO3ZhciBMYT0vW15ceDIwXHRcclxuXGZdKy9nO2QuQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe3ZhciBiLGM7YT0ic3RyaW5nIj09dHlwZW9mIGE\/KGI9YSxjPXt9LGQuZWFjaChiLm1hdGNoKExhKXx8W10sZnVuY3Rpb24oeixEKXtjW0RdPSEwfSksYyk6ZC5leHRlbmQoe30sYSk7dmFyIGUsZixnLGgsbT1bXSxsPVtdLHQ9LTEsdz1mdW5jdGlvbigpe2g9aHx8YS5vbmNlO2ZvcihnPWU9ITA7bC5sZW5ndGg7dD0tMSlmb3IoZj1sLnNoaWZ0KCk7Kyt0PG0ubGVuZ3RoOykhMT09PW1bdF0uYXBwbHkoZlswXSxmWzFdKSYmYS5zdG9wT25GYWxzZSYmKHQ9bS5sZW5ndGgsZj0hMSk7YS5tZW1vcnl8fChmPSExKTtlPSExO2gmJihtPWY\/W106IiIpfSxyPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKGYmJiFlJiYodD1tLmxlbmd0aC0xLGwucHVzaChmKSksZnVuY3Rpb24gRihEKXtkLmVhY2goRCxmdW5jdGlvbihPLGFhKXtNKGFhKT9hLnVuaXF1ZSYmci5oYXMoYWEpfHwKbS5wdXNoKGFhKTphYSYmYWEubGVuZ3RoJiYic3RyaW5nIiE9PVUoYWEpJiZGKGFhKX0pfShhcmd1bWVudHMpLGYmJiFlJiZ3KCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBkLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKHosRCl7Zm9yKHZhciBGOy0xPChGPWQuaW5BcnJheShELG0sRikpOyltLnNwbGljZShGLDEpLEY8PXQmJnQtLX0pLHRoaXN9LGhhczpmdW5jdGlvbih6KXtyZXR1cm4gej8tMTxkLmluQXJyYXkoeixtKTowPG0ubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBtJiYobT1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWw9W10sbT1mPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIW19LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLGZ8fGV8fChtPWY9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhaH0sZmlyZVdpdGg6ZnVuY3Rpb24oeixEKXtyZXR1cm4gaHx8KEQ9W3osKEQ9RHx8CltdKS5zbGljZT9ELnNsaWNlKCk6RF0sbC5wdXNoKEQpLGV8fHcoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiByLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZ319O3JldHVybiByfTtkLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sibm90aWZ5IiwicHJvZ3Jlc3MiLGQuQ2FsbGJhY2tzKCJtZW1vcnkiKSxkLkNhbGxiYWNrcygibWVtb3J5IiksMl0sWyJyZXNvbHZlIiwiZG9uZSIsZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDEsInJlamVjdGVkIl1dLGM9InBlbmRpbmciLGU9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBmLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksCnRoaXN9LCJjYXRjaCI6ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhlbihudWxsLGcpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGc9YXJndW1lbnRzO3JldHVybiBkLkRlZmVycmVkKGZ1bmN0aW9uKGgpe2QuZWFjaChiLGZ1bmN0aW9uKG0sbCl7dmFyIHQ9TShnW2xbNF1dKSYmZ1tsWzRdXTtmW2xbMV1dKGZ1bmN0aW9uKCl7dmFyIHc9dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dyYmTSh3LnByb21pc2UpP3cucHJvbWlzZSgpLnByb2dyZXNzKGgubm90aWZ5KS5kb25lKGgucmVzb2x2ZSkuZmFpbChoLnJlamVjdCk6aFtsWzBdKyJXaXRoIl0odGhpcyx0P1t3XTphcmd1bWVudHMpfSl9KTtnPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24oZyxoLG0pe2Z1bmN0aW9uIGwodyxyLHosRCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEY9dGhpcyxPPWFyZ3VtZW50cyxhYT1mdW5jdGlvbigpe3ZhciBxYTtpZighKHc8dCkpe2lmKChxYT16LmFwcGx5KEYsTykpPT09ci5wcm9taXNlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlbmFibGUgc2VsZi1yZXNvbHV0aW9uIik7CnZhciBTYT1xYSYmKCJvYmplY3QiPT10eXBlb2YgcWF8fCJmdW5jdGlvbiI9PXR5cGVvZiBxYSkmJnFhLnRoZW47TShTYSk\/RD9TYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpKToodCsrLFNhLmNhbGwocWEsbCh0LHIsWWEsRCksbCh0LHIsWmEsRCksbCh0LHIsWWEsci5ub3RpZnlXaXRoKSkpOih6IT09WWEmJihGPXZvaWQgMCxPPVtxYV0pLChEfHxyLnJlc29sdmVXaXRoKShGLE8pKX19LEdhPUQ\/YWE6ZnVuY3Rpb24oKXt0cnl7YWEoKX1jYXRjaChxYSl7ZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2socWEsR2EuZXJyb3IpLHQ8PXcrMSYmKHohPT1aYSYmKEY9dm9pZCAwLE89W3FhXSksci5yZWplY3RXaXRoKEYsTykpfX07dz9HYSgpOihkLkRlZmVycmVkLmdldEVycm9ySG9vaz9HYS5lcnJvcj1kLkRlZmVycmVkLmdldEVycm9ySG9vaygpOmQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoR2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRTdGFja0hvb2soKSksCm4uc2V0VGltZW91dChHYSkpfX12YXIgdD0wO3JldHVybiBkLkRlZmVycmVkKGZ1bmN0aW9uKHcpe2JbMF1bM10uYWRkKGwoMCx3LE0obSk\/bTpZYSx3Lm5vdGlmeVdpdGgpKTtiWzFdWzNdLmFkZChsKDAsdyxNKGcpP2c6WWEpKTtiWzJdWzNdLmFkZChsKDAsdyxNKGgpP2g6WmEpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihnKXtyZXR1cm4gbnVsbCE9Zz9kLmV4dGVuZChnLGUpOmV9fSxmPXt9O3JldHVybiBkLmVhY2goYixmdW5jdGlvbihnLGgpe3ZhciBtPWhbMl0sbD1oWzVdO2VbaFsxXV09bS5hZGQ7bCYmbS5hZGQoZnVuY3Rpb24oKXtjPWx9LGJbMy1nXVsyXS5kaXNhYmxlLGJbMy1nXVszXS5kaXNhYmxlLGJbMF1bMl0ubG9jayxiWzBdWzNdLmxvY2spO20uYWRkKGhbM10uZmlyZSk7ZltoWzBdXT1mdW5jdGlvbigpe3JldHVybiBmW2hbMF0rIldpdGgiXSh0aGlzPT09Zj92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9O2ZbaFswXSsiV2l0aCJdPW0uZmlyZVdpdGh9KSwKZS5wcm9taXNlKGYpLGEmJmEuY2FsbChmLGYpLGZ9LHdoZW46ZnVuY3Rpb24oYSl7dmFyIGI9YXJndW1lbnRzLmxlbmd0aCxjPWIsZT1BcnJheShjKSxmPXlhLmNhbGwoYXJndW1lbnRzKSxnPWQuRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbihsKXtlW21dPXRoaXM7ZlttXT0xPGFyZ3VtZW50cy5sZW5ndGg\/eWEuY2FsbChhcmd1bWVudHMpOmw7LS1ifHxnLnJlc29sdmVXaXRoKGUsZil9fTtpZigxPj1iJiYobWIoYSxnLmRvbmUoaChjKSkucmVzb2x2ZSxnLnJlamVjdCwhYiksInBlbmRpbmciPT09Zy5zdGF0ZSgpfHxNKGZbY10mJmZbY10udGhlbikpKXJldHVybiBnLnRoZW4oKTtmb3IoO2MtLTspbWIoZltjXSxoKGMpLGcucmVqZWN0KTtyZXR1cm4gZy5wcm9taXNlKCl9fSk7dmFyIGxkPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbihhLGIpe24uY29uc29sZSYmCm4uY29uc29sZS53YXJuJiZhJiZsZC50ZXN0KGEubmFtZSkmJm4uY29uc29sZS53YXJuKCJqUXVlcnkuRGVmZXJyZWQgZXhjZXB0aW9uOiAiK2EubWVzc2FnZSxhLnN0YWNrLGIpfTtkLnJlYWR5RXhjZXB0aW9uPWZ1bmN0aW9uKGEpe24uc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSl9O3ZhciBnYz1kLkRlZmVycmVkKCk7ZC5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gZ2MudGhlbihhKVsiY2F0Y2giXShmdW5jdGlvbihiKXtkLnJlYWR5RXhjZXB0aW9uKGIpfSksdGhpc307ZC5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEscmVhZHk6ZnVuY3Rpb24oYSl7KCEwPT09YT8tLWQucmVhZHlXYWl0OmQuaXNSZWFkeSl8fChkLmlzUmVhZHk9ITApIT09YSYmMDwtLWQucmVhZHlXYWl0fHxnYy5yZXNvbHZlV2l0aChMLFtkXSl9fSk7ZC5yZWFkeS50aGVuPWdjLnRoZW47ImNvbXBsZXRlIj09PUwucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09TC5yZWFkeVN0YXRlJiYhTC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw\/Cm4uc2V0VGltZW91dChkLnJlYWR5KTooTC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixPYSksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixPYSkpO3ZhciBYYT1mdW5jdGlvbihhLGIsYyxlLGYsZyxoKXt2YXIgbT0wLGw9YS5sZW5ndGgsdD1udWxsPT1jO2lmKCJvYmplY3QiPT09VShjKSlmb3IobSBpbiBmPSEwLGMpWGEoYSxiLG0sY1ttXSwhMCxnLGgpO2Vsc2UgaWYodm9pZCAwIT09ZSYmKGY9ITAsTShlKXx8KGg9ITApLHQmJihoPyhiLmNhbGwoYSxlKSxiPW51bGwpOih0PWIsYj1mdW5jdGlvbih3LHIseil7cmV0dXJuIHQuY2FsbChkKHcpLHopfSkpLGIpKWZvcig7bTxsO20rKyliKGFbbV0sYyxoP2U6ZS5jYWxsKGFbbV0sbSxiKGFbbV0sYykpKTtyZXR1cm4gZj9hOnQ\/Yi5jYWxsKGEpOmw\/YihhWzBdLGMpOmd9LE1jPS9eLW1zLS8sTmM9Ly0oW2Etel0pL2csR2I9ZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfHw5PT09YS5ub2RlVHlwZXx8ISthLm5vZGVUeXBlfTsKSmEudWlkPTE7SmEucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihhKXt2YXIgYj1hW3RoaXMuZXhwYW5kb107cmV0dXJuIGJ8fChiPXt9LEdiKGEpJiYoYS5ub2RlVHlwZT9hW3RoaXMuZXhwYW5kb109YjpPYmplY3QuZGVmaW5lUHJvcGVydHkoYSx0aGlzLmV4cGFuZG8se3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSkpKSxifSxzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlO2E9dGhpcy5jYWNoZShhKTtpZigic3RyaW5nIj09dHlwZW9mIGIpYVtCYShiKV09YztlbHNlIGZvcihlIGluIGIpYVtCYShlKV09YltlXTtyZXR1cm4gYX0sZ2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHZvaWQgMD09PWI\/dGhpcy5jYWNoZShhKTphW3RoaXMuZXhwYW5kb10mJmFbdGhpcy5leHBhbmRvXVtCYShiKV19LGFjY2VzczpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHZvaWQgMD09PWJ8fGImJiJzdHJpbmciPT10eXBlb2YgYiYmdm9pZCAwPT09Yz90aGlzLmdldChhLGIpOih0aGlzLnNldChhLGIsYyksdm9pZCAwIT09CmM\/YzpiKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7dmFyIGM9YVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PWMpe2lmKHZvaWQgMCE9PWIpe3ZhciBlPShiPUFycmF5LmlzQXJyYXkoYik\/Yi5tYXAoQmEpOihiPUJhKGIpKWluIGM\/W2JdOmIubWF0Y2goTGEpfHxbXSkubGVuZ3RoO2Zvcig7ZS0tOylkZWxldGUgY1tiW2VdXX0odm9pZCAwPT09Ynx8ZC5pc0VtcHR5T2JqZWN0KGMpKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgYVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oYSl7YT1hW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PWEmJiFkLmlzRW1wdHlPYmplY3QoYSl9fTt2YXIgRz1uZXcgSmEseGE9bmV3IEphLFBjPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sT2M9L1tBLVpdL2c7ZC5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHhhLmhhc0RhdGEoYSl8fEcuaGFzRGF0YShhKX0sZGF0YTpmdW5jdGlvbihhLApiLGMpe3JldHVybiB4YS5hY2Nlc3MoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7eGEucmVtb3ZlKGEsYil9LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gRy5hY2Nlc3MoYSxiLGMpfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe0cucmVtb3ZlKGEsYil9fSk7ZC5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZz10aGlzWzBdLGg9ZyYmZy5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZj14YS5nZXQoZyksMT09PWcubm9kZVR5cGUmJiFHLmdldChnLCJoYXNEYXRhQXR0cnMiKSkpe2ZvcihjPWgubGVuZ3RoO2MtLTspaFtjXSYmMD09PShlPWhbY10ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKGU9QmEoZS5zbGljZSg1KSksT2IoZyxlLGZbZV0pKTtHLnNldChnLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gZn1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGE\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsCmEpfSk6WGEodGhpcyxmdW5jdGlvbihtKXt2YXIgbDtpZihnJiZ2b2lkIDA9PT1tKXJldHVybiB2b2lkIDAhPT0obD14YS5nZXQoZyxhKSk\/bDp2b2lkIDAhPT0obD1PYihnLGEpKT9sOnZvaWQgMDt0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5zZXQodGhpcyxhLG0pfSl9LG51bGwsYiwxPGFyZ3VtZW50cy5sZW5ndGgsbnVsbCwhMCl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3hhLnJlbW92ZSh0aGlzLGEpfSl9fSk7ZC5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZTtpZihhKXJldHVybiBiPShifHwiZngiKSsicXVldWUiLGU9Ry5nZXQoYSxiKSxjJiYoIWV8fEFycmF5LmlzQXJyYXkoYyk\/ZT1HLmFjY2VzcyhhLGIsZC5tYWtlQXJyYXkoYykpOmUucHVzaChjKSksZXx8W119LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9ZC5xdWV1ZShhLGIpLGU9Yy5sZW5ndGgsZj1jLnNoaWZ0KCksZz1kLl9xdWV1ZUhvb2tzKGEsCmIpOyJpbnByb2dyZXNzIj09PWYmJihmPWMuc2hpZnQoKSxlLS0pO2YmJigiZngiPT09YiYmYy51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRlIGcuc3RvcCxmLmNhbGwoYSxmdW5jdGlvbigpe2QuZGVxdWV1ZShhLGIpfSxnKSk7IWUmJmcmJmcuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBHLmdldChhLGMpfHxHLmFjY2VzcyhhLGMse2VtcHR5OmQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe0cucmVtb3ZlKGEsW2IrInF1ZXVlIixjXSl9KX0pfX0pO2QuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9kLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQucXVldWUodGhpcyxhLGIpO2QuX3F1ZXVlSG9va3ModGhpcywKYSk7ImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWVbMF0mJmQuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTEsZj1kLkRlZmVycmVkKCksZz10aGlzLGg9dGhpcy5sZW5ndGgsbT1mdW5jdGlvbigpey0tZXx8Zi5yZXNvbHZlV2l0aChnLFtnXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCk7Zm9yKGE9YXx8ImZ4IjtoLS07KShjPUcuZ2V0KGdbaF0sYSsicXVldWVIb29rcyIpKSYmYy5lbXB0eSYmKGUrKyxjLmVtcHR5LmFkZChtKSk7cmV0dXJuIG0oKSxmLnByb21pc2UoYil9fSk7dmFyIHpjPS9bKy1dPyg\/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLHliPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIisKemMrIikoW2EteiVdKikkIiwiaSIpLFBhPVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0samI9TC5kb2N1bWVudEVsZW1lbnQsb2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxtZD17Y29tcG9zZWQ6ITB9O2piLmdldFJvb3ROb2RlJiYob2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHxhLmdldFJvb3ROb2RlKG1kKT09PWEub3duZXJEb2N1bWVudH0pO3ZhciBRYj1mdW5jdGlvbihhLGIpe3JldHVybiJub25lIj09PShhPWJ8fGEpLnN0eWxlLmRpc3BsYXl8fCIiPT09YS5zdHlsZS5kaXNwbGF5JiZvYihhKSYmIm5vbmUiPT09ZC5jc3MoYSwiZGlzcGxheSIpfSxsYz17fTtkLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiAkYSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiAkYSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE\/CmE\/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7UWIodGhpcyk\/ZCh0aGlzKS5zaG93KCk6ZCh0aGlzKS5oaWRlKCl9KX19KTt2YXIgWmIsSGI9L14oPzpjaGVja2JveHxyYWRpbykkL2ksbWM9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopL2ksbmM9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHhiPUwuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLmFwcGVuZENoaWxkKEwuY3JlYXRlRWxlbWVudCgiZGl2IikpOyhaYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIik7WmIuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiY2hlY2tlZCIpO1piLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKTt4Yi5hcHBlbmRDaGlsZChaYik7Ti5jaGVja0Nsb25lPXhiLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZDt4Yi5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iOwpOLm5vQ2xvbmVDaGVja2VkPSEheGIuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO3hiLmlubmVySFRNTD0iPG9wdGlvbj48L29wdGlvbj4iO04ub3B0aW9uPSEheGIubGFzdENoaWxkO3ZhciBDYT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O0NhLnRib2R5PUNhLnRmb290PUNhLmNvbGdyb3VwPUNhLmNhcHRpb249Q2EudGhlYWQ7Q2EudGg9Q2EudGQ7Ti5vcHRpb258fChDYS5vcHRncm91cD1DYS5vcHRpb249WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSk7dmFyIFFjPS88fCYjP1x3KzsvLEFjPS9eKFteLl0qKSg\/OlwuKC4rKXwpLzsKZC5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsbSxsLHQsdyxyLHosRD1HLmdldChhKTtpZihHYihhKSlmb3IoYy5oYW5kbGVyJiYoYz0oZz1jKS5oYW5kbGVyLGY9Zy5zZWxlY3RvciksZiYmZC5maW5kLm1hdGNoZXNTZWxlY3RvcihqYixmKSxjLmd1aWR8fChjLmd1aWQ9ZC5ndWlkKyspLChsPUQuZXZlbnRzKXx8KGw9RC5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGg9RC5oYW5kbGUpfHwoaD1ELmhhbmRsZT1mdW5jdGlvbihPKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGQmJmQuZXZlbnQudHJpZ2dlcmVkIT09Ty50eXBlP2QuZXZlbnQuZGlzcGF0Y2guYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0pLEQ9KGI9KGJ8fCIiKS5tYXRjaChMYSl8fFsiIl0pLmxlbmd0aDtELS07KXt2YXIgRj16PShtPUFjLmV4ZWMoYltEXSl8fFtdKVsxXTttPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCk7RiYmKHc9ZC5ldmVudC5zcGVjaWFsW0ZdfHwKe30sRj0oZj93LmRlbGVnYXRlVHlwZTp3LmJpbmRUeXBlKXx8Rix3PWQuZXZlbnQuc3BlY2lhbFtGXXx8e30sdD1kLmV4dGVuZCh7dHlwZTpGLG9yaWdUeXBlOnosZGF0YTplLGhhbmRsZXI6YyxndWlkOmMuZ3VpZCxzZWxlY3RvcjpmLG5lZWRzQ29udGV4dDpmJiZkLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoZiksbmFtZXNwYWNlOm0uam9pbigiLiIpfSxnKSwocj1sW0ZdKXx8KChyPWxbRl09W10pLmRlbGVnYXRlQ291bnQ9MCx3LnNldHVwJiYhMSE9PXcuc2V0dXAuY2FsbChhLGUsbSxoKXx8YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoRixoKSksdy5hZGQmJih3LmFkZC5jYWxsKGEsdCksdC5oYW5kbGVyLmd1aWR8fCh0LmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxmP3Iuc3BsaWNlKHIuZGVsZWdhdGVDb3VudCsrLDAsdCk6ci5wdXNoKHQpLGQuZXZlbnQuZ2xvYmFsW0ZdPSEwKX19LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsbSxsLAp0LHcscix6LEQ9Ry5oYXNEYXRhKGEpJiZHLmdldChhKTtpZihEJiYobD1ELmV2ZW50cykpe2Zvcih0PShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7dC0tOylpZih3PXo9KG09QWMuZXhlYyhiW3RdKXx8W10pWzFdLHI9KG1bMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSx3KXt2YXIgRj1kLmV2ZW50LnNwZWNpYWxbd118fHt9LE89bFt3PShlP0YuZGVsZWdhdGVUeXBlOkYuYmluZFR5cGUpfHx3XXx8W107bT1tWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIityLmpvaW4oIlxcLig\/Oi4qXFwufCkiKSsiKFxcLnwkKSIpO2ZvcihoPWc9Ty5sZW5ndGg7Zy0tOyl7dmFyIGFhPU9bZ107IWYmJnohPT1hYS5vcmlnVHlwZXx8YyYmYy5ndWlkIT09YWEuZ3VpZHx8bSYmIW0udGVzdChhYS5uYW1lc3BhY2UpfHxlJiZlIT09YWEuc2VsZWN0b3ImJigiKioiIT09ZXx8IWFhLnNlbGVjdG9yKXx8KE8uc3BsaWNlKGcsMSksYWEuc2VsZWN0b3ImJk8uZGVsZWdhdGVDb3VudC0tLEYucmVtb3ZlJiYKRi5yZW1vdmUuY2FsbChhLGFhKSl9aCYmIU8ubGVuZ3RoJiYoRi50ZWFyZG93biYmITEhPT1GLnRlYXJkb3duLmNhbGwoYSxyLEQuaGFuZGxlKXx8ZC5yZW1vdmVFdmVudChhLHcsRC5oYW5kbGUpLGRlbGV0ZSBsW3ddKX1lbHNlIGZvcih3IGluIGwpZC5ldmVudC5yZW1vdmUoYSx3K2JbdF0sYyxlLCEwKTtkLmlzRW1wdHlPYmplY3QobCkmJkcucmVtb3ZlKGEsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksaD1kLmV2ZW50LmZpeChhKSxtPShHLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbaC50eXBlXXx8W10sbD1kLmV2ZW50LnNwZWNpYWxbaC50eXBlXXx8e307Z1swXT1oO2ZvcihiPTE7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylnW2JdPWFyZ3VtZW50c1tiXTtpZihoLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWwucHJlRGlzcGF0Y2h8fCExIT09bC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsCmgpKXt2YXIgdD1kLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxoLG0pO2ZvcihiPTA7KGU9dFtiKytdKSYmIWguaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZm9yKGguY3VycmVudFRhcmdldD1lLmVsZW0sbT0wOyhmPWUuaGFuZGxlcnNbbSsrXSkmJiFoLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCk7KWgucm5hbWVzcGFjZSYmITEhPT1mLm5hbWVzcGFjZSYmIWgucm5hbWVzcGFjZS50ZXN0KGYubmFtZXNwYWNlKXx8KGguaGFuZGxlT2JqPWYsaC5kYXRhPWYuZGF0YSx2b2lkIDAhPT0oYz0oKGQuZXZlbnQuc3BlY2lhbFtmLm9yaWdUeXBlXXx8e30pLmhhbmRsZXx8Zi5oYW5kbGVyKS5hcHBseShlLmVsZW0sZykpJiYhMT09PShoLnJlc3VsdD1jKSYmKGgucHJldmVudERlZmF1bHQoKSxoLnN0b3BQcm9wYWdhdGlvbigpKSk7cmV0dXJuIGwucG9zdERpc3BhdGNoJiZsLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsaCksaC5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLAplLGYsZz1bXSxoPWIuZGVsZWdhdGVDb3VudCxtPWEudGFyZ2V0O2lmKGgmJm0ubm9kZVR5cGUmJiEoImNsaWNrIj09PWEudHlwZSYmMTw9YS5idXR0b24pKWZvcig7bSE9PXRoaXM7bT1tLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PW0ubm9kZVR5cGUmJigiY2xpY2siIT09YS50eXBlfHwhMCE9PW0uZGlzYWJsZWQpKXt2YXIgbD1bXSx0PXt9O2ZvcihjPTA7YzxoO2MrKyl2b2lkIDA9PT10W2Y9KGU9YltjXSkuc2VsZWN0b3IrIiAiXSYmKHRbZl09ZS5uZWVkc0NvbnRleHQ\/LTE8ZChmLHRoaXMpLmluZGV4KG0pOmQuZmluZChmLHRoaXMsbnVsbCxbbV0pLmxlbmd0aCksdFtmXSYmbC5wdXNoKGUpO2wubGVuZ3RoJiZnLnB1c2goe2VsZW06bSxoYW5kbGVyczpsfSl9cmV0dXJuIG09dGhpcyxoPGIubGVuZ3RoJiZnLnB1c2goe2VsZW06bSxoYW5kbGVyczpiLnNsaWNlKGgpfSksZ30sYWRkUHJvcDpmdW5jdGlvbihhLGIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLkV2ZW50LnByb3RvdHlwZSwKYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0Ok0oYik\/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGIodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFthXX0sc2V0OmZ1bmN0aW9uKGMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX19KX0sZml4OmZ1bmN0aW9uKGEpe3JldHVybiBhW2QuZXhwYW5kb10\/YTpuZXcgZC5FdmVudChhKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGNsaWNrOntzZXR1cDpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmYS5jbGljayYmWChhLCJpbnB1dCIpJiZwYihhLCJjbGljayIsITApLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGEpe2E9dGhpc3x8YTtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiYKYS5jbGljayYmWChhLCJpbnB1dCIpJiZwYihhLCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXthPWEudGFyZ2V0O3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmRy5nZXQoYSwiY2xpY2siKXx8WChhLCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihhKXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fX07ZC5yZW1vdmVFdmVudD1mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKX07ZC5FdmVudD1mdW5jdGlvbihhLGIpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQuRXZlbnQpKXJldHVybiBuZXcgZC5FdmVudChhLGIpO2EmJmEudHlwZT8odGhpcy5vcmlnaW5hbEV2ZW50PWEsdGhpcy50eXBlPWEudHlwZSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hLmRlZmF1bHRQcmV2ZW50ZWR8fAp2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09YS5yZXR1cm5WYWx1ZT9hYjpiYix0aGlzLnRhcmdldD1hLnRhcmdldCYmMz09PWEudGFyZ2V0Lm5vZGVUeXBlP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWEuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9YS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9YTtiJiZkLmV4dGVuZCh0aGlzLGIpO3RoaXMudGltZVN0YW1wPWEmJmEudGltZVN0YW1wfHxEYXRlLm5vdygpO3RoaXNbZC5leHBhbmRvXT0hMH07ZC5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmQuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiOwphJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1hYjthJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX19O2QuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY29kZTohMCwKY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ITB9LGQuZXZlbnQuYWRkUHJvcCk7ZC5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoZSl7aWYoTC5kb2N1bWVudE1vZGUpe3ZhciBmPUcuZ2V0KHRoaXMsImhhbmRsZSIpLGc9ZC5ldmVudC5maXgoZSk7Zy50eXBlPSJmb2N1c2luIj09PWUudHlwZT8iZm9jdXMiOiJibHVyIjtnLmlzU2ltdWxhdGVkPSEwO2YoZSk7Zy50YXJnZXQ9PT1nLmN1cnJlbnRUYXJnZXQmJmYoZyl9ZWxzZSBkLmV2ZW50LnNpbXVsYXRlKGIsZS50YXJnZXQsZC5ldmVudC5maXgoZSkpfWQuZXZlbnQuc3BlY2lhbFthXT0Ke3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU7aWYocGIodGhpcyxhLCEwKSwhTC5kb2N1bWVudE1vZGUpcmV0dXJuITE7KGU9Ry5nZXQodGhpcyxiKSl8fHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihiLGMpO0cuc2V0KHRoaXMsYiwoZXx8MCkrMSl9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcGIodGhpcyxhKSwhMH0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZTtpZighTC5kb2N1bWVudE1vZGUpcmV0dXJuITE7KGU9Ry5nZXQodGhpcyxiKS0xKT9HLnNldCh0aGlzLGIsZSk6KHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpLEcucmVtb3ZlKHRoaXMsYikpfSxfZGVmYXVsdDpmdW5jdGlvbihlKXtyZXR1cm4gRy5nZXQoZS50YXJnZXQsYSl9LGRlbGVnYXRlVHlwZTpifTtkLmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLGY9TC5kb2N1bWVudE1vZGU\/dGhpczplLGc9Ry5nZXQoZixiKTtnfHwKKEwuZG9jdW1lbnRNb2RlP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihiLGMpOmUuYWRkRXZlbnRMaXN0ZW5lcihhLGMsITApKTtHLnNldChmLGIsKGd8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYiktMTtnP0cuc2V0KGYsYixnKTooTC5kb2N1bWVudE1vZGU\/dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyk6ZS5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksRy5yZW1vdmUoZixiKSl9fX0pO2QuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtkLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGMpe3ZhciBlLGY9CmMucmVsYXRlZFRhcmdldCxnPWMuaGFuZGxlT2JqO3JldHVybiBmJiYoZj09PXRoaXN8fGQuY29udGFpbnModGhpcyxmKSl8fChjLnR5cGU9Zy5vcmlnVHlwZSxlPWcuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYy50eXBlPWIpLGV9fX0pO2QuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlKX0sb25lOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiBmYih0aGlzLGEsYixjLGUsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZT1hLmhhbmRsZU9iaixkKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihlLm5hbWVzcGFjZT9lLm9yaWdUeXBlKyIuIitlLm5hbWVzcGFjZTplLm9yaWdUeXBlLGUuc2VsZWN0b3IsZS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGYgaW4gYSl0aGlzLm9mZihmLGIsYVtmXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT0KYiYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLCExPT09YyYmKGM9YmIpLHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9fSk7dmFyIG5kPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLFJjPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLFNjPS9eXHMqPCFcW0NEQVRBXFt8XF1cXT5ccyokL2c7ZC5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNsb25lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD1hLmNsb25lTm9kZSghMCksbT1vYihhKTtpZighKE4ubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fGQuaXNYTUxEb2MoYSkpKXt2YXIgbD1zYShoKSx0PTA7Zm9yKGU9KGY9c2EoYSkpLmxlbmd0aDt0PGU7dCsrKXt2YXIgdz1mW3RdLHI9bFt0XTt2b2lkIDA7ImlucHV0Ij09PShnPXIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkmJkhiLnRlc3Qody50eXBlKT8Kci5jaGVja2VkPXcuY2hlY2tlZDoiaW5wdXQiIT09ZyYmInRleHRhcmVhIiE9PWd8fChyLmRlZmF1bHRWYWx1ZT13LmRlZmF1bHRWYWx1ZSl9fWlmKGIpaWYoYylmb3IoZj1mfHxzYShhKSxsPWx8fHNhKGgpLHQ9MCxlPWYubGVuZ3RoO3Q8ZTt0KyspZ2IoZlt0XSxsW3RdKTtlbHNlIGdiKGEsaCk7cmV0dXJuIDA8KGw9c2EoaCwic2NyaXB0IikpLmxlbmd0aCYmbmIobCwhbSYmc2EoYSwic2NyaXB0IikpLGh9LGNsZWFuRGF0YTpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxlLGY9ZC5ldmVudC5zcGVjaWFsLGc9MDt2b2lkIDAhPT0oYz1hW2ddKTtnKyspaWYoR2IoYykpe2lmKGI9Y1tHLmV4cGFuZG9dKXtpZihiLmV2ZW50cylmb3IoZSBpbiBiLmV2ZW50cylmW2VdP2QuZXZlbnQucmVtb3ZlKGMsZSk6ZC5yZW1vdmVFdmVudChjLGUsYi5oYW5kbGUpO2NbRy5leHBhbmRvXT12b2lkIDB9Y1t4YS5leHBhbmRvXSYmKGNbeGEuZXhwYW5kb109dm9pZCAwKX19fSk7ZC5mbi5leHRlbmQoe2RldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gVGIodGhpcywKYSwhMCl9LHJlbW92ZTpmdW5jdGlvbihhKXtyZXR1cm4gVGIodGhpcyxhKX0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gdm9pZCAwPT09Yj9kLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9Yil9KX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fFNiKHRoaXMsYSkuYXBwZW5kQ2hpbGQoYSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09CnRoaXMubm9kZVR5cGUpe3ZhciBiPVNiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKykxPT09YS5ub2RlVHlwZSYmKGQuY2xlYW5EYXRhKHNhKGEsITEpKSxhLnRleHRDb250ZW50PSIiKTtyZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsIT1hJiZhLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZC5jbG9uZSh0aGlzLAphLGIpfSl9LGh0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9dGhpc1swXXx8e30sZT0wLGY9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YiYmMT09PWMubm9kZVR5cGUpcmV0dXJuIGMuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmIW5kLnRlc3QoYikmJiFDYVsobWMuZXhlYyhiKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2I9ZC5odG1sUHJlZmlsdGVyKGIpO3RyeXtmb3IoO2U8ZjtlKyspMT09PShjPXRoaXNbZV18fHt9KS5ub2RlVHlwZSYmKGQuY2xlYW5EYXRhKHNhKGMsITEpKSxjLmlubmVySFRNTD1iKTtjPTB9Y2F0Y2goZyl7fX1jJiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGIpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMucGFyZW50Tm9kZTswPmQuaW5BcnJheSh0aGlzLGEpJiYKKGQuY2xlYW5EYXRhKHNhKHRoaXMpKSxjJiZjLnJlcGxhY2VDaGlsZChiLHRoaXMpKX0sYSl9fSk7ZC5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT1bXSxmPWQoYyksZz1mLmxlbmd0aC0xLGg9MDtoPD1nO2grKyljPWg9PT1nP3RoaXM6dGhpcy5jbG9uZSghMCksZChmW2hdKVtiXShjKSx1Yi5hcHBseShlLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgYmM9bmV3IFJlZ0V4cCgiXigiK3pjKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksYWM9L14tLS8sVWI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiBiJiZiLm9wZW5lcnx8KGI9biksYi5nZXRDb21wdXRlZFN0eWxlKGEpfSxCYz1mdW5jdGlvbihhLApiLGMpe3ZhciBlLGY9e307Zm9yKGUgaW4gYilmW2VdPWEuc3R5bGVbZV0sYS5zdHlsZVtlXT1iW2VdO2ZvcihlIGluIGM9Yy5jYWxsKGEpLGIpYS5zdHlsZVtlXT1mW2VdO3JldHVybiBjfSxUYz1uZXcgUmVnRXhwKFBhLmpvaW4oInwiKSwiaSIpOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtpZihsKXttLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiO2wuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSI7amIuYXBwZW5kQ2hpbGQobSkuYXBwZW5kQ2hpbGQobCk7dmFyIHQ9bi5nZXRDb21wdXRlZFN0eWxlKGwpO2I9IjElIiE9PXQudG9wO2g9MTI9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5tYXJnaW5MZWZ0KSk7Cmwuc3R5bGUucmlnaHQ9IjYwJSI7Zj0zNj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0LnJpZ2h0KSk7Yz0zNj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0LndpZHRoKSk7bC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2U9MTI9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQobC5vZmZzZXRXaWR0aC8zKSk7amIucmVtb3ZlQ2hpbGQobSk7bD1udWxsfX12YXIgYixjLGUsZixnLGgsbT1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9TC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnN0eWxlJiYobC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLGwuY2xvbmVOb2RlKCEwKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIixOLmNsZWFyQ2xvbmVTdHlsZT0iY29udGVudC1ib3giPT09bC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCxkLmV4dGVuZChOLHtib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBhKCksY30scGl4ZWxCb3hTdHlsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLApmfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxifSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGh9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGV9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIHQsdyxyLHo7cmV0dXJuIG51bGw9PWcmJih0PUwuY3JlYXRlRWxlbWVudCgidGFibGUiKSx3PUwuY3JlYXRlRWxlbWVudCgidHIiKSxyPUwuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdy5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix3LnN0eWxlLmhlaWdodD0iMXB4IixyLnN0eWxlLmhlaWdodD0iOXB4IixyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixqYi5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZCh3KS5hcHBlbmRDaGlsZChyKSx6PW4uZ2V0Q29tcHV0ZWRTdHlsZSh3KSwKZz1wYXJzZUludCh6LmhlaWdodCwxMCkrcGFyc2VJbnQoei5ib3JkZXJUb3BXaWR0aCwxMCkrcGFyc2VJbnQoei5ib3JkZXJCb3R0b21XaWR0aCwxMCk9PT13Lm9mZnNldEhlaWdodCxqYi5yZW1vdmVDaGlsZCh0KSksZ319KSl9KCk7dmFyIHJjPVsiV2Via2l0IiwiTW96IiwibXMiXSxxYz1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLHBjPXt9LG9kPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxwZD17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sQ2M9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9O2QuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4gYT1LYShhLCJvcGFjaXR5IiksIiI9PT1hPyIxIjphfX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VTbGljZTohMCxjb2x1bW5Db3VudDohMCwKZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCxzY2FsZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMH0sY3NzUHJvcHM6e30sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZSl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZixnLGgsbT1CYShiKSxsPWFjLnRlc3QoYiksdD1hLnN0eWxlO2lmKGx8fChiPUFiKG0pKSxoPWQuY3NzSG9va3NbYl18fGQuY3NzSG9va3NbbV0sdm9pZCAwPT09YylyZXR1cm4gaCYmCiJnZXQiaW4gaCYmdm9pZCAwIT09KGY9aC5nZXQoYSwhMSxlKSk\/Zjp0W2JdOyJzdHJpbmciPT09KGc9dHlwZW9mIGMpJiYoZj15Yi5leGVjKGMpKSYmZlsxXSYmKGM9UGIoYSxiLGYpLGc9Im51bWJlciIpO251bGwhPWMmJmM9PWMmJigibnVtYmVyIiE9PWd8fGx8fChjKz1mJiZmWzNdfHwoZC5jc3NOdW1iZXJbbV0\/IiI6InB4IikpLE4uY2xlYXJDbG9uZVN0eWxlfHwiIiE9PWN8fDAhPT1iLmluZGV4T2YoImJhY2tncm91bmQiKXx8KHRbYl09ImluaGVyaXQiKSxoJiYic2V0ImluIGgmJnZvaWQgMD09PShjPWguc2V0KGEsYyxlKSl8fChsP3Quc2V0UHJvcGVydHkoYixjKTp0W2JdPWMpKX19LGNzczpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnLGgsbT1CYShiKTtyZXR1cm4gYWMudGVzdChiKXx8KGI9QWIobSkpLChoPWQuY3NzSG9va3NbYl18fGQuY3NzSG9va3NbbV0pJiYiZ2V0ImluIGgmJihmPWguZ2V0KGEsITAsYykpLHZvaWQgMD09PWYmJihmPUthKGEsYixlKSksIm5vcm1hbCI9PT0KZiYmYiBpbiBDYyYmKGY9Q2NbYl0pLCIiPT09Y3x8Yz8oZz1wYXJzZUZsb2F0KGYpLCEwPT09Y3x8aXNGaW5pdGUoZyk\/Z3x8MDpmKTpmfX0pO2QuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYyxlLGYpe2lmKGUpcmV0dXJuIW9kLnRlc3QoZC5jc3MoYywiZGlzcGxheSIpKXx8Yy5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9CYihjLGIsZik6QmMoYyxwZCxmdW5jdGlvbigpe3JldHVybiBCYihjLGIsZil9KX0sc2V0OmZ1bmN0aW9uKGMsZSxmKXt2YXIgZyxoPVViKGMpLG09IU4uc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aC5wb3NpdGlvbixsPShtfHxmKSYmImJvcmRlci1ib3giPT09ZC5jc3MoYywiYm94U2l6aW5nIiwhMSxoKTtmPWY\/cmIoYyxiLGYsbCxoKTowO3JldHVybiBsJiZtJiYoZi09TWF0aC5jZWlsKGNbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpKwpiLnNsaWNlKDEpXS1wYXJzZUZsb2F0KGhbYl0pLXJiKGMsYiwiYm9yZGVyIiwhMSxoKS0uNSkpLGYmJihnPXliLmV4ZWMoZSkpJiYicHgiIT09KGdbM118fCJweCIpJiYoYy5zdHlsZVtiXT1lLGU9ZC5jc3MoYyxiKSksV2IoMCxlLGYpfX19KTtkLmNzc0hvb2tzLm1hcmdpbkxlZnQ9VmIoTi5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybihwYXJzZUZsb2F0KEthKGEsIm1hcmdpbkxlZnQiKSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1CYyhhLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSk7ZC5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXt2YXIgZT0wLGY9e307Zm9yKGM9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND4KZTtlKyspZlthK1BhW2VdK2JdPWNbZV18fGNbZS0yXXx8Y1swXTtyZXR1cm4gZn19OyJtYXJnaW4iIT09YSYmKGQuY3NzSG9va3NbYStiXS5zZXQ9V2IpfSk7ZC5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGMsZSxmKXt2YXIgZyxoPXt9LG09MDtpZihBcnJheS5pc0FycmF5KGUpKXtmPVViKGMpO2ZvcihnPWUubGVuZ3RoO208ZzttKyspaFtlW21dXT1kLmNzcyhjLGVbbV0sITEsZik7cmV0dXJuIGh9cmV0dXJuIHZvaWQgMCE9PWY\/ZC5zdHlsZShjLGUsZik6ZC5jc3MoYyxlKX0sYSxiLDE8YXJndW1lbnRzLmxlbmd0aCl9fSk7KChkLlR3ZWVuPXphKS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnphLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZSxmLGcpe3RoaXMuZWxlbT1hO3RoaXMucHJvcD1jO3RoaXMuZWFzaW5nPWZ8fGQuZWFzaW5nLl9kZWZhdWx0O3RoaXMub3B0aW9ucz1iO3RoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKTt0aGlzLmVuZD0KZTt0aGlzLnVuaXQ9Z3x8KGQuY3NzTnVtYmVyW2NdPyIiOiJweCIpfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT16YS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ\/YS5nZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMub3B0aW9ucy5kdXJhdGlvbj90aGlzLnBvcz1iPWQuZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOnRoaXMucG9zPWI9YSx0aGlzLm5vdz0odGhpcy5lbmQtdGhpcy5zdGFydCkqYit0aGlzLnN0YXJ0LHRoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKSxjJiZjLnNldD9jLnNldCh0aGlzKTp6YS5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KHRoaXMpLHRoaXN9fSkuaW5pdC5wcm90b3R5cGU9CnphLnByb3RvdHlwZTsoemEucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0\/YS5lbGVtW2EucHJvcF06KGI9ZC5jc3MoYS5lbGVtLGEucHJvcCwiIikpJiYiYXV0byIhPT1iP2I6MH0sc2V0OmZ1bmN0aW9uKGEpe2QuZnguc3RlcFthLnByb3BdP2QuZnguc3RlcFthLnByb3BdKGEpOjEhPT1hLmVsZW0ubm9kZVR5cGV8fCFkLmNzc0hvb2tzW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVtBYihhLnByb3ApXT9hLmVsZW1bYS5wcm9wXT1hLm5vdzpkLnN0eWxlKGEuZWxlbSxhLnByb3AsYS5ub3crYS51bml0KX19fSkuc2Nyb2xsVG9wPXphLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oYSl7YS5lbGVtLm5vZGVUeXBlJiZhLmVsZW0ucGFyZW50Tm9kZSYmKGEuZWxlbVthLnByb3BdPWEubm93KX19O2QuZWFzaW5nPQp7bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9O2QuZng9emEucHJvdG90eXBlLmluaXQ7ZC5meC5zdGVwPXt9O3ZhciBzYixYYixxZD0vXig\/OnRvZ2dsZXxzaG93fGhpZGUpJC8scmQ9L3F1ZXVlSG9va3MkLztkLkFuaW1hdGlvbj1kLmV4dGVuZCh4LHt0d2VlbmVyczp7IioiOltmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3JlYXRlVHdlZW4oYSxiKTtyZXR1cm4gUGIoYy5lbGVtLGEseWIuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtNKGEpPyhiPWEsYT1bIioiXSk6YT1hLm1hdGNoKExhKTtmb3IodmFyIGMsZT0wLGY9YS5sZW5ndGg7ZTxmO2UrKyljPWFbZV0seC50d2VlbmVyc1tjXT14LnR3ZWVuZXJzW2NdfHxbXSx4LnR3ZWVuZXJzW2NdLnVuc2hpZnQoYil9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaCwKbSxsLHQsdz0id2lkdGgiaW4gYnx8ImhlaWdodCJpbiBiLHI9dGhpcyx6PXt9LEQ9YS5zdHlsZSxGPWEubm9kZVR5cGUmJlFiKGEpLE89Ry5nZXQoYSwiZnhzaG93Iik7Zm9yKGUgaW4gYy5xdWV1ZXx8KG51bGw9PShoPWQuX3F1ZXVlSG9va3MoYSwiZngiKSkudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsbT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8bSgpfSksaC51bnF1ZXVlZCsrLHIuYWx3YXlzKGZ1bmN0aW9uKCl7ci5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS07ZC5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSxiKWlmKGY9YltlXSxxZC50ZXN0KGYpKXtpZihkZWxldGUgYltlXSxnPWd8fCJ0b2dnbGUiPT09ZixmPT09KEY\/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWZ8fCFPfHx2b2lkIDA9PT1PW2VdKWNvbnRpbnVlO0Y9ITB9eltlXT1PJiZPW2VdfHxkLnN0eWxlKGEsZSl9aWYoKGI9IWQuaXNFbXB0eU9iamVjdChiKSl8fAohZC5pc0VtcHR5T2JqZWN0KHopKWZvcihlIGluIHcmJjE9PT1hLm5vZGVUeXBlJiYoYy5vdmVyZmxvdz1bRC5vdmVyZmxvdyxELm92ZXJmbG93WCxELm92ZXJmbG93WV0sbnVsbD09KGw9TyYmTy5kaXNwbGF5KSYmKGw9Ry5nZXQoYSwiZGlzcGxheSIpKSwibm9uZSI9PT0odD1kLmNzcyhhLCJkaXNwbGF5IikpJiYobD90PWw6KCRhKFthXSwhMCksbD1hLnN0eWxlLmRpc3BsYXl8fGwsdD1kLmNzcyhhLCJkaXNwbGF5IiksJGEoW2FdKSkpLCgiaW5saW5lIj09PXR8fCJpbmxpbmUtYmxvY2siPT09dCYmbnVsbCE9bCkmJiJub25lIj09PWQuY3NzKGEsImZsb2F0IikmJihifHwoci5kb25lKGZ1bmN0aW9uKCl7RC5kaXNwbGF5PWx9KSxudWxsPT1sJiYodD1ELmRpc3BsYXksbD0ibm9uZSI9PT10PyIiOnQpKSxELmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYoRC5vdmVyZmxvdz0iaGlkZGVuIixyLmFsd2F5cyhmdW5jdGlvbigpe0Qub3ZlcmZsb3c9Yy5vdmVyZmxvd1swXTsKRC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXTtELm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpLGI9ITEseilifHwoTz8iaGlkZGVuImluIE8mJihGPU8uaGlkZGVuKTpPPUcuYWNjZXNzKGEsImZ4c2hvdyIse2Rpc3BsYXk6bH0pLGcmJihPLmhpZGRlbj0hRiksRiYmJGEoW2FdLCEwKSxyLmRvbmUoZnVuY3Rpb24oKXtmb3IoZSBpbiBGfHwkYShbYV0pLEcucmVtb3ZlKGEsImZ4c2hvdyIpLHopZC5zdHlsZShhLGUseltlXSl9KSksYj11KEY\/T1tlXTowLGUsciksZSBpbiBPfHwoT1tlXT1iLnN0YXJ0LEYmJihiLmVuZD1iLnN0YXJ0LGIuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj94LnByZWZpbHRlcnMudW5zaGlmdChhKTp4LnByZWZpbHRlcnMucHVzaChhKX19KTtkLnNwZWVkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1hJiYib2JqZWN0Ij09dHlwZW9mIGE\/ZC5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxNKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJgpifHxiJiYhTShiKSYmYn07cmV0dXJuIGQuZngub2ZmP2UuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGUuZHVyYXRpb24mJihlLmR1cmF0aW9uIGluIGQuZnguc3BlZWRzP2UuZHVyYXRpb249ZC5meC5zcGVlZHNbZS5kdXJhdGlvbl06ZS5kdXJhdGlvbj1kLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9ZS5xdWV1ZSYmITAhPT1lLnF1ZXVlfHwoZS5xdWV1ZT0iZngiKSxlLm9sZD1lLmNvbXBsZXRlLGUuY29tcGxldGU9ZnVuY3Rpb24oKXtNKGUub2xkKSYmZS5vbGQuY2FsbCh0aGlzKTtlLnF1ZXVlJiZkLmRlcXVldWUodGhpcyxlLnF1ZXVlKX0sZX07ZC5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gdGhpcy5maWx0ZXIoUWIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxjLGUpfSxhbmltYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmPWQuaXNFbXB0eU9iamVjdChhKSxnPWQuc3BlZWQoYixjLGUpOwpiPWZ1bmN0aW9uKCl7dmFyIGg9eCh0aGlzLGQuZXh0ZW5kKHt9LGEpLGcpOyhmfHxHLmdldCh0aGlzLCJmaW5pc2giKSkmJmguc3RvcCghMCl9O3JldHVybiBiLmZpbmlzaD1iLGZ8fCExPT09Zy5xdWV1ZT90aGlzLmVhY2goYik6dGhpcy5xdWV1ZShnLnF1ZXVlLGIpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1mdW5jdGlvbihmKXt2YXIgZz1mLnN0b3A7ZGVsZXRlIGYuc3RvcDtnKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPSEwLGc9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsaD1kLnRpbWVycyxtPUcuZ2V0KHRoaXMpO2lmKGcpbVtnXSYmbVtnXS5zdG9wJiZlKG1bZ10pO2Vsc2UgZm9yKGcgaW4gbSltW2ddJiZtW2ddLnN0b3AmJnJkLnRlc3QoZykmJmUobVtnXSk7Zm9yKGc9aC5sZW5ndGg7Zy0tOyloW2ddLmVsZW0hPT10aGlzfHxudWxsIT0KYSYmaFtnXS5xdWV1ZSE9PWF8fChoW2ddLmFuaW0uc3RvcChjKSxmPSExLGguc3BsaWNlKGcsMSkpOyFmJiZjfHxkLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1HLmdldCh0aGlzKSxjPWJbYSsicXVldWUiXSxlPWJbYSsicXVldWVIb29rcyJdLGY9ZC50aW1lcnMsZz1jP2MubGVuZ3RoOjA7Yi5maW5pc2g9ITA7ZC5xdWV1ZSh0aGlzLGEsW10pO2UmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCk7Zm9yKGU9Zi5sZW5ndGg7ZS0tOylmW2VdLmVsZW09PT10aGlzJiZmW2VdLnF1ZXVlPT09YSYmKGZbZV0uYW5pbS5zdG9wKCEwKSxmLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8ZztlKyspY1tlXSYmY1tlXS5maW5pc2gmJmNbZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIGIuZmluaXNofSl9fSk7ZC5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbihhLApiKXt2YXIgYz1kLmZuW2JdO2QuZm5bYl09ZnVuY3Rpb24oZSxmLGcpe3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PXR5cGVvZiBlP2MuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXMuYW5pbWF0ZSh0YihiLCEwKSxlLGYsZyl9fSk7ZC5lYWNoKHtzbGlkZURvd246dGIoInNob3ciKSxzbGlkZVVwOnRiKCJoaWRlIiksc2xpZGVUb2dnbGU6dGIoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMsZSxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsYyxlLGYpfX0pO2QudGltZXJzPVtdO2QuZngudGljaz1mdW5jdGlvbigpe3ZhciBhLGI9MCxjPWQudGltZXJzO2ZvcihzYj1EYXRlLm5vdygpO2I8Yy5sZW5ndGg7YisrKShhPWNbYl0pKCl8fGNbYl0hPT1hfHxjLnNwbGljZShiLS0sMSk7Yy5sZW5ndGh8fGQuZnguc3RvcCgpOwpzYj12b2lkIDB9O2QuZngudGltZXI9ZnVuY3Rpb24oYSl7ZC50aW1lcnMucHVzaChhKTtkLmZ4LnN0YXJ0KCl9O2QuZnguaW50ZXJ2YWw9MTM7ZC5meC5zdGFydD1mdW5jdGlvbigpe1hifHwoWGI9ITAsQ2IoKSl9O2QuZnguc3RvcD1mdW5jdGlvbigpe1hiPW51bGx9O2QuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9O2QuZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1kLmZ4JiZkLmZ4LnNwZWVkc1thXXx8YSxiPWJ8fCJmeCIsdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKGMsZSl7dmFyIGY9bi5zZXRUaW1lb3V0KGMsYSk7ZS5zdG9wPWZ1bmN0aW9uKCl7bi5jbGVhclRpbWVvdXQoZil9fSl9O3ZhciBJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0Iiksc2Q9TC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtJYi50eXBlPSJjaGVja2JveCI7Ti5jaGVja09uPSIiIT09SWIudmFsdWU7Ti5vcHRTZWxlY3RlZD0Kc2Quc2VsZWN0ZWQ7KEliPUwuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkudmFsdWU9InQiO0liLnR5cGU9InJhZGlvIjtOLnJhZGlvVmFsdWU9InQiPT09SWIudmFsdWU7dmFyIEpiPWQuZXhwci5hdHRySGFuZGxlO2QuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZC5hdHRyLGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTtpZigzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU\/ZC5wcm9wKGEsYixjKTooMT09PWcmJmQuaXNYTUxEb2MoYSl8fChmPWQuYXR0ckhvb2tzW2IudG9Mb3dlckNhc2UoKV18fChkLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP3RkOnZvaWQgMCkpLAp2b2lkIDAhPT1jP251bGw9PT1jP3ZvaWQgZC5yZW1vdmVBdHRyKGEsYik6ZiYmInNldCJpbiBmJiZ2b2lkIDAhPT0oZT1mLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6ZiYmImdldCJpbiBmJiZudWxsIT09KGU9Zi5nZXQoYSxiKSk\/ZTpudWxsPT0oZT1kLmZpbmQuYXR0cihhLGIpKT92b2lkIDA6ZSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIU4ucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJlgoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYz0wLGU9YiYmYi5tYXRjaChMYSk7aWYoZSYmMT09PWEubm9kZVR5cGUpZm9yKDtiPWVbYysrXTspYS5yZW1vdmVBdHRyaWJ1dGUoYil9fSk7dmFyIHRkPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiExPT09Yj9kLnJlbW92ZUF0dHIoYSwKYyk6YS5zZXRBdHRyaWJ1dGUoYyxjKSxjfX07ZC5lYWNoKGQuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9SmJbYl18fGQuZmluZC5hdHRyO0piW2JdPWZ1bmN0aW9uKGUsZixnKXt2YXIgaCxtLGw9Zi50b0xvd2VyQ2FzZSgpO3JldHVybiBnfHwobT1KYltsXSxKYltsXT1oLGg9bnVsbCE9YyhlLGYsZyk\/bDpudWxsLEpiW2xdPW0pLGh9fSk7dmFyIHVkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksdmQ9L14oPzphfGFyZWEpJC9pO2QuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZC5wcm9wLGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tkLnByb3BGaXhbYV18fGFdfSl9fSk7ZC5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz1hLm5vZGVUeXBlOwppZigzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiAxPT09ZyYmZC5pc1hNTERvYyhhKXx8KGI9ZC5wcm9wRml4W2JdfHxiLGY9ZC5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM\/ZiYmInNldCJpbiBmJiZ2b2lkIDAhPT0oZT1mLnNldChhLGMsYikpP2U6YVtiXT1jOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI\/cGFyc2VJbnQoYiwxMCk6dWQudGVzdChhLm5vZGVOYW1lKXx8dmQudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSk7Ti5vcHRTZWxlY3RlZHx8KGQucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7cmV0dXJuIGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsCm51bGx9LHNldDpmdW5jdGlvbihhKXthPWEucGFyZW50Tm9kZTthJiYoYS5zZWxlY3RlZEluZGV4LGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pO2QuZWFjaCgidGFiSW5kZXggcmVhZE9ubHkgbWF4TGVuZ3RoIGNlbGxTcGFjaW5nIGNlbGxQYWRkaW5nIHJvd1NwYW4gY29sU3BhbiB1c2VNYXAgZnJhbWVCb3JkZXIgY29udGVudEVkaXRhYmxlIi5zcGxpdCgiICIpLGZ1bmN0aW9uKCl7ZC5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pO2QuZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTooYj1QKGEpKS5sZW5ndGg\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZT1IKHRoaXMpLGM9MT09PXRoaXMubm9kZVR5cGUmJiIgIitDKGUpKyIgIil7Zm9yKGc9MDtnPGIubGVuZ3RoO2crKylmPQpiW2ddLDA+Yy5pbmRleE9mKCIgIitmKyIgIikmJihjKz1mKyIgIik7aD1DKGMpO2UhPT1oJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX0pOnRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGcsaDtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obSl7ZCh0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxtLEgodGhpcykpKX0pOmFyZ3VtZW50cy5sZW5ndGg\/KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZm9yKGY9YltnXTstMTxjLmluZGV4T2YoIiAiK2YrIiAiKTspYz1jLnJlcGxhY2UoIiAiK2YrIiAiLCIgIik7aD1DKGMpO2UhPT1oJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX0pOnRoaXM6dGhpcy5hdHRyKCJjbGFzcyIsIiIpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBjLAplLGYsZyxoPXR5cGVvZiBhLG09InN0cmluZyI9PT1ofHxBcnJheS5pc0FycmF5KGEpO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihsKXtkKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGwsSCh0aGlzKSxiKSxiKX0pOiJib29sZWFuIj09dHlwZW9mIGImJm0\/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6KGM9UChhKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihtKWZvcihnPWQodGhpcyksZj0wO2Y8Yy5sZW5ndGg7ZisrKWU9Y1tmXSxnLmhhc0NsYXNzKGUpP2cucmVtb3ZlQ2xhc3MoZSk6Zy5hZGRDbGFzcyhlKTtlbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWh8fCgoZT1IKHRoaXMpKSYmRy5zZXQodGhpcywiX19jbGFzc05hbWVfXyIsZSksdGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsZXx8ITE9PT1hPyIiOkcuZ2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpKX0pKX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsCmM9MDtmb3IoYT0iICIrYSsiICI7Yj10aGlzW2MrK107KWlmKDE9PT1iLm5vZGVUeXBlJiYtMTwoIiAiK0MoSChiKSkrIiAiKS5pbmRleE9mKGEpKXJldHVybiEwO3JldHVybiExfX0pO3ZhciB3ZD0vXHIvZztkLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmPXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg\/KGU9TShhKSx0aGlzLmVhY2goZnVuY3Rpb24oZyl7dmFyIGg7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0oaD1lP2EuY2FsbCh0aGlzLGcsZCh0aGlzKS52YWwoKSk6YSk\/aD0iIjoibnVtYmVyIj09dHlwZW9mIGg\/aCs9IiI6QXJyYXkuaXNBcnJheShoKSYmKGg9ZC5tYXAoaCxmdW5jdGlvbihtKXtyZXR1cm4gbnVsbD09bT8iIjptKyIifSkpLChiPWQudmFsSG9va3NbdGhpcy50eXBlXXx8ZC52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiBiJiZ2b2lkIDAhPT1iLnNldCh0aGlzLGgsInZhbHVlIil8fCh0aGlzLnZhbHVlPQpoKSl9KSk6Zj8oYj1kLnZhbEhvb2tzW2YudHlwZV18fGQudmFsSG9va3NbZi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZiwidmFsdWUiKSk\/Yzoic3RyaW5nIj09dHlwZW9mKGM9Zi52YWx1ZSk\/Yy5yZXBsYWNlKHdkLCIiKTpudWxsPT1jPyIiOmM6dm9pZCAwfX0pO2QuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9ZC5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOkMoZC50ZXh0KGEpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiLGMsZT1hLm9wdGlvbnMsZj1hLnNlbGVjdGVkSW5kZXgsZz0ic2VsZWN0LW9uZSI9PT1hLnR5cGUsaD1nP251bGw6W10sbT1nP2YrMTplLmxlbmd0aDtmb3IoYz0wPmY\/bTpnP2Y6MDtjPG07YysrKWlmKCEoIShiPWVbY10pLnNlbGVjdGVkJiZjIT09Znx8Yi5kaXNhYmxlZHx8Yi5wYXJlbnROb2RlLmRpc2FibGVkJiZYKGIucGFyZW50Tm9kZSwKIm9wdGdyb3VwIikpKXtpZihhPWQoYikudmFsKCksZylyZXR1cm4gYTtoLnB1c2goYSl9cmV0dXJuIGh9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjLGUsZj1hLm9wdGlvbnM7Yj1kLm1ha2VBcnJheShiKTtmb3IodmFyIGc9Zi5sZW5ndGg7Zy0tOykoKGU9ZltnXSkuc2VsZWN0ZWQ9LTE8ZC5pbkFycmF5KGQudmFsSG9va3Mub3B0aW9uLmdldChlKSxiKSkmJihjPSEwKTtyZXR1cm4gY3x8KGEuc2VsZWN0ZWRJbmRleD0tMSksYn19fX0pO2QuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2QudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihhLGIpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGEuY2hlY2tlZD0tMTxkLmluQXJyYXkoZChhKS52YWwoKSxiKX19O04uY2hlY2tPbnx8KGQudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIik\/Im9uIjphLnZhbHVlfSl9KTt2YXIgS2I9bi5sb2NhdGlvbiwKRGM9RGF0ZS5ub3coKSxoYz0vXD8vO2QucGFyc2VYTUw9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7dmFyIGM9KG5ldyBuLkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGEsInRleHQveG1sIil9Y2F0Y2goZSl7fXJldHVybiBiPWMmJmMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIilbMF0sYyYmIWJ8fGQuZXJyb3IoIkludmFsaWQgWE1MOiAiKyhiP2QubWFwKGIuY2hpbGROb2RlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0Q29udGVudH0pLmpvaW4oIlxuIik6YSkpLGN9O3ZhciBFYz0vXig\/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sRmM9ZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX07ZC5leHRlbmQoZC5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnLGgsbSxsLHQsdz1bY3x8TF0scj1GYi5jYWxsKGEsInR5cGUiKT9hLnR5cGU6YSx6PUZiLmNhbGwoYSwKIm5hbWVzcGFjZSIpP2EubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoZj10PWc9Yz1jfHxMLDMhPT1jLm5vZGVUeXBlJiY4IT09Yy5ub2RlVHlwZSYmIUVjLnRlc3QocitkLmV2ZW50LnRyaWdnZXJlZCkmJigtMTxyLmluZGV4T2YoIi4iKSYmKHI9KHo9ci5zcGxpdCgiLiIpKS5zaGlmdCgpLHouc29ydCgpKSxoPTA+ci5pbmRleE9mKCI6IikmJiJvbiIrciwoYT1hW2QuZXhwYW5kb10\/YTpuZXcgZC5FdmVudChyLCJvYmplY3QiPT10eXBlb2YgYSYmYSkpLmlzVHJpZ2dlcj1lPzI6MyxhLm5hbWVzcGFjZT16LmpvaW4oIi4iKSxhLnJuYW1lc3BhY2U9YS5uYW1lc3BhY2U\/bmV3IFJlZ0V4cCgiKF58XFwuKSIrei5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGEucmVzdWx0PXZvaWQgMCxhLnRhcmdldHx8KGEudGFyZ2V0PWMpLGI9bnVsbD09Yj9bYV06ZC5tYWtlQXJyYXkoYixbYV0pLGw9ZC5ldmVudC5zcGVjaWFsW3JdfHx7fSxlfHwhbC50cmlnZ2VyfHwhMSE9PQpsLnRyaWdnZXIuYXBwbHkoYyxiKSkpe2lmKCFlJiYhbC5ub0J1YmJsZSYmIWtiKGMpKXt2YXIgRD1sLmRlbGVnYXRlVHlwZXx8cjtmb3IoRWMudGVzdChEK3IpfHwoZj1mLnBhcmVudE5vZGUpO2Y7Zj1mLnBhcmVudE5vZGUpdy5wdXNoKGYpLGc9ZjtnPT09KGMub3duZXJEb2N1bWVudHx8TCkmJncucHVzaChnLmRlZmF1bHRWaWV3fHxnLnBhcmVudFdpbmRvd3x8bil9Zm9yKHo9MDsoZj13W3orK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOyl0PWYsYS50eXBlPTE8ej9EOmwuYmluZFR5cGV8fHIsKG09KEcuZ2V0KGYsImV2ZW50cyIpfHxPYmplY3QuY3JlYXRlKG51bGwpKVthLnR5cGVdJiZHLmdldChmLCJoYW5kbGUiKSkmJm0uYXBwbHkoZixiKSwobT1oJiZmW2hdKSYmbS5hcHBseSYmR2IoZikmJihhLnJlc3VsdD1tLmFwcGx5KGYsYiksITE9PT1hLnJlc3VsdCYmYS5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm4gYS50eXBlPXIsZXx8YS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8CmwuX2RlZmF1bHQmJiExIT09bC5fZGVmYXVsdC5hcHBseSh3LnBvcCgpLGIpfHwhR2IoYyl8fGgmJk0oY1tyXSkmJiFrYihjKSYmKChnPWNbaF0pJiYoY1toXT1udWxsKSxkLmV2ZW50LnRyaWdnZXJlZD1yLGEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmdC5hZGRFdmVudExpc3RlbmVyKHIsRmMpLGNbcl0oKSxhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLEZjKSxkLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsZyYmKGNbaF09ZykpLGEucmVzdWx0fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9ZC5leHRlbmQobmV3IGQuRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7ZC5ldmVudC50cmlnZ2VyKGEsbnVsbCxiKX19KTtkLmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9CnRoaXNbMF07aWYoYylyZXR1cm4gZC5ldmVudC50cmlnZ2VyKGEsYixjLCEwKX19KTt2YXIgVWM9L1xbXF0kLyxHYz0vXHI\/XG4vZyx4ZD0vXig\/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2kseWQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2QucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPVtdLGY9ZnVuY3Rpb24oZyxoKXtoPU0oaCk\/aCgpOmg7ZVtlLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGcpKyI9IitlbmNvZGVVUklDb21wb25lbnQobnVsbD09aD8iIjpoKX07aWYobnVsbD09YSlyZXR1cm4iIjtpZihBcnJheS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWQuaXNQbGFpbk9iamVjdChhKSlkLmVhY2goYSxmdW5jdGlvbigpe2YodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKWVhKGMsYVtjXSxiLGYpO3JldHVybiBlLmpvaW4oIiYiKX07ZC5mbi5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBkLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LApzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPWQucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP2QubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIWQodGhpcykuaXMoIjpkaXNhYmxlZCIpJiZ5ZC50ZXN0KHRoaXMubm9kZU5hbWUpJiYheGQudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IUhiLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7YT1kKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1hP251bGw6QXJyYXkuaXNBcnJheShhKT9kLm1hcChhLGZ1bmN0aW9uKGMpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoR2MsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YS5yZXBsYWNlKEdjLCJcclxuIil9fSkuZ2V0KCl9fSk7dmFyIHpkPS8lMjAvZyxBZD0vIy4qJC8sQmQ9LyhbPyZdKV89W14mXSovLENkPS9eKC4qPyk6WyBcdF0qKFteXHJcbl0qKSQvZ20sCkRkPS9eKD86R0VUfEhFQUQpJC8sRWQ9L15cL1wvLyxIYz17fSxjYz17fSxJYz0iKi8iLmNvbmNhdCgiKiIpLGljPUwuY3JlYXRlRWxlbWVudCgiYSIpO2ljLmhyZWY9S2IuaHJlZjtkLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6S2IuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChLYi5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpJYyx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8sCmh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6SlNPTi5wYXJzZSwidGV4dCB4bWwiOmQucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP2hiKGhiKGEsZC5hamF4U2V0dGluZ3MpLGIpOmhiKGQuYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOlFhKEhjKSxhamF4VHJhbnNwb3J0OlFhKGNjKSxhamF4OmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhTLGhhLGliLFope3ZhciByYSx2YSxrYSxNYSx0YSxXPWhhO0t8fChLPSEwLG0mJm4uY2xlYXJUaW1lb3V0KG0pLGU9dm9pZCAwLGc9Wnx8IiIsUS5yZWFkeVN0YXRlPTA8Uz80OjAscmE9MjAwPD1TJiYzMDA+U3x8CjMwND09PVMsaWImJihNYT1mdW5jdGlvbihmYSxEYSxkYil7Zm9yKHZhciBWYSx1YSxZLGxhLElhPWZhLmNvbnRlbnRzLG1hPWZhLmRhdGFUeXBlczsiKiI9PT1tYVswXTspbWEuc2hpZnQoKSx2b2lkIDA9PT1WYSYmKFZhPWZhLm1pbWVUeXBlfHxEYS5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpO2lmKFZhKWZvcih1YSBpbiBJYSlpZihJYVt1YV0mJklhW3VhXS50ZXN0KFZhKSl7bWEudW5zaGlmdCh1YSk7YnJlYWt9aWYobWFbMF1pbiBkYilZPW1hWzBdO2Vsc2V7Zm9yKHVhIGluIGRiKXtpZighbWFbMF18fGZhLmNvbnZlcnRlcnNbdWErIiAiK21hWzBdXSl7WT11YTticmVha31sYXx8KGxhPXVhKX1ZPVl8fGxhfWlmKFkpcmV0dXJuIFkhPT1tYVswXSYmbWEudW5zaGlmdChZKSxkYltZXX0ocixRLGliKSksIXJhJiYtMTxkLmluQXJyYXkoInNjcmlwdCIsci5kYXRhVHlwZXMpJiYwPmQuaW5BcnJheSgianNvbiIsci5kYXRhVHlwZXMpJiYoci5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPQpmdW5jdGlvbigpe30pLE1hPWZ1bmN0aW9uKGZhLERhLGRiLFZhKXt2YXIgdWEsWSxsYSxJYSxtYSxIYT17fSx2Yj1mYS5kYXRhVHlwZXMuc2xpY2UoKTtpZih2YlsxXSlmb3IobGEgaW4gZmEuY29udmVydGVycylIYVtsYS50b0xvd2VyQ2FzZSgpXT1mYS5jb252ZXJ0ZXJzW2xhXTtmb3IoWT12Yi5zaGlmdCgpO1k7KWlmKGZhLnJlc3BvbnNlRmllbGRzW1ldJiYoZGJbZmEucmVzcG9uc2VGaWVsZHNbWV1dPURhKSwhbWEmJlZhJiZmYS5kYXRhRmlsdGVyJiYoRGE9ZmEuZGF0YUZpbHRlcihEYSxmYS5kYXRhVHlwZSkpLG1hPVksWT12Yi5zaGlmdCgpKWlmKCIqIj09PVkpWT1tYTtlbHNlIGlmKCIqIiE9PW1hJiZtYSE9PVkpe2lmKCEobGE9SGFbbWErIiAiK1ldfHxIYVsiKiAiK1ldKSlmb3IodWEgaW4gSGEpaWYoKElhPXVhLnNwbGl0KCIgIikpWzFdPT09WSYmKGxhPUhhW21hKyIgIitJYVswXV18fEhhWyIqICIrSWFbMF1dKSl7ITA9PT1sYT9sYT1IYVt1YV06ITAhPT1IYVt1YV0mJihZPQpJYVswXSx2Yi51bnNoaWZ0KElhWzFdKSk7YnJlYWt9aWYoITAhPT1sYSlpZihsYSYmZmFbInRocm93cyJdKURhPWxhKERhKTtlbHNlIHRyeXtEYT1sYShEYSl9Y2F0Y2goZmMpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmxhP2ZjOiJObyBjb252ZXJzaW9uIGZyb20gIittYSsiIHRvICIrWX19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpEYX19KHIsTWEsUSxyYSkscmE\/KHIuaWZNb2RpZmllZCYmKCh0YT1RLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoZC5sYXN0TW9kaWZpZWRbZl09dGEpLCh0YT1RLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIikpJiYoZC5ldGFnW2ZdPXRhKSksMjA0PT09U3x8IkhFQUQiPT09ci50eXBlP1c9Im5vY29udGVudCI6MzA0PT09Uz9XPSJub3Rtb2RpZmllZCI6KFc9TWEuc3RhdGUsdmE9TWEuZGF0YSxyYT0hKGthPU1hLmVycm9yKSkpOihrYT1XLCFTJiZXfHwoVz0iZXJyb3IiLDA+UyYmKFM9MCkpKSxRLnN0YXR1cz0KUyxRLnN0YXR1c1RleHQ9KGhhfHxXKSsiIixyYT9GLnJlc29sdmVXaXRoKHosW3ZhLFcsUV0pOkYucmVqZWN0V2l0aCh6LFtRLFcsa2FdKSxRLnN0YXR1c0NvZGUoYWEpLGFhPXZvaWQgMCxsJiZELnRyaWdnZXIocmE\/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbUSxyLHJhP3ZhOmthXSksTy5maXJlV2l0aCh6LFtRLFddKSxsJiYoRC50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtRLHJdKSwtLWQuYWN0aXZlfHxkLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX0ib2JqZWN0Ij09dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2I9Ynx8e307dmFyIGUsZixnLGgsbSxsLHQsdyxyPWQuYWpheFNldHVwKHt9LGIpLHo9ci5jb250ZXh0fHxyLEQ9ci5jb250ZXh0JiYoei5ub2RlVHlwZXx8ei5qcXVlcnkpP2Qoeik6ZC5ldmVudCxGPWQuRGVmZXJyZWQoKSxPPWQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGFhPXIuc3RhdHVzQ29kZXx8e30sR2E9e30scWE9e30sU2E9ImNhbmNlbGVkIixRPQp7cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihLKXtpZighaClmb3IoaD17fTtoYT1DZC5leGVjKGcpOyloW2hhWzFdLnRvTG93ZXJDYXNlKCkrIiAiXT0oaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQoaGFbMl0pO2hhPWhbUy50b0xvd2VyQ2FzZSgpKyIgIl19cmV0dXJuIG51bGw9PWhhP251bGw6aGEuam9pbigiLCAiKX0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIEs\/ZzpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKFMsaGEpe3JldHVybiBudWxsPT1LJiYoUz1xYVtTLnRvTG93ZXJDYXNlKCldPXFhW1MudG9Mb3dlckNhc2UoKV18fFMsR2FbU109aGEpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oUyl7cmV0dXJuIG51bGw9PUsmJihyLm1pbWVUeXBlPVMpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oUyl7dmFyIGhhO2lmKFMpaWYoSylRLmFsd2F5cyhTW1Euc3RhdHVzXSk7CmVsc2UgZm9yKGhhIGluIFMpYWFbaGFdPVthYVtoYV0sU1toYV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbihTKXtTPVN8fFNhO3JldHVybiBlJiZlLmFib3J0KFMpLGMoMCxTKSx0aGlzfX07aWYoRi5wcm9taXNlKFEpLHIudXJsPSgoYXx8ci51cmx8fEtiLmhyZWYpKyIiKS5yZXBsYWNlKEVkLEtiLnByb3RvY29sKyIvLyIpLHIudHlwZT1iLm1ldGhvZHx8Yi50eXBlfHxyLm1ldGhvZHx8ci50eXBlLHIuZGF0YVR5cGVzPShyLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goTGEpfHxbIiJdLG51bGw9PXIuY3Jvc3NEb21haW4pe2E9TC5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e2EuaHJlZj1yLnVybCxhLmhyZWY9YS5ocmVmLHIuY3Jvc3NEb21haW49aWMucHJvdG9jb2wrIi8vIitpYy5ob3N0IT1hLnByb3RvY29sKyIvLyIrYS5ob3N0fWNhdGNoKFMpe3IuY3Jvc3NEb21haW49ITB9fWlmKHIuZGF0YSYmci5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiByLmRhdGEmJgooci5kYXRhPWQucGFyYW0oci5kYXRhLHIudHJhZGl0aW9uYWwpKSxFYihIYyxyLGIsUSksSylyZXR1cm4gUTtmb3IodCBpbihsPWQuZXZlbnQmJnIuZ2xvYmFsKSYmMD09ZC5hY3RpdmUrKyYmZC5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKSxyLnR5cGU9ci50eXBlLnRvVXBwZXJDYXNlKCksci5oYXNDb250ZW50PSFEZC50ZXN0KHIudHlwZSksZj1yLnVybC5yZXBsYWNlKEFkLCIiKSxyLmhhc0NvbnRlbnQ\/ci5kYXRhJiZyLnByb2Nlc3NEYXRhJiYwPT09KHIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmKHIuZGF0YT1yLmRhdGEucmVwbGFjZSh6ZCwiKyIpKToodz1yLnVybC5zbGljZShmLmxlbmd0aCksci5kYXRhJiYoci5wcm9jZXNzRGF0YXx8InN0cmluZyI9PXR5cGVvZiByLmRhdGEpJiYoZis9KGhjLnRlc3QoZik\/IiYiOiI\/Iikrci5kYXRhLGRlbGV0ZSByLmRhdGEpLCExPT09ci5jYWNoZSYmKGY9Zi5yZXBsYWNlKEJkLAoiJDEiKSx3PShoYy50ZXN0KGYpPyImIjoiPyIpKyJfPSIrRGMrKyArdyksci51cmw9Zit3KSxyLmlmTW9kaWZpZWQmJihkLmxhc3RNb2RpZmllZFtmXSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsZC5sYXN0TW9kaWZpZWRbZl0pLGQuZXRhZ1tmXSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixkLmV0YWdbZl0pKSwoci5kYXRhJiZyLmhhc0NvbnRlbnQmJiExIT09ci5jb250ZW50VHlwZXx8Yi5jb250ZW50VHlwZSkmJlEuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixyLmNvbnRlbnRUeXBlKSxRLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsci5kYXRhVHlwZXNbMF0mJnIuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0\/ci5hY2NlcHRzW3IuZGF0YVR5cGVzWzBdXSsoIioiIT09ci5kYXRhVHlwZXNbMF0\/IiwgIitJYysiOyBxPTAuMDEiOiIiKTpyLmFjY2VwdHNbIioiXSksci5oZWFkZXJzKVEuc2V0UmVxdWVzdEhlYWRlcih0LHIuaGVhZGVyc1t0XSk7CmlmKHIuYmVmb3JlU2VuZCYmKCExPT09ci5iZWZvcmVTZW5kLmNhbGwoeixRLHIpfHxLKSlyZXR1cm4gUS5hYm9ydCgpO2lmKFNhPSJhYm9ydCIsTy5hZGQoci5jb21wbGV0ZSksUS5kb25lKHIuc3VjY2VzcyksUS5mYWlsKHIuZXJyb3IpLGU9RWIoY2MscixiLFEpKXtpZihRLnJlYWR5U3RhdGU9MSxsJiZELnRyaWdnZXIoImFqYXhTZW5kIixbUSxyXSksSylyZXR1cm4gUTtyLmFzeW5jJiYwPHIudGltZW91dCYmKG09bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7US5hYm9ydCgidGltZW91dCIpfSxyLnRpbWVvdXQpKTt0cnl7dmFyIEs9ITE7ZS5zZW5kKEdhLGMpfWNhdGNoKFMpe2lmKEspdGhyb3cgUztjKC0xLFMpfX1lbHNlIGMoLTEsIk5vIFRyYW5zcG9ydCIpO3JldHVybiBRfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGQuZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pO2QuZWFjaChbImdldCIsCiJwb3N0Il0sZnVuY3Rpb24oYSxiKXtkW2JdPWZ1bmN0aW9uKGMsZSxmLGcpe3JldHVybiBNKGUpJiYoZz1nfHxmLGY9ZSxlPXZvaWQgMCksZC5hamF4KGQuZXh0ZW5kKHt1cmw6Yyx0eXBlOmIsZGF0YVR5cGU6ZyxkYXRhOmUsc3VjY2VzczpmfSxkLmlzUGxhaW5PYmplY3QoYykmJmMpKX19KTtkLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEuaGVhZGVycykiY29udGVudC10eXBlIj09PWIudG9Mb3dlckNhc2UoKSYmKGEuY29udGVudFR5cGU9YS5oZWFkZXJzW2JdfHwiIil9KTtkLl9ldmFsVXJsPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKCl7fX0sZGF0YUZpbHRlcjpmdW5jdGlvbihlKXtkLmdsb2JhbEV2YWwoZSxiLGMpfX0pfTtkLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXt2YXIgYjsKcmV0dXJuIHRoaXNbMF0mJihNKGEpJiYoYT1hLmNhbGwodGhpc1swXSkpLGI9ZChhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGM9dGhpcztjLmZpcnN0RWxlbWVudENoaWxkOyljPWMuZmlyc3RFbGVtZW50Q2hpbGQ7cmV0dXJuIGN9KS5hcHBlbmQodGhpcykpLHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24oYil7ZCh0aGlzKS53cmFwSW5uZXIoYS5jYWxsKHRoaXMsYikpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ZCh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1NKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7ZCh0aGlzKS53cmFwQWxsKGI\/YS5jYWxsKHRoaXMsCmMpOmEpfSl9LHVud3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wYXJlbnQoYSkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe2QodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSk7ZC5leHByLnBzZXVkb3MuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiFkLmV4cHIucHNldWRvcy52aXNpYmxlKGEpfTtkLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiEhKGEub2Zmc2V0V2lkdGh8fGEub2Zmc2V0SGVpZ2h0fHxhLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX07ZC5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgbi5YTUxIdHRwUmVxdWVzdH1jYXRjaChhKXt9fTt2YXIgRmQ9ezA6MjAwLDEyMjM6MjA0fSxMYj1kLmFqYXhTZXR0aW5ncy54aHIoKTtOLmNvcnM9ISFMYiYmIndpdGhDcmVkZW50aWFscyJpbiBMYjtOLmFqYXg9TGI9ISFMYjtkLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24oYSl7dmFyIGIsCmM7aWYoTi5jb3JzfHxMYiYmIWEuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxmKXt2YXIgZyxoPWEueGhyKCk7aWYoaC5vcGVuKGEudHlwZSxhLnVybCxhLmFzeW5jLGEudXNlcm5hbWUsYS5wYXNzd29yZCksYS54aHJGaWVsZHMpZm9yKGcgaW4gYS54aHJGaWVsZHMpaFtnXT1hLnhockZpZWxkc1tnXTtmb3IoZyBpbiBhLm1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZShhLm1pbWVUeXBlKSxhLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSloLnNldFJlcXVlc3RIZWFkZXIoZyxlW2ddKTtiPWZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbigpe2ImJihiPWM9aC5vbmxvYWQ9aC5vbmVycm9yPWgub25hYm9ydD1oLm9udGltZW91dD1oLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1tP2guYWJvcnQoKToiZXJyb3IiPT09bT8KIm51bWJlciIhPXR5cGVvZiBoLnN0YXR1cz9mKDAsImVycm9yIik6ZihoLnN0YXR1cyxoLnN0YXR1c1RleHQpOmYoRmRbaC5zdGF0dXNdfHxoLnN0YXR1cyxoLnN0YXR1c1RleHQsInRleHQiIT09KGgucmVzcG9uc2VUeXBlfHwidGV4dCIpfHwic3RyaW5nIiE9dHlwZW9mIGgucmVzcG9uc2VUZXh0P3tiaW5hcnk6aC5yZXNwb25zZX06e3RleHQ6aC5yZXNwb25zZVRleHR9LGguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19O2gub25sb2FkPWIoKTtjPWgub25lcnJvcj1oLm9udGltZW91dD1iKCJlcnJvciIpO3ZvaWQgMCE9PWgub25hYm9ydD9oLm9uYWJvcnQ9YzpoLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PT1oLnJlYWR5U3RhdGUmJm4uc2V0VGltZW91dChmdW5jdGlvbigpe2ImJmMoKX0pfTtiPWIoImFib3J0Iik7dHJ5e2guc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCl9Y2F0Y2gobSl7aWYoYil0aHJvdyBtO319LGFib3J0OmZ1bmN0aW9uKCl7YiYmCmIoKX19fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2EuY3Jvc3NEb21haW4mJihhLmNvbnRlbnRzLnNjcmlwdD0hMSl9KTtkLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihhKXtyZXR1cm4gZC5nbG9iYWxFdmFsKGEpLGF9fX0pO2QuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihhKXt2b2lkIDA9PT1hLmNhY2hlJiYoYS5jYWNoZT0hMSk7YS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIil9KTtkLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7dmFyIGIsYztpZihhLmNyb3NzRG9tYWlufHxhLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsCmYpe2I9ZCgiPHNjcmlwdD4iKS5hdHRyKGEuc2NyaXB0QXR0cnN8fHt9KS5wcm9wKHtjaGFyc2V0OmEuc2NyaXB0Q2hhcnNldCxzcmM6YS51cmx9KS5vbigibG9hZCBlcnJvciIsYz1mdW5jdGlvbihnKXtiLnJlbW92ZSgpO2M9bnVsbDtnJiZmKCJlcnJvciI9PT1nLnR5cGU\/NDA0OjIwMCxnLnR5cGUpfSk7TC5oZWFkLmFwcGVuZENoaWxkKGJbMF0pfSxhYm9ydDpmdW5jdGlvbigpe2MmJmMoKX19fSk7dmFyIEpjLEtjPVtdLGpjPS8oPSlcPyg\/PSZ8JCl8XD9cPy87ZC5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3ZhciBhPUtjLnBvcCgpfHxkLmV4cGFuZG8rIl8iK0RjKys7cmV0dXJuIHRoaXNbYV09ITAsYX19KTtkLmFqYXhQcmVmaWx0ZXIoImpzb24ganNvbnAiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD0hMSE9PWEuanNvbnAmJihqYy50ZXN0KGEudXJsKT8idXJsIjoic3RyaW5nIj09dHlwZW9mIGEuZGF0YSYmMD09PShhLmNvbnRlbnRUeXBlfHwKIiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZqYy50ZXN0KGEuZGF0YSkmJiJkYXRhIik7aWYoaHx8Impzb25wIj09PWEuZGF0YVR5cGVzWzBdKXJldHVybiBlPWEuanNvbnBDYWxsYmFjaz1NKGEuanNvbnBDYWxsYmFjayk\/YS5qc29ucENhbGxiYWNrKCk6YS5qc29ucENhbGxiYWNrLGg\/YVtoXT1hW2hdLnJlcGxhY2UoamMsIiQxIitlKTohMSE9PWEuanNvbnAmJihhLnVybCs9KGhjLnRlc3QoYS51cmwpPyImIjoiPyIpK2EuanNvbnArIj0iK2UpLGEuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBnfHxkLmVycm9yKGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGEuZGF0YVR5cGVzWzBdPSJqc29uIixmPW5bZV0sbltlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxjLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWY\/ZChuKS5yZW1vdmVQcm9wKGUpOm5bZV09ZjthW2VdJiYoYS5qc29ucENhbGxiYWNrPWIuanNvbnBDYWxsYmFjaywKS2MucHVzaChlKSk7ZyYmTShmKSYmZihnWzBdKTtnPWY9dm9pZCAwfSksInNjcmlwdCJ9KTtOLmNyZWF0ZUhUTUxEb2N1bWVudD0oKEpjPUwuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKS5ib2R5KS5pbm5lckhUTUw9Ijxmb3JtPjwvZm9ybT48Zm9ybT48L2Zvcm0+IiwyPT09SmMuY2hpbGROb2Rlcy5sZW5ndGgpO2QucGFyc2VIVE1MPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGE\/W106KCJib29sZWFuIj09dHlwZW9mIGImJihjPWIsYj0hMSksYnx8KE4uY3JlYXRlSFRNTERvY3VtZW50PygoZT0oYj1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikpLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSkuaHJlZj1MLmxvY2F0aW9uLmhyZWYsYi5oZWFkLmFwcGVuZENoaWxkKGUpKTpiPUwpLGc9IWMmJltdLChmPXljLmV4ZWMoYSkpP1tiLmNyZWF0ZUVsZW1lbnQoZlsxXSldOihmPVJiKFthXSxiLGcpLGcmJmcubGVuZ3RoJiZkKGcpLnJlbW92ZSgpLApkLm1lcmdlKFtdLGYuY2hpbGROb2RlcykpKTt2YXIgZSxmLGd9O2QuZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9dGhpcyxtPWEuaW5kZXhPZigiICIpO3JldHVybi0xPG0mJihlPUMoYS5zbGljZShtKSksYT1hLnNsaWNlKDAsbSkpLE0oYik\/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLDA8aC5sZW5ndGgmJmQuYWpheCh7dXJsOmEsdHlwZTpmfHwiR0VUIixkYXRhVHlwZToiaHRtbCIsZGF0YTpifSkuZG9uZShmdW5jdGlvbihsKXtnPWFyZ3VtZW50cztoLmh0bWwoZT9kKCI8ZGl2PiIpLmFwcGVuZChkLnBhcnNlSFRNTChsKSkuZmluZChlKTpsKX0pLmFsd2F5cyhjJiZmdW5jdGlvbihsLHQpe2guZWFjaChmdW5jdGlvbigpe2MuYXBwbHkodGhpcyxnfHxbbC5yZXNwb25zZVRleHQsdCxsXSl9KX0pLHRoaXN9O2QuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBkLmdyZXAoZC50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT0KYi5lbGVtfSkubGVuZ3RofTtkLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD1kLmNzcyhhLCJwb3NpdGlvbiIpLG09ZChhKSxsPXt9OyJzdGF0aWMiPT09aCYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIik7dmFyIHQ9bS5vZmZzZXQoKSx3PWQuY3NzKGEsInRvcCIpLHI9ZC5jc3MoYSwibGVmdCIpOygiYWJzb2x1dGUiPT09aHx8ImZpeGVkIj09PWgpJiYtMTwodytyKS5pbmRleE9mKCJhdXRvIik\/KGc9KGU9bS5wb3NpdGlvbigpKS50b3AsZj1lLmxlZnQpOihnPXBhcnNlRmxvYXQodyl8fDAsZj1wYXJzZUZsb2F0KHIpfHwwKTtNKGIpJiYoYj1iLmNhbGwoYSxjLGQuZXh0ZW5kKHt9LHQpKSk7bnVsbCE9Yi50b3AmJihsLnRvcD1iLnRvcC10LnRvcCtnKTtudWxsIT1iLmxlZnQmJihsLmxlZnQ9Yi5sZWZ0LXQubGVmdCtmKTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxsKTptLmNzcyhsKX19O2QuZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09CmE\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oZil7ZC5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYSxmKX0pO3ZhciBiLGMsZT10aGlzWzBdO3JldHVybiBlP2UuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGg\/KGI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyx7dG9wOmIudG9wK2MucGFnZVlPZmZzZXQsbGVmdDpiLmxlZnQrYy5wYWdlWE9mZnNldH0pOnt0b3A6MCxsZWZ0OjB9OnZvaWQgMH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiPXRoaXNbMF0sYz17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09ZC5jc3MoYiwicG9zaXRpb24iKSl2YXIgZT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7ZT10aGlzLm9mZnNldCgpO3ZhciBmPWIub3duZXJEb2N1bWVudDtmb3IoYT1iLm9mZnNldFBhcmVudHx8Zi5kb2N1bWVudEVsZW1lbnQ7YSYmKGE9PT1mLmJvZHl8fGE9PT1mLmRvY3VtZW50RWxlbWVudCkmJgoic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5wYXJlbnROb2RlO2EmJmEhPT1iJiYxPT09YS5ub2RlVHlwZSYmKChjPWQoYSkub2Zmc2V0KCkpLnRvcCs9ZC5jc3MoYSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxjLmxlZnQrPWQuY3NzKGEsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOmUudG9wLWMudG9wLWQuY3NzKGIsIm1hcmdpblRvcCIsITApLGxlZnQ6ZS5sZWZ0LWMubGVmdC1kLmNzcyhiLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMub2Zmc2V0UGFyZW50O2EmJiJzdGF0aWMiPT09ZC5jc3MoYSwicG9zaXRpb24iKTspYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYXx8amJ9KX19KTtkLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24oYSxiKXt2YXIgYz0icGFnZVlPZmZzZXQiPT09CmI7ZC5mblthXT1mdW5jdGlvbihlKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihmLGcsaCl7dmFyIG07aWYoa2IoZik\/bT1mOjk9PT1mLm5vZGVUeXBlJiYobT1mLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1oKXJldHVybiBtP21bYl06ZltnXTttP20uc2Nyb2xsVG8oYz9tLnBhZ2VYT2Zmc2V0OmgsYz9oOm0ucGFnZVlPZmZzZXQpOmZbZ109aH0sYSxlLGFyZ3VtZW50cy5sZW5ndGgpfX0pO2QuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihhLGIpe2QuY3NzSG9va3NbYl09VmIoTi5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGMsZSl7aWYoZSlyZXR1cm4gZT1LYShjLGIpLGJjLnRlc3QoZSk\/ZChjKS5wb3NpdGlvbigpW2JdKyJweCI6ZX0pfSk7ZC5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxiKXtkLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZSl7ZC5mbltlXT1mdW5jdGlvbihmLApnKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2YgZiksbT1jfHwoITA9PT1mfHwhMD09PWc\/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGwsdCx3KXt2YXIgcjtyZXR1cm4ga2IobCk\/MD09PWUuaW5kZXhPZigib3V0ZXIiKT9sWyJpbm5lciIrYV06bC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWwubm9kZVR5cGU\/KHI9bC5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgobC5ib2R5WyJzY3JvbGwiK2FdLHJbInNjcm9sbCIrYV0sbC5ib2R5WyJvZmZzZXQiK2FdLHJbIm9mZnNldCIrYV0sclsiY2xpZW50IithXSkpOnZvaWQgMD09PXc\/ZC5jc3MobCx0LG0pOmQuc3R5bGUobCx0LHcsbSl9LGIsaD9mOnZvaWQgMCxoKX19KX0pO2QuZWFjaCgiYWpheFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBhamF4RXJyb3IgYWpheFN1Y2Nlc3MgYWpheFNlbmQiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSwKYil7ZC5mbltiXT1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5vbihiLGMpfX0pO2QuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMub24oYixhLGMsZSl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7ZC5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2QuZm5bYl09ZnVuY3Rpb24oYyxlKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oYixudWxsLGMsZSk6dGhpcy50cmlnZ2VyKGIpfX0pO3ZhciBHZD0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztkLnByb3h5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmKGM9YVtiXSxiPWEsYT1jKSxNKGEpKXJldHVybiBlPXlhLmNhbGwoYXJndW1lbnRzLDIpLChmPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYnx8dGhpcyxlLmNvbmNhdCh5YS5jYWxsKGFyZ3VtZW50cykpKX0pLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8ZC5ndWlkKyssZn07ZC5ob2xkUmVhZHk9ZnVuY3Rpb24oYSl7YT9kLnJlYWR5V2FpdCsrOmQucmVhZHkoITApfTtkLmlzQXJyYXk9QXJyYXkuaXNBcnJheTtkLnBhcnNlSlNPTj1KU09OLnBhcnNlO2Qubm9kZU5hbWU9WDtkLmlzRnVuY3Rpb249TTtkLmlzV2luZG93PQprYjtkLmNhbWVsQ2FzZT1CYTtkLnR5cGU9VTtkLm5vdz1EYXRlLm5vdztkLmlzTnVtZXJpYz1mdW5jdGlvbihhKXt2YXIgYj1kLnR5cGUoYSk7cmV0dXJuKCJudW1iZXIiPT09Ynx8InN0cmluZyI9PT1iKSYmIWlzTmFOKGEtcGFyc2VGbG9hdChhKSl9O2QudHJpbT1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShHZCwiJDEiKX07ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGR9KTt2YXIgSGQ9bi5qUXVlcnksSWQ9bi4kO3JldHVybiBkLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uJD09PWQmJihuLiQ9SWQpLGEmJm4ualF1ZXJ5PT09ZCYmKG4ualF1ZXJ5PUhkKSxkfSwidW5kZWZpbmVkIj09dHlwZW9mIGRhJiYobi5qUXVlcnk9bi4kPWQpLGR9KTt2YXIgbWF0Y2hlZCxicm93c2VyOwpqUXVlcnkudWFNYXRjaD1mdW5jdGlvbihuKXtuPW4udG9Mb3dlckNhc2UoKTtuPS8oY2hyb21lKVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8od2Via2l0KVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8ob3BlcmEpKD86Lip2ZXJzaW9ufClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG1zaWUpIChbXHcuXSspLy5leGVjKG4pfHwwPm4uaW5kZXhPZigiY29tcGF0aWJsZSIpJiYvKG1vemlsbGEpKD86Lio\/IHJ2OihbXHcuXSspfCkvLmV4ZWMobil8fFtdO3JldHVybnticm93c2VyOm5bMV18fCIiLHZlcnNpb246blsyXXx8IjAifX07bWF0Y2hlZD1qUXVlcnkudWFNYXRjaChuYXZpZ2F0b3IudXNlckFnZW50KTticm93c2VyPXt9O21hdGNoZWQuYnJvd3NlciYmKGJyb3dzZXJbbWF0Y2hlZC5icm93c2VyXT0hMCxicm93c2VyLnZlcnNpb249bWF0Y2hlZC52ZXJzaW9uKTticm93c2VyLmNocm9tZT9icm93c2VyLndlYmtpdD0hMDpicm93c2VyLndlYmtpdCYmKGJyb3dzZXIuc2FmYXJpPSEwKTsKalF1ZXJ5LmJyb3dzZXI9YnJvd3NlcjsKKGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGZ1bmN0aW9uKGRhKXtyZXR1cm4gbihkYSx3aW5kb3cpfSk6Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uKHJlcXVpcmUoImpxdWVyeSIpLHdpbmRvdyk6bihqUXVlcnksd2luZG93KX0pKGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKHUpe2E6e3ZhciB4PS9eKFxkKylcLihcZCspXC4oXGQrKS8sQz14LmV4ZWMobi5mbi5qcXVlcnkpfHxbXTt4PXguZXhlYyh1KXx8W107Zm9yKHU9MTszPj11O3UrKyl7aWYoK0NbdV0+K3hbdV0pe0M9MTticmVhayBhfWlmKCtDW3VdPCt4W3VdKXtDPS0xO2JyZWFrIGF9fUM9MH1yZXR1cm4gMDw9Q31mdW5jdGlvbiBVKHUseCl7dmFyIEM9ZGEuY29uc29sZTshbi5taWdyYXRlSXNQYXRjaEVuYWJsZWQodSl8fG4ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3MmJm1iW3hdfHwKKG1iW3hdPSEwLG4ubWlncmF0ZVdhcm5pbmdzLnB1c2goeCsiIFsiK3UrIl0iKSxDJiZDLndhcm4mJiFuLm1pZ3JhdGVNdXRlJiYoQy53YXJuKCJKUU1JR1JBVEU6ICIreCksbi5taWdyYXRlVHJhY2UmJkMudHJhY2UmJkMudHJhY2UoKSkpfWZ1bmN0aW9uIGViKHUseCxDLEgsUCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUseCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7VShILFApO3JldHVybiBDfSxzZXQ6ZnVuY3Rpb24oZWEpe1UoSCxQKTtDPWVhfX0pfWZ1bmN0aW9uIFgodSx4LEMsSCxQKXt2YXIgZWEsUWE9dVt4XTt1W3hdPWZ1bmN0aW9uKCl7UCYmVShILFApO2VhPW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKEgpP0M6UWF8fG4ubm9vcDtyZXR1cm4gZWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBiYSh1LHgsQyxILFApe2lmKCFQKXRocm93IEVycm9yKCJObyB3YXJuaW5nIG1lc3NhZ2UgcHJvdmlkZWQiKTtyZXR1cm4gWCh1LAp4LEMsSCxQKX1mdW5jdGlvbiBqYSh1LHgsQyxIKXtyZXR1cm4gWCh1LHgsQyxIKX1mdW5jdGlvbiBsYih1KXtyZXR1cm4gdS5yZXBsYWNlKC8tKFthLXpdKS9nLGZ1bmN0aW9uKHgsQyl7cmV0dXJuIEMudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIFlhKHUpe3JldHVybiBwYi50ZXN0KHUpJiZTYi50ZXN0KHVbMF0udG9VcHBlckNhc2UoKSt1LnNsaWNlKDEpKX1uLm1pZ3JhdGVWZXJzaW9uPSIzLjQuMSI7dmFyIFphPU9iamVjdC5jcmVhdGUobnVsbCk7bi5taWdyYXRlRGlzYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspWmFbYXJndW1lbnRzW3VdXT0hMH07bi5taWdyYXRlRW5hYmxlUGF0Y2hlcz1mdW5jdGlvbigpe3ZhciB1O2Zvcih1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKylkZWxldGUgWmFbYXJndW1lbnRzW3VdXX07bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQ9ZnVuY3Rpb24odSl7cmV0dXJuIVphW3VdfTtkYS5jb25zb2xlJiYKZGEuY29uc29sZS5sb2cmJihuJiZ3YSgiMy4wLjAiKSYmIXdhKCI1LjAuMCIpfHxkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBqUXVlcnkgMy54LTQueCBSRVFVSVJFRCIpLG4ubWlncmF0ZVdhcm5pbmdzJiZkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIHBsdWdpbiBsb2FkZWQgbXVsdGlwbGUgdGltZXMiKSxkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIGlzIGluc3RhbGxlZCIrKG4ubWlncmF0ZU11dGU\/IiI6IiB3aXRoIGxvZ2dpbmcgYWN0aXZlIikrIiwgdmVyc2lvbiAiK24ubWlncmF0ZVZlcnNpb24pKTt2YXIgbWI9e307bi5taWdyYXRlRGVkdXBsaWNhdGVXYXJuaW5ncz0hMDtuLm1pZ3JhdGVXYXJuaW5ncz1bXTt2b2lkIDA9PT1uLm1pZ3JhdGVUcmFjZSYmKG4ubWlncmF0ZVRyYWNlPSEwKTtuLm1pZ3JhdGVSZXNldD1mdW5jdGlvbigpe21iPXt9O24ubWlncmF0ZVdhcm5pbmdzLmxlbmd0aD0wfTsiQmFja0NvbXBhdCI9PT1kYS5kb2N1bWVudC5jb21wYXRNb2RlJiYKVSgicXVpcmtzIiwialF1ZXJ5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggUXVpcmtzIE1vZGUiKTt2YXIgT2EsTmI9e30sQmE9bi5mbi5pbml0LEphPW4uZmluZCxPYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vLFBiPS9cWyhccypbLVx3XStccyopKFt+fF4kKl0\/PSlccyooWy1cdyNdKj8jWy1cdyNdKilccypcXS9nLCRhPS9eW1xzXHVGRUZGXHhBMF0rfChbXlxzXHVGRUZGXHhBMF0pW1xzXHVGRUZGXHhBMF0rJC9nO2phKG4uZm4sImluaXQiLGZ1bmN0aW9uKHUpe3ZhciB4PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoInNlbGVjdG9yLWVtcHR5LWlkIikmJiJzdHJpbmciPT09dHlwZW9mIHUmJiIjIj09PXUmJihVKCJzZWxlY3Rvci1lbXB0eS1pZCIsImpRdWVyeSggJyMnICkgaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IiKSx4WzBdPVtdKTtyZXR1cm4gQmEuYXBwbHkodGhpcywKeCl9LCJzZWxlY3Rvci1lbXB0eS1pZCIpO24uZm4uaW5pdC5wcm90b3R5cGU9bi5mbjtqYShuLCJmaW5kIixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKCJzdHJpbmciPT09dHlwZW9mIHUmJk9iLnRlc3QodSkpdHJ5e2RhLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodSl9Y2F0Y2goQyl7dT11LnJlcGxhY2UoUGIsZnVuY3Rpb24oSCxQLGVhLFFhKXtyZXR1cm4iWyIrUCtlYSsnIicrUWErJyJdJ30pO3RyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpLFUoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgbXVzdCBiZSBxdW90ZWQ6ICIreFswXSkseFswXT11fWNhdGNoKEgpe1UoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgd2FzIG5vdCBmaXhlZDogIit4WzBdKX19cmV0dXJuIEphLmFwcGx5KHRoaXMseCl9LCJzZWxlY3Rvci1oYXNoIik7Zm9yKE9hIGluIEphKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChKYSwKT2EpJiYobi5maW5kW09hXT1KYVtPYV0pO2JhKG4uZm4sInNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSwic2l6ZSIsImpRdWVyeS5mbi5zaXplKCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZDsgdXNlIHRoZSAubGVuZ3RoIHByb3BlcnR5Iik7YmEobiwicGFyc2VKU09OIixmdW5jdGlvbigpe3JldHVybiBKU09OLnBhcnNlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sInBhcnNlSlNPTiIsImpRdWVyeS5wYXJzZUpTT04gaXMgZGVwcmVjYXRlZDsgdXNlIEpTT04ucGFyc2UiKTtiYShuLCJob2xkUmVhZHkiLG4uaG9sZFJlYWR5LCJob2xkUmVhZHkiLCJqUXVlcnkuaG9sZFJlYWR5IGlzIGRlcHJlY2F0ZWQiKTtiYShuLCJ1bmlxdWUiLG4udW5pcXVlU29ydCwidW5pcXVlIiwialF1ZXJ5LnVuaXF1ZSBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LnVuaXF1ZVNvcnQiKTtlYihuLmV4cHIsImZpbHRlcnMiLG4uZXhwci5wc2V1ZG9zLCJleHByLXByZS1wc2V1ZG9zIiwialF1ZXJ5LmV4cHIuZmlsdGVycyBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LmV4cHIucHNldWRvcyIpOwplYihuLmV4cHIsIjoiLG4uZXhwci5wc2V1ZG9zLCJleHByLXByZS1wc2V1ZG9zIiwialF1ZXJ5LmV4cHJbJzonXSBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LmV4cHIucHNldWRvcyIpO3dhKCIzLjEuMSIpJiZiYShuLCJ0cmltIixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbD09dT8iIjoodSsiIikucmVwbGFjZSgkYSwiJDEiKX0sInRyaW0iLCJqUXVlcnkudHJpbSBpcyBkZXByZWNhdGVkOyB1c2UgU3RyaW5nLnByb3RvdHlwZS50cmltIik7d2EoIjMuMi4wIikmJihiYShuLCJub2RlTmFtZSIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdS5ub2RlTmFtZSYmdS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09eC50b0xvd2VyQ2FzZSgpfSwibm9kZU5hbWUiLCJqUXVlcnkubm9kZU5hbWUgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzQXJyYXkiLEFycmF5LmlzQXJyYXksImlzQXJyYXkiLCJqUXVlcnkuaXNBcnJheSBpcyBkZXByZWNhdGVkOyB1c2UgQXJyYXkuaXNBcnJheSIpKTt3YSgiMy4zLjAiKSYmCihiYShuLCJpc051bWVyaWMiLGZ1bmN0aW9uKHUpe3ZhciB4PXR5cGVvZiB1O3JldHVybigibnVtYmVyIj09PXh8fCJzdHJpbmciPT09eCkmJiFpc05hTih1LXBhcnNlRmxvYXQodSkpfSwiaXNOdW1lcmljIiwialF1ZXJ5LmlzTnVtZXJpYygpIGlzIGRlcHJlY2F0ZWQiKSxuLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKHUseCl7TmJbIltvYmplY3QgIit4KyJdIl09eC50b0xvd2VyQ2FzZSgpfSksYmEobiwidHlwZSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/dSsiIjoib2JqZWN0Ij09PXR5cGVvZiB1fHwiZnVuY3Rpb24iPT09dHlwZW9mIHU\/TmJbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHUpXXx8Im9iamVjdCI6dHlwZW9mIHV9LCJ0eXBlIiwialF1ZXJ5LnR5cGUgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzRnVuY3Rpb24iLGZ1bmN0aW9uKHUpe3JldHVybiJmdW5jdGlvbiI9PT0KdHlwZW9mIHV9LCJpc0Z1bmN0aW9uIiwialF1ZXJ5LmlzRnVuY3Rpb24oKSBpcyBkZXByZWNhdGVkIiksYmEobiwiaXNXaW5kb3ciLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsIT11JiZ1PT09dS53aW5kb3d9LCJpc1dpbmRvdyIsImpRdWVyeS5pc1dpbmRvdygpIGlzIGRlcHJlY2F0ZWQiKSk7aWYobi5hamF4KXt2YXIgc2E9bi5hamF4LG5iPS8oPSlcPyg\/PSZ8JCl8XD9cPy87amEobiwiYWpheCIsZnVuY3Rpb24oKXt2YXIgdT1zYS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dS5wcm9taXNlJiYoYmEodSwic3VjY2VzcyIsdS5kb25lLCJqcVhIUi1tZXRob2RzIiwialFYSFIuc3VjY2VzcyBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiZXJyb3IiLHUuZmFpbCwianFYSFItbWV0aG9kcyIsImpRWEhSLmVycm9yIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKSxiYSh1LCJjb21wbGV0ZSIsdS5hbHdheXMsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5jb21wbGV0ZSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIikpOwpyZXR1cm4gdX0sImpxWEhSLW1ldGhvZHMiKTt3YSgiNC4wLjAiKXx8bi5hamF4UHJlZmlsdGVyKCIranNvbiIsZnVuY3Rpb24odSl7ITEhPT11Lmpzb25wJiYobmIudGVzdCh1LnVybCl8fCJzdHJpbmciPT09dHlwZW9mIHUuZGF0YSYmMD09PSh1LmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJm5iLnRlc3QodS5kYXRhKSkmJlUoImpzb25wLXByb21vdGlvbiIsIkpTT04tdG8tSlNPTlAgYXV0by1wcm9tb3Rpb24gaXMgZGVwcmVjYXRlZCIpfSl9dmFyIFJiPW4uZm4ucmVtb3ZlQXR0cixhYj1uLmZuLnRvZ2dsZUNsYXNzLGJiPS9cUysvZztqYShuLmZuLCJyZW1vdmVBdHRyIixmdW5jdGlvbih1KXt2YXIgeD10aGlzLEM9ITE7bi5lYWNoKHUubWF0Y2goYmIpLGZ1bmN0aW9uKEgsUCl7bi5leHByLm1hdGNoLmJvb2wudGVzdChQKSYmeC5lYWNoKGZ1bmN0aW9uKCl7aWYoITEhPT1uKHRoaXMpLnByb3AoUCkpcmV0dXJuIEM9CiEwLCExfSk7QyYmKFUoInJlbW92ZUF0dHItYm9vbCIsImpRdWVyeS5mbi5yZW1vdmVBdHRyIG5vIGxvbmdlciBzZXRzIGJvb2xlYW4gcHJvcGVydGllczogIitQKSx4LnByb3AoUCwhMSkpfSk7cmV0dXJuIFJiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sInJlbW92ZUF0dHItYm9vbCIpO2phKG4uZm4sInRvZ2dsZUNsYXNzIixmdW5jdGlvbih1KXtpZih2b2lkIDAhPT11JiYiYm9vbGVhbiIhPT10eXBlb2YgdSlyZXR1cm4gYWIuYXBwbHkodGhpcyxhcmd1bWVudHMpO1UoInRvZ2dsZUNsYXNzLWJvb2wiLCJqUXVlcnkuZm4udG9nZ2xlQ2xhc3MoIGJvb2xlYW4gKSBpcyBkZXByZWNhdGVkIik7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB4PXRoaXMuZ2V0QXR0cmlidXRlJiZ0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiI7eCYmbi5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHgpO3RoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHh8fAohMT09PXU\/IiI6bi5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LCJ0b2dnbGVDbGFzcy1ib29sIik7dmFyIGZiPSExLHBiPS9eW2Etel0vLFNiPS9eKD86Qm9yZGVyKD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT8oPzpXaWR0aHwpfCg\/Ok1hcmdpbnxQYWRkaW5nKT8oPzpUb3B8UmlnaHR8Qm90dG9tfExlZnQpP3woPzpNaW58TWF4KT8oPzpXaWR0aHxIZWlnaHQpKSQvO24uc3dhcCYmbi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiLCJyZWxpYWJsZU1hcmdpblJpZ2h0Il0sZnVuY3Rpb24odSx4KXt2YXIgQz1uLmNzc0hvb2tzW3hdJiZuLmNzc0hvb2tzW3hdLmdldDtDJiYobi5jc3NIb29rc1t4XS5nZXQ9ZnVuY3Rpb24oKXtmYj0hMDt2YXIgSD1DLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmYj0hMTtyZXR1cm4gSH0pfSk7amEobiwic3dhcCIsZnVuY3Rpb24odSx4LEMsSCl7dmFyIFAsZWE9e307ZmJ8fFUoInN3YXAiLCJqUXVlcnkuc3dhcCgpIGlzIHVuZG9jdW1lbnRlZCBhbmQgZGVwcmVjYXRlZCIpOwpmb3IoUCBpbiB4KWVhW1BdPXUuc3R5bGVbUF0sdS5zdHlsZVtQXT14W1BdO0M9Qy5hcHBseSh1LEh8fFtdKTtmb3IoUCBpbiB4KXUuc3R5bGVbUF09ZWFbUF07cmV0dXJuIEN9LCJzd2FwIik7d2EoIjMuNC4wIikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIFByb3h5JiYobi5jc3NQcm9wcz1uZXcgUHJveHkobi5jc3NQcm9wc3x8e30se3NldDpmdW5jdGlvbigpe1UoImNzc1Byb3BzIiwialF1ZXJ5LmNzc1Byb3BzIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pKTtpZih3YSgiNC4wLjAiKSl7dmFyIHFiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsZ3JpZEFyZWE6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TdGFydDohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsCmdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9O24uY3NzTnVtYmVyPSJ1bmRlZmluZWQiIT09dHlwZW9mIFByb3h5P25ldyBQcm94eShxYix7Z2V0OmZ1bmN0aW9uKCl7VSgiY3NzLW51bWJlciIsImpRdWVyeS5jc3NOdW1iZXIgaXMgZGVwcmVjYXRlZCIpO3JldHVybiBSZWZsZWN0LmdldC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHNldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOnFifWVsc2UgcWI9bi5jc3NOdW1iZXI7dmFyICRiPW4uZm4uY3NzO2phKG4uZm4sImNzcyIsZnVuY3Rpb24odSx4KXt2YXIgQz10aGlzO2lmKHUmJiJvYmplY3QiPT09dHlwZW9mIHUmJiFBcnJheS5pc0FycmF5KHUpKXJldHVybiBuLmVhY2godSxmdW5jdGlvbihQLAplYSl7bi5mbi5jc3MuY2FsbChDLFAsZWEpfSksdGhpcztpZigibnVtYmVyIj09PXR5cGVvZiB4KXt2YXIgSD1sYih1KTtZYShIKXx8cWJbSF18fFUoImNzcy1udW1iZXIiLCdOdW1iZXItdHlwZWQgdmFsdWVzIGFyZSBkZXByZWNhdGVkIGZvciBqUXVlcnkuZm4uY3NzKCAiJyt1KyciLCB2YWx1ZSApJyl9cmV0dXJuICRiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImNzcy1udW1iZXIiKTt2YXIgZ2I9bi5kYXRhO2phKG4sImRhdGEiLGZ1bmN0aW9uKHUseCxDKXt2YXIgSDtpZih4JiYib2JqZWN0Ij09PXR5cGVvZiB4JiYyPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIFA9bi5oYXNEYXRhKHUpJiZnYi5jYWxsKHRoaXMsdSksZWE9e307Zm9yKEggaW4geClIIT09bGIoSCk\/KFUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIrSCksUFtIXT14W0hdKTplYVtIXT14W0hdO2diLmNhbGwodGhpcyx1LGVhKTtyZXR1cm4geH1yZXR1cm4geCYmCiJzdHJpbmciPT09dHlwZW9mIHgmJnghPT1sYih4KSYmKFA9bi5oYXNEYXRhKHUpJiZnYi5jYWxsKHRoaXMsdSkpJiZ4IGluIFA\/KFUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIreCksMjxhcmd1bWVudHMubGVuZ3RoJiYoUFt4XT1DKSxQW3hdKTpnYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJkYXRhLWNhbWVsQ2FzZSIpO2lmKG4uZngpe3ZhciBjYj1uLlR3ZWVuLnByb3RvdHlwZS5ydW4sVGI9ZnVuY3Rpb24odSl7cmV0dXJuIHV9O2phKG4uVHdlZW4ucHJvdG90eXBlLCJydW4iLGZ1bmN0aW9uKCl7MTxuLmVhc2luZ1t0aGlzLmVhc2luZ10ubGVuZ3RoJiYoVSgiZWFzaW5nLW9uZS1hcmciLCInalF1ZXJ5LmVhc2luZy4iK3RoaXMuZWFzaW5nLnRvU3RyaW5nKCkrIicgc2hvdWxkIHVzZSBvbmx5IG9uZSBhcmd1bWVudCIpLG4uZWFzaW5nW3RoaXMuZWFzaW5nXT1UYik7Y2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwKImVhc2luZy1vbmUtYXJnIik7dmFyIEthPW4uZnguaW50ZXJ2YWw7ZGEucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobi5meCwiaW50ZXJ2YWwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtkYS5kb2N1bWVudC5oaWRkZW58fFUoImZ4LWludGVydmFsIiwialF1ZXJ5LmZ4LmludGVydmFsIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gbi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoImZ4LWludGVydmFsIik\/dm9pZCAwPT09S2E\/MTM6S2E6S2F9LHNldDpmdW5jdGlvbih1KXtVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7S2E9dX19KX12YXIgVmI9bi5mbi5sb2FkLEFiPW4uZXZlbnQuYWRkLFdiPW4uZXZlbnQuZml4O24uZXZlbnQucHJvcHM9W107bi5ldmVudC5maXhIb29rcz17fTtlYihuLmV2ZW50LnByb3BzLCJjb25jYXQiLG4uZXZlbnQucHJvcHMuY29uY2F0LCJldmVudC1vbGQtcGF0Y2giLAoialF1ZXJ5LmV2ZW50LnByb3BzLmNvbmNhdCgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKTtqYShuLmV2ZW50LCJmaXgiLGZ1bmN0aW9uKHUpe3ZhciB4PXUudHlwZSxDPXRoaXMuZml4SG9va3NbeF0sSD1uLmV2ZW50LnByb3BzO2lmKEgubGVuZ3RoKWZvcihVKCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQucHJvcHMgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIrSC5qb2luKCkpO0gubGVuZ3RoOyluLmV2ZW50LmFkZFByb3AoSC5wb3AoKSk7aWYoQyYmIUMuX21pZ3JhdGVkXyYmKEMuX21pZ3JhdGVkXz0hMCxVKCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQuZml4SG9va3MgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIreCksKEg9Qy5wcm9wcykmJkgubGVuZ3RoKSlmb3IoO0gubGVuZ3RoOyluLmV2ZW50LmFkZFByb3AoSC5wb3AoKSk7eD1XYi5jYWxsKHRoaXMsdSk7cmV0dXJuIEMmJkMuZmlsdGVyP0MuZmlsdGVyKHgsdSk6eH0sImV2ZW50LW9sZC1wYXRjaCIpOwpqYShuLmV2ZW50LCJhZGQiLGZ1bmN0aW9uKHUseCl7dT09PWRhJiYibG9hZCI9PT14JiYiY29tcGxldGUiPT09ZGEuZG9jdW1lbnQucmVhZHlTdGF0ZSYmVSgibG9hZC1hZnRlci1ldmVudCIsImpRdWVyeSh3aW5kb3cpLm9uKCdsb2FkJy4uLikgY2FsbGVkIGFmdGVyIGxvYWQgZXZlbnQgb2NjdXJyZWQiKTtyZXR1cm4gQWIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwibG9hZC1hZnRlci1ldmVudCIpO24uZWFjaChbImxvYWQiLCJ1bmxvYWQiLCJlcnJvciJdLGZ1bmN0aW9uKHUseCl7amEobi5mbix4LGZ1bmN0aW9uKCl7dmFyIEM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO2lmKCJsb2FkIj09PXgmJiJzdHJpbmciPT09dHlwZW9mIENbMF0pcmV0dXJuIFZiLmFwcGx5KHRoaXMsQyk7VSgic2hvcnRoYW5kLXJlbW92ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBpcyBkZXByZWNhdGVkIik7Qy5zcGxpY2UoMCwwLHgpO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMub24uYXBwbHkodGhpcywKQyk7dGhpcy50cmlnZ2VySGFuZGxlci5hcHBseSh0aGlzLEMpO3JldHVybiB0aGlzfSwic2hvcnRoYW5kLXJlbW92ZWQtdjMiKX0pO24uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe2JhKG4uZm4seCxmdW5jdGlvbihDLEgpe3JldHVybiAwPGFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vbih4LG51bGwsQyxIKTp0aGlzLnRyaWdnZXIoeCl9LCJzaG9ydGhhbmQtZGVwcmVjYXRlZC12MyIsImpRdWVyeS5mbi4iK3grIigpIGV2ZW50IHNob3J0aGFuZCBpcyBkZXByZWNhdGVkIil9KTtuKGZ1bmN0aW9uKCl7bihkYS5kb2N1bWVudCkudHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9KTsKbi5ldmVudC5zcGVjaWFsLnJlYWR5PXtzZXR1cDpmdW5jdGlvbigpe3RoaXM9PT1kYS5kb2N1bWVudCYmVSgicmVhZHktZXZlbnQiLCIncmVhZHknIGV2ZW50IGlzIGRlcHJlY2F0ZWQiKX19O2JhKG4uZm4sImJpbmQiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gdGhpcy5vbih1LG51bGwseCxDKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmJpbmQoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwidW5iaW5kIixmdW5jdGlvbih1LHgpe3JldHVybiB0aGlzLm9mZih1LG51bGwseCl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi51bmJpbmQoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwiZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDLEgpe3JldHVybiB0aGlzLm9uKHgsdSxDLEgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uZGVsZWdhdGUoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwidW5kZWxlZ2F0ZSIsZnVuY3Rpb24odSx4LEMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD8KdGhpcy5vZmYodSwiKioiKTp0aGlzLm9mZih4LHV8fCIqKiIsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi51bmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImhvdmVyIixmdW5jdGlvbih1LHgpe3JldHVybiB0aGlzLm9uKCJtb3VzZWVudGVyIix1KS5vbigibW91c2VsZWF2ZSIseHx8dSl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5ob3ZlcigpIGlzIGRlcHJlY2F0ZWQiKTt2YXIgcmI9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpLEJiPWZ1bmN0aW9uKHUpe3ZhciB4PWRhLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7eC5ib2R5LmlubmVySFRNTD11O3JldHVybiB4LmJvZHkmJnguYm9keS5pbm5lckhUTUx9O24uVU5TQUZFX3Jlc3RvcmVMZWdhY3lIdG1sUHJlZmlsdGVyPWZ1bmN0aW9uKCl7bi5taWdyYXRlRW5hYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpfTsKamEobiwiaHRtbFByZWZpbHRlciIsZnVuY3Rpb24odSl7dmFyIHg9dS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKTt4IT09dSYmQmIodSkhPT1CYih4KSYmVSgic2VsZi1jbG9zZWQtdGFncyIsIkhUTUwgdGFncyBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZCBhbmQgY2xvc2VkOiAiK3UpO3JldHVybiB1LnJlcGxhY2UocmIsIjwkMT48LyQyPiIpfSwic2VsZi1jbG9zZWQtdGFncyIpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzKCJzZWxmLWNsb3NlZC10YWdzIik7dmFyIHphPW4uZm4ub2Zmc2V0O2phKG4uZm4sIm9mZnNldCIsZnVuY3Rpb24oKXt2YXIgdT10aGlzWzBdO3JldHVybiF1fHx1Lm5vZGVUeXBlJiZ1LmdldEJvdW5kaW5nQ2xpZW50UmVjdD96YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KFUoIm9mZnNldC12YWxpZC1lbGVtIiwialF1ZXJ5LmZuLm9mZnNldCgpIHJlcXVpcmVzIGEgdmFsaWQgRE9NIGVsZW1lbnQiKSxhcmd1bWVudHMubGVuZ3RoP3RoaXM6dm9pZCAwKX0sIm9mZnNldC12YWxpZC1lbGVtIik7CmlmKG4uYWpheCl7dmFyIENiPW4ucGFyYW07amEobiwicGFyYW0iLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5hamF4U2V0dGluZ3MmJm4uYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsO3ZvaWQgMD09PXgmJkMmJihVKCJwYXJhbS1hamF4LXRyYWRpdGlvbmFsIiwialF1ZXJ5LnBhcmFtKCkgbm8gbG9uZ2VyIHVzZXMgalF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCIpLHg9Qyk7cmV0dXJuIENiLmNhbGwodGhpcyx1LHgpfSwicGFyYW0tYWpheC10cmFkaXRpb25hbCIpfWJhKG4uZm4sImFuZFNlbGYiLG4uZm4uYWRkQmFjaywiYW5kU2VsZiIsImpRdWVyeS5mbi5hbmRTZWxmKCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCwgdXNlIGpRdWVyeS5mbi5hZGRCYWNrKCkiKTtpZihuLkRlZmVycmVkKXt2YXIgRGI9bi5EZWZlcnJlZCx0Yj1bWyJyZXNvbHZlIiwiZG9uZSIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlc29sdmVkIl0sClsicmVqZWN0IiwiZmFpbCIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbi5DYWxsYmFja3MoIm1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKV1dO2phKG4sIkRlZmVycmVkIixmdW5jdGlvbih1KXtmdW5jdGlvbiB4KCl7dmFyIFA9YXJndW1lbnRzO3JldHVybiBuLkRlZmVycmVkKGZ1bmN0aW9uKGVhKXtuLmVhY2godGIsZnVuY3Rpb24oUWEsRWIpe3ZhciBoYj0iZnVuY3Rpb24iPT09dHlwZW9mIFBbUWFdJiZQW1FhXTtDW0ViWzFdXShmdW5jdGlvbigpe3ZhciBvYT1oYiYmaGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKG9hJiYiZnVuY3Rpb24iPT09dHlwZW9mIG9hLnByb21pc2Upb2EucHJvbWlzZSgpLmRvbmUoZWEucmVzb2x2ZSkuZmFpbChlYS5yZWplY3QpLnByb2dyZXNzKGVhLm5vdGlmeSk7ZWxzZSBlYVtFYlswXSsiV2l0aCJdKHRoaXM9PT1IP2VhLnByb21pc2UoKToKdGhpcyxoYj9bb2FdOmFyZ3VtZW50cyl9KX0pO1A9bnVsbH0pLnByb21pc2UoKX12YXIgQz1EYigpLEg9Qy5wcm9taXNlKCk7YmEoQywicGlwZSIseCwiZGVmZXJyZWQtcGlwZSIsImRlZmVycmVkLnBpcGUoKSBpcyBkZXByZWNhdGVkIik7YmEoSCwicGlwZSIseCwiZGVmZXJyZWQtcGlwZSIsImRlZmVycmVkLnBpcGUoKSBpcyBkZXByZWNhdGVkIik7dSYmdS5jYWxsKEMsQyk7cmV0dXJuIEN9LCJkZWZlcnJlZC1waXBlIik7bi5EZWZlcnJlZC5leGNlcHRpb25Ib29rPURiLmV4Y2VwdGlvbkhvb2t9cmV0dXJuIG59KTsKLyoqIC9qcy9qcXVlcnkuY29va2llLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyMy0wOS0wNiAxNDozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oaCxsLHIpe2Z1bmN0aW9uIHQoYil7cmV0dXJuIGJ9ZnVuY3Rpb24gdShiKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChiLnJlcGxhY2UobSwiICIpKX1jYXRjaChjKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZShiKS5yZXBsYWNlKG0sIiAiKSl9Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhLm1lc3NhZ2UpLGJ9fX1mdW5jdGlvbiBuKGIsYyxhLGUsayxmKXsidW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2YmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKGIsYyxhLGUsayxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGIsYyxhLGUsayl9dmFyIG09L1wrL2csZz1oLmNvb2tpZT1mdW5jdGlvbihiLGMsYSl7aWYoYyE9PXIpcmV0dXJuIENvb2tpZXMuaXNDb29raWVBbGxvd2VkKGIsZnVuY3Rpb24oZCl7ZGVidWcoIkNvb2tpZTogIiwKYixkKTthPWguZXh0ZW5kKHt9LGcuZGVmYXVsdHMsYSk7aWYoIWQpcmV0dXJuIENvb2tpZXMucmVtb3ZlKGIsYS5wYXRoLGEuZG9tYWluKSwhMTtudWxsPT09YyYmKGEuZXhwaXJlcz0tMSk7Im51bWJlciI9PT10eXBlb2YgYS5leHBpcmVzSW5NaW51dGVzJiYoYS5leHBpcmVzPWEuZXhwaXJlc0luTWludXRlcy8xNDQwKTtpZigibnVtYmVyIj09PXR5cGVvZiBhLmV4cGlyZXMpe2Q9YS5leHBpcmVzO3ZhciBwPWEuZXhwaXJlcz1uZXcgRGF0ZTtwLnNldFRpbWUoK3ArODY0RTUqZCl9ZD1uZXcgRGF0ZTtkLnNldEZ1bGxZZWFyKGQuZ2V0RnVsbFllYXIoKSsxKTthLmV4cGlyZXM+ZCYmKGEuZXhwaXJlcz1kKTtjPWcuanNvbj9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyk7bihiLGMsYS5leHBpcmVzLGEucGF0aCxhLmRvbWFpbik7cmV0dXJuIGwuY29va2llPVtlbmNvZGVVUklDb21wb25lbnQoYiksIj0iLGcucmF3P2M6ZW5jb2RlVVJJQ29tcG9uZW50KGMpLGEuZXhwaXJlcz8iOyBleHBpcmVzPSIrCmEuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiLGEucGF0aD8iOyBwYXRoPSIrYS5wYXRoOiIiLGEuZG9tYWluPyI7IGRvbWFpbj0iK2EuZG9tYWluOiIiLGEuc2VjdXJlPyI7IHNlY3VyZSI6IiJdLmpvaW4oIiIpfSk7Zm9yKHZhciBlPWcucmF3P3Q6dSxrPWwuY29va2llLnNwbGl0KCI7ICIpLGY9MCx2PWsubGVuZ3RoO2Y8djtmKyspe3ZhciBxPWtbZl0uc3BsaXQoIj0iKTtpZihlKHEuc2hpZnQoKSk9PT1iKXJldHVybiBlPWUocS5qb2luKCI9IikpLGcuanNvbj9KU09OLnBhcnNlKGUpOmV9cmV0dXJuIG51bGx9O2cuZGVmYXVsdHM9e307aC5yZW1vdmVDb29raWU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gbnVsbCE9PWguY29va2llKGIpPyhoLmNvb2tpZShiLG51bGwsYyksITApOiExfX0pKGpRdWVyeSxkb2N1bWVudCk7Ci8qKiAvanMvdmFuaWxsYWpzL2Nvb2tpZXMuY29uc2VudC5qcyAqKi8KdmFyIF9fX2QyY19jb29raWVzY29uc2VudGpzX2Nfb249IjIwMjYtMDUtMjYgMTQ6MzA6MDMiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXt3aW5kb3cuRDJDRmJDb25zZW50PXdpbmRvdy5EMkNGYkNvbnNlbnR8fHtfc3RhdGU6bnVsbCxfcXVldWU6W10sX2ZsdXNoOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fcXVldWU7dGhpcy5fcXVldWU9W107YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3RyeXtiKCl9Y2F0Y2goYyl7fX0pfSxncmFudDpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSJncmFudCI7InVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiYoZmJxKCJjb25zZW50IiwiZ3JhbnQiKSx0aGlzLl9mbHVzaCgpKX0scmV2b2tlOmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9InJldm9rZSI7InVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiZmYnEoImNvbnNlbnQiLCJyZXZva2UiKX0sb25HcmFudGVkOmZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlpZigiZ3JhbnQiPT09dGhpcy5fc3RhdGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSl0cnl7YSgpfWNhdGNoKGIpe31lbHNlIHRoaXMuX3F1ZXVlLnB1c2goYSl9LApzeW5jVG9GYnE6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiYoZmJxKCJjb25zZW50Iix0aGlzLl9zdGF0ZSksImdyYW50Ij09PXRoaXMuX3N0YXRlJiZ0aGlzLl9mbHVzaCgpKX19O3dpbmRvdy5Db29raWVDb25zZW50PXtDQVRFR09SWUlEX0VTU0VOVElBTDoyLF9jbXBJbnRlcnZhbElEOm51bGwsX2N1cnJlbnRWZW5kb3I6bnVsbCxfY29va2llczpudWxsLF9jYXRlZ29yaWVzOm51bGwsX3JlZ2lzdGVyZWRSZXF1ZXN0czpbXSxpbml0OmZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5fbG9hZEpTT04obnVsbCk7Q29va2llQ29uc2VudC5fY21wSW50ZXJ2YWxJRD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQubGlzdGVuRm9yT25lVHJ1c3QoKX0sMUUzKTtsZXQgYT1Db29raWVDb25zZW50LmdldENvbnNlbnQoKTtudWxsPT1hfHxhLmluZGV4T2YoIkMwMDAyIik7ImdyYW50ZWQiPT09KG51bGw9PWF8fC0xPGEuaW5kZXhPZigiQzAwMDQiKT8KImdyYW50ZWQiOiJkZW5pZWQiKT93aW5kb3cuRDJDRmJDb25zZW50LmdyYW50KCk6d2luZG93LkQyQ0ZiQ29uc2VudC5yZXZva2UoKX0sbGlzdGVuRm9yT25lVHJ1c3Q6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBPbmVUcnVzdCl7Y29uc29sZS5sb2coIkNvb2tpZUNvbnNlbnQubGlzdGVuRm9yT25lVHJ1c3QoKSIpO0Nvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3I9Ik9uZVRydXN0IjtjbGVhckludGVydmFsKENvb2tpZUNvbnNlbnQuX2NtcEludGVydmFsSUQpO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1jbG9zZS1idG4tY29udGFpbmVyIC5vbmV0cnVzdC1jbG9zZS1idG4taGFuZGxlciIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2xldCBiPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxjPWxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIikuc2xpY2UoLTIpLmpvaW4oIi4iKTsKZG9jdW1lbnQuY29va2llPSJPcHRhbm9uQWxlcnRCb3hDbG9zZWQ9OyBQYXRoPS87IEV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7ZG9tYWluPSIrYisiOyI7ZG9jdW1lbnQuY29va2llPSJPcHRhbm9uQWxlcnRCb3hDbG9zZWQ9OyBQYXRoPS87IEV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7ZG9tYWluPSIrYysiOyJ9LDFFMyl9KTtPbmVUcnVzdC5PbkNvbnNlbnRDaGFuZ2VkKGZ1bmN0aW9uKGIpe2lmKGImJmIuZGV0YWlsKXt2YXIgYz1Db29raWVDb25zZW50Ll9nZXRDb25zZW50Q29va2llKCk7Q29va2llQ29uc2VudC5fdXBkYXRlQ29uc2VudENvb2tpZShKU09OLnN0cmluZ2lmeShiLmRldGFpbCkpOy0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDA0Iik\/Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FkX3N0b3JhZ2U6ImdyYW50ZWQifSk6Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FkX3N0b3JhZ2U6ImRlbmllZCJ9KTstMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwMiIpPwpndGFnKCJjb25zZW50IiwidXBkYXRlIix7YW5hbHl0aWNzX3N0b3JhZ2U6ImdyYW50ZWQifSk6Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FuYWx5dGljc19zdG9yYWdlOiJkZW5pZWQifSk7LTE8Yi5kZXRhaWwuaW5kZXhPZigiQzAwMDQiKT93aW5kb3cuRDJDRmJDb25zZW50LmdyYW50KCk6d2luZG93LkQyQ0ZiQ29uc2VudC5yZXZva2UoKTsxPT1iLmRldGFpbC5sZW5ndGgmJiJDMDAwMSI9PWIuZGV0YWlsWzBdJiYobnVsbD09Y3x8MTxjLmxlbmd0aCkmJmQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXMoITApO2lmKC0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDAyIikpe2M9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpO2M9bnVsbCE9Yz9KU09OLnBhcnNlKGF0b2IoYykpOnt9O2Zvcih2YXIgZCBpbiBjKUNvb2tpZXMuc2V0KGNbZF0ua2V5LGNbZF0udmFsdWUsY1tkXS5leHBpcmVzLGNbZF0ucGF0aCxjW2RdLmRvbWFpbil9c2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImQyY19jb25zZW50X2NoYW5nZWQiLHtjYXRlZ29yaWVzOmIuZGV0YWlsfSkpfX0pfX0sX3VwZGF0ZUNvbnNlbnRDb29raWU6ZnVuY3Rpb24oYSl7Q29va2llcy5zZXQoImQyY19jb29raWVfY29uc2VudCIsYSwzNjUsIi8iKX0sX2dldENvbnNlbnRDb29raWU6ZnVuY3Rpb24oKXtpZighQ29va2llcy5oYXMoImQyY19jb29raWVfY29uc2VudCIpKXJldHVybiBudWxsO2xldCBhPUNvb2tpZXMuZ2V0KCJkMmNfY29va2llX2NvbnNlbnQiKTtyZXR1cm4gSlNPTi5wYXJzZShhKX0sZ2V0Q29uc2VudDpmdW5jdGlvbigpe2xldCBhPSgiIitkb2N1bWVudC5jb29raWUpLnNwbGl0KCI7Iik7Zm9yKGxldCBiPTA7YjxhLmxlbmd0aDtiKyspe2xldCBjPWFbYl07Yz1jLnRyaW0oKTtpZigwPT1jLmluZGV4T2YoImQyY19jb29raWVfY29uc2VudD0iKSl7dHJ5e2M9ZGVjb2RlVVJJQ29tcG9uZW50KGMpfWNhdGNoKGQpe2NvbnNvbGUubG9nKGQpOwpicmVha31yZXR1cm4gYy5zdWJzdHJpbmcoMTksYy5sZW5ndGgpfX1yZXR1cm4gbnVsbH0saXNDb29raWVBbGxvd2VkOmZ1bmN0aW9uKGEsYil7aWYoWyJkMmNfY29va2llX2NvbnNlbnQiLCJDU1JGRE9NQUlOQ0hFQ0tfMSJdLmluY2x1ZGVzKGEpKWIoITApO2Vsc2UgaWYobnVsbD09PUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXN8fG51bGw9PT1Db29raWVDb25zZW50Ll9jYXRlZ29yaWVzKUNvb2tpZUNvbnNlbnQuX3JlZ2lzdGVySlNPTkxvYWRlZEV2ZW50KGZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQoYSxiKX0pO2Vsc2UgaWYoQ29va2llQ29uc2VudC5fY29va2llcy5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGM9Q29va2llQ29uc2VudC5fY29va2llc1thXSxkPUNvb2tpZUNvbnNlbnQuX2dldFZlbmRvckNhdGVnb3J5KGMpLGU9Q29va2llQ29uc2VudC5fZ2V0Q29uc2VudENvb2tpZSgpOyJmdW5jdGlvbiI9PT10eXBlb2YgZGVidWcmJmRlYnVnKHtuYW1lOmEsCmNhdGVnb3J5OmMsdmVuZG9yOmQsY29uc2VudDplfSk7bnVsbD09PWV8fG51bGw9PT1kP2IoITEpOiJvYmplY3QiPT09dHlwZW9mIGQ\/KGM9MDxkLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4tMTxlLmluZGV4T2YoZil9KS5sZW5ndGgsYihjKSk6YigtMTxlLmluZGV4T2YoZCkpfWVsc2UgYighMSl9LF9sb2FkSlNPTjpmdW5jdGlvbihhKXtmZXRjaCgiL2pzL2pzb24vY2F0ZWdvcml6ZWRfY29va2llcy5qc29uIikudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gYi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGIpe0Nvb2tpZUNvbnNlbnQuX2Nvb2tpZXM9Yi5jb29raWVzO0Nvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXM9Yi5jYXRlZ29yaWVzO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSl0cnl7YSgpfWNhdGNoKGMpe30wPENvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5sZW5ndGgmJkNvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGMpe3RyeXtjKCl9Y2F0Y2goZCl7fX0pfSl9LApfcmVnaXN0ZXJKU09OTG9hZGVkRXZlbnQ6ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKWlmKG51bGwhPT1Db29raWVDb25zZW50Ll9jb29raWVzKXRyeXthKCl9Y2F0Y2goYil7fWVsc2UgQ29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLnB1c2goYSl9LF9nZXRWZW5kb3JDYXRlZ29yeTpmdW5jdGlvbihhKXtpZihudWxsPT09Q29va2llQ29uc2VudC5fY3VycmVudFZlbmRvcil7bGV0IGM9W107T2JqZWN0LnZhbHVlcyhDb29raWVDb25zZW50Ll9jYXRlZ29yaWVzKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuaGFzT3duUHJvcGVydHkoYSkmJmMucHVzaChkW2FdKX0pO3JldHVybiBjfWxldCBiPUNvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXNbQ29va2llQ29uc2VudC5fY3VycmVudFZlbmRvcl07cmV0dXJuIGImJmIuaGFzT3duUHJvcGVydHkoYSk\/YlthXTpudWxsfX07d2luZG93LkNvb2tpZUNvbnNlbnQuaW5pdCgpfSkoKTsKLyoqIC9qcy92YW5pbGxhanMvY29udGVudExvYWRlci5qcyAqKi8KdmFyIF9fX2QyY19jb250ZW50TG9hZGVyanNfY19vbj0iMjAyNi0wNS0wNSAxMzozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZVtmXTtpZighKGcgaW4gZCkpcmV0dXJuO2Q9ZFtnXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oZiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmNvbnN0IGNvbnRlbnRCbG9ja3M9KCk9Pntjb25zdCBhPWI9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3ZhciBjPWIuZGF0YXNldCxkLGU9bnVsbD09KGQ9Yi5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJibG9jay1kYXRhIl0nKSk\/dm9pZCAwOmQudmFsdWU7ZD0iRlJFTkNIIj09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbHVlPyJmciI6ImVuIjtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZGF0YTplfHwie30ifSk7Yz15aWVsZCh5aWVsZCBmZXRjaChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGQpfS9hamF4L2dldFNrZWxldG9uQ29udGVudGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYyl9KSkuanNvbigpOwppZigidW5kZWZpbmVkIiE9dHlwZW9mIGMuc3RhdHVzJiYic3VjY2VzcyI9PWMuc3RhdHVzKWlmKGM9Yy5jb250ZW50LDE+Yy5sZW5ndGgpYi5yZXBsYWNlV2l0aCgiIik7ZWxzZXtjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGMpLmNoaWxkcmVuWzBdO3ZhciBmO2U9bnVsbD09KGY9Yi5kYXRhc2V0KT92b2lkIDA6Zi5jYWxsYmFjaztiLnBhcmVudEVsZW1lbnQuZGF0YXNldC5sb2FkZWQ9IjEiO2IucmVwbGFjZVdpdGgoYyk7ZSYmImZ1bmN0aW9uIj09PXR5cGVvZiBoYW5kbGVyc1tlXSYmaGFuZGxlcnNbZV0oYykuaW5pdCgpfX0pO2hhbmRsZXJzPXtwYXltZW50Q2FsY0Jsb2NrOmI9Pntjb25zdCBjPWIuY2xvc2VzdCgiLmRpdkNhclNpbmdsZUlubmVyQm94Iik7cmV0dXJue2luaXQ6KCk9PnskKGIpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGQ9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGUpe319KTtiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoYi5kYXRhc2V0LnRvb2x0aXBDcmVhdGVkKXJldHVybiExO2IuZGF0YXNldC50b29sdGlwQ3JlYXRlZD0iMSI7JChkLmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNhci1maW5hbmNlLWluZm8iKSkuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfSk7Yi5xdWVyeVNlbGVjdG9yKCIuY2FyLWZpbmFuY2UtaW5mbyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7aWYoIWMpcmV0dXJuITE7aWYoIlNVUCI9PWQudGFyZ2V0LnRhZ05hbWUmJgpkLnRhcmdldC5oYXNBdHRyaWJ1dGUoImRhdGEtZGlzY2xhaW1lci1kaXZpZCIpJiZ2b2lkIDAhPWRyRGlzY2xhaW1lckpTKXJldHVybiBkPWQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1kaXNjbGFpbWVyLWRpdmlkIiksZHJEaXNjbGFpbWVySlMub3BlbkRpc2NsYWltZXJEaXYoZCksITE7ZD1jLnF1ZXJ5U2VsZWN0b3IoIi5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIikuaHJlZjt3aW5kb3cub3BlbihkLCJfc2VsZiIpfSl9fX19O3JldHVybntzZXRCbG9ja09ic2VydmVyOigpPT57Y29uc3QgYj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZD0+e2QuZm9yRWFjaChlPT57ZS5pc0ludGVyc2VjdGluZyYmKGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLGIudW5vYnNlcnZlKGUudGFyZ2V0KSxjb25zb2xlLmxvZygic2tlbGV0b24gb2JzZXJ2ZWQgIitlLnRhcmdldCksYShlLnRhcmdldCkpfSl9LHt0aHJlc2hvbGQ6LjF9KSxjPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb250ZW50LXNrZWxldG9uIikuZm9yRWFjaChkPT57Yi5vYnNlcnZlKGQpOyJza2VsZXRvbiI9PT1jLmdldCgiZGVidWciKSYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbnRlbnQtc2tlbGV0b24iKS5mb3JFYWNoKGU9PmUuY2xhc3NMaXN0LmFkZCgiZGVidWciKSl9KX0saGFuZGxlcnN9fTtkb2NSZWFkeUFyci5wdXNoKCgpPT57ImZ1bmN0aW9uIj09PXR5cGVvZiBjb250ZW50QmxvY2tzJiZjb250ZW50QmxvY2tzKCkuc2V0QmxvY2tPYnNlcnZlcigpfSk7Ci8qKiAvanMvdmFuaWxsYWpzL2Nvb2tpZXMuanMgKiovCnZhciBfX19kMmNfY29va2llc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6MjUiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXtmdW5jdGlvbiBsKGEsYyxiLGgsZCxmLGUpe3ZhciBnPSIiO2lmKGIpe2xldCBrPW5ldyBEYXRlO2suc2V0RnVsbFllYXIoay5nZXRGdWxsWWVhcigpKzEpO3N3aXRjaChiLmNvbnN0cnVjdG9yKXtjYXNlIE51bWJlcjozNjU8YiYmKGI9MzY1KTtnPW5ldyBEYXRlO2cuc2V0RGF0ZShnLmdldERhdGUoKStiKTtnPUluZmluaXR5PT09Yj8iOyBleHBpcmVzPUZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoiOyBleHBpcmVzPSIrZy50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOm5ldyBEYXRlKGIpPmsmJihiPWsudG9VVENTdHJpbmcoKSk7Zz0iOyBleHBpcmVzPSIrYjticmVhaztjYXNlIERhdGU6Yj5rJiYoYj1rKSxnPSI7IGV4cGlyZXM9IitiLnRvVVRDU3RyaW5nKCl9fSJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPSJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGEpKwoiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpK2crKGQ\/IjsgZG9tYWluPSIrZDoiIikrKGg\/IjsgcGF0aD0iK2g6IiIpKyhmPyI7IHNlY3VyZSI6IiIpKyhlJiYibm9fcmVzdHJpY3Rpb24iIT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk\/ImxheCI9PT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKXx8MT09PU1hdGguY2VpbChlKXx8ITA9PT1lPyI7IHNhbWVzaXRlPWxheCI6Im5vbmUiPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl8fDA+ZT8iOyBzYW1lc2l0ZT1ub25lIjoiOyBzYW1lc2l0ZT1zdHJpY3QiOiIiKX1mdW5jdGlvbiBtKGEsYyl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWEpcmV0dXJuLTE7c3dpdGNoKGEuY29uc3RydWN0b3Ipe2Nhc2UgTnVtYmVyOmlmKCJudW1iZXIiPT09Yyl2YXIgYj04NjQwMCphO2Vsc2UgYj1uZXcgRGF0ZSxiLnNldERhdGUoYi5nZXREYXRlKCkrYSksYj1JbmZpbml0eT09PWE\/IkZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoKYi50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOiJzdHJpbmciPT09Yz9iPWE6KGI9bmV3IERhdGUsYj0oKG5ldyBEYXRlKGEpKS5nZXRUaW1lKCktYi5nZXRUaW1lKCkpLzFFMyk7YnJlYWs7Y2FzZSBEYXRlOiJzdHJpbmciPT09Yz9iPWEudG9VVENTdHJpbmcoKTooYj1uZXcgRGF0ZSxiPShhLmdldFRpbWUoKS1iLmdldFRpbWUoKSkvMUUzKX0ibnVtYmVyIj09PWMmJihiPU1hdGgucm91bmQoYikpO3JldHVybiBifXZhciBuPS9bXC1cLlwrXCpdL2cscD0vXig\/OmV4cGlyZXN8bWF4XC1hZ2V8cGF0aHxkb21haW58c2VjdXJlfHNhbWVzaXRlfGh0dHBvbmx5KSQvaSxxPSJ1dG1fY2FtcGFpZ24gdXRtX2tleXdvcmQgdXRtX2xhbmRpbmcgdXRtX2xhbmRpbmdfZm9vdGVyIHV0bV9tZWRpdW0gdXRtX3NvdXJjZSB1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcgdXRtX3NvdXJjZV9yZXRhcmdldGluZyBEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24gRGlzcGxheVNvdXJjZVVUTVNvdXJjZSIuc3BsaXQoIiAiKTsKd2luZG93LkNvb2tpZXM9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYT9kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llLnJlcGxhY2UobmV3IFJlZ0V4cCgiKD86KD86XnwuKjspXFxzKiIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9XFxzKihbXjtdKikuKiQpfF4uKiQiKSwiJDEiKSl8fG51bGw6bnVsbH0sc2V0OmZ1bmN0aW9uKGEsYyxiLGgsZCxmLGUpe3JldHVybiFhfHxwLnRlc3QoYSk\/ITE6Q29va2llcy5pc0Nvb2tpZUFsbG93ZWQoYSxmdW5jdGlvbihnKXtkPWQ\/ZDoiIjtmPW51bGw9PWY\/ITA6ZjtlPW51bGw9PWU\/Ik5vbmUiOmU7Q29va2llcy5sb2coYSxjLGIsaCxkKTtpZighZylyZXR1cm4tMTxxLmluZGV4T2YoYSkmJm51bGw9PUNvb2tpZXMuZ2V0KCJkMmNfY29va2llX2NvbnNlbnQiKSYmKGc9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpLGc9bnVsbCE9Zz9KU09OLnBhcnNlKGF0b2IoZykpOgp7fSxnW2FdPXtrZXk6YSx2YWx1ZTpjLGV4cGlyZXM6YixwYXRoOmgsZG9tYWluOmR9LHV0bUNvb2tpZXNTdG9yYWdlSlNPTj1KU09OLnN0cmluZ2lmeShnKSxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfY29uc2VudF93YWl0IixidG9hKHV0bUNvb2tpZXNTdG9yYWdlSlNPTikpKSxDb29raWVzLnJlbW92ZShhLGgsZCxmLGUpLCExO2RvY3VtZW50LmNvb2tpZT1sKGEsYyxiLGgsZCxmLGUpO3JldHVybiEwfSl9LHJlbW92ZTpmdW5jdGlvbihhLGMsYixoLGQpe2lmKCF0aGlzLmhhcyhhKSlyZXR1cm4hMTtkb2N1bWVudC5jb29raWU9bChhLCIiLCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsYyxiLGgsZCk7cmV0dXJuITB9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4hYXx8cC50ZXN0KGEpPyExOihuZXcgUmVnRXhwKCIoPzpefDtcXHMqKSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9IikpLnRlc3QoZG9jdW1lbnQuY29va2llKX0sCmtleXM6ZnVuY3Rpb24oKXtmb3IodmFyIGE9ZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLygoPzpefFxzKjspW149XSspKD89O3wkKXxeXHMqfFxzKig\/Oj1bXjtdKik\/KD86XDF8JCkvZywiIikuc3BsaXQoL1xzKig\/Oj1bXjtdKik\/O1xzKi8pLGM9YS5sZW5ndGgsYj0wO2I8YztiKyspYVtiXT1kZWNvZGVVUklDb21wb25lbnQoYVtiXSk7cmV0dXJuIGF9LGNsZWFyOmZ1bmN0aW9uKGEsYyxiLGgpe2Zvcih2YXIgZD10aGlzLmtleXMoKSxmPWQubGVuZ3RoLGU9MDtlPGY7ZSsrKXRoaXMucmVtb3ZlSXRlbShkW2VdLGEsYyxiLGgpfSxsb2c6ZnVuY3Rpb24oYSxjLGIsaCxkLGYpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZiYmc2V0VGltZW91dChmdW5jdGlvbigpe0Nvb2tpZXMubG9nKGEsYyxiLGgsZCxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYyxiLGgsZCl9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLApjKXtyZXR1cm4idW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudHx8InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkP2MoITApOndpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChhLGMpfX07d2luZG93LkNvb2tpZUxvZ2dlcj17X3N0YWNrOltdLGluaXQ6ZnVuY3Rpb24oKXtsZXQgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVhbGVyUHJvdmluY2VDb2RlIik7YSYmIlFDIj09bmV3IFN0cmluZyhhLnZhbHVlKSYmMT09TWF0aC5mbG9vcigzKk1hdGgucmFuZG9tKCkpJiZmZXRjaCgiL3Byb3h5X3JkMmMvZDJjYXBpL2xvZy9jb29raWVzL2FjdGl2ZSIpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGMuanNvbigpfSkudGhlbihmdW5jdGlvbihjKXsiYWN0aXZlIj09PWMuc3RhdHVzJiZDb29raWVMb2dnZXIud2FpdFN0YWNrKCl9KX0sbG9nOmZ1bmN0aW9uKGEsYyxiLGgsZCl7aWYoImxpdmUiPT09CndpbmRvdy5kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpKXtkZWJ1ZygiTG9nZ2luZyBjb29raWU6Iix7bmFtZTphLHZhbHVlOmN8fCIiLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpoLGRvbWFpbjpkfSk7dmFyIGYsZSxnPSJ1bmRlZmluZWQiIT10eXBlb2YgY3VycmVudFNpdGVJRD9jdXJyZW50U2l0ZUlEOm51bGwhPShlPW51bGw9PShmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKSk\/dm9pZCAwOmYudmFsdWUpP2U6IiI7dGhpcy5fc3RhY2sucHVzaCh7bmFtZTphLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpofHwiLyIsZG9tYWluOmR8fHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSx1cmk6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHNpdGVpZDpnLHZhbHVlOmJ0b2EoYyl9KX19LF9zZW5kU3RhY2s6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fc3RhY2subGVuZ3RoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29va2llTG9nVG9rZW4iKT8KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvb2tpZUxvZ1Rva2VuIikudmFsdWU6bnVsbDtpZihhKXt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGN1cnJlbnRTaXRlSUQ\/Y3VycmVudFNpdGVJRDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIik\/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlOiIiOyhuZXcgV29ya2VyKCIvanMvdmFuaWxsYWpzL2Nvb2tpZVdvcmtlci5qcyIpKS5wb3N0TWVzc2FnZSh7dG9rZW46YSxzaXRlSUQ6YyxzdGFjazpDb29raWVMb2dnZXIuX3N0YWNrfSk7Q29va2llTG9nZ2VyLl9zdGFjaz1bXX1lbHNlIGRlYnVnKCJObyBjb29raWUgbG9nIHRva2VuIGZvdW5kLiIpfX0sd2FpdFN0YWNrOmZ1bmN0aW9uKCl7ImxpdmUiPT09d2luZG93LmRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCkmJihzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Q29va2llTG9nZ2VyLl9zZW5kU3RhY2soKX0sMUU0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwKZnVuY3Rpb24oKXtDb29raWVMb2dnZXIuX3NlbmRTdGFjaygpfSkpfX07d2luZG93LkNvb2tpZUxvZ2dlci5pbml0KCl9KSgpOwovKiogL2pzL2pxdWVyeS5iYXNlNjQuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyNS0wNS0yMyAxNzowOToyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyNC0wMS0zMSAxNDozNTo0OCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIzLTAxLTEyIDExOjM1OjU4IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDU6MzkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MzozNCI7InVzZSBzdHJpY3QiOwpqUXVlcnkuYmFzZTY0PWZ1bmN0aW9uKGspe2Z1bmN0aW9uIGUoYSxjKXthPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5pbmRleE9mKGEuY2hhckF0KGMpKTtpZigtMT09PWEpdGhyb3ciQ2Fubm90IGRlY29kZSBiYXNlNjQiO3JldHVybiBhfWZ1bmN0aW9uIGgoYSxjKXthPWEuY2hhckNvZGVBdChjKTtpZigyNTU8YSl0aHJvdyJJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNSI7cmV0dXJuIGF9cmV0dXJue2RlY29kZTpmdW5jdGlvbihhKXt2YXIgYz0wLGIsZj1hLmxlbmd0aCxkPVtdO2E9U3RyaW5nKGEpO2lmKDA9PT1mKXJldHVybiBhO2lmKDAhPT1mJTQpdGhyb3ciQ2Fubm90IGRlY29kZSBiYXNlNjQiOyI9Ij09PWEuY2hhckF0KGYtMSkmJihjPTEsIj0iPT09YS5jaGFyQXQoZi0yKSYmKGM9MiksZi09NCk7Zm9yKGI9MDtiPGY7Yis9NCl7dmFyIGc9ZShhLGIpPDwxOHxlKGEsYisxKTw8CjEyfGUoYSxiKzIpPDw2fGUoYSxiKzMpO2QucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2LGc+PjgmMjU1LGcmMjU1KSl9c3dpdGNoKGMpe2Nhc2UgMTpnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PDEyfGUoYSxiKzIpPDw2O2QucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2LGc+PjgmMjU1KSk7YnJlYWs7Y2FzZSAyOmc9ZShhLGIpPDwxOHxlKGEsYisxKTw8MTIsZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZz4+MTYpKX1yZXR1cm4gZC5qb2luKCIiKX0sZW5jb2RlOmZ1bmN0aW9uKGEpe2lmKDEhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IlN5bnRheEVycm9yOiBleGFjdGx5IG9uZSBhcmd1bWVudCByZXF1aXJlZCI7YT1TdHJpbmcoYSk7dmFyIGMsYj1bXSxmPWEubGVuZ3RoLWEubGVuZ3RoJTM7aWYoMD09PWEubGVuZ3RoKXJldHVybiBhO2ZvcihjPTA7YzxmO2MrPTMpe3ZhciBkPWgoYSxjKTw8MTZ8aChhLGMrMSk8PDh8aChhLGMrMik7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+CjE4KSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj42JjYzKSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZCY2MykpfXN3aXRjaChhLmxlbmd0aC1mKXtjYXNlIDE6ZD1oKGEsYyk8PDE2O2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjE4KSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSsiPT0iKTticmVhaztjYXNlIDI6ZD0KaChhLGMpPDwxNnxoKGEsYysxKTw8OCxiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xOCkrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj42JjYzKSsiPSIpfXJldHVybiBiLmpvaW4oIiIpfSxWRVJTSU9OOiIxLjAifX0oalF1ZXJ5KTsKLyoqIC9qcy9qcXVlcnkuZGFya3Rvb2x0aXAuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlkYXJrdG9vbHRpcGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MDciOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGUoYSxjKXt0aGlzLmJlYXJlcj1hO3RoaXMub3B0aW9ucz1jO3RoaXMuaGlkZUV2ZW50O3RoaXMuaGlkaW5nPSExO3RoaXMubW91c2VPdmVyTW9kZT0iaG92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im1vdXNlb3ZlciI9PXRoaXMub3B0aW9ucy50cmlnZ2VyfHwib25tb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcn1lLnByb3RvdHlwZT17c2hvdzpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5vcHRpb25zLm1vZGFsJiZ0aGlzLm1vZGFsTGF5ZXIuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTt0aGlzLnRvb2x0aXAuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTthLm1vdXNlT3Zlck1vZGUmJih0aGlzLnRvb2x0aXAub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5oaWRlRXZlbnQpO2EuaGlkaW5nPSExfSksdGhpcy50b29sdGlwLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5oaWRlRXZlbnQpOwphLmhpZGUoKTthLmhpZGluZz0hMX0pKX0saGlkZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS5oaWRpbmd8fChhLmhpZGluZz0hMCx0aGlzLmhpZGVFdmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5oaWRpbmc9ITE7YS50b29sdGlwLmhpZGUoKX0pLGEub3B0aW9ucy5tb2RhbCYmKGEuaGlkaW5nPSExLGEubW9kYWxMYXllci5oaWRlKCkpLHRoaXMub3B0aW9ucy5vbkNsb3NlKCkpfSx0b2dnbGU6ZnVuY3Rpb24oKXt0aGlzLnRvb2x0aXAuaXMoIjp2aXNpYmxlIik\/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9LGFkZEFuaW1hdGlvbjpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKXtjYXNlICJmYWRlSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKTt0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZhZGVJbiIpO2JyZWFrO2Nhc2UgImZsaXBJbiI6dGhpcy50b29sdGlwLmFkZENsYXNzKCJhbmltYXRlZCIpLHRoaXMudG9vbHRpcC5hZGRDbGFzcygiZmxpcEluIil9fSwKc2V0Q29udGVudDpmdW5jdGlvbigpe2IodGhpcy5iZWFyZXIpLmNzcygiY3Vyc29yIiwicG9pbnRlciIpO2lmKHRoaXMub3B0aW9ucy5jb250ZW50KXRoaXMuY29udGVudD10aGlzLm9wdGlvbnMuY29udGVudDtlbHNlIGlmKHRoaXMuYmVhcmVyLmF0dHIoImRhdGEtdG9vbHRpcCIpKXRoaXMuY29udGVudD10aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKTtlbHNlIHJldHVybjtpZigiIyI9PXRoaXMuY29udGVudC5jaGFyQXQoMCkpe2lmKHRoaXMub3B0aW9ucy5kZWxldGVfY29udGVudCl7dmFyIGE9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTtiKHRoaXMuY29udGVudCkuaHRtbCgiIik7dGhpcy5jb250ZW50PWE7ZGVsZXRlIGF9ZWxzZSBiKHRoaXMuY29udGVudCkuaGlkZSgpLHRoaXMuY29udGVudD1iKHRoaXMuY29udGVudCkuaHRtbCgpO3RoaXMuY29udGVudFR5cGU9Imh0bWwifWVsc2UgdGhpcy5jb250ZW50VHlwZT0idGV4dCI7YT0iIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKSYmCiJ1bmRlZmluZWQiIT10aGlzLmJlYXJlci5hdHRyKCJpZCIpPyJpZD0nZGFya3Rvb2x0aXAtIit0aGlzLmJlYXJlci5hdHRyKCJpZCIpKyInIjoiaWQ9J2Rhcmt0b29sdGlwLSIrKERhdGUubm93KCkrTWF0aC5mbG9vcigxRTQqTWF0aC5yYW5kb20oKSkpKyInIjswPT09YigiSU5TLmRhcmt0b29sdGlwLW1vZGFsLWxheWVyIikubGVuZ3RoJiYodGhpcy5tb2RhbExheWVyPWIoIjxpbnMgY2xhc3M9J2Rhcmt0b29sdGlwLW1vZGFsLWxheWVyJz48L2lucz4iKSk7dGhpcy50b29sdGlwPWIoIjxpbnMgIithKyIgY2xhc3MgPSAnZGFyay10b29sdGlwICIrdGhpcy5vcHRpb25zLnRoZW1lKyIgIit0aGlzLm9wdGlvbnMuc2l6ZSsiICIrdGhpcy5vcHRpb25zLmdyYXZpdHkrIic+PGRpdj4iK3RoaXMuY29udGVudCsiPC9kaXY+PGRpdiBjbGFzcyA9ICd0aXAnPjwvZGl2PjwvaW5zPiIpO3RoaXMudGlwPXRoaXMudG9vbHRpcC5maW5kKCIudGlwIik7YigiYm9keSIpLmFwcGVuZCh0aGlzLm1vZGFsTGF5ZXIpOwpiKCJib2R5IikuYXBwZW5kKHRoaXMudG9vbHRpcCk7Imh0bWwiPT10aGlzLmNvbnRlbnRUeXBlJiZ0aGlzLnRvb2x0aXAuY3NzKCJtYXgtd2lkdGgiLCJub25lIik7dGhpcy50b29sdGlwLmNzcygib3BhY2l0eSIsdGhpcy5vcHRpb25zLm9wYWNpdHkpO3RoaXMuYWRkQW5pbWF0aW9uKCk7dGhpcy5vcHRpb25zLmNvbmZpcm0mJnRoaXMuYWRkQ29uZmlybSgpfSxzZXRQb3NpdGlvbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmJlYXJlci5vZmZzZXQoKS5sZWZ0LGM9dGhpcy5iZWFyZXIub2Zmc2V0KCkudG9wO3N3aXRjaCh0aGlzLm9wdGlvbnMuZ3Jhdml0eSl7Y2FzZSAic291dGgiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKS8yLXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCkvMjtjKz0tdGhpcy50b29sdGlwLm91dGVySGVpZ2h0KCktdGhpcy50aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIndlc3QiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKSt0aGlzLnRpcC5vdXRlcldpZHRoKCkvCjI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAibm9ydGgiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKS8yLXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCkvMjtjKz10aGlzLmJlYXJlci5vdXRlckhlaWdodCgpK3RoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJlYXN0IjphKz0tdGhpcy50b29sdGlwLm91dGVyV2lkdGgoKS10aGlzLnRpcC5vdXRlcldpZHRoKCkvMixjKz10aGlzLmJlYXJlci5vdXRlckhlaWdodCgpLzItdGhpcy50b29sdGlwLm91dGVySGVpZ2h0KCkvMn10aGlzLm9wdGlvbnMuYXV0b0xlZnQmJnRoaXMudG9vbHRpcC5jc3MoImxlZnQiLGEpO3RoaXMub3B0aW9ucy5hdXRvVG9wJiZ0aGlzLnRvb2x0aXAuY3NzKCJ0b3AiLGMpfSxzZXRFdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGM9YS5vcHRpb25zLmhvdmVyRGVsYXksZjtpZihhLm1vdXNlT3Zlck1vZGUpdGhpcy5iZWFyZXIub24oIm1vdXNlZW50ZXIiLApmdW5jdGlvbigpe2Y9c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0UG9zaXRpb25zKCk7YS5zaG93KCl9LGMpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGYpO2EuaGlkZSgpfSk7ZWxzZSBpZigiY2xpY2siPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9uY2xpayI9PXRoaXMub3B0aW9ucy50cmlnZ2VyKXRoaXMudG9vbHRpcC5vbigiY2xpY2siLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCl9KSx0aGlzLmJlYXJlci5vbigiY2xpY2siLGZ1bmN0aW9uKGQpe2QucHJldmVudERlZmF1bHQoKTthLnNldFBvc2l0aW9ucygpO2EudG9nZ2xlKCk7ZC5zdG9wUHJvcGFnYXRpb24oKX0pLGIoImh0bWwiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5oaWRlKCl9KX0sYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLnNldENvbnRlbnQoKTt0aGlzLmNvbnRlbnQmJnRoaXMuc2V0RXZlbnRzKCl9LGFkZENvbmZpcm06ZnVuY3Rpb24oKXt0aGlzLnRvb2x0aXAuYXBwZW5kKCI8dWwgY2xhc3MgPSAnY29uZmlybSc+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLXllcyc+IisKdGhpcy5vcHRpb25zLnllcysiPC9saT48bGkgY2xhc3MgPSAnZGFya3Rvb2x0aXAtbm8nPiIrdGhpcy5vcHRpb25zLm5vKyI8L2xpPjwvdWw+Iik7dGhpcy5zZXRDb25maXJtRXZlbnRzKCl9LHNldENvbmZpcm1FdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC15ZXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGMpe2Eub25ZZXMoKTtjLnN0b3BQcm9wYWdhdGlvbigpfSk7dGhpcy50b29sdGlwLmZpbmQoImxpLmRhcmt0b29sdGlwLW5vIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uTm8oKTtjLnN0b3BQcm9wYWdhdGlvbigpfSl9LGZpbmFsTWVzc2FnZTpmdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2Upe3ZhciBhPXRoaXM7YS50b29sdGlwLmZpbmQoImRpdjpmaXJzdCIpLmh0bWwodGhpcy5vcHRpb25zLmZpbmFsTWVzc2FnZSk7YS50b29sdGlwLmZpbmQoInVsIikucmVtb3ZlKCk7YS5zZXRQb3NpdGlvbnMoKTsKc2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkZSgpO2Euc2V0Q29udGVudCgpfSxhLm9wdGlvbnMuZmluYWxNZXNzYWdlRHVyYXRpb24pfWVsc2UgdGhpcy5oaWRlKCl9LG9uWWVzOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uWWVzKHRoaXMuYmVhcmVyKTt0aGlzLmZpbmFsTWVzc2FnZSgpfSxvbk5vOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uTm8odGhpcy5iZWFyZXIpO3RoaXMuaGlkZSgpfX07Yi5mbi5kYXJrVG9vbHRpcD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7YT1iLmV4dGVuZCh7fSxiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzLGEpOyhuZXcgZShiKHRoaXMpLGEpKS5hY3RpdmF0ZSgpfSl9O2IuZm4uZGFya1Rvb2x0aXAuZGVmYXVsdHM9e2FuaW1hdGlvbjoibm9uZSIsY29uZmlybTohMSxjb250ZW50OiIiLGZpbmFsTWVzc2FnZToiIixmaW5hbE1lc3NhZ2VEdXJhdGlvbjoxRTMsZ3Jhdml0eToic291dGgiLGhvdmVyRGVsYXk6MCxtb2RhbDohMSwKbm86Ik5vIixvbk5vOmZ1bmN0aW9uKCl7fSxvblllczpmdW5jdGlvbigpe30sb3BhY2l0eTouOSxzaXplOiJtZWRpdW0iLHRoZW1lOiJkYXJrIix0cmlnZ2VyOiJob3ZlciIseWVzOiJZZXMiLGF1dG9Ub3A6ITAsYXV0b0xlZnQ6ITAsb25DbG9zZTpmdW5jdGlvbigpe319fSkoalF1ZXJ5KTsKLyoqIC9qcy9qcXVlcnkudmFsaWRpdHkubWluLmpzICoqLwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiLGMsZSl7dmFyIGY9KGIucmVkdWN0aW9ufHxiKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksaT1bXTtyZXR1cm4gMT5iLmxlbmd0aD8oY29uc29sZS5sb2coIkNvdWxkIG5vdCB2YWxpZGF0ZSBlbGVtZW50IixiKSxiKTooZi5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKT9pLnB1c2godGhpcyk6ZCh0aGlzLGcoZSx7ZmllbGQ6aCh0aGlzKX0pKX0pLGIucmVkdWN0aW9uPWEoaSksYil9ZnVuY3Rpb24gYygpe2EudmFsaWRpdHkuaXNWYWxpZGF0aW5nKCkmJihhLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnMrKyxhLnZhbGlkaXR5LnJlcG9ydC52YWxpZD0hMSl9ZnVuY3Rpb24gZChiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2UmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlKGEoYiksZCl9ZnVuY3Rpb24gZShiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2VBZ2dyZWdhdGUmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlQWdncmVnYXRlKGIsZCl9ZnVuY3Rpb24gZihhKXt2YXIgYj0wO3JldHVybiBhLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1wYXJzZUZsb2F0KHRoaXMudmFsdWUpO2IrPWlzTmFOKGEpPzA6YX0pLGJ9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYyBpbiBiKWE9YS5yZXBsYWNlKCIjeyIrYysifSIsYltjXSk7cmV0dXJuIGooYSl9ZnVuY3Rpb24gaChiKXt2YXIgYz1hKGIpLGQ9YS52YWxpZGl0eS5zZXR0aW5ncy5kZWZhdWx0RmllbGROYW1lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYy5hdHRyKCJ0aXRsZSIpJiZjLmF0dHIoInRpdGxlIikubGVuZ3RoKWQ9Yy5hdHRyKCJ0aXRsZSIpO2Vsc2UgaWYoL14oW0EtWjAtOV1bYS16XSopKyQvLnRlc3QoYi5pZCkpZD1iLmlkLnJlcGxhY2UoLyhbQS1aMC05XSlbYS16XSovZywiICQmIik7ZWxzZSBpZigvXlthLXowLTlfXSokLy50ZXN0KGIuaWQpKXtmb3IodmFyIGU9Yi5pZC5zcGxpdCgiXyIpLGY9MDtmPGUubGVuZ3RoOysrZillW2ZdPWooZVtmXSk7ZD1lLmpvaW4oIiAiKX1yZXR1cm4gZH1mdW5jdGlvbiBqKGEpe3JldHVybiBhLnN1YnN0cmluZz9hLnN1YnN0cmluZygwLDEpLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSxhLmxlbmd0aCk6YX1hLnZhbGlkaXR5PXtzZXR0aW5nczphLmV4dGVuZCh7b3V0cHV0TW9kZToibGFiZWwiLGNzc0NsYXNzOiJlcnJvciIsc2Nyb2xsVG86ITEsbW9kYWxFcnJvcnNDbGlja2FibGU6ITAsZGVmYXVsdEZpZWxkTmFtZToiVGhpcyBmaWVsZCIsZWxlbWVudFN1cHBvcnQ6Ijp0ZXh0LCBbdHlwZT10ZWxdLCBbdHlwZT1lbWFpbF0sIFt0eXBlPWRhdGVdLCA6cGFzc3dvcmQsIHRleHRhcmVhLCBzZWxlY3QsIDpyYWRpbywgOmNoZWNrYm94IixhcmdUb1N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXREYXRlP2EuZ2V0TW9udGgoKSsxKyIvIithLmdldERhdGUoKSsiLyIrYS5nZXRGdWxsWWVhcigpOmF9fSx7fSkscGF0dGVybnM6e2ludGVnZXI6L15cZCskLyxkYXRlOi9eKCgwP1xkKXwoMVswMTJdKSlcLyhbMDEyXT9cZHwzMHwzMSlcL1xkezEsNH0kLyxlbWFpbDovXigoKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSsoXC4oW2Etel18XGR8WyEjXCQlJidcKlwrXC1cLz1cP1xeX2B7XHx9fl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKykqKXwoKFx4MjIpKCgoKFx4MjB8XHgwOSkqKFx4MGRceDBhKSk\/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\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSksYS5pcygiOnJhZGlvIikmJmEuaXMoIi5qcVRyYW5zZm9ybUhpZGRlbiIpJiZhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX19fSgpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5jc3NPbmx5PXtzdGFydDpmdW5jdGlvbigpe2EoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYil7YShiKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpOwovKiogL2pzL21haW4uanMgKiovCnZhciBfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMjA6MzA6MTIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDE5OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDE4OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDE3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDE2OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDE1OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDE0OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDEzOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDEyOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDExOjMwOjE3IjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxMDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwOTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwODozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwNzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwNjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwNTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwNDozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwMzozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAwMjozMDoxMiI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDA6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMjM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMjI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMjE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMjA6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMTk6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMTg6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMTc6MzA6MTYiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDE2OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDE1OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDE0OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDEzOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDEyOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDExOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDEwOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDA5OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDA4OjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwNzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwNjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwNTozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwNDozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwMzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwMjozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwMDozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAyMzozMDoxMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMjI6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMjE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMjA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMTk6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMTg6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMTc6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMTY6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMTU6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMTQ6MzA6MTYiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDEzOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDEyOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDExOjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDEwOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDA5OjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDA4OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDA3OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDA2OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDA1OjMwOjEyIjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwNDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwMzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwMjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwMTozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwMDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAyMzozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAyMjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAyMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAyMDozMDoxMiI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTk6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTg6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTc6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTY6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTU6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTQ6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTM6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTI6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTE6MzA6MTciOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDEwOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDA5OjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDA4OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDA3OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDA2OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDA1OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDA0OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDAzOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDAyOjMwOjEzIjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwMDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAyMzozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAyMjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAyMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAyMDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAxOTozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAxODozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wNyAxNzozMDoxNiI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTY6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTU6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTQ6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTM6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTI6MzA6MTYiOyJ1c2Ugc3RyaWN0Ijt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOwokanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGMsZCl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixjLGQpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixjLGQpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGs9MDtrPGUubGVuZ3RoLTE7aysrKXt2YXIgaD1lW2tdO2lmKCEoaCBpbiBkKSlyZXR1cm47ZD1kW2hdfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goayl7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhrKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gayhoKXtoLmRvbmU\/ZChoLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoaC52YWx1ZSkudGhlbihiLGMpLnRoZW4oayxlKX1rKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKalF1ZXJ5Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4galF1ZXJ5fTtqUXVlcnkuZXZlbnQuc3BlY2lhbC50b3VjaHN0YXJ0PXtzZXR1cDpmdW5jdGlvbihhLGIsYyl7Yi5pbmNsdWRlcygibm9QcmV2ZW50RGVmYXVsdCIpP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMX0pOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMH0pfX07alF1ZXJ5LmV4cHIucHNldWRvcy5yZWFsbHlWaXNpYmxlPWZ1bmN0aW9uKGEpe3RyeXtpZihhPT1kb2N1bWVudC5ib2R5KXJldHVybiEwO3ZhciBiPWpRdWVyeShhKTtyZXR1cm4gYi5pcygiOnZpc2libGUiKSYmImhpZGRlbiIhPT1iLmNzcygidmlzaWJpbGl0eSIpJiYwPGIucGFyZW50KCI6cmVhbGx5VmlzaWJsZSIpLmxlbmd0aH1jYXRjaChjKXtyZXR1cm4gY29uc29sZS5sb2coYy5tZXNzYWdlLGMpLCExfX07CkFycmF5LnByb3RvdHlwZS5maW5kfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCJmaW5kIix7dmFsdWU6ZnVuY3Rpb24oYSxiKXtpZihudWxsPT10aGlzKXRocm93IFR5cGVFcnJvcignInRoaXMiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTt2YXIgYz1PYmplY3QodGhpcyksZD1jLmxlbmd0aD4+PjA7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IFR5cGVFcnJvcigicHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Zvcih2YXIgZT0wO2U8ZDspe3ZhciBrPWNbZV07aWYoYS5jYWxsKGIsayxlLGMpKXJldHVybiBrO2UrK319LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOwp2YXIgaXNGdW5jdGlvbj1hPT4iZnVuY3Rpb24iPT09dHlwZW9mIGEsdHJpbT1hPT5hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSxkZWJ1Zz1mdW5jdGlvbigpe2lmKGRlYnVnRW5hYmxlZCgpKXt2YXIgYT1jb25zb2xlLGI9YXJndW1lbnRzOyJmdW5jdGlvbiI9PXR5cGVvZiBhLmxvZyYmYS5sb2cuYXBwbHkoYSxiKX19LGRlYnVnRW5hYmxlZD1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmxvY2F0aW9uLmhvc3QsYj1kb2N1bWVudC5jb29raWUubWF0Y2goL3Rlc3Rpbmc9KFteO10rKS9pKTtyZXR1cm4oYj1udWxsPT1iPyExOmJbMV0pfHwvXihkZWFsZXJ8ZGVtbyl8ZDJjbWVkaWFcLmNhJC8udGVzdChhKSYmIm9mZiIhPWJ9LGVuYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvbiIpfSxkaXNhYmxlRGVidWc9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgidGVzdGluZyIsIm9mZiIpfSxBbGVydEJhcj1mdW5jdGlvbihhKXt2YXIgYj1hLnNlY3Rpb25zLnRvTG93ZXJDYXNlKCksCmM9YS5jdXJyZW50LnRvTG93ZXJDYXNlKCksZD0kKCIuaGVhZGVyLXdyYXBwZXIiKS5sZW5ndGg\/JCgiLmhlYWRlci13cmFwcGVyIik6JCgiI21haW5EaXYiKSxlPSQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLGs9JCgiYm9keSIpLGg9JCgiLkFkZGVkVG9wTGlua0RpdiIpLG49bmV3IERhdGU7bi5zZXRUaW1lKG4uZ2V0VGltZSgpKzM2RTUpO3ZhciB4PWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoImFsZXJ0TWVzc2FnZUNsb3NlZCIsMSxuLCIvIik7ZS5oaWRlKCk7ZC5jc3Moe21hcmdpblRvcDowfSk7ay5jc3MoImJhY2tncm91bmQtcG9zaXRpb24teSIsIiIpOzA8aC5sZW5ndGgmJmguY3NzKCJtYXJnaW4tdG9wIiwiIil9Oy0xPGIuaW5kZXhPZihjKSYmIUNvb2tpZXMuZ2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiKSYmKGUuY3NzKHtiYWNrZ3JvdW5kQ29sb3I6YS5jb2xvcn0pLCQoIi5jbG9zZSIsZSkub24oImNsaWNrIix4KSxkLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSwKay5jc3MoeyJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiOmUuaGVpZ2h0KCkrInB4In0pLDA8aC5sZW5ndGgmJmguY3NzKCJtYXJnaW4tdG9wIixlLmhlaWdodCgpKyJweCIpLGUuc2hvdygpKX07ZnVuY3Rpb24gTGVhZEdlbkFERihhLGIsYyxkLGUsayxoLG4pe2lmKHR5cGVvZiBjYXJwcm9vZkhhbmRsZXIpcmV0dXJuIGNhcnByb29mSGFuZGxlci5sZWFkR2VuLmFwcGx5KGNhcnByb29mSGFuZGxlcixhcmd1bWVudHMpfQpmdW5jdGlvbiBydW5JbWFnZVBvcHVwRmlyZXdvcmtzKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBGaXJld29ya1RpbWVyJiYoaW1hZ2VGaXJld29ya3M9ITAsRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIkZGRkZGRiIsMjAwLDIwMCksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIkZGMDAwMCIsMzgwLDI1MCwxRTMpLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCIwMGZmMTEiLDkwLDE3MCwyRTMpLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCI0NGNkZmYiLDMyMCwyNTAsM0UzLDAsLjgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtydW5JbWFnZVBvcHVwRmlyZXdvcmtzKCl9LDFFNCkpfQpmdW5jdGlvbiBoYW5kbGVBY3Rpb25DbGljayhhKXthPWF8fHdpbmRvdy5ldmVudDthPWEuY3VycmVudFRhcmdldHx8YS5zcmNFbGVtZW50O3ZhciBiPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnN1YnN0cmluZyh3aW5kb3cubG9jYXRpb24uaHJlZi5sYXN0SW5kZXhPZigiLyIpKzEpLGM9InVzZWQiLGQ9IiI7aWYoLTE9PXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi1pZCIpKXtkPWIucmVwbGFjZSgiLmh0bWwiLCIiKS5zcGxpdCgiLSIpO2lmKDM+ZC5sZW5ndGh8fC0xPGIuaW5kZXhPZigic2VhcmNoIil8fC0xPGIuaW5kZXhPZigiZmluZC0iKXx8LTE8Yi5pbmRleE9mKCJyZWNoZXJjaGUiKXx8LTE8Yi5pbmRleE9mKCJwcml4LSIpfHwtMTxiLmluZGV4T2YoInByaWNlLSIpfHwtMTxiLmluZGV4T2YoImVzc2Fpcy1yb3V0aWVyLSIpfHwtMTxiLmluZGV4T2YoInRlc3QtZHJpdmUtIil8fC0xPGIuaW5kZXhPZigidmVoaWN1bGUtZWNoYW5nZS0iKXx8LTE8Yi5pbmRleE9mKCJ0cmFkZS1pbi0iKXx8Ci0xPGIuaW5kZXhPZigicG5ldXMtcGllY2VzLSIpfHwtMTxiLmluZGV4T2YoImNhci1wYXJ0cy0iKXx8LTE8Yi5pbmRleE9mKCJyZW5kZXotdm91cy0iKXx8LTE8Yi5pbmRleE9mKCItYXBwb2ludG1lbnQiKXx8LTE8Yi5pbmRleE9mKCJjcmVkaXQiKXx8LTE8Yi5pbmRleE9mKCJmaW5hbmNlbWVudCIpfHwtMTxiLmluZGV4T2YoInByZS1hcHBybyIpfHwtMTxiLmluZGV4T2YoIm5ldy13ZXN0Iil8fC0xPGIuaW5kZXhPZigiY29uZmlkZW50aWFsaXRlIil8fC0xPGIuaW5kZXhPZigicHJpdmFjeS1wb2xpY3kiKXx8LTE8Yi5pbmRleE9mKCJ0ZXJtZXMtZXQtY29uZGl0aW9ucyIpfHwtMTxiLmluZGV4T2YoInRlcm1zLWFuZC1jb25kaXRpb25zIikpZD0iLmh0bWwiO2Vsc2V7dmFyIGU9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOyJ1bmRlZmluZWQiPT10eXBlb2YgZFsyXXx8ZSE9ZFsyXSYmZSsxIT1kWzJdfHwoYz0ibmV3Iik7ZD0iLyIrYn1kPWEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5yZXBsYWNlKCIuaHRtbCIsCmQpfWVsc2V7c3dpdGNoKGEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSl7Y2FzZSAiVGVzdERyaXZlQWN0aW9uQm94IjpkPSQoIiN0ZXN0RHJpdmVGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIlByaWNlQWN0aW9uQm94IjpkPSQoIiNwcmljZVJlcXVlc3RGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkV2YWxBY3Rpb25Cb3giOmQ9JCgiI2V2YWxDYXJGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkZpbmFuY2VBY3Rpb25Cb3giOmQ9JCgiI0ZpbmFuY2VGb2xkZXIiKS52YWwoKStiO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKGEpLmF0dHIoImZvbGRlciIpP2Q9JChhKS5hdHRyKCJmb2xkZXIiKToidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigidGFyZ2V0dXJpIikmJihkPSQoYSkuYXR0cigidGFyZ2V0dXJpIikpfUNvb2tpZXMuc2V0KCJmcm9tZGV0YWlsc3BhZ2UiLCIxIixudWxsLCIvIil9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT0KZCYmMDxkLmxlbmd0aCl7Yj1kMmNtZWRpYS5odG1sRmlsZSghMSwhMCk7ZT1iLnNwbGl0KCItIik7dmFyIGs9IiIsaD0iIixuPSIiOzA8ZS5sZW5ndGgmJihrPWVbMF0pOzE8ZS5sZW5ndGgmJihoPWVbMV0pOzI8ZS5sZW5ndGgmJihuPWVbMl0pOzA8ay5sZW5ndGgmJjA8aC5sZW5ndGgmJjA8bi5sZW5ndGgmJiFpc05hTihuKSYmND09bi50b1N0cmluZygpLmxlbmd0aCYmLTE8ZC5pbmRleE9mKCIuaHRtIikmJihlPWEuZ2V0QXR0cmlidXRlKCJmb2xkZXIiKSxkPSJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9ZT9lOmQuc3Vic3RyaW5nKDAsZC5sYXN0SW5kZXhPZigiLyIpKzEpLGQ9ZC5yZXBsYWNlKCIuaHRtbCIsIi8iKStiKyIuaHRtbCIpOyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT8Kc2hvd1RyYWRlSW5Qb3B1cChhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikpOigibmV3Ij09YyYmKGQ9ZC5yZXBsYWNlKCJvY2Nhc2lvbiIsIm5ldWYiKS5yZXBsYWNlKCJ1c2VkIiwibmV3IikpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPWQpfX0KZnVuY3Rpb24gb3BlbkZpbmFuY2VNdWx0aXN0ZXBGb3JtT25DdXJyZW50UGFnZShhLGIsYyxkLGUsayxoKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtiPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKGIpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoJCgiLmJyYW5kZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtYWtlIikudmFsKCkpO2M\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKGMpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi5tb2RlbGVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmCiQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtb2RlbCIpLnZhbCgpKTtkPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKGQpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiLnllYXJlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW15ZWFyIikudmFsKCkpO2U\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKGUpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCIiKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpKTsKaz8kKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKGspOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIikmJiQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoIiIpO2gmJihoLnNlbmRUbyYmJCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiKS52YWwoaC5zZW5kVG8pLGguc2VuZFRvQWRmJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT0FERl9FTUFJTCIpLnZhbChoLnNlbmRUb0FkZiksaC5kZWFsZXJOYW1lJiYkKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiKS52YWwoaC5kZWFsZXJOYW1lKSk7YT0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIjskKCIjRmluYW5jZV9Gb3JtVHlwZSIpLmxlbmd0aCYmIm11bHRpc3RlcEluc3RhbnQiPT0kKCIjRmluYW5jZV9Gb3JtVHlwZSIpLnZhbCgpJiYkKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGE9ImZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiKTsKJCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSl9ZnVuY3Rpb24gb3BlblNob3dyb29tQ29udGFjdFBvcHVwKGEsYixjLGQpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2VtYWlsSGFuZGxlci5tYWtlPWI7JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKGIpO2VtYWlsSGFuZGxlci5tb2RlbD1jOyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoYyk7ZW1haWxIYW5kbGVyLnllYXI9ZDskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoZCk7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9dmFyIGQyY21lZGlhPWQyY21lZGlhfHx7fTsKZDJjbWVkaWEuc2Nyb2xsVG89ZnVuY3Rpb24oYSxiLGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9MUUzKTsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPTApOyQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JChhKS5vZmZzZXQoKS50b3AtYn0sYyk7cmV0dXJuITF9OwpkMmNtZWRpYS51cmw9e19zYW5pdGl6ZTohMCxkZXNhbml0aXplOmZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpcmV0dXJuIGEucmVwbGFjZSgvXy9nLCItIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLmRlc2FuaXRpemUoYVtiXSk7cmV0dXJuIGF9fSxnZW5lcmF0ZTpmdW5jdGlvbigpe3ZhciBhPSIiO3RoaXMuX3Nhbml0aXplJiYoYXJndW1lbnRzPXRoaXMuc2FuaXRpemUoYXJndW1lbnRzKSk7Zm9yKGk9MDtpPGFyZ3VtZW50cy5sZW5ndGgtMTtpKyspYSs9YXJndW1lbnRzW2ldKyItIjtyZXR1cm4gYSthcmd1bWVudHNbaV0rIi5odG1sIn0scGFyc2U6ZnVuY3Rpb24oKXt1cmw9ZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LlVSTCk7c3RyUGFyYW09dXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIi8iKSk7b2JqUGFyYW09e21ha2U6bnVsbCxtb2RlbDpudWxsLHllYXI6bnVsbCxpZDpudWxsfTtmb3VuZD0hMTsKdmFyIGE7bnVsbCE9KGE9c3RyUGFyYW0ubWF0Y2goL15cLygyMFswLTldezJ9fDE5WzAtOV17Mn0pLShbXi1dKy1bXi1cLl0rKSguKlwuaHRtbCkvKSkmJihzdHJQYXJhbT0iLyIrYVsyXSsiLSIrYVsxXSthWzNdKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1pZChcZCopKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxvYmpQYXJhbS5pZD1hWzVdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1jXGQqKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLShcZHs0fSkuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9CmFbMV0sb2JqUGFyYW0ueWVhcj1hWzJdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFteLl0qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLGZvdW5kPSEwKTt0aGlzLl9zYW5pdGl6ZSYmKG9ialBhcmFtPXRoaXMuZGVzYW5pdGl6ZShvYmpQYXJhbSkpO3JldHVybiBvYmpQYXJhbX0sc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC9bJyJdL2csIiIpO2lmKCJvYmplY3QiPT09dHlwZW9mIGEpe2Zvcih2YXIgYiBpbiBhKWFbYl09dGhpcy5zYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LHNhbml0aXplUmVmZXJlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLAoiIil9fTtkMmNtZWRpYS5nZXRIdHRwVGV4dD1mdW5jdGlvbigpe3JldHVybiJodHRwczoiPT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCYmJCgiI3RvcGRlcGxveW1lbnR0eXBlIikubGVuZ3RoJiYibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpPyJodHRwcyI6Imh0dHAifTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXI9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKX07ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQ9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtjPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcihjKTtyZXR1cm4gYj9iKyIgIitjOmN9LCIiKX07CmQyY21lZGlhLnNhZmVTdHJpbmc9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi50ZXh0Q29udGVudD1hO3JldHVybiBiLmlubmVyVGV4dH07CmQyY21lZGlhLmh0bWxGaWxlPWZ1bmN0aW9uKGEsYil7dmFyIGM9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5sZW5ndGgmJi0xPHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigicGF0aD0iKT93aW5kb3cubG9jYXRpb24uc2VhcmNoOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtjPWMuc3Vic3RyaW5nKGMubGFzdEluZGV4T2YoIi8iKSsxKTtjPWQyY21lZGlhLnNhZmVTdHJpbmcoYyk7dHJ5e3ZhciBkPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChrKXt2YXIgZT17IiVDMCI6IiZBZ3JhdmU7IiwiJUMxIjoiJkFhY3V0ZTsiLCIlQzIiOiImQWNpcmM7IiwiJUMzIjoiJkF0aWxkZTsiLCIlQzQiOiImQXVtbDsiLCIlQzUiOiImQXJpbmc7IiwiJUM2IjoiJkFFbGlnOyIsIiVDNyI6IiZDY2VkaWw7IiwiJUM4IjoiJkVncmF2ZTsiLCIlQzkiOiImRWFjdXRlOyIsIiVDQSI6IiZFY2lyYzsiLCIlQ0IiOiImRXVtbDsiLCIlQ0MiOiImSWdyYXZlOyIsIiVDRCI6IiZJYWN1dGU7IiwiJUNFIjoiJkljaXJjOyIsCiIlQ0YiOiImSXVtbDsiLCIlRDAiOiImRVRIOyIsIiVEMSI6IiZOdGlsZGU7IiwiJUQyIjoiJk9ncmF2ZTsiLCIlRDMiOiImT2FjdXRlOyIsIiVENCI6IiZPY2lyYzsiLCIlRDUiOiImT3RpbGRlOyIsIiVENiI6IiZPdW1sOyIsIiVEOCI6IiZPc2xhc2g7IiwiJUQ5IjoiJlVncmF2ZTsiLCIlREEiOiImVWFjdXRlOyIsIiVEQiI6IiZVY2lyYzsiLCIlREMiOiImVXVtbDsiLCIlREQiOiImWWFjdXRlOyIsIiVERSI6IiZUSE9STjsiLCIlREYiOiImc3psaWc7IiwiJUUwIjoiJmFncmF2ZTsiLCIlRTEiOiImYWFjdXRlOyIsIiVFMiI6IiZhY2lyYzsiLCIlRTMiOiImYXRpbGRlOyIsIiVFNCI6IiZhdW1sOyIsIiVFNSI6IiZhcmluZzsiLCIlRTYiOiImYWVsaWc7IiwiJUU3IjoiJmNjZWRpbDsiLCIlRTgiOiImZWdyYXZlOyIsIiVFOSI6IiZlYWN1dGU7IiwiJUVBIjoiJmVjaXJjOyIsIiVFQiI6IiZldW1sOyIsIiVFQyI6IiZpZ3JhdmU7IiwiJUVEIjoiJmlhY3V0ZTsiLCIlRUUiOiImaWNpcmM7IiwKIiVFRiI6IiZpdW1sOyIsIiVGMCI6IiZldGg7IiwiJUYxIjoiJm50aWxkZTsiLCIlRjIiOiImb2dyYXZlOyIsIiVGMyI6IiZvYWN1dGU7IiwiJUY0IjoiJm9jaXJjOyIsIiVGNSI6IiZvdGlsZGU7IiwiJUY2IjoiJm91bWw7IiwiJUY3IjoiJmRpdmlkZTsiLCIlRjgiOiImb3NsYXNoOyIsIiVGOSI6IiZ1Z3JhdmU7IiwiJUZBIjoiJnVhY3V0ZTsiLCIlRkIiOiImdWNpcmM7IiwiJUZDIjoiJnV1bWw7IiwiJUZEIjoiJnlhY3V0ZTsiLCIlRkUiOiImdGhvcm47IiwiJUZGIjoiJnl1bWw7In07ZD1jLnJlcGxhY2UoLyVbMC05QS1GXXsyfS9pZyxmdW5jdGlvbihoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGVbaF0pcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChoKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bi50ZXh0Q29udGVudD1lW2hdO3JldHVybiBuLmlubmVyVGV4dH0pfWQ9ZC5zdWJzdHJpbmcoMCxkLmluZGV4T2YoIi5odG0iKSk7YSYmKGQ9ZC5yZXBsYWNlKC8gL2csCiJfIikucmVwbGFjZSgvJy9nLCIiKS5yZXBsYWNlKCIuaHRtbCIsIiIpKTtudWxsIT0oYT1kLm1hdGNoKC9eKDE5WzAtOV17Mn18MjBbMC05XXsyfSktKFteLV0rLVteLV0rKSguKikkLykpJiYoZD1hWzJdKyItIithWzFdK2FbM10sIkVOR0xJU0giPT0oIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkVOR0xJU0giOiJGUkVOQ0giKSYmYiYmKGQ9YVsxXSsiLSIrYVsyXSthWzNdKSk7cmV0dXJuIGR9O2QyY21lZGlhLmlzSG9tZXBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIi8iPT1hfHwiL2VuZy8iPT1hfHwiL2ZyLyI9PWF9O2QyY21lZGlhLnBhZ2VEZXBhcnRtZW50PWZ1bmN0aW9uKCl7dmFyIGE9JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7cmV0dXJuIk9USEVSIj09YSYmZDJjbWVkaWEuaXNIb21lcGFnZSgpPyJIT01FUEFHRSI6YX07CnZhciBqc19kMmNfZ2V0X3ZhbD1qc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oYSl7dHJ5e3JldHVybihlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk\/ZWwudmFsdWU6IiJ9Y2F0Y2goYil7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiU3lzdGVtIGZhaWxlZCB3aGlsZSByZXRyaWV2aW5nIHJlcGxhY2VtZW50IHZhbHVlOiAiK2IubWVzc2FnZSxiKSxhfX07U3RyaW5nLnByb3RvdHlwZS5ub0QyQ1JlcGxhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU9mKCl9OwpkMmNCR0NsaWNrPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7JC5leHRlbmQoYixhKTt0aGlzLnNldD1mdW5jdGlvbihjKXsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSExKTt2YXIgZD1iLmJnSW1nVXJsLGU9Yi5iZ0ltZ1BhdGgsaz1iLmJnSW1nRml4ZWQsaD1iLmJnSW1nUmVzcG9uc2l2ZSxuPWIubWFrZSx4PWRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoLy0vZywiIiksdj0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk6ImZyZW5jaCIsZj0iIixnPSExOzAhPWMmJihuPWMudG9Mb3dlckNhc2UoKSk7dmFyIG09Yz0iIjtuP2UuaGFzT3duUHJvcGVydHkobik\/KGM9ZVtuXSxtPWtbbl0raFtuXSxnPSEwKTplLmhhc093blByb3BlcnR5KCJhbGwiKT8oYz1lLmFsbCxtPWsuYWxsK2guYWxsLGc9ITApOmUuaGFzT3duUHJvcGVydHkodikmJihjPWVbdl0sbT1rW3ZdK2hbdl0pOmUuaGFzT3duUHJvcGVydHkodikmJgowPT1nJiYoYz1lW3ZdLG09a1t2XStoW3ZdKTtjJiYoYi5iZ0ltZz1jLnNwbGl0KCIvIikucG9wKCksJCgiYm9keSIpLmF0dHIoInN0eWxlIiwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK2MrIicpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyIrbSkpO2Zvcih2YXIgbCBpbiBkKXtpZigtMSE9eC5pbmRleE9mKGwseCkpe2Y9ZFtsXTticmVha31pZihsPT12KXtmPWRbbF07YnJlYWt9fTA9PWYubGVuZ3RoJiYoZC5oYXNPd25Qcm9wZXJ0eShuKT9mPWRbbl06ZC5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihmPWQuYWxsKSk7MDxmLmxlbmd0aCYmKGQ9JCh3aW5kb3cpLndpZHRoKCkvMi0kKCIud3JhcHBlciIpLndpZHRoKCkvMixlPSQod2luZG93KS53aWR0aCgpLzIrJCgiLndyYXBwZXIiKS53aWR0aCgpLzIsJCgiI2JnQ2xpY2sxIikucmVtb3ZlKCksJCgiI2JnQ2xpY2syIikucmVtb3ZlKCksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazEnIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiKwpkKyJweDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjBweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazInIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiK2QrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6IitlKyJweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiI2JnQ2xpY2sxIikub24oImNsaWNrIixmdW5jdGlvbigpe2IucmVkaXJlY3QoZil9KSwkKCIjYmdDbGljazIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pKX07dGhpcy5yZXNldD1mdW5jdGlvbihjKXtiLnNldCgpfTt0aGlzLnJlZGlyZWN0PWZ1bmN0aW9uKGMpeyJsaXZlIj09Yi5kZXBsb3ltZW50VHlwZSYmKGdhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyIsIkltYWdlLWRlLWZvbmQiLGIuYmdJbWcsMSksImZ1bmN0aW9uIj09dHlwZW9mIGIuZDJjRXZlbnQmJmIuZDJjRXZlbnQuY2FsbChiLApiLmJnSW1nKSk7d2luZG93Lm9wZW4oYyl9OyQod2luZG93KS5vbigicmVzaXplIixiLnJlc2V0KTtyZXR1cm4gdGhpc307dmFyIGluamVjdEdvb2dsZU1hcHNLZXk9ZnVuY3Rpb24oYSl7bGV0IGI9bnVsbDtyZXR1cm4gZnVuY3Rpb24oYyl7aWYoYilyZXR1cm4gYyhiKTthLmFqYXgoIi9hamF4L2dldEdvb2dsZU1hcHNLZXkiKS5kb25lKGZ1bmN0aW9uKGQpe2I9KGQua2V5P2Qua2V5OiIiKS5yZXBsYWNlKC9bXkEtejAtOV8tXS9nLCIiKTtjKGIpfSl9fShqUXVlcnkpOwpmdW5jdGlvbiByaHNQcm9tb0ltYWdlKGEpe3ZhciBiPXRoaXM7Yi5kYXRhPWE7dmFyIGM9W10sZD0tMTthPXdpbmRvdy5sb2NhdGlvbjthPWRlY29kZVVSSUNvbXBvbmVudChhLnBhdGhuYW1lK2Euc2VhcmNoKS50b0xvd2VyQ2FzZSgpO2ZvcihzZWFyY2ggaW4gYi5kYXRhKWlmKCJkZWZhdWx0Ij09c2VhcmNofHwtMSE9YS5pbmRleE9mKGRlY29kZVVSSUNvbXBvbmVudCgoc2VhcmNoKyIiKS50b0xvd2VyQ2FzZSgpKSkpZm9yKGk9MDtpPGIuZGF0YVtzZWFyY2hdLmxlbmd0aDtpKyspYy5wdXNoKGIuZGF0YVtzZWFyY2hdW2ldKTtiLnJvdGF0ZT1mdW5jdGlvbigpeysrZD5jLmxlbmd0aC0xJiYoZD0wKTt2YXIgZT1jW2RdLGs9JCgiPGltZyAvPiIpLmF0dHIoe3NyYzplLmksc3R5bGU6IndpZHRoOjEwMCU7IG1heC13aWR0aDoyODBweDsgYm9yZGVyLXJhZGl1czogNXB4OyBjdXJzb3I6cG9pbnRlcjsiLGFsdDoiIn0pOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5odG1sKGspO251bGwhPQplLnUmJjA8ZS51Lmxlbmd0aCYmJCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitlLnUrIiciKTskKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuc2hvdygpOzEhPWMubGVuZ3RoJiZzZXRUaW1lb3V0KGIucm90YXRlLGUuZGVsYXkpfTswPGMubGVuZ3RoJiZiLnJvdGF0ZSgpfWZ1bmN0aW9uIGNsZWFuVGV4dChhKXthPWEucmVwbGFjZSgvW1x4NjBdL2csIiciKTthPWEucmVwbGFjZSgv4oCZL2csIiciKTthPWEucmVwbGFjZSgvYC9nLCInIik7cmV0dXJuIGEucmVwbGFjZSgvW1x1MjAxOV3igJkvZywiJyIpfQpmdW5jdGlvbiBlbmNvZGVUZXh0KGEpe3ZhciBiPWE7dHJ5e2I9JC5iYXNlNjQuZW5jb2RlKGEpfWNhdGNoKGspe2NvbnNvbGUubG9nKGsubWVzc2FnZSxrKTthPSIiO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iLmNoYXJBdChjKSxlPWQuY2hhckNvZGVBdCgwKTtpZig0NzxlJiY1OD5lfHw2NDxlJiY5MT5lfHw5NjxlJiYxMjM+ZSlhKz1kO2Vsc2UgdHJ5eyQuYmFzZTY0LmVuY29kZShkKSxhKz1kfWNhdGNoKGgpe319Yj0kLmJhc2U2NC5lbmNvZGUoYSl9cmV0dXJuIGJ9ZnVuY3Rpb24gY2xlYW5BbmRFbmNvZGVUZXh0KGEpe3RyeXt2YXIgYj0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEpcmV0dXJuIiI7Yj0ic3RyaW5nIiE9dHlwZW9mIGE\/YS50b1N0cmluZygpOmE7Yj1jbGVhblRleHQoYik7cmV0dXJuIGVuY29kZVRleHQoYil9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSxhfX0KZnVuY3Rpb24gRXhQaG9uZShhKXtzd2l0Y2goYS50eXBlKXtjYXNlICJtb3VzZWVudGVyIjokKCIuZXh0ZW5kZWRQaG9uZSIpLnNob3coKTticmVhaztjYXNlICJtb3VzZWxlYXZlIjokKCIuZXh0ZW5kZWRQaG9uZSIpLmhpZGUoKX19ZnVuY3Rpb24gZ2V0UmVzaXplZEltYWdlcygpe2RlYnVnRW5hYmxlZCgpO3JldHVybiExfWZ1bmN0aW9uIGNoYW5nZUhvbWVBY3Rpb25CYWNrSW1hZ2UoYSxiKXskKGEpLmNzcyh7YmFja2dyb3VuZDoidXJsKCIrYisiKSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kU2l6ZToiMjQwcHggMTIxcHgifSl9dmFyIF9fY3VycmVudFRocmVhc2hvbGQ7CmZ1bmN0aW9uIHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCl7X19jdXJyZW50VGhyZWFzaG9sZHx8KF9fY3VycmVudFRocmVhc2hvbGQ9KCQod2luZG93KS5oZWlnaHQoKSskKGRvY3VtZW50KS5zY3JvbGxUb3AoKSkvJChkb2N1bWVudCkuaGVpZ2h0KCksc2V0VGltZW91dCgiX19jdXJyZW50VGhyZWFzaG9sZCA9IG51bGwiLDMzMykpO3JldHVybiBfX2N1cnJlbnRUaHJlYXNob2xkfQpmdW5jdGlvbiB0aHJlc2hvbGRFeGVjKGEsYixjKXt2YXIgZD1udWxsO2M9Yz9jOltdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhKXt2YXIgZT1NYXRoLnJvdW5kKDFFNCphKS8xRTQ7MTxlJiYoZS89MTAwKTthPWZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBrPWZ1bmN0aW9uKCl7aWYodGhyZWFkaG9sZFNjcm9sbFBlcmNlbnQoKT5hKCkpe3RyeXtiLmFwcGx5KG51bGwsYyl9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9ZD1jbGVhckludGVydmFsKGQpfX07JChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkPXNldEludGVydmFsKGssMzMzKX0sMkUzKX0pfQpmdW5jdGlvbiBzY3JvbGx1cEV4ZWMoYSl7dmFyIGI9bnVsbCxjPTAsZD1mdW5jdGlvbigpeyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbihlKXtlPSQodGhpcykuc2Nyb2xsVG9wKCk7ZTxjJiYoYS5jYWxsKG51bGwpLGI9Y2xlYXJJbnRlcnZhbChiKSk7Yz1lfSl9OyQoZnVuY3Rpb24oKXtiPXNldEludGVydmFsKGQsMzMzKX0pfWZ1bmN0aW9uIGluVmlld0V4ZWMoYSxiKXt0aHJlc2hvbGRFeGVjKGZ1bmN0aW9uKCl7dmFyIGM9JChhKTt0cnl7cmV0dXJuIWMubGVuZ3RofHxjLmlzKCI6aGlkZGVuIil8fDA9PWMub2Zmc2V0KCkudG9wPy45NTpjLm9mZnNldCgpLnRvcC8kKGRvY3VtZW50KS5oZWlnaHQoKX1jYXRjaChkKXtyZXR1cm4uOTV9fSxiLFthXSl9dmFyIGx0X0lFOT0iZnVuY3Rpb24iIT10eXBlb2YgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj8hMDohMSxsdF9JRTExPTA9PSFkb2N1bWVudC5hbGw7CmZ1bmN0aW9uIGlzSUUoKXt2YXIgYT1kb2N1bWVudC5kb2N1bWVudE1vZGU7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT0iIn1jYXRjaChjKXt9dmFyIGI9Im51bWJlciI9PXR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGV8fChuZXcgRnVuY3Rpb24oInJldHVybi8qQGNjX29uIUAqLyExIikpKCk7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT1hfWNhdGNoKGMpe31yZXR1cm4gYn12YXIgdD0wO19fc3RhcnQ9ZnVuY3Rpb24oKXt0PShuZXcgRGF0ZSkuZ2V0VGltZSgpfTtfX3N0b3A9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zb2xlLmxvZygidG9vayIsKGEtdCkvMUUzKX07dmFyIGFsZXJ0RmFsbGJhY2s9ITA7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZS5sb2cpY29uc29sZT17fSxjb25zb2xlLmxvZz1hbGVydEZhbGxiYWNrP2Z1bmN0aW9uKGEpe306ZnVuY3Rpb24oKXt9OwpBcnJheS5wcm90b3R5cGUubWFwfHwoQXJyYXkucHJvdG90eXBlLm1hcD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCIgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGU9T2JqZWN0KHRoaXMpLGs9ZS5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGM9Yik7dmFyIGg9QXJyYXkoayk7Zm9yKGQ9MDtkPGs7KXtpZihkIGluIGUpe3ZhciBuPWVbZF07bj1hLmNhbGwoYyxuLGQsZSk7aFtkXT1ufWQrK31yZXR1cm4gaH0pO0FycmF5LnByb3RvdHlwZS5pbmRleE9mfHwoQXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oYSxiKXtiPWJ8fDA7Zm9yKHZhciBjPXRoaXMubGVuZ3RoO2I8YztiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9KTsKQXJyYXkucHJvdG90eXBlLnJlZHVjZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwicmVkdWNlIix7dmFsdWU6ZnVuY3Rpb24oYSl7aWYobnVsbD09PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnJlZHVjZSBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgYj1PYmplY3QodGhpcyksYz1iLmxlbmd0aD4+PjAsZD0wO2lmKDI8PWFyZ3VtZW50cy5sZW5ndGgpdmFyIGU9YXJndW1lbnRzWzFdO2Vsc2V7Zm9yKDtkPGMmJiEoZCBpbiBiKTspZCsrO2lmKGQ+PWMpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO2U9YltkKytdfWZvcig7ZDxjOylkIGluIGImJihlPWEoZSxiW2RdLGQsYikpLGQrKztyZXR1cm4gZX19KTsKQXJyYXkucHJvdG90eXBlLmZvckVhY2h8fChBcnJheS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihhKXt2YXIgYixjO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigidGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGQ9T2JqZWN0KHRoaXMpLGU9ZC5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGI9YXJndW1lbnRzWzFdKTtmb3IoYz0wO2M8ZTspYyBpbiBkJiZhLmNhbGwoYixkW2NdLGMsZCksYysrfSk7ZnVuY3Rpb24gZ2V0RGF0YUF0dHJpYnV0ZXMoYSl7cmV0dXJuIGEuZGF0YXNldHx8W10uc2xpY2UuY2FsbChhLmF0dHJpYnV0ZXMpLnJlZHVjZShmdW5jdGlvbihiLGMpe3JldHVybi9eZGF0YS0vLnRlc3QoYy5uYW1lKSYmKGJbYy5uYW1lLnN1YnN0cig1KV09Yy52YWx1ZSksYn0se30pfQpmdW5jdGlvbiBnZXRQYXJhbWV0ZXJCeU5hbWUoYSl7YT1hLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7YT0obmV3IFJlZ0V4cCgiW1xcPyZdIithKyI9KFteJiNdKikiKSkuZXhlYyhsb2NhdGlvbi5zZWFyY2gpO3JldHVybiBudWxsPT1hPyIiOmRlY29kZVVSSUNvbXBvbmVudChhWzFdLnJlcGxhY2UoL1wrL2csIiAiKSl9CmZ1bmN0aW9uIHNob3dUcmFkZUluUG9wdXAoYSl7aWYoMD09JCgiI3RyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiKS5sZW5ndGgpe3ZhciBiPSI3NTBweCIsYz0iNTcwcHgiOzE9PS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYoYj0iMzAwcHgiLGM9IjYwMHB4Iik7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBpZD0idHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAnK2IrIjsgaGVpZ2h0OiAiK2MrJyI+PGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2Rpdj48aWZyYW1lIHNyYz0iJythKyciIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIiAgY2xhc3M9Ii10MCAtbDAgLXcxMDBwIC1oMTAwcCIgaWQ9InRyYWRlaW5MaW5rUG9wdXBJZnJhbWUiPjwvaWZyYW1lPjwvZGl2PicpfSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gY3VycmVudFByb21vUmVkaXJlY3QoKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3N3aXRjaCghMCl7Y2FzZSAiZnVuY3Rpb24iPT10eXBlb2Ygc2hvd1BvcHVwV2lkZ2V0OnNob3dQb3B1cFdpZGdldCgpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjVmlld1Byb21vQWN0aW9uQm94TGluayIpLmF0dHIoImhyZWYiKTokKCIjVmlld1Byb21vQWN0aW9uQm94TGluayIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwcm9tb3Rpb25TaWRlVkJ1dHRvbiBhIikuYXR0cigiaHJlZiIpOiQoIiNwcm9tb3Rpb25TaWRlVkJ1dHRvbiBhIilbMF0uY2xpY2soKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdDdXN0b21Qcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdDdXN0b21Qcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpfX0KZnVuY3Rpb24gc2hvd05ld1JlYmF0ZUNvZGVQb3B1cCgpezAhPSQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYwIT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpfHwkKCIjSW1hZ2VQb3B1cENvbnRhaW5lcl9uZXdyZWJhdGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWZ1bmN0aW9uIHNob3dOZXdCZXN0UHJpY2VWZHBQb3B1cCgpezAhPSQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYwIT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpfHwkKCIjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBwcmludF9wcm9tb19wcmV2KGEpe3ZhciBiPSExLGM9JChhKS5wYXJlbnRzKCIucHJvbW9zIik7YT1jLmZpbmQoIi5wcm9tby10aXRsZSIpLmh0bWwoKTt2YXIgZD1jLmZpbmQoIi5wcm9tby1kZXNjIikuaHRtbCgpO2M9Yy5maW5kKCIucHJvbW8taW1hZ2UgaW1nIikuYXR0cigiZGF0YS1wcmludC1zcmMiKTskKCIjcHJvbW9Ub1ByaW50IikucmVtb3ZlKCk7JCgiI3Byb21vVG9QcmludFdyYXAiKS5yZW1vdmUoKTskKCJib2R5IikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJ0b3ByaW50IiBpZD0icHJvbW9Ub1ByaW50Ij48aW1nIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7IiBzcmM9IicrYysnIiBhbHQ9IiIgaWQ9InByb21vSW1nIj48YnI+PGJyPjxiPicrYSsiPC9iPjxicj4iK2QrIjwvZGl2PiIpOyQoIiNwcm9tb0ltZyIpLm9uKCJsb2FkIixmdW5jdGlvbigpe2J8fCQoIiNwcm9tb1RvUHJpbnQiKS5wcmludEVsZW1lbnQoKTtiPSEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2J8fAokKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0sMUUzKTtyZXR1cm4hMX1mdW5jdGlvbiBnZXRNdWx0aXBsZUFkZHJlc3NQaG9uZShhKXskKCIubXVsdGlBZGRyZXNzUGhvbmUiKS5zbGlkZVVwKCk7YT0kKCIubXVsdGlBZGRyZXNzUGhvbmUiLCQoJChhKS5wYXJlbnQoKSkpOyQoYSkuaXMoIjpoaWRkZW4iKT8kKGEpLnNsaWRlRG93bigpOiQoYSkuc2xpZGVVcCgpfQpmdW5jdGlvbiBhZGRHZW5lcmFsU3R5bGUoKXt2YXIgYT0kKCIjQURNSU5fR0VORVJBTF9CR19DT0xPUiIpLnZhbCgpLGI9JCgiI2RlZmF1bHRfYmxhY2tfdGV4dCIpLnZhbCgpO2lmKCIjMDAwMDAwIiE9Ynx8IiMwMDAiIT1iKSQoIi5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnMiKS5hZGRDbGFzcygidGV4dENvbG9yIiksJCgiaS5mYS1mYWNlYm9vay1zcXVhcmUiKS5hZGRDbGFzcygidGV4dENvbG9yIiksJCgiLnVzZWQtZGV0YWlscyAuZGVmYXVsdCBkaXY6Zmlyc3QiKS5hZGRDbGFzcygidGV4dENvbG9yIik7IiNmZmZmZmYiIT1iJiYiI2ZmZiIhPWJ8fCQoIi5Vc2VkU3JwMk1vYmlsZSAuZGVmYXVsdCAubWFrZU1vZGVsWWVhciIpLmFkZENsYXNzKCJ0ZXh0Q29sb3JVc2VkU1JQTW9iaWxlIik7IiNmZmZmZmYiIT1hJiYoJCgiLm9sZC1kZXRhaWxzLXRyIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIiNzcGVjVGl0bGUiKS5hZGRDbGFzcygiYmdOb25lIiksJCgiLlVzZWRWZHAyTW9iaWxlIikuYWRkQ2xhc3MoIm90aGVyQkciKSl9CmZ1bmN0aW9uIGFwcGVuZFRyYWRlQm9vc3RCYW5uZXIoKXt9ZG9jUmVhZHlBcnIucHVzaCgoKT0+e2FwcGVuZFRyYWRlQm9vc3RCYW5uZXIoKTthZGRHZW5lcmFsU3R5bGUoKX0pOwpqUXVlcnkoZnVuY3Rpb24oYSl7YSgiI25hdiIpLmFkZENsYXNzKCJuYXYiKTsoZnVuY3Rpb24oKXtMQ19BUEk9d2luZG93LkxDX0FQSXx8e307TENfQVBJLm9uX3RpY2tldF9jcmVhdGVkPWZ1bmN0aW9uKG0pe3RyeXsoZnVuY3Rpb24obCl7bnVsbCE9bCYmKGw9JzxpbWcgc3JjPSJodHRwczovL3N0YXRzLmQyY21lZGlhLmNhL3NlcnZpY2UvY29udGFjdC5naWY\/dGM9JysobS50aWNrZXRfaWQrIiZ1PSIrbCkrJyIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3JpZ2h0OjEwcHg7dG9wOjEwcHg7cG9zaXRpb246YWJzb2x1dGU7IiAvPicsYSgiYm9keSIpLmFwcGVuZChsKSl9KShmdW5jdGlvbigpe3ZhciBsPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDpudWxsO3JldHVybiBudWxsPT1sP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6bH0oKSl9Y2F0Y2gobCl7fX19KSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvbkNvbmZpcm1TdWJtaXQpYSgiLmNvbmZpcm1faHRtbCIpLm9uKCJzdWJtaXQiLApvbkNvbmZpcm1TdWJtaXQpO3RyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIiNzbGlkZXIubml2b1NsaWRlciIpLmF0dHIoImlkIikpe3ZhciBiPSExLGM9ITEsZD0hMSxlPSExLGs9ITEsaD0hMSxuPTEwMCx4PTE8YSgiI3NsaWRlci5uaXZvU2xpZGVyIGEiKS5sZW5ndGg\/ITA6ITE7YSgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCYmKGg9az1lPWQ9Yz1iPSEwLG49YSgiI0JBTk5FUl9TRUFSQ0hfQkFSX1ZJREVPX09QQUNJVFkiKS5sZW5ndGg\/YSgiI0JBTk5FUl9TRUFSQ0hfQkFSX1ZJREVPX09QQUNJVFkiKS52YWwoKToxMDApO2RvY1JlYWR5QXJyLnB1c2goKCk9PntzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikubml2b1NsaWRlcih7ZWZmZWN0OiJmYWRlIixiZWZvcmVDaGFuZ2U6ZnVuY3Rpb24oKXthKCIjcGFyYWxsYXhXcmFwcGVyIikuZW5sbGF4KCl9LGFmdGVyQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikudHJpZ2dlcigibml2b1NsaWRlckNoYW5nZWQiKX0sCmFmdGVyTG9hZDpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJMb2FkZWQiKTthKCIjcGFyYWxsYXhXcmFwcGVyIikuZW5sbGF4KCk7YSgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCYmKGEoIiNzbGlkZXIubml2b1NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLnN0b3AsYSgiLm5pdm8tY29udHJvbE5hdiIpLmhpZGUoKSxhKCIubml2by1kaXJlY3Rpb25OYXYiKS5oaWRlKCksdGhpcy5zdGFydFlvdXR1YmUoKSl9LG1hbnVhbEFkdmFuY2U6Yix2aWRlb09uTG9vcDpjLGhpZGVDb250cm9sOmQsaGlkZUluZm86ZSxmdWxsV2lkdGg6ayxtdXRlVmlkZW86aCx2aWRlb0JyaWdodG5lc3M6bixjb250cm9sTmF2OngsZGlyZWN0aW9uTmF2Ongsc2hvd0Rpc2NsYWltZXI6ITB9KX0sNUUzKX0pfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikuYXR0cigiaWQiKSlhKCIuZXh0ZW5kZWRQaG9uZVRyaWdnZXIiKS5vbigibW91c2VlbnRlciIsCkV4UGhvbmUpLm9uKCJtb3VzZWxlYXZlIixFeFBob25lKTt2YXIgdj1mdW5jdGlvbigpe307YSgiLnRyYWRlaW5MaW5rIikub24oImNsaWNrIixmdW5jdGlvbigpe2lmKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikmJjY8YSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKS5sZW5ndGgpcmV0dXJuIHNob3dUcmFkZUluUG9wdXAoYSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKSksITF9KTthKCIudXBfbWVudSIpLm9uZSgibW91c2VvdmVyIix2KTtzZXRUaW1lb3V0KHYsMUU0KTsoZnVuY3Rpb24oKXtpZigwIT1hKCIjTWFpbk1lbnVfTkVXIikubGVuZ3RoKXt2YXIgcT1hKCIuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaS5maXJzdEl0ZW0iKSxyPSExOzAhPXEubGVuZ3RoJiYoYSgiI01haW5NZW51X05FVyIpLmZpbmQoIi5wcmljZSIpLmNzcygiY3Vyc29yIiwicG9pbnRlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcD1hKHRoaXMpLnNpYmxpbmdzKCkuZmlyc3QoKTsKd2luZG93LmxvY2F0aW9uPXAuYXR0cigiaHJlZiIpfSksYSgiI01haW5NZW51X05FVyIpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKTtxLmFkZENsYXNzKCJob3ZlciIpfSkscS5zaWJsaW5ncygpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKTtxLnJlbW92ZUNsYXNzKCJob3ZlciIpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cS5hZGRDbGFzcygiaG92ZXIiKX0sMzAwKX0pKX19KSgpO2EoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dmFyIHE9YSh0aGlzKTtxLmF0dHIoInNyYyIscS5hdHRyKCJlcnJvcmltZyIpKX0pO2NvbnN0IG09YSh3aW5kb3cpLGw9YSgiLnVwX21lbnUiKTtpZihsLmxlbmd0aCYmIWwuaGFzQ2xhc3MoIm5vbG9jayIpKXtsZXQgcT1sLm9mZnNldCgpLnRvcCxyPSExO2EoZG9jdW1lbnQpLm9uKCJzY3JvbGwiLCgpPT57cnx8Cih3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIHA9bS5zY3JvbGxUb3AoKSx3PWwuaGFzQ2xhc3MoImZpeGVkIik7dyYmcDxxP2wucmVtb3ZlQ2xhc3MoImZpeGVkIik6IXcmJnA+cSYmbC5hZGRDbGFzcygiZml4ZWQiKTsocD1sLmhhc0NsYXNzKCJmaXhlZCIpKSYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIik\/bC5jc3Moe3RvcDphKCIjYWxlcnRNc2dDb250YWluZXIiKS5vdXRlckhlaWdodCgpKyJweCJ9KTpsLmF0dHIoInN0eWxlIiwiIik7dz1hKCIucHVsbG91dHMuc2lkZV90b3A6dmlzaWJsZSIpO3AmJjA8dy5sZW5ndGg\/KHcuZmlsdGVyKCIucHVsbG91dC1vcGVuZWQiKS5jc3Moe3RvcDpsLmhlaWdodCgpKyJweCJ9KSx3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZWFjaChmdW5jdGlvbigpe3ZhciB6PWEodGhpcyksRD1nZXRfcG93KHouYXR0cigiaWQiKSk7IXouZGF0YSgicG9zWSIpJiZ6LmRhdGEoInBvc1kiLC1ELnBvc2l0aW9uKTsKRD16LmRhdGEoInBvc1kiKStsLmhlaWdodCgpO3ouY3NzKHt0b3A6RCsicHgifSl9KSk6KHcuZmlsdGVyKCIucHVsbG91dC1vcGVuZWQiKS5jc3Moe3RvcDowfSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmRhdGEoInBvc1kiKSYmdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLmNzcyh7dG9wOmEodGhpcykuZGF0YSgicG9zWSIpKyJweCJ9KX0pKTtyPSExfSkscj0hMCl9KX12PWZ1bmN0aW9uKCl7aWYoMD09YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmxlbmd0aCl7YSgiYm9keSIpLmFwcGVuZCgnPGRpdiBpZD0idHJhZGVpbkJhckZsb2F0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246IGZpeGVkO3dpZHRoOiAxMDAlO3otaW5kZXg6IDEwMDtkaXNwbGF5Om5vbmU7Ij48L2Rpdj4nKTthKCIjdHJhZGVJbkJhciIpLmNsb25lKCEwLCEwKS5hcHBlbmRUbygiI3RyYWRlaW5CYXJGbG9hdCIpLnRyaWdnZXIoInRyYWRlSW5CYXIuY2xvbmVkIik7CmlmKGEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikubGVuZ3RoJiYiMSI9PWEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikudmFsKCkpe2EoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoImJvdHRvbSIsIi0ycHgiKTt2YXIgcT1hKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodCgpLHI9YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhlaWdodCgpO2EoIi5jZXJ0aWZpZWQtZm9vdGVyIikuaGVpZ2h0KHErcil9ZWxzZXtxPWEoIiN0cmFkZWluQmFyRmxvYXQiKTtyPXEuY3NzO3ZhciBwPSIxIj09YSgiI21lbnVMb2NrIikudmFsKCk\/NDg6MDswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikmJihwKz1hKCIjYWxlcnRNc2dDb250YWluZXIiKS5vdXRlckhlaWdodCgpKTtyLmNhbGwocSwidG9wIixwKX1hKCIjdHJhZGVpbkJhckZsb2F0IC4tcGIxMCIpLmNzcyh7ZGlzcGxheToiaW5saW5lLXRhYmxlIix3aWR0aDphKCIjbWFpbkRpdiIpLndpZHRoKCl9KX1xPQoibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKTtyPSJuZXdjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKT8hMDohMTtwPTA8YSgiLm1haW5EaXZBZGp1c3RIZWFkZXIiKS5sZW5ndGg\/ITA6ITE7YSgiI3RyYWRlSW5CYXIiKS5pc0luVmlld3BvcnQoKXx8cT9xPyhyP2EoIi5uZXdWZHBBY3Rpb25zIikuaXNBYm92ZVZpZXdwb3J0KDIwMCk6YSgiLnVzZWRWZHBBY3Rpb25zIikuaXNBYm92ZVZpZXdwb3J0KDIwMCkpP2EoIiN0cmFkZWluQmFyRmxvYXQiKS5oaWRlKCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTphKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOihwJiYhYSgiI3RyYWRlSW5CYXIiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKXx8IXApJiZhKCIjdHJhZGVpbkJhckZsb2F0Iikuc2hvdygpOzA8YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikubGVuZ3RoJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYKNDghPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoInRvcCIpJiZhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiIT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpJiZhKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiLDQ4KX07ZnVuY3Rpb24gdShxLHIpe3ZhciBwPTA7cmV0dXJuIGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHApO3A9c2V0VGltZW91dChxLHIpfX1pZihhKCIjdHJhZGVJbkJhciIpLmxlbmd0aClhKGRvY3VtZW50KS5vbigic2Nyb2xsIix1KHYsMTAwKSk7dmFyIGY9YSgidWwubmF2ID4gbGkgPiB1bCA+IGxpID4gdWwiKTtmLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLnBhcmVudCgpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbihxKXthKCJ1bCIsdGhpcykuc2Nyb2xsVG9wKDApfSl9KTtmLm9uKCJET01Nb3VzZVNjcm9sbCBtb3VzZXdoZWVsIixmdW5jdGlvbihxKXt2YXIgcj1hKHRoaXMpLHA9dGhpcy5zY3JvbGxUb3Asdz10aGlzLnNjcm9sbEhlaWdodCwKej13PnRoaXMuY2xpZW50SGVpZ2h0LEQ9ci5oZWlnaHQoKSxDPXEub3JpZ2luYWxFdmVudDtDPSJET01Nb3VzZVNjcm9sbCI9PXEudHlwZT8tNDAqQy5kZXRhaWw6Qy53aGVlbERlbHRhO3ZhciBFPTA8QztpZigheilyZXR1cm4hMDt6PWZ1bmN0aW9uKEcpe3Iuc2Nyb2xsVG9wKEcpO3Euc3RvcFByb3BhZ2F0aW9uKCk7cS5wcmV2ZW50RGVmYXVsdCgpO3EucmV0dXJuVmFsdWU9ITE7cmV0dXJuITB9O3JldHVybiEoIUUmJi1DPnctRC1wJiZ6KHcpfHxFJiZDPnAmJnooMCkpfSl9Y2F0Y2gobSl7Y29uc29sZS5sb2coIkVycm9yIixtKX1pZihhKCIudXBfbWVudS5pbWdfbWVudSIpLmxlbmd0aCl7Zj1hKCIuaW1nX3N0eWxlXzEgI01haW5NZW51X05FVyIpLmNoaWxkcmVuKCIuc3ViIik7dmFyIGc9Zi5maW5kKCIuZmlyc3RJdGVtIikuZmluZCgiLnN1YiIpO2YuY2hpbGRyZW4oImxpIikub24oe21vdXNlZW50ZXI6ZnVuY3Rpb24oKXshYSh0aGlzKS5pcygiLmhhc1N1YiIpJiZnLmhpZGUoKX0sCm1vdXNlbGVhdmU6ZnVuY3Rpb24oKXshYSh0aGlzKS5pcygiLmhhc1N1YiIpJiZnLnNob3coKX19KX1hKCIubnVtZXJpYyIpLm9uKCJrZXlwcmVzcyIsZnVuY3Rpb24obSl7aWYoNDg+bS5rZXlDb2RlfHw1NzxtLmtleUNvZGUpbS5yZXR1cm5WYWx1ZT0hMX0pO2lmKCJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHx3aW5kb3cuRG9jdW1lbnRUb3VjaCYmZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoKWEoIi5sZWZ0X2JveCBhIikub24oInRhcCIsZnVuY3Rpb24obSl7bT1hKHRoaXMpO2lmKCJyYWRpbyIhPW0uYXR0cigidHlwZSIpJiZtLmF0dHIoIm9uY2xpY2siKSlyZXR1cm4gbS50cmlnZ2VyKCJjbGljayIpLCExfSksYSgiLmhhc0l0ZW1zID4gYSwgLmhhc1N1YiA+IGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKG0pe2lmKCJjbGljayIhPW0udHlwZSlyZXR1cm4hMDt2YXIgbD1hKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fCIwIj09CmwpYSgiLm5hdiBsaS5oYXNJdGVtcyBhLCAubmF2IGxpLmhhc1N1YiBhIikuZGF0YSgiY2xpY2tDb3VudCIsIjAiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIxIiksbS5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgcmV0dXJuIGRvY3VtZW50LmxvY2F0aW9uPWEodGhpcykuYXR0cigiaHJlZiIpLGEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIsIjAiKSwhMH0pO2EoImRpdi5nbWFwLXBsYWNlaG9sZGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBtPWEodGhpcyksbD1tLmRhdGEoKTtpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKHUpe3U9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZC92MS9wbGFjZT8iK1sicT0iK2VuY29kZVVSSUNvbXBvbmVudChsLnBsYWNlSWQpLCJ6b29tPSIrbC56b29tLCJsYW5ndWFnZT0iK2wubGFuZ3VhZ2UsInJlZ2lvbj1DQSIsImtleT0iK3VdLmpvaW4oIiYiKTttLmh0bWwoJzxpZnJhbWUgc3JjPSInK3UrJyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iNDAwIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyl9KX0pOwp0cnl7YSgiLmFkZHR0IikuZWFjaChmdW5jdGlvbigpe3ZhciBtPVsib25DbG9zZSIsIm9uWWVzIiwib25ObyJdLGw9YSh0aGlzKSx1PWwuZGF0YSgpLHE9e30scjtmb3IociBpbiB1KXFbcl09ZnVuY3Rpb24ocCx3KXtyZXR1cm4tMSE9bS5pbmRleE9mKHApP2Z1bmN0aW9uKCl7ZXZhbCh3KX06d30ocix1W3JdKTtsLmRhcmtUb29sdGlwKHEpfSl9Y2F0Y2gobSl7Y29uc29sZS5sb2cobS5tZXNzYWdlLG0pfX0pO2Z1bmN0aW9uIGNoaWxkT2YoYSxiKXtmb3IoOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEmJm51bGwhPT1hJiYoYT1hLnBhcmVudE5vZGUpJiZhIT09YjspO3JldHVybiEhYX12YXIgTWVudUhhbmRsZXI7CihmdW5jdGlvbigpe3ZhciBhO01lbnVIYW5kbGVyPWZ1bmN0aW9uIGMoKXtmdW5jdGlvbiBkKGYsZyl7bGV0IG09KGcubW9kZWx8fCIiKS50cmltKCksbD0oZy50cmltfHwiIikudHJpbSgpO2Y9Zi5yZXBsYWNlKCIjI01FTlVZRUFSIyMiLGcueWVhcik7bSYmbCYmKG0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnRvTG93ZXJDYXNlKCkpP2w9IiI6bC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG0udG9Mb3dlckNhc2UoKSkmJihtPSIiKSk7cmV0dXJuIGYucmVwbGFjZSgiIyNNRU5VTU9ERUwjIyIsbSkucmVwbGFjZSgiIyNNRU5VVFJJTSMjIixsKS5yZXBsYWNlKC8gKy9nLCIgIil9aWYoYSlyZXR1cm4gYTthPXRoaXM7dGhpcy5nZXRTcGVjVXJsPWZ1bmN0aW9uKCl7dmFyIGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCIwIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKT8iZW4iOiJmciI7IjAiPT0kKCIjbXVsdGktbGFuZ3VhZ2UiKS52YWwoKSYmCihmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIik7cmV0dXJuIi9qc29uL25ld2NhcnNkZXRhaWxzXyIrZisiLmpzb24ifTt0aGlzLm1lbnU9JCgiLm1lbnU1LCAubWVudTYsIC5tZW51NywgLm1lbnU4LCAubWVudTksIC5tZW51MTAiKTt0aGlzLnNwZWNzQWpheD0kLmdldCh0aGlzLmdldFNwZWNVcmwoKSk7dGhpcy5jYXJzPXtkZXRhaWxzOnt9LGZpbmRCeUlkOmZ1bmN0aW9uKGYpe3ZhciBnPXt9OyQuZWFjaCh0aGlzLmRldGFpbHMubWFrZXMsZnVuY3Rpb24obSxsKXskLmVhY2gobC5tb2RlbHMsZnVuY3Rpb24odSxxKXsxPT1xLmlzc2VyaWVzfHwxPT1xLmlzQ2xhc3M\/JC5lYWNoKHEuc3R5bGVzLGZ1bmN0aW9uKHIscCl7cC5pZD09ZiYmKGc9cCl9KTpxLmlkPT1mJiYoZz1xKX0pOyQuaXNFbXB0eU9iamVjdChnKX0pO3JldHVybiBnfX07dGhpcy5zcGVjc0FqYXguZG9uZShmdW5jdGlvbihmKXtjKCkuY2Fycy5kZXRhaWxzPWZ9KTt0aGlzLnBvc2l0aW9ucz0KZnVuY3Rpb24oZixnLG0pe3JldHVybnt0YXJnZXQ6JChnLmN1cnJlbnRUYXJnZXQpLHNlY29uZExldmVsTWVudTpudWxsLHdpbmRvd0hlaWdodDpudWxsLHNlY29uZExldmVsTWVudVRvcDpudWxsLHNlY29uZExldmVsTWVudUJvdHRvbTpudWxsLHN1Yk1lbnVJdGVtVG9wOm51bGwsc3ViTWVudUl0ZW1IZWlnaHQ6bnVsbCxzdWJNZW51SXRlbUJvdHRvbTpudWxsLGJvdHRvbUFsaWduOm51bGwsc3BlY3M6bnVsbCxzcGVjc1RvcDpudWxsLHNwZWNzSGVpZ2h0Om51bGwsc3BlY3NCb3R0b206bnVsbCxjdXN0b21TZWNvbmRMZXZlbE1lbnU6bnVsbCxyb3VuZDpmdW5jdGlvbihsKXtyZXR1cm4rKE1hdGgucm91bmQobCsiZSsyIikrImUtMiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnU\/dGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKTp0aGlzLnRhcmdldC5maW5kKCJ1bC5zdWI6Zmlyc3QiKTsKdHJ5e3RoaXMud2luZG93SGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudVRvcD10aGlzLnNlY29uZExldmVsTWVudS5wb3NpdGlvbigpLnRvcCx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodD10aGlzLnNlY29uZExldmVsTWVudS5vdXRlckhlaWdodCgpLHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPXRoaXMucm91bmQodGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpfWNhdGNoKGwpe310cnl7dGhpcy5zdWJNZW51SXRlbVRvcD0kKGYpLnBvc2l0aW9uKCkudG9wLHRoaXMuc3ViTWVudUl0ZW1IZWlnaHQ9JChmKS5vdXRlckhlaWdodCgpLHRoaXMuc3ViTWVudUl0ZW1Cb3R0b209dGhpcy5yb3VuZCh0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0K3RoaXMuc3ViTWVudUl0ZW1Ub3ApLHRoaXMuYm90dG9tQWxpZ249dGhpcy5yb3VuZCgkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKyQoZikucGFyZW50KCJ1bCIpLm9mZnNldCgpLnRvcC0KdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pfWNhdGNoKGwpe310cnl7dGhpcy5zcGVjcz1tLHRoaXMuc3BlY3NUb3A9dGhpcy5zcGVjcy5wb3NpdGlvbigpLnRvcCx0aGlzLnNwZWNzSGVpZ2h0PXRoaXMuc3BlY3Mub3V0ZXJIZWlnaHQoKSx0aGlzLnNwZWNzQm90dG9tPXRoaXMucm91bmQodGhpcy5zcGVjc1RvcCt0aGlzLnNwZWNzSGVpZ2h0KX1jYXRjaChsKXt9fSxhZGp1c3RTZWNvbmRMZXZlbDpmdW5jdGlvbigpe2lmKC42NSp0aGlzLndpbmRvd0hlaWdodDx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodCl7aWYodGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoImxvY2F0aW9uLWRldGFpbHMiKSlyZXR1cm47dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQXR0cigic3R5bGUiKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImhlaWdodCIsLjY1KnRoaXMud2luZG93SGVpZ2h0KTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoeyJvdmVyZmxvdy15IjoiYXV0byIsd2lkdGg6IjQwMHB4IiwKcG9zaXRpb246InN0YXRpYyIsZGlyZWN0aW9uOiJydGwifSk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuZmluZCgiPiBsaSIpLmNzcyh7ZGlyZWN0aW9uOiJsdHIifSk7aWYoMD09JChmKS5jaGlsZHJlbigiLm1haW5tZW51LXN1Ym1lbnUiKS5sZW5ndGgpe3ZhciBsPSQoIjxkaXYvPiIpO2wuYWRkQ2xhc3MoIm1haW5tZW51LXN1Ym1lbnUiKTtsLmRldGFjaCgpLmFwcGVuZCh0aGlzLnNlY29uZExldmVsTWVudSk7dGhpcy50YXJnZXQuYXBwZW5kKGwpfXRoaXMudXBkYXRlKCl9aWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208dGhpcy5zdWJNZW51SXRlbVRvcCkkKGYpLmFkZENsYXNzKCJhbGlnbi1sZXZlbCIpLHRoaXMudXBkYXRlKCksbD10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbTwkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpPyQoZikub3V0ZXJIZWlnaHQoKSskKGYpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0OiQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCkrCiQoZikucGFyZW50KCJ1bCIpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygidHJhbnNmb3JtIiwidHJhbnNsYXRlWSgiK2wrInB4KSIpO2Vsc2UgaWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20+dGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zdWJNZW51SXRlbUJvdHRvbT50aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSl7bD0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO3ZhciB1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoIitNYXRoLmFicyh0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbS10aGlzLnN1Yk1lbnVJdGVtQm90dG9tKSt0aGlzLnNlY29uZExldmVsTWVudVRvcCsicHgpIn07InJpZ2h0IiE9bCYmKHVbbF09dGhpcy50YXJnZXQucG9zaXRpb24oKS5sZWZ0K3RoaXMudGFyZ2V0LndpZHRoKCkpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyh1KX1lbHNlIHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wPgp0aGlzLnN1Yk1lbnVJdGVtVG9wJiZ0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIit0aGlzLnN1Yk1lbnVJdGVtVG9wKyJweCkiKX0sYWRqdXN0SG9yaXpvbnRhbDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJpbnZpc2libGUiKXx8dGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoImludmlzaWJsZSIpO3ZhciBsPXRoaXMuaXNJblZpZXdwb3J0KHRoaXMuc2Vjb25kTGV2ZWxNZW51WzBdKSx1PTA+cGFyc2VJbnQodGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJsZWZ0IikucmVwbGFjZSgicHgiLCIiKSk\/InJpZ2h0IjoibGVmdCI7bHx8ImxlZnQiIT09dXx8KHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJMMTAwIikmJnRoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJMMTAwIiksdGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoIlIxMDAiKSk7bD17fTtsW3VdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCsKdGhpcy50YXJnZXQud2lkdGgoKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MobCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoImludmlzaWJsZSIpfSxpc0luVmlld3BvcnQ6ZnVuY3Rpb24obCl7bD1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiAwPD1sLnRvcCYmMDw9bC5sZWZ0JiZsLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJmwucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX19fTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsInVsLm5hdiA+IGxpIixmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpO2cudXBkYXRlKCk7Zy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tJCh3aW5kb3cpLnNjcm9sbFRvcCgpPmcud2luZG93SGVpZ2h0P2cuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJzbGltLXN1Ym1lbnUiKToKZy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoInNsaW0tc3VibWVudSIpOyJtb3VzZWxlYXZlIiE9PWYudHlwZSYmKGY9JCh0aGlzKS5maW5kKCI+IHVsIiksZi5sZW5ndGgmJiFmLmRhdGEoImNhbGN1bGF0ZWQiKSYmKGc9JCh0aGlzKS5vdXRlcldpZHRoKCksZi5vdXRlcldpZHRoKCk8ZyYmZi5jc3MoIndpZHRoIixnKzEpLGYuZGF0YSgiY2FsY3VsYXRlZCIsITApKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTswIT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgidWwuc3ViID4gbGkiKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9Zi50eXBlJiYoZy51cGRhdGUoKSxnLmFkanVzdFNlY29uZExldmVsKCkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgbGkubG9jYXRpb24tbmFtZXMiLApmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpLG09JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIik7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnU9ZnVuY3Rpb24oKXtyZXR1cm4gbX07MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKCQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLm9uKCJsYXp5bG9hZGVkIixmdW5jdGlvbihsKXtnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKTtnLnVwZGF0ZSgpO2cuYWRqdXN0SG9yaXpvbnRhbCgpO2cuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pLGcuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCkuYXR0cigic3R5bGUiLG51bGwpLGcudXBkYXRlKCksZy5hZGp1c3RIb3Jpem9udGFsKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwKJyNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IFtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl0nLGZ1bmN0aW9uKGYpe2Y9YS5wb3NpdGlvbnModGhpcyxmKTtmLnVwZGF0ZSgpO2YuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjREVBTEVSUEFSVFJFRElSRUNUVFlQRSIpLnZhbCgpJiYwPCQoIiNERUFMRVJCUkFORCIpLmxlbmd0aCYmJCgiI0RFQUxFUkJSQU5EIikudmFsKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiZm9yZCIpJiYiIiE9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpKXt2YXIgZT0kKCJodG1sIikuYXR0cigibGFuZyIpLGs9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGg9ImVuIj09ZT8iL3JlcXVlc3RzL2Nhci1wYXJ0cy1hbmQtYWNjZXNzb3JpZXMuaHRtbCI6Ii9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIsbj0iaHR0cHM6Ly9mb3JkYWNjZXNzLmNvbS9Gb3JkLmFzcHg\/bG9jYXRpb249IisKazt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9TRVJWSUNFIHVsLnN1YiBsaVtkYXRhLWlkPSdQSUVDRVMnXSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2Y9JCgiPiBhIixmKTtmLmF0dHIoImhyZWYiKT09aCYmKGYuYXR0cigiaHJlZiIsbiksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KX10aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9GSU5BTkNFID4gYSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpLGc9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxtPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxsPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTsiZm9yZF9saW5jb2xuX2V4dGVybmFsIiE9JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpfHwiZm9yZCIhPWwmJiJsaW5jb2xuIiE9bHx8IiI9PW18fChmLmF0dHIoImhyZWYiLCJmb3JkIj09bD8oImVuIj09Zz8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6CiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSttOigiZW4iPT1nPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKSttKSxmLmF0dHIoInRhcmdldCIsIl9ibGFuayIpKX0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY3RhLXRwbCIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpe2lmKCExPT09KCJjb21tZXJjaWFsIj09bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zZWN0aW9uPyEwOiExKSlyZXR1cm47ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwgYSIpLmZvckVhY2goKGYsZyk9PntnPWYuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2xhc3Njb21tZXJjaWFsX2NvbnRhaW5lciIpLmxlbmd0aCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRpdkNhclNpbmdsZU91dGVyQm94IGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwppZihnLmluY2x1ZGVzKCJzaG9wLmZvcmQuY2EiKSl7bGV0IG09ITE7Zy5pbmNsdWRlcygic3VwZXJkdXR5IikmJihtPWcucmVwbGFjZSgiL3N1cGVyZHV0eS8iLCIvc3VwZXJkdXR5LWNvbW1lcmNpYWwvIikpOyExIT09bSYmZi5zZXRBdHRyaWJ1dGUoImhyZWYiLG0pfX0pfX0sMkUzKTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe2lmKCJtb3VzZWxlYXZlIiE9CmYudHlwZSl7dmFyIGc9JCh0aGlzKS5maW5kKCIubWVudS10ZWNoLXNwZWNzIik7MD09Zy5sZW5ndGgmJihnPSQoIiNtZW51LXNwZWNzLXRlbXBsYXRlIikuY2xvbmUoKSk7dmFyIG09dGhpcztpZigwPT0kKG0pLmNoaWxkcmVuKCIubWVudS10ZWNoLXNwZWNzIikubGVuZ3RoKXt2YXIgbD0kKG0pLmZpbmQoImE6bnRoLW9mLXR5cGUoMikiKS50ZXh0KCksdT0kKG0pLmZpbmQoImE6Zmlyc3QtY2hpbGQiKS5hdHRyKCJocmVmIikscT11Lmxhc3RJbmRleE9mKCIvIikrMTtjYXJMaW5rVHJpbW1lZD11LnN1YnN0cmluZyhxLHUubGVuZ3RoKTt2YXIgcj0kKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKStjYXJMaW5rVHJpbW1lZDsoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXt2YXIgeT0KMDwkKG0pLmNsb3Nlc3QoImxpW2RhdGEtaWRePSdORVdfQ09NTUVSQ0lBTCddIikubGVuZ3RoPyEwOiExLEE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCk7QT1KU09OLnBhcnNlKEEpO3ZhciBJPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksQj1yLm1hdGNoKCJlbiI9PUk\/L1wvYnVpbGQtYW5kLXByaWNlXC8oXGR7NH0tKFx3KyktKFx3KykuKlwuaHRtbCkuKi86L1wvY29uZmlndXJhdGlvbi1ldC1wcml4XC8oKFx3KyktKFx3KyktXGR7NH0pLipcLmh0bWwvKSxKPUJbMF0sRj1CWzJdLnRvTG93ZXJDYXNlKCk7Qj1CWzNdLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgiXyIsIiAiKTt5JiZCLmluY2x1ZGVzKCJzdXBlciBkdXR5IikmJihCPSJzdXBlciBkdXR5IGNvbW1lcmNpYWwiKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIj09PXR5cGVvZiBBW0ZdW0JdKWZvcih2YXIgSyBpbiBBW0ZdKWlmKHk9SyxCLmluY2x1ZGVzKHkpKXtCPXk7CmJyZWFrfSJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl1bQl0mJigkKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikscj1yLnJlcGxhY2UoSixBW0ZdW0JdW0ldKSl9fSkoKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigiaHJlZiIscik7JChnKS5maW5kKCIubWVudS1zcGVjLWxpbmsiKS5hdHRyKCJocmVmIix1KTskKGcpLnJlbW92ZUF0dHIoImlkIik7JChnKS5jaGlsZHJlbigiLm1lbnUtc3BlY3MtdGl0bGUiKS5hcHBlbmQobCk7dmFyIHA9e307JC5pc0VtcHR5T2JqZWN0KGMoKS5jYXJzLmRldGFpbHMpPyQud2hlbihjKCkuc3BlY3NBamF4KS5kb25lKGZ1bmN0aW9uKHkpe3A9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpfSk6cD1jKCkuY2Fycy5maW5kQnlJZCgkKG0pLmRhdGEoIm1vZGVsaWQiKSk7aWYoISQuaXNFbXB0eU9iamVjdChwKSl7dmFyIHc9YS5zaG91bGRVc2VGcmVuY2hOYW1lcygpPwpwLm5hbWU6cC5tb2RlbDtwLmhhc093blByb3BlcnR5KCJiYXNlX3N0eWxlIikmJihwPXAuYmFzZV9zdHlsZSx3PXAubW9kZWwpO3E9IkZSRU5DSCI9PSQoIiN0ZXh0TGFuZ3VhZ2UiKS52YWwoKT8iTi9EIjoiTi9BIjtsPSIiPT1wLmRpc3BsYWNlbWVudD9xOnAuZGlzcGxhY2VtZW50O3U9IiI9PXAuY2l0eUZ1ZWw\/cTpwLmNpdHlGdWVsO3E9IiI9PXAuaHd5RnVlbD9xOnAuaHd5RnVlbDt2YXIgej1wLm1zcnBBbGxJbixEPSQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS50ZXh0KCkudHJpbSgpO0Q9RC5yZXBsYWNlKCIkTU9ERUwiLHcpO3c9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7ei50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj5gO3o9JCgiI0FETUlOX05FV19ET05UX1NIT1dfUFJJQ0VfTU9ERUxTIikudmFsKCkuaW5jbHVkZXMocC5tb2RlbGlkKTtpZigwPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmxlbmd0aCl7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikudGV4dCgiIik7CnZhciBDPSQoJzxkaXYgY2xhc3M9InByaWNlIi8+JyksRT0kKCc8c3BhbiBjbGFzcz0icHJpY2VfYW10Ii8+JyksRz0kKCc8c3BhbiBjbGFzcz0icHJpY2Vfc2NyYXRjaGVkIi8+JyksSD0kKCc8c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iLz4nKTswPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2Utc2NyYXRjaCIpLmxlbmd0aD8oRy5odG1sKHcpLEUuYXBwZW5kKEcpLEUuY3NzKHsidGV4dC1kZWNvcmF0aW9uIjoibGluZS10aHJvdWdoIixjb2xvcjoicmVkIn0pKTpFLmh0bWwodyk7Qy5hcHBlbmQoRSk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikubGVuZ3RoJiYoSC50ZXh0KCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2VfcHJvbW8iKS50ZXh0KCkpLEguY3NzKHtjb2xvcjoicmVkIn0pLEMuYXBwZW5kKEgpKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5hcHBlbmQoQyl9ZWxzZSAkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5odG1sKHcpOwokKGcpLmZpbmQoIi5tZW51LXNwZWMtaHAiKS50ZXh0KHAuaHBBdFJQTSk7JChnKS5maW5kKCIubWVudS1zcGVjLXBvd2VyIikudGV4dChsKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1jaXR5IikudGV4dCh1KTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1oaWdod2F5IikudGV4dChxKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZHJpdmV0cmFpbiIpLnRleHQocC5kcml2ZVRyYWluKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmxhc3QoKS5yZXBsYWNlV2l0aChEKTt6JiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLnJlbW92ZSgpLCQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoJCgiI05FV19QUklDRV9URVhUIikudmFsKCkpKTtsPSQoZykuZmluZCgiLm1lbnUtcHJpY2UtdGV4dCIpO3U9bC5hdHRyKCJkYXRhLXByaWNlLXRlbXBsYXRlIil8fGwudGV4dCgpOwpsLnRleHQoZCh1LHApKTs1RTg+cC5pZCYmJChtKS5hcHBlbmQoZy5mYWRlSW4oMjAwKSk7bD1uZXcgQ3VzdG9tRXZlbnQoInRvcG5hdi10ZWNoLXNwZWMtbG9hZGVkIix7ZGV0YWlsOnt0ZW1wbGF0ZTpnfX0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobCl9fXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgeT1hLnBvc2l0aW9ucyhtLGYsJChnKSk7eS51cGRhdGUoKTt2YXIgQT0kKG0pLnBhcmVudCgidWwuc3ViIikucGFyZW50KCkucGFyZW50KCk7QS5vZmZzZXQoKTtBLm91dGVySGVpZ2h0KCk7eS5zcGVjc0JvdHRvbTx5LnN1Yk1lbnVJdGVtVG9wJiYkKGcpLmNzcygidG9wIix5LnN1Yk1lbnVJdGVtQm90dG9tLXkuc3BlY3NCb3R0b20pO3kuc3ViTWVudUl0ZW1Ub3A8eS5zcGVjc0JvdHRvbSYmeS5zdWJNZW51SXRlbUJvdHRvbT55LnNwZWNzQm90dG9tJiYkKGcpLmNzcygidG9wIiwkKGcpLnBvc2l0aW9uKCkudG9wKyh5LnN1Yk1lbnVJdGVtQm90dG9tLXkuc3BlY3NCb3R0b20pKX0sCjApO2RlbGV0ZSBwfX0pOyQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcDpub3QoLmlzT3BlbiknKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oZil7JChmLmN1cnJlbnRUYXJnZXQpLmhhc0NsYXNzKCJpc09wZW4iKXx8JCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wJykucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfSk7JChkb2N1bWVudCkub24oImNsaWNrIixmdW5jdGlvbihmKXtjaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsJCgiLnVwX21lbnUiKVswXSl8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoIiNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9JCgiI21lbnUtbWFwLWxpbmsiKTswPT1nLmxlbmd0aHx8MDxnLmZpbmQoImlmcmFtZSIpLmxlbmd0aHx8aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihtKXttPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IisKWyJxPSIrZW5jb2RlVVJJQ29tcG9uZW50KGcuZGF0YSgicGxhY2VJZCIpKSwiem9vbT0iK2cuZGF0YSgiem9vbSIpLCJsYW5ndWFnZT0iK2cuZGF0YSgibGFuZ3VhZ2UiKSwicmVnaW9uPUNBIiwia2V5PSIrbV0uam9pbigiJiIpO2cuYXBwZW5kKCc8aWZyYW1lIHNyYz0iJyttKyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTskKCIjTWFpbk1lbnVfRklOQU5DRSwgI01haW5NZW51X0NPTlRBQ1QiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihmKXt2YXIgZz1mLmN1cnJlbnRUYXJnZXQuaWQsbT0kKCIjIitnKTswPT09JCgiIyIrZysiLmlzT3BlbiIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT09Zi50eXBlJiZtLmFkZENsYXNzKCJpc09wZW4iKTtpZigibW91c2VsZWF2ZSI9PT1mLnR5cGUpe3ZhciBsPSQoIi5jcmVkaXRTY29yZVBvcHVwRm9ybSIpWzBdOwpnPSQoIiMiK2crIiA+IGEudG9wX2xpbmsiKVswXTsobCYmZi5mcm9tRWxlbWVudD09PWx8fGcmJmYuZnJvbUVsZW1lbnQ9PT1nKSYmbS5yZW1vdmVDbGFzcygiaXNPcGVuIik7bD0kKGYudG9FbGVtZW50KS5oYXNDbGFzcygiY2FsLXdyYXBwZXIiKXx8JChmLnRvRWxlbWVudCkuY2hpbGRyZW4oKS5oYXNDbGFzcygiY2FsLXdyYXBwZXIiKXx8JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoIm5lYkNhbCIpfHwkKGYudG9FbGVtZW50KS5jbG9zZXN0KCIubmViQ2FsIikubGVuZ3RoO2c9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoInBhYy1jb250YWluZXIiKTtpZighKG51bGw9PT1mLnRvRWxlbWVudHx8Y2hpbGRPZihmLnRvRWxlbWVudCxtWzBdKXx8Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LG1bMF0pfHxsfHxnKXx8Y2hpbGRPZihmLnRvRWxlbWVudCwkKCIudXBfbWVudSIpWzBdKSYmIWNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSkpJCgiLm5lYkNhbCIpLmlzKCI6dmlzaWJsZSIpJiYKKGY9JCgiLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IC5jcmVkaXRTY29yZUJpcnRoZGF0ZSIpLmRhdGEoIm5lYkNhbCIpKSYmZi5oaWRlKCksbS5yZW1vdmVDbGFzcygiaXNPcGVuIil9fSk7aWYoJCghMCkpe2U9JCgiLm1lbnU1IC5uYXYgPiBsaSIpO2s9ZS5sZW5ndGg7dmFyIHg9JCgiI01haW5NZW51X0NPTlRBQ1QiKSx2PS0xO2UuZWFjaChmdW5jdGlvbihmLGcpeyQoZykuaXMoeCkmJih2PWYpfSk7LTE8diYmLjU8PXYvayYmeC5maW5kKCIuY29udGFjdHVzLWZvcm0uY29udGFjdC1zaG9ydCIpLmNzcyh7cmlnaHQ6ImluaGVyaXQifSl9dGhpcy5zaG91bGRVc2VGcmVuY2hOYW1lcz1mdW5jdGlvbigpe3JldHVybiJGUkVOQ0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJiIxIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKX07dGhpcy5zZXRNZW51RXhwcmVzc0Zvcm1TZWxlY3RlZE9wdGlvbj1mdW5jdGlvbigpe3ZhciBmPXdpbmRvdy5sb2NhdGlvbi5ocmVmLApnPS91c2VkfG9jY2FzaW9uLy50ZXN0KGYpLG09L25ld3xuZXVmcy8udGVzdChmKSxsPS9maW5hbmNlbWVudHxjcmVkaXQvLnRlc3QoZiksdT0vc2VydmljZXxhY2Nlc3Nvcmllc3x0aXJlfHBuZXVzfGJvZHlzaG9wfGJvZHktc2hvcHxjYXJvc3NlcmllLy50ZXN0KGYpO2Y9IiI7bT9mPSJuZXciOmc\/Zj0idXNlZCI6bD9mPSJmaW5hbmNlIjp1JiYoZj0ic2VydmljZSIpOyIiIT1mJiYoZz0kKCIubWVudSAjcXVpY2tFbWFpbERlcGFydG1lbnQiKSwkKCcgb3B0aW9uW3ZhbHVlPSInK2YrJyJdJyxnKS5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIiksbT0kKCJvcHRpb246c2VsZWN0ZWQiLGcpLmluZGV4KCksZy5wcmV2KCJ1bCIpLmZpbmQoImxpIikuZXEobSkuZmluZCgiYSIpLnRyaWdnZXIoImNsaWNrIikpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zZXRNZW51RXhwcmVzc0Zvcm1TZWxlY3RlZE9wdGlvbigpfSwxMCk7Y29uc29sZS5sb2coIk1lbnVIYW5kbGVyIGluaXQgLS0gdGVzdCByZW1vdmUgbGF0ZXIiKTsKdGhpcy50cmFuc2xhdGVUaXRsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e3ZhciBmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLW1lbnUtdHJhbnNsYXRlXSIpO2lmKGYpe3ZhciBnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5jbGFzc05hbWUubWF0Y2goIkZSRU5DSCIpPyJmciI6ImVuIixtPShuZXcgVVJMKGAvanMvanNvbi9tZW51VGl0bGVzXyR7Z30uanNvbmAsd2luZG93LmxvY2F0aW9uLm9yaWdpbikpLmhyZWY7cmVzcG9uc2U9eWllbGQgZmV0Y2gobSk7aWYodGV4dD15aWVsZCByZXNwb25zZS50ZXh0KCkpaWYoZGF0YT1KU09OLnBhcnNlKHRleHQpLGYmJjAhPT1kYXRhLmxlbmd0aClmb3IoZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgbD1mW2ddLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51LXRyYW5zbGF0ZSIpO2RhdGFbbF0mJkJhc2U2NC5pc0Jhc2U2NChkYXRhW2xdLnRleHQpJiYKKGZbZ10udGV4dENvbnRlbnQ9QmFzZTY0LmRlY29kZShkYXRhW2xdLnRleHQpKX19fWNhdGNoKHUpe2NvbnNvbGUubG9nKHUpfX0pfTt0aGlzLnRyYW5zbGF0ZVRpdGxlcygpfX0pKCk7JChmdW5jdGlvbigpe3dpbmRvdy5tZW51SGFuZGxlcj1uZXcgTWVudUhhbmRsZXJ9KTsKdmFyIGdldEFjdGl2ZVBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT0iIjsidW5kZWZpbmVkIj09PXR5cGVvZiBhY3RpdmVQYWdlJiYoYWN0aXZlUGFnZT0iIik7c3dpdGNoKGFjdGl2ZVBhZ2Upe2Nhc2UgIkhPTUVQQUdFIjphPSJBY2N1ZWlsIjticmVhaztjYXNlICJDQVJERVRBSUxTIjphPSJPY2Nhc2lvbi1WRFAiO2JyZWFrO2Nhc2UgIlVTRURDQVJTIjphPSJPY2Nhc2lvbi1TUlAiO2JyZWFrO2Nhc2UgIk5FV0NBUlMiOmE9Ik5ldWYtU1JQIjticmVhaztjYXNlICJORVdDQVJERVRBSUxTIjphPSJOZXVmLVZEUCJ9cmV0dXJuIGF9LHNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudD1mdW5jdGlvbihhLGIpe2dhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyBCYW5uaWVyZSIsYSxiLDEpfTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXtpZihhPWdldEFjdGl2ZVBhZ2UoKSl7dmFyIGI9IiIhPSQodGhpcykuYXR0cigiaHJlZiIpPyQodGhpcykuYXR0cigiaHJlZiIpOiJQb3B1cCI7c2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsYil9fSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiN0b3BCYW5uZXJJbWFnZSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmc2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsIlBvcHVwIil9KTt2YXIgaG9tZVBhZ2VCYW5uZXJWaWV3PVtdOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJiJBY2N1ZWlsIj09YSYmKGE9JCgiI3NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiRGVza3RvcC1jbGljayIsYSwxKSl9KTsKJChkb2N1bWVudCkub24oIm5pdm9TbGlkZXJDaGFuZ2VkIG5pdm9TbGlkZXJMb2FkZWQiLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIiLGZ1bmN0aW9uKGEpeyEoYT1nZXRBY3RpdmVQYWdlKCkpfHwiQWNjdWVpbCIhPWF8fDUwMDwkKGRvY3VtZW50KS5zY3JvbGxUb3AoKXx8KGE9JCgiI3NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiRGVza3RvcC12aWV3IixhLDEpKSl9KTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiA+IGEiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJiJBY2N1ZWlsIj09YSYmKGE9JCgiI21vYmlsZVNsaWRlcjIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIk1vYmlsZS1jbGljayIsYSwxKSl9KTsKJChkb2N1bWVudCkub24oIm5pdm9TbGlkZXJDaGFuZ2VkIG5pdm9TbGlkZXJMb2FkZWQiLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHwzNTA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsMD4kLmluQXJyYXkoYSxob21lUGFnZUJhbm5lclZpZXcpJiYoaG9tZVBhZ2VCYW5uZXJWaWV3LnB1c2goYSksZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtdmlldyIsYSwxKSkpfSk7CmZ1bmN0aW9uIHRocmVzaG9sZFBvcHVwKCl7dmFyIGE9Z2V0VXJsVmFycygpO2lmKG51bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duIil8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5kZWJ1ZylzaG93UG9wdXBXaWRnZXQoe2RvTm90UmVkaXJlY3Q6ITB9KSxDb29raWVzLnNldCgicG9wdXBTaG93biIsIjEiLDkwLCIvIil9ZnVuY3Rpb24gX2xvY2FsU3RvcmFnZVNldChhLGIsYyl7Yz04NjRFNSooY3x8MSk7Yj17dmFsdWU6YixleHBpcnk6KG5ldyBEYXRlKS5nZXRUaW1lKCkrY307bG9jYWxTdG9yYWdlLnNldEl0ZW0oYSxKU09OLnN0cmluZ2lmeShiKSl9ZnVuY3Rpb24gX2xvY2FsU3RvcmFnZUdldChhKXt2YXIgYj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKTtpZighYilyZXR1cm4gbnVsbDtiPUpTT04ucGFyc2UoYik7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCk+Yi5leHBpcnk\/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpLG51bGwpOmIudmFsdWV9CmZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VSZW1vdmUoYSl7aWYoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpKXJldHVybiBudWxsO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpO3JldHVybiBudWxsfWZ1bmN0aW9uIGdlbmVyYXRlVW5pcXVlSWQoKXtyZXR1cm4iaWQtIitEYXRlLm5vdygpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1jb25zdCBpbml0VG9vbHRpcHM9KCk9Pnt0cnl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtcG9wcGVyXSIpLmZvckVhY2goYT0+e1Rvb2x0aXAoYSkuY3JlYXRlKCl9KX1jYXRjaChhKXtjb25zb2xlLmxvZygiVG9vbHRpcCBvYmplY3Qgbm90IGZvdW5kIil9fTsKZnVuY3Rpb24gaGFuZGxlQ29va2llQ29udGVudCgpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZWhpZGVdIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZWhpZGU7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITApfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtY29va2llc2hvd10iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQuY29va2llc2hvdztiLmxlbmd0aCYmQ29va2llcy5nZXQoYikmJihhLmhpZGRlbj0hMSl9KX12YXIgc2l0ZVBhZ2U9e307CmNvbnN0IGRvY1JlYWR5PWZ1bmN0aW9uKCl7X2xvY2FsU3RvcmFnZUdldCgiZDJjLXVpZCIpfHxfbG9jYWxTdG9yYWdlU2V0KCJkMmMtdWlkIixnZW5lcmF0ZVVuaXF1ZUlkKCksMik7aWYoImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUpe2xldCBhO2NvbnNvbGUubG9nKCJHU1BFRUQtRE9DUkVBRFkgQ09NUExFVEU6IisoRGF0ZS5ub3coKS0obnVsbCE9KGE9d2luZG93LmdUZXN0U3BlZWRDb25uKT9hOjApKS8xRTMpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi10eHQiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXR4dCIsITEpfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXNsaWRlciIpLmZvckVhY2goYj0+e2IuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tc2xpZGVyIiwhMSl9KTt3aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkPSEwO3NpdGVQYWdlPXtuYW1lOiJ1bmRlZmluZWQiIT10eXBlb2YgcGFnZT8KcGFnZToiIixpc01vYmlsZToiMSI9PShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXNtb2JpbGUiKXx8IiIpLnZhbHVlLGxhbmc6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVzaXRlbGFuZ3VhZ2UiKXx8IiIpLnZhbHVlfHwiRlJFTkNIIn07aGFuZGxlQ29va2llQ29udGVudCgpO2luaXRUb29sdGlwcygpO2RvY1JlYWR5QXJyLmZvckVhY2goYj0+YigpKTtkb2NSZWFkeUFycj1bXX1lbHNle2xldCBhO2lmKCJpbnRlcmFjdGl2ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeSYmITE9PT0obnVsbCE9KGE9d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZCk\/YTohMSkpe2xldCBiO2NvbnNvbGUubG9nKCJHU1BFRUQtRE9DUkVBRFkgSU5URVJBQ1RJVkU6IisoRGF0ZS5ub3coKS0obnVsbCE9KGI9d2luZG93LmdUZXN0U3BlZWRDb25uKT9iOjApKS8xRTMpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi10eHQiKS5mb3JFYWNoKGM9Pgp7Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGM9PntjLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMH1zZXRUaW1lb3V0KGRvY1JlYWR5LDUwKX19O2RvY1JlYWR5KCk7CiQoZnVuY3Rpb24oKXt2YXIgYT0hMDskKHdpbmRvdykub24oInNjcm9sbCIsZnVuY3Rpb24oKXt2YXIgZD0kKGRvY3VtZW50KS5oZWlnaHQoKSxlPSQod2luZG93KS5oZWlnaHQoKSskKHdpbmRvdykuc2Nyb2xsVG9wKCk7LjA1PihkLWUpL2QmJmEmJihhPSExLCJ1bmRlZmluZWQiIT09dHlwZW9mIGdhVHJhY2smJmdhVHJhY2soIl90cmFja0V2ZW50IiwiQm90dG9tIG9mIHBhZ2UgcmVhY2hlZCIsJCgnaW5wdXRbbmFtZT0idGFyZ2V0UGFnZSJdJykudmFsKCksd2luZG93LmxvY2F0aW9uLmhyZWYsMSkpfSk7JCgiLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIikucGFyZW50KCIud3JhcHBlciIpLnJlbW92ZUNsYXNzKCJ3cmFwcGVyIik7aWYoJCgiI2lzQnJhbmRQYWdlIikubGVuZ3RoKXt2YXIgYj1nZXRVcmxWYXJzKCk7aWYoYi5rdyYmLTEhPWIua3cudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJjYW5hZGEiKSl7dmFyIGM9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpJiYiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiO2I9ImVuIj09Yz8iSGVyZSB3ZSBvZmZlciB0aGUgYmVzdCBwcmljZXMiOiJJY2kgb24gb2ZmcmUgbGVzIG1laWxsZXVycyBwcml4IjtjPSJlbiI9PWM\/Im9uICIrJCgiI2lzQnJhbmRQYWdlIikudmFsKCkrIidzIGluIENhbmFkYSI6JCgiI2lzQnJhbmRQYWdlIikudmFsKCkrIiBhdSBDYW5hZGEiOyQoIiNkZWZhdWx0VG9wQmFubmVyVGl0bGUiKS50ZXh0KGIpOyQoIiNkZWZhdWx0VG9wQmFubmVyVGV4dCIpLnRleHQoYyl9fSQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihiPWdldFVybFZhcnMoKSxiLmZpbmFuY2Vwb3AmJiJ5ZXMiPT1iLmZpbmFuY2Vwb3AmJnNldFRpbWVvdXQoKCk9PnskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKCl9LDFFMykpOzA8JCgiLnRyYWRlc2lpLXJvb3QiKS50ZXh0KCkubGVuZ3RoPyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwKMUUzKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnRyYWRlc2lpLXJvb3QiKS5jc3MoInotaW5kZXgiLDFFMyl9LDFFMyl9KTtmdW5jdGlvbiBhZGRNYXhMZW5ndGgoKXskKCI6aW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJ0eXBlIiksYj0kKHRoaXMpLmF0dHIoIm1heGxlbmd0aCIpO2lmKHZvaWQgMD09Ynx8bnVsbD09Ynx8IiI9PWIpInRleHQiPT1hfHwidGVsIj09YXx8ImVtYWlsIj09YXx8InVybCI9PWE\/JCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1Nik6Im51bWJlciI9PWEmJigkKHRoaXMpLnByb3AoIm9uaW5wdXQiLCJ0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLm1heGxlbmd0aCkiKSwkKHRoaXMpLnByb3AoIm1heGxlbmd0aCIsMjU2KSl9KX1kb2NSZWFkeUFyci5wdXNoKCgpPT57JCgiLnJldmVhbC1tb2RhbCIpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbigpe2FkZE1heExlbmd0aCgpfSk7YWRkTWF4TGVuZ3RoKCl9KTsKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCxlKXt0aGlzLmVsPWQ7dGhpcy4kZWw9YShkKTtpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXRoaXMuc2V0dGluZ3M9YS5leHRlbmQoYyxlKTt0aGlzLmluaXQoKX12YXIgYz17bGF0OiIiLGxvbmc6IiIscG9zdGFsOiIiLHJhdGlvOi42ODg1LHdpZHRoOiJhdXRvIn07Yi5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5pcygiLmxhenlsb2FkIik\/ImRhdGEtaW1nc3JjIjoic3JjIjt0aGlzLiRlbC5hdHRyKGQsdGhpcy5nZXRVcmwoKSl9LGlzVmlzaWJsZTpmdW5jdGlvbigpe3ZhciBkPXRoaXMuJGVsLmF0dHIoIndpZHRoIik7cmV0dXJuISgiMHB4Ij09PXRoaXMuJGVsLmF0dHIoImhlaWdodCIpfHwiMHB4Ij09PWQpfSxnZXRXaWR0aDpmdW5jdGlvbigpe3RoaXMuJGVsLmF0dHIoIndpZHRoIik7dmFyIGQ9MDsiYXV0byI9PT10aGlzLnNldHRpbmdzLndpZHRofHwiYXV0byI9PT10aGlzLiRlbC5kYXRhKCJ3aWR0aCIpPwpkPXRoaXMuJGVsLnBhcmVudCgpLmNzcygid2lkdGgiKTppc05hTihwYXJzZUludCh0aGlzLnNldHRpbmdzLndpZHRoKSk\/dm9pZCAwIT09dGhpcy4kZWwuYXR0cigid2lkdGgiKSYmKGQ9dGhpcy4kZWwuYXR0cigid2lkdGgiKSk6ZD10aGlzLnNldHRpbmdzLndpZHRoO3RoaXMuJGVsLmF0dHIoIndpZHRoIixkKTtyZXR1cm4gcGFyc2VJbnQoZC5yZXBsYWNlKCJweCIsIiIpKX0sZ2V0SGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGQ9ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT9NYXRoLnJvdW5kKHRoaXMuZ2V0V2lkdGgoKSp0aGlzLnNldHRpbmdzLnJhdGlvKSsicHgiOnRoaXMuJGVsLnBhcmVudCgpLmNzcygiaGVpZ2h0Iik7dGhpcy4kZWwuYXR0cigiaGVpZ2h0IixkKTtyZXR1cm4gcGFyc2VJbnQoZC5yZXBsYWNlKCJweCIsIiIpKX0sZ2V0VXJsOmZ1bmN0aW9uKCl7dmFyIGQ9Z2V0RGF0YUF0dHJpYnV0ZXModGhpcy5lbCksCmU9dGhpcy5nZXRXaWR0aCgpLGs9dGhpcy5nZXRIZWlnaHQoKSxoPWQubGF0KyIsIitkLmxvbmcsbj1kLmhhc093blByb3BlcnR5KCJtYXJrZXJJY29uIik\/Imljb246IitkLm1hcmtlckljb24rInwiOiIiO2Q9YS5leHRlbmQoe3NpemU6ZSsieCIrayxjZW50ZXI6aCx6b29tOiIxMiIsbWFya2VyczpuK2h9LGQpO3JldHVybiJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwPyIrYS5wYXJhbShkKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZURhdGEoKX19O2EuZm4uZ29vZ2xlU3RhdGljTWFwPWZ1bmN0aW9uKGQpe3ZhciBlPWFyZ3VtZW50cztpZigxPnRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKCFhLmRhdGEodGhpcywicGx1Z2luX3N0YXRpY01hcCIpKXJldHVybiBhLmRhdGEodGhpcywicGx1Z2luX3N0YXRpY01hcCIsbmV3IGIodGhpcyxkKSksdGhpc30pO2lmKCJzdHJpbmciPT09dHlwZW9mIGQmJgoiXyIhPT1kWzBdJiYiaW5pdCIhPT1kKXsxPHRoaXMubGVuZ3RoJiZjb25zb2xlLmxvZygiZ29vZ2xlU3RhdGljTWFwIHdhcm5pbmcgY29kZSAxIik7dmFyIGs9YS5kYXRhKHRoaXMuZmlyc3QoKVswXSwicGx1Z2luX3N0YXRpY01hcCIpO3JldHVybiBrW2RdLmFwcGx5KGssQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwxKSl9cmV0dXJuIHRoaXN9fSkoalF1ZXJ5KTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KGEpe2lmKDE+YS5sZW5ndGgpcmV0dXJue307Zm9yKHZhciBiPXt9LGM9YS5zcGxpdCgiJiIpLGQ9MDtkPGMubGVuZ3RoO2QrKylhPWV4cGxvZGUoY1tkXSwiPSIsMSksYlthWzBdXT1hWzFdO3JldHVybiBifWZ1bmN0aW9uIGRlY29kZVN0cmluZyhhLGIpe2lmKCIiPT1ifHwidW5kZWZpbmVkIj09YiliPTE7Zm9yKGk9MDtpPGI7aSsrKWE9ZGVjb2RlVVJJQ29tcG9uZW50KGEpO3JldHVybiBhfQpmdW5jdGlvbiBleHBsb2RlKGEsYixjKXthPWEuc3BsaXQoYik7aWYoYS5sZW5ndGg8PWMpcmV0dXJuIGE7Yz1hLnNwbGljZSgwLGMpO2MucHVzaChhLmpvaW4oYikpO3JldHVybiBjfWZ1bmN0aW9uIGdldFVybFZhcnMoKXt2YXIgYT13aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtyZXR1cm4gcGFyc2VRdWVyeShhKX1mdW5jdGlvbiBnZXRDb29raWUoYSl7cmV0dXJuIENvb2tpZXMuZ2V0KGEpfWZ1bmN0aW9uIHNldENvb2tpZShhLGIsYyl7Q29va2llcy5zZXQoYSxiLGMsIi8iKX1mdW5jdGlvbiBnZXRDb29raWVEMmMoYSl7cmV0dXJuIENvb2tpZXMuZ2V0KGEpfWZ1bmN0aW9uIHNldENvb2tpZUQyYyhhLGIsYyl7Q29va2llcy5zZXQoYSxiLGMsIi8iKX1mdW5jdGlvbiBpc1NTTCgpe3JldHVybiJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sfWZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoYSxiKXtDb29raWVzLnNldChhLGIsMCwiLyIpfQpmdW5jdGlvbiBpbml0TENJKGEsYil7aWYoMjA8YilyZXR1cm4gYjtiPWI\/YjowO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgTENfQVBJfHwidW5kZWZpbmVkIj09dHlwZW9mIExDX0ludml0ZSlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aW5pdExDSShhLCsrYil9LDUwMCk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIExDX0FQSSYmInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19JbnZpdGUmJmEpcmV0dXJuIExDX0FQSS5zZXRfY3VzdG9tX3ZhcmlhYmxlcyhhKX1mdW5jdGlvbiBnZXRSZWZlcnJlclZhckZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpeyIiPT1hJiYoYT1kb2N1bWVudC5yZWZlcnJlcik7dmFyIGI9YS5pbmRleE9mKCI\/IikrMTtyZXR1cm4gMDxiPyhiPWEuc2xpY2UoYikscGFyc2VRdWVyeShiKSk6e319fQooZnVuY3Rpb24oYSl7dmFyIGI9e2NhbGxiYWNrczpbXSxoYXNTY3JpcHQ6ZnVuY3Rpb24oKXt2YXIgZT1hKCdoZWFkIHNjcmlwdFtzcmMqPSJtYXBzLmpzLnBocCJdJyk7cmV0dXJuIDA9PWUubGVuZ3RoPyExOi9tYXBzXC5qcy8udGVzdChlLmF0dHIoInNyYyIpKX0sbG9hZDpmdW5jdGlvbihlKXtpZihiLmhhc1NjcmlwdCgpKSJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZT9iLmNhbGxiYWNrcy5wdXNoKGUpOmUoKTtlbHNle2IuY2FsbGJhY2tzLnB1c2goZSk7dHJ5e3ZhciBrPSJFTkdMSVNIIj09YSgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjsoZnVuY3Rpb24oaCxuLHgsdixmKXtoW2ZdJiZoW2ZdLm1hcHN8fChoPW4uY3JlYXRlRWxlbWVudCh4KSxuPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoeClbMF0saC5zcmM9dixoLmFzeW5jPSExLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZ29vZ2xlTWFwc0xvYWRlZCIsZz0+e2ZvcihnPTA7ZzxiLmNhbGxiYWNrcy5sZW5ndGg7ZysrKWIuY2FsbGJhY2tzW2ddLmNhbGwoKX0pLApuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGgsbikpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvanMvbWFwcy5qcy5waHA\/bGFuZz0iK2ssImdvb2dsZSIpfWNhdGNoKGgpe2NvbnNvbGUubG9nKGgpfX19fSxjPXthdXRvQ29tcGxldGU6e2NvbXBvbmVudFJlc3RyaWN0aW9uczp7Y291bnRyeToiY2EifX0scmFkaXVzOjFFNX0sZD1mdW5jdGlvbihlLGspe3ZhciBoPXRoaXM7aC5lbD1lO2guJGVsPWEoZSk7aC5zZXR0aW5ncz1hLmV4dGVuZChjLGspO2guYWRkcmVzcz17Y2l0eToiIixzdHJlZXRfbnVtYmVyOiIiLHN0cmVldDoiIixzdWJsb2NhbGl0eToiIixwcm92aW5jZToiIixjb3VudHJ5OiIiLHBvc3RhbDoiIn07aC4kZWwub25lKCJmb2N1cyIsZnVuY3Rpb24oKXtoLmluaXQoKX0pfTtkLnByb3RvdHlwZT17X2NoZWNrRm9yR29vZ2xlTWFwczpmdW5jdGlvbihlKXsidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZS5tYXBzPwpiLmxvYWQoZSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBlJiZlLmNhbGwoKX0sZ2V0QWRkcmVzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZHJlc3N9LF9zZXRBZGRyZXNzOmZ1bmN0aW9uKGUpe3ZhciBrPXRoaXM7YS5lYWNoKGUsZnVuY3Rpb24oaCxuKXtzd2l0Y2goITApe2Nhc2UgLTE8YS5pbkFycmF5KCJzdHJlZXRfbnVtYmVyIixuLnR5cGVzKTprLmFkZHJlc3Muc3RyZWV0X251bWJlcj1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJyb3V0ZSIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldD1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJzdWJsb2NhbGl0eSIsbi50eXBlcyk6ay5hZGRyZXNzLnN1YmxvY2FsaXR5PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoImxvY2FsaXR5IixuLnR5cGVzKTpjYXNlIC0xPGEuaW5BcnJheSgiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8zIixuLnR5cGVzKToiIj09ay5hZGRyZXNzLmNpdHkmJihrLmFkZHJlc3MuY2l0eT1uKTticmVhazsKY2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMSIsbi50eXBlcyk6ay5hZGRyZXNzLnByb3ZpbmNlPW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoImNvdW50cnkiLG4udHlwZXMpOmsuYWRkcmVzcy5jb3VudHJ5PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInBvc3RhbF9jb2RlIixuLnR5cGVzKTprLmFkZHJlc3MucG9zdGFsPW59fSl9LF9zZXRTZWFyY2hCb3VuZHM6ZnVuY3Rpb24oZSxrLGgpe2s9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhrLGgpO2s9bmV3IGdvb2dsZS5tYXBzLkNpcmNsZSh7Y2VudGVyOmsscmFkaXVzOnRoaXMuc2V0dGluZ3MucmFkaXVzfSk7ZS5zZXRCb3VuZHMoay5nZXRCb3VuZHMoKSl9LGluaXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX2NoZWNrRm9yR29vZ2xlTWFwcyhmdW5jdGlvbigpe3ZhciBrPW5ldyBnb29nbGUubWFwcy5HZW9jb2RlcixoPW5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKGUuZWwsCmUuc2V0dGluZ3MuYXV0b0NvbXBsZXRlKTtlLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJsYXQiKSYmZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibG9uZyIpPyIiIT09ZS5zZXR0aW5ncy5sYXQmJiIiIT09ZS5zZXR0aW5ncy5sb25nJiZlLl9zZXRTZWFyY2hCb3VuZHMoaCxlLnNldHRpbmdzLmxhdCxlLnNldHRpbmdzLmxvbmcpOmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImFkZHJlc3MiKT9lLnNldHRpbmdzLmFkZHJlc3MmJmsuZ2VvY29kZSh7YWRkcmVzczplLnNldHRpbmdzLmFkZHJlc3N9LGZ1bmN0aW9uKG4seCl7ZS5fc2V0U2VhcmNoQm91bmRzKGgsblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpKX0pOiJ1bmRlZmluZWQiIT09dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3MmJjA8Zm9vdGVyTWFwQWRkcmVzcy5sZW5ndGgmJmsuZ2VvY29kZSh7YWRkcmVzczpmb290ZXJNYXBBZGRyZXNzWzBdLmFkZHJlc3N9LGZ1bmN0aW9uKG4sCngpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihoLCJwbGFjZV9jaGFuZ2VkIixmdW5jdGlvbigpe3ZhciBuPWguZ2V0UGxhY2UoKTtlLl9zZXRBZGRyZXNzKG4uYWRkcmVzc19jb21wb25lbnRzKTtlLiRlbC52YWwobi5mb3JtYXR0ZWRfYWRkcmVzcyk7bj1uZXcgRXZlbnQoImlucHV0Iik7ZS5lbC5kaXNwYXRjaEV2ZW50KG4pO2UuJGVsLnRyaWdnZXIoImZvY3VzIil9KX0pfX07YS5mbi5nb29nbGVQbGFjZXM9ZnVuY3Rpb24oZSl7dmFyIGs9YXJndW1lbnRzO2lmKHZvaWQgMD09PWV8fCJvYmplY3QiPT09dHlwZW9mIGUpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2EuZGF0YSh0aGlzLCJwbHVnaW5fcGxhY2VzIil8fGEuZGF0YSh0aGlzLCJwbHVnaW5fcGxhY2VzIixuZXcgZCh0aGlzLGUpKX0pO2lmKCJzdHJpbmciPT09dHlwZW9mIGUmJgoiXyIhPT1lWzBdJiYiaW5pdCIhPT1lKXt2YXIgaD1hLmRhdGEodGhpc1swXSwicGx1Z2luX3BsYWNlcyIpO3JldHVybiBoW2VdLmFwcGx5KGgsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaywxKSl9fX0pKGpRdWVyeSk7CmZ1bmN0aW9uIHNob3dCYW5uZXJQb3B1cChhKXt0cnl7JChhKS5oYXNDbGFzcygidHJhZGVpbkxpbmsiKSYmKDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoInRyYWRlaW52YWx1ZXMiKXx8MDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIikpP3Nob3dUcmFkZUluUG9wdXAoYS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpKTowPCQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmJCgiI2Jhbm5lclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBkaXNwbGF5IHRyYWRlaW52YWx1ZXMgaWZyYW1lLiBFcnJvcjogIitiLm1lc3NhZ2UpfX0KJChmdW5jdGlvbigpezA8JCgnaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzPSJ0cnVlIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5kYXJrVG9vbHRpcCYmKCQoIiNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGEsIC5nUmF0aW5nLWljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToibm9ydGgiLG9wYWNpdHk6MX0pLCQoIi5zb2NpYWwtbWVkaWEtaWNvbnMgW2RhdGEtdG9vbHRpcF0iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pLCQoIiNtaXRzdWJpc2hpQ2VydGlmaWVkRm9vdGVyIGEuc29jaWFsLW1lZGlhX19pY29uLCAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJzb3V0aCIsb3BhY2l0eToxfSkpO3ZhciBhPSQoIi5ncmF5Ym94LnVzZWREZXRhaWxzUGhvbmUsIC5ncmF5Ym94Lm5ld0RldGFpbHNQaG9uZSIpOwowPT09YS5jaGlsZHJlbigpLmxlbmd0aCYmMD09PWEudGV4dCgpLnRyaW0oKS5sZW5ndGgmJmEuaGlkZSgpfSk7JCgiI2ZpbmFuY2VBbHREaXNwbGF5IC5zdGVwMSBiaWcudGV4dCBiaWciKS5hdHRyKCJkYXRhLWRlcGFydG1lbnQiLCJGaW5hbmNlIik7JCgiLmNyZWRpdF9tX2NhbGx1c193cmFwcGVyIGEiKS5hdHRyKCJkYXRhLWRlcGFydG1lbnQiLCJGaW5hbmNlIik7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgiI2RpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpLmxlbmd0aCYmKGVsZW1lbnRUb09ic2VydmU9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5jaGlsZHJlblswXSxvYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihhLGIpe2I9JCgiI2RpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpO2xldCBjPSQoInNwYW5bZGF0YS1jZy1lcnJvcl0iLGIpO2NvbnNvbGUubG9nKCJEMkNHIixiLGMsYSk7Yy5sZW5ndGgmJmIucmVtb3ZlKCl9KSxvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnRUb09ic2VydmUse2NoYXJhY3RlckRhdGE6ITEsY2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITF9KSl9KTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpey0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9uZXcvIil8fCQoIiNuZXctdmRwLXNwZWMtYnJvY2h1cmUiKS5oaWRlKCl9KTsKJChmdW5jdGlvbigpeyQoIiNGb290ZXJfRklOQU5DRSA+IGEsIGEjRmluYW5jZUFjdGlvbkJveCwgYSNGaW5hbmNlQWN0aW9uQm94TGluayIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKSxiPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7aWYoMDwkKCIjREVBTEVSUEFDT0RFIikubGVuZ3RoKXt2YXIgYz0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksZD0kKCIjREVBTEVSQlJBTkRfUFJJTUFSWSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk7aWYoImZvcmRfbGluY29sbl9leHRlcm5hbCI9PSQoIiNGSU5BTkNFRk9STVRZUEUiKS52YWwoKSYmKCJmb3JkIj09ZHx8ImxpbmNvbG4iPT1kKSYmIiIhPWMpe3ZhciBlPSgiZW4iPT1iPyJodHRwczovL3d3dy5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IikrCmM7Yj0oImVuIj09Yj8iaHR0cHM6Ly93d3cubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IikrYzthLm9mZigiY2xpY2siKTthLmF0dHIoImhyZWYiLCJmb3JkIj09ZD9lOmIpO2EuYXR0cigidGFyZ2V0IiwiX2JsYW5rIil9fX0pfSk7CiQod2luZG93KS5vbigibG9hZCIsZnVuY3Rpb24oKXt0cnl7aWYoZ2V0UGFyYW1ldGVyQnlOYW1lKCJwcm9tbyIpKXt2YXIgYT0wPGFjdGl2YXRlZFBvcHVwRGl2SUQubGVuZ3RoP2FjdGl2YXRlZFBvcHVwRGl2SUQ6ITE7aWYoYSYmMDxhLmxlbmd0aCl7dmFyIGI9JCgiIyIrYSkucG9wdXBpemUoe3ByaW9yaXR5OjEwMCxlbmRQb3B1cFF1ZXVlOiEwfSk7cG9wdXBTdXBlcnZpc29yLnJlZ2lzdGVyKGIpfX0ib2JqZWN0Ij09dHlwZW9mIHBvcHVwU3VwZXJ2aXNvciYmc2V0VGltZW91dChwb3B1cFN1cGVydmlzb3Iuc2hvdyw1MDApfWNhdGNoKGMpe2NvbnNvbGUubG9nKGMpfX0pOwokKGZ1bmN0aW9uKCl7JCgiLm5hdiBhIikub24oImNsaWNrIixmdW5jdGlvbihhKXsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJigoYT0kKHRoaXMpLmF0dHIoImhyZWYiKSkmJiFSZWdFeHAoImphdmFzY3JpcHQ6IiwiZ2kiKS50ZXN0KGEpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsIk1FTlVfY2xpY2tlZF9VUkwiKSwoYT0iLyI9PWE\/IkhvbWUiOiQodGhpcykudGV4dCgpKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfSU5GTyIpKX0pfSk7CnZhciBEMkNVdGlscz17TGFuZzp7aXNFTjpmdW5jdGlvbigpe3JldHVybiEoImZ1bmN0aW9uIj09PXR5cGVvZiAkJiYkKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpKX0sZ2V0U2hvcnRMYW5nOmZ1bmN0aW9uKGEpe3JldHVybiBEMkNVdGlscy5MYW5nLmlzRU4oKT9hPyJFTiI6ImVuIjphPyJGUiI6ImZyIn19LEZvcm1hdDp7dG9OdW1iZXI6ZnVuY3Rpb24oYSl7YT1hLnRvU3RyaW5nKCkuc3BsaXQoIi4iKTtmb3IodmFyIGI9LyhcZCspKFxkezN9KS87Yi50ZXN0KGFbMF0pOylhWzBdPWFbMF0ucmVwbGFjZShiLCIkMSwkMiIpO3JldHVybiBhWzBdfSx0b1ByaWNlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/KGI9RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiI6IiAkIixgJHtEMkNVdGlscy5MYW5nLmlzRU4oKT8iJCI6IiJ9JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9JHtifWApOmA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihhKX08L3NwYW4+YH19LApOdW1iZXI6e3JvdW5kRG93bjpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguZmxvb3IoYS9iKSpifSxyb3VuZFVwOmZ1bmN0aW9uKGEpe3ZhciBiPTI9PT1hcmd1bWVudHMubGVuZ3RoP3BhcnNlSW50KGFyZ3VtZW50c1sxXSk6MTtyZXR1cm4gTWF0aC5jZWlsKGEvYikqYn19LEFycmF5czp7ZmluZDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5sZW5ndGg7aWYoMDxkKWZvcih2YXIgZT0wO2U8ZDtlKyspaWYoYVtlXVtiXT09YylyZXR1cm4gYVtlXTtyZXR1cm4tMX19LFN0cmluZzp7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyOmZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrU3RyaW5nKGEpLnNsaWNlKDEpfX0sTW9iaWxlOntpc01vYmlsZTpmdW5jdGlvbigpe3JldHVybiAwPCQoIiNpc01vYmlsZSIpLmxlbmd0aH19fTsKZnVuY3Rpb24gc2V0dXBGaW5hbmNpbmdMaW5rKGEsYil7NDg1PT0oJCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCkpJiZiLmNsZWFyYW5jZSYmMDxhLmxlbmd0aCYmKGI9JCgiI01haW5NZW51X2Y0ODJiYWFiLWFhYzQtZWRhNi02YjUyLTMgPiBhIiksMD09Yi5sZW5ndGgmJihiPSQoIi5DTEVBUkFOQ0UiKS5wYXJlbnQoKS5maW5kKCIuc3VibWVudUl0ZW06Zmlyc3QtY2hpbGQiKSksMDxiLmxlbmd0aCYmKGI9Yi5hdHRyKCJocmVmIiksIiIhPT1iJiZhLmF0dHIoImhyZWYiLGIpKSl9dmFyIG9wZW5XaW5kb3dzPVtdLHdpbmRvd09wZW5PRz13aW5kb3cub3BlbjsKd2luZG93Lm9wZW49ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3dPcGVuT0cuYXBwbHkodGhpcyxhcmd1bWVudHMpLGI9e3dpbmRvdzphLGFyZ3M6YXJndW1lbnRzfTtvcGVuV2luZG93cy5wdXNoKGIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGpRdWVyeSYmalF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCJ3aW5kb3cub3BlbiIsYik7cmV0dXJuIGF9OwokKGZ1bmN0aW9uKCl7JChkb2N1bWVudCkub24oIndpbmRvdy5vcGVuIixmdW5jdGlvbihhLGIpe2E9Yi5hcmdzO2Zvcih2YXIgYz0hMSxkPTA7ZDxhLmxlbmd0aDtkKyspaWYoLTE8YVtkXS5pbmRleE9mKCJjYXJmYXgiKXx8YVtkXS5pbmRleE9mKCJjYXJwcm9vZiIpKXtjPSEwO2JyZWFrfWlmKGMpe2E9d2luZG93LnNjcmVlbi5hdmFpbEhlaWdodHx8d2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0fHxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDt0cnl7Yi53aW5kb3cucmVzaXplVG8oYi53aW5kb3cub3V0ZXJXaWR0aCxNYXRoLnJvdW5kKC45NSphKSl9Y2F0Y2goZSl7fX19KX0pOwokKGZ1bmN0aW9uKCl7dmFyIGE9JCgiLnVwX21lbnUiKSxiPSQoIi5wcm9tb3Rpb25TaWRlVkJ1dHRvbiIpLGM9JCgnI3NsaWRlaXQgPiBsYWJlbFtmb3I9Im9wZW4taXRlbSJdOm5vdCgudGV4dC11cy1idG4pJyk7aWYoYS5sZW5ndGgmJmIubGVuZ3RoKXt2YXIgZD0hMSxlPWZ1bmN0aW9uKCl7dmFyIGs9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGg9JCh3aW5kb3cpLmhlaWdodCgpO2s9YS5vZmZzZXQoKS50b3ArYS5vdXRlckhlaWdodCgpKzEwMC1rO2g9TWF0aC5tYXgoaC8yLGspO2IucGFyZW50KCkuaGFzQ2xhc3MoInNwZWNpYWxTY2hlZHVsZUNvbnRlbnQiKXx8InNwZWNpYWxTY2hlZHVsZUNvbnRlbnQiPT1iLnBhcmVudCgpLmF0dHIoImlkIil8fGIuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpoKyJweCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIix0cmFuc2l0aW9uOiJub25lIn0pO2MubGVuZ3RoJiYoaD1iWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSwKYy5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOmgrNSsicHgifSkpO2Q9ITF9OyQod2luZG93KS5vbigic2Nyb2xsIHJlc2l6ZSIsZnVuY3Rpb24oKXtkfHwod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxkPSEwKX0pO3NldFRpbWVvdXQoZSwxMDApfX0pO2Z1bmN0aW9uIHJlcGxhY2VVc2VkVmVoaWNsZU1vZGVsRGlzcGxheShhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhfHxhIGluc3RhbmNlb2YgU3RyaW5nKSJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKXx8LTEhPT1hLmluZGV4T2YoIkh5YnJpZGUiKSYmKGE9YS5yZXBsYWNlKCJIeWJyaWRlIiwiSHlicmlkIikpO3JldHVybiBhfQokKGZ1bmN0aW9uKCl7aWYoJCgiLnBheXBhbF9idXR0b25faHRtbCIpLmxlbmd0aCl7dmFyIGE9JCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iZnIiOiJlbiIsYj0kKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJSw6lzZXJ2ZXotbGUgYXZlYyBQYXlQYWwgISI6IlJlc2VydmUgaXQgIHdpdGggUGF5UGFsICEiOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCdpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdJykuYXR0cigic3JjIiwiL2ltYWdlcy9jb250aW51ZV93aXRoX3BheXBhbF8iK2ErIi5wbmciKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgiZm9ybSIpLmF0dHIoInRhcmdldCIsInBheXBhbElmcmFtZSIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCJ0YWJsZSB0cjpmaXJzdCB0ZCIpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDM9PXRoaXMubm9kZVR5cGV9KS5maXJzdCgpLnJlcGxhY2VXaXRoKGIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmZpbmQoJ1tuYW1lPSJpdGVtX25hbWUiXScpLnJlbW92ZSgpOwokKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5maW5kKCdbbmFtZT0iaXRlbV9udW1iZXIiXScpLnJlbW92ZSgpO2E9JzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Iml0ZW1fbmFtZSIgdmFsdWU9IicrJCgiI3Bob25lbWFrZSIpLnZhbCgpKyIgIiskKCIjcGhvbmVtb2RlbCIpLnZhbCgpKyIgIiskKCIjcGhvbmVteWVhciIpLnZhbCgpKyIgU3RvY2soIyIrJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSsnKSI+JzskKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5hcHBlbmQoYSk7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoJ2lucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkNsaXF1ZXMgUGF5UGFsIiwiT2NjYXNpb24iLCQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCkrIi0iKyQoIiNwaG9uZW1ha2UiKS52YWwoKSsiLSIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsKIi0iKyQoIiNwaG9uZW15ZWFyIikudmFsKCkrIi0iKyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCksMSl9KTskKCIjcGF5cGFsUG9wdXAiKS5kZXRhY2goKS5hcHBlbmRUbygiYm9keSIpOyQoJy5wYXlwYWxfYnV0dG9uX2h0bWwgaW5wdXRbbmFtZT0ic3VibWl0Il0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI3BheXBhbFBvcHVwIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0pOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5zaG93KCl9JCgiI3Rlc3REcml2ZVR5cGUiKS5sZW5ndGgmJigiVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSkmJiQoIi5wcmVmZXJlZFZpcnR1YWxUb29sIikuc2hvdygpfSk7CmZ1bmN0aW9uIHByaWNlUmVxdWVzdENvbW1lbnRUZXh0KCl7dmFyIGE9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLGI9JCgiI2lzbW9iaWxlIiksYz0kKCIjcXVlc3Rpb25zQ29tbWVudHMiKTthPSJFTkdMSVNIIj09YS52YWwoKT8iSGksIEknZCBsaWtlIHRvIGdldCB5b3VyIGJlc3QgcHJpY2Ugb24gYSAwICAiOiJCb25qb3VyLCBqJ2FpbWVyYWlzIGF2b2lyIHZvdHJlIG1laWxsZXVycyBwcml4IHBvdXIgdW4gICAwIjswPGIubGVuZ3RoJiYiMSI9PWIudmFsKCkmJjA8Yy5sZW5ndGgmJmMudmFsKCk9PWEmJmMudmFsKCIiKX0kKGZ1bmN0aW9uKCl7cHJpY2VSZXF1ZXN0Q29tbWVudFRleHQoKX0pOwokKGZ1bmN0aW9uKCl7dmFyIGE9JCgiI2Zvb3RlciAuaWNvbi10ZXh0IHNwYW5baXRlbXByb3A9J3RlbGVwaG9uZSddIGEucGhvbmUtbGluayIpLGI9JCgiI2Zvb3RlciAuaWNvbi10ZXh0IC5mYS1waG9uZSIpOzA8YS5sZW5ndGgmJjA8Yi5sZW5ndGgmJiIiPT1hLmh0bWwoKS50cmltKCkmJmIuaGlkZSgpfSk7CmZ1bmN0aW9uIHBhZ2VWaWV3Q291bnRHb29nbGVFdmVudCgpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxiPTAsYz1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfVkRQTVYiKTtudWxsIT1jPyhjPUpTT04ucGFyc2UoYyksYj1udWxsIT1jW2FdP2NbYV06MCxjW2FdPXBhcnNlSW50KGIpKzEpOihjPXt9LGNbYV09MSk7YT0iMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKT8iTkVXIjokKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTswPT1iP2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjF4IiwxKToxPT1iP2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjJ4IiwxKTpnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIzeCsiLDEpO3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oImQyY19WRFBNViIsSlNPTi5zdHJpbmdpZnkoYykpfQokLmZuLmlzSW5WaWV3cG9ydD1mdW5jdGlvbigpe3ZhciBhPSQodGhpcykub2Zmc2V0KCkudG9wLGI9YSskKHRoaXMpLm91dGVySGVpZ2h0KCksYz0kKHdpbmRvdykuc2Nyb2xsVG9wKCksZD1jKyQod2luZG93KS5oZWlnaHQoKTtyZXR1cm4gYj5jJiZhPGR9OyQuZm4uaXNBYm92ZVZpZXdwb3J0PWZ1bmN0aW9uKGEpe2E9YXx8MDt2YXIgYj0kKHRoaXMpLm9mZnNldCgpLnRvcCskKHRoaXMpLm91dGVySGVpZ2h0KCksYz0kKHdpbmRvdykuc2Nyb2xsVG9wKCk7cmV0dXJuIGI+YythfTtmdW5jdGlvbiBzZXRQb3B1cE9wZW5PbkNsaWNrKCl7JCgiW2RhdGEtcG9wdXBpZF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXBvcHVwaWQiKTskKHRoaXMpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKTskKCIjIithKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfSl9KX0KZnVuY3Rpb24gYWRkRGVhbGVySW5zaWRlU2NyaXB0KCl7aWYoJCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5sZW5ndGgpe3ZhciBhPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1pZERlYWxlciIpLGI9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWxhbmciKSxjPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1idXR0b24tdHlwZSIpLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTtkLnNldEF0dHJpYnV0ZSgic3JjIiwiaHR0cHM6Ly9kZWFsZXJpbnNpZGVhcHAuY29tL3dpZGdldHMvZGVhbGVyX2luc2lkZV9jYWxsLmpzP2RlYWxlcklkPSIrYSsiJmxhbmc9IitiKyImYnV0dG9uVHlwZT0iK2MpO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZCl9fQokKGZ1bmN0aW9uKCl7c2V0UG9wdXBPcGVuT25DbGljaygpO2FkZERlYWxlckluc2lkZVNjcmlwdCgpfSk7ZnVuY3Rpb24gbW90b2luc2lnaHRTaG9wR29vZ2xlT3B0aW1pemUoKXskKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS5sZW5ndGgmJiQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiLCQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLnZhbCgpKX1mdW5jdGlvbiBodG1sVG9Ob2RlKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IuaW5uZXJIVE1MPWEudHJpbSgpO3JldHVybiBiLmZpcnN0RWxlbWVudENoaWxkfQpmdW5jdGlvbiBodG1sVG9Eb2N1bWVudEZyYWcoYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGEpfWZ1bmN0aW9uIGh0bWxUb0VsZW1lbnRzKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7Yi5pbm5lckhUTUw9YTtyZXR1cm4gYi5jb250ZW50LmNoaWxkTm9kZXN9CmNvbnN0IHZpZXdQb3J0T2JzZXJ2ZXI9ZnVuY3Rpb24oYSl7bGV0IGI9ITEsYz0hMSxkPTUwO2NvbnN0IGU9az0+e2s9a1swXTtsZXQgaD0uMDE+PWsuaW50ZXJzZWN0aW9uUmF0aW8mJmsuYm91bmRpbmdDbGllbnRSZWN0LnRvcDxkO2MuY2xhc3NMaXN0LnRvZ2dsZSgidG9wLWZpeGVkIixoKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc21zQ3RhQnRuIikuZm9yRWFjaChuPT5uLmhpZGRlbj0haCk7bnVsbCE9PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2FzdC1jb250YWluZXIiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2FzdC1jb250YWluZXIiKS5oaWRkZW49IWgpfTtyZXR1cm57b2JzZXJ2ZTooKT0+e2lmKGEpe2QrPWEub2Zmc2V0SGVpZ2h0KzE2O3ZhciBrPWEuY2xvc2VzdCgiLm9ic2VydmVkLXdyYXBwZXIiKXx8ITE7aWYoIWspe2xldCBoPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9ImZpeGVkLXdyYXBwZXIiPjwvZGl2PicpO2s9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0ib2JzZXJ2ZWQtd3JhcHBlciI+PC9kaXY+Jyk7CmEuYWZ0ZXIoayk7ay5hcHBlbmRDaGlsZChoKTtoLmFwcGVuZENoaWxkKGEpO2suc3R5bGUuaGVpZ2h0PWAke2gub2Zmc2V0SGVpZ2h0fXB4YH1iPWs7Yz1iLnF1ZXJ5U2VsZWN0b3IoIi5maXhlZC13cmFwcGVyIik7KG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlLHtyb290TWFyZ2luOmAtJHtkfXB4IDBweCAwcHggMHB4YCx0aHJlc2hvbGQ6WzAsLjAxXX0pKS5vYnNlcnZlKGIpfX19fTsKZnVuY3Rpb24gZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llcyhhKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZDJmYXZEYXRhIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZvcm1GaWxsRGF0YSIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpO3ZhciBiPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxjPWI7Yj1iLnJlcGxhY2UoInd3dy4iLCIiKTt2YXIgZD1iPWIucmVwbGFjZSgibS4iLCIiKTtiLmluY2x1ZGVzKCJkMmNtZWRpYS5jYSIpJiYoYj0iZDJjbWVkaWEuY2EiKTtmb3IodmFyIGU9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iiksaz0wO2s8ZS5sZW5ndGg7aysrKXt2YXIgaD1lW2tdLG49aC5pbmRleE9mKCI9Iik7aD0tMTxuP2guc3Vic3RyKDAsbik6aDsiZDJjX2Nvb2tpZV9jb25zZW50IiE9aC50cmltKCkmJiJPcHRhbm9uQWxlcnRCb3hDbG9zZWQiIT0KaC50cmltKCkmJiJPcHRhbm9uQ29uc2VudCIhPWgudHJpbSgpJiYoaD1oLnRyaW0oKSxkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS4iK2IrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrYisiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitjKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uIitkKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2QrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS5kMmNtZWRpYS5jYTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIiwKZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj1kMmNtZWRpYS5jYTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsY29uc29sZS5sb2coIkQyREMiLGgsYiksaz09cGFyc2VGbG9hdChlLmxlbmd0aCktMSYmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGEmJiQoIiNkMmNGb290ZXJDb29raWVEZWxldGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpLHNldFRpbWVvdXQoZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llc1JlZnJlc2gsMkUzKSkpfXJldHVybiEwfQpmdW5jdGlvbiBkMmNGb290ZXJEZWxldGVBbGxDb29raWVzUmVmcmVzaCgpe3dpbmRvdy50b3A9PT13aW5kb3cuc2VsZiYmbG9jYXRpb24ucmVsb2FkKCl9CndpbmRvdy5nb29nbGVSZWNhcHRjaGE9ZnVuY3Rpb24oKXt2YXIgYT17cG9saWN5U2l0ZUtleToiNkxjeDI4UXNBQUFBQUhwYlRid1NOY1FmbWgzajlwWTB6dEYxb0JVUiIsY2hlY2tib3hTaXRlS2V5OmpzX2QyY19nZXRfdmFsKCJJU1ZNIik\/IjZMZEFaTVlzQUFBQUFETjByTzN5WjM0b3NMQnVNNUdKR1dZQl9PZzkiOiI2TGVLZWNZc0FBQUFBQTBZYTdIVU1lRDE3N2Q2X1BzYmNtajA5Vm5GIixkZWZhdWx0QWN0aW9uOiJsZWFkX3N1Ym1pdCIsbG9hZGVkOiExLGNoZWNrYm94ZXM6e30sYWN0aXZlRm9ybUlkOm51bGwsaXNSZWFkeTpmdW5jdGlvbigpe3JldHVybiBhLmxvYWRlZCYmd2luZG93LmdyZWNhcHRjaGEmJndpbmRvdy5ncmVjYXB0Y2hhLmVudGVycHJpc2V9LGluaXQ6ZnVuY3Rpb24oKXtpZighYS5sb2FkZWQpdHJ5e3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Iuc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9lbnRlcnByaXNlLmpzP3JlbmRlcj0iKwphLnBvbGljeVNpdGVLZXk7Yi5hc3luYz0hMDtiLmRlZmVyPSEwO2Iub25sb2FkPWZ1bmN0aW9uKCl7YS5sb2FkZWQ9ITA7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImdyZWNhcHRjaGEuZDJjbG9hZGVkIikpfTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLGMpfWNhdGNoKGQpe2NvbnNvbGUubG9nKGQpfX0sdXNlQ2hlY2tib3g6ZnVuY3Rpb24oYixjKXt2YXIgZD17d2lkZ2V0SWQ6LTEsdG9rZW46IiIsYWN0aW9uOmN8fGEuZGVmYXVsdEFjdGlvbn07YS5jaGVja2JveGVzW2JdPWQ7YS5sb2FkZWR8fGEuaW5pdCgpO2M9ZnVuY3Rpb24oKXtpZighKC0xPGQud2lkZ2V0SWQpKWlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpKXRyeXtncmVjYXB0Y2hhLmVudGVycHJpc2UucmVhZHkoZnVuY3Rpb24oKXtkLndpZGdldElkPWdyZWNhcHRjaGEuZW50ZXJwcmlzZS5yZW5kZXIoYiwKe3NpdGVrZXk6YS5jaGVja2JveFNpdGVLZXksYWN0aW9uOmQuYWN0aW9uLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe2QudG9rZW49ZX0sImV4cGlyZWQtY2FsbGJhY2siOmZ1bmN0aW9uKCl7ZC50b2tlbj0iIn0sImVycm9yLWNhbGxiYWNrIjpmdW5jdGlvbigpe2QudG9rZW49IiJ9fSl9KX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX1lbHNlIGNvbnNvbGUubG9nKCJHUkMgY2hlY2tib3ggY29udGFpbmVyIG5vdCBmb3VuZDoiLGIpfTthLmlzUmVhZHkoKT9jKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ3JlY2FwdGNoYS5kMmNsb2FkZWQiLGMse29uY2U6ITB9KX0scmVzZXRDaGVja2JveDpmdW5jdGlvbihiKXsoYj9bYl06T2JqZWN0LmtleXMoYS5jaGVja2JveGVzKSkuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjPWEuY2hlY2tib3hlc1tjXSl7aWYoLTE8Yy53aWRnZXRJZCYmYS5pc1JlYWR5KCkpdHJ5e2dyZWNhcHRjaGEuZW50ZXJwcmlzZS5yZXNldChjLndpZGdldElkKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKX1jLnRva2VuPQoiIn19KX0saXNDaGVja2JveFNvbHZlZDpmdW5jdGlvbihiKXtiPWEuY2hlY2tib3hlc1tiXTtyZXR1cm4hKCFifHwhYi50b2tlbil9LGN1cnJlbnRDb250ZXh0OmZ1bmN0aW9uKCl7dmFyIGI9YS5hY3RpdmVGb3JtSWQ7cmV0dXJuKGI9Yj9hLmNoZWNrYm94ZXNbYl06bnVsbCk\/e21vZGU6ImNoZWNrYm94IixhY3Rpb246Yi5hY3Rpb24sdG9rZW46Yi50b2tlbn06e21vZGU6InBvbGljeSIsYWN0aW9uOmEuZGVmYXVsdEFjdGlvbix0b2tlbjoiIn19LGdldFJlc3BvbnNlOmZ1bmN0aW9uKGIpe3ZhciBjPSQuRGVmZXJyZWQoKSxkPWEuY3VycmVudENvbnRleHQoKTtpZigiY2hlY2tib3giPT09ZC5tb2RlKXJldHVybiBjLnJlc29sdmUoZC50b2tlbnx8IiIpLnByb21pc2UoKTtpZighYS5pc1JlYWR5KCkpcmV0dXJuIGMucmVzb2x2ZSgiIikucHJvbWlzZSgpO3ZhciBlPWJ8fGQuYWN0aW9uO3RyeXtncmVjYXB0Y2hhLmVudGVycHJpc2UucmVhZHkoZnVuY3Rpb24oKXtncmVjYXB0Y2hhLmVudGVycHJpc2UuZXhlY3V0ZShhLnBvbGljeVNpdGVLZXksCnthY3Rpb246ZX0pLnRoZW4oZnVuY3Rpb24oayl7Yy5yZXNvbHZlKGspfSkuY2F0Y2goZnVuY3Rpb24oayl7Y29uc29sZS5sb2coIkdSQyBGYWlsIixrKTtjLnJlc29sdmUoIiIpfSl9KX1jYXRjaChrKXtjb25zb2xlLmxvZyhrKSxjLnJlc29sdmUoIiIpfXJldHVybiBjfX07cmV0dXJuIGF9KCk7dHJ5e2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJnb29nbGVSZWNhcHRjaGEucmVhZHkiKSl9Y2F0Y2goYSl7fWZ1bmN0aW9uIGdldEx1eHVyeVRheEFtb3VudChhKXt2YXIgYj0wOzFFNTxhJiYoYj0uMSphLGE9LjIqKGEtMUU1KSxiPWI8YT9iOmEpO3JldHVybiBNYXRoLnJvdW5kKGIpfQp2YXIgd29yZHM9W10scGFydCx3b3JkSW5kZXg9MCxvZmZzZXQ9MCxsZW49MSxmb3J3YXJkcz0hMCxza2lwX2NvdW50PTAsc2tpcF9kZWxheT0xNSxzcGVlZD03MCx3b3JkZmxpY2s9ZnVuY3Rpb24oYSxiKXt3b3Jkcz1hO2xlbj13b3Jkcy5sZW5ndGg7c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtmb3J3YXJkcz9vZmZzZXQ+PXdvcmRzW3dvcmRJbmRleF0ubGVuZ3RoJiYoKytza2lwX2NvdW50LHNraXBfY291bnQ9PXNraXBfZGVsYXkmJihmb3J3YXJkcz0hMSxza2lwX2NvdW50PTApKTowPT1vZmZzZXQmJihmb3J3YXJkcz0hMCx3b3JkSW5kZXgrKyxvZmZzZXQ9MCx3b3JkSW5kZXg+PWxlbiYmKHdvcmRJbmRleD0wKSk7cGFydD13b3Jkc1t3b3JkSW5kZXhdLnN1YnN0cigwLG9mZnNldCk7MD09c2tpcF9jb3VudCYmKGZvcndhcmRzP29mZnNldCsrOm9mZnNldC0tKTtiLnRleHQocGFydCl9LHNwZWVkKX07CmZ1bmN0aW9uIGlzSW5WaWV3cG9ydChhLGIpe2I9dm9pZCAwPT09Yj97fTpiO2E9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgYz1pc051bWVyaWMoYi50b3ApP2IudG9wOjA7Yj1pc051bWVyaWMoYi5sZWZ0KT9iLmxlZnQ6MDtyZXR1cm4gTWF0aC5mbG9vcihhLnRvcCk+PWMmJk1hdGguZmxvb3IoYS5sZWZ0KT49YiYmTWF0aC5mbG9vcihhLmJvdHRvbSk8PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZNYXRoLmZsb29yKGEucmlnaHQpPD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl9ZnVuY3Rpb24gaXNOdW1lcmljKGEpe3JldHVybi9eLT9cZCskL2cudGVzdChhKX0KZG9jUmVhZHlBcnIucHVzaCgoKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPSJidXR0b24iXScpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYj0+e2NvbnN0IGM9dm9pZCAwIT09Yi5rZXk\/Yi5rZXk6Yi5rZXlDb2RlO2lmKCJFbnRlciI9PT1jfHwxMz09PWMpYi5wcmV2ZW50RGVmYXVsdCgpLGEuY2xpY2soKX0pfSl9KTsKKCgpPT57bGV0IGE9ZG9jdW1lbnQuY29va2llLGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihEb2N1bWVudC5wcm90b3R5cGUsImNvb2tpZSIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudC5wcm90b3R5cGUsIl9jb29raWUiLGIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudC5wcm90b3R5cGUsImNvb2tpZSIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiB0aGlzLl9jb29raWV9LHNldChjKXt2YXIgZD1jLnRyaW0oKS5zcGxpdCgiOyIpO2xldCBlPXt9O3ZhciBrPTA7Zm9yKGggb2YgZClkPWgudHJpbSgpLnNwbGl0KCI9IiksMD09az8oZS5uYW1lPWRbMF0sZS52YWx1ZT1kWzFdfHwwKToiIiE9ZFswXSYmKGVbZFswXV09ZFsxXXx8MCksaysrO2s9ZS5uYW1lO3ZhciBoPWUuZXhwaXJlc3x8MDtkPWUucGF0aHx8Ii8iO2xldCBuPWUuZG9tYWlufHwiIjtlLnZhbHVlJiYiIiE9ZS52YWx1ZSYmbnVsbCE9ZS52YWx1ZSYmCndpbmRvdy5Db29raWVMb2dnZXIubG9nKGssZS52YWx1ZSxoLGQsbik7Yz10aGlzLl9jb29raWU9YztpZihjIT09YSl0cnl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29va2llY2hhbmdlIix7ZGV0YWlsOntvbGRWYWx1ZTphLG5ld1ZhbHVlOmN9fSkpfWZpbmFsbHl7YT1jfX19KX0pKCk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e3ZhciBhPW51bGw7aWYod2luZG93LmxvY2F0aW9uLmhhc2gpe3RyeXthPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZGVjb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5oYXNoKSl9Y2F0Y2goYil7cmV0dXJufWEmJihhPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5zY3JvbGxZLHdpbmRvdy5zY3JvbGxUbyh7dG9wOmEtMjAsYmVoYXZpb3I6InNtb290aCJ9KSl9fSk7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7ZGVidWcoe2NvbGxlY3Q6Y30pO2M9Yy5uZXdVUkw\/bmV3IFVSTChjLm5ld1VSTCk6d2luZG93LmxvY2F0aW9uOyIiIT09Yy5oYXNoJiZjLmhhc2guc3Vic3RyaW5nKDEpLnNwbGl0KCImIikubWFwKGZ1bmN0aW9uKGQsZSxrKXt0cnl7dmFyIFtoLG5dPWQuc3BsaXQoIj0iKTtzd2l0Y2goaCl7Y2FzZSAidXRtX2UiOnZhciB4PWF0b2Iobikuc3BsaXQoIjo6Iiksdj1udWxsIT1nZXRDb29raWUoInV0bV9jYW1wYWlnbiIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvb2tpZSgidXRtX2NhbXBhaWduIik\/Z2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKTp4WzJdO3YmJnNldENvb2tpZSgidXRtX2NhbXBhaWduIix2LDE4MCk7dmFyIGY9bnVsbCE9Z2V0Q29va2llKCJ1dG1fc291cmNlIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29va2llKCJ1dG1fc291cmNlIik\/Z2V0Q29va2llKCJ1dG1fc291cmNlIik6eFszXTtmJiZzZXRDb29raWUoInV0bV9zb3VyY2UiLApmLDE4MCk7YnJlYWs7Y2FzZSAidXRtX2V4Ijp4PWF0b2Iobik7dmFyIGc9bmV3IFVSTCgiaHR0cHM6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3gpOzA8Zy5zZWFyY2hQYXJhbXMuc2l6ZSYmZy5zZWFyY2hQYXJhbXMuZm9yRWFjaChiKX1yZXR1cm57a2V5OmgsdmFsdWU6bn19Y2F0Y2gobSl7ZGVidWcobSl9fSl9ZnVuY3Rpb24gYihjLGQpe3RyeXtzd2l0Y2goZCl7Y2FzZSAiRGlzcGxheVNvdXJjZSI6Y2FzZSAiZ2NsaWQiOmRlYnVnKHtrZXk6ZCxjb29raWU6Z2V0Q29va2llKGQpLHZhbHVlOmN9KSxudWxsIT1nZXRDb29raWUoZCkmJiIiIT1nZXRDb29raWUoZCl8fHNldENvb2tpZShkLGMsMTgwKX19Y2F0Y2goZSl7ZGVidWcoZSl9fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixhLCExKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYSwhMSl9KSgpOzA+PSQoIiNzaGFyZU9uRmFjZWJvb2siKS5sZW5ndGgmJiQoImZvb3RlciIpLnByZXBlbmQoJzxkaXYgaWQ9InNoYXJlT25GYWNlYm9vayIgZGF0YS1leHBsYWluPSJob25kYS9hY3VyYSBjZXJ0IHVzZXMgZ3RtLCBpdCBoYXMgYSBiaW5kIHRoYXQgdGhyb3dzIGFuIGVycm9yIGlmIHRoaXMgaWQgZG9lcyBub3QgZXhpc3QuIGNvZGUgaXMgZnJvbSBndG0gc2lkZS4iPjwvZGl2PicpOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5jb29raWUpe2xldCBjO3ZhciBiPW51bGwhPShjPSQuY29va2llKCJUZXJ0aWFyeVNvdXJjZSIpKT9jOiIiOyIiIT09YiYmKCQoJypbaHJlZio9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJocmVmIiwkKHRoaXMpLmF0dHIoImhyZWYiKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsYikpfSksJCgnKltvbmNsaWNrKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoIm9uY2xpY2siLCQodGhpcykuYXR0cigib25jbGljayIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIixiKSl9KSwkKCcqW3ZhbHVlKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInZhbHVlIiwkKHRoaXMpLmF0dHIoInZhbHVlIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLApiKSl9KSl9fWEoKTtzZXRUaW1lb3V0KGEsMUUzKTtzZXRUaW1lb3V0KGEsNUUzKTswPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpJiYoJCgiLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSBhLmJ0biA+IHNwYW4iKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiKS5jc3MoInRvcCIsIjUyJSIpKX0pKCk7CmZ1bmN0aW9uIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaWQqPSJlbWFpbEJvZHlEZWYiXSwgW2lkKj0iZW1haWxTdWJqZWN0RGVmIl0sIFtjbGFzcyo9ImVtYWlsU3ViamVjdCJdLCBbY2xhc3MqPSJlbWFpbEJvZHkiXSwgW2NsYXNzKj0ibGVhZEVtYWlsIl0sIFtjbGFzcyo9ImVtYWlsLWRlZmluaXRpb24iXScpLmZvckVhY2goYT0+e2Euc2V0QXR0cmlidXRlKCJ0cmFuc2xhdGUiLCJubyIpfSl9YWRkTm9UcmFuc2xhdGVFbWFpbERlZigpO2Z1bmN0aW9uIHZ3cygpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS12d3MiLGAke3dpbmRvdy5pbm5lcldpZHRoLzEwMC0od2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKS8xMDAvMn1weGApfXZ3cygpO2xldCByb192d3M9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dndzKCl9KTtyb192d3Mub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTsKLyoqIC9qcy9sYXp5c2l6ZXMubWluLmpzICoqLwovKiEgbGF6eXNpemVzIC0gdjQuMS41ICovCi8qISBtb2RpZmllZDogb2xpdmllckBkMmNtZWRpYS5jYSB0byBzdXBwb3J0IGRhdGEtaW1nc3JjIGJlY2F1c2Ugb2Ygb25lVHJ1c3QgYnJlYWtzIGxhenlsb2FkIG9uIGRhdGEtc3JjICovCiFmdW5jdGlvbihhLGIpe3ZhciBjPWIoYSxhLmRvY3VtZW50KTthLmxhenlTaXplcz1jLCJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cyYmKG1vZHVsZS5leHBvcnRzPWMpfSh3aW5kb3csZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7aWYoYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXt2YXIgYyxkLGU9Yi5kb2N1bWVudEVsZW1lbnQsZj1hLkRhdGUsZz1hLkhUTUxQaWN0dXJlRWxlbWVudCxoPSJhZGRFdmVudExpc3RlbmVyIixpPSJnZXRBdHRyaWJ1dGUiLGo9YVtoXSxrPWEuc2V0VGltZW91dCxsPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxrLG09YS5yZXF1ZXN0SWRsZUNhbGxiYWNrLG49L15waWN0dXJlJC9pLG89WyJsb2FkIiwiZXJyb3IiLCJsYXp5aW5jbHVkZWQiLCJfbGF6eWxvYWRlZCJdLHA9e30scT1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCxyPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHBbYl18fChwW2JdPW5ldyBSZWdFeHAoIihcXHN8XikiK2IrIihcXHN8JCkiKSkscFtiXS50ZXN0KGFbaV0oImNsYXNzIil8fCIiKSYmcFtiXX0scz1mdW5jdGlvbihhLGIpe3IoYSxiKXx8YS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwoYVtpXSgiY2xhc3MiKXx8IiIpLnRyaW0oKSsiICIrYil9LHQ9ZnVuY3Rpb24oYSxiKXt2YXIgYzsoYz1yKGEsYikpJiZhLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChhW2ldKCJjbGFzcyIpfHwiIikucmVwbGFjZShjLCIgIikpfSx1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jP2g6InJlbW92ZUV2ZW50TGlzdGVuZXIiO2MmJnUoYSxiKSxvLmZvckVhY2goZnVuY3Rpb24oYyl7YVtkXShjLGIpfSl9LHY9ZnVuY3Rpb24oYSxkLGUsZixnKXt2YXIgaD1iLmNyZWF0ZUV2ZW50KCJFdmVudCIpO3JldHVybiBlfHwoZT17fSksZS5pbnN0YW5jZT1jLGguaW5pdEV2ZW50KGQsIWYsIWcpLGguZGV0YWlsPWUsYS5kaXNwYXRjaEV2ZW50KGgpLGh9LHc9ZnVuY3Rpb24oYixjKXt2YXIgZTshZyYmKGU9YS5waWN0dXJlZmlsbHx8ZC5wZik\/KGMmJmMuc3JjJiYhYltpXSgic3Jjc2V0IikmJmIuc2V0QXR0cmlidXRlKCJzcmNzZXQiLGMuc3JjKSxlKHtyZWV2YWx1YXRlOiEwLGVsZW1lbnRzOltiXX0pKTpjJiZjLnNyYyYmKGIuc3JjPWMuc3JjKX0seD1mdW5jdGlvbihhLGIpe3JldHVybihnZXRDb21wdXRlZFN0eWxlKGEsbnVsbCl8fHt9KVtiXX0seT1mdW5jdGlvbihhLGIsYyl7Zm9yKGM9Y3x8YS5vZmZzZXRXaWR0aDtjPGQubWluU2l6ZSYmYiYmIWEuX2xhenlzaXplc1dpZHRoOyljPWIub2Zmc2V0V2lkdGgsYj1iLnBhcmVudE5vZGU7cmV0dXJuIGN9LHo9ZnVuY3Rpb24oKXt2YXIgYSxjLGQ9W10sZT1bXSxmPWQsZz1mdW5jdGlvbigpe3ZhciBiPWY7Zm9yKGY9ZC5sZW5ndGg\/ZTpkLGE9ITAsYz0hMTtiLmxlbmd0aDspYi5zaGlmdCgpKCk7YT0hMX0saD1mdW5jdGlvbihkLGUpe2EmJiFlP2QuYXBwbHkodGhpcyxhcmd1bWVudHMpOihmLnB1c2goZCksY3x8KGM9ITAsKGIuaGlkZGVuP2s6bCkoZykpKX07cmV0dXJuIGguX2xzRmx1c2g9ZyxofSgpLEE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9mdW5jdGlvbigpe3ooYSl9OmZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPWFyZ3VtZW50czt6KGZ1bmN0aW9uKCl7YS5hcHBseShiLGMpfSl9fSxCPWZ1bmN0aW9uKGEpe3ZhciBiLGM9MCxlPWQudGhyb3R0bGVEZWxheSxnPWQucmljVGltZW91dCxoPWZ1bmN0aW9uKCl7Yj0hMSxjPWYubm93KCksYSgpfSxpPW0mJmc+NDk\/ZnVuY3Rpb24oKXttKGgse3RpbWVvdXQ6Z30pLGchPT1kLnJpY1RpbWVvdXQmJihnPWQucmljVGltZW91dCl9OkEoZnVuY3Rpb24oKXtrKGgpfSwhMCk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBkOyhhPSEwPT09YSkmJihnPTMzKSxifHwoYj0hMCxkPWUtKGYubm93KCktYyksZDwwJiYoZD0wKSxhfHxkPDk\/aSgpOmsoaSxkKSl9fSxDPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZD05OSxlPWZ1bmN0aW9uKCl7Yj1udWxsLGEoKX0sZz1mdW5jdGlvbigpe3ZhciBhPWYubm93KCktYzthPGQ\/ayhnLGQtYSk6KG18fGUpKGUpfTtyZXR1cm4gZnVuY3Rpb24oKXtjPWYubm93KCksYnx8KGI9ayhnLGQpKX19OyFmdW5jdGlvbigpe3ZhciBiLGM9e2xhenlDbGFzczoibGF6eWxvYWQiLGxvYWRlZENsYXNzOiJsYXp5bG9hZGVkIixsb2FkaW5nQ2xhc3M6Imxhenlsb2FkaW5nIixwcmVsb2FkQ2xhc3M6ImxhenlwcmVsb2FkIixlcnJvckNsYXNzOiJsYXp5ZXJyb3IiLGF1dG9zaXplc0NsYXNzOiJsYXp5YXV0b3NpemVzIixzcmNBdHRyOiJkYXRhLWltZ3NyYyIsc3Jjc2V0QXR0cjoiZGF0YS1zcmNzZXQiLHNpemVzQXR0cjoiZGF0YS1zaXplcyIsbWluU2l6ZTo0MCxjdXN0b21NZWRpYTp7fSxpbml0OiEwLGV4cEZhY3RvcjoxLjUsaEZhYzouOCxsb2FkTW9kZToyLGxvYWRIaWRkZW46ITAscmljVGltZW91dDowLHRocm90dGxlRGVsYXk6MTI1fTtkPWEubGF6eVNpemVzQ29uZmlnfHxhLmxhenlzaXplc0NvbmZpZ3x8e307Zm9yKGIgaW4gYyliIGluIGR8fChkW2JdPWNbYl0pO2EubGF6eVNpemVzQ29uZmlnPWQsayhmdW5jdGlvbigpe2QuaW5pdCYmRigpfSl9KCk7dmFyIEQ9ZnVuY3Rpb24oKXt2YXIgZyxsLG0sbyxwLHksRCxGLEcsSCxJLEosSyxMLE09L15pbWckL2ksTj0vXmlmcmFtZSQvaSxPPSJvbnNjcm9sbCJpbiBhJiYhLyhnbGV8aW5nKWJvdC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxQPTAsUT0wLFI9MCxTPS0xLFQ9ZnVuY3Rpb24oYSl7Ui0tLGEmJmEudGFyZ2V0JiZ1KGEudGFyZ2V0LFQpLCghYXx8UjwwfHwhYS50YXJnZXQpJiYoUj0wKX0sVT1mdW5jdGlvbihhLGMpe3ZhciBkLGY9YSxnPSJoaWRkZW4iPT14KGIuYm9keSwidmlzaWJpbGl0eSIpfHwiaGlkZGVuIiE9eChhLnBhcmVudE5vZGUsInZpc2liaWxpdHkiKSYmImhpZGRlbiIhPXgoYSwidmlzaWJpbGl0eSIpO2ZvcihGLT1jLEkrPWMsRy09YyxIKz1jO2cmJihmPWYub2Zmc2V0UGFyZW50KSYmZiE9Yi5ib2R5JiZmIT1lOykoZz0oeChmLCJvcGFjaXR5Iil8fDEpPjApJiYidmlzaWJsZSIhPXgoZiwib3ZlcmZsb3ciKSYmKGQ9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnPUg+ZC5sZWZ0JiZHPGQucmlnaHQmJkk+ZC50b3AtMSYmRjxkLmJvdHRvbSsxKTtyZXR1cm4gZ30sVj1mdW5jdGlvbigpe3ZhciBhLGYsaCxqLGssbSxuLHAscSxyPWMuZWxlbWVudHM7aWYoKG89ZC5sb2FkTW9kZSkmJlI8OCYmKGE9ci5sZW5ndGgpKXtmPTAsUysrLG51bGw9PUsmJigiZXhwYW5kImluIGR8fChkLmV4cGFuZD1lLmNsaWVudEhlaWdodD41MDAmJmUuY2xpZW50V2lkdGg+NTAwPzUwMDozNzApLEo9ZC5leHBhbmQsSz1KKmQuZXhwRmFjdG9yKSxRPEsmJlI8MSYmUz4yJiZvPjImJiFiLmhpZGRlbj8oUT1LLFM9MCk6UT1vPjEmJlM+MSYmUjw2P0o6UDtmb3IoO2Y8YTtmKyspaWYocltmXSYmIXJbZl0uX2xhenlSYWNlKWlmKE8paWYoKHA9cltmXVtpXSgiZGF0YS1leHBhbmQiKSkmJihtPTEqcCl8fChtPVEpLHEhPT1tJiYoeT1pbm5lcldpZHRoK20qTCxEPWlubmVySGVpZ2h0K20sbj0tMSptLHE9bSksaD1yW2ZdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLChJPWguYm90dG9tKT49biYmKEY9aC50b3ApPD1EJiYoSD1oLnJpZ2h0KT49bipMJiYoRz1oLmxlZnQpPD15JiYoSXx8SHx8R3x8RikmJihkLmxvYWRIaWRkZW58fCJoaWRkZW4iIT14KHJbZl0sInZpc2liaWxpdHkiKSkmJihsJiZSPDMmJiFwJiYobzwzfHxTPDQpfHxVKHJbZl0sbSkpKXtpZihiYShyW2ZdKSxrPSEwLFI+OSlicmVha31lbHNlIWsmJmwmJiFqJiZSPDQmJlM8NCYmbz4yJiYoZ1swXXx8ZC5wcmVsb2FkQWZ0ZXJMb2FkKSYmKGdbMF18fCFwJiYoSXx8SHx8R3x8Rnx8ImF1dG8iIT1yW2ZdW2ldKGQuc2l6ZXNBdHRyKSkpJiYoaj1nWzBdfHxyW2ZdKTtlbHNlIGJhKHJbZl0pO2omJiFrJiZiYShqKX19LFc9QihWKSxYPWZ1bmN0aW9uKGEpe3MoYS50YXJnZXQsZC5sb2FkZWRDbGFzcyksdChhLnRhcmdldCxkLmxvYWRpbmdDbGFzcyksdShhLnRhcmdldCxaKSx2KGEudGFyZ2V0LCJsYXp5bG9hZGVkIil9LFk9QShYKSxaPWZ1bmN0aW9uKGEpe1koe3RhcmdldDphLnRhcmdldH0pfSwkPWZ1bmN0aW9uKGEsYil7dHJ5e2EuY29udGVudFdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGIpfWNhdGNoKGMpe2Euc3JjPWJ9fSxfPWZ1bmN0aW9uKGEpe3ZhciBiLGM9YVtpXShkLnNyY3NldEF0dHIpOyhiPWQuY3VzdG9tTWVkaWFbYVtpXSgiZGF0YS1tZWRpYSIpfHxhW2ldKCJtZWRpYSIpXSkmJmEuc2V0QXR0cmlidXRlKCJtZWRpYSIsYiksYyYmYS5zZXRBdHRyaWJ1dGUoInNyY3NldCIsYyl9LGFhPUEoZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLGosbCxvLHA7KG89dihhLCJsYXp5YmVmb3JldW52ZWlsIixiKSkuZGVmYXVsdFByZXZlbnRlZHx8KGUmJihjP3MoYSxkLmF1dG9zaXplc0NsYXNzKTphLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGUpKSxoPWFbaV0oZC5zcmNzZXRBdHRyKSxnPWFbaV0oZC5zcmNBdHRyKSxmJiYoaj1hLnBhcmVudE5vZGUsbD1qJiZuLnRlc3Qoai5ub2RlTmFtZXx8IiIpKSxwPWIuZmlyZXNMb2FkfHwic3JjImluIGEmJihofHxnfHxsKSxvPXt0YXJnZXQ6YX0scCYmKHUoYSxULCEwKSxjbGVhclRpbWVvdXQobSksbT1rKFQsMjUwMCkscyhhLGQubG9hZGluZ0NsYXNzKSx1KGEsWiwhMCkpLGwmJnEuY2FsbChqLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzb3VyY2UiKSxfKSxoP2Euc2V0QXR0cmlidXRlKCJzcmNzZXQiLGgpOmcmJiFsJiYoTi50ZXN0KGEubm9kZU5hbWUpPyQoYSxnKTphLnNyYz1nKSxmJiYoaHx8bCkmJncoYSx7c3JjOmd9KSksYS5fbGF6eVJhY2UmJmRlbGV0ZSBhLl9sYXp5UmFjZSx0KGEsZC5sYXp5Q2xhc3MpLHooZnVuY3Rpb24oKXsoIXB8fGEuY29tcGxldGUmJmEubmF0dXJhbFdpZHRoPjEpJiYocD9UKG8pOlItLSxYKG8pKX0sITApfSksYmE9ZnVuY3Rpb24oYSl7dmFyIGIsYz1NLnRlc3QoYS5ub2RlTmFtZSksZT1jJiYoYVtpXShkLnNpemVzQXR0cil8fGFbaV0oInNpemVzIikpLGY9ImF1dG8iPT1lOyghZiYmbHx8IWN8fCFhW2ldKCJzcmMiKSYmIWEuc3Jjc2V0fHxhLmNvbXBsZXRlfHxyKGEsZC5lcnJvckNsYXNzKXx8IXIoYSxkLmxhenlDbGFzcykpJiYoYj12KGEsImxhenl1bnZlaWxyZWFkIikuZGV0YWlsLGYmJkUudXBkYXRlRWxlbShhLCEwLGEub2Zmc2V0V2lkdGgpLGEuX2xhenlSYWNlPSEwLFIrKyxhYShhLGIsZixlLGMpKX0sY2E9ZnVuY3Rpb24oKXtpZighbCl7aWYoZi5ub3coKS1wPDk5OSlyZXR1cm4gdm9pZCBrKGNhLDk5OSk7dmFyIGE9QyhmdW5jdGlvbigpe2QubG9hZE1vZGU9MyxXKCl9KTtsPSEwLGQubG9hZE1vZGU9MyxXKCksaigic2Nyb2xsIixmdW5jdGlvbigpezM9PWQubG9hZE1vZGUmJihkLmxvYWRNb2RlPTIpLGEoKX0sITApfX07cmV0dXJue186ZnVuY3Rpb24oKXtwPWYubm93KCksYy5lbGVtZW50cz1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5sYXp5Q2xhc3MpLGc9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQubGF6eUNsYXNzKyIgIitkLnByZWxvYWRDbGFzcyksTD1kLmhGYWMsaigic2Nyb2xsIixXLCEwKSxqKCJyZXNpemUiLFcsITApLGEuTXV0YXRpb25PYnNlcnZlcj9uZXcgTXV0YXRpb25PYnNlcnZlcihXKS5vYnNlcnZlKGUse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITB9KTooZVtoXSgiRE9NTm9kZUluc2VydGVkIixXLCEwKSxlW2hdKCJET01BdHRyTW9kaWZpZWQiLFcsITApLHNldEludGVydmFsKFcsOTk5KSksaigiaGFzaGNoYW5nZSIsVywhMCksWyJmb2N1cyIsIm1vdXNlb3ZlciIsImNsaWNrIiwibG9hZCIsInRyYW5zaXRpb25lbmQiLCJhbmltYXRpb25lbmQiLCJ3ZWJraXRBbmltYXRpb25FbmQiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2JbaF0oYSxXLCEwKX0pLC9kJHxeYy8udGVzdChiLnJlYWR5U3RhdGUpP2NhKCk6KGooImxvYWQiLGNhKSxiW2hdKCJET01Db250ZW50TG9hZGVkIixXKSxrKGNhLDJlNCkpLGMuZWxlbWVudHMubGVuZ3RoPyhWKCksei5fbHNGbHVzaCgpKTpXKCl9LGNoZWNrRWxlbXM6Vyx1bnZlaWw6YmF9fSgpLEU9ZnVuY3Rpb24oKXt2YXIgYSxjPUEoZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnO2lmKGEuX2xhenlzaXplc1dpZHRoPWQsZCs9InB4IixhLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGQpLG4udGVzdChiLm5vZGVOYW1lfHwiIikpZm9yKGU9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic291cmNlIiksZj0wLGc9ZS5sZW5ndGg7ZjxnO2YrKyllW2ZdLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGQpO2MuZGV0YWlsLmRhdGFBdHRyfHx3KGEsYy5kZXRhaWwpfSksZT1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZj1hLnBhcmVudE5vZGU7ZiYmKGQ9eShhLGYsZCksZT12KGEsImxhenliZWZvcmVzaXplcyIse3dpZHRoOmQsZGF0YUF0dHI6ISFifSksZS5kZWZhdWx0UHJldmVudGVkfHwoZD1lLmRldGFpbC53aWR0aCkmJmQhPT1hLl9sYXp5c2l6ZXNXaWR0aCYmYyhhLGYsZSxkKSl9LGY9ZnVuY3Rpb24oKXt2YXIgYixjPWEubGVuZ3RoO2lmKGMpZm9yKGI9MDtiPGM7YisrKWUoYVtiXSl9LGc9QyhmKTtyZXR1cm57XzpmdW5jdGlvbigpe2E9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQuYXV0b3NpemVzQ2xhc3MpLGooInJlc2l6ZSIsZyl9LGNoZWNrRWxlbXM6Zyx1cGRhdGVFbGVtOmV9fSgpLEY9ZnVuY3Rpb24oKXtGLml8fChGLmk9ITAsRS5fKCksRC5fKCkpfTtyZXR1cm4gYz17Y2ZnOmQsYXV0b1NpemVyOkUsbG9hZGVyOkQsaW5pdDpGLHVQOncsYUM6cyxyQzp0LGhDOnIsZmlyZTp2LGdXOnksckFGOnp9fX0pOwovKkVPRiovOwovKiogL2pzL3ZhbmlsbGFqcy9kckRpc2NsYWltZXJKUy5qcyAqKi8KdmFyIF9fX2QyY19kckRpc2NsYWltZXJKU2pzX2Nfb249IjIwMjYtMDUtMDUgMTM6MzA6MDgiOyd1c2Ugc3RyaWN0JztkckRpc2NsYWltZXJKUz17bWFuYWdlRGlzY2xhaW1lckRpdnMoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYT0+eyhhPWEudGFyZ2V0LmNsb3Nlc3QoIi5kaXNjbGFpbWVyc1N1cGVyc2NyaXB0cywgLmNsb3NlRFJEaXNjbGFpbWVyRHJhd2VyLCAjZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikpJiYoYS5jbGFzc0xpc3QuY29udGFpbnMoImNsb3NlRFJEaXNjbGFpbWVyRHJhd2VyIik\/ZHJEaXNjbGFpbWVySlMuY2xvc2VDdXJyZW50T3BlbmVkRGlzY2xhaW1lckRpdihhLmRhdGFzZXQuZGlzY2xhaW1lckRpdmlkKTphLmNsYXNzTGlzdC5jb250YWlucygiZHJWaWV3RGlzY2xhaW1lckxpbmsiKT9kckRpc2NsYWltZXJKUy5vcGVuRGlzY2xhaW1lckRpdigiZHJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciIpOmRyRGlzY2xhaW1lckpTLm9wZW5EaXNjbGFpbWVyRGl2KGEuZGF0YXNldC5kaXNjbGFpbWVyRGl2aWQpKX0pfSxvcGVuRGlzY2xhaW1lckRpdjpmdW5jdGlvbihhKXtkckRpc2NsYWltZXJKUy5jbG9zZUFsbE9wZW5EaXNjbGFpbWVyRGl2cygpOwpkckRpc2NsYWltZXJKUy5jbG9zZUZpbmFuY2VEaXNjbGFtZXJEaXYoKTtpZihhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKWEuY2xhc3NMaXN0LmFkZCgib3BlbiIpLGEuc3R5bGUuZGlzcGxheT0iYmxvY2sifSxjbG9zZUN1cnJlbnRPcGVuZWREaXNjbGFpbWVyRGl2OmZ1bmN0aW9uKGEpe2lmKGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7YX1gKSlhLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKSxhLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxjbG9zZUFsbE9wZW5EaXNjbGFpbWVyRGl2czpmdW5jdGlvbigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdltkYXRhLWRpc2NsYWltZXItaWRdLm9wZW4iKS5mb3JFYWNoKGE9PntkckRpc2NsYWltZXJKUy5jbG9zZUN1cnJlbnRPcGVuZWREaXNjbGFpbWVyRGl2KGEuaWQpfSl9LGNsb3NlRmluYW5jZURpc2NsYW1lckRpdjpmdW5jdGlvbigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5kckRpc2NsYWltZXJEcmF3ZXIub3BlbiIpLmZvckVhY2goYT0+CnthLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKTthLnN0eWxlLmRpc3BsYXk9Im5vbmUifSl9fTtkb2NSZWFkeUFyci5wdXNoKCgpPT57ZHJEaXNjbGFpbWVySlMubWFuYWdlRGlzY2xhaW1lckRpdnMoKX0pOwovKiogL2pzL2pxdWVyeS11aS1mYWN0b3J5LzEuMTMuMi9qcXVlcnktdWkubWluLmpzICoqLwovKiEgalF1ZXJ5IFVJIC0gdjEuMTMuMiAtIDIwMjQtMDMtMTIKKiBodHRwOi8vanF1ZXJ5dWkuY29tCiogSW5jbHVkZXM6IHdpZGdldC5qcywganF1ZXJ5LXBhdGNoLmpzLCBrZXljb2RlLmpzLCB1bmlxdWUtaWQuanMsIHdpZGdldHMvYWNjb3JkaW9uLmpzLCB3aWRnZXRzL21vdXNlLmpzLCB3aWRnZXRzL3NsaWRlci5qcywgZWZmZWN0LmpzCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLwoKIWZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGUpOmUoalF1ZXJ5KX0oZnVuY3Rpb24odSl7InVzZSBzdHJpY3QiO3UudWk9dS51aXx8e307dS51aS52ZXJzaW9uPSIxLjEzLjIiO3ZhciBuLGk9MCxvPUFycmF5LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxyPUFycmF5LnByb3RvdHlwZS5zbGljZTt1LmNsZWFuRGF0YT0obj11LmNsZWFuRGF0YSxmdW5jdGlvbihlKXtmb3IodmFyIHQsaSxzPTA7bnVsbCE9KGk9ZVtzXSk7cysrKSh0PXUuX2RhdGEoaSwiZXZlbnRzIikpJiZ0LnJlbW92ZSYmdShpKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIik7bihlKX0pLHUud2lkZ2V0PWZ1bmN0aW9uKGUsaSx0KXt2YXIgcyxuLGEsbz17fSxyPWUuc3BsaXQoIi4iKVswXSxoPXIrIi0iKyhlPWUuc3BsaXQoIi4iKVsxXSk7cmV0dXJuIHR8fCh0PWksaT11LldpZGdldCksQXJyYXkuaXNBcnJheSh0KSYmKHQ9dS5leHRlbmQuYXBwbHkobnVsbCxbe31dLmNvbmNhdCh0KSkpLHUuZXhwci5wc2V1ZG9zW2gudG9Mb3dlckNhc2UoKV09ZnVuY3Rpb24oZSl7cmV0dXJuISF1LmRhdGEoZSxoKX0sdVtyXT11W3JdfHx7fSxzPXVbcl1bZV0sbj11W3JdW2VdPWZ1bmN0aW9uKGUsdCl7aWYoIXRoaXN8fCF0aGlzLl9jcmVhdGVXaWRnZXQpcmV0dXJuIG5ldyBuKGUsdCk7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGUsdCl9LHUuZXh0ZW5kKG4scyx7dmVyc2lvbjp0LnZlcnNpb24sX3Byb3RvOnUuZXh0ZW5kKHt9LHQpLF9jaGlsZENvbnN0cnVjdG9yczpbXX0pLChhPW5ldyBpKS5vcHRpb25zPXUud2lkZ2V0LmV4dGVuZCh7fSxhLm9wdGlvbnMpLHUuZWFjaCh0LGZ1bmN0aW9uKHQscyl7ZnVuY3Rpb24gbigpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxlKX1vW3RdPSJmdW5jdGlvbiI9PXR5cGVvZiBzP2Z1bmN0aW9uKCl7dmFyIGUsdD10aGlzLl9zdXBlcixpPXRoaXMuX3N1cGVyQXBwbHk7cmV0dXJuIHRoaXMuX3N1cGVyPW4sdGhpcy5fc3VwZXJBcHBseT1hLGU9cy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fc3VwZXI9dCx0aGlzLl9zdXBlckFwcGx5PWksZX06c30pLG4ucHJvdG90eXBlPXUud2lkZ2V0LmV4dGVuZChhLHt3aWRnZXRFdmVudFByZWZpeDpzJiZhLndpZGdldEV2ZW50UHJlZml4fHxlfSxvLHtjb25zdHJ1Y3RvcjpuLG5hbWVzcGFjZTpyLHdpZGdldE5hbWU6ZSx3aWRnZXRGdWxsTmFtZTpofSkscz8odS5lYWNoKHMuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKGUsdCl7dmFyIGk9dC5wcm90b3R5cGU7dS53aWRnZXQoaS5uYW1lc3BhY2UrIi4iK2kud2lkZ2V0TmFtZSxuLHQuX3Byb3RvKX0pLGRlbGV0ZSBzLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChuKSx1LndpZGdldC5icmlkZ2UoZSxuKSxufSx1LndpZGdldC5leHRlbmQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGkscz1yLmNhbGwoYXJndW1lbnRzLDEpLG49MCxhPXMubGVuZ3RoO248YTtuKyspZm9yKHQgaW4gc1tuXSlpPXNbbl1bdF0sby5jYWxsKHNbbl0sdCkmJnZvaWQgMCE9PWkmJih1LmlzUGxhaW5PYmplY3QoaSk\/ZVt0XT11LmlzUGxhaW5PYmplY3QoZVt0XSk\/dS53aWRnZXQuZXh0ZW5kKHt9LGVbdF0saSk6dS53aWRnZXQuZXh0ZW5kKHt9LGkpOmVbdF09aSk7cmV0dXJuIGV9LHUud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbihhLHQpe3ZhciBvPXQucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHxhO3UuZm5bYV09ZnVuY3Rpb24oaSl7dmFyIGU9InN0cmluZyI9PXR5cGVvZiBpLHM9ci5jYWxsKGFyZ3VtZW50cywxKSxuPXRoaXM7cmV0dXJuIGU\/dGhpcy5sZW5ndGh8fCJpbnN0YW5jZSIhPT1pP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlLHQ9dS5kYXRhKHRoaXMsbyk7cmV0dXJuImluc3RhbmNlIj09PWk\/KG49dCwhMSk6dD8iZnVuY3Rpb24iIT10eXBlb2YgdFtpXXx8Il8iPT09aS5jaGFyQXQoMCk\/dS5lcnJvcigibm8gc3VjaCBtZXRob2QgJyIraSsiJyBmb3IgIithKyIgd2lkZ2V0IGluc3RhbmNlIik6KGU9dFtpXS5hcHBseSh0LHMpKSE9PXQmJnZvaWQgMCE9PWU\/KG49ZSYmZS5qcXVlcnk\/bi5wdXNoU3RhY2soZS5nZXQoKSk6ZSwhMSk6dm9pZCAwOnUuZXJyb3IoImNhbm5vdCBjYWxsIG1ldGhvZHMgb24gIithKyIgcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247IGF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIitpKyInIil9KTpuPXZvaWQgMDoocy5sZW5ndGgmJihpPXUud2lkZ2V0LmV4dGVuZC5hcHBseShudWxsLFtpXS5jb25jYXQocykpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11LmRhdGEodGhpcyxvKTtlPyhlLm9wdGlvbihpfHx7fSksZS5faW5pdCYmZS5faW5pdCgpKTp1LmRhdGEodGhpcyxvLG5ldyB0KGksdGhpcykpfSkpLG59fSx1LldpZGdldD1mdW5jdGlvbigpe30sdS5XaWRnZXQuX2NoaWxkQ29uc3RydWN0b3JzPVtdLHUuV2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoiIixkZWZhdWx0RWxlbWVudDoiPGRpdj4iLG9wdGlvbnM6e2NsYXNzZXM6e30sZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24oZSx0KXt0PXUodHx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PXUodCksdGhpcy51dWlkPWkrKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9dSgpLHRoaXMuaG92ZXJhYmxlPXUoKSx0aGlzLmZvY3VzYWJsZT11KCksdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cD17fSx0IT09dGhpcyYmKHUuZGF0YSh0LHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQ9PT10JiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PXUodC5zdHlsZT90Lm93bmVyRG9jdW1lbnQ6dC5kb2N1bWVudHx8dCksdGhpcy53aW5kb3c9dSh0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz11LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSxlKSx0aGlzLl9jcmVhdGUoKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9nZXRDcmVhdGVFdmVudERhdGE6dS5ub29wLF9jcmVhdGU6dS5ub29wLF9pbml0OnUubm9vcCxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLl9kZXN0cm95KCksdS5lYWNoKHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSx0KXtpLl9yZW1vdmVDbGFzcyh0LGUpfSksdGhpcy5lbGVtZW50Lm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVEYXRhKHRoaXMud2lkZ2V0RnVsbE5hbWUpLHRoaXMud2lkZ2V0KCkub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKSx0aGlzLmJpbmRpbmdzLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKX0sX2Rlc3Ryb3k6dS5ub29wLHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbixhPWU7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHUud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZihhPXt9LGU9KGk9ZS5zcGxpdCgiLiIpKS5zaGlmdCgpLGkubGVuZ3RoKXtmb3Iocz1hW2VdPXUud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnNbZV0pLG49MDtuPGkubGVuZ3RoLTE7bisrKXNbaVtuXV09c1tpW25dXXx8e30scz1zW2lbbl1dO2lmKGU9aS5wb3AoKSwxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09c1tlXT9udWxsOnNbZV07c1tlXT10fWVsc2V7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9uc1tlXT9udWxsOnRoaXMub3B0aW9uc1tlXTthW2VdPXR9cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoYSksdGhpc30sX3NldE9wdGlvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpdGhpcy5fc2V0T3B0aW9uKHQsZVt0XSk7cmV0dXJuIHRoaXN9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iY2xhc3NlcyI9PT1lJiZ0aGlzLl9zZXRPcHRpb25DbGFzc2VzKHQpLHRoaXMub3B0aW9uc1tlXT10LCJkaXNhYmxlZCI9PT1lJiZ0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCh0KSx0aGlzfSxfc2V0T3B0aW9uQ2xhc3NlczpmdW5jdGlvbihlKXt2YXIgdCxpLHM7Zm9yKHQgaW4gZSlzPXRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbdF0sZVt0XSE9PXRoaXMub3B0aW9ucy5jbGFzc2VzW3RdJiZzJiZzLmxlbmd0aCYmKGk9dShzLmdldCgpKSx0aGlzLl9yZW1vdmVDbGFzcyhzLHQpLGkuYWRkQ2xhc3ModGhpcy5fY2xhc3Nlcyh7ZWxlbWVudDppLGtleXM6dCxjbGFzc2VzOmUsYWRkOiEwfSkpKX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3RvZ2dsZUNsYXNzKHRoaXMud2lkZ2V0KCksdGhpcy53aWRnZXRGdWxsTmFtZSsiLWRpc2FibGVkIixudWxsLCEhZSksZSYmKHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuaG92ZXJhYmxlLG51bGwsInVpLXN0YXRlLWhvdmVyIiksdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5mb2N1c2FibGUsbnVsbCwidWktc3RhdGUtZm9jdXMiKSl9LGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMX0pfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiEwfSl9LF9jbGFzc2VzOmZ1bmN0aW9uKG4pe3ZhciBhPVtdLG89dGhpcztmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBpLHM9MDtzPGUubGVuZ3RoO3MrKylpPW8uY2xhc3Nlc0VsZW1lbnRMb29rdXBbZVtzXV18fHUoKSxpPW4uYWRkPyhmdW5jdGlvbigpe3ZhciBpPVtdO24uZWxlbWVudC5lYWNoKGZ1bmN0aW9uKGUsdCl7dS5tYXAoby5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihlKXtyZXR1cm4gZX0pLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXModCl9KXx8aS5wdXNoKHQpfSksby5fb24odShpKSx7cmVtb3ZlOiJfdW50cmFja0NsYXNzZXNFbGVtZW50In0pfSgpLHUodS51bmlxdWVTb3J0KGkuZ2V0KCkuY29uY2F0KG4uZWxlbWVudC5nZXQoKSkpKSk6dShpLm5vdChuLmVsZW1lbnQpLmdldCgpKSxvLmNsYXNzZXNFbGVtZW50TG9va3VwW2Vbc11dPWksYS5wdXNoKGVbc10pLHQmJm4uY2xhc3Nlc1tlW3NdXSYmYS5wdXNoKG4uY2xhc3Nlc1tlW3NdXSl9cmV0dXJuKG49dS5leHRlbmQoe2VsZW1lbnQ6dGhpcy5lbGVtZW50LGNsYXNzZXM6dGhpcy5vcHRpb25zLmNsYXNzZXN8fHt9fSxuKSkua2V5cyYmZShuLmtleXMubWF0Y2goL1xTKy9nKXx8W10sITApLG4uZXh0cmEmJmUobi5leHRyYS5tYXRjaCgvXFMrL2cpfHxbXSksYS5qb2luKCIgIil9LF91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQ6ZnVuY3Rpb24oaSl7dmFyIHM9dGhpczt1LmVhY2gocy5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihlLHQpey0xIT09dS5pbkFycmF5KGkudGFyZ2V0LHQpJiYocy5jbGFzc2VzRWxlbWVudExvb2t1cFtlXT11KHQubm90KGkudGFyZ2V0KS5nZXQoKSkpfSksdGhpcy5fb2ZmKHUoaS50YXJnZXQpKX0sX3JlbW92ZUNsYXNzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3MoZSx0LGksITEpfSxfYWRkQ2xhc3M6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB0aGlzLl90b2dnbGVDbGFzcyhlLHQsaSwhMCl9LF90b2dnbGVDbGFzczpmdW5jdGlvbihlLHQsaSxzKXt2YXIgbj0ic3RyaW5nIj09dHlwZW9mIGV8fG51bGw9PT1lLGk9e2V4dHJhOm4\/dDppLGtleXM6bj9lOnQsZWxlbWVudDpuP3RoaXMuZWxlbWVudDplLGFkZDpzPSJib29sZWFuIj09dHlwZW9mIHM\/czppfTtyZXR1cm4gaS5lbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuX2NsYXNzZXMoaSkscyksdGhpc30sX29uOmZ1bmN0aW9uKG4sYSxlKXt2YXIgbyxyPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgbiYmKGU9YSxhPW4sbj0hMSksZT8oYT1vPXUoYSksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChhKSk6KGU9YSxhPXRoaXMuZWxlbWVudCxvPXRoaXMud2lkZ2V0KCkpLHUuZWFjaChlLGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe2lmKG58fCEwIT09ci5vcHRpb25zLmRpc2FibGVkJiYhdSh0aGlzKS5oYXNDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKSlyZXR1cm4oInN0cmluZyI9PXR5cGVvZiB0P3JbdF06dCkuYXBwbHkocixhcmd1bWVudHMpfSJzdHJpbmciIT10eXBlb2YgdCYmKGkuZ3VpZD10Lmd1aWQ9dC5ndWlkfHxpLmd1aWR8fHUuZ3VpZCsrKTt2YXIgcz1lLm1hdGNoKC9eKFtcdzotXSopXHMqKC4qKSQvKSxlPXNbMV0rci5ldmVudE5hbWVzcGFjZSxzPXNbMl07cz9vLm9uKGUscyxpKTphLm9uKGUsaSl9KX0sX29mZjpmdW5jdGlvbihlLHQpe3Q9KHR8fCIiKS5zcGxpdCgiICIpLmpvaW4odGhpcy5ldmVudE5hbWVzcGFjZSsiICIpK3RoaXMuZXZlbnROYW1lc3BhY2UsZS5vZmYodCksdGhpcy5iaW5kaW5ncz11KHRoaXMuYmluZGluZ3Mubm90KGUpLmdldCgpKSx0aGlzLmZvY3VzYWJsZT11KHRoaXMuZm9jdXNhYmxlLm5vdChlKS5nZXQoKSksdGhpcy5ob3ZlcmFibGU9dSh0aGlzLmhvdmVyYWJsZS5ub3QoZSkuZ2V0KCkpfSxfZGVsYXk6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzO3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9pW2VdOmUpLmFwcGx5KGksYXJndW1lbnRzKX0sdHx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24oZSl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKGUpLHRoaXMuX29uKGUse21vdXNlZW50ZXI6ZnVuY3Rpb24oZSl7dGhpcy5fYWRkQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWhvdmVyIil9LG1vdXNlbGVhdmU6ZnVuY3Rpb24oZSl7dGhpcy5fcmVtb3ZlQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWhvdmVyIil9fSl9LF9mb2N1c2FibGU6ZnVuY3Rpb24oZSl7dGhpcy5mb2N1c2FibGU9dGhpcy5mb2N1c2FibGUuYWRkKGUpLHRoaXMuX29uKGUse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dGhpcy5fYWRkQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWZvY3VzIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfX0pfSxfdHJpZ2dlcjpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbixhPXRoaXMub3B0aW9uc1tlXTtpZihpPWl8fHt9LCh0PXUuRXZlbnQodCkpLnR5cGU9KGU9PT10aGlzLndpZGdldEV2ZW50UHJlZml4P2U6dGhpcy53aWRnZXRFdmVudFByZWZpeCtlKS50b0xvd2VyQ2FzZSgpLHQudGFyZ2V0PXRoaXMuZWxlbWVudFswXSxuPXQub3JpZ2luYWxFdmVudClmb3IocyBpbiBuKXMgaW4gdHx8KHRbc109bltzXSk7cmV0dXJuIHRoaXMuZWxlbWVudC50cmlnZ2VyKHQsaSksISgiZnVuY3Rpb24iPT10eXBlb2YgYSYmITE9PT1hLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbdF0uY29uY2F0KGkpKXx8dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl9fSx1LmVhY2goe3Nob3c6ImZhZGVJbiIsaGlkZToiZmFkZU91dCJ9LGZ1bmN0aW9uKGEsbyl7dS5XaWRnZXQucHJvdG90eXBlWyJfIithXT1mdW5jdGlvbih0LGUsaSl7dmFyIHMsbj0oZT0ic3RyaW5nIj09dHlwZW9mIGU\/e2VmZmVjdDplfTplKT8hMCE9PWUmJiJudW1iZXIiIT10eXBlb2YgZSYmZS5lZmZlY3R8fG86YTsibnVtYmVyIj09dHlwZW9mKGU9ZXx8e30pP2U9e2R1cmF0aW9uOmV9OiEwPT09ZSYmKGU9e30pLHM9IXUuaXNFbXB0eU9iamVjdChlKSxlLmNvbXBsZXRlPWksZS5kZWxheSYmdC5kZWxheShlLmRlbGF5KSxzJiZ1LmVmZmVjdHMmJnUuZWZmZWN0cy5lZmZlY3Rbbl0\/dFthXShlKTpuIT09YSYmdFtuXT90W25dKGUuZHVyYXRpb24sZS5lYXNpbmcsaSk6dC5xdWV1ZShmdW5jdGlvbihlKXt1KHRoaXMpW2FdKCksaSYmaS5jYWxsKHRbMF0pLGUoKX0pfX0pO3ZhciB0LHM7dS53aWRnZXQ7dS5leHByLnBzZXVkb3N8fCh1LmV4cHIucHNldWRvcz11LmV4cHJbIjoiXSksdS51bmlxdWVTb3J0fHwodS51bmlxdWVTb3J0PXUudW5pcXVlKSx1LmVzY2FwZVNlbGVjdG9yfHwodD0vKFtcMC1ceDFmXHg3Zl18Xi0\/XGQpfF4tJHxbXlx4ODAtXHVGRkZGXHctXS9nLHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8i77+9IjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSx1LmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKGUpe3JldHVybihlKyIiKS5yZXBsYWNlKHQscyl9KSx1LmZuLmV2ZW4mJnUuZm4ub2RkfHx1LmZuLmV4dGVuZCh7ZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSUyPT0wfSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSUyPT0xfSl9fSk7dS51aS5rZXlDb2RlPXtCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH0sdS5mbi5leHRlbmQoe3VuaXF1ZUlkOihlPTAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZHx8KHRoaXMuaWQ9InVpLWlkLSIrICsrZSl9KX0pLHJlbW92ZVVuaXF1ZUlkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpey9edWktaWQtXGQrJC8udGVzdCh0aGlzLmlkKSYmdSh0aGlzKS5yZW1vdmVBdHRyKCJpZCIpfSl9fSksdS53aWRnZXQoInVpLmFjY29yZGlvbiIse3ZlcnNpb246IjEuMTMuMiIsb3B0aW9uczp7YWN0aXZlOjAsYW5pbWF0ZTp7fSxjbGFzc2VzOnsidWktYWNjb3JkaW9uLWhlYWRlciI6InVpLWNvcm5lci10b3AiLCJ1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCI6InVpLWNvcm5lci1hbGwiLCJ1aS1hY2NvcmRpb24tY29udGVudCI6InVpLWNvcm5lci1ib3R0b20ifSxjb2xsYXBzaWJsZTohMSxldmVudDoiY2xpY2siLGhlYWRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5maW5kKCI+IGxpID4gOmZpcnN0LWNoaWxkIikuYWRkKGUuZmluZCgiPiA6bm90KGxpKSIpLmV2ZW4oKSl9LGhlaWdodFN0eWxlOiJhdXRvIixpY29uczp7YWN0aXZlSGVhZGVyOiJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsaGVhZGVyOiJ1aS1pY29uLXRyaWFuZ2xlLTEtZSJ9LGFjdGl2YXRlOm51bGwsYmVmb3JlQWN0aXZhdGU6bnVsbH0saGlkZVByb3BzOntib3JkZXJUb3BXaWR0aDoiaGlkZSIsYm9yZGVyQm90dG9tV2lkdGg6ImhpZGUiLHBhZGRpbmdUb3A6ImhpZGUiLHBhZGRpbmdCb3R0b206ImhpZGUiLGhlaWdodDoiaGlkZSJ9LHNob3dQcm9wczp7Ym9yZGVyVG9wV2lkdGg6InNob3ciLGJvcmRlckJvdHRvbVdpZHRoOiJzaG93IixwYWRkaW5nVG9wOiJzaG93IixwYWRkaW5nQm90dG9tOiJzaG93IixoZWlnaHQ6InNob3cifSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3RoaXMucHJldlNob3c9dGhpcy5wcmV2SGlkZT11KCksdGhpcy5fYWRkQ2xhc3MoInVpLWFjY29yZGlvbiIsInVpLXdpZGdldCB1aS1oZWxwZXItcmVzZXQiKSx0aGlzLmVsZW1lbnQuYXR0cigicm9sZSIsInRhYmxpc3QiKSxlLmNvbGxhcHNpYmxlfHwhMSE9PWUuYWN0aXZlJiZudWxsIT1lLmFjdGl2ZXx8KGUuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSxlLmFjdGl2ZTwwJiYoZS5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTp1KCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3B0aW9ucy5pY29uczt0JiYoZT11KCI8c3Bhbj4iKSx0aGlzLl9hZGRDbGFzcyhlLCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24iLCJ1aS1pY29uICIrdC5oZWFkZXIpLGUucHJlcGVuZFRvKHRoaXMuaGVhZGVycyksZT10aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLHRoaXMuX3JlbW92ZUNsYXNzKGUsdC5oZWFkZXIpLl9hZGRDbGFzcyhlLG51bGwsdC5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1pY29ucyIpKX0sX2Rlc3Ryb3lJY29uczpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUNsYXNzKHRoaXMuaGVhZGVycywidWktYWNjb3JkaW9uLWljb25zIiksdGhpcy5oZWFkZXJzLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQXR0cigicm9sZSBhcmlhLWV4cGFuZGVkIGFyaWEtc2VsZWN0ZWQgYXJpYS1jb250cm9scyB0YWJJbmRleCIpLnJlbW92ZVVuaXF1ZUlkKCksdGhpcy5fZGVzdHJveUljb25zKCksZT10aGlzLmhlYWRlcnMubmV4dCgpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUgYXJpYS1oaWRkZW4gYXJpYS1sYWJlbGxlZGJ5IikucmVtb3ZlVW5pcXVlSWQoKSwiY29udGVudCIhPT10aGlzLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJmUuY3NzKCJoZWlnaHQiLCIiKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpeyJhY3RpdmUiIT09ZT8oImV2ZW50Ij09PWUmJih0aGlzLm9wdGlvbnMuZXZlbnQmJnRoaXMuX29mZih0aGlzLmhlYWRlcnMsdGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEV2ZW50cyh0KSksdGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiIT09ZXx8dHx8ITEhPT10aGlzLm9wdGlvbnMuYWN0aXZlfHx0aGlzLl9hY3RpdmF0ZSgwKSwiaWNvbnMiPT09ZSYmKHRoaXMuX2Rlc3Ryb3lJY29ucygpLHQmJnRoaXMuX2NyZWF0ZUljb25zKCkpKTp0aGlzLl9hY3RpdmF0ZSh0KX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyKGUpLHRoaXMuZWxlbWVudC5hdHRyKCJhcmlhLWRpc2FibGVkIixlKSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFlKSx0aGlzLl90b2dnbGVDbGFzcyh0aGlzLmhlYWRlcnMuYWRkKHRoaXMuaGVhZGVycy5uZXh0KCkpLG51bGwsInVpLXN0YXRlLWRpc2FibGVkIiwhIWUpfSxfa2V5ZG93bjpmdW5jdGlvbihlKXtpZighZS5hbHRLZXkmJiFlLmN0cmxLZXkpe3ZhciB0PXUudWkua2V5Q29kZSxpPXRoaXMuaGVhZGVycy5sZW5ndGgscz10aGlzLmhlYWRlcnMuaW5kZXgoZS50YXJnZXQpLG49ITE7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSB0LlJJR0hUOmNhc2UgdC5ET1dOOm49dGhpcy5oZWFkZXJzWyhzKzEpJWldO2JyZWFrO2Nhc2UgdC5MRUZUOmNhc2UgdC5VUDpuPXRoaXMuaGVhZGVyc1socy0xK2kpJWldO2JyZWFrO2Nhc2UgdC5TUEFDRTpjYXNlIHQuRU5URVI6dGhpcy5fZXZlbnRIYW5kbGVyKGUpO2JyZWFrO2Nhc2UgdC5IT01FOm49dGhpcy5oZWFkZXJzWzBdO2JyZWFrO2Nhc2UgdC5FTkQ6bj10aGlzLmhlYWRlcnNbaS0xXX1uJiYodShlLnRhcmdldCkuYXR0cigidGFiSW5kZXgiLC0xKSx1KG4pLmF0dHIoInRhYkluZGV4IiwwKSx1KG4pLnRyaWdnZXIoImZvY3VzIiksZS5wcmV2ZW50RGVmYXVsdCgpKX19LF9wYW5lbEtleURvd246ZnVuY3Rpb24oZSl7ZS5rZXlDb2RlPT09dS51aS5rZXlDb2RlLlVQJiZlLmN0cmxLZXkmJnUoZS5jdXJyZW50VGFyZ2V0KS5wcmV2KCkudHJpZ2dlcigiZm9jdXMiKX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9uczt0aGlzLl9wcm9jZXNzUGFuZWxzKCksITE9PT1lLmFjdGl2ZSYmITA9PT1lLmNvbGxhcHNpYmxlfHwhdGhpcy5oZWFkZXJzLmxlbmd0aD8oZS5hY3RpdmU9ITEsdGhpcy5hY3RpdmU9dSgpKTohMT09PWUuYWN0aXZlP3RoaXMuX2FjdGl2YXRlKDApOnRoaXMuYWN0aXZlLmxlbmd0aCYmIXUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKT90aGlzLmhlYWRlcnMubGVuZ3RoPT09dGhpcy5oZWFkZXJzLmZpbmQoIi51aS1zdGF0ZS1kaXNhYmxlZCIpLmxlbmd0aD8oZS5hY3RpdmU9ITEsdGhpcy5hY3RpdmU9dSgpKTp0aGlzLl9hY3RpdmF0ZShNYXRoLm1heCgwLGUuYWN0aXZlLTEpKTplLmFjdGl2ZT10aGlzLmhlYWRlcnMuaW5kZXgodGhpcy5hY3RpdmUpLHRoaXMuX2Rlc3Ryb3lJY29ucygpLHRoaXMuX3JlZnJlc2goKX0sX3Byb2Nlc3NQYW5lbHM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhlYWRlcnMsdD10aGlzLnBhbmVsczsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLmhlYWRlcj90aGlzLmhlYWRlcnM9dGhpcy5vcHRpb25zLmhlYWRlcih0aGlzLmVsZW1lbnQpOnRoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5wYW5lbHM9dGhpcy5oZWFkZXJzLm5leHQoKS5maWx0ZXIoIjpub3QoLnVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSkiKS5oaWRlKCksdGhpcy5fYWRkQ2xhc3ModGhpcy5wYW5lbHMsInVpLWFjY29yZGlvbi1jb250ZW50IiwidWktaGVscGVyLXJlc2V0IHVpLXdpZGdldC1jb250ZW50IiksdCYmKHRoaXMuX29mZihlLm5vdCh0aGlzLmhlYWRlcnMpKSx0aGlzLl9vZmYodC5ub3QodGhpcy5wYW5lbHMpKSl9LF9yZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIGksZT10aGlzLm9wdGlvbnMsdD1lLmhlaWdodFN0eWxlLHM9dGhpcy5lbGVtZW50LnBhcmVudCgpO3RoaXMuYWN0aXZlPXRoaXMuX2ZpbmRBY3RpdmUoZS5hY3RpdmUpLHRoaXMuX2FkZENsYXNzKHRoaXMuYWN0aXZlLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLl9yZW1vdmVDbGFzcyh0aGlzLmFjdGl2ZSwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmFjdGl2ZS5uZXh0KCksInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLHRoaXMuYWN0aXZlLm5leHQoKS5zaG93KCksdGhpcy5oZWFkZXJzLmF0dHIoInJvbGUiLCJ0YWIiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dSh0aGlzKSx0PWUudW5pcXVlSWQoKS5hdHRyKCJpZCIpLGk9ZS5uZXh0KCkscz1pLnVuaXF1ZUlkKCkuYXR0cigiaWQiKTtlLmF0dHIoImFyaWEtY29udHJvbHMiLHMpLGkuYXR0cigiYXJpYS1sYWJlbGxlZGJ5Iix0KX0pLm5leHQoKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKSx0aGlzLmhlYWRlcnMubm90KHRoaXMuYWN0aXZlKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIix0YWJJbmRleDotMX0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLmhpZGUoKSx0aGlzLmFjdGl2ZS5sZW5ndGg\/dGhpcy5hY3RpdmUuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6InRydWUiLHRhYkluZGV4OjB9KS5uZXh0KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSk6dGhpcy5oZWFkZXJzLmVxKDApLmF0dHIoInRhYkluZGV4IiwwKSx0aGlzLl9jcmVhdGVJY29ucygpLHRoaXMuX3NldHVwRXZlbnRzKGUuZXZlbnQpLCJmaWxsIj09PXQ\/KGk9cy5oZWlnaHQoKSx0aGlzLmVsZW1lbnQuc2libGluZ3MoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcyksdD1lLmNzcygicG9zaXRpb24iKTsiYWJzb2x1dGUiIT09dCYmImZpeGVkIiE9PXQmJihpLT1lLm91dGVySGVpZ2h0KCEwKSl9KSx0aGlzLmhlYWRlcnMuZWFjaChmdW5jdGlvbigpe2ktPXUodGhpcykub3V0ZXJIZWlnaHQoITApfSksdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dSh0aGlzKS5oZWlnaHQoTWF0aC5tYXgoMCxpLXUodGhpcykuaW5uZXJIZWlnaHQoKSt1KHRoaXMpLmhlaWdodCgpKSl9KS5jc3MoIm92ZXJmbG93IiwiYXV0byIpKToiYXV0byI9PT10JiYoaT0wLHRoaXMuaGVhZGVycy5uZXh0KCkuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcykuaXMoIjp2aXNpYmxlIik7ZXx8dSh0aGlzKS5zaG93KCksaT1NYXRoLm1heChpLHUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSksZXx8dSh0aGlzKS5oaWRlKCl9KS5oZWlnaHQoaSkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7ZT10aGlzLl9maW5kQWN0aXZlKGUpWzBdO2UhPT10aGlzLmFjdGl2ZVswXSYmKGU9ZXx8dGhpcy5hY3RpdmVbMF0sdGhpcy5fZXZlbnRIYW5kbGVyKHt0YXJnZXQ6ZSxjdXJyZW50VGFyZ2V0OmUscHJldmVudERlZmF1bHQ6dS5ub29wfSkpfSxfZmluZEFjdGl2ZTpmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU\/dGhpcy5oZWFkZXJzLmVxKGUpOnUoKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKGUpe3ZhciBpPXtrZXlkb3duOiJfa2V5ZG93biJ9O2UmJnUuZWFjaChlLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtpW3RdPSJfZXZlbnRIYW5kbGVyIn0pLHRoaXMuX29mZih0aGlzLmhlYWRlcnMuYWRkKHRoaXMuaGVhZGVycy5uZXh0KCkpKSx0aGlzLl9vbih0aGlzLmhlYWRlcnMsaSksdGhpcy5fb24odGhpcy5oZWFkZXJzLm5leHQoKSx7a2V5ZG93bjoiX3BhbmVsS2V5RG93biJ9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oZWFkZXJzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oZWFkZXJzKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLmFjdGl2ZSxzPXUoZS5jdXJyZW50VGFyZ2V0KSxuPXNbMF09PT1pWzBdLGE9biYmdC5jb2xsYXBzaWJsZSxvPWE\/dSgpOnMubmV4dCgpLHI9aS5uZXh0KCksbz17b2xkSGVhZGVyOmksb2xkUGFuZWw6cixuZXdIZWFkZXI6YT91KCk6cyxuZXdQYW5lbDpvfTtlLnByZXZlbnREZWZhdWx0KCksbiYmIXQuY29sbGFwc2libGV8fCExPT09dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLGUsbyl8fCh0LmFjdGl2ZT0hYSYmdGhpcy5oZWFkZXJzLmluZGV4KHMpLHRoaXMuYWN0aXZlPW4\/dSgpOnMsdGhpcy5fdG9nZ2xlKG8pLHRoaXMuX3JlbW92ZUNsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIiwidWktc3RhdGUtYWN0aXZlIiksdC5pY29ucyYmKGk9aS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLHRoaXMuX3JlbW92ZUNsYXNzKGksbnVsbCx0Lmljb25zLmFjdGl2ZUhlYWRlcikuX2FkZENsYXNzKGksbnVsbCx0Lmljb25zLmhlYWRlcikpLG58fCh0aGlzLl9yZW1vdmVDbGFzcyhzLCJ1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCIpLl9hZGRDbGFzcyhzLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLHQuaWNvbnMmJihuPXMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhuLG51bGwsdC5pY29ucy5oZWFkZXIpLl9hZGRDbGFzcyhuLG51bGwsdC5pY29ucy5hY3RpdmVIZWFkZXIpKSx0aGlzLl9hZGRDbGFzcyhzLm5leHQoKSwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIikpKX0sX3RvZ2dsZTpmdW5jdGlvbihlKXt2YXIgdD1lLm5ld1BhbmVsLGk9dGhpcy5wcmV2U2hvdy5sZW5ndGg\/dGhpcy5wcmV2U2hvdzplLm9sZFBhbmVsO3RoaXMucHJldlNob3cuYWRkKHRoaXMucHJldkhpZGUpLnN0b3AoITAsITApLHRoaXMucHJldlNob3c9dCx0aGlzLnByZXZIaWRlPWksdGhpcy5vcHRpb25zLmFuaW1hdGU\/dGhpcy5fYW5pbWF0ZSh0LGksZSk6KGkuaGlkZSgpLHQuc2hvdygpLHRoaXMuX3RvZ2dsZUNvbXBsZXRlKGUpKSxpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSksaS5wcmV2KCkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KSx0Lmxlbmd0aCYmaS5sZW5ndGg\/aS5wcmV2KCkuYXR0cih7dGFiSW5kZXg6LTEsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KTp0Lmxlbmd0aCYmdGhpcy5oZWFkZXJzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAwPT09cGFyc2VJbnQodSh0aGlzKS5hdHRyKCJ0YWJJbmRleCIpLDEwKX0pLmF0dHIoInRhYkluZGV4IiwtMSksdC5hdHRyKCJhcmlhLWhpZGRlbiIsImZhbHNlIikucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hbmltYXRlOmZ1bmN0aW9uKGUsaSx0KXt2YXIgcyxuLGEsbz10aGlzLHI9MCxoPWUuY3NzKCJib3gtc2l6aW5nIiksbD1lLmxlbmd0aCYmKCFpLmxlbmd0aHx8ZS5pbmRleCgpPGkuaW5kZXgoKSksdT10aGlzLm9wdGlvbnMuYW5pbWF0ZXx8e30sYz1sJiZ1LmRvd258fHUsbD1mdW5jdGlvbigpe28uX3RvZ2dsZUNvbXBsZXRlKHQpfTtyZXR1cm4gbj0obj0ic3RyaW5nIj09dHlwZW9mIGM\/YzpuKXx8Yy5lYXNpbmd8fHUuZWFzaW5nLGE9KGE9Im51bWJlciI9PXR5cGVvZiBjP2M6YSl8fGMuZHVyYXRpb258fHUuZHVyYXRpb24saS5sZW5ndGg\/ZS5sZW5ndGg\/KHM9ZS5zaG93KCkub3V0ZXJIZWlnaHQoKSxpLmFuaW1hdGUodGhpcy5oaWRlUHJvcHMse2R1cmF0aW9uOmEsZWFzaW5nOm4sc3RlcDpmdW5jdGlvbihlLHQpe3Qubm93PU1hdGgucm91bmQoZSl9fSksdm9pZCBlLmhpZGUoKS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLGNvbXBsZXRlOmwsc3RlcDpmdW5jdGlvbihlLHQpe3Qubm93PU1hdGgucm91bmQoZSksImhlaWdodCIhPT10LnByb3A\/ImNvbnRlbnQtYm94Ij09PWgmJihyKz10Lm5vdyk6ImNvbnRlbnQiIT09by5vcHRpb25zLmhlaWdodFN0eWxlJiYodC5ub3c9TWF0aC5yb3VuZChzLWkub3V0ZXJIZWlnaHQoKS1yKSxyPTApfX0pKTppLmFuaW1hdGUodGhpcy5oaWRlUHJvcHMsYSxuLGwpOmUuYW5pbWF0ZSh0aGlzLnNob3dQcm9wcyxhLG4sbCl9LF90b2dnbGVDb21wbGV0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLm9sZFBhbmVsLGk9dC5wcmV2KCk7dGhpcy5fcmVtb3ZlQ2xhc3ModCwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIiksdGhpcy5fcmVtb3ZlQ2xhc3MoaSwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiKS5fYWRkQ2xhc3MoaSwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKSx0Lmxlbmd0aCYmKHQucGFyZW50KClbMF0uY2xhc3NOYW1lPXQucGFyZW50KClbMF0uY2xhc3NOYW1lKSx0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsbnVsbCxlKX19KSx1LnVpLmllPSEhL21zaWUgW1x3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7dmFyIGUsYT0hMTt1KGRvY3VtZW50KS5vbigibW91c2V1cCIsZnVuY3Rpb24oKXthPSExfSk7dS53aWRnZXQoInVpLm1vdXNlIix7dmVyc2lvbjoiMS4xMy4yIixvcHRpb25zOntjYW5jZWw6ImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QsIG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmVsZW1lbnQub24oIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VEb3duKGUpfSkub24oImNsaWNrLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKGUpe2lmKCEwPT09dS5kYXRhKGUudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikpcmV0dXJuIHUucmVtb3ZlRGF0YShlLnRhcmdldCx0LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksITF9KSx0aGlzLnN0YXJ0ZWQ9ITF9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQub2ZmKCIuIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKX0sX21vdXNlRG93bjpmdW5jdGlvbihlKXtpZighYSl7dGhpcy5fbW91c2VNb3ZlZD0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJnRoaXMuX21vdXNlVXAoZSksdGhpcy5fbW91c2VEb3duRXZlbnQ9ZTt2YXIgdD10aGlzLGk9MT09PWUud2hpY2gscz0hKCJzdHJpbmciIT10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbHx8IWUudGFyZ2V0Lm5vZGVOYW1lKSYmdShlLnRhcmdldCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg7cmV0dXJuIGkmJiFzJiZ0aGlzLl9tb3VzZUNhcHR1cmUoZSk\/KHRoaXMubW91c2VEZWxheU1ldD0hdGhpcy5vcHRpb25zLmRlbGF5LHRoaXMubW91c2VEZWxheU1ldHx8KHRoaXMuX21vdXNlRGVsYXlUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5tb3VzZURlbGF5TWV0PSEwfSx0aGlzLm9wdGlvbnMuZGVsYXkpKSx0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGUpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KGUpJiYodGhpcy5fbW91c2VTdGFydGVkPSExIT09dGhpcy5fbW91c2VTdGFydChlKSwhdGhpcy5fbW91c2VTdGFydGVkKT8oZS5wcmV2ZW50RGVmYXVsdCgpLCEwKTooITA9PT11LmRhdGEoZS50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSYmdS5yZW1vdmVEYXRhKGUudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX21vdXNlTW92ZShlKX0sdGhpcy5fbW91c2VVcERlbGVnYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZVVwKGUpfSx0aGlzLmRvY3VtZW50Lm9uKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLm9uKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksZS5wcmV2ZW50RGVmYXVsdCgpLGE9ITApKTohMH19LF9tb3VzZU1vdmU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fbW91c2VNb3ZlZCl7aWYodS51aS5pZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fGRvY3VtZW50LmRvY3VtZW50TW9kZTw5KSYmIWUuYnV0dG9uKXJldHVybiB0aGlzLl9tb3VzZVVwKGUpO2lmKCFlLndoaWNoKWlmKGUub3JpZ2luYWxFdmVudC5hbHRLZXl8fGUub3JpZ2luYWxFdmVudC5jdHJsS2V5fHxlLm9yaWdpbmFsRXZlbnQubWV0YUtleXx8ZS5vcmlnaW5hbEV2ZW50LnNoaWZ0S2V5KXRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSEwO2Vsc2UgaWYoIXRoaXMuaWdub3JlTWlzc2luZ1doaWNoKXJldHVybiB0aGlzLl9tb3VzZVVwKGUpfXJldHVybihlLndoaWNofHxlLmJ1dHRvbikmJih0aGlzLl9tb3VzZU1vdmVkPSEwKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ\/KHRoaXMuX21vdXNlRHJhZyhlKSxlLnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGUpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KGUpJiYodGhpcy5fbW91c2VTdGFydGVkPSExIT09dGhpcy5fbW91c2VTdGFydCh0aGlzLl9tb3VzZURvd25FdmVudCxlKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ\/dGhpcy5fbW91c2VEcmFnKGUpOnRoaXMuX21vdXNlVXAoZSkpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpfSxfbW91c2VVcDpmdW5jdGlvbihlKXt0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEsZS50YXJnZXQ9PT10aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQmJnUuZGF0YShlLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIsITApLHRoaXMuX21vdXNlU3RvcChlKSksdGhpcy5fbW91c2VEZWxheVRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuX21vdXNlRGVsYXlUaW1lciksZGVsZXRlIHRoaXMuX21vdXNlRGVsYXlUaW1lciksdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2g9ITEsYT0hMSxlLnByZXZlbnREZWZhdWx0KCl9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1lLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1lLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21vdXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbigpe3JldHVybiEwfX0pLHUud2lkZ2V0KCJ1aS5zbGlkZXIiLHUudWkubW91c2Use3ZlcnNpb246IjEuMTMuMiIsd2lkZ2V0RXZlbnRQcmVmaXg6InNsaWRlIixvcHRpb25zOnthbmltYXRlOiExLGNsYXNzZXM6eyJ1aS1zbGlkZXIiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLWhhbmRsZSI6InVpLWNvcm5lci1hbGwiLCJ1aS1zbGlkZXItcmFuZ2UiOiJ1aS1jb3JuZXItYWxsIHVpLXdpZGdldC1oZWFkZXIifSxkaXN0YW5jZTowLG1heDoxMDAsbWluOjAsb3JpZW50YXRpb246Imhvcml6b250YWwiLHJhbmdlOiExLHN0ZXA6MSx2YWx1ZTowLHZhbHVlczpudWxsLGNoYW5nZTpudWxsLHNsaWRlOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LG51bVBhZ2VzOjUsX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5faGFuZGxlSW5kZXg9bnVsbCx0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX2FkZENsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiwidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiksdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9LF9yZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fY3JlYXRlUmFuZ2UoKSx0aGlzLl9jcmVhdGVIYW5kbGVzKCksdGhpcy5fc2V0dXBFdmVudHMoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX2NyZWF0ZUhhbmRsZXM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3B0aW9ucyxpPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLHM9W10sbj10LnZhbHVlcyYmdC52YWx1ZXMubGVuZ3RofHwxO2ZvcihpLmxlbmd0aD5uJiYoaS5zbGljZShuKS5yZW1vdmUoKSxpPWkuc2xpY2UoMCxuKSksZT1pLmxlbmd0aDtlPG47ZSsrKXMucHVzaCgiPHNwYW4gdGFiaW5kZXg9JzAnPjwvc3Bhbj4iKTt0aGlzLmhhbmRsZXM9aS5hZGQodShzLmpvaW4oIiIpKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhhbmRsZXMsInVpLXNsaWRlci1oYW5kbGUiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsZSkuYXR0cigidGFiSW5kZXgiLDApfSl9LF9jcmVhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucztlLnJhbmdlPyghMD09PWUucmFuZ2UmJihlLnZhbHVlcz9lLnZhbHVlcy5sZW5ndGgmJjIhPT1lLnZhbHVlcy5sZW5ndGg\/ZS52YWx1ZXM9W2UudmFsdWVzWzBdLGUudmFsdWVzWzBdXTpBcnJheS5pc0FycmF5KGUudmFsdWVzKSYmKGUudmFsdWVzPWUudmFsdWVzLnNsaWNlKDApKTplLnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg\/KHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZS1taW4gdWktc2xpZGVyLXJhbmdlLW1heCIpLHRoaXMucmFuZ2UuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pKToodGhpcy5yYW5nZT11KCI8ZGl2PiIpLmFwcGVuZFRvKHRoaXMuZWxlbWVudCksdGhpcy5fYWRkQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlIikpLCJtaW4iIT09ZS5yYW5nZSYmIm1heCIhPT1lLnJhbmdlfHx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UtIitlLnJhbmdlKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oZSl7dmFyIGkscyxuLGEsdCxvLHI9dGhpcyxoPXRoaXMub3B0aW9ucztyZXR1cm4haC5kaXNhYmxlZCYmKHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLG89e3g6ZS5wYWdlWCx5OmUucGFnZVl9LGk9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKG8pLHM9dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5hYnMoaS1yLnZhbHVlcyhlKSk7KHQ8c3x8cz09PXQmJihlPT09ci5fbGFzdENoYW5nZWRWYWx1ZXx8ci52YWx1ZXMoZSk9PT1oLm1pbikpJiYocz10LG49dSh0aGlzKSxhPWUpfSksITEhPT10aGlzLl9zdGFydChlLGEpJiYodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PWEsdGhpcy5fYWRkQ2xhc3MobixudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSxuLnRyaWdnZXIoImZvY3VzIiksdD1uLm9mZnNldCgpLG89IXUoZS50YXJnZXQpLnBhcmVudHMoKS5hZGRCYWNrKCkuaXMoIi51aS1zbGlkZXItaGFuZGxlIiksdGhpcy5fY2xpY2tPZmZzZXQ9bz97bGVmdDowLHRvcDowfTp7bGVmdDplLnBhZ2VYLXQubGVmdC1uLndpZHRoKCkvMix0b3A6ZS5wYWdlWS10LnRvcC1uLmhlaWdodCgpLzItKHBhcnNlSW50KG4uY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KG4uY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLDEwKXx8MCkrKHBhcnNlSW50KG4uY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDApfSx0aGlzLmhhbmRsZXMuaGFzQ2xhc3MoInVpLXN0YXRlLWhvdmVyIil8fHRoaXMuX3NsaWRlKGUsYSxpKSx0aGlzLl9hbmltYXRlT2ZmPSEwKSl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LF9tb3VzZURyYWc6ZnVuY3Rpb24oZSl7dmFyIHQ9e3g6ZS5wYWdlWCx5OmUucGFnZVl9LHQ9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKHQpO3JldHVybiB0aGlzLl9zbGlkZShlLHRoaXMuX2hhbmRsZUluZGV4LHQpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhhbmRsZXMsbnVsbCwidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24\/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsZT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsZS54LXRoaXMuZWxlbWVudE9mZnNldC5sZWZ0LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC5sZWZ0OjApKToodD10aGlzLmVsZW1lbnRTaXplLmhlaWdodCxlLnktdGhpcy5lbGVtZW50T2Zmc2V0LnRvcC0odGhpcy5fY2xpY2tPZmZzZXQ\/dGhpcy5fY2xpY2tPZmZzZXQudG9wOjApKSxlPWUvdDtyZXR1cm4oZT0xPGU\/MTplKTwwJiYoZT0wKSwidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmKGU9MS1lKSx0PXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSx0PXRoaXMuX3ZhbHVlTWluKCkrZSp0LHRoaXMuX3RyaW1BbGlnblZhbHVlKHQpfSxfdWlIYXNoOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz17aGFuZGxlOnRoaXMuaGFuZGxlc1tlXSxoYW5kbGVJbmRleDplLHZhbHVlOnZvaWQgMCE9PXQ\/dDp0aGlzLnZhbHVlKCl9O3JldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYocy52YWx1ZT12b2lkIDAhPT10P3Q6dGhpcy52YWx1ZXMoZSkscy52YWx1ZXM9aXx8dGhpcy52YWx1ZXMoKSksc30sX2hhc011bHRpcGxlVmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RofSxfc3RhcnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fdHJpZ2dlcigic3RhcnQiLGUsdGhpcy5fdWlIYXNoKHQpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuPXRoaXMudmFsdWUoKSxhPXRoaXMudmFsdWVzKCk7dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKHM9dGhpcy52YWx1ZXModD8wOjEpLG49dGhpcy52YWx1ZXModCksMj09PXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKGk9MD09PXQ\/TWF0aC5taW4ocyxpKTpNYXRoLm1heChzLGkpKSxhW3RdPWkpLGkhPT1uJiYhMSE9PXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHRoaXMuX3VpSGFzaCh0LGksYSkpJiYodGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyh0LGkpOnRoaXMudmFsdWUoaSkpfSxfc3RvcDpmdW5jdGlvbihlLHQpe3RoaXMuX3RyaWdnZXIoInN0b3AiLGUsdGhpcy5fdWlIYXNoKHQpKX0sX2NoYW5nZTpmdW5jdGlvbihlLHQpe3RoaXMuX2tleVNsaWRpbmd8fHRoaXMuX21vdXNlU2xpZGluZ3x8KHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsdGhpcy5fdWlIYXNoKHQpKSl9LHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCwwKSk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuO2lmKDE8YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1tlXT10aGlzLl90cmltQWxpZ25WYWx1ZSh0KSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLGUpO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl92YWx1ZXMoKTtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLl92YWx1ZXMoZSk6dGhpcy52YWx1ZSgpO2ZvcihpPXRoaXMub3B0aW9ucy52YWx1ZXMscz1lLG49MDtuPGkubGVuZ3RoO24rPTEpaVtuXT10aGlzLl90cmltQWxpZ25WYWx1ZShzW25dKSx0aGlzLl9jaGFuZ2UobnVsbCxuKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBpLHM9MDtzd2l0Y2goInJhbmdlIj09PWUmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoIm1pbiI9PT10Pyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT10JiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxBcnJheS5pc0FycmF5KHRoaXMub3B0aW9ucy52YWx1ZXMpJiYocz10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCksdGhpcy5fc3VwZXIoZSx0KSxlKXtjYXNlIm9yaWVudGF0aW9uIjp0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpLHRoaXMuX3JlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5fYWRkQ2xhc3MoInVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24pLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMub3B0aW9ucy5yYW5nZSYmdGhpcy5fcmVmcmVzaFJhbmdlKHQpLHRoaXMuaGFuZGxlcy5jc3MoImhvcml6b250YWwiPT09dD8iYm90dG9tIjoibGVmdCIsIiIpO2JyZWFrO2Nhc2UidmFsdWUiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5fY2hhbmdlKG51bGwsMCksdGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInZhbHVlcyI6Zm9yKHRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaFZhbHVlKCksaT1zLTE7MDw9aTtpLS0pdGhpcy5fY2hhbmdlKG51bGwsaSk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSksdGhpcy5fdG9nZ2xlQ2xhc3MobnVsbCwidWktc3RhdGUtZGlzYWJsZWQiLCEhZSl9LF92YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucy52YWx1ZTtyZXR1cm4gZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKX0sX3ZhbHVlczpmdW5jdGlvbihlKXt2YXIgdCxpO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGU9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSxlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpO2lmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkpe2Zvcih0PXRoaXMub3B0aW9ucy52YWx1ZXMuc2xpY2UoKSxpPTA7aTx0Lmxlbmd0aDtpKz0xKXRbaV09dGhpcy5fdHJpbUFsaWduVmFsdWUodFtpXSk7cmV0dXJuIHR9cmV0dXJuW119LF90cmltQWxpZ25WYWx1ZTpmdW5jdGlvbihlKXtpZihlPD10aGlzLl92YWx1ZU1pbigpKXJldHVybiB0aGlzLl92YWx1ZU1pbigpO2lmKGU+PXRoaXMuX3ZhbHVlTWF4KCkpcmV0dXJuIHRoaXMuX3ZhbHVlTWF4KCk7dmFyIHQ9MDx0aGlzLm9wdGlvbnMuc3RlcD90aGlzLm9wdGlvbnMuc3RlcDoxLGk9KGUtdGhpcy5fdmFsdWVNaW4oKSkldCxlPWUtaTtyZXR1cm4gMipNYXRoLmFicyhpKT49dCYmKGUrPTA8aT90Oi10KSxwYXJzZUZsb2F0KGUudG9GaXhlZCg1KSl9LF9jYWxjdWxhdGVOZXdNYXg6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMubWF4LHQ9dGhpcy5fdmFsdWVNaW4oKSxpPXRoaXMub3B0aW9ucy5zdGVwOyhlPU1hdGgucm91bmQoKGUtdCkvaSkqaSt0KT50aGlzLm9wdGlvbnMubWF4JiYoZS09aSksdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gZT1udWxsIT09dGhpcy5vcHRpb25zLm1pbj9NYXRoLm1heChlLHRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5taW4pKTplfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b1N0cmluZygpLGU9dC5pbmRleE9mKCIuIik7cmV0dXJuLTE9PT1lPzA6dC5sZW5ndGgtZS0xfSxfdmFsdWVNaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLm1pbn0sX3ZhbHVlTWF4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4fSxfcmVmcmVzaFJhbmdlOmZ1bmN0aW9uKGUpeyJ2ZXJ0aWNhbCI9PT1lJiZ0aGlzLnJhbmdlLmNzcyh7d2lkdGg6IiIsbGVmdDoiIn0pLCJob3Jpem9udGFsIj09PWUmJnRoaXMucmFuZ2UuY3NzKHtoZWlnaHQ6IiIsYm90dG9tOiIifSl9LF9yZWZyZXNoVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxpLGUscyxuLGE9dGhpcy5vcHRpb25zLnJhbmdlLG89dGhpcy5vcHRpb25zLHI9dGhpcyxoPSF0aGlzLl9hbmltYXRlT2ZmJiZvLmFuaW1hdGUsbD17fTt0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe2k9KHIudmFsdWVzKGUpLXIuX3ZhbHVlTWluKCkpLyhyLl92YWx1ZU1heCgpLXIuX3ZhbHVlTWluKCkpKjEwMCxsWyJob3Jpem9udGFsIj09PXIub3JpZW50YXRpb24\/ImxlZnQiOiJib3R0b20iXT1pKyIlIix1KHRoaXMpLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0obCxvLmFuaW1hdGUpLCEwPT09ci5vcHRpb25zLnJhbmdlJiYoImhvcml6b250YWwiPT09ci5vcmllbnRhdGlvbj8oMD09PWUmJnIucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sby5hbmltYXRlKSwxPT09ZSYmci5yYW5nZVtoPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpvLmFuaW1hdGV9KSk6KDA9PT1lJiZyLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sby5hbmltYXRlKSwxPT09ZSYmci5yYW5nZVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246by5hbmltYXRlfSkpKSx0PWl9KTooZT10aGlzLnZhbHVlKCkscz10aGlzLl92YWx1ZU1pbigpLG49dGhpcy5fdmFsdWVNYXgoKSxpPW4hPT1zPyhlLXMpLyhuLXMpKjEwMDowLGxbImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8ibGVmdCI6ImJvdHRvbSJdPWkrIiUiLHRoaXMuaGFuZGxlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0obCxvLmFuaW1hdGUpLCJtaW4iPT09YSYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDppKyIlIn0sby5hbmltYXRlKSwibWF4Ij09PWEmJiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6MTAwLWkrIiUifSxvLmFuaW1hdGUpLCJtaW4iPT09YSYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxvLmFuaW1hdGUpLCJtYXgiPT09YSYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OjEwMC1pKyIlIn0sby5hbmltYXRlKSl9LF9oYW5kbGVFdmVudHM6e2tleWRvd246ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG49dShlLnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgdS51aS5rZXlDb2RlLkhPTUU6Y2FzZSB1LnVpLmtleUNvZGUuRU5EOmNhc2UgdS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgdS51aS5rZXlDb2RlLlVQOmNhc2UgdS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgdS51aS5rZXlDb2RlLkRPV046Y2FzZSB1LnVpLmtleUNvZGUuTEVGVDppZihlLnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLHRoaXMuX2FkZENsYXNzKHUoZS50YXJnZXQpLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLCExPT09dGhpcy5fc3RhcnQoZSxuKSkpcmV0dXJufXN3aXRjaChzPXRoaXMub3B0aW9ucy5zdGVwLHQ9aT10aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMudmFsdWVzKG4pOnRoaXMudmFsdWUoKSxlLmtleUNvZGUpe2Nhc2UgdS51aS5rZXlDb2RlLkhPTUU6aT10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLkVORDppPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9VUDppPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9ET1dOOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUodC0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5VUDpjYXNlIHUudWkua2V5Q29kZS5SSUdIVDppZih0PT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0K3MpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLkRPV046Y2FzZSB1LnVpLmtleUNvZGUuTEVGVDppZih0PT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0LXMpfXRoaXMuX3NsaWRlKGUsbixpKX0sa2V5dXA6ZnVuY3Rpb24oZSl7dmFyIHQ9dShlLnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0KSx0aGlzLl9jaGFuZ2UoZSx0KSx0aGlzLl9yZW1vdmVDbGFzcyh1KGUudGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSl9fX0pO3ZhciBoPXUsbD17fSxjPWwudG9TdHJpbmcsZD0vXihbXC0rXSk9XHMqKFxkK1wuP1xkKikvLGY9W3tyZTovcmdiYT9cKFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqKD86LFxzKihcZD8oPzpcLlxkKyk\/KVxzKik\/XCkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0sZVszXSxlWzRdXX19LHtyZTovcmdiYT9cKFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqKD86LFxzKihcZD8oPzpcLlxkKyk\/KVxzKik\/XCkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVyblsyLjU1KmVbMV0sMi41NSplWzJdLDIuNTUqZVszXSxlWzRdXX19LHtyZTovIyhbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSk\/LyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bcGFyc2VJbnQoZVsxXSwxNikscGFyc2VJbnQoZVsyXSwxNikscGFyc2VJbnQoZVszXSwxNiksZVs0XT8ocGFyc2VJbnQoZVs0XSwxNikvMjU1KS50b0ZpeGVkKDIpOjFdfX0se3JlOi8jKFthLWYwLTldKShbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKT8vLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KSxlWzRdPyhwYXJzZUludChlWzRdK2VbNF0sMTYpLzI1NSkudG9GaXhlZCgyKToxXX19LHtyZTovaHNsYT9cKFxzKihcZCsoPzpcLlxkKyk\/KVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxzcGFjZToiaHNsYSIscGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW2VbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XV19fV0scD1oLkNvbG9yPWZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiBuZXcgaC5Db2xvci5mbi5wYXJzZShlLHQsaSxzKX0sZz17cmdiYTp7cHJvcHM6e3JlZDp7aWR4OjAsdHlwZToiYnl0ZSJ9LGdyZWVuOntpZHg6MSx0eXBlOiJieXRlIn0sYmx1ZTp7aWR4OjIsdHlwZToiYnl0ZSJ9fX0saHNsYTp7cHJvcHM6e2h1ZTp7aWR4OjAsdHlwZToiZGVncmVlcyJ9LHNhdHVyYXRpb246e2lkeDoxLHR5cGU6InBlcmNlbnQifSxsaWdodG5lc3M6e2lkeDoyLHR5cGU6InBlcmNlbnQifX19fSxtPXtieXRlOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LHY9cC5zdXBwb3J0PXt9LF89aCgiPHA+IilbMF0seT1oLmVhY2g7ZnVuY3Rpb24gYihlKXtyZXR1cm4gbnVsbD09ZT9lKyIiOiJvYmplY3QiPT10eXBlb2YgZT9sW2MuY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfWZ1bmN0aW9uIHgoZSx0LGkpe3ZhciBzPW1bdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU\/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6TWF0aC5taW4ocy5tYXgsTWF0aC5tYXgoMCxlKSkpfWZ1bmN0aW9uIHcocyl7dmFyIG49cCgpLGE9bi5fcmdiYT1bXTtyZXR1cm4gcz1zLnRvTG93ZXJDYXNlKCkseShmLGZ1bmN0aW9uKGUsdCl7dmFyIGk9dC5yZS5leGVjKHMpLGk9aSYmdC5wYXJzZShpKSx0PXQuc3BhY2V8fCJyZ2JhIjtpZihpKXJldHVybiBpPW5bdF0oaSksbltnW3RdLmNhY2hlXT1pW2dbdF0uY2FjaGVdLGE9bi5fcmdiYT1pLl9yZ2JhLCExfSksYS5sZW5ndGg\/KCIwLDAsMCwwIj09PWEuam9pbigpJiZoLmV4dGVuZChhLEgudHJhbnNwYXJlbnQpLG4pOkhbc119ZnVuY3Rpb24gQyhlLHQsaSl7cmV0dXJuIDYqKGk9KGkrMSklMSk8MT9lKyh0LWUpKmkqNjoyKmk8MT90OjMqaTwyP2UrKHQtZSkqKDIvMy1pKSo2OmV9Xy5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIix2LnJnYmE9LTE8Xy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpLHkoZyxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksaC5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2xbIltvYmplY3QgIit0KyJdIl09dC50b0xvd2VyQ2FzZSgpfSksKHAuZm49aC5leHRlbmQocC5wcm90b3R5cGUse3BhcnNlOmZ1bmN0aW9uKG4sZSx0LGkpe2lmKHZvaWQgMD09PW4pcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49aChuKS5jc3MoZSksZT12b2lkIDApO3ZhciBhPXRoaXMscz1iKG4pLG89dGhpcy5fcmdiYT1bXTtyZXR1cm4gdm9pZCAwIT09ZSYmKG49W24sZSx0LGldLHM9ImFycmF5IiksInN0cmluZyI9PT1zP3RoaXMucGFyc2UodyhuKXx8SC5fZGVmYXVsdCk6ImFycmF5Ij09PXM\/KHkoZy5yZ2JhLnByb3BzLGZ1bmN0aW9uKGUsdCl7b1t0LmlkeF09eChuW3QuaWR4XSx0KX0pLHRoaXMpOiJvYmplY3QiPT09cz8oeShnLG4gaW5zdGFuY2VvZiBwP2Z1bmN0aW9uKGUsdCl7blt0LmNhY2hlXSYmKGFbdC5jYWNoZV09blt0LmNhY2hlXS5zbGljZSgpKX06ZnVuY3Rpb24oZSxpKXt2YXIgcz1pLmNhY2hlO3koaS5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFhW3NdJiZpLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47YVtzXT1pLnRvKGEuX3JnYmEpfWFbc11bdC5pZHhdPXgobltlXSx0LCEwKX0pLGFbc10mJmguaW5BcnJheShudWxsLGFbc10uc2xpY2UoMCwzKSk8MCYmKG51bGw9PWFbc11bM10mJihhW3NdWzNdPTEpLGkuZnJvbSYmKGEuX3JnYmE9aS5mcm9tKGFbc10pKSl9KSx0aGlzKTp2b2lkIDB9LGlzOmZ1bmN0aW9uKGUpe3ZhciBuPXAoZSksYT0hMCxvPXRoaXM7cmV0dXJuIHkoZyxmdW5jdGlvbihlLHQpe3ZhciBpLHM9blt0LmNhY2hlXTtyZXR1cm4gcyYmKGk9b1t0LmNhY2hlXXx8dC50byYmdC50byhvLl9yZ2JhKXx8W10seSh0LnByb3BzLGZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9c1t0LmlkeF0pcmV0dXJuIGE9c1t0LmlkeF09PT1pW3QuaWR4XX0pKSxhfSksYX0sX3NwYWNlOmZ1bmN0aW9uKCl7dmFyIGk9W10scz10aGlzO3JldHVybiB5KGcsZnVuY3Rpb24oZSx0KXtzW3QuY2FjaGVdJiZpLnB1c2goZSl9KSxpLnBvcCgpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKGUsbyl7dmFyIHQ9KGw9cChlKSkuX3NwYWNlKCksaT1nW3RdLGU9MD09PXRoaXMuYWxwaGEoKT9wKCJ0cmFuc3BhcmVudCIpOnRoaXMscj1lW2kuY2FjaGVdfHxpLnRvKGUuX3JnYmEpLGg9ci5zbGljZSgpLGw9bFtpLmNhY2hlXTtyZXR1cm4geShpLnByb3BzLGZ1bmN0aW9uKGUsdCl7dmFyIGk9dC5pZHgscz1yW2ldLG49bFtpXSxhPW1bdC50eXBlXXx8e307bnVsbCE9PW4mJihudWxsPT09cz9oW2ldPW46KGEubW9kJiYobi1zPmEubW9kLzI\/cys9YS5tb2Q6cy1uPmEubW9kLzImJihzLT1hLm1vZCkpLGhbaV09eCgobi1zKSpvK3MsdCkpKX0pLHRoaXNbdF0oaCl9LGJsZW5kOmZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLl9yZ2JhWzNdKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuX3JnYmEuc2xpY2UoKSxpPXQucG9wKCkscz1wKGUpLl9yZ2JhO3JldHVybiBwKGgubWFwKHQsZnVuY3Rpb24oZSx0KXtyZXR1cm4oMS1pKSpzW3RdK2kqZX0pKX0sdG9SZ2JhU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGU9InJnYmEoIix0PWgubWFwKHRoaXMuX3JnYmEsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZT9lOjI8dD8xOjB9KTtyZXR1cm4gMT09PXRbM10mJih0LnBvcCgpLGU9InJnYigiKSxlK3Quam9pbigpKyIpIn0sdG9Ic2xhU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGU9ImhzbGEoIix0PWgubWFwKHRoaXMuaHNsYSgpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWUmJihlPTI8dD8xOjApLGU9dCYmdDwzP01hdGgucm91bmQoMTAwKmUpKyIlIjplfSk7cmV0dXJuIDE9PT10WzNdJiYodC5wb3AoKSxlPSJoc2woIiksZSt0LmpvaW4oKSsiKSJ9LHRvSGV4U3RyaW5nOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3JnYmEuc2xpY2UoKSxpPXQucG9wKCk7cmV0dXJuIGUmJnQucHVzaCh+figyNTUqaSkpLCIjIitoLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiAxPT09KGU9KGV8fDApLnRvU3RyaW5nKDE2KSkubGVuZ3RoPyIwIitlOmV9KS5qb2luKCIiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX3JnYmFbM10\/InRyYW5zcGFyZW50Ijp0aGlzLnRvUmdiYVN0cmluZygpfX0pKS5wYXJzZS5wcm90b3R5cGU9cC5mbixnLmhzbGEudG89ZnVuY3Rpb24oZSl7aWYobnVsbD09ZVswXXx8bnVsbD09ZVsxXXx8bnVsbD09ZVsyXSlyZXR1cm5bbnVsbCxudWxsLG51bGwsZVszXV07dmFyIHQ9ZVswXS8yNTUsaT1lWzFdLzI1NSxzPWVbMl0vMjU1LG49ZVszXSxhPU1hdGgubWF4KHQsaSxzKSxvPU1hdGgubWluKHQsaSxzKSxyPWEtbyxoPWErbyxlPS41KmgsaT1vPT09YT8wOnQ9PT1hPzYwKihpLXMpL3IrMzYwOmk9PT1hPzYwKihzLXQpL3IrMTIwOjYwKih0LWkpL3IrMjQwLGg9MD09cj8wOmU8PS41P3IvaDpyLygyLWgpO3JldHVybltNYXRoLnJvdW5kKGkpJTM2MCxoLGUsbnVsbD09bj8xOm5dfSxnLmhzbGEuZnJvbT1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdD1lWzBdLzM2MCxpPWVbMV0scz1lWzJdLGU9ZVszXSxpPXM8PS41P3MqKDEraSk6cytpLXMqaSxzPTIqcy1pO3JldHVybltNYXRoLnJvdW5kKDI1NSpDKHMsaSx0KzEvMykpLE1hdGgucm91bmQoMjU1KkMocyxpLHQpKSxNYXRoLnJvdW5kKDI1NSpDKHMsaSx0LTEvMykpLGVdfSx5KGcsZnVuY3Rpb24oaCxlKXt2YXIgdD1lLnByb3BzLGE9ZS5jYWNoZSxvPWUudG8scj1lLmZyb207cC5mbltoXT1mdW5jdGlvbihlKXtpZihvJiYhdGhpc1thXSYmKHRoaXNbYV09byh0aGlzLl9yZ2JhKSksdm9pZCAwPT09ZSlyZXR1cm4gdGhpc1thXS5zbGljZSgpO3ZhciBpPWIoZSkscz0iYXJyYXkiPT09aXx8Im9iamVjdCI9PT1pP2U6YXJndW1lbnRzLG49dGhpc1thXS5zbGljZSgpO3JldHVybiB5KHQsZnVuY3Rpb24oZSx0KXtlPXNbIm9iamVjdCI9PT1pP2U6dC5pZHhdO251bGw9PWUmJihlPW5bdC5pZHhdKSxuW3QuaWR4XT14KGUsdCl9KSxyPygoZT1wKHIobikpKVthXT1uLGUpOnAobil9LHkodCxmdW5jdGlvbihvLHIpe3AuZm5bb118fChwLmZuW29dPWZ1bmN0aW9uKGUpe3ZhciB0LGk9YihlKSxzPSJhbHBoYSI9PT1vP3RoaXMuX2hzbGE\/ImhzbGEiOiJyZ2JhIjpoLG49dGhpc1tzXSgpLGE9bltyLmlkeF07cmV0dXJuInVuZGVmaW5lZCI9PT1pP2E6KCJmdW5jdGlvbiI9PT1pJiYoaT1iKGU9ZS5jYWxsKHRoaXMsYSkpKSxudWxsPT1lJiZyLmVtcHR5P3RoaXM6KCJzdHJpbmciPT09aSYmKHQ9ZC5leGVjKGUpKSYmKGU9YStwYXJzZUZsb2F0KHRbMl0pKigiKyI9PT10WzFdPzE6LTEpKSxuW3IuaWR4XT1lLHRoaXNbc10obikpKX0pfSl9KSwocC5ob29rPWZ1bmN0aW9uKGUpe2U9ZS5zcGxpdCgiICIpO3koZSxmdW5jdGlvbihlLGEpe2guY3NzSG9va3NbYV09e3NldDpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbj0iIjtpZigidHJhbnNwYXJlbnQiIT09dCYmKCJzdHJpbmciIT09Yih0KXx8KGk9dyh0KSkpKXtpZih0PXAoaXx8dCksIXYucmdiYSYmMSE9PXQuX3JnYmFbM10pe2ZvcihzPSJiYWNrZ3JvdW5kQ29sb3IiPT09YT9lLnBhcmVudE5vZGU6ZTsoIiI9PT1ufHwidHJhbnNwYXJlbnQiPT09bikmJnMmJnMuc3R5bGU7KXRyeXtuPWguY3NzKHMsImJhY2tncm91bmRDb2xvciIpLHM9cy5wYXJlbnROb2RlfWNhdGNoKGUpe310PXQuYmxlbmQobiYmInRyYW5zcGFyZW50IiE9PW4\/bjoiX2RlZmF1bHQiKX10PXQudG9SZ2JhU3RyaW5nKCl9dHJ5e2Uuc3R5bGVbYV09dH1jYXRjaChlKXt9fX0saC5meC5zdGVwW2FdPWZ1bmN0aW9uKGUpe2UuY29sb3JJbml0fHwoZS5zdGFydD1wKGUuZWxlbSxhKSxlLmVuZD1wKGUuZW5kKSxlLmNvbG9ySW5pdD0hMCksaC5jc3NIb29rc1thXS5zZXQoZS5lbGVtLGUuc3RhcnQudHJhbnNpdGlvbihlLmVuZCxlLnBvcykpfX0pfSkoImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiKSxoLmNzc0hvb2tzLmJvcmRlckNvbG9yPXtleHBhbmQ6ZnVuY3Rpb24oaSl7dmFyIHM9e307cmV0dXJuIHkoWyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxmdW5jdGlvbihlLHQpe3NbImJvcmRlciIrdCsiQ29sb3IiXT1pfSksc319O3ZhciBNLGssRCxFLFMsTyxJLE4sQSxQLEg9aC5Db2xvci5uYW1lcz17YXF1YToiIzAwZmZmZiIsYmxhY2s6IiMwMDAwMDAiLGJsdWU6IiMwMDAwZmYiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixsaW1lOiIjMDBmZjAwIixtYXJvb246IiM4MDAwMDAiLG5hdnk6IiMwMDAwODAiLG9saXZlOiIjODA4MDAwIixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI2ZmMDAwMCIsc2lsdmVyOiIjYzBjMGMwIix0ZWFsOiIjMDA4MDgwIix3aGl0ZToiI2ZmZmZmZiIseWVsbG93OiIjZmZmZjAwIix0cmFuc3BhcmVudDpbbnVsbCxudWxsLG51bGwsMF0sX2RlZmF1bHQ6IiNmZmZmZmYifSxUPSJ1aS1lZmZlY3RzLSIsVz0idWktZWZmZWN0cy1zdHlsZSIsVj0idWktZWZmZWN0cy1hbmltYXRlZCI7ZnVuY3Rpb24gRihlKXt2YXIgdCxpLHM9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P2Uub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCk6ZS5jdXJyZW50U3R5bGUsbj17fTtpZihzJiZzLmxlbmd0aCYmc1swXSYmc1tzWzBdXSlmb3IoaT1zLmxlbmd0aDtpLS07KSJzdHJpbmciPT10eXBlb2Ygc1t0PXNbaV1dJiYoblt0LnJlcGxhY2UoLy0oW1xkYS16XSkvZ2ksZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfSldPXNbdF0pO2Vsc2UgZm9yKHQgaW4gcykic3RyaW5nIj09dHlwZW9mIHNbdF0mJihuW3RdPXNbdF0pO3JldHVybiBufWZ1bmN0aW9uIHEoZSx0LGkscyl7cmV0dXJuIGU9e2VmZmVjdDplPXUuaXNQbGFpbk9iamVjdChlKT8odD1lKS5lZmZlY3Q6ZX0sImZ1bmN0aW9uIj09dHlwZW9mKHQ9bnVsbD09dD97fTp0KSYmKHM9dCxpPW51bGwsdD17fSksIm51bWJlciIhPXR5cGVvZiB0JiYhdS5meC5zcGVlZHNbdF18fChzPWksaT10LHQ9e30pLCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYocz1pLGk9bnVsbCksdCYmdS5leHRlbmQoZSx0KSxpPWl8fHQuZHVyYXRpb24sZS5kdXJhdGlvbj11LmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgaT9pOmkgaW4gdS5meC5zcGVlZHM\/dS5meC5zcGVlZHNbaV06dS5meC5zcGVlZHMuX2RlZmF1bHQsZS5jb21wbGV0ZT1zfHx0LmNvbXBsZXRlLGV9ZnVuY3Rpb24gTChlKXtyZXR1cm4hZXx8Im51bWJlciI9PXR5cGVvZiBlfHx1LmZ4LnNwZWVkc1tlXXx8KCJzdHJpbmciPT10eXBlb2YgZSYmIXUuZWZmZWN0cy5lZmZlY3RbZV18fCgiZnVuY3Rpb24iPT10eXBlb2YgZXx8Im9iamVjdCI9PXR5cGVvZiBlJiYhZS5lZmZlY3QpKX1mdW5jdGlvbiBCKGUsdCl7dmFyIGk9dC5vdXRlcldpZHRoKCksdD10Lm91dGVySGVpZ2h0KCksZT0vXnJlY3RcKCgtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKSw\/XHMqKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKVwpJC8uZXhlYyhlKXx8WyIiLDAsaSx0LDBdO3JldHVybnt0b3A6cGFyc2VGbG9hdChlWzFdKXx8MCxyaWdodDoiYXV0byI9PT1lWzJdP2k6cGFyc2VGbG9hdChlWzJdKSxib3R0b206ImF1dG8iPT09ZVszXT90OnBhcnNlRmxvYXQoZVszXSksbGVmdDpwYXJzZUZsb2F0KGVbNF0pfHwwfX11LmVmZmVjdHM9e2VmZmVjdDp7fX0sRT1bImFkZCIsInJlbW92ZSIsInRvZ2dsZSJdLFM9e2JvcmRlcjoxLGJvcmRlckJvdHRvbToxLGJvcmRlckNvbG9yOjEsYm9yZGVyTGVmdDoxLGJvcmRlclJpZ2h0OjEsYm9yZGVyVG9wOjEsYm9yZGVyV2lkdGg6MSxtYXJnaW46MSxwYWRkaW5nOjF9LHUuZWFjaChbImJvcmRlckxlZnRTdHlsZSIsImJvcmRlclJpZ2h0U3R5bGUiLCJib3JkZXJCb3R0b21TdHlsZSIsImJvcmRlclRvcFN0eWxlIl0sZnVuY3Rpb24oZSx0KXt1LmZ4LnN0ZXBbdF09ZnVuY3Rpb24oZSl7KCJub25lIiE9PWUuZW5kJiYhZS5zZXRBdHRyfHwxPT09ZS5wb3MmJiFlLnNldEF0dHIpJiYoaC5zdHlsZShlLmVsZW0sdCxlLmVuZCksZS5zZXRBdHRyPSEwKX19KSx1LmZuLmFkZEJhY2t8fCh1LmZuLmFkZEJhY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU\/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfSksdS5lZmZlY3RzLmFuaW1hdGVDbGFzcz1mdW5jdGlvbihuLGUsdCxpKXt2YXIgYT11LnNwZWVkKGUsdCxpKTtyZXR1cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBpPXUodGhpcyksZT1pLmF0dHIoImNsYXNzIil8fCIiLHQ9KHQ9YS5jaGlsZHJlbj9pLmZpbmQoIioiKS5hZGRCYWNrKCk6aSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJue2VsOnUodGhpcyksc3RhcnQ6Rih0aGlzKX19KSxzPWZ1bmN0aW9uKCl7dS5lYWNoKEUsZnVuY3Rpb24oZSx0KXtuW3RdJiZpW3QrIkNsYXNzIl0oblt0XSl9KX07cygpLHQ9dC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9Rih0aGlzLmVsWzBdKSx0aGlzLmRpZmY9ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49e307Zm9yKGkgaW4gdClzPXRbaV0sZVtpXSE9PXMmJihTW2ldfHwhdS5meC5zdGVwW2ldJiZpc05hTihwYXJzZUZsb2F0KHMpKXx8KG5baV09cykpO3JldHVybiBufSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksaS5hdHRyKCJjbGFzcyIsZSksdD10Lm1hcChmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD11LkRlZmVycmVkKCksaT11LmV4dGVuZCh7fSxhLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe3QucmVzb2x2ZShlKX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixpKSx0LnByb21pc2UoKX0pLHUud2hlbi5hcHBseSh1LHQuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXtzKCksdS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7dS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksYS5jb21wbGV0ZS5jYWxsKGlbMF0pfSl9KX0sdS5mbi5leHRlbmQoe2FkZENsYXNzOihEPXUuZm4uYWRkQ2xhc3MsZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIHQ\/dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse2FkZDplfSx0LGkscyk6RC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyZW1vdmVDbGFzczooaz11LmZuLnJlbW92ZUNsYXNzLGZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiAxPGFyZ3VtZW50cy5sZW5ndGg\/dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse3JlbW92ZTplfSx0LGkscyk6ay5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSx0b2dnbGVDbGFzczooTT11LmZuLnRvZ2dsZUNsYXNzLGZ1bmN0aW9uKGUsdCxpLHMsbil7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdHx8dm9pZCAwPT09dD9pP3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHQ\/e2FkZDplfTp7cmVtb3ZlOmV9LGkscyxuKTpNLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp1LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOmV9LHQsaSxzKX0pLHN3aXRjaENsYXNzOmZ1bmN0aW9uKGUsdCxpLHMsbil7cmV0dXJuIHUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6dCxyZW1vdmU6ZX0saSxzLG4pfX0pLHUuZXhwciYmdS5leHByLnBzZXVkb3MmJnUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkJiYodS5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9KE89dS5leHByLnBzZXVkb3MuYW5pbWF0ZWQsZnVuY3Rpb24oZSl7cmV0dXJuISF1KGUpLmRhdGEoVil8fE8oZSl9KSksITEhPT11LnVpQmFja0NvbXBhdCYmdS5leHRlbmQodS5lZmZlY3RzLHtzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTAscz10Lmxlbmd0aDtpPHM7aSsrKW51bGwhPT10W2ldJiZlLmRhdGEoVCt0W2ldLGVbMF0uc3R5bGVbdFtpXV0pfSxyZXN0b3JlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpLHM9MCxuPXQubGVuZ3RoO3M8bjtzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YShUK3Rbc10pLGUuY3NzKHRbc10saSkpfSxzZXRNb2RlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9InRvZ2dsZSI9PT10P2UuaXMoIjpoaWRkZW4iKT8ic2hvdyI6ImhpZGUiOnR9LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oaSl7aWYoaS5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiBpLnBhcmVudCgpO3ZhciBzPXt3aWR0aDppLm91dGVyV2lkdGgoITApLGhlaWdodDppLm91dGVySGVpZ2h0KCEwKSxmbG9hdDppLmNzcygiZmxvYXQiKX0sZT11KCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLXdyYXBwZXIiKS5jc3Moe2ZvbnRTaXplOiIxMDAlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOiJub25lIixtYXJnaW46MCxwYWRkaW5nOjB9KSx0PXt3aWR0aDppLndpZHRoKCksaGVpZ2h0OmkuaGVpZ2h0KCl9LG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0cnl7bi5pZH1jYXRjaChlKXtuPWRvY3VtZW50LmJvZHl9cmV0dXJuIGkud3JhcChlKSxpWzBdIT09biYmIXUuY29udGFpbnMoaVswXSxuKXx8dShuKS50cmlnZ2VyKCJmb2N1cyIpLGU9aS5wYXJlbnQoKSwic3RhdGljIj09PWkuY3NzKCJwb3NpdGlvbiIpPyhlLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLGkuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOih1LmV4dGVuZChzLHtwb3NpdGlvbjppLmNzcygicG9zaXRpb24iKSx6SW5kZXg6aS5jc3MoInotaW5kZXgiKX0pLHUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUsdCl7c1t0XT1pLmNzcyh0KSxpc05hTihwYXJzZUludChzW3RdLDEwKSkmJihzW3RdPSJhdXRvIil9KSxpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksaS5jc3ModCksZS5jc3Mocykuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIGUucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKGUucGFyZW50KCkucmVwbGFjZVdpdGgoZSksZVswXSE9PXQmJiF1LmNvbnRhaW5zKGVbMF0sdCl8fHUodCkudHJpZ2dlcigiZm9jdXMiKSksZX19KSx1LmV4dGVuZCh1LmVmZmVjdHMse3ZlcnNpb246IjEuMTMuMiIsZGVmaW5lOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gaXx8KGk9dCx0PSJlZmZlY3QiKSx1LmVmZmVjdHMuZWZmZWN0W2VdPWksdS5lZmZlY3RzLmVmZmVjdFtlXS5tb2RlPXQsaX0sc2NhbGVkRGltZW5zaW9uczpmdW5jdGlvbihlLHQsaSl7aWYoMD09PXQpcmV0dXJue2hlaWdodDowLHdpZHRoOjAsb3V0ZXJIZWlnaHQ6MCxvdXRlcldpZHRoOjB9O3ZhciBzPSJob3Jpem9udGFsIiE9PWk\/KHR8fDEwMCkvMTAwOjEsdD0idmVydGljYWwiIT09aT8odHx8MTAwKS8xMDA6MTtyZXR1cm57aGVpZ2h0OmUuaGVpZ2h0KCkqdCx3aWR0aDplLndpZHRoKCkqcyxvdXRlckhlaWdodDplLm91dGVySGVpZ2h0KCkqdCxvdXRlcldpZHRoOmUub3V0ZXJXaWR0aCgpKnN9fSxjbGlwVG9Cb3g6ZnVuY3Rpb24oZSl7cmV0dXJue3dpZHRoOmUuY2xpcC5yaWdodC1lLmNsaXAubGVmdCxoZWlnaHQ6ZS5jbGlwLmJvdHRvbS1lLmNsaXAudG9wLGxlZnQ6ZS5jbGlwLmxlZnQsdG9wOmUuY2xpcC50b3B9fSx1bnNoaWZ0OmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz1lLnF1ZXVlKCk7MTx0JiZzLnNwbGljZS5hcHBseShzLFsxLDBdLmNvbmNhdChzLnNwbGljZSh0LGkpKSksZS5kZXF1ZXVlKCl9LHNhdmVTdHlsZTpmdW5jdGlvbihlKXtlLmRhdGEoVyxlWzBdLnN0eWxlLmNzc1RleHQpfSxyZXN0b3JlU3R5bGU6ZnVuY3Rpb24oZSl7ZVswXS5zdHlsZS5jc3NUZXh0PWUuZGF0YShXKXx8IiIsZS5yZW1vdmVEYXRhKFcpfSxtb2RlOmZ1bmN0aW9uKGUsdCl7ZT1lLmlzKCI6aGlkZGVuIik7cmV0dXJuInRvZ2dsZSI9PT10JiYodD1lPyJzaG93IjoiaGlkZSIpLHQ9KGU\/ImhpZGUiPT09dDoic2hvdyI9PT10KT8ibm9uZSI6dH0sZ2V0QmFzZWxpbmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3N3aXRjaChlWzBdKXtjYXNlInRvcCI6aT0wO2JyZWFrO2Nhc2UibWlkZGxlIjppPS41O2JyZWFrO2Nhc2UiYm90dG9tIjppPTE7YnJlYWs7ZGVmYXVsdDppPWVbMF0vdC5oZWlnaHR9c3dpdGNoKGVbMV0pe2Nhc2UibGVmdCI6cz0wO2JyZWFrO2Nhc2UiY2VudGVyIjpzPS41O2JyZWFrO2Nhc2UicmlnaHQiOnM9MTticmVhaztkZWZhdWx0OnM9ZVsxXS90LndpZHRofXJldHVybnt4OnMseTppfX0sY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7dmFyIHQsaT1lLmNzcygicG9zaXRpb24iKSxzPWUucG9zaXRpb24oKTtyZXR1cm4gZS5jc3Moe21hcmdpblRvcDplLmNzcygibWFyZ2luVG9wIiksbWFyZ2luQm90dG9tOmUuY3NzKCJtYXJnaW5Cb3R0b20iKSxtYXJnaW5MZWZ0OmUuY3NzKCJtYXJnaW5MZWZ0IiksbWFyZ2luUmlnaHQ6ZS5jc3MoIm1hcmdpblJpZ2h0Iil9KS5vdXRlcldpZHRoKGUub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodChlLm91dGVySGVpZ2h0KCkpLC9eKHN0YXRpY3xyZWxhdGl2ZSkvLnRlc3QoaSkmJihpPSJhYnNvbHV0ZSIsdD11KCI8IitlWzBdLm5vZGVOYW1lKyI+IikuaW5zZXJ0QWZ0ZXIoZSkuY3NzKHtkaXNwbGF5Oi9eKGlubGluZXxydWJ5KS8udGVzdChlLmNzcygiZGlzcGxheSIpKT8iaW5saW5lLWJsb2NrIjoiYmxvY2siLHZpc2liaWxpdHk6ImhpZGRlbiIsbWFyZ2luVG9wOmUuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5Cb3R0b206ZS5jc3MoIm1hcmdpbkJvdHRvbSIpLG1hcmdpbkxlZnQ6ZS5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5SaWdodDplLmNzcygibWFyZ2luUmlnaHQiKSxmbG9hdDplLmNzcygiZmxvYXQiKX0pLm91dGVyV2lkdGgoZS5vdXRlcldpZHRoKCkpLm91dGVySGVpZ2h0KGUub3V0ZXJIZWlnaHQoKSkuYWRkQ2xhc3MoInVpLWVmZmVjdHMtcGxhY2Vob2xkZXIiKSxlLmRhdGEoVCsicGxhY2Vob2xkZXIiLHQpKSxlLmNzcyh7cG9zaXRpb246aSxsZWZ0OnMubGVmdCx0b3A6cy50b3B9KSx0fSxyZW1vdmVQbGFjZWhvbGRlcjpmdW5jdGlvbihlKXt2YXIgdD1UKyJwbGFjZWhvbGRlciIsaT1lLmRhdGEodCk7aSYmKGkucmVtb3ZlKCksZS5yZW1vdmVEYXRhKHQpKX0sY2xlYW5VcDpmdW5jdGlvbihlKXt1LmVmZmVjdHMucmVzdG9yZVN0eWxlKGUpLHUuZWZmZWN0cy5yZW1vdmVQbGFjZWhvbGRlcihlKX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihzLGUsbixhKXtyZXR1cm4gYT1hfHx7fSx1LmVhY2goZSxmdW5jdGlvbihlLHQpe3ZhciBpPXMuY3NzVW5pdCh0KTswPGlbMF0mJihhW3RdPWlbMF0qbitpWzFdKX0pLGF9fSksdS5mbi5leHRlbmQoe2VmZmVjdDpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dmFyIHQ9dSh0aGlzKSxpPXUuZWZmZWN0cy5tb2RlKHQscil8fGE7dC5kYXRhKFYsITApLGgucHVzaChpKSxhJiYoInNob3ciPT09aXx8aT09PWEmJiJoaWRlIj09PWkpJiZ0LnNob3coKSxhJiYibm9uZSI9PT1pfHx1LmVmZmVjdHMuc2F2ZVN0eWxlKHQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKCl9dmFyIHM9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj11LmVmZmVjdHMuZWZmZWN0W3MuZWZmZWN0XSxhPW4ubW9kZSx0PXMucXVldWUsaT10fHwiZngiLG89cy5jb21wbGV0ZSxyPXMubW9kZSxoPVtdO3JldHVybiB1LmZ4Lm9mZnx8IW4\/cj90aGlzW3JdKHMuZHVyYXRpb24sbyk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7byYmby5jYWxsKHRoaXMpfSk6ITE9PT10P3RoaXMuZWFjaChlKS5lYWNoKGwpOnRoaXMucXVldWUoaSxlKS5xdWV1ZShpLGwpO2Z1bmN0aW9uIGwoZSl7dmFyIHQ9dSh0aGlzKTtmdW5jdGlvbiBpKCl7ImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8uY2FsbCh0WzBdKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfXMubW9kZT1oLnNoaWZ0KCksITE9PT11LnVpQmFja0NvbXBhdHx8YT8ibm9uZSI9PT1zLm1vZGU\/KHRbcl0oKSxpKCkpOm4uY2FsbCh0WzBdLHMsZnVuY3Rpb24oKXt0LnJlbW92ZURhdGEoViksdS5lZmZlY3RzLmNsZWFuVXAodCksImhpZGUiPT09cy5tb2RlJiZ0LmhpZGUoKSxpKCl9KToodC5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik\/KHRbcl0oKSxpKCkpOm4uY2FsbCh0WzBdLHMsaSl9fSxzaG93OihBPXUuZm4uc2hvdyxmdW5jdGlvbihlKXtpZihMKGUpKXJldHVybiBBLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9InNob3ciLHRoaXMuZWZmZWN0LmNhbGwodGhpcyxlKX0pLGhpZGU6KE49dS5mbi5oaWRlLGZ1bmN0aW9uKGUpe2lmKEwoZSkpcmV0dXJuIE4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2U9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUubW9kZT0iaGlkZSIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLGUpfSksdG9nZ2xlOihJPXUuZm4udG9nZ2xlLGZ1bmN0aW9uKGUpe2lmKEwoZSl8fCJib29sZWFuIj09dHlwZW9mIGUpcmV0dXJuIEkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2U9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsZSl9KSxjc3NVbml0OmZ1bmN0aW9uKGUpe3ZhciBpPXRoaXMuY3NzKGUpLHM9W107cmV0dXJuIHUuZWFjaChbImVtIiwicHgiLCIlIiwicHQiXSxmdW5jdGlvbihlLHQpezA8aS5pbmRleE9mKHQpJiYocz1bcGFyc2VGbG9hdChpKSx0XSl9KSxzfSxjc3NDbGlwOmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuY3NzKCJjbGlwIiwicmVjdCgiK2UudG9wKyJweCAiK2UucmlnaHQrInB4ICIrZS5ib3R0b20rInB4ICIrZS5sZWZ0KyJweCkiKTpCKHRoaXMuY3NzKCJjbGlwIiksdGhpcyl9LHRyYW5zZmVyOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dSh0aGlzKSxzPXUoZS50byksbj0iZml4ZWQiPT09cy5jc3MoInBvc2l0aW9uIiksYT11KCJib2R5Iiksbz1uP2Euc2Nyb2xsVG9wKCk6MCxyPW4\/YS5zY3JvbGxMZWZ0KCk6MCxhPXMub2Zmc2V0KCksYT17dG9wOmEudG9wLW8sbGVmdDphLmxlZnQtcixoZWlnaHQ6cy5pbm5lckhlaWdodCgpLHdpZHRoOnMuaW5uZXJXaWR0aCgpfSxzPWkub2Zmc2V0KCksaD11KCI8ZGl2IGNsYXNzPSd1aS1lZmZlY3RzLXRyYW5zZmVyJz48L2Rpdj4iKTtoLmFwcGVuZFRvKCJib2R5IikuYWRkQ2xhc3MoZS5jbGFzc05hbWUpLmNzcyh7dG9wOnMudG9wLW8sbGVmdDpzLmxlZnQtcixoZWlnaHQ6aS5pbm5lckhlaWdodCgpLHdpZHRoOmkuaW5uZXJXaWR0aCgpLHBvc2l0aW9uOm4\/ImZpeGVkIjoiYWJzb2x1dGUifSkuYW5pbWF0ZShhLGUuZHVyYXRpb24sZS5lYXNpbmcsZnVuY3Rpb24oKXtoLnJlbW92ZSgpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0KCl9KX19KSx1LmZ4LnN0ZXAuY2xpcD1mdW5jdGlvbihlKXtlLmNsaXBJbml0fHwoZS5zdGFydD11KGUuZWxlbSkuY3NzQ2xpcCgpLCJzdHJpbmciPT10eXBlb2YgZS5lbmQmJihlLmVuZD1CKGUuZW5kLGUuZWxlbSkpLGUuY2xpcEluaXQ9ITApLHUoZS5lbGVtKS5jc3NDbGlwKHt0b3A6ZS5wb3MqKGUuZW5kLnRvcC1lLnN0YXJ0LnRvcCkrZS5zdGFydC50b3AscmlnaHQ6ZS5wb3MqKGUuZW5kLnJpZ2h0LWUuc3RhcnQucmlnaHQpK2Uuc3RhcnQucmlnaHQsYm90dG9tOmUucG9zKihlLmVuZC5ib3R0b20tZS5zdGFydC5ib3R0b20pK2Uuc3RhcnQuYm90dG9tLGxlZnQ6ZS5wb3MqKGUuZW5kLmxlZnQtZS5zdGFydC5sZWZ0KStlLnN0YXJ0LmxlZnR9KX0sUD17fSx1LmVhY2goWyJRdWFkIiwiQ3ViaWMiLCJRdWFydCIsIlF1aW50IiwiRXhwbyJdLGZ1bmN0aW9uKHQsZSl7UFtlXT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSx0KzIpfX0pLHUuZXh0ZW5kKFAse1NpbmU6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5jb3MoZSpNYXRoLlBJLzIpfSxDaXJjOmZ1bmN0aW9uKGUpe3JldHVybiAxLU1hdGguc3FydCgxLWUqZSl9LEVsYXN0aWM6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lfHwxPT09ZT9lOi1NYXRoLnBvdygyLDgqKGUtMSkpKk1hdGguc2luKCg4MCooZS0xKS03LjUpKk1hdGguUEkvMTUpfSxCYWNrOmZ1bmN0aW9uKGUpe3JldHVybiBlKmUqKDMqZS0yKX0sQm91bmNlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpPTQ7ZTwoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMTspO3JldHVybiAxL01hdGgucG93KDQsMy1pKS03LjU2MjUqTWF0aC5wb3coKDMqdC0yKS8yMi1lLDIpfX0pLHUuZWFjaChQLGZ1bmN0aW9uKGUsdCl7dS5lYXNpbmdbImVhc2VJbiIrZV09dCx1LmVhc2luZ1siZWFzZU91dCIrZV09ZnVuY3Rpb24oZSl7cmV0dXJuIDEtdCgxLWUpfSx1LmVhc2luZ1siZWFzZUluT3V0IitlXT1mdW5jdGlvbihlKXtyZXR1cm4gZTwuNT90KDIqZSkvMjoxLXQoLTIqZSsyKS8yfX0pO3UuZWZmZWN0c30pOwovKiogL2pzL3ZhbmlsbGFqcy9zdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zdG9yZWpzX2Nfb249IjIwMjYtMDItMjAgMTE6MzA6MTAiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGgtMTtmKyspe3ZhciBnPWVbZl07aWYoIShnIGluIGQpKXJldHVybjtkPWRbZ119ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChmKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBmKGcpe2cuZG9uZT9kKGcudmFsdWUpOlByb21pc2UucmVzb2x2ZShnLnZhbHVlKS50aGVuKGIsYykudGhlbihmLGUpfWYoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpjbGllbnRTdG9yYWdlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMsZCl7Yz12b2lkIDA9PT1jPzE6YztkPXZvaWQgMD09PWQ\/ImxvY2FsIjpkO2NvbnN0IGU9InNlc3Npb24iPT09ZD93aW5kb3cuc2Vzc2lvblN0b3JhZ2U6d2luZG93LmxvY2FsU3RvcmFnZTt0cnl7Yj17dmFsdWU6Yn0sImxvY2FsIj09PWQmJihjKj04NjRFNSxiLmV4cGlyeT0obmV3IERhdGUpLmdldFRpbWUoKStjKSxlLnNldEl0ZW0oYSxKU09OLnN0cmluZ2lmeShiKSl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcihgRXJyb3Igc2F2aW5nIHRvICR7ZH0gc3RvcmFnZWAsZil9fSxnZXQ6ZnVuY3Rpb24oYSxiKXtiPXZvaWQgMD09PWI\/bnVsbDpiO2NvbnN0IGM9KGQsZSk9Pnt0cnl7Y29uc3QgZj1kLmdldEl0ZW0oYSk7aWYoIWYpcmV0dXJuIG51bGw7Y29uc3QgZz1KU09OLnBhcnNlKGYpO2lmKGUmJmcuZXhwaXJ5JiYobmV3IERhdGUpLmdldFRpbWUoKT5nLmV4cGlyeSlyZXR1cm4gZC5yZW1vdmVJdGVtKGEpLG51bGw7bGV0IGg7CnJldHVybiBudWxsIT0oaD1nLnZhbHVlKT9oOmd9Y2F0Y2goZil7cmV0dXJuIG51bGx9fTtyZXR1cm4ibG9jYWwiPT09Yj9jKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApOiJzZXNzaW9uIj09PWI\/Yyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UsITEpOmMod2luZG93LmxvY2FsU3RvcmFnZSwhMCl8fGMod2luZG93LnNlc3Npb25TdG9yYWdlLCExKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Yj12b2lkIDA9PT1iP251bGw6YjsibG9jYWwiIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTsic2Vzc2lvbiIhPT1iJiZudWxsIT09Ynx8d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSl9fTsKY3JlYXRlRGF0YVN0b3JlPWE9PnthPWF8fHt9O2luaXQ9Yz0+T2JqZWN0LmFzc2lnbih7fSxjKTtjb25zdCBiPWluaXQoYSk7cmV0dXJue3NldDpmdW5jdGlvbihjLGQpe2JbY109T2JqZWN0LmFzc2lnbih7fSxiW2NdLGQpO3JldHVybiBiW2NdfSxnZXQ6ZnVuY3Rpb24oYyxkKXtkPXZvaWQgMD09PWQ\/bnVsbDpkO2M9Yy5zcGxpdCgiLiIpO2xldCBlPWI7Zm9yKGNvbnN0IGYgb2YgYyl7aWYodm9pZCAwPT09ZVtmXSlyZXR1cm4gZDtlPWVbZl19cmV0dXJuIHZvaWQgMCE9PWU\/ZTpkfSxmZXRjaDpmdW5jdGlvbihjKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGQ9eWllbGQgZmV0Y2goYGh0dHBzOi8vJHtiLmRlYWxlckluZm8uZG9tYWlufS9hamF4Q29udHJvbGxlci8ke2N9YCk7aWYoIWQub2spdGhyb3cgRXJyb3IoIk5ldHdvcmsgcmVzcG9uc2Ugd2FzIG5vdCBvayIpO2NvbnN0IGU9eWllbGQgZC5qc29uKCk7CmJbY109ZTtyZXR1cm4gYltjXX1jYXRjaChkKXt0aHJvdyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIGZyb20gc2VydmVyOiAke2QubWVzc2FnZX1gKTt9fSl9LGRlbGV0ZTpmdW5jdGlvbihjKXtpZighYltjXSl0aHJvdyBFcnJvcigiSUQgbm90IGZvdW5kIik7ZGVsZXRlIGJbY107cmV0dXJuITB9LGdldEFsbDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGIpfX19OwovKiogL2pzL2VtYWlsSGFuZGxlci5qcyAqKi8KdmFyIF9fX2QyY19lbWFpbEhhbmRsZXJqc19jX29uPSIyMDI2LTA3LTExIDIwOjMwOjIyIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGUsZyxuKXtpZihlPT1BcnJheS5wcm90b3R5cGV8fGU9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGU7ZVtnXT1uLnZhbHVlO3JldHVybiBlfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oZSl7ZT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGUsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBnPTA7ZzxlLmxlbmd0aDsrK2cpe3ZhciBuPWVbZ107aWYobiYmbi5NYXRoPT1NYXRoKXJldHVybiBufXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oZSxnKXt2YXIgbj0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtnXTtpZihudWxsPT1uKXJldHVybiBlW2ddO249ZVtuXTtyZXR1cm4gdm9pZCAwIT09bj9uOmVbZ119OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oZSxnLG4sYSl7ZyYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGUsZyxuLGEpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGUsZyxuLGEpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGUsZyxuLGEpe249JGpzY29tcC5nbG9iYWw7ZT1lLnNwbGl0KCIuIik7Zm9yKGE9MDthPGUubGVuZ3RoLTE7YSsrKXt2YXIgYj1lW2FdO2lmKCEoYiBpbiBuKSlyZXR1cm47bj1uW2JdfWU9ZVtlLmxlbmd0aC0xXTthPW5bZV07Zz1nKGEpO2chPWEmJm51bGwhPWcmJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkobixlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGUsZyxuLGEpe3ZhciBiPWUuc3BsaXQoIi4iKTtlPTE9PT1iLmxlbmd0aDthPWJbMF07YT0hZSYmYSBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGM9MDtjPGIubGVuZ3RoLTE7YysrKXt2YXIgZD1iW2NdO2lmKCEoZCBpbiBhKSlyZXR1cm47YT1hW2RdfWI9YltiLmxlbmd0aC0xXTtuPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1uP2FbYl06bnVsbDtnPWcobik7bnVsbCE9ZyYmKGU\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxiLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pOmchPT1uJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl0mJihuPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChiKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtuKyIkIitiKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGEsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBlPXthOiEwfSxnPXt9O3RyeXtyZXR1cm4gZy5fX3Byb3RvX189ZSxnLmF9Y2F0Y2gobil7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihlLGcpe2UuX19wcm90b19fPWc7aWYoZS5fX3Byb3RvX18hPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoZSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGV9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihlKXt2YXIgZz0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBnPGUubGVuZ3RoP3tkb25lOiExLHZhbHVlOmVbZysrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoZSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oZSl7dmFyIGc9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmZVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBnP2cuY2FsbChlKTokanNjb21wLmFycmF5SXRlcmF0b3IoZSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrZSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oZSl7dGhpcy55aWVsZFJlc3VsdD1lfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oZSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmUsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oZSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmV9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oZSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmV9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGUsZyl7dGhpcy5uZXh0QWRkcmVzcz1nO3JldHVybnt2YWx1ZTplfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oZSxnKXtlPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGUpO3ZhciBuPWUubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKG4pO2lmKG4uZG9uZSl0aGlzLnlpZWxkUmVzdWx0PW4udmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1nO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89ZSx0aGlzLnlpZWxkKG4udmFsdWUsZyl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oZSl7dGhpcy5uZXh0QWRkcmVzcz1lfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihlLGcpe3RoaXMuY2F0Y2hBZGRyZXNzXz1lO3ZvaWQgMCE9ZyYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWcpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oZSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189ZXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihlLGcpe3RoaXMubmV4dEFkZHJlc3M9ZTt0aGlzLmNhdGNoQWRkcmVzc189Z3x8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihlKXt0aGlzLmNhdGNoQWRkcmVzc189ZXx8MDtlPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oZSxnLG4pe24\/dGhpcy5maW5hbGx5Q29udGV4dHNfW25dPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189ZXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1nfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oZSxnKXtnPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoZ3x8MClbMF07aWYoZz10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGcpe2lmKGcuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Zy5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGcuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWcuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoZSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oZSl7dGhpcy5vYmplY3RfPWU7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGcgaW4gZSl0aGlzLnByb3BlcnRpZXNfLnB1c2goZyk7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBlPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoZSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGV9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWV9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsZSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBnPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoZylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gZz9nWyJyZXR1cm4iXTpmdW5jdGlvbihuKXtyZXR1cm57dmFsdWU6bixkb25lOiEwfX0sZSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxlLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihlLGcsbil7dHJ5e3ZhciBhPWUuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGcpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGEpO2lmKCFhLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxhO3ZhciBiPWEudmFsdWV9Y2F0Y2goYyl7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhjKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtuLmNhbGwodGhpcy5jb250ZXh0XyxiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBlPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTplLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGcpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGcpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXtlPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGUuaXNFeGNlcHRpb24pdGhyb3cgZS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmUucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGUpe3RoaXMubmV4dD1mdW5jdGlvbihnKXtyZXR1cm4gZS5uZXh0XyhnKX07dGhpcy50aHJvdz1mdW5jdGlvbihnKXtyZXR1cm4gZS50aHJvd18oZyl9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGcpe3JldHVybiBlLnJldHVybl8oZyl9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGUsZyl7Zz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhnKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmZS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoZyxlLnByb3RvdHlwZSk7cmV0dXJuIGd9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gZyhhKXtyZXR1cm4gZS5uZXh0KGEpfWZ1bmN0aW9uIG4oYSl7cmV0dXJuIGUudGhyb3coYSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhkKXtkLmRvbmU\/YShkLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZC52YWx1ZSkudGhlbihnLG4pLnRoZW4oYyxiKX1jKGUubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGUoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oZSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhlKSkpfTsKdmFyIGVtYWlsSGFuZGxlcj1mdW5jdGlvbigpe3ZhciBlPTExMTIsZz1mdW5jdGlvbihiKXt0cnl7cmV0dXJuIHdpbmRvdy50b3AubG9jYXRpb25bYl19Y2F0Y2goYyl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbltiXX19LG49ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbj1mdW5jdGlvbigpe307dGhpcy5uZXh0PW51bGw7dGhpcy5fbmV4dENhbGxlZD0hMX07bi5wcm90b3R5cGU9e2V4ZXV0ZTpmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5hY3Rpb24mJnRoaXMuYWN0aW9uLmNhbGwodGhpcyl9LGdvdG9OZXh0OmZ1bmN0aW9uKCl7dGhpcy5faGFzTmV4dCgpJiZ0aGlzLm5leHQuZXhldXRlKCk7dGhpcy5fbmV4dENhbGxlZD0hMDtyZXR1cm4gdGhpc30sc2V0TmV4dDpmdW5jdGlvbihiKXt0aGlzLm5leHQ9YjtyZXR1cm4gdGhpc30sc2V0QWN0aW9uOmZ1bmN0aW9uKGIpe3RoaXMuYWN0aW9uPWI7cmV0dXJuIHRoaXN9LF9oYXNOZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT0KdGhpcy5uZXh0JiYhdGhpcy5fbmV4dENhbGxlZH19O3ZhciBhPXtzdWJqZWN0OiIiLGJvZHk6IiIsc2VuZFRvOiIiLHNlbmRUb0FERkZvcm1hdDoiIixzZWxlY3RlZFNlbmRUbzoiIixzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDoiIixzZW5kRnJvbToiIix1c2VyRW1haWw6IiIsdHJhZGVpbjoiIixwb3B1cGRpdjoiIix1c2VyRmlyc3ROYW1lOiIiLHVzZXJMYXN0TmFtZToiIix1c2VyUGhvbmU6IiIscGhvbmVNYW5kYXRvcnk6MCxwaG9uZVZhbGlkYXRpb25BdHRlbXB0czoxLHVzZXJQb3N0YWw6IiIsdXNlckFkZHJlc3M6IiIsYmlydGhkYXRlOiIiLHVzZXJBdHRhY2htZW50UGF0aDoiIixtYWlsSUQ6ImdlbmVyaWNNYWlsIixsZWFkSW52b2tlcjoiZ2VuZXJpYyIsbGVhZEludm9rZXJTSUQ6IiIsaXNDVEE6ITEsYnV0dG9uVGV4dDoiIixyZXNldENhbGxiYWNrczpmdW5jdGlvbigpeyQuZXh0ZW5kKGEse2NhbGxiYWNrOm51bGwsb25EdXBsaWNhdGVTZW5kOiExLG9uQWZ0ZXJDb25zZW50OiExLApvbkJlZm9yZVNob3dDb25zZW50OiExfSl9LG1ha2U6IiIsbW9kZWw6IiIsdHJpbToiIix2aW46IiIscHJpY2U6MCx5ZWFyOjAsdmVoaWNsZVR5cGU6IiIsc3RvY2tOdW1iZXI6IiIscHVyY2hhc2VfaW50ZW50OiIiLHB1cmNoYXNlX2ludGVudF9zZWN0aW9uOiIiLGFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE6IiIscHJlZmVycmVkX2NvbnRhY3Q6IiIsY2FyaWQ6MCxjb25kaXRpb246IlVzZWQiLGxhbmd1YWdlOiIiLGlzbW9iaWxlc2l0ZToiTk8iLGlzQW1wOiJOTyIscmVmZXJlcjoiIixwb3B1cE9mZmVyVHlwZToiIixwYXJ0aWFsOiExLGZyb21GYWNlYm9vazohMSxza2lwU2VuZGluZzohMSxmcm9tT25Mb2FkOiExLHBvc3RTdWJtaXRDYWxsYmFjazoiIixyZXN1bWVBY3Rpdml0eTohMCxzdWJtaXREYXRhOiIiLHN1Ym1pdFR5cGU6Im5vcm1hbCIsbGFzdENoZWNrc3VtOiIiLGNvbnNlbnREZWFsZXI6ITEsY29uc2VudE9FTTohMSxjb25zZW50VHlwZToiSW1wbGljaXQiLGNvbnNlbnRFeHBpcmF0aW9uOiIiLApjb25zZW50RGF0ZToiIixjb25zZW50RnJlcXVlbmN5Oi0xLGNvbnNlbnREZXRhaWxzRlI6IiIsY29uc2VudERldGFpbHNFTjoiIixkZXRhaWxzRGVmYXVsdHM6IiIsZnJvbUFBOjAsb3duZXJJRDowLGRlcGFydG1lbnQ6IiIsc2tpcEdldERlcDohMSxkZXBhcnRtZW50QnlTdG9jazohMSxhc2tQdXJjaGFzZUludGVudDohMSxsZWFkVGl0bGVVSVRleHQ6IiIsbGVhZFRpdGxlVGV4dDoiIixnZW9sb2Nfc3RhdHVzOiIiLGdlb2xvY19sYXQ6IiIsZ2VvbG9jX2xvbmc6IiIsZ2VvbG9jX2FjY3VyYWN5Oi0xLGdlb2xvY190cmFja19zdHI6IiIsZ2VvbG9jX2VtYWlsX3N0cjoiIix0cmFuc3BvcnRPcHRpb246IiIsY2FyMl9tYWtlOiIiLGNhcjJfbW9kZWw6IiIsY2FyMl90cmltOiIiLGNhcjJfeWVhcjoiIixjYXIyX2NvbG9yOiIiLGNhcjJfb2RvbWV0ZXI6IiIsY2FyMl92aW46IiIsY2FyMl90cmFuc21pc3NvbjoiIixjYXIyX2RyaXZldHJhaW46IiIsY2FyMl9mdWVsdHlwZToiIixjb21tZW50czoiIiwKZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW46IiIsaWdub3JlQ2FwdGNoYTohMSxjb250YWN0SUQ6MCxjb250YWN0QWRkcmVzczoiIixjb250YWN0Q2l0eToiIixjb250YWN0UHJvdmluY2U6IiIsY29udGFjdFppcDoiIixjb250YWN0TkFTOiIiLGNvbnRhY3RCaXJ0aDoiIixkZWFsZXJOYW1lOiIiLGdldE5ld1NlcXVlbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBufSxjcmVhdGVDaGVja3N1bTpmdW5jdGlvbigpe2Zvcih2YXIgYj0iIixjPVsibWFrZSIsIm1vZGVsIiwieWVhciIsIm1haWxJRCJdLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGY9Y1tkXSxoPWFbZl0sbT10eXBlb2YgaDtpZigic3RyaW5nIj09bXx8Im51bWJlciI9PW0pYis9ZisiOiIraCsiOyJ9Yz0iMDAwMDAwMDAgNzcwNzMwOTYgRUUwRTYxMkMgOTkwOTUxQkEgMDc2REM0MTkgNzA2QUY0OEYgRTk2M0E1MzUgOUU2NDk1QTMgMEVEQjg4MzIgNzlEQ0I4QTQgRTBENUU5MUUgOTdEMkQ5ODggMDlCNjRDMkIgN0VCMTdDQkQgRTdCODJEMDcgOTBCRjFEOTEgMURCNzEwNjQgNkFCMDIwRjIgRjNCOTcxNDggODRCRTQxREUgMUFEQUQ0N0QgNkREREU0RUIgRjRENEI1NTEgODNEMzg1QzcgMTM2Qzk4NTYgNjQ2QkE4QzAgRkQ2MkY5N0EgOEE2NUM5RUMgMTQwMTVDNEYgNjMwNjZDRDkgRkEwRjNENjMgOEQwODBERjUgM0I2RTIwQzggNEM2OTEwNUUgRDU2MDQxRTQgQTI2NzcxNzIgM0MwM0U0RDEgNEIwNEQ0NDcgRDIwRDg1RkQgQTUwQUI1NkIgMzVCNUE4RkEgNDJCMjk4NkMgREJCQkM5RDYgQUNCQ0Y5NDAgMzJEODZDRTMgNDVERjVDNzUgRENENjBEQ0YgQUJEMTNENTkgMjZEOTMwQUMgNTFERTAwM0EgQzhENzUxODAgQkZEMDYxMTYgMjFCNEY0QjUgNTZCM0M0MjMgQ0ZCQTk1OTkgQjhCREE1MEYgMjgwMkI4OUUgNUYwNTg4MDggQzYwQ0Q5QjIgQjEwQkU5MjQgMkY2RjdDODcgNTg2ODRDMTEgQzE2MTFEQUIgQjY2NjJEM0QgNzZEQzQxOTAgMDFEQjcxMDYgOThEMjIwQkMgRUZENTEwMkEgNzFCMTg1ODkgMDZCNkI1MUYgOUZCRkU0QTUgRThCOEQ0MzMgNzgwN0M5QTIgMEYwMEY5MzQgOTYwOUE4OEUgRTEwRTk4MTggN0Y2QTBEQkIgMDg2RDNEMkQgOTE2NDZDOTcgRTY2MzVDMDEgNkI2QjUxRjQgMUM2QzYxNjIgODU2NTMwRDggRjI2MjAwNEUgNkMwNjk1RUQgMUIwMUE1N0IgODIwOEY0QzEgRjUwRkM0NTcgNjVCMEQ5QzYgMTJCN0U5NTAgOEJCRUI4RUEgRkNCOTg4N0MgNjJERDFEREYgMTVEQTJENDkgOENEMzdDRjMgRkJENDRDNjUgNERCMjYxNTggM0FCNTUxQ0UgQTNCQzAwNzQgRDRCQjMwRTIgNEFERkE1NDEgM0REODk1RDcgQTREMUM0NkQgRDNENkY0RkIgNDM2OUU5NkEgMzQ2RUQ5RkMgQUQ2Nzg4NDYgREE2MEI4RDAgNDQwNDJENzMgMzMwMzFERTUgQUEwQTRDNUYgREQwRDdDQzkgNTAwNTcxM0MgMjcwMjQxQUEgQkUwQjEwMTAgQzkwQzIwODYgNTc2OEI1MjUgMjA2Rjg1QjMgQjk2NkQ0MDkgQ0U2MUU0OUYgNUVERUY5MEUgMjlEOUM5OTggQjBEMDk4MjIgQzdEN0E4QjQgNTlCMzNEMTcgMkVCNDBEODEgQjdCRDVDM0IgQzBCQTZDQUQgRURCODgzMjAgOUFCRkIzQjYgMDNCNkUyMEMgNzRCMUQyOUEgRUFENTQ3MzkgOUREMjc3QUYgMDREQjI2MTUgNzNEQzE2ODMgRTM2MzBCMTIgOTQ2NDNCODQgMEQ2RDZBM0UgN0E2QTVBQTggRTQwRUNGMEIgOTMwOUZGOUQgMEEwMEFFMjcgN0QwNzlFQjEgRjAwRjkzNDQgODcwOEEzRDIgMUUwMUYyNjggNjkwNkMyRkUgRjc2MjU3NUQgODA2NTY3Q0IgMTk2QzM2NzEgNkU2QjA2RTcgRkVENDFCNzYgODlEMzJCRTAgMTBEQTdBNUEgNjdERDRBQ0MgRjlCOURGNkYgOEVCRUVGRjkgMTdCN0JFNDMgNjBCMDhFRDUgRDZENkEzRTggQTFEMTkzN0UgMzhEOEMyQzQgNEZERkYyNTIgRDFCQjY3RjEgQTZCQzU3NjcgM0ZCNTA2REQgNDhCMjM2NEIgRDgwRDJCREEgQUYwQTFCNEMgMzYwMzRBRjYgNDEwNDdBNjAgREY2MEVGQzMgQTg2N0RGNTUgMzE2RThFRUYgNDY2OUJFNzkgQ0I2MUIzOEMgQkM2NjgzMUEgMjU2RkQyQTAgNTI2OEUyMzYgQ0MwQzc3OTUgQkIwQjQ3MDMgMjIwMjE2QjkgNTUwNTI2MkYgQzVCQTNCQkUgQjJCRDBCMjggMkJCNDVBOTIgNUNCMzZBMDQgQzJEN0ZGQTcgQjVEMENGMzEgMkNEOTlFOEIgNUJERUFFMUQgOUI2NEMyQjAgRUM2M0YyMjYgNzU2QUEzOUMgMDI2RDkzMEEgOUMwOTA2QTkgRUIwRTM2M0YgNzIwNzY3ODUgMDUwMDU3MTMgOTVCRjRBODIgRTJCODdBMTQgN0JCMTJCQUUgMENCNjFCMzggOTJEMjhFOUIgRTVENUJFMEQgN0NEQ0VGQjcgMEJEQkRGMjEgODZEM0QyRDQgRjFENEUyNDIgNjhEREIzRjggMUZEQTgzNkUgODFCRTE2Q0QgRjZCOTI2NUIgNkZCMDc3RTEgMThCNzQ3NzcgODgwODVBRTYgRkYwRjZBNzAgNjYwNjNCQ0EgMTEwMTBCNUMgOEY2NTlFRkYgRjg2MkFFNjkgNjE2QkZGRDMgMTY2Q0NGNDUgQTAwQUUyNzggRDcwREQyRUUgNEUwNDgzNTQgMzkwM0IzQzIgQTc2NzI2NjEgRDA2MDE2RjcgNDk2OTQ3NEQgM0U2RTc3REIgQUVEMTZBNEEgRDlENjVBREMgNDBERjBCNjYgMzdEODNCRjAgQTlCQ0FFNTMgREVCQjlFQzUgNDdCMkNGN0YgMzBCNUZGRTkgQkRCREYyMUMgQ0FCQUMyOEEgNTNCMzkzMzAgMjRCNEEzQTYgQkFEMDM2MDUgQ0RENzA2OTMgNTRERTU3MjkgMjNEOTY3QkYgQjM2NjdBMkUgQzQ2MTRBQjggNUQ2ODFCMDIgMkE2RjJCOTQgQjQwQkJFMzcgQzMwQzhFQTEgNUEwNURGMUIgMkQwMkVGOEQiLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKGspe3JldHVybiBwYXJzZUludChrLAoxNil9KTt2YXIgcj1yXi0xO2Q9MDtmb3IoZj1iLmxlbmd0aDtkPGY7ZCsrKXI9cj4+PjheY1socl5iLmNoYXJDb2RlQXQoZCkpJjI1NV07cmV0dXJuKHJeLTEpPj4+MH0sc2V0TXVsdGlEZWFsZXJCb2R5OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkPyhkPWQucmVwbGFjZSgieyRNVUxUSURFQUxFUk5BTUV9IixiKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IixjKSxhLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGQpLGEuZGVhbGVyTmFtZT1iKTphLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKX0sc2hvd0NvbnNlbnQ6ZnVuY3Rpb24oYixjKXthLmdldEVtYWlsQ29uc2VudChmdW5jdGlvbihkKXt2YXIgZj1hLmdldE5ld1NlcXVlbmNlKCksaD1hLmdldE5ld1NlcXVlbmNlKCk7CmYuc2V0QWN0aW9uKGZ1bmN0aW9uKCl7YS5kZWFsZXJTZWxlY3RGdW5jKCExLHRoaXMpfSk7aC5zZXRBY3Rpb24oZnVuY3Rpb24oKXt2b2lkIDA9PWImJihiPSExKTt2b2lkIDA9PWMmJihjPSExKTt2YXIgbT0kKCIjYXNQb3BVcCIpLHI9ITE7KGEuYXNrUHVyY2hhc2VJbnRlbnR8fGEuc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdCgpKSYmMDwkKCIjYXNQdXJjaGFzZUludGVudCIpLmxlbmd0aCYmKG09JCgiI2FzUHVyY2hhc2VJbnRlbnQiKSxyPSEwKTtpZigwPG0ubGVuZ3RoKXtnZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiKTt2YXIgaz1wYXJzZUludChnZXRDb29raWUoInZpc2l0b3JfaGFzX3NlZW5fcG9wdXAiKSwxMCk7aXNOYU4oaykmJihrPTApO2Euc2tpcFNlbmRpbmc9YjthLmZyb21PbkxvYWQ9YztpZihkLmhhc0NvbnNlbnQpe3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgImluc3RhbnRSZWJhdGUiOmNhc2UgInNjcmF0Y2giOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTsKYnJlYWs7ZGVmYXVsdDoiIiE9YS5wb3N0U3VibWl0Q2FsbGJhY2smJmV2YWwoYS5wb3N0U3VibWl0Q2FsbGJhY2spfWEucmVhZHlUb1NlbmQoKX1lbHNle3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOmNsb3NlUG9wdXBXaWRnZXQoKX0iZnVuY3Rpb24iPT10eXBlb2YgYS5vbkJlZm9yZVNob3dDb25zZW50JiZhLm9uQmVmb3JlU2hvd0NvbnNlbnQuY2FsbCgpO2lmKHIpYS5zaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0KCk\/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksJCgiI2VtYWlsQ29uc2VudFN1Ym1pdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgdD17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChxPT4Ke3RbcS5uYW1lXT1xLnZhbHVlfSk7JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8sIC5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pOyQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiKS5oaWRlKCk7aWYoMT09JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5pcygiOnZpc2libGUiKSYmKCF0LnNoYXJlX3BlcnNvbmFsfHwibm8iPT10LnNoYXJlX3BlcnNvbmFsKSlyZXR1cm4gJCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSwkKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIikuc2hvdygpLCExO2lmKCF0Lmhhc093blByb3BlcnR5KCJjb25zZW50IikpcmV0dXJuICQoIi5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLCExO3ZhciB1PXtwdXJjaGFzZV9pbnRlbnQ6LTEsc2hhcmVfcGVyc29uYWw6Im5vIixwcmVmZXJyZWRfY29udGFjdDoiIn07CmZvcih2YXIgbCBpbiB1KXUuaGFzT3duUHJvcGVydHkobCkmJih0Lmhhc093blByb3BlcnR5KGwpP3NldENvb2tpZShsLHRbbF0pOnRbbF09dVtsXSk7YS5wdXJjaGFzZV9pbnRlbnQ9dC5wdXJjaGFzZV9pbnRlbnQ7YS5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPXQuc2hhcmVfcGVyc29uYWw7YS5wcmVmZXJyZWRfY29udGFjdD10LnByZWZlcnJlZF9jb250YWN0O3U9Ii0xIiE9dC5jb25zZW50O2w9dC5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmIjEiPT10LmNvbnNlbnRfb2VtO2Euc3VibWl0Q29uc2VudCh1LGwsImNvbXBsZXgiKTtyZXR1cm4hMX0pO2Vsc2UgJCgiI2NvbnNlbnRTdWJtaXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKTt0PSExOyQoIi5kZWFsZXJDb25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7JCgiLm9lbUNvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTt2YXIgdT17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChxPT4Ke3VbcS5uYW1lXT1xLnZhbHVlfSk7dS5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudCIpfHwoJCgiLmRlYWxlckNvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSx0PSEwKTttLmZpbmQoImZvcm0gLm9lbUNvbnNlbnQiKS5sZW5ndGgmJiF1Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYkKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpJiYobS5maW5kKCJmb3JtIC5vZW1Db25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSksdD0hMCk7aWYodClyZXR1cm4hMTt0PSItMSIhPXUuY29uc2VudDt2YXIgbD11Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYiMSI9PXUuY29uc2VudF9vZW07YS5zdWJtaXRDb25zZW50KHQsbCl9KTthLnByZVNlbmRJbXBsaWNpdCgpO20ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLApjbG9zZW9uZXNjYXBlOiExfSl9fWVsc2UiIj09YS5jb25zZW50RGV0YWlsc0VOJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0gmJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIJiYoYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMl0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsyXSksYj9yZWFsU2hvd1BvcHVwV2lkZ2V0KGMpOmEucmVhZHlUb1NlbmQoKX0pO2Yuc2V0TmV4dChoKS5leGV1dGUoKX0pfSxoaWRlQ29uc2VudDpmdW5jdGlvbigpe3ZhciBiPSQoIiNhc1BvcFVwOnZpc2libGUiKTskKCIjYXNQdXJjaGFzZUludGVudCIpLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PSQoIiNhc1B1cmNoYXNlSW50ZW50IikuY3NzKCJ2aXNpYmlsaXR5IikmJihiPSQoIiNhc1B1cmNoYXNlSW50ZW50OnZpc2libGUiKSxjb21wbGV4PSEwKTswPGIubGVuZ3RoJiZiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSwKc2F2ZUNvbnNlbnQ6ZnVuY3Rpb24oYixjLGQsZil7JCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIik7YS5oaWRlQ29uc2VudCgpO3ZvaWQgMD09ZCYmKGQ9IiIpO3ZhciBoPWI\/NzMwOjE4MDtjPXtlbWFpbDphLnVzZXJFbWFpbCxmaXJzdDphLnVzZXJGaXJzdE5hbWUsbGFzdDphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLGZyZXF1ZW5jeTpiPzE6LTEsZXhwbGljaXQ6Yj8xOjAsZXhwbGljaXRPRU06Yz8xOjAsaW1nOmQscmVmZXJlcjp2b2lkIDAhPWRvY3VtZW50LnJlZmVycmVyP2RvY3VtZW50LnJlZmVycmVyOiIiLGZyb206IkVIIn07aWYodm9pZCAwIT09YS5wcmVmZXJyZWRfY29udGFjdCYmIiIhPT1hLnByZWZlcnJlZF9jb250YWN0fHx2b2lkIDAhPT1nZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IikmJiIiIT09Z2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpKWQ9YS5wcmVmZXJyZWRfY29udGFjdHx8CmdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSxkPXsiVMOpbMOpcGhvbmUiOiJQSE9ORSIsQ291cnJpZWw6IkVNQUlMIn1bZF18fGQsbnVsbCE9PWQmJihjLmNvbnRhY3RQcmVmZXJlbmNlPWQudG9VcHBlckNhc2UoKSk7c2V0Q29va2llKCJ2aXNpdG9yX2ZyZXF1ZW5jeV9wcmVmZXJlbmNlIiwtMSxoKTtzZXRDb29raWUoInZpc2l0b3JfY29uc2VudF9wcmVmZXJlbmNlIixiPyJFeHBsaWNpdCI6IkltcGxpY2l0IixoKTtzZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiLGI\/InllcyI6Im5vIixoKTtzZXRDb29raWUoInZpc2l0b3JfZW1haWxfcHJlZmVyZW5jZSIsYy5lbWFpbCw5MCk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9hamF4L3RyYWNrRW1haWxQcmVmZXJlbmNlP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOmMsY29tcGxldGU6ZnVuY3Rpb24obSl7dHJ5e3ZhciByPUpTT04ucGFyc2UobS5yZXNwb25zZVRleHQpO2EuY29uc2VudERldGFpbHNFTj1idG9hKHIuZGV0YWlsQ29uc2VudC5FTkdMSVNIKTthLmNvbnNlbnREZXRhaWxzRlI9YnRvYShyLmRldGFpbENvbnNlbnQuRlJFTkNIKX1jYXRjaChrKXt9YS5wb3N0U2F2ZUNvbnNlbnQoYixmKX19KX0scG9zdFNhdmVDb25zZW50OmZ1bmN0aW9uKGIsYyl7dm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSCYmKGI\/KGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzFdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMV0pOihhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsyXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzJdKSk7CmlmKGMpe2lmKGEuaWdub3JlQ2FwdGNoYT9hLnJlYWR5VG9TZW5kKCk6YS5yZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKS5kb25lKGZ1bmN0aW9uKGQpe2EuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49ZDthLnJlYWR5VG9TZW5kKCl9KSwiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkFmdGVyQ29uc2VudClhLm9uQWZ0ZXJDb25zZW50KGIpfWVsc2UgYS5oaWRlQ29uc2VudCgpfSxzdWJtaXRDb25zZW50OmZ1bmN0aW9uKGIsYyxkKXthLmNvbnNlbnREZWFsZXI9YjthLmNvbnNlbnRPRU09YztpZihkJiYiY29tcGxleCI9PWQpe3ZhciBmPSIiOy0xPT1hLnB1cmNoYXNlX2ludGVudD8oZD0iUGFzIGRlIHJlcG9uc2UiLGY9Ik5PX0FOU1dFUiIpOmQ9YS5wdXJjaGFzZV9pbnRlbnQ7bnVsbCE9ZC5tYXRjaCgvMzAvKT8oZD0iTW9pbnMgZGUgMzAgam91cnMiLGY9IkxUXzMwX0RBWVMiKTpudWxsIT1kLm1hdGNoKC8zLyk\/KGQ9Ik1vaW5zIGRlIDMgbW9pcyIsZj0iTFRfM19NT05USFMiKTpudWxsIT1kLm1hdGNoKC82LykmJgoobnVsbCE9ZC5tYXRjaCgvcGx1c3xvdmVyfG1vcmUvKT8oZD0iUGx1cyBkZSA2IG1vaXMiLGY9IkdUXzZfTU9OVEhTIik6KGQ9Ik1vaW5zIGRlIDYgbW9pcyIsZj0iTFRfNl9NT05USFMiKSk7dmFyIGg9IlJlcG9uc2UgLSAiK2EucHVyY2hhc2VfaW50ZW50X3NlY3Rpb24udG9VcHBlckNhc2UoKTthLmxvZ0V2ZW50KCJJbnRlbnRpb25zIGFjaGF0OiAiK2QsIlBVUkNIQVNFX0lOVEVOVF8iK2YpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhbImIuX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGFjaGF0IixoLGQsMV0pfXN3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTticmVhaztkZWZhdWx0OiIiIT1hLnBvc3RTdWJtaXRDYWxsYmFjayYmZXZhbChhLnBvc3RTdWJtaXRDYWxsYmFjayl9InNjcmF0Y2giPT1hLnN1Ym1pdFR5cGUmJnNob3dQb3B1cFdpZGdldCgpOyQoIiNsYXN0Q29uc2VudFBvcCIpLnZhbChiPwoiRXhwbGljaXQiOiJJbXBsaWNpdCIpO2Euc2F2ZUNvbnNlbnQoYixjLCIiLCEwKX0scHJlU2VuZENoZWNrczpmdW5jdGlvbihiKXtiP2EucmVhZHlUb1NlbmQoKTphLnNob3dDb25zZW50KCl9LHNlbmRNYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXthLnN1Ym1pdFR5cGU9Im5vcm1hbCI7Yj0idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjohMTthLmlnbm9yZUNhcHRjaGF8fChhLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPXlpZWxkIGEucmVjYXB0Y2hhLmdldFJlc3BvbnNlKCkpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI29uTGVhZFN1Ym1pdEdlb2xvYyIpLnZhbCgpfHwxIT0kKCIjb25MZWFkU3VibWl0R2VvbG9jIikudmFsKCl8fCJ1bmRlZmluZWQiPT10eXBlb2YgZ2VvTG9jYXRvcnx8YS5za2lwR2VvTG9jKWEucHJlU2VuZENoZWNrcyhiKTtlbHNle3ZhciBjPW5ldyBnZW9Mb2NhdG9yKGZ1bmN0aW9uKGQpe2EuZ2VvbG9jX3N0YXR1cz0KZC5nZW9sb2Nfc3RhdHVzOzE9PWQucmVzdWx0JiYoYS5nZW9sb2NfbGF0PWQubGF0aXR1ZGUsYS5nZW9sb2NfbG9uZz1kLmxvbmdpdHVkZSxhLmdlb2xvY19hY2N1cmFjeT1kLmFjY3VyYWN5LGEuZ2VvbG9jX3RyYWNrX3N0cj1kLmdlb2NvZGVfYWRkcmVzcyxhLmdlb2xvY19lbWFpbF9zdHI9ZC5nZW9jb2RlX2FkZHJlc3Nfc3RyLC0xPT1hLmJvZHkuaW5kZXhPZigiIyNHRU9MT0NBVElPTiMjIikmJihhLmJvZHk9dHJpbShhLmJvZHkpLnJlcGxhY2UoLzxicj4mbmJzcDsvZywiPGJyPiIpKyIjI0dFT0xPQ0FUSU9OIyMiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoIlBPU1RBTF9DT0RFIixkLmdlb2NvZGVfYWRkcmVzc19zdHIpKTsidW5kZWZpbmVkIj09dHlwZW9mICQoIiNsZWFkU2VudCIpLnZhbCgpJiYKKGQ9JCgiPGlucHV0PiIpLmF0dHIoe2lkOiJsZWFkU2VudCIsdHlwZToiaGlkZGVuIn0pLnZhbCgxKSwkKCIjZm9vdGVyRGl2IikuYXBwZW5kKGQpLGEucHJlU2VuZENoZWNrcyhiKSl9KTtjLnRyYWNrTG9jYXRpb25HQT0hMDtjLmdldExvY2F0aW9uKCl9fSl9LHNlbmRVc2VyRW1haWw6ZnVuY3Rpb24oYixjKXtzZW5kVG9EYXRhPXt9O3ZhciBkPWI9IiIsZj0iIixoPSIiO2ZvcihpIGluIGMpaWYoInN0cmluZyI9PXR5cGVvZiBpKXN3aXRjaChpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgImVtYWlsdG8iOmQ9Y1tpXTticmVhaztjYXNlICJlbWFpbGlkIjpiPWNbaV07YnJlYWs7Y2FzZSAiZGVhbGVyZW1haWwiOmY9Y1tpXTticmVhaztjYXNlICJkZWFsZXJwaG9uZSI6aD1jW2ldO2JyZWFrO2RlZmF1bHQ6c2VuZFRvRGF0YVtpXT1jW2ldfWM9e3ZhcnM6SlNPTi5zdHJpbmdpZnkoc2VuZFRvRGF0YSksc2l0ZWlkOiQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5ndWFnZTokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksCmVtYWlsaWQ6YixlbWFpbHRvOmQsZGVhbGVyRW1haWw6ZixkZWFsZXJQaG9uZTpoLHNvdXJjZVVSSTp3aW5kb3cubG9jYXRpb24uaHJlZn07JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9hamF4L2FkZE1haWxUb1NlbmQ\/d3N3aWR0aD0wIixkYXRhOmN9KX0sZ2V0U3RvY2tOdW1iZXI6ZnVuY3Rpb24oKXtpZihhLnN0b2NrTnVtYmVyKXJldHVybiBhLnN0b2NrTnVtYmVyO2lmKDA8JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLmxlbmd0aCYmMDwkKCIjdGFyZ2V0UGFnZSIpLmxlbmd0aCYmWyJORVdDQVJERVRBSUxTIiwiQ0FSREVUQUlMUyIsIlBST01PIiwiVkVISUNMRUVWQUwiXS5pbmNsdWRlcygkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpKSl7dmFyIGI9JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO2lmKDI8Yi5sZW5ndGgpe3ZhciBjPWIuaW5kZXhPZigiKFN0b2NrIik7LTE8YyYmKGI9Yi5zdWJzdHIoYys3KSxjPWIuaW5kZXhPZigiKSIpLAotMTxjJiYoYj1iLnN1YnN0cigwLGMpLnRyaW0oKSkpO2IrPSIifWVsc2UgYj0iIn1lbHNlIGI9Z2V0UGFyYW1ldGVyQnlOYW1lKCJzdG9ja25vIil8fCIiO3JldHVybiBiLnRyaW0oKX0sZ2V0VlBEVXJsRnJvbVN0b2NrOmZ1bmN0aW9uKCl7dmFyIGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO3RyeXt2YXIgYz1hLmdldFN0b2NrTnVtYmVyKCksZD0iIixmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPwoidXNlZCI6Im9jY2FzaW9uIixoPWcoImhyZWYiKSxtPWcoInByb3RvY29sIikscj1oLnJlcGxhY2UobSsiLy8iLCIiKS5zcGxpdCgiLyIpLGs9clswXSx0PWguaW5kZXhPZigiLWlkIik7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgcGFnZXx8IkJVSUxEQU5EUFJJQ0UiIT1wYWdlJiYiTkVXQ0FSREVUQUlMUyIhPXBhZ2UpaWYoLTE8dCl7dmFyIHU9cGFyc2VJbnQoaC5zdWJzdHIodCszKS5yZXBsYWNlKCIuaHRtbCIsIiIpLDEwKTtpZighaXNOYU4odSkmJjA8dSl7dmFyIGw9cltyLmxlbmd0aC0xXTstMTxsLmluZGV4T2YodSkmJihkPSc8YSBocmVmPSInK20rIi8vIitrKyIvIitmKyIvIitsKyJcIiB0YXJnZXQ9J19ibGFuayc+IitiKyI8L2E+Iil9fWVsc2UiIiE9PWEudHJpbSYmKGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrCiIgIithLnRyaW06JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSk7ZWxzZSIiIT09YS50cmltJiYoYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkpLGQ9JzxhIGhyZWY9IicraCsiXCIgdGFyZ2V0PSdfYmxhbmsnPiIrYisiPC9hPiI7aWYoIiI9PWQmJjI8Yy5sZW5ndGgpe3ZhciBxPSQoIiN0b3BzaXRlaWQiKS52YWwoKSx3PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPwoiZW4iOiJmciI7JC5hamF4KHt0eXBlOiJHRVQiLGFzeW5jOiExLGRhdGFUeXBlOiJqc29uIix1cmw6Ii8iK3crIi9waHAvZ2V0VVJMRnJvbVN0b2NrLnBocD9zaXRlSUQ9IitxKyImc3RvY2s9IitjLHN1Y2Nlc3M6ZnVuY3Rpb24ocCl7Im9iamVjdCI9PXR5cGVvZiBwJiZudWxsIT1wJiZ2b2lkIDAhPXAubWFrZSYmKGQ9JzxhIGhyZWY9IicrbSsiLy8iK2srIi8iK2YrIi8iKyhwLm1ha2UrIi0iK3AubW9kZWwrIi0iK3AueWVhcisiLWlkIitwLmlkKyIuaHRtbFwiIHRhcmdldD0nX2JsYW5rJz4iKStwLmZ1bGwrIjwvYT4iKX19KX0iIiE9ZCYmKGI9ZCl9Y2F0Y2gocCl7Y29uc29sZS5sb2cocCl9cmV0dXJuIGJ9LHNldFNlbmRBbmREZXBhcnRtZW50T3ZlcnJpZGU6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyh1LGwpezA8dS5sZW5ndGgmJiIiIT09dS52YWwoKSYmKGIuc2VuZFRvPXUudmFsKCkpOzA8bC5sZW5ndGgmJiIiIT09bC52YWwoKSYmKGIuc2VuZFRvQURGRm9ybWF0PWwudmFsKCkpfQppZigwIT0kKCIjaXNHZW5lcmljU2VhcmNoUGFnZSIpLmxlbmd0aCYmInRydWUiPT09JCgiI2lzR2VuZXJpY1NlYXJjaFBhZ2UiKS52YWwoKSl7c3dpdGNoKGEubWFpbElEKXtjYXNlICJtZW51U2VydmljZSI6Y2FzZSAibWVudUNvbnRhY3RVcyI6Y2FzZSAiaGVhZGVyU2VydmljZSI6cmV0dXJufXZhciBkPSQoIiNDVVNUT01fU0VORF9MRUFEIik7aWYoMCE9PWQubGVuZ3RoJiYwIT09ZC52YWwoKSYmIm51bGwiIT09ZC52YWwoKSl7Yi5kZXBhcnRtZW50PWQudmFsKCkudG9VcHBlckNhc2UoKTt2YXIgZj0kKCIjbmV3RW1haWwiKSxoPSQoIiNuZXdBZGZFbWFpbCIpLG09JCgiI3RleHRTZW5kVG9FbWFpbCIpLHI9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLGs9JCgiI2ZpbmFuY2VFbWFpbCIpLHQ9JCgiI2ZpbmFuY2VBZGZFbWFpbCIpO3N3aXRjaChkLnZhbCgpKXtjYXNlICJuZXciOmMoZixoKTticmVhaztjYXNlICJ1c2VkIjpjKG0scik7YnJlYWs7Y2FzZSAiZmluYW5jZSI6YyhrLHQpfX19fSwKZ2V0SnNvbk9iamVjdDpmdW5jdGlvbigpeyIiPT1hLnRyaW0mJiQoIiNwb3B1cHRyaW0iKS5sZW5ndGgmJiJ7JFBPUFVQVFJJTX0iIT0kKCIjcG9wdXB0cmltIikudmFsKCkmJihhLnRyaW09JCgiI3BvcHVwdHJpbSIpLnZhbCgpKTt2YXIgYj17fSxjPWZ1bmN0aW9uKHkpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KChudWxsIT1Db29raWVzLmdldCh5KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCh5KT9lc2NhcGUoQ29va2llcy5nZXQoeSkpOiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9Y2F0Y2goRCl7cmV0dXJuKG51bGwhPUNvb2tpZXMuZ2V0KHkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KHkpP2VzY2FwZShDb29raWVzLmdldCh5KSk6IiIpKyIiLnJlcGxhY2UoL1wrL2csIiUyMCIpfX0sZD1jKCJyZWxhbmNlSUQiKSxmPWMoInV0bV9zb3VyY2UiKSxoPWMoInV0bV9jYW1wYWlnbiIpLG09YS5kZWNvZGVVUkxSZWN1cnNpdmVseShjKCJ1dG1fa2V5d29yZCIpKSwKcj1jKCJ1dG1fbGFuZGluZ19mb290ZXIiKSxrPWMoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSx0PWMoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLHU9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IktleXdvcmQiOiJNb3QtY2wmIzIzMzsiLGw9MDxtLmxlbmd0aD8iWyAiK3UrIjogIittKyJdIjoiIixxPTA8ci5sZW5ndGg\/IltEZXN0aW5hdGlvbjogIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3IrIl0iOiJbRGVzdGluYXRpb246ICIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtyKyIgLl0iO3U9YygibG9jX2ludGVyZXN0Iik7Yz1jKCJsb2NfcGh5c2ljYWwiKTt2YXIgdz11P2Bsb2NfaW50ZXJlc3Q9JHt1fWA6IiIscD1jP2Bsb2NfcGh5c2ljYWw9JHtjfWA6IiIsdj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iT3JnYW5pYyI6Ik9yZ2FuaXF1ZSI7Cmw9MDxmLmxlbmd0aD9gJHtmfSAtICR7aH0gJHtsfSAke3d9ICR7cH1gOnY7cT1kMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChsKSsiICIrcTtwPSIiO3c9YS5nZXRTdG9ja051bWJlcigpOyIiIT13JiYocD0iKFN0b2NrOiIrYS5nZXRTdG9ja051bWJlcigpKyIpIik7dj17bmV3OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsbmV3aW52OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsdXNlZDoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/InVzZWQiOiJkJ29jY2FzaW9uIn07YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLHEpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUk5BTUV9L2csYS51c2VyRmlyc3ROYW1lKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVTRVJQT1NUQUx9L2csYS51c2VyUG9zdGFsLnRvVXBwZXJDYXNlKCkpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVRNREVUQUlMU30vZywKIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkRk9PVEVSfS9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxhLmJhbmRwTGluaygpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSTEFCRUx9L2cscCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxwKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFZFSElDTEVfQ09ORElUSU9OfS9nLHZbYS5jb25kaXRpb24udG9Mb3dlckNhc2UoKV0pO2lmKCIiIT09YS5ib2R5KXt2YXIgQT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpOiIiO3A9IiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGg\/CiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOiQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCk7QT1BIT1wJiYiIiE9QT9BOnA7YS5kZWFsZXJOYW1lPWEuZGVhbGVyTmFtZT9hLmRlYWxlck5hbWU6QX1hLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSTkFNRX0iLGEuZGVhbGVyTmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JENVU1RPTVZFSElDTEVJTlRFUkVTVH0iLGEubWFrZSsiICIrYS5tb2RlbCsiICIrYS55ZWFyKTthLmxlYWRSZXF1ZXN0VHlwZSYmKGEuYm9keT1hLmJvZHkucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsYS5sZWFkUmVxdWVzdFR5cGUpLGEuc3ViamVjdD1hLnN1YmplY3QucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsYS5sZWFkUmVxdWVzdFR5cGUpLGEubGVhZFJlcXVlc3RUeXBlPSIiKTtib2R5TG93ZXI9YS5ib2R5LnRvTG93ZXJDYXNlKCk7Zm9yKHY9MDstMTxib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTspe3A9Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7CmlmKC0xPT1wKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIscCk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+IixwKTtpZigtMT09cnBsRW5kfHwtMT09cnBsU3RhcnQpYnJlYWs7cnBsU3RyaW5nPWEuYm9keS5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UocnBsU3RyaW5nLCIiKTtib2R5TG93ZXI9YS5ib2R5LnRvTG93ZXJDYXNlKCk7disrO2lmKDUwPHYpYnJlYWt9dj1hLmdldFZQRFVybEZyb21TdG9jaygpOzA9PXYudHJpbSgpLmxlbmd0aCYmKHA9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjp2aXNpYmxlOmZpcnN0Iiksdj1wLmxlbmd0aD9wLnZhbCgpOiIiKTthLnBheW1lbnRWZWhpY2xlJiYwPGEucGF5bWVudFZlaGljbGUubGVuZ3RoJiYodj1hLnBheW1lbnRWZWhpY2xlKTsiIj09YS5jYXJpZCYmJCgiI3RvcGNhcmlkIikubGVuZ3RoJiYoYS5jYXJpZD0kKCIjdG9wY2FyaWQiKS52YWwoKSk7CiIiPT1hLnZpbiYmJCgiI3Bob25ldmluIikubGVuZ3RoJiYoYS52aW49JCgiI3Bob25ldmluIikudmFsKCkpO3A9YS5ib2R5LmluZGV4T2YoIjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIpO2lmKC0xPHApe3ZhciB6PWEuYm9keS5zdWJzdHIocCsyNykuaW5kZXhPZigiPC9zcGFuPiIpOy0xPHomJihhLmJvZHk9YS5ib2R5LnN1YnN0cigwLHApK3YrYS5ib2R5LnN1YnN0cihwK3orMjcrNykpfWEuYm9keT1hLmJvZHkucmVwbGFjZSgvPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgvPFwvc3Bhbj4vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTRUFSQ0hFRFZFSElDTEV9L2csdik7aWYoIjEiPT0kKCIjaGFzVkJEQ0VuYWJsZWQiKS52YWwoKSl7cD0iIjt2PTA7ej0iIjtDb29raWVzLmdldCgiRDJDVVVJRCIpO2Zvcih2YXIgeCBpbiBzZXNzaW9uU3RvcmFnZSlpZigwPT14LmluZGV4T2YoIlZEUE1WQk5QLSIpKXt2YXIgQz0Kc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh4KTtDPj16JiYoej1DLHA9eC5yZXBsYWNlKCJWRFBNVkJOUC0iLCIiKSl9aWYoIiI9PXAmJih6PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19WRFBNViIpLG51bGwhPXopKWZvcih4IGluIHo9SlNPTi5wYXJzZSh6KSx6KUM9elt4XSwyPD1DJiZDPnYmJih2PUMscD14KTsiIiE9cCYmLTE9PWEuYm9keS5pbmRleE9mKCJbVkJEQy1IT1RdIikmJi0xPT1hLmJvZHkuaW5kZXhPZigiW1ZCREMtTVlTXSIpJiYoeD13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtwLGEuYm9keSs9J1tWQkRDLUhPVF0gPGEgaHJlZj0iJyt4KyciPicreCsiPC9hPiIpfXg9JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKTt4PSJ1bmRlZmluZWQiPT10eXBlb2YgeD8idXNlZCI6eC50b0xvd2VyQ2FzZSgpO3A9JCgiI3NlbmRFbWFpbFRvQWxsRGVhbGVycyIpO3A9cC5sZW5ndGgmJjE9PXAudmFsKCk7cD0kKCIjaGFzTXVsdGlwbGVEZWFsZXJzIik7CnA9cC5sZW5ndGgmJjE9PXAudmFsKCk7cD0kKCIjdG9wY2FyaWQiKTtwPTA8cC5sZW5ndGg\/JCgiI3RvcGNhcmlkIikudmFsKCk6IiI7cD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7dj0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25FbWFpbCIpLnZhbCgpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25BZGZFbWFpbCIpLnZhbCgpJiYkKCIjbmV3U2VjdGlvbkFkZkVtYWlsIikudmFsKCk7CnN3aXRjaCghMCl7Y2FzZSA1PHAubGVuZ3RoJiYibmV3Ij09eCYmIWEuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M6YS5zZW5kVG89cCxhLnNlbmRUb0FERkZvcm1hdD01PHYubGVuZ3RoP3Y6cH1iLmxhbmd1YWdlPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKTsiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLnN1YmplY3Q9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuc3ViamVjdCksYi5ib2R5PWNsZWFuQW5kRW5jb2RlVGV4dChhLmJvZHkpKTooYi5zdWJqZWN0PSQuYmFzZTY0LmVuY29kZShhLnN1YmplY3QpLGIuYm9keT0kLmJhc2U2NC5lbmNvZGUoYS5ib2R5KSk7Y2xlYW5FbWFpbERlbGltaXRlcj1mdW5jdGlvbih5KXt2YXIgRD0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIHkmJm51bGwhPXkmJnkubGVuZ3RoJiYoRD15LnNwbGl0KCI7Iikuam9pbigiLCIpKTtyZXR1cm4gRH07InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiJORVciPT1hLmdldERlcCgpJiYKYS5zZW5kVG89PSQoIiNTSVRFVVNFREVNQUlMIikudmFsKCkmJmEuc2VuZFRvQURGRm9ybWF0PT0kKCIjU0lURVVTRURFTUFJTEFERiIpLnZhbCgpJiYoYS5zZW5kVG89JCgiI1NJVEVORVdFTUFJTCIpLnZhbCgpLGEuc2VuZFRvQURGRm9ybWF0PSQoIiNTSVRFTkVXRU1BSUxBREYiKS52YWwoKSk7Yi5zZW5kVG89YS5zZW5kVG87Yi5zZW5kVG9BREZGb3JtYXQ9Y2xlYW5FbWFpbERlbGltaXRlcihhLnNlbmRUb0FERkZvcm1hdCk7Yi5zZWxlY3RlZFNlbmRUbz1hLnNlbGVjdGVkU2VuZFRvO2Iuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtiLmVtYWlsTGlzdFN1ZmZpeD0iIjskKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aCYmKGIuZW1haWxMaXN0U3VmZml4PSQoIiNzaXRlY29tcGlsZWlkIikudmFsKCkpO2IubGVhZEludm9rZXI9YS5sZWFkSW52b2tlcnx8ImdlbmVyaWMiO2IuZGlnaXRhbFJldGFpbFNJRD1hLmRpZ2l0YWxSZXRhaWxTSUR8fAoiIjtiLmNvbnNlbnREZWFsZXI9YS5jb25zZW50RGVhbGVyO2IuY29uc2VudE9FTT1hLmNvbnNlbnRPRU07Yi51c2VyRW1haWw9YS51c2VyRW1haWw7Yi50cmFkZWluPWEudHJhZGVpbjtiLnBvcHVwZGl2PWEucG9wdXBkaXY7Yi51c2VyQXR0YWNobWVudFBhdGg9YS51c2VyQXR0YWNobWVudFBhdGg7Yi51c2VyRmlyc3ROYW1lPWEudXNlckZpcnN0TmFtZTtiLnVzZXJMYXN0TmFtZT1hLnVzZXJMYXN0TmFtZTtiLmxpY2Vuc2VudW09YS5saWNlbnNlbnVtO2IudXNlclBob25lPWEudXNlclBob25lO2IucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM9YS5waG9uZVZhbGlkYXRpb25BdHRlbXB0cztiLnBob25lTWFuZGF0b3J5PWEucGhvbmVNYW5kYXRvcnk7Yi51c2VyUG9zdGFsPWEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpfHxhLmNvbnRhY3RaaXAudG9VcHBlckNhc2UoKTtiLnVzZXJBZGRyZXNzPWEudXNlckFkZHJlc3N8fGEuY29udGFjdEFkZHJlc3M7Yi5wcm92aW5jZT1hLmNvbnRhY3RQcm92aW5jZTsKYi5iaXJ0aGRhdGU9YS5iaXJ0aGRhdGU7Yi5zZW5kRnJvbT1hLnNlbmRGcm9tO2IubWFpbElEPWEubWFpbElEO2IuaXNDVEE9YS5pc0NUQTtiLmJ1dHRvblRleHQ9YS5idXR0b25UZXh0O2IuZnJvbVVSTD13aW5kb3cubG9jYXRpb24uaHJlZjtiLm1ha2U9YS5tYWtlfHwiIjtiLm1vZGVsPWEubW9kZWx8fCIiO2IudHJpbT1hLnRyaW18fCIiO2IudmluPWEudmlufHwiIjtiLnByaWNlPWEucHJpY2V8fCIiO2IueWVhcj1hLnllYXJ8fCIiO2IudmVoaWNsZVR5cGU9YS52ZWhpY2xlVHlwZXx8IiI7Yi5zdG9ja051bWJlcj13O2IuY2FyaWQ9YS5jYXJpZHx8IiI7Yi5jb25kaXRpb249YS5jb25kaXRpb247Yi5pc21vYmlsZXNpdGU9YS5pc21vYmlsZXNpdGU7Yi5pc0FtcD0iTk8iO2IucmVmZXJlcj0kKCIjdG9wcmVmZXJlciIpLnZhbCgpO2Iuc2l0ZWlkPSQoIiN0b3BzaXRlaWQiKS52YWwoKTtiLmRlYWxlcmlkPWEuZGVhbGVyaWR8fCIiO2Iub2VtQ2VydGlmaWNhdGlvbj0kKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpfHwKbnVsbDtiLnV0bV9zb3VyY2U9ZjtiLnJlbGFuY2VJRD1kO2IudXRtX2NhbXBhaWduPWg7Yi51dG1fa2V5d29yZD1tO2IudXRtX2xhbmRpbmc9cjtiLnV0bV9kZXRhaWxzPWw7Yi51dG1fc291cmNlX3JldGFyZ2V0aW5nPWs7Yi51dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmc9dDtiLmxvY19pbnRlcmVzdD11O2IubG9jX3BoeXNpY2FsPWM7Yi5wb3B1cE9mZmVyVHlwZT1hLnBvcHVwT2ZmZXJUeXBlO2IuZnJvbUZhY2Vib29rPWEuZnJvbUZhY2Vib29rO2IuZGV0YWlsc0ZSPWEuY29uc2VudERldGFpbHNGUjtiLmRldGFpbHNFTj1hLmNvbnNlbnREZXRhaWxzRU47Yi5mcm9tQUE9YS5mcm9tQUE7Yi5vd25lcklEPWEub3duZXJJRDtiLmxlYWRUaXRsZVVJVGV4dD1hLmxlYWRUaXRsZVVJVGV4dDtiLnNtcz1hLnNtcztiLm9uQWZ0ZXJMZWFkQ3JlYXRlZD1hLm9uQWZ0ZXJMZWFkQ3JlYXRlZDtiLnRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRD1hLnRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRHx8CiIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9YS51c2VyRmlyc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgiZmlyc3RuYW1lIixhLnVzZXJGaXJzdE5hbWUpLCIiIT1hLnVzZXJMYXN0TmFtZSYmY2xpZW50U3RvcmFnZS5zZXQoImxhc3RuYW1lIixhLnVzZXJMYXN0TmFtZSksIiIhPWEudXNlckVtYWlsJiZjbGllbnRTdG9yYWdlLnNldCgiZW1haWwiLGEudXNlckVtYWlsKSwiIiE9YS51c2VyUGhvbmUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJwaG9uZSIsYS51c2VyUGhvbmUpKTtiLmNoYXRib3RCb29zdElkPWdldENvb2tpZUQyYygiZDJjY2hhdGJvdGlkIik7Yi5zdHlsZWlkPSQoIiNzdHlsZUlkSW5Vc2UiKS5sZW5ndGg\/JCgiI3N0eWxlSWRJblVzZSIpLnZhbCgpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoPyQoIiNhY3RpdmVTdHlsZUlEIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmFkcF9mb3VyZXllc19pZCYmd2luZG93LmFkcF9mb3VyZXllc19pZD8KKGIuVW5pdGVXZWJzaXRlQ3VzdG9tZXJJZD13aW5kb3cuYWRwX2ZvdXJleWVzX2lkLGNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIHBhc3NlZCIsd2luZG93LmFkcF9mb3VyZXllc19pZCkpOmNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIC0gd2luZG93LmFkcF9mb3VyZXllc19pZCBpZiB3YXMgdHJpZ2dlcmVkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKTthLm9uQWZ0ZXJMZWFkQ3JlYXRlZCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209IiIsYS5zZW5kVG89YS5zZW5kVG98fCIiLGQ9YS5zZW5kVG8uc3BsaXQoIjsiKSxkWzBdLnRyaW0oKS5sZW5ndGg\/Yi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT1kWzBdLnRyaW0oKTooZD1hLnNlbmRUb0FERkZvcm1hdC5zcGxpdCgiLCIpLGRbMF0udHJpbSgpLmxlbmd0aCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209ZFswXS50cmltKCkpKSk7Yi51c2VyQWdlbnQ9JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpOwpiLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWEuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW47ZD1hLnJlY2FwdGNoYS5jdXJyZW50Q29udGV4dCgpO2IuZ3JlY2FwdGNoYUFjdGlvbj1kLmFjdGlvbjtiLmdyZWNhcHRjaGFNb2RlPWQubW9kZTtiLmNvbnRhY3RJRD1hLmNvbnRhY3RJRDtiLmNvbnRhY3ROQVM9YS5jb250YWN0TkFTO2IuY29udGFjdEJpcnRoPWEuY29udGFjdEJpcnRoO2IuZGVhbGVyTmFtZT1hLmRlYWxlck5hbWU\/YS5kZWFsZXJOYW1lOkE7Yi5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPWEuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YTtiLnByZWZlcnJlZF9jb250YWN0PWEucHJlZmVycmVkX2NvbnRhY3Q7Yi51dG1kZXRhaWxzVG9SZXBsYWNlPXE7IiIhPWEuZ2VvbG9jX3N0YXR1cyYmKGIuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY19zdGF0dXMsYi5nZW9sb2NfbGF0PWEuZ2VvbG9jX2xhdCxiLmdlb2xvY19sb25nPWEuZ2VvbG9jX2xvbmcsYi5nZW9sb2NfYWNjdXJhY3k9CmEuZ2VvbG9jX2FjY3VyYWN5LCJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhbkFuZEVuY29kZVRleHQ\/KGIuZ2VvbG9jX3RyYWNrX3N0cj1jbGVhbkFuZEVuY29kZVRleHQoYS5nZW9sb2NfdHJhY2tfc3RyKSxiLmdlb2xvY19lbWFpbF9zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX2VtYWlsX3N0cikpOihiLmdlb2xvY190cmFja19zdHI9JC5iYXNlNjQuZW5jb2RlKGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY19lbWFpbF9zdHIpKSk7IiIhPWEuY2FyMl9tYWtlJiYoYi5jYXIyX21ha2U9YS5jYXIyX21ha2UsYi5jYXIyX21vZGVsPWEuY2FyMl9tb2RlbCxiLmNhcjJfdHJpbT1hLmNhcjJfdHJpbSxiLmNhcjJfeWVhcj1hLmNhcjJfeWVhcixiLmNhcjJfY29sb3I9YS5jYXIyX2NvbG9yLGIuY2FyMl9vZG9tZXRlcj1hLmNhcjJfb2RvbWV0ZXIsYi5jYXIyX3Zpbj1hLmNhcjJfdmluLGIuY2FyMl90cmFuc21pc3Nvbj0KYS5jYXIyX3RyYW5zbWlzc29uLGIuY2FyMl9kcml2ZXRyYWluPWEuY2FyMl9kcml2ZXRyYWluLGIuY2FyMl9mdWVsdHlwZT1hLmNhcjJfZnVlbHR5cGUpO2Iuc2VydmljZURhdGUxPWEuc2VydmljZURhdGUxfHwiIjtiLnNlcnZpY2VEYXRlMj1hLnNlcnZpY2VEYXRlMnx8IiI7Yi53YWl0aW5nT25TaXRlPWEud2FpdGluZ09uU2l0ZXx8IiI7Yi5jb21tZW50cz1hLmNvbW1lbnRzO2Euc2tpcEdldERlcD9iLmRlcGFydG1lbnQ9YS5kZXBhcnRtZW50OihiLmRlcGFydG1lbnQ9YS5nZXREZXAoKSxhLmRlcGFydG1lbnQ9YS5nZXREZXAoKSk7aWYoIlVTRUQiPT1iLmRlcGFydG1lbnQmJjA9PWEuZGVwYXJ0bWVudEJ5U3RvY2spe3ZhciBCPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6dmlzaWJsZTpmaXJzdCIpLnZhbCgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQiYmKEI9Qi5zcGxpdCgiKFN0b2NrIiksQlsxXSkpe3ZhciBGPSJVU0VEIjtCPUJbMV0ucmVwbGFjZSgiKSIsCiIiKS5yZXBsYWNlKCI6IiwiIikucmVwbGFjZSgiIyIsIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvanMvanNvbi91c2VkQnlQcmljZUFzYy5qc29uIixzdWNjZXNzOmZ1bmN0aW9uKHkpeyQuZWFjaCh5LGZ1bmN0aW9uKEQsRSl7aWYoRS5zbi50b0xvd2VyQ2FzZSgpPT1CKXJldHVybiBGPSIxIj09RS5pc25ld3x8IjEiPT1FLmlzZGVtbz8iTkVXIjoiVVNFRCIsITF9KTthLmRlcGFydG1lbnRCeVN0b2NrPUZ9fSl9fSIiIT09YS5kZXBhcnRtZW50QnlTdG9jayYmITEhPT1hLmRlcGFydG1lbnRCeVN0b2NrJiYoYi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudEJ5U3RvY2spOyFiLmRlcGFydG1lbnR8fCJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSYmInVzZWQiPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT9iLmNvbmRpdGlvbj1iLmRlcGFydG1lbnQmJiJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT8KIk5ldyI6IlVzZWQiOmIuY29uZGl0aW9uPSQoIiNjdXJyZW50U3RhdHVzIikubGVuZ3RoPyQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk6InVua25vd24iO2IuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpIT1iLmNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpJiYoYi5jb25kaXRpb249Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkpO251bGwhPWEuY3JlZGl0RGF0YSYmKGIuY3JlZGl0RGF0YT1hLmNyZWRpdERhdGEpO251bGwhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhJiYoYi5kZWFsZXJBcHBvaW50bWVudERhdGE9YS5kZWFsZXJBcHBvaW50bWVudERhdGEpOzA8JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS5sZW5ndGgmJihiLnB1cmNoYXNlX2ludGVudD1hLnB1cmNoYXNlX2ludGVudCxiLnB1cmNoYXNlX2ludGVudF9hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS52YWwoKSxiLnB1cmNoYXNlX2ludGVudF9ub19hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9ub19hbnN3ZXIiKS52YWwoKSk7CmIucHVyY2hhc2VfaW50ZW50PWEuYXNrUHVyY2hhc2VJbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ6LTE6ITE7JCgiI2N1cnJlbnRJdGVtVHlwZSIpLmxlbmd0aD9iLml0ZW1UeXBlPSQoIiNjdXJyZW50SXRlbVR5cGUiKS52YWwoKTpiLml0ZW1UeXBlPSIiO2EuYm9keSs9Ilx4M2MhLS0gSlMgVW5pcXVlIGlkOiIrTWF0aC5yb3VuZCg1RTMqTWF0aC5yYW5kb20oKSkrIi0tXHgzZSI7cmV0dXJuIGJ9LGdldERlcDpmdW5jdGlvbigpe3ZhciBiPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxjPS9cYihuZXd8bmV1ZnxuZXVmc3xjb25maWd1cmF0aW9uLWV0LXByaXh8YnVpbGQtYW5kLXByaWNlfGRlbW9zfGRlbW9uc3RyYXRldXJzfGNsZWFyYW5jZSlcYi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGQ9L1xiKHVzZWR8b2NjYXNpb24pXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6JiYKInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UmJiJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKXt2YXIgZj13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRDdXJyZW50RmlsdGVyU3RhdGUoImNhdGVnb3J5Iik7aWYoITEhPT1mJiZmLmxlbmd0aClpZigxPT09Zi5sZW5ndGgmJjM9PT1mWzBdLnZhbHVlKWM9ITAsZD0hMTtlbHNle3ZhciBoLG09MCxyPTA7Zm9yKGg9MDtoIT09Zi5sZW5ndGg7aCsrKWZbaF0ubnVtPm0mJihtPWZbaF0ubnVtLHI9ZltoXS52YWx1ZSk7MT09PXJ8fDI9PT1yPyhjPSExLGQ9ITApOjM9PT1yJiYoYz0hMCxkPSExKX19Zj0wO2g9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjpyZWFsbHlWaXNpYmxlOmZpcnN0Iik7MDxoLmxlbmd0aCYmKGg9aC52YWwoKS5tYXRjaCgvMTlbMC05XXsyfXwyMFswLTldezJ9L2cpLApudWxsIT1oJiYoZj1wYXJzZUludChoWzBdKSkpO2Z8fChmPWEueWVhcik7c3dpdGNoKGEubWFpbElEKXtjYXNlICJUaXJlc1JlcXVlc3QiOmNhc2UgIlBhcnRzUmVxdWVzdCI6cmV0dXJuIlBBUlRTIjtjYXNlICJTZXJ2aWNlUmVxdWVzdCI6Y2FzZSAiUmVjYWxscyI6Y2FzZSAiQm9keVNob3AiOmNhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpjYXNlICJFc3RoZXRpY1JlcXVlc3QiOnJldHVybiJTRVJWSUNFIjtjYXNlICJDcmVkaXRSZXF1ZXN0IjpjYXNlICJDcmVkaXRSZXF1ZXN0TW9iaWxlIjpjYXNlICJEZWFsZXJUcmFjayI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOmNhc2UgIkNyZWRpdFNjb3JlIjpjYXNlICJDcmVkaXRBcHBDYXJkIjpyZXR1cm4iRklOQU5DRSI7Y2FzZSAiSm9iT2ZmZXIiOnJldHVybiJIUiI7CmNhc2UgIm1lbnVDb250YWN0VXMiOmlmKCIiIT09YS5kZXBhcnRtZW50KXJldHVybiBhLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50JiYiIiE9PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpcmV0dXJuIG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKX1pZigwPGYpe2lmKGQmJmY+PWIrMSlyZXR1cm4iTkVXIjtpZighYyYmIWQpe2lmKGY+PWItMSlyZXR1cm4iTkVXIjtpZihmPGItMSlyZXR1cm4iVVNFRCJ9fXJldHVybiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKT8kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTpkPyJVU0VEIjpjPyJORVciOiIiIT09YS5kZXBhcnRtZW50P2EuZGVwYXJ0bWVudDoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwb3B1cERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPwokKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCk6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZGVmYXVsdERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKS5sZW5ndGg\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6IlVTRUQifSxkZWFsZXJTZWxlY3RGdW5jOmZ1bmN0aW9uKGIsYyl7Yj12b2lkIDA9PT1iPyExOmI7dmFyIGQ9JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLGY9ZC5maW5kKCJzZWxlY3QiKSxoPWQuZmluZCgiLmRlYWxlci1zZWxlY3Qtd3JhcHBlciIpO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITE7dmFyIG09c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIik7aWYobSlyZXR1cm4gYS5zZXREZWFsZXJTZWxlY3RFbWFpbHMoKSxifHwoYj1KU09OLnBhcnNlKG0pLGEuc2V0TXVsdGlEZWFsZXJCb2R5KGIuZGVhbGVyTmFtZSxhLnNlbmRUbykpLGMuZ290b05leHQoKTtpZigoJCgiI2N1c3RvbUZvcm1fc2VuZHRvIikubGVuZ3RoJiYKIiIhPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpfHwkKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS5sZW5ndGgmJiIiIT0kKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS52YWwoKSkmJjA8PSQoIiNQQUdFSUQiKS52YWwoKS5pbmRleE9mKCJnZW5lcmljXyIpfHwwPT1kLmxlbmd0aClyZXR1cm4gYy5nb3RvTmV4dCgpO2lmKCJKb2JPZmZlciI9PWEubWFpbElEJiYiIiE9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSlyZXR1cm4gYS5zZW5kVG89JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSxhLnNlbGVjdGVkU2VuZFRvPSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0IikudmFsKCksYS5zZW5kVG9BREZGb3JtYXQ9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHRBREYiKS52YWwoKSxhLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0QURGIikudmFsKCksYy5nb3RvTmV4dCgpO2lmKDAhPT1hLnNlbGVjdGVkU2VuZFRvLmxlbmd0aHx8CjAhPT1hLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0Lmxlbmd0aClyZXR1cm4gMD09PWEuc2VuZFRvLmxlbmd0aCYmKGEuc2VuZFRvPWEuc2VsZWN0ZWRTZW5kVG8pLDA9PT1hLnNlbmRUb0FERkZvcm1hdC5sZW5ndGgmJihhLnNlbmRUb0FERkZvcm1hdD1hLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0KSxjLmdvdG9OZXh0KCk7Yj0kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikubGVuZ3RoPyQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS52YWwoKToibG9jYXRpb24iO2lmKDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCkmJiJsb2NhdGlvbiI9PT1ifHwoIiIhPT1hLnN0b2NrTnVtYmVyfHxhLmNhcmlkfHxhLmdldFN0b2NrTnVtYmVyKCkpJiYibG9jYXRpb24iPT09YilyZXR1cm4gYy5nb3RvTmV4dCgpOyQoIiNtdWx0aS1kZWFsZXItbWFwIikubGVuZ3RoJiYoR29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCksCmI9JCgiI2Zvb3Rlckdvb2dsZU1hcFpvb20iKS52YWwoKSxiPTE8cGFyc2VJbnQoYikmJjE4Pj1wYXJzZUludChiKT9wYXJzZUludChiKTo5LGI9bmV3IEdvb2dsZU1hcHNXcmFwcGVyKHtlbGVtZW50OiJtdWx0aS1kZWFsZXItbWFwIixhZGRyZXNzZXM6InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXM\/Zm9vdGVyTWFwQWRkcmVzc2VzOltdLHpvb206YixvbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbihrLHQpe3ZhciB1PSQoYC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uW2RhdGEtZGVhbGVyaWQ9IiR7ay5kZWFsZXJJZH0iXWApO3Uub24oImNsaWNrIixmdW5jdGlvbigpe2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIodCwiY2xpY2siKX0pO3QuYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyQoIi5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uIikucmVtb3ZlQ2xhc3MoImZvY3VzZWQiKTt2YXIgbD0kKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKTsKdS5sZW5ndGgmJih1LmFkZENsYXNzKCJmb2N1c2VkIiksdVswXS5mb2N1cygpLG11bHRpRGVhbGVyU2VsZWN0LnNldFNlbGVjdCh1WzBdLCExKSk7aWYobC5sZW5ndGgpe3ZhciBxPWwuZmluZChgb3B0aW9uW2RhdGEtZGVhbGVyaWQ9IiR7ay5kZWFsZXJJZH0iXWApO3EubGVuZ3RoJiZsLnZhbChxLnZhbCgpKX19KTskKGAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIG9wdGlvbltkYXRhLWRlYWxlcmlkPSIke2suZGVhbGVySWR9Il1gKS5kYXRhKCJtYXJrZXIiLHQpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzJiYwIT1mb290ZXJNYXBBZGRyZXNzZXMubGVuZ3RofHwkKCIjbXVsdGktZGVhbGVyLW1hcCIpLmhpZGUoKTskKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBrPSQodGhpcykuZmluZCgiOnNlbGVjdGVkIik7CmsubGVuZ3RoJiZnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKGsuZGF0YSgibWFya2VyIiksImNsaWNrIil9KX19KSwkKCIjbXVsdGktZGVhbGVyLW1hcCIpLnNob3coKSxiLmluaXQoKSk7Zi5vZmYoImZvY3VzIikub24oImZvY3VzIixmdW5jdGlvbigpe2YucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSk7dmFyIHI9ZnVuY3Rpb24oayl7dmFyIHQ9YS5nZXREZXAoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRClzd2l0Y2goJCgiI2pvYm9mZmVyX2RlcGFydG1lbnQiKS52YWwoKSl7Y2FzZSAiU2FsZXNuZXciOnQ9Ik5FVyI7YnJlYWs7Y2FzZSAiU2FsZXN1c2VkIjp0PSJVU0VEIjticmVhaztjYXNlICJTZXJ2aWNlIjp0PSJTRVJWSUNFIjticmVhaztjYXNlICJQYXJ0cyI6dD0iUEFSVFMiO2JyZWFrO2RlZmF1bHQ6dD0iTkVXIn12YXIgdT0iIixsPSIiO3N3aXRjaCh0KXtjYXNlICJVU0VEIjp1PWsuZGF0YSgiZW1haWx1c2VkIik7bD1rLmRhdGEoImVtYWlsYWRmdXNlZCIpOwpicmVhaztjYXNlICJTRVJWSUNFIjp1PWsuZGF0YSgiZW1haWxzZXJ2aWNlIik7bD1rLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIlBBUlRTIjp1PWsuZGF0YSgiZW1haWxwYXJ0cyIpfHxrLmRhdGEoImVtYWlsc2VydmljZSIpO2w9ay5kYXRhKCJlbWFpbGFkZnBhcnRzIil8fGsuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiRklOQU5DRSI6dT1rLmRhdGEoImVtYWlsZmluYW5jZSIpLGw9ay5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKX1hLnNlbmRUbz11fHxrLmRhdGEoImVtYWlsIil8fGsuZGF0YSgiZW1haWx1c2VkIik7YS5zZWxlY3RlZFNlbmRUbz11fHxrLmRhdGEoImVtYWlsIil8fGsuZGF0YSgiZW1haWx1c2VkIik7YS5zZW5kVG9BREZGb3JtYXQ9bHx8ay5kYXRhKCJlbWFpbGFkZiIpfHxrLmRhdGEoImVtYWlsYWRmdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9bHx8ay5kYXRhKCJlbWFpbGFkZiIpfHxrLmRhdGEoImVtYWlsYWRmdXNlZCIpOwphLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwO2EuZGVhbGVyaWQ9ay5kYXRhKCJkZWFsZXJpZCIpO2Euc2V0TXVsdGlEZWFsZXJCb2R5KGsudGV4dCgpLnRyaW0oKSxhLnNlbmRUbyk7az17c2VuZFRvOmEuc2VuZFRvLHNlbGVjdGVkU2VuZFRvOmEuc2VsZWN0ZWRTZW5kVG8sc2VuZFRvQURGRm9ybWF0OmEuc2VuZFRvQURGRm9ybWF0LHNlbGVjdGVkU2VuZFRvQURGRm9ybWF0OmEuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQsZGVhbGVyTmFtZTprLnRleHQoKS50cmltKCksZGVhbGVyaWQ6ay5kYXRhKCJkZWFsZXJpZCIpLG9wdGlvbmlkOmsudmFsKCl9O3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIsSlNPTi5zdHJpbmdpZnkoaykpfTskKCIjbXV0bGlBZGRyZXNzU3VibWl0Iikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZigiIj09PWYudmFsKCkpZi5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksaC5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIik7CmVsc2V7dmFyIGs9Zi5maW5kKCI6c2VsZWN0ZWQiKTtyKGspOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLGUpO2QudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7Yy5nb3RvTmV4dCgpfX0pO2lmKCQoIi5tdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24tY2xvc2UiKS5sZW5ndGgpJCgiLm11bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi1jbG9zZSIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7TGVhZHMmJk9iamVjdC5rZXlzKExlYWRzKS5mb3JFYWNoKGZ1bmN0aW9uKGspeyJ1bmRlZmluZWQiIT09dHlwZW9mIExlYWRzW2tdLmxlYWRJZCYmTGVhZEhhbmRsZXIoKS5nZXRMZWFkKExlYWRzW2tdLmxlYWRJZCkuY2xvc2UoKX0pO3BvcHVwU3VwZXJ2aXNvciYmcG9wdXBTdXBlcnZpc29yLnBvcHVwcyYmcG9wdXBTdXBlcnZpc29yLnBvcHVwcy5mb3JFYWNoKGZ1bmN0aW9uKGspe2smJnR5cGVvZiBrLmlzQWN0aXZlKCkmJmsuY2FuY2VsKCl9KTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4IiwKZSk7ZC50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pO2lmKCIiIT09YS5tYWtlJiZtdWx0aURlYWxlclNlbGVjdCYmKGI9bXVsdGlEZWFsZXJTZWxlY3QuZmlsdGVyKGYpLGIuYnlNYWtlKGEubWFrZSksYj1iLmhhc09ubHlPbmUoKSkpcmV0dXJuIHIoYiksYy5nb3RvTmV4dCgpO2gubGVuZ3RoJiYoYj1oLmZpbmQoImJ1dHRvbiIpLnRvQXJyYXkoKSxiLmxlbmd0aCYmKGI9ZnVuY3Rpb24oayl7Zm9yKGxldCB0PWsubGVuZ3RoLTE7MDx0O3QtLSl7Y29uc3QgdT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKHQrMSkpO1trW3RdLGtbdV1dPVtrW3VdLGtbdF1dfXJldHVybiBrfShiKSxoLmZpbmQoImJ1dHRvbiIpLnJlbW92ZSgpLGguYXBwZW5kKGIpKSk7ZC5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbDIiLGNsb3Nlb25lc2NhcGU6ITF9KTsKZT0xMTEyPGU\/ZTokKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4Iik7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIscGFyc2VJbnQoZC5jc3MoInotaW5kZXgiKSktMSl9LHNldERlYWxlclNlbGVjdEVtYWlsczpmdW5jdGlvbigpe3ZhciBiPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIpO2lmKGImJihiPUpTT04ucGFyc2UoYiksYS5kZWFsZXJpZD1iLmRlYWxlcmlkLGI9JCgnI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBzZWxlY3RbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdIG9wdGlvblt2YWx1ZT0iJytiLm9wdGlvbmlkKyciXScpKSl7dmFyIGM9YS5nZXREZXAoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRClzd2l0Y2goJCgiI2pvYm9mZmVyX2RlcGFydG1lbnQiKS52YWwoKSl7Y2FzZSAiU2FsZXNuZXciOmM9Ik5FVyI7YnJlYWs7Y2FzZSAiU2FsZXN1c2VkIjpjPSJVU0VEIjticmVhaztjYXNlICJTZXJ2aWNlIjpjPQoiU0VSVklDRSI7YnJlYWs7Y2FzZSAiUGFydHMiOmM9IlBBUlRTIjticmVhaztkZWZhdWx0OmM9Ik5FVyJ9dmFyIGQ9IiIsZj0iIjtzd2l0Y2goYyl7Y2FzZSAiVVNFRCI6ZD1iLmRhdGEoImVtYWlsdXNlZCIpO2Y9Yi5kYXRhKCJlbWFpbGFkZnVzZWQiKTticmVhaztjYXNlICJTRVJWSUNFIjpkPWIuZGF0YSgiZW1haWxzZXJ2aWNlIik7Zj1iLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIlBBUlRTIjpkPWIuZGF0YSgiZW1haWxwYXJ0cyIpfHxiLmRhdGEoImVtYWlsc2VydmljZSIpO2Y9Yi5kYXRhKCJlbWFpbGFkZnBhcnRzIil8fGIuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiRklOQU5DRSI6ZD1iLmRhdGEoImVtYWlsZmluYW5jZSIpLGY9Yi5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKX1hLnNlbmRUbz1kfHxiLmRhdGEoImVtYWlsIil8fGIuZGF0YSgiZW1haWx1c2VkIik7YS5zZWxlY3RlZFNlbmRUbz1kfHxiLmRhdGEoImVtYWlsIil8fGIuZGF0YSgiZW1haWx1c2VkIik7CmEuc2VuZFRvQURGRm9ybWF0PWZ8fGIuZGF0YSgiZW1haWxhZGYiKXx8Yi5kYXRhKCJlbWFpbGFkZnVzZWQiKTthLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWZ8fGIuZGF0YSgiZW1haWxhZGYiKXx8Yi5kYXRhKCJlbWFpbGFkZnVzZWQiKTthLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwfX0saGFuZGxlU2VuZEZhaWx1cmU6ZnVuY3Rpb24oYixjKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkRW1haWxOb3RTZW50IixhLm1haWxJRCxiKTthLnBhcnRpYWw9ITE7YS5sYXN0Q2hlY2tzdW09ITE7Yj0iIjt0cnl7Yj1qc19kMmNfZ2V0X3ZhbCgiRU1BSUxfRkFJTF9NRVNTQUdFIil9Y2F0Y2goZCl7fWJ8fChiPSJUaGVyZSB3YXMgYSBwcm9ibGVtIHNlbmRpbmcgeW91ciBtZXNzYWdlLiBQbGVhc2UgdHJ5IGFnYWluLiIpO2FsZXJ0KGM\/YisiXG4iK2M6Yik7alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIse21haWxJRDphLm1haWxJRCxzdWNjZXNzOiExLAplcnJvcjpjfHwiIn0pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNhbGxiYWNrKXRyeXthLmNhbGxiYWNrKCExKX1jYXRjaChkKXt9YS5jYWxsYmFjaz1udWxsfSxyZWFkeVRvU2VuZDpmdW5jdGlvbigpe3ZhciBiPWEuY3JlYXRlQ2hlY2tzdW0oKTtpZihhLmxhc3RDaGVja3N1bT09YikiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkR1cGxpY2F0ZVNlbmQ\/YS5vbkR1cGxpY2F0ZVNlbmQuY2FsbCgpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiQ1JDIE1hdGNoIixhLmxhc3RDaGVja3N1bSxiKTtlbHNle2EubGFzdENoZWNrc3VtPWI7JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkhPQokKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmKGI9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iQ29uY2Vzc2lvbiBv77+9IGVzdCBzaXR177+9IGxlIHbvv71oaWN1bGU6ICI6IkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGIrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixiKSk7MDwkKCIjaXNtb2JpbGUiKS5sZW5ndGgmJihhLmlzbW9iaWxlc2l0ZT0iWUVTIik7aWYoMD09YS5zdWJqZWN0Lmxlbmd0aHx8MD09YS5ib2R5Lmxlbmd0aClyZXR1cm4hMTthLmluamVjdEN0YUNvbXBsZXRlZERhdGEoKTtqc29uT2JqZWN0PWEuZ2V0SnNvbk9iamVjdCgpO2I9bnVsbDtiPUpTT04uc3RyaW5naWZ5KGpzb25PYmplY3QpO3ZhciBjPWEucG9wdXBPZmZlclR5cGU7Yj17anNvbjpifTtpZihhLnBhcnRpYWwpYi5wYXJ0aWFsPQohMDtlbHNleyJ1bmRlZmluZWQiIT10eXBlb2YgZ3RhZyYmd2luZG93LmQyY19hd2NJZCYmd2luZG93LmQyY19hd2NMYWJlbCYmKCJsaXZlIj09ZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKT9ndGFnKCJldmVudCIsImNvbnZlcnNpb24iLHtzZW5kX3RvOmQyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsfSk6Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsKyIgfSk7IikpO3ZhciBkPXttYWlsSUQ6YS5tYWlsSUQsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCx5ZWFyOmEueWVhcix2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLGRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHBvcHVwT2ZmZXJUeXBlOmEucG9wdXBPZmZlclR5cGUsYm9keVR5cGU6YS52ZWhpY2xlVHlwZSxzYWxlc0RlcHQ6YS5zYWxlc0RlcHQscG9wdXBEaXY6YS5wb3B1cGRpdixpc0NUQTphLmlzQ1RBLApidXR0b25UZXh0OmEuYnV0dG9uVGV4dH07alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLnN1Ym1pdCIsZCl9JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTsiIiE9YS5sZWFkVGl0bGVUZXh0JiYoJCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLmxlYWRUaXRsZVRleHQucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYS5sZWFkVGl0bGVUZXh0PSIiKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7CiQoJ2lucHV0W25hbWU9ImlzRnVsbFdpZHRoIl0nKS52YWwoJCgiI2lzRnVsbFdpZHRoUGFnZU5ld1ZEUCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNNb2JpbGVOZXdWRFAiXScpLnZhbCgkKCIjaXNtb2JpbGUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgwKTsiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiPT1hLnBvcHVwZGl2JiYkKCdpbnB1dFtuYW1lPSJpc0NvbmZpcm1Qb3B1cCJdJykudmFsKDEpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZW1haWwiXScpLnZhbChhLnVzZXJFbWFpbCk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIl0nKS52YWwoYS51c2VyRmlyc3ROYW1lKTsKJCgnaW5wdXRbbmFtZT0iY29uZmlybV9sYXN0X25hbWUiXScpLnZhbChhLnVzZXJMYXN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiXScpLnZhbChhLnVzZXJQaG9uZSk7Zm9ybUZpbGwuc2F2ZSh7ZW1haWw6YS51c2VyRW1haWwsZmlyc3ROYW1lOmEudXNlckZpcnN0TmFtZSxsYXN0TmFtZTphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxwb3N0YWw6YS51c2VyUG9zdGFsfSk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihmKXtmJiZmLm92ZXJyaWRlTWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBoPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2gubGVuZ3RoJiZmLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixoLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goaCl7Y29uc29sZS5lcnJvcihmKX19LApzdWNjZXNzOmZ1bmN0aW9uKGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWQiLGEubWFpbElELGMpO2EucGFydGlhbD0hMTthLmxhc3RDaGVja3N1bT0hMTt2YXIgaD17fTt0cnl7aD0ic3RyaW5nIj09dHlwZW9mIGY\/SlNPTi5wYXJzZShmKTpmfWNhdGNoKG0peyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiZW1haWxIYW5kbGVyOiBtYWxmb3JtZWQgSlNPTiByZXNwb25zZSIsZixtKTthLmhhbmRsZVNlbmRGYWlsdXJlKGMsbSYmbS5tZXNzYWdlKTtyZXR1cm59YS5fX2xhc3RSZXR1cm49aDtpZigib2JqZWN0Ij09dHlwZW9mIGh8fCJ1bmRlZmluZWQiIT10eXBlb2YgaC5sZWFkaWQpYS5fX2xlYWRpZD1oLmxlYWRpZDsiZnVuY3Rpb24iIT10eXBlb2YgYS5jYWxsYmFjayYmKGEuY2FsbGJhY2s9ZnVuY3Rpb24oKXt9KTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50Iix7bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwsCnllYXI6YS55ZWFyLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sZGVwYXJ0bWVudDphLmRlcGFydG1lbnQsdHJhZGVpbjphLnRyYWRlaW4sc3VjY2VzczoiU1VDQ0VTUyI9PT1oLnN0YXR1cyxkZXRhaWw6e2NvbmZpcm1fZmlyc3RfbmFtZTphLnVzZXJGaXJzdE5hbWUsY29uZmlybV9sYXN0X25hbWU6YS51c2VyTGFzdE5hbWUsY29uZmlybV9lbWFpbDphLnVzZXJFbWFpbCxjb25maXJtX3Bob25lX251bWJlcjphLnVzZXJQaG9uZSx5ZWFyOmEueWVhcixtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLGlkOmgubGVhZGlkLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sdmVyc2lvbjphLnZlcnNpb258fCIiLE5JVjphLnZpbix0cmltOmEudHJpbSxsZWFkVHlwZTphLmxlYWRUeXBlfHwiIixtYWlsSWQ6YS5tYWlsSUR9fSk7IlNVQ0NFU1MiPT1oLnN0YXR1cz8oYS5jYWxsYmFjayghMCksYS5tYWluUHJvbW8mJihmPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIiwKe2RldGFpbDp7c3RlcElkOiJNYWluUHJvbW9CdG4ifX0pLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZikpKTphLmNhbGxiYWNrKCExKTthLmNhbGxiYWNrPW51bGx9LGVycm9yOmZ1bmN0aW9uKGYsaCxtKXtmJiY0MDQ9PT1mLnN0YXR1c3x8YS5oYW5kbGVTZW5kRmFpbHVyZShjLG18fGh8fCIiKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YS5oYW5kbGVTZW5kRmFpbHVyZShjLCI0MDQiKX19fSk7YS5wb3B1cE9mZmVyVHlwZT0iIn19LGluamVjdEN0YUNvbXBsZXRlZERhdGE6ZnVuY3Rpb24oKXtsZXQgYj0iIixjPSIiO3ZhciBkPSIiO3RyeXt2YXIgZj0idW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlP2NsaWVudFN0b3JhZ2UuZ2V0KCJiYW5kcF9jb25maWciLCJsb2NhbCIpOmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJiYW5kcF9jb25maWciKX1jYXRjaChtKXtmPW51bGx9dmFyIGg9InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmbnVsbCE9PWY\/SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZikpOgpKU09OLnBhcnNlKCJ7fSIpO2Y9KG0scik9PntyPXJ8fCExO2xldCBrPW0ub3B0aW9ucy5yZWR1Y2UoKEEseik9PkErYCR7en08YnI+YCwiIiksdD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iVmVoaWNsZSBkZXRhaWxzIjoiVsOpaGljdWxlIGNvbmZpZ3Vyw6kiLHU9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkZpbmFuY2luZyBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQiLGwscSx3O3I9cj8iIjpgCgkJCQkJCTx1PiR7dX06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0obD1tLnBheW1lbnQpP3ZvaWQgMDpsLnRvdGFsfTxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0ocT1tLnBheW1lbnQpP3ZvaWQgMDpxLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PSh3PW0ucGF5bWVudCk\/dm9pZCAwOncuYW1vdW50fTxicj48YnI+CgkJCQkJYDtsZXQgcCx2O3JldHVybmAKCQkJCQk8dT4ke3R9OjwvdT48YnI+CgkJCQkJJHtudWxsPT1tP3ZvaWQgMDptLm1vZGVsfTxicj4KCQkJCQlFeHQ6ICR7KG51bGw9PW0\/dm9pZCAwOm51bGw9PShwPW0uY29sb3JzKT92b2lkIDA6cC5leHQpfHwiIn0sIEludDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KHY9bS5jb2xvcnMpP3ZvaWQgMDp2LmludCl8fCIifTxicj4KCQkJCQkkeyhudWxsPT1tP3ZvaWQgMDptLmRyaXZlVHJhaW4pfHwiIn08YnI+CgkJCQkJJHtrfTxicj4KCQkJCQkke3J9CgkJCQlgfTtoLmJhbmRwJiYoYj1mKGguYmFuZHApLnJlcGxhY2UoLyhcdHxcbikqL2csIiIpKTtpZihDb29raWVzLmdldCgiY3RhX2RhdGFfdmFsaWQiKSl7ZD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIil8fCJ7fSIpO2g9ISFkLnBheW1lbnQ7ZC5iYW5kcCYmKGQuYmFuZHAub3B0aW9ucz1kLmJhbmRwLm9wdGlvbnN8fFtdLGI9ZihkLmJhbmRwLGgpKTtpZihoKXtsZXQgbSxyLGs7Yz1gCgkJCQkJCTx1PiR7IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IlZlaGljbGUgZGV0YWlscyI6IkTDqXRhaWxzIGR1IGZpbmFuY2VtZW50In06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1kP3ZvaWQgMDpudWxsPT0obT1kLnBheW1lbnQpP3ZvaWQgMDptLmxpc3RQcmljZX08YnI+CgkJCQkJCSR7bnVsbD09ZD92b2lkIDA6bnVsbD09KHI9ZC5wYXltZW50KT92b2lkIDA6ci5yYXRlfTxicj4KCQkJCQkJJHtudWxsPT1kP3ZvaWQgMDpudWxsPT0oaz1kLnBheW1lbnQpP3ZvaWQgMDprLnBheW1lbnR9PGJyPgoJCQkJCWB9ZD0iXG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDxicj5cblx0XHRcdFx0XHQ8dT48c3Ryb25nPlRyYW5zYWN0aW9uIEJ1aWxkZXI6PC9zdHJvbmc+PC91PlxuXG5cdFx0XHRcdCJ9aWYoYnx8YylhLmJvZHkrPShkK2AKCQkJCQk8YnI+CgkJCQkJPGJyPgoJCQkJCSR7Yn0KCQkJCQkke2N9CgkJCQlgKS5yZXBsYWNlKC9ccj9cbnxcci9nLCIiKX0sZGVjb2RlVVJMUmVjdXJzaXZlbHk6ZnVuY3Rpb24oYil7cmV0dXJuLTEhPWIuaW5kZXhPZigiJSIpP2EuZGVjb2RlVVJMUmVjdXJzaXZlbHkoZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlKGIpKSk6Yn0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXtyZXR1cm4gJC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvdmFsaWRhdGVFbWFpbEFjY291bnQ\/d3N3aWR0aD0wJmVtYWlsPSIrYixhc3luYzohMX0pfSxnZXRVVUlEOmZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDoKInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzJiYidW5kZWZpbmVkIiE9Q29va2llcy5nZXQoInV1aWQiKSYmbnVsbCE9Q29va2llcy5nZXQoInV1aWQiKT9Db29raWVzLmdldCgidXVpZCIpOiIifSxzZXRDb250YWN0SW5mbzpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZ29vZ2xlUGxhY2VzKXt2YXIgYj0kKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpOzAhPWIubGVuZ3RoJiYoYj1iLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1iLmNpdHkmJiIiPT1hLmNvbnRhY3RDaXR5JiYoYS5jb250YWN0Q2l0eT1iLmNpdHkubG9uZ19uYW1lKSwiIiE9Yi5zdHJlZXQmJiIiIT1iLnN0cmVldF9udW1iZXImJiIiPT1hLmNvbnRhY3RBZGRyZXNzJiYoYS5jb250YWN0QWRkcmVzcz1iLnN0cmVldF9udW1iZXIubG9uZ19uYW1lKyIgIitiLnN0cmVldC5sb25nX25hbWUpLCIiIT1iLnByb3ZpbmNlJiYiIj09YS5jb250YWN0UHJvdmluY2UmJihhLmNvbnRhY3RQcm92aW5jZT0KYi5wcm92aW5jZS5zaG9ydF9uYW1lKSwiIiE9Yi5wb3N0YWwmJiIiPT1hLmNvbnRhY3RaaXAmJihhLmNvbnRhY3RaaXA9Yi5wb3N0YWwubG9uZ19uYW1lKSl9fSxnZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQ6ZnVuY3Rpb24oYil7aWYoIiI9PWIpcmV0dXJuIGI7Yj1iLnRvTG93ZXJDYXNlKCk7dmFyIGM9e2phbnZpZXI6ImphbnVhcnkiLCJmw6l2cmllciI6ImZlYnJ1YXJ5IixtYXJzOiJtYXJjaCIsYXZyaWw6ImFwcmlsIixtYWk6Im1heSIsanVpbjoianVuZSIsanVpbGxldDoianVseSIsImFvw7t0IjoiYXVndXN0IixzZXB0ZW1icmU6InNlcHRlbWJlciIsb2N0b2JyZToib2N0b2JlciIsbm92ZW1icmU6Im5vdmVtYmVyIiwiZMOpY2VtYnJlIjoiZGVjZW1iZXIifTtiPWIucmVwbGFjZSgvXGJcUytcYi9pZyxmdW5jdGlvbihkKXt2YXIgZj1kLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGNbZl0\/Y1tmXTpkfSk7cmV0dXJuKG5ldyBEYXRlKGIpKS5mb3JtYXQoInl5eXktTU0tZGQiKX0sZ2V0RW1haWxDb25zZW50OmZ1bmN0aW9uKGIpe3ZhciBjPQpuZXcgRGF0ZTthLnNldENvbnRhY3RJbmZvKCk7dmFyIGQ9YS5jb250YWN0QmlydGg\/YS5jb250YWN0QmlydGg6YS5nZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQoYS5iaXJ0aGRhdGUpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtnZXREYXRhPXtlbWFpbDphLnVzZXJFbWFpbCxwaG9uZTphLnVzZXJQaG9uZSxuYW1lOmEudXNlckZpcnN0TmFtZSsiICIrYS51c2VyTGFzdE5hbWUsYWRkcjphLmNvbnRhY3RBZGRyZXNzP2EuY29udGFjdEFkZHJlc3M6YS51c2VyQWRkcmVzcyxjaXR5OmEuY29udGFjdENpdHkscHJvdmluY2U6YS5jb250YWN0UHJvdmluY2UsemlwOmEuY29udGFjdFppcD9hLmNvbnRhY3RaaXA6YS51c2VyUG9zdGFsLG5hczphLmNvbnRhY3ROQVMsYmlydGg6ZCxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLFVVSUQ6YS5nZXRVVUlEKCksdHM6Yy5nZXRUaW1lKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksdXBkYXRlSW1wbGljaXQ6ITB9OwokLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCIsZGF0YTpnZXREYXRhLGRhdGFUeXBlOiJqc29uIn0pLmFsd2F5cyhmdW5jdGlvbihmLGgsbSl7Zj1mP2Y6e2hhc0NvbnNlbnQ6ITF9OyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiBmJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOiJObyBEYXRhIix0ZXh0U3RhdHVzOmgscnZhbHVlOmYsdjpnZXREYXRhLHQ6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIn0pLFtbImNvbnNlbnRUeXBlIiwiY29uc2VudFR5cGUiXSxbImNvbnNlbnRFeHBpcmF0aW9uIiwiZXhwaXJhdGlvbiJdLFsiY29uc2VudERhdGUiLCJkYXRlIl0sWyJjb25zZW50RnJlcXVlbmN5IiwiZnJlcXVlbmN5Il0sClsiY29uc2VudERldGFpbHNGUiIsImRldGFpbHNGUkVOQ0giXSxbImNvbnNlbnREZXRhaWxzRU4iLCJkZXRhaWxzRU5HTElTSCJdLFsiZGV0YWlsc0RlZmF1bHRzIiwiZGV0YWlsc0RlZmF1bHRzIl0sWyJjb250YWN0SUQiLCJ1aWQiXV0ubWFwKGZ1bmN0aW9uKHIpe3ZhciBrPXJbMF07cj1yWzFdO2RlbGV0ZSB2b2lkIDA7YVtrXT12b2lkIDAhPWZbcl0\/ZltyXTphW2tdfSl9Y2F0Y2gocil7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIqKioqIGVycm9yICoqKioiLHtlcnJvcjpyLHRleHRTdGF0dXM6aCxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSl9YihmKX0pfSxiYW5kcExpbms6ZnVuY3Rpb24oYil7Yj1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC8nL2csIiIpfTtpZigidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8Cm51bGw9PUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBDb29raWVzLmdldCgic2Vzc2lkIil8fG51bGw9PUNvb2tpZXMuZ2V0KCJzZXNzaWQiKSlyZXR1cm4iIjt2YXIgYz1Db29raWVzLmdldCgiYmFuZHBsaW5rIiksZD1Db29raWVzLmdldCgic2Vzc2lkIik7aWYoMD5jLmluZGV4T2YoInx8fCIpKXJldHVybiIiO3ZhciBmPWMuc3BsaXQoInx8fCIpO2lmKDQ+Zi5sZW5ndGgpcmV0dXJuIiI7Yz0obmV3IFN0cmluZyhmWzBdKSkuc3BsaXQoIi8iKTt2YXIgaD1uZXcgU3RyaW5nKGZbMV0pLG09bmV3IFN0cmluZyhmWzJdKTtmPW5ldyBTdHJpbmcoZlszXSk7dmFyIHI9JCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKT8kKCIjcG9wdXB0cmltIikudmFsKCk6IiIsaz0iPGEgaHJlZj0nIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSskKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKTsKIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/KHBhcnNlSW50KGNbMl0pLCQoIiNUWFRNT05USCIrcGFyc2VJbnQoY1sxXSkudG9TdHJpbmcoKSkudmFsKCksays9ZisiLSIrYihoKSsiLSIrYihtKSsiLmh0bWw\/c2lkPSIrZCsiJyB0YXJnZXQ9J19ibGFuayc+IitmKyIgIitoKyIgIittKyIgIityKyI8L2E+Iik6KCQoIiNUWFRNT05USCIrcGFyc2VJbnQoY1sxXSkudG9TdHJpbmcoKSkudmFsKCksays9YihoKSsiLSIrYihtKSsiLSIrZisiLmh0bWw\/c2lkPSIrZCsiJyB0YXJnZXQ9J19ibGFuayc+IitoKyIgIittKyIgIityKyIgIitmKyI8L2E+Iik7cmV0dXJuIGt9LGxvZ0Zvcm1SZXF1ZXN0OmZ1bmN0aW9uKGIsYyxkKXt2YXIgZj1NYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSksaD0kKCIjdG9wc2l0ZWlkIikubGVuZ3RoPyQoIiN0b3BzaXRlaWQiKS52YWwoKToiMCIsbT0kKCIjdG9wY2FyaWQiKS5sZW5ndGgmJjA8JCgiI3RvcGNhcmlkIikudmFsKCkubGVuZ3RoPwokKCIjdG9wY2FyaWQiKS52YWwoKToiMCIscj1Db29raWVzLmdldCgidWlkIik\/Q29va2llcy5nZXQoInVpZCIpOiIwIixrPUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKToiMCIsdD1Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbiIpOiIwIix1PUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKToiMCIsbD1Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpOiIwIixxPSQoIiN0b3Bpc21vYmlsZSIpLmxlbmd0aCYmMT09JCgiI3RvcGlzbW9iaWxlIikudmFsKCk\/IllFUyI6Ik5PIix3PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS5sZW5ndGg\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpOiJGUkVOQ0giLHA9dm9pZCAwIT09CmEmJnZvaWQgMCE9PWEucGhvbmVNYW5kYXRvcnk\/YS5waG9uZU1hbmRhdG9yeTowOyJ1bmRlZmluZWQiIT10eXBlb2YgZCYmZHx8KGQ9IjAiKTt0PXQucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7az1rLnJlcGxhY2UoL1x0L2csIiIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL1xyL2csIiIpLnJlcGxhY2VBbGwoIiUwQSIsIiIpLnJlcGxhY2VBbGwoIiUwOSIsIiIpLnJlcGxhY2VBbGwoIiUwQiIsIiIpLnJlcGxhY2VBbGwoIiUwMCIsIiIpLnJlcGxhY2VBbGwoIiU1QyIsIiIpLnJlcGxhY2VBbGwoIiUwRCIsIiIpO2I9Ii9wcm94eV9zYXViL2xvZ0Zvcm1SZXF1ZXN0LyIrZW5jb2RlVVJJQ29tcG9uZW50KGgpKwoiLyIrZW5jb2RlVVJJQ29tcG9uZW50KG0pKyIvIitlbmNvZGVVUklDb21wb25lbnQocikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChrKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyIvIitlbmNvZGVVUklDb21wb25lbnQocSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudCh3KSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHUpKyIvIitlbmNvZGVVUklDb21wb25lbnQobCkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChjKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyIvIitlbmNvZGVVUklDb21wb25lbnQoZCkrIi8iKyEhcCsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGYpKyIuZ2lmIjskKCJib2R5IikuYXBwZW5kKCI8aW1nIHN0eWxlPSd3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4Oycgc3JjPSciK2IrIicgYWx0PScnIC8+Iil9LGdldFVzZWRFbWFpbEZvck11bHRpcGxlRGVhbGVyczpmdW5jdGlvbigpe3ZhciBiPSJmciI7IkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYoYj0iZW4iKTt1cmk9Ii8iK2IrIi9waHAvZ2V0RGVhbGVyc0VtYWlsVG8ucGhwP21ha2U9IithLm1ha2UrIiZtb2RlbD0iK2EubW9kZWwrIiZ5ZWFyPSIrYS55ZWFyKyImY2I9IitNYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSk7JC5hamF4KHt1cmw6dXJpLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7Yz1jLnNwbGl0KCJ8fHwiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGNbMF0mJjA8Y1swXS5sZW5ndGgmJihhLnNlbmRUbz1jWzBdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGNbMV0mJjA8Y1sxXS5sZW5ndGgmJihhLnNlbmRUb0FERkZvcm1hdD1jWzFdKX19KX0scHJlU2VuZEltcGxpY2l0OmZ1bmN0aW9uKCl7aWYoYS5wYXJ0aWFsKXJldHVybiExO2pzb25PYmplY3Q9YS5nZXRKc29uT2JqZWN0KCk7dmFyIGI9e2pzb246SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCkscGFydGlhbDohMH07JC5hamF4KHt0eXBlOiJQT1NUIiwKdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oYyl7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7JCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImRlYWxlck5hbWUiXScpLnZhbCgkKCIjbmV3VkRQRGVhbGVyTmFtZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKTsKYyYmYy5vdmVycmlkZU1pbWVUeXBlJiZjLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgZD0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtkLmxlbmd0aCYmYy5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsZC5hdHRyKCJjb250ZW50IikpfWNhdGNoKGQpe2NvbnNvbGUuZXJyb3IoYyl9fSxzdWNjZXNzOmZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKX0sZXJyb3I6ZnVuY3Rpb24oYyxkLGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGEucG9wdXBPZmZlclR5cGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygicHJlU2VuZEltcGxpY2l0IGZhaWxlZCIsZCxmKX19KX0sbG9nRXZlbnQ6ZnVuY3Rpb24oYixjKXtjPWM\/YzphLm1haWxJRDtpZighYnx8IWMpcmV0dXJuInVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixjKSwhMTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGMpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixjKX0sYnVpbGRDUk1LZXk6ZnVuY3Rpb24oKXt2YXIgYj1wYXJzZUludCgkKCIjdG9wc2l0ZWlkIikudmFsKCksMTApLGM9YS5nZXRVVUlEKCksZD1nZXRDb29raWUoImVtYWlsRnJvbUF1dG9BbnN3ZXIiKTtpZighaXNOYU4oYikmJigiIiE9ZHx8IiIhPWMpJiYibnVtYmVyIj09dHlwZW9mIGImJjA8Yil7dmFyIGY9bmV3IERhdGUsaD1mLmdldE1vbnRoKCkrMTtoPSQuYmFzZTY0LmVuY29kZShmLmdldEZ1bGxZZWFyKCkrIi0iKygxMD5oPyIwIitoOmgpKwoiLSIrKDEwPmYuZ2V0RGF0ZSgpPyIwIitmLmdldERhdGUoKTpmLmdldERhdGUoKSkpO2Y9aC5zdWJzdHIoMCw4KTtoPWguc3Vic3RyKDgpO3JldHVybiAkLmJhc2U2NC5lbmNvZGUoZiskLmJhc2U2NC5lbmNvZGUoYisiOyIrYysiOyIrZCkraCl9cmV0dXJuIiJ9LHNldE1ha2VNb2RlbFllYXJGcm9tTGFzdFZpZXdlZDpmdW5jdGlvbigpe3ZhciBiPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLGM9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGQ9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgYiYmIiI9PT1hLm1ha2UmJihhLm1ha2U9Yik7InVuZGVmaW5lZCIhPT10eXBlb2YgYyYmIiI9PT1hLm1vZGVsJiYoYS5tb2RlbD1jKTsidW5kZWZpbmVkIj09PXR5cGVvZiBkfHwiIiE9PWEueWVhciYmMCE9PWEueWVhcnx8KGEueWVhcj1kKX0sZ2V0IHJlY2FwdGNoYSgpe3JldHVybiB3aW5kb3cuZ29vZ2xlUmVjYXB0Y2hhfSxzYW5pdGl6ZUhUTUw6ZnVuY3Rpb24oYil7cmV0dXJuIGVuY29kZVVSSShiKX0sCnNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3Q6KCk9PntpZihudWxsPT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQiKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4hMTtsZXQgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5kYXRhc2V0LmRlcGFydG1lbnRzO2I9Yi5zcGxpdCgiOyIpO2lmKC0xPGIuaW5kZXhPZihhLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSkpcmV0dXJuITA7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZT9kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZTpkb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07Yz1hLnNhbml0aXplSFRNTChjKTsKbGV0IGQ9T2JqZWN0LnZhbHVlcyhPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoe25ldzpbIm5ldWYiLCJuZXciXSx1c2VkOlsib2NjYXNpb24iLCJ1c2VkIl0sc2VydmljZTpbInNlcnZpY2UiLCJlbnRyZXRpZW4iLCJtYWludGVuYW5jZSIsInJlcGFpciJdLGZpbmFuY2U6WyJmaW5hbmNlbWVudCIsImZpbmFuY2UiLCJjcmVkaXQiLCJsb2FuIl19KS5maWx0ZXIoZj0+e1tmXT1mO3JldHVybi0xPGIuaW5kZXhPZihmKX0pKSkuZmxhdCgpO3JldHVybihuZXcgUmVnRXhwKCIoIitkLmpvaW4oInwiKSsiKSIpKS50ZXN0KGMudG9Mb3dlckNhc2UoKSl9fTtqUXVlcnkoZnVuY3Rpb24oYil7Yj1qc19kMmNfZ2V0X3ZhbCgiSVNWTSIpO3ZhciBjPWpzX2QyY19nZXRfdmFsKCJmZmRMMSIpLGQ9anNfZDJjX2dldF92YWwoIkdSV0wiKS5zcGxpdCgiOyIpO2EuaWdub3JlQ2FwdGNoYT1ifHwtMSE9ZC5pbmRleE9mKGMpO2EuaWdub3JlQ2FwdGNoYXx8KHdpbmRvdy5nb29nbGVSZWNhcHRjaGE\/CmEucmVjYXB0Y2hhLmluaXQoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnb29nbGVSZWNhcHRjaGEucmVhZHkiLGZ1bmN0aW9uKCl7YS5yZWNhcHRjaGEuaW5pdCgpfSx7b25jZTohMH0pKX0pO2EucmVzZXRDYWxsYmFja3MoKTthLmFza1B1cmNoYXNlSW50ZW50PWZ1bmN0aW9uKGIpe3ZhciBjPSJ1bmRlaW5mZWQiIT10eXBlb2YgYi5wYXRobmFtZT9iLnBhdGhuYW1lOmIuaHJlZi5tYXRjaCgvW0Etel06XC9cL1teXC9dK1wvKFteXD9dKylcPz8uKi8pWzFdO3ZhciBkPVJlZ0V4cCgiKGRlbW9uc3RyYXRldXJzfGRlbW98bGlxdWlkYXRpb258Y2xlYXJhbmNlfHByb21vdGlvbnN8bmV1ZnxuZXd8b2NjYXNpb258dXNlZHxjcmVkaXR8ZmluYW5jZW1lbnQpIik7Yj17ZGVtb25zdHJhdGV1cnM6ImRlbW8iLGNsZWFyYW5jZToibGlxdWlkYXRpb24iLCJuZXciOiJuZXVmIixwcm9tb3Rpb25zOiJwcm9tbyIsdXNlZDoib2NjYXNpb24iLGNyZWRpdDoiZmluYW5jZW1lbnQifTtyZXR1cm4gZC50ZXN0KGMudG9Mb3dlckNhc2UoKSk\/CihjPWMubWF0Y2goZCksbnVsbCE9YyYmKGEucHVyY2hhc2VfaW50ZW50X3NlY3Rpb249InVuZGVmaW5lZCIhPXR5cGVvZiBiW2NbMV1dP2JbY1sxXV06Y1sxXSksITApOiExfShkb2N1bWVudC5sb2NhdGlvbik7cmV0dXJuIGF9KCksZW1haWxUcmFja2luZz1mdW5jdGlvbigpe3ZhciBlPXticmFuZDoiIixtb2RlbDoiIix5ZWFyOiIiLGlzcHJvbW86ITEsaXNleHByZXNzOiExLGlzaG9tZXBhZ2U6ITEsc2VjdGlvbjoiIix0ZXh0Q2FyU2VjdGlvblR5cGU6IlVTRUQiLGlzTW9iaWxlTmV3VkRQOiExLGlzRnVsbFdpZHRoOiExLGJ1dHRvblBvc2l0aW9uOiIiLGRlYWxlck5hbWU6IiJ9LGc9ZnVuY3Rpb24oYyl7dmFyIGQ9W10sZj1jLmJyYW5kP2MuYnJhbmQ6ZW1haWxIYW5kbGVyLm1ha2UsaD1jLm1vZGVsP2MubW9kZWw6ZW1haWxIYW5kbGVyLm1vZGVsO2M9Yy55ZWFyP2MueWVhcjplbWFpbEhhbmRsZXIueWVhcjtmLmxlbmd0aCYmZC5wdXNoKGYpO2gubGVuZ3RoJiZkLnB1c2goaCk7Yy5sZW5ndGgmJgpkLnB1c2goYyk7cmV0dXJuIGQuam9pbigiLSIpfSxuPWZ1bmN0aW9uKGMpe3ZhciBkPXsiaG9tZXBhZ2UuaHRtbCI6IkhvbWUtUGFnZSIsImNvbnRhY3R1cy5odG1sIjoiQ29udGFjdFVzIiwibmV3Y2FyZGV0YWlsLmh0bWwiOiJOZXctVkRQIiwibmV3Y2Fycy5odG1sIjoiTmV3LVNSUCIsImJ1aWxkYW5kcHJpY2UuaHRtbCI6Ik5ldy1CJlAiLCJyZXN1bWUtYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUC1SZXN1bWUiLCJjb21wYXJlTmV3VmVoaWNsZXMuaHRtbCI6Ik5ldy1Db21wYXJlIiwidXNlZGNhcnMuaHRtbCI6IlVzZWQtU1JQIiwiY2FyZGV0YWlsLmh0bWwiOiJVc2VkLVZEUCIsImNyZWRpdC5odG1sIjoiRGVtYW5kZXMgLSBGaW5hbmNlbWVudCIsImRlYWxlcnRyYWNrLmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwicHJvbW90aW9uLmh0bWwiOiJQcm9tb3Rpb25zIiwicHJvbW90aW9uc2FsZXMuaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zZXJ2aWNlLmh0bWwiOiJQcm9tb3Rpb25zIiwKInBhcnRzUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQae+\/vWNlcyIsInNlcnZpY2VzLmh0bWwiOiJTZXJ2aWNlIiwic2VydmljZVJlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUkRWIFNlcnZpY2UiLCJib2R5U2hvcC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgQ2Fyb3NzZXJpZSIsInRpcmVzUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQbmV1cyIsIm91cnRlYW0uaHRtbCI6IlRlYW0iLCJ0ZXN0ZHJpdmUuaHRtbCI6IkRlbWFuZGVzIC0gRXNzYWlzLVJvdXRpZXItT2NjYXNpb24iLCJ0ZXN0ZHJpdmVuZXcuaHRtbCI6IkRlbWFuZGVzIC0gRXNzYWlzLVJvdXRpZXItTmV1ZiIsImJyb2NodXJlcy5odG1sIjoiRGVtYW5kZXMgLSBCcm9jaHVyZXMiLCJqb2JvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBFbXBsb2lzIiwibWFrZW9mZmVybmV3Lmh0bWwiOiJEZW1hbmRlcyAtIE9mZnJlIC0gTmV1ZiIsIm1ha2VvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBPZmZyZSAtIE9jY2FzaW9uIiwicHJpY2VyZXF1ZXN0bmV3Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBOZXVmIiwKInByaWNlcmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQcml4IC0gT2NjYXNpb24iLCJmaW5kY2FyLmh0bWwiOiJEZW1hbmRlcyAtIFJlY2hlcmNoZSBPY2Nhc2lvbiIsInRyYWRlaW5uZXcuaHRtbCI6IkRlbWFuZGVzIC0gRWNoYW5nZSBOZXVmIiwidHJhZGVpbi5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE9jY2FzaW9uIn0sZj0tMSE9KGMuY3VycmVudFVSTHx8IiIpLmluZGV4T2YoInN0ZXA9cmVzdW1lIiksaD0tMSE9KGMuY3VycmVudFVSTHx8IiIpLmluZGV4T2YoInN0ZXA9b3B0aW9ucyIpOyJidWlsZGFuZHByaWNlLmh0bWwiPT1jLnBhZ2VJRCYmKGZ8fGgpJiYoYy5wYWdlSUQ9InJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGRbYy5wYWdlSURdP2RbYy5wYWdlSURdOiJPdGhlciJ9LGE9ZnVuY3Rpb24oYyl7dmFyIGQ9IkRlbWFuZGVzIixmPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxoPWMubW9kZWw\/Yy5tb2RlbDoKZW1haWxIYW5kbGVyLm1vZGVsO2MuaXNwcm9tbyYmKGQrPSItUHJvbW90aW9uIik7MDxmLmxlbmd0aCYmMDxoLmxlbmd0aCYmIWMuaXNob21lcGFnZT9kPWMuaXNwcm9tbz9kKygiLSIrZyhjKSk6ZCtbIiIsZixoLGMuc2VjdGlvbl0uam9pbigiLSIpOmMuaXNwcm9tbyYmYy5pc2hvbWVwYWdlJiYoZCs9Ii1JbmRleCIpOyIxIj09Yy5pc2V4cHJlc3MmJihjLnRleHRDYXJTZWN0aW9uVHlwZSYmKGQ9IkRlbWFuZGVzLUV4cHJlc3MiKSxkKz0iLSIrZyhjKSxkKz0iLSIrYy5zZWN0aW9uKTtyZXR1cm4gZH0sYj1mdW5jdGlvbihjKXt2YXIgZD0xMjAwPHdpbmRvdy5zY3JlZW4uYXZhaWxXaWR0aD8iPjEyMDBweCAtICIuaXNGdWxsV2lkdGg6IjwxMjAwcHggLSBOb3JtYWwgVkRQIjtbZCxjLmJ1dHRvblBvc2l0aW9uXS5qb2luKCItIik7Yz1bYy5kZWFsZXJOYW1lLGQsIkxlYWQiXS5qb2luKCItIik7Z2FUcmFjaygiYyIsIk5ldy1WRFAtRGVza3RvcC1MYXlvdXQtQ1IiLGFjdGlvbixjLDEpfTsKdGhpcy50cmFjaz1mdW5jdGlvbihjKXtpZihnZXRDb29raWUoImxlYWRTZW5kIikpcmV0dXJuIGRlYnVnKCJsZWFkIHNlbnQiKTtzZXRDb29raWUoImxlYWRTZW5kIiwhMCwxKTtjPSQuZXh0ZW5kKHt9LGUsYyk7Yy5jdXJyZW50VVJMPWMuY3VycmVudFVSTD9jLmN1cnJlbnRVUkw6d2luZG93LmxvY2F0aW9uLmhyZWY7Yy5pc3Byb21vPSIxIj09Yy5pc3Byb21vO2MuaXNob21lcGFnZT0iMSI9PWMuaXNob21lcGFnZTt2YXIgZD1uKGMpO2dhVHJhY2soIiIsIkNvdXJyaWVscyIsYy5sYWJlbCxhKGMpLDEpO2dhVHJhY2soImMiLCJDb3VycmllbHMtZGVwdCIsYy5kZXBhcnRtZW50LGcoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1wYWdlIixkLGMubGVhZFR5cGUsMSk7Yy5pc01vYmlsZU5ld1ZEUCYmIk5ldy1WRFAiPT1kJiZiKGMpO3RyeXtkMmNfZ2FBY2NvdW50cy5hbGwubWFwKGZ1bmN0aW9uKGYpe2d0YWcoImNvbmZpZyIsZix7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9KSwKZ3RhZygiY29uZmlnIiwiRy1aNVE4WjVDN0tGIix7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9Y2F0Y2goZil7ZGVidWcoZil9fTtyZXR1cm4gdGhpc30oKSxnZXRNYWlsU2VudEhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIGc9e3RpbWVvdXRDYWxsYmFjazpudWxsLHRpbWVvdXQ6bnVsbH07Zy5pZFRvQWRkPWU\/ZToiIjskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5kZWZhdWx0U3VjY2VzcyIpLnNob3coKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5zZXJ2aWNlU3VjY2VzcyIpLmhpZGUoKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkubGVuZ3RofHwoZT0iIixnLmlkVG9BZGQ9IiIsIlNFUlZJQ0UiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCYmIlBBUlRTIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQpfHwoJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuZGVmYXVsdFN1Y2Nlc3MiKS5oaWRlKCksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuc2VydmljZVN1Y2Nlc3MiKS5zaG93KCkpOwpnLnNob3dTdWNjZXNzPWZ1bmN0aW9uKCl7Z2V0Q29va2llKCJwcmV2ZW50RHVwbGljYXRlQ3JlZGl0U2NvcmUiKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cFNob3duIil8fGdldENvb2tpZSgiY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCIpfHwiIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmIiIhPWVtYWlsSGFuZGxlci51c2VyQWRkcmVzcyYmIiIhPWVtYWlsSGFuZGxlci5iaXJ0aGRhdGV8fCJuZXciIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpJiYidXNlZCIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fCEkKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiKS5sZW5ndGh8fCJUcmFkZUluQmFyUG9wdXBDb250YWluZXIiPT1lbWFpbEhhbmRsZXIucG9wdXBkaXY\/KCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrCmUpLmFwcGVuZFRvKCJib2R5IiksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0pLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKyIgLmNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlIikub24oImNsaWNrIixnLmNsb3NlU3VjY2VzcykpOiQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKDEpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTskKCIjZW1haWxtc2dmcm0iK2cuaWRUb0FkZCkudHJpZ2dlcigic3VibWl0Iil9O2cuY2xvc2VTdWNjZXNzPWZ1bmN0aW9uKCl7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2cuaWRUb0FkZCkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7bnVsbCE9Zy50aW1lb3V0Q2FsbGJhY2smJgpnLnRpbWVvdXRDYWxsYmFjaygpO3JldHVybiExfTtnLnNob3dGYWlsPWZ1bmN0aW9uKCl7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2cuaWRUb0FkZCkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSk7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2UrIiAuY29uZmlybV9mYWlsQ29udGludWUiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2UpLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfTtyZXR1cm4gZ30sbWFpbFNlbnRIYW5kbGVyPW5ldyBnZXRNYWlsU2VudEhhbmRsZXIoIiIpOwpmdW5jdGlvbiBzdG9yYWdlQXZhaWxhYmxlKGUpe3RyeXt2YXIgZz13aW5kb3dbZV07Zy5zZXRJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIiwiX19zdG9yYWdlX3Rlc3RfXyIpO2cucmVtb3ZlSXRlbSgiX19zdG9yYWdlX3Rlc3RfXyIpO3JldHVybiEwfWNhdGNoKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoMjI9PT1uLmNvZGV8fDEwMTQ9PT1uLmNvZGV8fCJRdW90YUV4Y2VlZGVkRXJyb3IiPT09bi5uYW1lfHwiTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQiPT09bi5uYW1lKSYmZyYmMCE9PWcubGVuZ3RofX0KdmFyIGZvcm1GaWxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxnPXN0b3JhZ2VBdmFpbGFibGUoImxvY2FsU3RvcmFnZSIpLG49bnVsbCxhPSEwLGI9W10sYz17bmFtZTpbImlucHV0Lm5hbWUiLCdpbnB1dFtuYW1lPSJuYW1lIl0nXSxwb3N0YWw6WyJpbnB1dC5wb3N0YWwiLCdpbnB1dFtuYW1lPSJwb3N0YWwiXSddLGZpcnN0TmFtZTonaW5wdXQuZmlyc3ROYW1lIGlucHV0LmZpcnN0bmFtZSBpbnB1dFtuYW1lPSJmaXJzdG5hbWUiXSBpbnB1dFtuYW1lPSJmaXJzdE5hbWUiXSBpbnB1dCNmaXJzdG5hbWUgaW5wdXQjZmlyc3ROYW1lIGlucHV0I21pbmlfZm5hbWUnLnNwbGl0KCIgIiksbGFzdE5hbWU6J2lucHV0Lmxhc3ROYW1lIGlucHV0Lmxhc3RuYW1lIGlucHV0W25hbWU9Imxhc3RuYW1lIl0gaW5wdXRbbmFtZT0ibGFzdE5hbWUiXSBpbnB1dCNsYXN0bmFtZSBpbnB1dCNsYXN0TmFtZSBpbnB1dCNtaW5pX2xuYW1lJy5zcGxpdCgiICIpLHBob25lOlsiaW5wdXQucGhvbmUiLCdpbnB1dFtuYW1lPSJwaG9uZSJdJywKJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nLCJpbnB1dCNtaW5pX3Bob25lIiwnW3R5cGU9InRlbCJdJ10sZW1haWw6WyJpbnB1dC5lbWFpbCIsJ2lucHV0W25hbWU9ImVtYWlsIl0nLCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScsImlucHV0I21pbmlfZW1haWwiXX0sZD1mdW5jdGlvbihsKXtpZighZylyZXR1cm4hMTt2YXIgcT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZm9ybUZpbGxEYXRhIik7aWYobnVsbD09PXEpcmV0dXJuITE7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9wcm94eV9zZDJjL3NlcnZpY2UvZDJjLmVuY3J5cHRpb24uZ2V0IixkYXRhOntkYXRhOnF9fSkuZG9uZShmdW5jdGlvbih3KXtpZih3JiYiZnVuY3Rpb24iPT09dHlwZW9mIGwpdHJ5e2woSlNPTi5wYXJzZSh3LmRhdGEpKX1jYXRjaChwKXtjb25zb2xlLmxvZyhwKX19KX0sZj1mdW5jdGlvbigpe2E9ITA7bj1udWxsO2IuZm9yRWFjaChmdW5jdGlvbihsKXtsLmZpbGxlZD0hMX0pfSxoPWZ1bmN0aW9uKGwpe3UoInVzZXIubG9hZGVkIiwKZnVuY3Rpb24oKXtpZighbShsKSl7Yi5wdXNoKHtzY29wZTpsLGZpbGxlZDohMH0pO2Zvcih2YXIgcSBpbiBjKW4uaGFzT3duUHJvcGVydHkocSkmJmwuZmluZCgkKGNbcV0uam9pbigiLCIpKSkudmFsKG5bcV0pO2soImZvcm0uZmlsbGVkIil9fSk7bnVsbD09PW4mJmE\/KGE9ITEsZChmdW5jdGlvbihxKXtxLnBvc3RhbD1xLnBvc3RhbC50b1VwcGVyQ2FzZSgpO3EuZmlyc3ROYW1lPXEuZmlyc3ROYW1lLnRyaW0oKTtxLmxhc3ROYW1lPXEubGFzdE5hbWUudHJpbSgpO2VtYWlsSGFuZGxlci51c2VyUG9zdGFsPXEucG9zdGFsO2VtYWlsSGFuZGxlci51c2VyRW1haWw9cS5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1xLmZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPXEubGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1xLnBob25lO3EubmFtZT0ocS5maXJzdE5hbWUrIiAiK3EubGFzdE5hbWUpLnRyaW0oKTtuPXE7aygidXNlci5sb2FkZWQiKX0pKToKbiYmaygidXNlci5sb2FkZWQiKX0sbT1mdW5jdGlvbihsKXtyZXR1cm4oX3Njb3BlPWIuZmluZChmdW5jdGlvbihxKXtpZihxLnNjb3BlLmlzKGwpKXJldHVybiBxfSkpP19zY29wZS5maWxsZWQ6ITF9LHI9W10saz1mdW5jdGlvbihsKXt2YXIgcT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtpZihyW2xdKXt2YXIgdz1yW2xdLnNsaWNlKCk7dmFyIHA9dy5sZW5ndGg7Zm9yKGk9MDtpPHA7aSsrKXdbaV0uYXBwbHkodGhpcyxxKX19LHQ9ZnVuY3Rpb24obCxxKXtyW2xdfHwocltsXT1bXSk7cltsXS5wdXNoKHEpfSx1PWZ1bmN0aW9uKGwscSl7dChsLGZ1bmN0aW9uIHAoKXtyW2xdLnNwbGljZShyW2xdLmluZGV4T2YocCksMSk7cS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX07JChmdW5jdGlvbigpe2cmJigkKGRvY3VtZW50KS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24obCxxKXtsPXEudGFyZ2V0P3EudGFyZ2V0OiQocSk7aChsKX0pLCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25DbG9zZSIsCmZ1bmN0aW9uKGwscSl7fSksJCgiZm9ybSIpLmVhY2goZnVuY3Rpb24obCxxKXtoKCQocSkpfSkpfSk7cmV0dXJuIGU9e3NhdmU6ZnVuY3Rpb24obCl7aWYoIWcpcmV0dXJuITE7biYmIiI9PT1sLnBvc3RhbCYmKGwucG9zdGFsPW4ucG9zdGFsKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5zZXQiLGRhdGE6e2RhdGE6SlNPTi5zdHJpbmdpZnkobCl9fSkuZG9uZShmdW5jdGlvbihxKXtxJiYobG9jYWxTdG9yYWdlLnNldEl0ZW0oImZvcm1GaWxsRGF0YSIscS5kYXRhKSxmKCkpfSl9fX0oKTsKLyoqIC9qcy9qaGFzaHRhYmxlLmpzICoqLwp2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA3OjA3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNToxOSI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMy0wMS0xMiAxMTozMzo0OSI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0MzozMyI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MDoxMyI7InVzZSBzdHJpY3QiOwp2YXIgSGFzaHRhYmxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdShhKXtpZigic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuaGFzaENvZGUpcmV0dXJuIGE9YS5oYXNoQ29kZSgpLCJzdHJpbmciPT10eXBlb2YgYT9hOnUoYSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEudG9TdHJpbmcpcmV0dXJuIGEudG9TdHJpbmcoKTt0cnl7cmV0dXJuIFN0cmluZyhhKX1jYXRjaChjKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfX1mdW5jdGlvbiBCKGEsYyl7cmV0dXJuIGEuZXF1YWxzKGMpfWZ1bmN0aW9uIEMoYSxjKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYy5lcXVhbHM\/Yy5lcXVhbHMoYSk6YT09PWN9ZnVuY3Rpb24gdihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoIm51bGwgaXMgbm90IGEgdmFsaWQgIithKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGMpdGhyb3cgRXJyb3IoYSsKIiBtdXN0IG5vdCBiZSB1bmRlZmluZWQiKTt9fWZ1bmN0aW9uIHEoYSxjLGgsZCl7dGhpc1swXT1hO3RoaXMuZW50cmllcz1bXTt0aGlzLmFkZEVudHJ5KGMsaCk7bnVsbCE9PWQmJih0aGlzLmdldEVxdWFsaXR5RnVuY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZH0pfWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD10aGlzLmVudHJpZXMubGVuZ3RoLGQsaz10aGlzLmdldEVxdWFsaXR5RnVuY3Rpb24oYyk7aC0tOylpZihkPXRoaXMuZW50cmllc1toXSxrKGMsZFswXSkpc3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4hMDtjYXNlIDE6cmV0dXJuIGQ7Y2FzZSAyOnJldHVybltoLGRbMV1dfXJldHVybiExfX1mdW5jdGlvbiB3KGEpe3JldHVybiBmdW5jdGlvbihjKXtmb3IodmFyIGg9Yy5sZW5ndGgsZD0wLGs9dGhpcy5lbnRyaWVzLmxlbmd0aDtkPGs7KytkKWNbaCtkXT10aGlzLmVudHJpZXNbZF1bYV19fWZ1bmN0aW9uIG0oYSxjKXtyZXR1cm4oYT1hW2NdKSYmCmEgaW5zdGFuY2VvZiBxP2E6bnVsbH1mdW5jdGlvbiB4KGEsYyl7dmFyIGg9dGhpcyxkPVtdLGs9e30sbj0iZnVuY3Rpb24iPT10eXBlb2YgYT9hOnUsRD0iZnVuY3Rpb24iPT10eXBlb2YgYz9jOm51bGw7dGhpcy5wdXQ9ZnVuY3Rpb24oYixlKXtwKGIpO3koZSk7dmFyIGY9bihiKSxnLGw9bnVsbDsoZz1tKGssZikpPyhmPWcuZ2V0RW50cnlGb3JLZXkoYikpPyhsPWZbMV0sZlsxXT1lKTpnLmFkZEVudHJ5KGIsZSk6KGc9bmV3IHEoZixiLGUsRCksZFtkLmxlbmd0aF09ZyxrW2ZdPWcpO3JldHVybiBsfTt0aGlzLmdldD1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYik7aWYoZT1tKGssZSkpaWYoYj1lLmdldEVudHJ5Rm9yS2V5KGIpKXJldHVybiBiWzFdO3JldHVybiBudWxsfTt0aGlzLmNvbnRhaW5zS2V5PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtyZXR1cm4oZT1tKGssZSkpP2UuY29udGFpbnNLZXkoYik6ITF9O3RoaXMuY29udGFpbnNWYWx1ZT1mdW5jdGlvbihiKXt5KGIpOwpmb3IodmFyIGU9ZC5sZW5ndGg7ZS0tOylpZihkW2VdLmNvbnRhaW5zVmFsdWUoYikpcmV0dXJuITA7cmV0dXJuITF9O3RoaXMuY2xlYXI9ZnVuY3Rpb24oKXtkLmxlbmd0aD0wO2s9e319O3RoaXMuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiFkLmxlbmd0aH07dmFyIHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLGY9ZC5sZW5ndGg7Zi0tOylkW2ZdW2JdKGUpO3JldHVybiBlfX07dGhpcy5rZXlzPXQoImtleXMiKTt0aGlzLnZhbHVlcz10KCJ2YWx1ZXMiKTt0aGlzLmVudHJpZXM9dCgiZ2V0RW50cmllcyIpO3RoaXMucmVtb3ZlPWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKSxmPW51bGwsZz1tKGssZSk7aWYoZyYmKGY9Zy5yZW1vdmVFbnRyeUZvcktleShiKSxudWxsIT09ZiYmIWcuZW50cmllcy5sZW5ndGgpKXthOntmb3IoYj1kLmxlbmd0aDtiLS07KWlmKGc9ZFtiXSxlPT09Z1swXSlicmVhayBhO2I9bnVsbH16KGQsYik7ZGVsZXRlIGtbZV19cmV0dXJuIGZ9Owp0aGlzLnNpemU9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MCxlPWQubGVuZ3RoO2UtLTspYis9ZFtlXS5lbnRyaWVzLmxlbmd0aDtyZXR1cm4gYn07dGhpcy5lYWNoPWZ1bmN0aW9uKGIpe2Zvcih2YXIgZT1oLmVudHJpZXMoKSxmPWUubGVuZ3RoLGc7Zi0tOylnPWVbZl0sYihnWzBdLGdbMV0pfTt0aGlzLnB1dEFsbD1mdW5jdGlvbihiLGUpe2I9Yi5lbnRyaWVzKCk7Zm9yKHZhciBmLGcsbCxBPWIubGVuZ3RoLEU9ImZ1bmN0aW9uIj09dHlwZW9mIGU7QS0tOylmPWJbQV0sZz1mWzBdLGY9ZlsxXSxFJiYobD1oLmdldChnKSkmJihmPWUoZyxsLGYpKSxoLnB1dChnLGYpfTt0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IHgoYSxjKTtiLnB1dEFsbChoKTtyZXR1cm4gYn19dmFyIHo9ImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5LnByb3RvdHlwZS5zcGxpY2U\/ZnVuY3Rpb24oYSxjKXthLnNwbGljZShjLDEpfTpmdW5jdGlvbihhLGMpe3ZhciBoO2lmKGM9PT1hLmxlbmd0aC0xKWEubGVuZ3RoPQpjO2Vsc2V7dmFyIGQ9YS5zbGljZShjKzEpO2EubGVuZ3RoPWM7dmFyIGs9MDtmb3IoaD1kLmxlbmd0aDtrPGg7KytrKWFbYytrXT1kW2tdfX0scD12KCJrZXkiKSx5PXYoInZhbHVlIik7cS5wcm90b3R5cGU9e2dldEVxdWFsaXR5RnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEuZXF1YWxzP0I6Q30sZ2V0RW50cnlGb3JLZXk6cigxKSxnZXRFbnRyeUFuZEluZGV4Rm9yS2V5OnIoMikscmVtb3ZlRW50cnlGb3JLZXk6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9dGhpcy5nZXRFbnRyeUFuZEluZGV4Rm9yS2V5KGEpKT8oeih0aGlzLmVudHJpZXMsYVswXSksYVsxXSk6bnVsbH0sYWRkRW50cnk6ZnVuY3Rpb24oYSxjKXt0aGlzLmVudHJpZXNbdGhpcy5lbnRyaWVzLmxlbmd0aF09W2EsY119LGtleXM6dygwKSx2YWx1ZXM6dygxKSxnZXRFbnRyaWVzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz1hLmxlbmd0aCxoPTAsZD10aGlzLmVudHJpZXMubGVuZ3RoO2g8ZDsrK2gpYVtjKwpoXT10aGlzLmVudHJpZXNbaF0uc2xpY2UoMCl9LGNvbnRhaW5zS2V5OnIoMCksY29udGFpbnNWYWx1ZTpmdW5jdGlvbihhKXtmb3IodmFyIGM9dGhpcy5lbnRyaWVzLmxlbmd0aDtjLS07KWlmKGE9PT10aGlzLmVudHJpZXNbY11bMV0pcmV0dXJuITA7cmV0dXJuITF9fTtyZXR1cm4geH0oKTsKLyoqIC9qcy9uZXdjYXJzLmpzICoqLwp2YXIgX19fZDJjX25ld2NhcnNqc19jX29uPSIyMDI2LTA2LTEyIDEyOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/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+e25ld0NhcnMuZ2V0UGF5bWVudERhdGEoKTtuZXdDYXJzLnNldFBheW1lbnRUb29sdGlwcygpO25ld0NhcnMuc2V0RXZlbnRzKCk7bmV3Q2Fycy5uZXdDYXJzRmlsdGVyKCk7bmV3Q2Fycy5zZXRQcmljZVRvb2xUaXBzKCk7bmV3Q2Fycy5nZXRJbnZlbnRvcnlEYXRhKCl9KTsKLyoqIC9qcy9kMmNfYXNjX2dhNC5qcyAqKi8KdmFyIF9fX2QyY19kMmNhc2NnYTRqc19jX29uPSIyMDI2LTA1LTI4IDEyOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyIGFzY1RvcENhckRldGFpbHM9ITEsYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9ITEsYXNjTGFzdEZpbHRlckNsaWNrPSExLGFzY0xhc3RDdGFDbGljaz0hMSxhc2NDb21tU3RhcnRGaXJlZD0hMTtmdW5jdGlvbiBkMmFzY1B1YmxpY2F0aW9uRGF0ZShkKXtpZigiIj09ZClyZXR1cm4iIjt2YXIgaD1uZXcgRGF0ZShkKTtkPSIiKyhoLmdldE1vbnRoKCkrMSk7dmFyIGs9IiIraC5nZXREYXRlKCk7aD1oLmdldEZ1bGxZZWFyKCk7MTA+cGFyc2VGbG9hdChkKSYmKGQ9IjAiK2QpOzEwPnBhcnNlRmxvYXQoaykmJihrPSIwIitrKTtyZXR1cm5bZCxrLGhdLmpvaW4oIi8iKX1mdW5jdGlvbiBlbnN1cmVUcnV0aHkoZCl7cmV0dXJuIGQ\/ZDoiIn0KZnVuY3Rpb24gYXNjVXBkYXRlVG9wQ2FyRGF0YShkKXtpZighMSE9PWQpe2xldCBoPWQyYXNjUHVibGljYXRpb25EYXRlKGVuc3VyZVRydXRoeShkLmRhdGVfbGlzdGluZykpLGs9ZC5tYWtlY2VydCsiIjthc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2lkOmVuc3VyZVRydXRoeShkLk5JViksaXRlbV9udW1iZXI6ZW5zdXJlVHJ1dGh5KGQuaWQpLGl0ZW1fcHJpY2U6ZW5zdXJlVHJ1dGh5KGQucHJpY2UpLGl0ZW1fY29uZGl0aW9uOmVuc3VyZVRydXRoeShkLnZjYXRlZ29yeSkudG9Mb3dlckNhc2UoKSxpdGVtX3llYXI6ZW5zdXJlVHJ1dGh5KGQueWVhcikudG9Mb3dlckNhc2UoKSxpdGVtX21ha2U6ZW5zdXJlVHJ1dGh5KGQubWFrZSkudG9Mb3dlckNhc2UoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeShkLm1vZGVsKS50b0xvd2VyQ2FzZSgpLGl0ZW1fdmFyaWFudDplbnN1cmVUcnV0aHkoZC52ZXJzaW9uKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY29sb3I6ZW5zdXJlVHJ1dGh5KGQuY29sb3IpLnRvTG93ZXJDYXNlKCksCml0ZW1fdHlwZTplbnN1cmVUcnV0aHkoZC5ib2R5VHlwZUlEKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY2F0ZWdvcnk6ZW5zdXJlVHJ1dGh5KCIiKSxpdGVtX2Z1ZWxfdHlwZTplbnN1cmVUcnV0aHkoZC52Y2FyYnVyYW50KS50b0xvd2VyQ2FzZSgpLGl0ZW1faW52ZW50b3J5X2RhdGU6ZW5zdXJlVHJ1dGh5KGgpfTsiMjEiIT1rJiYiMCIhPWsmJmQyYXNjLnNldFZlaGljbGVTdGF0dXMoIkNQTyIpfWVsc2UgZD0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiksYXNjVG9wQ2FyRGV0YWlscz17aXRlbV9jb25kaXRpb246Im5ldyIsaXRlbV95ZWFyOiQoImlucHV0W25hbWU9J3llYXInXSIsZCkudmFsKCksaXRlbV9tYWtlOiQoImlucHV0W25hbWU9J21ha2UnXSIsZCkudmFsKCksaXRlbV9tb2RlbDplbnN1cmVUcnV0aHkoJCgiaW5wdXRbbmFtZT0nbW9kZWwnXSIsZCkudmFsKCkpLnRvTG93ZXJDYXNlKCksaXRlbV90eXBlOiQoImlucHV0W25hbWU9J3ZlaGljbGVDYXRlZ29yeSddIixkKS52YWwoKX07CmNvbnNvbGUubG9nKCJHQTQgYXNjVG9wQ2FyRGV0YWlscyIsYXNjVG9wQ2FyRGV0YWlscyl9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZVBhZ2VJZChkKXtkPWQucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIik7aWYoZC5pbmNsdWRlcygic2k6dmxzIikpcmV0dXJuInNlYXJjaCBpbnZlbnRvcnkiO2lmKGQuaW5jbHVkZXMoIjpzaTp2ZWhpY2xlIGRldGFpbHMiKXx8ZC5pbmNsdWRlcygidmVoaWNsZSIpKXJldHVybiJ2ZHAiO2lmKGQuaW5jbHVkZXMoImN1c3RvbToiKSlyZXR1cm4iYmxvZyI7aWYoZC5pbmNsdWRlcygiZmluYW5jZSIpKXJldHVybiJjcmVkaXQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudCIpKXJldHVybiJyZXF1ZXN0IGFwcG9pbnRtZW50IjtpZihkLmluY2x1ZGVzKCJzZXJ2aWNlOm9yZGVyIHBhcnRzIikpcmV0dXJuIm9yZGVyIHBhcnRzIjtpZihkLmluY2x1ZGVzKCJhYm91dCB1czpjb250YWN0IHVzIikpcmV0dXJuImNvbnRhY3QgdXMiO2lmKGQuaW5jbHVkZXMoIlVOS05PV04iKSl7aWYoL2J1aWxkLWFuZC1wcmljZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwKL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJidWlsZCBhbmQgcHJpY2UiO2lmKC9wcmljZS1uZXcvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L3ByaXgtbmV1Zi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJwcmljZSByZXF1ZXN0IjtpZigvYnJvY2h1cmVzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJyb2NodXJlIjtpZigvYXV0by1qb2JzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9lbXBsb2lzLWF1dG9tb2JpbGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iam9icyI7aWYoL291cnRlYW0vLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VxdWlwZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJvdXIgdGVhbSJ9cmV0dXJuIGR9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQsaCl7aD1oLnRvTG93ZXJDYXNlKCk7bGV0IGs9e307Zm9yKHZhciBsIGluIGQpa1tsLnRvTG93ZXJDYXNlKCldPWRbbF07bD0kKCJodG1sIikuYXR0cigibGFuZyIpO2Q9IiI7bD0iZW4iPT1sLnRvTG93ZXJDYXNlKCl8fCJlbmciPT1sLnRvTG93ZXJDYXNlKCk\/IkVOR0xJU0giOiJGUkVOQ0giO3ZvaWQgMCE9PWtbaF0mJnZvaWQgMCE9PWtbaF1bbF0mJihkPWtbaF1bbF0pO3JldHVybiBkfQpmdW5jdGlvbiBEMkFTQyhkKXtkLnBhZ2VJZE9yZz1kLnBhZ2VJZDtkLnBhZ2VJZD1kMmFzY1Jlc29sdmVQYWdlSWQoZC5wYWdlSWQpO2QuZGVhbGVyX25hbWU9JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTt2YXIgaD17c3RvcmVfbmFtZTpkLmRlYWxlcl9uYW1lLnRvTG93ZXJDYXNlKCksb2VtX2NvZGU6ZC5wYUNvZGUsb2VtX2JyYW5kOmQuY2xpZW50LGFmZmlsaWF0aW9uOiIiLGxhbmd1YWdlOmQudXNlckxhbmd1YWdlLGN1cnJlbmN5OiJjYWQiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxpdGVtczpbXSxldmVudHM6W10sbWVhc3VyZW1lbnRfaWRzOlsiRy02R0VaMldXVDNMIl0scGxhdGZvcm1fY3VzdG9tOiIifSxrPXthc2NfY2xpY2tfdG9fY2FsbDpbImEucGhvbmUtbGluayIsImEucGhvbmUtYWN0aW9uIl0sYXNjX2N0YV9pbnRlcmFjdGlvbjoiLnYtY2FyZCBhOm5vdCgucGhvbmUtbGluayk7LmxlZnRfYm94IGE7I2Zvb3RlciBhOyNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMTsjUHVsbG91dF9CdWlsZC1hbmQtUHJpY2U7I25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIi5zcGxpdCgiOyIpLAphc2NfY3RhX2ludGVyYWN0aW9uOiIjcHJvbW9EaXNjb3ZlckJ1dHRvbiAuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IgI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIC5sb2FuQ2FsY3VsYXRvclRyaWdnZXIgLm9mZmVyLWJ0biAuY3RQcm9tbyAudHJhZGVJbkJhcl9idG4iLnNwbGl0KCIgIiksYXNjX2N0YV9pbnRlcmFjdGlvbjpbIi5uZXdWZHBBY3Rpb25zIGEiLCIuY3RhLXRwbCBhIl0sYXNjX2NvbW1fZW5nYWdlbWVudDpbIi50ZXh0LXVzLWJ0biJdLGFzY19mb3JtX2VuZ2FnZW1lbnQ6WyJpbnB1dCIsInNlbGVjdCIsInRleHRhcmVhIl0sYXNjX21lZGlhX2ludGVyYWN0aW9uOlsiI25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIiwiaW1nIl0sYXNjX21lbnVfaW50ZXJhY3Rpb246WyIudXBfbWVudSBhIl0sYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbjpbIi5sYW5ndWFnZUJhciBhIl19LGw9ITE7Y29uc29sZS5sb2coIkQyQVNDIExvYWRpbmcuLi4iLGQpO3ZhciBnPW5ldyBmdW5jdGlvbigpe3ZhciBlPQp0aGlzO2Uuc2V0VmVoaWNsZVN0YXR1cz1mdW5jdGlvbihiKXtsZXQgYT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKTtpZigiIiE9JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPSdtYWtlJ10iKS52YWwoKSl7bGV0IGM9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7YS52YWwoL3VzZWQvLnRlc3QoYyl8fC9vY2Nhc2lvbi8udGVzdChjKT8iVXNlZCI6Ik5ldyIpfSExIT09YiYmYS52YWwoYil9O2Uuc2V0RGlnaXRhbERhdGE9ZnVuY3Rpb24oYixhKXtsZXQgYz1lLmFkZEV2ZW50KGIsYSk7aWYoITE9PT1jKXJldHVybiExO3ZvaWQgMCE9PWMuZm9ybV9uYW1lJiYoYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgibWVuc3VhbGl0P3MiLCJtZW5zdWFsaXRlcyIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoInY\/aGljdWxlIiwidmVoaWN1bGUiKSxjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCI\/dGFwZXMiLAoiZXRhcGVzIiksYy5mb3JtX25hbWU9IkQyQyAiK2MuZm9ybV9uYW1lKTt2b2lkIDAhPT1jLmZvcm1fbGFuZyYmKGMuZm9ybV9sYW5nPWUuc3RhbmRhcmRpemVGb3JtTGFuZyhjLmZvcm1fbGFuZykpO2guZXZlbnRzLnVuc2hpZnQoSlNPTi5zdHJpbmdpZnkoe25hbWU6YixwYXJhbXM6Y30pKTsidmRwIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzaG93cm9vbSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW0iKTsic2VhcmNoIGludmVudG9yeSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW1saXN0Iik7bGV0IGY9ZS5nZXRFdmVudFR5cGUoYik7ZS5yZXBvcnQoZixiLGMsaCk7ImFzY19mb3JtX3N1Ym1pc3Npb24iPT1iJiYoZS5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0xlYWRzIiwKYSksc2V0VGltZW91dChmdW5jdGlvbigpe2FzY0xhc3RDdGFDbGljaz0hMX0sMTI1MCkpOyJhc2NfY29tbV9zdWJtaXNzaW9uIj09YiYmZS5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyIsYSk7ImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1iJiYhMT09PWFzY0NvbW1TdGFydEZpcmVkJiZhIGluc3RhbmNlb2YgalF1ZXJ5JiYwPGEuY2xvc2VzdCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmxlbmd0aCYmKGFzY0NvbW1TdGFydEZpcmVkPSEwLGUuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N0YXJ0IixhKSl9O2UuZ2V0RXZlbnRUeXBlPWZ1bmN0aW9uKGIpe2xldCBhPSJlbmdhZ2VtZW50Ijtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmE9CiJjb252ZXJzaW9uIn1yZXR1cm4gYX07ZS5iaW5kRWxlbWVudHM9ZnVuY3Rpb24oYixhKXskLmVhY2goYSxmdW5jdGlvbihjLGYpeyQoZikuZWFjaChmdW5jdGlvbigpe2NvbnN0IG09JCh0aGlzKSxuPSJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09Yj8iYmx1ciI6ImNsaWNrIjskKHRoaXMpLm9uKG4sZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKGIsbSl9KX0pfSl9O2UuYWRkRXZlbnQ9ZnVuY3Rpb24oYixhKXt2YXIgYz17ZXZlbnRfb3duZXI6ImQyYyIscGFnZV90eXBlOmQucGFnZUlkLHBhZ2VfdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGV2ZW50X2xhYmVsOmIsZXZlbnRfY2F0ZWdvcnk6JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXZlaGljbGVTdGF0dXNdIikudmFsKCl9LGY9ITEhPT1hc2NMYXN0Q3RhQ2xpY2s\/ZS5DdGFUZXh0UGFyc2VyKGFzY0xhc3RDdGFDbGljayk6IiI7c3dpdGNoKGIpe2Nhc2UgImFzY19wYWdldmlldyI6YnJlYWs7Y2FzZSAiYXNjX2NsaWNrX3RvX2NhbGwiOmY9CmEuaGFzQ2xhc3MoInBob25lLWxpbmsiKT9hLnRleHQoKTphLmF0dHIoImhyZWYiKTtmPWYucmVwbGFjZSgvW14wLTlcK10vZywiIik7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fcGhvbmVfbnVtYmVyOmYsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb246IiJ9KTticmVhaztjYXNlICJhc2NfY3RhX2ludGVyYWN0aW9uIjpmPWUuQ3RhVGV4dFBhcnNlcihhKTtlLmlzQ3RhQ2xpY2soYSkmJihhc2NMYXN0Q3RhQ2xpY2s9YSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDpmLGVsZW1lbnRfb3JkZXI6IiIsZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3R5cGU6ZS5nZXRFbGVtZW50VHlwZShhKSxldmVudF9hY3Rpb246IiIsZXZlbl9hY3Rpb25fcmVzdWx0OmEuYXR0cigiaHJlZiIpPyJyZWRpcmVjdCI6InBvcHVwIixsaW5rX3VybDphLmF0dHIoImhyZWYiKT9hLmF0dHIoImhyZWYiKToiIn0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX2VuZ2FnZW1lbnQiOmY9CmUuZ2V0TGVhZFR5cGVGb3JtTmFtZShhKTtpZighMT09PWYpcmV0dXJuITE7bGV0IG09ZS5hc2NUZXh0UmVwbGFjZXIoYS52YWwoKSksbj1lLmdldEQyY0RlcGFydG1lbnQoYSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDptLGNvbW1fdHlwZToiZm9ybSIsY29tbV9zdGF0dXM6InN0YXJ0IixkZXBhcnRtZW50Om4sZm9ybV9uYW1lOmYsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDpufSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOiJjbG9zZSIsc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6InN1Ym1pdCIsY3RhX3RleHQ6ZixjdXN0b21lcl9waG9uZTphLmNvbmZpcm1fcGhvbmVfbnVtYmVyLGN1c3RvbWVyX2VtYWlsOmEuY29uZmlybV9lbWFpbCxkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSwKZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOmNhc2UgIkQyQ19MZWFkcyI6YS5jb25maXJtX3Bob25lX251bWJlcj12b2lkIDA9PT1hLmNvbmZpcm1fcGhvbmVfbnVtYmVyPyIiOmEuY29uZmlybV9waG9uZV9udW1iZXI7YS5jb25maXJtX2VtYWlsPXZvaWQgMD09PWEuY29uZmlybV9lbWFpbD8iIjphLmNvbmZpcm1fZW1haWw7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsCmNvbW1fb3V0Y29tZTplLmdldEZvcm1PdXRjb21lKGIpLHN1Ym1pc3Npb25faWQ6IiIsZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKCJzdWJtaXQiKSxjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7YnJlYWs7Y2FzZSAiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Yz17Zm9ybV9maWxsZWQ6IlllcyJ9O2JyZWFrO2Nhc2UgImFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb24iOmM9dm9pZCAwIT09YS5ldmVudF9hY3Rpb24\/T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OmEuZXZlbnRfYWN0aW9uX3Jlc3VsdCwKZXZlbnRfYWN0aW9uOmEuZXZlbnRfYWN0aW9uLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOmEuZmlsdGVySW5mby5zdGF0ZSxlbGVtZW50X3R5cGU6InNlYXJjaCI9PWEuZXZlbnRfYWN0aW9uPyJmaWx0ZXIiOiJzb3J0IixlbGVtZW50X3N1YnR5cGU6YS5maWx0ZXJJbmZvLnR5cGUsZWxlbWVudF90aXRsZTphLmZpbHRlckluZm8ubGFiZWwsZWxlbWVudF90ZXh0OmEuZmlsdGVySW5mby50aXRsZSxlbGVtZW50X3ZhbHVlOmEuZmlsdGVySW5mby52YWx1ZSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pOk9iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDoibGFuZ3VhZ2UiLGV2ZW50X2FjdGlvbjoiY2xpY2siLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOjAsZWxlbWVudF90eXBlOiJsYW5ndWFnZSB0b2dnbGUsIixlbGVtZW50X3N1YnR5cGU6ImJ1dHRvbiIsZWxlbWVudF90aXRsZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksCmVsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF92YWx1ZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3Bvc2l0aW9uOiIiLGVsZW1lbnRfb3JkZXI6IiJ9KTticmVhaztjYXNlICJhc2NfbWVkaWFfaW50ZXJhY3Rpb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OiIiLGFmZmlsaWF0aW9uOiIiLG1lZGlhX3R5cGU6IiIsbGlua191cmw6IiIsY3JlYXRpdmVfbmFtZToiIn0pO2JyZWFrO2Nhc2UgImFzY19tZW51X2ludGVyYWN0aW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3N1YnR5cGU6Im1lZ2FfbWVudSIsZWxlbWVudF90eXBlOmEuY2xvc2VzdCgibGkiKS5hdHRyKCJkYXRhLWlkIiksZXZlbnRfYWN0aW9uOiJjbGljayJ9KTticmVhaztjYXNlICJhc2NfcmV0YWlsX3Byb2Nlc3MiOmM9Ck9iamVjdC5hc3NpZ24oe30sYyx7Zmxvd19uYW1lOiJmaW5hbmNlIixlbGVtZW50X3RpdGxlOiIiLGZsb3dfb3V0Y29tZToicHJvY2VlZCIsaXRlbV9wYXltZW50OiJmaW5hbmNlIixmbG93X3N0YWdlOiIifSk7YnJlYWs7Y2FzZSAiYXNjX3NwZWNpYWxfb2ZmZXIiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtwcm9tb3Rpb25fbmFtZTokKCJoMjpmaXJzdC1jaGlsZCIsYSkubGVuZ3RoP2UuYXNjVGV4dFJlcGxhY2VyKCQoImgyOmZpcnN0LWNoaWxkIixhKS50ZXh0KCkpOiJEZWFsZXIgUHJvbW8iLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3Bvc2l0aW9uOiJmbG9hdGluZyIsZmxvd19vdXRjb21lOiJzdGFydCJ9KTticmVhaztjYXNlICJhc2NfY29tbV9lbmdhZ2VtZW50IjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6InN0YXJ0Iixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyJ9KTsKYnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfY29tbV9zdGFydCI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJlbmdhZ2UiLGNvbW1fdHlwZToic21zIixwcm9kdWN0X25hbWU6ImQyY190ZXh0IixldmVudF9vd25lcjoiZDJjIn0pO2JyZWFrO2Nhc2UgImFzY19jb21tX3N1Ym1pc3Npb25fc2FsZXMiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImNoYXQiLGFmZmlsaWF0aW9uOiJuYXRpdmUiLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uX2lkOiJtdWx0aS11c2VyIixjb21tX3N0YXR1czoiY3JtX3VwZGF0ZSIsZWxlbWVudF9wb3NpdGlvbjoicG9wLXVwIn0pOwpicmVhaztkZWZhdWx0OnJldHVybiBjb25zb2xlLmxvZygiRDJBU0MgRVJST1IoQ09ERTowMDEpIixiLGEpLCExfSExIT09YXNjVG9wQ2FyRGV0YWlscyYmIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiIT1iJiYoYz1PYmplY3QuYXNzaWduKHt9LGMsYXNjVG9wQ2FyRGV0YWlscykpO2NvbnNvbGUubG9nKCJHQTQgRmluYWwgRGlnaXRhbCBEYXRhIixjKTtyZXR1cm4gY307ZS5pc0N0YUNsaWNrPWZ1bmN0aW9uKGIpe2xldCBhPSExO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLm5ld1ZkcEFjdGlvbnMiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0YS10cGwiKS5sZW5ndGgmJihhPSEwKSwicHJvbW9EaXNjb3ZlckJ1dHRvbiI9PWIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikubGVuZ3RoJiYoYT0hMCksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCIpLmxlbmd0aCYmCihhPSEwKSwic2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQiPT1iLmF0dHIoImlkIikmJihhPSEwKSxiLmhhc0NsYXNzKCJsb2FuQ2FsY3VsYXRvclRyaWdnZXIiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIubG9hbkNhbGN1bGF0b3JUcmlnZ2VyIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygiY3RQcm9tbyIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5jdFByb21vIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygib2ZmZXItYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLm9mZmVyLWJ0biIpLmxlbmd0aCYmKGE9ITApLGIuaGFzQ2xhc3MoInRyYWRlSW5CYXJfYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLnRyYWRlSW5CYXJfYnRuIikubGVuZ3RoJiYoYT0hMCksIlRSQURFSU4iPT1iLmF0dHIoImRhdGEtaWQiKSYmKGE9ITApKTtyZXR1cm4gYX07ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nPWZ1bmN0aW9uKGIpe3ZvaWQgMD09PWImJiQoImh0bWwiKS5hdHRyKCJsYW5nIik7Yj1iLnRvTG93ZXJDYXNlKCk7CiJlbmciPT1iJiYoYj0iZW4iKTsiZW5nbGlzaCI9PWImJihiPSJlbiIpOyJmcm4iPT1iJiYoYj0iZnIiKTsiZnJlbmNoIj09YiYmKGI9ImZyIik7ImVuIiE9YiYmImZyIiE9YiYmKGI9ImVuIik7cmV0dXJuIGJ9O2UuQ3RhVGV4dFBhcnNlcj1mdW5jdGlvbihiKXtkLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2xldCBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGM9IiI7aWYoL25ld1wvaW52ZW50b3J5XC9zZWFyY2gvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZVwvcmVjaGVyY2hlLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIE5ldyBJbnZlbnRvcnkgU1JQOiAiO2Vsc2UgaWYoL25ld1wvaW52ZW50b3J5Ly50ZXN0KGEpfHwvbmV1ZnNcL2ludmVudGFpcmUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBWRFA6ICI7ZWxzZSBpZigvbmV3Ly50ZXN0KGEpfHwvbmV1ZnMvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IFNob3dSb29tIFZEUDogIjsKZWxzZSBpZigvdXNlZC8udGVzdChhKXx8L29jY2FzaW9uLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIFVzZWQgSW52ZW50b3J5IFZEUDogIjtyZXR1cm4gYytlLmFzY1RleHRSZXBsYWNlcihiLnRleHQoKSl9O2UuZ2V0TGVhZFR5cGVGb3JtTmFtZT1mdW5jdGlvbihiKXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKSxjPSExO2QucGFnZUlkLmluY2x1ZGVzKCJvcmRlciBwYXJ0cyIpJiYoYz0iUGFydHNSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoInRlc3QgZHJpdmUiKSYmKGM9IlRlc3REcml2ZSIpO2QucGFnZUlkLmluY2x1ZGVzKCJwcmljZSByZXF1ZXN0IikmJihjPSJQcmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYnJvY2h1cmUiKSYmKGM9IkJyb2NodXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoYz0iU2VydmljZVJlcXVlc3QiKTsKZC5wYWdlSWQuaW5jbHVkZXMoInRpcmVzIikmJihjPSJUaXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYm9keSBzaG9wIikmJihjPSJCb2R5U2hvcCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGM9IlJlY2FsbHMiKTtpZihiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIi5kaXZTcGFuRmlsdGVycyIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgpKXJldHVybiExO2I9ZS5mb3JtRGF0YUJ5SWQoYik7cmV0dXJuITEhPT1iP2IuZm9ybU5hbWU6ITEhPT1jP2QyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxjKToiVU5LTk9XTjogIithfTtlLmZvcm1EYXRhQnlJZD1mdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgalF1ZXJ5KXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKTt2b2lkIDA9PT1hJiYoMDwKYi5jbG9zZXN0KCIjY29udGFjdHBvcHVwIikubGVuZ3RoJiYoYT0iUmVxdWVzdCBmb3IgY29udGFjdCIpLDA8Yi5jbG9zZXN0KCIuY3JlZGl0U2NvcmVJbnB1dCIpLmxlbmd0aCYmKGE9ImNyZWRpdFNjb3JlIiksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoQW5kU2F2ZVBvcHVwQ29udGFpbmVyX2JucCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbk5ld0JOUCIpLDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGFuZHNhdmVfdGV4dCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbiIpKTtpZihkLnBhZ2VJZC5pbmNsdWRlcygic2hvd3Jvb206Y29tcGFyZSIpJiZ2b2lkIDAhPT1hJiZhLmluY2x1ZGVzKCJmZWF0dXJlZFByb2R1Y3RfIikpcmV0dXJue2Zvcm1UeXBlOiJyZXNlYXJjaCIsZm9ybU5hbWU6IkNvbXBhcmVGb3JtIn07aWYoMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5sZW5ndGgmJjA8Yi5jbG9zZXN0KCIjbXVsdGlmb3JtX2VtYmVkZGVkIikuZmluZCgiLm11bHRpZm9ybV9lbWJlZGRlZF9zdGVwMSIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLApmb3JtTmFtZToiRGlzY292ZXJPZmZlciJ9O3N3aXRjaChhKXtjYXNlICJtaW5pZm9ybSI6Y2FzZSAiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QifTtjYXNlICJsb2FuLWZvcm0iOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJQcmljZVJlcXVlc3QifTtjYXNlICJmb3JtRGVhbGVyQXBwb2ludG1lbnQiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkRlYWxlckFwcG9pbnRtZW50In07Y2FzZSAiU2xpZGVXaWRnZXRGb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJTbGlkZVdpZGdldEZvcm0ifTtjYXNlICJjcmVkaXRTY29yZSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdFJlcXVlc3RfU2hvcnQifTtjYXNlICJSZWJhdGVDb3Vwb25OZXdCTlAiOnJldHVybntmb3JtVHlwZToicHJlLW9yZGVyIiwKZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ld0JOUCJ9O2Nhc2UgImJhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9ib2R5IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJCYW5uZXJGb3JtIn07Y2FzZSAicGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCI6Y2FzZSAicGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiTW9udGhseVBheW1lbnRzIn07Y2FzZSAiY29udGFjdF9mb3JtIjpjYXNlICJjb250YWN0X2Zvcm0yIjpjYXNlICJjb250YWN0X2Zvcm0zIjpjYXNlICJSZXF1ZXN0IGZvciBjb250YWN0IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJDb250YWN0UmVxdWVzdCJ9O2Nhc2UgInF1aWNrRW1haWxGb3JtIjpjYXNlICJtYWlsRXhwcmVzc1JlcXVlc3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJRdWlja0VtYWlsIn07Y2FzZSAidHJhZGluTWFrZSI6Y2FzZSAidHJhZGluWWVhciI6Y2FzZSAidHJhZGluTW9kZWwiOmNhc2UgInRyYWRpblRyaW0iOmNhc2UgInRyYWRlSW5CYXJQb3B1cEZvcm0iOmNhc2UgIlNlbGxDYXJGb3JtIjpyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiUHJpY2VWZWhpY2xlIn19aWYoMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTEiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkyIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MyIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJSZWJhdGVDb3Vwb25OZXcifTtpZigwPGIuY2xvc2VzdCgiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifX1yZXR1cm4hMX07CmUuY29tbVN1YkRhdGFQYXJzZXI9ZnVuY3Rpb24oYixhKXtsZXQgYz17Zm9ybV9uYW1lOiIiLGZvcm1fdHlwZToiIixmb3JtX2RlcHQ6IiIsZm9ybV9sYW5nOiIifTsvYXNjX2NvbW1fc3VibWlzc2lvbi8udGVzdChiKSYmIlNsaWRlV2lkZ2V0Rm9ybSI9PWEuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIikmJihjLmZvcm1fbmFtZT0iTGVhZDogQ2hhdCBTdWJtaXNzaW9uIik7cmV0dXJuIGN9O2UuYXNjVGV4dFJlcGxhY2VyPWZ1bmN0aW9uKGIpe2I9Yi5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdCkvZ20sIiIpO2I9Yi5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtyZXR1cm4gYj1iLnRyaW0oKX07ZS5oYXNoVGV4dD1mdW5jdGlvbihiKXtiPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShiLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGIpLnRoZW4oYT0+QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGM9PgpjLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIiIpKX07ZS5nZXRGb3JtT3V0Y29tZT1mdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJEMkNfTGVhZHMiOnJldHVybiJjcm1fdXBkYXRlIjtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpyZXR1cm4iYXBwdF9ib29rZWQifX07ZS5nZXREMmNEZXBhcnRtZW50PWZ1bmN0aW9uKGIpe2xldCBhPWQucGFnZUlkLnRvTG93ZXJDYXNlKCksYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKSxmPSJPVEhFUiI7L25ldWZzLy50ZXN0KGMpJiYoZj0iTkVXIik7L25ldy8udGVzdChjKSYmKGY9Ik5FVyIpOy9vY2Nhc2lvbi8udGVzdChjKSYmCihmPSJVU0VEIik7L3VzZWQvLnRlc3QoYykmJihmPSJVU0VEIik7YS5pbmNsdWRlcygiZmluYW5jZSIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJwYXJ0cyIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInRpcmVzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiYm9keSBzaG9wIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiZmluYW5jZSBkZXBhcnRtZW50IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY3JlZGl0IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY29udGFjdCB1cyIpJiYoZj0iU0FMRVMiKTthLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGY9IlNFUlZJQ0UiKTtiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihmPSJGSU5BTkNFIiksImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI9PQpiLmF0dHIoImlkIikmJihmPSJGSU5BTkNFIiksMDxiLmNsb3Nlc3QoIiNTZWxsQ2FyRm9ybSIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSx2b2lkIDAhPT1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpJiYoZj1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpKSk7cmV0dXJuIGZ9O2UuZ2V0Rm9ybVR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKTtpZihhLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInNlcnZpY2VfYXBwb2ludG1lbnQiO2lmKGEuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIil8fGEuaW5jbHVkZXMoIm9yZGVyIHRpcmVzIikpcmV0dXJuInBhcnRzIjtpZihhLmluY2x1ZGVzKCJib2R5IHNob3AiKSlyZXR1cm4iYm9keV9zaG9wIjtpZihhLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKXx8YS5pbmNsdWRlcygiY3JlZGl0IikpcmV0dXJuImNyZWRpdCI7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtVHlwZToKImNvbnN1bWVyX2NvbnRhY3QifTtlLmdldEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGIpe3JldHVybiJ0b3BCYW5uZXJJbWFnZSI9PWIuYXR0cigiaWQiKXx8MDxiLmNsb3Nlc3QoIiN0b3BCYW5uZXJJbWFnZSIpLmxlbmd0aD8iYmFubmVyIjowPGIuY2xvc2VzdCgiLmhlYWRlci1pbWFnZS13cmFwcGVyIikubGVuZ3RoPyJoZWFkZXIiOjA8Yi5jbG9zZXN0KCIubGFuZ3VhZ2VCYXIiKS5sZW5ndGg\/ImFjY2Vzc2liaWxpdHlfdG9vbCI6MDxiLmhhcygiLmRlYWxlck1hcExpbmsiKS5sZW5ndGg\/Im1hcCI6MDxiLmNsb3Nlc3QoIi5zbGlkZXMiKS5sZW5ndGg\/ImdhbGxlcnkiOjA8Yi5jbG9zZXN0KCIudXNlZFZkcEFjdGlvbnMiKS5sZW5ndGg\/ImRpZ2l0YWxfcmV0YWlsaW5nX3Rvb2wiOiJQdWxsb3V0X0J1aWxkLWFuZC1QcmljZSI9PWIuYXR0cigiLnVzZWRWZHBBY3Rpb25zIik\/ImJhbm5lciI6Im5ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8KInZpZGVvIjoiZGlnaXRhbF9yZXRhaWxpbmcifTtlLmdldFZlaGljbGVKU09OPWZ1bmN0aW9uKGIsYSl7JC5nZXQoIi9qcy9qc29uLyIrYisiLmpzb24iKS5kb25lKGZ1bmN0aW9uKGMpe2MuaXRlbV9udW1iZXI9YjtpZigiIiE9YSYmdm9pZCAwIT09YSl3aW5kb3dbYV0oYyk7cmV0dXJuIGN9KX07ZS5yZXBvcnQ9ZnVuY3Rpb24oYixhLGMsZil7aWYodm9pZCAwPT09ZC5zdWJfZ2E0fHwiTiI9PWQuc3ViX2dhNCljPU9iamVjdC5hc3NpZ24oe30sYyx7c2VuZF90bzoiRy1aNVE4WjVDN0tGIn0pO2lmKCEwPT09bCYmImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1hKXJldHVybiExO2d0YWcoImV2ZW50IixhLGMpO2w9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe2w9ITF9LDFFMyl9O3JldHVybiBlfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXRWZWhpY2xlU3RhdHVzKCExKTsidmRwIj09ZC5wYWdlSWQmJigwPCQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmIiIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpJiYKIjAiIT0kKCIjdG9wY2FyaWQiKS52YWwoKT9nLmdldFZlaGljbGVKU09OKCQoIiN0b3BjYXJpZCIpLnZhbCgpLCJhc2NVcGRhdGVUb3BDYXJEYXRhIik6YXNjVXBkYXRlVG9wQ2FyRGF0YSghMSkpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19wYWdldmlldyIse30pfSl9LDFFMyk7JC5lYWNoKGssZnVuY3Rpb24oYixhKXtnLmJpbmRFbGVtZW50cyhiLGEpfSwhMSk7JCgiLnJldmVhbC1tb2RhbCIpLm9uZSgicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoYi50YXJnZXQpKTtnLmJpbmRFbGVtZW50cygiYXNjX2Zvcm1fZW5nYWdlbWVudCIsWyQoYi50YXJnZXQpLmZpbmQoImZvcm0gaW5wdXQsIGZvcm0gc2VsZWN0LCBmb3JtIHRleHRhcmVhIildKX0pO3NldFRpbWVvdXQoKCk9PnskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdEZWFsZXJBcHBvaW50bWVudCddIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsRGVhbGVyQXBwb2ludG1lbnQiKSl9KTskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdQYXlwYWxQYXltZW50J10iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoIiNtb2RhbFBheXBhbFBheW1lbnQiKSl9KX0sMUUzKTswPCQoIiNmbHRTb3J0SWQiKS5sZW5ndGgmJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD0kKCIjZmx0U29ydElkIC5kaXZBY3Rpb25XcmFwcGVyIC5kaXZMYWJlbCIpLmh0bWwoKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCl7dmFyIGU9bmV3IEFic3RyYWN0VXNlZFNycE9iamVjdCh7bmFtZToiZDJjX2hvbmRhX2d0bSJ9KTtlLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJwcm94eSIsZnVuY3Rpb24oYil7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYi5jbWQmJgoicmVxdWVzdCI9PT1iLmNtZCYmITEhPT1iLmRhdGEpe2xldCBhPWIuZGF0YS5maWx0ZXJTdGF0ZS5maWx0ZXJTZWFyY2g7c2V0VGltZW91dChmdW5jdGlvbigpe2EucmVzdWx0cz1iLmRhdGEuZmlsdGVyU3RhdGUuY291bnRTZWFyY2hSZXN1bHRzO2EudHlwZWRTZWFyY2g9Yi5kYXRhLmZpbHRlclN0YXRlLnR5cGVkU2VhcmNoO2EuZXZlbnRfYWN0aW9uX3Jlc3VsdD0ic2VhcmNoIjthLmV2ZW50X2FjdGlvbj0ic2VhcmNoIjthLmZpbHRlckluZm89YXNjTGFzdEZpbHRlckNsaWNrO2FzY0xhc3RGaWx0ZXJDbGljaz0hMTtPYmplY3Qua2V5cyhhKS5pbmNsdWRlcygic29ydCIpJiZhc2NMYXN0U2VhcmNoRmlsdGVyU29ydCE9YS5zb3J0WzBdJiYoYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9YS5zb3J0WzBdLGEuZXZlbnRfYWN0aW9uPSJzb3J0Iik7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbiIsYSl9LDEwMCl9fSk7ZS5pbml0VXNlZFNycE9ic2VydmVyKCl9JChkb2N1bWVudCkub24oInVzZWRTcnBGaWx0ZXJzLm9uQ2hhbmdlIiwKImJvZHkiLChiLGEpPT57Yj0kKCIjIithLmlkKTtiPSQoIi5mbHRUaXRsZSIsYikudGV4dCgpO2xldCBjPWEudmFsdWU7dmFyIGY9IiI7bGV0IG09InRleHRfc2VhcmNoIjthLnZhbHVlJiZhLnZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoIjo6Iik\/KG09ImJ1dHRvbiIsZj1hLnZhbHVlLnNwbGl0KCI6OiIpLGEudmFsdWU9ZlswXSxmPWZbMV0pOmEudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiLCIpJiYobT0icmFuZ2Vfc2xpZGVyIik7YXNjTGFzdEZpbHRlckNsaWNrPXtpZDphLmlkLHRpdGxlOmEubGFiZWwsdmFsdWU6YS52YWx1ZSxvcmdfdmFsdWU6YyxzdGF0ZTpmLHR5cGU6bSxsYWJlbDpifX0pOyQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIsZnVuY3Rpb24oYixhKXtjb25zb2xlLmxvZygiRDJBU0MgRW1haWwgU2VudCBUcmlnZ2VyIixiLGEpO2lmKHZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlKXtiPWEuZGV0YWlsLmxlYWRUeXBlO2lmKGIuaW5jbHVkZXMoIkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSIpfHwKYi5pbmNsdWRlcygiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXMiKXx8KGEuZGV0YWlsLm1haWxJZHx8IiIpLnN0YXJ0c1dpdGgoIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKSlyZXR1cm4hMTtiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIiKSYmKGI9IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiKTtiLnRyaW0oKTthLmRldGFpbC5sZWFkVHlwZT1ifXZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlJiYiIiE9YS5kZXRhaWwubGVhZFR5cGV8fHZvaWQgMD09PWEuZGV0YWlsLm1haWxJZHx8KGEuZGV0YWlsLmxlYWRUeXBlPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxhLmRldGFpbC5tYWlsSWQpKTthLmRldGFpbC5sZWFkTmFtZUFycj1kLmZvcm1NYXA7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9lbWFpbCYmKGEuZGV0YWlsLmNvbmZpcm1fZW1haWw9IiIpO3ZvaWQgMD09PWEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyJiYKKGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPSIiKTtQcm9taXNlLmFsbChbZy5oYXNoVGV4dChhLmRldGFpbC5jb25maXJtX2VtYWlsKSxnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyKV0pLnRoZW4oYz0+e3ZhciBbZixtXT1jO2EuZGV0YWlsLmNvbmZpcm1fZW1haWw9ZjthLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj1tfSk7dm9pZCAwIT09YXNjVG9wQ2FyRGV0YWlscy5tYWtlJiYiIiE9YXNjVG9wQ2FyRGV0YWlscy5tYWtlfHx2b2lkIDA9PT1hLmRldGFpbC5tYWtlfHwiIj09YS5kZXRhaWwubWFrZXx8KGEuZGV0YWlsLnZjYXRlZ29yeT1hLmRldGFpbC5jb25kaXRpb24sYS5kZXRhaWwudmVyc2lvbj1hLmRldGFpbC50cmltLGEuZGV0YWlsLmJvZHlUeXBlSUQ9YS5kZXRhaWwudHJpbSxhLmRldGFpbC5jb2xvcj0iIixhLmRldGFpbC52Y2FyYnVyYW50PSIiLGEuZGV0YWlsLmRhdGVfbGlzdGluZz0iIixhc2NVcGRhdGVUb3BDYXJEYXRhKGEuZGV0YWlsKSk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIixhLmRldGFpbCl9LDI1MCk7IlNNU0luZm9MZWFkIiE9YS5kZXRhaWwubWFpbElkJiYiU01TTGVhZCIhPWEuZGV0YWlsLm1haWxJZHx8c2V0VGltZW91dChmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N1Ym1pc3Npb24iLGEuZGV0YWlsKX0sMjUwKX0pOyQoIiNTbGlkZVdpZGdldEZvcm0gYS5idG4tZGVmYXVsdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgYj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIlNsaWRlV2lkZ2V0Rm9ybSIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJzYWxlcyIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KTskKGRvY3VtZW50KS5vbigiZm9ybS5zdGVwIiwiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19yZXRhaWxfcHJvY2VzcyIsCmIpfSk7JChkb2N1bWVudCkub24oIm11bHRpRm9ybUZpbmFuY2VTdWJtaXQiLGRvY3VtZW50LmJvZHksZnVuY3Rpb24oYil7Yj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIix7ZGVwYXJ0bWVudDoiZmluYW5jZSIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KX0sMUUzKTt3aW5kb3cuZDJhc2M9Zzt3aW5kb3cuZDJhc2NEYXRhTWFwPWh9OwovKiogL2pzL3ByaW50VGhpcy5qcyAqKi8KdmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjQwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI0LTA3LTMwIDEwOjMwOjA4IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihjKXtmdW5jdGlvbiByKGQsZSl7ZSYmZC5hcHBlbmQoZS5qcXVlcnk\/ZS5jbG9uZSgpOmUpfWZ1bmN0aW9uIHQoZCxlLGspe3ZhciBmPWUuY2xvbmUoay5mb3JtVmFsdWVzKTtrLmZvcm1WYWx1ZXMmJnUoZSxmLCJzZWxlY3QsIHRleHRhcmVhIik7ay5yZW1vdmVTY3JpcHRzJiZmLmZpbmQoInNjcmlwdCIpLnJlbW92ZSgpO2sucHJpbnRDb250YWluZXI\/Zi5hcHBlbmRUbyhkKTpmLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmNoaWxkcmVuKCkuYXBwZW5kVG8oZCl9KX1mdW5jdGlvbiB1KGQsZSxrKXt2YXIgZj1kLmZpbmQoayk7ZS5maW5kKGspLmVhY2goZnVuY3Rpb24oZyxxKXtjKHEpLnZhbChmLmVxKGcpLnZhbCgpKX0pfXZhciBhO2MuZm4ucHJpbnRUaGlzPWZ1bmN0aW9uKGQpe2E9Yy5leHRlbmQoe30sYy5mbi5wcmludFRoaXMuZGVmYXVsdHMsZCk7dmFyIGU9dGhpcyBpbnN0YW5jZW9mIGpRdWVyeT90aGlzOmModGhpcyk7ZD0icHJpbnRUaGlzLSIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7CmlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9PWRvY3VtZW50LmRvbWFpbiYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvbXNpZS9pKSl7dmFyIGs9J2phdmFzY3JpcHQ6ZG9jdW1lbnQud3JpdGUoIjxoZWFkPjxzY3JpcHQ+ZG9jdW1lbnQuZG9tYWluPVxcIicrZG9jdW1lbnQuZG9tYWluKydcXCI7XHgzYy9zY3JpcHQ+PC9oZWFkPjxib2R5PjwvYm9keT4iKScsZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtmLm5hbWU9InByaW50SWZyYW1lIjtmLmlkPWQ7Zi5jbGFzc05hbWU9Ik1TSUUiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7Zi5zcmM9a31lbHNlIGMoIjxpZnJhbWUgaWQ9JyIrZCsiJyBuYW1lPSdwcmludElmcmFtZScgLz4iKS5hcHBlbmRUbygiYm9keSIpO3ZhciBnPWMoIiMiK2QpO2EuZGVidWd8fGcuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIwcHgiLGhlaWdodDoiMHB4IixsZWZ0OiItNjAwcHgiLHRvcDoiLTYwMHB4In0pOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShiLHApe2I9Yi5nZXQoMCk7Yj1iLmNvbnRlbnRXaW5kb3d8fGIuY29udGVudERvY3VtZW50fHxiO2I9Yi5kb2N1bWVudHx8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yi5vcGVuKCk7Yi53cml0ZShwKTtiLmNsb3NlKCl9YS5kb2N0eXBlU3RyaW5nJiZxKGcsYS5kb2N0eXBlU3RyaW5nKTt2YXIgbT1nLmNvbnRlbnRzKCksbD1tLmZpbmQoImhlYWQiKSxuPW0uZmluZCgiYm9keSIpLGg9YygiYmFzZSIpO2g9ITA9PT1hLmJhc2UmJjA8aC5sZW5ndGg\/aC5hdHRyKCJocmVmIik6InN0cmluZyI9PT10eXBlb2YgYS5iYXNlP2EuYmFzZTpkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2RvY3VtZW50LmxvY2F0aW9uLmhvc3Q7bC5hcHBlbmQoJzxiYXNlIGhyZWY9IicraCsnIj4nKTthLmltcG9ydENTUyYmYygibGlua1tyZWw9c3R5bGVzaGVldF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5hdHRyKCJocmVmIik7aWYoYil7dmFyIHA9CmModGhpcykuYXR0cigibWVkaWEiKXx8ImFsbCI7bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYisiJyBtZWRpYT0nIitwKyInLz4iKX19KTthLmltcG9ydFN0eWxlJiZjKCJzdHlsZSIpLmVhY2goZnVuY3Rpb24oKXtsLmFwcGVuZCh0aGlzLm91dGVySFRNTCl9KTthLnBhZ2VUaXRsZSYmbC5hcHBlbmQoIjx0aXRsZT4iK2EucGFnZVRpdGxlKyI8L3RpdGxlPiIpO2EubG9hZENTUyYmKEFycmF5LmlzQXJyYXkoYS5sb2FkQ1NTKT9qUXVlcnkuZWFjaChhLmxvYWRDU1MsZnVuY3Rpb24oYixwKXtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIit0aGlzKyInLz4iKX0pOmwuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK2EubG9hZENTUysiJy8+IikpO2lmKGg9YS5jb3B5VGFnQ2xhc3NlcyloPSEwPT09aD8iYmgiOmgsLTEhPT1oLmluZGV4T2YoImIiKSYmCm4uYWRkQ2xhc3MoYygiYm9keSIpWzBdLmNsYXNzTmFtZSksLTEhPT1oLmluZGV4T2YoImgiKSYmbS5maW5kKCJodG1sIikuYWRkQ2xhc3MoYygiaHRtbCIpWzBdLmNsYXNzTmFtZSk7cihuLGEuaGVhZGVyKTtpZihhLmNhbnZhcyl7dmFyIHY9MDtlLmZpbmQoImNhbnZhcyIpLmFkZEJhY2soImNhbnZhcyIpLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmF0dHIoImRhdGEtcHJpbnR0aGlzIix2KyspfSl9dChuLGUsYSk7YS5jYW52YXMmJm4uZmluZCgiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcykuZGF0YSgicHJpbnR0aGlzIik7Yj1jKCdbZGF0YS1wcmludHRoaXM9IicrYisnIl0nKTt0aGlzLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKGJbMF0sMCwwKTtiLnJlbW92ZURhdGEoInByaW50dGhpcyIpfSk7YS5yZW1vdmVJbmxpbmUmJihpc0Z1bmN0aW9uKGMucmVtb3ZlQXR0cik\/bS5maW5kKCJib2R5ICoiKS5yZW1vdmVBdHRyKCJzdHlsZSIpOm0uZmluZCgiYm9keSAqIikuYXR0cigic3R5bGUiLAoiIikpO3IobixhLmZvb3Rlcik7c2V0VGltZW91dChmdW5jdGlvbigpe2cuaGFzQ2xhc3MoIk1TSUUiKT8od2luZG93LmZyYW1lcy5wcmludElmcmFtZS50cmlnZ2VyKCJmb2N1cyIpLGwuYXBwZW5kKCI8c2NyaXB0PiAgd2luZG93LnByaW50KCk7IFx4M2Mvc2NyaXB0PiIpKTpkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoInByaW50Iik\/Z1swXS5jb250ZW50V2luZG93LmRvY3VtZW50LmV4ZWNDb21tYW5kKCJwcmludCIsITEsbnVsbCk6KGdbMF0uY29udGVudFdpbmRvdy50cmlnZ2VyKCJmb2N1cyIpLGdbMF0uY29udGVudFdpbmRvdy5wcmludCgpKTthLmRlYnVnfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5yZW1vdmUoKX0sMUUzKX0sYS5wcmludERlbGF5KX0sMzMzKX07Yy5mbi5wcmludFRoaXMuZGVmYXVsdHM9e2RlYnVnOiExLGltcG9ydENTUzohMCxpbXBvcnRTdHlsZTohMSxwcmludENvbnRhaW5lcjohMCxsb2FkQ1NTOiIiLHBhZ2VUaXRsZToiIixyZW1vdmVJbmxpbmU6ITEsCnByaW50RGVsYXk6MzMzLGhlYWRlcjpudWxsLGZvb3RlcjpudWxsLGZvcm1WYWx1ZXM6ITAsY2FudmFzOiExLGJhc2U6ITEsZG9jdHlwZVN0cmluZzoiPCFET0NUWVBFIGh0bWw+IixyZW1vdmVTY3JpcHRzOiExLGNvcHlUYWdDbGFzc2VzOiExfX0pKGpRdWVyeSk7Ci8qKiAvanMvYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MDgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjQtMDctMDggMTA6MzA6MDUiOyJ1c2Ugc3RyaWN0IjsKdmFyIEJhc2U2ND17X2tleVN0cjoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLF9iNjRUZXN0OlJlZ0V4cCgiXig\/OltBLVphLXowLTkrL117NH0pKig\/OltBLVphLXowLTkrL117Mn09PXxbQS1aYS16MC05Ky9dezN9PSk\/JCIpLGVuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIixjPTA7Zm9yKGE9QmFzZTY0Ll91dGY4X2VuY29kZShhKTtjPGEubGVuZ3RoOyl7dmFyIGI9YS5jaGFyQ29kZUF0KGMrKyksZT1hLmNoYXJDb2RlQXQoYysrKSxmPWEuY2hhckNvZGVBdChjKyspLGc9Yj4+MjtiPShiJjMpPDw0fGU+PjQ7dmFyIGg9KGUmMTUpPDwyfGY+PjYsaz1mJjYzO2lzTmFOKGUpP2g9az02NDppc05hTihmKSYmKGs9NjQpO2Q9ZCt0aGlzLl9rZXlTdHIuY2hhckF0KGcpK3RoaXMuX2tleVN0ci5jaGFyQXQoYikrdGhpcy5fa2V5U3RyLmNoYXJBdChoKSt0aGlzLl9rZXlTdHIuY2hhckF0KGspfXJldHVybiBkfSxkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9CiIiLGM9MDtmb3IoYT1hLnJlcGxhY2UoL1teQS1aYS16MC05XCtcLz1dL2csIiIpO2M8YS5sZW5ndGg7KXt2YXIgYj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxlPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGY9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZz10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKTtiPWI8PDJ8ZT4+NDtlPShlJjE1KTw8NHxmPj4yO3ZhciBoPShmJjMpPDw2fGc7ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTs2NCE9ZiYmKGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpOzY0IT1nJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShoKSl9cmV0dXJuIEJhc2U2NC5fdXRmOF9kZWNvZGUoZCl9LF91dGY4X2VuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIjthPWEucmVwbGFjZSgvXHJcbi9nLCJcbiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgYj1hLmNoYXJDb2RlQXQoYyk7MTI4PgpiP2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYik6KDEyNzxiJiYyMDQ4PmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj42fDE5Mik6KGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+MTJ8MjI0KSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjYmNjN8MTI4KSksZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiJjYzfDEyOCkpfXJldHVybiBkfSxfdXRmOF9kZWNvZGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBkPSIiLGM9MCxiLGUsZjtjPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChjKSwxMjg+Yj8oZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKSxjKyspOjE5MTxiJiYyMjQ+Yj8oZT1hLmNoYXJDb2RlQXQoYysxKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChiJjMxKTw8NnxlJjYzKSxjKz0yKTooZT1hLmNoYXJDb2RlQXQoYysxKSxmPWEuY2hhckNvZGVBdChjKzIpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMTUpPDwxMnwoZSY2Myk8PDZ8ZiY2MyksYys9Myk7cmV0dXJuIGR9LHdoaXRlTGlzdDpmdW5jdGlvbigpe3JldHVyblsidHJhaWxlcnMiXX0sCmlzQmFzZTY0OmZ1bmN0aW9uKGEpe3JldHVybiBCYXNlNjQud2hpdGVMaXN0KCkuaW5jbHVkZXMoYS50b0xvd2VyQ2FzZSgpKXx8InVuZGVmaW5lZCI9PT10eXBlb2YgYXx8IiI9PT1hfHwiIj09PWEudHJpbSgpfHw0Pj1hLmxlbmd0aD8hMTpCYXNlNjQuZW5jb2RlKEJhc2U2NC5kZWNvZGUoYSkpPT1hfX07Ci8qKiAvanMvRmlyZXdvcmsubWluLmpzICoqLwovKiBKYXZhU2NyaXB0IEZpcmV3b3JrcyBBbmltYXRpb24gYnkgQW5kZXNDb2RlIChodHRwOi8vY29kZWNhbnlvbi5uZXQvdXNlci9hbmRlc2NvZGUvcG9ydGZvbGlvKSAqLyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBDRmlyZXdvcmsobix0LGkscix1KXtmd1RvdGFsKys7dGhpcy5udW09ZndUb3RhbDt0aGlzLmh0bWxDb250YWluZXJJZD1uLnRvTG93ZXJDYXNlKCk7dGhpcy5odG1sQ29udGFpbmVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pO3RoaXMuZmlyZUNvbG9yPXQ7dGhpcy5zdGFydFg9aTt0aGlzLnN0YXJ0WT1yO3RoaXMuZndTY2FsZT10eXBlb2YgdSE9InVuZGVmaW5lZCI\/dToxO3RoaXMuU1ZHY2FudmFzPW51bGw7dGhpcy5md0NvbnRhaW5lcj1udWxsO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGw9bnVsbDt0aGlzLnNwYXJrcz1udWxsO3RoaXMuZmFzdEV4cGxvc2lvbj1udWxsO3RoaXMucGFydGljbGVzPW51bGw7dGhpcy5zaGluZUNvbG9yPW51bGw7dGhpcy52ZWxYPTA7dGhpcy52ZWxZPS0xMDA7dGhpcy5ncmF2aXR5PTQwO3RoaXMudGltZUJlZm9yZUV4cGxvc2lvbj0xNTAwO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXM9MTQ7dGhpcy5maXJzdEV4cGxvc2lvblJhZGl1cz00NTt0aGlzLm51bUV4cGxvc2lvblBhcnRpY2xlcz0yMDA7dGhpcy5leHBsb3Npb25QYXJ0aWNsZVJhZGl1cz0yLjU7dGhpcy5leHBsb3Npb25WZWxvY2l0eT0xODA7dGhpcy5leHBsb3Npb25EZWNlbGVyYXRpb249Ljk2O3RoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW49MmUzO3RoaXMuc2hpbmVSYWRpdXM9NjA7dGhpcy5zaGluZUV4cGFuc2lvblRpbWU9ODAwO3RoaXMuc2hpbmVGYWRlT3V0VGltZT0xMTAwO3RoaXMudXNlQXVkaW89ITE7dGhpcy5hdWRpb1VSTD0iRXhwbG9zaW9uLm1wMyI7dGhpcy5zZXBhcmF0aW9uPTExODt0aGlzLmZ3Q2VudGVyPTEzMn1mdW5jdGlvbiBGaXJld29ya1RpbWVyKG4sdCxpLHIsdSxmLGUsbyl7dmFyIHM9dHlwZW9mIGYhPSJ1bmRlZmluZWQiP2Y6ITEsaD10eXBlb2YgZSE9InVuZGVmaW5lZCI\/ZToxLGM9dHlwZW9mIG8hPSJ1bmRlZmluZWQiP286MDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHU9bmV3IENGaXJld29yayhuLHQsaSxyLGgpO3UudXNlQXVkaW89czt1LnZlbFg9Yzt1LnN0YXJ0KCl9LHUpfXZhciBmd1NWR25zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZndUb3RhbD0wLGZ3QWN0aXZlcz17fSxleHBsb3Npb25Tb3VuZENyZWF0ZWQ9ITEsZXhwbG9zaW9uTVAzPW51bGw7Q0ZpcmV3b3JrLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe2Z1bmN0aW9uIGgoKXtzfHwobi5zZXRTVkdzY2FsZShuLmFzY2VuZGluZ0ZpcmVCYWxsLG9bdF1bMF0sbi5md0NlbnRlcixuLmZ3Q2VudGVyKSxzZXRUaW1lb3V0KGgsb1t0XVsxXSksdD10PT1vLmxlbmd0aC0xPzA6dCsxKX1mdW5jdGlvbiBhKCl7cz0hMDtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uYXNjZW5kaW5nRmlyZUJhbGwpO2NsZWFySW50ZXJ2YWwoYyk7bi5leHBsb3Npb24oKX1mdW5jdGlvbiB2KCl7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLnBhcnRpY2xlcyk7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLnNoaW5lQ29sb3IpO24uU1ZHY2FudmFzLnJlbW92ZUNoaWxkKG4uZndDb250YWluZXIpO2Z3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF09TWF0aC5tYXgoMCxmd0FjdGl2ZXNbbi5odG1sQ29udGFpbmVySWRdLTEpO2Z3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF09PTAmJm4uaHRtbENvbnRhaW5lci5yZW1vdmVDaGlsZChuLlNWR2NhbnZhcyl9dmFyIHIsaSx1LGYsZSxjO2Z3QWN0aXZlc1t0aGlzLmh0bWxDb250YWluZXJJZF09ZndBY3RpdmVzLmhhc093blByb3BlcnR5KHRoaXMuaHRtbENvbnRhaW5lcklkKT9md0FjdGl2ZXNbdGhpcy5odG1sQ29udGFpbmVySWRdKzE6MTt0aGlzLnNlcGFyYXRpb249TWF0aC5yb3VuZCgxLjYqKHRoaXMuc2hpbmVSYWRpdXMrdGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cykpO3RoaXMuZndDZW50ZXI9dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cyt0aGlzLnNlcGFyYXRpb247cj10aGlzLmh0bWxDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZndTVkdjYW52YXMiKTtyLmxlbmd0aD4wP3RoaXMuU1ZHY2FudmFzPXJbMF06KHRoaXMuU1ZHY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjbGFzcyIsImZ3U1ZHY2FudmFzIiksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwid2lkdGgiLHRoaXMuaHRtbENvbnRhaW5lci5vZmZzZXRXaWR0aCksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0Iix0aGlzLmh0bWxDb250YWluZXIub2Zmc2V0SGVpZ2h0KSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHlsZSIsImRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlIiksaT1nZXRDb21wdXRlZFN0eWxlKHRoaXMuaHRtbENvbnRhaW5lcixudWxsKS5wb3NpdGlvbi50b0xvd2VyQ2FzZSgpLGk9PSJhYnNvbHV0ZSJ8fGk9PSJmaXhlZCJ8fGk9PSJyZWxhdGl2ZSI\/KHRoaXMuU1ZHY2FudmFzLnN0eWxlLnRvcD0iMHB4Iix0aGlzLlNWR2NhbnZhcy5zdHlsZS5sZWZ0PSIwcHgiKToodT10aGlzLmh0bWxDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5TVkdjYW52YXMuc3R5bGUudG9wPXUudG9wKyJweCIsdGhpcy5TVkdjYW52YXMuc3R5bGUubGVmdD11LmxlZnQrInB4IiksdGhpcy5odG1sQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuU1ZHY2FudmFzKSk7dGhpcy5md0NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIik7Zj0odGhpcy5zZXBhcmF0aW9uK3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMpKnRoaXMuZndTY2FsZTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsIngiLHRoaXMuc3RhcnRYLWYpO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwieSIsdGhpcy5zdGFydFktZik7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsdGhpcy5zZXBhcmF0aW9uKjIqdGhpcy5md1NjYWxlKTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsdGhpcy5zZXBhcmF0aW9uKjIqdGhpcy5md1NjYWxlKTtlPXRoaXMuc2VwYXJhdGlvbioyO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwidmlld0JveCIsIjAgMCAiK2UrIiAiK2UpO3RoaXMuU1ZHY2FudmFzLmFwcGVuZENoaWxkKHRoaXMuZndDb250YWluZXIpO3RoaXMudXNlQXVkaW8mJiFleHBsb3Npb25Tb3VuZENyZWF0ZWQmJihleHBsb3Npb25NUDM9bmV3IEF1ZGlvKHRoaXMuYXVkaW9VUkwpLGV4cGxvc2lvblNvdW5kQ3JlYXRlZD0hMCk7dGhpcy5jcmVhdGVHcmFkaWVudCh0aGlzLmZ3Q29udGFpbmVyLCJiaWdGaXJlR3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjIwJSIsc3R5bGU6InN0b3AtY29sb3I6I2ZmZjtzdG9wLW9wYWNpdHk6MSJ9LHtvZmZzZXQ6IjQ1JSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MC42In0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5jcmVhdGVGaWx0ZXIodGhpcy5md0NvbnRhaW5lciwic3BhcmtsZXNHbG93Iit0aGlzLm51bSwiRkZGRkZGIiwyKTt0aGlzLmNyZWF0ZUdyYWRpZW50KHRoaXMuZndDb250YWluZXIsImV4cGxvc2lvbkdyYWQiK3RoaXMubnVtLFt7b2Zmc2V0OiIwJSIsc3R5bGU6InN0b3AtY29sb3I6I2ZmZjtzdG9wLW9wYWNpdHk6MSJ9LHtvZmZzZXQ6IjEwMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAifV0pO3RoaXMuY3JlYXRlRmlsdGVyKHRoaXMuZndDb250YWluZXIsInBhcnRpY2xlc0dsb3ciK3RoaXMubnVtLHRoaXMuZmlyZUNvbG9yLDQpO3RoaXMuY3JlYXRlR3JhZGllbnQodGhpcy5md0NvbnRhaW5lciwiYmFja2xpZ2h0R3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjIwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MC4zIn0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbD10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwiYmlnRmlyZSIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2JpZ0ZpcmVHcmFkIit0aGlzLm51bSsiKSJ9KTt0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuYXNjZW5kaW5nRmlyZUJhbGwpO3ZhciBsPXRoaXMudGltZUJlZm9yZUV4cGxvc2lvbitNYXRoLm1heCh0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuLHRoaXMuc2hpbmVFeHBhbnNpb25UaW1lK3RoaXMuc2hpbmVGYWRlT3V0VGltZSkrMTAwLHk9dGhpcy5wcm9qZWN0aWxlVHdlZW4odGhpcy5md0NvbnRhaW5lcixsLHYsdGhpcy5ncmF2aXR5LHRoaXMudmVsWCx0aGlzLnZlbFkpLG49dGhpcyxzPSExLG89W1suODUsODVdLFsuNiwzMF0sWy44NSwxMjBdLFsxLDMwXV0sdD0wO2goKTt0aGlzLnNwYXJrcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsdGVyIiwidXJsKCNzcGFya2xlc0dsb3ciK3RoaXMubnVtKyIpIik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwieCIsdGhpcy5zZXBhcmF0aW9uKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ5Iix0aGlzLnNlcGFyYXRpb24pO3RoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zcGFya3MpO2M9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtDRmlyZXdvcmsucHJvdG90eXBlLmFkZFNwYXJrLmNhbGwobil9LDUpO3NldFRpbWVvdXQoYSx0aGlzLnRpbWVCZWZvcmVFeHBsb3Npb24pfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZVNWRz1mdW5jdGlvbihuLHQsaSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsbiksdTt0IT1udWxsJiZyLnNldEF0dHJpYnV0ZU5TKG51bGwsImlkIix0KTtmb3IodSBpbiBpKXIuc2V0QXR0cmlidXRlTlMobnVsbCx1LGlbdV0pO3JldHVybiByfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUdyYWRpZW50PWZ1bmN0aW9uKG4sdCxpKXtmb3IodmFyIGUscix1LG89dGhpcy5jcmVhdGVTVkcoInJhZGlhbEdyYWRpZW50Iix0LHtjeDoiNTAlIixjeToiNTAlIixyOiI1MCUiLGZ4OiI1MCUiLGZ5OiI1MCUifSksZj0wO2Y8aS5sZW5ndGg7ZisrKXtlPWlbZl07cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3RvcCIpO2Zvcih1IGluIGUpci5oYXNBdHRyaWJ1dGUodSl8fHIuc2V0QXR0cmlidXRlKHUsZVt1XSk7by5hcHBlbmRDaGlsZChyKX10aGlzLmluc2VydERlZihuLG8pfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUZpbHRlcj1mdW5jdGlvbihuLHQsaSxyKXt2YXIgZj1wYXJzZUludChpLDE2KSxvPShmPj4xNiYyNTUpLzI1NSxzPShmPj44JjI1NSkvMjU1LGg9KGYmMjU1KS8yNTUsdT10aGlzLmNyZWF0ZVNWRygiZmlsdGVyIix0LHt9KSxsPXRoaXMuY3JlYXRlU1ZHKCJmZUNvbG9yTWF0cml4IixudWxsLHt0eXBlOiJtYXRyaXgiLHZhbHVlczoiMCAwIDAgIitvKyIgIitvKyIgIDAgMCAwICIrcysiICIrcysiICAwIDAgMCAiK2grIiAiK2grIiAgMCAwIDAgMSAwIn0pLGM7dS5hcHBlbmRDaGlsZChsKTtjPXRoaXMuY3JlYXRlU1ZHKCJmZUdhdXNzaWFuQmx1ciIsbnVsbCx7c3RkRGV2aWF0aW9uOnIscmVzdWx0OiJjb2xvcmVkQmx1ciJ9KTt1LmFwcGVuZENoaWxkKGMpO3ZhciBlPXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlIixudWxsLHt9KSxhPXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlTm9kZSIsbnVsbCx7ImluIjoiY29sb3JlZEJsdXIifSksdj10aGlzLmNyZWF0ZVNWRygiZmVNZXJnZU5vZGUiLG51bGwseyJpbiI6IlNvdXJjZUdyYXBoaWMifSk7ZS5hcHBlbmRDaGlsZChhKTtlLmFwcGVuZENoaWxkKHYpO3UuYXBwZW5kQ2hpbGQoZSk7dGhpcy5pbnNlcnREZWYobix1KX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5pbnNlcnREZWY9ZnVuY3Rpb24obix0KXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoImRlZnMiKXx8bi5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsImRlZnMiKSxuLmZpcnN0Q2hpbGQpO2kuYXBwZW5kQ2hpbGQodCl9O0NGaXJld29yay5wcm90b3R5cGUuYWRkU3Bhcms9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvKCl7bi5yZW1vdmVDaGlsZCh0KX12YXIgaT00MDArTWF0aC5yYW5kb20oKSo4MDAscj10aGlzLnZlbFgrTWF0aC5yYW5kb20oKSoyMC0xMCx1PU1hdGgucmFuZG9tKCkqODArNDAsZj10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK01hdGgucmFuZG9tKCkqMy0xLjUsZT10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK01hdGgucmFuZG9tKCkqNCxuPXRoaXMuc3BhcmtzLHQ9Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVDaXJjbGUuY2FsbCh0aGlzLG4sZixlLDEsIkZGRUVCOCIpO3RoaXMucHJvamVjdGlsZVR3ZWVuKHQsaSxvLDAsLXIsdSwxLDApfTtDRmlyZXdvcmsucHJvdG90eXBlLmV4cGxvc2lvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGYodCl7MTU8dCYmdDw0MCYmbi5zZXRTVkdzY2FsZShuLmZhc3RFeHBsb3Npb24sMS42NyxuLmZ3Q2VudGVyLG4uZndDZW50ZXIpOzQwPD10JiZ0PDY1JiZuLnNldFNWR3NjYWxlKG4uZmFzdEV4cGxvc2lvbiwxLG4uZndDZW50ZXIsbi5md0NlbnRlcil9ZnVuY3Rpb24gYSh0KXt2YXIgaT1NYXRoLm1pbih0L24uc2hpbmVFeHBhbnNpb25UaW1lLDEpLHI9LjkrLjcqaSooMi1pKTtuLnNoaW5lQ29sb3Iuc2V0QXR0cmlidXRlKCJyIixyKm4uc2hpbmVSYWRpdXMpfWZ1bmN0aW9uIHYoKXt2YXIgdD1uLmFuaW1hdGlvbihuLnNoaW5lRmFkZU91dFRpbWUseSxudWxsKX1mdW5jdGlvbiB5KHQpe3ZhciBpPU1hdGgubWluKHQvbi5zaGluZUZhZGVPdXRUaW1lLDEpLHI9MS1pKmk7bi5zaGluZUNvbG9yLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixyKX12YXIgbj10aGlzLHUsZSx0LGw7Zm9yKHRoaXMuc2hpbmVDb2xvcj10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwic2hpbmVDb2xvciIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuc2hpbmVSYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2JhY2tsaWdodEdyYWQiK3RoaXMubnVtKyIpIn0pLHRoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zaGluZUNvbG9yKSx0aGlzLmZhc3RFeHBsb3Npb249dGhpcy5jcmVhdGVTVkcoImNpcmNsZSIsImV4cGxvc2lvbiIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuZmlyc3RFeHBsb3Npb25SYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2V4cGxvc2lvbkdyYWQiK3RoaXMubnVtKyIpIn0pLHRoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5mYXN0RXhwbG9zaW9uKSx1PXRoaXMuYW5pbWF0aW9uKDY1LGYsZnVuY3Rpb24oKXtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uZmFzdEV4cGxvc2lvbil9KSx0aGlzLnBhcnRpY2xlcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIiksdGhpcy5wYXJ0aWNsZXMuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsdGVyIiwidXJsKCNwYXJ0aWNsZXNHbG93Iit0aGlzLm51bSsiKSIpLGU9dGhpcy5wYXJ0aWNsZXMsdD0wO3Q8dGhpcy5udW1FeHBsb3Npb25QYXJ0aWNsZXM7dCsrKXZhciBpPU1hdGgucG93KE1hdGgucmFuZG9tKCksLjMpKnRoaXMuZXhwbG9zaW9uVmVsb2NpdHkscj1NYXRoLnJhbmRvbSgpKjIqTWF0aC5QSSxvPWkqTWF0aC5zaW4ocikscz1pKk1hdGguY29zKHIpLGg9NTArTWF0aC5yYW5kb20oKSp0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuLGM9dGhpcy5jcmVhdGVDaXJjbGUodGhpcy5wYXJ0aWNsZXMsdGhpcy5md0NlbnRlcix0aGlzLmZ3Q2VudGVyLHRoaXMuZXhwbG9zaW9uUGFydGljbGVSYWRpdXMsIkZGRkZGRiIsdGhpcy5maXJlQ29sb3IpLHA9dGhpcy5leHBsb3Npb25QYXJ0aWNsZVR3ZWVuKGMsaCx0aGlzLmV4cGxvc2lvblBhcnRpY2xlUmFkaXVzLHRoaXMuZXhwbG9zaW9uRGVjZWxlcmF0aW9uLG8scyk7dGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnBhcnRpY2xlcyk7bD10aGlzLmFuaW1hdGlvbih0aGlzLnNoaW5lRXhwYW5zaW9uVGltZSxhLHYpO3RoaXMudXNlQXVkaW8mJihleHBsb3Npb25NUDMuY3VycmVudFRpbWU9MCxleHBsb3Npb25NUDMucGxheSgpKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVDaXJjbGU9ZnVuY3Rpb24obix0LGkscix1LGYpe2Y9dHlwZW9mIGYhPSJ1bmRlZmluZWQiPyIjIitmOiJub25lIjt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywiY2lyY2xlIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlTlMobnVsbCwiY3giLHQpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLGkpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiciIsciksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIyIrdSksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2UiLGYpLGYhPSJub25lIiYmZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2Utd2lkdGgiLC41KSxuLmFwcGVuZENoaWxkKGUpLGV9O0NGaXJld29yay5wcm90b3R5cGUucHJvamVjdGlsZVR3ZWVuPWZ1bmN0aW9uKG4sdCxpLHIsdSxmLGUsbyl7ZnVuY3Rpb24gcChpKXt2YXIgbyxwLHcseTtsPWktYTthPWk7bz1sLzFlMztmKz1yKm87cD1zPyJjeCI6IngiO3c9cz8iY3kiOiJ5IjtoLmluY3JlYXNlUGFyYW1ldGVyKG4scCx1Km8pO2guaW5jcmVhc2VQYXJhbWV0ZXIobix3LGYqbyk7YyYmKHk9ZSt2KihpL3QpLHM\/bi5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIseSk6bi5zdHlsZS5vcGFjaXR5PXkpfXZhciBoLHk7ZT10eXBlb2YgZSE9InVuZGVmaW5lZCI\/ZToxO289dHlwZW9mIG8hPSJ1bmRlZmluZWQiP286MTt2YXIgYz1lIT1vLHY9by1lLGw9MCxhPTAscz1uLm5vZGVOYW1lIT0ic3ZnIjtjJiYocz9uLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixlKyIiKTpuLnN0eWxlLm9wYWNpdHk9ZSk7aD10aGlzO3k9dGhpcy5hbmltYXRpb24odCxwLGkpfTtDRmlyZXdvcmsucHJvdG90eXBlLmV4cGxvc2lvblBhcnRpY2xlVHdlZW49ZnVuY3Rpb24obix0LGkscix1LGYpe2Z1bmN0aW9uIGgoaCl7dmFyIGwsYSxjO2U9aC1zO3M9aDtsPU1hdGgucG93KHIsZS8xNyk7dSo9bDtmKj1sO2E9ZS8xZTM7by5pbmNyZWFzZVBhcmFtZXRlcihuLCJjeCIsdSphKTtvLmluY3JlYXNlUGFyYW1ldGVyKG4sImN5IixmKmEpO2M9MS0uOSooaC90KTtjPU1hdGgubWF4KGMsLjAxKTtuLnNldEF0dHJpYnV0ZSgiciIsYyppKTtuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwuNSpjKX12YXIgbz10aGlzLGU9MCxzPTAsYz10aGlzLmFuaW1hdGlvbih0LGgsbnVsbCl9O0NGaXJld29yay5wcm90b3R5cGUuYW5pbWF0aW9uPWZ1bmN0aW9uKG4sdCxpKXtmdW5jdGlvbiB1KCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksZjtyPT09bnVsbCYmKHI9ZSk7Zj1lLXI7dChmKTtmPG4\/c2V0VGltZW91dCh1LDE1KTppIT1udWxsJiZpKCl9aT10eXBlb2YgaSE9InVuZGVmaW5lZCI\/aTpudWxsO3ZhciByPW51bGw7dSgpfTtDRmlyZXdvcmsucHJvdG90eXBlLmluY3JlYXNlUGFyYW1ldGVyPWZ1bmN0aW9uKG4sdCxpKXtuLnNldEF0dHJpYnV0ZSh0LHBhcnNlRmxvYXQobi5nZXRBdHRyaWJ1dGUodCkpK2kpfTtDRmlyZXdvcmsucHJvdG90eXBlLnNldFNWR3NjYWxlPWZ1bmN0aW9uKG4sdCxpLHIpe24uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJzY2FsZSgiK3QrIikiKTtuLnNldEF0dHJpYnV0ZSgiY3giLGkrKDEtdCkqaS90KTtuLnNldEF0dHJpYnV0ZSgiY3kiLHIrKDEtdCkqci90KX07LypFT0YqLzsKLyoqIC9qcy92YW5pbGxhanMvaW1hc2subWluLmpzICoqLwohZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sZSk6ZSgodD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczp0fHxzZWxmKS5JTWFzaz17fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw\/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9LG49ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuTWF0aD09TWF0aCYmdH0saT1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIGUmJmUpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHI9e30sdT1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISF0KCl9Y2F0Y2godCl7cmV0dXJuITB9fSxzPSF1KChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYT0hdSgoZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0Lmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKSxvPWEsbD1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxoPW8\/bC5iaW5kKGwpOmZ1bmN0aW9uKCl7cmV0dXJuIGwuYXBwbHkobCxhcmd1bWVudHMpfSxjPXt9LGY9e30ucHJvcGVydHlJc0VudW1lcmFibGUscD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGQ9cCYmIWYuY2FsbCh7MToyfSwxKTtjLmY9ZD9mdW5jdGlvbih0KXt2YXIgZT1wKHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OmY7dmFyIHYsZyxrPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fSx5PWEsbT1GdW5jdGlvbi5wcm90b3R5cGUsYj1tLmJpbmQsXz1tLmNhbGwsQT15JiZiLmJpbmQoXyxfKSxDPXk\/ZnVuY3Rpb24odCl7cmV0dXJuIHQmJkEodCl9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZmdW5jdGlvbigpe3JldHVybiBfLmFwcGx5KHQsYXJndW1lbnRzKX19LEU9QyxGPUUoe30udG9TdHJpbmcpLFM9RSgiIi5zbGljZSksdz1mdW5jdGlvbih0KXtyZXR1cm4gUyhGKHQpLDgsLTEpfSxCPUMsRD11LHg9dyxNPWkuT2JqZWN0LE89QigiIi5zcGxpdCksUD1EKChmdW5jdGlvbigpe3JldHVybiFNKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk\/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PXgodCk\/Tyh0LCIiKTpNKHQpfTpNLFQ9aS5UeXBlRXJyb3IsST1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IFQoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9LGo9UCxSPUksVj1mdW5jdGlvbih0KXtyZXR1cm4gaihSKHQpKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH0sTj1MLFU9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10Ok4odCl9LHo9aSxxPUwsSD1mdW5jdGlvbih0KXtyZXR1cm4gcSh0KT90OnZvaWQgMH0sWT1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI\/SCh6W3RdKTp6W3RdJiZ6W3RdW2VdfSxaPUMoe30uaXNQcm90b3R5cGVPZiksRz1ZKCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiKXx8IiIsSz1pLCQ9RyxXPUsucHJvY2VzcyxYPUsuRGVubyxKPVcmJlcudmVyc2lvbnN8fFgmJlgudmVyc2lvbixRPUomJkoudjg7USYmKGc9KHY9US5zcGxpdCgiLiIpKVswXT4wJiZ2WzBdPDQ\/MTorKHZbMF0rdlsxXSkpLCFnJiYkJiYoISh2PSQubWF0Y2goL0VkZ2VcLyhcZCspLykpfHx2WzFdPj03NCkmJih2PSQubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihnPSt2WzFdKTt2YXIgdHQ9ZyxldD11LG50PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIWV0KChmdW5jdGlvbigpe3ZhciB0PVN5bWJvbCgpO3JldHVybiFTdHJpbmcodCl8fCEoT2JqZWN0KHQpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJnR0JiZ0dDw0MX0pKSxpdD1udCYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixydD1ZLHV0PUwsc3Q9WixhdD1pdCxvdD1pLk9iamVjdCxsdD1hdD9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXJ0KCJTeW1ib2wiKTtyZXR1cm4gdXQoZSkmJnN0KGUucHJvdG90eXBlLG90KHQpKX0saHQ9aS5TdHJpbmcsY3Q9TCxmdD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGh0KHQpfWNhdGNoKHQpe3JldHVybiJPYmplY3QifX0scHQ9aS5UeXBlRXJyb3IsZHQ9ZnVuY3Rpb24odCl7aWYoY3QodCkpcmV0dXJuIHQ7dGhyb3cgcHQoZnQodCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfSx2dD1oLGd0PUwsa3Q9VSx5dD1pLlR5cGVFcnJvcixtdD17ZXhwb3J0czp7fX0sYnQ9aSxfdD1PYmplY3QuZGVmaW5lUHJvcGVydHksQXQ9ZnVuY3Rpb24odCxlKXt0cnl7X3QoYnQsdCx7dmFsdWU6ZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtidFt0XT1lfXJldHVybiBlfSxDdD1BdCxFdD0iX19jb3JlLWpzX3NoYXJlZF9fIixGdD1pW0V0XXx8Q3QoRXQse30pLFN0PUZ0OyhtdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0W3RdfHwoU3RbdF09dm9pZCAwIT09ZT9lOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjEuMCIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IqkgMjAxNC0yMDIyIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjIxLjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KTt2YXIgd3Q9SSxCdD1pLk9iamVjdCxEdD1mdW5jdGlvbih0KXtyZXR1cm4gQnQod3QodCkpfSx4dD1EdCxNdD1DKHt9Lmhhc093blByb3BlcnR5KSxPdD1PYmplY3QuaGFzT3dufHxmdW5jdGlvbih0LGUpe3JldHVybiBNdCh4dCh0KSxlKX0sUHQ9QyxUdD0wLEl0PU1hdGgucmFuZG9tKCksanQ9UHQoMS4udG9TdHJpbmcpLFJ0PWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK2p0KCsrVHQrSXQsMzYpfSxWdD1pLEx0PW10LmV4cG9ydHMsTnQ9T3QsVXQ9UnQsenQ9bnQscXQ9aXQsSHQ9THQoIndrcyIpLFl0PVZ0LlN5bWJvbCxadD1ZdCYmWXQuZm9yLEd0PXF0P1l0Oll0JiZZdC53aXRob3V0U2V0dGVyfHxVdCxLdD1mdW5jdGlvbih0KXtpZighTnQoSHQsdCl8fCF6dCYmInN0cmluZyIhPXR5cGVvZiBIdFt0XSl7dmFyIGU9IlN5bWJvbC4iK3Q7enQmJk50KFl0LHQpP0h0W3RdPVl0W3RdOkh0W3RdPXF0JiZadD9adChlKTpHdChlKX1yZXR1cm4gSHRbdF19LCR0PWgsV3Q9VSxYdD1sdCxKdD1mdW5jdGlvbih0LGUpe3ZhciBuPXRbZV07cmV0dXJuIG51bGw9PW4\/dm9pZCAwOmR0KG4pfSxRdD1mdW5jdGlvbih0LGUpe3ZhciBuLGk7aWYoInN0cmluZyI9PT1lJiZndChuPXQudG9TdHJpbmcpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTtpZihndChuPXQudmFsdWVPZikmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO2lmKCJzdHJpbmciIT09ZSYmZ3Qobj10LnRvU3RyaW5nKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7dGhyb3cgeXQoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSx0ZT1LdCxlZT1pLlR5cGVFcnJvcixuZT10ZSgidG9QcmltaXRpdmUiKSxpZT1mdW5jdGlvbih0LGUpe2lmKCFXdCh0KXx8WHQodCkpcmV0dXJuIHQ7dmFyIG4saT1KdCh0LG5lKTtpZihpKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLG49JHQoaSx0LGUpLCFXdChuKXx8WHQobikpcmV0dXJuIG47dGhyb3cgZWUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT1lJiYoZT0ibnVtYmVyIiksUXQodCxlKX0scmU9bHQsdWU9ZnVuY3Rpb24odCl7dmFyIGU9aWUodCwic3RyaW5nIik7cmV0dXJuIHJlKGUpP2U6ZSsiIn0sc2U9VSxhZT1pLmRvY3VtZW50LG9lPXNlKGFlKSYmc2UoYWUuY3JlYXRlRWxlbWVudCksbGU9ZnVuY3Rpb24odCl7cmV0dXJuIG9lP2FlLmNyZWF0ZUVsZW1lbnQodCk6e319LGhlPSFzJiYhdSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGxlKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSksY2U9cyxmZT1oLHBlPWMsZGU9ayx2ZT1WLGdlPXVlLGtlPU90LHllPWhlLG1lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ci5mPWNlP21lOmZ1bmN0aW9uKHQsZSl7aWYodD12ZSh0KSxlPWdlKGUpLHllKXRyeXtyZXR1cm4gbWUodCxlKX1jYXRjaCh0KXt9aWYoa2UodCxlKSlyZXR1cm4gZGUoIWZlKHBlLmYsdCxlKSx0W2VdKX07dmFyIGJlPXt9LF9lPXMmJnUoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpLEFlPWksQ2U9VSxFZT1BZS5TdHJpbmcsRmU9QWUuVHlwZUVycm9yLFNlPWZ1bmN0aW9uKHQpe2lmKENlKHQpKXJldHVybiB0O3Rocm93IEZlKEVlKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfSx3ZT1zLEJlPWhlLERlPV9lLHhlPVNlLE1lPXVlLE9lPWkuVHlwZUVycm9yLFBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxUZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEllPSJlbnVtZXJhYmxlIixqZT0iY29uZmlndXJhYmxlIixSZT0id3JpdGFibGUiO2JlLmY9d2U\/RGU\/ZnVuY3Rpb24odCxlLG4pe2lmKHhlKHQpLGU9TWUoZSkseGUobiksImZ1bmN0aW9uIj09dHlwZW9mIHQmJiJwcm90b3R5cGUiPT09ZSYmInZhbHVlImluIG4mJlJlIGluIG4mJiFuLndyaXRhYmxlKXt2YXIgaT1UZSh0LGUpO2kmJmkud3JpdGFibGUmJih0W2VdPW4udmFsdWUsbj17Y29uZmlndXJhYmxlOmplIGluIG4\/bi5jb25maWd1cmFibGU6aS5jb25maWd1cmFibGUsZW51bWVyYWJsZTpJZSBpbiBuP24uZW51bWVyYWJsZTppLmVudW1lcmFibGUsd3JpdGFibGU6ITF9KX1yZXR1cm4gUGUodCxlLG4pfTpQZTpmdW5jdGlvbih0LGUsbil7aWYoeGUodCksZT1NZShlKSx4ZShuKSxCZSl0cnl7cmV0dXJuIFBlKHQsZSxuKX1jYXRjaCh0KXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgT2UoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIG4mJih0W2VdPW4udmFsdWUpLHR9O3ZhciBWZT1iZSxMZT1rLE5lPXM\/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBWZS5mKHQsZSxMZSgxLG4pKX06ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW4sdH0sVWU9e2V4cG9ydHM6e319LHplPUwscWU9RnQsSGU9QyhGdW5jdGlvbi50b1N0cmluZyk7emUocWUuaW5zcGVjdFNvdXJjZSl8fChxZS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBIZSh0KX0pO3ZhciBZZSxaZSxHZSxLZT1xZS5pbnNwZWN0U291cmNlLCRlPUwsV2U9S2UsWGU9aS5XZWFrTWFwLEplPSRlKFhlKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFdlKFhlKSksUWU9bXQuZXhwb3J0cyx0bj1SdCxlbj1RZSgia2V5cyIpLG5uPXt9LHJuPUplLHVuPWksc249Qyxhbj1VLG9uPU5lLGxuPU90LGhuPUZ0LGNuPWZ1bmN0aW9uKHQpe3JldHVybiBlblt0XXx8KGVuW3RdPXRuKHQpKX0sZm49bm4scG49Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixkbj11bi5UeXBlRXJyb3Isdm49dW4uV2Vha01hcDtpZihybnx8aG4uc3RhdGUpe3ZhciBnbj1obi5zdGF0ZXx8KGhuLnN0YXRlPW5ldyB2biksa249c24oZ24uZ2V0KSx5bj1zbihnbi5oYXMpLG1uPXNuKGduLnNldCk7WWU9ZnVuY3Rpb24odCxlKXtpZih5bihnbix0KSl0aHJvdyBuZXcgZG4ocG4pO3JldHVybiBlLmZhY2FkZT10LG1uKGduLHQsZSksZX0sWmU9ZnVuY3Rpb24odCl7cmV0dXJuIGtuKGduLHQpfHx7fX0sR2U9ZnVuY3Rpb24odCl7cmV0dXJuIHluKGduLHQpfX1lbHNle3ZhciBibj1jbigic3RhdGUiKTtmbltibl09ITAsWWU9ZnVuY3Rpb24odCxlKXtpZihsbih0LGJuKSl0aHJvdyBuZXcgZG4ocG4pO3JldHVybiBlLmZhY2FkZT10LG9uKHQsYm4sZSksZX0sWmU9ZnVuY3Rpb24odCl7cmV0dXJuIGxuKHQsYm4pP3RbYm5dOnt9fSxHZT1mdW5jdGlvbih0KXtyZXR1cm4gbG4odCxibil9fXZhciBfbj17c2V0OlllLGdldDpaZSxoYXM6R2UsZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gR2UodCk\/WmUodCk6WWUodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG47aWYoIWFuKGUpfHwobj1aZShlKSkudHlwZSE9PXQpdGhyb3cgZG4oIkluY29tcGF0aWJsZSByZWNlaXZlciwgIit0KyIgcmVxdWlyZWQiKTtyZXR1cm4gbn19fSxBbj1zLENuPU90LEVuPUZ1bmN0aW9uLnByb3RvdHlwZSxGbj1BbiYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixTbj1DbihFbiwibmFtZSIpLHduPVNuJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLEJuPVNuJiYoIUFufHxBbiYmRm4oRW4sIm5hbWUiKS5jb25maWd1cmFibGUpLERuPWkseG49TCxNbj1PdCxPbj1OZSxQbj1BdCxUbj1LZSxJbj17RVhJU1RTOlNuLFBST1BFUjp3bixDT05GSUdVUkFCTEU6Qm59LkNPTkZJR1VSQUJMRSxqbj1fbi5nZXQsUm49X24uZW5mb3JjZSxWbj1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFVlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT0hIWkmJiEhaS51bnNhZmUscz0hIWkmJiEhaS5lbnVtZXJhYmxlLGE9ISFpJiYhIWkubm9UYXJnZXRHZXQsbz1pJiZ2b2lkIDAhPT1pLm5hbWU\/aS5uYW1lOmU7eG4obikmJigiU3ltYm9sKCI9PT1TdHJpbmcobykuc2xpY2UoMCw3KSYmKG89IlsiK1N0cmluZyhvKS5yZXBsYWNlKC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksKCFNbihuLCJuYW1lIil8fEluJiZuLm5hbWUhPT1vKSYmT24obiwibmFtZSIsbyksKHI9Um4obikpLnNvdXJjZXx8KHIuc291cmNlPVZuLmpvaW4oInN0cmluZyI9PXR5cGVvZiBvP286IiIpKSksdCE9PURuPyh1PyFhJiZ0W2VdJiYocz0hMCk6ZGVsZXRlIHRbZV0scz90W2VdPW46T24odCxlLG4pKTpzP3RbZV09bjpQbihlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHhuKHRoaXMpJiZqbih0aGlzKS5zb3VyY2V8fFRuKHRoaXMpfSkpO3ZhciBMbj17fSxObj1NYXRoLmNlaWwsVW49TWF0aC5mbG9vcix6bj1mdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gZSE9ZXx8MD09PWU\/MDooZT4wP1VuOk5uKShlKX0scW49em4sSG49TWF0aC5tYXgsWW49TWF0aC5taW4sWm49em4sR249TWF0aC5taW4sS249ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD9Hbihabih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfSwkbj1LbixXbj1WLFhuPWZ1bmN0aW9uKHQsZSl7dmFyIG49cW4odCk7cmV0dXJuIG48MD9IbihuK2UsMCk6WW4obixlKX0sSm49ZnVuY3Rpb24odCl7cmV0dXJuICRuKHQubGVuZ3RoKX0sUW49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcix1PVduKGUpLHM9Sm4odSksYT1YbihpLHMpO2lmKHQmJm4hPW4pe2Zvcig7cz5hOylpZigocj11W2ErK10pIT1yKXJldHVybiEwfWVsc2UgZm9yKDtzPmE7YSsrKWlmKCh0fHxhIGluIHUpJiZ1W2FdPT09bilyZXR1cm4gdHx8YXx8MDtyZXR1cm4hdCYmLTF9fSx0aT17aW5jbHVkZXM6UW4oITApLGluZGV4T2Y6UW4oITEpfSxlaT1PdCxuaT1WLGlpPXRpLmluZGV4T2Yscmk9bm4sdWk9QyhbXS5wdXNoKSxzaT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9bmkodCkscj0wLHU9W107Zm9yKG4gaW4gaSkhZWkocmksbikmJmVpKGksbikmJnVpKHUsbik7Zm9yKDtlLmxlbmd0aD5yOyllaShpLG49ZVtyKytdKSYmKH5paSh1LG4pfHx1aSh1LG4pKTtyZXR1cm4gdX0sYWk9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXSxvaT1zaSxsaT1haS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO0xuLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBvaSh0LGxpKX07dmFyIGhpPXt9O2hpLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczt2YXIgY2k9WSxmaT1MbixwaT1oaSxkaT1TZSx2aT1DKFtdLmNvbmNhdCksZ2k9Y2koIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHQpe3ZhciBlPWZpLmYoZGkodCkpLG49cGkuZjtyZXR1cm4gbj92aShlLG4odCkpOmV9LGtpPU90LHlpPWdpLG1pPXIsYmk9YmUsX2k9dSxBaT1MLENpPS8jfFwucHJvdG90eXBlXC4vLEVpPWZ1bmN0aW9uKHQsZSl7dmFyIG49U2lbRmkodCldO3JldHVybiBuPT1CaXx8biE9d2kmJihBaShlKT9faShlKTohIWUpfSxGaT1FaS5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKENpLCIuIikudG9Mb3dlckNhc2UoKX0sU2k9RWkuZGF0YT17fSx3aT1FaS5OQVRJVkU9Ik4iLEJpPUVpLlBPTFlGSUxMPSJQIixEaT1FaSx4aT1pLE1pPXIuZixPaT1OZSxQaT1VZS5leHBvcnRzLFRpPUF0LElpPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9eWkoZSkscj1iaS5mLHU9bWkuZixzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBhPWlbc107a2kodCxhKXx8biYma2kobixhKXx8cih0LGEsdShlLGEpKX19LGppPURpLFJpPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHUscyxhPXQudGFyZ2V0LG89dC5nbG9iYWwsbD10LnN0YXQ7aWYobj1vP3hpOmw\/eGlbYV18fFRpKGEse30pOih4aVthXXx8e30pLnByb3RvdHlwZSlmb3IoaSBpbiBlKXtpZih1PWVbaV0scj10Lm5vVGFyZ2V0R2V0PyhzPU1pKG4saSkpJiZzLnZhbHVlOm5baV0sIWppKG8\/aTphKyhsPyIuIjoiIyIpK2ksdC5mb3JjZWQpJiZ2b2lkIDAhPT1yKXtpZih0eXBlb2YgdT09dHlwZW9mIHIpY29udGludWU7SWkodSxyKX0odC5zaGFtfHxyJiZyLnNoYW0pJiZPaSh1LCJzaGFtIiwhMCksUGkobixpLHUsdCl9fSxWaT1zaSxMaT1haSxOaT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIFZpKHQsTGkpfSxVaT1zLHppPUMscWk9aCxIaT11LFlpPU5pLFppPWhpLEdpPWMsS2k9RHQsJGk9UCxXaT1PYmplY3QuYXNzaWduLFhpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxKaT16aShbXS5jb25jYXQpLFFpPSFXaXx8SGkoKGZ1bmN0aW9uKCl7aWYoVWkmJjEhPT1XaSh7YjoxfSxXaShYaSh7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7WGkodGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCksaT0iYWJjZGVmZ2hpamtsbW5vcHFyc3QiO3JldHVybiB0W25dPTcsaS5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT10fSkpLDchPVdpKHt9LHQpW25dfHxZaShXaSh7fSxlKSkuam9pbigiIikhPWl9KSk\/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49S2kodCksaT1hcmd1bWVudHMubGVuZ3RoLHI9MSx1PVppLmYscz1HaS5mO2k+cjspZm9yKHZhciBhLG89JGkoYXJndW1lbnRzW3IrK10pLGw9dT9KaShZaShvKSx1KG8pKTpZaShvKSxoPWwubGVuZ3RoLGM9MDtoPmM7KWE9bFtjKytdLFVpJiYhcWkocyxvLGEpfHwoblthXT1vW2FdKTtyZXR1cm4gbn06V2ksdHI9UWk7Umkoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuYXNzaWduIT09dHJ9LHthc3NpZ246dHJ9KTt2YXIgZXI9e307ZXJbS3QoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgbnI9aSxpcj0iW29iamVjdCB6XSI9PT1TdHJpbmcoZXIpLHJyPUwsdXI9dyxzcj1LdCgidG9TdHJpbmdUYWciKSxhcj1uci5PYmplY3Qsb3I9IkFyZ3VtZW50cyI9PXVyKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSksbHI9aXI\/dXI6ZnVuY3Rpb24odCl7dmFyIGUsbixpO3JldHVybiB2b2lkIDA9PT10PyJVbmRlZmluZWQiOm51bGw9PT10PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKG49ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbZV19Y2F0Y2godCl7fX0oZT1hcih0KSxzcikpP246b3I\/dXIoZSk6Ik9iamVjdCI9PShpPXVyKGUpKSYmcnIoZS5jYWxsZWUpPyJBcmd1bWVudHMiOml9LGhyPWkuU3RyaW5nLGNyPWZ1bmN0aW9uKHQpe2lmKCJTeW1ib2wiPT09bHIodCkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBocih0KX0sZnI9em4scHI9Y3IsZHI9SSx2cj1pLlJhbmdlRXJyb3IsZ3I9ZnVuY3Rpb24odCl7dmFyIGU9cHIoZHIodGhpcykpLG49IiIsaT1mcih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyB2cigiV3JvbmcgbnVtYmVyIG9mIHJlcGV0aXRpb25zIik7Zm9yKDtpPjA7KGk+Pj49MSkmJihlKz1lKSkxJmkmJihuKz1lKTtyZXR1cm4gbn07Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDpncn0pO3ZhciBrcj1DLHlyPUtuLG1yPWNyLGJyPUksX3I9a3IoZ3IpLEFyPWtyKCIiLnNsaWNlKSxDcj1NYXRoLmNlaWwsRXI9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcix1LHM9bXIoYnIoZSkpLGE9eXIobiksbz1zLmxlbmd0aCxsPXZvaWQgMD09PWk\/IiAiOm1yKGkpO3JldHVybiBhPD1vfHwiIj09bD9zOigodT1fcihsLENyKChyPWEtbykvbC5sZW5ndGgpKSkubGVuZ3RoPnImJih1PUFyKHUsMCxyKSksdD9zK3U6dStzKX19LEZyPXtzdGFydDpFcighMSksZW5kOkVyKCEwKX0sU3I9L1ZlcnNpb25cLzEwKD86XC5cZCspezEsMn0oPzogW1x3Li9dKyk\/KD86IE1vYmlsZVwvXHcrKT8gU2FmYXJpXC8vLnRlc3QoRyksd3I9RnIuc3RhcnQ7Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6U3J9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gd3IodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgQnI9RnIuZW5kO2Z1bmN0aW9uIERyKHQpe3JldHVybiBEcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sRHIodCl9ZnVuY3Rpb24geHIodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBNcih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaS5rZXksaSl9fWZ1bmN0aW9uIE9yKHQsZSxuKXtyZXR1cm4gZSYmTXIodC5wcm90b3R5cGUsZSksbiYmTXIodCxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIFByKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJklyKHQsZSl9ZnVuY3Rpb24gVHIodCl7cmV0dXJuIFRyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LFRyKHQpfWZ1bmN0aW9uIElyKHQsZSl7cmV0dXJuIElyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxJcih0LGUpfWZ1bmN0aW9uIGpyKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbixpLHI9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLGkscj17fSx1PU9iamVjdC5rZXlzKHQpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspbj11W2ldLGUuaW5kZXhPZihuKT49MHx8KHJbbl09dFtuXSk7cmV0dXJuIHJ9KHQsZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKW49dVtpXSxlLmluZGV4T2Yobik+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LG4pJiYocltuXT10W25dKX1yZXR1cm4gcn1mdW5jdGlvbiBScih0LGUpe2lmKGUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9ZnVuY3Rpb24gVnIodCl7dmFyIGU9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2godCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLGk9VHIodCk7aWYoZSl7dmFyIHI9VHIodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChpLGFyZ3VtZW50cyxyKX1lbHNlIG49aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJyKHRoaXMsbil9fWZ1bmN0aW9uIExyKHQsZSl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1Ucih0KSk7KTtyZXR1cm4gdH1mdW5jdGlvbiBOcigpe3JldHVybiBOcj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1Mcih0LGUpO2lmKGkpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxlKTtyZXR1cm4gci5nZXQ\/ci5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM\/dDpuKTpyLnZhbHVlfX0sTnIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFVyKHQsZSxuLGkpe3JldHVybiBVcj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3Quc2V0P1JlZmxlY3Quc2V0OmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9THIodCxlKTtpZih1KXtpZigocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsZSkpLnNldClyZXR1cm4gci5zZXQuY2FsbChpLG4pLCEwO2lmKCFyLndyaXRhYmxlKXJldHVybiExfWlmKHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpKXtpZighci53cml0YWJsZSlyZXR1cm4hMTtyLnZhbHVlPW4sT2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSxyKX1lbHNlIWZ1bmN0aW9uKHQsZSxuKXtlIGluIHQ\/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09bn0oaSxlLG4pO3JldHVybiEwfSxVcih0LGUsbixpKX1mdW5jdGlvbiB6cih0LGUsbixpLHIpe2lmKCFVcih0LGUsbixpfHx0KSYmcil0aHJvdyBuZXcgRXJyb3IoImZhaWxlZCB0byBzZXQgcHJvcGVydHkiKTtyZXR1cm4gbn1mdW5jdGlvbiBxcih0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGw9PW4pcmV0dXJuO3ZhciBpLHIsdT1bXSxzPSEwLGE9ITE7dHJ5e2ZvcihuPW4uY2FsbCh0KTshKHM9KGk9bi5uZXh0KCkpLmRvbmUpJiYodS5wdXNoKGkudmFsdWUpLCFlfHx1Lmxlbmd0aCE9PWUpO3M9ITApO31jYXRjaCh0KXthPSEwLHI9dH1maW5hbGx5e3RyeXtzfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgcn19cmV0dXJuIHV9KHQsZSl8fGZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuO2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gSHIodCxlKTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7Ik9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpO2lmKCJNYXAiPT09bnx8IlNldCI9PT1uKXJldHVybiBBcnJheS5mcm9tKHQpO2lmKCJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIEhyKHQsZSl9KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBIcih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLGk9bmV3IEFycmF5KGUpO248ZTtuKyspaVtuXT10W25dO3JldHVybiBpfVJpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOlNyfSx7cGFkRW5kOmZ1bmN0aW9uKHQpe3JldHVybiBCcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLFJpKHtnbG9iYWw6ITB9LHtnbG9iYWxUaGlzOml9KTt2YXIgWXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksT2JqZWN0LmFzc2lnbih0aGlzLHtpbnNlcnRlZDoiIixyYXdJbnNlcnRlZDoiIixza2lwOiExLHRhaWxTaGlmdDowfSxlKX1yZXR1cm4gT3IodCxbe2tleToiYWdncmVnYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yYXdJbnNlcnRlZCs9dC5yYXdJbnNlcnRlZCx0aGlzLnNraXA9dGhpcy5za2lwfHx0LnNraXAsdGhpcy5pbnNlcnRlZCs9dC5pbnNlcnRlZCx0aGlzLnRhaWxTaGlmdCs9dC50YWlsU2hpZnQsdGhpc319LHtrZXk6Im9mZnNldCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFpbFNoaWZ0K3RoaXMuaW5zZXJ0ZWQubGVuZ3RofX1dKSx0fSgpO2Z1bmN0aW9uIFpyKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZ312YXIgR3I9Ik5PTkUiLEtyPSJMRUZUIiwkcj0iRk9SQ0VfTEVGVCIsV3I9IlJJR0hUIixYcj0iRk9SQ0VfUklHSFQiO2Z1bmN0aW9uIEpyKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywiXFwkMSIpfWZ1bmN0aW9uIFFyKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6W3QsbmV3IFlyXX1mdW5jdGlvbiB0dSh0LGUpe2lmKGU9PT10KXJldHVybiEwO3ZhciBuLGk9QXJyYXkuaXNBcnJheShlKSxyPUFycmF5LmlzQXJyYXkodCk7aWYoaSYmcil7aWYoZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspaWYoIXR1KGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoaSE9cilyZXR1cm4hMTtpZihlJiZ0JiYib2JqZWN0Ij09PURyKGUpJiYib2JqZWN0Ij09PURyKHQpKXt2YXIgdT1lIGluc3RhbmNlb2YgRGF0ZSxzPXQgaW5zdGFuY2VvZiBEYXRlO2lmKHUmJnMpcmV0dXJuIGUuZ2V0VGltZSgpPT10LmdldFRpbWUoKTtpZih1IT1zKXJldHVybiExO3ZhciBhPWUgaW5zdGFuY2VvZiBSZWdFeHAsbz10IGluc3RhbmNlb2YgUmVnRXhwO2lmKGEmJm8pcmV0dXJuIGUudG9TdHJpbmcoKT09dC50b1N0cmluZygpO2lmKGEhPW8pcmV0dXJuITE7dmFyIGw9T2JqZWN0LmtleXMoZSk7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbFtuXSkpcmV0dXJuITE7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylpZighdHUodFtsW25dXSxlW2xbbl1dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hKCFlfHwhdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0KSYmZS50b1N0cmluZygpPT09dC50b1N0cmluZygpfXZhciBldT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGkscil7Zm9yKHhyKHRoaXMsdCksdGhpcy52YWx1ZT1lLHRoaXMuY3Vyc29yUG9zPW4sdGhpcy5vbGRWYWx1ZT1pLHRoaXMub2xkU2VsZWN0aW9uPXI7dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpIT09dGhpcy5vbGRWYWx1ZS5zbGljZSgwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpOyktLXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0fXJldHVybiBPcih0LFt7a2V5OiJzdGFydENoYW5nZVBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWluKHRoaXMuY3Vyc29yUG9zLHRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0KX19LHtrZXk6Imluc2VydGVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnNvclBvcy10aGlzLnN0YXJ0Q2hhbmdlUG9zfX0se2tleToiaW5zZXJ0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLm9sZFNlbGVjdGlvbi5lbmQtdGhpcy5zdGFydENoYW5nZVBvc3x8dGhpcy5vbGRWYWx1ZS5sZW5ndGgtdGhpcy52YWx1ZS5sZW5ndGgsMCl9fSx7a2V5OiJyZW1vdmVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbGRWYWx1ZS5zdWJzdHIodGhpcy5zdGFydENoYW5nZVBvcyx0aGlzLnJlbW92ZWRDb3VudCl9fSx7a2V5OiJoZWFkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKX19LHtrZXk6InRhaWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZyh0aGlzLnN0YXJ0Q2hhbmdlUG9zK3RoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVEaXJlY3Rpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlbW92ZWRDb3VudHx8dGhpcy5pbnNlcnRlZENvdW50P0dyOnRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMuY3Vyc29yUG9zJiZ0aGlzLm9sZFNlbGVjdGlvbi5zdGFydCE9PXRoaXMuY3Vyc29yUG9zfHx0aGlzLm9sZFNlbGVjdGlvbi5lbmQhPT10aGlzLm9sZFNlbGVjdGlvbi5zdGFydD9LcjpXcn19XSksdH0oKSxudT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3hyKHRoaXMsdCksdGhpcy52YWx1ZT1lLHRoaXMuZnJvbT1uLHRoaXMuc3RvcD1pfXJldHVybiBPcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZSs9U3RyaW5nKHQpfX0se2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGVuZCh0aGlzLnRvU3RyaW5nKCkse3RhaWw6ITB9KS5hZ2dyZWdhdGUodC5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlOnRoaXMudmFsdWUsZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3B9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMudmFsdWUubGVuZ3RofHxudWxsIT10JiZ0aGlzLmZyb20+PXQpcmV0dXJuIiI7dmFyIGU9dGhpcy52YWx1ZVswXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDEpLGV9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy52YWx1ZS5sZW5ndGgpcmV0dXJuIiI7dmFyIHQ9dGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsLTEpLHR9fV0pLHR9KCk7ZnVuY3Rpb24gaXUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiBuZXcgaXUuSW5wdXRNYXNrKHQsZSl9dmFyIHJ1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLHRoaXMuX3ZhbHVlPSIiLHRoaXMuX3VwZGF0ZShPYmplY3QuYXNzaWduKHt9LHQuREVGQVVMVFMsZSkpLHRoaXMuaXNJbml0aWFsaXplZD0hMH1yZXR1cm4gT3IodCxbe2tleToidXBkYXRlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7T2JqZWN0LmtleXModCkubGVuZ3RoJiZ0aGlzLndpdGhWYWx1ZVJlZnJlc2godGhpcy5fdXBkYXRlLmJpbmQodGhpcyx0KSl9fSx7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue192YWx1ZTp0aGlzLnZhbHVlfX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3ZhbHVlPXQuX3ZhbHVlfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdmFsdWU9IiJ9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNvbHZlKHQpfX0se2tleToicmVzb2x2ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHtpbnB1dDohMH0sIiIpLHRoaXMuZG9Db21taXQoKSx0aGlzLnZhbHVlfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7fSwiIiksdGhpcy5kb0NvbW1pdCgpfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9QYXJzZSh0aGlzLnZhbHVlKX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudmFsdWU9dGhpcy5kb0Zvcm1hdCh0KX19LHtrZXk6InJhd0lucHV0VmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmV4dHJhY3RJbnB1dCgwLHRoaXMudmFsdWUubGVuZ3RoLHtyYXc6ITB9KX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHtyYXc6ITB9LCIiKSx0aGlzLmRvQ29tbWl0KCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0fX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLnZhbHVlLnNsaWNlKHQsZSl9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gbmV3IG51KHRoaXMuZXh0cmFjdElucHV0KHQsZSksdCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gWnIodCkmJih0PW5ldyBudShTdHJpbmcodCkpKSx0LmFwcGVuZFRvKHRoaXMpfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0aGlzLl92YWx1ZSs9dCxuZXcgWXIoe2luc2VydGVkOnQscmF3SW5zZXJ0ZWQ6dH0pKTpuZXcgWXJ9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXRoaXMuc3RhdGUsdT1Rcih0aGlzLmRvUHJlcGFyZSh0LG4pKSxzPXFyKHUsMik7aWYodD1zWzBdLChlPShlPXNbMV0pLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyUmF3KHQsbikpKS5pbnNlcnRlZCl7dmFyIGEsbz0hMSE9PXRoaXMuZG9WYWxpZGF0ZShuKTtpZihvJiZudWxsIT1pKXt2YXIgbD10aGlzLnN0YXRlOyEwPT09dGhpcy5vdmVyd3JpdGUmJihhPWkuc3RhdGUsaS51bnNoaWZ0KHRoaXMudmFsdWUubGVuZ3RoKSk7dmFyIGg9dGhpcy5hcHBlbmRUYWlsKGkpOyhvPWgucmF3SW5zZXJ0ZWQ9PT1pLnRvU3RyaW5nKCkpJiZoLmluc2VydGVkfHwic2hpZnQiIT09dGhpcy5vdmVyd3JpdGV8fCh0aGlzLnN0YXRlPWwsYT1pLnN0YXRlLGkuc2hpZnQoKSxvPShoPXRoaXMuYXBwZW5kVGFpbChpKSkucmF3SW5zZXJ0ZWQ9PT1pLnRvU3RyaW5nKCkpLG8mJmguaW5zZXJ0ZWQmJih0aGlzLnN0YXRlPWwpfW98fChlPW5ldyBZcix0aGlzLnN0YXRlPXIsaSYmYSYmKGkuc3RhdGU9YSkpfXJldHVybiBlfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe2lmKCFacih0KSl0aHJvdyBuZXcgRXJyb3IoInZhbHVlIHNob3VsZCBiZSBzdHJpbmciKTt2YXIgaT1uZXcgWXIscj1acihuKT9uZXcgbnUoU3RyaW5nKG4pKTpuO2UmJmUudGFpbCYmKGUuX2JlZm9yZVRhaWxTdGF0ZT10aGlzLnN0YXRlKTtmb3IodmFyIHU9MDt1PHQubGVuZ3RoOysrdSlpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyKHRbdV0sZSxyKSk7cmV0dXJuIG51bGwhPXImJihpLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKHIpLnRhaWxTaGlmdCksdGhpcy5lYWdlciYmbnVsbCE9ZSYmZS5pbnB1dCYmdCYmaS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kRWFnZXIoKSksaX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy5fdmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLHQpK3RoaXMudmFsdWUuc2xpY2UoZSksbmV3IFlyfX0se2tleToid2l0aFZhbHVlUmVmcmVzaCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5fcmVmcmVzaGluZ3x8IXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdCgpO3RoaXMuX3JlZnJlc2hpbmc9ITA7dmFyIGU9dGhpcy5yYXdJbnB1dFZhbHVlLG49dGhpcy52YWx1ZSxpPXQoKTtyZXR1cm4gdGhpcy5yYXdJbnB1dFZhbHVlPWUsdGhpcy52YWx1ZSYmdGhpcy52YWx1ZSE9PW4mJjA9PT1uLmluZGV4T2YodGhpcy52YWx1ZSkmJnRoaXMuYXBwZW5kKG4uc2xpY2UodGhpcy52YWx1ZS5sZW5ndGgpLHt9LCIiKSxkZWxldGUgdGhpcy5fcmVmcmVzaGluZyxpfX0se2tleToicnVuSXNvbGF0ZWQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzb2xhdGVkfHwhdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0KHRoaXMpO3RoaXMuX2lzb2xhdGVkPSEwO3ZhciBlPXRoaXMuc3RhdGUsbj10KHRoaXMpO3JldHVybiB0aGlzLnN0YXRlPWUsZGVsZXRlIHRoaXMuX2lzb2xhdGVkLG59fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5wcmVwYXJlP3RoaXMucHJlcGFyZSh0LHRoaXMsZSk6dH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybighdGhpcy52YWxpZGF0ZXx8dGhpcy52YWxpZGF0ZSh0aGlzLnZhbHVlLHRoaXMsdCkpJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5kb1ZhbGlkYXRlKHQpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29tbWl0JiZ0aGlzLmNvbW1pdCh0aGlzLnZhbHVlLHRoaXMpfX0se2tleToiZG9Gb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZvcm1hdD90aGlzLmZvcm1hdCh0LHRoaXMpOnR9fSx7a2V5OiJkb1BhcnNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJzZT90aGlzLnBhcnNlKHQsdGhpcyk6dH19LHtrZXk6InNwbGljZSIsdmFsdWU6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT10K2Uscz10aGlzLmV4dHJhY3RUYWlsKHUpO3RoaXMuZWFnZXImJihpPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIEtyOnJldHVybiAkcjtjYXNlIFdyOnJldHVybiBYcjtkZWZhdWx0OnJldHVybiB0fX0oaSkscj10aGlzLmV4dHJhY3RJbnB1dCgwLHUse3JhdzohMH0pKTt2YXIgYT10aGlzLm5lYXJlc3RJbnB1dFBvcyh0LGU+MSYmMCE9PXQmJiF0aGlzLmVhZ2VyP0dyOmkpLG89bmV3IFlyKHt0YWlsU2hpZnQ6YS10fSkuYWdncmVnYXRlKHRoaXMucmVtb3ZlKGEpKTtpZih0aGlzLmVhZ2VyJiZpIT09R3ImJnI9PT10aGlzLnJhd0lucHV0VmFsdWUpaWYoaT09PSRyKWZvcih2YXIgbDtyPT09dGhpcy5yYXdJbnB1dFZhbHVlJiYobD10aGlzLnZhbHVlLmxlbmd0aCk7KW8uYWdncmVnYXRlKG5ldyBZcih7dGFpbFNoaWZ0Oi0xfSkpLmFnZ3JlZ2F0ZSh0aGlzLnJlbW92ZShsLTEpKTtlbHNlIGk9PT1YciYmcy51bnNoaWZ0KCk7cmV0dXJuIG8uYWdncmVnYXRlKHRoaXMuYXBwZW5kKG4se2lucHV0OiEwfSxzKSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrPT09dH19XSksdH0oKTtmdW5jdGlvbiB1dSh0KXtpZihudWxsPT10KXRocm93IG5ldyBFcnJvcigibWFzayBwcm9wZXJ0eSBzaG91bGQgYmUgZGVmaW5lZCIpO3JldHVybiB0IGluc3RhbmNlb2YgUmVnRXhwP2l1Lk1hc2tlZFJlZ0V4cDpacih0KT9pdS5NYXNrZWRQYXR0ZXJuOnQgaW5zdGFuY2VvZiBEYXRlfHx0PT09RGF0ZT9pdS5NYXNrZWREYXRlOnQgaW5zdGFuY2VvZiBOdW1iZXJ8fCJudW1iZXIiPT10eXBlb2YgdHx8dD09PU51bWJlcj9pdS5NYXNrZWROdW1iZXI6QXJyYXkuaXNBcnJheSh0KXx8dD09PUFycmF5P2l1Lk1hc2tlZER5bmFtaWM6aXUuTWFza2VkJiZ0LnByb3RvdHlwZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZD90OnQgaW5zdGFuY2VvZiBpdS5NYXNrZWQ\/dC5jb25zdHJ1Y3Rvcjp0IGluc3RhbmNlb2YgRnVuY3Rpb24\/aXUuTWFza2VkRnVuY3Rpb246KGNvbnNvbGUud2FybigiTWFzayBub3QgZm91bmQgZm9yIG1hc2siLHQpLGl1Lk1hc2tlZCl9ZnVuY3Rpb24gc3UodCl7aWYoaXUuTWFza2VkJiZ0IGluc3RhbmNlb2YgaXUuTWFza2VkKXJldHVybiB0O3ZhciBlPSh0PU9iamVjdC5hc3NpZ24oe30sdCkpLm1hc2s7aWYoaXUuTWFza2VkJiZlIGluc3RhbmNlb2YgaXUuTWFza2VkKXJldHVybiBlO3ZhciBuPXV1KGUpO2lmKCFuKXRocm93IG5ldyBFcnJvcigiTWFza2VkIGNsYXNzIGlzIG5vdCBmb3VuZCBmb3IgcHJvdmlkZWQgbWFzaywgYXBwcm9wcmlhdGUgbW9kdWxlIG5lZWRzIHRvIGJlIGltcG9ydCBtYW51YWxseSBiZWZvcmUgY3JlYXRpbmcgbWFzay4iKTtyZXR1cm4gbmV3IG4odCl9cnUuREVGQVVMVFM9e2Zvcm1hdDpmdW5jdGlvbih0KXtyZXR1cm4gdH0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxpdS5NYXNrZWQ9cnUsaXUuY3JlYXRlTWFzaz1zdTt2YXIgYXU9WyJtYXNrIl0sb3U9ezA6L1xkLyxhOi9bXHUwMDQxLVx1MDA1QVx1MDA2MS1cdTAwN0FcdTAwQUFcdTAwQjVcdTAwQkFcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyQzFcdTAyQzYtXHUwMkQxXHUwMkUwLVx1MDJFNFx1MDJFQ1x1MDJFRVx1MDM3MC1cdTAzNzRcdTAzNzZcdTAzNzdcdTAzN0EtXHUwMzdEXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0Y1XHUwM0Y3LVx1MDQ4MVx1MDQ4QS1cdTA1MjdcdTA1MzEtXHUwNTU2XHUwNTU5XHUwNTYxLVx1MDU4N1x1MDVEMC1cdTA1RUFcdTA1RjAtXHUwNUYyXHUwNjIwLVx1MDY0QVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUVcdTA2RUZcdTA2RkEtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcyRlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3Q0EtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4QTBcdTA4QTItXHUwOEFDXHUwOTA0LVx1MDkzOVx1MDkzRFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NzEtXHUwOTc3XHUwOTc5LVx1MDk3Rlx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUYwXHUwOUYxXHUwQTA1LVx1MEEwQVx1MEEwRlx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyXHUwQTMzXHUwQTM1XHUwQTM2XHUwQTM4XHUwQTM5XHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEIwNS1cdTBCMENcdTBCMEZcdTBCMTBcdTBCMTMtXHUwQjI4XHUwQjJBLVx1MEIzMFx1MEIzMlx1MEIzM1x1MEIzNS1cdTBCMzlcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUYtXHUwQjYxXHUwQjcxXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEtXHUwQzMzXHUwQzM1LVx1MEMzOVx1MEMzRFx1MEM1OFx1MEM1OVx1MEM2MFx1MEM2MVx1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0YxXHUwQ0YyXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDNBXHUwRDNEXHUwRDRFXHUwRDYwXHUwRDYxXHUwRDdBLVx1MEQ3Rlx1MEQ4NS1cdTBEOTZcdTBEOUEtXHUwREIxXHUwREIzLVx1MERCQlx1MERCRFx1MERDMC1cdTBEQzZcdTBFMDEtXHUwRTMwXHUwRTMyXHUwRTMzXHUwRTQwLVx1MEU0Nlx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4N1x1MEU4OFx1MEU4QVx1MEU4RFx1MEU5NC1cdTBFOTdcdTBFOTktXHUwRTlGXHUwRUExLVx1MEVBM1x1MEVBNVx1MEVBN1x1MEVBQVx1MEVBQlx1MEVBRC1cdTBFQjBcdTBFQjJcdTBFQjNcdTBFQkRcdTBFQzAtXHUwRUM0XHUwRUM2XHUwRURDLVx1MEVERlx1MEYwMFx1MEY0MC1cdTBGNDdcdTBGNDktXHUwRjZDXHUwRjg4LVx1MEY4Q1x1MTAwMC1cdTEwMkFcdTEwM0ZcdTEwNTAtXHUxMDU1XHUxMDVBLVx1MTA1RFx1MTA2MVx1MTA2NVx1MTA2Nlx1MTA2RS1cdTEwNzBcdTEwNzUtXHUxMDgxXHUxMDhFXHUxMEEwLVx1MTBDNVx1MTBDN1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUxMkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM4MC1cdTEzOEZcdTEzQTAtXHUxM0Y0XHUxNDAxLVx1MTY2Q1x1MTY2Ri1cdTE2N0ZcdTE2ODEtXHUxNjlBXHUxNkEwLVx1MTZFQVx1MTcwMC1cdTE3MENcdTE3MEUtXHUxNzExXHUxNzIwLVx1MTczMVx1MTc0MC1cdTE3NTFcdTE3NjAtXHUxNzZDXHUxNzZFLVx1MTc3MFx1MTc4MC1cdTE3QjNcdTE3RDdcdTE3RENcdTE4MjAtXHUxODc3XHUxODgwLVx1MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFDXHUxOTUwLVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUMxLVx1MTlDN1x1MUEwMC1cdTFBMTZcdTFBMjAtXHUxQTU0XHUxQUE3XHUxQjA1LVx1MUIzM1x1MUI0NS1cdTFCNEJcdTFCODMtXHUxQkEwXHUxQkFFXHUxQkFGXHUxQkJBLVx1MUJFNVx1MUMwMC1cdTFDMjNcdTFDNEQtXHUxQzRGXHUxQzVBLVx1MUM3RFx1MUNFOS1cdTFDRUNcdTFDRUUtXHUxQ0YxXHUxQ0Y1XHUxQ0Y2XHUxRDAwLVx1MURCRlx1MUUwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMyLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGRDAtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZFMC1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjA3MVx1MjA3Rlx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxODNcdTIxODRcdTJDMDAtXHUyQzJFXHUyQzMwLVx1MkM1RVx1MkM2MC1cdTJDRTRcdTJDRUItXHUyQ0VFXHUyQ0YyXHUyQ0YzXHUyRDAwLVx1MkQyNVx1MkQyN1x1MkQyRFx1MkQzMC1cdTJENjdcdTJENkZcdTJEODAtXHUyRDk2XHUyREEwLVx1MkRBNlx1MkRBOC1cdTJEQUVcdTJEQjAtXHUyREI2XHUyREI4LVx1MkRCRVx1MkRDMC1cdTJEQzZcdTJEQzgtXHUyRENFXHUyREQwLVx1MkRENlx1MkREOC1cdTJEREVcdTJFMkZcdTMwMDVcdTMwMDZcdTMwMzEtXHUzMDM1XHUzMDNCXHUzMDNDXHUzMDQxLVx1MzA5Nlx1MzA5RC1cdTMwOUZcdTMwQTEtXHUzMEZBXHUzMEZDLVx1MzBGRlx1MzEwNS1cdTMxMkRcdTMxMzEtXHUzMThFXHUzMUEwLVx1MzFCQVx1MzFGMC1cdTMxRkZcdTM0MDAtXHU0REI1XHU0RTAwLVx1OUZDQ1x1QTAwMC1cdUE0OENcdUE0RDAtXHVBNEZEXHVBNTAwLVx1QTYwQ1x1QTYxMC1cdUE2MUZcdUE2MkFcdUE2MkJcdUE2NDAtXHVBNjZFXHVBNjdGLVx1QTY5N1x1QTZBMC1cdUE2RTVcdUE3MTctXHVBNzFGXHVBNzIyLVx1QTc4OFx1QTc4Qi1cdUE3OEVcdUE3OTAtXHVBNzkzXHVBN0EwLVx1QTdBQVx1QTdGOC1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4NDAtXHVBODczXHVBODgyLVx1QThCM1x1QThGMi1cdUE4RjdcdUE4RkJcdUE5MEEtXHVBOTI1XHVBOTMwLVx1QTk0Nlx1QTk2MC1cdUE5N0NcdUE5ODQtXHVBOUIyXHVBOUNGXHVBQTAwLVx1QUEyOFx1QUE0MC1cdUFBNDJcdUFBNDQtXHVBQTRCXHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE4MC1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVBQjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCQzAtXHVBQkUyXHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXS8sIioiOi8uL30sbHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCk7dmFyIG49ZS5tYXNrLGk9anIoZSxhdSk7dGhpcy5tYXNrZWQ9c3Uoe21hc2s6bn0pLE9iamVjdC5hc3NpZ24odGhpcyxpKX1yZXR1cm4gT3IodCxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0ZpbGxlZD0hMSx0aGlzLm1hc2tlZC5yZXNldCgpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiAwPT09dCYmZT49MT8odGhpcy5pc0ZpbGxlZD0hMSx0aGlzLm1hc2tlZC5yZW1vdmUodCxlKSk6bmV3IFlyfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC52YWx1ZXx8KHRoaXMuaXNGaWxsZWQmJiF0aGlzLmlzT3B0aW9uYWw\/dGhpcy5wbGFjZWhvbGRlckNoYXI6IiIpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnVubWFza2VkVmFsdWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLm1hc2tlZC52YWx1ZSl8fHRoaXMuaXNPcHRpb25hbH19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYodGhpcy5pc0ZpbGxlZClyZXR1cm4gbmV3IFlyO3ZhciBuPXRoaXMubWFza2VkLnN0YXRlLGk9dGhpcy5tYXNrZWQuX2FwcGVuZENoYXIodCxlKTtyZXR1cm4gaS5pbnNlcnRlZCYmITE9PT10aGlzLmRvVmFsaWRhdGUoZSkmJihpLmluc2VydGVkPWkucmF3SW5zZXJ0ZWQ9IiIsdGhpcy5tYXNrZWQuc3RhdGU9biksaS5pbnNlcnRlZHx8dGhpcy5pc09wdGlvbmFsfHx0aGlzLmxhenl8fGUuaW5wdXR8fChpLmluc2VydGVkPXRoaXMucGxhY2Vob2xkZXJDaGFyKSxpLnNraXA9IWkuaW5zZXJ0ZWQmJiF0aGlzLmlzT3B0aW9uYWwsdGhpcy5pc0ZpbGxlZD1Cb29sZWFuKGkuaW5zZXJ0ZWQpLGl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmFwcGVuZC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFlyO3JldHVybiB0aGlzLmlzRmlsbGVkfHx0aGlzLmlzT3B0aW9uYWx8fCh0aGlzLmlzRmlsbGVkPSEwLHQuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5leHRyYWN0VGFpbC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5hcHBlbmRUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiB0aGlzLm1hc2tlZC5leHRyYWN0SW5wdXQodCxlLG4pfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3Isbj0wLGk9dGhpcy52YWx1ZS5sZW5ndGgscj1NYXRoLm1pbihNYXRoLm1heCh0LG4pLGkpO3N3aXRjaChlKXtjYXNlIEtyOmNhc2UgJHI6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9yOm47Y2FzZSBXcjpjYXNlIFhyOnJldHVybiB0aGlzLmlzQ29tcGxldGU\/cjppO2RlZmF1bHQ6cmV0dXJuIHJ9fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybih0PXRoaXMubWFza2VkKS5kb1ZhbGlkYXRlLmFwcGx5KHQsYXJndW1lbnRzKSYmKCF0aGlzLnBhcmVudHx8KGU9dGhpcy5wYXJlbnQpLmRvVmFsaWRhdGUuYXBwbHkoZSxhcmd1bWVudHMpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFza2VkLmRvQ29tbWl0KCl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue21hc2tlZDp0aGlzLm1hc2tlZC5zdGF0ZSxpc0ZpbGxlZDp0aGlzLmlzRmlsbGVkfX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnN0YXRlPXQubWFza2VkLHRoaXMuaXNGaWxsZWQ9dC5pc0ZpbGxlZH19XSksdH0oKSxodT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSxPYmplY3QuYXNzaWduKHRoaXMsZSksdGhpcy5fdmFsdWU9IiIsdGhpcy5pc0ZpeGVkPSEwfXJldHVybiBPcih0LFt7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNVbm1hc2tpbmc\/dGhpcy52YWx1ZToiIn19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2lzUmF3SW5wdXQ9ITEsdGhpcy5fdmFsdWU9IiJ9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLl92YWx1ZS5zbGljZSgwLHQpK3RoaXMuX3ZhbHVlLnNsaWNlKGUpLHRoaXMuX3ZhbHVlfHwodGhpcy5faXNSYXdJbnB1dD0hMSksbmV3IFlyfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3Isbj0wLGk9dGhpcy5fdmFsdWUubGVuZ3RoO3N3aXRjaChlKXtjYXNlIEtyOmNhc2UgJHI6cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gaX19fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOnt9O3JldHVybiBuLnJhdyYmdGhpcy5faXNSYXdJbnB1dCYmdGhpcy5fdmFsdWUuc2xpY2UodCxlKXx8IiJ9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl92YWx1ZSl9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49bmV3IFlyO2lmKHRoaXMuX3ZhbHVlKXJldHVybiBuO3ZhciBpPXRoaXMuY2hhcj09PXQscj1pJiYodGhpcy5pc1VubWFza2luZ3x8ZS5pbnB1dHx8ZS5yYXcpJiYhdGhpcy5lYWdlciYmIWUudGFpbDtyZXR1cm4gciYmKG4ucmF3SW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0aGlzLl92YWx1ZT1uLmluc2VydGVkPXRoaXMuY2hhcix0aGlzLl9pc1Jhd0lucHV0PXImJihlLnJhd3x8ZS5pbnB1dCksbn19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwZW5kQ2hhcih0aGlzLmNoYXIpfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBZcjtyZXR1cm4gdGhpcy5fdmFsdWV8fCh0aGlzLl92YWx1ZT10Lmluc2VydGVkPXRoaXMuY2hhciksdH19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXXx8dGhpcy52YWx1ZS5sZW5ndGgsbmV3IG51KCIiKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBacih0KSYmKHQ9bmV3IG51KFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9hcHBlbmRDaGFyKHRbMF0sZSk7cmV0dXJuIG51bGwhPW4mJihpLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKG4pLnRhaWxTaGlmdCksaX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMuX3ZhbHVlLF9pc1Jhd0lucHV0OnRoaXMuX2lzUmF3SW5wdXR9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX1dKSx0fSgpLGN1PVsiY2h1bmtzIl0sZnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOltdLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOjA7eHIodGhpcyx0KSx0aGlzLmNodW5rcz1lLHRoaXMuZnJvbT1ufXJldHVybiBPcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaHVua3MubWFwKFN0cmluZykuam9pbigiIil9fSx7a2V5OiJleHRlbmQiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKFN0cmluZyhlKSl7WnIoZSkmJihlPW5ldyBudShTdHJpbmcoZSkpKTt2YXIgbj10aGlzLmNodW5rc1t0aGlzLmNodW5rcy5sZW5ndGgtMV0saT1uJiYobi5zdG9wPT09ZS5zdG9wfHxudWxsPT1lLnN0b3ApJiZlLmZyb209PT1uLmZyb20rbi50b1N0cmluZygpLmxlbmd0aDtpZihlIGluc3RhbmNlb2YgbnUpaT9uLmV4dGVuZChlLnRvU3RyaW5nKCkpOnRoaXMuY2h1bmtzLnB1c2goZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgdCl7aWYobnVsbD09ZS5zdG9wKWZvcih2YXIgcjtlLmNodW5rcy5sZW5ndGgmJm51bGw9PWUuY2h1bmtzWzBdLnN0b3A7KShyPWUuY2h1bmtzLnNoaWZ0KCkpLmZyb20rPWUuZnJvbSx0aGlzLmV4dGVuZChyKTtlLnRvU3RyaW5nKCkmJihlLnN0b3A9ZS5ibG9ja0luZGV4LHRoaXMuY2h1bmtzLnB1c2goZSkpfX19fSx7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgaXUuTWFza2VkUGF0dGVybikpcmV0dXJuIG5ldyBudSh0aGlzLnRvU3RyaW5nKCkpLmFwcGVuZFRvKGUpO2Zvcih2YXIgbj1uZXcgWXIsaT0wO2k8dGhpcy5jaHVua3MubGVuZ3RoJiYhbi5za2lwOysraSl7dmFyIHI9dGhpcy5jaHVua3NbaV0sdT1lLl9tYXBQb3NUb0Jsb2NrKGUudmFsdWUubGVuZ3RoKSxzPXIuc3RvcCxhPXZvaWQgMDtpZihudWxsIT1zJiYoIXV8fHUuaW5kZXg8PXMpJiYoKHIgaW5zdGFuY2VvZiB0fHxlLl9zdG9wcy5pbmRleE9mKHMpPj0wKSYmbi5hZ2dyZWdhdGUoZS5fYXBwZW5kUGxhY2Vob2xkZXIocykpLGE9ciBpbnN0YW5jZW9mIHQmJmUuX2Jsb2Nrc1tzXSksYSl7dmFyIG89YS5hcHBlbmRUYWlsKHIpO28uc2tpcD0hMSxuLmFnZ3JlZ2F0ZShvKSxlLl92YWx1ZSs9by5pbnNlcnRlZDt2YXIgbD1yLnRvU3RyaW5nKCkuc2xpY2Uoby5yYXdJbnNlcnRlZC5sZW5ndGgpO2wmJm4uYWdncmVnYXRlKGUuYXBwZW5kKGwse3RhaWw6ITB9KSl9ZWxzZSBuLmFnZ3JlZ2F0ZShlLmFwcGVuZChyLnRvU3RyaW5nKCkse3RhaWw6ITB9KSl9cmV0dXJuIG59fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2NodW5rczp0aGlzLmNodW5rcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGZyb206dGhpcy5mcm9tLHN0b3A6dGhpcy5zdG9wLGJsb2NrSW5kZXg6dGhpcy5ibG9ja0luZGV4fX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciBuPWUuY2h1bmtzLGk9anIoZSxjdSk7T2JqZWN0LmFzc2lnbih0aGlzLGkpLHRoaXMuY2h1bmtzPW4ubWFwKChmdW5jdGlvbihlKXt2YXIgbj0iY2h1bmtzImluIGU\/bmV3IHQ6bmV3IG51O3JldHVybiBuLnN0YXRlPWUsbn0pKX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmNodW5rcy5sZW5ndGh8fG51bGwhPXQmJnRoaXMuZnJvbT49dClyZXR1cm4iIjtmb3IodmFyIGU9bnVsbCE9dD90LXRoaXMuZnJvbTp0LG49MDtuPHRoaXMuY2h1bmtzLmxlbmd0aDspe3ZhciBpPXRoaXMuY2h1bmtzW25dLHI9aS51bnNoaWZ0KGUpO2lmKGkudG9TdHJpbmcoKSl7aWYoIXIpYnJlYWs7KytufWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKG4sMSk7aWYocilyZXR1cm4gcn1yZXR1cm4iIn19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmNodW5rcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciB0PXRoaXMuY2h1bmtzLmxlbmd0aC0xOzA8PXQ7KXt2YXIgZT10aGlzLmNodW5rc1t0XSxuPWUuc2hpZnQoKTtpZihlLnRvU3RyaW5nKCkpe2lmKCFuKWJyZWFrOy0tdH1lbHNlIHRoaXMuY2h1bmtzLnNwbGljZSh0LDEpO2lmKG4pcmV0dXJuIG59cmV0dXJuIiJ9fV0pLHR9KCkscHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7eHIodGhpcyx0KSx0aGlzLm1hc2tlZD1lLHRoaXMuX2xvZz1bXTt2YXIgaT1lLl9tYXBQb3NUb0Jsb2NrKG4pfHwobjwwP3tpbmRleDowLG9mZnNldDowfTp7aW5kZXg6dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgsb2Zmc2V0OjB9KSxyPWkub2Zmc2V0LHU9aS5pbmRleDt0aGlzLm9mZnNldD1yLHRoaXMuaW5kZXg9dSx0aGlzLm9rPSExfXJldHVybiBPcih0LFt7a2V5OiJibG9jayIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja3NbdGhpcy5pbmRleF19fSx7a2V5OiJwb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5fYmxvY2tTdGFydFBvcyh0aGlzLmluZGV4KSt0aGlzLm9mZnNldH19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6dGhpcy5pbmRleCxvZmZzZXQ6dGhpcy5vZmZzZXQsb2s6dGhpcy5va319LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJwdXNoU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbG9nLnB1c2godGhpcy5zdGF0ZSl9fSx7a2V5OiJwb3BTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9sb2cucG9wKCk7cmV0dXJuIHRoaXMuc3RhdGU9dCx0fX0se2tleToiYmluZEJsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmxvY2t8fCh0aGlzLmluZGV4PDAmJih0aGlzLmluZGV4PTAsdGhpcy5vZmZzZXQ9MCksdGhpcy5pbmRleD49dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgmJih0aGlzLmluZGV4PXRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoLTEsdGhpcy5vZmZzZXQ9dGhpcy5ibG9jay52YWx1ZS5sZW5ndGgpKX19LHtrZXk6Il9wdXNoTGVmdCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTswPD10aGlzLmluZGV4Oy0tdGhpcy5pbmRleCx0aGlzLm9mZnNldD0obnVsbD09PShlPXRoaXMuYmxvY2spfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlLmxlbmd0aCl8fDApe3ZhciBlO2lmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMH1yZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6Il9wdXNoUmlnaHQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih0aGlzLnB1c2hTdGF0ZSgpLHRoaXMuYmluZEJsb2NrKCk7dGhpcy5pbmRleDx0aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aDsrK3RoaXMuaW5kZXgsdGhpcy5vZmZzZXQ9MClpZih0KCkpcmV0dXJuIHRoaXMub2s9ITA7cmV0dXJuIHRoaXMub2s9ITF9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkJiZ0LmJsb2NrLnZhbHVlKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCwkciksMCE9PXQub2Zmc2V0fHx2b2lkIDB9KSl9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZUlucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEtyKSwhMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxLciksITB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVGaWxsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LFhyKSx0Lm9mZnNldCE9PXQuYmxvY2sudmFsdWUubGVuZ3RofHx2b2lkIDB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZClyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsR3IpLCEwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCEodC5ibG9jay5pc0ZpeGVkfHx0LmJsb2NrLmlzT3B0aW9uYWwmJiF0LmJsb2NrLnZhbHVlKSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsR3IpLCEwfSkpfX1dKSx0fSgpLGR1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnNlYXJjaCh0Lm1hc2spPj0wfSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KHJ1KTtpdS5NYXNrZWRSZWdFeHA9ZHU7dmFyIHZ1PVsiX2Jsb2NrcyJdLGd1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4geHIodGhpcyxuKSx0LmRlZmluaXRpb25zPU9iamVjdC5hc3NpZ24oe30sb3UsdC5kZWZpbml0aW9ucyksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307dC5kZWZpbml0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMuZGVmaW5pdGlvbnMsdC5kZWZpbml0aW9ucyksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksdGhpcy5fcmVidWlsZE1hc2soKX19LHtrZXk6Il9yZWJ1aWxkTWFzayIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5kZWZpbml0aW9uczt0aGlzLl9ibG9ja3M9W10sdGhpcy5fc3RvcHM9W10sdGhpcy5fbWFza2VkQmxvY2tzPXt9O3ZhciBpPXRoaXMubWFzaztpZihpJiZlKWZvcih2YXIgcj0hMSx1PSExLHM9MDtzPGkubGVuZ3RoOysrcyl7aWYodGhpcy5ibG9ja3MpaWYoImNvbnRpbnVlIj09PWZ1bmN0aW9uKCl7dmFyIGU9aS5zbGljZShzKSxuPU9iamVjdC5rZXlzKHQuYmxvY2tzKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09ZS5pbmRleE9mKHQpfSkpO24uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5sZW5ndGgtdC5sZW5ndGh9KSk7dmFyIHI9blswXTtpZihyKXt2YXIgdT1zdShPYmplY3QuYXNzaWduKHtwYXJlbnQ6dCxsYXp5OnQubGF6eSxlYWdlcjp0LmVhZ2VyLHBsYWNlaG9sZGVyQ2hhcjp0LnBsYWNlaG9sZGVyQ2hhcixvdmVyd3JpdGU6dC5vdmVyd3JpdGV9LHQuYmxvY2tzW3JdKSk7cmV0dXJuIHUmJih0Ll9ibG9ja3MucHVzaCh1KSx0Ll9tYXNrZWRCbG9ja3Nbcl18fCh0Ll9tYXNrZWRCbG9ja3Nbcl09W10pLHQuX21hc2tlZEJsb2Nrc1tyXS5wdXNoKHQuX2Jsb2Nrcy5sZW5ndGgtMSkpLHMrPXIubGVuZ3RoLTEsImNvbnRpbnVlIn19KCkpY29udGludWU7dmFyIGE9aVtzXSxvPWEgaW4gZTtpZihhIT09bi5TVE9QX0NIQVIpaWYoInsiIT09YSYmIn0iIT09YSlpZigiWyIhPT1hJiYiXSIhPT1hKXtpZihhPT09bi5FU0NBUEVfQ0hBUil7aWYoKytzLCEoYT1pW3NdKSlicmVhaztvPSExfXZhciBsPW8\/bmV3IGx1KHtwYXJlbnQ6dGhpcyxsYXp5OnRoaXMubGF6eSxlYWdlcjp0aGlzLmVhZ2VyLHBsYWNlaG9sZGVyQ2hhcjp0aGlzLnBsYWNlaG9sZGVyQ2hhcixtYXNrOmVbYV0saXNPcHRpb25hbDp1fSk6bmV3IGh1KHtjaGFyOmEsZWFnZXI6dGhpcy5lYWdlcixpc1VubWFza2luZzpyfSk7dGhpcy5fYmxvY2tzLnB1c2gobCl9ZWxzZSB1PSF1O2Vsc2Ugcj0hcjtlbHNlIHRoaXMuX3N0b3BzLnB1c2godGhpcy5fYmxvY2tzLmxlbmd0aCl9fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE5yKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHRoaXMpLHtfYmxvY2tzOnRoaXMuX2Jsb2Nrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10Ll9ibG9ja3MsaT1qcih0LHZ1KTt0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zdGF0ZT1lW25dfSkpLHpyKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLGksdGhpcywhMCl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtOcihUcihuLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCgpfSkpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNDb21wbGV0ZX0pKX19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0ZpbGxlZH0pKX19LHtrZXk6ImlzRml4ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRml4ZWR9KSl9fSx7a2V5OiJpc09wdGlvbmFsIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc09wdGlvbmFsfSkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvQ29tbWl0KCl9KSksTnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudW5tYXNrZWRWYWx1ZX0pLCIiKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ2YWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBOcihUcihuLnByb3RvdHlwZSksImFwcGVuZFRhaWwiLHRoaXMpLmNhbGwodGhpcyx0KS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgWXIsbj1udWxsPT09KHQ9dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmluZGV4O2lmKG51bGw9PW4pcmV0dXJuIGU7dGhpcy5fYmxvY2tzW25dLmlzRmlsbGVkJiYrK247Zm9yKHZhciBpPW47aTx0aGlzLl9ibG9ja3MubGVuZ3RoOysraSl7dmFyIHI9dGhpcy5fYmxvY2tzW2ldLl9hcHBlbmRFYWdlcigpO2lmKCFyLmluc2VydGVkKWJyZWFrO2UuYWdncmVnYXRlKHIpfXJldHVybiBlfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpLGk9bmV3IFlyO2lmKCFuKXJldHVybiBpO2Zvcih2YXIgcj1uLmluZGV4OzsrK3Ipe3ZhciB1LHM9dGhpcy5fYmxvY2tzW3JdO2lmKCFzKWJyZWFrO3ZhciBhPXMuX2FwcGVuZENoYXIodCxPYmplY3QuYXNzaWduKHt9LGUse19iZWZvcmVUYWlsU3RhdGU6bnVsbD09PSh1PWUuX2JlZm9yZVRhaWxTdGF0ZSl8fHZvaWQgMD09PXU\/dm9pZCAwOnUuX2Jsb2Nrc1tyXX0pKSxvPWEuc2tpcDtpZihpLmFnZ3JlZ2F0ZShhKSxvfHxhLnJhd0luc2VydGVkKWJyZWFrfXJldHVybiBpfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9bmV3IGZ1O3JldHVybiBlPT09bnx8dGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UoZSxuLChmdW5jdGlvbihlLG4scix1KXt2YXIgcz1lLmV4dHJhY3RUYWlsKHIsdSk7cy5zdG9wPXQuX2ZpbmRTdG9wQmVmb3JlKG4pLHMuZnJvbT10Ll9ibG9ja1N0YXJ0UG9zKG4pLHMgaW5zdGFuY2VvZiBmdSYmKHMuYmxvY2tJbmRleD1uKSxpLmV4dGVuZChzKX0pKSxpfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOnt9O2lmKHQ9PT1lKXJldHVybiIiO3ZhciBpPSIiO3JldHVybiB0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZSh0LGUsKGZ1bmN0aW9uKHQsZSxyLHUpe2krPXQuZXh0cmFjdElucHV0KHIsdSxuKX0pKSxpfX0se2tleToiX2ZpbmRTdG9wQmVmb3JlIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0wO248dGhpcy5fc3RvcHMubGVuZ3RoOysrbil7dmFyIGk9dGhpcy5fc3RvcHNbbl07aWYoIShpPD10KSlicmVhaztlPWl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1uZXcgWXI7aWYodGhpcy5sYXp5JiZudWxsPT10KXJldHVybiBuO3ZhciBpPXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpO2lmKCFpKXJldHVybiBuO3ZhciByPWkuaW5kZXgsdT1udWxsIT10P3Q6dGhpcy5fYmxvY2tzLmxlbmd0aDtyZXR1cm4gdGhpcy5fYmxvY2tzLnNsaWNlKHIsdSkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7aWYoIWkubGF6eXx8bnVsbCE9dCl7dmFyIHI9bnVsbCE9aS5fYmxvY2tzP1tpLl9ibG9ja3MubGVuZ3RoXTpbXSx1PWkuX2FwcGVuZFBsYWNlaG9sZGVyLmFwcGx5KGkscik7ZS5fdmFsdWUrPXUuaW5zZXJ0ZWQsbi5hZ2dyZWdhdGUodSl9fSkpLG59fSx7a2V5OiJfbWFwUG9zVG9CbG9jayIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLG49MDtuPHRoaXMuX2Jsb2Nrcy5sZW5ndGg7KytuKXt2YXIgaT10aGlzLl9ibG9ja3Nbbl0scj1lLmxlbmd0aDtpZih0PD0oZSs9aS52YWx1ZSkubGVuZ3RoKXJldHVybntpbmRleDpuLG9mZnNldDp0LXJ9fX19LHtrZXk6Il9ibG9ja1N0YXJ0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYmxvY2tzLnNsaWNlKDAsdCkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudmFsdWUubGVuZ3RofSksMCl9fSx7a2V5OiJfZm9yRWFjaEJsb2Nrc0luUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGk9dGhpcy5fbWFwUG9zVG9CbG9jayh0KTtpZihpKXt2YXIgcj10aGlzLl9tYXBQb3NUb0Jsb2NrKGUpLHU9ciYmaS5pbmRleD09PXIuaW5kZXgscz1pLm9mZnNldCxhPXImJnU\/ci5vZmZzZXQ6dGhpcy5fYmxvY2tzW2kuaW5kZXhdLnZhbHVlLmxlbmd0aDtpZihuKHRoaXMuX2Jsb2Nrc1tpLmluZGV4XSxpLmluZGV4LHMsYSksciYmIXUpe2Zvcih2YXIgbz1pLmluZGV4KzE7bzxyLmluZGV4OysrbyluKHRoaXMuX2Jsb2Nrc1tvXSxvLDAsdGhpcy5fYmxvY2tzW29dLnZhbHVlLmxlbmd0aCk7bih0aGlzLl9ibG9ja3Nbci5pbmRleF0sci5pbmRleCwwLHIub2Zmc2V0KX19fX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9TnIoVHIobi5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx0LGUpO3JldHVybiB0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZSh0LGUsKGZ1bmN0aW9uKHQsZSxuLHIpe2kuYWdncmVnYXRlKHQucmVtb3ZlKG4scikpfSkpLGl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcjtpZighdGhpcy5fYmxvY2tzLmxlbmd0aClyZXR1cm4gMDt2YXIgbj1uZXcgcHUodGhpcyx0KTtpZihlPT09R3IpcmV0dXJuIG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKT9uLnBvczoobi5wb3BTdGF0ZSgpLG4ucHVzaExlZnRCZWZvcmVJbnB1dCgpP24ucG9zOnRoaXMudmFsdWUubGVuZ3RoKTtpZihlPT09S3J8fGU9PT0kcil7aWYoZT09PUtyKXtpZihuLnB1c2hSaWdodEJlZm9yZUZpbGxlZCgpLG4ub2smJm4ucG9zPT09dClyZXR1cm4gdDtuLnBvcFN0YXRlKCl9aWYobi5wdXNoTGVmdEJlZm9yZUlucHV0KCksbi5wdXNoTGVmdEJlZm9yZVJlcXVpcmVkKCksbi5wdXNoTGVmdEJlZm9yZUZpbGxlZCgpLGU9PT1Lcil7aWYobi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpLG4ucHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQoKSxuLm9rJiZuLnBvczw9dClyZXR1cm4gbi5wb3M7aWYobi5wb3BTdGF0ZSgpLG4ub2smJm4ucG9zPD10KXJldHVybiBuLnBvcztuLnBvcFN0YXRlKCl9cmV0dXJuIG4ub2s\/bi5wb3M6ZT09PSRyPzA6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczowKSl9cmV0dXJuIGU9PT1Xcnx8ZT09PVhyPyhuLnB1c2hSaWdodEJlZm9yZUlucHV0KCksbi5wdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCgpLG4ucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCk\/bi5wb3M6ZT09PVhyP3RoaXMudmFsdWUubGVuZ3RoOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6dGhpcy5uZWFyZXN0SW5wdXRQb3ModCxLcikpKSk6dH19LHtrZXk6Im1hc2tlZEJsb2NrIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrZWRCbG9ja3ModClbMF19fSx7a2V5OiJtYXNrZWRCbG9ja3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9tYXNrZWRCbG9ja3NbdF07cmV0dXJuIG4\/bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9ibG9ja3NbdF19KSk6W119fV0pLG59KHJ1KTtndS5ERUZBVUxUUz17bGF6eTohMCxwbGFjZWhvbGRlckNoYXI6Il8ifSxndS5TVE9QX0NIQVI9ImAiLGd1LkVTQ0FQRV9DSEFSPSJcXCIsZ3UuSW5wdXREZWZpbml0aW9uPWx1LGd1LkZpeGVkRGVmaW5pdGlvbj1odSxpdS5NYXNrZWRQYXR0ZXJuPWd1O3ZhciBrdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX21hdGNoRnJvbSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4TGVuZ3RoLVN0cmluZyh0aGlzLmZyb20pLmxlbmd0aH19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3Q9T2JqZWN0LmFzc2lnbih7dG86dGhpcy50b3x8MCxmcm9tOnRoaXMuZnJvbXx8MCxtYXhMZW5ndGg6dGhpcy5tYXhMZW5ndGh8fDB9LHQpO3ZhciBlPVN0cmluZyh0LnRvKS5sZW5ndGg7bnVsbCE9dC5tYXhMZW5ndGgmJihlPU1hdGgubWF4KGUsdC5tYXhMZW5ndGgpKSx0Lm1heExlbmd0aD1lO2Zvcih2YXIgaT1TdHJpbmcodC5mcm9tKS5wYWRTdGFydChlLCIwIikscj1TdHJpbmcodC50bykucGFkU3RhcnQoZSwiMCIpLHU9MDt1PHIubGVuZ3RoJiZyW3VdPT09aVt1XTspKyt1O3QubWFzaz1yLnNsaWNlKDAsdSkucmVwbGFjZSgvMC9nLCJcXDAiKSsiMCIucmVwZWF0KGUtdSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJpc0NvbXBsZXRlIix0aGlzKSYmQm9vbGVhbih0aGlzLnZhbHVlKX19LHtrZXk6ImJvdW5kYXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49IiIsaT1xcih0Lm1hdGNoKC9eKFxEKikoXGQqKShcRCopLyl8fFtdLDMpLHI9aVsxXSx1PWlbMl07cmV0dXJuIHUmJihlPSIwIi5yZXBlYXQoci5sZW5ndGgpK3Usbj0iOSIucmVwZWF0KHIubGVuZ3RoKSt1KSxbZT1lLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiMCIpLG49bi5wYWRFbmQodGhpcy5tYXhMZW5ndGgsIjkiKV19fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LHI9UXIoTnIoVHIobi5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx0LnJlcGxhY2UoL1xEL2csIiIpLGkpKSx1PXFyKHIsMik7aWYodD11WzBdLGU9dVsxXSwhdGhpcy5hdXRvZml4fHwhdClyZXR1cm4gdDt2YXIgcz1TdHJpbmcodGhpcy5mcm9tKS5wYWRTdGFydCh0aGlzLm1heExlbmd0aCwiMCIpLGE9U3RyaW5nKHRoaXMudG8pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksbz10aGlzLnZhbHVlK3Q7aWYoby5sZW5ndGg+dGhpcy5tYXhMZW5ndGgpcmV0dXJuIiI7dmFyIGw9dGhpcy5ib3VuZGFyaWVzKG8pLGg9cXIobCwyKSxjPWhbMF0sZj1oWzFdO3JldHVybiBOdW1iZXIoZik8dGhpcy5mcm9tP3Nbby5sZW5ndGgtMV06TnVtYmVyKGMpPnRoaXMudG8\/InBhZCI9PT10aGlzLmF1dG9maXgmJm8ubGVuZ3RoPHRoaXMubWF4TGVuZ3RoP1siIixlLmFnZ3JlZ2F0ZSh0aGlzLmFwcGVuZChzW28ubGVuZ3RoLTFdK3QsaSkpXTphW28ubGVuZ3RoLTFdOnR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy52YWx1ZSxpPWUuc2VhcmNoKC9bXjBdLyk7aWYoLTE9PT1pJiZlLmxlbmd0aDw9dGhpcy5fbWF0Y2hGcm9tKXJldHVybiEwO2Zvcih2YXIgcj10aGlzLmJvdW5kYXJpZXMoZSksdT1xcihyLDIpLHM9dVswXSxhPXVbMV0sbz1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KG8pLGg9MDtoPG87aCsrKWxbaF09YXJndW1lbnRzW2hdO3JldHVybiB0aGlzLmZyb208PU51bWJlcihhKSYmTnVtYmVyKHMpPD10aGlzLnRvJiYodD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChsKSl9fV0pLG59KGd1KTtpdS5NYXNrZWRSYW5nZT1rdTt2YXIgeXU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3JldHVybiB4cih0aGlzLG4pLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzaz09PURhdGUmJmRlbGV0ZSB0Lm1hc2ssdC5wYXR0ZXJuJiYodC5tYXNrPXQucGF0dGVybik7dmFyIGU9dC5ibG9ja3M7dC5ibG9ja3M9T2JqZWN0LmFzc2lnbih7fSxuLkdFVF9ERUZBVUxUX0JMT0NLUygpKSx0Lm1pbiYmKHQuYmxvY2tzLlkuZnJvbT10Lm1pbi5nZXRGdWxsWWVhcigpKSx0Lm1heCYmKHQuYmxvY2tzLlkudG89dC5tYXguZ2V0RnVsbFllYXIoKSksdC5taW4mJnQubWF4JiZ0LmJsb2Nrcy5ZLmZyb209PT10LmJsb2Nrcy5ZLnRvJiYodC5ibG9ja3MubS5mcm9tPXQubWluLmdldE1vbnRoKCkrMSx0LmJsb2Nrcy5tLnRvPXQubWF4LmdldE1vbnRoKCkrMSx0LmJsb2Nrcy5tLmZyb209PT10LmJsb2Nrcy5tLnRvJiYodC5ibG9ja3MuZC5mcm9tPXQubWluLmdldERhdGUoKSx0LmJsb2Nrcy5kLnRvPXQubWF4LmdldERhdGUoKSkpLE9iamVjdC5hc3NpZ24odC5ibG9ja3MsdGhpcy5ibG9ja3MsZSksT2JqZWN0LmtleXModC5ibG9ja3MpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXQuYmxvY2tzW2VdOyEoImF1dG9maXgiaW4gbikmJiJhdXRvZml4ImluIHQmJihuLmF1dG9maXg9dC5hdXRvZml4KX0pKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5kYXRlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4odD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSkmJighdGhpcy5pc0NvbXBsZXRlfHx0aGlzLmlzRGF0ZUV4aXN0KHRoaXMudmFsdWUpJiZudWxsIT1lJiYobnVsbD09dGhpcy5taW58fHRoaXMubWluPD1lKSYmKG51bGw9PXRoaXMubWF4fHxlPD10aGlzLm1heCkpfX0se2tleToiaXNEYXRlRXhpc3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZvcm1hdCh0aGlzLnBhcnNlKHQsdGhpcyksdGhpcykuaW5kZXhPZih0KT49MH19LHtrZXk6ImRhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnR5cGVkVmFsdWU9dH19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQ29tcGxldGU\/TnIoVHIobi5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0aGlzKTpudWxsfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1EYXRlfHxOcihUcihuLnByb3RvdHlwZSksIm1hc2tFcXVhbHMiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0oZ3UpO3l1LkRFRkFVTFRTPXtwYXR0ZXJuOiJkey59YG17Ln1gWSIsZm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0P1tTdHJpbmcodC5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsIjAiKSxTdHJpbmcodC5nZXRNb250aCgpKzEpLnBhZFN0YXJ0KDIsIjAiKSx0LmdldEZ1bGxZZWFyKCldLmpvaW4oIi4iKToiIn0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9cXIodC5zcGxpdCgiLiIpLDMpLG49ZVswXSxpPWVbMV0scj1lWzJdO3JldHVybiBuZXcgRGF0ZShyLGktMSxuKX19LHl1LkdFVF9ERUZBVUxUX0JMT0NLUz1mdW5jdGlvbigpe3JldHVybntkOnttYXNrOmt1LGZyb206MSx0bzozMSxtYXhMZW5ndGg6Mn0sbTp7bWFzazprdSxmcm9tOjEsdG86MTIsbWF4TGVuZ3RoOjJ9LFk6e21hc2s6a3UsZnJvbToxOTAwLHRvOjk5OTl9fX0saXUuTWFza2VkRGF0ZT15dTt2YXIgbXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7eHIodGhpcyx0KX1yZXR1cm4gT3IodCxbe2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt0PXRoaXMuX3Vuc2FmZVNlbGVjdGlvblN0YXJ0fWNhdGNoKHQpe31yZXR1cm4gbnVsbCE9dD90OnRoaXMudmFsdWUubGVuZ3RofX0se2tleToic2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD10aGlzLl91bnNhZmVTZWxlY3Rpb25FbmR9Y2F0Y2godCl7fXJldHVybiBudWxsIT10P3Q6dGhpcy52YWx1ZS5sZW5ndGh9fSx7a2V5OiJzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCYmbnVsbCE9ZSYmKHQhPT10aGlzLnNlbGVjdGlvblN0YXJ0fHxlIT09dGhpcy5zZWxlY3Rpb25FbmQpKXRyeXt0aGlzLl91bnNhZmVTZWxlY3QodCxlKX1jYXRjaCh0KXt9fX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITF9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSx0fSgpO2l1Lk1hc2tFbGVtZW50PW11O3ZhciBidT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7dmFyIGk7cmV0dXJuIHhyKHRoaXMsbiksKGk9ZS5jYWxsKHRoaXMpKS5pbnB1dD10LGkuX2hhbmRsZXJzPXt9LGl9cmV0dXJuIE9yKG4sW3trZXk6InJvb3RFbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdCxlLG47cmV0dXJuIG51bGwhPT0odD1udWxsPT09KGU9KG49dGhpcy5pbnB1dCkuZ2V0Um9vdE5vZGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwobikpJiZ2b2lkIDAhPT10P3Q6ZG9jdW1lbnR9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQ9PT10aGlzLnJvb3RFbGVtZW50LmFjdGl2ZUVsZW1lbnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0fX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmlucHV0LnNldFNlbGVjdGlvblJhbmdlKHQsZSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnZhbHVlPXR9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3JldHVybiBlLl90b2dnbGVFdmVudEhhbmRsZXIobi5FVkVOVFNfTUFQW2ldLHRbaV0pfSkpfX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5faGFuZGxlcnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll90b2dnbGVFdmVudEhhbmRsZXIoZSl9KSl9fSx7a2V5OiJfdG9nZ2xlRXZlbnRIYW5kbGVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuX2hhbmRsZXJzW3RdJiYodGhpcy5pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKHQsdGhpcy5faGFuZGxlcnNbdF0pLGRlbGV0ZSB0aGlzLl9oYW5kbGVyc1t0XSksZSYmKHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpLHRoaXMuX2hhbmRsZXJzW3RdPWUpfX1dKSxufShtdSk7YnUuRVZFTlRTX01BUD17c2VsZWN0aW9uQ2hhbmdlOiJrZXlkb3duIixpbnB1dDoiaW5wdXQiLGRyb3A6ImRyb3AiLGNsaWNrOiJjbGljayIsZm9jdXM6ImZvY3VzIixjb21taXQ6ImJsdXIifSxpdS5IVE1MTWFza0VsZW1lbnQ9YnU7dmFyIF91PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxuPWUmJmUuYW5jaG9yT2Zmc2V0LGk9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09aXx8bnVsbD09bnx8bjxpP246aX19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxuPWUmJmUuYW5jaG9yT2Zmc2V0LGk9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09aXx8bnVsbD09bnx8bj5pP246aX19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSl7dmFyIG49dGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSgpO24uc2V0U3RhcnQodGhpcy5pbnB1dC5maXJzdENoaWxkfHx0aGlzLmlucHV0LHQpLG4uc2V0RW5kKHRoaXMuaW5wdXQubGFzdENoaWxkfHx0aGlzLmlucHV0LGUpO3ZhciBpPXRoaXMucm9vdEVsZW1lbnQscj1pLmdldFNlbGVjdGlvbiYmaS5nZXRTZWxlY3Rpb24oKTtyJiYoci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKG4pKX19fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudGV4dENvbnRlbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnRleHRDb250ZW50PXR9fV0pLG59KGJ1KTtpdS5IVE1MQ29udGVudGVkaXRhYmxlTWFza0VsZW1lbnQ9X3U7dmFyIEF1PVsibWFzayJdLEN1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3hyKHRoaXMsdCksdGhpcy5lbD1lIGluc3RhbmNlb2YgbXU\/ZTplLmlzQ29udGVudEVkaXRhYmxlJiYiSU5QVVQiIT09ZS50YWdOYW1lJiYiVEVYVEFSRUEiIT09ZS50YWdOYW1lP25ldyBfdShlKTpuZXcgYnUoZSksdGhpcy5tYXNrZWQ9c3UobiksdGhpcy5fbGlzdGVuZXJzPXt9LHRoaXMuX3ZhbHVlPSIiLHRoaXMuX3VubWFza2VkVmFsdWU9IiIsdGhpcy5fc2F2ZVNlbGVjdGlvbj10aGlzLl9zYXZlU2VsZWN0aW9uLmJpbmQodGhpcyksdGhpcy5fb25JbnB1dD10aGlzLl9vbklucHV0LmJpbmQodGhpcyksdGhpcy5fb25DaGFuZ2U9dGhpcy5fb25DaGFuZ2UuYmluZCh0aGlzKSx0aGlzLl9vbkRyb3A9dGhpcy5fb25Ecm9wLmJpbmQodGhpcyksdGhpcy5fb25Gb2N1cz10aGlzLl9vbkZvY3VzLmJpbmQodGhpcyksdGhpcy5fb25DbGljaz10aGlzLl9vbkNsaWNrLmJpbmQodGhpcyksdGhpcy5hbGlnbkN1cnNvcj10aGlzLmFsaWduQ3Vyc29yLmJpbmQodGhpcyksdGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5PXRoaXMuYWxpZ25DdXJzb3JGcmllbmRseS5iaW5kKHRoaXMpLHRoaXMuX2JpbmRFdmVudHMoKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5fb25DaGFuZ2UoKX1yZXR1cm4gT3IodCxbe2tleToibWFzayIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLm1hc2t9LHNldDpmdW5jdGlvbih0KXtpZighdGhpcy5tYXNrRXF1YWxzKHQpKWlmKHQgaW5zdGFuY2VvZiBpdS5NYXNrZWR8fHRoaXMubWFza2VkLmNvbnN0cnVjdG9yIT09dXUodCkpe3ZhciBlPXN1KHttYXNrOnR9KTtlLnVubWFza2VkVmFsdWU9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSx0aGlzLm1hc2tlZD1lfWVsc2UgdGhpcy5tYXNrZWQudXBkYXRlT3B0aW9ucyh7bWFzazp0fSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gbnVsbD09dHx8KG51bGw9PT0oZT10aGlzLm1hc2tlZCl8fHZvaWQgMD09PWU\/dm9pZCAwOmUubWFza0VxdWFscyh0KSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5tYXNrZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnVubWFza2VkVmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnR5cGVkVmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJfYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLmJpbmRFdmVudHMoe3NlbGVjdGlvbkNoYW5nZTp0aGlzLl9zYXZlU2VsZWN0aW9uLGlucHV0OnRoaXMuX29uSW5wdXQsZHJvcDp0aGlzLl9vbkRyb3AsY2xpY2s6dGhpcy5fb25DbGljayxmb2N1czp0aGlzLl9vbkZvY3VzLGNvbW1pdDp0aGlzLl9vbkNoYW5nZX0pfX0se2tleToiX3VuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsJiZ0aGlzLmVsLnVuYmluZEV2ZW50cygpfX0se2tleToiX2ZpcmVFdmVudCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3ZhciByPXRoaXMuX2xpc3RlbmVyc1t0XTtyJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGx5KHZvaWQgMCxuKX0pKX19LHtrZXk6InNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc\/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25TdGFydH19LHtrZXk6ImN1cnNvclBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnNvckNoYW5naW5nP3RoaXMuX2NoYW5naW5nQ3Vyc29yUG9zOnRoaXMuZWwuc2VsZWN0aW9uRW5kfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5lbCYmdGhpcy5lbC5pc0FjdGl2ZSYmKHRoaXMuZWwuc2VsZWN0KHQsdCksdGhpcy5fc2F2ZVNlbGVjdGlvbigpKX19LHtrZXk6Il9zYXZlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZjb25zb2xlLndhcm4oIkVsZW1lbnQgdmFsdWUgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBtYXNrLiBTeW5jcm9uaXplIG1hc2sgdXNpbmcgYG1hc2sudXBkYXRlVmFsdWUoKWAgdG8gd29yayBwcm9wZXJseS4iKSx0aGlzLl9zZWxlY3Rpb249e3N0YXJ0OnRoaXMuc2VsZWN0aW9uU3RhcnQsZW5kOnRoaXMuY3Vyc29yUG9zfX19LHtrZXk6InVwZGF0ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFza2VkLnZhbHVlPXRoaXMuZWwudmFsdWUsdGhpcy5fdmFsdWU9dGhpcy5tYXNrZWQudmFsdWV9fSx7a2V5OiJ1cGRhdGVDb250cm9sIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMubWFza2VkLnVubWFza2VkVmFsdWUsZT10aGlzLm1hc2tlZC52YWx1ZSxuPXRoaXMudW5tYXNrZWRWYWx1ZSE9PXR8fHRoaXMudmFsdWUhPT1lO3RoaXMuX3VubWFza2VkVmFsdWU9dCx0aGlzLl92YWx1ZT1lLHRoaXMuZWwudmFsdWUhPT1lJiYodGhpcy5lbC52YWx1ZT1lKSxuJiZ0aGlzLl9maXJlQ2hhbmdlRXZlbnRzKCl9fSx7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10Lm1hc2ssbj1qcih0LEF1KSxpPSF0aGlzLm1hc2tFcXVhbHMoZSkscj0hdHUodGhpcy5tYXNrZWQsbik7aSYmKHRoaXMubWFzaz1lKSxyJiZ0aGlzLm1hc2tlZC51cGRhdGVPcHRpb25zKG4pLChpfHxyKSYmdGhpcy51cGRhdGVDb250cm9sKCl9fSx7a2V5OiJ1cGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKHQpe251bGwhPXQmJih0aGlzLmN1cnNvclBvcz10LHRoaXMuX2RlbGF5VXBkYXRlQ3Vyc29yKHQpKX19LHtrZXk6Il9kZWxheVVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9hYm9ydFVwZGF0ZUN1cnNvcigpLHRoaXMuX2NoYW5naW5nQ3Vyc29yUG9zPXQsdGhpcy5fY3Vyc29yQ2hhbmdpbmc9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmVsJiYoZS5jdXJzb3JQb3M9ZS5fY2hhbmdpbmdDdXJzb3JQb3MsZS5fYWJvcnRVcGRhdGVDdXJzb3IoKSl9KSwxMCl9fSx7a2V5OiJfZmlyZUNoYW5nZUV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9maXJlRXZlbnQoImFjY2VwdCIsdGhpcy5faW5wdXRFdmVudCksdGhpcy5tYXNrZWQuaXNDb21wbGV0ZSYmdGhpcy5fZmlyZUV2ZW50KCJjb21wbGV0ZSIsdGhpcy5faW5wdXRFdmVudCl9fSx7a2V5OiJfYWJvcnRVcGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fY3Vyc29yQ2hhbmdpbmcmJihjbGVhclRpbWVvdXQodGhpcy5fY3Vyc29yQ2hhbmdpbmcpLGRlbGV0ZSB0aGlzLl9jdXJzb3JDaGFuZ2luZyl9fSx7a2V5OiJhbGlnbkN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmN1cnNvclBvcz10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHRoaXMuY3Vyc29yUG9zLEtyKSl9fSx7a2V5OiJhbGlnbkN1cnNvckZyaWVuZGx5Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uU3RhcnQ9PT10aGlzLmN1cnNvclBvcyYmdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xpc3RlbmVyc1t0XXx8KHRoaXMuX2xpc3RlbmVyc1t0XT1bXSksdGhpcy5fbGlzdGVuZXJzW3RdLnB1c2goZSksdGhpc319LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy5fbGlzdGVuZXJzW3RdKXJldHVybiB0aGlzO2lmKCFlKXJldHVybiBkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3RdLHRoaXM7dmFyIG49dGhpcy5fbGlzdGVuZXJzW3RdLmluZGV4T2YoZSk7cmV0dXJuIG4+PTAmJnRoaXMuX2xpc3RlbmVyc1t0XS5zcGxpY2UobiwxKSx0aGlzfX0se2tleToiX29uSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lucHV0RXZlbnQ9dCx0aGlzLl9hYm9ydFVwZGF0ZUN1cnNvcigpLCF0aGlzLl9zZWxlY3Rpb24pcmV0dXJuIHRoaXMudXBkYXRlVmFsdWUoKTt2YXIgZT1uZXcgZXUodGhpcy5lbC52YWx1ZSx0aGlzLmN1cnNvclBvcyx0aGlzLnZhbHVlLHRoaXMuX3NlbGVjdGlvbiksbj10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlLGk9dGhpcy5tYXNrZWQuc3BsaWNlKGUuc3RhcnRDaGFuZ2VQb3MsZS5yZW1vdmVkLmxlbmd0aCxlLmluc2VydGVkLGUucmVtb3ZlRGlyZWN0aW9uKS5vZmZzZXQscj1uPT09dGhpcy5tYXNrZWQucmF3SW5wdXRWYWx1ZT9lLnJlbW92ZURpcmVjdGlvbjpHcix1PXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyhlLnN0YXJ0Q2hhbmdlUG9zK2kscik7ciE9PUdyJiYodT10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModSxHcikpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMudXBkYXRlQ3Vyc29yKHUpLGRlbGV0ZSB0aGlzLl9pbnB1dEV2ZW50fX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZ0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5tYXNrZWQuZG9Db21taXQoKSx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLl9zYXZlU2VsZWN0aW9uKCl9fSx7a2V5OiJfb25Ecm9wIix2YWx1ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHtrZXk6Il9vbkZvY3VzIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6Il9vbkNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdW5iaW5kRXZlbnRzKCksdGhpcy5fbGlzdGVuZXJzLmxlbmd0aD0wLGRlbGV0ZSB0aGlzLmVsfX1dKSx0fSgpO2l1LklucHV0TWFzaz1DdTt2YXIgRXU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QuZW51bSYmKHQubWFzaz0iKiIucmVwZWF0KHQuZW51bVswXS5sZW5ndGgpKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuZW51bS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRleE9mKGUudW5tYXNrZWRWYWx1ZSk+PTB9KSkmJih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKX19XSksbn0oZ3UpO2l1Lk1hc2tlZEVudW09RXU7dmFyIEZ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXtyZXR1cm4geHIodGhpcyxuKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl91cGRhdGVSZWdFeHBzKCl9fSx7a2V5OiJfdXBkYXRlUmVnRXhwcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0iXiIrKHRoaXMuYWxsb3dOZWdhdGl2ZT8iWyt8XFwtXT8iOiIiKSxlPSh0aGlzLnNjYWxlPyIoIitKcih0aGlzLnJhZGl4KSsiXFxkezAsIit0aGlzLnNjYWxlKyJ9KT8iOiIiKSsiJCI7dGhpcy5fbnVtYmVyUmVnRXhwSW5wdXQ9bmV3IFJlZ0V4cCh0KyIoMHwoWzEtOV0rXFxkKikpPyIrZSksdGhpcy5fbnVtYmVyUmVnRXhwPW5ldyBSZWdFeHAodCsiXFxkKiIrZSksdGhpcy5fbWFwVG9SYWRpeFJlZ0V4cD1uZXcgUmVnRXhwKCJbIit0aGlzLm1hcFRvUmFkaXgubWFwKEpyKS5qb2luKCIiKSsiXSIsImciKSx0aGlzLl90aG91c2FuZHNTZXBhcmF0b3JSZWdFeHA9bmV3IFJlZ0V4cChKcih0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksImciKX19LHtrZXk6Il9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cCwiIil9fSx7a2V5OiJfaW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7dD10LnJlcGxhY2UodGhpcy5fbWFwVG9SYWRpeFJlZ0V4cCx0aGlzLnJhZGl4KTtmb3IodmFyIGk9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KSxyPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkocj4xP3ItMTowKSxzPTE7czxyO3MrKyl1W3MtMV09YXJndW1lbnRzW3NdO3ZhciBhPVFyKChlPU5yKFRyKG4ucHJvdG90eXBlKSwiZG9QcmVwYXJlIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzLGldLmNvbmNhdCh1KSkpLG89cXIoYSwyKSxsPW9bMF0saD1vWzFdO3JldHVybiB0JiYhaSYmKGguc2tpcD0hMCksW2wsaF19fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxuPTAsaT0wO2k8dDsrK2kpdGhpcy5fdmFsdWUuaW5kZXhPZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixpKT09PWkmJigrK24sZSYmKHQrPXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCkpO3JldHVybiBufX0se2tleToiX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fdmFsdWU7cmV0dXJuIHRoaXMuX3NlcGFyYXRvcnNDb3VudCh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLmxlbmd0aCwhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXRoaXMuX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnModCxlKSx1PXFyKHIsMik7cmV0dXJuIHQ9dVswXSxlPXVbMV0sdGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyhOcihUcihuLnByb3RvdHlwZSksImV4dHJhY3RJbnB1dCIsdGhpcykuY2FsbCh0aGlzLHQsZSxpKSl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O2lmKCF0aGlzLnRob3VzYW5kc1NlcGFyYXRvcilyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dmFyIGk9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxyPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShpKTt0aGlzLl92YWx1ZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMudmFsdWUpO3ZhciB1PU5yKFRyKG4ucHJvdG90eXBlKSwiX2FwcGVuZENoYXJSYXciLHRoaXMpLmNhbGwodGhpcyx0LGUpO3RoaXMuX3ZhbHVlPXRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fdmFsdWUpO3ZhciBzPWUudGFpbCYmZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy5fdmFsdWUsYT10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2Uocyk7cmV0dXJuIHUudGFpbFNoaWZ0Kz0oYS1yKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgsdS5za2lwPSF1LnJhd0luc2VydGVkJiZ0PT09dGhpcy50aG91c2FuZHNTZXBhcmF0b3IsdX19LHtrZXk6Il9maW5kU2VwYXJhdG9yQXJvdW5kIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcil7dmFyIGU9dC10aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgrMSxuPXRoaXMudmFsdWUuaW5kZXhPZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixlKTtpZihuPD10KXJldHVybiBufXJldHVybi0xfX0se2tleToiX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0KTtuPj0wJiYodD1uKTt2YXIgaT10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKGUpO3JldHVybiBpPj0wJiYoZT1pK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCksW3QsZV19fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj10aGlzLl9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzKHQsZSksaT1xcihuLDIpO3Q9aVswXSxlPWlbMV07dmFyIHI9dGhpcy52YWx1ZS5zbGljZSgwLHQpLHU9dGhpcy52YWx1ZS5zbGljZShlKSxzPXRoaXMuX3NlcGFyYXRvcnNDb3VudChyLmxlbmd0aCk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHIrdSkpO3ZhciBhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShyKTtyZXR1cm4gbmV3IFlyKHt0YWlsU2hpZnQ6KGEtcykqdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RofSl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiB0O3N3aXRjaChlKXtjYXNlIEdyOmNhc2UgS3I6Y2FzZSAkcjp2YXIgbj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQtMSk7aWYobj49MCl7dmFyIGk9bit0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGg7aWYodDxpfHx0aGlzLnZhbHVlLmxlbmd0aDw9aXx8ZT09PSRyKXJldHVybiBufWJyZWFrO2Nhc2UgV3I6Y2FzZSBYcjp2YXIgcj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQpO2lmKHI+PTApcmV0dXJuIHIrdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RofXJldHVybiB0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9KHQuaW5wdXQ\/dGhpcy5fbnVtYmVyUmVnRXhwSW5wdXQ6dGhpcy5fbnVtYmVyUmVnRXhwKS50ZXN0KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy52YWx1ZSkpO2lmKGUpe3ZhciBpPXRoaXMubnVtYmVyO2U9ZSYmIWlzTmFOKGkpJiYobnVsbD09dGhpcy5taW58fHRoaXMubWluPj0wfHx0aGlzLm1pbjw9dGhpcy5udW1iZXIpJiYobnVsbD09dGhpcy5tYXh8fHRoaXMubWF4PD0wfHx0aGlzLm51bWJlcjw9dGhpcy5tYXgpfXJldHVybiBlJiZOcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMudmFsdWUpe3ZhciB0PXRoaXMubnVtYmVyLGU9dDtudWxsIT10aGlzLm1pbiYmKGU9TWF0aC5tYXgoZSx0aGlzLm1pbikpLG51bGwhPXRoaXMubWF4JiYoZT1NYXRoLm1pbihlLHRoaXMubWF4KSksZSE9PXQmJih0aGlzLnVubWFza2VkVmFsdWU9U3RyaW5nKGUpKTt2YXIgaT10aGlzLnZhbHVlO3RoaXMubm9ybWFsaXplWmVyb3MmJihpPXRoaXMuX25vcm1hbGl6ZVplcm9zKGkpKSx0aGlzLnBhZEZyYWN0aW9uYWxaZXJvcyYmdGhpcy5zY2FsZT4wJiYoaT10aGlzLl9wYWRGcmFjdGlvbmFsWmVyb3MoaSkpLHRoaXMuX3ZhbHVlPWl9TnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Il9ub3JtYWxpemVaZXJvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KS5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL14oXEQqKSgwKikoXGQqKS8sKGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBlK2l9KSksdC5sZW5ndGgmJiEvXGQkLy50ZXN0KGVbMF0pJiYoZVswXT1lWzBdKyIwIiksZS5sZW5ndGg+MSYmKGVbMV09ZVsxXS5yZXBsYWNlKC8wKiQvLCIiKSxlWzFdLmxlbmd0aHx8KGUubGVuZ3RoPTEpKSx0aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKGUuam9pbih0aGlzLnJhZGl4KSl9fSx7a2V5OiJfcGFkRnJhY3Rpb25hbFplcm9zIix2YWx1ZTpmdW5jdGlvbih0KXtpZighdClyZXR1cm4gdDt2YXIgZT10LnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlLmxlbmd0aDwyJiZlLnB1c2goIiIpLGVbMV09ZVsxXS5wYWRFbmQodGhpcy5zY2FsZSwiMCIpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX25vcm1hbGl6ZVplcm9zKHRoaXMudmFsdWUpKS5yZXBsYWNlKHRoaXMucmFkaXgsIi4iKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdC5yZXBsYWNlKCIuIix0aGlzLnJhZGl4KSx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiBOdW1iZXIodGhpcy51bm1hc2tlZFZhbHVlKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsU3RyaW5nKHQpLHRoaXMsITApfX0se2tleToibnVtYmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJhbGxvd05lZ2F0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaWduZWR8fG51bGwhPXRoaXMubWluJiZ0aGlzLm1pbjwwfHxudWxsIT10aGlzLm1heCYmdGhpcy5tYXg8MH19XSksbn0ocnUpO0Z1LkRFRkFVTFRTPXtyYWRpeDoiLCIsdGhvdXNhbmRzU2VwYXJhdG9yOiIiLG1hcFRvUmFkaXg6WyIuIl0sc2NhbGU6MixzaWduZWQ6ITEsbm9ybWFsaXplWmVyb3M6ITAscGFkRnJhY3Rpb25hbFplcm9zOiExfSxpdS5NYXNrZWROdW1iZXI9RnU7dmFyIFN1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPXQubWFzayksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KHJ1KTtpdS5NYXNrZWRGdW5jdGlvbj1TdTt2YXIgd3U9WyJjb21waWxlZE1hc2tzIiwiY3VycmVudE1hc2tSZWYiLCJjdXJyZW50TWFzayJdLEJ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXt2YXIgaTtyZXR1cm4geHIodGhpcyxuKSwoaT1lLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpKS5jdXJyZW50TWFzaz1udWxsLGl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe05yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLCJtYXNrImluIHQmJih0aGlzLmNvbXBpbGVkTWFza3M9QXJyYXkuaXNBcnJheSh0Lm1hc2spP3QubWFzay5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBzdSh0KX0pKTpbXSl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49dGhpcy5fYXBwbHlEaXNwYXRjaCh0LGUpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZuLmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRDaGFyKHQsZSkpLG59fSx7a2V5OiJfYXBwbHlEaXNwYXRjaCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1lLnRhaWwmJm51bGwhPWUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMudmFsdWUsaT10aGlzLnJhd0lucHV0VmFsdWUscj1lLnRhaWwmJm51bGwhPWUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3Jhd0lucHV0VmFsdWU6aSx1PWkuc2xpY2Uoci5sZW5ndGgpLHM9dGhpcy5jdXJyZW50TWFzayxhPW5ldyBZcixvPXMmJnMuc3RhdGU7aWYodGhpcy5jdXJyZW50TWFzaz10aGlzLmRvRGlzcGF0Y2godCxPYmplY3QuYXNzaWduKHt9LGUpKSx0aGlzLmN1cnJlbnRNYXNrKWlmKHRoaXMuY3VycmVudE1hc2shPT1zKXtpZih0aGlzLmN1cnJlbnRNYXNrLnJlc2V0KCkscil7dmFyIGw9dGhpcy5jdXJyZW50TWFzay5hcHBlbmQocix7cmF3OiEwfSk7YS50YWlsU2hpZnQ9bC5pbnNlcnRlZC5sZW5ndGgtbi5sZW5ndGh9dSYmKGEudGFpbFNoaWZ0Kz10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZCh1LHtyYXc6ITAsdGFpbDohMH0pLnRhaWxTaGlmdCl9ZWxzZSB0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPW87cmV0dXJuIGF9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZFBsYWNlaG9sZGVyKCkpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZEVhZ2VyKCkpLHR9fSx7a2V5OiJkb0Rpc3BhdGNoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMuZGlzcGF0Y2godCx0aGlzLGUpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpJiYoIXRoaXMuY3VycmVudE1hc2t8fChlPXRoaXMuY3VycmVudE1hc2spLmRvVmFsaWRhdGUuYXBwbHkoZSxyKSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXR8fHQucmVzZXQoKSx0aGlzLmNvbXBpbGVkTWFza3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzZXQoKX0pKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ2YWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudW5tYXNrZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudHlwZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyh0KTt0aGlzLmN1cnJlbnRNYXNrJiYodGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlPXQsZT10aGlzLmN1cnJlbnRNYXNrLnVubWFza2VkVmFsdWUpLHRoaXMudW5tYXNrZWRWYWx1ZT1lfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzQ29tcGxldGUpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pc0ZpbGxlZCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgWXI7dGhpcy5jdXJyZW50TWFzayYmZS5hZ2dyZWdhdGUoKHQ9dGhpcy5jdXJyZW50TWFzaykucmVtb3ZlLmFwcGx5KHQsYXJndW1lbnRzKSkuYWdncmVnYXRlKHRoaXMuX2FwcGx5RGlzcGF0Y2goKSk7cmV0dXJuIGV9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTnIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19yYXdJbnB1dFZhbHVlOnRoaXMucmF3SW5wdXRWYWx1ZSxjb21waWxlZE1hc2tzOnRoaXMuY29tcGlsZWRNYXNrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGN1cnJlbnRNYXNrUmVmOnRoaXMuY3VycmVudE1hc2ssY3VycmVudE1hc2s6dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5zdGF0ZX0pfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21waWxlZE1hc2tzLGk9dC5jdXJyZW50TWFza1JlZixyPXQuY3VycmVudE1hc2ssdT1qcih0LHd1KTt0aGlzLmNvbXBpbGVkTWFza3MuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zdGF0ZT1lW25dfSkpLG51bGwhPWkmJih0aGlzLmN1cnJlbnRNYXNrPWksdGhpcy5jdXJyZW50TWFzay5zdGF0ZT1yKSx6cihUcihuLnByb3RvdHlwZSksInN0YXRlIix1LHRoaXMsITApfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLmV4dHJhY3RJbnB1dC5hcHBseSh0LGFyZ3VtZW50cyk6IiJ9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdFRhaWwuYXBwbHkodCxyKTooZT1OcihUcihuLnByb3RvdHlwZSksImV4dHJhY3RUYWlsIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQocikpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5kb0NvbW1pdCgpLE5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLm5lYXJlc3RJbnB1dFBvcy5hcHBseSh0LHIpOihlPU5yKFRyKG4ucHJvdG90eXBlKSwibmVhcmVzdElucHV0UG9zIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQocikpfX0se2tleToib3ZlcndyaXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLm92ZXJ3cml0ZTpOcihUcihuLnByb3RvdHlwZSksIm92ZXJ3cml0ZSIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJvdmVyd3JpdGUiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJlYWdlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay5lYWdlcjpOcihUcihuLnByb3RvdHlwZSksImVhZ2VyIix0aGlzKX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybignImVhZ2VyIiBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiBkeW5hbWljIG1hc2ssIHVzZSB0aGlzIG9wdGlvbiBpbiBzaWJsaW5ncycpfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnRoaXMuY29tcGlsZWRNYXNrcy5ldmVyeSgoZnVuY3Rpb24oZSxuKXt2YXIgaTtyZXR1cm4gZS5tYXNrRXF1YWxzKG51bGw9PT0oaT10W25dKXx8dm9pZCAwPT09aT92b2lkIDA6aS5tYXNrKX0pKX19XSksbn0ocnUpO0J1LkRFRkFVTFRTPXtkaXNwYXRjaDpmdW5jdGlvbih0LGUsbil7aWYoZS5jb21waWxlZE1hc2tzLmxlbmd0aCl7dmFyIGk9ZS5yYXdJbnB1dFZhbHVlLHI9ZS5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZS5yZXNldCgpLGUuYXBwZW5kKGkse3JhdzohMH0pLGUuYXBwZW5kKHQsbikse3dlaWdodDplLnJhd0lucHV0VmFsdWUubGVuZ3RoLGluZGV4OnJ9fSkpO3JldHVybiByLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUud2VpZ2h0LXQud2VpZ2h0fSkpLGUuY29tcGlsZWRNYXNrc1tyWzBdLmluZGV4XX19fSxpdS5NYXNrZWREeW5hbWljPUJ1O3ZhciBEdT17TUFTS0VEOiJ2YWx1ZSIsVU5NQVNLRUQ6InVubWFza2VkVmFsdWUiLFRZUEVEOiJ0eXBlZFZhbHVlIn07ZnVuY3Rpb24geHUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkR1Lk1BU0tFRCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpEdS5NQVNLRUQsaT1zdSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkucnVuSXNvbGF0ZWQoKGZ1bmN0aW9uKGkpe3JldHVybiBpW2VdPXQsaVtuXX0pKX19ZnVuY3Rpb24gTXUodCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3JldHVybiB4dS5hcHBseSh2b2lkIDAsbikodCl9aXUuUElQRV9UWVBFPUR1LGl1LmNyZWF0ZVBpcGU9eHUsaXUucGlwZT1NdTt0cnl7Z2xvYmFsVGhpcy5JTWFzaz1pdX1jYXRjaCh0KXt9dC5IVE1MQ29udGVudGVkaXRhYmxlTWFza0VsZW1lbnQ9X3UsdC5IVE1MTWFza0VsZW1lbnQ9YnUsdC5JbnB1dE1hc2s9Q3UsdC5NYXNrRWxlbWVudD1tdSx0Lk1hc2tlZD1ydSx0Lk1hc2tlZERhdGU9eXUsdC5NYXNrZWREeW5hbWljPUJ1LHQuTWFza2VkRW51bT1FdSx0Lk1hc2tlZEZ1bmN0aW9uPVN1LHQuTWFza2VkTnVtYmVyPUZ1LHQuTWFza2VkUGF0dGVybj1ndSx0Lk1hc2tlZFJhbmdlPWt1LHQuTWFza2VkUmVnRXhwPWR1LHQuUElQRV9UWVBFPUR1LHQuY3JlYXRlTWFzaz1zdSx0LmNyZWF0ZVBpcGU9eHUsdC5kZWZhdWx0PWl1LHQucGlwZT1NdSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFzay5taW4uanMubWFwOwovKiogL2pzL3ZhbmlsbGFqcy9mb3JtLmpzICoqLwp2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjIwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mb3JtanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMzowOSI7InVzZSBzdHJpY3QiO19fX2QyY19mb3JtanNfY19vbj0iMjAyMy0wNC0yNyAxMDozMDo0OSI7InVzZSBzdHJpY3QiOwpjb25zdCBGb3JtPWZ1bmN0aW9uKCl7dGhpcy5NQVNLUz17cGhvbmU6IjAwMCAwMDAtMDAwMCIsc2luOiIwMDAgMDAwIDAwMCIscG9zdGFsQ29kZToiYTBhIDBhMCJ9O3RoaXMubWFzaz0oYSxiKT0+e2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChhKTthLmxlbmd0aCYmYS5mb3JFYWNoKGM9PntJTWFzayhjLGIpfSl9O3RoaXMubWFza051bWJlcj0oYSxiKT0+e2xldCBjPXttYXNrOk51bWJlcixtaW46MH07YiYmKGMubWF4PWIpO3RoaXMubWFzayhhLGMpfTt0aGlzLm1hc2tQaG9uZT1hPT57dGhpcy5tYXNrKGEse21hc2s6W3ttYXNrOnRoaXMuTUFTS1MucGhvbmV9LHttYXNrOmAxICR7dGhpcy5NQVNLUy5waG9uZX1gfV19KX07dGhpcy5tYXNrUG9zdGFsQ29kZT1hPT57dGhpcy5tYXNrKGEse21hc2s6dGhpcy5NQVNLUy5wb3N0YWxDb2RlLHByZXBhcmU6Yj0+Yi50b1VwcGVyQ2FzZSgpfSl9fTsKLyoqIC9qcy9tYWlsUXVpY2tFbWFpbFdpZGdldC5qcyAqKi8KdmFyIF9fX2QyY19tYWlsUXVpY2tFbWFpbFdpZGdldGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6NTIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX21haWxRdWlja0VtYWlsV2lkZ2V0anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzo0MiI7InVzZSBzdHJpY3QiOwp2YXIgbWFpbFF1aWNrRW1haWw9ZnVuY3Rpb24oKXt2YXIgYT17bmFtZToiIixlbWFpbDoiIixtZXNzYWdlOiIiLHBob25lOiIiLG1ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixzdG9ja051bWJlcjoiIixkZXBhcnRtZW50OiIiLHNlbGVjdG9yOiIuZGVmYXVsdCIsc2NvcGU6bnVsbCxhc3NpZ25WYWx1ZXM6ZnVuY3Rpb24oKXthLm5hbWU9JCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS52YWwoKTthLmVtYWlsPSQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkudmFsKCk7YS5waG9uZT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCk7YS5tZXNzYWdlPSQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS52YWwoKTthLmRlcGFydG1lbnQ9JCgiI3F1aWNrRW1haWxEZXBhcnRtZW50IixhLnNjb3BlKS52YWwoKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEubmFtZXx8bnVsbD09YS5uYW1lKWEubmFtZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEuZW1haWx8fG51bGw9PWEuZW1haWwpYS5lbWFpbD0KIiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLnBob25lfHxudWxsPT1hLnBob25lKWEucGhvbmU9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLm1lc3NhZ2V8fG51bGw9PWEubWVzc2FnZSlhLm1lc3NhZ2U9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLmRlcGFydG1lbnR8fG51bGw9PWEuZGVwYXJ0bWVudClhLmRlcGFydG1lbnQ9IiI7dmFyIGI9ZDJjbWVkaWEuaHRtbEZpbGUoKTswPGxvY2F0aW9uLmhyZWYuaW5kZXhPZigiLSIpJiYoYj1iLnNwbGl0KCItIiksMDxiLmxlbmd0aCYmKGEubWFrZT1iWzBdLnJlcGxhY2UoIl8iLCItIikpLDE8Yi5sZW5ndGgmJihhLm1vZGVsPWJbMV0ucmVwbGFjZSgiXyIsIi0iKSksMjxiLmxlbmd0aCYmKGEueWVhcj1iWzJdKSwzPGIubGVuZ3RoJiYoYS5zdG9ja051bWJlcj1iWzNdLnJlcGxhY2UoImlkIiwiIikpLDA8JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkubGVuZ3RoJiYyPCQoIiNleHByZXNzc3RvY2tudW1iZXIiLGEuc2NvcGUpLnZhbCgpLmxlbmd0aCYmCihhLnN0b2NrTnVtYmVyPSQoIiNleHByZXNzc3RvY2tudW1iZXIiLGEuc2NvcGUpLnZhbCgpKSwwPGEubW9kZWwubGVuZ3RoJiYwPT1hLnllYXIubGVuZ3RoJiYhaXNOYU4oYS5tb2RlbCkmJjE5ODA8YS5tb2RlbCYmMjEwMD5hLm1vZGVsJiYoYS55ZWFyPXNlYXJjaENyaXRlcmlhLm1vZGVsLGEubW9kZWw9IiIpKTsidW5kZWZpbmVkIj09dHlwZW9mIGEubWFrZSYmKGEubWFrZT0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLm1vZGVsJiYoYS5tb2RlbD0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLnllYXImJihhLnllYXI9IiIpOyJ1bmRlZmluZWQiPT10eXBlb2YgYS5tZXNzYWdlJiYoYS5tZXNzYWdlPSIiKX0sYXBwbHlQaG9uZVdNOmZ1bmN0aW9uKCl7IiggICApICAgIC0gICAgIiE9JCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLnZhbCgpJiYiIiE9JCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLnZhbCgpfHwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCIiKX0saW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT0KdHlwZW9mICQoIiNjb3Vwb25EZWZhdWx0TXNnIikudmFsKCkmJjA8JCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKS5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkuY3NzKCJoZWlnaHQiLCI1MHB4IiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLmF0dHIoInJvd3MiLDIpLCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS52YWwoJCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKSkpOyQoIi5zZW5kUXVpY2tFbWFpbCIsYS5zY29wZSkub24oImNsaWNrIixhLnNhdmUpOyhuZXcgRm9ybSkubWFza1Bob25lKCIjcXVpY2tFbWFpbFRlbCIpOyQoIiNxdWlja0VtYWlsVGVsIikub24oImJsdXIiLGZ1bmN0aW9uKCl7YS5zZXRTZWxlY3Rvcih0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5hcHBseVBob25lV00oKX0sMjUwKX0pfSxyZXNldFdhdGVybWFya3NDb2xvcnM6ZnVuY3Rpb24oKXswPT1hLm5hbWUubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS5jc3MoImNvbG9yIiwKIiM1NzU3NTciKSwkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnZhbCgiIikpOzA9PWEuZW1haWwubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5jc3MoImNvbG9yIiwiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkudmFsKCIiKSk7MD09YS5tZXNzYWdlLmxlbmd0aCYmKCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5jc3MoImNvbG9yIiwiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS52YWwoIiIpKX0sc2V0U2VsZWN0b3I6ZnVuY3Rpb24oKXthLnNjb3BlPSQodGhpcykuY2xvc2VzdCgiZm9ybSIpO3JldHVybiBhLnNjb3BlfSxzYXZlOmZ1bmN0aW9uKGIpe2ImJmIucHJldmVudERlZmF1bHQoKTthLnNldFNlbGVjdG9yLmNhbGwodGhpcyk7MDwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmxlbmd0aCYmKCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikucGFyZW50KCkuaXMoImJvZHkiKXx8JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5hcHBlbmRUbygiYm9keSIpKTsKMDwkKCIjZW1haWxGYWlsTWVzc2FnZSIpLmxlbmd0aCYmKCQoIiNlbWFpbEZhaWxNZXNzYWdlIikucGFyZW50KCkuaXMoImJvZHkiKXx8JCgiI2VtYWlsRmFpbE1lc3NhZ2UiKS5hcHBlbmRUbygiYm9keSIpKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCkmJiJSZWJhdGVDb3Vwb25Qcm9tbyI9PSQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCkmJigkLnZhbGlkaXR5LnN0YXJ0KCksJCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpLCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpLCQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkucmVxdWlyZSgpLnZhbGlkRW1haWxBZGRyZXNzKCksYj0kLnZhbGlkaXR5LmVuZCgpLCFiLnZhbGlkKSlyZXR1cm4gJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6NjAsCnRvcDoyMTQsd2lkdGg6MzAxfSksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuc2hvdygpLCQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGMpeyQudmFsaWRpdHkuY2xlYXIoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCh0aGlzKS5vZmYoYyl9KSwhMTthLmFzc2lnblZhbHVlcygpO2I9ITA7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKTskKGEuc2NvcGUpLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7MDwkKCIjZXhwcmVzc1NlbGVjdFJlcXVpcmVkIixhLnNjb3BlKS5sZW5ndGgmJiIxIj09JCgiI2V4cHJlc3NTZWxlY3RSZXF1aXJlZCIsYS5zY29wZSkudmFsKCkmJiQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkucmVxdWlyZSgpLm5vbkh0bWwoKTswPCQoIiNleHByZXNzUGhvbmVSZXF1aXJlZCIsYS5zY29wZSkubGVuZ3RoJiYiMSI9PQokKCIjZXhwcmVzc1Bob25lUmVxdWlyZWQiLGEuc2NvcGUpLnZhbCgpJiYoJCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkuYWRkQ2xhc3MoInJlcXVpcmVkIiksJCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLnJlcXVpcmUoKSk7JCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpOyQoIiNxdWlja0VtYWlsVGVsIikudmFsaWRhdGVQaG9uZSgpOyQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkucmVxdWlyZSgpLnZhbGlkRW1haWxBZGRyZXNzKCk7JCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCk7Yj0kLnZhbGlkaXR5LmVuZCgpOyhiPWIudmFsaWQpPygidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCkmJiIiIT0kKCIjdGV4dFNhdmVNYWlsSUQiLGEuc2NvcGUpLnZhbCgpP21haWxQYWdlLm1haWxJRD0KJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKTptYWlsUGFnZS5tYWlsSUQ9IlF1aWNrRW1haWwiLCJ1bmRlZmllbmQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYiMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKSYmLTE9PWEuc2NvcGUuaGFzQ2xhc3MoIm1lbnUiKSYmKG1haWxQYWdlLm1haWxJRD0iUXVpY2tFbWFpbE5ld0ludmVudG9yeSIpLCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3ByaW50RmxhZyIsYS5zY29wZSkudmFsKCkmJiIxIj09JCgiI3ByaW50RmxhZyIsYS5zY29wZSkudmFsKCkmJiJ1bmRlZmluZWQiIT0kKCIjY291cG9uUHJpbnRVUkwiKS52YWwoKSYmLTE8JCgiI2NvdXBvblByaW50VVJMIikudmFsKCkuaW5kZXhPZigiLmh0bWwiKSYmKHByaW50Q291cG9uVXJsPSQoIiNjb3Vwb25QcmludFVSTCIpLnZhbCgpLHdpbmRvdy5vcGVuKHByaW50Q291cG9uVXJsLCJfYmxhbmsiKSksbWFpbFBhZ2UuanFTY29wZT1hLnNjb3BlLAptYWlsUGFnZS5zYXZlKCkpOigkKCIjcXVpY2tFbWFpbEZvcm0gLk1pc3NpbmdWYWxpZGF0aW9uTXNnIixhLnNjb3BlKS5zaG93KCksJCgiI3F1aWNrRW1haWxGb3JtIixhLnNjb3BlKS5vbigiY2xpY2siLGZ1bmN0aW9uKGMpeyQodGhpcykuZmluZCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIikuaGlkZSgpOyQodGhpcykub2ZmKGMpfSkpO3JldHVybiExfSxpc0VtYWlsOmZ1bmN0aW9uKGIpe3JldHVybi9eKFthLXpBLVowLTlfListXSkrQCgoW2EtekEtWjAtOS1dKStcLikrKFthLXpBLVowLTldezIsNH0pKyQvLnRlc3QoYil9LHZhbGlkYXRlRW1haWw6ZnVuY3Rpb24oYil7dmFyIGM9ITE7JC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvdmFsaWRhdGVFbWFpbEFjY291bnQ\/d3N3aWR0aD0wJmVtYWlsPSIrYixhc3luYzohMSxzdWNjZXNzOmZ1bmN0aW9uKGQsZSxmKXsxPT1kJiYoYz0hMCl9fSk7cmV0dXJuIGN9LGdldFNlbmRUbzpmdW5jdGlvbigpe3ZhciBiPQokKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO3JldHVybiAkKCIjZXhwcmVzc0RlcGFydG1lbnRFbWFpbF8iK2IpLnZhbCgpfSxnZXRTZW5kVG9BZGY6ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO3JldHVybiAkKCIjZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl8iK2IpLnZhbCgpfX07cmV0dXJuIGF9KCk7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXttYWlsUXVpY2tFbWFpbC5zZXRTZWxlY3Rvci5jYWxsKCQoIiNxdWlja0VtYWlsRm9ybS5kZWZhdWx0IikpO21haWxRdWlja0VtYWlsLmluaXQoKTswPCQoIiNxdWlja0VtYWlsRm9ybS5tZW51IikubGVuZ3RoJiYobWFpbFF1aWNrRW1haWwuc2V0U2VsZWN0b3IuY2FsbCgkKCIjcXVpY2tFbWFpbEZvcm0ubWVudSIpKSxtYWlsUXVpY2tFbWFpbC5pbml0KCkpfSk7Ci8qKiAvanMvZ2VuZXJpY01haWwuanMgKiovCnZhciBfX19kMmNfZ2VuZXJpY01haWxqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjE1IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19nZW5lcmljTWFpbGpzX2Nfb249IjIwMjQtMTEtMjggMTA6MzA6MTEiOyJ1c2Ugc3RyaWN0IjsKR2VuZXJpY01haWw9ZnVuY3Rpb24odil7ZnVuY3Rpb24gbShjKXtjPWMudG9TdHJpbmcoKTtyZXR1cm4gYy5yZXBsYWNlKC88XC8\/W14+XSs+L2dpLCIiKX12YXIgYj10aGlzO2IubWFpbElEPXY7Yi5lbWFpbFNlbnQ9ZnVuY3Rpb24oYyl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcihiLm1haWxJRCk7Yz8oInVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsU2VudEhhbmRsZXImJihtYWlsU2VudEhhbmRsZXIudGltZW91dENhbGxiYWNrPWIubXNnU2VudEZpbmlzaGVkSGFuZGxlcixtYWlsU2VudEhhbmRsZXIuc2hvd1N1Y2Nlc3MoKSksYi5jbGVhckZvcm0oKSk6InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsU2VudEhhbmRsZXImJihtYWlsU2VudEhhbmRsZXIudGltZW91dENhbGxiYWNrPWIubXNnU2VudEZpbmlzaGVkSGFuZGxlcixtYWlsU2VudEhhbmRsZXIuc2hvd0ZhaWwoKSl9O2IuY2xlYXJGb3JtPWZ1bmN0aW9uKCl7dmFyIGM9Yi5qcVNjb3BlO2lmKCJ1bmRlZmluZWQiPT09CnR5cGVvZiBjfHwiIj09YylpZigkKCIuSW5uZXJCb3hMYXllciIpLmxlbmd0aCljPSIuSW5uZXJCb3hMYXllciI7ZWxzZSByZXR1cm47JCgiLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIGlucHV0LCAuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZXh0YXJlYSIsYykuZWFjaChmdW5jdGlvbigpeyQodGhpcykudmFsKCIiKTskKHRoaXMpLmF0dHIoInBsYWNlaG9sZGVyIiwkKHRoaXMpLmF0dHIoImFsdCIpKX0pOyQoIiNmb290ZXJEaXYgI2xlYWRTZW50IikucmVtb3ZlKCl9O2IubXNnU2VudEZpbmlzaGVkSGFuZGxlcj1mdW5jdGlvbigpe307Yi5iYW5kcExpbms9ZnVuY3Rpb24oYyl7cmV0dXJuIGVtYWlsSGFuZGxlci5iYW5kcExpbmsoYyl9O2Iuc2F2ZT1mdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoYyk7aWYoIWIuX3ZhbGlkYXRlRmllbGRzKCkpcmV0dXJuICQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JCgiLnZhbGlkaXR5LWVycm9uZW91czpmaXJzdCIpLm9mZnNldCgpLnRvcC0KMTAwfSwyRTMpLCExO2IucHJlcGFyZSgpO2VtYWlsSGFuZGxlci5zZW5kTWFpbCgpfTtiLnByZXBhcmU9ZnVuY3Rpb24oKXt2YXIgYz1mdW5jdGlvbihoKXt4PShoKyIiKS5zcGxpdCgiLiIpO3gxPXhbMF07eDI9MTx4Lmxlbmd0aD8iLiIreFsxXToiIjtmb3IoaD0vKFxkKykoXGR7M30pLztoLnRlc3QoeDEpOyl4MT14MS5yZXBsYWNlKGgsIiQxLCQyIik7cmV0dXJuIHgxK3gyfSxnPWIuanFTY29wZT9iLmpxU2NvcGU6Ii5Jbm5lckJveExheWVyIixrPSIiLGE9IiIsZT0iIixkPSIiLGY9IiI7az0wPCQoIiNlbWFpbFN1YmplY3REZWZfIitiLm1haWxJRCxnKS5sZW5ndGg\/JCgiI2VtYWlsU3ViamVjdERlZl8iK2IubWFpbElELGcpLnRleHQoKTowPCQoIiNlbWFpbFN1YmplY3REZWYiLGcpLmxlbmd0aD8kKCIjZW1haWxTdWJqZWN0RGVmIixnKS50ZXh0KCk6JCgiI2VtYWlsU3ViamVjdERlZiIpLnRleHQoKTthPTA8JCgiI2VtYWlsQm9keURlZl8iK2IubWFpbElELGcpLmxlbmd0aD8kKCIjZW1haWxCb2R5RGVmXyIrCmIubWFpbElELGcpLmh0bWwoKTokKCIjZW1haWxCb2R5RGVmIixnKS5sZW5ndGg\/JCgiI2VtYWlsQm9keURlZiIsZykuaHRtbCgpOiQoIiNlbWFpbEJvZHlEZWYiKS5odG1sKCk7dmFyIGw9InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdGV4dElzRGVtbyIpLmF0dHIoImlkIikmJiIxIj09JCgiI3RleHRJc0RlbW8iKS52YWwoKT8hMDohMTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxRdWlja0VtYWlsJiZudWxsIT1tYWlsUXVpY2tFbWFpbCYmInN0cmluZyI9PT10eXBlb2YgbWFpbFF1aWNrRW1haWwubWVzc2FnZSYmKGVtYWlsSGFuZGxlci5jb21tZW50cz1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlKTtzd2l0Y2goYi5tYWlsSUQpe2Nhc2UgIlF1aWNrRW1haWwiOmNhc2UgIlF1aWNrRW1haWxOZXdJbnZlbnRvcnkiOmNhc2UgIm1lbnVDb250YWN0VXMiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0icXVpY2tFbWFpbEZvcm0iO21haWxRdWlja0VtYWlsLmFzc2lnblZhbHVlcygpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLApkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUXVpY2tFbWFpbC5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFF1aWNrRW1haWwuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxRdWlja0VtYWlsLnBob25lKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLG1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO2E9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csbWFpbFF1aWNrRW1haWwubWFrZSkucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZyxtYWlsUXVpY2tFbWFpbC5tb2RlbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxtYWlsUXVpY2tFbWFpbC55ZWFyKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxtYWlsUXVpY2tFbWFpbC5zdG9ja051bWJlcik7YT1hLnJlcGxhY2UoL3tcJERFUEFSVE1FTlQyfS9nLG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpO2E9YS5yZXBsYWNlKC9DaXR5Oi9nLCIiKTsidW5kZWZpbmVkIiE9CnR5cGVvZiBtYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCYmbnVsbCE9bWFpbFF1aWNrRW1haWwucm9hZFRlc3QmJihhPWEucmVwbGFjZSgve1wkRU1BSUxST0FEVEVTVH0vZyxtYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCkucmVwbGFjZSgve1wkRU1BSUxDQVJEfS9nLG1haWxRdWlja0VtYWlsLmdpZnRDYXJkKSk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsUXVpY2tFbWFpbC5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsUXVpY2tFbWFpbC5uYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFF1aWNrRW1haWwucGhvbmU7ZT1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlO2VtYWlsSGFuZGxlci50cmltPSQoIiNleHByZXNzY2FydHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2V4cHJlc3NjYXJ2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2V4cHJlc3NjYXJwcmljZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNleHByZXNzY2FybWFrZSIpLnZhbCgpOwplbWFpbEhhbmRsZXIubW9kZWw9JCgiI2V4cHJlc3NjYXJtb2RlbCIpLnZhbCgpO2VtYWlsSGFuZGxlci55ZWFyPSQoIiNleHByZXNzY2FyeWVhciIpLnZhbCgpO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1tYWlsUXVpY2tFbWFpbC5zdG9ja051bWJlcjsidW5kZWZpbmVkIj09dHlwZW9mICQoIiNleHByZXNzY2FyaWQiKS5hdHRyKCJpZCIpP2VtYWlsSGFuZGxlci5jYXJpZD0iIjplbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2V4cHJlc3NjYXJpZCIpLnZhbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIkRlbWFuZGVzLUV4cHJlc3MiKTskKCJpbnB1dC5pc2V4cHJlc3MiKS52YWwoIjEiKTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaEVuZ2luZSYmKCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwubWFrZSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLnllYXIpKTsKInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc2NhcmlkIikuYXR0cigiaWQiKT8wPCQoIiNleHByZXNzY2FyaWQiKS52YWwoKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0wPG1haWxRdWlja0VtYWlsLm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVbmtub3duIjsiIiE9PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQmJihlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KTtkPW1haWxRdWlja0VtYWlsLmdldFNlbmRUbygpO2Y9bWFpbFF1aWNrRW1haWwuZ2V0U2VuZFRvQWRmKCk7YnJlYWs7Y2FzZSAiUmViYXRlQ291cG9uUHJvbW8iOm1haWxRdWlja0VtYWlsLmFzc2lnblZhbHVlcygpO2U9bWFpbFF1aWNrRW1haWwubWVzc2FnZTthPWEucmVwbGFjZSgve1wkTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUXVpY2tFbWFpbC5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csCm1haWxRdWlja0VtYWlsLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZyxtYWlsUXVpY2tFbWFpbC5waG9uZSkucmVwbGFjZSgve1wkTUVTU0FHRX0vZyxtYWlsUXVpY2tFbWFpbC5tZXNzYWdlKTthPWEucmVwbGFjZSgve1wkQ09VUE9OTUFLRX0vZywkKCIjY291cG9ubWFrZSIpLnZhbCgpKS5yZXBsYWNlKC97XCRDT1VQT05NT0RFTH0vZywkKCIjY291cG9ubW9kZWwiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTllFQVJ9L2csJCgiI2NvdXBvbnllYXIiKS52YWwoKSkucmVwbGFjZSgve1wkQ09VUE9OU1RPQ0tOVU1CRVJ9L2csJCgiI2NvdXBvbnN0b2NrbnVtYmVyIikudmFsKCkpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05WQUxVRX0vZywkKCIjY291cG9uVmFsdWUiKS52YWwoKSsiJCIpLnJlcGxhY2UoL3tcJFBSSUNFfS9nLCQoIiN2ZWhpY2xlT3JpZ1ByaWNlIikudmFsKCkrIiQiKTtlbWFpbEhhbmRsZXIubWFrZT0kKCIjY291cG9ubWFrZSIpLnZhbCgpOwplbWFpbEhhbmRsZXIubW9kZWw9JCgiI2NvdXBvbm1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2NvdXBvbnllYXIiKS52YWwoKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxRdWlja0VtYWlsLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxRdWlja0VtYWlsLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUXVpY2tFbWFpbC5waG9uZTtlbWFpbEhhbmRsZXIudHJpbT0kKCIjY291cG9udmVoaWNsZXRyaW0iKS52YWwoKTtlbWFpbEhhbmRsZXIudmluPSQoIiNjb3Vwb252ZWhpY2xldmluIikudmFsKCk7ZW1haWxIYW5kbGVyLnByaWNlPSQoIiN2ZWhpY2xlT3JpZ1ByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPSQoIiNjb3Vwb25zdG9ja251bWJlciIpLnZhbCgpO2VtYWlsSGFuZGxlci5jYXJpZD0kKCIjY291cG9udmVoaWNsZWlkIikudmFsKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiUmViYXRlQ291cG9uUHJvbW8iKTsKInVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hFbmdpbmUmJigkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCQoIiNjb3Vwb25tYWtlIikudmFsKCkpLCQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoJCgiI2NvdXBvbm1vZGVsIikudmFsKCkpLCQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgkKCIjY291cG9ueWVhciIpLnZhbCgpKSk7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI7Yi5lbWFpbFNlbnQ9ZnVuY3Rpb24oaCl7JCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnRyaWdnZXIoImNsaWNrIil9O2JyZWFrO2Nhc2UgIkNhcnByb29mTWFpbCI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJjYXJwcm9vZk1haW5EaXYiO2s9JCgiI2VtYWlsU3ViamVjdERlZjIiKS50ZXh0KCk7YT0kKCIjZW1haWxCb2R5RGVmMiIpLmh0bWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJEZW1hbmRlcy1DYXJQcm9vZiIpOyQoImlucHV0LmlzZXhwcmVzcyIpLnZhbCgiMCIpOyQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLm1ha2UpOwokKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKGNhcnByb29mSGFuZGxlci5tb2RlbCk7JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKGNhcnByb29mSGFuZGxlci55ZWFyKTthPWEucmVwbGFjZSgve1wkTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChjYXJwcm9vZkhhbmRsZXIubmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLGNhcnByb29mSGFuZGxlci5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxjYXJwcm9vZkhhbmRsZXIubWFrZSkucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZyxjYXJwcm9vZkhhbmRsZXIubW9kZWwpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxjYXJwcm9vZkhhbmRsZXIueWVhcik7YT1hLnJlcGxhY2UoL3tcJENPTE9SfS9nLGNhcnByb29mSGFuZGxlci5jb2xvcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csY2FycHJvb2ZIYW5kbGVyLnN0b2NrTnVtYmVyKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLApjYXJwcm9vZkhhbmRsZXIucGhvbmUpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9Y2FycHJvb2ZIYW5kbGVyLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWNhcnByb29mSGFuZGxlci5uYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9Y2FycHJvb2ZIYW5kbGVyLnBob25lO2VtYWlsSGFuZGxlci5tYWtlPWNhcnByb29mSGFuZGxlci5tYWtlO2VtYWlsSGFuZGxlci5tb2RlbD1jYXJwcm9vZkhhbmRsZXIubW9kZWw7ZW1haWxIYW5kbGVyLnllYXI9Y2FycHJvb2ZIYW5kbGVyLnllYXI7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2NhcnByb29mY2FydHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2NhcnByb29mY2FydmluIikudmFsKCk7ZW1haWxIYW5kbGVyLnByaWNlPSQoIiNjYXJwcm9vZmNhcnByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPWNhcnByb29mSGFuZGxlci5zdG9ja051bWJlcjtlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NhcnByb29mY2FyaWQiKS52YWwoKTsKZD1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvLmxlbmd0aCYmIiIhPWNhcnByb29mSGFuZGxlci5zZW5kVG8\/Y2FycHJvb2ZIYW5kbGVyLnNlbmRUbzokKCIjdGV4dFNlbmRUb0VtYWlsIikubGVuZ3RoPyQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKToiIjtmPWNhcnByb29mSGFuZGxlci5zZW5kVG9BZGYubGVuZ3RoJiYiIiE9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZj9jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmOiQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpOiIiO2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lPWNhcnByb29mSGFuZGxlci5kZWFsZXJOYW1lO2JyZWFrO2Nhc2UgIkN1c3RvbWVyUmF0aW5nIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9IkN1c3RvbWVyUmF0aW5nIjttYWlsUmF0aW5nLmFzc2lnblZhbHVlcygpO2E9YS5yZXBsYWNlKC97XCRSQVRJTkdNRVNTQUdFfS9nLG1haWxSYXRpbmcubWVzc2FnZSkucmVwbGFjZSgve1wkTE5BTUV9L2csCmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxSYXRpbmcudXNlckxhc3ROYW1lKSkucmVwbGFjZSgve1wkRk5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFJhdGluZy51c2VyRmlyc3ROYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFJhdGluZy51c2VyRW1haWwpLnJlcGxhY2UoL3tcJFBIT05FfS9nLG1haWxSYXRpbmcudXNlclBob25lKS5yZXBsYWNlKC97XCRSQVRJTkdTVEFSU30vZyxtYWlsUmF0aW5nLnJhdGluZykucmVwbGFjZSgve1wkQ0xJRU5UTkFNRX0vZyxtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUrIiAiK21haWxSYXRpbmcudXNlckxhc3ROYW1lKTtrPWsucmVwbGFjZSgve1wkQ0xJRU5UTkFNRX0vZyxtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUrIiAiK21haWxSYXRpbmcudXNlckxhc3ROYW1lKTtlbWFpbEhhbmRsZXIudmluPSIiO2VtYWlsSGFuZGxlci5wcmljZT0wO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj0KIiI7ZW1haWxIYW5kbGVyLmNhcmlkPSIiO2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxSYXRpbmcudXNlckZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPW1haWxSYXRpbmcudXNlckxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFJhdGluZy51c2VyUGhvbmU7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsUmF0aW5nLnVzZXJFbWFpbDtkPW1haWxSYXRpbmcuc2VuZFRvO2Y9IiAgIjticmVhaztjYXNlICJoZWFkZXJTZXJ2aWNlIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9Im1lbnVTZXJ2aWNlIjtzZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLnNldEVtYWlsU2VudENhbGxiYWNrKCk7YT1zZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLnNldEVtYWlsSGFuZGxlclZhbHVlc0FuZEJvZHkoYSk7ZD1zZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLmdldFNlbmRUbygpO2srPSIgRXhwcmVzcyI7CmJyZWFrO2Nhc2UgIm1lbnVTZXJ2aWNlIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9Im1lbnVTZXJ2aWNlIjtzZXJ2aWNlRm9ybV9tZW51U2VydmljZS5zZXRFbWFpbFNlbnRDYWxsYmFjaygpO2E9c2VydmljZUZvcm1fbWVudVNlcnZpY2Uuc2V0RW1haWxIYW5kbGVyVmFsdWVzQW5kQm9keShhKTtkPXNlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLmdldFNlbmRUbygpO2srPSIgRXhwcmVzcyI7YnJlYWs7ZGVmYXVsdDoiIj09ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdGV4dFNlbmRUb0VtYWlsIikuYXR0cigiaWQiKSYmKGQ9JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpKTsiIj09ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdGV4dFNlbmRUb0VtYWlsQURGIikuYXR0cigiaWQiKSYmMzwkKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCkubGVuZ3RoJiYoZj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCkpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFZlaGljbGVXaWRnZXQmJgoobWFpbFZlaGljbGVXaWRnZXQuYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxtYWlsVmVoaWNsZVdpZGdldC5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLG1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQueWVhcikucmVwbGFjZSgve1wkQ09MT1J9L2csbWFpbFZlaGljbGVXaWRnZXQuY29sb3IpLnJlcGxhY2UoL3tcJEVNQUlMU1RPQ0tOVU1CRVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnN0b2NrTnVtYmVyKS5yZXBsYWNlKC97XCRGUk9NWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5mcm9tWWVhcikucmVwbGFjZSgve1wkVE9ZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnRvWWVhcikucmVwbGFjZSgve1wkSU5URU5USU9OfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmludGVudGlvbikucmVwbGFjZSgve1wkUExBVEVTfS9nLAptYWlsVmVoaWNsZVdpZGdldC5wbGF0ZXMpLnJlcGxhY2UoL3tcJFZJTn0vZyxtYWlsVmVoaWNsZVdpZGdldC52aW4pLG1haWxWZWhpY2xlV2lkZ2V0Lm9kb21vdGVyJiYoYT1hLnJlcGxhY2UoL3tcJEtNfS9nLGMobWFpbFZlaGljbGVXaWRnZXQub2RvbW90ZXIpKSksJCgiaW5wdXQuYnJhbmRlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS5sZW5ndGgmJiQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldC55ZWFyKSxlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldC55ZWFyLAplbWFpbEhhbmRsZXIudHJpbT0kKCIjY2FydHJpbSIpLnZhbCgpLGVtYWlsSGFuZGxlci52aW49bWFpbFZlaGljbGVXaWRnZXQudmluLGVtYWlsSGFuZGxlci5wcmljZT0kKCIjY2FycHJpY2UiKS52YWwoKSxlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9bWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIsZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjYXJpZCIpLnZhbCgpLDA8JCgiI2NhcmlkIikudmFsKCkubGVuZ3RofHxlbWFpbEhhbmRsZXIueWVhcjwobmV3IERhdGUpLmdldEZ1bGxZZWFyKCk\/ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0wPG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIik7YT1hLnJlcGxhY2UoL3tcJFBMQVRFU30vZywiIik7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVmVoaWNsZVdpZGdldEV4JiYkKCIjdmVoaWNsZVNlbGVjdEZvcm1FeCIpLmxlbmd0aCYmKG1haWxWZWhpY2xlV2lkZ2V0RXguYXNzaWduVmFsdWVzKCksCmE9YS5yZXBsYWNlKC97XCRNQUtFRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlKS5yZXBsYWNlKC97XCRNT0RFTEVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwpLnJlcGxhY2UoL3tcJFlFQVJFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnllYXIpLnJlcGxhY2UoL3tcJENPTE9SRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5jb2xvcikucmVwbGFjZSgve1wkVFJJTUVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSkucmVwbGFjZSgve1wkVFJBTlNNSVNTSU9OfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudHJhbnNtaXNzaW9uKS5yZXBsYWNlKC97XCRLTX0vZyxjKG1haWxWZWhpY2xlV2lkZ2V0RXgub2RvbW90ZXIpKS5yZXBsYWNlKC97XCRWSU5FWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnZpbikucmVwbGFjZSgve1wkRFJJVkVUUkFJTn0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmRyaXZldHJhaW4pLnJlcGxhY2UoL3tcJEdBU30vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmZ1ZWwpLAokKCJpbnB1dC5icmFuZGVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGgmJiQoImlucHV0LmJyYW5kZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwubGVuZ3RoJiYkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLmxlbmd0aCYmMDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoJiYkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyKSxlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwsZW1haWxIYW5kbGVyLnllYXI9bWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyLGVtYWlsSGFuZGxlci50cmltPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSwKInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXIuaXNUcmFkZUluQmFyfHwiUHJpY2VWZWhpY2xlIiE9Yi5tYWlsSUQmJiJQcmljZVZlaGljbGVOZXciIT1iLm1haWxJRCYmIkVzdGhldGljUmVxdWVzdCIhPWIubWFpbElEfHwoZW1haWxIYW5kbGVyLm1ha2U9bWFpbFZlaGljbGVXaWRnZXQubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXQubW9kZWwsZW1haWxIYW5kbGVyLnllYXI9bWFpbFZlaGljbGVXaWRnZXQueWVhcixlbWFpbEhhbmRsZXIudHJpbT1tYWlsVmVoaWNsZVdpZGdldC50cmltLCJQcmljZVZlaGljbGUiIT1iLm1haWxJRCYmIlByaWNlVmVoaWNsZU5ldyIhPWIubWFpbElEKXx8KGVtYWlsSGFuZGxlci5jYXIyX21ha2U9bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLGVtYWlsSGFuZGxlci5jYXIyX21vZGVsPW1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwsZW1haWxIYW5kbGVyLmNhcjJfdHJpbT1tYWlsVmVoaWNsZVdpZGdldEV4LnRyaW0sCmVtYWlsSGFuZGxlci5jYXIyX3llYXI9bWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyLGVtYWlsSGFuZGxlci5jYXIyX2NvbG9yPW1haWxWZWhpY2xlV2lkZ2V0RXguY29sb3IsZW1haWxIYW5kbGVyLmNhcjJfb2RvbWV0ZXI9YyhtYWlsVmVoaWNsZVdpZGdldEV4Lm9kb21vdGVyKSxlbWFpbEhhbmRsZXIuY2FyMl92aW49bWFpbFZlaGljbGVXaWRnZXRFeC52aW4sZW1haWxIYW5kbGVyLmNhcjJfdHJhbnNtaXNzb249bWFpbFZlaGljbGVXaWRnZXRFeC50cmFuc21pc3Npb24sZW1haWxIYW5kbGVyLmNhcjJfZHJpdmV0cmFpbj1tYWlsVmVoaWNsZVdpZGdldEV4LmRyaXZldHJhaW4sZW1haWxIYW5kbGVyLmNhcjJfZnVlbHR5cGU9bWFpbFZlaGljbGVXaWRnZXRFeC5mdWVsLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOTE9XfS9nLCJOL0EiKSxhPWEucmVwbGFjZSgve1wkVFJBREVJTkhJR0h9L2csIk4vQSIpLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOQVZHfS9nLCJOL0EiKSksZW1haWxIYW5kbGVyLnZpbj0KIiIsZW1haWxIYW5kbGVyLnByaWNlPTAsZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPSIiLGVtYWlsSGFuZGxlci5jYXJpZD0iIiwwPCQoIiNjYXJpZCIpLnZhbCgpLmxlbmd0aD9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aD8iTmV3IjoiVW5rbm93biIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3NlcnZpY2VQYWNrYWdlcyIpLnByb3AoImlkIikpe3ZhciBuPSExLHI9IiI7JCgiaW5wdXQuc2VsZWN0ZWRTZXJ2aWNlIikuZWFjaChmdW5jdGlvbihoLHApe2g9JChwKTtoLmlzKCI6Y2hlY2tlZCIpJiYocis9Ijxicj4iK2gudmFsKCksbj0hMCl9KTtuJiYocj0iPGJyPjxicj48dT4iKyQoIiNzZWxlY3RlZFNlcnZpY2VzVGl0bGUiKS52YWwoKSsiPC91PiIrcik7YT1hLnJlcGxhY2UoL3tcJFNFTEVDVEVEU0VSVklDRVN9L2cscil9InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckluZm8mJgoobWFpbFVzZXJJbmZvLmFzc2lnblZhbHVlcygpLGE9YS5yZXBsYWNlKC97XCRGTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsVXNlckluZm8uZmlyc3ROYW1lKSkucmVwbGFjZSgve1wkTE5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFVzZXJJbmZvLmxhc3ROYW1lKSkucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZyxtYWlsVXNlckluZm8ucGhvbmUpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLG1haWxVc2VySW5mby5lbWFpbCkpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbEpvYk9mZmVyJiYobWFpbEpvYk9mZmVyLmFzc2lnblZhbHVlcygpLGQ9JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpLGY9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpLGE9YS5yZXBsYWNlKC97XCRKT0JQT1NUfS9nLG0oZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbEpvYk9mZmVyLmpvYlBvc2l0b24pKSkucmVwbGFjZSgve1wkSk9CREVQQVJUTUVOVH0vZywKbShkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsSm9iT2ZmZXIuam9iRGVwYXJ0bWVudCkpKS5yZXBsYWNlKC97XCRKT0JNU0d9L2csbShtYWlsSm9iT2ZmZXIuam9iTWVzc2FnZSkpKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VyQWRkcmVzcyl7bWFpbFVzZXJBZGRyZXNzLmFzc2lnblZhbHVlcygpO3ZhciBxPXRyaW0obWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NBcHArIiAiK21haWxVc2VyQWRkcmVzcy5hZGRyZXNzTnVtYmVyKyIgIittYWlsVXNlckFkZHJlc3MuYWRkcmVzc1N0cmVldCk7YT1hLnJlcGxhY2UoL3tcJENVUlJFTlRBRERSRVNTfS9nLG0ocSkpLnJlcGxhY2UoL3tcJENVUlJFTlRDSVRZfS9nLG0obWFpbFVzZXJBZGRyZXNzLmNpdHkpKS5yZXBsYWNlKC97XCRDVVJSRU5UUFJPVklOQ0V9L2csbShtYWlsVXNlckFkZHJlc3MucHJvdmluY2UpKS5yZXBsYWNlKC97XCRDVVJSRU5UUE9TVEFMQ09ERX0vZyxtKG1haWxVc2VyQWRkcmVzcy5wb3N0YWxDb2RlKSl9InVuZGVmaW5lZCIhPQp0eXBlb2YgbWFpbFNjaGVkdWxlJiYobWFpbFNjaGVkdWxlLmFzc2lnblZhbHVlcygpLGE9YS5yZXBsYWNlKC97XCREQVRFMX0vZyxtYWlsU2NoZWR1bGUuZmlyc3RDaG9pY2UpLnJlcGxhY2UoL3tcJERBVEUyfS9nLG1haWxTY2hlZHVsZS5zZWNvbmRDaG9pY2UpLnJlcGxhY2UoL3tcJFdBSVRJTkdPTlNJVEV9L2csbWFpbFNjaGVkdWxlLndhaXRpbmdPblNpdGUpLnJlcGxhY2UoL3tcJFRSQU5TUE9SVE9QVElPTn0vZyxtYWlsU2NoZWR1bGUuZ2V0VHJhbnNwb3J0T3B0aW9uVGV4dCgpKSxlbWFpbEhhbmRsZXIuc2VydmljZURhdGUxPW1haWxTY2hlZHVsZS5maXJzdENob2ljZSxlbWFpbEhhbmRsZXIuc2VydmljZURhdGUyPW1haWxTY2hlZHVsZS5zZWNvbmRDaG9pY2UsZW1haWxIYW5kbGVyLndhaXRpbmdPblNpdGU9bWFpbFNjaGVkdWxlLndhaXRpbmdPblNpdGUsZW1haWxIYW5kbGVyLnRyYW5zcG9ydE9wdGlvbj1tYWlsU2NoZWR1bGUudHJhbnNwb3J0T3B0aW9uKTt2YXIgdD1xPSIiLAp1PSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2ZpbmFuY2VPcHRpb25EaXYiKS5hdHRyKCJpZCIpJiYoImNoZWNrZWQiPT0kKCIjZmluYW5jZU9wdGlvbkRpdiBpbnB1dCIpLmF0dHIoImNoZWNrZWQiKT9xPSQoIiN0ZXh0Q2FzaCIpLnZhbCgpOihxPSJjaGVja2VkIj09JCgiI2ZpbmFuY2VPcHRpb25EaXYyIGlucHV0IikuYXR0cigiY2hlY2tlZCIpPyQoIiN0ZXh0RmluYW5jZSIpLnZhbCgpOiQoIiN0ZXh0TGVhc2UiKS52YWwoKSx1PSQoIiNmaW5hbmNlVGVybVNlbGVjdCIpLnZhbCgpKSwidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN2ZWhpY2xlT2ZmZXIiKS5hdHRyKCJpZCIpJiYodD0iJCIrYygkKCIjdmVoaWNsZU9mZmVyIikudmFsKCkpKSxhPWEucmVwbGFjZSgve1wkUEFZTUVOVH0vZyxxKS5yZXBsYWNlKC97XCRQQVlNRU5UVEVSTX0vZyx1KS5yZXBsYWNlKC97XCRPRkZFUn0vZyx0KSk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcXVlc3Rpb25zQ29tbWVudHMiKS5hdHRyKCJpZCIpJiYKKGU9bSgkKCIjcXVlc3Rpb25zQ29tbWVudHMiKS52YWwoKSksYT1hLnJlcGxhY2UoL3tcJFFVRVNUSU9OU30vZyxlKSxlbWFpbEhhbmRsZXIuY29tbWVudHM9ZSk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcmVxdWVzdFR5cGUiKS5hdHRyKCJpZCIpJiYoYT1hLnJlcGxhY2UoL3tcJERFTUFOREV9L2csJCgiI3JlcXVlc3RUeXBlIikudmFsKCkpKX0kKCIjdGVzdERyaXZlVHlwZSIpLmxlbmd0aCYmKGE9YS5yZXBsYWNlKC97XCRURVNURFJJVkVUWVBFfS9nLCQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCkpLGE9IlZpcnR1YWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpfHwiVmlydHVlbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCk\/YS5yZXBsYWNlKC97XCRURVNURFJJVkVWSVJUVUFMfS9nLCQoIiNwcmVmZXJlZFZpcnR1YWxUb29sIikudmFsKCkpOmEucmVwbGFjZSgve1wkVEVTVERSSVZFVklSVFVBTH0vZywiTi9BIikpOyQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGg\/CmVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5maW5kKCI6c2VsZWN0ZWQiKS5odG1sKCk6IjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmJCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGgmJihlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmZpbmQoIjpzZWxlY3RlZCIpLmh0bWwoKSk7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWUmJihhPWEucmVwbGFjZSgieyRERUFMRVJOQU1FfSIsZW1haWxIYW5kbGVyLmRlYWxlck5hbWUpKTthPWEucmVwbGFjZSgve1wkKERBVEVbMTJdKX0vZyxmdW5jdGlvbihoLHApe2g9JCgnaW5wdXRbbmFtZT0iJytwLnRvTG93ZXJDYXNlKCkrJyJdJyxnKTtyZXR1cm4gMDxoLmxlbmd0aD8obmV3IERhdGUoaC52YWwoKSkpLmRhdGVGb3JtYXQoIlktbS1kIEg6aSIpOiIifSk7Yz0iIjswPCQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLmxlbmd0aCYmKGM9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrCiIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCkpO2E9YS5yZXBsYWNlKCJ7JExBU1RWRUhJQ0xFVklFV0VEfSIsYyk7YT1hLnJlcGxhY2UoUmVnRXhwKCJ7XFwkKFFVRVNUSU9OU3xNRVNTQUdFfFJBVElOR01FU1NBR0V8RU1BSUxQSE9ORXxFTUFJTE1BS0V8RU1BSUxNT0RFTHxFTUFJTFlFQVJ8UEFZTUVOVHxQQVlNRU5UVEVSTXxPRkZFUnxTVE9DS05VTUJFUnxDT0xPUnxGTkFNRXxMTkFNRXxFTUFJTHxLTXxWSU5FWHxTRUxFQ1RFRFNFUlZJQ0VTfEVNQUlMQ0lUWXxQTEFURVN8REFURTF8REFURTJ8VFJBTlNQT1JUT1BUSU9OKX0iLCJnIiksIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTEJVSUxEQU5EUFJJQ0V9L2csYi5iYW5kcExpbmsoKSk7IiI9PWQmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbCIpLmF0dHIoImlkIikmJgooZD1sJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS5hdHRyKCJpZCIpJiYwPCQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKS5sZW5ndGg\/JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpOiQoIiNleHByZXNzU2VuZFRvRW1haWwiKS52YWwoKSk7aWYoIiI9PWYmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERiIpLmF0dHIoImlkIikpaWYobCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikuYXR0cigiaWQiKSYmMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikudmFsKCkubGVuZ3RoKWY9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIpLnZhbCgpO2Vsc2UgaWYoInNlcnZpY2UiPT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpfHxiJiYoIm1lbnVTZXJ2aWNlIj09Yi5tYWlsSUR8fCJoZWFkZXJTZXJ2aWNlIj09CmIubWFpbElEKSlmPSQoIiNleHByZXNzU2VuZFRvRW1haWxBREZTRVJWSUNFIikudmFsKCk7IiI9PWQmJiQoIiNleHByZXNzSW5EZW1vIikubGVuZ3RoJiYiMSI9PSQoIiNleHByZXNzSW5EZW1vIikudmFsKCkmJihlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJOZXciLDA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpLmxlbmd0aCYmKGQ9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpKSk7IlF1aWNrRW1haWwiPT1iLm1haWxJRCYmInVuZGVmaW5lZCIhPT10eXBlb2YgZSYmMDxlLmxlbmd0aCYmMDwkKCIjc2VydmljZUVtYWlsIikubGVuZ3RoJiYwPCQoIiNzZXJ2aWNlQWRmRW1haWwiKS5sZW5ndGgmJih0ZXJtcz0icmFwcGVsO3NlcnZpY2U7aHVpbGU7cGllY2VzO3Bp77+9Y2VzO3BuZXVzO3RyYW5zbWlzc2lvbjthY2Nlc3NvaXJlczthbHRlcm5hdGV1cjthbnRpcm91aWxsZTthbnRpLXJvdWlsbGU7YmF0dGVyaWU7YmF0ZXJpZTty77+9cGFyYXRpb247cGVpbnR1cmU7ZnJlaW5zO2Rpc3F1ZXM7Y2Fycm9zc2VyaWU7Y2F0YWx5c2V1cjtjaG9jO2RlbWFycmV1cjvvv71jaGFwcGVtZW50O21vdGV1cjtlc3N1aWUtZ2xhY2U7ZXNzdWktZ2xhY2U7IGZldXg7Y2xpZ25vdGFudDtrbGF4b247ZmlsdHJlO2hvcmxvZ2U7cmFkaW87dG9pdC1vdXZyYW50OyBtYWc7IG1hZ3M7be+\/vWNhbmlxdWU7bXVmZmxlcjtuYXZpZ2F0aW9uO29yZGluYXRldXI7IHBoYXJlcztsdW1p77+9cmVzO2x1bWllcmU7cHJvYmzvv71tZTtwcm9ibGVtZTtyZWNhbGw7cGFydHM7dGlyZTthY2Nlc3NvcmllczthbHRlcm5hdG9yO3J1c3Rwcm9vZmluZztiYXR0ZXJ5O3JlcGFpcjtwYWludDticmFrZTtkaXNrczsgYm9keTtzdGFydGVyO2V4aGF1c3Q7ZW5naW5lO3dpcGVyO3dpcGVyczsgZmxhc2g7IGxpZ2h0O2ZsYXNoZXI7Zmxhc2hlcnM7IGhvcm47ZmlsdGVyO2Nsb2NrO3Jvb2Y7bWVjYW5pYztjb21wdXRlcjtlY3U7cHJvYmxlbSIuc3BsaXQoIjsiKSwKbWF0Y2hlZFRlcm1zPVtdLCQuZWFjaCh0ZXJtcyxmdW5jdGlvbihoLHApe2lmKC0xPGUuaW5kZXhPZihwKSlyZXR1cm4gZD0kKCIjc2VydmljZUVtYWlsIikudmFsKCksZj0kKCIjc2VydmljZUFkZkVtYWlsIikudmFsKCksITF9KSk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9aztlbWFpbEhhbmRsZXIuYm9keT1hO2VtYWlsSGFuZGxlci5zZW5kVG89ZDtlbWFpbEhhbmRsZXIuc2VuZEZyb209IiI7ZW1haWxIYW5kbGVyLm1haWxJRD1iLm1haWxJRDtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9Yi5lbWFpbFNlbnQ7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckluZm8mJiJtZW51Q29udGFjdFVzIiE9ZW1haWxIYW5kbGVyLm1haWxJRCYmIm1lbnVTZXJ2aWNlIiE9ZW1haWxIYW5kbGVyLm1haWxJRCYmKGVtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFVzZXJJbmZvLmVtYWlsLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxVc2VySW5mby5maXJzdE5hbWUsZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT0KbWFpbFVzZXJJbmZvLmxhc3ROYW1lLGVtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFVzZXJJbmZvLnBob25lKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxKb2JPZmZlciYmKGVtYWlsSGFuZGxlci51c2VyQXR0YWNobWVudFBhdGg9bWFpbEpvYk9mZmVyLmpvYkZpbGUpO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZjstMSE9ZW1haWxIYW5kbGVyLmJvZHkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ0ZXN0QGQyY21lZGlhLmNhIikmJiQoImlucHV0LnRlc3Rtb2RlIikudmFsKCIxIik7JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aD9lbWFpbEhhbmRsZXIuc2VuZFRvPSQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS52YWwoKToiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYkKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5zZW5kVG89JCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS52YWwoKSl9O2IuX3ZhbGlkYXRlRmllbGRzPQpmdW5jdGlvbihjKXt2YXIgZz0hMSxrPSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoKSxhPXRoaXMuanFTY29wZTtpZigiI3F1aWNrRW1haWxGb3JtIj09YSlyZXR1cm4hMDskLnZhbGlkaXR5LnN0YXJ0KCk7dmFyIGU9Ii5Jbm5lckJveExheWVyIjswPCQoIi5tYWluX2xlZnRfYm94IikubGVuZ3RoJiYoZT0iLm1haW5fbGVmdF9ib3giKTthPWIuanFTY29wZT9iLmpxU2NvcGU6ZTsxPiQoYSkubGVuZ3RoJiYoYT0iI25ld2RldGFpbHMiKTsxPiQoYSkubGVuZ3RoJiYoYT0iLm5ldy1kZXRhaWxzIik7MT4kKGEpLmxlbmd0aCYmKGE9ImJvZHkiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoYyk7Yz0kKGEpLmZpbmQoIi5yZXF1aXJlZCwudmFsaWRhdGUiKTskKGEpLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7Yy5maWx0ZXIoIi5yZXF1aXJlZCIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnJlcXVpcmUoKS5ub25IdG1sKCl9KTsKYy5maWx0ZXIoIi5yZXF1aXJlZC1waG9uZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnJlcXVpcmUoKS52YWxpZGF0ZVBob25lKCl9KTtjLmZpbHRlcigiLnBob25lOm5vdCgucmVxdWlyZWQtcGhvbmUpIikuZWFjaCgobCxuKT0+eyQobikudmFsaWRhdGVQaG9uZSgpfSk7ZT0kKCIjcGhvbmUxLCNwaG9uZTIsI3Bob25lMyIsYSkuZmlsdGVyKCI6dmlzaWJsZSIpO2lmKDA8ZS5sZW5ndGgpe3ZhciBkLGY7bGV0IGwsbjswPChlWzBdLnZhbHVlKyhudWxsIT0obD1udWxsPT0oZD1lWzFdKT92b2lkIDA6ZC52YWx1ZSk\/bDoiIikrKG51bGwhPShuPW51bGw9PShmPWVbMl0pP3ZvaWQgMDpmLnZhbHVlKT9uOiIiKSkubGVuZ3RoJiYkKGUpLnZhbGlkYXRlUGhvbmUoKX1jLmZpbHRlcigiLnppcCIpLmVhY2goZnVuY3Rpb24oKXsoJCh0aGlzKS5pcygiLnJlcXVpcmVkIil8fDAhPSQodGhpcykudmFsKCkubGVuZ3RoKSYmJCh0aGlzKS5yZXF1aXJlUG9zdGFsQ29kZSgpfSk7MT09JCgiLnZpbiIpLmxlbmd0aCYmCigkKCIudmluIikuaXMoIi5yZXF1aXJlZCIpJiYkKCIudmluIikucmVxdWlyZSgpLm5vbkh0bWwoKSwwPCQoIi52aW4iKS52YWwoKS5sZW5ndGgmJiQoIi52aW4iKS5taW5MZW5ndGgoMTcpKTsxPT0kKCIudmluRXgiKS5sZW5ndGgmJigkKCIudmluRXgiKS5pcygiLnJlcXVpcmVkIikmJiQoIi52aW5FeCIpLnJlcXVpcmUoKS5ub25IdG1sKCksMDwkKCIudmluRXgiKS52YWwoKS5sZW5ndGgmJiQoIi52aW5FeCIpLm1pbkxlbmd0aCgxNykpO2MuZmlsdGVyKCIuZW1haWwiKS5lYWNoKGZ1bmN0aW9uKCl7KCQodGhpcykuaXMoIi5yZXF1aXJlZCIpfHwwIT0kKHRoaXMpLnZhbCgpLmxlbmd0aCkmJiQodGhpcykudmFsaWRFbWFpbEFkZHJlc3MoKX0pOyQoYSkuZmluZCgiLnZhbGlkYXRlLWdyb3VwIikuZWFjaChmdW5jdGlvbigpe3ZhciBsPSQodGhpcykudmFsKCk7JChsLGEpLnZhbGlkQWxsb3JOb25lKCl9KTtjLmZpbHRlcigiLnVwbG9hZCIpLmVhY2goZnVuY3Rpb24oKXshJCh0aGlzKS5pcygiLnJlcXVpcmVkIikmJgowPT0kKHRoaXMpLnZhbCgpLmxlbmd0aHx8IiIhPSQodGhpcykudmFsKCl8fCgkKCIjdXBsb2FkU3RhdHVzIikuY3NzKCJjb2xvciIsInJlZCIpLCQoIiN1cGxvYWRTdGF0dXMiKS5odG1sKCQoIiNmaWxlVXBsb2FkUmVxdWVzdCIpLnZhbCgpKSwkKCIjdXBsb2FkU3RhdHVzIikuc2hvdygpKX0pO2Q9JC52YWxpZGl0eS5yZXBvcnQuZXJyb3JzOyQoIiNlbWFpbCIpLm1hdGNoKCJlbWFpbCIpOyQudmFsaWRpdHkucmVwb3J0LmVycm9ycz5kJiYoZj0kKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS50ZXh0KCkrIi48YnIvPiIrJCgiI2VtYWlsRXJyb3JNc2ciLCIjdXNlckluZm9Gb3JtIikudmFsKCkrIi4iLDA9PWQmJihmPSQoIiNlbWFpbEVycm9yTXNnIiwiI3VzZXJJbmZvRm9ybSIpLnZhbCgpKSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5odG1sKGYpKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmImZ1bmN0aW9uIj09dHlwZW9mIG1haWxVc2VySW5mby5hZGRlZFZhbGlkYXRpb24mJgptYWlsVXNlckluZm8uYWRkZWRWYWxpZGF0aW9uKGEpOyQudmFsaWRpdHkuZW5kKCkudmFsaWQ\/Zz0hMDooJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuc2hvdygpLCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmNlbnRlcigpLCQoZG9jdW1lbnQpLm9uZSgibW91c2Vkb3duIixmdW5jdGlvbihsKXskLnZhbGlkaXR5LmNsZWFyKCk7JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaGlkZSgpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoayl9KSk7cmV0dXJuIGd9fTt2YXIgbWFpbFBhZ2U9bmV3IEdlbmVyaWNNYWlsOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpezA8JCgiI3RvcGlzbW9iaWxlIikubGVuZ3RoJiYxPCQoIiN0b3Bpc21vYmlsZSIpLnZhbCgpJiYobWFpbFBhZ2UuanFTY29wZT0iLm5ldy1kZXRhaWxzIik7JCgiI3NlbmRFbWFpbEZvcm0gYnV0dG9uIikub24oImNsaWNrIHRhcCIsbWFpbFBhZ2Uuc2F2ZSk7JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5vbigiY2xpY2sgdGFwIixtYWlsUGFnZS5zYXZlKTttYWlsUGFnZS5tYWlsSUQ9JCgiI3RleHRTYXZlTWFpbElEIikudmFsKCk7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToic3VtbWFyeSIsc2Nyb2xsVG86ITF9KTtqUXVlcnkuZm4uY2VudGVyPWZ1bmN0aW9uKCl7JCgiaXNtb2JpbGUiKSYmMDwkKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLmxlbmd0aD90aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OigkKHdpbmRvdykud2lkdGgoKS0kKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5vdXRlcldpZHRoKCkpLzIsCnRvcDokKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLnBvc2l0aW9uKCkudG9wLTEwfSk6dGhpcy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDooJCh3aW5kb3cpLndpZHRoKCktJCgiI2NvbnRhaW5lciIpLm91dGVyV2lkdGgoKSkvMix0b3A6KCQod2luZG93KS5oZWlnaHQoKS0kKCIjY29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSkvMn0pO3JldHVybiB0aGlzfTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxQYWdlLm1haWxJRCYmZW1haWxIYW5kbGVyLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtTG9hZGVkIixtYWlsUGFnZS5tYWlsSUQpfSk7Ci8qKiAvanMvdHJhZGVJbkJhci5qcyAqKi8KdmFyIF9fX2QyY190cmFkZUluQmFyanNfY19vbj0iMjAyNi0wMS0yNyAxMDozMDowOSI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIHRyYWRlSW5CYXJJbml0aWFsaXplKCl7Zm9yKHZhciBwPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKSxrPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJyksbD0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykscT0kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJyksZz0kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpLHU9e30sdz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7MTk5OTx3O3ctLSk7cC5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7cC5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTtrLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtrLmNzcygiYmFja2dyb3VuZCIsIiNmZmZmZmYiKX0pO2wub24oImZvY3VzIixmdW5jdGlvbigpe2wuY3NzKCJiYWNrZ3JvdW5kIiwiI2ZmZmZmZiIpfSk7cS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7cS5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTt2YXIgaD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIkVOR0xJU0giOiJGUkVOQ0giLEE9JzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJNb2RlbCI6Ik1vZCZlZ3JhdmU7bGUiKSsiPC9vcHRpb24+IixEPSc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09aD8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+IixGPSc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09aD8iWWVhciI6IkFubiZlYWN1dGU7ZSIpKyI8L29wdGlvbj4iOyQoZG9jdW1lbnQpLm9uKCJ0cmFkZUluQmFyLmNsb25lZCIsZnVuY3Rpb24oKXtwPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKTtrPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJyk7bD0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJyk7cT0kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJyk7Zz0kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpO3AudmFsKHAudmFsKCkpO3EudmFsKHEudmFsKCkpO2sudmFsKGsudmFsKCkpO2wudmFsKGwudmFsKCkpfSk7CnAub24oImNoYW5nZSIsZnVuY3Rpb24oKXtwLnZhbCgkKHRoaXMpLnZhbCgpKTtxLmVtcHR5KCk7ay5lbXB0eSgpO2wuZW1wdHkoKTsiIiE9dGhpcy52YWx1ZSYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhckRhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOnRoaXMudmFsdWV9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7dT1iO3EuYXBwZW5kKEYpO2Zvcih2YXIgZiBpbiBiKXEuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2YrJyI+JytmKyI8L29wdGlvbj4iKTtnJiZnLmZpcnN0KCkmJiIiIT1nLmZpcnN0KCkuYXR0cigidmluWWVhciIpJiYocS52YWwoZy5maXJzdCgpLmF0dHIoInZpblllYXIiKSkscS5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpKX19KX0pO3Eub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgYj0kKHRoaXMpLnZhbCgpLApmPXAudmFsKCk7cS52YWwoJCh0aGlzKS52YWwoKSk7ay5lbXB0eSgpO2wuZW1wdHkoKTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PWg\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJNb2RlbD93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zix5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7ay5hcHBlbmQoQSk7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBjPWFbZF0ubmFtZTtrLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJytjKyciPicrYysiPC9vcHRpb24+Iil9ZyYmZy5maXJzdCgpJiYiIiE9Zy5maXJzdCgpLmF0dHIoInZpbk1vZGVsIikmJihrLnZhbChnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiKSksay5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpKTtnLmZpcnN0KCkuYXR0cigidmluWWVhciIsCiIiKTtnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiLCIiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ01vZGVsP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTtrLmFwcGVuZChBKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGM9YVtkXS5uYW1lO2suYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2MrJyI+JytjKyI8L29wdGlvbj4iKX1nJiZnLmZpcnN0KCkmJiIiIT1nLmZpcnN0KCkuYXR0cigidmluTW9kZWwiKSYmKGsudmFsKGcuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIpKSxrLmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIikpO2cuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIiwKIiIpO2cuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIsIiIpfX0pO2Vsc2UgaWYoMDxPYmplY3Qua2V5cyh1KS5sZW5ndGgmJiIiIT10aGlzLnZhbHVlKXtrLmFwcGVuZChBKTtmPXt9O2Zvcih2YXIgZT0wO2U8dVtiXS5sZW5ndGg7ZSsrKSJ1bmRlZmluZWQiPT10eXBlb2YgZlt1W2JdW2VdLm1vZGVsXSYmKGsuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK3VbYl1bZV0ubW9kZWwrJyI+Jyt1W2JdW2VdLm1vZGVsKyI8L29wdGlvbj4iKSxmW3VbYl1bZV0ubW9kZWxdPXVbYl1bZV0ubW9kZWwpfX0pO2sub24oImNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGY9cC52YWwoKTtiPXEudmFsKCk7dmFyIGU9JCh0aGlzKS52YWwoKTtrLnZhbCgkKHRoaXMpLnZhbCgpKTtsLmVtcHR5KCk7aWYoMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSkkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVHJpbT93c3dpZHRoPTAiLApkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYsbW9kZWw6ZSx5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7bC5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGQ9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBtPWFbY10uc3R5bGUrIiAiK2FbY10uc2VyaWVzLHg9YVtjXS51dmM7ZCsrO2wuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt4KyciIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0xPT1kJiYkKCJvcHRpb246ZXEoMSkiLGwpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ1RyaW0\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLG1vZGVsOmUseWVhcjpifSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpO2wuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09aD8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBkPTAsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgbT1hW2NdLm5hbWUseD1hW2NdLmlkO2QrKztsLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicreCsnIiB2YWx1ZT0iJyttKyciPicrbSsiPC9vcHRpb24+Iil9MT09ZCYmJCgib3B0aW9uOmVxKDEpIixsKS5wcm9wKCJzZWxlY3RlZCIsITApfX0pO2Vsc2UgaWYoMDxPYmplY3Qua2V5cyh1KS5sZW5ndGgmJiIiIT10aGlzLnZhbHVlKXtsLmFwcGVuZChEKTtmb3IoZT1mPTA7ZTx1W2JdLmxlbmd0aDtlKyspdVtiXVtlXS5tb2RlbD09dGhpcy52YWx1ZSYmKGYrKyxsLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicrCnVbYl1bZV0uc3R5bGVpZCsnIiB2YWx1ZT0iJyt1W2JdW2VdLnRyaW0rJyI+Jyt1W2JdW2VdLnRyaW0rIjwvb3B0aW9uPiIpKTsxPT1mJiYkKCJvcHRpb246ZXEoMSkiLGwpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKX19KTtsLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7bC52YWwoJCh0aGlzKS52YWwoKSl9KTt2YXIgQj0hMTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKWcub24oImtleXVwIixmdW5jdGlvbigpe2cudmFsKCQodGhpcykudmFsKCkpOyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmIUImJihCPSEwLCQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3ZpbjokKHRoaXMpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LApzdWNjZXNzOmZ1bmN0aW9uKGIpe2ImJmIubW9kZWwmJmIubW9kZWxfeWVhcj8oZy5maXJzdCgpLmF0dHIoInZpbk1vZGVsIixiLm1vZGVsKSxnLmZpcnN0KCkuYXR0cigidmluWWVhciIsYi5tb2RlbF95ZWFyKSxwLnZhbChiLm1ha2UpLHAuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSxyZW1vdmVSZWRXYXJuaW5nTWVzc2FnZSgpLHN3aXRjaFRvVmVoaWNsZUFuZEZvY3VzVHJpbSgpKTphZGRSZWRXYXJuaW5nTWVzc2FnZSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iVW5yZWNvZ25pemVkIFZJTiI6Ik5JViBub24gcmVjb25udSIpfSxjb21wbGV0ZTpmdW5jdGlvbihiKXtCPSExfX0pKX0pO2Vsc2UgaWYoMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSlnLm9uKCJrZXl1cCIsZnVuY3Rpb24oKXtnLnZhbCgkKHRoaXMpLnZhbCgpKTskKHRoaXMpLnZhbCgpJiYxNzw9JCh0aGlzKS52YWwoKS5sZW5ndGgmJiFCJiYoQj0hMCwkLmFqYXgoe3R5cGU6IlBPU1QiLAp1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVmluP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3ZpbjokKHRoaXMpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7YiYmYi5tb2RlbCYmYi55ZWFyPyhnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiLGIubW9kZWwpLGcuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIixiLnllYXIpLHAudmFsKGIubWFrZSkscC5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpLHJlbW92ZVJlZFdhcm5pbmdNZXNzYWdlKCksc3dpdGNoVG9WZWhpY2xlQW5kRm9jdXNUcmltKCkpOmFkZFJlZFdhcm5pbmdNZXNzYWdlKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJVbnJlY29nbml6ZWQgVklOIjoiTklWIG5vbiByZWNvbm51Iil9LApjb21wbGV0ZTpmdW5jdGlvbihiKXtCPSExfX0pKX0pO3c9Z2V0VXJsVmFycygpO2Zvcih2YXIgRz1PYmplY3Qua2V5cyh3KSxIPUcubGVuZ3RoLEk9e307SC0tOyl7dmFyIEo9R1tIXTtJW0oudG9Mb3dlckNhc2UoKV09d1tKXX13PUk7dy50bWFrZSYmdy50bW9kZWwmJncudHllYXImJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsYXVuY2hUcmFkZUluUG9wdXAoImF1dG9tYXRpYyIpfSwxRTMpO3dbInRyYWRlLWZ1bGwiXSYmc2V0VGltZW91dChmdW5jdGlvbigpe2xhdW5jaFRyYWRlSW5Qb3B1cCgiYXV0b21hdGljIil9LDFFMyk7JCgiLnRyYWRlSW5CYXJfYnRuIikub24oImNsaWNrIixmdW5jdGlvbihiKXtiPSExOyIiPT1wLnZhbCgpJiYocC5jc3MoImJhY2tncm91bmQiLCIjRkY3RTc5IiksYj0hMCk7aWYoIiI9PWsudmFsKCl8fG51bGw9PWsudmFsKCkpay5jc3MoImJhY2tncm91bmQiLCIjRkY3RTc5IiksYj0hMDtpZigiIj09bC52YWwoKXx8bnVsbD09bC52YWwoKSlsLmNzcygiYmFja2dyb3VuZCIsCiIjRkY3RTc5IiksYj0hMDtpZigiIj09cS52YWwoKXx8bnVsbD09cS52YWwoKSlxLmNzcygiYmFja2dyb3VuZCIsIiNGRjdFNzkiKSxiPSEwOzA9PWImJmxhdW5jaFRyYWRlSW5Qb3B1cCgidHJhZGVpbmJhciIpfSk7aWYoIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKXx8IiI9PXAudmFsKCl8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHAudmFsKCl8fCIiPT1rLnZhbCgpfHwiIj09cS52YWwoKSl7dmFyIHk9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKSxyPSQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLHY9JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKSx6PSQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIiksbj0kKCIjdHJhZGVJbkJhclBvcHVwTml2IiksdD17fSxFPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcih3LnRtb2RlbD93LnRtb2RlbC50b0xvd2VyQ2FzZSgpOiIiKSxDPXcudHllYXI7aWYoMCE9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCTU9ERUxTRUxFQ1QiXScpLnZhbCgpKSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5uaXZNYWtlTW9kZWxTZWxlY3QiKS5vbigiY2hhbmdlIiwKZnVuY3Rpb24oKXsidmluIj09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm5pdk1ha2VNb2RlbFNlbGVjdDpjaGVja2VkIikudmFsKCk\/KCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbERpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwWWVhckRpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIikpOigkKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksJCgiI3RyYWRlSW5CYXJQb3B1cFllYXJEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLAoiaW5saW5lLWJsb2NrIikpOyJ1bmRlZmluZWQiIT09dHlwZW9mIHRyYWRlaW5wb3B1cGQyYyYmdHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0pO3kub24oImNoYW5nZSIsZnVuY3Rpb24oKXt5LnZhbCgkKHRoaXMpLnZhbCgpKTt6LmVtcHR5KCk7ci5lbXB0eSgpO3YuZW1wdHkoKTsiIiE9dGhpcy52YWx1ZSYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhckRhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOnRoaXMudmFsdWV9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7dD1iO3ouYXBwZW5kKEYpOyIiIT1uLmF0dHIoInZpblllYXIiKSYmKEM9bi5hdHRyKCJ2aW5ZZWFyIikpO2Zvcih2YXIgZiBpbiBiKWI9IiIsQyYmKGI9Zj09Qz8nc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpLHouYXBwZW5kKCI8b3B0aW9uICIrCmIrJyB2YWx1ZT0iJytmKyciPicrZisiPC9vcHRpb24+Iik7QyYmKHoudHJpZ2dlcigiY2hhbmdlIiksQz0hMSl9fSl9KTt6Lm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ei52YWwoJCh0aGlzKS52YWwoKSk7ci5lbXB0eSgpO3YuZW1wdHkoKTt2YXIgYj0kKHRoaXMpLnZhbCgpLGY9eS52YWwoKTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PWg\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJNb2RlbD93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zix5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7Y29uc29sZS5sb2coZCk7ci5hcHBlbmQoQSk7Zm9yKHZhciBjPTA7YzxkLmxlbmd0aDtjKyspe3ZhciBtPWRbY10ubmFtZTtyLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJyttKyciPicrbSsiPC9vcHRpb24+Iil9IiIhPQpuLmF0dHIoInZpbk1vZGVsIikmJihyLnZhbChuLmF0dHIoInZpbk1vZGVsIikpLHIudHJpZ2dlcigiY2hhbmdlIikpO24uYXR0cigidmluWWVhciIsIiIpO24uYXR0cigidmluTW9kZWwiLCIiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ01vZGVsP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihkKXtjb25zb2xlLmxvZyhkKTtyLmFwcGVuZChBKTtmb3IodmFyIGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIG09ZFtjXS5uYW1lO3IuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0iIiE9bi5hdHRyKCJ2aW5Nb2RlbCIpJiYoci52YWwobi5hdHRyKCJ2aW5Nb2RlbCIpKSwKci50cmlnZ2VyKCJjaGFuZ2UiKSk7bi5hdHRyKCJ2aW5ZZWFyIiwiIik7bi5hdHRyKCJ2aW5Nb2RlbCIsIiIpfX0pO2Vsc2UgaWYoMDxPYmplY3Qua2V5cyh0KS5sZW5ndGgmJiIiIT10aGlzLnZhbHVlKXtyLmFwcGVuZChBKTtmPXt9O2Zvcih2YXIgZT0wO2U8dFtiXS5sZW5ndGg7ZSsrKWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZlt0W2JdW2VdLm1vZGVsXSl7dmFyIGE9IiI7RSYmKGE9dFtiXVtlXS5tb2RlbD09RT8nc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpO3IuYXBwZW5kKCI8b3B0aW9uICIrYSsnIHZhbHVlPSInK3RbYl1bZV0ubW9kZWwrJyI+Jyt0W2JdW2VdLm1vZGVsKyI8L29wdGlvbj4iKTtmW3RbYl1bZV0ubW9kZWxdPXRbYl1bZV0ubW9kZWx9RSYmKHIudHJpZ2dlcigiY2hhbmdlIiksRT0hMSl9fSk7ci5vbigiY2hhbmdlIixmdW5jdGlvbigpe3IudmFsKCQodGhpcykudmFsKCkpO3YuZW1wdHkoKTt2YXIgYj16LnZhbCgpLGY9eS52YWwoKSxlPSQodGhpcykudmFsKCk7CmlmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclRyaW0\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYsbW9kZWw6ZSx5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7di5hcHBlbmQoRCk7Zm9yKHZhciBkPTAsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgbT1hW2NdLnN0eWxlKyIgIithW2NdLnNlcmllcyx4PWFbY10udXZjO2QrKzt2LmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicreCsnIiB2YWx1ZT0iJyttKyciPicrbSsiPC9vcHRpb24+Iil9MT09ZCYmJCgib3B0aW9uOmVxKDEpIix2KS5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIil9fSk7ZWxzZSBpZigxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsCnVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVHJpbT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zixtb2RlbDplLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTt2LmFwcGVuZChEKTtmb3IodmFyIGQ9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBtPWFbY10ubmFtZSx4PWFbY10uaWQ7ZCsrO3YuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt4KyciIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0xPT1kJiYkKCJvcHRpb246ZXEoMSkiLHYpLnByb3AoInNlbGVjdGVkIiwhMCl9fSk7ZWxzZSBpZigwPE9iamVjdC5rZXlzKHQpLmxlbmd0aCYmIiIhPXRoaXMudmFsdWUpe3YuYXBwZW5kKEQpO2ZvcihlPWY9MDtlPHRbYl0ubGVuZ3RoO2UrKyl0W2JdW2VdLm1vZGVsPT10aGlzLnZhbHVlJiYoZisrLHYuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJysKdFtiXVtlXS5zdHlsZWlkKyciIHZhbHVlPSInK3RbYl1bZV0udHJpbSsnIj4nK3RbYl1bZV0udHJpbSsiPC9vcHRpb24+IikpOzE9PWYmJiQoIm9wdGlvbjplcSgxKSIsdikucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpfX0pO2lmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCl8fDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpezEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCk\/KHYub24oImNoYW5nZSIsZnVuY3Rpb24oKXskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOnt1dmM6JCh0aGlzKS5maW5kKCI6Y2hlY2tlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LApzdWNjZXNzOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7aWYoYS5hZGRfZGVkdWN0X2xpc3QubGVuZ3RoKXtmb3IodmFyIGQ9MDtkPGEuYWRkX2RlZHVjdF9saXN0Lmxlbmd0aDtkKyspJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrYS5hZGRfZGVkdWN0X2xpc3RbZF0udW9jKyciPicrYS5hZGRfZGVkdWN0X2xpc3RbZF0ubmFtZSsiPC9vcHRpb24+Iik7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5tdWx0aXNlbGVjdCh7aGVhZGVyOiExLG5vbmVTZWxlY3RlZFRleHQ6Ik9wdGlvbnMiLHNlbGVjdGVkVGV4dDpmdW5jdGlvbihjLG0seCl7cmV0dXJuICQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKTpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKSsoMTxjPyJzIjoiIil9LGNsYXNzZXM6InRyYWRlSW5CYXJNdWx0aXNlbGVjdCJ9KS5tdWx0aXNlbGVjdCgicmVmcmVzaCIpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9ZWxzZSAkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuc2hvdygpfX0pfSksbi5vbigicGFzdGUiLGZ1bmN0aW9uKCl7bGV0IGE9JCh0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50cmlnZ2VyKCJrZXl1cCIpfSwKMjAwKX0pLG4ub24oImtleXVwIixmdW5jdGlvbigpeyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dmluOiQodGhpcykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihhKXthJiZhLm1vZGVsJiZhLm1vZGVsX3llYXI\/KG4uZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIsYS5tb2RlbCksbi5maXJzdCgpLmF0dHIoInZpblllYXIiLGEubW9kZWxfeWVhcikseS52YWwoYS5tYWtlKSx5LmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIiksZigpLGUoKSk6YigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIlVucmVjb2duaXplZCBWSU4iOiJOSVYgbm9uIHJlY29ubnUiKX19KX0pKToxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpJiYodi5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ09wdGlvbnM\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7aWQ6JCh0aGlzKS5maW5kKCI6Y2hlY2tlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTtpZihhLmxlbmd0aCl7Zm9yKHZhciBkPQowO2Q8YS5sZW5ndGg7ZCsrKSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2FbZF0uaWQrJyI+JythW2RdLm5hbWUrIjwvb3B0aW9uPiIpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykubXVsdGlzZWxlY3Qoe2hlYWRlcjohMSxub25lU2VsZWN0ZWRUZXh0OiJPcHRpb25zIixzZWxlY3RlZFRleHQ6ZnVuY3Rpb24oYyxtLHgpe3JldHVybiAkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9jKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKTpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKSsoMTxjPyJzIjoiIil9LGNsYXNzZXM6InRyYWRlSW5CYXJNdWx0aXNlbGVjdCJ9KS5tdWx0aXNlbGVjdCgicmVmcmVzaCIpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuc2hvdygpfWVsc2UgJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLnNob3coKX19KX0pLG4ub24oInBhc3RlIixmdW5jdGlvbigpe2xldCBhPSQodGhpcyk7c2V0VGltZW91dChmdW5jdGlvbigpe2EudHJpZ2dlcigia2V5dXAiKX0sMjAwKX0pLG4ub24oImtleXVwIixmdW5jdGlvbigpeyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVmluP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOnt2aW46JCh0aGlzKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2EmJmEubW9kZWwmJmEueWVhcj8obi5maXJzdCgpLmF0dHIoInZpbk1vZGVsIixhLm1vZGVsKSxuLmZpcnN0KCkuYXR0cigidmluWWVhciIsYS55ZWFyKSx5LnZhbChhLm1ha2UpLHkuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSxmKCksZSgpKTpiKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJVbnJlY29nbml6ZWQgVklOIjoiTklWIG5vbiByZWNvbm51Iil9fSl9KSk7ZnVuY3Rpb24gYihhKXt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIik7aWYoZCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZFdhcm5pbmdNZXNzYWdlIik7YyYmYy5yZW1vdmUoKTsKYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5pZD0icmVkV2FybmluZ01lc3NhZ2UiO2MudGV4dENvbnRlbnQ9YTtjLnN0eWxlLmNvbG9yPSJyZWQiO2Muc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtjLnN0eWxlLnRvcD0iNTAlIjtjLnN0eWxlLnJpZ2h0PSI4cHgiO2Muc3R5bGUubWFyZ2luVG9wPSI0cHgiO2Muc3R5bGUuZm9udFNpemU9IjExcHgiO2Muc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKC01MCUpIjtkLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7ZC5hcHBlbmRDaGlsZChjKX19ZnVuY3Rpb24gZigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWRXYXJuaW5nTWVzc2FnZSIpO2EmJmEucmVtb3ZlKCl9ZnVuY3Rpb24gZSgpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuaXZNYWtlTW9kZWxTZWxlY3RNb2RlbCIpO2EmJmEuY2xpY2soKTsoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJhZGVJbkJhclBvcHVwVHJpbSIpKSYmCmEuZm9jdXMoKX19fX07Ci8qKiAvanMvdHJhZGVJbkJhck92ZXJsYXkuanMgKiovCnZhciBfX19kMmNfdHJhZGVJbkJhck92ZXJsYXlqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjIyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY190cmFkZUluQmFyT3ZlcmxheWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzg6NDgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdHJhZGVJbkJhck92ZXJsYXlqc19jX29uPSIyMDIzLTA4LTA3IDExOjMwOjA1IjsidXNlIHN0cmljdCI7CiQoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7Yj1zZXRJbnRlcnZhbChmdW5jdGlvbigpeyQoIi5qcy10cmFkZUluQmFyT3ZlcmxheSIpLnRvZ2dsZSgpfSwzRTMpfXZhciBiO2EoKTskKCIjdHJhZGVJbkJhciIpLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7JCgiLmpzLXRyYWRlSW5CYXJPdmVybGF5IikuaGlkZSgpO2NsZWFySW50ZXJ2YWwoYil9KTskKCIjdHJhZGVJbkJhciIpLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhciBpbnB1dCwgI3RyYWRlSW5CYXIgc2VsZWN0IikuaXMoIjpmb2N1cyIpfHxhKCl9KTskKCIjdHJhZGVpbkJhckZsb2F0Iikub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXskKCIuanMtdHJhZGVJbkJhck92ZXJsYXkiKS5oaWRlKCk7Y2xlYXJJbnRlcnZhbChiKX0pOyQoIiN0cmFkZWluQmFyRmxvYXQiKS5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7JCgiI3RyYWRlaW5CYXJGbG9hdCBpbnB1dCwgI3RyYWRlSW5CYXIgc2VsZWN0IikuaXMoIjpmb2N1cyIpfHwKYSgpfSl9KTsKLyoqIC9qcy90cmFkZWlucG9wdXAuanMgKiovCnZhciBfX19kMmNfdHJhZGVpbnBvcHVwanNfY19vbj0iMjAyNi0wNi0wNCAwOTozMDoxNiI7J3VzZSBzdHJpY3QnO3ZhciB0cmFkZWlucG9wdXBkMmM9e2luaXQ6ZnVuY3Rpb24oKXt9LG9uQmVmb3JlU3VibWl0OmZ1bmN0aW9uKGEpe2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJORVciO2VtYWlsSGFuZGxlci5jb25kaXRpb249Im5ldyI7YS5zZXR0aW5ncy52ZWhpY2xlU3RhdGU9Im5ldyI7aWYoInVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCIwIj09JCgiaW5wdXRbbmFtZT10cmFkZUluSGFzTmV3RGVwXSIpLnZhbCgpKWVtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJVU0VEIixlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJ1c2VkIixhLnNldHRpbmdzLnZlaGljbGVTdGF0ZT0idXNlZCI7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCk7ZW1haWxIYW5kbGVyLm1vZGVsPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTE1BS0UiXScpLnZhbCgkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSk7CiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMTU9ERUwiXScpLnZhbCgkKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMWUVBUiJdJykudmFsKCQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJTVE9DS05VTUJFUiJdJykudmFsKCQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKSk7JCgiI3ZlaGljbGVjb2xvciIpLmxlbmd0aCYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ09MT1IiXScpLnZhbCgkKCIjdmVoaWNsZWNvbG9yIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnZhbCgpJiYoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSksCmVtYWlsSGFuZGxlci5jYXIyX21ha2U9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS52YWwoKSksZW1haWxIYW5kbGVyLmNhcjJfbW9kZWw9JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnZhbCgpJiYoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJJTUVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSksJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSBvcHRpb246c2VsZWN0ZWQiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKSksCmVtYWlsSGFuZGxlci5jYXIyX3RyaW09JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkmJigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpKSxlbWFpbEhhbmRsZXIuY2FyMl95ZWFyPSQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKS5sZW5ndGgmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwTml2IikudmFsKCkmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlZJTkVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE5pdiIpLnZhbCgpKTskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0idHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEIl0nKS5sZW5ndGgmJgooZW1haWxIYW5kbGVyLnRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRD0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0idHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEIl0nKS52YWwoKSk7ZW1haWxIYW5kbGVyLmNhcjJfb2RvbWV0ZXI9JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikudmFsKCk7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0PSExO2lmKCEkKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikubGVuZ3RoJiYwPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoKSYmMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSlyZXR1cm4gdGhpcy5vbkJlZm9yZVN1Ym1pdENCQkNhbGwoYSksITE7aWYoISQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5sZW5ndGgmJjA9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgpJiYKMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSlyZXR1cm4gdGhpcy5vbkJlZm9yZVN1Ym1pdEFjY3V0cmFkZUNhbGwoYSksITE7aWYoJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLmxlbmd0aCYmMT09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKCkmJjE9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgpJiYxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKXRoaXMub25CZWZvcmVTdWJtaXRDQkJNZXNzYWdlKGEpO2Vsc2UgaWYoJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLmxlbmd0aCYmMT09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKCkmJjE9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgpJiYxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpKXRoaXMub25CZWZvcmVTdWJtaXRBY2N1dHJhZGVNZXNzYWdlKGEpOwppZigiMSI9PT0kKCJpbnB1dFtuYW1lPXN0ZXAzYWN0aXZlXSIpLnZhbCgpJiYiMCI9PT0kKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoKSlyZXR1cm4gdGhpcy5pbml0VHJhZGVJblN0ZXAzKCksITE7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0PSEwfSxvbkFmdGVyU3VibWl0OmZ1bmN0aW9uKGEpeyQoImJvZHkiKS50cmlnZ2VyKCJUcmFkZUluQmFyUG9wdXBXaWRnZXRfb25TdWJtaXQiLFtdKTthPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ZGVmYXVsdFN1Ym1pdE1lc2FnZV0iKS52YWwoKTswPT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoKSYmMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSYmKGE9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ub1ZhbHVlU3VibWl0TWVzYWdlXSIpLnZhbCgpKTtsZXQgaz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKCl8fAowLGQ9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoKXx8MCxiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS52YWwoKXx8MDt2YXIgYz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKTtpZigxPT0KJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1SRUFMVElNRUVTVElNQVRFXSIpLnZhbCgpKXt2YXIgaD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7bGV0IGU9JzxzcGFuIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE2cHg7Ij48YnI+JytjKyI8L3NwYW4+IixuPSIiOyQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIxIj09aD9lKz0iPGJyPkVzdGltYXRlZCBWYWx1ZTogJCIrYjooZSs9Ijxicj5NaW5pbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIrayxlKz0iPGJyPk1heGltdW0gRXN0aW1hdGVkIFZhbHVlOiAkIitkKToiMSI9PWg\/ZSs9Ijxicj5WYWxldXIgZXN0aW3DqWU6ICIrYisiJCI6KGUrPSI8YnI+VmFsZXVyIGVzdGltw6llIG1pbmltYWxlOiAiK2srIiQiLGUrPSI8YnI+VmFsZXVyIGVzdGltw6llIG1heGltYWxlOiAiK2QrIiQiKTtuKz0nPGRpdiBzdHlsZT0iZm9udC1zaXplOjEycHg7bWFyZ2luLXRvcDoxMHB4OyI+JysKJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKSsiPC9kaXY+IjthKz0nPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MjBweDsiPicrZSsiPC9kaXY+IitufSQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciBwIikuaHRtbCgiPGJyPiIrYSk7bGV0IGc9aXNOYU4ocGFyc2VJbnQoYikpP2Q6Yjtpc05hTihwYXJzZUludChnKSl8fChhPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IlRyYWRlSW5BY3Rpb25Cb3giLG9uQ29tcGxldGU6ZT0+e2UuZGF0YXNldC5jb21wbF90eHRfZnI9ZS5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCJ7JFRSQURFQ0FSfSIsYykucmVwbGFjZSgieyRUUkFERVZBTH0iLGcpO2UuZGF0YXNldC5jb21wbF90eHRfZW49CmUuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgieyRUUkFERUNBUn0iLGMpLnJlcGxhY2UoInskVFJBREVWQUx9IixnKTt2YXIgbj17eWVhcjokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKSxtYWtlOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpLG1vZGVsOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKSx0cmltOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpLHZhbHVlOnBhcnNlSW50KGcucmVwbGFjZSgiLCIsIiIpKX07X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIsSlNPTi5zdHJpbmdpZnkobiksMSk7aWYoMT5wYXJzZUludChnKSl7bj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXplcm9WYWx1ZU1lc3NhZ2VFbl0iKS52YWwoKTtsZXQgcj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXplcm9WYWx1ZU1lc3NhZ2VGcl0iKS52YWwoKTsKZS5kYXRhc2V0LmNvbXBsX3R4dF9mcj1gJHtjfSB8ICR7cn1gO2UuZGF0YXNldC5jb21wbF90eHRfZW49YCR7Y30gfCAke259YH19LGZvcmNlVXBkYXRlOiEwfX0pLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoYSkpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikudmFsKDApOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKDApOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKDApOyQoIi50cmFkZUluQmFyU3RlcDEiKS5zaG93KCk7JCgiLnRyYWRlSW5CYXJTdGVwMlRpdGxlIikudGV4dCgkKCIudHJhZGVJbkJhclN0ZXAyVGl0bGUiKS50ZXh0KCkucmVwbGFjZSgiICIrYywiIikpOyQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdIikucmVtb3ZlQ2xhc3MoInJlcVJhZGlvIik7CiQoIi50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKDApOyQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5wcm9wKCJjaGVja2VkIiwhMSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJRVUVTVElPTlMiXScpLnZhbCgiIil9LG9uQmVmb3JlT3BlbjpmdW5jdGlvbigpe2Zvcih2YXIgYT1nZXRVcmxWYXJzKCksaz1PYmplY3Qua2V5cyhhKSxkPWsubGVuZ3RoLGI9e307ZC0tOyl7dmFyIGM9a1tkXTtiW2MudG9Mb3dlckNhc2UoKV09YVtjXX1hPWI7dmFyIGg9JCgnc2VsZWN0W25hbWU9InRyYWRpbk1ha2UiXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKS52YWwoKTpkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXIoYS50bWFrZT8KYS50bWFrZS50b0xvd2VyQ2FzZSgpOiIiKSxnPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJykudmFsKCk\/JCgnc2VsZWN0W25hbWU9InRyYWRpbk1vZGVsIl0nKS52YWwoKTpkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXIoYS50bW9kZWw\/YS50bW9kZWwudG9Mb3dlckNhc2UoKToiIik7az0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykudmFsKCk\/JCgnc2VsZWN0W25hbWU9InRyYWRpblRyaW0iXScpLnZhbCgpOiIgIjtkPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0nKS52YWwoKT8kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdIG9wdGlvbjpzZWxlY3RlZCcpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiIgIjt2YXIgZT0kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJykudmFsKCk\/JCgnc2VsZWN0W25hbWU9InRyYWRpblllYXIiXScpLnZhbCgpOmEudHllYXI7YT0kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpLnZhbCgpPyQoJ2lucHV0W25hbWU9InRyYWRpblZpbiJdJykudmFsKCk6CiIiOyQoInRyYWRlSW5TZWxlY3RlZE1ha2UiKS52YWwoaCk7JCgidHJhZGVJblNlbGVjdGVkTW9kZWwiKS52YWwoZyk7JCgidHJhZGVJblNlbGVjdGVkVHJpbSIpLnZhbChrKTskKCJ0cmFkZUluU2VsZWN0ZWRZZWFyIikudmFsKGUpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKGgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbChnKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUklNRVgiXScpLnZhbChrKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbChlKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKGQpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlZJTkVYIl0nKS52YWwoYSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7dmFyIG47CmE9bnVsbCE9KG49Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9uOiIiO3ZhciByO249bnVsbCE9KHI9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP3I6IiI7cj1hKygiIiE9bj8iICIrY2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIik6IiIpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkZOQU1FIl0nKS52YWwocik7dmFyIGY7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUxQSE9ORSJdJykudmFsKG51bGwhPShmPWNsaWVudFN0b3JhZ2UuZ2V0KCJwaG9uZSIpKT9mOiIiKTt2YXIgdTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTCJdJykudmFsKG51bGwhPSh1PWNsaWVudFN0b3JhZ2UuZ2V0KCJlbWFpbCIpKT91OiIiKX1lbWFpbEhhbmRsZXIuY2FyMl9tYWtlPWg7ZW1haWxIYW5kbGVyLmNhcjJfbW9kZWw9ZztlbWFpbEhhbmRsZXIuY2FyMl90cmltPWs7ZW1haWxIYW5kbGVyLmNhcjJfeWVhcj0KZTtlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj0kKCIjcmViYXRlTWlsZWFnZV90cmFkZUluQmFyUG9wdXAiKS52YWwoKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iTkVXIjtpZigidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8IjAiPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5IYXNOZXdEZXBdIikudmFsKCkpZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9IlVTRUQiO2Y9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiAiK2UrIiAiK2grIiAiK2c6IiAiK2grIiAiK2crIiAiK2U7JCgiI3RyYWRlSW5CYXJQb3B1cFNlbGVjdGVkVmVoaWNsZSIpLmh0bWwoZik7Q29va2llcy5nZXQoInBvcHVwUGFnZVZpZXdzIil8fENvb2tpZXMuc2V0KCJwb3B1cFBhZ2VWaWV3cyIsIjAiLG51bGwsIi8iKTtpZigiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpfHwiIj09aHx8IiI9PWd8fCIiPT1lKXsiMSIhPSQoIiNpc01vYmlsZSIpLnZhbCgpJiYoJCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwKIjY4MHB4IiksJCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNjgwcHgiKSk7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5hZGRDbGFzcygicmVxdWlyZWQiKTskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmVtcHR5KCk7JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikuYWRkQ2xhc3MoInJlcXVpcmVkIik7JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikuZW1wdHkoKTskKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLmFkZENsYXNzKCJyZXF1aXJlZCIpOyQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikuZW1wdHkoKTsidmluIiE9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCTU9ERUxTRUxFQ1QiXScpLnZhbCgpPygkKCIjdHJhZGVJbkJhclBvcHVwTWFrZURpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpLCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbERpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpLAokKCIjdHJhZGVJbkJhclBvcHVwWWVhckRpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpKTokKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIik7MCE9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCTU9ERUxTRUxFQ1QiXScpLnZhbCgpJiYoJCgnLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0W3ZhbHVlPSInKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQk1PREVMU0VMRUNUIl0nKS52YWwoKSsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCksJCgiLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciIpLnNob3coKSk7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW1EaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFkZENsYXNzKCJyZXF1aXJlZCIpOwokKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmVtcHR5KCk7Zj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iIHRyYWRlLWluISI6IiDDqWNoYW5nZSEiOyQoIiN0cmFkZUluQmFyUG9wdXBTZWxlY3RlZFZlaGljbGUiKS5odG1sKGYpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5uaXZNYWtlTW9kZWxTZWxlY3QiKS5sZW5ndGgmJiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5uaXZNYWtlTW9kZWxTZWxlY3QiKS50cmlnZ2VyKCJjaGFuZ2UiKTt2YXIgcT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCI7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09cT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhckRhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6cX0sc3VjY2VzczpmdW5jdGlvbihtKXskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iIj4nKwooIkVOR0xJU0giPT1xPyJNYWtlIjoiTWFycXVlIikrIjwvb3B0aW9uPiIpO2Zvcih2YXIgbD0wO2w8bS5sZW5ndGg7bCsrKXt2YXIgcD1tW2xdLm1ha2UudG9Mb3dlckNhc2UoKT09aC50b0xvd2VyQ2FzZSgpPydzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIjtsZXQgdD0xPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpP21bbF0ubWFrZS50b1VwcGVyQ2FzZSgpOm1bbF0ubWFrZTskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmFwcGVuZCgiPG9wdGlvbiAiK3ArJyB2YWx1ZT0iJyt0KyciPicrbVtsXS5tYWtlKyI8L29wdGlvbj4iKX0kKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnRyaWdnZXIoImNoYW5nZSIpOyQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKS5sZW5ndGgmJiQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKS50cmlnZ2VyKCJrZXl1cCIpfX0pfWVsc2UiICI9PWs\/KCQoIiN0cmFkZUluQmFyUG9wdXBUcmltRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksCiQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYWRkQ2xhc3MoInJlcXVpcmVkIiksJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5lbXB0eSgpLHE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giLDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCk\/JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09cT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclRyaW0\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6cSxtYWtlOmgsbW9kZWw6Zyx5ZWFyOmV9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1xPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGw9MDtsPG0ubGVuZ3RoO2wrKyl7dmFyIHA9bVtsXS5zdHlsZSsiICIrbVtsXS5zZXJpZXMsCnQ9bVtsXS51dmM7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1zdHlsZWlkPSInK3QrJyIgdmFsdWU9IicrcCsnIj4nK3ArIjwvb3B0aW9uPiIpfX19KToxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpPyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5NbmdUcmltP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnEsbWFrZTpoLG1vZGVsOmcseWVhcjplfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09cT8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBsPTA7bDxtLmxlbmd0aDtsKyspe3ZhciBwPW1bbF0ubmFtZSx0PW1bbF0uaWQ7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1zdHlsZWlkPSInKwp0KyciIHZhbHVlPSInK3ArJyI+JytwKyI8L29wdGlvbj4iKX19fSk6JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09cT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhckRhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6cSxtYWtlOmh9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1xPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGw9MDtsPG1bZV0ubGVuZ3RoO2wrKyltW2VdW2xdLm1vZGVsLnRvTG93ZXJDYXNlKCk9PWcudG9Mb3dlckNhc2UoKSYmJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrbVtlXVtsXS50cmltKyciPicrbVtlXVtsXS50cmltKyI8L29wdGlvbj4iKX19KSk6KCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlRGl2Q29udGFpbmVyIikuaGlkZSgpLAokKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnJlbW92ZUNsYXNzKCJyZXF1aXJlZCIpLCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbERpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS5yZW1vdmVDbGFzcygicmVxdWlyZWQiKSwkKCIjdHJhZGVJbkJhclBvcHVwWWVhckRpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnJlbW92ZUNsYXNzKCJyZXF1aXJlZCIpLCQoIiN0cmFkZUluQmFyUG9wdXBUcmltRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikucmVtb3ZlQ2xhc3MoInJlcXVpcmVkIiksMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKT8oJCgiLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuaGlkZSgpLCQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIi9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOnt1dmM6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuc2hvdygpfX0pKToxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpJiYoJCgiLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciIpLmhpZGUoKSwKJCgiI3RyYWRlSW5CYXJQb3B1cE5pdkRpdkNvbnRhaW5lciIpLmhpZGUoKSwkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5NbmdPcHRpb25zP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2lkOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLnNob3coKX19KSkpOwphPWdldFVybFZhcnMoKTtmPWEuaGFzT3duUHJvcGVydHkoInRyYWRlLXZhbHVlIikmJiJ5ZXMiPT1hWyJ0cmFkZS12YWx1ZSJdO3U9YS5oYXNPd25Qcm9wZXJ0eSgidHJhZGUtdmFsdWUiKSYmIm5vIj09YVsidHJhZGUtdmFsdWUiXTtyPSQoJ2lucHV0W25hbWU9IkNCQkNoZWNrVXNlciJdJykubGVuZ3RoP2F0b2IoJCgnaW5wdXRbbmFtZT0iQ0JCQ2hlY2tVc2VyIl0nKS52YWwoKSk6IiI7dXx8IjY2LjEzMC4xMDcuMTU3IiE9ciYmMSE9Q29va2llcy5nZXQoIkQyQ1VVSUQiKSYmIWZ8fDE9PSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCl8fCgkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJGTkFNRSJdJykuaGlkZSgpLCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMUEhPTkUiXScpLmhpZGUoKSwkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTCJdJykuaGlkZSgpLCQoIi50cmFkZUluQmFyRGVhbGVyTWVzc2FnZSIpLnNob3coKSk7CiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPSJFTUFJTFBIT05FIl0nKS5lYWNoKChtLGwpPT57SU1hc2sobCx7bWFzazpbe21hc2s6IjAwMCAwMDAtMDAwMCJ9LHttYXNrOiIxIDAwMCAwMDAtMDAwMCJ9XX0pfSk7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IG09JCh0aGlzKS5maW5kKCIudHJhZGVJbkRpc2NsYWltZXJDb250ZW50IikuaHRtbCgpOyQoIi50cmFkZUluRGlzY2xhaW1lckRyYXdlciAudHJhZGVJbkRpc2NsYWltZXJDb250ZW50IikuZW1wdHkoKS5odG1sKG0pOyQoIi50cmFkZUluRGlzY2xhaW1lckRyYXdlciIpLnNob3coKS5hZGRDbGFzcygib3BlbiIpfSk7JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciAudHJhZGVJbkRpc2NsYWltZXJDbG9zZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIiKS5yZW1vdmVDbGFzcygib3BlbiIpLmhpZGUoKX0pOwp0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0sb25CZWZvcmVWYWxpZGF0aW9uOmZ1bmN0aW9uKGEpe3ZhciBrPWdldFVybFZhcnMoKTthPWsuaGFzT3duUHJvcGVydHkoInRyYWRlLXZhbHVlIikmJiJ5ZXMiPT1rWyJ0cmFkZS12YWx1ZSJdO2s9ay5oYXNPd25Qcm9wZXJ0eSgidHJhZGUtdmFsdWUiKSYmIm5vIj09a1sidHJhZGUtdmFsdWUiXTt2YXIgZD0kKCdpbnB1dFtuYW1lPSJDQkJDaGVja1VzZXIiXScpLmxlbmd0aD9hdG9iKCQoJ2lucHV0W25hbWU9IkNCQkNoZWNrVXNlciJdJykudmFsKCkpOiIiO2lmKCFrJiYoIjY2LjEzMC4xMDcuMTU3Ij09ZHx8MT09Q29va2llcy5nZXQoIkQyQ1VVSUQiKXx8YSkmJjEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpeyQoIiNyZWJhdGVNaWxlYWdlX3RyYWRlSW5CYXJQb3B1cCIpLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKTskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYKIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkmJigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUklNRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnZhbCgpKSwkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIG9wdGlvbjpzZWxlY3RlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpKSk7CiQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpKTtpZigxPiQoIiNyZWJhdGVNaWxlYWdlX3RyYWRlSW5CYXJQb3B1cCIpLnZhbCgpKXJldHVybiAkKCIjcmViYXRlTWlsZWFnZV90cmFkZUluQmFyUG9wdXAiKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksITE7YT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSkuZ2V0KCkuam9pbigiLCAiKTt2YXIgYj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHR9KS5nZXQoKS5qb2luKCIsICIpOwprPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IktNIl0nKS52YWwoKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOnt1dmM6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgpLG9wdGlvbnM6YSx2ZWhpY2xlS006ayxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGMpe3ZhciBoPWMuY2FuYWRpYW5fdHJhZGVpbl92YWx1ZXx8Yy5iYXNlX3RyYWRlaW5fYXZnfHwwLGc9Yy5jYW5hZGlhbl90cmFkZWluX2xvd3x8Yy5iYXNlX3RyYWRlaW5fcm91Z2h8fDA7Yz1jLmNhbmFkaWFuX3RyYWRlaW5faGlnaHx8CmMuYmFzZV90cmFkZWluX2NsZWFufHwwO2g9IiQiK0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihoKTtnPSIkIitEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoZyk7Yz0iJCIrRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGMpO3ZhciBlPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUklNRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIisKJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJJTUVYIl0nKS52YWwoKTtiJiYoZSs9IiAoIitiKyIpIik7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyRGVhbGVyU3RlcE1ha2VNb2RlbFllYXIiKS50ZXh0KGUpOyIxIj09JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpPygkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJNaW5WYWx1ZSIpLnBhcmVudCgpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJNYXhWYWx1ZSIpLnBhcmVudCgpLmhpZGUoKSk6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCQXZnVmFsdWUiKS5wYXJlbnQoKS5oaWRlKCk7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1pblZhbHVlIikudGV4dChnKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJNYXhWYWx1ZSIpLnRleHQoYyk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCQXZnVmFsdWUiKS50ZXh0KGgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCIpLnNob3coKX19KTtyZXR1cm4hMX19LG9uQmVmb3JlU3VibWl0Q0JCQ2FsbDpmdW5jdGlvbihhKXt2YXIgaz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSkuZ2V0KCkuam9pbigiLCAiKSxkPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0pLmdldCgpLmpvaW4oIiwgIik7CiIiIT1kJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJRVUVTVElPTlMiXScpLnZhbChkKTtkPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IktNIl0nKS52YWwoKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOnt1dmM6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgpLG9wdGlvbnM6ayx2ZWhpY2xlS006ZCxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGIpe3ZhciBjPWIuY2FuYWRpYW5fdHJhZGVpbl92YWx1ZXx8Yi5iYXNlX3RyYWRlaW5fYXZnfHwKMCxoPWIuY2FuYWRpYW5fdHJhZGVpbl9sb3d8fGIuYmFzZV90cmFkZWluX3JvdWdofHwwO2I9Yi5jYW5hZGlhbl90cmFkZWluX2hpZ2h8fGIuYmFzZV90cmFkZWluX2NsZWFufHwwO3ZhciBnPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUUiXScpLnZhbCgpLGU9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRU1BS0VTIl0nKS52YWwoKSxuPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUVUWVBFIl0nKS52YWwoKSxyPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQlNJTkdMRVZBTFVFIl0nKS52YWwoKTswIT1nJiYiIiE9ZSYmLTE8ZS5zcGxpdCgiOyIpLmluZGV4T2YoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSkmJigiY2FzaCI9PW4\/KGMrPXBhcnNlSW50KGcpLGgrPXBhcnNlSW50KGcpLGIrPQpwYXJzZUludChnKSk6InBlcmNlbnRhZ2UiPT1uJiYoZz0xK2cvMTAwLGMqPWcsaCo9ZyxiKj1nKSk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIsYyk7aWYoJCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikubGVuZ3RoKXtnPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpO2U9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCk7bj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCk7bGV0IGw9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKGUpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5Nb2RlbF0iKS52YWwobik7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblllYXJdIikudmFsKGcpOwokKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVHJpbV0iKS52YWwobCk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblZhbHVlXSIpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciKSk7JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIikpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIsIiIpfWlmKDE9PWEuc2V0dGluZ3MuZm9ybXVsdGlzdGVwKXtsZXQgbD1pc05hTihwYXJzZUludChjKSk\/MDpjO2w9RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGwpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTF0iKS52YWwoKTtlbWFpbEhhbmRsZXIudXNlclBob25lPQokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMUEhPTkVdIikudmFsKCk7dmFyIGY7Yz1udWxsIT0oZj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKT9mOiIiO3ZhciB1O2Y9bnVsbCE9KHU9Yy5zcGxpdCgiICIpWzBdKT91OiIiO3ZhciBxO3U9bnVsbCE9KHE9Yy5zcGxpdCgiICIpWzFdKT9xOiIiO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWY7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT11O3ZhciBtPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrCiIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKTtpc05hTihwYXJzZUludChsKSl8fChxPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IlRyYWRlSW5BY3Rpb25Cb3giLG9uQ29tcGxldGU6cD0+e3AuZGF0YXNldC5jb21wbF90eHRfZnI9cC5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCJ7JFRSQURFQ0FSfSIsbSkucmVwbGFjZSgieyRUUkFERVZBTH0iLGwpO3AuZGF0YXNldC5jb21wbF90eHRfZW49cC5kYXRhc2V0LmNvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFRSQURFQ0FSfSIsbSkucmVwbGFjZSgieyRUUkFERVZBTH0iLGwpO3ZhciB0PXt5ZWFyOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpLG1ha2U6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCksCm1vZGVsOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKSx0cmltOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpLHZhbHVlOnBhcnNlSW50KGwucmVwbGFjZSgiLCIsIiIpKX07X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIsSlNPTi5zdHJpbmdpZnkodCksMSk7aWYoMT5wYXJzZUludChsKSl7dD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXplcm9WYWx1ZU1lc3NhZ2VFbl0iKS52YWwoKTtsZXQgdj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXplcm9WYWx1ZU1lc3NhZ2VGcl0iKS52YWwoKTtwLmRhdGFzZXQuY29tcGxfdHh0X2ZyPWAke219IHwgJHt2fWA7cC5kYXRhc2V0LmNvbXBsX3R4dF9lbj1gJHttfSB8ICR7dH1gfX0sZm9yY2VVcGRhdGU6ITB9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChxKSk7YS5zZXR0aW5ncy5mb3JtdWx0aXN0ZXA9CiExO2EuY2xvc2UoKX1lbHNlICQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgxKSwiMSI9PXI\/Yj1oPSJyZW1vdmVlbXB0eSI6Yz0icmVtb3ZlZW1wdHkiLDA8aHx8MDxifHwwPGM\/KCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihjKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkxvd10iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGgpKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGIpKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKDEpLHRyYWRlaW5wb3B1cGQyYy5pbml0VHJhZGVJblN0ZXAyKGEpLHBvcHVwSXNTdWJtaXR0aW5nPSExKToocG9wdXBJc1N1Ym1pdHRpbmc9ITEsCiQoImlucHV0W25hbWU9c3RlcDNkb25lXSIpLnZhbCgxKSwkKCIudHJhZGVJbkJhclBvcHVwU3VibWl0IikudHJpZ2dlcigiY2xpY2siKSl9fSl9LG9uQmVmb3JlU3VibWl0QWNjdXRyYWRlQ2FsbDpmdW5jdGlvbihhKXt2YXIgaz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSkuZ2V0KCkuam9pbigiLCAiKSxkPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0pLmdldCgpLmpvaW4oIiwgIik7IiIhPWQmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKGQpO2Q9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iS00iXScpLnZhbCgpOwp2YXIgYj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iQ09MT1JFWCJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikuYXR0cigiZGF0YS1pZCIpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ1ZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2lkOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxvcHRpb25zOmssa206ZCxjb2xvcjpiLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7dmFyIGg9Yy5hdmd8fDAsZz1jLmxvd3x8MDtjPWMuaGlnaHx8MDt2YXIgZT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFIl0nKS52YWwoKSwKbj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFTUFLRVMiXScpLnZhbCgpLHI9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRVRZUEUiXScpLnZhbCgpLGY9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpOzAhPWUmJiIiIT1uJiYtMTxuLnNwbGl0KCI7IikuaW5kZXhPZigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKSYmKCJjYXNoIj09cj8oaCs9cGFyc2VJbnQoZSksZys9cGFyc2VJbnQoZSksYys9cGFyc2VJbnQoZSkpOiJwZXJjZW50YWdlIj09ciYmKGU9MStlLzEwMCxoKj1lLGcqPWUsYyo9ZSkpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciLGgpO2lmKCQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLmxlbmd0aCl7ZT0KJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCk7bj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKTtyPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKTtsZXQgcD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwobik7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1vZGVsXSIpLnZhbChyKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluWWVhcl0iKS52YWwoZSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblRyaW1dIikudmFsKHApOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIpKTsKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIiwiIil9aWYoMT09YS5zZXR0aW5ncy5mb3JtdWx0aXN0ZXApe2xldCBwPWlzTmFOKHBhcnNlSW50KGgpKT8wOmg7cD1EMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIocCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTFBIT05FXSIpLnZhbCgpO3ZhciB1O2g9bnVsbCE9KHU9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSk\/dToiIjt2YXIgcTt1PW51bGwhPShxPWguc3BsaXQoIiAiKVswXSk\/cToiIjt2YXIgbTtxPW51bGwhPShtPWguc3BsaXQoIiAiKVsxXSk\/bToiIjtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT11O2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9CnE7dmFyIGw9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCk7aXNOYU4ocGFyc2VJbnQocCkpfHwobT1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJUcmFkZUluQWN0aW9uQm94IixvbkNvbXBsZXRlOnQ9Pnt0LmRhdGFzZXQuY29tcGxfdHh0X2ZyPQp0LmRhdGFzZXQuY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskVFJBREVDQVJ9IixsKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIscCk7dC5kYXRhc2V0LmNvbXBsX3R4dF9lbj10LmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoInskVFJBREVDQVJ9IixsKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIscCk7dmFyIHY9e3llYXI6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksbWFrZTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSxtb2RlbDokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCksdHJpbTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKSx2YWx1ZTpwYXJzZUludChwLnJlcGxhY2UoIiwiLCIiKSl9O19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiLEpTT04uc3RyaW5naWZ5KHYpLDEpO2lmKDE+CnBhcnNlSW50KHApKXt2PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUVuXSIpLnZhbCgpO2xldCB3PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUZyXSIpLnZhbCgpO3QuZGF0YXNldC5jb21wbF90eHRfZnI9YCR7bH0gfCAke3d9YDt0LmRhdGFzZXQuY29tcGxfdHh0X2VuPWAke2x9IHwgJHt2fWB9fSxmb3JjZVVwZGF0ZTohMH19KSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG0pKTthLnNldHRpbmdzLmZvcm11bHRpc3RlcD0hMTthLmNsb3NlKCl9ZWxzZSAkKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoMSksIjEiPT1mP2M9Zz0icmVtb3ZlZW1wdHkiOmg9InJlbW92ZWVtcHR5IiwwPGd8fDA8Y3x8MDxoPygkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoaCkpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihnKSksCiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYykpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoMSksdHJhZGVpbnBvcHVwZDJjLmluaXRUcmFkZUluU3RlcDIoYSksdHJhZGVpbnBvcHVwZDJjLnNldEhlaWdodE1vYmlsZSgyKSx0cmFkZWlucG9wdXBkMmMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpLHBvcHVwSXNTdWJtaXR0aW5nPSExKToocG9wdXBJc1N1Ym1pdHRpbmc9ITEsJCgiaW5wdXRbbmFtZT1zdGVwM2RvbmVdIikudmFsKDEpLCQoIi50cmFkZUluQmFyUG9wdXBTdWJtaXQiKS50cmlnZ2VyKCJjbGljayIpKX19KX0sb25CZWZvcmVTdWJtaXRDQkJNZXNzYWdlOmZ1bmN0aW9uKGEpeyQoIiN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wcm9wKCJkaXNhYmxlZCIsITApOyQoIiN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7CmE9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTF0iKS52YWwoKTt2YXIgaz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMUEhPTkVdIikudmFsKCksZD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKSxiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpLGM9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpO3ZhciBoPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS52YWwoKSxnPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkxvd10iKS52YWwoKSxlPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKCk7ZD0KJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ZCsiICIrYisiICIrYzpiKyIgIitjKyIgIitkO2I9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1kZWFsZXJOYW1lVHJhZGVJbl0iKS52YWwoKTtjPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQlNJTkdMRVZBTFVFIl0nKS52YWwoKTt2YXIgbj0iIjtpZigiU01TIj09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLnZhbCgpKXZhciByPSJTTVMiLGY9IjEiPT1jPyQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJUaGUgQ2FuYWRpYW4gQmxhY2sgQm9vayBlc3RpbWF0ZWQgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitkKyIgaXMgJCIraCsiLiBXZSdsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGRpc2N1c3MuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKToKIkxhIHZhbGV1ciBkJ8OpY2hhbmdlIGVzdGltw6llIENhbmFkaWFuIEJsYWNrIEJvb2sgcG91ciB2b3RyZSAiK2QrIiBlc3QgJCIraCsiLiBOb3VzIGNvbW11bmlxdWVyb25zIGF2ZWMgdm91cyBzb3VzIHBldSBwb3VyIGVuIGRpc2N1dGVyLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlRoZSBDYW5hZGlhbiBCbGFjayBCb29rIGVzdGltYXRlZCB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2QrIiBpcyBiZXR3ZWVuICQiK2crIiBhbmQgJCIrZSsiLiBXZSdsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGRpc2N1c3MuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKToKIkxhIHZhbGV1ciBkJ8OpY2hhbmdlIGVzdGltw6llIENhbmFkaWFuIEJsYWNrIEJvb2sgcG91ciB2b3RyZSAiK2QrIiBzZSBzaXR1ZSBlbnRyZSAkIitnKyIgZXQgJCIrZSsiLiBOb3VzIGNvbW11bmlxdWVyb25zIGF2ZWMgdm91cyBzb3VzIHBldSBwb3VyIGVuIGRpc2N1dGVyLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk7ZWxzZSByPSJFTUFJTCIsbj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iSU1QT1JUQU5UOiBZb3VyIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZDoiSU1QT1JUQU5UOiBMYSB2YWxldXIgZCfDqWNoYW5nZSBkZSB2b3RyZSAiK2QsJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/KGY9IkhpICIrJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSsiLDxicj48YnI+IixmPQpmKygiRm9sbG93aW5nIHVwIG9uIHlvdXIgcmVjZW50IHRyYWRlIGVzdGltYXRlIHJlcXVlc3QgZm9yIGEgIitkKyIsIGhlcmUgaXMgdGhlIGVzdGltYXRlIGZyb20gdGhlIENhbmFkaWFuIEJsYWNrIEJvb2s6PGJyPjxicj4iKSsoJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKSsiPGJyPjxicj4iKSxmPSIxIj09Yz9mKygiRXN0aW1hdGVkIFZhbHVlOiAkIitoKyI8YnI+Iik6ZisoIk1pbmltdW0gRXN0aW1hdGVkIFZhbHVlOiAkIitnKyI8YnI+TWF4aW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiKSsoZSsiPGJyPiIpLGYrPSIoQWNjb3JkaW5nIHRvIENhbmFkaWFuIEJsYWNrIEJvb2ssIGxlc3MgcmVjb25kaXRpb25pbmcgY29zdHMsIGlmIGFwcGxpY2FibGUpPGJyPjxicj4iLGYrPSJBIHJlcHJlc2VudGF0aXZlIHdpbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBleHBsYWluIHRoZSBkZXRhaWxzIG9mIHRoZSB2YWx1ZXMuPGJyPjxicj4iLApmKz0iVGhhbmtzIGZvciB0cnVzdGluZyAiK2IrIiE8YnI+PGJyPiIpOihmPSJCb25qb3VyICIrJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSsiLDxicj48YnI+IixmPWYrKCJTdWl0ZSDDoCB2b3RyZSBkZW1hbmRlIGQnZXN0aW1hdGlvbiBkZSBsYSB2YWxldXIgZGUgdm90cmUgw6ljaGFuZ2UgcG91ciB1biAiK2QrIiwgdm9pY2kgbCfDqXZhbHVhdGlvbiBkZSB2b3RyZSB2w6loaWN1bGUgc2Vsb24gbGUgQ2FuYWRpYW4gQmxhY2sgQm9vazo8YnI+PGJyPiIpKygkKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8YnI+PGJyPiIpLGY9IjEiPT1jP2YrKCJWYWxldXIgZXN0aW3DqWU6ICQiK2grIjxicj4iKTpmKygiVmFsZXVyIGVzdGltw6llIG1pbmltYWxlOiAkIitnKyI8YnI+VmFsZXVyIGVzdGltw6llIG1heGltYWxlOiAkIikrCihlKyI8YnI+IiksZis9IihTZWxvbiBsZSBDYW5hZGlhbiBCbGFjayBCb29rLCBtb2lucyBsZXMgY2\/Du3RzIGRlIHJlY29uZGl0aW9ubmVtZW50IHNpIGFwcGxpY2FibGUpPGJyPjxicj4iLGYrPSJVbiBjb25zZWlsbGVyIGVudHJlcmEgZW4gY29tbXVuaWNhdGlvbiBzb3VzIHBldSBhdmVjIHZvdXMgYWZpbiBkZSBkaXNjdXRlciBkZSBjZXR0ZSB2YWxldXIgZXQgdm91cyBlbiBleHBsaXF1ZXIgbGVzIGTDqXRhaWxzLjxicj48YnI+IixmKz0iTWVyY2kgZGUgZmFpcmUgY29uZmlhbmNlIMOgICIrYisiITxicj48YnI+Iik7Zj1idG9hKGYpO249YnRvYShuKTtlbWFpbEhhbmRsZXIub25BZnRlckxlYWRDcmVhdGVkPXthY3Rpb246cixzdWJqZWN0Om4sbWVzc2FnZTpmLGVtYWlsOmEscGhvbmU6a319LG9uQmVmb3JlU3VibWl0QWNjdXRyYWRlTWVzc2FnZTpmdW5jdGlvbihhKXskKCIjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucHJvcCgiZGlzYWJsZWQiLCEwKTskKCIjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOwphPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxdIikudmFsKCk7dmFyIGs9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTFBIT05FXSIpLnZhbCgpLGQ9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksYj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSxjPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKTt2YXIgaD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikudmFsKCksZz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKCksZT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbCgpO2Q9CiQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2QrIiAiK2IrIiAiK2M6YisiICIrYysiICIrZDtiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ZGVhbGVyTmFtZVRyYWRlSW5dIikudmFsKCk7Yz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7dmFyIG49IiI7aWYoIlNNUyI9PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS52YWwoKSl2YXIgcj0iU01TIixmPSIxIj09Yz8kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iQWNjdS1UcmFkZSBlc3RpbWF0ZWQgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitkKyIgaXMgJCIraCsiLiBXZSdsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGRpc2N1c3MuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKToKIkxhIHZhbGV1ciBkJ8OpY2hhbmdlIEFjY3UtVHJhZGUgZXN0aW3DqWUgcG91ciB2b3RyZSAiK2QrIiBlc3QgJCIraCsiLiBOb3VzIGNvbW11bmlxdWVyb25zIGF2ZWMgdm91cyBzb3VzIHBldSBwb3VyIGVuIGRpc2N1dGVyLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkFjY3UtVHJhZGUgZXN0aW1hdGVkIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZCsiIGlzIGJldHdlZW4gJCIrZysiIGFuZCAkIitlKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiJMYSB2YWxldXIgZCfDqWNoYW5nZSBBY2N1LVRyYWRlIGVzdGltw6llIHBvdXIgdm90cmUgIisKZCsiIHNlIHNpdHVlIGVudHJlICQiK2crIiBldCAkIitlKyIuIE5vdXMgY29tbXVuaXF1ZXJvbnMgYXZlYyB2b3VzIHNvdXMgcGV1IHBvdXIgZW4gZGlzY3V0ZXIuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKTtlbHNlIHI9IkVNQUlMIixuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJJTVBPUlRBTlQ6IFlvdXIgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitkOiJJTVBPUlRBTlQ6IExhIHZhbGV1ciBkJ8OpY2hhbmdlIGRlIHZvdHJlICIrZCwkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8oZj0iSGkgIiskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKyIsPGJyPjxicj4iLGY9ZisoIkZvbGxvd2luZyB1cCBvbiB5b3VyIHJlY2VudCB0cmFkZSBlc3RpbWF0ZSByZXF1ZXN0IGZvciBhICIrCmQrIiwgaGVyZSBpcyB0aGUgZXN0aW1hdGUgZnJvbSBBY2N1LVRyYWRlOjxicj48YnI+IikrKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjxicj48YnI+IiksZj0iMSI9PWM\/ZisoIkVzdGltYXRlZCBWYWx1ZTogJCIraCsiPGJyPiIpOmYrKCJNaW5pbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIrZysiPGJyPk1heGltdW0gRXN0aW1hdGVkIFZhbHVlOiAkIikrKGUrIjxicj4iKSxmKz0iKEFjY29yZGluZyB0byBBY2N1LVRyYWRlLCBsZXNzIHJlY29uZGl0aW9uaW5nIGNvc3RzLCBpZiBhcHBsaWNhYmxlKTxicj48YnI+IixmKz0iQSByZXByZXNlbnRhdGl2ZSB3aWxsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZXhwbGFpbiB0aGUgZGV0YWlscyBvZiB0aGUgdmFsdWVzLjxicj48YnI+IixmKz0iVGhhbmtzIGZvciB0cnVzdGluZyAiK2IrIiE8YnI+PGJyPiIpOgooZj0iQm9uam91ciAiKyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkrIiw8YnI+PGJyPiIsZj1mKygiU3VpdGUgw6Agdm90cmUgZGVtYW5kZSBkJ2VzdGltYXRpb24gZGUgbGEgdmFsZXVyIGRlIHZvdHJlIMOpY2hhbmdlIHBvdXIgdW4gIitkKyIsIHZvaWNpIGwnw6l2YWx1YXRpb24gZGUgdm90cmUgdsOpaGljdWxlIHNlbG9uIEFjY3UtVHJhZGU6PGJyPjxicj4iKSsoJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKSsiPGJyPjxicj4iKSxmPSIxIj09Yz9mKygiVmFsZXVyIGVzdGltw6llOiAkIitoKyI8YnI+Iik6ZisoIlZhbGV1ciBlc3RpbcOpZSBtaW5pbWFsZTogJCIrZysiPGJyPlZhbGV1ciBlc3RpbcOpZSBtYXhpbWFsZTogJCIpKyhlKyI8YnI+IiksZis9IihTZWxvbiBBY2N1LVRyYWRlLCBtb2lucyBsZXMgY2\/Du3RzIGRlIHJlY29uZGl0aW9ubmVtZW50IHNpIGFwcGxpY2FibGUpPGJyPjxicj4iLApmKz0iVW4gY29uc2VpbGxlciBlbnRyZXJhIGVuIGNvbW11bmljYXRpb24gc291cyBwZXUgYXZlYyB2b3VzIGFmaW4gZGUgZGlzY3V0ZXIgZGUgY2V0dGUgdmFsZXVyIGV0IHZvdXMgZW4gZXhwbGlxdWVyIGxlcyBkw6l0YWlscy48YnI+PGJyPiIsZis9Ik1lcmNpIGRlIGZhaXJlIGNvbmZpYW5jZSDDoCAiK2IrIiE8YnI+PGJyPiIpO2Y9YnRvYShmKTtuPWJ0b2Eobik7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJMZWFkQ3JlYXRlZD17YWN0aW9uOnIsc3ViamVjdDpuLG1lc3NhZ2U6ZixlbWFpbDphLHBob25lOmt9fSxpbml0VHJhZGVJblN0ZXAxOmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkxvd10iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKDApOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoMCk7CiQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdIikucmVtb3ZlQ2xhc3MoInJlcVJhZGlvIik7JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKDApOyQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5wcm9wKCJjaGVja2VkIiwhMSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJRVUVTVElPTlMiXScpLnZhbCgiIik7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMSIpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCIpLmhpZGUoKTsKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtICN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5zaG93KCk7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwX2xpbmUxIikuc2hvdygpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDEpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuc2hvdygpO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSxpbml0VHJhZGVJblN0ZXAyOmZ1bmN0aW9uKGEpe3ZhciBrPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCJmb3JtIikuZmlyc3QoKS5zZXJpYWxpemVBcnJheSgpLGQ9JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoIi5lbWFpbEJvZHkiKS5odG1sKCkrIiIsYj0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgiLmVtYWlsU3ViamVjdCIpLmh0bWwoKSsKIiIsYz1bXTtbXS5wdXNoLmFwcGx5KGMsayk7JC5lYWNoKGMsZnVuY3Rpb24oKXt2YXIgaD1uZXcgUmVnRXhwKCJ7XFwkIit0aGlzLm5hbWUudG9VcHBlckNhc2UoKSsifSIsImciKSxnPXRoaXMudmFsdWU7IlNFQVJDSEVEVkVISUNMRSI9PXRoaXMubmFtZS50b1VwcGVyQ2FzZSgpJiYoZz0iPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+IitnKyI8L3NwYW4+Iik7ZD1kLnJlcGxhY2UoaCxnKTtiPWIucmVwbGFjZShoLHRoaXMudmFsdWUpfSk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9YjtlbWFpbEhhbmRsZXIuYm9keT1kO2VtYWlsSGFuZGxlci5zZW5kVG89YS5zZXR0aW5ncy5mb3JtLnNlbmRUbztlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWEuc2V0dGluZ3MuZm9ybS5zZW5kVG9BREY7ZW1haWxIYW5kbGVyLm1haWxJRD1hLnNldHRpbmdzLmZvcm0uZW1haWxpZDsiIiE9PWVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUbyYmKGVtYWlsSGFuZGxlci5zZW5kVG89ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvKTsKIiIhPT1lbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQmJihlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdCk7YT0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0iRk5BTUUiXScpLnZhbCgpLnNwbGl0KCIgIik7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9YS5zaGlmdCgpO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9YS5qb2luKCIgIik7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0iRU1BSUxQSE9ORSJdJykudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0iRU1BSUwiXScpLnZhbCgpO2E9ZW1haWxIYW5kbGVyLmdldEpzb25PYmplY3QoKTtlbWFpbEhhbmRsZXIuc3ViamVjdD0iIjtlbWFpbEhhbmRsZXIuYm9keT0KIiI7az0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCI7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09az8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvcmVnaXN0ZXJUcmFkZUxlYWQ\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTphLHN1Y2Nlc3M6ZnVuY3Rpb24oaCl7aC5wYXJ0aWFsTGVhZElEJiYkKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0idHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEIl0nKS52YWwoaC5wYXJ0aWFsTGVhZElEKX19KTskKCIudHJhZGVJbkJhclN0ZXAxIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpO2E9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsKIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpOyQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoJCgiLnRyYWRlSW5CYXJTdGVwMlRpdGxlIikudGV4dCgpKyIgIithKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXSIpLmFkZENsYXNzKCJyZXFSYWRpbyIpOyQoIi50cmFkZUluQmFyU3RlcDIiKS5zaG93KCl9LGluaXRUcmFkZUluU3RlcDM6ZnVuY3Rpb24oKXtwb3B1cElzU3VibWl0dGluZz0hMTskKCIjdHJhZGVJblN0ZXAzWWVzIikub24oImNsaWNrIixmdW5jdGlvbigpe3RyYWRlaW5wb3B1cGQyYy50cmFkZUluU3RlcDNZZXMoKTsKcmV0dXJuITF9KTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAzIikuc2hvdygpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2IikuaGlkZSgpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDMpOyQoImlucHV0W25hbWU9c3RlcDNkb25lXSIpLnZhbCgxKTt0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0sCnRyYWRlSW5TdGVwM1llczpmdW5jdGlvbigpe3RoaXMuaW5pdFRyYWRlSW5TdGVwNCgpfSxpbml0VHJhZGVJblN0ZXA0OmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAxIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0Iikuc2hvdygpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTt0aGlzLnNldEhlaWdodE1vYmlsZSg0KTsKJCgiI3RyYWRlSW5TdGVwNFllcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZigiIj09JCgiI3RyYWRlSW5LZXlTZWxlY3QiKS52YWwoKSlyZXR1cm4gJCgiI3RyYWRlSW5LZXlTZWxlY3QiKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksITE7dHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5TdGVwNENvbnRpbnVlKCk7cmV0dXJuITF9KTskKCIjdHJhZGVJbktleVNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5LZXlTZWxlY3QiKS5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9KTt0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0sdHJhZGVJblN0ZXA0Q29udGludWU6ZnVuY3Rpb24oKXsiIj09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1WSU5FWF0iKS52YWwoKT90aGlzLmluaXRUcmFkZUluU3RlcDUoKTp0aGlzLmluaXRUcmFkZUluU3RlcDYoKX0saW5pdFRyYWRlSW5TdGVwNTpmdW5jdGlvbigpeyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtICN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7CiQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAzIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2IikuaGlkZSgpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDUpOyQoIiN0cmFkZUluU3RlcDVZZXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5TdGVwNUNvbnRpbnVlKCk7cmV0dXJuITF9KTt0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0sCnRyYWRlSW5TdGVwNUNvbnRpbnVlOmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1WSU5FWF0iKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3N0ZXA1VmluIikudmFsKCkpO3RoaXMuaW5pdFRyYWRlSW5TdGVwNigpfSxpbml0VHJhZGVJblN0ZXA2OmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwX2xpbmUxIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtICN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDMiKS5oaWRlKCk7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2Iikuc2hvdygpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDYpO3RoaXMuaW5pdEltYWdlVXBsb2FkKCk7JCgiI3RyYWRlSW5TdGVwNlllcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjdHJhZGVJblN0ZXA2WWVzIikuaGlkZSgpO3RyYWRlaW5wb3B1cGQyYy51cGxvYWRJbWFnZXNUb0JhY2tlbmQoKX0pO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSxpbml0SW1hZ2VVcGxvYWQ6ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkLWFyZWEiKS5mb3JFYWNoKGE9Pntjb25zdCBrPWEucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT0iZmlsZSJdJyksZD1hLnF1ZXJ5U2VsZWN0b3IoIi5wbGFjZWhvbGRlciIpLApiPWEucXVlcnlTZWxlY3RvcigiLmRlbGV0ZS1idG4iKSxjPWEucXVlcnlTZWxlY3RvcigiLmFkZC1pY29uIiksaD1hLmRhdGFzZXQub3ZlcmxheTtoJiYoYS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YHVybCgke2h9KWApO2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ay52YWx1ZXx8ay5jbGljaygpfSk7ay5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGc9PntpZigoZz1nLnRhcmdldC5maWxlc1swXSkmJmcudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc3QgZT1uZXcgRmlsZVJlYWRlcjtlLm9ubG9hZD0oKT0+e2Quc3JjPWUucmVzdWx0O2Quc3R5bGUuZGlzcGxheT0iYmxvY2siO2Euc3R5bGUuYmFja2dyb3VuZEltYWdlPSJub25lIjtiLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtjLnN0eWxlLmRpc3BsYXk9Im5vbmUifTtlLnJlYWRBc0RhdGFVUkwoZyl9ZWxzZSBrLnZhbHVlPSIifSk7Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZz0+e2cuc3RvcFByb3BhZ2F0aW9uKCk7CmsudmFsdWU9IiI7ZC5zcmM9IiI7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjthLnN0eWxlLmJhY2tncm91bmRJbWFnZT1gdXJsKCR7aH0pYDtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Muc3R5bGUuZGlzcGxheT0iZmxleCI7cmV0dXJuITF9KTtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Quc3R5bGUuZGlzcGxheT0ibm9uZSJ9KX0sdXBsb2FkSW1hZ2VzVG9CYWNrZW5kOmZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIik7Y29uc3Qgaz1uZXcgRm9ybURhdGE7bGV0IGQ9ITE7YS5mb3JFYWNoKGI9PntiPWIucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT0iZmlsZSJdJyk7MDxiLmZpbGVzLmxlbmd0aCYmYi5maWxlc1swXS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYoay5hcHBlbmQoImltYWdlc1tdIixiLmZpbGVzWzBdLGIuZ2V0QXR0cmlidXRlKCJkYXRhLW5hbWUiKSksZD0hMCl9KTtkPyhhPQokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09YT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvdXBsb2FkVHJhZGVJbkltYWdlcyIsY29udGVudFR5cGU6ITEscHJvY2Vzc0RhdGE6ITEsZGF0YTprLHN1Y2Nlc3M6ZnVuY3Rpb24oYil7aWYoYi5sZW5ndGgpeyRkYXRhT2JqPUpTT04ucGFyc2UoYik7JGltYWdlRXhWYWx1ZT0iIjtmb3IoYj0wO2I8JGRhdGFPYmoubGVuZ3RoO2IrKykkaW1hZ2VFeFZhbHVlKz0kZGF0YU9ialtiXS5maWxlbmFtZSsiIDogIiskZGF0YU9ialtiXS5maWxlVXJsKyIgXG4iOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSQURFSU5JTUFHRUVYIl0nKS52YWwoJGltYWdlRXhWYWx1ZSl9JCgiLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnRyaWdnZXIoImNsaWNrIil9fSkpOiQoIi50cmFkZUluQmFyUG9wdXBTdWJtaXQiKS50cmlnZ2VyKCJjbGljayIpfSwKc2V0SGVpZ2h0TW9iaWxlKGEpe2lmKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkpc3dpdGNoKGEpe2Nhc2UgMjokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI1NDBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjUzMHB4Iik7YnJlYWs7Y2FzZSAzOiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjYwMHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNTkwcHgiKTticmVhaztjYXNlIDQ6JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwiNTQwcHgiKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIikuY3NzKCJoZWlnaHQiLCI1MzBweCIpO2JyZWFrO2Nhc2UgNTokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI1MzBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsCiI1MjBweCIpO2JyZWFrO2Nhc2UgNjokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI3NTBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjc0MHB4Iik7YnJlYWs7ZGVmYXVsdDokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI5ODBweCIpLCQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjk3MHB4Iil9fSx0cmFkZUluQm90dG9tTG9nb0hlaWd0OmZ1bmN0aW9uKCl7aWYoJCgiLnRyYWRlSW5Cb3R0b21Mb2dvIikubGVuZ3RoKXt2YXIgYT0kKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIik7bGV0IGs9JCgiLnRyYWRlSW5Cb3R0b21Mb2dvIiksZD0kKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciIpLGI9JCgiI2lzTW9iaWxlIikubGVuZ3RoJiYiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpLGM9JCgiLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpOwphPWEuaW5uZXJIZWlnaHQoKS1rLnBvc2l0aW9uKCkudG9wO2QubGVuZ3RoJiZkLmlzKCI6dmlzaWJsZSIpJiYoYS09ZC5vdXRlckhlaWdodCghMCkrKGI\/MDpjPzEwOjMwKSk7JCgiLnRyYWRlSW5Cb3R0b21Mb2dvIikuaGVpZ2h0KGErInB4Iil9fX07Ci8qKiAvanMvcG9wdXBpemVyLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwaXplcmpzX2Nfb249IjIwMjYtMDYtMDQgMDk6MzA6MTMiOyd1c2Ugc3RyaWN0Jztpc1NjcmF0Y2hBbmRTYXZlPSJ1bmRlZmluZWQiPT10eXBlb2YgaXNTY3JhdGNoQW5kU2F2ZT8iIjppc1NjcmF0Y2hBbmRTYXZlO3BvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkPSJ1bmRlZmluZWQiPT10eXBlb2YgcG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ\/IiI6cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ7c2hvd1BvcHVwV2lkZ2V0PSJmdW5jdGlvbiIhPXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ\/ZnVuY3Rpb24oKXt9OnNob3dQb3B1cFdpZGdldDthY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD0iZnVuY3Rpb24iIT10eXBlb2YgYWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ\/ZnVuY3Rpb24oKXt9OmFjdGl2YXRlUG9wdXBCZWZvcmVMb2FkOwp2YXIgcG9wdXBJc1N1Ym1pdHRpbmc9ITEsQ1BvcHVwU3VwZXJ2aXNvcj1mdW5jdGlvbigpe3ZhciBjPXRoaXM7Yy5vbmxvYWRRdWV1ZT1bXTtjLmluZGV4PTA7Yy5pc0FuaW1hdGluZz0hMTtjLnBvcHVwcz1bXTtjLnJlZ2lzdGVyPWZ1bmN0aW9uKGEpe3ZhciBrPTA7MDxOdW1iZXIoYS5zZXR0aW5ncy5zaG93b25sb2FkKSYmITAhPT1hLnNldHRpbmdzLnNob3dvbmxvYWQmJihrPWEuc2V0dGluZ3Muc2hvd29ubG9hZCk7dmFyIGI9MTsxPGEuc2V0dGluZ3MucHJpb3JpdHkmJihiPWEuc2V0dGluZ3MucHJpb3JpdHkpOzEhPUNvb2tpZXMuZ2V0KCJub3VzZWRjdGEiKXx8InVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKT9jLm9ubG9hZFF1ZXVlLnB1c2goe3BvcHVwOmEsZGVsYXk6ayxwcmlvcml0eTpifSk6Y29uc29sZS5sb2coIk5vdCBzaG93aW5nIHBvcHVwIG9ubG9hZCwgYmVjYXVzZSBpdHMgYSB1c2VkIHBhZ2UgYW5kIHRoZSBjb29raWUgbm91c2VkY3RhIGlzIHNldCIpfTsKYy5yZXBvc2l0aW9uPWZ1bmN0aW9uKCl7aWYoIShwb3B1cGl6ZXJBY3RpdmUoKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuaXNBY3RpdmUmJm1vZGVsQ29uZmlnLmlzQWN0aXZlKCkpKXJldHVybiAkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsIiIpLCExO2lmKGMuaXNBbmltYXRpbmcpcmV0dXJuITE7dmFyIGE9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuaW5uZXJIZWlnaHQ\/d2luZG93LmlubmVySGVpZ2h0OiQod2luZG93KS5oZWlnaHQoKSxrPSQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLGI9L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/NToyMDskKCIucmV2ZWFsLW1vZGFsIikuZWFjaChmdW5jdGlvbihkLGUpe2Q9JCh0aGlzKTtpZigidmlzaWJsZSI9PWQuY3NzKCJ2aXNpYmlsaXR5Iikpe2U9ZC5vZmZzZXQoKS50b3A7dmFyIGg9ZC5vdXRlckhlaWdodCgpLGw9ZStoO2lmKGE8aCtifHxuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC8oaVBob25lfGlQb2QpL2cpKXtpZigkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsCiJhdXRvIiksaz5sfHxrK2E8ZSllPWsrYixjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmUrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfWVsc2UgZT1rKyhhLWgpLzIsZT1lPGI\/YjplLGMuaXNBbmltYXRpbmc9ITAsZC5hbmltYXRlKHt0b3A6ZSsicHgifSwyMDAsZnVuY3Rpb24oKXtjLmlzQW5pbWF0aW5nPSExfSl9fSl9O2Muc2hvdz1mdW5jdGlvbigpe2lmKCEoMDwkKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmIjEiPT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpKSYmKGMub25sb2FkUXVldWUuc29ydChmdW5jdGlvbihhLGspe2lmKGEucHJpb3JpdHk+ay5wcmlvcml0eSlyZXR1cm4gMTtpZihhLnByaW9yaXR5PGsucHJpb3JpdHkpcmV0dXJuLTE7aWYoYS5wcmlvcml0eT09ay5wcmlvcml0eSlyZXR1cm4gYS5kZWxheTxrLmRlbGF5PzE6LTF9KSwoIkJVSUxEQU5EUFJJQ0UiIT1wYWdlfHwiLTEiIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKSYmCjA8Yy5vbmxvYWRRdWV1ZS5sZW5ndGgpKXtmb3Ioa2V5IGluIGMub25sb2FkUXVldWUpaWYoMT09Yy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLnNldHRpbmdzLmVuZFBvcHVwUXVldWUpcmV0dXJuIGMub25sb2FkUXVldWVba2V5XS5wb3B1cC5vcGVuKGMub25sb2FkUXVldWVba2V5XS5kZWxheSksITE7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5vcGVuKGMub25sb2FkUXVldWVba2V5XS5kZWxheSl9fTt2YXIgbT1mdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBzZXRUaW1lb3V0KG0sNTAwKSwhMTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQWN0aXZlKCkpcmV0dXJuIG0oKTskLnBvc3RNZXNzYWdlKCJjbG9zZVBvcHVwIiwiKiIsd2luZG93LnBhcmVudCl9LDFFMyl9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXswPCQoIiNhdXRvYXViYWluZV9wb3B1cCIpLmxlbmd0aCYmImZhbHNlIiE9JCgiI2F1dG9hdWJhaW5lX3BvcHVwIikudmFsKCkmJgptKCl9LDVFMyl9LHBvcHVwU3VwZXJ2aXNvcj1uZXcgQ1BvcHVwU3VwZXJ2aXNvcixwb3B1cGl6ZXJBY3RpdmU9ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuKXJldHVybiEwO3ZhciBjPSExOyQoIi5yZXZlYWwtbW9kYWwsIC5yZXZlYWwtbW9kZWwtZG8tbm90LXNob3ciKS5lYWNoKGZ1bmN0aW9uKCl7aWYoMSE9Yyl7dmFyIG09JCh0aGlzKTtpZighbS5pcygiOmhpZGRlbiIpKXN3aXRjaChtLmNzcygidmlzaWJpbGl0eSIpKXtjYXNlICJ1bmRlZmluZWQiOmNhc2UgInZpc2libGUiOmM9ITB9fX0pO2lmKCQoIi5wcF9vdmVybGF5IikuaXMoIjp2aXNpYmxlIil8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1vdmVybGF5IikpYz0hMDtyZXR1cm4gY30scG9wdXBpemVyQ29uZmlnPXt9OyQuZXh0ZW5kKCEwLHBvcHVwaXplckNvbmZpZyx7cG9wdXBPcGVuOiExfSk7CnZhciBwb3B1cGl6ZXI9ZnVuY3Rpb24oYyxtKXt2YXIgYT10aGlzLGs9ImF1dG8iO2M\/YS50YXJnZXQ9YzpjPWEudGFyZ2V0O2Euc2V0dGluZ3M9bTthLnNldFRyaWdnZXI9ZnVuY3Rpb24oYil7az0ic3RyaW5nIj09dHlwZW9mIGImJiJjbGljayI9PWIudG9Mb3dlckNhc2UoKT8iY2xpY2siOiJhdXRvIjthLnNldHRpbmdzLnRyaWdnZXI9aztyZXR1cm4gYX07YS5pbml0PWZ1bmN0aW9uKCl7dmFyIGI9ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVJbml0aWFsaXplLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemU7aWYoYS5pc0NvbnRlbnRMb2FkZWQoKXx8IWImJiFkKXtpZihiKXt2YXIgZT1hLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZS5jYWxsKGMsYSk7aWYoMD09ZSlyZXR1cm59Yj0hMTtpZihhLnNldHRpbmdzLnRocmVzaG9sZCYmYS5zZXR0aW5ncy5tYWlucG9wdXApe2Euc2V0dGluZ3Muc2hvd29ubG9hZD0hMTsKaWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUmJihiPSEwLGU9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09ZSkpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufXRocmVzaG9sZEV4ZWMoYS5zZXR0aW5ncy50aHJlc2hvbGRWYWx1ZS8xMDAsYS5leGVjT3Blbil9aWYoYS5zZXR0aW5ncy5zY3JvbGx1cCYmYS5zZXR0aW5ncy5tYWlucG9wdXApe2Euc2V0dGluZ3Muc2hvd29ubG9hZD0hMTtpZihkJiYoYj0hMCxlPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWUpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1zY3JvbGx1cEV4ZWMoYS5leGVjT3Blbil9Yy5hZGRDbGFzcygicmV2ZWFsLW1vZGFsIik7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFkZGVkQ2xhc3NlcyYmMDxhLnNldHRpbmdzLmFkZGVkQ2xhc3Nlcy5sZW5ndGgmJmMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMpOwokKCJmb3JtIixjKS5vbigic3VibWl0IixhLnN1Ym1pdCk7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnNldHRpbmdzLmFuaW1hdGlvbiYmZS5nZXRDb250ZXh0JiYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QmJihhLnNldHRpbmdzLnJldmVhbC5hbmltYXRpb249ImV4dGVybmFsQW5pbWF0aW9uIixjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLmVmZmVjdCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uc3BlZWQmJmMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hbmltYXRpb24uc3BlZWQpKTthLnNldHRpbmdzLmluaXRpYWxpemVkPSEwO2MudHJpZ2dlcigicG9wdXBpemVyLmluaXRpYWxpemVkIixhKTtpZihkJiYhYiYmKGU9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09ZSkpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufWEuc2F2ZVNldHRpbmdzKCk7ZD0kKCIjaGlkZGVuU2tpcE9ubG9hZFByaW50c2NyZWVuIik7CmlmKDA8ZC5sZW5ndGgmJiJET19TS0lQX1BPUFVQIj09ZC52YWwoKSlyZXR1cm4hMTshYS5zZXR0aW5ncy5zaG93b25sb2FkfHxudWxsIT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIil8fG51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSl8fDEhPWEuc2V0dGluZ3MuY2xvc2VCdXR0b24mJjAhPWEuc2V0dGluZ3MuY2xvc2VCdXR0b258fCgtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL3JlcXVlc3QvIil8fC0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvZGVtYW5kZXMvIikpJiYtMT09YS5zZXR0aW5ncy5uYW1lLmluZGV4T2YoImltYWdlUG9wdXAiKXx8cG9wdXBTdXBlcnZpc29yLnJlZ2lzdGVyKGEpOyQoZG9jdW1lbnQpLm9mZigiY2xpY2siLCIuIittLnJldmVhbC5kaXNtaXNzbW9kYWxjbGFzcykub24oImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MsZnVuY3Rpb24oaCl7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuY2xvc2UiLApjKX0pOyQoZG9jdW1lbnQpLm9mZigia2V5dXAiKS5vbigia2V5dXAiLGZ1bmN0aW9uKGgpezI3PT09aC53aGljaCYmYy50cmlnZ2VyKCJwb3B1cGl6ZXIuY2xvc2UiLGMpfSk7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5zZXR0aW5ncy5mb3JtLmZyb21BQSYmKGVtYWlsSGFuZGxlci5mcm9tQUE9YS5zZXR0aW5ncy5mb3JtLmZyb21BQSk7cmV0dXJuIGF9YS5sb2FkKGEuaW5pdCl9O2Eub25PcGVuPWZ1bmN0aW9uKCl7YS5pc0NvbnRlbnRMb2FkZWQoKXx8YS5sb2FkKCk7aWYoImF1dG8iPT1rJiZudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpKXJldHVybiExO3ZhciBiPWVtYWlsSGFuZGxlci5nZXROZXdTZXF1ZW5jZSgpO2Iuc2V0QWN0aW9uKGZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLmRlYWxlclNlbGVjdEZ1bmMoITAsdGhpcyl9KTt2YXIgZD1lbWFpbEhhbmRsZXIuZ2V0TmV3U2VxdWVuY2UoKTtkLnNldEFjdGlvbihmdW5jdGlvbigpe2MuZmluZCgiLnBvcHVwaXplckJvZHkiKS5zaG93KCk7CmlmKG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSljLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5yZW1vdmVDbGFzcygibW9kYWwtY2xvc2UtaGlkZSIpLGMuZmluZCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnNob3coKTthLmNyZWF0ZUNvbmZpcm1Gb3JtKCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVPcGVuJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlT3Blbi5jYWxsKGMsYSkpcmV0dXJuITE7dmFyIGU9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKTthLnRhcmdldC5maW5kKCIjaW1hZ2VQb3B1cExlYWRUeXBlIikubGVuZ3RoJiYoZT0iL3BvcHVwLSIrYS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZCIpLnJlcGxhY2UoL1tcblxyXS9nLAoiICIpKTthLnRhcmdldC5maW5kKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5sZW5ndGgmJihlPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/Ii9uZXVmcy9jYWxjdWxhdHJpY2UtcHJldC1hdXRvLXBvcHVwLmh0bWwiOiIvbmV3L2Nhci1sb2FuLWNhbGN1bGF0b3ItcG9wdXAuaHRtbCIpO2dhUGFnZVZpZXcoZSk7Z2E0UGFnZVZpZXcoZSk7YS5sb2dFdmVudCgicG9wdXAub3BlbiIpOyJsaXZlIj09JCgiI3RvcGRlcGxveW1lbnR0eXBlIikudmFsKCkmJmdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1MYXVuY2hlZCIsYS5zZXR0aW5ncy5uYW1lLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpO2Euc2V0dGluZ3MuY291bnRkb3duJiZhLmluaXRDb3VudGRvd24oKTtjLmRhdGEoIm9wZW4iLCEwKTtwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuPSEwOyJvbk9wZW4iPT1hLnNldHRpbmdzLmNvb2tpZUNyZWF0ZSYmYS5zZXRDb29raWUoKTtlPWMuZmluZCgiZm9ybSIpLmZpcnN0KCk7CmUuZmluZCgnaW5wdXQgW3R5cGU9InRleHQiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9mZigiZm9jdXMgYmx1ciBjaGFuZ2UiKS5jc3MoImNvbG9yIiwiIzAwMCIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7dmFyIGg9bmV3IEZvcm07aC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrIiBpbnB1dC5waG9uZSIpO2gubWFza1Bob25lKGMuZmluZCgiZm9ybSIpLnNlbGVjdG9yKyIgaW5wdXQubW9iaWxlIik7MDxlLmZpbmQoIi5waG9uZS5yZXF1aXJlZCIpLmxlbmd0aD9lbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9MTplbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9MDthLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmZW1haWxIYW5kbGVyLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtTG9hZGVkIixhLnNldHRpbmdzLmZvcm0uZW1haWxpZCxhLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlKTthLnNldHRpbmdzLnJldmVhbC5jbG9zZWQ9CmEub25DbG9zZTtjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7JCgiI2Zsb2F0UHJvbW9Ub3BCdG5Db250YWluZXIiKS5oaWRlKCk7JCgiI2NvbnRhaW5lckZsQiIpLmhpZGUoKTskKCIjdG9hc3QtY29udGFpbmVyIikuaGlkZSgpOyQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmhpZGUoKTthLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcyYmKGU9YS5zZXR0aW5ncy5mb3JtLk9LQnV0dG9uQ2xhc3MsIi4iPT1lWzBdJiYoZT1lLnN1YnN0cmluZygxKSksJCgiLiIrZSxjKS5vZmYoImNsaWNrIikub24oImNsaWNrIixhLnN1Ym1pdCkpO2Euc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcyYmKGU9YS5zZXR0aW5ncy5mb3JtLkNhbmNlbEJ1dHRvbkNsYXNzLCIuIj09ZVswXSYmKGU9ZS5zdWJzdHJpbmcoMSkpLCQoIi4iK2UsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5jYW5jZWwpKTtjLnRyaWdnZXIoInBvcHVwaXplci5vbk9wZW4iLGEpfSk7JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9CRUZPUkVfUE9QVVAiKS5sZW5ndGgmJgoiMSI9PSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfQkVGT1JFX1BPUFVQIikudmFsKCk\/ImF1dG8iIT1rP2Iuc2V0TmV4dChkKS5leGV1dGUoKTpkLmV4ZXV0ZSgpOmQuZXhldXRlKCl9O2Eub25DbG9zZT1mdW5jdGlvbigpe2MuZGF0YSgib3BlbiIsITEpO3BvcHVwaXplckNvbmZpZy5wb3B1cE9wZW49ITE7YS5zZXR0aW5ncy5zdWJtaXR0ZWR8fGEubG9nRXZlbnQoInBvcHVwLmNhbmNlbCIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIjdG9hc3QtY29udGFpbmVyIikuc2hvdygpfSw1MDApO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIucmV2ZWFsLW1vZGFsLWJnIikubGVuZ3RoJiYkKCIucmV2ZWFsLW1vZGFsLWJnIikucmVtb3ZlKCl9LDFFMyk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25DbG9zZSIsYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25DbG9zZSYmYS5zZXR0aW5ncy5vbkNsb3NlLmNhbGwoYyxhKX07YS5zdWJtaXQ9ZnVuY3Rpb24oKXtpZihwb3B1cElzU3VibWl0dGluZylyZXR1cm4hMTsKcG9wdXBJc1N1Ym1pdHRpbmc9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe3BvcHVwSXNTdWJtaXR0aW5nPSExfSwzRTMpO3ZhciBiPWMuZmluZCgiZm9ybSIpLmZpcnN0KCksZD1bXSxlPSIiLGg9IiIsbD1bXSxwPVtdLGc9ITAsdD0iIix6PSIiLEE9IiI7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uKXN3aXRjaChhLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGlvbi5jYWxsKGIsYyxhKSl7Y2FzZSAhMTpjYXNlIDA6cmV0dXJuIHBvcHVwSXNTdWJtaXR0aW5nPSExO2Nhc2UgLTE6Zz0hMX1pZihnKXskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpO2IuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtiLmZpbmQoImlucHV0LnJlcXVpcmVkLCBzZWxlY3QucmVxdWlyZWQsIHRleHRhcmVhLnJlcXVpcmVkIikucmVxdWlyZSgpO3ZhciB2PSExLEI9ITEsCnc9ITE7Yi5maW5kKCJpbnB1dCIpLmZpbHRlcigiLnJlcVJhZGlvIikucmFkaW9PcHRpb25DaG9zZW4oKTtiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPSQodGhpcyk7Zi5oYXNDbGFzcygiZW1haWwiKSYmKGYuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8Zi52YWwoKS5sZW5ndGgpJiYodz0hMCk7aWYoZi5oYXNDbGFzcygicGhvbmUiKXx8Zi5oYXNDbGFzcygibW9iaWxlIikpaWYoQj0hMCxmLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwwPGYudmFsKCkubGVuZ3RoKXY9ITB9KTswPT12JiYwPT13JiYoQj92PSEwOnc9ITApO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTtmLmhhc0NsYXNzKCJlbWFpbCIpJiZmLnZhbGlkRW1haWxBZGRyZXNzKCk7Zi5oYXNDbGFzcygicGhvbmUiKSYmZi52YWxpZGF0ZVBob25lKCk7Zi5oYXNDbGFzcygibW9iaWxlIikmJmYudmFsaWRhdGVNb2JpbGUoKX0pOzE+Yy5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5sZW5ndGgmJgpjLmFwcGVuZCgnPGRpdiBjbGFzcz0iTWlzc2luZ1ZhbGlkYXRpb25Nc2ciPjwvZGl2PicpO2lmKCEkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXJldHVybiAkKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGMpLnNob3coKSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixmdW5jdGlvbihmKXskKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGMpLmhpZGUoKTskKHRoaXMpLm9mZihmKX0pLGEubG9nRXZlbnQoInBvcHVwLnZhbGlkYXRpb25GYWlsZWQiKSxwb3B1cElzU3VibWl0dGluZz0hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZXN1Ym1pdCl7Zz0hMDt0cnl7Zz1hLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0LmNhbGwoYyxhKX1jYXRjaChmKXtjb25zb2xlLmxvZygiT24gYmVmb3JlIHN1Ym1pdCBmYWlsZWQsIHJldHVybmluZyB0cnVlLiIsZil9aWYoMD09ZylyZXR1cm4gYS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCksITF9YS5sb2dFdmVudCgicG9wdXAuc3VibWl0Iik7CmIuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTsoZi5oYXNDbGFzcygiZW1haWwiKXx8ImVtYWlsIj09PWYuYXR0cigidHlwZSIpKSYmZC5wdXNoKGYudmFsKCkpO2YuaGFzQ2xhc3MoInBvc3RhbCIpJiYoZT1mLnZhbCgpKTtmLmhhc0NsYXNzKCJ0cmFkZWluIikmJihoPWYudmFsKCkpOyhmLmhhc0NsYXNzKCJwaG9uZSIpfHxmLmhhc0NsYXNzKCJtb2JpbGUiKXx8InRlbCI9PT1mLmF0dHIoInR5cGUiKSkmJnAucHVzaChmLnZhbCgpKTsidW5kZWZpbmVkIj09dHlwZW9mIGYuYXR0cigibmFtZSIpJiZmLmF0dHIoIm5hbWUiLCIiKTsoZi5oYXNDbGFzcygibmFtZSIpfHwibmFtZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnB1c2goZi52YWwoKSk7KGYuaGFzQ2xhc3MoImZpcnN0bmFtZSIpfHwiZmlyc3RuYW1lIj09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwudW5zaGlmdChmLnZhbCgpKTsoZi5oYXNDbGFzcygibGFzdG5hbWUiKXx8CiJsYXN0bmFtZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnB1c2goZi52YWwoKSk7aWYoZi5oYXNDbGFzcygiY29tbWVudCIpfHwiY29tbWVudCI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpdD1mLnZhbCgpO2lmKGYuaGFzQ2xhc3MoImFkZHJlc3MiKXx8ImFkZHJlc3MiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXo9Zi52YWwoKTtpZihmLmhhc0NsYXNzKCJiaXJ0aGRhdGUiKXx8ImJpcnRoZGF0ZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpQT1mLnZhbCgpfSk7Zz1iLnNlcmlhbGl6ZUFycmF5KCk7dmFyIHg9JCgiLmVtYWlsQm9keSIsYykuaHRtbCgpKyIiLHU9JCgiLmVtYWlsU3ViamVjdCIsYykuaHRtbCgpKyIiOyJQcmljZVZlaGljbGUiPT1hLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmMD09Yi5maW5kKCJbbmFtZT1ub0NCQl0iKS52YWwoKSYmIlNNUyI9PWIuZmluZCgiI3RyYWRlSW5CYXJTbXNPckVtYWlsU21zOmNoZWNrZWQiKS52YWwoKSYmCih1Kz0iIChTTVMpIik7dmFyIHE9W107W10ucHVzaC5hcHBseShxLGcpO1tdLnB1c2guYXBwbHkocSxhLmdsb2JhbFJlcGxhY2VtZW50cygpKTskLmVhY2gocSxmdW5jdGlvbigpe3ZhciBmPW5ldyBSZWdFeHAoIntcXCQiK3RoaXMubmFtZS50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpLG49dGhpcy52YWx1ZTsiU0VBUkNIRURWRUhJQ0xFIj09dGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkmJihuPSI8c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4iK24rIjwvc3Bhbj4iKTt4PXgucmVwbGFjZShmLG4pO3U9dS5yZXBsYWNlKGYsdGhpcy52YWx1ZSl9KTtnPXtzZW5kVG86YS5zZXR0aW5ncy5mb3JtLnNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6YS5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERixjb25kaXRpb246YS5zZXR0aW5ncy52ZWhpY2xlU3RhdGUsbWFpbElEOmEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLHN1YmplY3Q6dSxib2R5OngsdXNlclBvc3RhbDplLGFkZHJlc3M6eixiaXJ0aGRhdGU6QSx0cmFkZWluOmgsCnBvcHVwZGl2OiIiLHVzZXJFbWFpbDpkLmpvaW4oIjsiKSx1c2VyTmFtZTpsLmpvaW4oIiAiKSx1c2VyUGhvbmU6cC5qb2luKCIsIiksc21zOmEuc2V0dGluZ3MuZm9ybS5zbXMscG9wdXBPZmZlclR5cGU6YS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSxjb21tZW50czp0fTskLmV4dGVuZCghMCxlbWFpbEhhbmRsZXIsZyk7InN0cmluZyI9PXR5cGVvZiBlbWFpbEhhbmRsZXIudXNlck5hbWUmJihnPWVtYWlsSGFuZGxlci51c2VyTmFtZS5zcGxpdCgiICIpLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWcuc2hpZnQoKSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWcuam9pbigiICIpKTtlbWFpbEhhbmRsZXIucG9wdXBkaXY9YS50YXJnZXQuYXR0cigiaWQiKTtpZihhLnNldHRpbmdzLmZpbGxmbGFnKXZhciBDPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDkwLCIvIik7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuZm9ybUZpbGxlZCIsYSl9O2lmKCJmdW5jdGlvbiI9PQp0eXBlb2YgZW1haWxIYW5kbGVyLmNhbGxiYWNrJiYwPGVtYWlsSGFuZGxlci5jYWxsYmFjay5sZW5ndGgpdmFyIEQ9ZW1haWxIYW5kbGVyLmNhbGxiYWNrO3ZhciBFPWZ1bmN0aW9uKCl7cmV0dXJuITB9OyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJzdWJtaXQmJihFPWEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ZnVuY3Rpb24oKXtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PWZ1bmN0aW9uKGYpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdD9hLmNsb3NlKCk6Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExO2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uRHVwbGljYXRlU2VuZD0KZnVuY3Rpb24oKXthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQmJmEuY2xvc2UoKTtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKGYpe3ZhciBuPSExO2Euc2V0dGluZ3MuZm9ybS5zaG93RW1haWxDb25maXJtYXRpb24mJihuPWdldE1haWxTZW50SGFuZGxlcigiXyIrYy5hdHRyKCJpZCIpKSxuLnRpbWVvdXRDYWxsYmFjaz1mdW5jdGlvbigpe2IudHJpZ2dlcigicmVzZXQiKX0pO3ZhciBGPWEuc2V0dGluZ3MuY2xvc2VPblN1Ym1pdDtpZihmKWEubG9nRXZlbnQoInBvcHVwLmxlYWRfc2VudCIpLDA9PUUuY2FsbChjLGEpJiYoRj0hMSksImZ1bmN0aW9uIj09dHlwZW9mIEMmJkMoKSwiZnVuY3Rpb24iPT10eXBlb2YgRCYmRCgpLCJvblN1Ym1pdCI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpLEYmJiJoaWRkZW4iIT1jLmNzcygidmlzaWJpbGl0eSIpJiZhLmNsb3NlKCJDT05TRU5UIiksYS5zZXR0aW5ncy5tYWlucG9wdXAmJgooZW1haWxIYW5kbGVyLm1haW5Qcm9tbz0hMCksbj9uLnNob3dTdWNjZXNzKCk6MDwkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLmxlbmd0aCYmJCgiZm9ybSMiK2MuYXR0cigiaWQiKSsiX2NvbmZpcm0iKS50cmlnZ2VyKCJzdWJtaXQiKTtlbHNle258fChuPWdldE1haWxTZW50SGFuZGxlcigpKTt0cnl7bi5zaG93RmFpbCgpfWNhdGNoKEcpe319c2V0VGltZW91dChlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKSwxRTMpfTthLnNhdmVTZXR0aW5ncyh7c3VibWl0dGVkOiEwfSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVTZW5kTWFpbCYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsLmNhbGwoYyxhKSlyZXR1cm4hMTthLnNldERlZmF1bHRBREYoKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFERiYmKGc9YS5zZXR0aW5ncy5vbkFERi5jYWxsKGMsYSksIm9iamVjdCI9PXR5cGVvZiBnJiYkLmV4dGVuZChhLnNldHRpbmdzLkFERiwKZykpO2c9Im1ha2UgbW9kZWwgeWVhciBzdG9ja051bWJlciB0cmltIHZpbiBwcmljZSBjYXJpZCIuc3BsaXQoIiAiKTtxPWEuc2V0dGluZ3MuQURGO2Zvcih2YXIgeT0wO3k8Zy5sZW5ndGg7eSsrKXt2YXIgcj1nW3ldO2VtYWlsSGFuZGxlcltyXT0iIiE9ZW1haWxIYW5kbGVyW3JdP2VtYWlsSGFuZGxlcltyXTpxW3JdP3Fbcl06ZW1haWxIYW5kbGVyW3JdfWVtYWlsSGFuZGxlci5ib2R5PWEuY2xlYW5CbGFua1ZhcmlhYmxlcyhlbWFpbEhhbmRsZXIuYm9keSk7YS5zaG93UHVyY2hhc2VJbnRlbnRQb3B1cCgpfHxlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KTtyZXR1cm4hMH07YS5zaG93UHVyY2hhc2VJbnRlbnRQb3B1cD1mdW5jdGlvbigpe2lmKGEuc2V0dGluZ3MucHVyY2hhc2VJbnRlbnRQb3B1cCl7dmFyIGI9JCgiI2ludGVyc3RpdGlhbFZlaGljbGVJbnRlbnQiKTtpZigxPmIubGVuZ3RofHxudWxsIT1Db29raWVzLmdldCgicHVyY2hhc2VfaW50ZW50IikpcmV0dXJuITE7CmdhVHJhY2soIl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBkJ2FjaGF0IiwiUG9wdXAgdnVzIixhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsLDEpO2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2IuZmluZCgiZm9ybSIpLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7dmFyIGQ9JCh0aGlzKSxlPWQuZmluZCgiaW5wdXQiKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCJ9KS5zdGFydCgpO2QuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtlLmZpbHRlcigiLnJlcXVpcmVkIikucmVxdWlyZSgpLm5vbkh0bWwoKTtlLmZpbHRlcigiLnJlcVJhZGlvIikucmFkaW9PcHRpb25DaG9zZW4oKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO3ZhciBoPXtwdXJjaGFzZV9pbnRlbnQ6ITB9O2Quc2VyaWFsaXplQXJyYXkoKS5tYXAoZnVuY3Rpb24obCxwLGcpe2hbbC5uYW1lXT0KbC52YWx1ZX0pO0Nvb2tpZXMuc2V0KCJwdXJjaGFzZV9pbnRlbnQiLGgucHVyY2hhc2VfaW50ZW50LDMwLCIvIik7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJSZXBvbnNlcyIsaC5wdXJjaGFzZV9pbnRlbnQsMSk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKGEuc2V0dGluZ3MuYnlwYXNzQ29uc2VudCl9cmV0dXJuITF9KTtiLnJldmVhbCh7Y2xvc2Vfb25fYmFja2dyb3VuZF9jbGljazohMSxkaXNtaXNzX21vZGFsX2NsYXNzOiJfX05VTExfXyJ9KTtyZXR1cm4hMH1yZXR1cm4hMX07YS5nbG9iYWxSZXBsYWNlbWVudHM9ZnVuY3Rpb24oKXt2YXIgYj1bXTskKCJpbnB1dFt0eXBlPWhpZGRlbl0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS5hdHRyKCJuYW1lIik7Zz0idW5kZWZpbmVkIiE9dHlwZW9mIGc\/ZzokKHRoaXMpLmF0dHIoImlkIik7aWYoIWcpcmV0dXJuITA7dmFyIHQ9ITE7ImVtYWlsYnVpbGRhbmRwcmljZSI9PWcudG9Mb3dlckNhc2UoKSYmCiIiPT0kKHRoaXMpLnZhbCgpLnJlcGxhY2UoLyAvZywiIikmJih0PSEwKTt0fHwoImJyYW5kIj09Zy50b0xvd2VyQ2FzZSgpJiZiLnB1c2goe25hbWU6Im1ha2UiLHZhbHVlOiQodGhpcykudmFsKCl9KSxiLnB1c2goe25hbWU6Zyx2YWx1ZTokKHRoaXMpLnZhbCgpfSkpfSk7dmFyIGQ9IiI7aWYoMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS5sZW5ndGgmJjA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoKXt2YXIgZT0kKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7ZD0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKTt2YXIgaD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksbD0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSxwPSQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwiIjtkPWQrIiAiK2grIiAiK2wrKHAubGVuZ3RoPyIgIitwOiIiKTtkKz0wPGUubGVuZ3RoPyIgKFN0b2NrIyAiK2UrIikiOiIifWIucHVzaCh7bmFtZToiTEFTVFZFSElDTEVWSUVXRUQiLAp2YWx1ZTpkfSk7cmV0dXJuIGJ9O2EuY2xlYW5CbGFua1ZhcmlhYmxlcz1mdW5jdGlvbihiKXt2YXIgZD1iLnJlcGxhY2UoL3tcJFFVRVNUSU9OU30vZywiIikucmVwbGFjZSgve1wkTUVTU0FHRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csIiIpLnJlcGxhY2UoL3tcJFBBWU1FTlR9L2csIiIpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLCIiKS5yZXBsYWNlKC97XCRPRkZFUn0vZywiIikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csIiIpLnJlcGxhY2UoL3tcJENPTE9SfS9nLCIiKS5yZXBsYWNlKC97XCRGTkFNRX0vZywiIikucmVwbGFjZSgve1wkTE5BTUV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLCIiKS5yZXBsYWNlKC97XCRVU0VSUEhPTkV9L2csIiIpO21haWxQYWdlJiZiLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZywKbWFpbFBhZ2UuYmFuZHBMaW5rKCkpO3JldHVybiBkfTthLmNhbmNlbD1mdW5jdGlvbigpe2EuY2xvc2UoIkNBTkNFTCIpfTthLm9wZW49ZnVuY3Rpb24oYil7aWYoMT09Yy5kYXRhKCJvcGVuIikpcmV0dXJuITE7Im9iamVjdCI9PXR5cGVvZiBiJiYtMSE9ImNsaWNrIHRhcCIuaW5kZXhPZihiLnR5cGUudG9Mb3dlckNhc2UoKSkmJihrPSJjbGljayIpO2lmKCFpc05hTihiKSlyZXR1cm4gc2V0VGltZW91dChhLm9wZW4sMUUzKmIpO2lmKCFhLmlzQ29udGVudExvYWRlZCgpKXJldHVybiBhLmxvYWQoYS5vcGVuKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cubmV3VkRQVmlkZW9Jc1BsYXlpbmcmJjE9PXdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmImNsaWNrIiE9a3x8YS5pc0FjdGl2ZSgpKXJldHVybiBhLm9wZW4oNSk7YS5vbk9wZW4oKTtyZXR1cm4gYX07YS5leGVjT3Blbj1mdW5jdGlvbigpe251bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duRXhlYyIpJiYoQ29va2llcy5zZXQoInBvcHVwU2hvd25FeGVjIiwKIjEiLG51bGwsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxhLm9wZW4oMCkpfTthLmluaXRDb3VudGRvd249ZnVuY3Rpb24oKXt0cnl7dmFyIGI9bmV3IERhdGUoMUUzKmEuc2V0dGluZ3MuY291bnRkb3duKTtpZigwPGMuZmluZCgiLmNvdW50ZG93biIpLmxlbmd0aCl7dmFyIGQ9Yy5maW5kKCIuY291bnRkb3duIiksZT1uZXcgRGF0ZSxoPWIuZ2V0VGltZSgpLWUuZ2V0VGltZSgpO2lmKDA8aCl7dmFyIGw9W01hdGguZmxvb3IoaC84NjRFNSksTWF0aC5mbG9vcihoJTg2NEU1LzM2RTUpLE1hdGguZmxvb3IoaCU4NjRFNSUzNkU1LzZFNCksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUlNkU0LzFFMyldO2ZvcihiPTA7YjxsLmxlbmd0aDtiKyspbFtiXT05PGxbYl0\/bFtiXS50b1N0cmluZygpOiIwIitsW2JdO3ZhciBwPWwuam9pbigiOiIpO2QuY291bnRkb3duKHtzdGFydFRpbWU6cCxpbWFnZToiL2ltYWdlcy9kaWdpdHNfc21hbGwucG5nIixkaWdpdFdpZHRoOjI5LGRpZ2l0SGVpZ2h0OjQzfSl9ZWxzZSBkLmhpZGUoKX19Y2F0Y2goZyl7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiYoZGVidWcoZyksZGVidWcoIkludmFsaWQgZGF0ZSAiLGEuc2V0dGluZ3MuY291bnRkb3duKSl9fTthLmNsb3NlPWZ1bmN0aW9uKGIpe2lmKCJDQU5DRUwiPT1iJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUNhbmNlbCl7dmFyIGQ9YS5zZXR0aW5ncy5vbkJlZm9yZUNhbmNlbC5jYWxsKGMsYSk7aWYoMD09ZClyZXR1cm4hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUNsb3NlJiYoZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UuY2FsbChjLGEsYiksMD09ZCkpcmV0dXJuITE7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX07YS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBwb3B1cGl6ZXJBY3RpdmUoKX07YS5zZXRDb29raWU9ZnVuY3Rpb24oKXtDb29raWVzLnNldChhLnNldHRpbmdzLmNvb2tpZU5hbWUsIjEiLGEuc2V0dGluZ3MuY29va2llRHVyYXRpb24sIi8iKTt2YXIgYj1hLnNldHRpbmdzLmNvb2tpZU5hbWUudG9Mb3dlckNhc2UoKTsKaWYoInJlYmF0ZXNob3duIj09Ynx8InJlYmF0ZW90aGVyc2hvd24iPT1iJiYidXNlZCI9PSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCkpYj1uZXcgRGF0ZSxiLnNldFRpbWUoYi5nZXRUaW1lKCkrMThFNCksQ29va2llcy5zZXQoInVzZWRTbGlkZXJQb3B1cERpc3BsYXllZCIsIjEiLGIsIi8iKX07YS5zYXZlU2V0dGluZ3M9ZnVuY3Rpb24oYil7Yj0idW5kZWZpbmVkIj09dHlwZW9mIGI\/e306YjtiPSJvYmplY3QiIT10eXBlb2YgYj97dXNlckRlZmluZWROb25PYmplY3Q6Yn06YjtjLmRhdGEoInBvcHVwU2V0dGluZ3MiLCQuZXh0ZW5kKCEwLGEuc2V0dGluZ3MsYikpfTthLnNldERlZmF1bHRBREY9ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGU9JCgiI3BvcHVweWVhciIpLnZhbCgpOzA8JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLmxlbmd0aCYmMDwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCkubGVuZ3RoJiYKMDwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKS5sZW5ndGgmJihiPSQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKSxkPSQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKSxlPSQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpKTthLnNldHRpbmdzLkFERj17bWFrZTpiLG1vZGVsOmQseWVhcjplLHN0b2NrTnVtYmVyOiQoIiNwb3B1cHN0b2NrbnVtYmVyIikudmFsKCl9fTthLmxvZ0V2ZW50PWZ1bmN0aW9uKGIpe3ZhciBkPWEuc2V0dGluZ3MuZm9ybTtkPWQub2ZmZXJ0eXBlP2Qub2ZmZXJ0eXBlOiJFTUFJTElEXyIrZC5lbWFpbGlkO2lmKCFiKXJldHVybiExOyQoYS50YXJnZXQpLnRyaWdnZXIoYik7aWYoInBvcHVwLmxlYWRfc2VudCI9PWIpe3ZhciBlPWsucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZSxoLAoxKX0idW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixiLGQsYSksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGQpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGIsZCl9O2EuaXNDb250ZW50TG9hZGVkPWZ1bmN0aW9uKCl7aWYoIWEudGFyZ2V0WzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1sYXp5bG9hZGlkIikpcmV0dXJuITA7dmFyIGI9MD09PWEudGFyZ2V0Lmh0bWwoKS50cmltKCkubGVuZ3RoLGQ9YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkfHwhMTtyZXR1cm4hYiYmZH07YS5sb2FkPWZ1bmN0aW9uKGIpe2EuaXNDb250ZW50TG9hZGVkKCk\/KGEuc2V0dGluZ3MuY29udGVudExvYWRlZD0hMCxiKCkpOgokLmFqYXgoe3R5cGU6IkdFVCIsY2FjaGU6ITAsdXJsOigiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQb3B1cENvbnRlbnQiLGRhdGE6e3dzd2lkdGg6IjAiLF86YS5zZXR0aW5ncy5pZGVudCxpZDphLnRhcmdldC5kYXRhKCJsYXp5bG9hZGlkIiksbWFrZTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKXx8IiIsbW9kZWw6JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpfHwiIix5ZWFyOiQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpfHwiIix0cmltOiQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwiIixzdG9ja051bWJlcjokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCl8fCIiLHZlaGljbGVJZDokKCIjdG9wY2FyaWQiKS52YWwoKXx8MH0sc3VjY2VzczpmdW5jdGlvbihkKXthLnRhcmdldC5odG1sKGQpO2Euc2V0dGluZ3MuY29udGVudExvYWRlZD0hMDsiZnVuY3Rpb24iPT09CnR5cGVvZiBhZGROb1RyYW5zbGF0ZUVtYWlsRGVmJiZhZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCk7YigpfX0pfTthLmNyZWF0ZUNvbmZpcm1Gb3JtPWZ1bmN0aW9uKCl7dmFyIGI9YS50YXJnZXQuYXR0cigiaWQiKSsiX2NvbmZpcm0iOzE+JCgiI2NvbmZpcm1fZm9ybXMiKS5sZW5ndGgmJiQoImJvZHkiKS5hcHBlbmQoJCgiPGRpdj48L2Rpdj4iKS5hdHRyKCJpZCIsImNvbmZpcm1fZm9ybXMiKSk7aWYoMT4kKCIjIitiKS5sZW5ndGgmJmEuc2V0dGluZ3MuY29uZmlybUZvcm0mJjAhPT1hLnNldHRpbmdzLmNvbmZpcm1Gb3JtLmxlbmd0aCl7Yj0kKCI8Zm9ybT48L2Zvcm0+IikuYXR0cigiaWQiLGIpLmF0dHIoIm1ldGhvZCIsIlBPU1QiKS5hdHRyKCJhY3Rpb24iLCIvY29uZmlybWF0aW9uLmh0bWwiKS5hdHRyKCJ0YXJnZXQiLCJpZnJhbWVndHJhY2siKTt2YXIgZD0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKTtkPVt7bmFtZToiZ3RhZ19jb252ZXJzaW9uIix2YWx1ZToiZ3RhZyJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLAp2YWx1ZToiIn0se25hbWU6ImxlYWRUeXBlIix2YWx1ZToiIn0se25hbWU6InBhZ2VJRCIsdmFsdWU6IiJ9LHtuYW1lOiJjdXJyZW50VVJMIix2YWx1ZToiIn0se25hbWU6ImJ1dHRvblBvc2l0aW9uIix2YWx1ZToiIn0se25hbWU6ImRlYWxlck5hbWUiLHZhbHVlOiIifSx7bmFtZToiaXNGdWxsV2lkdGgiLHZhbHVlOiIifSx7bmFtZToiaXNNb2JpbGVOZXdWRFAiLHZhbHVlOiIifSx7bmFtZToidGVzdG1vZGUiLHZhbHVlOiIwIixjbGFzczoidGVzdG1vZGUifSx7bmFtZToiZnJvbUF1dG9BdWJhaW5lIix2YWx1ZTowPGQubGVuZ3RoJiYiZmFsc2UiIT1kLnZhbCgpfV07W10ucHVzaC5hcHBseShkLGEuc2V0dGluZ3MuY29uZmlybUZvcm0pO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKSQoIjxpbnB1dCAvPiIpLmF0dHIoInR5cGUiLCJoaWRkZW4iKS5hdHRyKGRbZV0pLmFwcGVuZFRvKGIpOyQoIiNjb25maXJtX2Zvcm1zIikuYXBwZW5kKGIpO2Iub24oInN1Ym1pdCIsb25Db25maXJtU3VibWl0KX0xPgokKCIjZ3RyYWNrRnJhbWUiKS5sZW5ndGgmJiQoIjxpZnJhbWU+PC9pZnJhbWU+IikuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOiJndHJhY2tGcmFtZSIsbmFtZToiaWZyYW1lZ3RyYWNrIixzdHlsZToid2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7In0pLmFwcGVuZFRvKCIjY29uZmlybV9mb3JtcyIpfTtyZXR1cm4gYX07CmpRdWVyeShmdW5jdGlvbihjKXt2YXIgbT1jKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aD9jKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpOk1hdGgucm91bmQoMUU3Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDE2KTtjLmZuLnBvcHVwaXplPWZ1bmN0aW9uKGEpe2E9YT9hOnt9O3ZhciBrPXtyZXZlYWw6e2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9LGZvcm06e2VtYWlsaWQ6MCxvZmZlcnR5cGU6MCxuYW1lOjAsc2VuZFRvOjAsc2VuZFRvQURGOjAsT0tCdXR0b25DbGFzczoic3VibWl0QnRuIixDYW5jZWxCdXR0b25DbGFzczoiY2FuY2VsQnRuIixzaG93RW1haWxDb25maXJtYXRpb246ITF9LEFERjp7bWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHN0b2NrTnVtYmVyOiIifSxpZGVudDptLGVuZFBvcHVwUXVldWU6ITEscHJpb3JpdHk6MSxhbmltYXRpb246ITEsCm5vdHJhbnNmb3JtOiExLGZpbGxmbGFnOiExLHN1Ym1pdHRlZDohMSxzaG93b25sb2FkOiExLGNvb2tpZU5hbWU6ITEsY29va2llRHVyYXRpb246NjAsY2xvc2VPblN1Ym1pdDohMCxhZGRlZENsYXNzZXM6IiJ9O2lmKDE9PXRoaXMubGVuZ3RoKXt2YXIgYj10aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiKT90aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiKTp7fTtzZXR0aW5ncz17fTtjLmV4dGVuZCghMCxzZXR0aW5ncyxrLGIsYSk7IXNldHRpbmdzLmNvb2tpZU5hbWUmJjA8dGhpcy5hdHRyKCJpZCIpLmxlbmd0aCYmKHNldHRpbmdzLmNvb2tpZU5hbWU9ImNwcF8iK3RoaXMuYXR0cigiaWQiKSk7IXNldHRpbmdzLm5hbWUmJjA8dGhpcy5hdHRyKCJpZCIpLmxlbmd0aCYmKHNldHRpbmdzLm5hbWU9dGhpcy5hdHRyKCJpZCIpLnJlcGxhY2UoL0NvbnRhaW5lclxiLywiIikpO3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIsc2V0dGluZ3MpO2E9bmV3IHBvcHVwaXplcih0aGlzLHNldHRpbmdzKTsKc2V0dGluZ3MuaW5pdGlhbGl6ZWR8fChhLmluaXQoKSxwb3B1cFN1cGVydmlzb3IucG9wdXBzLnB1c2goYSkpO3JldHVybiBhfXBvcHVwcz1bXTt0aGlzLmVhY2goZnVuY3Rpb24oKXtwb3B1cHMucHVzaChjKHRoaXMpLnBvcHVwaXplKCkpfSk7cmV0dXJuIHBvcHVwc307c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPW51bGw7Yyh3aW5kb3cpLm9uKCJ0b3VjaG1vdmUsIG9uc2Nyb2xsLCBzY3JvbGwgbW91c2V3aGVlbCByZXNpemUiLGZ1bmN0aW9uKGspe2NsZWFyVGltZW91dChhKTthPXNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnJlcG9zaXRpb24sMUUzKX0pfSwxRTMpfSk7Ci8qKiAvanMvdnRpcC5qcyAqKi8KdmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDo0NyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdnRpcGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzU6MzkiOyJ1c2Ugc3RyaWN0IjsKdGhpcy52dGlwPWZ1bmN0aW9uKCl7dGhpcy54T2Zmc2V0PS0xMDt0aGlzLnlPZmZzZXQ9MTA7JCgiLnZ0aXAiKS5vZmYoKS5vbigiaG92ZXIiLGZ1bmN0aW9uKGEpe3RoaXMudD10aGlzLnRpdGxlO3RoaXMudGl0bGU9IiI7dGhpcy50b3A9YS5wYWdlWSt5T2Zmc2V0O3RoaXMubGVmdD1hLnBhZ2VYK3hPZmZzZXQ7JCgiYm9keSIpLmFwcGVuZCgnPHAgaWQ9InZ0aXAiIHN0eWxlPSJ6LWluZGV4OjEwMDAwMDsiPjxpbWcgaWQ9InZ0aXBBcnJvdyIgLz4nK3RoaXMudCsiPC9wPiIpOyQoInAjdnRpcCAjdnRpcEFycm93IikuYXR0cigic3JjIiwiL2ltYWdlcy9zY3JhdGNoL3Z0aXBfYXJyb3cucG5nIik7JCgicCN2dGlwIikuY3NzKCJ0b3AiLHRoaXMudG9wKyJweCIpLmNzcygibGVmdCIsdGhpcy5sZWZ0KyJweCIpLmZhZGVJbigic2xvdyIpfSxmdW5jdGlvbigpe3RoaXMudGl0bGU9dGhpcy50OyQoInAjdnRpcCIpLmZhZGVPdXQoInNsb3ciKS5yZW1vdmUoKX0pLm9uKCJtb3VzZW1vdmUiLApmdW5jdGlvbihhKXt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4Iil9KX07alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbihhKXt2dGlwKCl9KTsKLyoqIC9qcy93U2NyYXRjaFBhZC5qcyAqKi8KdmFyIF9fX2QyY193U2NyYXRjaFBhZGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MzciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNC0wNC0xMiAxODozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZCl7ZnVuY3Rpb24gaChiLGEpe3RoaXMuc3A9bnVsbDt0aGlzLnNldHRpbmdzPWI7dGhpcy4kZWxlbT1hO3RoaXMuZW5hYmxlZD0hMDt0aGlzLnNjcmF0Y2g9ITE7dGhpcy5jdHg9dGhpcy5jYW52YXM9bnVsbDtyZXR1cm4gdGhpc31kLmZuLndTY3JhdGNoUGFkPWZ1bmN0aW9uKGIsYSl7aWYoImVuYWJsZSI9PWIpZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKS5lbmFibGUoKTtlbHNle2lmKCJvYmplY3QiPT09dHlwZW9mIGIpYT1iO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBiKXt2YXIgYz1bXSxmPXRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcykuZGF0YSgiX3dTY3JhdGNoUGFkIik7ZSYmKCJyZXNldCI9PT1iP2UucmVzZXQoKToiY2xlYXIiPT09Yj9lLmNsZWFyKCk6ImVuYWJsZWQiPT09Yj9lLmVuYWJsZWQ9ITA9PT1hOnZvaWQgMCE9PWQuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzW2JdJiYodm9pZCAwIT09YT9lLnNldHRpbmdzW2JdPQphOmMucHVzaChlLnNldHRpbmdzW2JdKSkpfSk7cmV0dXJuIDE9PT1jLmxlbmd0aD9jWzBdOjA8Yy5sZW5ndGg\/YzpmfWE9ZC5leHRlbmQoe30sZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3MsYXx8e30pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kKHRoaXMpLGc9alF1ZXJ5LmV4dGVuZCghMCx7fSxhKTtpZighZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCl7dmFyIGs9IkJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNSBjYW52YXMsIHBsZWFzZSB1cGdyYWRlIHRvIGEgbW9yZSBtb2Rlcm4gYnJvd3Nlci4iO2QoIiN0ZXh0RG9lc05vdFN1cHBvcnRIVE1MNSIpLmxlbmd0aCYmKGs9ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikudmFsKCkpO2UuY3NzKCJwYWRkaW5nLXRvcCIsIjYwcHgiKTtlLmNzcygiaGVpZ2h0IiwiNTVweCIpO2UuaHRtbChrKTsidW5kZWZpbmVkIiE9dHlwZW9mIGcuaWRUb0FkZCYmZCgiI2Jsb2NrYWdlIisKZy5pZFRvQWRkKS5sZW5ndGgmJmQoIiNibG9ja2FnZSIrZy5pZFRvQWRkKS5jc3MoInRvcCIscGFyc2VJbnQoZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIikpKzMwKyJweCIpO3JldHVybiExfWc9bmV3IGgoZyxlKTtlLmFwcGVuZChnLmdlbmVyYXRlKCkpO2cucGl4ZWxzPWcuY2FudmFzLndpZHRoKmcuY2FudmFzLmhlaWdodDtlLmRhdGEoIl93U2NyYXRjaFBhZCIsZyk7Zy5pbml0KCl9KX19O2QuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzPXt3aWR0aDo2MDAsaGVpZ2h0OjExNSxpbWFnZToiL2ltYWdlcy9zY3JhdGNoL3NsaWRlMi5wbmciLGltYWdlMjoiL2ltYWdlcy9wb3B1cHMvc3R5bGUyL3NjcmF0Y2gucG5nIixpbWFnZURpc2FibGVkOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaF9kaXNhYmxlZC5wbmciLGNvbG9yOiIjMzM2Njk5IixvdmVybGF5OiJub25lIixzaXplOjMwLHJlYWx0aW1lUGVyY2VudDohMSxzY3JhdGNoRG93bjpudWxsLHNjcmF0Y2hVcDpudWxsLApzY3JhdGNoTW92ZTpudWxsLGN1cnNvcjpudWxsLGlkVG9BZGQ6IiIsYmFja2dyb3VuZENvbG9yOiIjMDEwYTI4IixlbmFibGVkOiEwfTtoLnByb3RvdHlwZT17Z2VuZXJhdGU6ZnVuY3Rpb24oKXt0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpO3RoaXMuc3A9ZCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KS5hcHBlbmQoZCh0aGlzLmNhbnZhcykuYXR0cigid2lkdGgiLHRoaXMuc2V0dGluZ3Mud2lkdGgrInB4IikuYXR0cigiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodCsicHgiKS5hdHRyKCJzdHlsZSIsInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTJweDt0b3A6LTFweDt6LWluZGV4OjE7IikpO3RoaXMuc2V0dGluZ3MuZW5hYmxlZCYmdGhpcy5lbmFibGUoKTtyZXR1cm4gdGhpcy5zcH0sZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIsCiEwKTt0aGlzLmJpbmRCcm93c2VyKCk7dGhpcy5iaW5kTW9iaWxlKHRoaXMuc3ApfSxiaW5kQnJvd3NlcjpmdW5jdGlvbihiKXt2YXIgYT10aGlzO2QodGhpcy5jYW52YXMpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGMpe2lmKCFhLmVuYWJsZWQpcmV0dXJuITA7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5jYW52YXNfb2Zmc2V0PWQoYS5jYW52YXMpLm9mZnNldCgpO2Euc2NyYXRjaD0hMDthLnNjcmF0Y2hGdW5jKGMsYSwiRG93biIpfSkub24oIm1vdXNlbW92ZSIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiZhLnNjcmF0Y2hGdW5jKGMsYSwiTW92ZSIpfSkub24oIm1vdXNldXAiLGZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2Euc2NyYXRjaCYmKGEuc2NyYXRjaD0hMSxhLnNjcmF0Y2hGdW5jKGMsYSwiVXAiKSl9KX0sYmluZE1vYmlsZTpmdW5jdGlvbihiKXtiLm9uKCJ0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCIsCmZ1bmN0aW9uKCl7dmFyIGE9ZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07c3dpdGNoKGV2ZW50LnR5cGUpe2Nhc2UgInRvdWNoc3RhcnQiOnZhciBjPSJtb3VzZWRvd24iO2JyZWFrO2Nhc2UgInRvdWNobW92ZSI6Yz0ibW91c2Vtb3ZlIjticmVhaztjYXNlICJ0b3VjaGVuZCI6Yz0ibW91c2V1cCI7YnJlYWs7ZGVmYXVsdDpyZXR1cm59dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtmLmluaXRNb3VzZUV2ZW50KGMsITAsITAsd2luZG93LDEsYS5zY3JlZW5YLGEuc2NyZWVuWSxhLmNsaWVudFgsYS5jbGllbnRZLCExLCExLCExLCExLDAsbnVsbCk7YS50YXJnZXQuZGlzcGF0Y2hFdmVudChmKTtldmVudC5wcmV2ZW50RGVmYXVsdCgpfSl9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLnNwLmNzcygid2lkdGgiLHRoaXMuc2V0dGluZ3Mud2lkdGgtMik7dGhpcy5zcC5jc3MoImhlaWdodCIsdGhpcy5zZXR0aW5ncy5oZWlnaHQtMik7dGhpcy5zcC5jc3MoImN1cnNvciIsdGhpcy5zZXR0aW5ncy5jdXJzb3I\/Cid1cmwoIicrdGhpcy5zZXR0aW5ncy5jdXJzb3IrJyIpLCBkZWZhdWx0JzoiZGVmYXVsdCIpO2QodGhpcy5jYW52YXMpLmNzcyh7Y3Vyc29yOnRoaXMuc2V0dGluZ3MuY3Vyc29yPyd1cmwoIicrdGhpcy5zZXR0aW5ncy5jdXJzb3IrJyIpLCBkZWZhdWx0JzoiZGVmYXVsdCJ9KTt0aGlzLmNhbnZhcy53aWR0aD10aGlzLnNldHRpbmdzLndpZHRoO3RoaXMuY2FudmFzLmhlaWdodD10aGlzLnNldHRpbmdzLmhlaWdodDt0aGlzLnBpeGVscz10aGlzLmNhbnZhcy53aWR0aCp0aGlzLmNhbnZhcy5oZWlnaHQ7dGhpcy5zZXR0aW5ncy5pbWFnZTI\/KHRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UyKSx0aGlzLnNldHRpbmdzLmVuYWJsZWR8fHRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2VEaXNhYmxlZCwhMCkpOigibm9uZSIhPXRoaXMuc2V0dGluZ3Mub3ZlcmxheT8odGhpcy5zZXR0aW5ncy5pbWFnZSYmdGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZSksCnRoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj10aGlzLnNldHRpbmdzLm92ZXJsYXkpOnRoaXMuc2V0QmdJbWFnZSgpLHRoaXMuY3R4LmZpbGxTdHlsZT10aGlzLnNldHRpbmdzLmNvbG9yLHRoaXMuY3R4LmJlZ2luUGF0aCgpLHRoaXMuY3R4LnJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpLHRoaXMuY3R4LmZpbGwoKSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciI7dGhpcy5pbml0KCl9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLnNldHRpbmdzLndpZHRoLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KX0sc2V0QmdJbWFnZTpmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3MuaW1hZ2UmJih0aGlzLnNwLmFkZENsYXNzKCJzY3JhdGNoRGl2VGV4dCIpLHRoaXMuc3AuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIix0aGlzLnNldHRpbmdzLmJhY2tncm91bmRDb2xvciksCnRoaXMuc3AuYXBwZW5kKCI8ZGl2IGlkPSdzY3JhdGNoRGl2VGV4dCIrdGhpcy5zZXR0aW5ncy5pZFRvQWRkKyInIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MzBweDtjb2xvcjojZmZmO21hcmdpbi1sZWZ0OjBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwcHg7ei1pbmRleDowOyc+IitkKCIjc2NyYXRjaElucHV0VGV4dCIrdGhpcy5zZXR0aW5ncy5pZFRvQWRkKS52YWwoKSsiPC9kaXY+IikpfSxkcmF3SW1hZ2U6ZnVuY3Rpb24oYixhKXt2YXIgYz10aGlzLGY9bmV3IEltYWdlO2Yuc3JjPWI7ZChmKS5vbigibG9hZCIsZnVuY3Rpb24oKXtjLmN0eC5kcmF3SW1hZ2UoZiwwLDApOyJ1bmRlZmluZWQiIT10eXBlb2YgYSYmYXx8Yy5zZXRCZ0ltYWdlKCl9KX0sc2NyYXRjaEZ1bmM6ZnVuY3Rpb24oYixhLGMpe2IucGFnZVg9TWF0aC5mbG9vcihiLnBhZ2VYLWEuY2FudmFzX29mZnNldC5sZWZ0KTtiLnBhZ2VZPQpNYXRoLmZsb29yKGIucGFnZVktYS5jYW52YXNfb2Zmc2V0LnRvcCk7YVsic2NyYXRjaCIrY10oYixhKTsodGhpcy5zZXR0aW5ncy5yZWFsdGltZVBlcmNlbnR8fCJVcCI9PWMpJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXSYmYS5zZXR0aW5nc1sic2NyYXRjaCIrY10uYXBwbHkoYSxbYixhLnNjcmF0Y2hQZXJjZW50YWdlKGEpXSl9LHNjcmF0Y2hQZXJjZW50YWdlOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYT0wLGM9Yi5jdHguZ2V0SW1hZ2VEYXRhKDAsMCxiLmNhbnZhcy53aWR0aCxiLmNhbnZhcy5oZWlnaHQpLGY9MCxlPWMuZGF0YS5sZW5ndGg7ZjxlO2YrPTQpMD09Yy5kYXRhW2ZdJiYwPT1jLmRhdGFbZisxXSYmMD09Yy5kYXRhW2YrMl0mJjA9PWMuZGF0YVtmKzNdJiZhKys7cmV0dXJuIGEvYi5waXhlbHMqMTAwfSxzY3JhdGNoRG93bjpmdW5jdGlvbihiLGEpe2EuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3V0IjthLmN0eC5saW5lSm9pbj0icm91bmQiOwphLmN0eC5saW5lQ2FwPSJyb3VuZCI7YS5jdHguc3Ryb2tlU3R5bGU9YS5zZXR0aW5ncy5jb2xvcjthLmN0eC5saW5lV2lkdGg9YS5zZXR0aW5ncy5zaXplO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4LmFyYyhiLnBhZ2VYLGIucGFnZVksYS5zZXR0aW5ncy5zaXplLzIsMCwyKk1hdGguUEksITApO2EuY3R4LmNsb3NlUGF0aCgpO2EuY3R4LmZpbGwoKTthLmN0eC5iZWdpblBhdGgoKTthLmN0eC5tb3ZlVG8oYi5wYWdlWCxiLnBhZ2VZKX0sc2NyYXRjaE1vdmU6ZnVuY3Rpb24oYixhKXthLmN0eC5saW5lVG8oYi5wYWdlWCxiLnBhZ2VZKTthLmN0eC5zdHJva2UoKX0sc2NyYXRjaFVwOmZ1bmN0aW9uKGIsYSl7YS5jdHguY2xvc2VQYXRoKCl9fX0pKGpRdWVyeSk7Ci8qKiAvanMvc3dmc3RvcmUuanMgKiovCnZhciBfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjIxIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzc6NTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDExOjM1OjE4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDo1OCI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDI6MzEiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhhKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpdGhyb3ciU3dmU3RvcmUgRXJyb3I6IEZ1bmN0aW9ucyBjYW5ub3QgYmUgdXNlZCBhcyBrZXlzIG9yIHZhbHVlcy4iO312YXIgaD0wLG09L1teYS16MC05X10vZ2k7d2luZG93LlN3ZlN0b3JlPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGUoZCl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKTtiLmlkPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKys7ZHx8KGIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixiLnN0eWxlLnRvcD0iLTIwMDBweCIsYi5zdHlsZS5sZWZ0PSItMjAwMHB4Iik7cmV0dXJuIGJ9YT1hfHx7fTt2YXIgZj17c3dmX3VybDoic3RvcmFnZS5zd2YiLG5hbWVzcGFjZToic3dmc3RvcmUiLHBhdGg6bnVsbCxkZWJ1ZzohMSx0aW1lb3V0OjEwLG9ucmVhZHk6bnVsbCxvbmVycm9yOm51bGx9O2ZvcihjIGluIGYpZi5oYXNPd25Qcm9wZXJ0eShjKSYmCihhLmhhc093blByb3BlcnR5KGMpfHwoYVtjXT1mW2NdKSk7YS5uYW1lc3BhY2U9YS5uYW1lc3BhY2UucmVwbGFjZShtLCJfIik7aWYod2luZG93LlN3ZlN0b3JlW2EubmFtZXNwYWNlXSl0aHJvdyJUaGVyZSBpcyBhbHJlYWR5IGFuIGluc3RhbmNlIG9mIFN3ZlN0b3JlIHVzaW5nIHRoZSAnIithLm5hbWVzcGFjZSsiJyBuYW1lc3BhY2UuIFVzZSB0aGF0IGluc3RhbmNlIG9yIHNwZWNpZnkgYW4gYWx0ZXJuYXRlIG5hbWVzcGFjZSBpbiB0aGUgY29uZmlnLiI7dGhpcy5jb25maWc9YTtpZihhLmRlYnVnKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBjb25zb2xlKXt2YXIgbj1lKCEwKTt3aW5kb3cuY29uc29sZT17bG9nOmZ1bmN0aW9uKGQpe3ZhciBiPWUoITApO2IuaW5uZXJIVE1MPWQ7bi5hcHBlbmRDaGlsZChiKX19fXRoaXMubG9nPWZ1bmN0aW9uKGQsYixrKXtiPSJzd2ZTdG9yZSI9PT1iPyJzd2YiOmI7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZVtkXSljb25zb2xlW2RdKCJTd2ZTdG9yZSAtICIrCmEubmFtZXNwYWNlKyIgKCIrYisiKTogIitrKTtlbHNlIGNvbnNvbGUubG9nKCJTd2ZTdG9yZSAtICIrYS5uYW1lc3BhY2UrIjogIitkKyIgKCIrYisiKTogIitrKX19ZWxzZSB0aGlzLmxvZz1mdW5jdGlvbigpe307dGhpcy5sb2coImluZm8iLCJqcyIsIkluaXRpYWxpemluZy4uLiIpO1N3ZlN0b3JlW2EubmFtZXNwYWNlXT10aGlzO2Y9ZShhLmRlYnVnKTt2YXIgYz0iU3dmU3RvcmVfIithLm5hbWVzcGFjZSsiXyIraCsrLGw9ImxvZ2ZuPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5sb2cmYW1wO29ubG9hZD1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIub25sb2FkJmFtcDtvbmVycm9yPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmVycm9yJmFtcDsiKyhhLnBhdGg\/IkxTT1BhdGg9IithLnBhdGgrIiZhbXA7IjoiIikrIkxTT05hbWU9IithLm5hbWVzcGFjZTtmLmlubmVySFRNTD0nPG9iamVjdCBoZWlnaHQ9IjEwMCIgd2lkdGg9IjUwMCIgY29kZWJhc2U9Imh0dHBzOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiIiBpZD0iJysKYysnIiBjbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiPiAgICA8cGFyYW0gdmFsdWU9IicrYS5zd2ZfdXJsKyciIG5hbWU9Im1vdmllIj4gIDxwYXJhbSB2YWx1ZT0iJytsKyciIG5hbWU9IkZsYXNoVmFycyI+ICAgPHBhcmFtIHZhbHVlPSJhbHdheXMiIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIj4gIDxlbWJlZCBoZWlnaHQ9IjM3NSIgYWxpZ249Im1pZGRsZSIgd2lkdGg9IjUwMCIgcGx1Z2luc3BhZ2U9Imh0dHBzOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrbCsnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgYWxsb3dzY3JpcHRhY2Nlc3M9ImFsd2F5cyIgcXVhbGl0eT0iaGlnaCIgbG9vcD0iZmFsc2UiIHBsYXk9InRydWUiIG5hbWU9IicrYysnIiBiZ2NvbG9yPSIjZmZmZmZmIiBzcmM9IicrYS5zd2ZfdXJsKyciPjwvb2JqZWN0Pic7dGhpcy5zd2Y9ZG9jdW1lbnRbY118fAp3aW5kb3dbY107dGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7U3dmU3RvcmVbYS5uYW1lc3BhY2VdLmxvZygiZXJyb3IiLCJqcyIsIlRpbWVvdXQgcmVhY2hlZCwgYXNzdW1pbmcgIithLnN3Zl91cmwrIiBmYWlsZWQgdG8gbG9hZCBhbmQgZmlyaW5nIHRoZSBvbmVycm9yIGNhbGxiYWNrLiIpO2lmKGEub25lcnJvcilhLm9uZXJyb3IoKX0sMUUzKmEudGltZW91dCl9O1N3ZlN0b3JlLnByb3RvdHlwZT17dmVyc2lvbjoiMS45IixyZWFkeTohMSxzZXQ6ZnVuY3Rpb24oYSxlKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtnKGUpO3RoaXMuc3dmLnNldChhLGUpfSxnZXQ6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7cmV0dXJuIHRoaXMuc3dmLmdldChhKX0sZ2V0QWxsOmZ1bmN0aW9uKCl7dGhpcy5fY2hlY2tSZWFkeSgpO3ZhciBhPXRoaXMuc3dmLmdldEFsbCgpO2EuX19mbGFzaEJ1Z0ZpeCYmZGVsZXRlIGEuX19mbGFzaEJ1Z0ZpeDtyZXR1cm4gYX0sCmNsZWFyOmZ1bmN0aW9uKGEpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO3RoaXMuc3dmLmNsZWFyKGEpfSxfY2hlY2tSZWFkeTpmdW5jdGlvbigpe2lmKCF0aGlzLnJlYWR5KXRocm93IlN3ZlN0b3JlIGlzIG5vdCB5ZXQgZmluaXNoZWQgaW5pdGlhbGl6aW5nLiBQYXNzIGEgY29uZmlnLm9ucmVhZHkgY2FsbGJhY2sgb3Igd2FpdCB1bnRpbCB0aGlzLnJlYWR5IGlzIHRydWUgYmVmb3JlIHRyeWluZyB0byB1c2UgYSBTd2ZTdG9yZSBpbnN0YW5jZS4iO30sb25sb2FkOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuX3RpbWVvdXQpO2EucmVhZHk9ITA7YS5zZXQoIl9fZmxhc2hCdWdGaXgiLCIxIik7aWYoYS5jb25maWcub25yZWFkeSlhLmNvbmZpZy5vbnJlYWR5KCl9LDApfSxvbmVycm9yOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpO2lmKHRoaXMuY29uZmlnLm9uZXJyb3IpdGhpcy5jb25maWcub25lcnJvcigpfX19KSgpOwovKiogL2pzL2pxdWVyeS5jb3VudGRvd24uanMgKiovCnZhciBfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTozMiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIzLTAxLTEyIDExOjQwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTA6MTAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMS0xMi0xNSAxMjo1MDozNSI7InVzZSBzdHJpY3QiOwpqUXVlcnkuZm4uY291bnRkb3duPWZ1bmN0aW9uKGgpe2lmKDE8dGhpcy5sZW5ndGgpcmV0dXJuICQodGhpcykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuY291bnRkb3duKGgpfSksdGhpcztpZih0aGlzLmRhdGEoImNvdW50aW5nIikpcmV0dXJuIHRoaXM7dGhpcy5kYXRhKCJjb3VudGluZyIsITApO3ZhciBhPXtzdGVwVGltZTo2MCxmb3JtYXQ6ImRkOmhoOm1tOnNzIixzdGFydFRpbWU6IjAxOjEyOjMyOjU1IixkaWdpdEltYWdlczo2LGRpZ2l0V2lkdGg6NTMsZGlnaXRIZWlnaHQ6NzcsdGltZXJFbmQ6ZnVuY3Rpb24oKXt9LGltYWdlOiJkaWdpdHMucG5nIn0sYz1bXSxmPWZ1bmN0aW9uKGIsZCl7cmV0dXJuIHZvaWQgMCE9PWQ\/Y1tiXS5jc3Moe21hcmdpblRvcDpkKyJweCJ9KTpwYXJzZUludChjW2JdLmNzcygibWFyZ2luVG9wIikucmVwbGFjZSgicHgiLCIiKSl9LGs9ZnVuY3Rpb24oYil7Y1tiXS5fZGlnaXRJbml0aWFsPS0oY1tiXS5fX21heCphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpOwpyZXR1cm4gZnVuY3Rpb24gZSgpe210b3A9ZihiKSthLmRpZ2l0SGVpZ2h0O2lmKG10b3A9PWEuZGlnaXRIZWlnaHQpaWYoZihiLGNbYl0uX2RpZ2l0SW5pdGlhbCksMDxiKWsoYi0xKSgpLDA8YiYmdm9pZCAwIT09Y1tiXS5fX2NvbmRtYXgmJmNbYi0xXS5fZGlnaXRJbml0aWFsPT1mKGItMSkmJmYoYiwtKGNbYl0uX19jb25kbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcykpO2Vsc2V7Y2xlYXJJbnRlcnZhbChsKTtmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylmKGcsMCk7YS50aW1lckVuZCgpfWVsc2UgZihiLG10b3ApLDAhPWYoYikvYS5kaWdpdEhlaWdodCVhLmRpZ2l0SW1hZ2VzJiZzZXRUaW1lb3V0KGUsYS5zdGVwVGltZSksMD09bXRvcCYmKGNbYl0uX19pc21heD0hMCl9fTskLmV4dGVuZChhLGgpO3RoaXMuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCxvdmVyZmxvdzoiaGlkZGVuIn0pOyhmdW5jdGlvbihiKXtmb3IodmFyIGQ9MCxlPTA7ZTxhLnN0YXJ0VGltZS5sZW5ndGg7ZSsrKXtpZigwPD0KcGFyc2VJbnQoYS5zdGFydFRpbWVbZV0pKXtlbGVtPSQoJzxkaXYgaWQ9ImNudF8nK2UrJyIgY2xhc3M9ImNudERpZ2l0IiAvPicpLmNzcyh7aGVpZ2h0OmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyoxMCxmbG9hdDoibGVmdCIsYmFja2dyb3VuZDoidXJsKCciK2EuaW1hZ2UrIicpIix3aWR0aDphLmRpZ2l0V2lkdGh9KTtjLnB1c2goZWxlbSk7ZihkLC0ocGFyc2VJbnQoYS5zdGFydFRpbWVbZV0pKmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcykpO2NbZF0uX19tYXg9OTtzd2l0Y2goYS5mb3JtYXRbZV0pe2Nhc2UgImgiOmNbZF0uX19tYXg9MD09ZCUyPzI6OTswPT1kJTImJihjW2RdLl9fY29uZG1heD00KTticmVhaztjYXNlICJkIjpjW2RdLl9fbWF4PTk7YnJlYWs7Y2FzZSAibSI6Y2FzZSAicyI6Y1tkXS5fX21heD0wPT1kJTI\/NTo5fSsrZH1lbHNlIGVsZW09JCgnPGRpdiBjbGFzcz0iY250U2VwYXJhdG9yIi8+JykuY3NzKHtmbG9hdDoibGVmdCJ9KS50ZXh0KGEuc3RhcnRUaW1lW2VdKTsKYi5hcHBlbmQoZWxlbSl9fSkodGhpcyk7dmFyIGw9c2V0SW50ZXJ2YWwoayhjLmxlbmd0aC0xKSwxRTMpfTsKLyoqIC9qcy9kYXRlVXRpbHMuanMgKiovCnZhciBfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0NiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjowMSI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIzLTAxLTEyIDExOjM0OjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDQ6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MToyMyI7InVzZSBzdHJpY3QiO0RhdGUucHJvdG90eXBlLmFtb3VudEJldHdlZW49ZnVuY3Rpb24oYSxiLGMsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpcmV0dXJuIG51bGw7YT1hLmdldFRpbWUoKTtiPWIuZ2V0VGltZSgpO3JldHVybiBNYXRoLmZsb29yKChiLWEtZCkvYyl9OwovKiogL2pzL2pxdWVyeS5yZXZlYWwuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5cmV2ZWFsanNfY19vbj0iMjAyNi0wNS0wNSAxNjozMDowMyI7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbihiKXtiKCJib2R5Iikub24oImNsaWNrIiwiYVtkYXRhLXJldmVhbC1pZF0iLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTthPWIodGhpcykuYXR0cigiZGF0YS1yZXZlYWwtaWQiKTtiKCIjIithKS5yZXZlYWwoYih0aGlzKS5kYXRhKCkpfSk7Yi5mbi5yZXZlYWw9ZnVuY3Rpb24oYSl7YT1iLmV4dGVuZCh7fSx7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMCxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIixjbG9zZW9uZXNjYXBlOiEwfSxhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZigpeyJvYmplY3QiPT10eXBlb2YgcG9wdXBTdXBlcnZpc29yJiZzZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5yZXBvc2l0aW9uLDFFMyk7Zz0hMX12YXIgYz1iKHRoaXMpLGg9cGFyc2VJbnQoYy5jc3MoInRvcCIpKSxtPWMuaGVpZ2h0KCkrCmgsZz0hMSxkPWIoIi5yZXZlYWwtbW9kYWwtYmciKTswPT1kLmxlbmd0aCYmKGQ9YignPGRpdiBjbGFzcz0icmV2ZWFsLW1vZGFsLWJnIiAvPicpLmluc2VydEFmdGVyKGMpKTtjLm9uKCJyZXZlYWw6b3BlbiIsZnVuY3Rpb24oKXt2YXIgaz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6Yih3aW5kb3cpLmhlaWdodCgpLG49YihjKS5vdXRlckhlaWdodCgpO2IoYykub2Zmc2V0KCk7Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCk7dmFyIGw9L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/NToyMCxlPShrLW4pLzIrbDtlPWU8bHx8azxuP2w6ZTswPGIoIiNkMmNfYm9keUNvbnRlbnQiKS5sZW5ndGgmJihlLT1iKCIjZDJjX2JvZHlDb250ZW50Iikub2Zmc2V0KCkudG9wKTswPGIoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLmxlbmd0aCYmYigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikuc2hvdygpO2Qub2ZmKCJjbGljay5tb2RhbEV2ZW50Iik7CmIoIi4iK2EuZGlzbWlzc21vZGFsY2xhc3MpLm9mZigiY2xpY2subW9kYWxFdmVudCIpO2d8fChnPSEwLCJmYWRlQW5kUG9wIj09YS5hbmltYXRpb24mJihjLmNzcyh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLW0sb3BhY2l0eTowLHZpc2liaWxpdHk6InZpc2libGUifSksZC5mYWRlSW4oYS5hbmltYXRpb25zcGVlZC8yKSxjLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQvMikuYW5pbWF0ZSh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2UrInB4IixvcGFjaXR5OjF9LGEuYW5pbWF0aW9uc3BlZWQsZigpKSksImZhZGUiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHtvcGFjaXR5OjAsdmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2V9KSxkLmZhZGVJbihhLmFuaW1hdGlvbnNwZWVkLzIpLGMuZGVsYXkoYS5hbmltYXRpb25zcGVlZC8yKS5hbmltYXRlKHtvcGFjaXR5OjF9LGEuYW5pbWF0aW9uc3BlZWQsZigpKSksIm5vbmUiPT1hLmFuaW1hdGlvbiYmCihjLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2V9KSxkLmNzcyh7ZGlzcGxheToiYmxvY2sifSksZigpKSwiZXh0ZXJuYWxBbmltYXRpb24iPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZSxkaXNwbGF5OiJub25lIn0pLnNob3coKSxkLmNzcyh7ZGlzcGxheToiYmxvY2sifSksZigpKSk7Yy5vZmYoInJldmVhbDpvcGVuIil9KTtjLm9uKCJyZXZlYWw6Y2xvc2UiLGZ1bmN0aW9uKCl7YigiYm9keSIpLmNzcygib3ZlcmZsb3ciLCIiKTtiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5oaWRlKCk7aWYoIWcmJihnPSEwLCJmYWRlQW5kUG9wIj09YS5hbmltYXRpb24mJihkLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQpLmZhZGVPdXQoYS5hbmltYXRpb25zcGVlZCksYy5hbmltYXRlKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCktbSsicHgiLG9wYWNpdHk6MH0sCmEuYW5pbWF0aW9uc3BlZWQvMixmdW5jdGlvbigpe2MuY3NzKHt0b3A6aCxvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2YoKX0pKSwiZmFkZSI9PWEuYW5pbWF0aW9uJiYoZC5kZWxheShhLmFuaW1hdGlvbnNwZWVkKS5mYWRlT3V0KGEuYW5pbWF0aW9uc3BlZWQpLGMuYW5pbWF0ZSh7b3BhY2l0eTowfSxhLmFuaW1hdGlvbnNwZWVkLGZ1bmN0aW9uKCl7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpofSk7ZigpfSkpLCJub25lIj09YS5hbmltYXRpb24mJihjLmNzcyh7dmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aH0pLGQuY3NzKHtkaXNwbGF5OiJub25lIn0pKSwiZXh0ZXJuYWxBbmltYXRpb24iPT1hLmFuaW1hdGlvbikpYy5oaWRlKCkub25lKCJhbmltYXRpb25FbmQiLGZ1bmN0aW9uKCl7Yih0aGlzKS5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmgsZGlzcGxheToibm9uZSJ9KTtkLmNzcyh7ZGlzcGxheToibm9uZSJ9KX0pO2Mub2ZmKCJyZXZlYWw6Y2xvc2UiKTsKInVuZGVmaW5lZCIhPXR5cGVvZiBhLmNsb3NlZCYmYS5jbG9zZWQoKX0pO2MudHJpZ2dlcigicmV2ZWFsOm9wZW4iKTtiKCIuIithLmRpc21pc3Ntb2RhbGNsYXNzKS5vbigiY2xpY2subW9kYWxFdmVudCB0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2MudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTthLmNsb3Nlb25iYWNrZ3JvdW5kY2xpY2smJihkLmNzcyh7Y3Vyc29yOiJwb2ludGVyIn0pLGQub24oImNsaWNrLm1vZGFsRXZlbnQiLGZ1bmN0aW9uKCl7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pKTtpZihhLmNsb3Nlb25lc2NhcGUpYigiYm9keSIpLm9uKCJrZXl1cCIsZnVuY3Rpb24oayl7Mjc9PT1rLndoaWNoJiZjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSl9KX19KShqUXVlcnkpOwovKiogL2pzL2pxdWVyeS5wcmV0dHlQaG90bzIuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5cHJldHR5UGhvdG8yanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMTo0MyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5cHJldHR5UGhvdG8yanNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzozMyI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24geSgpe3ZhciBlPWxvY2F0aW9uLmhyZWY7cmV0dXJuIGhhc2h0YWc9LTEhPT1lLmluZGV4T2YoIiNwcmV0dHlQaG90byIpP2RlY29kZVVSSShlLnN1YnN0cmluZyhlLmluZGV4T2YoIiNwcmV0dHlQaG90byIpKzEsZS5sZW5ndGgpKTohMX1mdW5jdGlvbiBsKGUscCl7ZT1lLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7ZT0obmV3IFJlZ0V4cCgiW1xcPyZdIitlKyI9KFteJiNdKikiKSkuZXhlYyhwKTtyZXR1cm4gbnVsbD09ZT8iIjplWzFdfWEucHJldHR5UGhvdG89e3ZlcnNpb246IjMuMS41In07YS5mbi5wcmV0dHlQaG90bz1mdW5jdGlvbihlKXtmdW5jdGlvbiBwKCl7YSgiLnBwX2xvYWRlckljb24iKS5oaWRlKCk7cHJvamVjdGVkVG9wPXNjcm9sbF9wb3Muc2Nyb2xsVG9wKyhrLzItZC5jb250YWluZXJIZWlnaHQvMik7MD5wcm9qZWN0ZWRUb3AmJihwcm9qZWN0ZWRUb3A9MCk7JHBwdC5mYWRlVG8oYi5hbmltYXRpb25fc3BlZWQsCjEpOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9jb250ZW50IikuYW5pbWF0ZSh7aGVpZ2h0OmQuY29udGVudEhlaWdodCx3aWR0aDpkLmNvbnRlbnRXaWR0aH0sYi5hbmltYXRpb25fc3BlZWQpOyRwcF9waWNfaG9sZGVyLmFuaW1hdGUoe3RvcDpwcm9qZWN0ZWRUb3AsbGVmdDowPmgvMi1kLmNvbnRhaW5lcldpZHRoLzI\/MDpoLzItZC5jb250YWluZXJXaWR0aC8yLHdpZHRoOmQuY29udGFpbmVyV2lkdGh9LGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2hvdmVyQ29udGFpbmVyLCNmdWxsUmVzSW1hZ2UiKS5oZWlnaHQoZC5oZWlnaHQpLndpZHRoKGQud2lkdGgpOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9mYWRlIikuZmFkZUluKGIuYW5pbWF0aW9uX3NwZWVkKTtpc1NldCYmImltYWdlIj09dChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk\/JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2hvdmVyQ29udGFpbmVyIikuc2hvdygpOiRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciIpLmhpZGUoKTsKYi5hbGxvd19leHBhbmQmJihkLnJlc2l6ZWQ\/YSgiYS5wcF9leHBhbmQsYS5wcF9jb250cmFjdCIpLnNob3coKTphKCJhLnBwX2V4cGFuZCIpLmhpZGUoKSk7IWIuYXV0b3BsYXlfc2xpZGVzaG93fHxxfHx1fHxhLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93KCk7Yi5jaGFuZ2VwaWN0dXJlY2FsbGJhY2soKTt1PSEwfSk7aXNTZXQmJmIub3ZlcmxheV9nYWxsZXJ5JiYiaW1hZ2UiPT10KHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKT8oaXRlbVdpZHRoPTU3LG5hdldpZHRoPSJmYWNlYm9vayI9PWIudGhlbWV8fCJwcF9kZWZhdWx0Ij09Yi50aGVtZT81MDozMCxpdGVtc1BlclBhZ2U9TWF0aC5mbG9vcigoZC5jb250YWluZXJXaWR0aC0xMDAtbmF2V2lkdGgpL2l0ZW1XaWR0aCksaXRlbXNQZXJQYWdlPWl0ZW1zUGVyUGFnZTxwcF9pbWFnZXMubGVuZ3RoP2l0ZW1zUGVyUGFnZTpwcF9pbWFnZXMubGVuZ3RoLHRvdGFsUGFnZT1NYXRoLmNlaWwocHBfaW1hZ2VzLmxlbmd0aC9pdGVtc1BlclBhZ2UpLQoxLDA9PXRvdGFsUGFnZT8obmF2V2lkdGg9MCwkcHBfZ2FsbGVyeS5maW5kKCIucHBfYXJyb3dfbmV4dCwucHBfYXJyb3dfcHJldmlvdXMiKS5oaWRlKCkpOiRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19uZXh0LC5wcF9hcnJvd19wcmV2aW91cyIpLnNob3coKSxnYWxsZXJ5V2lkdGg9aXRlbXNQZXJQYWdlKml0ZW1XaWR0aCxmdWxsR2FsbGVyeVdpZHRoPXBwX2ltYWdlcy5sZW5ndGgqaXRlbVdpZHRoLCRwcF9nYWxsZXJ5LmNzcygibWFyZ2luLWxlZnQiLC0oZ2FsbGVyeVdpZHRoLzIrbmF2V2lkdGgvMikpLmZpbmQoImRpdjpmaXJzdCIpLndpZHRoKGdhbGxlcnlXaWR0aCs1KS5maW5kKCJ1bCIpLndpZHRoKGZ1bGxHYWxsZXJ5V2lkdGgpLmZpbmQoImxpLnNlbGVjdGVkIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIiksZ29Ub1BhZ2U9TWF0aC5mbG9vcihzZXRfcG9zaXRpb24vaXRlbXNQZXJQYWdlKTx0b3RhbFBhZ2U\/TWF0aC5mbG9vcihzZXRfcG9zaXRpb24vaXRlbXNQZXJQYWdlKToKdG90YWxQYWdlLGEucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2UoZ29Ub1BhZ2UpLCRwcF9nYWxsZXJ5X2xpLmZpbHRlcigiOmVxKCIrc2V0X3Bvc2l0aW9uKyIpIikuYWRkQ2xhc3MoInNlbGVjdGVkIikpOiRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9jb250ZW50Iikub2ZmKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiKTtlLmFqYXhjYWxsYmFjaygpfWZ1bmN0aW9uIHooYyl7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIG9iamVjdCwjcHBfZnVsbF9yZXMgZW1iZWQiKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZmFkZSIpLmZhZGVPdXQoYi5hbmltYXRpb25fc3BlZWQsZnVuY3Rpb24oKXthKCIucHBfbG9hZGVySWNvbiIpLnNob3coKTtjKCl9KX1mdW5jdGlvbiBHKGMpezE8Yz9hKCIucHBfbmF2Iikuc2hvdygpOmEoIi5wcF9uYXYiKS5oaWRlKCl9ZnVuY3Rpb24gZyhjLGYpe3Jlc2l6ZWQ9ITE7QShjLGYpO2ltYWdlV2lkdGg9CmM7aW1hZ2VIZWlnaHQ9ZjtpZigobT5ofHxuPmspJiZkb3Jlc2l6ZSYmYi5hbGxvd19yZXNpemUmJiFyKXtyZXNpemVkPSEwO2ZvcihmaXR0aW5nPSExOyFmaXR0aW5nOyltPmg\/KGltYWdlV2lkdGg9aC01MCxpbWFnZUhlaWdodD1mL2MqaW1hZ2VXaWR0aCk6bj5rPyhpbWFnZUhlaWdodD1rLTUwLGltYWdlV2lkdGg9Yy9mKmltYWdlSGVpZ2h0KTpmaXR0aW5nPSEwLG49aW1hZ2VIZWlnaHQsbT1pbWFnZVdpZHRoOyhtPmh8fG4+aykmJmcobSxuKTtBKGltYWdlV2lkdGgsaW1hZ2VIZWlnaHQpfXJldHVybnt3aWR0aDpNYXRoLmZsb29yKGltYWdlV2lkdGgpLGhlaWdodDpNYXRoLmZsb29yKGltYWdlSGVpZ2h0KSxjb250YWluZXJIZWlnaHQ6TWF0aC5mbG9vcihuKSxjb250YWluZXJXaWR0aDpNYXRoLmZsb29yKG0pKzIqYi5ob3Jpem9udGFsX3BhZGRpbmcsY29udGVudEhlaWdodDpNYXRoLmZsb29yKHYpLGNvbnRlbnRXaWR0aDpNYXRoLmZsb29yKEIpLHJlc2l6ZWR9fWZ1bmN0aW9uIEEoYywKZil7Yz1wYXJzZUZsb2F0KGMpO2Y9cGFyc2VGbG9hdChmKTskcHBfZGV0YWlscz0kcHBfcGljX2hvbGRlci5maW5kKCIucHBfZGV0YWlscyIpOyRwcF9kZXRhaWxzLndpZHRoKGMpO2RldGFpbHNIZWlnaHQ9cGFyc2VGbG9hdCgkcHBfZGV0YWlscy5jc3MoIm1hcmdpblRvcCIpKStwYXJzZUZsb2F0KCRwcF9kZXRhaWxzLmNzcygibWFyZ2luQm90dG9tIikpOyRwcF9kZXRhaWxzPSRwcF9kZXRhaWxzLmNsb25lKCkuYWRkQ2xhc3MoYi50aGVtZSkud2lkdGgoYykuYXBwZW5kVG8oYSgiYm9keSIpKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOi0xRTR9KTtkZXRhaWxzSGVpZ2h0Kz0kcHBfZGV0YWlscy5oZWlnaHQoKTtkZXRhaWxzSGVpZ2h0PTM0Pj1kZXRhaWxzSGVpZ2h0PzM2OmRldGFpbHNIZWlnaHQ7JHBwX2RldGFpbHMucmVtb3ZlKCk7JHBwX3RpdGxlPSRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcHQiKTskcHBfdGl0bGUud2lkdGgoYyk7dGl0bGVIZWlnaHQ9cGFyc2VGbG9hdCgkcHBfdGl0bGUuY3NzKCJtYXJnaW5Ub3AiKSkrCnBhcnNlRmxvYXQoJHBwX3RpdGxlLmNzcygibWFyZ2luQm90dG9tIikpOyRwcF90aXRsZT0kcHBfdGl0bGUuY2xvbmUoKS5hcHBlbmRUbyhhKCJib2R5IikpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6LTFFNH0pO3RpdGxlSGVpZ2h0Kz0kcHBfdGl0bGUuaGVpZ2h0KCk7JHBwX3RpdGxlLnJlbW92ZSgpO3Y9ZitkZXRhaWxzSGVpZ2h0O0I9YztuPXYrdGl0bGVIZWlnaHQrJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3RvcCIpLmhlaWdodCgpKyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ib3R0b20iKS5oZWlnaHQoKTttPWN9ZnVuY3Rpb24gdChjKXtyZXR1cm4gYy5tYXRjaCgveW91dHViZVwuY29tXC93YXRjaC9pKXx8Yy5tYXRjaCgveW91dHVcLmJlL2kpPyJ5b3V0dWJlIjpjLm1hdGNoKC92aW1lb1wuY29tL2kpPyJ2aW1lbyI6Yy5tYXRjaCgvXC5tcDQvaSk\/Im1wNCI6Yy5tYXRjaCgvYXZ1M2QvaSk\/ImF2dTNkIjpjLm1hdGNoKC9cYi5tb3ZcYi9pKT8icXVpY2t0aW1lIjoKYy5tYXRjaCgvXGIuc3dmXGIvaSk\/ImZsYXNoIjpjLm1hdGNoKC9cYmlmcmFtZT10cnVlXGIvaSk\/ImlmcmFtZSI6Yy5tYXRjaCgvXGJhamF4PXRydWVcYi9pKT8iYWpheCI6Yy5tYXRjaCgvXGJjdXN0b209dHJ1ZVxiL2kpPyJjdXN0b20iOiIjIj09Yy5zdWJzdHIoMCwxKT8iaW5saW5lIjoiaW1hZ2UifWZ1bmN0aW9uIHcoKXtkb3Jlc2l6ZSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkcHBfcGljX2hvbGRlciYmKHNjcm9sbF9wb3M9QygpLGNvbnRlbnRIZWlnaHQ9JHBwX3BpY19ob2xkZXIuaGVpZ2h0KCksY29udGVudHdpZHRoPSRwcF9waWNfaG9sZGVyLndpZHRoKCkscHJvamVjdGVkVG9wPWsvMitzY3JvbGxfcG9zLnNjcm9sbFRvcC1jb250ZW50SGVpZ2h0LzIsMD5wcm9qZWN0ZWRUb3AmJihwcm9qZWN0ZWRUb3A9MCksY29udGVudEhlaWdodD5rfHwkcHBfcGljX2hvbGRlci5jc3Moe3RvcDpwcm9qZWN0ZWRUb3AsbGVmdDpoLzIrc2Nyb2xsX3Bvcy5zY3JvbGxMZWZ0LWNvbnRlbnR3aWR0aC8KMn0pKX1mdW5jdGlvbiBDKCl7aWYoc2VsZi5wYWdlWU9mZnNldClyZXR1cm57c2Nyb2xsVG9wOnNlbGYucGFnZVlPZmZzZXQsc2Nyb2xsTGVmdDpzZWxmLnBhZ2VYT2Zmc2V0fTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApcmV0dXJue3Njcm9sbFRvcDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLHNjcm9sbExlZnQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR9O2lmKGRvY3VtZW50LmJvZHkpcmV0dXJue3Njcm9sbFRvcDpkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCxzY3JvbGxMZWZ0OmRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdH19ZnVuY3Rpb24gRChjKXtiLnNvY2lhbF90b29scyYmKGZhY2Vib29rX2xpa2VfbGluaz1iLnNvY2lhbF90b29scy5yZXBsYWNlKCJ7bG9jYXRpb25faHJlZn0iLGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKSkpO2IubWFya3VwPWIubWFya3VwLnJlcGxhY2UoIntwcF9zb2NpYWx9IiwKIiIpO2EoImJvZHkiKS5hcHBlbmQoYi5tYXJrdXApOyRwcF9waWNfaG9sZGVyPWEoIi5wcF9waWNfaG9sZGVyIik7JHBwdD1hKCIucHB0Iik7JHBwX292ZXJsYXk9YSgiZGl2LnBwX292ZXJsYXkiKTtpZihpc1NldCYmYi5vdmVybGF5X2dhbGxlcnkpe2N1cnJlbnRHYWxsZXJ5UGFnZT0wO3RvSW5qZWN0PSIiO2ZvcihjPTA7YzxwcF9pbWFnZXMubGVuZ3RoO2MrKylwcF9pbWFnZXNbY10ubWF0Y2goL1xiKGpwZ3xqcGVnfHBuZ3xnaWYpXGIvZ2kpPyhjbGFzc25hbWU9IiIsaW1nX3NyYz1wcF9pbWFnZXNbY10pOihjbGFzc25hbWU9ImRlZmF1bHQiLGltZ19zcmM9IiIpLHRvSW5qZWN0Kz0iPGxpIGNsYXNzPSciK2NsYXNzbmFtZSsiJz48YSBocmVmPScjJz48aW1nIHNyYz0nIitpbWdfc3JjKyInIHdpZHRoPSc1MCcgYWx0PScnIC8+PC9hPjwvbGk+Ijt0b0luamVjdD1iLmdhbGxlcnlfbWFya3VwLnJlcGxhY2UoL3tnYWxsZXJ5fS9nLHRvSW5qZWN0KTskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMiKS5hZnRlcih0b0luamVjdCk7CiRwcF9nYWxsZXJ5PWEoIi5wcF9waWNfaG9sZGVyIC5wcF9nYWxsZXJ5Iik7JHBwX2dhbGxlcnlfbGk9JHBwX2dhbGxlcnkuZmluZCgibGkiKTskcHBfZ2FsbGVyeS5maW5kKCIucHBfYXJyb3dfbmV4dCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlKCJuZXh0Iik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTskcHBfZ2FsbGVyeS5maW5kKCIucHBfYXJyb3dfcHJldmlvdXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZSgicHJldmlvdXMiKTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9jb250ZW50Iikub24oImhvdmVyIixmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9nYWxsZXJ5Om5vdCguZGlzYWJsZWQpIikuZmFkZUluKCl9LGZ1bmN0aW9uKCl7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2dhbGxlcnk6bm90KC5kaXNhYmxlZCkiKS5mYWRlT3V0KCl9KTsKaXRlbVdpZHRoPTU3OyRwcF9nYWxsZXJ5X2xpLmVhY2goZnVuY3Rpb24oZil7YSh0aGlzKS5maW5kKCJhIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlUGFnZShmKTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pfSl9Yi5zbGlkZXNob3cmJigkcHBfcGljX2hvbGRlci5maW5kKCIucHBfbmF2IikucHJlcGVuZCgnPGEgaHJlZj0iIyIgY2xhc3M9InBwX3BsYXkiPlBsYXk8L2E+JyksJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25hdiAucHBfcGxheSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93KCk7cmV0dXJuITF9KSk7JHBwX3BpY19ob2xkZXIuYXR0cigiY2xhc3MiLCJwcF9waWNfaG9sZGVyICIrYi50aGVtZSk7JHBwX292ZXJsYXkuY3NzKHtvcGFjaXR5OjAsaGVpZ2h0OmEoZG9jdW1lbnQpLmhlaWdodCgpLHdpZHRoOmEod2luZG93KS53aWR0aCgpfSkub24oImNsaWNrIixmdW5jdGlvbigpe2IubW9kYWx8fAphLnByZXR0eVBob3RvLmNsb3NlKCl9KTthKCJhLnBwX2Nsb3NlIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2xvc2UoKTtyZXR1cm4hMX0pO2lmKGIuYWxsb3dfZXhwYW5kKWEoImEucHBfZXhwYW5kIikub24oImNsaWNrIixmdW5jdGlvbihmKXthKHRoaXMpLmhhc0NsYXNzKCJwcF9leHBhbmQiKT8oYSh0aGlzKS5yZW1vdmVDbGFzcygicHBfZXhwYW5kIikuYWRkQ2xhc3MoInBwX2NvbnRyYWN0IiksZG9yZXNpemU9ITEpOihhKHRoaXMpLnJlbW92ZUNsYXNzKCJwcF9jb250cmFjdCIpLmFkZENsYXNzKCJwcF9leHBhbmQiKSxkb3Jlc2l6ZT0hMCk7eihmdW5jdGlvbigpe2EucHJldHR5UGhvdG8ub3BlbigpfSk7cmV0dXJuITF9KTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfcHJldmlvdXMsIC5wcF9uYXYgLnBwX2Fycm93X3ByZXZpb3VzIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgicHJldmlvdXMiKTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTsKcmV0dXJuITF9KTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfbmV4dCwgLnBwX25hdiAucHBfYXJyb3dfbmV4dCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoIm5leHQiKTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pO3coKX1lPWpRdWVyeS5leHRlbmQoe2hvb2s6InJlbCIsYW5pbWF0aW9uX3NwZWVkOiJmYXN0IixhamF4Y2FsbGJhY2s6ZnVuY3Rpb24oKXt9LHNsaWRlc2hvdzo1RTMsYXV0b3BsYXlfc2xpZGVzaG93OiExLG9wYWNpdHk6Ljgsc2hvd190aXRsZTohMCxhbGxvd19yZXNpemU6ITAsYWxsb3dfZXhwYW5kOiEwLGRlZmF1bHRfd2lkdGg6NTAwLGRlZmF1bHRfaGVpZ2h0OjM0NCxjb3VudGVyX3NlcGFyYXRvcl9sYWJlbDoiLyIsdGhlbWU6InBwX2RlZmF1bHQiLGhvcml6b250YWxfcGFkZGluZzoyMCxoaWRlZmxhc2g6ITEsd21vZGU6Im9wYXF1ZSIsYXV0b3BsYXk6ITAsbW9kYWw6ITEsZGVlcGxpbmtpbmc6ITAsCm92ZXJsYXlfZ2FsbGVyeTohMCxvdmVybGF5X2dhbGxlcnlfbWF4OjMwLGtleWJvYXJkX3Nob3J0Y3V0czohMCxjaGFuZ2VwaWN0dXJlY2FsbGJhY2s6ZnVuY3Rpb24oKXt9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxpZTZfZmFsbGJhY2s6ITAsbWFya3VwOic8ZGl2IGNsYXNzPSJwcF9waWNfaG9sZGVyIj4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHB0Ij4mbmJzcDs8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfdG9wIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xlZnQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbWlkZGxlIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3JpZ2h0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2NvbnRlbnRfY29udGFpbmVyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xlZnQiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InBwX2V4cGFuZCIgdGl0bGU9IkV4cGFuZCB0aGUgaW1hZ2UiPkV4cGFuZDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3JpZ2h0Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9jb250ZW50Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbG9hZGVySWNvbiI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2ZhZGUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBwX2Nsb3NlIiBocmVmPSIjIj5DbG9zZTwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2hvdmVyQ29udGFpbmVyIGpxdWVyeXBwMiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBwX25leHQiIGhyZWY9IiMiPm5leHQ8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBwX3ByZXZpb3VzIiBocmVmPSIjIj5wcmV2aW91czwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icHBfZnVsbF9yZXMiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfZGV0YWlscyI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBwX2Rlc2NyaXB0aW9uIj48L3A+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfc29jaWFsIj57cHBfc29jaWFsfTwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2JvdHRvbSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX21pZGRsZSI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX292ZXJsYXkiPjwvZGl2PicsCmdhbGxlcnlfbWFya3VwOic8ZGl2IGNsYXNzPSJwcF9nYWxsZXJ5Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHBfYXJyb3dfcHJldmlvdXMiPlByZXZpb3VzPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnYWxsZXJ5fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcF9hcnJvd19uZXh0Ij5OZXh0PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+JyxpbWFnZV9tYXJrdXA6JzxpbWcgaWQ9ImZ1bGxSZXNJbWFnZSIgc3JjPSJ7cGF0aH0iIC8+JyxmbGFzaF9tYXJrdXA6JzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiB3aWR0aD0ie3dpZHRofSIgaGVpZ2h0PSJ7aGVpZ2h0fSI+PHBhcmFtIG5hbWU9Indtb2RlIiB2YWx1ZT0ie3dtb2RlfSIgLz48cGFyYW0gbmFtZT0iYWxsb3dmdWxsc2NyZWVuIiB2YWx1ZT0idHJ1ZSIgLz48cGFyYW0gbmFtZT0iYWxsb3dzY3JpcHRhY2Nlc3MiIHZhbHVlPSJhbHdheXMiIC8+PHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0ie3BhdGh9IiAvPjxlbWJlZCBzcmM9IntwYXRofSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIgYWxsb3dzY3JpcHRhY2Nlc3M9ImFsd2F5cyIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iIHdtb2RlPSJ7d21vZGV9Ij48L2VtYmVkPjwvb2JqZWN0PicsCnF1aWNrdGltZV9tYXJrdXA6JzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6MDJCRjI1RDUtOEMxNy00QjIzLUJDODAtRDM0ODhBQkREQzZCIiBjb2RlYmFzZT0iaHR0cDovL3d3dy5hcHBsZS5jb20vcXRhY3RpdmV4L3F0cGx1Z2luLmNhYiIgaGVpZ2h0PSJ7aGVpZ2h0fSIgd2lkdGg9Int3aWR0aH0iPjxwYXJhbSBuYW1lPSJzcmMiIHZhbHVlPSJ7cGF0aH0iPjxwYXJhbSBuYW1lPSJhdXRvcGxheSIgdmFsdWU9InthdXRvcGxheX0iPjxwYXJhbSBuYW1lPSJ0eXBlIiB2YWx1ZT0idmlkZW8vcXVpY2t0aW1lIj48ZW1iZWQgc3JjPSJ7cGF0aH0iIGhlaWdodD0ie2hlaWdodH0iIHdpZHRoPSJ7d2lkdGh9IiBhdXRvcGxheT0ie2F1dG9wbGF5fSIgdHlwZT0idmlkZW8vcXVpY2t0aW1lIiBwbHVnaW5zcGFnZT0iaHR0cDovL3d3dy5hcHBsZS5jb20vcXVpY2t0aW1lL2Rvd25sb2FkLyI+PC9lbWJlZD48L29iamVjdD4nLGlmcmFtZV9tYXJrdXA6JzxpZnJhbWUgc3JjID0ie3BhdGh9IiB3aWR0aD0ie3dpZHRofSIgaGVpZ2h0PSJ7aGVpZ2h0fSIgZnJhbWVib3JkZXI9Im5vIj48L2lmcmFtZT4nLAppbmxpbmVfbWFya3VwOic8ZGl2IGNsYXNzPSJwcF9pbmxpbmUiPntjb250ZW50fTwvZGl2PicsbXA0X21hcmt1cDonPHZpZGVvIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IiIgcHJlbG9hZD0iYXV0byIgYXV0b3BsYXkgY29udHJvbHM9IiIgaWQ9InBsYXllciIgc3R5bGU9IndpZHRoOiAxMDAlOyI+PHNvdXJjZSB0eXBlPSJ2aWRlby9tcDQiIHNyYz0ie3BhdGh9Ij48L3NvdXJjZT48L3ZpZGVvPicsY3VzdG9tX21hcmt1cDoiIixzb2NpYWxfdG9vbHM6JzxkaXYgY2xhc3M9InR3aXR0ZXIiPjxhIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9zaGFyZSIgY2xhc3M9InR3aXR0ZXItc2hhcmUtYnV0dG9uIiBkYXRhLWNvdW50PSJub25lIj5Ud2VldDwvYT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyI+XHgzYy9zY3JpcHQ+PC9kaXY+PGRpdiBjbGFzcz0iZmFjZWJvb2siPjxpZnJhbWUgc3JjPSIvL3d3dy5mYWNlYm9vay5jb20vcGx1Z2lucy9saWtlLnBocD9sb2NhbGU9ZW5fVVMmaHJlZj17bG9jYXRpb25faHJlZn0mYW1wO2xheW91dD1idXR0b25fY291bnQmYW1wO3Nob3dfZmFjZXM9dHJ1ZSZhbXA7d2lkdGg9NTAwJmFtcDthY3Rpb249bGlrZSZhbXA7Zm9udCZhbXA7Y29sb3JzY2hlbWU9bGlnaHQmYW1wO2hlaWdodD0yMyIgc2Nyb2xsaW5nPSJubyIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6bm9uZTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDo1MDBweDsgaGVpZ2h0OjIzcHg7IiBhbGxvd1RyYW5zcGFyZW5jeT0idHJ1ZSI+PC9pZnJhbWU+PC9kaXY+J30sCmUpO3ZhciBiPXt9LHg9dGhpcyxyPSExLGQsdSx2LEIsbixtLGs9YSh3aW5kb3cpLmhlaWdodCgpLGg9YSh3aW5kb3cpLndpZHRoKCkscTtkb3Jlc2l6ZT0hMDtzY3JvbGxfcG9zPUMoKTthKHdpbmRvdykub2ZmKCJyZXNpemUucHJldHR5cGhvdG8iKS5vbigicmVzaXplLnByZXR0eXBob3RvIixmdW5jdGlvbigpe3coKTtrPWEod2luZG93KS5oZWlnaHQoKTtoPWEod2luZG93KS53aWR0aCgpOyJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX292ZXJsYXkmJiRwcF9vdmVybGF5LmhlaWdodChhKGRvY3VtZW50KS5oZWlnaHQoKSkud2lkdGgoaCl9KTtpZihlLmtleWJvYXJkX3Nob3J0Y3V0cylhKGRvY3VtZW50KS5vZmYoImtleWRvd24ucHJldHR5cGhvdG8iKS5vbigia2V5ZG93bi5wcmV0dHlwaG90byIsZnVuY3Rpb24oYyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAkcHBfcGljX2hvbGRlciYmJHBwX3BpY19ob2xkZXIuaXMoIjp2aXNpYmxlIikpc3dpdGNoKGMua2V5Q29kZSl7Y2FzZSAzNzphLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoInByZXZpb3VzIik7CmMucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIDM5OmEucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgibmV4dCIpO2MucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIDI3OmIubW9kYWx8fGEucHJldHR5UGhvdG8uY2xvc2UoKSxjLnByZXZlbnREZWZhdWx0KCl9fSk7YS5wcmV0dHlQaG90by5pbml0aWFsaXplPWZ1bmN0aW9uKCl7Yj1lOyJwcF9kZWZhdWx0Ij09Yi50aGVtZSYmKGIuaG9yaXpvbnRhbF9wYWRkaW5nPTE2KTt0aGVSZWw9YSh0aGlzKS5hdHRyKGIuaG9vayk7Z2FsbGVyeVJlZ0V4cD0vXFsoPzouKilcXS87cHBfaW1hZ2VzPShpc1NldD1nYWxsZXJ5UmVnRXhwLmV4ZWModGhlUmVsKT8hMDohMSk\/alF1ZXJ5Lm1hcCh4LGZ1bmN0aW9uKGMsZil7aWYoLTEhPWEoYykuYXR0cihiLmhvb2spLmluZGV4T2YodGhlUmVsKSlyZXR1cm4gYShjKS5hdHRyKCJocmVmIil9KTphLm1ha2VBcnJheShhKHRoaXMpLmF0dHIoImhyZWYiKSk7cHBfdGl0bGVzPWlzU2V0P2pRdWVyeS5tYXAoeCwKZnVuY3Rpb24oYyxmKXtpZigtMSE9YShjKS5hdHRyKGIuaG9vaykuaW5kZXhPZih0aGVSZWwpKXJldHVybiBhKGMpLmZpbmQoImltZyIpLmF0dHIoImFsdCIpP2EoYykuZmluZCgiaW1nIikuYXR0cigiYWx0Iik6IiJ9KTphLm1ha2VBcnJheShhKHRoaXMpLmZpbmQoImltZyIpLmF0dHIoImFsdCIpKTtwcF9kZXNjcmlwdGlvbnM9aXNTZXQ\/alF1ZXJ5Lm1hcCh4LGZ1bmN0aW9uKGMsZil7aWYoLTEhPWEoYykuYXR0cihiLmhvb2spLmluZGV4T2YodGhlUmVsKSlyZXR1cm4gYShjKS5hdHRyKCJ0aXRsZSIpP2EoYykuYXR0cigidGl0bGUiKToiIn0pOmEubWFrZUFycmF5KGEodGhpcykuYXR0cigidGl0bGUiKSk7cHBfaW1hZ2VzLmxlbmd0aD5iLm92ZXJsYXlfZ2FsbGVyeV9tYXgmJihiLm92ZXJsYXlfZ2FsbGVyeT0hMSk7c2V0X3Bvc2l0aW9uPWpRdWVyeS5pbkFycmF5KGEodGhpcykuYXR0cigiaHJlZiIpLHBwX2ltYWdlcyk7cmVsX2luZGV4PWlzU2V0P3NldF9wb3NpdGlvbjphKCJhWyIrCmIuaG9vaysiXj0nIit0aGVSZWwrIiddIikuaW5kZXgoYSh0aGlzKSk7RCh0aGlzKTtpZihiLmFsbG93X3Jlc2l6ZSlhKHdpbmRvdykub24oInNjcm9sbC5wcmV0dHlwaG90byIsZnVuY3Rpb24oKXt3KCl9KTthLnByZXR0eVBob3RvLm9wZW4oKTtyZXR1cm4hMX07YS5wcmV0dHlQaG90by5vcGVuPWZ1bmN0aW9uKGMsZixFLEYpeyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9ZSxwcF9pbWFnZXM9YS5tYWtlQXJyYXkoYykscHBfdGl0bGVzPWY\/YS5tYWtlQXJyYXkoZik6YS5tYWtlQXJyYXkoIiIpLHBwX2Rlc2NyaXB0aW9ucz1FP2EubWFrZUFycmF5KEUpOmEubWFrZUFycmF5KCIiKSxpc1NldD0xPHBwX2ltYWdlcy5sZW5ndGg\/ITA6ITEsc2V0X3Bvc2l0aW9uPUY\/RjowLEQoYy50YXJnZXQpKTtiLmhpZGVmbGFzaCYmYSgib2JqZWN0LGVtYmVkLGlmcmFtZVtzcmMqPXlvdXR1YmVdLGlmcmFtZVtzcmMqPXZpbWVvXSIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpO0coYShwcF9pbWFnZXMpLmxlbmd0aCk7CmEoIi5wcF9sb2FkZXJJY29uIikuc2hvdygpO2IuZGVlcGxpbmtpbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgdGhlUmVsJiYobG9jYXRpb24uaGFzaD10aGVSZWwrIi8iK3JlbF9pbmRleCsiLyIpO2Iuc29jaWFsX3Rvb2xzJiYoZmFjZWJvb2tfbGlrZV9saW5rPWIuc29jaWFsX3Rvb2xzLnJlcGxhY2UoIntsb2NhdGlvbl9ocmVmfSIsZW5jb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9uLmhyZWYpKSwkcHBfcGljX2hvbGRlci5maW5kKCIucHBfc29jaWFsIikuaHRtbChmYWNlYm9va19saWtlX2xpbmspKTskcHB0LmlzKCI6aGlkZGVuIikmJiRwcHQuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCk7JHBwX292ZXJsYXkuc2hvdygpLmZhZGVUbyhiLmFuaW1hdGlvbl9zcGVlZCxiLm9wYWNpdHkpOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5jdXJyZW50VGV4dEhvbGRlciIpLnRleHQoc2V0X3Bvc2l0aW9uKzErYi5jb3VudGVyX3NlcGFyYXRvcl9sYWJlbCthKHBwX2ltYWdlcykubGVuZ3RoKTsidW5kZWZpbmVkIiE9CnR5cGVvZiBwcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXSYmIiIhPXBwX2Rlc2NyaXB0aW9uc1tzZXRfcG9zaXRpb25dPyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9kZXNjcmlwdGlvbiIpLnNob3coKS5odG1sKHVuZXNjYXBlKHBwX2Rlc2NyaXB0aW9uc1tzZXRfcG9zaXRpb25dKSk6JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2Rlc2NyaXB0aW9uIikuaGlkZSgpO21vdmllX3dpZHRoPXBhcnNlRmxvYXQobCgid2lkdGgiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKSk\/bCgid2lkdGgiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTpiLmRlZmF1bHRfd2lkdGgudG9TdHJpbmcoKTttb3ZpZV9oZWlnaHQ9cGFyc2VGbG9hdChsKCJoZWlnaHQiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKSk\/bCgiaGVpZ2h0IixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk6Yi5kZWZhdWx0X2hlaWdodC50b1N0cmluZygpO3I9ITE7LTEhPW1vdmllX2hlaWdodC5pbmRleE9mKCIlIikmJihtb3ZpZV9oZWlnaHQ9CnBhcnNlRmxvYXQoYSh3aW5kb3cpLmhlaWdodCgpKnBhcnNlRmxvYXQobW92aWVfaGVpZ2h0KS8xMDAtMTUwKSxyPSEwKTstMSE9bW92aWVfd2lkdGguaW5kZXhPZigiJSIpJiYobW92aWVfd2lkdGg9cGFyc2VGbG9hdChhKHdpbmRvdykud2lkdGgoKSpwYXJzZUZsb2F0KG1vdmllX3dpZHRoKS8xMDAtMTUwKSxyPSEwKTskcHBfcGljX2hvbGRlci5mYWRlSW4oZnVuY3Rpb24oKXtiLnNob3dfdGl0bGUmJiIiIT1wcF90aXRsZXNbc2V0X3Bvc2l0aW9uXSYmInVuZGVmaW5lZCIhPXR5cGVvZiBwcF90aXRsZXNbc2V0X3Bvc2l0aW9uXT8kcHB0Lmh0bWwodW5lc2NhcGUocHBfdGl0bGVzW3NldF9wb3NpdGlvbl0pKTokcHB0Lmh0bWwoIiZuYnNwOyIpO2ltZ1ByZWxvYWRlcj0iIjtza2lwSW5qZWN0aW9uPSExO3N3aXRjaCh0KHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKSl7Y2FzZSAiaW1hZ2UiOmltZ1ByZWxvYWRlcj1uZXcgSW1hZ2U7bmV4dEltYWdlPW5ldyBJbWFnZTtpc1NldCYmc2V0X3Bvc2l0aW9uPAphKHBwX2ltYWdlcykubGVuZ3RoLTEmJihuZXh0SW1hZ2Uuc3JjPXBwX2ltYWdlc1tzZXRfcG9zaXRpb24rMV0pO3ByZXZJbWFnZT1uZXcgSW1hZ2U7aXNTZXQmJnBwX2ltYWdlc1tzZXRfcG9zaXRpb24tMV0mJihwcmV2SW1hZ2Uuc3JjPXBwX2ltYWdlc1tzZXRfcG9zaXRpb24tMV0pOyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpWzBdLmlubmVySFRNTD1iLmltYWdlX21hcmt1cC5yZXBsYWNlKC97cGF0aH0vZyxwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk7aW1nUHJlbG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpe2Q9ZyhpbWdQcmVsb2FkZXIud2lkdGgsaW1nUHJlbG9hZGVyLmhlaWdodCk7cCgpfTtpbWdQcmVsb2FkZXIub25lcnJvcj1mdW5jdGlvbigpe2FsZXJ0KCJJbWFnZSBjYW5ub3QgYmUgbG9hZGVkLiBNYWtlIHN1cmUgdGhlIHBhdGggaXMgY29ycmVjdCBhbmQgaW1hZ2UgZXhpc3QuIik7YS5wcmV0dHlQaG90by5jbG9zZSgpfTtpbWdQcmVsb2FkZXIuc3JjPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dOwpicmVhaztjYXNlICJ5b3V0dWJlIjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTttb3ZpZV9pZD1sKCJ2IixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk7IiI9PW1vdmllX2lkJiYobW92aWVfaWQ9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0uc3BsaXQoInlvdXR1LmJlLyIpLG1vdmllX2lkPW1vdmllX2lkWzFdLDA8bW92aWVfaWQuaW5kZXhPZigiPyIpJiYobW92aWVfaWQ9bW92aWVfaWQuc3Vic3RyKDAsbW92aWVfaWQuaW5kZXhPZigiPyIpKSksMDxtb3ZpZV9pZC5pbmRleE9mKCImIikmJihtb3ZpZV9pZD1tb3ZpZV9pZC5zdWJzdHIoMCxtb3ZpZV9pZC5pbmRleE9mKCImIikpKSk7bW92aWU9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyIrbW92aWVfaWQ7bCgicmVsIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk\/bW92aWUrPSI\/cmVsPSIrbCgicmVsIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk6bW92aWUrPSI\/cmVsPTEiO2IuYXV0b3BsYXkmJihtb3ZpZSs9IiZhdXRvcGxheT0xIik7CnRvSW5qZWN0PWIuaWZyYW1lX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3dtb2RlfS9nLGIud21vZGUpLnJlcGxhY2UoL3twYXRofS9nLG1vdmllKTticmVhaztjYXNlICJ2aW1lbyI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfaWQ9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07bW92aWU9Imh0dHA6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLyIrbW92aWVfaWQubWF0Y2goL2h0dHAocz8pOlwvXC8od3d3XC4pP3ZpbWVvLmNvbVwvKFxkKykvKVszXSsiP3RpdGxlPTAmYW1wO2J5bGluZT0wJmFtcDtwb3J0cmFpdD0wIjtiLmF1dG9wbGF5JiYobW92aWUrPSImYXV0b3BsYXk9MTsiKTt2aW1lb193aWR0aD1kLndpZHRoKyIvZW1iZWQvP21vb2dfd2lkdGg9IitkLndpZHRoO3RvSW5qZWN0PWIuaWZyYW1lX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csdmltZW9fd2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csCmQuaGVpZ2h0KS5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZSk7YnJlYWs7Y2FzZSAibXA0IjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTttb3ZpZV91cmw9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07dG9JbmplY3Q9Yi5tcDRfbWFya3VwLnJlcGxhY2UoL3twYXRofS9nLG1vdmllX3VybCk7YnJlYWs7Y2FzZSAicXVpY2t0aW1lIjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTtkLmhlaWdodCs9MTU7ZC5jb250ZW50SGVpZ2h0Kz0xNTtkLmNvbnRhaW5lckhlaWdodCs9MTU7dG9JbmplY3Q9Yi5xdWlja3RpbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97d21vZGV9L2csYi53bW9kZSkucmVwbGFjZSgve3BhdGh9L2cscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pLnJlcGxhY2UoL3thdXRvcGxheX0vZyxiLmF1dG9wbGF5KTticmVhaztjYXNlICJmbGFzaCI6ZD1nKG1vdmllX3dpZHRoLAptb3ZpZV9oZWlnaHQpO2ZsYXNoX3ZhcnM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07Zmxhc2hfdmFycz1mbGFzaF92YXJzLnN1YnN0cmluZyhwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXS5pbmRleE9mKCJmbGFzaHZhcnMiKSsxMCxwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXS5sZW5ndGgpO2ZpbGVuYW1lPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZpbGVuYW1lPWZpbGVuYW1lLnN1YnN0cmluZygwLGZpbGVuYW1lLmluZGV4T2YoIj8iKSk7dG9JbmplY3Q9Yi5mbGFzaF9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3t3bW9kZX0vZyxiLndtb2RlKS5yZXBsYWNlKC97cGF0aH0vZyxmaWxlbmFtZSsiPyIrZmxhc2hfdmFycyk7YnJlYWs7Y2FzZSAiaWZyYW1lIjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTtmcmFtZV91cmw9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07ZnJhbWVfdXJsPWZyYW1lX3VybC5zdWJzdHIoMCwKZnJhbWVfdXJsLmluZGV4T2YoImlmcmFtZSIpLTEpO3RvSW5qZWN0PWIuaWZyYW1lX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3BhdGh9L2csZnJhbWVfdXJsKTticmVhaztjYXNlICJhamF4Ijpkb3Jlc2l6ZT0hMTtkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTtza2lwSW5qZWN0aW9uPWRvcmVzaXplPSEwO2EuZ2V0KHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLGZ1bmN0aW9uKEgpe3RvSW5qZWN0PWIuaW5saW5lX21hcmt1cC5yZXBsYWNlKC97Y29udGVudH0vZyxIKTskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMiKVswXS5pbm5lckhUTUw9dG9JbmplY3Q7cCgpfSk7YnJlYWs7Y2FzZSAiY3VzdG9tIjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTt0b0luamVjdD1iLmN1c3RvbV9tYXJrdXA7YnJlYWs7Y2FzZSAiaW5saW5lIjpteUNsb25lPWEocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pLmNsb25lKCkuYXBwZW5kKCc8YnIgY2xlYXI9ImFsbCIgLz4nKS5jc3Moe3dpZHRoOmIuZGVmYXVsdF93aWR0aH0pLndyYXBJbm5lcignPGRpdiBpZD0icHBfZnVsbF9yZXMiPjxkaXYgY2xhc3M9InBwX2lubGluZSI+PC9kaXY+PC9kaXY+JykuYXBwZW5kVG8oYSgiYm9keSIpKS5zaG93KCksCmRvcmVzaXplPSExLGQ9ZyhhKG15Q2xvbmUpLndpZHRoKCksYShteUNsb25lKS5oZWlnaHQoKSksZG9yZXNpemU9ITAsYShteUNsb25lKS5yZW1vdmUoKSx0b0luamVjdD1iLmlubGluZV9tYXJrdXAucmVwbGFjZSgve2NvbnRlbnR9L2csYShwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkuaHRtbCgpKX1pbWdQcmVsb2FkZXJ8fHNraXBJbmplY3Rpb258fCgkcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMiKVswXS5pbm5lckhUTUw9dG9JbmplY3QscCgpKX0pO3JldHVybiExfTthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2U9ZnVuY3Rpb24oYyl7Y3VycmVudEdhbGxlcnlQYWdlPTA7InByZXZpb3VzIj09Yz8oc2V0X3Bvc2l0aW9uLS0sMD5zZXRfcG9zaXRpb24mJihzZXRfcG9zaXRpb249YShwcF9pbWFnZXMpLmxlbmd0aC0xKSk6Im5leHQiPT1jPyhzZXRfcG9zaXRpb24rKyxzZXRfcG9zaXRpb24+YShwcF9pbWFnZXMpLmxlbmd0aC0xJiYoc2V0X3Bvc2l0aW9uPTApKTpzZXRfcG9zaXRpb249CmM7cmVsX2luZGV4PXNldF9wb3NpdGlvbjtkb3Jlc2l6ZXx8KGRvcmVzaXplPSEwKTtiLmFsbG93X2V4cGFuZCYmYSgiLnBwX2NvbnRyYWN0IikucmVtb3ZlQ2xhc3MoInBwX2NvbnRyYWN0IikuYWRkQ2xhc3MoInBwX2V4cGFuZCIpO3ooZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLm9wZW4oKX0pfTthLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlPWZ1bmN0aW9uKGMpeyJuZXh0Ij09Yz8oY3VycmVudEdhbGxlcnlQYWdlKyssY3VycmVudEdhbGxlcnlQYWdlPnRvdGFsUGFnZSYmKGN1cnJlbnRHYWxsZXJ5UGFnZT0wKSk6InByZXZpb3VzIj09Yz8oY3VycmVudEdhbGxlcnlQYWdlLS0sMD5jdXJyZW50R2FsbGVyeVBhZ2UmJihjdXJyZW50R2FsbGVyeVBhZ2U9dG90YWxQYWdlKSk6Y3VycmVudEdhbGxlcnlQYWdlPWM7c2xpZGVfc3BlZWQ9Im5leHQiPT1jfHwicHJldmlvdXMiPT1jP2IuYW5pbWF0aW9uX3NwZWVkOjA7c2xpZGVfdG89Y3VycmVudEdhbGxlcnlQYWdlKml0ZW1zUGVyUGFnZSoKaXRlbVdpZHRoOyRwcF9nYWxsZXJ5LmZpbmQoInVsIikuYW5pbWF0ZSh7bGVmdDotc2xpZGVfdG99LHNsaWRlX3NwZWVkKX07YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdz1mdW5jdGlvbigpeyJ1bmRlZmluZWQiPT10eXBlb2YgcT8oJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3BsYXkiKS5vZmYoImNsaWNrIikucmVtb3ZlQ2xhc3MoInBwX3BsYXkiKS5hZGRDbGFzcygicHBfcGF1c2UiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KSxxPXNldEludGVydmFsKGEucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3csYi5zbGlkZXNob3cpKTphLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoIm5leHQiKX07YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93PWZ1bmN0aW9uKCl7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3BhdXNlIikub2ZmKCJjbGljayIpLnJlbW92ZUNsYXNzKCJwcF9wYXVzZSIpLmFkZENsYXNzKCJwcF9wbGF5Iikub24oImNsaWNrIiwKZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93KCk7cmV0dXJuITF9KTtjbGVhckludGVydmFsKHEpO3E9dm9pZCAwfTthLnByZXR0eVBob3RvLmNsb3NlPWZ1bmN0aW9uKCl7JHBwX292ZXJsYXkuaXMoIjphbmltYXRlZCIpfHwoYS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCksJHBwX3BpY19ob2xkZXIuc3RvcCgpLmZpbmQoIm9iamVjdCxlbWJlZCIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLGEoImRpdi5wcF9waWNfaG9sZGVyLGRpdi5wcHQsLnBwX2ZhZGUiKS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7YSh0aGlzKS5yZW1vdmUoKX0pLCRwcF9vdmVybGF5LmZhZGVPdXQoYi5hbmltYXRpb25fc3BlZWQsZnVuY3Rpb24oKXtiLmhpZGVmbGFzaCYmYSgib2JqZWN0LGVtYmVkLGlmcmFtZVtzcmMqPXlvdXR1YmVdLGlmcmFtZVtzcmMqPXZpbWVvXSIpLmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKTthKHRoaXMpLnJlbW92ZSgpOwphKHdpbmRvdykub2ZmKCJzY3JvbGwucHJldHR5cGhvdG8iKTstMSE9PWxvY2F0aW9uLmhyZWYuaW5kZXhPZigiI3ByZXR0eVBob3RvIikmJihsb2NhdGlvbi5oYXNoPSJwcmV0dHlQaG90byIpO2IuY2FsbGJhY2soKTtkb3Jlc2l6ZT0hMDt1PSExO2RlbGV0ZSBifSkpfTshcHBfYWxyZWFkeUluaXRpYWxpemVkJiZ5KCkmJihwcF9hbHJlYWR5SW5pdGlhbGl6ZWQ9ITAsaGFzaFJlbD1oYXNoSW5kZXg9eSgpLGhhc2hJbmRleD1oYXNoSW5kZXguc3Vic3RyaW5nKGhhc2hJbmRleC5pbmRleE9mKCIvIikrMSxoYXNoSW5kZXgubGVuZ3RoLTEpLGhhc2hSZWw9aGFzaFJlbC5zdWJzdHJpbmcoMCxoYXNoUmVsLmluZGV4T2YoIi8iKSksc2V0VGltZW91dChmdW5jdGlvbigpe2EoImFbIitlLmhvb2srIl49JyIraGFzaFJlbCsiJ106ZXEoIitoYXNoSW5kZXgrIikiKS50cmlnZ2VyKCJjbGljayIpfSw1MCkpO3JldHVybiB0aGlzLm9mZigiY2xpY2sucHJldHR5cGhvdG8iKS5vbigiY2xpY2sucHJldHR5cGhvdG8iLAphLnByZXR0eVBob3RvLmluaXRpYWxpemUpfX0pKGpRdWVyeSk7dmFyIHBwX2FscmVhZHlJbml0aWFsaXplZD0hMTsKLyoqIC9qcy9qcXVlcnkudHJhbnNpdGlvbi5taW4uanMgKiovCi8qIQogKiBqUXVlcnkgVHJhbnNpdCAtIENTUzMgdHJhbnNpdGlvbnMgYW5kIHRyYW5zZm9ybWF0aW9ucwogKiBDb3B5cmlnaHQoYykgMjAxMSBSaWNvIFN0YS4gQ3J1eiA8cmljb0ByaWNvc3RhY3J1ei5jb20+CiAqIE1JVCBMaWNlbnNlZC4KICoKICogaHR0cDovL3JpY29zdGFjcnV6LmNvbS9qcXVlcnkudHJhbnNpdAogKiBodHRwOi8vZ2l0aHViLmNvbS9yc3RhY3J1ei9qcXVlcnkudHJhbnNpdAogKi8KKGZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGsoYSl7dmFyIGI9WyJNb3oiLCJXZWJraXQiLCJPIiwibXMiXSxjPWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHIoMSk7aWYoYSBpbiBpLnN0eWxlKXJldHVybiBhO2ZvcihhPTA7YTxiLmxlbmd0aDsrK2Epe3ZhciBkPWJbYV0rYztpZihkIGluIGkuc3R5bGUpcmV0dXJuIGR9fWZ1bmN0aW9uIGooYSl7InN0cmluZyI9PT10eXBlb2YgYSYmdGhpcy5wYXJzZShhKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBwKGEsYixjKXshMD09PWI\/YS5xdWV1ZShjKTpiP2EucXVldWUoYixjKTpjKCl9ZnVuY3Rpb24gbShhKXt2YXIgYj1bXTtkLmVhY2goYSxmdW5jdGlvbihhKXthPWQuY2FtZWxDYXNlKGEpO2E9ZC50cmFuc2l0LnByb3BlcnR5TWFwW2FdfHxhO2E9cihhKTstMT09PWQuaW5BcnJheShhLGIpJiZiLnB1c2goYSl9KTtyZXR1cm4gYn1mdW5jdGlvbiBxKGEsYixjLGUpe2E9bShhKTtkLmNzc0Vhc2VbY10mJihjPWQuY3NzRWFzZVtjXSk7CnZhciBoPSIiK24oYikrIiAiK2M7MDxwYXJzZUludChlLDEwKSYmKGgrPSIgIituKGUpKTt2YXIgZj1bXTtkLmVhY2goYSxmdW5jdGlvbihhLGIpe2YucHVzaChiKyIgIitoKX0pO3JldHVybiBmLmpvaW4oIiwgIil9ZnVuY3Rpb24gZihhLGIpe2J8fChkLmNzc051bWJlclthXT0hMCk7ZC50cmFuc2l0LnByb3BlcnR5TWFwW2FdPWUudHJhbnNmb3JtO2QuY3NzSG9va3NbYV09e2dldDpmdW5jdGlvbihiKXtyZXR1cm4oZChiKS5jc3MoInRyYW5zZm9ybSIpfHxuZXcgaikuZ2V0KGEpfSxzZXQ6ZnVuY3Rpb24oYixlKXt2YXIgaD1kKGIpLmNzcygidHJhbnNmb3JtIil8fG5ldyBqO2guc2V0RnJvbVN0cmluZyhhLGUpO2QoYikuY3NzKHt0cmFuc2Zvcm06aH0pfX19ZnVuY3Rpb24gcihhKXtyZXR1cm4gYS5yZXBsYWNlKC8oW0EtWl0pL2csZnVuY3Rpb24oYSl7cmV0dXJuIi0iK2EudG9Mb3dlckNhc2UoKX0pfWZ1bmN0aW9uIGcoYSxiKXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBhJiYhYS5tYXRjaCgvXltcLTAtOVwuXSskLyk\/CmE6IiIrYStifWZ1bmN0aW9uIG4oYSl7ZC5meC5zcGVlZHNbYV0mJihhPWQuZnguc3BlZWRzW2FdKTtyZXR1cm4gZyhhLCJtcyIpfWQudHJhbnNpdD17dmVyc2lvbjoiMC4xLjMiLHByb3BlcnR5TWFwOnttYXJnaW5MZWZ0OiJtYXJnaW4iLG1hcmdpblJpZ2h0OiJtYXJnaW4iLG1hcmdpbkJvdHRvbToibWFyZ2luIixtYXJnaW5Ub3A6Im1hcmdpbiIscGFkZGluZ0xlZnQ6InBhZGRpbmciLHBhZGRpbmdSaWdodDoicGFkZGluZyIscGFkZGluZ0JvdHRvbToicGFkZGluZyIscGFkZGluZ1RvcDoicGFkZGluZyJ9LGVuYWJsZWQ6ITAsdXNlVHJhbnNpdGlvbkVuZDohMX07dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT17fSxzPS0xPG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJjaHJvbWUiKTtlLnRyYW5zaXRpb249aygidHJhbnNpdGlvbiIpO2UudHJhbnNpdGlvbkRlbGF5PWsoInRyYW5zaXRpb25EZWxheSIpO2UudHJhbnNmb3JtPWsoInRyYW5zZm9ybSIpOwplLnRyYW5zZm9ybU9yaWdpbj1rKCJ0cmFuc2Zvcm1PcmlnaW4iKTtpLnN0eWxlW2UudHJhbnNmb3JtXT0iIjtpLnN0eWxlW2UudHJhbnNmb3JtXT0icm90YXRlWSg5MGRlZykiO2UudHJhbnNmb3JtM2Q9IiIhPT1pLnN0eWxlW2UudHJhbnNmb3JtXTtkLmV4dGVuZChkLnN1cHBvcnQsZSk7dmFyIG89ZS50cmFuc2l0aW9uRW5kPXtNb3pUcmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIixPVHJhbnNpdGlvbjoib1RyYW5zaXRpb25FbmQiLFdlYmtpdFRyYW5zaXRpb246IndlYmtpdFRyYW5zaXRpb25FbmQiLG1zVHJhbnNpdGlvbjoiTVNUcmFuc2l0aW9uRW5kIn1bZS50cmFuc2l0aW9uXXx8bnVsbCxpPW51bGw7ZC5jc3NFYXNlPXtfZGVmYXVsdDoiZWFzZSIsImluIjoiZWFzZS1pbiIsb3V0OiJlYXNlLW91dCIsImluLW91dCI6ImVhc2UtaW4tb3V0IixzbmFwOiJjdWJpYy1iZXppZXIoMCwxLC41LDEpIn07ZC5jc3NIb29rcy50cmFuc2Zvcm09e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gZChhKS5kYXRhKCJ0cmFuc2Zvcm0iKX0sCnNldDpmdW5jdGlvbihhLGIpe3ZhciBjPWI7YyBpbnN0YW5jZW9mIGp8fChjPW5ldyBqKGMpKTthLnN0eWxlW2UudHJhbnNmb3JtXT0iV2Via2l0VHJhbnNmb3JtIj09PWUudHJhbnNmb3JtJiYhcz9jLnRvU3RyaW5nKCEwKTpjLnRvU3RyaW5nKCk7ZChhKS5kYXRhKCJ0cmFuc2Zvcm0iLGMpfX07ZC5jc3NIb29rcy50cmFuc2Zvcm1PcmlnaW49e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZVtlLnRyYW5zZm9ybU9yaWdpbl19LHNldDpmdW5jdGlvbihhLGIpe2Euc3R5bGVbZS50cmFuc2Zvcm1PcmlnaW5dPWJ9fTtkLmNzc0hvb2tzLnRyYW5zaXRpb249e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZVtlLnRyYW5zaXRpb25dfSxzZXQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlW2UudHJhbnNpdGlvbl09Yn19O2YoInNjYWxlIik7ZigidHJhbnNsYXRlIik7Zigicm90YXRlIik7Zigicm90YXRlWCIpO2YoInJvdGF0ZVkiKTtmKCJyb3RhdGUzZCIpO2YoInBlcnNwZWN0aXZlIik7CmYoInNrZXdYIik7Zigic2tld1kiKTtmKCJ4IiwhMCk7ZigieSIsITApO2oucHJvdG90eXBlPXtzZXRGcm9tU3RyaW5nOmZ1bmN0aW9uKGEsYil7dmFyIGM9InN0cmluZyI9PT10eXBlb2YgYj9iLnNwbGl0KCIsIik6Yi5jb25zdHJ1Y3Rvcj09PUFycmF5P2I6W2JdO2MudW5zaGlmdChhKTtqLnByb3RvdHlwZS5zZXQuYXBwbHkodGhpcyxjKX0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPUFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShhcmd1bWVudHMsWzFdKTt0aGlzLnNldHRlclthXT90aGlzLnNldHRlclthXS5hcHBseSh0aGlzLGIpOnRoaXNbYV09Yi5qb2luKCIsIil9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nZXR0ZXJbYV0\/dGhpcy5nZXR0ZXJbYV0uYXBwbHkodGhpcyk6dGhpc1thXXx8MH0sc2V0dGVyOntyb3RhdGU6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGU9ZyhhLCJkZWciKX0scm90YXRlWDpmdW5jdGlvbihhKXt0aGlzLnJvdGF0ZVg9ZyhhLCJkZWciKX0scm90YXRlWTpmdW5jdGlvbihhKXt0aGlzLnJvdGF0ZVk9CmcoYSwiZGVnIil9LHNjYWxlOmZ1bmN0aW9uKGEsYil7dm9pZCAwPT09YiYmKGI9YSk7dGhpcy5zY2FsZT1hKyIsIitifSxza2V3WDpmdW5jdGlvbihhKXt0aGlzLnNrZXdYPWcoYSwiZGVnIil9LHNrZXdZOmZ1bmN0aW9uKGEpe3RoaXMuc2tld1k9ZyhhLCJkZWciKX0scGVyc3BlY3RpdmU6ZnVuY3Rpb24oYSl7dGhpcy5wZXJzcGVjdGl2ZT1nKGEsInB4Iil9LHg6ZnVuY3Rpb24oYSl7dGhpcy5zZXQoInRyYW5zbGF0ZSIsYSxudWxsKX0seTpmdW5jdGlvbihhKXt0aGlzLnNldCgidHJhbnNsYXRlIixudWxsLGEpfSx0cmFuc2xhdGU6ZnVuY3Rpb24oYSxiKXt2b2lkIDA9PT10aGlzLl90cmFuc2xhdGVYJiYodGhpcy5fdHJhbnNsYXRlWD0wKTt2b2lkIDA9PT10aGlzLl90cmFuc2xhdGVZJiYodGhpcy5fdHJhbnNsYXRlWT0wKTtudWxsIT09YSYmKHRoaXMuX3RyYW5zbGF0ZVg9ZyhhLCJweCIpKTtudWxsIT09YiYmKHRoaXMuX3RyYW5zbGF0ZVk9ZyhiLCJweCIpKTt0aGlzLnRyYW5zbGF0ZT0KdGhpcy5fdHJhbnNsYXRlWCsiLCIrdGhpcy5fdHJhbnNsYXRlWX19LGdldHRlcjp7eDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVYfHwwfSx5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVl8fDB9LHNjYWxlOmZ1bmN0aW9uKCl7dmFyIGE9KHRoaXMuc2NhbGV8fCIxLDEiKS5zcGxpdCgiLCIpO2FbMF0mJihhWzBdPXBhcnNlRmxvYXQoYVswXSkpO2FbMV0mJihhWzFdPXBhcnNlRmxvYXQoYVsxXSkpO3JldHVybiBhWzBdPT09YVsxXT9hWzBdOmF9LHJvdGF0ZTNkOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPSh0aGlzLnJvdGF0ZTNkfHwiMCwwLDAsMGRlZyIpLnNwbGl0KCIsIiksYj0wOzM+PWI7KytiKWFbYl0mJihhW2JdPXBhcnNlRmxvYXQoYVtiXSkpO2FbM10mJihhWzNdPWcoYVszXSwiZGVnIikpO3JldHVybiBhfX0scGFyc2U6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczthLnJlcGxhY2UoLyhbYS16QS1aMC05XSspXCgoLio\/KVwpL2csZnVuY3Rpb24oYSxkLAplKXtiLnNldEZyb21TdHJpbmcoZCxlKX0pfSx0b1N0cmluZzpmdW5jdGlvbihhKXt2YXIgYj1bXSxjO2ZvcihjIGluIHRoaXMpaWYodGhpcy5oYXNPd25Qcm9wZXJ0eShjKSYmKGUudHJhbnNmb3JtM2R8fCEoInJvdGF0ZVgiPT09Y3x8InJvdGF0ZVkiPT09Y3x8InBlcnNwZWN0aXZlIj09PWN8fCJ0cmFuc2Zvcm1PcmlnaW4iPT09YykpKSJfIiE9PWNbMF0mJihhJiYic2NhbGUiPT09Yz9iLnB1c2goYysiM2QoIit0aGlzW2NdKyIsMSkiKTphJiYidHJhbnNsYXRlIj09PWM\/Yi5wdXNoKGMrIjNkKCIrdGhpc1tjXSsiLDApIik6Yi5wdXNoKGMrIigiK3RoaXNbY10rIikiKSk7cmV0dXJuIGIuam9pbigiICIpfX07ZC5mbi50cmFuc2l0aW9uPWQuZm4udHJhbnNpdD1mdW5jdGlvbihhLGIsYyxmKXt2YXIgaD10aGlzLGc9MCxpPSEwOyJmdW5jdGlvbiI9PT10eXBlb2YgYiYmKGY9YixiPXZvaWQgMCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBjJiYoZj1jLGM9dm9pZCAwKTsidW5kZWZpbmVkIiE9PQp0eXBlb2YgYS5lYXNpbmcmJihjPWEuZWFzaW5nLGRlbGV0ZSBhLmVhc2luZyk7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5kdXJhdGlvbiYmKGI9YS5kdXJhdGlvbixkZWxldGUgYS5kdXJhdGlvbik7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5jb21wbGV0ZSYmKGY9YS5jb21wbGV0ZSxkZWxldGUgYS5jb21wbGV0ZSk7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5xdWV1ZSYmKGk9YS5xdWV1ZSxkZWxldGUgYS5xdWV1ZSk7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5kZWxheSYmKGc9YS5kZWxheSxkZWxldGUgYS5kZWxheSk7InVuZGVmaW5lZCI9PT10eXBlb2YgYiYmKGI9ZC5meC5zcGVlZHMuX2RlZmF1bHQpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGMmJihjPWQuY3NzRWFzZS5fZGVmYXVsdCk7dmFyIGI9bihiKSxqPXEoYSxiLGMsZyksbD1kLnRyYW5zaXQuZW5hYmxlZCYmZS50cmFuc2l0aW9uP3BhcnNlSW50KGIsMTApK3BhcnNlSW50KGcsMTApOjA7aWYoMD09PWwpcmV0dXJuIHAoaCxpLGZ1bmN0aW9uKGIpe2guY3NzKGEpOwpmJiZmLmFwcGx5KGgpO2ImJmIoKX0pLGg7dmFyIGs9e30sbT1mdW5jdGlvbihiKXt2YXIgYz1mYWxzZSxnPWZ1bmN0aW9uKCl7YyYmaC5vZmYobyxnKTtsPjAmJmguZWFjaChmdW5jdGlvbigpe3RoaXMuc3R5bGVbZS50cmFuc2l0aW9uXT1rW3RoaXNdfHxudWxsfSk7dHlwZW9mIGY9PT0iZnVuY3Rpb24iJiZmLmFwcGx5KGgpO3R5cGVvZiBiPT09ImZ1bmN0aW9uIiYmYigpfTtpZihsPjAmJm8mJmQudHJhbnNpdC51c2VUcmFuc2l0aW9uRW5kKXtjPXRydWU7aC5vbihvLGcpfWVsc2Ugd2luZG93LnNldFRpbWVvdXQoZyxsKTtoLmVhY2goZnVuY3Rpb24oKXtsPjAmJih0aGlzLnN0eWxlW2UudHJhbnNpdGlvbl09aik7ZCh0aGlzKS5jc3MoYSl9KX07cChoLGksZnVuY3Rpb24oYSl7dmFyIGI9MDtlLnRyYW5zaXRpb249PT0iTW96VHJhbnNpdGlvbiImJmI8MjUmJihiPTI1KTt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe20oYSl9LGIpfSk7cmV0dXJuIHRoaXN9O2QudHJhbnNpdC5nZXRUcmFuc2l0aW9uVmFsdWU9CnF9KShqUXVlcnkpOy8qRU9GKi87Ci8qKiAvanMvanF1ZXJ5LnRvdWNoU3dpcGUubWluLmpzICoqLwooZnVuY3Rpb24oZyl7Zy5mbi5zd2lwZT1mdW5jdGlvbihtKXtpZighdGhpcylyZXR1cm4gZmFsc2U7dmFyIGI9e2ZpbmdlcnM6MSx0aHJlc2hvbGQ6NzUsc3dpcGU6bnVsbCxzd2lwZUxlZnQ6bnVsbCxzd2lwZVJpZ2h0Om51bGwsc3dpcGVVcDpudWxsLHN3aXBlRG93bjpudWxsLHN3aXBlU3RhdHVzOm51bGwsY2xpY2s6bnVsbCx0cmlnZ2VyT25Ub3VjaEVuZDp0cnVlLGFsbG93UGFnZVNjcm9sbDoiYXV0byJ9LHA9ImxlZnQiLHY9InJpZ2h0Iix3PSJ1cCIseD0iZG93biIseT0ibm9uZSIsej0iaG9yaXpvbnRhbCIsQT0idmVydGljYWwiLEc9ImF1dG8iLEg9InN0YXJ0IixCPSJtb3ZlIixxPSJlbmQiLG49ImNhbmNlbCIsZD0ib250b3VjaHN0YXJ0ImluIHdpbmRvdyxDPWQ\/InRvdWNoc3RhcnQiOiJtb3VzZWRvd24iLHI9ZD8idG91Y2htb3ZlIjoibW91c2Vtb3ZlIixzPWQ\/InRvdWNoZW5kIjoibW91c2V1cCIsYz0ic3RhcnQiO2lmKG0uYWxsb3dQYWdlU2Nyb2xsPT11bmRlZmluZWQmJg0KKG0uc3dpcGUhPXVuZGVmaW5lZHx8bS5zd2lwZVN0YXR1cyE9dW5kZWZpbmVkKSltLmFsbG93UGFnZVNjcm9sbD15O20mJmcuZXh0ZW5kKGIsbSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2Z1bmN0aW9uIEQoYSl7dmFyIGU9ZD9hLnRvdWNoZXNbMF06YTtjPUg7aWYoZClrPWEudG91Y2hlcy5sZW5ndGg7ZGlzdGFuY2U9MDtkaXJlY3Rpb249bnVsbDtpZihrPT1iLmZpbmdlcnN8fCFkKXtoLng9Zi54PWUucGFnZVg7aC55PWYueT1lLnBhZ2VZO2Iuc3dpcGVTdGF0dXMmJm8oYSxjKX1lbHNlIGwoYSk7aWYoZCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihyLHQpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIocyx1KX1lbHNle2coZG9jdW1lbnQpLm9uKHIsdCk7Zyhkb2N1bWVudCkub24ocyx1KX19ZnVuY3Rpb24gdChhKXtpZighKGM9PXF8fGM9PW4pKXt2YXIgZT1kP2EudG91Y2hlc1swXTphO2YueD1lLnBhZ2VYO2YueT1lLnBhZ2VZO2RpcmVjdGlvbj1FKCk7aWYoZClrPQ0KYS50b3VjaGVzLmxlbmd0aDtjPUI7ZT1kaXJlY3Rpb247aWYoYi5hbGxvd1BhZ2VTY3JvbGw9PXkpYS5wcmV2ZW50RGVmYXVsdCgpO2Vsc2V7dmFyIGk9Yi5hbGxvd1BhZ2VTY3JvbGw9PUc7c3dpdGNoKGUpe2Nhc2UgcDppZihiLnN3aXBlTGVmdCYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT16KWEucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIHY6aWYoYi5zd2lwZVJpZ2h0JiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPXopYS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgdzppZihiLnN3aXBlVXAmJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9QSlhLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSB4OmlmKGIuc3dpcGVEb3duJiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPUEpYS5wcmV2ZW50RGVmYXVsdCgpfX1pZihrPT1iLmZpbmdlcnN8fCFkKXtkaXN0YW5jZT1GKCk7Yi5zd2lwZVN0YXR1cyYmbyhhLGMsZGlyZWN0aW9uLGRpc3RhbmNlKTtpZighYi50cmlnZ2VyT25Ub3VjaEVuZClpZihkaXN0YW5jZT49DQpiLnRocmVzaG9sZCl7Yz1xO28oYSxjKTtsKGEpfX1lbHNle2M9bjtvKGEsYyk7bChhKX19fWZ1bmN0aW9uIHUoYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2Rpc3RhbmNlPUYoKTtkaXJlY3Rpb249RSgpO2lmKGIudHJpZ2dlck9uVG91Y2hFbmQpe2M9cTtpZigoaz09Yi5maW5nZXJzfHwhZCkmJmYueCE9MClkaXN0YW5jZT49Yi50aHJlc2hvbGR8fChjPW4pO2Vsc2UgYz1uO28oYSxjKTtsKGEpfWVsc2UgaWYoYz09Qil7Yz1uO28oYSxjKTtsKGEpfWlmKGQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIocix0KTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHMsdSl9ZWxzZXtnKGRvY3VtZW50KS5vZmYocix0KTtnKGRvY3VtZW50KS5vZmYocyx1KX19ZnVuY3Rpb24gbCgpe2s9MDtoLng9MDtoLnk9MDtmLng9MDtmLnk9MH1mdW5jdGlvbiBvKGEsZSl7aWYoYi5zd2lwZVN0YXR1cyliLnN3aXBlU3RhdHVzLmNhbGwoaixhLGUsZGlyZWN0aW9ufHxudWxsLGRpc3RhbmNlfHwNCjApO2lmKGU9PW4paWYoYi5jbGljayYmKGs9PTF8fCFkKSYmKGlzTmFOKGRpc3RhbmNlKXx8ZGlzdGFuY2U9PTApKWIuY2xpY2suY2FsbChqLGEsYS50YXJnZXQpO2lmKGU9PXEpe2Iuc3dpcGUmJmIuc3dpcGUuY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKTtzd2l0Y2goZGlyZWN0aW9uKXtjYXNlIHA6Yi5zd2lwZUxlZnQmJmIuc3dpcGVMZWZ0LmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7YnJlYWs7Y2FzZSB2OmIuc3dpcGVSaWdodCYmYi5zd2lwZVJpZ2h0LmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7YnJlYWs7Y2FzZSB3OmIuc3dpcGVVcCYmYi5zd2lwZVVwLmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7YnJlYWs7Y2FzZSB4OmIuc3dpcGVEb3duJiZiLnN3aXBlRG93bi5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpfX19ZnVuY3Rpb24gRigpe3JldHVybiBNYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyhmLngtaC54LDIpK01hdGgucG93KGYueS0NCmgueSwyKSkpfWZ1bmN0aW9uIEUoKXt2YXIgYTthPU1hdGgucm91bmQoTWF0aC5hdGFuMihmLnktaC55LGgueC1mLngpKjE4MC9NYXRoLlBJKTtpZihhPDApYT0zNjAtTWF0aC5hYnMoYSk7YT1hO3JldHVybiBhPD00NSYmYT49MD9wOmE8PTM2MCYmYT49MzE1P3A6YT49MTM1JiZhPD0yMjU\/djphPjQ1JiZhPDEzNT94Ond9dmFyIGo9Zyh0aGlzKSxrPTAsaD17eDowLHk6MH0sZj17eDowLHk6MH07aWYoZCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKEMsRCk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGwpfWVsc2V7ai5vbihDLEQpO2coZG9jdW1lbnQpLm9uKCJ0b3VjaGNhbmNlbCIsbCl9fSl9fSkoalF1ZXJ5KTsvKkVPRiovOwovKiogL2pzL3BhZ2ViYW5uZXIuanMgKiovCnZhciBfX19kMmNfcGFnZWJhbm5lcmpzX2Nfb249IjIwMjYtMDYtMDUgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0JztmdW5jdGlvbiBQYWdlQmFubmVyKGEpe25ldyBQYWdlQmFubmVyc0Nhcm91c2VsKGEpfQpmdW5jdGlvbiBtb3RvaW5zaWdodEJhbm5lclZhcmlhYmxlUmVwbGFjZW1lbnQoKXtpZigkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5sZW5ndGgpaWYoJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLmxlbmd0aCYmIjEiPT0kKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkpaWYoJCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9TRUxFQ1QiKS5sZW5ndGgmJiJ0YWIiPT0kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1NFTEVDVCIpLnZhbCgpKXt2YXIgYT0kKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS52YWwoKTskKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikuYXR0cigib250YXAiLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKX1lbHNlICQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsCiIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKTtlbHNlICQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfVVNFRF9TRUxFQ1QiKS5sZW5ndGgmJiJ0YWIiPT0kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1VTRURfU0VMRUNUIikudmFsKCk\/KGE9JCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikudmFsKCksJCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpLmF0dHIoIm9udGFwIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikpOiQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsCiIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKTtlbHNlICQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS5sZW5ndGgmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpPyQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfU0VMRUNUIikubGVuZ3RoJiYidGFiIj09JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9TRUxFQ1QiKS52YWwoKT8oYT0kKCIjbW90b2luc2lnaHRzaG9wc2NyaXB0dXJsIikudmFsKCksYT1hLnJlcGxhY2UoImludGVncmF0aW9uL2ludGVncmF0aW9uLmpzIiwic2VhcmNoLyIpLCQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKS5hdHRyKCJvbnRhcCIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpKTokKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwKIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik6JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9VU0VEX1NFTEVDVCIpLmxlbmd0aCYmInRhYiI9PSQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfVVNFRF9TRUxFQ1QiKS52YWwoKT8oYT0kKCIjbW90b2luc2lnaHRzaG9wc2NyaXB0dXJsIikudmFsKCksYT1hLnJlcGxhY2UoImludGVncmF0aW9uL2ludGVncmF0aW9uLmpzIiwic2VhcmNoLz9jb25kaXRpb249VXNlZCIpLCQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKS5hdHRyKCJvbnRhcCIsIndpbmRvdy5vcGVuKCciKwphKyInLCAnX2JsYW5rJykiKSk6JCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iil9CmNsYXNzIFBhZ2VCYW5uZXJzQ2Fyb3VzZWx7Y29uc3RydWN0b3IoYSl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYSl7dGhpcy5pc0ludmVudG9yeVBhZ2UmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEubmV3SW52ZW50b3J5JiYoYT1hLm5ld0ludmVudG9yeSk7dmFyIGUsYjt0aGlzLmRhdGE9bnVsbCE9KGI9bnVsbD09KGU9YSk\/dm9pZCAwOmUuYmFubmVycyk\/YjphO3ZhciBjLGQ7dGhpcy5jb25maWc9bnVsbCE9KGQ9bnVsbD09KGM9YSk\/dm9pZCAwOmMuY29uZmlnKT9kOmE7dGhpcy5iYW5uZXJzPVtdO3RoaXMuaW5kZXg9LTE7dGhpcy5pbml0aWFsaXplZD0hMTt0aGlzLnRpbWVvdXRJRD1udWxsO3RoaXMuaW5pdCgpfX1nZXQgaXNJbnZlbnRvcnlQYWdlKCl7cmV0dXJuIm5ld2ludiI9PT1zdG9yZS5nZXQoImNvbnRleHQiKS5jYXRlZ29yeX1nZXQgY3VycmVudFBhdGgoKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSt3aW5kb3cubG9jYXRpb24uc2VhcmNoKS50b0xvd2VyQ2FzZSgpfWdldCAkdG9wQmFubmVySW1hZ2UoKXtyZXR1cm4gJCgiZGl2I3RvcEJhbm5lckltYWdlIil9aW5pdCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXt2YXIgYT0Ke30sZT17fSxiPVtdLGM9MDtmb3IodmFyIGQgaW4gdGhpcy5kYXRhKSJodG1sNSI9PT1kfHx0aGlzLl9pc0tleXdvcmRJblBhdGgoZCl8fHRoaXMuX2lzS2V5d29yZEluQ29va2llKGQpfHwkKCJib2R5IikuaGFzQ2xhc3MoInRlbXBsYXRlNSIpJiYoIm5ldWZzIj09PWR8fCJuZXciPT09ZCk\/Imh0bWw1Ij09PWQmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0JiZudWxsIT1uZXdjYXJEZXRhaWxzLnNsaWRlck9iamVjdCYmMz5uZXdjYXJEZXRhaWxzLnNsaWRlck9iamVjdC50b3RhbFNsaWRlcygpfHwkLmVhY2godGhpcy5kYXRhW2RdLChnLGYpPT57Yz1wYXJzZUludChnKTstMT09PWIuaW5kZXhPZihjKT8oYi5wdXNoKGMpLGFbY109Zik6YVtjKzUwXT1mfSk6ImRlZmF1bHQiPT09ZHx8dGhpcy5faXNLZXl3b3JkSW5QYXRoKGQpfHx0aGlzLl9pc0tleXdvcmRJbkNvb2tpZShkKT8kLmVhY2godGhpcy5kYXRhW2RdLAooZyxmKT0+e2FbMF09ZjtiLnB1c2goMCl9KToic3RhdGljYmFubmVycyI9PT1kJiYkLmVhY2godGhpcy5kYXRhW2RdLChnLGYpPT57Yz1wYXJzZUludChnKTstMT09PWIuaW5kZXhPZihjKSYmKGIucHVzaChjKSxhW2NdPWYpO2VbZ109Zn0pO3ZhciBoPSEwOyQuZWFjaChhLChnLGYpPT57ImRlZmF1bHQiIT1mLmkmJihoPSExKX0pO3RoaXMuYmFubmVycz1bXTskLmVhY2goYSwoZyxmKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIGYmJigiZGVmYXVsdCI9PT1mLmkmJiEwPT09aHx8ImRlZmF1bHQiIT09Zi5pKSYmdGhpcy5iYW5uZXJzLnB1c2goZil9KTswPT09dGhpcy5iYW5uZXJzLmxlbmd0aCYmMDxPYmplY3Qua2V5cyhlKS5sZW5ndGgmJiQuZWFjaChlLChnLGYpPT57InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmdGhpcy5iYW5uZXJzLnB1c2goZil9KTtkPSQoIiNpc01vYmlsZSIpOzA8ZC5sZW5ndGgmJjE9PT1kLnZhbCgpJiYoJCgiZGl2I3RvcEJhbm5lckltYWdlIikuYWRkQ2xhc3MoIi1tdDEwIiksCiQoJ1tpZCo9ImhlYWRlclByb21vRmxvYXRCdXR0b25JbkJvZHkiXScpLmhpZGUoKSk7dGhpcy5pbml0aWFsaXplZD0hMDswPE9iamVjdC5rZXlzKHRoaXMuYmFubmVycykubGVuZ3RoP3RoaXMucm90YXRlKCk6dGhpcy5jbGVhckFzcGVjdFJhdGlvKCl9fWNsZWFyQXNwZWN0UmF0aW8oKXtsZXQgYT0kKCJkaXYjdG9wQmFubmVySW1hZ2UiKTthLmxlbmd0aCYmYS5jc3MoImFzcGVjdC1yYXRpbyIsIiIpfXN0b3AoKXtjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SUQpfXN0YXJ0KGEpe3RoaXMuaW5pdGlhbGl6ZWQmJih0aGlzLnRpbWVvdXRJRD1zZXRUaW1lb3V0KCgpPT50aGlzLnJvdGF0ZSgpLGEpKX1yb3RhdGUoKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIHBvcHVwaXplckFjdGl2ZSYmcG9wdXBpemVyQWN0aXZlKCkpc2V0VGltZW91dCgoKT0+dGhpcy5yb3RhdGUoKSwzRTMpO2Vsc2V7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRhcmstdG9vbHRpcCIpO2lmKGEubGVuZ3RoKXtsZXQgYz0KITE7YS5mb3JFYWNoKGQ9Pnsibm9uZSIhPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpJiYoYz0hMCl9KTtpZighMD09PWMpe3NldFRpbWVvdXQoKCk9PnRoaXMucm90YXRlKCksMkUzKTtyZXR1cm59fWE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RvcEJhbm5lckltYWdlIik7aWYoITE9PT1pc0luVmlld3BvcnQoYSx7dG9wOi0zNTB9KSl0aGlzLnN0YXJ0KDNFMyk7ZWxzZXt0aGlzLmluZGV4Kys7dGhpcy5pbmRleD49T2JqZWN0LmtleXModGhpcy5iYW5uZXJzKS5sZW5ndGgmJih0aGlzLmluZGV4PTApO3ZhciBlPSQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLGI9dGhpcy5iYW5uZXJzW3RoaXMuaW5kZXhdO2lmKGImJiJodG1sNSI9PT1iLmkpe2E9MDtsZXQgYz0xPT09Yi51P3RoaXMuY29uZmlnLmMxOnRoaXMuY29uZmlnLmMyXzEsZD0yPT09Yi51P3RoaXMuY29uZmlnLmMyOnRoaXMuY29uZmlnLmMyXzI7ZS5odG1sKCIiKS5oaWRlKCk7CmxldCBoPSQoIiNwcm9tb19idG5fdHlwZSIpLnZhbCgpO3ZvaWQgMD09PWgmJihoPSJiZXN0b2ZmZXJfYW5pbWF0ZSIpO2xldCBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2cuaWQ9Imd3ZGJhbm5lciI7Zy5zdHlsZS53aWR0aD0iOTMwcHgiO2cuc3R5bGUuaGVpZ2h0PSIyMDBweCI7Zy5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsIm5vIik7Zy5zZXRBdHRyaWJ1dGUoImZyYW1lYm9yZGVyIiwiMCIpOyJpbnZlbnRvcnkiPT09Yi5vJiYxMDwkKCIjdXNlZEludmVudG9yeU5ld1BhZ2UiKS5odG1sKCkubGVuZ3RoJiYhQ29va2llcy5nZXQoImludmVudG9yeU5ld1BvcHVwU2hvd24iKSYmKGE9MSk7bGV0IGY9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLnJlcGxhY2UoLy18XHMvZywiXyIpLGs9JCgiI3RleHRNb2RlbE92ZXJyaWRlIikudmFsKCk7az0oaz9rOiQoIiNwb3B1cG1vZGVsIikudmFsKCkpLnJlcGxhY2UoLy18XHMvZywiXyIpO2xldCBtPSQoIiNwb3B1cHllYXIiKS52YWwoKSwKbD0kKCIjc3R5bGVpZCIpLnZhbCgpO2w9MDxwYXJzZUludChsKT8iLWlkIitsOiIiOyQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2cuc3JjPWAvZ3dkYmFubmVyLyR7bX0tJHtmfS0ke2t9JHtsfS5odG1sP3B0eXBlPSR7aH0mYzE9JHtjfSZjMj0ke2R9JnQ9JHtiLnV9Jm89JHthfWA6Zy5zcmM9YC9nd2RiYW5uZXIvJHtmfS0ke2t9LSR7bX0ke2x9Lmh0bWw\/cHR5cGU9JHtofSZjMT0ke2N9JmMyPSR7ZH0mdD0ke2IudX0mbz0ke2F9YDtlLmh0bWwoZykuZmFkZUluKCJzbG93Iil9ZWxzZSBpZihiJiYiZGVmYXVsdCI9PT1iLmkpZS5odG1sKCIiKS5oaWRlKCkuaHRtbChiLmgpLmZhZGVJbigic2xvdyIpLmF0dHIoIm9uY2xpY2siLGUuZmluZCgidGFibGUiKS5hdHRyKCJvbmNsaWNrIikpLmF0dHIoIm9udGFwIixlLmZpbmQoInRhYmxlIikuYXR0cigib25jbGljayIpKTtlbHNlICQoJzxpbWcgZmV0Y2hwcmlvcml0eT0iaGlnaCIgYWx0PSIiIHN0eWxlPSJ3aWR0aDoxMDAlO2N1cnNvcjpwb2ludGVyOyIgc3JjPSInKwpiLmkrJyI+Jykub24oImxvYWQiLGM9PntlLmh0bWwoIiIpLmhpZGUoKTskKGMuY3VycmVudFRhcmdldCkuYXBwZW5kVG8oImRpdiN0b3BCYW5uZXJJbWFnZSIpO3RoaXMuX3Byb2Nlc3NEaXNjbGFpbWVyKGIpO251bGwhPWIudSYmMDxiLnUubGVuZ3RoPy0xPGIudS5pbmRleE9mKCJ0cmFkZWludmFsdWVzLmNhIil8fC0xPGIudS5pbmRleE9mKCJpbnN0YW50b2ZmZXIuYWNjdS10cmFkZS5jb20iKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsInNob3dUcmFkZUluUG9wdXAoJyIrYi51KyInKSIpLmF0dHIoIm9udGFwIiwic2hvd1RyYWRlSW5Qb3B1cCgnIitiLnUrIicpIik6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJHRyYWRlYm9vc3QiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsInJldHVybiBsYXVuY2hUcmFkZUluUG9wdXAoJ2Jhbm5lcicpOyIpLmF0dHIoIm9udGFwIiwicmV0dXJuIGxhdW5jaFRyYWRlSW5Qb3B1cCgnYmFubmVyJyk7Iik6Ci0xPGIudS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIiRjcmVkaXRzY29yZSIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwiJCgnI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJG11bHRpc3RlcGZpbmFuY2UiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIiQoJyNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKToKLTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJGNyZWRpdGJvb3N0Iik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCIkKCcjY3JlZGl0Qm9vc3RNdWx0aVBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLCIkKCcjY3JlZGl0Qm9vc3RNdWx0aVBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik6LTE8Yi51LmluZGV4T2YoIiRtb3RvaW5zaWdodHNob3AiKT8kKCIjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJm1vdG9pbnNpZ2h0QmFubmVyVmFyaWFibGVSZXBsYWNlbWVudCgpOi0xPGIudS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIiRzZXJ2aWNlYXB0Iik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJMZWFkSGFuZGxlcigpLmdldExlYWQoJ0RlYWxlckFwcG9pbnRtZW50JykuZGlzcGxheSgpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsCiJMZWFkSGFuZGxlcigpLmdldExlYWQoJ0RlYWxlckFwcG9pbnRtZW50JykuZGlzcGxheSgpO3JldHVybiBmYWxzZTsiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJqYXZhc2NyaXB0OnZvaWQiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsYi51KS5hdHRyKCJvbnRhcCIsYi51KTowPT09Yi51LmluZGV4T2YoIi8iKXx8LTE8Yi51LmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3QpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwid2luZG93LmxvY2F0aW9uID0gJyIrYi51KyInIik6JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cub3BlbignIitiLnUrIicsICdfYmxhbmsnKSIpOiQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwic2hvd1BvcHVwV2lkZ2V0KCkiKS5hdHRyKCJvbnRhcCIsInNob3dQb3B1cFdpZGdldCgpIik7ZS5mYWRlSW4oInNsb3ciKX0pOzI+T2JqZWN0LmtleXModGhpcy5iYW5uZXJzKS5sZW5ndGh8fAp0aGlzLnN0YXJ0KGIudCl9fX1faXNLZXl3b3JkSW5QYXRoKGEpe3JldHVybi0xIT09dGhpcy5jdXJyZW50UGF0aC5pbmRleE9mKGRlY29kZVVSSUNvbXBvbmVudChhKyIiKS50b0xvd2VyQ2FzZSgpKX1faXNLZXl3b3JkSW5Db29raWUoYSl7bGV0IGU9Q29va2llcy5nZXQoImQyY29mZmVyIik7cmV0dXJuIGUmJihlPWUudG9Mb3dlckNhc2UoKSwtMSE9PWUuaW5kZXhPZihhLnRvTG93ZXJDYXNlKCkpKT8hMDohMX1fcHJvY2Vzc0Rpc2NsYWltZXIoYSl7aWYoYS5oYXNPd25Qcm9wZXJ0eSgiZCIpJiYwIT09YS5kLmxlbmd0aCl7dmFyIGU9e2ZyOntzaG93OiJBZmZpY2hlciBsZXMgbW9kYWxpdMOpcyBldCBjb25kaXRpb25zIGfDqW7DqXJhbGVzIixoaWRlOiJNYXNxdWVyIGxlcyBtb2RhbGl0w6lzIGV0IGNvbmRpdGlvbnMgZ8OpbsOpcmFsZXMifSxlbjp7c2hvdzoiVmlldyBUZXJtcyBhbmQgQ29uZGl0aW9ucyIsaGlkZToiSGlkZSBUZXJtcyBhbmQgQ29uZGl0aW9ucyJ9fSxiPSIxIj09PQokKCIjaXNtb2JpbGUiKS52YWwoKSxjPSQoJzxkaXYgY2xhc3M9InRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyBmYS0yeCI+PC9pPjxkaXY+PC9kaXY+PC9kaXY+JyksZD0kKGA8ZGl2IGNsYXNzPSJ0b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiI+JHtlW0QyQ1V0aWxzLkxhbmcuZ2V0U2hvcnRMYW5nKCExKV0uc2hvd308L2J1dHRvbj48L2Rpdj5gKTtjLmZpbmQoImRpdiIpLmFwcGVuZChhLmQpO3RoaXMuJHRvcEJhbm5lckltYWdlLmFwcGVuZChjKTt0aGlzLiR0b3BCYW5uZXJJbWFnZS5hcHBlbmQoZCk7aWYoYilkLm9uKCJjbGljayIsKCk9PntjLmlzKCI6dmlzaWJsZSIpPyhkLmZpbmQoImJ1dHRvbiIpLnRleHQoZVtEMkNVdGlscy5MYW5nLmdldFNob3J0TGFuZyghMSldLnNob3cpLGMuZmFkZU91dCgpLHRoaXMuc3RhcnQoYS50KSk6KGQuZmluZCgiYnV0dG9uIikudGV4dChlW0QyQ1V0aWxzLkxhbmcuZ2V0U2hvcnRMYW5nKCExKV0uaGlkZSksCmMuZmFkZUluKCksdGhpcy5zdG9wKCkpfSk7ZWxzZSBkLm9uKCJjbGljayIsKCk9PntjLnNob3coKTt0aGlzLnN0b3AoKX0pLGMuZmluZCgiaSIpLm9uKCJjbGljayIsKCk9PntjLmhpZGUoKTt0aGlzLnN0YXJ0KGEudCl9KX19fTsKLyoqIC9qcy9nb29nbGVtYXBzLmpzICoqLwp2YXIgX19fZDJjX2dvb2dsZW1hcHNqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjU0IjsndXNlIHN0cmljdCc7Y2xhc3MgR29vZ2xlTWFwc1dyYXBwZXJ7Y29uc3RydWN0b3IoYSl7dGhpcy5wcmV2aW91c0luZm9XaW5kb3c9ITE7dGhpcy5vcHRpb25zPXtlbGVtZW50OmEmJmEuZWxlbWVudD9hLmVsZW1lbnQ6IiIsY2VudGVyOmEmJmEuY2VudGVyP2EuY2VudGVyOntsYXQ6NDUuNDY3Mjc3LGxuZzotNzMuODM0NTI2fSxjZW50ZXJPZmZzZXQ6YSYmYS5jZW50ZXJPZmZzZXQ\/YS5jZW50ZXJPZmZzZXQ6e3g6MCx5OjB9LHpvb206YSYmYS56b29tP2Euem9vbTo5LGFkZHJlc3NlczphJiZhLmFkZHJlc3Nlcz9hLmFkZHJlc3NlczpbXSxvbkJlZm9yZUluaXQ6YSYmYS5vbkJlZm9yZUluaXQ\/YS5vbkJlZm9yZUluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJJbml0OmEmJmEub25BZnRlckluaXQ\/YS5vbkFmdGVySW5pdDpmdW5jdGlvbigpe30sb25BZnRlck1hcmtlckNyZWF0ZWQ6YSYmYS5vbkFmdGVyTWFya2VyQ3JlYXRlZD9hLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKCl7fX19c3RhdGljIHNldEdvb2dsZU1hcCgpe3ZhciBhPQowLGU9ZnVuY3Rpb24oKXtnb29nbGUubWFwcy5NYXAucHJvdG90eXBlLnNldENlbnRlcldpdGhPZmZzZXQ9ZnVuY3Rpb24oayxnLGwpe3ZhciBjPXRoaXMsYj1uZXcgZ29vZ2xlLm1hcHMuT3ZlcmxheVZpZXc7Yi5vbkFkZD1mdW5jdGlvbigpe3ZhciBmPXRoaXMuZ2V0UHJvamVjdGlvbigpLGQ9Zi5mcm9tTGF0TG5nVG9Db250YWluZXJQaXhlbChrKTtkLngrPWc7ZC55Kz1sO2Muc2V0Q2VudGVyKGYuZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoZCkpfTtiLmRyYXc9ZnVuY3Rpb24oKXt9O2Iuc2V0TWFwKHRoaXMpfX07aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlKWUoKTtlbHNlIHZhciBoPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ND5hPyJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZT8oY2xlYXJJbnRlcnZhbChoKSxlKCkpOmErKzpjbGVhckludGVydmFsKGgpfSwxRTMpfWluaXQoKXt2YXIgYT10aGlzLGU9YS5vcHRpb25zLmNlbnRlck9mZnNldC54P2Eub3B0aW9ucy5jZW50ZXJPZmZzZXQueDoKMCxoPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueT9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk6MCxrPW5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHM7YS5vcHRpb25zLm9uQmVmb3JlSW5pdCgpO2lmKGEub3B0aW9ucy5hZGRyZXNzZXMubGVuZ3RoKXt2YXIgZz1hLm9wdGlvbnMuY2VudGVyLGw9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyLGM9bmV3IGdvb2dsZS5tYXBzLk1hcChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLm9wdGlvbnMuZWxlbWVudCkse3pvb206YS5vcHRpb25zLnpvb20sY2VudGVyOmEub3B0aW9ucy5jZW50ZXIsbWFwVHlwZUlkOmdvb2dsZS5tYXBzLk1hcFR5cGVJZC5ST0FETUFQLGdlc3R1cmVIYW5kbGluZzoiZ3JlZWR5IixzY3JvbGx3aGVlbDohMSxtYXBUeXBlQ29udHJvbDohMX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyT25jZShjLCJpZGxlIixmdW5jdGlvbigpe2Eub3B0aW9ucy5hZGRyZXNzZXMubWFwKGZ1bmN0aW9uKGIsZixkKXtmPWZ1bmN0aW9uKG4sCnEpe3RyeXtpZihxPT1nb29nbGUubWFwcy5HZW9jb2RlclN0YXR1cy5PSyl7ay5leHRlbmQoblswXS5nZW9tZXRyeS5sb2NhdGlvbik7Yy5maXRCb3VuZHMoayk7Yy5zZXRab29tKGEub3B0aW9ucy56b29tKTtnPWMuZ2V0Qm91bmRzKCkuZ2V0Q2VudGVyKCk7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKTt2YXIgcD1uZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyh7Y29udGVudDpiLmluZm93aW5kb3d9KSxtPW5ldyBnb29nbGUubWFwcy5NYXJrZXIoe21hcDpjLHBvc2l0aW9uOm5bMF0uZ2VvbWV0cnkubG9jYXRpb24sdGl0bGU6Yi50aXRsZSxpY29uOmIuaWNvbn0pO20uYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EucHJldmlvdXNJbmZvV2luZG93JiZhLnByZXZpb3VzSW5mb1dpbmRvdy5jbG9zZSgpO2EucHJldmlvdXNJbmZvV2luZG93PXA7cC5vcGVuKGMsbSl9KTthLm9wdGlvbnMub25BZnRlck1hcmtlckNyZWF0ZWQoYixtKX19Y2F0Y2gocil7Y29uc29sZS5sb2cocil9fTsKYS5oYXNMYXQoYikmJmEuaGFzTG5nKGIpPyhkPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubGF0KSxOdW1iZXIoYi5nZW9tZXRyeS5sb2NhdGlvbi5sbmcpKSxmKFt7Z2VvbWV0cnk6e2xvY2F0aW9uOmR9fV0sIk9LIikpOmwuZ2VvY29kZSh7YWRkcmVzczpiLmFkZHJlc3N9LGYpfSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lcih3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtjLnNldENlbnRlcldpdGhPZmZzZXQoZyxlLGgpfSl9YS5vcHRpb25zLm9uQWZ0ZXJJbml0KCl9X2hhc0xhdExuZ1Byb3AoYSxlKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eSgiZ2VvbWV0cnkiKSYmYS5nZW9tZXRyeS5oYXNPd25Qcm9wZXJ0eSgibG9jYXRpb24iKSYmYS5nZW9tZXRyeS5sb2NhdGlvbi5oYXNPd25Qcm9wZXJ0eShlKSYmImZhbHNlIiE9YS5nZW9tZXRyeS5sb2NhdGlvbltlXT8hMDohMX1oYXNMYXQoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwKImxhdCIpfWhhc0xuZyhhKXtyZXR1cm4gdGhpcy5faGFzTGF0TG5nUHJvcChhLCJsbmciKX19OwovKiogL2pzL2Zvb3RlcldpZGdldC5qcyAqKi8KdmFyIF9fX2QyY19mb290ZXJXaWRnZXRqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjA3IjsndXNlIHN0cmljdCc7aW5WaWV3RXhlYygiI2Zvb3RlcldyYXBwZXIiLGZ1bmN0aW9uKCl7dmFyIGI9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpOyJ1bmRlZmluZWQiPT1hJiYoYT0iVU5LTk9XTiIpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJGb290ZXItTWFwLUxvYWQiLCJEZXNrdG9wIixhLDEpfTt0cnl7R29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCk7dmFyIGM9JCgiI2Zvb3Rlckdvb2dsZU1hcFpvb20iKS52YWwoKSxmPTE8cGFyc2VJbnQoYykmJjE4Pj1wYXJzZUludChjKT9wYXJzZUludChjKTo5LGU9bmV3IEdvb2dsZU1hcHNXcmFwcGVyKHtlbGVtZW50OiJmb290ZXJHb29nbGVNYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sY2VudGVyT2Zmc2V0Ont4Oi0zNTAseTowfSx6b29tOmYsb25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7YigpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT0KdHlwZW9mIGZvb3Rlck1hcEFkZHJlc3NlcyYmZm9vdGVyTWFwQWRkcmVzc2VzLmxlbmd0aCkkKGRvY3VtZW50KS5vbigiY2xpY2siLCIubWFwX2RlYWxlcl9saXN0X2l0ZW0iLGZ1bmN0aW9uKCl7JCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnJlbW92ZUNsYXNzKCJmYS1hbmdsZS11cCIpOyQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5hZGRDbGFzcygiZmEtYW5nbGUtZG93biIpO3ZhciBhPSQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuaGFzQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpOyQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7YXx8KCQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuc2xpZGVUb2dnbGUoInNsb3ciKSwKJCh0aGlzKS5maW5kKCIuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24iKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIiksJCh0aGlzKS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikucmVtb3ZlQ2xhc3MoImZhLWFuZ2xlLWRvd24iKSwkKHRoaXMpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5hZGRDbGFzcygiZmEtYW5nbGUtdXAiKSl9KTtlbHNlICQoIiNmb290ZXJHb29nbGVNYXBDb250YWluZXIiKS5oaWRlKCl9LG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKGEsZyl7dmFyIGQ9YS5vcGVuaW5nSG91cnM\/YS5vcGVuaW5nSG91cnM6IiI7ZD0nPGRpdiBjbGFzcz0ibWFwX2RlYWxlcl9saXN0X2l0ZW0iIGRhdGEtdHM9IicrYS5zYWZlVGl0bGUrJyIgIGRhdGEtbmFtZT0iJythLnRpdGxlKyciPjxzcGFuIGNsYXNzPSJtYXJrZXJTcGFuIj48L3NwYW4+PHNwYW4gY2xhc3M9Im1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUiPicrCmEudGl0bGUrIjwvc3Bhbj4iKyhkPyc8c3BhbiBjbGFzcz0ibWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IGZhIGZhLWFuZ2xlLWRvd24iPjwvc3Bhbj4nOiIiKSskKCI8ZGl2PiIpLmh0bWwoZCkudGV4dCgpKyI8L2Rpdj4iOyQoIiNtYXBfZGVhbGVyX2xpc3QiKS5hcHBlbmQoZCk7JCgnW2RhdGEtdHM9IicrYS5zYWZlVGl0bGUrJyJdJykub24oImNsaWNrIixmdW5jdGlvbigpeyQoIi5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIikucmVtb3ZlQ2xhc3MoIm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIik7JCh0aGlzKS5maW5kKCIubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSIpLmFkZENsYXNzKCJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSIpO2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoZywiY2xpY2siKX0pfX0pOyQoIiNmb290ZXJHb29nbGVNYXAiKS5sZW5ndGg\/InVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlP2UuaW5pdCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmluaXQoKX0sCjFFMyk6JCgiI2Zvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIikubGVuZ3RoJiZiKCl9Y2F0Y2goYSl7Y29uc29sZS5sb2coYSl9fSk7JChmdW5jdGlvbigpeyQoIi5jRXhwZW5kTGlzdCBCVVRUT04iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9JCh0aGlzKS5jbG9zZXN0KCJkaXYuY0Zvb3RlckNhckxpbmtzIik7Yi5sZW5ndGgmJihiLmhhc0NsYXNzKCJjTGlzdEV4cGVuZGVkIil8fGIuYWRkQ2xhc3MoImNMaXN0RXhwZW5kZWQiKS5maW5kKCIuY0V4cGVuZExpc3QiKS5oaWRlKCkpfSk7aWYoJCgiI2ZibGlrZS1jb250YWluZXIiKS5sZW5ndGgpe2IoLTEpO2Z1bmN0aW9uIGIoYyl7JCgiI2ZibGlrZS1jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKS5hdHRyKCJ0YWJpbmRleCIsYyk7JCgiI2ZibGlrZS1jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKS5hdHRyKCJ0YWJpbmRleCIpIT1jJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YihjKX0sMUUzKX19fSk7Ci8qKiAvanMvZmF2b3JpdGVzLmpzICoqLwp2YXIgX19fZDJjX2Zhdm9yaXRlc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Zhdm9yaXRlc2pzX2Nfb249IjIwMjUtMDEtMDkgMDk6MzA6MDQiOyJ1c2Ugc3RyaWN0IjsKZnVuY3Rpb24gRDJGQVYoKXtmdW5jdGlvbiBwKCl7dmFyIGE9bmV3IERhdGU7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKSsiLSIrKDEwPmEuZ2V0TW9udGgoKSsxPyIwIisoYS5nZXRNb250aCgpKzEpOmEuZ2V0TW9udGgoKSsxKSsiLSIrKDEwPmEuZ2V0RGF0ZSgpPyIwIithLmdldERhdGUoKTphLmdldERhdGUoKSkrIiAiKygxMD5hLmdldEhvdXJzKCk\/IjAiK2EuZ2V0SG91cnMoKTphLmdldEhvdXJzKCkpKyI6IisoMTA+YS5nZXRNaW51dGVzKCk\/IjAiK2EuZ2V0TWludXRlcygpOmEuZ2V0TWludXRlcygpKSsiOiIrKDEwPmEuZ2V0U2Vjb25kcygpPyIwIithLmdldFNlY29uZHMoKTphLmdldFNlY29uZHMoKSl9ZnVuY3Rpb24gdShhKXt2YXIgYj1bXSxkPTEwMCxjO2ZvcihjIGluIGEpe3ZhciBnPS0tZCsiXyIrYVtjXS5jcmVhdGVkO2JbZ109YVtjXX1yZXR1cm4gYn1mdW5jdGlvbiBrKGEpe2lmKHZvaWQgMD09PWF8fCIiPT1hKXJldHVybiExO2dhVHJhY2soIl90cmFja0V2ZW50IiwiRmF2b3JpdGVzIiwKYSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKTtyZXR1cm4hMH12YXIgbD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iZW4iOiJmciIsbj0wPCQoIiNpc21vYmlsZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8ibW9iaWxlIjoiZGVza3RvcCIsdD1uZXcgZnVuY3Rpb24oKXtzZWxmLmNyZWF0ZUxvY2FsU3RvcmFnZT1mdW5jdGlvbigpe251bGw9PT1Db29raWVzLmdldCgiZDJmYXZEYXRhIikmJihkMmZhdkRhdGFPYmo9e2NyZWF0ZWQ6cCgpLG9yaWdpbmFsVGltZXpvbmU6SW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLGZhdm9yaXRlczp7fSxmYXZDb3VudDowfSxzZXRDb29raWUoImQyZmF2RGF0YSIsSlNPTi5zdHJpbmdpZnkoZDJmYXZEYXRhT2JqKSkpfTtzZWxmLmdldFZlaGljbGVKc29uPWZ1bmN0aW9uKGEpe2lmKHZvaWQgMD09PWEpcmV0dXJuITE7JC5nZXQoIi9qcy9qc29uLyIrYSsiLmpzb24iKS5kb25lKGZ1bmN0aW9uKGIpe2lmKHZvaWQgMCE9PQpiLmltYWdlc1swXSl7dmFyIGQ9SlNPTi5wYXJzZShDb29raWVzLmdldCgiZDJmYXZEYXRhIikpO2QuZmF2b3JpdGVzW2lkXS5pbWFnZT1iLmltYWdlc1swXTtzZXRDb29raWUoImQyZmF2RGF0YSIsSlNPTi5zdHJpbmdpZnkoZCkpOyIiIT1jYWxsYmFjayYmdm9pZCAwIT09Y2FsbGJhY2smJnNlbGYuYmluZE5hdmlnYXRpb24oKX19KX07c2VsZi5iaW5kTmF2aWdhdGlvbj1mdW5jdGlvbigpe3ZhciBhPUpTT04ucGFyc2UoQ29va2llcy5nZXQoImQyZmF2RGF0YSIpKSxiPWEuZmF2Q291bnQsZD0wPGI\/ITA6ITEsYz0iZW4iPT1sPyEwPT09ZD8iTXkgZmF2b3JpdGVzIjoiWW91IGhhdmUgbm8gZmF2b3JpdGVzIHlldCEiOiEwPT09ZD8iTWVzIGZhdm9yaXMiOiJWb3VzIG4nYXZleiBwYXMgZW5jb3JlIGRlIGZhdm9yaXMhIixnPSQoIi5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCIpLGg9CiQoIi5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAuc3VibWVudUl0ZW1Db250YWluZXIgI2l0ZW1fRkFWT1JJVEUiKTthPXUoYS5mYXZvcml0ZXMpO2cuaHRtbCgiIik7aC5odG1sKCIiKTtpZighMD09PWQpZm9yKHZhciBlIGluIGEpe3ZhciBmPSIiLG09IiIscT12b2lkIDAhPT1hW2VdLnNpZCYmYVtlXS5zaWQ\/IiMiK2FbZV0uc2lkOiIiLHI9dm9pZCAwIT09YVtlXS5pbWFnZT8nPGltZyBzcmM9IicrYVtlXS5pbWFnZSsnIiAvPic6IiI7Im1vYmlsZSI9PW4\/KG0rPSc8c3BhbiBjbGFzcz0iLW0wIj5cbjxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBGQVZPUklURSIgaHJlZj0iJythW2VdLnVybCsnIiB0YXJnZXQ9IiIgb25jbGljaz0iIj5cbjxzcGFuIGNsYXNzPSItcGgiPicrKCJlbiI9PWw\/YVtlXS50aXRsZTphW2VdLnRpdGxlX2ZyKSsnPC9zcGFuPlxuPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij5cbjxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+XG48L3NwYW4+XG48L2E+XG48L3NwYW4+XG4nLApoLnByZXBlbmQobSkpOihmKz0nPGEgaHJlZj0iJythW2VdLnVybCsnIj4nLGYrPSc8ZGl2IGNsYXNzPSJkMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbSI+JyxmKz1yLGYrPSI8ZGl2PiIsZis9ImVuIj09bD9hW2VdLnRpdGxlOmFbZV0udGl0bGVfZnIsZis9IjwvZGl2PiIsZis9JzxkaXYgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij48L2Rpdj4nLCIiIT1xJiYoZis9JzxkaXYgY2xhc3M9ImQyYy1mYXZzLW5hdi1kcm9wZG93bi1pdGVtLXN1YiAnKygiIiE9cj8iaGFzQ2FySW1hZ2UiOiIiKSsnIj4nLGYrPSIiK3EsZis9IjwvZGl2PiIpLGYrPSI8L2Rpdj4iLGYrPSI8L2E+IixnLnByZXBlbmQoZikpfSJkZXNrdG9wIj09biYmMDwkKCIja2lhU2hpZnRDZXJ0aWZpZWRGb290ZXIiKS5sZW5ndGgmJiEkKCIubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIikuaGFzQ2xhc3MoImlzS2lhU2hpZnQiKSYmJCgiLmxhbmd1YWdlQmFyLCAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIikuYWRkQ2xhc3MoImlzS2lhU2hpZnQiKTsKJCgiLmQyYy1mYXZzLW5hdi13cmFwcGVyIikuYXR0cigidGl0bGUiLGMpOyEwPT09ZD8oJCgiLmQyYy1mYXZzLW5hdi13cmFwcGVyLCAuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIiKS5yZW1vdmVDbGFzcygiZDJjLWZhdnMtbmF2LWRpc2FibGVkIiksJCgiLmJ1cmdlci1tZW51IHVsIGxpIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciA+IHNwYW4iKS5odG1sKCIgKCIrYisiKSIpLCQoIi5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIgLmZhdi1uYXYtY291bnQiKS5odG1sKGIpLCQoIi5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIiKS5hZGRDbGFzcygiZmF2LW5hdi1oYXMtdmVoaWNsZXMiKSk6KCQoIi5idXJnZXItbWVudSB1bCBsaSBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIgPiBzcGFuIikuaHRtbCgiIiksJCgiLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZmF2LW5hdi1jb3VudCIpLmh0bWwoIiIpLCQoIi5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIiKS5yZW1vdmVDbGFzcygiZmF2LW5hdi1oYXMtdmVoaWNsZXMiKSwKJCgiLmQyYy1mYXZzLW5hdi13cmFwcGVyLCAuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIiKS5hZGRDbGFzcygiZDJjLWZhdnMtbmF2LWRpc2FibGVkIikpOyQoIi5kMmMtZmF2cy1uYXYtd3JhcHBlci5mYXYtbmF2LWhhcy12ZWhpY2xlcyIpLm9mZigibW91c2VlbnRlciIpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2soIkZhdm9yaXRlLVN1bW1hcnktVmlld2VkIil9KTskKCIuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXI6bm90KC5kMmMtZmF2cy1uYXYtZGlzYWJsZWQpIC5tZW51RXhwYW5kIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIgLnN1Ym1lbnVJdGVtQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIil8fGsoIkZhdm9yaXRlLVN1bW1hcnktVmlld2VkIil9KTskKCIuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW0sIC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAuc3VibWVudUl0ZW0iKS5vZmYoImNsaWNrIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXtrKCJGYXZvcml0ZS1TdW1tYXJ5LUNsaWNrZWQiKX0pfTtzZWxmLmJpbmRUcmlnZ2Vycz1mdW5jdGlvbigpeyQoIi5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPSQodGhpcykuYXR0cigiZGF0YS1tYWtlIiksZD0kKHRoaXMpLmF0dHIoImRhdGEtbW9kZWwiKSxjPSQodGhpcykuYXR0cigiZGF0YS15ZWFyIiksZz0kKHRoaXMpLmF0dHIoImRhdGEtdHJpbSIpLGg9JCh0aGlzKS5hdHRyKCJkYXRhLWNhcmlkIik7YT1jKyIgIitiKyIgIitkKyhnPyIgIitnOiIiKS5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdCkvZ20sIiIpO2c9YisiICIrZCsoZz8iICIrZzoiIikucmVwbGFjZSgvKFxyXG58XG58XHJ8XHQpL2dtLCIiKSsiICIrYztiPShjKyItIitiKyItIitkKyh2b2lkIDAhPT1oJiYiIiE9aD8iLSIraDoiIikpLnJlcGxhY2UoLyAvZywiLSIpLnRvTG93ZXJDYXNlKCk7JCh0aGlzKS5hZGRDbGFzcyhiKTskKHRoaXMpLmh0bWwoJzxzcGFuIGNsYXNzPSJmYS1sYXllcnMiPlxuICAgIDxpIGNsYXNzPSJmYSBmYS1oZWFydCI+PC9pPlxuICAgIDxpIGNsYXNzPSJmYXIgZmEtaGVhcnQiPjwvaT5cbiA8L3NwYW4+Jyk7CiQodGhpcykuYXR0cigidGl0bGUiLCJlbiI9PWw\/Ik15IGZhdm9yaXRlcyI6Ik1lcyBmYXZvcmlzIik7JCh0aGlzKS5hdHRyKCJkYXRhLWNsYXNzIixiKTskKHRoaXMpLmF0dHIoImRhdGEtdGl0bGUiLGEpOyQodGhpcykuYXR0cigiZGF0YS10aXRsZS1mciIsZyk7JCh0aGlzKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkQyRkFWIC0gUmVjb3JkIEZhdiIsJCh0aGlzKSk7c2VsZi5yZWNvcmRGYXZvcml0ZSgkKHRoaXMpKX0pfSkucHJvbWlzZSgpLmRvbmUoZnVuY3Rpb24oKXtzZWxmLnNldEljb25zKCl9KX07c2VsZi5yZWNvcmRGYXZvcml0ZT1mdW5jdGlvbihhKXt2YXIgYj1KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJkMmZhdkRhdGEiKSl8fHtmYXZvcml0ZXM6e319O2lmKDA8YS5zaWJsaW5ncygiYSIpLmxlbmd0aCl2YXIgZD1hLnNpYmxpbmdzKCJhIikuYXR0cigiaHJlZiIpO2Vsc2UgaWYoMDxhLmNsb3Nlc3QoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLmxlbmd0aCl7dmFyIGM9CmEuY2xvc2VzdCgiLmRpdkNhclNpbmdsZU91dGVyQm94Iik7ZD0kKCIuZGl2Q2FyVGl0bGVDb250YWluZXIgPiBhIixjKS5hdHRyKCJocmVmIil9ZWxzZSBkPXdpbmRvdy5sb2NhdGlvbi5ocmVmO3ZhciBnPTA8YS5jbG9zZXN0KCIuY2FyQm94SW5uZXIiKS5oYXMoIi5jYXJQcmljZSIpLmxlbmd0aD8kKCIuY2FyUHJpY2UiLGEuY2xvc2VzdCgiLmNhckJveElubmVyIikpLnRleHQoKTowPGEuY2xvc2VzdCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuaGFzKCIuZGl2TmV3Q2FyU3RhcnRQcmljZSA+IHNwYW4iKS5sZW5ndGg\/JCgiLmRpdk5ld0NhclN0YXJ0UHJpY2UgPiBzcGFuIixhLmNsb3Nlc3QoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpKS5odG1sKCk6JCgiI2NhclByaWNlIikudGV4dCgpO2lmKDA8YS5jbG9zZXN0KCIuY2FyQm94SW5uZXIiKS5oYXMoIi5jYXJJbWFnZSIpLmxlbmd0aCljPSQoIi5jYXJJbWFnZSA+IGEgPiBpbWciLGEuY2xvc2VzdCgiLmNhckJveElubmVyIikpLmF0dHIoInNyYyIpOwplbHNlIGlmKDA8YS5jbG9zZXN0KCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5oYXMoIi5kaXZDYXJJbWFnZUNvbnRhaW5lciA+IGEgPiBpbWciKS5sZW5ndGgpYz0kKCIuZGl2Q2FySW1hZ2VDb250YWluZXIgPiBhID4gaW1nIixhLmNsb3Nlc3QoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpKS5hdHRyKCJzcmMiKTtlbHNlIGlmKGM9JCgiLlNsaWRlck91dGVyQm94IC5zbGlkZXItbWFpbiAuc2xpZGVzIC5zbGlkZTpmaXJzdC1jaGlsZCIpLmF0dHIoImRhdGEtaW1hZ2UiKSwiIj09Y3x8dm9pZCAwPT09YyljPSQoIi5TbGlkZXJPdXRlckJveCAuc2xpZGVyLW1haW4gLnNsaWRlcyAuc2xpZGU6Zmlyc3QtY2hpbGQgYSBpbWciKS5hdHRyKCJzcmMiKTtnPWcucmVwbGFjZSgvKFxyXG58XG58XHJ8XHR8XCQpL2dtLCIiKTt2YXIgaD1hLmF0dHIoImRhdGEtY2xhc3MiKSxlPWEuYXR0cigiZGF0YS1zdG9ja2lkIiksZj0wO2lmKCJ7JENBUlNUT0NLTlVNQkVSfSI9PWV8fHZvaWQgMD09PWUpZT0KIiI7YS5oYXNDbGFzcygiZDJjLWZhdnMtc2VsZWN0ZWQiKT8oZGVsZXRlIGIuZmF2b3JpdGVzW2hdLGsoIkZhdm9yaXRlLVJlbW92ZWQiKSk6KGIuZmF2b3JpdGVzW2hdPXtpZDpoLGNyZWF0ZWQ6cCgpLHRpdGxlOmEuYXR0cigiZGF0YS10aXRsZSIpLHRpdGxlX2ZyOmEuYXR0cigiZGF0YS10aXRsZS1mciIpLHllYXI6YS5hdHRyKCJkYXRhLXllYXIiKSxtYWtlOmEuYXR0cigiZGF0YS1tYWtlIiksbW9kZWw6YS5hdHRyKCJkYXRhLW1vZGVsIiksc2lkOmUsdXJsOmQscHJpY2U6Zyx2aWQ6YS5hdHRyKCJkYXRhLWNhcmlkIiksaW1hZ2U6Y30saygiRmF2b3JpdGUtQWRkZWQiKSk7Zm9yKHZhciBtIGluIGIuZmF2b3JpdGVzKWIuZmF2b3JpdGVzLmhhc093blByb3BlcnR5KG0pJiYrK2Y7Yi5mYXZDb3VudD1mO3NldENvb2tpZSgiZDJmYXZEYXRhIixKU09OLnN0cmluZ2lmeShiKSk7c2VsZi5zZXRJY29ucygpfTtzZWxmLnNldEljb25zPWZ1bmN0aW9uKCl7aWYoQ29va2llcy5nZXQoImQyZmF2RGF0YSIpKXt2YXIgYT0KSlNPTi5wYXJzZShDb29raWVzLmdldCgiZDJmYXZEYXRhIikpOyQoIi5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIiKS5yZW1vdmVDbGFzcygiZDJjLWZhdnMtc2VsZWN0ZWQiKTtmb3IodmFyIGIgaW4gYS5mYXZvcml0ZXMpYS5mYXZvcml0ZXMuaGFzT3duUHJvcGVydHkoYikmJjA8JCgiLiIrYikubGVuZ3RoJiYkKCIuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyLiIrYikuY2xvc2VzdCgiLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciIpLmFkZENsYXNzKCJkMmMtZmF2cy1zZWxlY3RlZCIpO3NlbGYuYmluZE5hdmlnYXRpb24oKX19O3JldHVybiBzZWxmfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JChmdW5jdGlvbigpe3QuY3JlYXRlTG9jYWxTdG9yYWdlKCk7aWYoIm1vYmlsZSI9PW4pe3ZhciBhPSQoIiNTaXRlc19QYWdlX0dlbmVyYWxfTWVudV9CVE4iKS52YWwoKTthPSc8bGkgY2xhc3M9ImQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIj5cdFx0XG48YSBjbGFzcz0iRkFWT1JJVEUgbWVudS1pdGVtIGZsZXgtYm94IGQyYy1mYXZzLW5hdi13cmFwcGVyIiBocmVmPSIjIiBvbmNsaWNrPSIiPlxuPGkgY2xhc3M9ImZhIGZhLWhlYXJ0Ij48L2k+XG48c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3ciPicrCigiZW4iPT1sPyJNeSBmYXZvcml0ZXMiOiJNZXMgZmF2b3JpcyIpKyc8L3NwYW4+XG48c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtNSIgYXJpYS1sYWJlbD0iJythKyciPlxuPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPlxuPC9zcGFuPlxuPC9hPlxuPGRpdiBjbGFzcz0ic3VibWVudUl0ZW1Db250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij5cbjxzdGFjay1sYyBpZD0iaXRlbV9GQVZPUklURSIgY2xhc3M9Ii0tcy05Ij48L3N0YWNrLWxjPlxuPC9kaXY+XG48L2xpPic7JCgiLmJ1cmdlci1tZW51LWNvbnRhaW5lciBuYXYgPiB1bCIpLmFwcGVuZChhKTskKCIuYnVyZ2VyLW1lbnUtY29udGFpbmVyIC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciBhLmQyYy1mYXZzLW5hdi13cmFwcGVyLCAuYnVyZ2VyLW1lbnUtY29udGFpbmVyIC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAubWVudUV4cGFuZCIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKTtiPSQodGhpcykuY2xvc2VzdCgiLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIik7Yi5oYXNDbGFzcygiZDJjLWZhdnMtbmF2LWRpc2FibGVkIil8fHRvZ2dsZVN1Ym1lbnVzKCQoIi5tZW51RXhwYW5kIixiKSl9KX1zZWxmLmJpbmRUcmlnZ2VycygpOzA8JCgiLmxzdFdyYXBwZXIiKS5sZW5ndGgmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihhPW5ldyBBYnN0cmFjdFVzZWRTcnBPYmplY3Qoe25hbWU6ImQyY19mYXZvcml0ZXMifSksYS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigicHJveHkiLGZ1bmN0aW9uKGIpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGIuY21kJiYicmVxdWVzdCI9PT1iLmNtZCYmc2VsZi5iaW5kVHJpZ2dlcnMoKX0pLGEuaW5pdFVzZWRTcnBPYnNlcnZlcigpKX0pfSwxRTMpO3dpbmRvdy5kMmZhdj10fUQyRkFWKCk7Ci8qKiAvanMvb3BlbmhvdXJzLmpzICoqLwp2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDMtMTggMTQ6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKdmFyIE9wZW5Ib3Vycz1mdW5jdGlvbihiKXtmdW5jdGlvbiBjKGQpe3ZhciBlPSQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5oYXNDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7JChkLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS50b2dnbGVDbGFzcygiZXhwYW5kZWQiKTskKHRoaXMpLnBhcmVudHMoYS5vcHRpb25zLmNvbnRhaW5lcikuZmluZCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7ZXx8KCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5zbGlkZVRvZ2dsZSgic2xvdyIpLCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIikpfQp2YXIgYT10aGlzO2Eub3B0aW9ucz1iO2EuJGNvbnRhaW5lcj0kKGEub3B0aW9ucy5jb250YWluZXIpO2EuaW5pdD1mdW5jdGlvbigpe2EuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kIikub24oImNsaWNrIGF1dG9fb3BlbiIsYyk7MDxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLmxlbmd0aD9hLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLnRyaWdnZXIoImF1dG9fb3BlbiIpOjIhPSQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5sZW5ndGh8fDA8JCgiLmV4cGFuZGFibGVfY29udGVudCIpLmZpbmQoIi52aXNpdENvbnRhY3RIZWFkZXIiKS5sZW5ndGg\/YS5vcHRpb25zLmhhc093blByb3BlcnR5KCJhdXRvT3BlbiIpJiYhYS5vcHRpb25zLmF1dG9PcGVufHxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLmZpcnN0KCkudHJpZ2dlcigiYXV0b19vcGVuIik6CiQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5zbGlkZVRvZ2dsZSgic2xvdyIpLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKX07cmV0dXJuIGF9OwovKiogL2pzL2pxdWVyeS5kYXRldGltZXBpY2tlci5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlkYXRldGltZXBpY2tlcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MzkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWRhdGV0aW1lcGlja2VyanNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzoxMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/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\/Mjk6Mjg7cmV0dXJuIERhdGUuZGF5c0luTW9udGhbdGhpcy5nZXRNb250aCgpXX07RGF0ZS5wcm90b3R5cGUuZ2V0U3VmZml4PWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGF0ZSgpKXtjYXNlIDE6Y2FzZSAyMTpjYXNlIDMxOnJldHVybiJzdCI7Y2FzZSAyOmNhc2UgMjI6cmV0dXJuIm5kIjtjYXNlIDM6Y2FzZSAyMzpyZXR1cm4icmQiO2RlZmF1bHQ6cmV0dXJuInRoIn19O0RhdGUuZGF5c0luTW9udGg9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtEYXRlLm1vbnRoTmFtZXM9IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIik7RGF0ZS5kYXlOYW1lcz0iU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIik7CkRhdGUueTJrWWVhcj01MDtEYXRlLm1vbnRoTnVtYmVycz17SmFuOjAsRmViOjEsTWFyOjIsQXByOjMsTWF5OjQsSnVuOjUsSnVsOjYsQXVnOjcsU2VwOjgsT2N0OjksTm92OjEwLERlYzoxMX07RGF0ZS5wYXR0ZXJucz17SVNPODYwMUxvbmdQYXR0ZXJuOiJZLW0tZCBIOmk6cyIsSVNPODYwMVNob3J0UGF0dGVybjoiWS1tLWQiLFNob3J0RGF0ZVBhdHRlcm46Im4vai9ZIixMb25nRGF0ZVBhdHRlcm46ImwsIEYgZCwgWSIsRnVsbERhdGVUaW1lUGF0dGVybjoibCwgRiBkLCBZIGc6aTpzIEEiLE1vbnRoRGF5UGF0dGVybjoiRiBkIixTaG9ydFRpbWVQYXR0ZXJuOiJnOmkgQSIsTG9uZ1RpbWVQYXR0ZXJuOiJnOmk6cyBBIixTb3J0YWJsZURhdGVUaW1lUGF0dGVybjoiWS1tLWRcXFRIOmk6cyIsVW5pdmVyc2FsU29ydGFibGVEYXRlVGltZVBhdHRlcm46IlktbS1kIEg6aTpzTyIsWWVhck1vbnRoUGF0dGVybjoiRiwgWSJ9fSk7Ci8qKiAvanMvbWFpbFNjaGVkdWxlLjIuMC5qcyAqKi8KdmFyIF9fX2QyY19tYWlsU2NoZWR1bGUyMGpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6MTAiOyd1c2Ugc3RyaWN0JztsZXQgZGVhbGVyU3RvcmVIb3Vycz17fTsKZnVuY3Rpb24gTWFpbFNjaGVkdWxlKGgpe3ZhciBjPXtmaXJzdENob2ljZToiIixzZWNvbmRDaG9pY2U6IiIsd2FpdGluZ09uU2l0ZToiIix0cmFuc3BvcnRPcHRpb246IiIsc2NvcGU6aC5zY29wZSxmaXJzdENob2ljZU9iamVjdElkOiJmaXJzdERhdGUiLHNlY29uZENob2ljZU9iamVjdElkOiJzZWNvbmREYXRlIixmaXJzdEhvdXJTZWxlY3Q6ImZpcnN0RGF0ZVNlbGVjdCIsc2Vjb25kSG91clNlbGVjdDoic2Vjb25kRGF0ZVNlbGVjdCIsc2V0dXBEYXRlOmZ1bmN0aW9uKGEsYixkKXt2YXIgZT0kKCIjIithKSxnPW5ldyBEYXRlO2MuaXNEYXRlKGIpfHwoYj1uZXcgRGF0ZSk7Yy5pc0RhdGUoZCl8fChkPW5ldyBEYXRlKGcuZ2V0VGltZSgpK2MuZGF5VG9NaWxsaXNlY29uZHMoMzApKSk7dmFyIGs9bmV3IERhdGU7ay5zZXRNaW51dGVzKGsuZ2V0TWludXRlcygpKzMwKTtlLm9uKCJrZXlkb3duIixmdW5jdGlvbihmKXtmLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuITF9KTtlLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIsCntkYXRlU2VsZWN0ZWQ6ITEsdGltZVNlbGVjdGVkOiExfSk7JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCQuZGF0ZXRpbWVwaWNrZXIuc2V0TG9jYWxlKCJmciIpO2UuZGF0ZXRpbWVwaWNrZXIoJC5leHRlbmQoe30scCx7aWQ6YSsiX2RhdGVUaW1lUGlja2VyIixtaW5EYXRlOmIsbWF4RGF0ZTpkLGRpc2FibGVkRGF0ZXM6Yy5nZXRDbG9zZWREYXRlc0JldHdlZW4oYixkKSxvbkNoYW5nZURhdGVUaW1lOmZ1bmN0aW9uKGYpe251bGwhPWYmJmYudG9EYXRlU3RyaW5nKCk9PT1nLnRvRGF0ZVN0cmluZygpP3RoaXMuc2V0T3B0aW9ucyh7bWluVGltZTprLmRhdGVGb3JtYXQoIkg6aSIpfSk6dGhpcy5zZXRPcHRpb25zKHttaW5UaW1lOiExfSl9LG9uU2hvdzpmdW5jdGlvbihmKXtmPSQodGhpcykuZGF0YSgpLm9wdGlvbnMuZGF0ZVNlbGVjdGVkPyQodGhpcykuZGF0YSgpLm9wdGlvbnMudmFsdWU6YjsKYy51cGRhdGVIb3VycyhmLGEpfX0pKX0saW5pdDpmdW5jdGlvbigpe3ZhciBhPWMuZ2V0UGlja2VyRGF0ZVJhbmdlKCk7aWYoMT4kKGMuc2NvcGUpLmxlbmd0aClyZXR1cm4gc2V0VGltZW91dChjLmluaXQsMUU0KTtpZighJChjLnNjb3BlKS5pcygiOnZpc2libGUiKSlyZXR1cm4gc2V0VGltZW91dChjLmluaXQsMUUzKTthPygkKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwhMSksJCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCExKSxjLnNldHVwRGF0ZShjLmZpcnN0Q2hvaWNlT2JqZWN0SWQsYS5zdGFydERhdGUsYS5lbmREYXRlKSxjLnNldHVwRGF0ZShjLnNlY29uZENob2ljZU9iamVjdElkLGEuc3RhcnREYXRlLGEuZW5kRGF0ZSkpOigkKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwhMCksJCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5jbG9zZXN0KCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIiKS5jc3MoeyJiYWNrZ3JvdW5kLWNvbG9yIjoiLWludGVybmFsLWxpZ2h0LWRhcmstY29sb3IocmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpLCByZ2JhKDU5LCA1OSwgNTksIDAuMykpIiwKImJvcmRlci1jb2xvciI6InJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKSJ9KSwkKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITApLCQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLmNsb3Nlc3QoIi5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciIpLmNzcyh7ImJhY2tncm91bmQtY29sb3IiOiItaW50ZXJuYWwtbGlnaHQtZGFyay1jb2xvcihyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSkiLCJib3JkZXItY29sb3IiOiJyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMykifSkpfSxhc3NpZ25WYWx1ZXM6ZnVuY3Rpb24oKXt2YXIgYT0kKGMuc2NvcGUpLGI9bnVsbDtzd2l0Y2gobWFpbFBhZ2UubWFpbElEKXtjYXNlICJTZXJ2aWNlUmVxdWVzdCI6dmFyIGQ9YS5maW5kKCIjZmlyc3REYXRlIik7Yj1hLmZpbmQoIiNzZWNvbmREYXRlIik7YnJlYWs7Y2FzZSAic2VydmljZU1lbnUiOmQ9YS5maW5kKHNlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLmRhdGVJZCk7CmJyZWFrO2Nhc2UgImhlYWRlclNlcnZpY2UiOmQ9YS5maW5kKHNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2UuZGF0ZUlkKTticmVhaztkZWZhdWx0OmQ9YS5maW5kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLGI9YS5maW5kKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKX1jLmZpcnN0Q2hvaWNlPWMuZ2V0RGF0ZUNob2ljZShkKTtjLnNlY29uZENob2ljZT1jLmdldERhdGVDaG9pY2UoYik7Yy53YWl0aW5nT25TaXRlPWEuZmluZCgic2VsZWN0W25hbWU9J3dhaXRpbmdvbnNpdGUnXSBvcHRpb246c2VsZWN0ZWQiKS52YWwoKTtjLnRyYW5zcG9ydE9wdGlvbj1jLmdldFRyYW5zcG9ydE9wdGlvbigpfSxnZXRUcmFuc3BvcnRPcHRpb246ZnVuY3Rpb24oKXt2YXIgYT0kKGMuc2NvcGUpLmZpbmQoInNlbGVjdFtuYW1lPSdwcmVmZXJyZWRUcmFuc3BvcnQnXSBvcHRpb246c2VsZWN0ZWQiKTtyZXR1cm4gYS5sZW5ndGg\/YS52YWwoKToiIn0sZ2V0VHJhbnNwb3J0T3B0aW9uVGV4dDpmdW5jdGlvbigpe3ZhciBhPQokKGMuc2NvcGUpLmZpbmQoInNlbGVjdFtuYW1lPSdwcmVmZXJyZWRUcmFuc3BvcnQnXSBvcHRpb246c2VsZWN0ZWQiKTtyZXR1cm4gYS5sZW5ndGg\/YS50ZXh0KCk6IiJ9LHVwZGF0ZUhvdXJzOmZ1bmN0aW9uKGEsYil7dmFyIGQ9JCgiIyIrYiksZT1jLmdldEFsbG93ZWRUaW1lcyhhLGIpO2MuZGlzcGxheVBpY2tlck1lc3NhZ2UoYixjLmdldERhdGVTY2hlZHVsZShhKSk7MDxlLmxlbmd0aD8oYj17dGltZXBpY2tlcjohMCxhbGxvd1RpbWVzOmV9LCIiPT09ZC52YWwoKT9iLnZhbHVlPWEuZGF0ZUZvcm1hdCgiWS9tL2QiKSsiICIrZVswXTpiLnZhbHVlPWEsZC5kYXRldGltZXBpY2tlcihiKSk6KGQudmFsKCIiKSxkLmRhdGV0aW1lcGlja2VyKHt0aW1lcGlja2VyOiExfSkpfSxjbG9zZWRBZnRlck1pZG5pZ2h0OmZ1bmN0aW9uKGEpe2E9Yy5nZXREYXRlU2NoZWR1bGUoYSk7cmV0dXJuInVuZGVmaW5lZCI9PT1hLnN0YXJ0SG91cj8hMTphLmVuZEhvdXI8YS5zdGFydEhvdXImJjAhPT0KYS5lbmRIb3VyfSxkaXNwbGF5UGlja2VyTWVzc2FnZTpmdW5jdGlvbihhLGIpe3ZhciBkPSIiO3N3aXRjaChiLnN0YXR1cyl7Y2FzZSAiY2xvc2VkIjpkPSQoIi50ZXh0Q2xvc2VkIikudmFsKCk7YnJlYWs7Y2FzZSAicmR2IjpkPSQoIi50ZXh0UmR2IikudmFsKCk7YnJlYWs7Y2FzZSAiY29udGFjdCI6ZD1iLm1lc3NhZ2V9JCgiIyIrYSsiX2RhdGVUaW1lUGlja2VyIC5kYXRlVGltZVBpY2tlck1lc3NhZ2UiKS5odG1sKGQpfSxyZW1vdmVDbG9zZWRIb3VyczpmdW5jdGlvbihhKXt2YXIgYj0kKGMuc2NvcGUpLmZpbmQoIi5DbG9zZWRTY2hlZHVsZSIpO2lmKCFiLmxlbmd0aHx8ImNsb3NlZCI9PT1iLnZhbCgpKXJldHVybiBhO3ZhciBkPVtdLGU9cGFyc2VJbnQoYi5hdHRyKCJzdGFydGhvdXIiKSksZz1wYXJzZUludChiLmF0dHIoInN0YXJ0bWluIikpLGs9cGFyc2VJbnQoYi5hdHRyKCJlbmRob3VyIikpO2I9cGFyc2VJbnQoYi5hdHRyKCJlbmRtaW4iKSk7dmFyIGY9bmV3IERhdGU7CmYuc2V0SG91cnMoZSxnKTt2YXIgcT1uZXcgRGF0ZTtxLnNldEhvdXJzKGssYik7JC5lYWNoKGEsZnVuY3Rpb24obSxyKXttPXIuc3BsaXQoIjoiKTt2YXIgbj1uZXcgRGF0ZTtuLnNldEhvdXJzKHBhcnNlSW50KG1bMF0pLHBhcnNlSW50KG1bMV0pKTsobjxmfHxuPj1xKSYmZC5wdXNoKHIpfSk7cmV0dXJuIGR9LGdldEFsbG93ZWRUaW1lczpmdW5jdGlvbihhLGIpeyQoIiMiK2IpO2I9W107dmFyIGQ9Yy5nZXREYXRlU2NoZWR1bGUoYSksZT1uZXcgRGF0ZShhKTtlLnNldERhdGUoYS5nZXREYXRlKCktMSk7ZT1jLmdldERheUJlZm9yZUFwcG9pbnRtZW50cyhlKTtiPWIuY29uY2F0KGUpO2lmKCJjb25jZXNzIj09PWQuc3RhdHVzfHwiIj09PWQuc3RhdHVzfHwidW5kZWZpbmVkIj09PXR5cGVvZiBkLnN0YXR1c3x8InJkdiI9PT1kLnN0YXR1cyl7ZT1kLnN0YXJ0SG91cjt2YXIgZz1kLnN0YXJ0TWluO2Q9Yy5nZXRFbmRPZkRheShlLGQuZW5kSG91cixkLmVuZE1pbik7ZT1jLmdldEFwcG9pbnRtZW50c0JldHdlZW4oZSwKZyxkLmVuZEhvdXIsZC5lbmRNaW4pO2U9Yy5yZW1vdmVDbG9zZWRIb3VycyhlKTtiPWIuY29uY2F0KGUpfWlmKGEudG9EYXRlU3RyaW5nKCk9PShuZXcgRGF0ZSkudG9EYXRlU3RyaW5nKCkpZm9yKGE9KG5ldyBEYXRlKS5nZXRIb3VycygpOzA8Yi5sZW5ndGg7KWlmKHBhcnNlSW50KGJbMF0pPD1hKWIuc2hpZnQoKTtlbHNlIGJyZWFrO3JldHVybiBifSxnZXRBcHBvaW50bWVudHNCZXR3ZWVuOmZ1bmN0aW9uKGEsYixkLGUpe2ErPTMwPT09Yj8uNTowO2Q9ZCsoMzA9PT1lPy41OjApLTE7ZT1bXTtmb3IoYj0iMTUiPT0kKCIuU0VSVklDRV9BUFBPSU5UTUVOVF9MRU5HVEgiKS52YWwoKT8uMjU6LjU7YTw9ZDthKz1iKTA9PT1hJTE\/ZS5wdXNoKGErIjowMCIpOjA9PT1hJS41P2UucHVzaChNYXRoLmZsb29yKGEpKyI6MzAiKTowPT09KGEtLjI1KSUxP2UucHVzaChNYXRoLmZsb29yKGEpKyI6MTUiKTplLnB1c2goTWF0aC5mbG9vcihhKSsiOjQ1Iik7cmV0dXJuIGV9LGdldENsb3NlZERhdGVzQmV0d2VlbjpmdW5jdGlvbihhLApiKXtiPWMuZ2V0RGF5c0RpZmYoYSxiKTtmb3IodmFyIGQ9W10sZT1bXSxnPTA7ZzxiO2crKyl7dmFyIGs9bmV3IERhdGUoKG5ldyBEYXRlKGEpKS5zZXREYXRlKGEuZ2V0RGF0ZSgpKyhnLTEpKSksZj1uZXcgRGF0ZSgobmV3IERhdGUoYSkpLnNldERhdGUoYS5nZXREYXRlKCkrZykpO2UuaGFzT3duUHJvcGVydHkoZi5nZXREYXkoKSl8fChlW2YuZ2V0RGF5KCldPWMuZ2V0RGF0ZVNjaGVkdWxlKGYpKTsiY2xvc2VkIiE9PWVbZi5nZXREYXkoKV0uc3RhdHVzJiYib25saW5lIiE9PWVbZi5nZXREYXkoKV0uc3RhdHVzfHxjLmNsb3NlZEFmdGVyTWlkbmlnaHQoayl8fGQucHVzaChmLmRhdGVGb3JtYXQoIlkvbS9kIikpfXJldHVybiBkfSxnZXREYXRlQ2hvaWNlOmZ1bmN0aW9uKGEpe3JldHVybiBhJiYwPGEubGVuZ3RoJiYoYT1uZXcgRGF0ZShhLnZhbCgpKSxjLmlzRGF0ZShhKSk\/YS5kYXRlRm9ybWF0KCJZOm06ZCBIOmkiKToiIn0sZ2V0RGF0ZVNjaGVkdWxlOmZ1bmN0aW9uKGEpe3ZhciBiPQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmljZUVtYWlsc1NlbGVjdCIpO2lmKGImJmIub3B0aW9ucyYmMTxiLm9wdGlvbnMubGVuZ3RoJiYwPD1iLnNlbGVjdGVkSW5kZXgmJmIub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShiLnNlbGVjdGVkSW5kZXgpJiZkZWFsZXJTdG9yZUhvdXJzJiZkZWFsZXJTdG9yZUhvdXJzLmhhc093blByb3BlcnR5KGIub3B0aW9uc1tiLnNlbGVjdGVkSW5kZXhdLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWFsZXJuYW1lIikpKXtiPWIub3B0aW9uc1tiLnNlbGVjdGVkSW5kZXhdLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWFsZXJuYW1lIik7Y29uc3QgZz1hLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHt3ZWVrZGF5OiJsb25nIn0pLnJlcGxhY2UoL1x1MjAwRS9nLCIiKTthPWRlYWxlclN0b3JlSG91cnNbYl07aWYoYiYmYSYmKGE9YS5maW5kKGs9PmsuZGF5PT09ZykpJiZhLmhvdXJzJiYiY2xvc2VkIiE9PWEuaG91cnMudG9Mb3dlckNhc2UoKSYmKGI9KGEuaG91cnMubWF0Y2goLzovZyl8fApbXSkubGVuZ3RoLGEuaG91cnMuaW5jbHVkZXMoIi0iKSYmMj09PWIpKXt2YXIgZD1hLmhvdXJzLnNwbGl0KCIgLSAiKTthPXBhcnNlSW50KGRbMF0uc3BsaXQoIjoiKVswXSk7Yj1wYXJzZUludChkWzBdLnNwbGl0KCI6IilbMV0uc3Vic3RyaW5nKDAsMikpO3ZhciBlPXBhcnNlSW50KGRbMV0uc3BsaXQoIjoiKVswXSk7ZD1wYXJzZUludChkWzFdLnNwbGl0KCI6IilbMV0uc3Vic3RyaW5nKDAsMikpO3JldHVybntzdGF0dXM6IiIsc3RhcnRIb3VyOmEsc3RhcnRNaW46YixlbmRIb3VyOmUsZW5kTWluOmR9fXJldHVybntzdGF0dXM6ImNsb3NlZCJ9fWE9YS50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7d2Vla2RheToibG9uZyJ9KS5yZXBsYWNlKC9cdTIwMEUvZywiIik7Yj0iLiIrYSsiU2NoZWR1bGUiO2I9JChjLnNjb3BlKS5maW5kKGIpO2U9Yi52YWwoKTtyZXR1cm4iY29uY2VzcyI9PT1lfHwicmR2Ij09PWU\/e3N0YXR1czplLHN0YXJ0SG91cjo3LHN0YXJ0TWluOjMwLGVuZEhvdXI6MjAsCmVuZE1pbjowfToiIj09PWV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGU\/e3N0YXR1czplLHN0YXJ0SG91cjpwYXJzZUludChiLmF0dHIoInN0YXJ0aG91ciIpKSxzdGFydE1pbjpwYXJzZUludChiLmF0dHIoInN0YXJ0bWluIikpLGVuZEhvdXI6cGFyc2VJbnQoYi5hdHRyKCJlbmRob3VyIikpLGVuZE1pbjpwYXJzZUludChiLmF0dHIoImVuZG1pbiIpKX06e3N0YXR1czplLG1lc3NhZ2U6JChjLnNjb3BlKS5maW5kKCIuIithKyJTY2hlZHVsZV9tZXNzYWdlIikuaHRtbCgpfX0sZ2V0RGF5QmVmb3JlQXBwb2ludG1lbnRzOmZ1bmN0aW9uKGEpe3ZhciBiPWMuZ2V0RGF0ZVNjaGVkdWxlKGEpO3JldHVybiBjLmNsb3NlZEFmdGVyTWlkbmlnaHQoYSk\/Yy5nZXRBcHBvaW50bWVudHNCZXR3ZWVuKDAsMCxiLmVuZEhvdXIsYi5lbmRNaW4pOltdfSxnZXREYXlzRGlmZjpmdW5jdGlvbihhLGIpe3ZhciBkPWMuZGF5VG9NaWxsaXNlY29uZHMoMSk7cmV0dXJuIE1hdGgucm91bmQoKGIuZ2V0VGltZSgpLQphLmdldFRpbWUoKSkvZCl9LGdldEVuZE9mRGF5OmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYTxiP3tlbmRIb3VyOmIsZW5kTWluOmR9OmI8YSYmMD09PWI\/e2VuZEhvdXI6MjQsZW5kTWluOmR9OntlbmRIb3VyOjI0LGVuZE1pbjozMH19LGdldE5leHRPcGVuRGF0ZTpmdW5jdGlvbihhKXtpZigiY2xvc2VkIj09PWMuZ2V0RGF0ZVNjaGVkdWxlKGEpLnN0YXR1cyl7YT1uZXcgRGF0ZSgobmV3IERhdGUoYSkpLnNldERhdGUoYS5nZXREYXRlKCkrMSkpO3ZhciBiPW5ldyBEYXRlKChuZXcgRGF0ZSkuc2V0RGF0ZSgobmV3IERhdGUpLmdldERhdGUoKSs3KSk7cmV0dXJuIGE+Yj8hMTpjLmdldE5leHRPcGVuRGF0ZShhKX1yZXR1cm4gYX0sZ2V0UGlja2VyRGF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIGE9JCgiLmFsbG93VG9kYXkiKS52YWwoKSxiPXBhcnNlSW50KCQoIi5taW5TdGFydERheXMiKS52YWwoKSksZD0wLGU9bmV3IERhdGU7YXx8KGQ9MSk7YiYmKGQ9Yik7YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyVmlzaXRDb250YWN0Rm9ybVdyYXBwZXIiKTsKbnVsbCE9PWE\/KGI9ZS5nZXREYXkoKSxiPTA9PT1iPzc6YiwxPT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi53ZWVrRGF5U2NoZWR1bGUiKVtiLTFdLmRhdGFzZXQuY2xvc2VkP2U9bmV3IERhdGUoKG5ldyBEYXRlKGUpKS5zZXREYXRlKGUuZ2V0RGF0ZSgpK2QpKTooYT1lLmdldEhvdXJzKCksYj1lLmdldE1pbnV0ZXMoKSs2MCw2MDw9YiYmKGErPU1hdGguZmxvb3IoYi82MCksYiU9NjAsYiUzMCYmKDU+PWIlMzA\/Yi09YiUzMDo1PGIlMzAmJihiKz0zMC1iJTMwKSkpLDI0PD1hPyhkPWQ\/ZDoxLGU9bmV3IERhdGUoZS5zZXREYXRlKGUuZ2V0RGF0ZSgpK2QpKSk6KGU9bmV3IERhdGUoZS5zZXREYXRlKGUuZ2V0RGF0ZSgpK2QpKSxlLnNldEhvdXJzKGEsYiwwLDApKSkpOihlPW5ldyBEYXRlKChuZXcgRGF0ZShlKSkuc2V0RGF0ZShlLmdldERhdGUoKStkKSksZT1jLmdldE5leHRPcGVuRGF0ZShlKSk7aWYoIWUpcmV0dXJuITE7ZD1uZXcgRGF0ZShlLmdldFRpbWUoKStjLmRheVRvTWlsbGlzZWNvbmRzKDQ1MCkpOwpyZXR1cm57c3RhcnREYXRlOmUsZW5kRGF0ZTpkfX0saXNEYXRlOmZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgRGF0ZSYmIkludmFsaWQgRGF0ZSIhPT1hLnRvRGF0ZVN0cmluZygpfSxkYXlUb01pbGxpc2Vjb25kczpmdW5jdGlvbihhKXtyZXR1cm4gODY0RTUqYX0scGlja2VyT25DbG9zZTpmdW5jdGlvbihhLGIpe2E9JChiKS5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiKS50aW1lU2VsZWN0ZWQ7dmFyIGQ9JChiKS5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiKS5kYXRlU2VsZWN0ZWQ7IiI9PT1iLnZhbCgpJiZsJiYoJCgiIyIrYi5kYXRhKCJob3VyLXNlbGVjdCIpKS5lbXB0eSgpLCQoIiMiK2IuZGF0YSgiaG91ci1zZWxlY3QiKSkucHJvcCgiZGlzYWJsZWQiLCEwKSk7aWYoIWEmJiFkKXJldHVybiEwO2F8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLnZhbChiLnZhbCgpLnNwbGl0KCIgIilbMF0udHJpbSgpKX0pfSxwaWNrZXJPbkdlbmVyYXRlOmZ1bmN0aW9uKCl7JCgiLnhkc29mdF9zYXZlX3NlbGVjdGVkIikucmVtb3ZlKCk7CjA9PT0kKCIuZGF0ZVRpbWVQaWNrZXJNZXNzYWdlIix0aGlzKS5sZW5ndGgmJiQodGhpcykuYXBwZW5kKCc8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsgcGFkZGluZzogMTFweDsgIGZvbnQtc2l6ZTogMTJweDtmb250LXdlaWdodDpib2xkOyAiIGNsYXNzPSJkYXRlVGltZVBpY2tlck1lc3NhZ2UiPjwvZGl2PicpfSxwaWNrZXJPblNlbGVjdERhdGU6ZnVuY3Rpb24oYSxiKXskKHRoaXMpLmRhdGEoKS5vcHRpb25zLnZhbHVlPWE7JCh0aGlzKS5kYXRhKCkub3B0aW9ucy5kYXRlU2VsZWN0ZWQ9ITA7Yi5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiKS5kYXRlU2VsZWN0ZWQ9ITA7JCgiLnhkc29mdF9zYXZlX3NlbGVjdGVkIikucmVtb3ZlKCk7Yi5kYXRhKCJob3VyLXNlbGVjdCIpP2MudXBkYXRlSG91cnMoYSxiLmF0dHIoImlkIiksYi5kYXRhKCJob3VyLXNlbGVjdCIpKTpjLnVwZGF0ZUhvdXJzKGEsYi5hdHRyKCJpZCIpKTtyZXR1cm4hMX0scGlja2VyT25TZWxlY3RUaW1lOmZ1bmN0aW9uKGEsCmIpeyQodGhpcykuZGF0YSgpLm9wdGlvbnMudmFsdWU9YTskKHRoaXMpLmRhdGEoKS5vcHRpb25zLnRpbWVTZWxlY3RlZD0hMDtiLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIpLnRpbWVTZWxlY3RlZD0hMH0sc2V0U2NvcGU6ZnVuY3Rpb24oYSl7Yy5zY29wZT1hO3JldHVybiBjfX0sbD1oLmlzTW9iaWxlO2wmJihjLmluaXQ9ZnVuY3Rpb24oKXt2YXIgYT0kKGMuc2NvcGUpO2EuZmluZCgiIyIrYy5maXJzdEhvdXJTZWxlY3QpLnByb3AoImRpc2FibGVkIiwhMCk7YS5maW5kKCIjIitjLnNlY29uZEhvdXJTZWxlY3QpLnByb3AoImRpc2FibGVkIiwhMCk7YS5maW5kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLmRhdGEoImhvdXItc2VsZWN0IixjLmZpcnN0SG91clNlbGVjdCk7YS5maW5kKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS5kYXRhKCJob3VyLXNlbGVjdCIsYy5zZWNvbmRIb3VyU2VsZWN0KTt2YXIgYj1jLmdldFBpY2tlckRhdGVSYW5nZSgpO2I\/KGEuZmluZCgiIyIrCmMuZmlyc3RIb3VyU2VsZWN0KS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBkPSQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkudmFsKCksZT0kKHRoaXMpLnZhbCgpO2EuZmluZCgiaW5wdXRbbmFtZT1kYXRlMV0iKS52YWwoZCsiICIrZSl9KSxhLmZpbmQoIiMiK2Muc2Vjb25kSG91clNlbGVjdCkub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZD0kKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS52YWwoKSxlPSQodGhpcykudmFsKCk7YS5maW5kKCJpbnB1dFtuYW1lPWRhdGUyXSIpLnZhbChkKyIgIitlKX0pLGMuc2V0dXBEYXRlKGMuZmlyc3RDaG9pY2VPYmplY3RJZCxjLmZpcnN0SG91clNlbGVjdCxiLnN0YXJ0RGF0ZSxiLmVuZERhdGUpLGMuc2V0dXBEYXRlKGMuc2Vjb25kQ2hvaWNlT2JqZWN0SWQsYy5zZWNvbmRIb3VyU2VsZWN0LGIuc3RhcnREYXRlLGIuZW5kRGF0ZSkpOihhLmZpbmQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLAohMCksYS5maW5kKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITApKX0sYy5hc3NpZ25WYWx1ZXM9ZnVuY3Rpb24oKXt2YXIgYT0kKGMuc2NvcGUpLGI9YS5maW5kKCIjIitjLmZpcnN0SG91clNlbGVjdCkuZmluZCgiOnNlbGVjdGVkIikudGV4dCgpLGQ9bmV3IERhdGUoYS5maW5kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnZhbCgpKTtkLnNldEhvdXJzKGIuc3BsaXQoIjoiKVswXSxiLnNwbGl0KCI6IilbMV0pOyJJbnZhbGlkIERhdGUiIT09ZC50b0RhdGVTdHJpbmcoKSYmKGMuZmlyc3RDaG9pY2U9ZC5kYXRlRm9ybWF0KCJZOm06ZCBIOmkiKSk7Yj1hLmZpbmQoIiMiK2Muc2Vjb25kSG91clNlbGVjdCkuZmluZCgiOnNlbGVjdGVkIikudGV4dCgpO2Q9bmV3IERhdGUoYS5maW5kKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS52YWwoKSk7ZC5zZXRIb3VycyhiLnNwbGl0KCI6IilbMF0sYi5zcGxpdCgiOiIpWzFdKTsiSW52YWxpZCBEYXRlIiE9PQpkLnRvRGF0ZVN0cmluZygpJiYoYy5zZWNvbmRDaG9pY2U9ZC5kYXRlRm9ybWF0KCJZOm06ZCBIOmkiKSk7Yy53YWl0aW5nT25TaXRlPWEuZmluZCgic2VsZWN0W25hbWU9J3dhaXRpbmdvbnNpdGUnXSBvcHRpb246c2VsZWN0ZWQiKS52YWwoKX0sYy5zZXR1cERhdGU9ZnVuY3Rpb24oYSxiLGQsZSl7dmFyIGc9JCgiIyIrYSksaz1uZXcgRGF0ZTtjLmlzRGF0ZShkKXx8KGQ9bmV3IERhdGUpO2MuaXNEYXRlKGUpfHwoZT1uZXcgRGF0ZShrLmdldFRpbWUoKStjLmRheVRvTWlsbGlzZWNvbmRzKDMwKSkpO2cub24oImtleWRvd24iLGZ1bmN0aW9uKGYpe2YucHJldmVudERlZmF1bHQoKTtyZXR1cm4hMX0pO2cuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIix7ZGF0ZVNlbGVjdGVkOiExLHRpbWVTZWxlY3RlZDohMX0pOyQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSYmIkVOR0xJU0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwkLmRhdGV0aW1lcGlja2VyLnNldExvY2FsZSgiZnIiKTsKZy5kYXRldGltZXBpY2tlcigkLmV4dGVuZCh7fSxwLHtpZDphKyJfZGF0ZVRpbWVQaWNrZXIiLHRpbWVwaWNrZXI6ITEsZm9ybWF0OiJZL20vZCIsbWluRGF0ZTpkLG1heERhdGU6ZSxkaXNhYmxlZERhdGVzOmMuZ2V0Q2xvc2VkRGF0ZXNCZXR3ZWVuKGQsZSksb25TaG93OmZ1bmN0aW9uKGYpe2Y9JCh0aGlzKS5kYXRhKCkub3B0aW9ucy5kYXRlU2VsZWN0ZWQ\/ZjpkO2MudXBkYXRlSG91cnMoZixhLGIpfX0pKX0sYy51cGRhdGVIb3Vycz1mdW5jdGlvbihhLGIsZCl7ZD0kKGMuc2NvcGUpLmZpbmQoIiMiK2QpO3ZhciBlPWMuZ2V0QWxsb3dlZFRpbWVzKGEsYik7YT1jLmdldERhdGVTY2hlZHVsZShhKTtjLmRpc3BsYXlQaWNrZXJNZXNzYWdlKGIsYSk7ZC5lbXB0eSgpOzA8ZS5sZW5ndGg\/ZC5wcm9wKCJkaXNhYmxlZCIsITEpOmQucHJvcCgiZGlzYWJsZWQiLCEwKTtmb3IodmFyIGcgaW4gZSlpZihlLmhhc093blByb3BlcnR5KGcpKXtiPWVbZ107dmFyIGs9JCgiPG9wdGlvbj48L29wdGlvbj4iKS50ZXh0KGVbZ10pOwpiPT09YS5zdGFydEhvdXIrIjoiK2Euc3RhcnRNaW4mJmsucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpO2QuYXBwZW5kKGspfX0pO3ZhciBwPXtsYW5nOiJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIsYWxsb3dCbGFuazohMCxkYXlPZldlZWtTdGFydDoxLHN0ZXA6MzAsb25HZW5lcmF0ZTpjLnBpY2tlck9uR2VuZXJhdGUsb25TZWxlY3RUaW1lOmMucGlja2VyT25TZWxlY3RUaW1lLG9uU2VsZWN0RGF0ZTpjLnBpY2tlck9uU2VsZWN0RGF0ZSxvbkNsb3NlOmMucGlja2VyT25DbG9zZX07cmV0dXJuIGN9dmFyIG1haWxTY2hlZHVsZT1uZXcgTWFpbFNjaGVkdWxlKHtzY29wZToiI21haWxTY2hlZHVsZUZvcm0iLGlzTW9iaWxlOjA8JCgiI2lzTW9iaWxlIikubGVuZ3RoPyQoIiNpc01vYmlsZSIpLnZhbCgpOiIifSk7CmZ1bmN0aW9uIGZldGNoQW5kSW5pdERlYWxlckhvdXJzKGgpe2RlYWxlclN0b3JlSG91cnNbaF18fCIiPT09aD9tYWlsU2NoZWR1bGUuaW5pdCgpOmZldGNoKCIvYWpheC9HZXRTdG9yZUhvdXJzP2RlYWxlcl9uYW1lPSIraCkudGhlbihjPT5jLmpzb24oKSkudGhlbihjPT57Yy5pc09rJiZjLmhvdXJzSW5mbz9kZWFsZXJTdG9yZUhvdXJzW2hdPWMuaG91cnNJbmZvOmNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzdG9yZSBob3VycyBmb3IgZGVhbGVyIG5hbWU6ICIraCsiIGVycm9yOiAiK2MuZXJyb3IpO21haWxTY2hlZHVsZS5pbml0KCl9KS5jYXRjaChjPT5jb25zb2xlLmVycm9yKCJFcnJvciBmZXRjaGluZyBzdG9yZSBob3VycyBmb3IgZGVhbGVyIG5hbWUgIitoKyI6ICIsYykpfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2NvbnN0IGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcnZpY2VFbWFpbHNTZWxlY3QiKTtpZihoJiZoLm9wdGlvbnMmJjE8aC5vcHRpb25zLmxlbmd0aCl7Y29uc3QgYz1oLm9wdGlvbnNbMF0uZ2V0QXR0cmlidXRlKCJkYXRhLWRlYWxlcm5hbWUiKTtmZXRjaEFuZEluaXREZWFsZXJIb3VycyhjKTtoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKCk9PntpZigwPD1oLnNlbGVjdGVkSW5kZXgpe2NvbnN0IGw9aC5vcHRpb25zW2guc2VsZWN0ZWRJbmRleF0uZ2V0QXR0cmlidXRlKCJkYXRhLWRlYWxlcm5hbWUiKTtmZXRjaEFuZEluaXREZWFsZXJIb3VycyhsKX19KX1lbHNlIG1haWxTY2hlZHVsZS5pbml0KCl9KTsKLyoqIC9qcy9tYWlsRXhwcmVzc1JlcXVlc3RXaWRnZXQuanMgKiovCnZhciBfX19kMmNfbWFpbEV4cHJlc3NSZXF1ZXN0V2lkZ2V0anNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjo0NyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbWFpbEV4cHJlc3NSZXF1ZXN0V2lkZ2V0anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzo0MCI7InVzZSBzdHJpY3QiOwpmdW5jdGlvbiBDTWFpbEV4cHJlc3NSZXF1ZXN0V2lkZ2V0KGUsZCl7dmFyIGE9dGhpczthLnNjb3BlPSQoZSk7YS5zZXR0aW5ncz1kO2EuaGFzRXJyb3JzPSExO2EuaW5pdD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUluaXQmJiExPT09YS5zZXR0aW5ncy5vbkJlZm9yZUluaXQuY2FsbChhLnNjb3BlLGEpKXJldHVybiExO2Euc2V0dGluZ3MucGhvbmUubWFzaz1hLnNldHRpbmdzLnBob25lLm1hc2t8fCIwMDAgMDAwLTAwMDAiO2Euc2NvcGUuZmluZChhLnNldHRpbmdzLnBob25lLnNlbGVjdG9yKS5lYWNoKChiLGMpPT57SU1hc2soYyx7bWFzazpbe21hc2s6YS5zZXR0aW5ncy5waG9uZS5tYXNrfSx7bWFzazpgMSAke2Euc2V0dGluZ3MucGhvbmUubWFza31gfV19KX0pOyhhLnNjb3BlLmlzKCJmb3JtIik\/YS5zY29wZTphLnNjb3BlLmZpbmQoImZvcm0iKSkub24oInN1Ym1pdCIsZnVuY3Rpb24oKXthLnN1Ym1pdCgpO3JldHVybiExfSk7CmEuc2NvcGUuZmluZCgiKiIpLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXthLnJlc2V0RXJyb3JzKCl9KTthLnNldHRpbmdzLmluaXRpYWxpemVkPSEwO2Euc2NvcGUuZGF0YSgifG1haWxleHByZXNzLW9wdGlvbnMiLGEuc2V0dGluZ3MpO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVySW5pdCYmITE9PT1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0LmNhbGwoYS5zY29wZSxhKSlyZXR1cm4hMX07YS5nZXRJbnB1dFZhbHVlcz1mdW5jdGlvbihiLGMpe3JldHVybiBhLnNjb3BlLmZpbmQoYikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuICQodGhpcykudmFsKCl9KS5nZXQoKS5qb2luKGMpfTthLnByZXBhcmVFbWFpbEhhbmRsZXI9ZnVuY3Rpb24oYixjKXskLmV4dGVuZChlbWFpbEhhbmRsZXIse21haWxJRDphLnNldHRpbmdzLmVtYWlsSWQsc3ViamVjdDpiLGJvZHk6YyxzZW5kVG86YS5zZXR0aW5ncy5lbWFpbC5zZW5kVG8sc2VuZFRvQURGRm9ybWF0OmEuc2V0dGluZ3MuZW1haWwuc2VuZFRvQURGLApkZXBhcnRtZW50OmEuc2V0dGluZ3MuZGVwYXJ0bWVudCxwb3B1cE9mZmVyVHlwZToiIiE9YS5zZXR0aW5ncy5wb3B1cE9mZmVyVHlwZT9hLnNldHRpbmdzLnBvcHVwT2ZmZXJUeXBlOmEuc2V0dGluZ3MuZW1haWxJZCx1c2VyRmlyc3ROYW1lOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9J2ZuYW1lJ10iLCIgIiksdXNlckxhc3ROYW1lOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9J2xuYW1lJ10iLCIgIiksdXNlckVtYWlsOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W3R5cGU9J2VtYWlsJ10sIGlucHV0W25hbWU9J2VtYWlsJ10sIGlucHV0W25hbWU9J21haWwnXSIsIjsiKSx1c2VyTmFtZTphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPSduYW1lJ10iLCIgIiksdXNlclBob25lOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W3R5cGU9J3RlbCddLCBpbnB1dC5waG9uZSIsIiwiKSx1c2VyUG9zdGFsOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0LnBvc3RhbCIsIiwiKSxtYWtlOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9bWFrZV0iKSwKbW9kZWw6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT1tb2RlbF0iKSx5ZWFyOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9eWVhcl0iKSx0cmFkZWluOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0LnRyYWRlaW4iLCIsIiksYWRkcmVzczphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPSdhZGRyZXNzJ10iLCIiKSxiaXJ0aGRhdGU6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT0nYmlydGhkYXRlJ10iLCIiKSxjb21tZW50czphLmdldElucHV0VmFsdWVzKCJ0ZXh0YXJlYVtuYW1lPSdtZXNzYWdlJ10iKX0pOyJzdHJpbmciPT09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmIiI9PWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYj1lbWFpbEhhbmRsZXIudXNlck5hbWUuc3BsaXQoIiAiKSxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1iLnNoaWZ0KCksZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1iLmpvaW4oIiAiKSk7bWFpbFNlbnRIYW5kbGVyPSJTRVJWSUNFIj09CmVtYWlsSGFuZGxlci5kZXBhcnRtZW50fHwiUEFSVFMiPT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD9nZXRNYWlsU2VudEhhbmRsZXIoIl9TRVJWSUNFIik6Z2V0TWFpbFNlbnRIYW5kbGVyKCk7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPSJmdW5jdGlvbiI9PT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVyU2VuZEVtYWlsP2Z1bmN0aW9uKGYpe2Euc2V0dGluZ3Mub25BZnRlclNlbmRFbWFpbC5jYWxsKGEuc2NvcGUsYSxmKTtpZihhLnNldHRpbmdzLmVtYWlsSWQuaW5jbHVkZXMoIlJlYmF0ZUNvdXBvbiIpfHxhLnNldHRpbmdzLmVtYWlsSWQuaW5jbHVkZXMoIk11bHRpRm9ybSIpfHxhLnNldHRpbmdzLmVtYWlsSWQuaW5jbHVkZXMoIkNvbnRhY3RVc1JlcXVlc3QiKSllbWFpbEhhbmRsZXIubWFpblByb21vPSEwO2Euc2V0dGluZ3Mubm9TdWNjZXNNZXNzYWdlfHxtYWlsU2VudEhhbmRsZXIuc2hvd1N1Y2Nlc3MoKTskKCIjZ2VuZXJpY19mb3JtX2NvbmZpcm0iKS5maW5kKCIubGFiZWxlbWFpbCIpLnZhbChhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsKTsKJCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikuZmluZCgiLmxhYmVsc2VjdGlvbiIpLnZhbChhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsc2VjdGlvbik7JCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikudHJpZ2dlcigic3VibWl0Iik7Im9iamVjdCI9PXR5cGVvZiBDdGFUcmFjayYmJCgiLm11bHRpZm9ybV9lbWJlZGRlZF9mb290ZXIgLm11bHRpZm9ybV9lbWJlZGRlZF9zdGVwMSIpLnNob3coKX06ZnVuY3Rpb24oZil7Zj8obWFpbFNlbnRIYW5kbGVyLnNob3dTdWNjZXNzKCksYS5yZXNldEZpZWxkcygpLCQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpLmZpbmQoIi5sYWJlbGVtYWlsIikudmFsKGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWwpLCQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpLmZpbmQoIi5sYWJlbHNlY3Rpb24iKS52YWwoYS5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbHNlY3Rpb24pLCQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpLnRyaWdnZXIoInN1Ym1pdCIpKToKbWFpbFNlbnRIYW5kbGVyLnNob3dGYWlsKCl9O3JldHVybiBlbWFpbEhhbmRsZXJ9O2EucmVzZXRFcnJvcnM9ZnVuY3Rpb24oKXthLmhhc0Vycm9ycyYmKCQoIi5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXIgLmVycm9yTXNnIikuaGlkZSgpLCQoIi52YWxpZGl0eS1lcnJvbmVvdXMiKS5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksYS5oYXNFcnJvcnM9ITEpfTthLnJlc2V0RmllbGRzPWZ1bmN0aW9uKCl7YS5yZXNldEVycm9ycygpO2Euc2NvcGUuZmluZCgiOmlucHV0Iikubm90KCI6YnV0dG9uLCA6c3VibWl0LCA6cmVzZXQsIDpoaWRkZW4iKS5wcm9wKCJjaGVja2VkIiwhMSkucHJvcCgic2VsZWN0ZWQiLCExKS5ub3QoIjpjaGVja2JveCwgOnJhZGlvLCBzZWxlY3QiKS52YWwoIiIpfTthLnN1Ym1pdD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRlJiYhMT09PWEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0ZS5jYWxsKGEuc2NvcGUsCmEpKXJldHVybiExO2EucmVzZXRFcnJvcnMoKTtpZighYS52YWxpZGF0ZUZvcm0oKS52YWxpZClyZXR1cm4gYS5oYXNFcnJvcnM9ITAsJCgiLm1haWwtZXhwcmVzcy13aWRnZXRfX2Zvb3RlciAuZXJyb3JNc2ciKS5zaG93KCksITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJWYWxpZGF0ZSYmITE9PT1hLnNldHRpbmdzLm9uQWZ0ZXJWYWxpZGF0ZS5jYWxsKGEuc2NvcGUsYSkpcmV0dXJuITE7dmFyIGI9bmV3IE1haWxEZWZpbml0aW9uUGFyc2VyKGEuc2NvcGUse2ZpZWxkczphLnNjb3BlLnNlcmlhbGl6ZUFycmF5KCksc3ViamVjdFNlbGVjdG9yOmEuc2V0dGluZ3MuZGVmaW5pdGlvbnMuc3ViamVjdCxib2R5U2VsZWN0b3I6YS5zZXR0aW5ncy5kZWZpbml0aW9ucy5ib2R5fSk7YS5wcmVwYXJlRW1haWxIYW5kbGVyKGIuc3ViamVjdCxiLmJvZHkpO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRFbWFpbCYmITE9PT1hLnNldHRpbmdzLm9uQmVmb3JlU2VuZEVtYWlsLmNhbGwoYS5zY29wZSwKYSkpcmV0dXJuITE7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCl9O2EudmFsaWRhdGVGb3JtPWZ1bmN0aW9uKCl7JC52YWxpZGl0eS5zZXR1cChhLnNldHRpbmdzLnZhbGlkYXRpb24pLnN0YXJ0KCk7YS5zY29wZS5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHNlbGVjdCwgdGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKGIsYyl7Yj0kKGMpO2Iubm9uSHRtbCgpOyhiLmlzKCJbcmVxdWlyZWRdIil8fGIuaXMoIltkYXRhLXJlcXVpcmVkXSIpfHxiLmhhc0NsYXNzKCJyZXF1aXJlZCIpKSYmYi5yZXF1aXJlKCk7KCJlbWFpbCI9PT1iLmF0dHIoInR5cGUiKXx8Yi5pcygiW2RhdGEtZW1haWxdIil8fGIuaGFzQ2xhc3MoImVtYWlsIikpJiZiLnZhbGlkRW1haWxBZGRyZXNzKCk7aWYoInRlbCI9PT1iLmF0dHIoInR5cGUiKXx8Yi5oYXNDbGFzcygicGhvbmUiKSliLmlzKCJbZGF0YS1tb2JpbGVdIil8fGIuaGFzQ2xhc3MoIm1vYmlsZSIpP2IudmFsaWRhdGVNb2JpbGUoKTooInRlbCI9PT1iLmF0dHIoInR5cGUiKXx8CmIuaXMoIltkYXRhLXBob25lXSIpfHxiLmhhc0NsYXNzKCJwaG9uZSIpKSYmYi52YWxpZGF0ZVBob25lKCl9KTtyZXR1cm4gJC52YWxpZGl0eS5lbmQoKX07cmV0dXJuIGF9CmpRdWVyeShmdW5jdGlvbihlKXtlLmZuLm1haWxFeHByZXNzUmVxdWVzdD1mdW5jdGlvbihkKXtkPWR8fHt9O3ZhciBhPXtlbWFpbElkOiJRdWlja0VtYWlsIixwb3B1cE9mZmVyVHlwZToiIixwaG9uZTp7c2VsZWN0b3I6Ilt0eXBlPXRlbF0iLG1hc2s6IjAwMCAwMDAtMDAwMCJ9LHZhbGlkYXRpb246e291dHB1dE1vZGU6ImNzc09ubHkiLHNjcm9sbFRvOiExLGNzc0NsYXNzOiJ2YWxpZGl0eS1lcnJvbmVvdXMifSxkZWZpbml0aW9uczp7c3ViamVjdDoiLm1haWwtZXhwcmVzcy13aWRnZXRfX2VtYWlsLWRlZmluaXRpb25fX3N1YmplY3QiLGJvZHk6Ii5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19lbWFpbC1kZWZpbml0aW9uX19ib2R5In0sZW1haWw6e3NlbmRUbzoiIixzZW5kVG9BREY6IiJ9LGdvb2dsZVRyYWNraW5nOntsYWJlbDoiIixsYWJlbHNlY3Rpb246IiJ9LG5vU3VjY2VzTWVzc2FnZTohMX07aWYoMT09PXRoaXMubGVuZ3RoKXt2YXIgYj10aGlzLmRhdGEoIm1haWxleHByZXNzLXdpZGdldCIpOwoidW5kZWZpbmVkIj09PXR5cGVvZiBiJiYoYj10aGlzLmRhdGEoInxtYWlsZXhwcmVzcy1vcHRpb25zIik\/dGhpcy5kYXRhKCJ8bWFpbGV4cHJlc3Mtb3B0aW9ucyIpOnt9LGE9ZS5leHRlbmQoe30sYSxiLGQpLGI9bmV3IENNYWlsRXhwcmVzc1JlcXVlc3RXaWRnZXQodGhpcyxhKSxhLmluaXRpYWxpemVkfHxiLmluaXQoKSx0aGlzLmRhdGEoIm1haWxleHByZXNzLXdpZGdldCIsYikpO3JldHVybiBifXZhciBjPVtdO3RoaXMuZWFjaChmdW5jdGlvbigpe2MucHVzaChlKHRoaXMpLm1haWxFeHByZXNzUmVxdWVzdChkKSl9KTtyZXR1cm4gY319KTsKLyoqIC9qcy9tYWlsRGVmaW5pdGlvblBhcnNlci5qcyAqKi8KdmFyIF9fX2QyY19tYWlsRGVmaW5pdGlvblBhcnNlcmpzX2Nfb249IjIwMjYtMDItMDIgMTM6MzA6MDUiOyd1c2Ugc3RyaWN0JztmdW5jdGlvbiBNYWlsRGVmaW5pdGlvblBhcnNlcihoLGYpe3ZhciBiPXRoaXM7Yi5zY29wZT1oO2IuZmllbGRzPWYuZmllbGRzO2RlbGV0ZSBmLmVtYWlsVHlwZTtkZWxldGUgZi5maWVsZHM7Yi5zZXR0aW5ncz1mO2Iuc3ViamVjdD0iIjtiLmJvZHk9IiI7Yi5jbGVhbkJsYW5rVmFyaWFibGVzPWZ1bmN0aW9uKGEpe2E9YS5yZXBsYWNlKC97XCRRVUVTVElPTlN9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLCIiKTthPWEucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csIiIpO2E9YS5yZXBsYWNlKC97XCRPRkZFUn0vZywiIik7YT1hLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLAoiIik7YT1hLnJlcGxhY2UoL3tcJENPTE9SfS9nLCIiKTthPWEucmVwbGFjZSgve1wkTkFNRX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJEZOQU1FfS9nLCIiKTthPWEucmVwbGFjZSgve1wkTE5BTUV9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTH0vZywiIik7cmV0dXJuIGE9YS5yZXBsYWNlKC97XCRVU0VSUEhPTkV9L2csIiIpfTtiLmdldExhc3RWZWhpY2xlVmlld2VkPWZ1bmN0aW9uKCl7dmFyIGE9JCgiI2xhc3R2aWV3ZWRtYWtlIik7aWYoMD09PWEubGVuZ3RoJiYwPT09YS52YWwoKS5sZW5ndGgpcmV0dXJuIiI7dmFyIGM9YS52YWwoKTthPSQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTt2YXIgZD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksZT0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSxnPSQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwiIjtjPWMrIiAiK2QrIiAiK2UrKGcubGVuZ3RoPyIgIitnOiIiKTtyZXR1cm4gYys9MDxhLmxlbmd0aD8iIChTdG9jayMgIisKYSsiKSI6IiJ9O2IuZ2xvYmFsUmVwbGFjZW1lbnRzPWZ1bmN0aW9uKCl7dmFyIGE9W107JCgiaW5wdXQ6aGlkZGVuIikuZWFjaChmdW5jdGlvbihjLGQpe2M9JChkKS5hdHRyKCJuYW1lIil8fCQoZCkuYXR0cigiaWQiKTtpZighYylyZXR1cm4hMDt2YXIgZT0hMTsiZW1haWxidWlsZGFuZHByaWNlIj09PWMudG9Mb3dlckNhc2UoKSYmIiI9PT0kKGQpLnZhbCgpLnJlcGxhY2UoLyAvZywiIikmJihlPSEwKTtlfHwoImJyYW5kIj09PWMudG9Mb3dlckNhc2UoKSYmYS5wdXNoKHtuYW1lOiJtYWtlIix2YWx1ZTokKGQpLnZhbCgpfSksYS5wdXNoKHtuYW1lOmMsdmFsdWU6JChkKS52YWwoKX0pKX0pO2EucHVzaCh7bmFtZToiTEFTVFZFSElDTEVWSUVXRUQiLHZhbHVlOmIuZ2V0TGFzdFZlaGljbGVWaWV3ZWQoKX0pO3JldHVybiBhfTtiLmluaXQ9ZnVuY3Rpb24oKXtiLnBhcnNlKCk7Yi5ib2R5PWIuY2xlYW5CbGFua1ZhcmlhYmxlcyhiLmJvZHkpO2Iuc3ViamVjdD1iLmNsZWFuQmxhbmtWYXJpYWJsZXMoYi5zdWJqZWN0KX07CmIucGFyc2U9ZnVuY3Rpb24oKXtiLnN1YmplY3Q9Yi5zY29wZS5maW5kKGIuc2V0dGluZ3Muc3ViamVjdFNlbGVjdG9yKS5odG1sKCk7Yi5ib2R5PWIuc2NvcGUuZmluZChiLnNldHRpbmdzLmJvZHlTZWxlY3RvcikuaHRtbCgpO3ZhciBhPVtdO1tdLnB1c2guYXBwbHkoYSxiLmZpZWxkcyk7W10ucHVzaC5hcHBseShhLGIuZ2xvYmFsUmVwbGFjZW1lbnRzKCkpOyQoYSkuZWFjaChmdW5jdGlvbihjLGQpe2M9ZC52YWx1ZTt2YXIgZT1bXTtlLnB1c2goZC5uYW1lLnRvVXBwZXJDYXNlKCkpO2UucHVzaCgiTSIrZC5uYW1lLnRvVXBwZXJDYXNlKCkpO3N3aXRjaChkLm5hbWUudG9VcHBlckNhc2UoKSl7Y2FzZSAiUEhPTkUiOmUucHVzaCgiRU1BSUxQSE9ORSIpO2UucHVzaCgiVVNFUlBIT05FIik7YnJlYWs7Y2FzZSAiU0VBUkNIRURWRUhJQ0xFIjoiIj09ZW1haWxIYW5kbGVyLnRyaW0mJiQoIiNwb3B1cHRyaW0iKS5sZW5ndGgmJiJ7JFBPUFVQVFJJTX0iIT0kKCIjcG9wdXB0cmltIikudmFsKCkmJgooZW1haWxIYW5kbGVyLnRyaW09JCgiI3BvcHVwdHJpbSIpLnZhbCgpLGMrPSIgIitlbWFpbEhhbmRsZXIudHJpbSk7JCgiPHNwYW4+PC9zcGFuPiIpLmF0dHIoImlkIiwicGhTRUFSQ0hWRUhJQ0xFIikudGV4dChjKS5odG1sKCk7cmV0dXJuO2Nhc2UgIk5BTUUiOmUucHVzaCgiRk5BTUUiKTticmVhaztjYXNlICJERVBBUlRNRU5UIjplLnB1c2goIkRFUEFSVE1FTlQyIik7YnJlYWs7Y2FzZSAiTUVTU0FHRSI6ZS5wdXNoKCJNRVNTQUdFUyIpfWQ9bmV3IFJlZ0V4cCgie1xcJCgiK2Uuam9pbigifCIpKyIpfSIsImciKTtiLmJvZHk9Yi5ib2R5LnJlcGxhY2UoZCxjKTtiLnN1YmplY3Q9Yi5zdWJqZWN0LnJlcGxhY2UoZCxjKX0pfTtiLmluaXQoKTtyZXR1cm4gYn07Ci8qKiAvanMvdmlzaXRDb250YWN0Rm9ybS5qcyAqKi8KdmFyIF9fX2QyY192aXNpdENvbnRhY3RGb3JtanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzozNSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdmlzaXRDb250YWN0Rm9ybWpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzU6MzYiOyJ1c2Ugc3RyaWN0IjsKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXskKCIudmlzaXRDb250YWN0Rm9ybSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpeyQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIiKS5oYXNDbGFzcygiZml4ZWRQb3NpdGlvbiIpfHwoYT0oJCh0aGlzKS5vdXRlcldpZHRoKCktJCh0aGlzKS5maW5kKCIudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciIpLm91dGVyV2lkdGgoKSkvMiwkKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyIikuY3NzKCJsZWZ0IixhKyJweCIpLCQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIiKS5hZGRDbGFzcygiZml4ZWRQb3NpdGlvbiIpKX0pOyQodGhpcykucGFyZW50KCkub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oYSl7JCh0aGlzKS5oYXNDbGFzcygiaXNPcGVuIil8fAoibW91c2VsZWF2ZSI9PT1hLnR5cGV8fCQodGhpcykuYWRkQ2xhc3MoImlzT3BlbiIpO2lmKCJtb3VzZWxlYXZlIj09PWEudHlwZSl7dmFyIGI9JChhLnRvRWxlbWVudCkuaGFzQ2xhc3MoInhkc29mdF9kYXRldGltZXBpY2tlciIpfHwkKGEudG9FbGVtZW50KS5jbG9zZXN0KCIueGRzb2Z0X2RhdGV0aW1lcGlja2VyIikubGVuZ3RoO251bGw9PT1hLnRvRWxlbWVudHx8Ynx8JCh0aGlzKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9fSk7dmFyIGM9JCh0aGlzKS5hdHRyKCJkYXRhLW1haWxpZCIpLGQ9JCh0aGlzKS5maW5kKCIudGV4dFNlbmRUb0VtYWlsIikudmFsKCksZT0kKHRoaXMpLmZpbmQoIi50ZXh0U2VuZFRvRW1haWxBZGYiKS52YWwoKSxmPSQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1EZXAiKS52YWwoKTskKHRoaXMpLm1haWxFeHByZXNzUmVxdWVzdCh7ZW1haWxJZDpjLGRlcGFydG1lbnQ6ZixlbWFpbDp7c2VuZFRvOmQsc2VuZFRvQURGOmV9LGRlZmluaXRpb25zOntzdWJqZWN0OiIuZW1haWxTdWJqZWN0RGVmX1Zpc2l0Q29udGFjdCIsCmJvZHk6Ii5lbWFpbEJvZHlEZWZfVmlzaXRDb250YWN0In0scGhvbmU6e3NlbGVjdG9yOiIudmlzaXRDb250YWN0UGhvbmUifSxvbkFmdGVySW5pdDpmdW5jdGlvbigpe3NjaGVkdWxlPW5ldyBNYWlsU2NoZWR1bGUoe3Njb3BlOiQodGhpcyl9KTtzY2hlZHVsZS5maXJzdENob2ljZU9iamVjdElkPSQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdERhdGUiKS5hdHRyKCJpZCIpO3NjaGVkdWxlLmluaXQoKTskKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3REYXRlIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXswPT09JCh0aGlzKS52YWwoKS5sZW5ndGg\/JCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCIudmlzaXRDb250YWN0Q29tbWVudCIpLnJlbW92ZUNsYXNzKCJzaG93Q29tbWVudCIpOiQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnZpc2l0Q29udGFjdENvbW1lbnQiKS5hZGRDbGFzcygic2hvd0NvbW1lbnQiKX0pOyQodGhpcykub24oImNsaWNrIiwiLnZpc2l0Q29udGFjdEZvcm1TdWJtaXQiLApmdW5jdGlvbigpeyQodGhpcykuY2xvc2VzdCgiLnZpc2l0Q29udGFjdEZvcm0iKS5tYWlsRXhwcmVzc1JlcXVlc3QoKS5zdWJtaXQoKTtyZXR1cm4hMX0pfX0pfSl9KTsKLyoqIC9qcy9nZW9Mb2NhdGlvbi5qcyAqKi8KdmFyIF9fX2QyY19nZW9Mb2NhdGlvbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wMi0yNiAwOTozMDoxMSI7InVzZSBzdHJpY3QiOwp2YXIgZ2VvTG9jYXRvcj1mdW5jdGlvbihmKXt2YXIgYT10aGlzO2EubWFwc0FQSUtleT1udWxsO2EudXNlSFRNTDU9ITA7YS5nZW9jb2RlTG9jYXRpb249ITA7YS5hdHRlbXB0UGFnZU51bT0wO2EudHJhY2tMb2NhdGlvbkdBPSExO2EuZm9yY2VHZW9sb2NBdHRlbXB0PSExO2Euc2hvd1BvaW50ZXJNZXNzYWdlPSEwO2EudGltZW91dHM9W107YS5icm93c2VyPSIiO2EuaXNNb2JpbGU9IjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKTthLmdlb2xvY1N0YXR1c2VzPXtPSzoiU1VDQ0VTUyIsUkVGVVNFRDoiUkVGVVNFRCIsQ09PS0lFX0FDQ0VQVEVEOiJQUkVfQUNDRVBURUQiLENPT0tJRV9SRUZVU0VEOiJQUkVfUkVGVVNFRCIsQ0FOQ0VMRUQ6IkNBTkNFTEVEIixGQUlMOiJGQUlMRUQifTthLmdlb2xvY0Vycm9ycz17SU5WQUxJRF9SRVNQT05TRToiSU5WQUxJRF9SRVNQT05TRSIsQ09OTkVDVElPTl9GQUlMRUQ6IkNPTk5FQ1RJT05fRkFJTEVEIixHRU9MT0NfRkFJTEVEOiJHRU9MT0NfRkFJTEVEIiwKR0VPTE9DX1JFRlVTRUQ6IkdFT0xPQ19SRUZVU0VEIixHRU9DT0RFX0ZBSUxFRDoiR0VPQ09ERV9GQUlMRUQifTthLmdlb2xvY1Jlc3VsdD17cmVzdWx0OjAsZ2VvbG9jX2RhdGU6IiIsZ2VvbG9jX3N0YXR1czphLmdlb2xvY1N0YXR1c2VzLkZBSUwsZ2VvY29kZV9zdGF0dXM6MCxsYXRpdHVkZTowLGxvbmdpdHVkZTowLGFjY3VyYWN5OjAscG9zdGFsX2NvZGU6IiIsZ2VvY29kZV9hZGRyZXNzOiIiLGdlb2NvZGVfYWRkcmVzc19zdHI6IiJ9O2EuZ2VvbG9jQ2FsbGJhY2s9ZnVuY3Rpb24oKXtmKGEuZ2VvbG9jUmVzdWx0KTtmPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdlbyBjYWxsYmFjayBhbHJlYWR5IGZpcmVkLiIpfX07YS5faW5pdD1mdW5jdGlvbigpe2EuaXNNb2JpbGUmJihhLnNob3dQb2ludGVyTWVzc2FnZT0hMSk7aWYoMDxhLmF0dGVtcHRQYWdlTnVtKXt2YXIgYj1udWxsIT1Db29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIik\/cGFyc2VJbnQoQ29va2llcy5nZXQoImdlb2xvY1BhZ2VWaWV3cyIpKSsKMToxO0Nvb2tpZXMuc2V0KCJnZW9sb2NQYWdlVmlld3MiLGI8YS5hdHRlbXB0UGFnZU51bT9iOjAsbnVsbCwiLyIpO2lmKGI8YS5hdHRlbXB0UGFnZU51bSlyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExfWlmKCFhLmZvcmNlR2VvbG9jQXR0ZW1wdCYmQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKXJldHVybiBiPUpTT04ucGFyc2UoQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKSwiMSI9PWIuYWNjZXB0ZWQ\/KGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0xLGEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPWIuZ2VvbG9jX2RhdGUsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNPT0tJRV9BQ0NFUFRFRCxhLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZT1iLmxhdGl0aXVkZSxhLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU9CmIubG9uZ2l0dWRlLGEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcz1iLmFkZHJlc3MsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj1iLmFkZHJlc3Nfc3RyKTooYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX1JFRlVTRUQpLGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZigiaHR0cHM6IiE9bG9jYXRpb24ucHJvdG9jb2wpcmV0dXJuIGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNBTkNFTEVELGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZihsdF9JRTl8fCFuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pYS51c2VIVE1MNT0hMTtuYXZpZ2F0b3IuYnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBjPW5hdmlnYXRvci51c2VyQWdlbnQsZD1jLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg\/PVwvKSlcLz9ccyooXGQrKS9pKXx8CltdO2lmKC90cmlkZW50L2kudGVzdChkWzFdKSl7dmFyIGU9L1xicnZbIDpdKyhcZCspL2cuZXhlYyhjKXx8W107cmV0dXJuIklFeHBsb3JlciAiKyhlWzFdfHwiIil9aWYoIkNocm9tZSI9PT1kWzFdJiYoZT1jLm1hdGNoKC9cYk9QUlwvKFxkKykvKSxudWxsIT1lKSlyZXR1cm4iT3BlcmEgIitlWzFdO2Q9ZFsyXT9bZFsxXSxkWzJdXTpbbmF2aWdhdG9yLmFwcE5hbWUsbmF2aWdhdG9yLmFwcFZlcnNpb24sIi0\/Il07bnVsbCE9KGU9Yy5tYXRjaCgvdmVyc2lvblwvKFxkKykvaSkpJiZkLnNwbGljZSgxLDEsZVsxXSk7cmV0dXJuIGQuam9pbigiICIpfSgpO2EuYnJvd3Nlcj1uYXZpZ2F0b3IuYnJvd3NlcjtyZXR1cm4hMH07YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYj0iTGF0aXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUrIjsgTG9uZ2l0dWRlOiAiK2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZTszPD1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZS5sZW5ndGgmJgooYj1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSk7YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkFjY2VwdGVkIixiKTthLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT0obmV3IERhdGUpLmdldFRpbWUoKTtiPW5ldyBEYXRlO2Iuc2V0SG91cnMoMjMsNTksNTksMCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjEsZ2VvbG9jX2RhdGU6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGUsbGF0aXR1ZGU6YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUsbG9uZ2l0dWRlOmEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZSxwb3N0YWxfY29kZTphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSxhY2N1cmFjeTphLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeSxhZGRyZXNzOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcyxhZGRyZXNzX3N0cjphLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyfSksYiwiLyIpO2EuZ2VvbG9jQ2FsbGJhY2soKX07CmEuaGFuZGxlTG9jYXRpb25FcnJvcj1mdW5jdGlvbihiLGMpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSIiO2EuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5GQUlMO3N3aXRjaChiKXtjYXNlIGEuZ2VvbG9jRXJyb3JzLklOVkFMSURfUkVTUE9OU0U6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkNPTk5FQ1RJT05fRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IENvbmVjdGlvbiBmYWlsZWQiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuR0VPTE9DX1JFRlVTRUQ6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLlJFRlVTRUQ7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEOmJyZWFrOwpjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0NPREVfRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IEludmFsaWQgcmVzcG9uc2UgZGF0YSI7YnJlYWs7ZGVmYXVsdDpjPSJVbmtub3duIGVycm9yIG9jdXJyZWQifWEudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJGYWlsZWQiLGMpO2EuZ2VvbG9jQ2FsbGJhY2soKX07YS5nZXRMb2NhdGlvbj1mdW5jdGlvbigpe2EuX2luaXQoKSYmKDA9PWEudXNlSFRNTDU\/YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb24oKTphLmdldEhUTUw1TG9jYXRpb24oKSl9O2EuZ2V0R29vZ2xlU2VydmljZUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKTtyZXR1cm4hMX07YS5nZXRIVE1MNUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5zaG93R2VvbG9jTXNnKCk7bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihiKXthLmhpZGVHZW9sb2NNc2coKTthLmNsZWFyU2V0VGltZW91dHMoKTsKYS5nZW9sb2NSZXN1bHQucmVzdWx0PTE7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLk9LO2EuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIuY29vcmRzLmxhdGl0dWRlO2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT1iLmNvb3Jkcy5sb25naXR1ZGU7YS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k9Yi5jb29yZHMuYWNjdXJhY3k7aWYoMSE9YS5nZW9jb2RlTG9jYXRpb24pcmV0dXJuIGEuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCksITE7YS5sYXRMb25nR2VvY29kZShiLmNvb3Jkcy5sYXRpdHVkZSxiLmNvb3Jkcy5sb25naXR1ZGUpfSxmdW5jdGlvbihiKXtjb25zb2xlLmxvZyhiKTt2YXIgYz0iR2VvbG9jIGVycm9yIGNvZGU6ICIrYi5jb2RlKyIsIGdlb2xvYyBlcnJvciBtZXNhZ2U6ICIrYi5tZXNzYWdlO2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpO0Nvb2tpZXMuc2V0KCJnZW9sb2NQcm9jZXNzZWQiLEpTT04uc3RyaW5naWZ5KHthY2NlcHRlZDowfSksCjEsIi8iKTt2YXIgZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDsxIT1wYXJzZUludChiLmNvZGUpJiYoZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEKTthLmhhbmRsZUxvY2F0aW9uRXJyb3IoZCxjKX0se3RpbWVvdXQ6MjVFM30pfTthLmxhdExvbmdHZW9jb2RlPWZ1bmN0aW9uKGIsYyl7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIrInwiK2M7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj0iTGF0aXR1ZGU6ICIrYisiOyBMb25naXR1ZGU6ICIrYzthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpfTthLnRyYWNrUG9zdGFsPWZ1bmN0aW9uKCl7aWYoJGNvb2tpZT1Db29raWVzLmdldCgiSFRNTDVHZW8iKSlpZigkY29va2llPUpTT04ucGFyc2UoJGNvb2tpZSksJGNvb2tpZS5wb3N0YWxfY29kZSlyZXR1cm47aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUmJiIiIT09YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUpe3ZhciBiPQphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSsifCIrYS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYiwiSFRNTDVHZW8ucG9zdGFsIikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiSFRNTDVHZW8iLEpTT04uc3RyaW5naWZ5KHtwb3N0YWxfY29kZToxfSksYiwiLyIpfX07CmEuZ2V0QWRkcmVzc0Nvb3JkPWZ1bmN0aW9uKGIsYyl7cmV0dXJuITF9O2EudHJhY2tMb2NhdGlvbj1mdW5jdGlvbihiLGMsZCl7aWYoIWEudHJhY2tMb2NhdGlvbkdBKXJldHVybiExfTthLmNsZWFyU2V0VGltZW91dHM9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPGEudGltZW91dHMubGVuZ3RoO2IrKyljbGVhclRpbWVvdXQoYS50aW1lb3V0c1tiXSk7YS50aW1lb3V0cz1bXX07YS5zaG93R2VvbG9jTXNnPWZ1bmN0aW9uKCl7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2EuY2xlYXJTZXRUaW1lb3V0cygpO3ZhciBiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCl9LDNFNCk7YS50aW1lb3V0cy5wdXNoKGIpO2lmKC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iil8fC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpKSQoIi5nZW9sb2MtbW9kYWwtYmciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwKJCgiI2dlb2xvY2F0aW9uTXNnIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSksJCgiI2dlb2xvY2F0aW9uTXNnSUUiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KTt2YXIgYz0iZ2VvbG9jYXRpb25Nc2ciLGQ9ITAsZT17dG9wOiIwIixsZWZ0OiIwIn07c3dpdGNoKCEwKXtjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpOmU9e2JvdHRvbToiMHB4IixsZWZ0OiI0MyUifTtjPSJnZW9sb2NhdGlvbk1zZ0lFIjticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iik6ZT17dG9wOiI5MHB4IixsZWZ0OiI1cHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCI3NXB4Iik7JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJ0b3AiLCIzNXB4Iik7LTE9PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKS5pbmRleE9mKCJXaW5kb3dzIikmJgokKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIxNzVweCIpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkNocm9tZSIpOmU9e3RvcDoiNjVweCIsbGVmdDoiMHB4In07JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjEwcHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmKGU9e3RvcDoiNzVweCIsbGVmdDoiNTBweCJ9LCQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjI0MHB4IikpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIlNhZmFyaSIpOmU9e3RvcDoiNTE1cHgiLGxlZnQ6IjM1JSJ9O2Q9ITA7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiT3BlcmEiKTplPXt0b3A6IjAiLGxlZnQ6IjAifTtkPSExO2JyZWFrO2RlZmF1bHQ6ZT17dG9wOiIwIixsZWZ0OiIwIn0sZD0hMX1kJiYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIucmV2ZWFsLW1vZGFsLWJnIikudmFsKCkmJgoiYmxvY2siPT0kKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJkaXNwbGF5IikmJiQoIi5yZXZlYWwtbW9kYWwtYmciKS5oaWRlKCksJCgiLmdlb2xvYy1tb2RhbC1iZyIpLnNob3coKSwkKCIjIitjKS5jc3MoZSksJCgiIyIrYykuc2hvdygpLCJ1bmRlZmluZWQiPT10eXBlb2Ygc2l0ZVNlY3Rpb24mJihzaXRlU2VjdGlvbj0iVU5ERUZJTkVEIiksYS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIlNlY3Rpb24tIitzaXRlU2VjdGlvbiwiIikpfTthLmhpZGVHZW9sb2NNc2c9ZnVuY3Rpb24oYil7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YiliPSExOyQoIi5nZW9sb2MtbW9kYWwtYmciKS5oaWRlKCk7Ynx8KCQoIiNnZW9sb2NhdGlvbk1zZyIpLmhpZGUoKSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLmhpZGUoKSl9O2EuZ2VvbG9jRmFpbD1mdW5jdGlvbigpey0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpJiYKbG9jYXRpb24ucmVsb2FkKCk7b3ZlcmxheU9ubHk9ITA7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpb3ZlcmxheU9ubHk9ITE7YS5oaWRlR2VvbG9jTXNnKG92ZXJsYXlPbmx5KTtyZXR1cm4hMX07YS5nZXREaXN0YW5jZT1mdW5jdGlvbihiLGMsZCl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX07YS5nZXREaXN0YW5jZUhhdmVyc2luZT1mdW5jdGlvbihiLGMpe3ZhciBkPShjLmxhdC1iLmxhdCkqTWF0aC5QSS8xODAsZT0oYy5sb25nLWIubG9uZykqTWF0aC5QSS8xODA7Yj1NYXRoLnNpbihkLzIpKk1hdGguc2luKGQvMikrTWF0aC5jb3MoYi5sYXQqTWF0aC5QSS8xODApKk1hdGguY29zKGMubGF0Kk1hdGguUEkvMTgwKSpNYXRoLnNpbihlLzIpKk1hdGguc2luKGUvMik7cmV0dXJuKDEyNzU2Mjc0Kk1hdGguYXRhbjIoTWF0aC5zcXJ0KGIpLE1hdGguc3FydCgxLWIpKSkudG9GaXhlZCgyKX07YS5nZXREaXN0YW5jZUdtYXBzPQpmdW5jdGlvbihiLGMpe3JldHVybiBhLmdldERpc3RhbmNlSGF2ZXJzaW5lKGIsYyl9fTsKLyoqIC9qcy90b2FzdHIuanMgKiovCnZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjowOSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNC0wMy0yNiAxMjozMDoxNSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oeil7eihbImpxdWVyeSJdLGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIG4oYSxjKXthfHwoYT1sKCkpO2Y9ZCgiIyIrYS5jb250YWluZXJJZCk7aWYoZi5sZW5ndGgpcmV0dXJuIGY7YyYmKGY9ZCgiPGRpdi8+IikuYXR0cigiaWQiLGEuY29udGFpbmVySWQpLmFkZENsYXNzKGEucG9zaXRpb25DbGFzcykuYXR0cigiYXJpYS1saXZlIiwicG9saXRlIikuYXR0cigicm9sZSIsImFsZXJ0IikuY3NzKCJjb2xvciIsYS5jb2xvciksZi5hcHBlbmRUbyhkKGEudGFyZ2V0KSkpO3JldHVybiBmfWZ1bmN0aW9uIEEoYSxjLGUpe2U9ZSYmZS5mb3JjZT9lLmZvcmNlOiExO3JldHVybiBhJiYoZXx8MD09PWQoIjpmb2N1cyIsYSkubGVuZ3RoKT8oYVtjLmhpZGVNZXRob2RdKHtkdXJhdGlvbjpjLmhpZGVEdXJhdGlvbixlYXNpbmc6Yy5oaWRlRWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dShhKX19KSwhMCk6ITF9ZnVuY3Rpb24gRSgpe3JldHVybnt0YXBUb0Rpc21pc3M6ITAsCnRvYXN0Q2xhc3M6InRvYXN0Iixjb250YWluZXJJZDoidG9hc3QtY29udGFpbmVyIixkZWJ1ZzohMSxzaG93TWV0aG9kOiJmYWRlSW4iLHNob3dEdXJhdGlvbjozMDAsc2hvd0Vhc2luZzoic3dpbmciLG9uU2hvd246ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpO2QoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpfSxoaWRlTWV0aG9kOiJmYWRlT3V0IixoaWRlRHVyYXRpb246MUUzLGhpZGVFYXNpbmc6InN3aW5nIixvbkhpZGRlbjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIil9LG9uQ2xvc2U6ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpOwpkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sZXh0ZW5kZWRUaW1lT3V0OjFFMyxpY29uQ2xhc3Nlczp7ZXJyb3I6InRvYXN0LWVycm9yIixpbmZvOiJ0b2FzdC1pbmZvIixzdWNjZXNzOiJ0b2FzdC1zdWNjZXNzIix3YXJuaW5nOiJ0b2FzdC13YXJuaW5nIn0saWNvbkNsYXNzOiJ0b2FzdC1pbmZvIixjb2xvcjoiI0ZGRiIsYmdDb2xvcjoiIixwb3NpdGlvbkNsYXNzOiJ0b2FzdC10b3AtcmlnaHQiLHRpbWVPdXQ6NUUzLHRpdGxlQ2xhc3M6InRvYXN0LXRpdGxlIixtZXNzYWdlQ2xhc3M6InRvYXN0LW1lc3NhZ2UiLHRhcmdldDoiYm9keSIsY2xvc2VIdG1sOic8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPicsbmV3ZXN0T25Ub3A6ITAscHJldmVudER1cGxpY2F0ZXM6ITEscHJvZ3Jlc3NCYXI6ITF9fWZ1bmN0aW9uIHIoYSl7ZnVuY3Rpb24gYyhrKXtpZighZCgiOmZvY3VzIixnKS5sZW5ndGh8fGspcmV0dXJuIGNsZWFyVGltZW91dChoLmludGVydmFsSWQpLApnW2IuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmIuaGlkZUR1cmF0aW9uLGVhc2luZzpiLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGcpO2lmKGIub25IaWRkZW4mJiJoaWRkZW4iIT09bS5zdGF0ZSliLm9uSGlkZGVuKCk7bS5zdGF0ZT0iaGlkZGVuIjttLmVuZFRpbWU9bmV3IERhdGU7cCYmcChtKX19KX1mdW5jdGlvbiBlKCl7aWYoMDxiLnRpbWVPdXR8fDA8Yi5leHRlbmRlZFRpbWVPdXQpdj1zZXRUaW1lb3V0KGMsYi5leHRlbmRlZFRpbWVPdXQpLGgubWF4SGlkZVRpbWU9cGFyc2VGbG9hdChiLmV4dGVuZGVkVGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWV9ZnVuY3Rpb24gRigpe2NsZWFyVGltZW91dCh2KTtoLmhpZGVFdGE9MDtnLnN0b3AoITAsITApW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmd9KX1mdW5jdGlvbiBHKCl7dmFyIGs9KGguaGlkZUV0YS0obmV3IERhdGUpLmdldFRpbWUoKSkvCmgubWF4SGlkZVRpbWUqMTAwO3cud2lkdGgoaysiJSIpfXZhciBiPWwoKSx4PWEuaWNvbkNsYXNzfHxiLmljb25DbGFzczsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLm9wdGlvbnNPdmVycmlkZSYmKGI9ZC5leHRlbmQoYixhLm9wdGlvbnNPdmVycmlkZSkseD1hLm9wdGlvbnNPdmVycmlkZS5pY29uQ2xhc3N8fHgpO2E6e2lmKGIucHJldmVudER1cGxpY2F0ZXMpaWYoYS5tZXNzYWdlPT09eSl7dmFyIHE9ITA7YnJlYWsgYX1lbHNlIHk9YS5tZXNzYWdlO3E9ITF9aWYoIXEpe0IrKztmPW4oYiwhMCk7dmFyIHY9bnVsbCxnPWQoIjxkaXYvPiIpO3E9ZCgiPGRpdi8+Iik7dmFyIEM9ZCgiPGRpdi8+Iiksdz1kKCI8ZGl2Lz4iKSx0PWQoYi5jbG9zZUh0bWwpLGg9e2ludGVydmFsSWQ6bnVsbCxoaWRlRXRhOm51bGwsbWF4SGlkZVRpbWU6bnVsbH0sbT17dG9hc3RJZDpCLHN0YXRlOiJ2aXNpYmxlIixzdGFydFRpbWU6bmV3IERhdGUsb3B0aW9uczpiLG1hcDphfTs2PGIuYmdDb2xvci5sZW5ndGgmJgpnLmNzcygiYmFja2dyb3VuZC1jb2xvciIsYi5iZ0NvbG9yKTthLmljb25DbGFzcyYmZy5hZGRDbGFzcyhiLnRvYXN0Q2xhc3MpLmFkZENsYXNzKHgpO2EudGl0bGUmJihxLmFwcGVuZChhLnRpdGxlKS5hZGRDbGFzcyhiLnRpdGxlQ2xhc3MpLGcuYXBwZW5kKHEpKTthLm1lc3NhZ2UmJihDLmFwcGVuZChhLm1lc3NhZ2UpLmFkZENsYXNzKGIubWVzc2FnZUNsYXNzKSxnLmFwcGVuZChDKSk7Yi5jbG9zZUJ1dHRvbiYmKHQuYWRkQ2xhc3MoInRvYXN0LWNsb3NlLWJ1dHRvbiIpLmF0dHIoInJvbGUiLCJidXR0b24iKSxnLnByZXBlbmQodCkpO2IucHJvZ3Jlc3NCYXImJih3LmFkZENsYXNzKCJ0b2FzdC1wcm9ncmVzcyIpLGcucHJlcGVuZCh3KSk7Yi5uZXdlc3RPblRvcD9mLnByZXBlbmQoZyk6Zi5hcHBlbmQoZyk7Zy5oaWRlKCk7Z1tiLnNob3dNZXRob2RdKHtkdXJhdGlvbjpiLnNob3dEdXJhdGlvbixlYXNpbmc6Yi5zaG93RWFzaW5nLGNvbXBsZXRlOmIub25TaG93bn0pOzA8Yi50aW1lT3V0JiYKKHY9c2V0VGltZW91dChjLGIudGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIudGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWUsYi5wcm9ncmVzc0JhciYmKGguaW50ZXJ2YWxJZD1zZXRJbnRlcnZhbChHLDEwKSkpOyhmdW5jdGlvbigpe2cub24oIm1vdXNlZW50ZXIiLEYpLm9uKCJtb3VzZWxlYXZlIixlKTtpZighYi5vbmNsaWNrJiZiLnRhcFRvRGlzbWlzcylnLm9uKCJjbGljayIsYyk7aWYoYi5jbG9zZUJ1dHRvbiYmdCl0Lm9uKCJjbGljayIsZnVuY3Rpb24oayl7ay5zdG9wUHJvcGFnYXRpb24\/ay5zdG9wUHJvcGFnYXRpb24oKTp2b2lkIDAhPT1rLmNhbmNlbEJ1YmJsZSYmITAhPT1rLmNhbmNlbEJ1YmJsZSYmKGsuY2FuY2VsQnViYmxlPSEwKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkNsb3NlKWIub25DbG9zZSgpO2MoITApfSk7aWYoYi5vbmNsaWNrKWcub24oImNsaWNrIixmdW5jdGlvbigpe2Iub25jbGljaygpOwpjKCl9KX0pKCk7cCYmcChtKTtiLmRlYnVnJiZjb25zb2xlJiZjb25zb2xlLmxvZyhtKTtyZXR1cm4gZ319ZnVuY3Rpb24gbCgpe3JldHVybiBkLmV4dGVuZCh7fSxFKCksRC5vcHRpb25zKX1mdW5jdGlvbiB1KGEpe2Z8fChmPW4oKSk7YS5pcygiOnZpc2libGUiKXx8KGEucmVtb3ZlKCksMD09PWYuY2hpbGRyZW4oKS5sZW5ndGgmJihmLnJlbW92ZSgpLHk9dm9pZCAwKSl9dmFyIGYscCxCPTAsRD17Y2xlYXI6ZnVuY3Rpb24oYSxjKXt2YXIgZT1sKCk7Znx8bihlKTtpZighQShhLGUsYykpZm9yKGE9Zi5jaGlsZHJlbigpLGM9YS5sZW5ndGgtMTswPD1jO2MtLSlBKGQoYVtjXSksZSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYz1sKCk7Znx8bihjKTthJiYwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGg\/dShhKTpmLmNoaWxkcmVuKCkubGVuZ3RoJiZmLnJlbW92ZSgpfSxlcnJvcjpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6ImVycm9yIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmVycm9yLAptZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSxnZXRDb250YWluZXI6bixpbmZvOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiaW5mbyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5pbmZvLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LG9wdGlvbnM6e30sc3Vic2NyaWJlOmZ1bmN0aW9uKGEpe3A9YX0sc3VjY2VzczpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6InN1Y2Nlc3MiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuc3VjY2VzcyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSx2ZXJzaW9uOiIyLjEuMSIsd2FybmluZzpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6Indhcm5pbmciLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMud2FybmluZyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfX0seTtyZXR1cm4gRH0oKX0pfSkoImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJgpkZWZpbmUuYW1kP2RlZmluZTpmdW5jdGlvbih6LGQpeyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZChyZXF1aXJlKCJqcXVlcnkiKSk6d2luZG93LnRvYXN0cj1kKHdpbmRvdy5qUXVlcnkpfSk7Ci8qKiAvanMvc2xpZGVXaWRnZXQuanMgKiovCnZhciBfX19kMmNfc2xpZGVXaWRnZXRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjExIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19zbGlkZVdpZGdldGpzX2Nfb249IjIwMjUtMDQtMDQgMTc6MzA6MTEiOyJ1c2Ugc3RyaWN0IjsKU2xpZGVGb3JtPWZ1bmN0aW9uKGcpe2c9Z3x8IlNNU0xlYWQiO3ZhciBjPXRoaXM7Yy5yZXNldFZhbHVlcz17fTtqUXVlcnkoZnVuY3Rpb24oYSl7KG5ldyBGb3JtKS5tYXNrUGhvbmUoIiNwaG9uZVNsaWRlIik7YS52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToic3VtbWFyeSIsc2Nyb2xsVG86ITF9KTt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjU2xpZGVXaWRnZXRGb3JtICNkZXBhcnRtZW50IiksZD0oZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BhZ2VTZWN0aW9uIikudmFsdWV8fCIiKS50b0xvd2VyQ2FzZSgpO2xldCBmPWEoIiNQQUdFSUQiKS5sZW5ndGgmJiJjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKT9lbWFpbEhhbmRsZXIuZ2V0RGVwKCkudG9Mb3dlckNhc2UoKTpkO2ZvcihsZXQgZSBvZiBiLm9wdGlvbnMpZS5oaWRkZW49bnVsbD09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIrZS52YWx1ZSsiU2VjdGlvbm5hYmxlZCIpLGUuc2VsZWN0ZWQ9CmUudmFsdWU9PT1mO2I9IiI7WyJuZXciLCJ1c2VkIl0uaW5jbHVkZXMoZCkmJihiPShDb29raWVzLmdldCgibmV3Ij09ZD8ibGFzdG5ld3ZlaGljbGUiOiJsYXN0dmlld2VkdmVoaWNsZSIpfHwiIikuc3BsaXQoInx8fCIpLmpvaW4oIiAiKS5yZXBsYWNlQWxsKCJ8IiwiIikpO2IubGVuZ3RoJiYoYj0iRU5HTElTSCI9PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT9gb24gdGhpcyAke2J9YDpgc3VyIGNlICR7Yn1gKTtkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNTbGlkZVdpZGdldEZvcm0gI3F1ZXJ5X2FyZWEiKTtkLnZhbHVlPWQudmFsdWUucmVwbGFjZSgvKFx0fFxuKSovZywiIikucmVwbGFjZSgiIyNWRUhJQ0xFIyMiLGIpO2EoIiNzbGlkZWl0IC5vcGVuIikub24oImNsaWNrIixjLmxvZ0NsaWNrRXZlbnQpfSk7Yy5sb2dDbGlja0V2ZW50PWZ1bmN0aW9uKGEpe3RyeXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KCJUZXh0LXVzIiwKIlNNU19DTElDS19URVhUX1VTIil9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fTtjLnJlc2V0RmllbGRzPWZ1bmN0aW9uKCl7JCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmZpbmQoImlucHV0LHRleHRhcmVhIikuZWFjaChmdW5jdGlvbihhLGIpeyQoYikudmFsKCIiKX0pfTtjLnNlbmRNYWlsPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IE1haWxEZWZpbml0aW9uUGFyc2VyKCQoIiNzbGlkZWl0Iikse2ZpZWxkczokKCIjU2xpZGVXaWRnZXRGb3JtIikuc2VyaWFsaXplQXJyYXkoKSxzdWJqZWN0U2VsZWN0b3I6JCgiI2VtYWlsU2xpZGVTdWJqZWN0IiksYm9keVNlbGVjdG9yOiQoIiNlbWFpbFNsaWRlQm9keSIpfSksYj0wPCQoIiMiKyQoIiNTbGlkZVdpZGdldEZvcm0gI2RlcGFydG1lbnQiKS52YWwoKSsiRW1haWxTbGlkZSIpLmxlbmd0aD8kKCIjIiskKCIjU2xpZGVXaWRnZXRGb3JtICNkZXBhcnRtZW50IikudmFsKCkrIkVtYWlsU2xpZGUiKS52YWwoKToiIixkPTA8JCgiIyIrJCgiI1NsaWRlV2lkZ2V0Rm9ybSAjZGVwYXJ0bWVudCIpLnZhbCgpKwoiQWRmRW1haWxTbGlkZSIpLmxlbmd0aD8kKCIjIiskKCIjU2xpZGVXaWRnZXRGb3JtICNkZXBhcnRtZW50IikudmFsKCkrIkFkZkVtYWlsU2xpZGUiKS52YWwoKToiIjtlbWFpbEhhbmRsZXIuc3ViamVjdD1hLnN1YmplY3Q7ZW1haWxIYW5kbGVyLmJvZHk9YS5ib2R5O2VtYWlsSGFuZGxlci5tYWlsSUQ9ZztlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT0kKCIjU2xpZGVXaWRnZXRGb3JtICNuYW1lU2xpZGUiKS52YWwoKTtlbWFpbEhhbmRsZXIudXNlclBob25lPSQoIiNTbGlkZVdpZGdldEZvcm0gLnBob25lIikudmFsKCk7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7ZW1haWxIYW5kbGVyLnNlbmRUbz1iO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZDtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0kKCIjU2xpZGVXaWRnZXRGb3JtICNkZXBhcnRtZW50IG9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpOy0xIT1lbWFpbEhhbmRsZXIuYm9keS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInRlc3RAZDJjbWVkaWEuY2EiKSYmCiQoImlucHV0LnRlc3Rtb2RlIikudmFsKCIxIik7dmFyIGY9bWFpbFNlbnRIYW5kbGVyO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihlKXtlPyhjLnNob3dNZXNzYWdlKCIjZW1haWxTZW50TXNnIiksc2V0VGltZW91dChmdW5jdGlvbigpeyQoImlucHV0I2Nsb3NlLWl0ZW0iKS5wcm9wKCJjaGVja2VkIiwiY2hlY2tlZCIpO2MuaGlkZU1lc3NhZ2UoIiNlbWFpbFNlbnRNc2ciKTtjLnJlc2V0RmllbGRzKCl9LDNFMykpOiJ1bmRlZmluZWQiIT10eXBlb2YgZiYmZi5zaG93RmFpbCgpfTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoITEpfTtjLnN1Ym1pdFNsaWRlRm9ybT1mdW5jdGlvbigpeyQudmFsaWRpdHkuc3RhcnQoKTskKCIjU2xpZGVXaWRnZXRGb3JtIikuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTskKCIjU2xpZGVXaWRnZXRGb3JtICNuYW1lU2xpZGUiKS5yZXF1aXJlKCkubm9uSHRtbCgpOyQoIiNTbGlkZVdpZGdldEZvcm0gI2RlcGFydG1lbnQiKS5yZXF1aXJlKCk7CiQoIiNTbGlkZVdpZGdldEZvcm0gLnBob25lIikucmVxdWlyZSgpLnZhbGlkYXRlUGhvbmUoKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXt0cnl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiVGV4dC11cyIsIlNNU19MRUFEX1RFWFRfVVMiKX1jYXRjaChhKXtjb25zb2xlLmxvZyhhKX1jLnNlbmRNYWlsKCl9ZWxzZSAkKCIjU2xpZGVXaWRnZXRGb3JtICNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnNob3coKSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixmdW5jdGlvbihhKXskLnZhbGlkaXR5LmNsZWFyKCk7JCgiI1NsaWRlV2lkZ2V0Rm9ybSAjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCh0aGlzKS5vZmYoYSl9KTtyZXR1cm4hMX07Yy5tb3ZlVG9OZXh0SW5wdXQ9ZnVuY3Rpb24oYSl7YT0kKGEudGFyZ2V0KTt2YXIgYj1hLmRhdGEoIm5leHRJbnB1dCIpLGQ9YS52YWwoKS5yZXBsYWNlKC9bXjAtOV0vZywiIik7aWYoIWIpcmV0dXJuITA7ZCE9PQphLmRhdGEoImxhc3RWYWwiKSYmKGEuZGF0YSgibGFzdFZhbCIsZCksMzw9ZC5sZW5ndGgmJiQoYikudHJpZ2dlcigiZm9jdXMiKSl9O2MubW92ZVRvTmV4dERpdj1mdW5jdGlvbihhKXt2YXIgYj1TdHJpbmcuZnJvbUNoYXJDb2RlKGEud2hpY2gpO2E9JCh0aGlzKTt2YXIgZD1hLmRhdGEoIm5leHREaXYiKTshaXNOYU4ocGFyc2VJbnQoYikpJiZkJiYoYj1hLnZhbCgpLnJlcGxhY2UoL1teMC05XS9nLCIiKSxhLnZhbChiKSwzPD1iLmxlbmd0aCYmJChkKS50cmlnZ2VyKCJmb2N1cyIpKX07Yy5zaG93TWVzc2FnZT1mdW5jdGlvbihhKXskKCIjU2xpZGVXaWRnZXRGb3JtIikuZmluZChhKS5mYWRlSW4oKX07Yy5oaWRlTWVzc2FnZT1mdW5jdGlvbihhKXskKCIjU2xpZGVXaWRnZXRGb3JtIikuZmluZChhKS5mYWRlT3V0KCl9O3JldHVybiBjfTsKLyoqIC9qcy9odG1sMmNhbnZhcy5qcyAqKi8KdmFyIF9fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MjYiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNDo1NCI7InVzZSBzdHJpY3QiO19fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzY6MzciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ2OjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyMi0wMi0wNyAyMjozMDowOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oTixSLFEpe2Z1bmN0aW9uIHFhKGQscCxxKXt2YXIgaz1kLnJ1bnRpbWVTdHlsZSYmZC5ydW50aW1lU3R5bGVbcF0sYz1kLnN0eWxlO2lmKCEvXi0\/WzAtOV0rXC4\/WzAtOV0qKD86cHgpPyQvaS50ZXN0KHEpJiYvXi0\/XGQvLnRlc3QocSkpe3ZhciBuPWMubGVmdDtrJiYoZC5ydW50aW1lU3R5bGUubGVmdD1kLmN1cnJlbnRTdHlsZS5sZWZ0KTtjLmxlZnQ9ImZvbnRTaXplIj09PXA\/IjFlbSI6cXx8MDtxPWMucGl4ZWxMZWZ0KyJweCI7Yy5sZWZ0PW47ayYmKGQucnVudGltZVN0eWxlLmxlZnQ9ayl9cmV0dXJuL14odGhpbnxtZWRpdW18dGhpY2spJC9pLnRlc3QocSk\/cTpNYXRoLnJvdW5kKHBhcnNlRmxvYXQocSkpKyJweCJ9ZnVuY3Rpb24geGEoZCl7cmV0dXJuIHBhcnNlSW50KGQsMTApfWZ1bmN0aW9uIGphKGQpe3JldHVybi0xIT09ZC50b1N0cmluZygpLmluZGV4T2YoIiUiKX1mdW5jdGlvbiB5YShkLHApe3ZhciBxPVtdO3JldHVybntzdG9yYWdlOnEsd2lkdGg6ZCwKaGVpZ2h0OnAsY2xpcDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImNsaXAiLGFyZ3VtZW50c30pfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJ0cmFuc2xhdGUiLGFyZ3VtZW50c30pfSxmaWxsOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToiZmlsbCIsYXJndW1lbnRzfSl9LHNhdmU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJzYXZlIixhcmd1bWVudHN9KX0scmVzdG9yZTpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6InJlc3RvcmUiLGFyZ3VtZW50c30pfSxmaWxsUmVjdDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImZpbGxSZWN0Iixhcmd1bWVudHN9KX0sY3JlYXRlUGF0dGVybjpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImNyZWF0ZVBhdHRlcm4iLGFyZ3VtZW50c30pfSwKZHJhd1NoYXBlOmZ1bmN0aW9uKCl7dmFyIGs9W107cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToiZHJhd1NoYXBlIixhcmd1bWVudHM6a30pO3JldHVybnttb3ZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6Im1vdmVUbyIsYXJndW1lbnRzfSl9LGxpbmVUbzpmdW5jdGlvbigpe2sucHVzaCh7bmFtZToibGluZVRvIixhcmd1bWVudHN9KX0sYXJjVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImFyY1RvIixhcmd1bWVudHN9KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbigpe2sucHVzaCh7bmFtZToiYmV6aWVyQ3VydmVUbyIsYXJndW1lbnRzfSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6InF1YWRyYXRpY0N1cnZlVG8iLGFyZ3VtZW50c30pfX19LGRyYXdJbWFnZTpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImRyYXdJbWFnZSIsYXJndW1lbnRzfSl9LGZpbGxUZXh0OmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsCm5hbWU6ImZpbGxUZXh0Iixhcmd1bWVudHN9KX0sc2V0VmFyaWFibGU6ZnVuY3Rpb24oayxjKXtxLnB1c2goe3R5cGU6InZhcmlhYmxlIixuYW1lOmssYXJndW1lbnRzOmN9KTtyZXR1cm4gY319fXZhciB4PXt9LHJhO3guVXRpbD17fTt4LlV0aWwubG9nPWZ1bmN0aW9uKGQpe3gubG9nZ2luZyYmTi5jb25zb2xlJiZOLmNvbnNvbGUubG9nJiZOLmNvbnNvbGUubG9nKGQpfTt4LlV0aWwudHJpbVRleHQ9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiBkP2QuYXBwbHkocCk6KChwfHwiIikrIiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX19KFN0cmluZy5wcm90b3R5cGUudHJpbSk7eC5VdGlsLmFzRmxvYXQ9ZnVuY3Rpb24oZCl7cmV0dXJuIHBhcnNlRmxvYXQoZCl9OyhmdW5jdGlvbigpe3ZhciBkPS8oKHJnYmF8cmdiKVwoW15cKV0rXCkoXHMtP1xkK3B4KXswLH0pL2cscD0vKC0\/XGQrcHgpfCgjLispfChyZ2JcKC4rXCkpfChyZ2JhXCguK1wpKS9nO3guVXRpbC5wYXJzZVRleHRTaGFkb3dzPQpmdW5jdGlvbihxKXtpZighcXx8Im5vbmUiPT09cSlyZXR1cm5bXTtxPXEubWF0Y2goZCk7Zm9yKHZhciBrPVtdLGM9MDtxJiZjPHEubGVuZ3RoO2MrKyl7dmFyIG49cVtjXS5tYXRjaChwKTtrLnB1c2goe2NvbG9yOm5bMF0sb2Zmc2V0WDpuWzFdP25bMV0ucmVwbGFjZSgicHgiLCIiKTowLG9mZnNldFk6blsyXT9uWzJdLnJlcGxhY2UoInB4IiwiIik6MCxibHVyOm5bM10\/blszXS5yZXBsYWNlKCJweCIsIiIpOjB9KX1yZXR1cm4ga319KSgpO3guVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZT1mdW5jdGlvbihkKXt2YXIgcCxxLGssYyxuPVtdLHQ9MCx2PTAsbCxlLEk9ZnVuY3Rpb24oKXtwJiYoJyInPT09Si5zdWJzdHIoMCwxKSYmKEo9Si5zdWJzdHIoMSxKLmxlbmd0aC0yKSksSiYmZS5wdXNoKEopLCItIj09PXAuc3Vic3RyKDAsMSkmJjA8KGs9cC5pbmRleE9mKCItIiwxKSsxKSYmKHE9cC5zdWJzdHIoMCxrKSxwPXAuc3Vic3RyKGspKSxuLnB1c2goe3ByZWZpeDpxLG1ldGhvZDpwLnRvTG93ZXJDYXNlKCksCnZhbHVlOmMsYXJnczplfSkpO2U9W107cD1xPUo9Yz0iIn07SSgpO2Zvcih2YXIgej0wLEU9ZC5sZW5ndGg7ejxFO3orKyl7dmFyIEs9ZFt6XTtpZighKDA9PT10JiYtMTwiIFxyXG5cdCIuaW5kZXhPZihLKSkpe3N3aXRjaChLKXtjYXNlICciJzpsP2w9PT1LJiYobD1udWxsKTpsPUs7YnJlYWs7Y2FzZSAiKCI6aWYoIWwpaWYoMD09PXQpe3Q9MTtjKz1LO2NvbnRpbnVlfWVsc2UgdisrO2JyZWFrO2Nhc2UgIikiOmlmKCFsJiYxPT09dClpZigwPT09dil7dD0wO2MrPUs7SSgpO2NvbnRpbnVlfWVsc2Ugdi0tO2JyZWFrO2Nhc2UgIiwiOmlmKCFsKWlmKDA9PT10KXtJKCk7Y29udGludWV9ZWxzZSBpZigxPT09dCYmMD09PXYmJiFwLm1hdGNoKC9edXJsJC9pKSl7ZS5wdXNoKEopO3ZhciBKPSIiO2MrPUs7Y29udGludWV9fWMrPUs7MD09PXQ\/cCs9SzpKKz1LfX1JKCk7cmV0dXJuIG59O3guVXRpbC5Cb3VuZHM9ZnVuY3Rpb24oZCl7dmFyIHA9e307aWYoZC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBxPQpkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3AudG9wPXEudG9wO3AuYm90dG9tPXEuYm90dG9tfHxxLnRvcCtxLmhlaWdodDtwLmxlZnQ9cS5sZWZ0O3Aud2lkdGg9ZC5vZmZzZXRXaWR0aDtwLmhlaWdodD1kLm9mZnNldEhlaWdodH1yZXR1cm4gcH07eC5VdGlsLk9mZnNldEJvdW5kcz1mdW5jdGlvbihkKXt2YXIgcD1kLm9mZnNldFBhcmVudD94LlV0aWwuT2Zmc2V0Qm91bmRzKGQub2Zmc2V0UGFyZW50KTp7dG9wOjAsbGVmdDowfTtyZXR1cm57dG9wOmQub2Zmc2V0VG9wK3AudG9wLGJvdHRvbTpkLm9mZnNldFRvcCtkLm9mZnNldEhlaWdodCtwLnRvcCxsZWZ0OmQub2Zmc2V0TGVmdCtwLmxlZnQsd2lkdGg6ZC5vZmZzZXRXaWR0aCxoZWlnaHQ6ZC5vZmZzZXRIZWlnaHR9fTt4LlV0aWwuZ2V0Q1NTPWZ1bmN0aW9uKGQscCxxKXt2b2lkIDAhPT1kJiYocmE9Ui5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkpO3ZhciBrPXJhW3BdO2lmKC9eYmFja2dyb3VuZChTaXplfFBvc2l0aW9uKSQvLnRlc3QocCkpe2E6e2s9CihrfHwiIikuc3BsaXQoIiwiKTtrPWtbcXx8MF18fGtbMF18fCJhdXRvIjtrPXguVXRpbC50cmltVGV4dChrKS5zcGxpdCgiICIpO2lmKCJiYWNrZ3JvdW5kU2l6ZSIhPT1wfHwha1swXXx8IWtbMF0ubWF0Y2goL14oY292ZXJ8Y29udGFpbnxhdXRvKSQvKSl7a1swXT0tMT09PWtbMF0uaW5kZXhPZigiJSIpP3FhKGQscCsiWCIsa1swXSk6a1swXTtpZihrWzFdPT09USlpZigiYmFja2dyb3VuZFNpemUiPT09cCl7a1sxXT0iYXV0byI7ZD1rO2JyZWFrIGF9ZWxzZSBrWzFdPWtbMF07a1sxXT0tMT09PWtbMV0uaW5kZXhPZigiJSIpP3FhKGQscCsiWSIsa1sxXSk6a1sxXX1kPWt9cmV0dXJuIGR9cmV0dXJuL2JvcmRlcihUb3B8Qm90dG9tKShMZWZ0fFJpZ2h0KVJhZGl1cy8udGVzdChwKT8oZD1rLnNwbGl0KCIgIiksMT49ZC5sZW5ndGgmJihkWzFdPWRbMF0pLGQubWFwKHhhKSk6a307eC5VdGlsLnJlc2l6ZUJvdW5kcz1mdW5jdGlvbihkLHAscSxrLGMpe2QvPXA7YyYmImF1dG8iIT09Yz8KcS9rPGReImNvbnRhaW4iPT09Yz8ocT1rLGM9aypkKTooYz1xLHEvPWQpOihjPXEscT1rKTtyZXR1cm57d2lkdGg6YyxoZWlnaHQ6cX19O3guVXRpbC5CYWNrZ3JvdW5kUG9zaXRpb249ZnVuY3Rpb24oZCxwLHEsayxjKXtkPXguVXRpbC5nZXRDU1MoZCwiYmFja2dyb3VuZFBvc2l0aW9uIixrKTsxPT09ZC5sZW5ndGgmJihkPVtkWzBdLGRbMF1dKTtrPWphKGRbMF0pPyhwLndpZHRoLShjfHxxKS53aWR0aCkqKHBhcnNlRmxvYXQoZFswXSkvMTAwKTpwYXJzZUludChkWzBdLDEwKTtwPSJhdXRvIj09PWRbMV0\/ay9xLndpZHRoKnEuaGVpZ2h0OmphKGRbMV0pPyhwLmhlaWdodC0oY3x8cSkuaGVpZ2h0KSpwYXJzZUZsb2F0KGRbMV0pLzEwMDpwYXJzZUludChkWzFdLDEwKTsiYXV0byI9PT1kWzBdJiYoaz1wL3EuaGVpZ2h0KnEud2lkdGgpO3JldHVybntsZWZ0OmssdG9wOnB9fTt4LlV0aWwuQmFja2dyb3VuZFNpemU9ZnVuY3Rpb24oZCxwLHEsayl7ZD14LlV0aWwuZ2V0Q1NTKGQsImJhY2tncm91bmRTaXplIiwKayk7MT09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzBdXSk7aWYoamEoZFswXSkpaz1wLndpZHRoKnBhcnNlRmxvYXQoZFswXSkvMTAwO2Vsc2V7aWYoL2NvbnRhaW58Y292ZXIvLnRlc3QoZFswXSkpcmV0dXJuIHguVXRpbC5yZXNpemVCb3VuZHMocS53aWR0aCxxLmhlaWdodCxwLndpZHRoLHAuaGVpZ2h0LGRbMF0pO2s9cGFyc2VJbnQoZFswXSwxMCl9cD0iYXV0byI9PT1kWzBdJiYiYXV0byI9PT1kWzFdP3EuaGVpZ2h0OiJhdXRvIj09PWRbMV0\/ay9xLndpZHRoKnEuaGVpZ2h0OmphKGRbMV0pP3AuaGVpZ2h0KnBhcnNlRmxvYXQoZFsxXSkvMTAwOnBhcnNlSW50KGRbMV0sMTApOyJhdXRvIj09PWRbMF0mJihrPXAvcS5oZWlnaHQqcS53aWR0aCk7cmV0dXJue3dpZHRoOmssaGVpZ2h0OnB9fTt4LlV0aWwuQmFja2dyb3VuZFJlcGVhdD1mdW5jdGlvbihkLHApe2Q9eC5VdGlsLmdldENTUyhkLCJiYWNrZ3JvdW5kUmVwZWF0Iikuc3BsaXQoIiwiKS5tYXAoeC5VdGlsLnRyaW1UZXh0KTtyZXR1cm4gZFtwXXx8CmRbMF19O3guVXRpbC5FeHRlbmQ9ZnVuY3Rpb24oZCxwKXtmb3IodmFyIHEgaW4gZClkLmhhc093blByb3BlcnR5KHEpJiYocFtxXT1kW3FdKTtyZXR1cm4gcH07eC5VdGlsLkNoaWxkcmVuPWZ1bmN0aW9uKGQpe3RyeXtpZihkLm5vZGVOYW1lJiYiSUZSQU1FIj09PWQubm9kZU5hbWUudG9VcHBlckNhc2UoKSl2YXIgcD1kLmNvbnRlbnREb2N1bWVudHx8ZC5jb250ZW50V2luZG93LmRvY3VtZW50O2Vsc2V7dmFyIHE9ZC5jaGlsZE5vZGVzO2Q9W107aWYobnVsbCE9PXEpe3ZhciBrPWQubGVuZ3RoLGM9MDtpZigibnVtYmVyIj09PXR5cGVvZiBxLmxlbmd0aClmb3IodmFyIG49cS5sZW5ndGg7YzxuO2MrKylkW2srK109cVtjXTtlbHNlIGZvcig7cVtjXSE9PVE7KWRbaysrXT1xW2MrK107ZC5sZW5ndGg9a31wPWR9ZD1wfWNhdGNoKHQpe3guVXRpbC5sb2coImh0bWwyY2FudmFzLlV0aWwuQ2hpbGRyZW4gZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiK3QubWVzc2FnZSksZD1bXX1yZXR1cm4gZH07CnguVXRpbC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKGQpe3JldHVybiFkfHwidHJhbnNwYXJlbnQiPT09ZHx8InJnYmEoMCwgMCwgMCwgMCkiPT09ZH07eC5VdGlsLkZvbnQ9ZnVuY3Rpb24oKXt2YXIgZD17fTtyZXR1cm4gZnVuY3Rpb24ocCxxLGspe2lmKGRbcCsiLSIrcV0hPT1RKXJldHVybiBkW3ArIi0iK3FdO3ZhciBjPWsuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1rLmNyZWF0ZUVsZW1lbnQoImltZyIpLHQ9ay5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Muc3R5bGUuZm9udEZhbWlseT1wO2Muc3R5bGUuZm9udFNpemU9cTtjLnN0eWxlLm1hcmdpbj0wO2Muc3R5bGUucGFkZGluZz0wO2suYm9keS5hcHBlbmRDaGlsZChjKTtuLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUJBUC8vL3dBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSI7bi53aWR0aD0xO24uaGVpZ2h0PTE7bi5zdHlsZS5tYXJnaW49MDtuLnN0eWxlLnBhZGRpbmc9CjA7bi5zdHlsZS52ZXJ0aWNhbEFsaWduPSJiYXNlbGluZSI7dC5zdHlsZS5mb250RmFtaWx5PXA7dC5zdHlsZS5mb250U2l6ZT1xO3Quc3R5bGUubWFyZ2luPTA7dC5zdHlsZS5wYWRkaW5nPTA7dC5hcHBlbmRDaGlsZChrLmNyZWF0ZVRleHROb2RlKCJIaWRkZW4gVGV4dCIpKTtjLmFwcGVuZENoaWxkKHQpO2MuYXBwZW5kQ2hpbGQobik7dmFyIHY9bi5vZmZzZXRUb3AtdC5vZmZzZXRUb3ArMTtjLnJlbW92ZUNoaWxkKHQpO2MuYXBwZW5kQ2hpbGQoay5jcmVhdGVUZXh0Tm9kZSgiSGlkZGVuIFRleHQiKSk7Yy5zdHlsZS5saW5lSGVpZ2h0PSJub3JtYWwiO24uc3R5bGUudmVydGljYWxBbGlnbj0ic3VwZXIiO249e2Jhc2VsaW5lOnYsbGluZVdpZHRoOjEsbWlkZGxlOm4ub2Zmc2V0VG9wLWMub2Zmc2V0VG9wKzF9O2RbcCsiLSIrcV09bjtrLmJvZHkucmVtb3ZlQ2hpbGQoYyk7cmV0dXJuIG59fSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGQoYyl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtjLmFkZENvbG9yU3RvcChuLnN0b3AsCm4uY29sb3IpfWNhdGNoKHQpe3AubG9nKFsiZmFpbGVkIHRvIGFkZCBjb2xvciBzdG9wOiAiLHQsIjsgdHJpZWQgdG8gYWRkOiAiLG5dKX19fXZhciBwPXguVXRpbCxxPXt9O3guR2VuZXJhdGU9cTt2YXIgaz1bL14oLXdlYmtpdC1saW5lYXItZ3JhZGllbnQpXCgoW2EtelxzXSspKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sL14oLW8tbGluZWFyLWdyYWRpZW50KVwoKFthLXpcc10rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC13ZWJraXQtZ3JhZGllbnQpXCgobGluZWFyfHJhZGlhbCksXHMoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSxccyg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpKFtcd1xkXC5ccywlXChcKVwtXSspXCkkLywvXigtbW96LWxpbmVhci1ncmFkaWVudClcKCgoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3KylccyhbYS16XC1dKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywKL14oLW1vei1yYWRpYWwtZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSksXHMoXHcrKVxzPyhbYS16XC1dKikoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtby1yYWRpYWwtZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSksXHMoXHcrKVxzKFthLXpcLV0rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvXTtxLnBhcnNlR3JhZGllbnQ9ZnVuY3Rpb24oYyxuKXt2YXIgdCx2PWsubGVuZ3RoLGw7Zm9yKHQ9MDt0PHYmJiEobD1jLm1hdGNoKGtbdF0pKTt0Kz0xKTtpZihsKXN3aXRjaChsWzFdKXtjYXNlICItd2Via2l0LWxpbmVhci1ncmFkaWVudCI6Y2FzZSAiLW8tbGluZWFyLWdyYWRpZW50Ijp2YXIgZT17dHlwZToibGluZWFyIix4MDpudWxsLHkwOm51bGwseDE6bnVsbCx5MTpudWxsLGNvbG9yU3RvcHM6W119O2lmKGM9bFsyXS5tYXRjaCgvXHcrL2cpKWZvcih2PWMubGVuZ3RoLHQ9MDt0PHY7dCs9MSlzd2l0Y2goY1t0XSl7Y2FzZSAidG9wIjplLnkwPQowO2UueTE9bi5oZWlnaHQ7YnJlYWs7Y2FzZSAicmlnaHQiOmUueDA9bi53aWR0aDtlLngxPTA7YnJlYWs7Y2FzZSAiYm90dG9tIjplLnkwPW4uaGVpZ2h0O2UueTE9MDticmVhaztjYXNlICJsZWZ0IjplLngwPTAsZS54MT1uLndpZHRofW51bGw9PT1lLngwJiZudWxsPT09ZS54MSYmKGUueDA9ZS54MT1uLndpZHRoLzIpO251bGw9PT1lLnkwJiZudWxsPT09ZS55MSYmKGUueTA9ZS55MT1uLmhlaWdodC8yKTtpZihjPWxbM10ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSg\/OiV8cHgpKT8pKy9nKSl7dj1jLmxlbmd0aDt2YXIgST0xL01hdGgubWF4KHYtMSwxKTtmb3IodD0wO3Q8djt0Kz0xKXt2YXIgej1jW3RdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkpXHMqKFxkezEsM30pPyglfHB4KT8vKTt6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSksCmw9IiUiPT09elszXT9sLzEwMDpsL24ud2lkdGgpOmw9dCpJO2UuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzFdLHN0b3A6bH0pfX1icmVhaztjYXNlICItd2Via2l0LWdyYWRpZW50IjplPXt0eXBlOiJyYWRpYWwiPT09bFsyXT8iY2lyY2xlIjpsWzJdLHgwOjAseTA6MCx4MTowLHkxOjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzNdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8sXHMoXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLngwPWNbMV0qbi53aWR0aC8xMDAsZS55MD1jWzJdKm4uaGVpZ2h0LzEwMCxlLngxPWNbM10qbi53aWR0aC8xMDAsZS55MT1jWzRdKm4uaGVpZ2h0LzEwMDtpZihjPWxbNF0ubWF0Y2goLygoPzpmcm9tfHRvfGNvbG9yLXN0b3ApXCgoPzpbMC05XC5dKyxccyk\/KD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XClcKSkrL2cpKWZvcih2PWMubGVuZ3RoLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLyhmcm9tfHRvfGNvbG9yLXN0b3ApXCgoWzAtOVwuXSspPyg\/Oixccyk\/KCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVwpLyksCmw9cGFyc2VGbG9hdCh6WzJdKSwiZnJvbSI9PT16WzFdJiYobD0wKSwidG8iPT09elsxXSYmKGw9MSksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbM10sc3RvcDpsfSk7YnJlYWs7Y2FzZSAiLW1vei1saW5lYXItZ3JhZGllbnQiOmU9e3R5cGU6ImxpbmVhciIseDA6MCx5MDowLHgxOjAseTE6MCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goLyhcZHsxLDN9KSU\/XHMoXGR7MSwzfSklPy8pKWUueDA9Y1sxXSpuLndpZHRoLzEwMCxlLnkwPWNbMl0qbi5oZWlnaHQvMTAwLGUueDE9bi53aWR0aC1lLngwLGUueTE9bi5oZWlnaHQtZS55MDtpZihjPWxbM10ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSUpPykrL2cpKWZvcih2PWMubGVuZ3RoLEk9MS9NYXRoLm1heCh2LTEsMSksdD0wO3Q8djt0Kz0xKXo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJSk\/LyksCnpbMl0\/KGw9cGFyc2VGbG9hdCh6WzJdKSx6WzNdJiYobC89MTAwKSk6bD10KkksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbMV0sc3RvcDpsfSk7YnJlYWs7Y2FzZSAiLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQiOmNhc2UgIi1tb3otcmFkaWFsLWdyYWRpZW50IjpjYXNlICItby1yYWRpYWwtZ3JhZGllbnQiOmU9e3R5cGU6ImNpcmNsZSIseDA6MCx5MDowLHgxOm4ud2lkdGgseTE6bi5oZWlnaHQsY3g6MCxjeTowLHJ4OjAscnk6MCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goLyhcZHsxLDN9KSU\/XHMoXGR7MSwzfSklPy8pKWUuY3g9Y1sxXSpuLndpZHRoLzEwMCxlLmN5PWNbMl0qbi5oZWlnaHQvMTAwO2M9bFszXS5tYXRjaCgvXHcrLyk7ej1sWzRdLm1hdGNoKC9bYS16XC1dKi8pO2lmKGMmJnopc3dpdGNoKHpbMF0pe2Nhc2UgImZhcnRoZXN0LWNvcm5lciI6Y2FzZSAiY292ZXIiOmNhc2UgIiI6dD1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLmN5LAoyKSk7Yz1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3Y9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3o9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLmN5LDIpKTtlLnJ4PWUucnk9TWF0aC5tYXgodCxjLHYseik7YnJlYWs7Y2FzZSAiY2xvc2VzdC1jb3JuZXIiOnQ9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7Yz1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3Y9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3o9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLmN5LDIpKTtlLnJ4PWUucnk9TWF0aC5taW4odCxjLHYseik7YnJlYWs7Y2FzZSAiZmFydGhlc3Qtc2lkZSI6ImNpcmNsZSI9PT1jWzBdP2Uucng9CmUucnk9TWF0aC5tYXgoZS5jeCxlLmN5LGUueDEtZS5jeCxlLnkxLWUuY3kpOihlLnR5cGU9Y1swXSxlLnJ4PU1hdGgubWF4KGUuY3gsZS54MS1lLmN4KSxlLnJ5PU1hdGgubWF4KGUuY3ksZS55MS1lLmN5KSk7YnJlYWs7Y2FzZSAiY2xvc2VzdC1zaWRlIjpjYXNlICJjb250YWluIjoiY2lyY2xlIj09PWNbMF0\/ZS5yeD1lLnJ5PU1hdGgubWluKGUuY3gsZS5jeSxlLngxLWUuY3gsZS55MS1lLmN5KTooZS50eXBlPWNbMF0sZS5yeD1NYXRoLm1pbihlLmN4LGUueDEtZS5jeCksZS5yeT1NYXRoLm1pbihlLmN5LGUueTEtZS5jeSkpfWlmKGM9bFs1XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKD86XHNcZHsxLDN9KD86JXxweCkpPykrL2cpKWZvcih2PWMubGVuZ3RoLEk9MS9NYXRoLm1heCh2LTEsMSksdD0wO3Q8djt0Kz0xKXo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJXxweCk\/LyksCnpbMl0\/KGw9cGFyc2VGbG9hdCh6WzJdKSxsPSIlIj09PXpbM10\/bC8xMDA6bC9uLndpZHRoKTpsPXQqSSxlLmNvbG9yU3RvcHMucHVzaCh7Y29sb3I6elsxXSxzdG9wOmx9KX1yZXR1cm4gZX07cS5HcmFkaWVudD1mdW5jdGlvbihjLG4pe2lmKDAhPT1uLndpZHRoJiYwIT09bi5oZWlnaHQpe3ZhciB0PVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdj10LmdldENvbnRleHQoIjJkIik7dC53aWR0aD1uLndpZHRoO3QuaGVpZ2h0PW4uaGVpZ2h0O2lmKGM9eC5HZW5lcmF0ZS5wYXJzZUdyYWRpZW50KGMsbikpc3dpdGNoKGMudHlwZSl7Y2FzZSAibGluZWFyIjp2YXIgbD12LmNyZWF0ZUxpbmVhckdyYWRpZW50KGMueDAsYy55MCxjLngxLGMueTEpO2MuY29sb3JTdG9wcy5mb3JFYWNoKGQobCkpO3YuZmlsbFN0eWxlPWw7di5maWxsUmVjdCgwLDAsbi53aWR0aCxuLmhlaWdodCk7YnJlYWs7Y2FzZSAiY2lyY2xlIjpsPXYuY3JlYXRlUmFkaWFsR3JhZGllbnQoYy5jeCxjLmN5LDAsYy5jeCwKYy5jeSxjLnJ4KTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTt2LmZpbGxTdHlsZT1sO3YuZmlsbFJlY3QoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2JyZWFrO2Nhc2UgImVsbGlwc2UiOm49Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt2YXIgZT1uLmdldENvbnRleHQoIjJkIik7bD1NYXRoLm1heChjLnJ4LGMucnkpO3ZhciBJPTIqbDtuLndpZHRoPW4uaGVpZ2h0PUk7bD1lLmNyZWF0ZVJhZGlhbEdyYWRpZW50KGMucngsYy5yeSwwLGMucngsYy5yeSxsKTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTtlLmZpbGxTdHlsZT1sO2UuZmlsbFJlY3QoMCwwLEksSSk7di5maWxsU3R5bGU9Yy5jb2xvclN0b3BzW2MuY29sb3JTdG9wcy5sZW5ndGgtMV0uY29sb3I7di5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCk7di5kcmF3SW1hZ2UobixjLmN4LWMucngsYy5jeS1jLnJ5LDIqYy5yeCwyKmMucnkpfXJldHVybiB0fX07cS5MaXN0QWxwaGE9ZnVuY3Rpb24oYyl7dmFyIG49IiI7CmRvIG49U3RyaW5nLmZyb21DaGFyQ29kZShjJTI2KzY0KStuLGMvPTI2O3doaWxlKDI2PDI2KmMpO3JldHVybiBufTtxLkxpc3RSb21hbj1mdW5jdGlvbihjKXt2YXIgbj0iTSBDTSBEIENEIEMgWEMgTCBYTCBYIElYIFYgSVYgSSIuc3BsaXQoIiAiKSx0PVsxRTMsOTAwLDUwMCw0MDAsMTAwLDkwLDUwLDQwLDEwLDksNSw0LDFdLHY9IiIsbCxlPW4ubGVuZ3RoO2lmKDA+PWN8fDRFMzw9YylyZXR1cm4gYztmb3IobD0wO2w8ZTtsKz0xKWZvcig7Yz49dFtsXTspYy09dFtsXSx2Kz1uW2xdO3JldHVybiB2fX0pKCk7eC5QYXJzZT1mdW5jdGlvbihkLHAscSl7ZnVuY3Rpb24gayhhKXtmdW5jdGlvbiBiKGgpe3ZhciByPWFhKGgsIjpiZWZvcmUiKSx3PWFhKGgsIjphZnRlciIpO3ImJmYucHVzaCh7dHlwZToiYmVmb3JlIixwc2V1ZG86cixlbDpofSk7dyYmZi5wdXNoKHt0eXBlOiJhZnRlciIscHNldWRvOncsZWw6aH0pfXZhciBmPVtdLGc9W107KGZ1bmN0aW9uKCl7Zm9yKHZhciBoPS86YmVmb3JlfDphZnRlci8sCnI9Ui5zdHlsZVNoZWV0cyx3PTAsbT1yLmxlbmd0aDt3PG07dysrKXRyeXtmb3IodmFyIEQ9clt3XS5jc3NSdWxlcyx1PTAsSD1ELmxlbmd0aDt1PEg7dSsrKWgudGVzdChEW3VdLnNlbGVjdG9yVGV4dCkmJmcucHVzaChEW3VdLnNlbGVjdG9yVGV4dCl9Y2F0Y2goTCl7fXc9MDtmb3IobT1nLmxlbmd0aDt3PG07dysrKWdbd109Z1t3XS5tYXRjaCgvKF5bXjpdKikvKVsxXX0pKCk7KGZ1bmN0aW9uKGgpe2g9Ui5xdWVyeVNlbGVjdG9yQWxsKGcuZmlsdGVyKGZ1bmN0aW9uKG0pe3JldHVybiBtPyEwOiExfSkuam9pbigiLCIpKTtmb3IodmFyIHI9MCx3PWgubGVuZ3RoO3I8dztyKyspYihoW3JdKX0pKGEpOyhmdW5jdGlvbigpe2YuZm9yRWFjaChmdW5jdGlvbihoKXtoPWguZWw7aC5jbGFzc0xpc3Q\/aC5jbGFzc0xpc3QuYWRkKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik6aC5jbGFzc05hbWUrPSIgX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCJ9KTsKZi5mb3JFYWNoKGZ1bmN0aW9uKGgpeyJiZWZvcmUiPT09aC50eXBlP2guZWwuaW5zZXJ0QmVmb3JlKGgucHNldWRvLGguZWwuZmlyc3RDaGlsZCk6aC5lbC5hcHBlbmRDaGlsZChoLnBzZXVkbyl9KX0pKCl9ZnVuY3Rpb24gYyhhLGIpe2E9cGFyc2VJbnQoQyhhLGIpLDEwKTtyZXR1cm4gaXNOYU4oYSk\/MDphfWZ1bmN0aW9uIG4oYSxiLGYsZyxoLHIpeyJ0cmFuc3BhcmVudCIhPT1yJiYoYS5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixyKSxhLmZpbGxSZWN0KGIsZixnLGgpKX1mdW5jdGlvbiB0KGEsYixmKXtpZigwPGEubGVuZ3RoKXJldHVybiBiK2YudG9VcHBlckNhc2UoKX1mdW5jdGlvbiB2KGEsYil7c3dpdGNoKGIpe2Nhc2UgImxvd2VyY2FzZSI6cmV0dXJuIGEudG9Mb3dlckNhc2UoKTtjYXNlICJjYXBpdGFsaXplIjpyZXR1cm4gYS5yZXBsYWNlKC8oXnxcc3w6fC18XCh8XCkpKFthLXpdKS9nLHQpO2Nhc2UgInVwcGVyY2FzZSI6cmV0dXJuIGEudG9VcHBlckNhc2UoKTtkZWZhdWx0OnJldHVybiBhfX0KZnVuY3Rpb24gbChhLGIsZixnKXt2YXIgaD1DKGIsImZvbnRXZWlnaHQiKSxyPUMoYiwiZm9udEZhbWlseSIpLHc9QyhiLCJmb250U2l6ZSIpLG09TS5wYXJzZVRleHRTaGFkb3dzKEMoYiwidGV4dFNoYWRvdyIpKTtzd2l0Y2gocGFyc2VJbnQoaCwxMCkpe2Nhc2UgNDAxOmg9ImJvbGQiO2JyZWFrO2Nhc2UgNDAwOmg9Im5vcm1hbCJ9YS5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixnKTthLnNldFZhcmlhYmxlKCJmb250IixbQyhiLCJmb250U3R5bGUiKSxDKGIsImZvbnRWYXJpYW50IiksaCx3LHJdLmpvaW4oIiAiKSk7YS5zZXRWYXJpYWJsZSgidGV4dEFsaWduIiwibGVmdCIpO20ubGVuZ3RoJiYoYS5zZXRWYXJpYWJsZSgic2hhZG93Q29sb3IiLG1bMF0uY29sb3IpLGEuc2V0VmFyaWFibGUoInNoYWRvd09mZnNldFgiLG1bMF0ub2Zmc2V0WCksYS5zZXRWYXJpYWJsZSgic2hhZG93T2Zmc2V0WSIsbVswXS5vZmZzZXRZKSxhLnNldFZhcmlhYmxlKCJzaGFkb3dCbHVyIixtWzBdLmJsdXIpKTsKaWYoIm5vbmUiIT09ZilyZXR1cm4gTS5Gb250KHIsdyxQKX1mdW5jdGlvbiBlKGEsYixmKXt2YXIgZz1mLmN0eCxoPUMoYSwiY29sb3IiKSxyPUMoYSwidGV4dERlY29yYXRpb24iKSx3PUMoYSwidGV4dEFsaWduIiksbT1iLEQ9MDtpZigwPE0udHJpbVRleHQoYi5ub2RlVmFsdWUpLmxlbmd0aCl7Yi5ub2RlVmFsdWU9dihiLm5vZGVWYWx1ZSxDKGEsInRleHRUcmFuc2Zvcm0iKSk7dz13LnJlcGxhY2UoWyItd2Via2l0LWF1dG8iXSxbImF1dG8iXSk7dmFyIHU9IXAubGV0dGVyUmVuZGVyaW5nJiYvXihsZWZ0fHJpZ2h0fGp1c3RpZnl8YXV0bykkLy50ZXN0KHcpJiYvXihub3JtYWx8bm9uZXwwcHgpJC8udGVzdChDKGEsImxldHRlclNwYWNpbmciKSk\/Yi5ub2RlVmFsdWUuc3BsaXQoLyhcYnwgKS8pOmIubm9kZVZhbHVlLnNwbGl0KCIiKSxIPWwoZyxhLHIsaCk7cC5jaGluZXNlJiZ1LmZvckVhY2goZnVuY3Rpb24oTCxGKXsvLipbXHU0RTAwLVx1OUZBNV0uKiQvLnRlc3QoTCkmJihMPQpMLnNwbGl0KCIiKSxMLnVuc2hpZnQoRiwxKSx1LnNwbGljZS5hcHBseSh1LEwpKX0pO3UuZm9yRWFjaChmdW5jdGlvbihMLEYpe3ZhciBWPUY8dS5sZW5ndGgtMTtGPWYudHJhbnNmb3JtLm1hdHJpeDtpZih6YS5yYW5nZUJvdW5kcyYmIUYpe2lmKCJub25lIiE9PXJ8fDAhPT1NLnRyaW1UZXh0KEwpLmxlbmd0aCl7Rj1tO1Y9RDt2YXIgUz1QLmNyZWF0ZVJhbmdlKCk7Uy5zZXRTdGFydChGLFYpO1Muc2V0RW5kKEYsVitMLmxlbmd0aCk7Uz1TLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfUQrPUwubGVuZ3RofWVsc2UgaWYobSYmInN0cmluZyI9PT10eXBlb2YgbS5ub2RlVmFsdWUpe1Y9Vj9tLnNwbGl0VGV4dChMLmxlbmd0aCk6bnVsbDt2YXIgWj1tO1M9Wi5wYXJlbnROb2RlO3ZhciBjYT1QLmNyZWF0ZUVsZW1lbnQoIndyYXBwZXIiKSxlYT1aLmNsb25lTm9kZSghMCk7Y2EuYXBwZW5kQ2hpbGQoWi5jbG9uZU5vZGUoITApKTtTLnJlcGxhY2VDaGlsZChjYSxaKTtGPUY\/TS5PZmZzZXRCb3VuZHMoY2EpOgpNLkJvdW5kcyhjYSk7Uy5yZXBsYWNlQ2hpbGQoZWEsY2EpO1M9RjttPVZ9aWYoRj1TKXN3aXRjaChWPUYubGVmdCxTPUYuYm90dG9tLG51bGwhPT1MJiYwPE0udHJpbVRleHQoTCkubGVuZ3RoJiZnLmZpbGxUZXh0KEwsVixTKSxyKXtjYXNlICJ1bmRlcmxpbmUiOm4oZyxGLmxlZnQsTWF0aC5yb3VuZChGLnRvcCtILmJhc2VsaW5lK0gubGluZVdpZHRoKSxGLndpZHRoLDEsaCk7YnJlYWs7Y2FzZSAib3ZlcmxpbmUiOm4oZyxGLmxlZnQsTWF0aC5yb3VuZChGLnRvcCksRi53aWR0aCwxLGgpO2JyZWFrO2Nhc2UgImxpbmUtdGhyb3VnaCI6bihnLEYubGVmdCxNYXRoLmNlaWwoRi50b3ArSC5taWRkbGUrSC5saW5lV2lkdGgpLEYud2lkdGgsMSxoKX19KX19ZnVuY3Rpb24gSShhLGIsZil7Yj1iLmN0eDt2YXIgZz1DKGEsImxpc3RTdHlsZVR5cGUiKTtpZigvXihkZWNpbWFsfGRlY2ltYWwtbGVhZGluZy16ZXJvfHVwcGVyLWFscGhhfHVwcGVyLWxhdGlufHVwcGVyLXJvbWFufGxvd2VyLWFscGhhfGxvd2VyLWdyZWVrfGxvd2VyLWxhdGlufGxvd2VyLXJvbWFuKSQvaS50ZXN0KGcpKXt2YXIgaD0KLTEscj0xLHc9YS5wYXJlbnROb2RlLmNoaWxkTm9kZXM7aWYoYS5wYXJlbnROb2RlKXtmb3IoO3dbKytoXSE9PWE7KTE9PT13W2hdLm5vZGVUeXBlJiZyKys7aD1yfWVsc2UgaD0tMTtzd2l0Y2goZyl7Y2FzZSAiZGVjaW1hbCI6dmFyIG09aDticmVhaztjYXNlICJkZWNpbWFsLWxlYWRpbmctemVybyI6bT0xPT09aC50b1N0cmluZygpLmxlbmd0aD8iMCIraC50b1N0cmluZygpOmgudG9TdHJpbmcoKTticmVhaztjYXNlICJ1cHBlci1yb21hbiI6bT14LkdlbmVyYXRlLkxpc3RSb21hbihoKTticmVhaztjYXNlICJsb3dlci1yb21hbiI6bT14LkdlbmVyYXRlLkxpc3RSb21hbihoKS50b0xvd2VyQ2FzZSgpO2JyZWFrO2Nhc2UgImxvd2VyLWFscGhhIjptPXguR2VuZXJhdGUuTGlzdEFscGhhKGgpLnRvTG93ZXJDYXNlKCk7YnJlYWs7Y2FzZSAidXBwZXItYWxwaGEiOm09eC5HZW5lcmF0ZS5MaXN0QWxwaGEoaCl9bSs9Ii4gIjtoPVAuY3JlYXRlRWxlbWVudCgiYm91bmRlbGVtZW50Iik7Cmguc3R5bGUuZGlzcGxheT0iaW5saW5lIjtyPWEuc3R5bGUubGlzdFN0eWxlVHlwZTthLnN0eWxlLmxpc3RTdHlsZVR5cGU9Im5vbmUiO2guYXBwZW5kQ2hpbGQoUC5jcmVhdGVUZXh0Tm9kZShtKSk7YS5pbnNlcnRCZWZvcmUoaCxhLmZpcnN0Q2hpbGQpO2c9TS5Cb3VuZHMoaCk7YS5yZW1vdmVDaGlsZChoKTthLnN0eWxlLmxpc3RTdHlsZVR5cGU9cjtsKGIsYSwibm9uZSIsQyhhLCJjb2xvciIpKTsiaW5zaWRlIj09PUMoYSwibGlzdFN0eWxlUG9zaXRpb24iKSYmKGIuc2V0VmFyaWFibGUoInRleHRBbGlnbiIsImxlZnQiKSxhPWYubGVmdCxmPWcuYm90dG9tLG51bGwhPT1tJiYwPE0udHJpbVRleHQobSkubGVuZ3RoJiZiLmZpbGxUZXh0KG0sYSxmKSl9fWZ1bmN0aW9uIHooYSl7cmV0dXJuKGE9ZFthXSkmJiEwPT09YS5zdWNjZWVkZWQ\/YS5pbWc6ITF9ZnVuY3Rpb24gRShhLGIpe3ZhciBmPU1hdGgubWF4KGEubGVmdCxiLmxlZnQpLGc9TWF0aC5tYXgoYS50b3AsYi50b3ApO3JldHVybntsZWZ0OmYsCnRvcDpnLHdpZHRoOk1hdGgubWluKGEubGVmdCthLndpZHRoLGIubGVmdCtiLndpZHRoKS1mLGhlaWdodDpNYXRoLm1pbihhLnRvcCthLmhlaWdodCxiLnRvcCtiLmhlaWdodCktZ319ZnVuY3Rpb24gSyhhLGIsZixnLGgpe3ZhciByPWMoYiwicGFkZGluZ0xlZnQiKSx3PWMoYiwicGFkZGluZ1RvcCIpLG09YyhiLCJwYWRkaW5nUmlnaHQiKTtiPWMoYiwicGFkZGluZ0JvdHRvbSIpO1UoYSxmLDAsMCxmLndpZHRoLGYuaGVpZ2h0LGcubGVmdCtyK2hbM10ud2lkdGgsZy50b3ArdytoWzBdLndpZHRoLGcud2lkdGgtKGhbMV0ud2lkdGgraFszXS53aWR0aCtyK20pLGcuaGVpZ2h0LShoWzBdLndpZHRoK2hbMl0ud2lkdGgrdytiKSl9ZnVuY3Rpb24gSihhKXtyZXR1cm5bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLm1hcChmdW5jdGlvbihiKXtyZXR1cm57d2lkdGg6YyhhLCJib3JkZXIiK2IrIldpZHRoIiksY29sb3I6QyhhLCJib3JkZXIiK2IrIkNvbG9yIil9fSl9ZnVuY3Rpb24gRyhhKXtyZXR1cm5bIlRvcExlZnQiLAoiVG9wUmlnaHQiLCJCb3R0b21SaWdodCIsIkJvdHRvbUxlZnQiXS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIEMoYSwiYm9yZGVyIitiKyJSYWRpdXMiKX0pfWZ1bmN0aW9uIE8oYSxiLGYsZyl7dmFyIGg9KE1hdGguc3FydCgyKS0xKS8zKjQscj1mKmg7aCo9ZztmPWErZjtnPWIrZztyZXR1cm57dG9wTGVmdDpUKHt4OmEseTpnfSx7eDphLHk6Zy1ofSx7eDpmLXIseTpifSx7eDpmLHk6Yn0pLHRvcFJpZ2h0OlQoe3g6YSx5OmJ9LHt4OmErcix5OmJ9LHt4OmYseTpnLWh9LHt4OmYseTpnfSksYm90dG9tUmlnaHQ6VCh7eDpmLHk6Yn0se3g6Zix5OmIraH0se3g6YStyLHk6Z30se3g6YSx5Omd9KSxib3R0b21MZWZ0OlQoe3g6Zix5Omd9LHt4OmYtcix5Omd9LHt4OmEseTpiK2h9LHt4OmEseTpifSl9fWZ1bmN0aW9uIFQoYSxiLGYsZyl7dmFyIGg9ZnVuY3Rpb24ocix3LG0pe3JldHVybnt4OnIueCsody54LXIueCkqbSx5OnIueSsody55LXIueSkqbX19O3JldHVybntzdGFydDphLHN0YXJ0Q29udHJvbDpiLAplbmRDb250cm9sOmYsZW5kOmcsc3ViZGl2aWRlOmZ1bmN0aW9uKHIpe3ZhciB3PWgoYSxiLHIpLG09aChiLGYsciksRD1oKGYsZyxyKSx1PWgodyxtLHIpO209aChtLEQscik7cj1oKHUsbSxyKTtyZXR1cm5bVChhLHcsdSxyKSxUKHIsbSxELGcpXX0sY3VydmVUbzpmdW5jdGlvbihyKXtyLnB1c2goWyJiZXppZXJDdXJ2ZSIsYi54LGIueSxmLngsZi55LGcueCxnLnldKX0sY3VydmVUb1JldmVyc2VkOmZ1bmN0aW9uKHIpe3IucHVzaChbImJlemllckN1cnZlIixmLngsZi55LGIueCxiLnksYS54LGEueV0pfX19ZnVuY3Rpb24gVyhhLGIsZixnLGgscix3KXswPGJbMF18fDA8YlsxXT8oYS5wdXNoKFsibGluZSIsZ1swXS5zdGFydC54LGdbMF0uc3RhcnQueV0pLGdbMF0uY3VydmVUbyhhKSxnWzFdLmN1cnZlVG8oYSkpOmEucHVzaChbImxpbmUiLHIsd10pOygwPGZbMF18fDA8ZlsxXSkmJmEucHVzaChbImxpbmUiLGhbMF0uc3RhcnQueCxoWzBdLnN0YXJ0LnldKX1mdW5jdGlvbiBiYShhLApiLGYsZyxoLHIsdyl7dmFyIG09W107MDxiWzBdfHwwPGJbMV0\/KG0ucHVzaChbImxpbmUiLGdbMV0uc3RhcnQueCxnWzFdLnN0YXJ0LnldKSxnWzFdLmN1cnZlVG8obSkpOm0ucHVzaChbImxpbmUiLGEuYzFbMF0sYS5jMVsxXV0pOzA8ZlswXXx8MDxmWzFdPyhtLnB1c2goWyJsaW5lIixyWzBdLnN0YXJ0LngsclswXS5zdGFydC55XSksclswXS5jdXJ2ZVRvKG0pLG0ucHVzaChbImxpbmUiLHdbMF0uZW5kLngsd1swXS5lbmQueV0pLHdbMF0uY3VydmVUb1JldmVyc2VkKG0pKToobS5wdXNoKFsibGluZSIsYS5jMlswXSxhLmMyWzFdXSksbS5wdXNoKFsibGluZSIsYS5jM1swXSxhLmMzWzFdXSkpOzA8YlswXXx8MDxiWzFdPyhtLnB1c2goWyJsaW5lIixoWzFdLmVuZC54LGhbMV0uZW5kLnldKSxoWzFdLmN1cnZlVG9SZXZlcnNlZChtKSk6bS5wdXNoKFsibGluZSIsYS5jNFswXSxhLmM0WzFdXSk7cmV0dXJuIG19ZnVuY3Rpb24geShhLGIsZil7dmFyIGc9Yi5sZWZ0LGg9Yi50b3Ascj0KYi53aWR0aCx3PWIuaGVpZ2h0LG09RyhhKSxEPWIubGVmdCx1PWIudG9wLEg9Yi53aWR0aCxMPWIuaGVpZ2h0LEY9bVswXVswXSxWPW1bMF1bMV0sUz1tWzFdWzBdLFo9bVsxXVsxXSxjYT1tWzJdWzBdLGVhPW1bMl1bMV0sWT1tWzNdWzBdLFg9bVszXVsxXSxvYT1ILVMsc2E9TC1lYSx0YT1ILWNhLGZhPUwtWCxrYT1PKEQsdSxGLFYpLnRvcExlZnQuc3ViZGl2aWRlKC41KTtGPU8oRCtmWzNdLndpZHRoLHUrZlswXS53aWR0aCxNYXRoLm1heCgwLEYtZlszXS53aWR0aCksTWF0aC5tYXgoMCxWLWZbMF0ud2lkdGgpKS50b3BMZWZ0LnN1YmRpdmlkZSguNSk7Vj1PKEQrb2EsdSxTLFopLnRvcFJpZ2h0LnN1YmRpdmlkZSguNSk7Uz1PKEQrTWF0aC5taW4ob2EsSCtmWzNdLndpZHRoKSx1K2ZbMF0ud2lkdGgsb2E+SCtmWzNdLndpZHRoPzA6Uy1mWzNdLndpZHRoLFotZlswXS53aWR0aCkudG9wUmlnaHQuc3ViZGl2aWRlKC41KTtaPU8oRCt0YSx1K3NhLGNhLGVhKS5ib3R0b21SaWdodC5zdWJkaXZpZGUoLjUpOwpIPU8oRCtNYXRoLm1pbih0YSxIK2ZbM10ud2lkdGgpLHUrTWF0aC5taW4oc2EsTCtmWzBdLndpZHRoKSxNYXRoLm1heCgwLGNhLWZbMV0ud2lkdGgpLE1hdGgubWF4KDAsZWEtZlsyXS53aWR0aCkpLmJvdHRvbVJpZ2h0LnN1YmRpdmlkZSguNSk7TD1PKEQsdStmYSxZLFgpLmJvdHRvbUxlZnQuc3ViZGl2aWRlKC41KTtEPU8oRCtmWzNdLndpZHRoLHUrZmEsTWF0aC5tYXgoMCxZLWZbM10ud2lkdGgpLE1hdGgubWF4KDAsWC1mWzJdLndpZHRoKSkuYm90dG9tTGVmdC5zdWJkaXZpZGUoLjUpO3U9W107c3dpdGNoKEMoYSwiYmFja2dyb3VuZENsaXAiKSl7Y2FzZSAiY29udGVudC1ib3giOmNhc2UgInBhZGRpbmctYm94IjpXKHUsbVswXSxtWzFdLEYsUyxiLmxlZnQrZlszXS53aWR0aCxiLnRvcCtmWzBdLndpZHRoKTtXKHUsbVsxXSxtWzJdLFMsSCxiLmxlZnQrYi53aWR0aC1mWzFdLndpZHRoLGIudG9wK2ZbMF0ud2lkdGgpO1codSxtWzJdLG1bM10sSCxELGIubGVmdCtiLndpZHRoLWZbMV0ud2lkdGgsCmIudG9wK2IuaGVpZ2h0LWZbMl0ud2lkdGgpO1codSxtWzNdLG1bMF0sRCxGLGIubGVmdCtmWzNdLndpZHRoLGIudG9wK2IuaGVpZ2h0LWZbMl0ud2lkdGgpO2JyZWFrO2RlZmF1bHQ6Vyh1LG1bMF0sbVsxXSxrYSxWLGIubGVmdCxiLnRvcCksVyh1LG1bMV0sbVsyXSxWLFosYi5sZWZ0K2Iud2lkdGgsYi50b3ApLFcodSxtWzJdLG1bM10sWixMLGIubGVmdCtiLndpZHRoLGIudG9wK2IuaGVpZ2h0KSxXKHUsbVszXSxtWzBdLEwsa2EsYi5sZWZ0LGIudG9wK2IuaGVpZ2h0KX1mYT17Y2xpcDp1LGJvcmRlcnM6W119O2ZvcihhPTA7ND5hO2ErKylpZigwPGZbYV0ud2lkdGgpe2I9Zzt1PWg7WT1yO1g9dy1mWzJdLndpZHRoO3N3aXRjaChhKXtjYXNlIDA6WD1mWzBdLndpZHRoO3ZhciBsYT1iYSh7YzE6W2IsdV0sYzI6W2IrWSx1XSxjMzpbYitZLWZbMV0ud2lkdGgsdStYXSxjNDpbYitmWzNdLndpZHRoLHUrWF19LG1bMF0sbVsxXSxrYSxGLFYsUyk7YnJlYWs7Y2FzZSAxOmI9ZytyLWZbMV0ud2lkdGg7Clk9ZlsxXS53aWR0aDtsYT1iYSh7YzE6W2IrWSx1XSxjMjpbYitZLHUrWCtmWzJdLndpZHRoXSxjMzpbYix1K1hdLGM0OltiLHUrZlswXS53aWR0aF19LG1bMV0sbVsyXSxWLFMsWixIKTticmVhaztjYXNlIDI6dT11K3ctZlsyXS53aWR0aDtYPWZbMl0ud2lkdGg7bGE9YmEoe2MxOltiK1ksdStYXSxjMjpbYix1K1hdLGMzOltiK2ZbM10ud2lkdGgsdV0sYzQ6W2IrWS1mWzNdLndpZHRoLHVdfSxtWzJdLG1bM10sWixILEwsRCk7YnJlYWs7Y2FzZSAzOlk9ZlszXS53aWR0aCxsYT1iYSh7YzE6W2IsdStYK2ZbMl0ud2lkdGhdLGMyOltiLHVdLGMzOltiK1ksdStmWzBdLndpZHRoXSxjNDpbYitZLHUrWF19LG1bM10sbVswXSxMLEQsa2EsRil9ZmEuYm9yZGVycy5wdXNoKHthcmdzOmxhLGNvbG9yOmZbYV0uY29sb3J9KX1yZXR1cm4gZmF9ZnVuY3Rpb24gQShhLGIpe3ZhciBmPWEuZHJhd1NoYXBlKCk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGcsaCl7ZlswPT09aD8ibW92ZVRvIjpnWzBdKyJUbyJdLmFwcGx5KG51bGwsCmcuc2xpY2UoMSkpfSk7cmV0dXJuIGZ9ZnVuY3Rpb24gQihhLGIsZil7dmFyIGc9UC5jcmVhdGVFbGVtZW50KCJ2YWx1ZXdyYXAiKTsibGluZUhlaWdodCB0ZXh0QWxpZ24gZm9udEZhbWlseSBjb2xvciBmb250U2l6ZSBwYWRkaW5nTGVmdCBwYWRkaW5nVG9wIHdpZHRoIGhlaWdodCBib3JkZXIgYm9yZGVyTGVmdFdpZHRoIGJvcmRlclRvcFdpZHRoIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oaCl7dHJ5e2cuc3R5bGVbaF09QyhhLGgpfWNhdGNoKHIpe00ubG9nKCJodG1sMmNhbnZhczogUGFyc2U6IEV4Y2VwdGlvbiBjYXVnaHQgaW4gcmVuZGVyRm9ybVZhbHVlOiAiK3IubWVzc2FnZSl9fSk7Zy5zdHlsZS5ib3JkZXJDb2xvcj0iYmxhY2siO2cuc3R5bGUuYm9yZGVyU3R5bGU9InNvbGlkIjtnLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtnLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7aWYoL14oc3VibWl0fHJlc2V0fGJ1dHRvbnx0ZXh0fHBhc3N3b3JkKSQvLnRlc3QoYS50eXBlKXx8CiJTRUxFQ1QiPT09YS5ub2RlTmFtZSlnLnN0eWxlLmxpbmVIZWlnaHQ9QyhhLCJoZWlnaHQiKTtnLnN0eWxlLnRvcD1iLnRvcCsicHgiO2cuc3R5bGUubGVmdD1iLmxlZnQrInB4IjsoYj0iU0VMRUNUIj09PWEubm9kZU5hbWU\/KGEub3B0aW9uc1thLnNlbGVjdGVkSW5kZXhdfHwwKS50ZXh0OmEudmFsdWUpfHwoYj1hLnBsYWNlaG9sZGVyKTtiPVAuY3JlYXRlVGV4dE5vZGUoYik7Zy5hcHBlbmRDaGlsZChiKTttYS5hcHBlbmRDaGlsZChnKTtlKGEsYixmKTttYS5yZW1vdmVDaGlsZChnKX1mdW5jdGlvbiBVKGEpe2EuZHJhd0ltYWdlLmFwcGx5KGEsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBhYShhLGIpe3ZhciBmPU4uZ2V0Q29tcHV0ZWRTdHlsZShhLGIpO2E9Ti5nZXRDb21wdXRlZFN0eWxlKGEpO2lmKGYmJmYuY29udGVudCYmIm5vbmUiIT09Zi5jb250ZW50JiYiLW1vei1hbHQtY29udGVudCIhPT1mLmNvbnRlbnQmJiJub25lIiE9PQpmLmRpc3BsYXkmJmEuY29udGVudCE9PWYuY29udGVudCl7YT1mLmNvbnRlbnQrIiI7aWYoIiciPT09YVswXXx8JyInPT09YVswXSlhPWEucmVwbGFjZSgvKF5bJyJdKXwoWyciXSQpL2csIiIpO2I9InVybCI9PT1hLnN1YnN0cigwLDMpO3ZhciBnPVIuY3JlYXRlRWxlbWVudChiPyJpbWciOiJzcGFuIik7Zy5jbGFzc05hbWU9Il9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1lbGVtZW50ICI7T2JqZWN0LmtleXMoZikuZmlsdGVyKGRhKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3RyeXtnLnN0eWxlW2hdPWZbaF19Y2F0Y2gocil7TS5sb2coWyJUcmllZCB0byBhc3NpZ24gcmVhZG9ubHkgcHJvcGVydHkgIixoLCJFcnJvcjoiLHJdKX19KTtiP2cuc3JjPU0ucGFyc2VCYWNrZ3JvdW5kSW1hZ2UoYSlbMF0uYXJnc1swXTpnLmlubmVySFRNTD1hO3JldHVybiBnfX1mdW5jdGlvbiBkYShhKXtyZXR1cm4gaXNOYU4oTi5wYXJzZUludChhLDEwKSl9ZnVuY3Rpb24gaGEoYSxiLGYsZyl7dmFyIGg9Ck1hdGgucm91bmQoZy5sZWZ0K2YubGVmdCk7Zj1NYXRoLnJvdW5kKGcudG9wK2YudG9wKTthLmNyZWF0ZVBhdHRlcm4oYik7YS50cmFuc2xhdGUoaCxmKTthLmZpbGwoKTthLnRyYW5zbGF0ZSgtaCwtZil9ZnVuY3Rpb24gbmEoYSxiLGYsZyxoLHIsdyxtKXt2YXIgRD1bXTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgpLE1hdGgucm91bmQocildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgrdyksTWF0aC5yb3VuZChyKV0pO0QucHVzaChbImxpbmUiLE1hdGgucm91bmQoaCt3KSxNYXRoLnJvdW5kKG0rcildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgpLE1hdGgucm91bmQobStyKV0pO0EoYSxEKTthLnNhdmUoKTthLmNsaXAoKTtoYShhLGIsZixnKTthLnJlc3RvcmUoKX1mdW5jdGlvbiBBYShhLGIsZil7Zm9yKHZhciBnPUMoYSwiYmFja2dyb3VuZEltYWdlIiksaD1NLnBhcnNlQmFja2dyb3VuZEltYWdlKGcpLHIsdz1oLmxlbmd0aDt3LS07KWlmKGc9aFt3XSxnLmFyZ3MmJgowIT09Zy5hcmdzLmxlbmd0aClpZihyPXooInVybCI9PT1nLm1ldGhvZD9nLmFyZ3NbMF06Zy52YWx1ZSkpe3ZhciBtPWE7Zz1iO3ZhciBEPWYsdT1yLEg9dyxMPU0uQmFja2dyb3VuZFNpemUobSxnLHUsSCk7cj1NLkJhY2tncm91bmRQb3NpdGlvbihtLGcsdSxILEwpO209TS5CYWNrZ3JvdW5kUmVwZWF0KG0sSCk7SD1MO2lmKHUud2lkdGghPT1ILndpZHRofHx1LmhlaWdodCE9PUguaGVpZ2h0KXt2YXIgRj1QLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0Yud2lkdGg9SC53aWR0aDtGLmhlaWdodD1ILmhlaWdodDtMPUYuZ2V0Q29udGV4dCgiMmQiKTtVKEwsdSwwLDAsdS53aWR0aCx1LmhlaWdodCwwLDAsSC53aWR0aCxILmhlaWdodCk7dT1GfXN3aXRjaChtKXtjYXNlICJyZXBlYXQteCI6Y2FzZSAicmVwZWF0IG5vLXJlcGVhdCI6bmEoRCx1LHIsZyxnLmxlZnQsZy50b3Arci50b3AsOTk5OTksdS5oZWlnaHQpO2JyZWFrO2Nhc2UgInJlcGVhdC15IjpjYXNlICJuby1yZXBlYXQgcmVwZWF0IjpuYShELAp1LHIsZyxnLmxlZnQrci5sZWZ0LGcudG9wLHUud2lkdGgsOTk5OTkpO2JyZWFrO2Nhc2UgIm5vLXJlcGVhdCI6bmEoRCx1LHIsZyxnLmxlZnQrci5sZWZ0LGcudG9wK3IudG9wLHUud2lkdGgsdS5oZWlnaHQpO2JyZWFrO2RlZmF1bHQ6aGEoRCx1LHIse3RvcDpnLnRvcCxsZWZ0OmcubGVmdCx3aWR0aDp1LndpZHRoLGhlaWdodDp1LmhlaWdodH0pfX1lbHNlIE0ubG9nKCJodG1sMmNhbnZhczogRXJyb3IgbG9hZGluZyBiYWNrZ3JvdW5kOiIsZyl9ZnVuY3Rpb24gQmEoYSl7cmV0dXJuIGEucmVwbGFjZSgicHgiLCIiKX1mdW5jdGlvbiBDYShhLGIpe2I9LyhtYXRyaXgpXCgoLispXCkvO3ZhciBmPUMoYSwidHJhbnNmb3JtIil8fEMoYSwiLXdlYmtpdC10cmFuc2Zvcm0iKXx8QyhhLCItbW96LXRyYW5zZm9ybSIpfHxDKGEsIi1tcy10cmFuc2Zvcm0iKXx8QyhhLCItby10cmFuc2Zvcm0iKTthPUMoYSwidHJhbnNmb3JtLW9yaWdpbiIpfHxDKGEsIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiIpfHwKQyhhLCItbW96LXRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItbXMtdHJhbnNmb3JtLW9yaWdpbiIpfHxDKGEsIi1vLXRyYW5zZm9ybS1vcmlnaW4iKXx8IjBweCAwcHgiO2E9YS5zcGxpdCgiICIpLm1hcChCYSkubWFwKE0uYXNGbG9hdCk7aWYoZiYmIm5vbmUiIT09ZiYmKGI9Zi5tYXRjaChiKSkpc3dpdGNoKGJbMV0pe2Nhc2UgIm1hdHJpeCI6dmFyIGc9YlsyXS5zcGxpdCgiLCIpLm1hcChNLnRyaW1UZXh0KS5tYXAoTS5hc0Zsb2F0KX1yZXR1cm57b3JpZ2luOmEsbWF0cml4Omd9fWZ1bmN0aW9uIERhKGEsYixmLGcpe3ZhciBoPXlhKGI\/Zi53aWR0aDpNYXRoLm1heChNYXRoLm1heChQLmJvZHkuc2Nyb2xsV2lkdGgsUC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgpLE1hdGgubWF4KFAuYm9keS5vZmZzZXRXaWR0aCxQLmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCksTWF0aC5tYXgoUC5ib2R5LmNsaWVudFdpZHRoLFAuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSksCmI\/Zi5oZWlnaHQ6TWF0aC5tYXgoTWF0aC5tYXgoUC5ib2R5LnNjcm9sbEhlaWdodCxQLmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpLE1hdGgubWF4KFAuYm9keS5vZmZzZXRIZWlnaHQsUC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0KSxNYXRoLm1heChQLmJvZHkuY2xpZW50SGVpZ2h0LFAuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkpKSxyPWguc2V0VmFyaWFibGUoImdsb2JhbEFscGhhIixDKGEsIm9wYWNpdHkiKSooYj9iLm9wYWNpdHk6MSkpO2c9e2N0eDpoLG9wYWNpdHk6cixjc3NQb3NpdGlvbjpDKGEsInBvc2l0aW9uIiksYm9yZGVyczpKKGEpLHRyYW5zZm9ybTpnLGNsaXA6YiYmYi5jbGlwP00uRXh0ZW5kKHt9LGIuY2xpcCk6bnVsbH07dmFyIHc9KHI9InN0YXRpYyIhPT1nLmNzc1Bvc2l0aW9uKT9DKGEsInpJbmRleCIpOiJhdXRvIixtPUMoYSwib3BhY2l0eSIpLEQ9Im5vbmUiIT09QyhhLCJjc3NGbG9hdCIpO2cuekluZGV4PWg9e2RlcHRoOjAsemluZGV4OncsCmNoaWxkcmVuOltdfTtoLmlzUG9zaXRpb25lZD1yO2guaXNGbG9hdGVkPUQ7aC5vcGFjaXR5PW07aC5vd25TdGFja2luZz0iYXV0byIhPT13fHwxPm07aC5kZXB0aD1iP2IuekluZGV4LmRlcHRoKzE6MDtiJiZiLnpJbmRleC5jaGlsZHJlbi5wdXNoKGcpOyEwPT09cC51c2VPdmVyZmxvdyYmITA9PT0vKGhpZGRlbnxzY3JvbGx8YXV0bykvLnRlc3QoQyhhLCJvdmVyZmxvdyIpKSYmITE9PT0vKEJPRFkpL2kudGVzdChhLm5vZGVOYW1lKSYmKGcuY2xpcD1nLmNsaXA\/RShnLmNsaXAsZik6Zik7cmV0dXJuIGd9ZnVuY3Rpb24gRWEoYSxiLGYpe2E9e2xlZnQ6Yi5sZWZ0K2FbM10ud2lkdGgsdG9wOmIudG9wK2FbMF0ud2lkdGgsd2lkdGg6Yi53aWR0aC0oYVsxXS53aWR0aCthWzNdLndpZHRoKSxoZWlnaHQ6Yi5oZWlnaHQtKGFbMF0ud2lkdGgrYVsyXS53aWR0aCl9O2YmJihhPUUoYSxmKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRmEoYSxiKXthPWIubWF0cml4P00uT2Zmc2V0Qm91bmRzKGEpOgpNLkJvdW5kcyhhKTtiLm9yaWdpblswXSs9YS5sZWZ0O2Iub3JpZ2luWzFdKz1hLnRvcDtyZXR1cm4gYX1mdW5jdGlvbiB1YShhLGIsZil7dmFyIGc9Q2EoYSxiKSxoPUZhKGEsZykscjtiPURhKGEsYixoLGcpO2c9Yi5ib3JkZXJzO3ZhciB3PWIuY3R4LG09RWEoZyxoLGIuY2xpcCksRD15KGEsaCxnKSx1PXZhLnRlc3QoYS5ub2RlTmFtZSk\/IiNlZmVmZWYiOkMoYSwiYmFja2dyb3VuZENvbG9yIik7QSh3LEQuY2xpcCk7dy5zYXZlKCk7dy5jbGlwKCk7MDxtLmhlaWdodCYmMDxtLndpZHRoJiYhZj8obih3LGgubGVmdCxoLnRvcCxoLndpZHRoLGguaGVpZ2h0LHUpLEFhKGEsbSx3KSk6ZiYmKGIuYmFja2dyb3VuZENvbG9yPXUpO3cucmVzdG9yZSgpO0QuYm9yZGVycy5mb3JFYWNoKGZ1bmN0aW9uKEgpe3ZhciBMPUguYXJncztIPUguY29sb3I7InRyYW5zcGFyZW50IiE9PUgmJih3LnNldFZhcmlhYmxlKCJmaWxsU3R5bGUiLEgpLEEodyxMKSx3LmZpbGwoKSl9KTtzd2l0Y2goYS5ub2RlTmFtZSl7Y2FzZSAiSU1HIjoocj0KeihhLmdldEF0dHJpYnV0ZSgic3JjIikpKT9LKHcsYSxyLGgsZyk6TS5sb2coImh0bWwyY2FudmFzOiBFcnJvciBsb2FkaW5nIDxpbWc+OiIrYS5nZXRBdHRyaWJ1dGUoInNyYyIpKTticmVhaztjYXNlICJJTlBVVCI6L14odGV4dHx1cmx8ZW1haWx8c3VibWl0fGJ1dHRvbnxyZXNldCkkLy50ZXN0KGEudHlwZSkmJjA8KGEudmFsdWV8fGEucGxhY2Vob2xkZXJ8fCIiKS5sZW5ndGgmJkIoYSxoLGIpO2JyZWFrO2Nhc2UgIlRFWFRBUkVBIjowPChhLnZhbHVlfHxhLnBsYWNlaG9sZGVyfHwiIikubGVuZ3RoJiZCKGEsaCxiKTticmVhaztjYXNlICJTRUxFQ1QiOjA8KGEub3B0aW9uc3x8YS5wbGFjZWhvbGRlcnx8IiIpLmxlbmd0aCYmQihhLGgsYik7YnJlYWs7Y2FzZSAiTEkiOkkoYSxiLG0pO2JyZWFrO2Nhc2UgIkNBTlZBUyI6Syh3LGEsYSxoLGcpfXJldHVybiBifWZ1bmN0aW9uIEdhKGEpe3JldHVybiJub25lIiE9PUMoYSwiZGlzcGxheSIpJiYiaGlkZGVuIiE9PUMoYSwidmlzaWJpbGl0eSIpJiYKIWEuaGFzQXR0cmlidXRlKCJkYXRhLWh0bWwyY2FudmFzLWlnbm9yZSIpfWZ1bmN0aW9uIEhhKGEsYixmKXtmfHwoZj1mdW5jdGlvbigpe30pO2lmKEdhKGEpJiYoYj11YShhLGIsITEpfHxiLCF2YS50ZXN0KGEubm9kZU5hbWUpKSlyZXR1cm4gd2EoYSxiLGYpO2YoKX1mdW5jdGlvbiB3YShhLGIsZil7ZnVuY3Rpb24gZyhtKXttLm5vZGVUeXBlPT09bS5FTEVNRU5UX05PREU\/SGEobSxiLGgpOihtLm5vZGVUeXBlPT09bS5URVhUX05PREUmJmUoYSxtLGIpLGgoKSl9ZnVuY3Rpb24gaChtKXswPj0tLXcmJihNLmxvZygiZmluaXNoZWQgcmVuZGVyaW5nICIrci5sZW5ndGgrIiBjaGlsZHJlbi4iKSxmKCkpfXZhciByPU0uQ2hpbGRyZW4oYSksdz1yLmxlbmd0aCsxO2goKTtwLmFzeW5jP3IuZm9yRWFjaChmdW5jdGlvbihtKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhtKX0sMCl9KTpyLmZvckVhY2goZyl9Ti5zY3JvbGwoMCwwKTt2YXIgaWE9cC5lbGVtZW50cz09PVE\/Ui5ib2R5OnAuZWxlbWVudHNbMF0sClA9aWEub3duZXJEb2N1bWVudCxNPXguVXRpbCx6YT1NLlN1cHBvcnQocCxQKSx2YT1uZXcgUmVnRXhwKCIoIitwLmlnbm9yZUVsZW1lbnRzKyIpIiksbWE9UC5ib2R5LEM9TS5nZXRDU1MscGE9UC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3BhLmlubmVySFRNTD0nLl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQ6YmVmb3JlIHsgY29udGVudDogIiIgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Ll9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQ6YWZ0ZXIgeyBjb250ZW50OiAiIiAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0nO21hLmFwcGVuZENoaWxkKHBhKTtkPWR8fHt9OyhmdW5jdGlvbigpe3ZhciBhPUMoUi5kb2N1bWVudEVsZW1lbnQsImJhY2tncm91bmRDb2xvciIpLGI9TS5pc1RyYW5zcGFyZW50KGEpJiZpYT09PVIuYm9keSxmPXVhKGlhLG51bGwsITEsYik7ayhpYSk7d2EoaWEsZixmdW5jdGlvbigpe2ImJgooYT1mLmJhY2tncm91bmRDb2xvcik7bWEucmVtb3ZlQ2hpbGQocGEpO2Zvcih2YXIgZz1SLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1lbGVtZW50Iik7Zy5sZW5ndGg7KWdbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnWzBdKTtmb3IoZz1SLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQiKTtnLmxlbmd0aDspe3ZhciBoPWdbMF07aC5jbGFzc0xpc3Q\/aC5jbGFzc0xpc3QucmVtb3ZlKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik6aC5jbGFzc05hbWU9aC5jbGFzc05hbWUucmVwbGFjZSgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIsIiIpLnRyaW0oKX1NLmxvZygiRG9uZSBwYXJzaW5nLCBtb3ZpbmcgdG8gUmVuZGVyLiIpO3Eoe2JhY2tncm91bmRDb2xvcjphLHN0YWNrOmZ9KX0pfSkoKX07eC5QcmVsb2FkPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHAoKXtlLmxvZygiaHRtbDJjYW52YXM6IHN0YXJ0OiBpbWFnZXM6ICIrCmwubnVtTG9hZGVkKyIgLyAiK2wubnVtVG90YWwrIiAoZmFpbGVkOiAiK2wubnVtRmFpbGVkKyIpIik7IWwuZmlyc3RSdW4mJmwubnVtTG9hZGVkPj1sLm51bVRvdGFsJiYoZS5sb2coIkZpbmlzaGVkIGxvYWRpbmcgaW1hZ2VzOiAjICIrbC5udW1Ub3RhbCsiIChmYWlsZWQ6ICIrbC5udW1GYWlsZWQrIikiKSwiZnVuY3Rpb24iPT09dHlwZW9mIGQuY29tcGxldGUmJmQuY29tcGxldGUobCkpfWZ1bmN0aW9uIHEoeSxBLEIpe3ZhciBVPWQucHJveHk7Ry5ocmVmPXk7eT1HLmhyZWY7dmFyIGFhPSJodG1sMmNhbnZhc18iK0krKztCLmNhbGxiYWNrbmFtZT1hYTtVPS0xPFUuaW5kZXhPZigiPyIpP1UrIiYiOlUrIj8iO1UrPSJ1cmw9IitlbmNvZGVVUklDb21wb25lbnQoeSkrIiZjYWxsYmFjaz0iK2FhO3ZhciBkYT1FLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO05bYWFdPWZ1bmN0aW9uKGhhKXsiZXJyb3I6Ij09PWhhLnN1YnN0cmluZygwLDYpPyhCLnN1Y2NlZWRlZD0hMSxsLm51bUxvYWRlZCsrLApsLm51bUZhaWxlZCsrLHAoKSk6KHYoQSxCKSxBLnNyYz1oYSk7TlthYV09UTt0cnl7ZGVsZXRlIE5bYWFdfWNhdGNoKG5hKXt9ZGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkYSk7ZGE9bnVsbDtkZWxldGUgQi5zY3JpcHQ7ZGVsZXRlIEIuY2FsbGJhY2tuYW1lfTtkYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTtkYS5zZXRBdHRyaWJ1dGUoInNyYyIsVSk7Qi5zY3JpcHQ9ZGE7Ti5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRhKX1mdW5jdGlvbiBrKHksQSl7QT1OLmdldENvbXB1dGVkU3R5bGUoeSxBKTt2YXIgQj1BLmNvbnRlbnQ7InVybCI9PT1CLnN1YnN0cigwLDMpJiZiYS5sb2FkSW1hZ2UoeC5VdGlsLnBhcnNlQmFja2dyb3VuZEltYWdlKEIpWzBdLmFyZ3NbMF0pO24oQS5iYWNrZ3JvdW5kSW1hZ2UseSl9ZnVuY3Rpb24gYyh5KXtyZXR1cm4geSYmeS5tZXRob2QmJnkuYXJncyYmMDx5LmFyZ3MubGVuZ3RofWZ1bmN0aW9uIG4oeSxBKXt2YXIgQjsKeC5VdGlsLnBhcnNlQmFja2dyb3VuZEltYWdlKHkpLmZpbHRlcihjKS5mb3JFYWNoKGZ1bmN0aW9uKFUpe2lmKCJ1cmwiPT09VS5tZXRob2QpYmEubG9hZEltYWdlKFUuYXJnc1swXSk7ZWxzZSBpZihVLm1ldGhvZC5tYXRjaCgvXC0\/Z3JhZGllbnQkLykpe0I9PT1RJiYoQj14LlV0aWwuQm91bmRzKEEpKTtVPVUudmFsdWU7dmFyIGFhPXguR2VuZXJhdGUuR3JhZGllbnQoVSxCKTthYSE9PVEmJihsW1VdPXtpbWc6YWEsc3VjY2VlZGVkOiEwfSxsLm51bVRvdGFsKyssbC5udW1Mb2FkZWQrKyxwKCkpfX0pfWZ1bmN0aW9uIHQoeSl7dmFyIEE9ITE7dHJ5e2lmKG51bGwhPT15LmdldEF0dHJpYnV0ZSgiaGlkZGVuIil8fCJub25lIj09PWdldENvbXB1dGVkU3R5bGUoeSkuZ2V0UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpKXJldHVybjtlLkNoaWxkcmVuKHkpLmZvckVhY2godCl9Y2F0Y2goQil7fXRyeXtBPXkubm9kZVR5cGV9Y2F0Y2goQil7QT0hMSxlLmxvZygiaHRtbDJjYW52YXM6IGZhaWxlZCB0byBhY2Nlc3Mgc29tZSBlbGVtZW50J3Mgbm9kZVR5cGUgLSBFeGNlcHRpb246ICIrCkIubWVzc2FnZSl9aWYoMT09PUF8fEE9PT1RKXtrKHksIjpiZWZvcmUiKTtrKHksIjphZnRlciIpO3RyeXtuKGUuZ2V0Q1NTKHksImJhY2tncm91bmRJbWFnZSIpLHkpfWNhdGNoKEIpe2UubG9nKCJodG1sMmNhbnZhczogZmFpbGVkIHRvIGdldCBiYWNrZ3JvdW5kLWltYWdlIC0gRXhjZXB0aW9uOiAiK0IubWVzc2FnZSl9bih5KX19ZnVuY3Rpb24gdih5LEEpe3kub25sb2FkPWZ1bmN0aW9uKCl7QS50aW1lciE9PVEmJk4uY2xlYXJUaW1lb3V0KEEudGltZXIpO2wubnVtTG9hZGVkKys7QS5zdWNjZWVkZWQ9ITA7eS5vbmVycm9yPXkub25sb2FkPW51bGw7cCgpfTt5Lm9uZXJyb3I9ZnVuY3Rpb24oKXtpZigiYW5vbnltb3VzIj09PXkuY3Jvc3NPcmlnaW4mJihOLmNsZWFyVGltZW91dChBLnRpbWVyKSxkLnByb3h5KSl7dmFyIEI9eS5zcmM7eT1uZXcgSW1hZ2U7QS5pbWc9eTt5LnNyYz1CO3EoeS5zcmMseSxBKX1lbHNlIGwubnVtTG9hZGVkKyssbC5udW1GYWlsZWQrKyxBLnN1Y2NlZWRlZD0KITEseS5vbmVycm9yPXkub25sb2FkPW51bGwscCgpfX12YXIgbD17bnVtTG9hZGVkOjAsbnVtRmFpbGVkOjAsbnVtVG90YWw6MCxjbGVhbnVwRG9uZTohMX0sZT14LlV0aWwsST0wLHo9ZC5lbGVtZW50c1swXXx8Ui5ib2R5LEU9ei5vd25lckRvY3VtZW50LEs9ei5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIiksSj1LLmxlbmd0aCxHPUUuY3JlYXRlRWxlbWVudCgiYSIpLE89KG5ldyBJbWFnZSkuY3Jvc3NPcmlnaW4hPT1RLFQ7Ry5ocmVmPU4ubG9jYXRpb24uaHJlZjt2YXIgVz1HLnByb3RvY29sK0cuaG9zdCxiYT17bG9hZEltYWdlOmZ1bmN0aW9uKHkpe2lmKHkmJmxbeV09PT1RKXt2YXIgQT1uZXcgSW1hZ2U7aWYoeS5tYXRjaCgvZGF0YTppbWFnZVwvLio7YmFzZTY0LC9pKSl7QS5zcmM9eS5yZXBsYWNlKC91cmxcKFsnIl17MCx9fFsnIl17MCx9XCkkL2lnLCIiKTt2YXIgQj1sW3ldPXtpbWc6QX07bC5udW1Ub3RhbCsrO3YoQSxCKX1lbHNlIEcuaHJlZj15LEcuaHJlZj1HLmhyZWYsCkcucHJvdG9jb2wrRy5ob3N0PT09V3x8ITA9PT1kLmFsbG93VGFpbnQ\/KEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyx2KEEsQiksQS5zcmM9eSk6TyYmIWQuYWxsb3dUYWludCYmZC51c2VDT1JTPyhBLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyx2KEEsQiksQS5zcmM9eSk6ZC5wcm94eSYmKEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyxxKHksQSxCKSl9fSxjbGVhbnVwRE9NOmZ1bmN0aW9uKHkpe3ZhciBBO2lmKCFsLmNsZWFudXBEb25lKXt5JiYic3RyaW5nIj09PXR5cGVvZiB5P2UubG9nKCJodG1sMmNhbnZhczogQ2xlYW51cCBiZWNhdXNlOiAiK3kpOmUubG9nKCJodG1sMmNhbnZhczogQ2xlYW51cCBhZnRlciB0aW1lb3V0OiAiK2QudGltZW91dCsiIG1zLiIpO2ZvcihBIGluIGwpaWYobC5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIEI9bFtBXTtpZigib2JqZWN0Ij09PXR5cGVvZiBCJiZCLmNhbGxiYWNrbmFtZSYmQi5zdWNjZWVkZWQ9PT0KUSl7TltCLmNhbGxiYWNrbmFtZV09UTt0cnl7ZGVsZXRlIE5bQi5jYWxsYmFja25hbWVdfWNhdGNoKFUpe31CLnNjcmlwdCYmQi5zY3JpcHQucGFyZW50Tm9kZSYmKEIuc2NyaXB0LnNldEF0dHJpYnV0ZSgic3JjIiwiYWJvdXQ6YmxhbmsiKSxCLnNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEIuc2NyaXB0KSk7bC5udW1Mb2FkZWQrKztsLm51bUZhaWxlZCsrO2UubG9nKCJodG1sMmNhbnZhczogQ2xlYW5lZCB1cCBmYWlsZWQgaW1nOiAnIitBKyInIFN0ZXBzOiAiK2wubnVtTG9hZGVkKyIgLyAiK2wubnVtVG90YWwpfX1OLnN0b3AhPT1RP04uc3RvcCgpOlIuZXhlY0NvbW1hbmQhPT1RJiZSLmV4ZWNDb21tYW5kKCJTdG9wIiwhMSk7Ui5jbG9zZSE9PVEmJlIuY2xvc2UoKTtsLmNsZWFudXBEb25lPSEwO3kmJiJzdHJpbmciPT09dHlwZW9mIHl8fHAoKX19LHJlbmRlcmluZ0RvbmU6ZnVuY3Rpb24oKXtUJiZOLmNsZWFyVGltZW91dChUKX19OzA8ZC50aW1lb3V0JiYoVD1OLnNldFRpbWVvdXQoYmEuY2xlYW51cERPTSwKZC50aW1lb3V0KSk7ZS5sb2coImh0bWwyY2FudmFzOiBQcmVsb2FkIHN0YXJ0czogZmluZGluZyBiYWNrZ3JvdW5kLWltYWdlcyIpO2wuZmlyc3RSdW49ITA7dCh6KTtlLmxvZygiaHRtbDJjYW52YXM6IFByZWxvYWQ6IEZpbmRpbmcgaW1hZ2VzIik7Zm9yKHo9MDt6PEo7eis9MSliYS5sb2FkSW1hZ2UoS1t6XS5nZXRBdHRyaWJ1dGUoInNyYyIpKTtsLmZpcnN0UnVuPSExO2UubG9nKCJodG1sMmNhbnZhczogUHJlbG9hZDogRG9uZS4iKTtsLm51bVRvdGFsPT09bC5udW1Mb2FkZWQmJnAoKTtyZXR1cm4gYmF9O3guUmVuZGVyZXI9ZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiBxKGssYyl7cmV0dXJuImNoaWxkcmVuIj09PWs\/LTE6ImNoaWxkcmVuIj09PWM\/MTprLWN9cmV0dXJuIGZ1bmN0aW9uKGspe2lmKCJzdHJpbmciPT09dHlwZW9mIHAucmVuZGVyZXImJnguUmVuZGVyZXJba10hPT1RKWs9eC5SZW5kZXJlcltrXShwKTtlbHNlIGlmKCJmdW5jdGlvbiI9PT10eXBlb2YgaylrPWsocCk7CmVsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gcmVuZGVyZXIiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGspdGhyb3cgRXJyb3IoIkludmFsaWQgcmVuZGVyZXIgZGVmaW5lZCIpO3JldHVybiBrfShwLnJlbmRlcmVyKShkLHAsUixmdW5jdGlvbihrKXtmdW5jdGlvbiBjKHQpe09iamVjdC5rZXlzKHQpLnNvcnQocSkuZm9yRWFjaChmdW5jdGlvbih2KXt2YXIgbD1bXSxlPVtdLEk9W10sej1bXTt0W3ZdLmZvckVhY2goZnVuY3Rpb24oRSl7RS5ub2RlLnpJbmRleC5pc1Bvc2l0aW9uZWR8fDE+RS5ub2RlLnpJbmRleC5vcGFjaXR5P0kucHVzaChFKTpFLm5vZGUuekluZGV4LmlzRmxvYXRlZD9lLnB1c2goRSk6bC5wdXNoKEUpfSk7KGZ1bmN0aW9uIEooSyl7Sy5mb3JFYWNoKGZ1bmN0aW9uKEcpe3oucHVzaChHKTtHLmNoaWxkcmVuJiZKKEcuY2hpbGRyZW4pfSl9KShsLmNvbmNhdChlLEkpKTt6LmZvckVhY2goZnVuY3Rpb24oSyl7Sy5jb250ZXh0P2MoSy5jb250ZXh0KTpuLnB1c2goSy5ub2RlKX0pfSl9CnZhciBuPVtdO2s9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gdihlLEkseil7dmFyIEU9ImF1dG8iPT09SS56SW5kZXguemluZGV4PzA6TnVtYmVyKEkuekluZGV4LnppbmRleCksSz1lLEo9SS56SW5kZXguaXNQb3NpdGlvbmVkLEc9SS56SW5kZXguaXNGbG9hdGVkLE89e25vZGU6SX0sVD16O2lmKEkuekluZGV4Lm93blN0YWNraW5nKUs9Ty5jb250ZXh0PXtjaGlsZHJlbjpbe25vZGU6SSxjaGlsZHJlbjpbXX1dfSxUPVE7ZWxzZSBpZihKfHxHKVQ9Ty5jaGlsZHJlbj1bXTswPT09RSYmej96LnB1c2goTyk6KGVbRV18fChlW0VdPVtdKSxlW0VdLnB1c2goTykpO0kuekluZGV4LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oVyl7dihLLFcsVCl9KX12YXIgbD17fTt2KGwsdCk7cmV0dXJuIGx9KGspO2Moayk7cmV0dXJuIG59KGQuc3RhY2spLHgpfTt4LlV0aWwuU3VwcG9ydD1mdW5jdGlvbihkLHApe2Z1bmN0aW9uIHEoKXt2YXIgaz1uZXcgSW1hZ2UsYz1wLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLApuPWMuZ2V0Q29udGV4dD09PVE\/ITE6Yy5nZXRDb250ZXh0KCIyZCIpO2lmKCExPT09bilyZXR1cm4hMTtjLndpZHRoPWMuaGVpZ2h0PTEwO2suc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGZvcmVpZ25PYmplY3Qgd2lkdGg9JzEwJyBoZWlnaHQ9JzEwJz48ZGl2IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyBzdHlsZT0nd2lkdGg6MTA7aGVpZ2h0OjEwOyc+c3VwPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjwvc3ZnPiI7dHJ5e24uZHJhd0ltYWdlKGssMCwwKSxjLnRvRGF0YVVSTCgpfWNhdGNoKHQpe3JldHVybiExfXguVXRpbC5sb2coImh0bWwyY2FudmFzOiBQYXJzZTogU1ZHIHBvd2VyZWQgcmVuZGVyaW5nIGF2YWlsYWJsZSIpO3JldHVybiEwfXJldHVybntyYW5nZUJvdW5kczpmdW5jdGlvbigpe3ZhciBrPSExO2lmKHAuY3JlYXRlUmFuZ2Upe3ZhciBjPQpwLmNyZWF0ZVJhbmdlKCk7aWYoYy5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBuPXAuY3JlYXRlRWxlbWVudCgiYm91bmR0ZXN0Iik7bi5zdHlsZS5oZWlnaHQ9IjEyM3B4IjtuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtwLmJvZHkuYXBwZW5kQ2hpbGQobik7Yy5zZWxlY3ROb2RlKG4pO2M9Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjPWMuaGVpZ2h0OzEyMz09PWMmJihrPSEwKTtwLmJvZHkucmVtb3ZlQ2hpbGQobil9fXJldHVybiBrfSgpLHN2Z1JlbmRlcmluZzpkLnN2Z1JlbmRlcmluZyYmcSgpfX07Ti5odG1sMmNhbnZhcz1mdW5jdGlvbihkLHApe2Q9ZC5sZW5ndGg\/ZDpbZF07dmFyIHEsaz17bG9nZ2luZzohMSxlbGVtZW50czpkLGJhY2tncm91bmQ6IiNmZmYiLHByb3h5Om51bGwsdGltZW91dDowLHVzZUNPUlM6ITEsYWxsb3dUYWludDohMSxzdmdSZW5kZXJpbmc6ITEsaWdub3JlRWxlbWVudHM6IklGUkFNRXxPQkpFQ1R8UEFSQU0iLHVzZU92ZXJmbG93OiEwLGxldHRlclJlbmRlcmluZzohMSwKY2hpbmVzZTohMSxhc3luYzohMSx3aWR0aDpudWxsLGhlaWdodDpudWxsLHRhaW50VGVzdDohMCxyZW5kZXJlcjoiQ2FudmFzIn07az14LlV0aWwuRXh0ZW5kKHAsayk7eC5sb2dnaW5nPWsubG9nZ2luZztrLmNvbXBsZXRlPWZ1bmN0aW9uKGMpeyJmdW5jdGlvbiI9PT10eXBlb2Ygay5vbnByZWxvYWRlZCYmITE9PT1rLm9ucHJlbG9hZGVkKGMpfHx4LlBhcnNlKGMsayxmdW5jdGlvbihuKXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGsub25wYXJzZWR8fCExIT09ay5vbnBhcnNlZChuKSlpZihxPXguUmVuZGVyZXIobixrKSwiZnVuY3Rpb24iPT09dHlwZW9mIGsub25yZW5kZXJlZClrLm9ucmVuZGVyZWQocSl9KX07Ti5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eC5QcmVsb2FkKGspfSwwKTtyZXR1cm57cmVuZGVyOmZ1bmN0aW9uKGMsbil7cmV0dXJuIHguUmVuZGVyZXIoYyx4LlV0aWwuRXh0ZW5kKG4saykpfSxwYXJzZTpmdW5jdGlvbihjLG4pe3JldHVybiB4LlBhcnNlKGMseC5VdGlsLkV4dGVuZChuLAprKSl9LHByZWxvYWQ6ZnVuY3Rpb24oYyl7cmV0dXJuIHguUHJlbG9hZCh4LlV0aWwuRXh0ZW5kKGMsaykpfSxsb2c6eC5VdGlsLmxvZ319O04uaHRtbDJjYW52YXMubG9nPXguVXRpbC5sb2c7Ti5odG1sMmNhbnZhcy5SZW5kZXJlcj17Q2FudmFzOlF9O3guUmVuZGVyZXIuQ2FudmFzPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHAodixsKXt2LmJlZ2luUGF0aCgpO2wuZm9yRWFjaChmdW5jdGlvbihlKXt2W2UubmFtZV0uYXBwbHkodixlLmFyZ3VtZW50cyl9KTt2LmNsb3NlUGF0aCgpfWQ9ZHx8e307dmFyIHE9W10saz1SLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGM9ay5nZXRDb250ZXh0KCIyZCIpLG49eC5VdGlsLHQ9ZC5jYW52YXN8fFIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGZ1bmN0aW9uKHYsbCxlLEkseil7dmFyIEU9dC5nZXRDb250ZXh0KCIyZCIpLEs9di5zdGFjazt0LndpZHRoPXQuc3R5bGUud2lkdGg9bC53aWR0aHx8Sy5jdHgud2lkdGg7dC5oZWlnaHQ9dC5zdHlsZS5oZWlnaHQ9CmwuaGVpZ2h0fHxLLmN0eC5oZWlnaHQ7Sz1FLmZpbGxTdHlsZTtFLmZpbGxTdHlsZT1uLmlzVHJhbnNwYXJlbnQodi5iYWNrZ3JvdW5kQ29sb3IpJiZsLmJhY2tncm91bmQhPT1RP2wuYmFja2dyb3VuZDp2LmJhY2tncm91bmRDb2xvcjtFLmZpbGxSZWN0KDAsMCx0LndpZHRoLHQuaGVpZ2h0KTtFLmZpbGxTdHlsZT1LO0kuZm9yRWFjaChmdW5jdGlvbihKKXtFLnRleHRCYXNlbGluZT0iYm90dG9tIjtFLnNhdmUoKTtKLnRyYW5zZm9ybS5tYXRyaXgmJihFLnRyYW5zbGF0ZShKLnRyYW5zZm9ybS5vcmlnaW5bMF0sSi50cmFuc2Zvcm0ub3JpZ2luWzFdKSxFLnRyYW5zZm9ybS5hcHBseShFLEoudHJhbnNmb3JtLm1hdHJpeCksRS50cmFuc2xhdGUoLUoudHJhbnNmb3JtLm9yaWdpblswXSwtSi50cmFuc2Zvcm0ub3JpZ2luWzFdKSk7Si5jbGlwJiYoRS5iZWdpblBhdGgoKSxFLnJlY3QoSi5jbGlwLmxlZnQsSi5jbGlwLnRvcCxKLmNsaXAud2lkdGgsSi5jbGlwLmhlaWdodCksRS5jbGlwKCkpOwpKLmN0eC5zdG9yYWdlJiZKLmN0eC5zdG9yYWdlLmZvckVhY2goZnVuY3Rpb24oRyl7dmFyIE89RTtzd2l0Y2goRy50eXBlKXtjYXNlICJ2YXJpYWJsZSI6T1tHLm5hbWVdPUcuYXJndW1lbnRzO2JyZWFrO2Nhc2UgImZ1bmN0aW9uIjpzd2l0Y2goRy5uYW1lKXtjYXNlICJjcmVhdGVQYXR0ZXJuIjppZigwPEcuYXJndW1lbnRzWzBdLndpZHRoJiYwPEcuYXJndW1lbnRzWzBdLmhlaWdodCl0cnl7Ty5maWxsU3R5bGU9Ty5jcmVhdGVQYXR0ZXJuKEcuYXJndW1lbnRzWzBdLCJyZXBlYXQiKX1jYXRjaChXKXtuLmxvZygiaHRtbDJjYW52YXM6IFJlbmRlcmVyOiBFcnJvciBjcmVhdGluZyBwYXR0ZXJuIixXLm1lc3NhZ2UpfWJyZWFrO2Nhc2UgImRyYXdTaGFwZSI6cChPLEcuYXJndW1lbnRzKTticmVhaztjYXNlICJkcmF3SW1hZ2UiOmlmKDA8Ry5hcmd1bWVudHNbOF0mJjA8Ry5hcmd1bWVudHNbN10pe3ZhciBUO2lmKCEoVD0hZC50YWludFRlc3QpJiYoVD1kLnRhaW50VGVzdCkpYTp7aWYoLTE9PT0KcS5pbmRleE9mKEcuYXJndW1lbnRzWzBdLnNyYykpe2MuZHJhd0ltYWdlKEcuYXJndW1lbnRzWzBdLDAsMCk7dHJ5e2MuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpfWNhdGNoKFcpe2s9Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtjPWsuZ2V0Q29udGV4dCgiMmQiKTtUPSExO2JyZWFrIGF9cS5wdXNoKEcuYXJndW1lbnRzWzBdLnNyYyl9VD0hMH1UJiZPLmRyYXdJbWFnZS5hcHBseShPLEcuYXJndW1lbnRzKX1icmVhaztkZWZhdWx0Ok9bRy5uYW1lXS5hcHBseShPLEcuYXJndW1lbnRzKX19fSk7RS5yZXN0b3JlKCl9KTtuLmxvZygiaHRtbDJjYW52YXM6IFJlbmRlcmVyOiBDYW52YXMgcmVuZGVyZXIgZG9uZSAtIHJldHVybmluZyBjYW52YXMgb2JqIik7cmV0dXJuIDE9PT1sLmVsZW1lbnRzLmxlbmd0aCYmIm9iamVjdCI9PT10eXBlb2YgbC5lbGVtZW50c1swXSYmIkJPRFkiIT09bC5lbGVtZW50c1swXS5ub2RlTmFtZT8odj16LlV0aWwuQm91bmRzKGwuZWxlbWVudHNbMF0pLGU9ZS5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwKZS53aWR0aD1NYXRoLmNlaWwodi53aWR0aCksZS5oZWlnaHQ9TWF0aC5jZWlsKHYuaGVpZ2h0KSxFPWUuZ2V0Q29udGV4dCgiMmQiKSxFLmRyYXdJbWFnZSh0LHYubGVmdCx2LnRvcCx2LndpZHRoLHYuaGVpZ2h0LDAsMCx2LndpZHRoLHYuaGVpZ2h0KSx0PW51bGwsZSk6dH19fSkod2luZG93LGRvY3VtZW50KTsKLyoqIC9qcy9kMmN0Y2svdXByb2ZpbGUuZmluYWwubWluLmpzICoqLwphY3RpdmVVc2VyUHJvZmlsZU1uZz17b25yZWFkeTpudWxsLG9ubm90Zm91bmQ6bnVsbCxkaXNhYmxlZDohMSx1aWQ6bnVsbCxhY3RpdmVTdGVwOjAsc3dmU3RvcmU6ITEscmVnaXN0ZXJlZFBhZ2VWaWV3czpudWxsLHJlZ2lzdGVyZWRFdmVudHM6bnVsbCxzZXNzaW9uaWQ6bnVsbCxyZWdpc3RlcmVkQ2FsbGJhY2tzOm51bGwscmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M6bnVsbCxwYWdlVmlld0NvdW50Om51bGwsX19wcm9wZXJ0aWVzOm51bGwsanF1ZXJ5QWN0aXZlOiEwLGlzRDJDU2l0ZTohMCxfX3Jlc2V0Vjo5LHJlc2V0U2Vjb25kUGFzczohMSxfX291dHB1dERpdk1zZzohMSxfX291dHB1dENvbnNvbGVNc2c6ITEsYWpheE1uZzp7YXN5bmM6ITAsX2xhc3RYOm51bGwseDpmdW5jdGlvbigpe3RyeXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdClyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O2Zvcih2YXIgYT1bIk1TWE1MMi5YbWxIdHRwLjUuMCIsCgkJCSJNU1hNTDIuWG1sSHR0cC40LjAiLCJNU1hNTDIuWG1sSHR0cC4zLjAiLCJNU1hNTDIuWG1sSHR0cC4yLjAiLCJNaWNyb3NvZnQuWG1sSHR0cCJdLGIsZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KGFbZF0pO2JyZWFrfWNhdGNoKGMpe319Y2F0Y2goYyl7fXJldHVybiBifSxfc2VuZDpmdW5jdGlvbihhLGIsZCxjLGUsaCl7dHJ5e3ZhciBmPXRoaXMueCgpO3RoaXMuX2xhc3RYPWY7Zi5vcGVuKGQsYSxlKTt0cnl7Zi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24ocSl7InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9KX1jYXRjaChxKXt9Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1mLnJlYWR5U3RhdGU\/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\/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsd2luZG93Ll9fX2QyY0NUS01ldGhvZCk6Cglkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJjb21wbGV0ZSI9PWRvY3VtZW50LnJlYWR5U3RhdGUmJndpbmRvdy5fX19kMmNDVEtNZXRob2QoKX0pfWNhdGNoKGEpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiNS4gVW5leHBlY3RlZCBlcnJvciBvY2N1cmVkIGxvYWRpbmcgdXByb2ZpbGUuZmluYWwuanMuIEVycm9yOiAiK2EubWVzc2FnZSl9OwovKiogL2pzL3BvcHVwLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMToyNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfcG9wdXBqc19jX29uPSIyMDI0LTAzLTE1IDEwOjMwOjEwIjsidXNlIHN0cmljdCI7dmFyIGFjdGl2YXRlZFBvcHVwRGl2SUQ9IiIsbWFpblBvcHVwRGl2SUQ9IiIscG9wdXBPbkFmdGVyU3VibWl0Q2xvc2U9ITEsaXNQb3B1cEluaXRpYWxpemVkPSExOwpmdW5jdGlvbiBzaG93UG9wdXBXaWRnZXQoYSxiPSEwKXt2YXIgYz0hMT09PWI\/ITE6ITA7aWYoaXNTbXNUZXh0VXNGb3JtKCkmJmIpcmV0dXJuIHNob3dTbXNUZXh0VXNGb3JtKGMpLCExO2lmKCExPT09aXNQb3B1cEluaXRpYWxpemVkKXJldHVybiExO2E9YT9hOnt9O3NldHRpbmdzPXtzaG93TWFpblBvcHVwOiExLGRvTm90UmVkaXJlY3Q6ITEsZXZlbnRUeXBlOiJjbGljayIsZGVsYXk6ITF9OyQuZXh0ZW5kKHNldHRpbmdzLGEpO2E9c2V0dGluZ3MuZG9Ob3RSZWRpcmVjdDtiPXNldHRpbmdzLmV2ZW50VHlwZTtjPXNldHRpbmdzLmRlbGF5O3ZhciBkPTA8YWN0aXZhdGVkUG9wdXBEaXZJRC5sZW5ndGg\/YWN0aXZhdGVkUG9wdXBEaXZJRDohMTshMD09PXNldHRpbmdzLnNob3dNYWluUG9wdXAmJjA8bWFpblBvcHVwRGl2SUQubGVuZ3RoJiYoZD1tYWluUG9wdXBEaXZJRCk7aWYoZCYmMDxkLmxlbmd0aCkkKCIjIitkKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoYikub3BlbihjKTtlbHNlIGlmKCJmdW5jdGlvbiI9PT0KdHlwZW9mIHNob3dQb3B1cFdpZGdldE9MRClzaG93UG9wdXBXaWRnZXRPTEQoITEpO2Vsc2UgaWYoITE9PT1hKTA8JCgiI3Byb21vU2VjdGlvbm5hYmxlZCIpLmxlbmd0aCYmIjAiIT0kKCIjcHJvbW9TZWN0aW9ubmFibGVkIikudmFsKCk\/d2luZG93LmxvY2F0aW9uLmhyZWY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii9vdXItcHJvbW90aW9ucy5odG1sIjoiL3Byb21vdGlvbnMuaHRtbCI6d2luZG93LmxvY2F0aW9uLmhyZWY9Ii8iO2Vsc2UgcmV0dXJuITF9ZnVuY3Rpb24gcG9wdXBQb3N0TWVzc2FnZU9uQXV0b2F1YmFpbmUoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHBhcmVudCl9LDFFMyl9CmZ1bmN0aW9uIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKGEsYixjLGQsZSxmLGcpe2lzUG9wdXBJbml0aWFsaXplZD0hMDtjJiYobWFpblBvcHVwRGl2SUQ9ZitkKTtyZXR1cm4gYj09YSYmY3x8InJlc2V0Ij09YiYmYz8oYWN0aXZhdGVkUG9wdXBEaXZJRD1mK2QsInVzZWRjYXJzLmh0bWwiIT1lfHxnPyJuZXdjYXJzLmh0bWwiIT1lfHxnPyEwOihjb25zb2xlLmxvZygicG9wdXAuanMgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUgLSBuZXdjYXJzIHJldHVybnMgZmFsc2UuIFBvcHVwIG1heSBiZSBjYW5jZWxsZWQuIiksITEpOih0aGlzLmNvbnNvbGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygicG9wdXAuanMgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUgLSB1c2VkY2FycyAgcmV0dXJucyBmYWxzZS4gUG9wdXAgbWF5IGJlIGNhbmNlbGxlZC4iKSwhMSkpOiExfQpmdW5jdGlvbiBwb3B1cGNsb3NlUERGKGEsYil7JCgiI3BvcHVwZGl2cGRmIithKS5sZW5ndGgmJiQoIiNwb3B1cGRpdnBkZiIrYSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOyQoIiNwb3B1cGRpZnBkZm1vZGFsIikubGVuZ3RoJiYkKCIjcG9wdXBkaWZwZGZtb2RhbCIpLnJlbW92ZSgpOyQoIiNwb3B1cGRpdnBkZmlmcmFtZSIpLmxlbmd0aCYmJCgiI3BvcHVwZGl2cGRmaWZyYW1lIikucmVtb3ZlKCk7YiYmcG9wdXBQb3N0TWVzc2FnZU9uQXV0b2F1YmFpbmUoKX1mdW5jdGlvbiBwcmludFBERklGcmFtZSgpe3dpbmRvdy5mcmFtZXMucG9wdXBkaXZwZGZpZnJhbWUucHJpbnRNZSgpfWZ1bmN0aW9uIHBvcHVwVHJpbShhKXtyZXR1cm4gYS5yZXBsYWNlKC9eXHMrfFxzKyQvZ20sIiIpfQpmdW5jdGlvbiBzaG93UG9wdXBXaWRnZXRBZGRWZWhpY2xlKGEpeyQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykudmFsKGEpfSk7c2hvd1BvcHVwV2lkZ2V0KCl9ZnVuY3Rpb24gc2hvd1NwZWNpYWxTY2hlZHVsZU9ubG9hZCgpe3ZhciBhPSQoIiNzcGVjaWFsU2NoZWR1bGUiKTswPGEubGVuZ3RoJiZhLnBvcHVwaXplKHtzaG93b25sb2FkOiEwLGNvb2tpZU5hbWU6InNwU2NoZWR1bGVEaXNwbGF5ZWQiLGNvb2tpZUNyZWF0ZToib25PcGVuIixjbG9zZUJ1dHRvbjohMH0pfWZ1bmN0aW9uIHNob3dTcGVjaWFsU2NoZWR1bGUoKXskKCIjc3BlY2lhbFNjaGVkdWxlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93VHJhZGVCb29zdFBvcHVwKCl7JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGlzU21zVGV4dFVzRm9ybSgpe2xldCBhPVsibmV3Y2FyZGV0YWlsLmh0bWwiLCJuZXdjYXJzLmh0bWwiXSxiPVsiY2FyZGV0YWlsLmh0bWwiLCJ1c2VkY2Fycy5odG1sIl07cmV0dXJuIjEiPT0kKCIjRGlzY291bnRQb3B1cE5ld1JlYmF0ZVNob3dUZXh0VXMiKS52YWwoKSYmYS5pbmNsdWRlcygkKCIjUEFHRUlEIikudmFsKCkpfHwiMSI9PSQoIiNEaXNjb3VudFBvcHVwVXNlZFJlYmF0ZVNob3dUZXh0VXMiKS52YWwoKSYmYi5pbmNsdWRlcygkKCIjUEFHRUlEIikudmFsKCkpPyEwOiExfWZ1bmN0aW9uIHNob3dTbXNUZXh0VXNGb3JtKGE9ITApeyQoIiNpc01vYmlsZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmITEhPT1hP2RlYWxlckxpbmVTbXMoKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2xpZGVpdCAjb3Blbi1pdGVtIikuY2hlY2tlZD0hMH07Ci8qKiAvanMvbXVsdGlGb3JtUG9wdXAuanMgKiovCnZhciBfX19kMmNfbXVsdGlGb3JtUG9wdXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjU2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19tdWx0aUZvcm1Qb3B1cGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzQ6MDAiOyJ1c2Ugc3RyaWN0IjsKZnVuY3Rpb24gbXVsdGlGb3JtUG9wdXBJbml0aWFsaXplKGEpe2E9YXx8Im11bHRpZm9ybVBvcHVwQ29udGFpbmVyIjskKGAjJHthfWApLmZpbmQoIiNtdWx0aWZvcm1fYnRuXzEgIikub24oImNsaWNrIHRvdWNoIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7JC52YWxpZGl0eS5zdGFydCgpOyQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9wb3N0YWwiKS5yZXF1aXJlKCkucmVxdWlyZVBvc3RhbENvZGUoKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiPSQoIiNtdWx0aWZvcm1fcG9zdGFsIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYiwiVXNlckZvcm0ucG9zdGFsIiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLAoiVXNlckZvcm0ucG9zdGFsIikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYiwiVXNlckZvcm0ucG9zdGFsIik7JChgIyR7YX1gKS5maW5kKCIubXVsdGlmb3JtX2NpcmNsZTIiKS5jc3Moe2JhY2tncm91bmRDb2xvcjokKCIubXVsdGlmb3JtX2NpcmNsZTEiKS5jc3MoImJhY2tncm91bmRDb2xvciIpLGNvbG9yOiQoIi5tdWx0aWZvcm1fY2lyY2xlMSIpLmNzcygiY29sb3IiKX0pOyQoYCMke2F9YCkuZmluZCgiLm11bHRpZm9ybV9jaXJjbGUxIikuY3NzKHtiYWNrZ3JvdW5kQ29sb3I6IiNmZmYiLGNvbG9yOiIjMzMzIn0pOyQoYCMke2F9YCkuZmluZCgiLm11bHRpZm9ybV9zdGVwMSIpLmhpZGUoKTskKGAjJHthfWApLmZpbmQoIi5tdWx0aWZvcm1fc3RlcDIiKS5zaG93KCk7KG5ldyBGb3JtKS5tYXNrUGhvbmUoIiNtdWx0aWZvcm1fc21zIik7Yj0kKCIuYnJhbmRlbWFpbCIpLmxlbmd0aD8kKCIuYnJhbmRlbWFpbCIpLnZhbCgpOiIiOwp2YXIgYz0kKCIubW9kZWxlbWFpbCIpLmxlbmd0aD8kKCIubW9kZWxlbWFpbCIpLnZhbCgpOiIiLGQ9JCgiLnllYXJlbWFpbCIpLmxlbmd0aD8kKCIueWVhcmVtYWlsIikudmFsKCk6IiI7Yi5sZW5ndGgmJmMubGVuZ3RoJiZkLmxlbmd0aCYmJChgIyR7YX1gKS5maW5kKCIjc2VhcmNoZWR2ZWhpY2xlIikudmFsKGIrIiAiK2MrIiAiK2QpOyQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9mb3JtVyAubXVsdGlmb3JtX3N0ZXAyIGlucHV0OmZpcnN0IikudHJpZ2dlcigiZm9jdXMiKTskKGAjJHthfWApLmZpbmQoIiNtdWx0aWZvcm1fZm9ybVcgI3NlYXJjaGVkdmVoaWNsZSIpLmxlbmd0aCYmbnVsbCE9Q29va2llcy5nZXQoImxhc3R2aWV3ZWR2ZWhpY2xlIikmJiQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9mb3JtVyAjc2VhcmNoZWR2ZWhpY2xlIikudmFsKENvb2tpZXMuZ2V0KCJsYXN0dmlld2VkdmVoaWNsZSIpLnJlcGxhY2VBbGwoInx8fCIsIiAiKSl9fSl9OwovKiogL2pzL3BkZlBvcHVwLmpzICoqLwp2YXIgX19fZDJjX3BkZlBvcHVwanNfY19vbj0iMjAyNi0wNS0xMiAwOTozMDoxMSI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIHN1Ym1pdFNwZWNzTmV3UGRmUmVxdWVzdCgpe3ZhciBhPSQoIi5lbWFpbFN1YmplY3QiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS50ZXh0KCksZD0kKCIuZW1haWxCb2R5IiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikuaHRtbCgpLGM9JCgiI2NsaWVudEVtYWlsIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikudmFsKCksYj0kKCIjY2xpZW50U21zIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikudmFsKCksZj0idW5kZWZpbmVkIiE9JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpPyQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKToiIixnPSJ1bmRlZmluZWQiIT0kKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCk\/JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpOiIiLGg9InVuZGVmaW5lZCIhPSQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpPyQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpOiIiO2Q9ZC5yZXBsYWNlKC97XCRDTElFTlRFTUFJTH0vZywKYyk7ZD1kLnJlcGxhY2UoL3tcJENMSUVOVFBIT05FfS9nLGIpO2VtYWlsSGFuZGxlci5zdWJqZWN0PWE7ZW1haWxIYW5kbGVyLmJvZHk9ZDtlbWFpbEhhbmRsZXIuc2VuZFRvPSQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKTtlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKTtlbWFpbEhhbmRsZXIubWFpbElEPSJTcGVjc1JlcXVlc3ROZXciO2VtYWlsSGFuZGxlci51c2VyRW1haWw9YztlbWFpbEhhbmRsZXIudXNlclBob25lPWI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iTmV3IjswPGYubGVuZ3RoJiYoZW1haWxIYW5kbGVyLm1ha2U9Zik7MDxnLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5tb2RlbD1nKTswPGgubGVuZ3RoJiYoZW1haWxIYW5kbGVyLnllYXI9aCk7dmFyIGU9Z2V0TWFpbFNlbnRIYW5kbGVyKCJfcG9wdXBUZWNoU3BlY3NOZXdEaXYiKTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oayl7az8idW5kZWZpbmVkIiE9CnR5cGVvZiBlJiZlLnNob3dTdWNjZXNzKCk6InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZlLnNob3dGYWlsKCl9O2VtYWlsSGFuZGxlci5zZW5kTWFpbCgpOyQoIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnBvcHVwaXplKCkuY2xvc2UoKX12YXIgZ2xvYmFsTG9jYWxlPXZvaWQgMDtmdW5jdGlvbiBpc0xvY2FsZShhKXt2b2lkIDA9PT1nbG9iYWxMb2NhbGUmJihnbG9iYWxMb2NhbGU9JCgiI3RleHRMYW5ndWFnZURldGFpbCIpLnZhbCgpKTtyZXR1cm4gZ2xvYmFsTG9jYWxlLnRvTG93ZXJDYXNlKCk9PWEudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBpc0VuZ2xpc2goKXtyZXR1cm4gaXNMb2NhbGUoIkVOR0xJU0giKX1mdW5jdGlvbiBpc0ZyZW5jaCgpe3JldHVybiBpc0xvY2FsZSgiRlJFTkNIIil9CmZ1bmN0aW9uIHByaW50U3BlY3MoKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7YT1hLnN1YnN0cmluZygwLGEubGFzdEluZGV4T2YoIi8iKSsxKSskKCIjcG9wdXBUZWNoU3BlY3NEaXYgI3ByaW50UGFnZSIpLmF0dHIoImhyZWYiKTt3aW5kb3cub3BlbihhKTtyZXR1cm4hMX1mdW5jdGlvbiBwcmludFNwZWNzTmV3KCl7dmFyIGE9JCgiaW5wdXQjc3BlY0Jyb2NodXJlVXJpIikudmFsKCl8fCQoIiNzcGVjQnJvY2h1cmVVcmlOZXciKS52YWwoKTt3aW5kb3cub3BlbihhKTtyZXR1cm4hMX0KZnVuY3Rpb24gc2VuZFNwZWNzTmV3UGRmUmVxdWVzdCgpeyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgYT0wPCQoIiNjbGllbnRTbXMiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS52YWwoKS5sZW5ndGg\/ITA6ITE7YT8kKCIjY2xpZW50U21zIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikucmVxdWlyZSgpLnZhbGlkYXRlTW9iaWxlKCk6JCgiI2NsaWVudEVtYWlsIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikucmVxdWlyZSgpLnZhbGlkRW1haWxBZGRyZXNzKCk7aWYoJC52YWxpZGl0eS5lbmQoKS52YWxpZCl7dmFyIGQ9IiIsYz17fTthP2Q9KCJFTkdMSVNIIj09JCgiI3RleHRMYW5ndWFnZSIpLnZhbCgpPyIvZW4iOiIvZnIiKSsiL2FqYXgvU2VuZFNtcz93c3dpZHRoPTAiOihjLmVtYWlsPSQoIiNjbGllbnRFbWFpbCIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnZhbCgpLGQ9JCgiI3ByaW50UGFnZSIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLmF0dHIoImhyZWYiKSsKIiZlbWFpbD0iK2MuZW1haWwpO2MucGhvbmU9JCgiI2NsaWVudFNtcyIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnZhbCgpO2MubWFrZT0kKCdbbmFtZT0iYnJhbmQiXScpLnZhbCgpO2MubW9kZWw9JCgnW25hbWU9Im1vZGVsIl0nKS52YWwoKTtjLnllYXI9JCgnW25hbWU9InllYXIiXScpLnZhbCgpOyQuYWpheCh7YXN5bmM6ITEsdXJsOmQsZGF0YTpjLHN1Y2Nlc3M6ZnVuY3Rpb24oYil7Yj1KU09OLnBhcnNlKGIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGIubWVzc2FnZSYmY29uc29sZS5sb2coYi5tZXNzYWdlKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZV9wb3B1cFRlY2hTcGVjc05ld0RpdiBzcGFuLnN1Y2Nlc3MiKS5odG1sKCQoIiNSRVFVRVNUX1NFTlQiKS52YWwoKSk7c3VibWl0U3BlY3NOZXdQZGZSZXF1ZXN0KCl9LGZhaWx1cmU6ZnVuY3Rpb24oYil7Y29uc29sZS5sb2coImFqYXggZmFpbHVyZSIsc2F2ZUhhbmRsZXIuZmFpbE1lc3NhZ2UrIlxuIitiKTskKCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYgLmNsb3NlLXJldmVhbC1tb2RhbCIpLnRyaWdnZXIoImNsaWNrIil9LAplcnJvcjpmdW5jdGlvbihiLGYsZyl7JCgiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IC5jbG9zZS1yZXZlYWwtbW9kYWwiKS50cmlnZ2VyKCJjbGljayIpO2NvbnNvbGUubG9nKCJhamF4IGVycm9yIixiLnJlc3BvbnNlVGV4dCl9fSl9fWZ1bmN0aW9uIHNob3dTcGVjc1JlcXVlc3ROZXdQb3B1cCgpeyQoIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCk7cmV0dXJuITF9CmZ1bmN0aW9uIHNlbmRTbXMoYSxkLGMpeyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgYj0iTkVXIj09Yz8ibmV3IjoiIjtsZXQgZj0iTkVXIj09Yz8iTmV3IjoiIjsiTW9iaWxlLVJlcXVlc3RNb250aGx5UGF5bWVudHMiPT1kPyQoYCNjbGllbnROYW1lJHtifWAsIiNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lciIpLnJlcXVpcmUoKS5ub25IdG1sKCk6KCQoYCNjbGllbnRTbXMke2J9YCxgI3BvcHVwVGVjaFNwZWNzJHtmfURpdmApLnJlcXVpcmUoKS52YWxpZGF0ZU1vYmlsZSgpLCQoYCNjbGllbnROYW1lJHtifWAsYCNwb3B1cFRlY2hTcGVjcyR7Zn1EaXZgKS5yZXF1aXJlKCkubm9uSHRtbCgpKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXt2YXIgZz0kKGAjY2xpZW50TmFtZSR7Yn1gLGAjcG9wdXBUZWNoU3BlY3Mke2Z9RGl2YCkudmFsKCksaD0kKGAjY2xpZW50U21zJHtifWAsYCNwb3B1cFRlY2hTcGVjcyR7Zn1EaXZgKS52YWwoKTtiPSQoYCNjbGllbnRFbWFpbCR7Yn1gLApgI3BvcHVwVGVjaFNwZWNzJHtmfURpdmApLnZhbCgpO2lmKCJvYmplY3QiPT09dHlwZW9mIGRlYWxlclNtc051bWJlcil7YT17ZGVwdDokKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikubGVuZ3RoJiYiMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKT8iTkVXIjplbWFpbEhhbmRsZXI\/ZW1haWxIYW5kbGVyLmdldERlcCgpOmMudG9VcHBlckNhc2UoKSxtZXNzYWdlVHlwZTphLHVzZXJOYW1lOmcsdXNlclBob25lOmgsdXNlckVtYWlsOmJ9O2M9JCgiI3Bob25lbXllYXIiKS5sZW5ndGg\/JCgiI3Bob25lbXllYXIiKS52YWwoKToiIjtnPSQoIiNwaG9uZW1ha2UiKS5sZW5ndGg\/JCgiI3Bob25lbWFrZSIpLnZhbCgpOiIiO2g9JCgiI3Bob25lbW9kZWwiKS5sZW5ndGg\/JCgiI3Bob25lbW9kZWwiKS52YWwoKToiIjtiPSQoIiNwaG9uZXN0b2NrbnVtYmVyIikubGVuZ3RoPyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCk6IiI7b3duZXJJZD0kKCIjdmVoaWNsZU93bmVySWQiKS5sZW5ndGg\/CiQoIiN2ZWhpY2xlT3duZXJJZCIpLnZhbCgpOiIiOyIiIT09ZyYmKGEubWFrZT1nKTsiIiE9PWgmJihhLm1vZGVsPWgpOyIiIT09YyYmKGEueWVhcj1jKTsiIiE9PWImJihhLnN0b2NrTnVtYmVyPWIpOyIiIT09b3duZXJJZCYmKGEuZGVhbGVySWQ9b3duZXJJZCk7YS52ZWhpY2xlSWQ9IiI7YS5WSU49IiI7YS5wcmljZT0iIjthLm1vZGVsSWQ9IiI7aWYoc2l0ZVBhZ2UubmFtZT0ib2JqZWN0Ij09PXR5cGVvZiBzZWFyY2hEZXRhaWxzJiYib2JqZWN0Ij09PXR5cGVvZiBzZWFyY2hEZXRhaWxzLnZlaGljbGUpYS52ZWhpY2xlSWQ9c2VhcmNoRGV0YWlscy52ZWhpY2xlSUR8fCIiLGEuVklOPXNlYXJjaERldGFpbHMudmVoaWNsZS5OSVZ8fCIiLGEucHJpY2U9c2VhcmNoRGV0YWlscy52ZWhpY2xlLnByaWNlfHwiIjtpZihzaXRlUGFnZS5uYW1lPSJvYmplY3QiPT09dHlwZW9mIG5ld2NhckRldGFpbHMmJiJvYmplY3QiPT09dHlwZW9mIG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpYS5tb2RlbElkPQpuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLmlkfHwiIjtkZWFsZXJTbXNOdW1iZXIuZ2V0U21zTnVtYmVyKGEsZnVuY3Rpb24oZSl7aWYoITEhPT1lKXsib2JqZWN0Ij09PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChkLGUuc21zbWVzc2FnZSk7dmFyIGs9L1dpbmRvd3Ncc1Bob25lL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT8iPyI6Ij8mIjtlPSJzbXM6IitlLnNtc251bWJlcitrKyJib2R5PSIrZW5jb2RlVVJJQ29tcG9uZW50KGUuc21zbWVzc2FnZSk7Y29uc29sZS5sb2coIlNNU0hSRUY6IixlKTt3aW5kb3cubG9jYXRpb24uaHJlZj1lfX0pfX19CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3NtcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYT0kKCIjcGhvbmVtYWtlIikudmFsKCkrIi0iKyQoIiNwaG9uZW1vZGVsIikudmFsKCkrIi0iKyQoIiNwaG9uZW15ZWFyIikudmFsKCk7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJDb3VycmllbHMiLCIgRGVtYW5kZSBkZSBtZW5zdWFsaXTpcyAoduloaWN1bGUgZCdvY2Nhc2lvbikiLCJEZW1hbmRlcy0iK2EsMSk7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkNvdXJyaWVscy1kZXB0IiwiT2NjYXNpb24iLGEsMSk7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkNvdXJyaWVscy1wYWdlIiwiVXNlZC1WRFAiLCIgRGVtYW5kZSBkZSBtZW5zdWFsaXTpcyAoduloaWN1bGUgZCdvY2Nhc2lvbikiLDEpfSl9KTsKLyoqIC9qcy9uZWJDYWwvbmViRGF0ZUZuLmpzICoqLwp2YXIgX19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDQ6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzE6NTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMy0wMS0xMiAxMTozMjoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIzLTAxLTEyIDEwOjQyOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjEtMTItMTUgMTI6Mzg6MzkiOyJ1c2Ugc3RyaWN0Ijtjb25zdCBuZWJEYXRlRm49e307CiQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/JC5uZWJMYW5nPXttb250aE5hbWVzOiJKYW52aWVyIEYmZWFjdXRlO3ZyaWVyIE1hcnMgQXZyaWwgTWFpIEp1aW4gSnVpbGxldCBBbyZ1Y2lyYzt0IFNlcHRlbWJyZSBPY3RvYnJlIE5vdmVtYnJlIEQmZWFjdXRlO2NlbWJyZSIuc3BsaXQoIiAiKSxtb250aE5hbWVzU2hvcnQ6IkphbnYuIEYmZWFjdXRlO3ZyLiBNYXJzIEF2ci4gTWFpIEp1aW4gSnVpbC4gQW8mdWNpcmM7dCBTZXB0LiBPY3QuIE5vdi4gRCZlYWN1dGU7Yy4iLnNwbGl0KCIgIiksZGF5TmFtZXM6IkRpbWFuY2hlIEx1bmRpIE1hcmRpIE1lcmNyZWRpIEpldWRpIFZlbmRyZWRpIFNhbWVkaSIuc3BsaXQoIiAiKSxkYXlOYW1lc1Nob3J0OiJEaW0gTHVuIE1hciBNZXIgSmV1IFZlbiBTYW0iLnNwbGl0KCIgIiksZGF5TmFtZXNNaW46IkRpIEx1IE1hIE1lIEplIFZlIFNhIi5zcGxpdCgiICIpLHdlZWtIZWFkZXI6IlNtIixkYXRlRm9ybWF0OiJ5LU0tZCIsZmlyc3REYXk6MSwKaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6IiIsaW52YWxpZERhdGVGb3JtYXQ6ImludmFsaWRfZGF0ZSJ9OiQubmViTGFuZz17bW9udGhOYW1lczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxtb250aE5hbWVzU2hvcnQ6Ikphbi4gRmViLiBNYXIuIEFwci4gTWF5IEp1bi4gSnVsLiBBdWcuIFNlcHQuIE9jdC4gTm92LiBEZWMuIi5zcGxpdCgiICIpLGRheU5hbWVzOiJTdW5kYXkgTW9uZGF5IFR1ZXNkYXkgV2VkbmVzZGF5IFRodXJzZGF5IEZyaWRheSBTYXR1cmRheSIuc3BsaXQoIiAiKSxkYXlOYW1lc1Nob3J0OiJTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQiLnNwbGl0KCIgIiksZGF5TmFtZXNNaW46IlN1IE1vIFR1IFdlIFRoIEZyIFNhIi5zcGxpdCgiICIpLHdlZWtIZWFkZXI6IlNtIixkYXRlRm9ybWF0OiJ5LU0tZCIsCmZpcnN0RGF5OjEsaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6IiIsaW52YWxpZERhdGVGb3JtYXQ6ImludmFsaWRfZGF0ZSJ9O0RhdGUuTFo9ZnVuY3Rpb24oYSl7cmV0dXJuKDA+YXx8OTxhPyIiOiIwIikrYX07bmViRGF0ZUZuLkxaPWZ1bmN0aW9uKGEpe3JldHVybigwPmF8fDk8YT8iIjoiMCIpK2F9O0RhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ9ITA7bmViRGF0ZUZuLmNsZWFyVGltZT1mdW5jdGlvbihhKXthIGluc3RhbmNlb2YgRGF0ZSYmKGEuc2V0SG91cnMoMCksYS5zZXRNaW51dGVzKDApLGEuc2V0U2Vjb25kcygwKSxhLnNldE1pbGxpc2Vjb25kcygwKSk7cmV0dXJuIGF9OwpEYXRlLnByb3RvdHlwZS50b015c3FsRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RnVsbFllYXIoKSsiLSIrRGF0ZS5MWigxK3RoaXMuZ2V0TW9udGgoKSkrIi0iK0RhdGUuTFoodGhpcy5nZXREYXRlKCkpKyIgIitEYXRlLkxaKHRoaXMuZ2V0SG91cnMoKSkrIjoiK0RhdGUuTFoodGhpcy5nZXRNaW51dGVzKCkpKyI6IitEYXRlLkxaKHRoaXMuZ2V0U2Vjb25kcygpKX07RGF0ZS5wcm90b3R5cGUuaXNMZWFwWWVhcj1mdW5jdGlvbigpe3JldHVybiAyOT09KG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSwxLDI5KSkuZ2V0RGF0ZSgpfTtEYXRlLnByb3RvdHlwZS5nZXRMYXN0RGF5T2ZNb250aENhbD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpKzEsMCkpLmdldERhdGUoKX07RGF0ZS5wcm90b3R5cGUuc2V0RGF5PWZ1bmN0aW9uKGEpe3RoaXMuc2V0RGF0ZShhKTtyZXR1cm4gdGhpc307CkRhdGUucHJvdG90eXBlLnNldE1vbj1mdW5jdGlvbihhKXt0aGlzLnNldE1vbnRoKGEpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5zZXRZZWFyPWZ1bmN0aW9uKGEpe3RoaXMuc2V0RnVsbFllYXIoYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZERheT1mdW5jdGlvbihhKXt0aGlzLnNldERhdGUodGhpcy5nZXREYXRlKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZE1vbj1mdW5jdGlvbihhKXt0aGlzLnNldE1vbnRoKHRoaXMuZ2V0TW9udGgoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkWWVhcj1mdW5jdGlvbihhKXt0aGlzLnNldEZ1bGxZZWFyKHRoaXMuZ2V0RnVsbFllYXIoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wYXJzZURhdGVUaW1lPWZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgvWy0gOl0vKTtyZXR1cm4gbmV3IERhdGUoYVswXSxhWzFdLTEsYVsyXSxhWzNdLGFbNF0sYVs1XSl9OwpuZWJEYXRlRm4ucGFyc2VTdHJpbmc9ZnVuY3Rpb24oYSxlKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBlfHxudWxsPT09ZXx8IiI9PT1lKXtlPVsiTS9kL3kiLCJNLWQteSIsIk0uZC55IiwiTS9kIiwiTS1kIl07dmFyIGM9WyJkL00veSIsImQtTS15IiwiZC5NLnkiLCJkL00iLCJkLU0iXTtlPVsieS1NLWQ7TU1NIGQsIHk7TU1NIGQseTt5LU1NTS1kO2QtTU1NLXk7TU1NIGQ7TU1NLWQ7ZC1NTU0iLnNwbGl0KCI7IiksRGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD9lOmMsRGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD9jOmVdO2ZvcihjPTA7YzxlLmxlbmd0aDtjKyspZm9yKHZhciBoPWVbY10saz0wO2s8aC5sZW5ndGg7aysrKXt2YXIgbj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYSxoW2tdKTtpZihudWxsIT09bilyZXR1cm4gbn1yZXR1cm4gbnVsbH10aGlzLmlzSW50ZWdlcj1mdW5jdGlvbih1KXtmb3IodmFyIHE9MDtxPHUubGVuZ3RoO3ErKylpZigtMT09IjEyMzQ1Njc4OTAiLmluZGV4T2YodS5jaGFyQXQocSkpKXJldHVybiExOwpyZXR1cm4hMH07dGhpcy5nZXRJbnQ9ZnVuY3Rpb24odSxxLHksdyl7Zm9yKDt3Pj15O3ctLSl7dmFyIHg9dS5zdWJzdHJpbmcocSxxK3cpO2lmKHgubGVuZ3RoPHkpYnJlYWs7aWYodGhpcy5pc0ludGVnZXIoeCkpcmV0dXJuIHh9cmV0dXJuIG51bGx9O2ErPSIiO2UrPSIiO2g9Yz0wO3ZhciBtPSIiLGI9IiIsbD0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksZz0xLGQ9MSxmPTAscj0wLHQ9MCx2PSIiO209W107Zm9yKGI9MDtoPGUubGVuZ3RoOyl7bT1lLmNoYXJBdChoKTtmb3IoYj0iIjtlLmNoYXJBdChoKT09bSYmaDxlLmxlbmd0aDspYis9ZS5jaGFyQXQoaCsrKTtpZigieXl5eSI9PWJ8fCJ5eSI9PWJ8fCJ5Ij09Yil7Inl5eXkiPT1iJiYobj1rPTQpOyJ5eSI9PWImJihuPWs9Mik7InkiPT1iJiYoaz0yLG49NCk7bD10aGlzLmdldEludChhLGMsayxuKTtpZihudWxsPT09bClyZXR1cm4gbnVsbDtjKz1sLmxlbmd0aDsyPT1sLmxlbmd0aCYmKGw9NzA8bD8xOTAwKyhsLTApOjJFMysKKGwtMCkpfWVsc2UgaWYoIk1NTSI9PWJ8fCJOTk4iPT1iKXtnPTA7bT0iTU1NIj09Yj8kLm5lYkxhbmcubW9udGhOYW1lcy5jb25jYXQoJC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydCk6JC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydDtmb3IoYj0wO2I8bS5sZW5ndGg7YisrKXt2YXIgcD1tW2JdO2lmKGEuc3Vic3RyaW5nKGMsYytwLmxlbmd0aCkudG9Mb3dlckNhc2UoKT09cC50b0xvd2VyQ2FzZSgpKXtnPWIlMTIrMTtjKz1wLmxlbmd0aDticmVha319aWYoMT5nfHwxMjxnKXJldHVybiBudWxsfWVsc2UgaWYoIkVFIj09Ynx8IkUiPT1iKWZvcihtPSJFRSI9PWI\/JC5uZWJMYW5nLmRheU5hbWVzOiQubmViTGFuZy5kYXlOYW1lc1Nob3J0LGI9MDtiPG0ubGVuZ3RoO2IrKyl7aWYocD1tW2JdLGEuc3Vic3RyaW5nKGMsYytwLmxlbmd0aCkudG9Mb3dlckNhc2UoKT09cC50b0xvd2VyQ2FzZSgpKXtjKz1wLmxlbmd0aDticmVha319ZWxzZSBpZigiTU0iPT1ifHwiTSI9PWIpe2c9dGhpcy5nZXRJbnQoYSwKYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Z3x8MT5nfHwxMjxnKXJldHVybiBudWxsO2MrPWcubGVuZ3RofWVsc2UgaWYoImRkIj09Ynx8ImQiPT1iKXtkPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09ZHx8MT5kfHwzMTxkKXJldHVybiBudWxsO2MrPWQubGVuZ3RofWVsc2UgaWYoImhoIj09Ynx8ImgiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MT5mfHwxMjxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RofWVsc2UgaWYoIkhIIj09Ynx8IkgiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MD5mfHwyMzxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RofWVsc2UgaWYoIktLIj09Ynx8IksiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MD5mfHwxMTxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RoO2YrK31lbHNlIGlmKCJrayI9PWJ8fCJrIj09Yil7Zj10aGlzLmdldEludChhLApjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwxPmZ8fDI0PGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGg7Zi0tfWVsc2UgaWYoIm1tIj09Ynx8Im0iPT1iKXtyPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09cnx8MD5yfHw1OTxyKXJldHVybiBudWxsO2MrPXIubGVuZ3RofWVsc2UgaWYoInNzIj09Ynx8InMiPT1iKXt0PXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09dHx8MD50fHw1OTx0KXJldHVybiBudWxsO2MrPXQubGVuZ3RofWVsc2UgaWYoImEiPT1iKXtpZigiYW0iPT1hLnN1YnN0cmluZyhjLGMrMikudG9Mb3dlckNhc2UoKSl2PSJBTSI7ZWxzZSBpZigicG0iPT1hLnN1YnN0cmluZyhjLGMrMikudG9Mb3dlckNhc2UoKSl2PSJQTSI7ZWxzZSByZXR1cm4gbnVsbDtjKz0yfWVsc2V7aWYoYS5zdWJzdHJpbmcoYyxjK2IubGVuZ3RoKSE9YilyZXR1cm4gbnVsbDtjKz1iLmxlbmd0aH19aWYoYyE9YS5sZW5ndGgpcmV0dXJuIG51bGw7aWYoMj09CmcpaWYoMD09PWwlNCYmMCE9PWwlMTAwfHwwPT09bCU0MDApe2lmKDI5PGQpcmV0dXJuIG51bGx9ZWxzZSBpZigyODxkKXJldHVybiBudWxsO2lmKDMwPGQmJig0PT1nfHw2PT1nfHw5PT1nfHwxMT09ZykpcmV0dXJuIG51bGw7MTI+ZiYmIlBNIj09dj9mPWYtMCsxMjoxMTxmJiYiQU0iPT12JiYoZi09MTIpO3JldHVybiBuZXcgRGF0ZShsLGctMSxkLGYscix0KX07RGF0ZS5pc1ZhbGlkPWZ1bmN0aW9uKGEsZSl7cmV0dXJuIG51bGwhPT1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYSxlKX07RGF0ZS5wcm90b3R5cGUuZGlmZj1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWE\/ITE6dGhpcy5nZXRUaW1lKCk9PWEuZ2V0VGltZSgpPzA6dGhpcy5nZXRUaW1lKCk+YS5nZXRUaW1lKCk\/LTE6MX07CkRhdGUucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbihhKXthKz0iIjt2YXIgZT0iIixjPTAsaD10aGlzLmdldEZ1bGxZZWFyKCkrIiIsaz10aGlzLmdldE1vbnRoKCkrMSxuPXRoaXMuZ2V0RGF0ZSgpLG09dGhpcy5nZXREYXkoKSxiPXRoaXMuZ2V0SG91cnMoKSxsPXRoaXMuZ2V0TWludXRlcygpLGc9dGhpcy5nZXRTZWNvbmRzKCksZD17fTs0PmgubGVuZ3RoJiYoaD0iIisoK2grMTkwMCkpO2QueT0iIitoO2QueXl5eT1oO2QueXk9aC5zdWJzdHJpbmcoMiw0KTtkLk09aztkLk1NPURhdGUuTFooayk7ZC5NTU09JC5uZWJMYW5nLm1vbnRoTmFtZXNbay0xXTtkLk5OTj0kLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0W2stMV07ZC5kPW47ZC5kZD1EYXRlLkxaKG4pO2QuRT0kLm5lYkxhbmcuZGF5TmFtZXNTaG9ydFttXTtkLkVFPSQubmViTGFuZy5kYXlOYW1lc1ttXTtkLkg9YjtkLkhIPURhdGUuTFooYik7ZC5oPTA9PT1iPzEyOjEyPGI\/Yi0xMjpiO2QuaGg9RGF0ZS5MWihkLmgpO2QuSz0KZC5oLTE7ZC5rPWQuSCsxO2QuS0s9RGF0ZS5MWihkLkspO2Qua2s9RGF0ZS5MWihkLmspO2QuYT0xMTxiPyJQTSI6IkFNIjtkLm09bDtkLm1tPURhdGUuTFoobCk7ZC5zPWc7Zm9yKGQuc3M9RGF0ZS5MWihnKTtjPGEubGVuZ3RoOyl7aD1hLmNoYXJBdChjKTtmb3Ioaz0iIjthLmNoYXJBdChjKT09aCYmYzxhLmxlbmd0aDspays9YS5jaGFyQXQoYysrKTtlPSJ1bmRlZmluZWQiIT10eXBlb2YgZFtrXT9lK2Rba106ZStrfXJldHVybiBlfTsKRGF0ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWF8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiB0aGlzO2U9K2U7aWYoInkiPT1hKXRoaXMuc2V0RnVsbFllYXIodGhpcy5nZXRGdWxsWWVhcigpK2UpO2Vsc2UgaWYoIk0iPT1hKXRoaXMuc2V0TW9udGgodGhpcy5nZXRNb250aCgpK2UpO2Vsc2UgaWYoImQiPT1hKXRoaXMuc2V0RGF0ZSh0aGlzLmdldERhdGUoKStlKTtlbHNlIGlmKCJ3Ij09YSlmb3IoYT0wPGU\/MTotMTswIT09ZTspe2Zvcih0aGlzLmFkZCgiZCIsYSk7MD09PXRoaXMuZ2V0RGF5KCl8fDY9PT10aGlzLmdldERheSgpOyl0aGlzLmFkZCgiZCIsYSk7ZS09YX1lbHNlImgiPT1hP3RoaXMuc2V0SG91cnModGhpcy5nZXRIb3VycygpK2UpOiJtIj09YT90aGlzLnNldE1pbnV0ZXModGhpcy5nZXRNaW51dGVzKCkrZSk6InMiPT1hJiZ0aGlzLnNldFNlY29uZHModGhpcy5nZXRTZWNvbmRzKCkrCmUpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmdldFRpbWUoKSl9OwovKiogL2pzL25lYkNhbC9uZWJDYWwuanMgKiovCnZhciBfX19kMmNfbmViQ2FsanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNDoyMiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbmViQ2FsanNfY19vbj0iMjAyNC0wNC0xNiAxMTozMDowNyI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZSl7ZS5uZWJDYWw9ZnVuY3Rpb24oaCxnKXt2YXIgbD17c2xpZGVEdXJhdGlvbjo1MDAsZmFkZUR1cmF0aW9uOjIwMCx0b2dnbGVEdXJhdGlvbjoyMDAscHJlZmlsbDohMSxkZWZhdWx0RGF0ZTp2b2lkIDAsbGlua1dpdGhJbnB1dDohMCxrZXlOYXZpZ2F0aW9uOiEwLHRoZW1lOiJkZWZhdWx0IixkZWZhdWx0VmlldzoibW9udGgiLHN0YXJ0TW9uZGF5OiExLGFsd2F5c1Nob3c6ITEsaW5qZWN0SW5zaWRlVGFyZ2V0OiExLGZvcm1hdDoieXl5eS1NTS1kZCIsYWxpZ25YOiJtaWRkbGUiLGFsaWduWToiYm90dG9tIixvZmZzZXRYOjIwLG9mZnNldFk6MCxwb3J0cmFpdDohMCxwaWNrYWJsZTohMCx0b2dnbGVyOnZvaWQgMCxkaXNhbGxvd1VzZXJJbnB1dDohMSxtaW5EYXRlOnZvaWQgMCxtYXhEYXRlOnZvaWQgMCxleGNsdWRlZFdlZWtkYXlzOnZvaWQgMCxleGNsdWRlZERhdGVzOnZvaWQgMCxjcmVhdGVIaWRkZW5JbnB1dDohMSxoaWRkZW5JbnB1dE5hbWU6ImRhdGUiLGhpZGRlbklucHV0Rm9ybWF0OiIldCIsCm9uU2VsZWN0OiExLG9uVmlld0NoYW5nZTohMX0sYT10aGlzO2Eub3B0aW9ucz17fTthLnRhcmdldD1lKGgpO2EuaW5pdD1mdW5jdGlvbigpe2Eub3B0aW9ucz1lLmV4dGVuZCh7fSxsLGcpO2EudG9kYXk9bmViRGF0ZUZuLmNsZWFyVGltZShuZXcgRGF0ZSk7YS50cmFuc2l0aW9uaW5nPSExO3ZvaWQgMCE9PWEub3B0aW9ucy5kZWZhdWx0RGF0ZT9hLnNlbGVjdGVkRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLm9wdGlvbnMuZGVmYXVsdERhdGUpKTphLm9wdGlvbnMubGlua1dpdGhJbnB1dCYmdm9pZCAwIT09YS50YXJnZXQudmFsKCkmJjAhPT1hLnRhcmdldC52YWwoKSYmKGEuc2VsZWN0ZWREYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEudGFyZ2V0LnZhbCgpKSkpO2lmKHZvaWQgMD09PWEuc2VsZWN0ZWREYXRlfHxudWxsPT09YS5zZWxlY3RlZERhdGUpYS5zZWxlY3RlZERhdGU9YS50b2RheS5jbG9uZSgpOwphLmVsZW1lbnQ9ZSgnPGRpdiBjbGFzcz0ibmViQ2FsICcrYS5vcHRpb25zLnRoZW1lKyciIHN0eWxlPSJkaXNwbGF5OiAnKyhhLm9wdGlvbnMuYWx3YXlzU2hvdz8iYmxvY2siOiJub25lIikrJyI+PGRpdiBjbGFzcz0iY2FsLXdyYXBwZXIiPjxkaXYgY2xhc3M9ImNhbC1oZWFkZXIiPjxkaXYgY2xhc3M9ImNhbC1hcnJvdy1sZWZ0Ij48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtYXJyb3ctcmlnaHQiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1sYWJlbCBjYWwtY2xpY2thYmxlIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtYm9keSI+PGRpdiBjbGFzcz0iY2FsLWlubmVyIj48ZGl2IGNsYXNzPSJjYWwtY29udGFpbmVyIGEiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1jb250YWluZXIgYiI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWZvb3RlciI+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7YS5vcHRpb25zLmluamVjdEluc2lkZVRhcmdldD8oYS5lbGVtZW50LmFkZENsYXNzKCJpbmxpbmUiKSwKYS5lbGVtZW50LmFwcGVuZFRvKGEudGFyZ2V0KSk6KGEuZWxlbWVudC5hcHBlbmRUbyhlKCJib2R5IikpLGEucG9zaXRpb24oKSxlKHdpbmRvdykub24oInJlc2l6ZSIsYS5wb3NpdGlvbikpO2EuY3VycmVudENvbnRhaW5lcj1hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpLmNzcygiei1pbmRleCIsOTk5KTthLnRlbXBDb250YWluZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKS5jc3MoInotaW5kZXgiLDk5OCk7YS5oZWFkZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtaGVhZGVyIik7YS5sYWJlbD1hLmhlYWRlci5maW5kKCIuY2FsLWxhYmVsIik7YS5hcnJvd0xlZnQ9YS5oZWFkZXIuZmluZCgiLmNhbC1hcnJvdy1sZWZ0Iik7YS5hcnJvd1JpZ2h0PWEuaGVhZGVyLmZpbmQoIi5jYWwtYXJyb3ctcmlnaHQiKTthLmxhYmVsLm9uKCJjbGljayIsYS5sZXZlbFVwKTthLmFycm93TGVmdC5vbigiY2xpY2siLGEuc2xpZGVMZWZ0KTthLmFycm93UmlnaHQub24oImNsaWNrIiwKYS5zbGlkZVJpZ2h0KTt2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmKGEub3B0aW9ucy5taW5EYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5taW5EYXRlKSkpO3ZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYoYS5vcHRpb25zLm1heERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS5vcHRpb25zLm1heERhdGUpKSk7aWYodm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMpe3ZhciBiPVtdO2Eub3B0aW9ucy5leGNsdWRlZERhdGVzLmVhY2goZnVuY3Rpb24oYyl7Yi5pbmNsdWRlKGEuZm9ybWF0KG5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGMpKSwiJXQiKSl9KTthLm9wdGlvbnMuZXhjbHVkZWREYXRlcz1ifWEub3B0aW9ucy5jcmVhdGVIaWRkZW5JbnB1dCYmKGEuaGlkZGVuSW5wdXQ9KG5ldyBFbGVtZW50KCJpbnB1dCIse3R5cGU6ImhpZGRlbiIsCm5hbWU6YS5vcHRpb25zLmhpZGRlbklucHV0TmFtZX0pKS5hcHBlbmRUbyhhLnRhcmdldCkpOyFhLm9wdGlvbnMuZGlzYWxsb3dVc2VySW5wdXQmJmEub3B0aW9ucy5saW5rV2l0aElucHV0JiYiaW5wdXQiPT1hLnRhcmdldC5hdHRyKCJ0YWciKSYmYS50YXJnZXQuYWRkRXZlbnQoImtleXVwIixmdW5jdGlvbigpe2Euc2V0RGF0ZShhLnRhcmdldC5hdHRyKCJ2YWx1ZSIpLCExKX0pO3ZvaWQgMCE9PWEub3B0aW9ucy50b2dnbGVyJiYoYS5vcHRpb25zLnRvZ2dsZXI9ZShhLm9wdGlvbnMudG9nZ2xlcikpOyh2b2lkIDAhPT1hLm9wdGlvbnMudG9nZ2xlcj9hLm9wdGlvbnMudG9nZ2xlcjphLnRhcmdldCkub24oImZvY3VzIixhLnNob3cpLm9uKCJjbGljayIsYS5zaG93KTtpZighYS5vcHRpb25zLmFsd2F5c1Nob3cpZShkb2N1bWVudCkub24oIm1vdXNlZG93biIsYS5vdXRzaWRlQ2xpY2spOyJJTlBVVCI9PWEudGFyZ2V0LnByb3AoInRhZ05hbWUiKSYmKGEudGFyZ2V0LnRyaWdnZXIoImtleWRvd24iLAphLm9uS2V5RG93biksYS50YXJnZXQudHJpZ2dlcigia2V5dXAiLGEub25LZXlVcCksYS5vcHRpb25zLmRpc2FsbG93VXNlcklucHV0JiZhLnRhcmdldC5hZGRFdmVudCgiY29udGV4dG1lbnUiLCRsYW1iZGEoITEpKSk7YS5zZWxlY3RlZERhdGU9YS5jb3JyZWN0RGF0ZShhLnNlbGVjdGVkRGF0ZSk7YS5vcHRpb25zLnByZWZpbGwmJmEucGljaygpO2Eudmlld0RhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShhLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSk7YS52aWV3PWEub3B0aW9ucy5kZWZhdWx0VmlldzthLnJlbmRlcigpfTthLnJlbmRlcj1mdW5jdGlvbigpe2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpO3N3aXRjaChhLnZpZXcpe2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTticmVhaztkZWZhdWx0OmEucmVuZGVyTW9udGgoKX1yZXR1cm4gYX07YS5yZW5kZXJNb250aD1mdW5jdGlvbigpe2Eudmlldz0KIm1vbnRoIjthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKS5hZGRDbGFzcygiY2FsLW1vbnRoIik7YS5vcHRpb25zLnBpY2thYmxlJiZhLmN1cnJlbnRDb250YWluZXIuYWRkQ2xhc3MoImNhbC1waWNrYWJsZSIpO3ZhciBiPWUubmViTGFuZyxjPWEudmlld0RhdGUuZ2V0RGF5KCktKGEub3B0aW9ucy5zdGFydE1vbmRheT8xOjApOy0xPT1jJiYoYz02KTthLmxhYmVsLmh0bWwoYi5tb250aE5hbWVzW2Eudmlld0RhdGUuZ2V0TW9udGgoKV0rIiAiK2Eudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpO2Zvcih2YXIgZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSxmPWEub3B0aW9ucy5zdGFydE1vbmRheT8xOjA7ZjwoYS5vcHRpb25zLnN0YXJ0TW9uZGF5Pzg6Nyk7ZisrKXt2YXIgaz1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYi5kYXlOYW1lc1Nob3J0W2Eub3B0aW9ucy5zdGFydE1vbmRheSYmNz09Zj8wOmZdKS5hcHBlbmRUbyhkKTsKay5odG1sKGsuaHRtbCgpKX1kPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpO2I9YS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsLTEpLmdldExhc3REYXlPZk1vbnRoQ2FsKCk7Zm9yKGY9MDtmPGM7ZisrKWEuaW5qZWN0RGF5KGQsYS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsLTEpLnNldERheShiLShjLWYpKzEpLCEwKTtmb3IoZj0xO2Y8PWEudmlld0RhdGUuZ2V0TGFzdERheU9mTW9udGhDYWwoKTtmKyspYS5pbmplY3REYXkoZCxhLnZpZXdEYXRlLmNsb25lKCkuc2V0RGF5KGYpKSw3PT1kLmNoaWxkcmVuKCkubGVuZ3RoJiYoZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSk7Yj04LWQuY2hpbGRyZW4oKS5sZW5ndGg7Yz1hLnZpZXdEYXRlLmNsb25lKCkuYWRkKCJNIiwxKS5zZXREYXkoMSk7Zm9yKGY9MTtmPGI7ZisrKWEuaW5qZWN0RGF5KGQsCmMuY2xvbmUoKS5zZXREYXkoZiksITApO2ZvcihiPWEuY3VycmVudENvbnRhaW5lci5maW5kKCIuY2FsLXJvdyIpLmxlbmd0aDs3PmI7YisrKWZvcihkPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLGs9MDs3Pms7aysrKWEuaW5qZWN0RGF5KGQsYy5jbG9uZSgpLnNldERheShmKSwhMCksZisrO2EucmVuZGVyQWZ0ZXIoKX07YS5pbmplY3REYXk9ZnVuY3Rpb24oYixjLGQpe2I9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGMuZ2V0RGF0ZSgpKS5hcHBlbmRUbyhiKTtiLmRhdGEoImRhdGUiLGMpO2QmJmIuYWRkQ2xhc3MoImNhbC1vdXRzaWRlIik7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlPmN8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiZhLm9wdGlvbnMubWF4RGF0ZTxjfHx2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cyYmYS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMuY29udGFpbnMoYy5mb3JtYXQoIkUiKS50b0ludCgpKXx8CnZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzJiZhLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5jb250YWlucyhhLmZvcm1hdChjLCIldCIpKSliLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGlmKGEub3B0aW9ucy5waWNrYWJsZSliLm9uKCJjbGljayIsYS5waWNrKTtjLmZvcm1hdCgiZCIpPT1hLnRvZGF5LmZvcm1hdCgiZCIpJiZiLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkfHxjLmZvcm1hdCgiZCIpIT1hLnNlbGVjdGVkRGF0ZS5mb3JtYXQoImQiKXx8Yi5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIil9O2EucmVuZGVyWWVhcj1mdW5jdGlvbigpe2Eudmlldz0ieWVhciI7YS5jdXJyZW50Q29udGFpbmVyLmFkZENsYXNzKCJjYWwteWVhci1kZWNhZGUgIisoYS5vcHRpb25zLnBvcnRyYWl0PyJjYWwtcG9ydHJhaXQiOiJjYWwtbGFuZHNjYXBlIikpO3ZhciBiPWUubmViTGFuZy5tb250aE5hbWVzU2hvcnQ7YS5sYWJlbC5odG1sKGEudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpOwpmb3IodmFyIGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksZD0xOzEzPmQ7ZCsrKXt2YXIgZj1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYltkLTFdKS5hcHBlbmRUbyhjKSxrPWEudmlld0RhdGUuY2xvbmUoKS5zZXRNb24oZC0xKTtmLmRhdGEoImRhdGUiLGspO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpLnNldERheSgxKT5rfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmYS5vcHRpb25zLm1heERhdGUuY2xvbmUoKS5zZXREYXkoMSk8aylmLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGYub24oImNsaWNrIixhLmxldmVsRG93bik7ZC0xPT1hLnRvZGF5LmdldE1vbnRoKCkmJmEudmlld0RhdGUuZ2V0RnVsbFllYXIoKT09YS50b2RheS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkLTE9PWEuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkmJgphLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCk9PWEuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkmJmYuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpO2QlKGEub3B0aW9ucy5wb3J0cmFpdD8zOjQpfHwxMj09ZHx8KGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcikpfWEucmVuZGVyQWZ0ZXIoKX07YS5yZW5kZXJEZWNhZGU9ZnVuY3Rpb24oKXthLmxhYmVsLnJlbW92ZUNsYXNzKCJjYWwtY2xpY2thYmxlIik7YS52aWV3PSJkZWNhZGUiO2EuY3VycmVudENvbnRhaW5lci5hZGRDbGFzcygiY2FsLXllYXItZGVjYWRlICIrKGEub3B0aW9ucy5wb3J0cmFpdD8iY2FsLXBvcnRyYWl0IjoiY2FsLWxhbmRzY2FwZSIpKTt2YXIgYjtmb3IoYj1wYXJzZUludChhLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTtiJTEyOyliLS07YS5sYWJlbC5odG1sKGIrIiAmIzE1MDsgIisoYisxMSkpO2Zvcih2YXIgYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSwKZD1iO2Q8YisxMjtkKyspe3ZhciBmPWUoIjxkaXY+PC9kaXY+IikuaHRtbChkKS5hcHBlbmRUbyhjKSxrPWEudmlld0RhdGUuY2xvbmUoKS5zZXRZZWFyKGQpO2YuZGF0YSgiZGF0ZSIsayk7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlLmdldEZ1bGxZZWFyKCk+ZHx8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJmEub3B0aW9ucy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk8ZClmLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGYub24oImNsaWNrIixhLmxldmVsRG93bik7ZD09YS50b2RheS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkPT1hLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKTsoZCsxKSUoYS5vcHRpb25zLnBvcnRyYWl0PzM6NCl8fGQ9PWIrMTF8fChjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpKX1hLnJlbmRlckFmdGVyKCl9OwphLnJlbmRlckFmdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY3VycmVudENvbnRhaW5lci5maW5kKCIuY2FsLXJvdyIpLGM9MDtjPGIubGVuZ3RoO2MrKyllKGJbY10pLmFkZENsYXNzKCJjYWwtcm93ICIrImFiY2RlZmciLnNwbGl0KCIiKVtjXSsiICIrKGMlMj8iY2FsLWV2ZW4iOiJjYWwtb2RkIikpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9wdGlvbnMub25WaWV3Q2hhbmdlKWEub3B0aW9ucy5vblZpZXdDaGFuZ2UoYS52aWV3LGEuc2VsZWN0ZWREYXRlLGEudmlld0RhdGUpfTthLnNsaWRlTGVmdD1mdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZyYmKGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50cmFuc2l0aW9uaW5nPSExKTthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS52aWV3RGF0ZS5hZGQoIk0iLC0xKTticmVhaztjYXNlICJ5ZWFyIjphLnZpZXdEYXRlLmFkZCgieSIsCi0xKTticmVhaztjYXNlICJkZWNhZGUiOmEudmlld0RhdGUuc2V0RnVsbFllYXIoYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLTEyKX1hLnJlbmRlcigpO2EudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuY3NzKHtsZWZ0Oi1hLmN1cnJlbnRDb250YWluZXIud2lkdGgoKX0pLmFuaW1hdGUoe2xlZnQ6MH0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24pO2EudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLmFuaW1hdGUoe2xlZnQ6YS50ZW1wQ29udGFpbmVyLndpZHRoKCl9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3Moe2xlZnQ6MH0pO2EudHJhbnNpdGlvbmluZz0hMX0pfTthLnNsaWRlUmlnaHQ9ZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmcmJihhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudHJhbnNpdGlvbmluZz0hMSk7YS5zd2l0Y2hDb250YWluZXJzKCk7CnN3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnZpZXdEYXRlLmFkZCgiTSIsMSk7YnJlYWs7Y2FzZSAieWVhciI6YS52aWV3RGF0ZS5hZGQoInkiLDEpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS52aWV3RGF0ZS5zZXRGdWxsWWVhcihhLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCkrMTIpfWEucmVuZGVyKCk7YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5jc3Moe2xlZnQ6YS5jdXJyZW50Q29udGFpbmVyLndpZHRoKCl9KS5hbmltYXRlKHtsZWZ0OjB9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uKTthLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5hbmltYXRlKHtsZWZ0Oi1hLnRlbXBDb250YWluZXIud2lkdGgoKX0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24sZnVuY3Rpb24oKXtlKHRoaXMpLmNzcyh7bGVmdDowfSk7YS50cmFuc2l0aW9uaW5nPSExfSl9O2EubGV2ZWxEb3duPWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcpe2Euc3dpdGNoQ29udGFpbmVycygpOwphLnZpZXdEYXRlPWUoYi50YXJnZXQpLmRhdGEoImRhdGUiKTtzd2l0Y2goYS52aWV3KXtjYXNlICJ5ZWFyIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlclllYXIoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLmxldmVsVXA9ZnVuY3Rpb24oKXtpZigiZGVjYWRlIiE9YS52aWV3JiYhYS50cmFuc2l0aW9uaW5nKXthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPQohMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5jaGFuZ2VWaWV3PWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcmJmIhPWEudmlldyl7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGIpe2Nhc2UgIm1vbnRoIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EudXBkYXRlTWluRGF0ZT1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nJiYoYj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYiksbnVsbCE9PWIpKXthLm9wdGlvbnMubWluRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKGIpOwphLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLnVwZGF0ZU1heERhdGU9ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyYmKGI9bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpLG51bGwhPT1iKSl7YS5vcHRpb25zLm1heERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShiKTthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpOwpicmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5zd2l0Y2hDb250YWluZXJzPWZ1bmN0aW9uKCl7YS5jdXJyZW50Q29udGFpbmVyPWEuY3VycmVudENvbnRhaW5lci5oYXNDbGFzcygiYSIpP2EuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIik6YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKTthLnRlbXBDb250YWluZXI9YS50ZW1wQ29udGFpbmVyLmhhc0NsYXNzKCJhIik\/YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKTphLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpO2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpLnJlbW92ZUNsYXNzKCJjYWwtbW9udGggY2FsLXllYXItZGVjYWRlICIrCihhLm9wdGlvbnMucG9ydHJhaXQ\/ImNhbC1wb3J0cmFpdCI6ImNhbC1sYW5kc2NhcGUiKSkuY3NzKHtvcGFjaXR5OjEsZGlzcGxheToiYmxvY2siLCJ6LWluZGV4Ijo5OTl9KTthLnRlbXBDb250YWluZXIuY3NzKCJ6LWluZGV4Iiw5OTgpO2EubGFiZWwuYWRkQ2xhc3MoImNhbC1jbGlja2FibGUiKTthLmFycm93TGVmdC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YS5hcnJvd1JpZ2h0LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKX07YS5wb3NpdGlvbj1mdW5jdGlvbigpe3ZhciBiPWEudGFyZ2V0LmdldENvb3JkaW5hdGVzKCk7c3dpdGNoKGEub3B0aW9ucy5hbGlnblgpe2Nhc2UgImxlZnQiOnZhciBjPWIubGVmdDticmVhaztjYXNlICJtaWRkbGUiOmM9Yi5sZWZ0K2Iud2lkdGgvMi1hLmVsZW1lbnQud2lkdGgoKS8yO2JyZWFrO2RlZmF1bHQ6Y2FzZSAicmlnaHQiOmM9Yi5sZWZ0K2Iud2lkdGh9c3dpdGNoKGEub3B0aW9ucy5hbGlnblkpe2Nhc2UgImJvdHRvbSI6Yj1iLnRvcCsKYi5oZWlnaHQ7YnJlYWs7Y2FzZSAidG9wIjpiPWIudG9wLWEuZWxlbWVudC5nZXRIZWlnaHQoKTticmVhaztkZWZhdWx0OmNhc2UgImNlaWxpbmciOmI9Yi50b3B9Yys9cGFyc2VJbnQoYS5vcHRpb25zLm9mZnNldFgpO2IrPXBhcnNlSW50KGEub3B0aW9ucy5vZmZzZXRZKTthLmVsZW1lbnQuY3NzKHt0b3A6YixsZWZ0OmN9KX07YS5zaG93PWZ1bmN0aW9uKCl7YS52aXNpYmxlfHxhLm9wdGlvbnMuYWx3YXlzU2hvd3x8KGEudmlzaWJsZT0hMCxhLmVsZW1lbnQuZmFkZUluKGEub3B0aW9ucy50b2dnbGVEdXJhdGlvbiksYS5wb3NpdGlvbigpKX07YS5oaWRlPWZ1bmN0aW9uKCl7YS52aXNpYmxlJiYhYS5vcHRpb25zLmFsd2F5c1Nob3cmJihhLnZpc2libGU9ITEsYS5lbGVtZW50LmZhZGVPdXQoYS5vcHRpb25zLnRvZ2dsZUR1cmF0aW9uKSl9O2EudG9nZ2xlPWZ1bmN0aW9uKCl7YS52aXNpYmxlP2EuaGlkZSgpOmEuc2hvdygpfTthLm91dHNpZGVDbGljaz1mdW5jdGlvbihiKXtpZihhLnZpc2libGUpe3ZhciBjPQphLmVsZW1lbnQuZ2V0Q29vcmRpbmF0ZXMoKSxkPWEudGFyZ2V0LmdldENvb3JkaW5hdGVzKCk7KGIucGFnZVg8Yy5sZWZ0fHxiLnBhZ2VYPmMubGVmdCtjLndpZHRofHxiLnBhZ2VZPGMudG9wfHxiLnBhZ2VZPmMudG9wK2MuaGVpZ2h0KSYmKGIucGFnZVg8ZC5sZWZ0fHxiLnBhZ2VYPmQubGVmdCtkLndpZHRofHxiLnBhZ2VZPGQudG9wfHxiLnBhZ2VZPmQudG9wK2QuaGVpZ2h0KSYmYS5oaWRlKCl9fTthLnBpY2s9ZnVuY3Rpb24oYil7dm9pZCAwIT09YiYmKGEuc2VsZWN0ZWREYXRlPWUoYi50YXJnZXQpLmRhdGEoImRhdGUiKSxhLmVsZW1lbnQuZmluZCgiLmNhbC1zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJjYWwtc2VsZWN0ZWQiKSxlKGIudGFyZ2V0KS5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIiksZShiLnRhcmdldCkuaGFzQ2xhc3MoImNhbC1vdXRzaWRlIik\/YS5vcHRpb25zLmFsd2F5c1Nob3c\/MDxhLnNlbGVjdGVkRGF0ZS5kaWZmKGEudmlld0RhdGUpP2Euc2xpZGVMZWZ0KCk6CmEuc2xpZGVSaWdodCgpOihhLnZpZXdEYXRlPWEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpLHNldFRpbWVvdXQoYS5yZW5kZXIsMzAwKSk6c2V0VGltZW91dChhLmhpZGUsMTUwKSk7Yj1hLmZvcm1hdChhLnNlbGVjdGVkRGF0ZSk7Yj1lKCI8dGV4dGFyZWEgLz4iKS5odG1sKGIpLnRleHQoKTtpZighYS5vcHRpb25zLmluamVjdEluc2lkZVRhcmdldClzd2l0Y2goYS50YXJnZXQucHJvcCgidGFnTmFtZSIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgImlucHV0IjphLnRhcmdldC52YWwoYik7YnJlYWs7ZGVmYXVsdDphLnRhcmdldC5odG1sKGIpfXZvaWQgMCE9PWEuaGlkZGVuSW5wdXQmJmEuaGlkZGVuSW5wdXQuc2V0KCJ2YWx1ZSIsYS5mb3JtYXQoYS5zZWxlY3RlZERhdGUsYS5vcHRpb25zLmhpZGRlbklucHV0Rm9ybWF0KSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEub3B0aW9ucy5vblNlbGVjdClhLm9wdGlvbnMub25TZWxlY3QoYS5zZWxlY3RlZERhdGUpO3JldHVybiBhfTsKYS5mb3JtYXQ9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz10aGlzLm9wdGlvbnMuZm9ybWF0KTtpZih2b2lkIDAhPT1iKXJldHVybiBjPWMucmVwbGFjZSgvJShbYS16JV0pL2dpLGZ1bmN0aW9uKGQsZil7c3dpdGNoKGYpe2Nhc2UgIkQiOnJldHVybiBiLmdldCgiZGF0ZSIpO2Nhc2UgIm4iOnJldHVybiBiLmdldCgibW8iKSsxO2Nhc2UgInQiOnJldHVybiBwYXJzZUludChiLmdldFRpbWUoKS8xRTMpfXJldHVybiIlIitmfSksYi5mb3JtYXQoYyl9O2Eub25LZXlEb3duPWZ1bmN0aW9uKGIpe2lmKGEub3B0aW9ucy5rZXlOYXZpZ2F0aW9uKXt2YXIgYz1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLGQ9ITAsZj0hMTtzd2l0Y2goYi53aGljaCl7Y2FzZSAzNzpjLmFkZCgiZCIsLTEpO2Y9ITA7ZD0hMTticmVhaztjYXNlIDM5OmMuYWRkKCJkIiwxKTtmPSEwO2JyZWFrO2Nhc2UgMzg6Yy5hZGQoIk0iLC0xKTtmPSEwO2Q9ITE7YnJlYWs7Y2FzZSA0MDpjLmFkZCgiTSIsMSk7Zj0hMDticmVhazsKY2FzZSA5OnNldFRpbWVvdXQoYS5oaWRlLDE1MCl9ZiYmKGM9YS5jb3JyZWN0RGF0ZShjLGQpLDAhPT1hLnNlbGVjdGVkRGF0ZS5kaWZmKGMpJiZhLnNldERhdGUoYykpfWlmKGEub3B0aW9ucy5kaXNhbGxvd1VzZXJJbnB1dClyZXR1cm4hMX07YS5vbktleVVwPWZ1bmN0aW9uKCl7L15cZHs0fS1cZHsyfS1cZHsyfSQvLnRlc3QoYS50YXJnZXQudmFsKCkpJiYoYS5zZXREYXRlKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLnRhcmdldC52YWwoKSkpLGEudGFyZ2V0LnJlbW92ZUNsYXNzKCJpbnZhbGlkSW5wdXQgdG9vbHRpcCIpLnJlbW92ZUF0dHIoInRpdGxlIikpOy9eXGR7Mn0tLy50ZXN0KGEudGFyZ2V0LnZhbCgpKXx8L15cZHs0fS0oMVszLTldfChbMi05XVswLTldKSkvLnRlc3QoYS50YXJnZXQudmFsKCkpP2EudGFyZ2V0LmFkZENsYXNzKCJpbnZhbGlkSW5wdXQiKS5hdHRyKCJ0aXRsZSIsZS5uZWJMYW5nLmludmFsaWREYXRlRm9ybWF0KS50b29sdGlwKHt0b29sdGlwQ2xhc3M6ImFsYnVtX3Rvb2x0aXAiLApwb3NpdGlvbjp7bXk6ImNlbnRlciB0b3ArMzAiLGF0OiIifSxzaG93OntlZmZlY3Q6ImZhZGVJbiIsZHVyYXRpb246NTAwfSxjbG9zZTpmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlKCl9fSk6YS50YXJnZXQucmVtb3ZlQ2xhc3MoImludmFsaWRJbnB1dCB0b29sdGlwIikucmVtb3ZlQXR0cigidGl0bGUiKX07YS5jb3JyZWN0RGF0ZT1mdW5jdGlvbihiLGMpe3ZvaWQgMD09PWMmJihjPSEwKTt2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmMDxiLmRpZmYoYS5vcHRpb25zLm1pbkRhdGUpP2I9YS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKTp2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmMD5iLmRpZmYoYS5vcHRpb25zLm1heERhdGUpJiYoYj1hLm9wdGlvbnMubWF4RGF0ZS5jbG9uZSgpKTtmb3IodmFyIGQ9MDt2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cyYmYS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMuY29udGFpbnMoYi5mb3JtYXQoIkUiKS50b0ludCgpKXx8CnZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiYwPGIuZGlmZihhLm9wdGlvbnMubWluRGF0ZSl8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYwPmIuZGlmZihhLm9wdGlvbnMubWF4RGF0ZSl8fHZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzJiZhLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5jb250YWlucyhhLmZvcm1hdChiLCIldCIpKTspe2lmKDMxPT1kKWM9IWM7ZWxzZSBpZig2Mj09ZCl7Yj1hLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpO2JyZWFrfWM\/Yi5hZGQoImQiLDEpOmIuYWRkKCJkIiwtMSk7ZCsrfXJldHVybiBifTthLnNldERhdGU9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz0hMCk7Yj1uZWJEYXRlRm4uY2xlYXJUaW1lKCJkYXRlIj09dHlwZW9mIGI\/YjpuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYikpO251bGwhPT1iJiYoYS5zZWxlY3RlZERhdGU9YS5jb3JyZWN0RGF0ZShiKSxhLnZpZXdEYXRlPWEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpLAphLnJlbmRlcigpLGMmJmEucGljaygpKTtyZXR1cm4gYX07YS5nZXREYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc2VsZWN0ZWREYXRlfTthLmluaXQoKX07ZS5mbi5uZWJDYWw9ZnVuY3Rpb24oaCxnKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBofHwib2JqZWN0Ij09dHlwZW9mIGgpe3ZhciBsPW5ldyBlLm5lYkNhbCh0aGlzLGgpO2UodGhpcykuZGF0YSgibmViQ2FsIixsKX19ZWxzZSBzd2l0Y2goaCl7Y2FzZSAiY2hhbmdlVmlldyI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikuY2hhbmdlVmlldyhnKTticmVhaztjYXNlICJtaW5EYXRlIjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS51cGRhdGVNaW5EYXRlKGcpO2JyZWFrO2Nhc2UgIm1heERhdGUiOmlmKCJ1bmRlZmluZWQiPT0KdHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS51cGRhdGVNYXhEYXRlKGcpO2JyZWFrO2Nhc2UgInNldERhdGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnNldERhdGUoZyk7YnJlYWs7Y2FzZSAicmVwb3NpdGlvbiI6ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5wb3NpdGlvbigpfX0pfTtlLmZuLmdldENvb3JkaW5hdGVzPWZ1bmN0aW9uKGgpe2g9ZSh0aGlzKS5vZmZzZXQoKTt2YXIgZz1lKHRoaXMpLndpZHRoKCksbD1lKHRoaXMpLmhlaWdodCgpLGE9ZSh3aW5kb3cpLndpZHRoKCktaC5sZWZ0LWcsYj1lKHdpbmRvdykuaGVpZ2h0KCktaC50b3AtbDtyZXR1cm57dG9wOmgudG9wLGxlZnQ6aC5sZWZ0LHdpZHRoOmcsaGVpZ2h0OmwscmlnaHQ6YSxib3R0b206Yn19fSkoalF1ZXJ5KTsKLyoqIC9qcy92dWUvdnVlLm1pbi5qcyAqKi8KLyohDQogKiBWdWUuanMgdjIuNi4xMQ0KICogKGMpIDIwMTQtMjAxOSBFdmFuIFlvdQ0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLg0KICovDQohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT1lfHxzZWxmKS5WdWU9dCgpfSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIHQoZSl7cmV0dXJuIG51bGw9PWV9ZnVuY3Rpb24gbihlKXtyZXR1cm4gbnVsbCE9ZX1mdW5jdGlvbiByKGUpe3JldHVybiEwPT09ZX1mdW5jdGlvbiBpKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHwic3ltYm9sIj09dHlwZW9mIGV8fCJib29sZWFuIj09dHlwZW9mIGV9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZX12YXIgYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1hLmNhbGwoZSl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1wYXJzZUZsb2F0KFN0cmluZyhlKSk7cmV0dXJuIHQ+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+Jyx0cy5pbm5lckhUTUwuaW5kZXhPZigiJiMxMDsiKT4wfXZhciBvcz0hIXomJmlzKCExKSxhcz0hIXomJmlzKCEwKSxzcz1nKGZ1bmN0aW9uKGUpe3ZhciB0PVluKGUpO3JldHVybiB0JiZ0LmlubmVySFRNTH0pLGNzPXduLnByb3RvdHlwZS4kbW91bnQ7cmV0dXJuIHduLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24oZSx0KXtpZigoZT1lJiZZbihlKSk9PT1kb2N1bWVudC5ib2R5fHxlPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXJldHVybiB0aGlzO3ZhciBuPXRoaXMuJG9wdGlvbnM7aWYoIW4ucmVuZGVyKXt2YXIgcj1uLnRlbXBsYXRlO2lmKHIpaWYoInN0cmluZyI9PXR5cGVvZiByKSIjIj09PXIuY2hhckF0KDApJiYocj1zcyhyKSk7ZWxzZXtpZighci5ub2RlVHlwZSlyZXR1cm4gdGhpcztyPXIuaW5uZXJIVE1MfWVsc2UgZSYmKHI9ZnVuY3Rpb24oZSl7aWYoZS5vdXRlckhUTUwpcmV0dXJuIGUub3V0ZXJIVE1MO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmFwcGVuZENoaWxkKGUuY2xvbmVOb2RlKCEwKSksdC5pbm5lckhUTUx9KGUpKTtpZihyKXt2YXIgaT1ycyhyLHtvdXRwdXRTb3VyY2VSYW5nZTohMSxzaG91bGREZWNvZGVOZXdsaW5lczpvcyxzaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWY6YXMsZGVsaW1pdGVyczpuLmRlbGltaXRlcnMsY29tbWVudHM6bi5jb21tZW50c30sdGhpcyksbz1pLnJlbmRlcixhPWkuc3RhdGljUmVuZGVyRm5zO24ucmVuZGVyPW8sbi5zdGF0aWNSZW5kZXJGbnM9YX19cmV0dXJuIGNzLmNhbGwodGhpcyxlLHQpfSx3bi5jb21waWxlPXJzLHdufSk7Ci8qKiAvanMvdnVlL3Z1ZS10aGUtbWFzay5qcyAqKi8KdmFyIF9fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyNS0wNS0yMyAxNzowNTozOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzM6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDA6NTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTA6NDEiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjEtMTItMTUgMTI6NTE6MjQiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGgsYyl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1jKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sYyk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuVnVlVGhlTWFzaz1jKCk6aC5WdWVUaGVNYXNrPWMoKX0pKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaCl7ZnVuY3Rpb24gYyhkKXtpZihhW2RdKXJldHVybiBhW2RdLmV4cG9ydHM7dmFyIGU9YVtkXT17aTpkLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIGhbZF0uY2FsbChlLmV4cG9ydHMsZSxlLmV4cG9ydHMsYyksZS5sPSEwLGUuZXhwb3J0c312YXIgYT17fTtyZXR1cm4gYy5tPWgsYy5jPWEsYy5pPWZ1bmN0aW9uKGQpe3JldHVybiBkfSxjLmQ9ZnVuY3Rpb24oZCxlLGwpe2MubyhkLGUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxlLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCwKZ2V0Omx9KX0sYy5uPWZ1bmN0aW9uKGQpe3ZhciBlPWQmJmQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBkLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGR9O3JldHVybiBjLmQoZSwiYSIsZSksZX0sYy5vPWZ1bmN0aW9uKGQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpfSxjLnA9Ii4iLGMoYy5zPTEwKX0oW2Z1bmN0aW9uKGgsYyl7aC5leHBvcnRzPXsiIyI6e3BhdHRlcm46L1xkL30sWDp7cGF0dGVybjovWzAtOWEtekEtWl0vfSxTOntwYXR0ZXJuOi9bYS16QS1aXS99LEE6e3BhdHRlcm46L1thLXpBLVpdLyx0cmFuc2Zvcm06ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9Mb2NhbGVVcHBlckNhc2UoKX19LGE6e3BhdHRlcm46L1thLXpBLVpdLyx0cmFuc2Zvcm06ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9Mb2NhbGVMb3dlckNhc2UoKX19LCIhIjp7ZXNjYXBlOiEwfX19LGZ1bmN0aW9uKGgsYyxhKXtmdW5jdGlvbiBkKGIpe3ZhciBmPQpkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gZi5pbml0RXZlbnQoYiwhMCwhMCksZn12YXIgZT1hKDIpO2g9YSgwKTt2YXIgbD1hLm4oaCk7Yy5hPWZ1bmN0aW9uKGIsZil7dmFyIGc9Zi52YWx1ZTtpZigoQXJyYXkuaXNBcnJheShnKXx8InN0cmluZyI9PXR5cGVvZiBnKSYmKGc9e21hc2s6Zyx0b2tlbnM6bC5hfSksIklOUFVUIiE9PWIudGFnTmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpKXtmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iik7aWYoMSE9PWYubGVuZ3RoKXRocm93IEVycm9yKCJ2LW1hc2sgZGlyZWN0aXZlIHJlcXVpcmVzIDEgaW5wdXQsIGZvdW5kICIrZi5sZW5ndGgpO2I9ZlswXX1iLm9uaW5wdXQ9ZnVuY3Rpb24obSl7aWYobS5pc1RydXN0ZWQpe3ZhciBrPWIuc2VsZWN0aW9uRW5kO209Yi52YWx1ZVtrLTFdO2ZvcihiLnZhbHVlPWEuaShlLmEpKGIudmFsdWUsZy5tYXNrLCEwLGcudG9rZW5zKTtrPGIudmFsdWUubGVuZ3RoJiZiLnZhbHVlLmNoYXJBdChrLQoxKSE9PW07KWsrKztiPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmKGIuc2V0U2VsZWN0aW9uUmFuZ2UoayxrKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5zZXRTZWxlY3Rpb25SYW5nZShrLGspfSwwKSk7Yi5kaXNwYXRjaEV2ZW50KGQoImlucHV0IikpfX07Zj1hLmkoZS5hKShiLnZhbHVlLGcubWFzaywhMCxnLnRva2Vucyk7ZiE9PWIudmFsdWUmJihiLnZhbHVlPWYsYi5kaXNwYXRjaEV2ZW50KGQoImlucHV0IikpKX19LGZ1bmN0aW9uKGgsYyxhKXt2YXIgZD1hKDYpLGU9YSg1KTtjLmE9ZnVuY3Rpb24obCxiKXt2YXIgZj0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLGc9YXJndW1lbnRzWzNdO3JldHVybiBBcnJheS5pc0FycmF5KGIpP2EuaShlLmEpKGQuYSxiLGcpKGwsYixmLGcpOmEuaShkLmEpKGwsYixmLGcpfX0sZnVuY3Rpb24oaCxjLGEpe2Z1bmN0aW9uIGQoZyl7Zy5jb21wb25lbnQoYi5hLm5hbWUsYi5hKTsKZy5kaXJlY3RpdmUoIm1hc2siLGwuYSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2g9YSgwKTt2YXIgZT1hLm4oaCksbD1hKDEpO2g9YSg3KTt2YXIgYj1hLm4oaCk7YS5kKGMsIlRoZU1hc2siLGZ1bmN0aW9uKCl7cmV0dXJuIGIuYX0pO2EuZChjLCJtYXNrIixmdW5jdGlvbigpe3JldHVybiBsLmF9KTthLmQoYywidG9rZW5zIixmdW5jdGlvbigpe3JldHVybiBlLmF9KTthLmQoYywidmVyc2lvbiIsZnVuY3Rpb24oKXtyZXR1cm4gZn0pO3ZhciBmPSIwLjExLjEiO2MuZGVmYXVsdD1kOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuVnVlJiZ3aW5kb3cuVnVlLnVzZShkKX0sZnVuY3Rpb24oaCxjLGEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtoPWEoMSk7dmFyIGQ9YSgwKSxlPWEubihkKSxsPWEoMik7Yy5kZWZhdWx0PXtuYW1lOiJUaGVNYXNrIixwcm9wczp7dmFsdWU6W1N0cmluZywKTnVtYmVyXSxtYXNrOnt0eXBlOltTdHJpbmcsQXJyYXldLHJlcXVpcmVkOiEwfSxtYXNrZWQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSx0b2tlbnM6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5hfX19LGRpcmVjdGl2ZXM6e21hc2s6aC5hfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2xhc3RWYWx1ZTpudWxsLGRpc3BsYXk6dGhpcy52YWx1ZX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbihiKXtiIT09dGhpcy5sYXN0VmFsdWUmJih0aGlzLmRpc3BsYXk9Yil9LG1hc2tlZDpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCh0aGlzLmRpc3BsYXkpfX0sY29tcHV0ZWQ6e2NvbmZpZzpmdW5jdGlvbigpe3JldHVybnttYXNrOnRoaXMubWFzayx0b2tlbnM6dGhpcy50b2tlbnMsbWFza2VkOnRoaXMubWFza2VkfX19LG1ldGhvZHM6e29uSW5wdXQ6ZnVuY3Rpb24oYil7Yi5pc1RydXN0ZWR8fHRoaXMucmVmcmVzaChiLnRhcmdldC52YWx1ZSl9LHJlZnJlc2g6ZnVuY3Rpb24oYil7dGhpcy5kaXNwbGF5PQpiO2I9YS5pKGwuYSkoYix0aGlzLm1hc2ssdGhpcy5tYXNrZWQsdGhpcy50b2tlbnMpO2IhPT10aGlzLmxhc3RWYWx1ZSYmKHRoaXMubGFzdFZhbHVlPWIsdGhpcy4kZW1pdCgiaW5wdXQiLGIpKX19fX0sZnVuY3Rpb24oaCxjLGEpe2MuYT1mdW5jdGlvbihkLGUsbCl7cmV0dXJuIGU9ZS5zb3J0KGZ1bmN0aW9uKGIsZil7cmV0dXJuIGIubGVuZ3RoLWYubGVuZ3RofSksZnVuY3Rpb24oYixmKXtmb3IodmFyIGc9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxtPTA7bTxlLmxlbmd0aDspe3ZhciBrPWVbbV07bSsrO3ZhciBuPWVbbV07aWYoIShuJiZkKGIsbiwhMCxsKS5sZW5ndGg+ay5sZW5ndGgpKXJldHVybiBkKGIsayxnLGwpfXJldHVybiIifX19LGZ1bmN0aW9uKGgsYyxhKXtjLmE9ZnVuY3Rpb24oZCxlKXt2YXIgbD0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLGI9CmFyZ3VtZW50c1szXTtkPWR8fCIiO2U9ZXx8IiI7Zm9yKHZhciBmPTAsZz0wLG09IiI7ZjxlLmxlbmd0aCYmZzxkLmxlbmd0aDspe3ZhciBrPWVbZl0sbj1iW2tdLHA9ZFtnXTtuJiYhbi5lc2NhcGU\/KG4ucGF0dGVybi50ZXN0KHApJiYobSs9bi50cmFuc2Zvcm0\/bi50cmFuc2Zvcm0ocCk6cCxmKyspLGcrKyk6KG4mJm4uZXNjYXBlJiYoZisrLGs9ZVtmXSksbCYmKG0rPWspLHA9PT1rJiZnKyssZisrKX1mb3IoZz0iIjtmPGUubGVuZ3RoJiZsOyl7az1lW2ZdO2lmKGJba10pe2c9IiI7YnJlYWt9Zys9aztmKyt9cmV0dXJuIG0rZ319LGZ1bmN0aW9uKGgsYyxhKXtjPWEoOCkoYSg0KSxhKDkpLG51bGwsbnVsbCk7aC5leHBvcnRzPWMuZXhwb3J0c30sZnVuY3Rpb24oaCxjKXtoLmV4cG9ydHM9ZnVuY3Rpb24oYSxkLGUsbCl7dmFyIGIsZj1hPWF8fHt9LGc9dHlwZW9mIGEuZGVmYXVsdDsib2JqZWN0IiE9PWcmJiJmdW5jdGlvbiIhPT1nfHwoYj1hLGY9YS5kZWZhdWx0KTthPSJmdW5jdGlvbiI9PQp0eXBlb2YgZj9mLm9wdGlvbnM6ZjtpZihkJiYoYS5yZW5kZXI9ZC5yZW5kZXIsYS5zdGF0aWNSZW5kZXJGbnM9ZC5zdGF0aWNSZW5kZXJGbnMpLGUmJihhLl9zY29wZUlkPWUpLGwpe3ZhciBtPWEuY29tcHV0ZWR8fChhLmNvbXB1dGVkPXt9KTtPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWxba107bVtrXT1mdW5jdGlvbigpe3JldHVybiBufX0pfXJldHVybntlc01vZHVsZTpiLGV4cG9ydHM6ZixvcHRpb25zOmF9fX0sZnVuY3Rpb24oaCxjKXtoLmV4cG9ydHM9e3JlbmRlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuJGNyZWF0ZUVsZW1lbnQ7cmV0dXJuKHRoaXMuX3NlbGYuX2N8fGEpKCJpbnB1dCIse2RpcmVjdGl2ZXM6W3tuYW1lOiJtYXNrIixyYXdOYW1lOiJ2LW1hc2siLHZhbHVlOnRoaXMuY29uZmlnLGV4cHJlc3Npb246ImNvbmZpZyJ9XSxhdHRyczp7dHlwZToidGV4dCJ9LGRvbVByb3BzOnt2YWx1ZTp0aGlzLmRpc3BsYXl9LG9uOntpbnB1dDp0aGlzLm9uSW5wdXR9fSl9LApzdGF0aWNSZW5kZXJGbnM6W119fSxmdW5jdGlvbihoLGMsYSl7aC5leHBvcnRzPWEoMyl9XSl9KTsKLyoqIC9qcy9maW5hbmNlX211bHRpc3RlcC5qcyAqKi8KdmFyIF9fX2QyY19maW5hbmNlbXVsdGlzdGVwanNfY19vbj0iMjAyNi0wNi0xOSAwOTozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihiLGgsbSl7aWYoYj09QXJyYXkucHJvdG90eXBlfHxiPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBiO2JbaF09bS52YWx1ZTtyZXR1cm4gYn07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGIpe2I9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxiLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgaD0wO2g8Yi5sZW5ndGg7KytoKXt2YXIgbT1iW2hdO2lmKG0mJm0uTWF0aD09TWF0aClyZXR1cm4gbX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGIsaCl7dmFyIG09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF07aWYobnVsbD09bSlyZXR1cm4gYltoXTttPWJbbV07cmV0dXJuIHZvaWQgMCE9PW0\/bTpiW2hdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGIsaCxtLG4pe2gmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChiLGgsbSxuKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChiLGgsbSxuKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihiLGgsbSxuKXttPSRqc2NvbXAuZ2xvYmFsO2I9Yi5zcGxpdCgiLiIpO2ZvcihuPTA7bjxiLmxlbmd0aC0xO24rKyl7dmFyIHI9YltuXTtpZighKHIgaW4gbSkpcmV0dXJuO209bVtyXX1iPWJbYi5sZW5ndGgtMV07bj1tW2JdO2g9aChuKTtoIT1uJiZudWxsIT1oJiYkanNjb21wLmRlZmluZVByb3BlcnR5KG0sYix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihiLGgsbSxuKXt2YXIgcj1iLnNwbGl0KCIuIik7Yj0xPT09ci5sZW5ndGg7bj1yWzBdO249IWImJm4gaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciB2PTA7djxyLmxlbmd0aC0xO3YrKyl7dmFyIHk9clt2XTtpZighKHkgaW4gbikpcmV0dXJuO249blt5XX1yPXJbci5sZW5ndGgtMV07bT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09bT9uW3JdOm51bGw7aD1oKG0pO251bGwhPWgmJihiPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMscix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KTpoIT09bSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3JdJiYobT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcl09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2wocik6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrbSsiJCIrciksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShuLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3JdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYj17YTohMH0saD17fTt0cnl7cmV0dXJuIGguX19wcm90b19fPWIsaC5hfWNhdGNoKG0pe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYixoKXtiLl9fcHJvdG9fXz1oO2lmKGIuX19wcm90b19fIT09aCl0aHJvdyBuZXcgVHlwZUVycm9yKGIrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBifTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYil7dmFyIGg9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaDxiLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTpiW2grK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihiKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGIpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3ZhciBoPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gaD9oLmNhbGwoYik6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGIpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihiKXtpZighKGIgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2IrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMueWllbGRSZXN1bHQ9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjpiLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihiLGgpe3RoaXMubmV4dEFkZHJlc3M9aDtyZXR1cm57dmFsdWU6Yn19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGIsaCl7Yj0kanNjb21wLm1ha2VJdGVyYXRvcihiKTt2YXIgbT1iLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhtKTtpZihtLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1tLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9aDtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWIsdGhpcy55aWVsZChtLnZhbHVlLGgpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGIpe3RoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYixoKXt0aGlzLmNhdGNoQWRkcmVzc189Yjt2b2lkIDAhPWgmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYixoKXt0aGlzLm5leHRBZGRyZXNzPWI7dGhpcy5jYXRjaEFkZHJlc3NfPWh8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7Yj10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsaCxtKXttP3RoaXMuZmluYWxseUNvbnRleHRzX1ttXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189aHx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsaCl7aD10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGh8fDApWzBdO2lmKGg9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxoKXtpZihoLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWguanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxoLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1oLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3RoaXMub2JqZWN0Xz1iO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBoIGluIGIpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGgpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYj10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGIgaW4gdGhpcy5vYmplY3RfKXJldHVybiBifXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1ifTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgaD10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGgpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGg\/aFsicmV0dXJuIl06ZnVuY3Rpb24obSl7cmV0dXJue3ZhbHVlOm0sZG9uZTohMH19LGIsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYixoLG0pe3RyeXt2YXIgbj1iLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhuKTtpZighbi5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksbjt2YXIgcj1uLnZhbHVlfWNhdGNoKHYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18odiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7bS5jYWxsKHRoaXMuY29udGV4dF8scik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYj10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGIpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChoKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhoKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7Yj10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihiLmlzRXhjZXB0aW9uKXRocm93IGIuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihiKXt0aGlzLm5leHQ9ZnVuY3Rpb24oaCl7cmV0dXJuIGIubmV4dF8oaCl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oaCl7cmV0dXJuIGIudGhyb3dfKGgpfTt0aGlzLnJldHVybj1mdW5jdGlvbihoKXtyZXR1cm4gYi5yZXR1cm5fKGgpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihiLGgpe2g9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oaCkpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmIucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGgsYi5wcm90b3R5cGUpO3JldHVybiBofTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGgobil7cmV0dXJuIGIubmV4dChuKX1mdW5jdGlvbiBtKG4pe3JldHVybiBiLnRocm93KG4pfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe2Z1bmN0aW9uIHYoeSl7eS5kb25lP24oeS52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHkudmFsdWUpLnRoZW4oaCxtKS50aGVuKHYscil9dihiLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihiKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpKX07CmZ1bmN0aW9uIGluaXRpYWxpemVGaW5hbmNlTXVsdGlTdGVwKGIpe2Z1bmN0aW9uIGgoYyl7c3dpdGNoKGMpe2Nhc2UgIkVtYWlsIHByb3ZpZGVkIjpjYXNlICJQaG9uZSBwcm92aWRlZCI6T3x8KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS50cmlnZ2VyKCJwb3B1cGl6ZXIuc3VibWl0dGVkIiksTz0hMCl9ImZ1bmN0aW9uIj09PXR5cGVvZiBnYVRyYWNrJiZnYVRyYWNrKCJfdHJhY2tFdmVudCIsIlVzZWQtU1JQLUZpbmFuY2UtUG9wdXAiLGMsd2luZG93LmxvY2F0aW9uLmhyZWYsMSl9ZnVuY3Rpb24gbShjKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0QmFubmVyU2VhcmNoQmFyTWFrZXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7dHlwZTpjLnRvTG93ZXJDYXNlKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSBvcHRpb246Zmlyc3QiLApiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGQsZnVuY3Rpb24oZSxmKXskKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJytmLm1ha2UrJyI+JytmLnRpdGxlMisiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiBuKGMsZCl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEJhbm5lclNlYXJjaEJhck1vZGVscz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmJ0b2EoZCksdHlwZTpjLnRvTG93ZXJDYXNlKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsCmIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGUsZnVuY3Rpb24oZixnKXskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1tb2RlbD0iJytnLm1vZGVsTmFtZSsnIiBkYXRhLXllYXI9IicrZy55ZWFyKyciIHZhbHVlPSInK2cudGl0bGUyKyciPicrZy50aXRsZTIrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gcihjLGQsZSl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldE5ld1RyaW1zP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e21ha2U6Yyxtb2RlbDpkLHllYXI6ZX0sc3VjY2VzczpmdW5jdGlvbihmKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLApiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGYsZnVuY3Rpb24oZyxsKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXByaWNlPSInK2wucHJpY2UrJyIgZGF0YS1zdHlsZWlkPSInK2wuc3R5bGVpZCsnIiB2YWx1ZT0iJytsLnRyaW0rJyI+JytsLnRyaW0rIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gdihjLGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRJbnZlbnRvcnlUcmltcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmMsbW9kZWw6ZH0sc3VjY2VzczpmdW5jdGlvbihlKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goZSxmdW5jdGlvbihmLGcpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsCmIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXByaWNlPSInK2cub3JpZ2luYWxwcmljZSsnIiBkYXRhLXZlaGljbGVpZD0iJytnLnZlaGljbGVpZCsnIiBkYXRhLXllYXI9IicrZy55ZWFyKyciIGRhdGEtaXNuZXc9IicrZy5pc25ldysnIiBkYXRhLWlzZGVtbz0iJytnLmRlbW8rJyIgZGF0YS1zdG9ja251bWJlcj0iJytnLnN0b2NrbnVtYmVyKyciIGRhdGEtbWlsZWFnZT0iJytnLm1pbGVhZ2UrJyIgZGF0YS1zdHlsZWlkPSInK2cuc3R5bGVpZCsnIiB2YWx1ZT0iJytnLnRyaW0rJyI+JytnLnRpdGxlKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHkoYyl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldFVzZWRDYWxjdWxhdG9ySFRNTD93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOntjYXJpZDpjfSxzdWNjZXNzOmZ1bmN0aW9uKGQpe2QudmFsaWQ\/KCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmh0bWwoZC5odG1sKSwKJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuZmluZCgiLmNhbGMtZm9ybSIpLmZpbmQoIi51c2VkQ2FsY3VsYXRvckRvd25QYXltZW50IikuYWZ0ZXIoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvclRyYWRlSW4iLGIpLmh0bWwoKSksWCgpLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLmF0dHIoIm1heCIsYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLnNob3coKSk6KGEuZm9ybWRhdGEubm9QYXltZW50PSEwLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmhpZGUoKSxhLm5leHQoITApKX19KX1mdW5jdGlvbiBYKCl7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiKS5vbigiYmx1ciIsCmZ1bmN0aW9uKCl7RCgpfSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubm9PZk1vbnRocyIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGM9JCh0aGlzKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiKS52YWwoYy5hdHRyKCJkYXRhLXJhdGUiKSk7RCgpfSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudEZyZXF1ZW5jeSIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7RCgpfSk7RCgpfWZ1bmN0aW9uIEQoKXt2YXIgYz1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIsYikudmFsKCkucmVwbGFjZSgiLCIsIi4iKSkudG9GaXhlZCgyKS8xMDAsZD1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiLGIpLnZhbCgpKS8xMixlPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubG9hbmFtb3VudCIsCmIpLnZhbCgpKS50b0ZpeGVkKDIpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikubGVuZ3RoJiYoZT1wYXJzZUZsb2F0KGUpK3BhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZmVlYW1vdW50IixiKS52YWwoKS5yZXBsYWNlKCIsIiwiIikpKTsxPT0kKCIjdXNldGF4ZXMiLGIpLnZhbCgpJiYoZSo9cGFyc2VGbG9hdCgkKCIjdGF4ZXMiKS52YWwoKSkudG9GaXhlZCgyKS8xMDArMSk7MDwkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCkmJihlLT1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKSkudG9GaXhlZCgyKSk7dmFyIGY9IiIsZz0xMjtzd2l0Y2goJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudEZyZXF1ZW5jeSIsYikudmFsKCkpe2Nhc2UgIndlZWsiOmc9CjUyO2Y9JCgiI3dlZWtUZXh0IikudmFsKCk7YnJlYWs7Y2FzZSAiMndlZWtzIjpnPTI2O2Y9JCgiIzJ3ZWVrc1RleHQiKS52YWwoKTticmVhaztjYXNlICJtb250aGx5IjpmPSQoIiNtb250aGx5VGV4dCIpLnZhbCgpO2c9MTI7YnJlYWs7Y2FzZSAiYmltb250aGx5IjpmPSQoIiNiaW1vbnRobHlUZXh0IikudmFsKCksZz0yNH1kKj1nOzA8Yz8oYy89ZyxnPU1hdGgucG93KGMrMSxkKSxlKj1jKmcvKGctMSkpOmUvPWQ7ZT1NYXRoLnJvdW5kKDEwMCplKS8xMDA7aXNOYU4oZSkmJihlPTApOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlIixiKS52YWwoIiQiK2UpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlLXR4dCIsYikuaHRtbCgiJCIrZSk7Zj0kKCIjZXN0aW1kYXRlZFBheW1lbnRUZXh0IixiKS52YWwoKS5yZXBsYWNlKCIjI0ZSRVFVRU5DWSMjIixmKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5lc3RpbWF0ZWRUZXh0IiwKYikuaHRtbCgiPHN0cm9uZz4iK2YrIjwvc3Ryb25nPiIpO2Y9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iRmluYW5jZW1lbnQiOiJGaW5hbmNpbmciO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9ZjthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD0iZmluYW5jaW5nIjthLmZvcm1kYXRhLnBheW1lbnRUZXJtPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiLGIpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPWU7YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ9JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpfHwwO2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiLGIpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFJhdGU9JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIiwKYikudmFsKCk7YS5mb3JtZGF0YS52ZWhpY2xlSW5pdGlhbFByaWNlPXBhcnNlSW50KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLGIpLnZhbCgpKTtmPXBhcnNlSW50KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikudmFsKCkucmVwbGFjZSgiLCIsIiIpKTthLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPXBhcnNlSW50KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLGIpLnZhbCgpKStmO2EuZm9ybWRhdGEucGF5bWVudFRvdGFsRmVlPWY7ay5jaGVja1ZhbGlkaXR5KCl9ZnVuY3Rpb24gUCgpeyIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzSW5zdGFudCIsYikudmFsKCkmJigkKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKSwkKGIpLmZpbmQoIi5jb25maXJtYXRpb25UZXh0Iikuc2hvdygpLCQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuaHRtbCgiIiksCiQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuaGlkZSgpKTtpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJiIiPT0kKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoKSl7dmFyIGM9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLnZhbChjLm1ha2UpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5Nb2RlbF0iKS52YWwoYy5tb2RlbCk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblllYXJdIikudmFsKGMueWVhcik7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblRyaW1dIikudmFsKGMudHJpbSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblZhbHVlXSIpLnZhbChjLnZhbHVlKTtfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiKSYmKGM9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiKSksCiQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS5hdHRyKCJkYXRhLWN1cnJlbnQiLGMudmFsdWUpKX1hLnNob3dFcnJvcj0hMTthLnB1c2hQYXJ0aWFsPSExO2suc2V0RGVwYXJ0bWVudCgpO2suc2V0VHJhZGVJbigpO2lmKGsudXNlcklkKCkpJC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEZpbmFuY2VNdWx0aXN0ZXBVc2VySWRBbmREYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpLGRvbWFpbjpRLHNpdGVJZDokKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbEhhbmRsZXJKc29uT2JqZWN0OkpTT04uc3RyaW5naWZ5KEopfSxzdWNjZXNzOmZ1bmN0aW9uKGcpe2cuSUR8fChnLklEPS0xKTtrLnVzZXJJZChnLklEKTtnLmRhdGEmJihhLmZvcm1kYXRhPUpTT04ucGFyc2UoZy5kYXRhKSk7CiIiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiZhLmZvcm1kYXRhLmZpcnN0TmFtZSE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJihhLmZvcm1kYXRhLmZpcnN0TmFtZT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiZhLmZvcm1kYXRhLmxhc3ROYW1lIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYoYS5mb3JtZGF0YS5sYXN0TmFtZT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJmEuZm9ybWRhdGEuZW1haWxBZGRyZXNzIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYoYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCk7CiIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmYS5mb3JtZGF0YS5waG9uZU51bWJlciE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmKGEuZm9ybWRhdGEucGhvbmVOdW1iZXI9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKSk7aWYoZy5lbWFpbEhhbmRsZXJKc29uKXtsZXQgbD1KU09OLnBhcnNlKGcuZW1haWxIYW5kbGVySnNvbik7ZW1haWxIYW5kbGVyLnNlbmRUbz1sLnNlbmRUbztlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG89bC5zZWxlY3RlZFNlbmRUbztlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWwuc2VuZFRvQURGRm9ybWF0O2VtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1sLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0O2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lPQpsLmRlYWxlck5hbWU7ZW1haWxIYW5kbGVyLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPS0xPT09Wy0xLCItMSIsIiJdLmluZGV4T2YoYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvKX1pZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlKXtsZXQgbDthLmZvcm1kYXRhLmZpcnN0TmFtZT1udWxsIT0obD1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiKSk\/bDphLmZvcm1kYXRhLmZpcnN0TmFtZTtsZXQgcDthLmZvcm1kYXRhLmxhc3ROYW1lPW51bGwhPShwPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIikpP3A6YS5mb3JtZGF0YS5sYXN0TmFtZTtsZXQgcTthLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz1udWxsIT0ocT1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJlbWFpbCIpKT9xOmEuZm9ybWRhdGEuZW1haWxBZGRyZXNzO2xldCB0O2EuZm9ybWRhdGEucGhvbmVOdW1iZXI9bnVsbCE9KHQ9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgicGhvbmUiKSk\/CnQ6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKX0wPT1hLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMmJjA9PWEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMmJihhLmZvcm1kYXRhLmFkZHJlc3M9IiIpO2cuc3RlcCYmKGEuc3RlcD1OdW1iZXIoZy5zdGVwKSxhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIitnLnN0ZXBdKTskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwLnNob3ciKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuc2hvdygpO2suc2V0Q3VycmVudE1ha2VNb2RlbFllYXIoKTtrLm9uU2hvd0Z1bmN0aW9uVG9SdW4oKTthLmZpcnN0U3RlcD0hMX0sY29tcGxldGU6ZnVuY3Rpb24oZyl7aWYoIWcuZGF0YSlyZXR1cm4gay51c2VySWQoLTEpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpLApQKCl9fSk7ZWxzZXthLnB1c2hQYXJ0aWFsPSExOyIiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYoYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCk7IiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYoYS5mb3JtZGF0YS5waG9uZU51bWJlcj1lbWFpbEhhbmRsZXIudXNlclBob25lLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIiwKYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7dmFyIGQ7YS5mb3JtZGF0YS5maXJzdE5hbWU9bnVsbCE9KGQ9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIikpP2Q6YS5mb3JtZGF0YS5maXJzdE5hbWU7dmFyIGU7YS5mb3JtZGF0YS5sYXN0TmFtZT1udWxsIT0oZT1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIpKT9lOmEuZm9ybWRhdGEubGFzdE5hbWU7dmFyIGY7YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9bnVsbCE9KGY9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/ZjphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgZzthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPShnPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpP2c6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsCmIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcil9ay5oYXNEZWFsZXJTZWxlY3RWYWx1ZXMoKSYmay5zZXREZWFsZXJTZWxlY3RFbWFpbCgpOyQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykubGVuZ3RoJiYiIiE9JCgnI21pbmlmb3JtIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS52YWwoKSYmKGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0kKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLnZhbCgpLGEuZm9ybWRhdGEubXVsdGlGcm9tTWluaT0hMCk7JCgiI21heF9idWRnZXQiKS5sZW5ndGgmJihhLnB1c2hQYXJ0aWFsPSEwLGQ9IiIsZT1wYXJzZUZsb2F0KCQoIiNtYXhfYnVkZ2V0IikudmFsKCkucmVwbGFjZSgvW14wLTkuLV0rL2csIiIpKSxkPWsuZ2V0Q3VycmVudEJ1ZGdldChlKSwiMSI9PXUmJmlzTmFOKGUpJiYoZD0iIiksYS5mb3JtZGF0YS5idWRnZXQ9CmQpOyQoIi50cmFjay1wcm9ncmVzcyIpLmxlbmd0aCYmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJihhLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmc9IkZJTkFOQ0VfRk9STV9BTFJFQURZX0RSSVZJTkdfVFJBREUiKSxkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJyZXRhaWxfdHJhY2tfZGF0YSIpLChkPUpTT04ucGFyc2UoZCkpJiZkLnZhbHVlJiYoZD1KU09OLnBhcnNlKGQudmFsdWUpKSYmZC5wYXltZW50JiZkLnBheW1lbnQucGF5bWVudFZhbHVlJiYoZT1kLnBheW1lbnQucGF5bWVudFZhbHVlLGQ9ZVswXSxlPWVbM10sZj0iIixkPSJtb250aGx5Ij09ZT9wYXJzZUZsb2F0KGQpOiJ3ZWVrbHkiPT1lPzUyKnBhcnNlRmxvYXQoZCkvMTI6InNlbWltb250aGx5Ij09ZT8yNCpwYXJzZUZsb2F0KGQpLzEyOjI2KnBhcnNlRmxvYXQoZCkvMTIsZj1rLmdldEN1cnJlbnRCdWRnZXQoZCksYS5mb3JtZGF0YS5idWRnZXQ9ZikpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPSJidWRnZXQiXStsYWJlbCcpLmZvckVhY2goZz0+CntnLmlubmVySFRNTD1nLmlubmVySFRNTC5yZXBsYWNlKC8oXCRcZHszLDR9fFxkezMsNH1cJCkvZyxsPT5EMkNVdGlscy5Gb3JtYXQudG9QcmljZShsLnJlcGxhY2UoL1wkL2csIiIpKSl9KTskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwLnNob3ciKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuc2hvdygpOzA9PWEuc3RlcCYmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5oaWRlKCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vbigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk7ay5zZXRDdXJyZW50TWFrZU1vZGVsWWVhcigpfX12YXIgej0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKSwKSz0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fU0VMRUNUIikudmFsKCksRT0kKCIjQURNSU5fTUFOREFUT1JZX0NSRURJVF9CVVJFQVVfQ0hFQ0siKS52YWwoKSxDPSQoIiNBU0tfRk9SX1NJTl9DSEVDSyIpLnZhbCgpLE89ITEsdT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNTZWNvbmRDaGFuY2UiLGIpLnZhbCgpLHg9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzSW5zdGFudCIsYikudmFsKCksRj0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNWd0RSIixiKS52YWwoKSxMPTEsTT1bMSwyLDMsNiw3LDEzLDE0LDE1XSxHPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImVtcGxveW1lbnRTdGF0dXMifV0sUj1bXSxTPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5IiwKdmFsdWU6ImFkZHJlc3MifV0sVT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJyZW50T3JPd24ifSx7ZnVuYzoidmFsaWRhdGVJc051bWJlciIsdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9XSxWPVtdLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOiIwIj09ej80OiJiZWZvcmUiPT1LPzE5OjQsc3RlcDQ6IjAiPT16PzU6ImJlZm9yZSI9PUs\/NToxOSxzdGVwNTo2LHN0ZXA2Ojcsc3RlcDc6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMDoxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAxMzoxNixzdGVwMTQ6MTYsc3RlcDE1OjE2LHN0ZXAxNjoxNyxzdGVwMTc6IjAiPT16PzE5OjA9PUU\/IjAiPT1DPyIxIj09dT8yMzoiZG9uZSI6MjI6MjAsc3RlcDE4OiIwIj09ej8wPT1FPyIwIj09Qz8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwOiJiZWZvcmUiPT1LPzQ6NSxzdGVwMTk6MTgsCnN0ZXAyMDoiMCI9PUM\/IjEiPT11PzIzOiJkb25lIjoyMixzdGVwMjI6IjEiPT11PzIzOiJkb25lIixzdGVwMjM6ImRvbmUifTtvcHRpb25hbFN0ZXBzPVtdOyIxIj09dSYmKG9wdGlvbmFsU3RlcHM9WzIzXSwiMCI9PUMmJihvcHRpb25hbFN0ZXBzPVsyMiwyM10pLE09WzEsMiwzLDYsNywxNCwxNV0sRz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifV0sQj17c3RlcDA6MSxzdGVwMToyLHN0ZXAyOjMsc3RlcDM6MTgsc3RlcDQ6MTksc3RlcDU6NixzdGVwNjo3LHN0ZXA3Ojgsc3RlcDg6OSxzdGVwOToyMixzdGVwMTA6MTEsc3RlcDExOjEyLHN0ZXAxMjoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LApzdGVwMTU6MTYsc3RlcDE2OjIzLHN0ZXAxODo1LHN0ZXAxOToxMSxzdGVwMjA6ImRvbmUiLHN0ZXAyMjo0LHN0ZXAyMzowPT1FPyJkb25lIjoyMH0pOyIxIj09eCYmKG9wdGlvbmFsU3RlcHM9WzIyXSxMPTI0LE09WzEsMiwzLDYsNywxNCwxNV0sRz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8iLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZSIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llciIsdmFsdWU6ImFkZHJlc3NFbXBsb3llciJ9XSxSPVt7ZnVuYzoidmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvIix2YWx1ZToiZW1wbG95bWVudEFkZGVkSW5mbzIifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8yIiwKdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMiIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIyIn1dLFM9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZmlyc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJsYXN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToidGl0bGUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MiLHZhbHVlOiJhZGRyZXNzIn1dLEI9e3N0ZXAwOjI0LHN0ZXAyNDoyNSxzdGVwMjU6NCxzdGVwNDoxOSxzdGVwMTk6MTgsc3RlcDE4OjUsc3RlcDU6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDI3OjI4LHN0ZXAyODoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNixzdGVwMTY6MTcsc3RlcDE3OjIyLApzdGVwMjk6MjIsc3RlcDIyOjA9PUU\/MjY6MjAsc3RlcDIwOjI2LHN0ZXAyNjoiZG9uZSJ9LCIxIj09RiYmKEc9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm9WVyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm9WVyIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lVlciLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXJWVyIsdmFsdWU6ImFkZHJlc3NFbXBsb3llciJ9XSxCLnN0ZXAxNj0yMixCLnN0ZXAyMj0zMCxCLnN0ZXAzMD0iZG9uZSIsVT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJyZW50T3JPd24ifSx7ZnVuYzoidmFsaWRhdGVJc051bWJlciIsdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLAp2YWx1ZToibW9udGhseVBheW1lbnQifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5RGlzYnVyc2VtZW50VlciLHZhbHVlOiJtb250aGx5RGlzYnVyc2VtZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLHZhbHVlOiJtb250aGx5RGlzYnVyc2VtZW50In1dLFY9W3tmdW5jOiJpbml0RGlzYnVyc21lbnRWVyJ9XSkpO3ZhciBhPW5ldyBWdWUoe2VsOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKVswXSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NvbnRleHQ6YixhamF4UHJvY2VzczohMSx1c2VySWQ6IiIsY29udmVyc2lvblN1Ym1pdHRlZDohMSxzaG93SWNvbjohMCxwdXNoUGFydGlhbDohMSxjdXJyZW50RGVwdDoiTkVXIixpbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0OiEwLHN0ZXA6MCxuZXh0U3RlcDpMLGZpcnN0U3RlcDohMCxjYWxjdWxhdG9yRnVuY3Rpb25zOiIiLGNyZWRpdERlY2lzaW9uSFRNTDoiIixmb3JtZGF0YTp7dmVoaWNsZVR5cGU6IiIsYnVkZ2V0OiIiLApjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIixiaXJ0aGRhdGVEYXk6IiIsYWRkcmVzczoiIixzcGxpdEFkZHJlc3M6W10sYWRkcmVzc195ZWFyczowLGFkZHJlc3NfbW9udGhzOjAsYWRkcmVzczI6IiIsc3BsaXRBZGRyZXNzMjpbXSxhZGRyZXNzMl95ZWFyczowLGFkZHJlc3MyX21vbnRoczowLGFkZHJlc3NFbXBsb3llcjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjpbXSxyZW50T3JPd246IiIsbW9udGhseVBheW1lbnQ6MCxtb250aGx5RGlzYnVyc2VtZW50OjAsZW1wbG95bWVudFN0YXR1czoiIixlbXBsb3ltZW50QWRkZWRJbmZvOiIiLGVtcGxveWVyTmFtZToiIixlbXBsb3llclBob25lOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoOjAsZW1wbG95bWVudEFkZGVkSW5mbzI6IiIsZW1wbG95ZXJOYW1lMjoiIiwKZW1wbG95ZXJQaG9uZTI6IiIsZW1wbG95bWVudFN0YXR1c1llYXIyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoMjowLGFkZHJlc3NFbXBsb3llcjI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXIyOltdLHdvcmtpbmdXaGlsZUluU2Nob29sOiIiLG90aGVyRW1wbG95bWVudFN0YXR1czoiIixtb250aGx5SW5jb21lOjAsbW9udGhseUluY29tZV95ZWFyczowLG1vbnRobHlJbmNvbWVfbW9udGhzOjAsdGl0bGU6IiIsZmlyc3ROYW1lOiIiLGxhc3ROYW1lOiIiLHBob25lTnVtYmVyOiIiLGN1cnJlbnRNYWtlOiIiLGN1cnJlbnRNb2RlbDoiIixjdXJyZW50TW9kZWxUZXh0OiIiLGN1cnJlbnRZZWFyOiIiLGN1cnJlbnRTdG9ja051bWJlcjoiIixjdXJyZW50TWlsZWFnZToxMCxjdXJyZW50VHJpbToiIixjdXJyZW50U3R5bGVpZDoiIixjdXJyZW50Q2FySWQ6IiIscGF5bWVudFR5cGU6IiIscGF5bWVudFR5cGVSZWFsOiIiLHBheW1lbnRUZXJtOiIiLHBheW1lbnRSYXRlVHlwZToiIixwYXltZW50VmFsdWU6IiIsCmJhc2VwYXltZW50OiIiLHBheW1lbnRUb3RhbEluY2VudGl2ZTowLHBheW1lbnRUb3RhbEZlZTowLHBheW1lbnRHU1Q6MCxwYXltZW50SFNUOjAscGF5bWVudFBTVDowLHBheW1lbnREb3duUGF5bWVudDowLHBheW1lbnRLbUFsbG93YW5jZTowLHBheW1lbnRJbnRlcnZhbDoiIixwYXltZW50UmF0ZToiIixwYXltZW50UmVzaWR1YWxWYWx1ZTowLG5vUGF5bWVudDohMSxtdWx0aV9kZWFsZXJfc2VuZFRvOiIiLGNyZWRpdEJ1cmVhdUNyZWRpdDoiTk8iLFNJTjoiIixhZGRlZEluZm86IiIsdmVoaWNsZVNhbGVzRGVwdDoib3RoZXIiLHZlaGljbGVQcmljZToiIix2ZWhpY2xlVHJhbnNtaXNzaW9uOiIiLHZlaGljbGVUcmltOiIiLHZlaGljbGVDb2xvcjoiIixpbml0aWFsVGl0bGVTaG93OiEwLG11bHRpRnJvbU1pbmk6ITEsdHJhZGVJbk1ha2U6IiIsdHJhZGVJbk1vZGVsOiIiLHRyYWRlSW5ZZWFyOiIiLHRyYWRlSW5UcmltOiIiLHRyYWRlSW5WYWx1ZToiIix2ZWhpY2xlSW5pdGlhbFByaWNlOiIiLAp2ZWhpY2xlRmluYWxQcmljZToiIixwYXltZW50RmVlc0xpc3Q6W10scGF5bWVudEluY2VudGl2ZXNMaXN0OltdLGNyZWRpdEFwcGxpY2F0aW9uSWQ6IiIsY29uc2VudEFjY291bnRNb25pdG9yaW5nOiIiLGNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50OiIiLGNvbnNlbnRQaXBlZGE6IiIsY29uc2VudENhc2w6IiIsY29uc2VudFZXOiIifSxuZXh0U3RlcERlZmF1bHRWYWx1ZXM6Qix2YWxpZGF0aW9uUnVsZXM6e3N0ZXAxOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InZlaGljbGVUeXBlIn1dLHN0ZXAyOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImJ1ZGdldCJ9XSxzdGVwMzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJjdXJyZW50bHlEcml2aW5nIn1dLHN0ZXA0Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImVtYWlsQWRkcmVzcyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtYWlsIix2YWx1ZToiZW1haWxBZGRyZXNzIn1dLHN0ZXA1Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsCnZhbHVlOiJtdWx0aV9kZWFsZXJfc2VuZFRvIn1dLHN0ZXA2Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImNyZWRpdFJhdGluZyJ9XSxzdGVwNzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJkb3duT3B0aW9ucyJ9XSxzdGVwODpbe2Z1bmM6InZhbGlkYXRlQmlydGhkYXRlIix2YWx1ZToiIn1dLHN0ZXA5OlQsc3RlcDExOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUFkZHJlc3NUaW1lIix2YWx1ZToiIn1dLHN0ZXAxMjpVLHN0ZXAxMzpHLHN0ZXAxNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ3b3JraW5nV2hpbGVJblNjaG9vbCJ9XSxzdGVwMTU6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToib3RoZXJFbXBsb3ltZW50U3RhdHVzIn1dLHN0ZXAxNjpbe2Z1bmM6InZhbGlkYXRlTW9yZVRoYW5aZXJvIix2YWx1ZToibW9udGhseUluY29tZSJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlJbmNvbWUiLHZhbHVlOiJtb250aGx5SW5jb21lIn1dLApzdGVwMTc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWUiLHZhbHVlOiIifV0sc3RlcDE4OlMsc3RlcDE5Olt7ZnVuYzoidmFsaWRhdGVQaG9uZU51bWJlciIsdmFsdWU6InBob25lTnVtYmVyIn1dLHN0ZXAyMDpbe2Z1bmM6InZhbGlkYXRlQ2hlY2tlZENyZWRpdEJ1cmVhdSIsdmFsdWU6ImNyZWRpdEJ1cmVhdUNyZWRpdCJ9XSxzdGVwMjI6W3tmdW5jOiJ2YWxpZGF0ZVNJTiIsdmFsdWU6IlNJTiJ9XSxzdGVwMjQ6W3tmdW5jOiJ2YWxpZGF0ZVZlaGljbGUiLHZhbHVlOiIifV0sc3RlcDI1Olt7ZnVuYzoidmFsaWRhdGVQYXltZW50Iix2YWx1ZToiIn1dLHN0ZXAyNjpbe2Z1bmM6InZhbGlkYXRlQ29uc2VudCIsdmFsdWU6IiJ9XSxzdGVwMjc6W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MyIix2YWx1ZToiYWRkcmVzczIifV0sc3RlcDI4Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUFkZHJlc3MyVGltZSIsdmFsdWU6IiJ9XSxzdGVwMjk6UixzdGVwMzA6W3tmdW5jOiJ2YWxpZGF0ZUNvbnNlbnRzIiwKdmFsdWU6IiJ9XX0sb25TaG93RnVuY3Rpb246e3N0ZXAyOlt7ZnVuYzoic3RlcDJWaWV3ZWRUcmFjayJ9XSxzdGVwNDpbe2Z1bmM6ImVtYWlsU3RlcFZpZXdlZFRyYWNrIn0se2Z1bmM6ImluaXRFbWFpbCJ9XSxzdGVwNjpbXSxzdGVwNzpbXSxzdGVwODpbe2Z1bmM6ImluaXRCaXJ0aGRhdGVDaGFuZ2UifV0sc3RlcDk6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlIn1dLHN0ZXAyNzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGUyIn1dLHN0ZXAxMzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llciJ9XSxzdGVwNTpbe2Z1bmM6ImluaXRTZWxlY3RNdWx0aURlYWxlciJ9XSxzdGVwMTk6W3tmdW5jOiJwaG9uZVN0ZXBWaWV3ZWRUcmFjayJ9LHtmdW5jOiJpbml0UGhvbmUifV0sc3RlcDI0Olt7ZnVuYzoiaW5pdFZlaGljbGVTZWxlY3Rpb24ifV0sc3RlcDI1Olt7ZnVuYzoiaW5pdENhbGN1bGF0b3IifV0sc3RlcDI2Olt7ZnVuYzoiaW5pdENvbnNlbnQifV0sCnN0ZXAyOTpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIifV0sc3RlcDMwOlt7ZnVuYzoiaW5pdFZXQ29uc2VudCJ9XSxzdGVwMTI6Vn0sbm9Db25maXJtQnV0dG9uU3RlcHM6TSxzaG93RXJyb3I6ITAsc2Vjb25kQ2hhbmNlU3RlcFRvU2tpcDpbMSwyLDMsNiw3XSxvcHRpb25hbFN0ZXA6b3B0aW9uYWxTdGVwc319LG1ldGhvZHM6e25leHQ6ZnVuY3Rpb24oYyl7Y3x8KHRoaXMuc2hvd0Vycm9yPSEwLHRoaXMuZm9ybWRhdGEuaW5pdGlhbFRpdGxlU2hvdz0hMSx0aGlzLnB1c2hQYXJ0aWFsPSEwKTtpZih0aGlzLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrdGhpcy5zdGVwKSlmb3IodmFyIGQ9MDtkPHRoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdLmxlbmd0aDtkKyspaWYoa1t0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS5mdW5jXSh0aGlzLmZvcm1kYXRhW3RoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIisKdGhpcy5zdGVwXVtkXS52YWx1ZV0pKSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSwkKCdbbmFtZT0iJyt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsnIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIik7ZWxzZXt0aGlzLnNob3dFcnJvciYmKCQoIiMiK3RoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdW2RdLnZhbHVlKyJFcnJvck1zZyIsYikubGVuZ3RoJiYkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsiRXJyb3JNc2ciLGIpLnZhbCgpKSwkKCdbbmFtZT0iJyt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsnIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwidmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpIikpO3JldHVybn1mb3IodGhpcy5zaG93RXJyb3I9CiExO2suaXNOZXh0U3RlcEZpbGxlZCgpOyk7aWYoMjEhPXRoaXMuc3RlcCl7ND09dGhpcy5zdGVwJiYiIiE9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MmJmsuZW1haWxQcm92aWRlZFRyYWNrKCk7MTk9PXRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEucGhvbmVOdW1iZXImJmsucGhvbmVQcm92aWRlZFRyYWNrKCk7aWYoOT09dGhpcy5zdGVwKXRyeXt2YXIgZT0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtuYW1lPSJhZGRyZXNzIl0nLGIpLGY9ZS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSxnPSJ1bmRlZmluZWQiIT09dHlwZW9mIGYucG9zdGFsLmxvbmdfbmFtZT9mLnBvc3RhbC5sb25nX25hbWU6ZS52YWwoKTtlbWFpbEhhbmRsZXIudXNlclBvc3RhbD1nOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmIiIhPWcmJigidW5kZWZpbmVkIiE9PQp0eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGcsIlVzZXJGb3JtLnBvc3RhbCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoZywiVXNlckZvcm0ucG9zdGFsIikpfWNhdGNoKGwpe2NvbnNvbGUubG9nKGwpfTQ8PXRoaXMuc3RlcCYmIXRoaXMuY29udmVyc2lvblN1Ym1pdHRlZCYmKHRoaXMuY29udmVyc2lvblN1Ym1pdHRlZD0hMCxkPSQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXJfY29uZmlybSIpLDA9PT1kLmxlbmd0aCYmKGQ9JCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikpLGQuZmluZCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbCgkKHRoaXMuY29udGV4dCkuZmluZCgiLmVtYWlsU3ViamVjdCIpLnRleHQoKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKSxkLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKCJGSU5BTkNFIiksZC5maW5kKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpLApkLmZpbmQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZiksZC5maW5kKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSksZC5maW5kKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSksZC5maW5kKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKSxkLmZpbmQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpLGQudHJpZ2dlcigic3VibWl0IiksImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cudHJhY2tDb252ZXJzaW9uJiZ3aW5kb3cudHJhY2tDb252ZXJzaW9uKCkpOzAhPXRoaXMuc3RlcCYmKHRoaXMuc2hvd0ljb249ITEpO3RoaXMuc3RlcD10aGlzLm5leHRTdGVwO2xvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5sYXN0X3N0ZXAiKTsKY3x8KGEuZmlyc3RTdGVwP2EuZmlyc3RTdGVwPSExOmsuc3RlcFRyaWdnZXIoITApKTsoIiIhPXRoaXMuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYoIjAiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKXx8ImFmdGVyIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKXx8IiIhPXRoaXMuZm9ybWRhdGEucGhvbmVOdW1iZXImJiIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCkmJiJiZWZvcmUiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fU0VMRUNUIikudmFsKCkpJiZrLm11bHRpRGVhbGVyRm9ybVN0YXR1cygpJiZ0aGlzLnB1c2hQYXJ0aWFsJiYoIjEiPT0kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgpPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNPUEVORURGUk9NSU1BR0VQT1BVUCIsCmIpLnZhbCgiMCIpOmsucHVzaERhdGFUb1NlcnZlcigpKTtrLnNldENsaWVudFN0b3JhZ2VEYXRhVmFsdWVzKCk7dGhpcy5uZXh0U3RlcD10aGlzLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrdGhpcy5zdGVwXTswPD10aGlzLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEuc3RlcCk\/JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTtrLm9uU2hvd0Z1bmN0aW9uVG9SdW4oKTswPD10aGlzLm5vQ29uZmlybUJ1dHRvblN0ZXBzLmluZGV4T2YodGhpcy5zdGVwKT8oJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLmhpZGUoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub2ZmKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLApiKS5vbigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk6KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5zaG93KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpKTsiZG9uZSI9PXRoaXMuc3RlcCYmKCIxIj09eD8iMSI9PUY\/ay5jcmVkaXRBcHBTdW1pc3Npb24oKTprLnJvdXRlT25lQ2FsbCgpOmsuc2VuZEVtYWlsKCkpfX0sZ2V0TGluZWFyc3RlcDpmdW5jdGlvbihjKXt2YXIgZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKTtkPXBhcnNlSW50KGQ\/ZDowKTtpZigwPT1kfHxpc05hTihkKSlkPTE7YyYmKGQrPTEsbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIixkKSk7cmV0dXJuIGR9fX0pLAp3PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIixKPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7ej13aW5kb3cubG9jYXRpb247dmFyIFE9ei5wcm90b2NvbCsiLy8iK3ouaG9zdCxrPXtpc05leHRTdGVwRmlsbGVkOmZ1bmN0aW9uKCl7aWYoIjEiPT14JiYiMSI9PUYmJlsxOSw0LDMwXS5pbmNsdWRlcyhhLm5leHRTdGVwKSlyZXR1cm4hMTtpZigiMSI9PXUmJjA8PWEuc2Vjb25kQ2hhbmNlU3RlcFRvU2tpcC5pbmRleE9mKGEubmV4dFN0ZXApKXJldHVybiBhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIithLm5leHRTdGVwXSwhMDtpZigoIjEiPT11fHwiMSI9PXgpJiYwPD1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEubmV4dFN0ZXApKXJldHVybiExO2lmKGEudmFsaWRhdGlvblJ1bGVzLmhhc093blByb3BlcnR5KCJzdGVwIithLm5leHRTdGVwKSl7Zm9yKHZhciBjPTA7YzxhLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrCmEubmV4dFN0ZXBdLmxlbmd0aDtjKyspaWYoIWtbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2EubmV4dFN0ZXBdW2NdLmZ1bmNdKGEuZm9ybWRhdGFbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2EubmV4dFN0ZXBdW2NdLnZhbHVlXSkpcmV0dXJuITE7YS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF07cmV0dXJuITB9fSx2YWxpZGF0ZU5vdEVtcHR5OmZ1bmN0aW9uKGMpe3JldHVybiIiIT1jJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjfSx2YWxpZGF0ZU5hbWU6ZnVuY3Rpb24oKXt2YXIgYz0vXltBLXpcdTAwQkYtXHUxRkZGXHUyQzAwLVx1RDdGRiAnLV0rJC87bGV0IGQ9Yy50ZXN0KGEuZm9ybWRhdGEuZmlyc3ROYW1lKTtjPWMudGVzdChhLmZvcm1kYXRhLmxhc3ROYW1lKTtkJiZjPygkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk6KGR8fCgkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IikpLGN8fCgkKCdbbmFtZT0ibGFzdE5hbWUiXScsYikuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjZmlyc3ROYW1lRXJyb3JNc2ciKS52YWwoKSkpO3JldHVybiBkJiZjfSx2YWxpZGF0ZUlzTnVtYmVyOmZ1bmN0aW9uKGMpe3JldHVybiAwPD0KY30sdmFsaWRhdGVNb250aGx5SW5jb21lOmZ1bmN0aW9uKGMpe3JldHVybiA5OTk5OTk+PWN9LHZhbGlkYXRlTW9udGhseVBheW1lbnQ6ZnVuY3Rpb24oYyl7cmV0dXJuIDk5OTk5Pj1jfSx2YWxpZGF0ZUFkZHJlc3M6ZnVuY3Rpb24oYyl7cmV0dXJuIDA8YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHM\/ITA6IiIhPWMmJihjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzPWMsITApOiExfSx2YWxpZGF0ZUFkZHJlc3MyOmZ1bmN0aW9uKGMpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnN8fDA8YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHM\/ITA6IiIhPWMmJihjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWMuY2l0eSYmIiIhPWMuc3RyZWV0KT8oYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MyPWMsITApOiExfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjpmdW5jdGlvbihjKXtpZigiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzKXJldHVybiEwO2lmKCIiIT1jKXtpZigidW5kZWZpbmVkIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiY2l0eSJpbiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcigpO2M9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWMuY2l0eSYmIiIhPWMuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyPWMsITB9cmV0dXJuITF9LHZhbGlkYXRlTW9udGhseURpc2J1cnNlbWVudFZXOmZ1bmN0aW9uKGMpe2xldCBkLGUsZjtyZXR1cm4iUUMiPT0obnVsbCE9KGY9bnVsbD09KGQ9YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MpP3ZvaWQgMDpudWxsPT0oZT1kLnByb3ZpbmNlKT92b2lkIDA6ZS5zaG9ydF9uYW1lKT9mOiQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCkpPzA8PWM6ITB9LHZhbGlkYXRlQWRkcmVzc0VtcGxveWVyVlc6ZnVuY3Rpb24oYyl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO2lmKCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCIhPWQmJiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfUEFSVCIhPQpkKXJldHVybiEwO2lmKCIiIT1jKXtpZigidW5kZWZpbmVkIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiY2l0eSJpbiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcigpO2M9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKTtpZigiIiE9Yy5jaXR5JiYiIiE9Yy5zdHJlZXQpcmV0dXJuIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXI9YywhMH1yZXR1cm4hMX0sdmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIyOmZ1bmN0aW9uKGMpe2lmKCIiIT0KYyl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmbnVsbCE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiIiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIoKTtjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpO2lmKCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldClyZXR1cm4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjI9YywhMH1yZXR1cm4hMX0sdmFsaWRhdGVTdGF0dXNUaW1lOmZ1bmN0aW9uKGMpe2lmKCIiIT0KYyYmMTA9PWMubGVuZ3RoKXJldHVybiBjPWMuc3BsaXQoIi8iKSxuZXcgRGF0ZSgrY1syXSxjWzFdLTEsK2NbMF0pPG5ldyBEYXRlfSx2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm86ZnVuY3Rpb24oYyl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PWR8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfU1RVREVOVCI9PWR8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfT1RIRVIiPT1kPyIiIT09YyYmInVuZGVmaW5lZCIhPT10eXBlb2YgYzohMH0sdmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvVlc6ZnVuY3Rpb24oYyl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCI9PQpkfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PWQ\/IiIhPT1jJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mbzpmdW5jdGlvbigpe3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXM\/IiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZSk6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvVlc6ZnVuY3Rpb24oKXt2YXIgYz1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXM7cmV0dXJuIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRF9GVUxMIj09CmN8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfUEFSVCI9PWM\/IiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZSk6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvMjpmdW5jdGlvbigpe3JldHVybiIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmZvcm1kYXRhLmVtcGxveWVyTmFtZTImJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyKX0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihjKXskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJjc3NPbmx5IixzY3JvbGxUbzohMX0pLnN0YXJ0KCk7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJykudmFsaWRFbWFpbEFkZHJlc3MoKTsKcmV0dXJuICQudmFsaWRpdHkuZW5kKCkudmFsaWR9LHZhbGlkYXRlQmlydGhkYXRlOmZ1bmN0aW9uKCl7dmFyIGM9YS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyLGQ9YS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCxlPWEuZm9ybWRhdGEuYmlydGhkYXRlRGF5O2lmKDMxPGV8fDEyPGR8fDE5MDA+Y3x8MD49ZXx8MD49ZHx8IiI9PWN8fCIiPT1kfHwiIj09ZXx8ND5jLmxlbmd0aClyZXR1cm4hMTtjPTE4PD1rLmNhbGN1bGF0ZUFnZShuZXcgRGF0ZShjLGQtMSxlKSxuZXcgRGF0ZSk7YS5zaG93RXJyb3ImJihjPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYmlydGhkYXRlRXJyb3JNc2ciKS52YWwoKSkpO3JldHVybiBjfSxjYWxjdWxhdGVBZ2U6ZnVuY3Rpb24oYyxkKXt2YXIgZT1kLmdldEZ1bGxZZWFyKCksZj1kLmdldE1vbnRoKCk7ZD1kLmdldERhdGUoKTt2YXIgZz1jLmdldEZ1bGxZZWFyKCksCmw9Yy5nZXRNb250aCgpO2M9Yy5nZXREYXRlKCk7ZS09ZztmLT1sO2lmKDA+Znx8MD09ZiYmMD5kLWMpZT1wYXJzZUludChlKS0xO3JldHVybiBlfSxoYXNVc2VyOmZ1bmN0aW9uKCl7cmV0dXJuISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKX0sdXNlcklkOmZ1bmN0aW9uKGMpe2MmJigtMT09Yz8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIiksYS51c2VySWQ9ITEpOihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiLGMpLGEudXNlcklkPWMpKTthLnVzZXJJZHx8KGEudXNlcklkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpKTtyZXR1cm4gYS51c2VySWR9LHB1c2hEYXRhVG9TZXJ2ZXI6ZnVuY3Rpb24oKXtpZighYS5hamF4UHJvY2Vzcyl7YS5hamF4UHJvY2Vzcz0hMDtrLnNldFRyYWRlSW4oKTsKdmFyIGM9YS5mb3JtZGF0YSxkPWEuc3RlcCxlPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGY9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7ZT1lLnRleHQoKT9lLnRleHQoKToiIjtmPWYuaHRtbCgpP2YuaHRtbCgpOiIiO3ZhciBnPSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk7ZW1haWxIYW5kbGVyLmJvZHk9ZjtlbWFpbEhhbmRsZXIuc3ViamVjdD1lO2suc2V0RW1haWxIYW5kbGVyU2VuZCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOyIxIj09dSYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiKTsiMSI9PXgmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCIpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJGSU5BTkNFIjtlbWFpbEhhbmRsZXIuaXNtb2JpbGVzaXRlPTE9PSQoIiNpc21vYmlsZSIpLnZhbCgpPyJZRVMiOiJOTyI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0KInVuZGVmaW5lZCI9PXR5cGVvZiBnPyJ1c2VkIjpnLnRvTG93ZXJDYXNlKCk7ZW1haWxIYW5kbGVyLmNyZWRpdERhdGE9YztKPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L3NldEZpbmFuY2VNdWx0aXN0ZXBEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpLGZvcm1kYXRhOmMsc3RlcDpkLGRvbWFpbjpRLHNpdGVJZDokKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbEhhbmRsZXJKc29uT2JqZWN0OkpTT04uc3RyaW5naWZ5KEopfSxzdWNjZXNzOmZ1bmN0aW9uKGwpe2wuSUQmJmwuaWRDaGFuZ2VkJiZrLnVzZXJJZChsLklEKX0sY29tcGxldGU6ZnVuY3Rpb24obCl7YS5hamF4UHJvY2Vzcz0hMX19KX19LG9uU2hvd0Z1bmN0aW9uVG9SdW46ZnVuY3Rpb24oKXtpZihhLm9uU2hvd0Z1bmN0aW9uLmhhc093blByb3BlcnR5KCJzdGVwIisKYS5zdGVwKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdLmxlbmd0aClmb3IodmFyIGM9MDtjPGEub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2MrKylrW2Eub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF1bY10uZnVuY10oKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZTpmdW5jdGlvbigpe3ZhciBjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpWzBdLGQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Qub2JzZXJ2ZShjLHthdHRyaWJ1dGVzOiEwLAphdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2M9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7Yz17bGF0OmMsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpLmdvb2dsZVBsYWNlcyhjKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZTI6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYilbMF0sZD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2QuZGlzY29ubmVjdCgpOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJywKYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtkLm9ic2VydmUoYyx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2M9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7Yz17bGF0OmMsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjpmdW5jdGlvbigpe3ZhciBjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYilbMF0sZD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2QuZGlzY29ubmVjdCgpOwokKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7ZC5vYnNlcnZlKGMse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmdvb2dsZVBsYWNlcyhjKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZUVtcGxveWVyMjpmdW5jdGlvbigpe3ZhciBjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLApiKVswXSxkPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7ZC5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llcjIiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtkLm9ic2VydmUoYyx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2M9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7Yz17bGF0OmMsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpLmdvb2dsZVBsYWNlcyhjKX0saW5pdEJpcnRoZGF0ZUNoYW5nZTpmdW5jdGlvbigpeyQoIi5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0Iikub24oImtleXVwIiwKZnVuY3Rpb24oKXskKHRoaXMpLnZhbCgpLmxlbmd0aD09JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKSYmJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiIpLmZpbmQoImlucHV0IikudHJpZ2dlcigiZm9jdXMiKX0pfSx2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJgooJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoNjA+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcikrCnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9Mjk6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTIyKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZVZXOmZ1bmN0aW9uKCl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19VTkVNUExPWUVEIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NUVURFTlQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXN8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfUkVUSVJFRCI9PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cylyZXR1cm4hMDtpZig3MDxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXImJjA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKXJldHVybiBhLnNob3dFcnJvciYmCigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoNjA+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcikrcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpP2EubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxNz0yOTphLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9MjIpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMjpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjImJjA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsCiIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzJiYwPj1hLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJgooJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoMjQ+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKStwYXJzZUludChhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTI9Mjc6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDEyPTEzKTtyZXR1cm4hMH0sdmFsaWRhdGVDb25zZW50czpmdW5jdGlvbigpe2xldCBjLGQsZTtyZXR1cm4oIlFDIiE9KG51bGwhPShlPW51bGw9PShjPQphLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShkPWMucHJvdmluY2UpP3ZvaWQgMDpkLnNob3J0X25hbWUpP2U6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKSl8fGEuZm9ybWRhdGEuY29uc2VudEFjY291bnRNb25pdG9yaW5nJiZhLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50KSYmYS5mb3JtZGF0YS5jb25zZW50Vlc\/ITA6ITF9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLAohMTtpZigxMjxhLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMmJjA+PWEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3MyVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlNb250aGx5SW5jb21lVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJgooJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNtb250aGx5SW5jb21lVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49CmEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycyYmMD49YS5mb3JtZGF0YS5tb250aGx5SW5jb21lX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZVBob25lTnVtYmVyOmZ1bmN0aW9uKGMpe3JldHVybiBjJiYocGhvbmU9Yy5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWxpZGF0ZVBob25lKCksCiQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVBob25lTnVtYmVyRW1wbG95ZXI6ZnVuY3Rpb24oYyl7cmV0dXJuIGMmJihwaG9uZT1jLnJlcGxhY2UoIigiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZSIpLnZhbGlkYXRlUGhvbmUoKSwkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMjpmdW5jdGlvbihjKXtyZXR1cm4gYyYmKHBob25lPWMucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCIgIiwiIikucmVwbGFjZSgiLSIsIiIpLDEwPT1waG9uZS5sZW5ndGgpPygkLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsCnNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZTIiKS52YWxpZGF0ZVBob25lKCksJC52YWxpZGl0eS5lbmQoKS52YWxpZCk6ITF9LHZhbGlkYXRlU0lOOmZ1bmN0aW9uKGMpe3JldHVybigiMSI9PXUmJiIwIj09Q3x8IjEiPT14KSYmIiI9PWMmJjA8PWEub3B0aW9uYWxTdGVwLmluZGV4T2YoMjIpfHxjJiYoc2luPWMucmVwbGFjZUFsbCgiICIsIiIpLDk9PXNpbi5sZW5ndGgpPyEwOiExfSx2YWxpZGF0ZVZlaGljbGU6ZnVuY3Rpb24oKXt2YXIgYz0hMTtzd2l0Y2goYS5jdXJyZW50RGVwdCl7Y2FzZSAiVVNFRCI6Yz0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50VHJpbSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudENhcklkOwpicmVhaztjYXNlICJORVdJTlYiOmM9IiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ7YnJlYWs7Y2FzZSAiTkVXIjpjPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW19cmV0dXJuIGN9LGluaXRWZWhpY2xlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7YS5pbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0JiYoJCgnaW5wdXRbbmFtZT0iZmluYW5jZU11bHRpc3RlcERlcHQiXScsCmIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7bGV0IGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlaGljbGVTZWxlY3Rpb25XcmFwcGVyIik7Yy5yZXBsYWNlV2l0aChjLmNsb25lTm9kZSghMCkpO2suaW5pdFZlaGljbGVTZWxlY3Rpb24oKX0pLGEuaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdD0hMSk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5vZmYoImNoYW5nZSIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9mZigiY2hhbmdlIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vZmYoImNoYW5nZSIpOyJVU0VEIj09YS5jdXJyZW50RGVwdHx8Ik5FV0lOViI9PWEuY3VycmVudERlcHQ\/KG0oIm5ld2ludiIpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0KIiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSxuKCJuZXdpbnYiLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJiIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPQoiIixhLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGsuY2hlY2tWYWxpZGl0eSgpLHYoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEteWVhciIpO2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdHlsZWlkIik7YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1wcmljZSIpO2EuZm9ybWRhdGEuY3VycmVudENhcklkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtdmVoaWNsZWlkIik7YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdG9ja251bWJlciIpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1taWxlYWdlIik7dmFyIGM9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEtaXNuZXciKSxkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtaXNkZW1vIikmJiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9ERU1PQVNORVciXScsYikudmFsKCk7YS5jdXJyZW50RGVwdD0iMSI9PWN8fGQ\/Ik5FV0lOViI6IlVTRUQiO2suY2hlY2tWYWxpZGl0eSgpfSkpOihtKGEuY3VycmVudERlcHQpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPQoiIixrLmNoZWNrVmFsaWRpdHkoKSxuKGEuY3VycmVudERlcHQsJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmIiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixrLmNoZWNrVmFsaWRpdHkoKSxyKCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEteWVhciIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50WWVhcj0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS15ZWFyIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTA7YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTthLmZvcm1kYXRhLnZlaGljbGVQcmljZT0KJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1wcmljZSIpO2suY2hlY2tWYWxpZGl0eSgpfSkpfSx2YWxpZGF0ZVBheW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4iIiE9YS5mb3JtZGF0YS5wYXltZW50VHlwZSYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0mJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbCYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50UmF0ZXx8YS5mb3JtZGF0YS5ub1BheW1lbnR9LGluaXRDYWxjdWxhdG9yOmZ1bmN0aW9uKCl7dmFyIGM9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iIHN1ciBjZSAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1vZGVsKyIgIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyOiIgb24gdGhpcyAiK2EuZm9ybWRhdGEuY3VycmVudFllYXIrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiKwphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwUGF5bWVudFZlaGljbGUiLGIpLnRleHQoYyk7aWYoIk5FVyI9PWEuY3VycmVudERlcHR8fCJORVdJTlYiPT1hLmN1cnJlbnREZXB0KXskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIik7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW5ldyBjYWxjdWxhdG9yRnVuY3Rpb25zKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTtjPSJORVdJTlYiPT1hLmN1cnJlbnREZXB0O2xldCBlPSJmaW5hbmNpbmciLGY9MCxnPTAsbD0kKCdpbnB1dFtuYW1lPSJBRE1JTl9TSE9XX0xPV0VTVF9QQVlNRU5UX0lOVEVSVkFMIl0nKS52YWwoKTt2YXIgZD0yRTQ7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihkPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksCmU9InVuZGVmaW5lZCIhPWRbMF0\/ZFswXTplLGY9ZFsxXSxnPXBhcnNlSW50KGRbNF0pfHwwLGw9ZFsyXSxkPWRbM10pO2EuY2FsY3VsYXRvckZ1bmN0aW9ucy5pbml0KGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQsZSxnLDAsbCxkLGMsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXIpOyQoImJvZHkiKS5vZmYoImNoYW5nZSIsIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJytiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScpOyQoImJvZHkiKS5vZmYoIm5vUGF5bWVudCIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vZmYoInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKwoiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIik7JCgiYm9keSIpLm9uKCJub1BheW1lbnQiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5ub1BheW1lbnQ9ITA7YS5uZXh0KCEwKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIiwiIyIrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICMnK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBwPSJmaW5hbmNpbmciPT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iRmluYW5jZW1lbnQiOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09CmEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50VHlwZT8kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJMb2NhdGlvbiI6IkxlYXNpbmciOiIiO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9cDthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU7YS5mb3JtZGF0YS5wYXltZW50VGVybT0kKHRoaXMpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3A9JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKS5maW5kKCcucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2EuZm9ybWRhdGEucGF5bWVudFRlcm0rJyJdW2RhdGEtcmF0ZXR5cGU9IicrYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGUrJyJdJyk7dmFyIHE7YS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0KbnVsbCE9KHE9cC5hdHRyKCJkYXRhLXJlc2lkdWFsIikpP3E6JCh0aGlzKS5hdHRyKCJkYXRhLXJlc2lkdWFsIik7dmFyIHQ7YS5mb3JtZGF0YS5wYXltZW50VmFsdWU9bnVsbCE9KHQ9cC5hdHRyKCJkYXRhLXJlYWxwYXltZW50IikpP3Q6JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7dmFyIEE7YS5mb3JtZGF0YS5iYXNlcGF5bWVudD1udWxsIT0oQT1wLmF0dHIoImRhdGEtYmFzZXBheW1lbnQiKSk\/QTokKHRoaXMpLmF0dHIoImRhdGEtYmFzZXBheW1lbnQiKTthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEluY2VudGl2ZT1wLmF0dHIoImRhdGEtdG90YWxpbmNlbnRpdmUiKTthLmZvcm1kYXRhLnBheW1lbnRHU1Q9cC5hdHRyKCJkYXRhLWdzdCIpO2EuZm9ybWRhdGEucGF5bWVudEhTVD1wLmF0dHIoImRhdGEtaHN0Iik7YS5mb3JtZGF0YS5wYXltZW50UFNUPXAuYXR0cigiZGF0YS1wc3QiKTthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9cC5hdHRyKCJkYXRhLWluaXRpYWxQcmljZSIpOwphLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPXAuYXR0cigiZGF0YS1maW5hbFByaWNlIik7dmFyIEg7YS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3Q9bnVsbCE9KEg9SlNPTi5wYXJzZShhdG9iKHAuYXR0cigiZGF0YS1mZWVzTGlzdCIpKSkpP0g6W107cT0wO2Zvcih2YXIgTiBvZiBhLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdClxKz1OLmFtb3VudHx8MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT1xO3ZhciBJO2EuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PW51bGwhPShJPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtaW5jZW50aXZlc0xpc3QiKSkpKT9JOltdO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5kb3ducGF5bWVudHx8MDthLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMua21BbGxvd2FuY2U7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRGcmVxdWVuY3k7CmEuZm9ybWRhdGEucGF5bWVudFJhdGU9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGUiKTthLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMudHJhZGVJblZhbHVlO3E9KHBhcnNlSW50KGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50KXx8MCkrKHBhcnNlSW50KGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKXx8MCk7Q29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixhLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCsiLSIrYS5mb3JtZGF0YS5wYXltZW50VGVybSsiLSIrYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwrIi0iK2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlKyItIitxLG51bGwsIi8iKTsiTkVXQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBjaGFuZ2VQYWdlUGF5bWVudFZhbHVlJiYKKEk9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksTj0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpLHA9JCh0aGlzKS5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKSxxPXEudG9GaXhlZCgwKSx0PSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpLEE9JCh0aGlzKS5hdHRyKCJkYXRhLWVmZmVjdGl2ZVJhdGUiKSxIPSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKSxjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDpJLGN1cnJlbnRSYXRlOmEuZm9ybWRhdGEucGF5bWVudFJhdGUscGF5bWVudFRlcm06YS5mb3JtZGF0YS5wYXltZW50VGVybSxwYXltZW50VHlwZTphLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCxwYXltZW50SW50ZXJ2YWw6YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwscGF5bWVudERvd25QYXltZW50OnEsdG90YWxJbnRlcmVzdDpOLGx1eGVUYXhBbW91bnQ6cCxyYXRlVHlwZTp0LGVmZmVjdGl2ZVJhdGU6QSx0b3RhbENvc3Q6SH0pLAokKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS50cmlnZ2VyKCJwYXltZW50Q2hhbmdlZCIpKTtrLmNoZWNrVmFsaWRpdHkoKX0pOyQoImJvZHkiKS5vbigicGF5bWVudHNSZWFkeSIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oKXtmPWEuZm9ybWRhdGEucGF5bWVudFRlcm0\/YS5mb3JtZGF0YS5wYXltZW50VGVybTpmP2Y6MDswIT1mJiYwPCQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykubGVuZ3RoPyQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKToKKGEuZm9ybWRhdGEucGF5bWVudFR5cGU9IiIsYS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9IiIsYS5mb3JtZGF0YS5wYXltZW50VGVybT0iIixhLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0iIixhLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPSIiLGEuZm9ybWRhdGEucGF5bWVudFZhbHVlPSIiLGEuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT0iIixhLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPSIiLGEuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PVtdLGEuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdLGEuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiIsYS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MCxhLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wLGEuZm9ybWRhdGEucGF5bWVudEdTVD0wLGEuZm9ybWRhdGEucGF5bWVudEhTVD0wLGEuZm9ybWRhdGEucGF5bWVudFBTVD0wLGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTAsCmEuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPTAsYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9IiIsYS5mb3JtZGF0YS5wYXltZW50UmF0ZT0iIixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT0iIixrLmNoZWNrVmFsaWRpdHkoKSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIixiKS5zaG93KCl9KTtzZXRUaW1lb3V0KCgpPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgcD1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsb25Db21wbGV0ZTpxPT57cS5kYXRhc2V0LmNvbXBsX3R4dF9mcj1xLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZnIucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RnJbMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLApjdGFQYXltZW50VGV4dEZyWzFdKTtxLmRhdGFzZXQuY29tcGxfdHh0X2VuPXEuZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7cT17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKHE9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHQ9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO3EucGF5bWVudD17bGlzdFByaWNlOnRbMl18fCIiLHBheW1lbnQ6dFswXXx8IiIscmF0ZTp0WzFdfHwiIixwYXltZW50VmFsdWU6Y3RhUGF5bWVudFZhbHVlc3x8W119O19sb2NhbFN0b3JhZ2VTZXQoInJldGFpbF90cmFja19kYXRhIixKU09OLnN0cmluZ2lmeShxKSwKMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pOyQoIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpLm9uKCJwYXltZW50Q2hhbmdlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHApfSl9fSwxMDApfWVsc2UgJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpLHkoYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQpfSxpbml0RW1haWw6ZnVuY3Rpb24oKXtrLmNoZWNrVmFsaWRpdHkoKX0saW5pdFBob25lOmZ1bmN0aW9uKCl7ay5jaGVja1ZhbGlkaXR5KCl9LGluaXRDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGM9Ii8iK3crIi9tdWx0aXN0ZXBJbnN0YW50Q29uc2VudC5odG1sIjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2RpdiIsYikuYXR0cigic3JjIixjKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZCl7KGQub3JpZ2luPXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pJiYKImNvbnNlbnRJZnJhbWVCb3R0b20iPT09ZC5kYXRhJiYkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50IixiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSwhMSl9LGluaXRWV0NvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgYyxkLGU7IlFDIj09KG51bGwhPShlPW51bGw9PShjPWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzKT92b2lkIDA6bnVsbD09KGQ9Yy5wcm92aW5jZSk\/dm9pZCAwOmQuc2hvcnRfbmFtZSk\/ZTokKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpKT8oJCgiLnZ3Q29uc2VudERpdnNST0MiKS5oaWRlKCksJCgiLnZ3Q29uc2VudERpdnNRQyIpLnNob3coKSk6KCQoIi52d0NvbnNlbnREaXZzUk9DIikuc2hvdygpLCQoIi52d0NvbnNlbnREaXZzUUMiKS5oaWRlKCkpfSxpbml0RGlzYnVyc21lbnRWVzpmdW5jdGlvbigpe2xldCBjLGQsZTsiUUMiPT0obnVsbCE9KGU9bnVsbD09CihjPWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzKT92b2lkIDA6bnVsbD09KGQ9Yy5wcm92aW5jZSk\/dm9pZCAwOmQuc2hvcnRfbmFtZSk\/ZTokKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpKT8oJCgiLnJlbnRPck93blF1ZXN0aW9uVldRQyIpLnNob3coKSwkKCIudndEaXNidXJzbWVudFFjIikuc2hvdygpLCQoIi5tb250bGh5UGF5bWVudFF1ZXN0aW9uIikuaGlkZSgpKTooJCgiLnJlbnRPck93blF1ZXN0aW9uVldRQyIpLmhpZGUoKSwkKCIudndEaXNidXJzbWVudFFjIikuaGlkZSgpLCQoIi5tb250bGh5UGF5bWVudFF1ZXN0aW9uIikuc2hvdygpKX0sdmFsaWRhdGVDb25zZW50OmZ1bmN0aW9uKCl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudCIsYikuaGFzQ2xhc3MoImlzVmFsaWQiKSlyZXR1cm4gYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX3llcyIsCmIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIiksITA7YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX25vIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpO3JldHVybiExfSx2YWxpZGF0ZUNoZWNrZWRDcmVkaXRCdXJlYXU6ZnVuY3Rpb24oYyl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9ImNyZWRpdEJ1cmVhdUNvbnNlbnQiXScpLmlzKCI6Y2hlY2tlZCIpKXJldHVybiBhLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfeWVzIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCEwO2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF9ubyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTtyZXR1cm4hMX0sdmFsaWRhdGVNb3JlVGhhblplcm86ZnVuY3Rpb24oYyl7cmV0dXJuIDA8CmN9LHNlbmRFbWFpbDpmdW5jdGlvbigpe3ZhciBjPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGQ9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7Yz1jLnRleHQoKT9jLnRleHQoKToiIjtkPWQuaHRtbCgpP2QuaHRtbCgpOiIiO2lmKGMmJmQpe3ZhciBlPSQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOyIiIT1hLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8mJihlKz0iICgiK2EuZm9ybWRhdGEuZW1wbG95bWVudEFkZGVkSW5mbysiKSIpO2Q9ZC5yZXBsYWNlKCJ7JEJPRFlUWVBFfSIsYS5mb3JtZGF0YS52ZWhpY2xlVHlwZT8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS52ZWhpY2xlVHlwZSsnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskVElUTEV9IixhLmZvcm1kYXRhLnRpdGxlP2EuZm9ybWRhdGEudGl0bGU6InJlbW92ZWVtcHR5Iik7CmQ9ZC5yZXBsYWNlKCJ7JEZJUlNUTkFNRX0iLGEuZm9ybWRhdGEuZmlyc3ROYW1lKTtkPWQucmVwbGFjZSgieyRMQVNUTkFNRX0iLGEuZm9ybWRhdGEubGFzdE5hbWUpO2Q9ZC5yZXBsYWNlKCJ7JEVNQUlMfSIsYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MpO2Q9ZC5yZXBsYWNlKCJ7JFBIT05FTlVNQkVSfSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcik7ZD1kLnJlcGxhY2UoInskQklSVEhEQVl9IixhLmZvcm1kYXRhLmJpcnRoZGF0ZURheSsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyKTtkPWQucmVwbGFjZSgieyRCVURHRVR9IixhLmZvcm1kYXRhLmJ1ZGdldD8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5idWRnZXQrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRMWURSSVZJTkd9IixhLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmc\/JCgnW3ZhbHVlPSInKwphLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRFU1RJTUFURURDUkVESVRSQVRJTkd9IixhLmZvcm1kYXRhLmNyZWRpdFJhdGluZz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5jcmVkaXRSYXRpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JElOVEVSRVNURURET1dOT1BUSU9OfSIsYS5mb3JtZGF0YS5kb3duT3B0aW9ucz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5kb3duT3B0aW9ucysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVEFERFJFU1N9IixhLmZvcm1kYXRhLmFkZHJlc3MpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRSRVNJREVOQ0VUWVBFfSIsJCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEucmVudE9yT3duKwonIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIikpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRPQ0NVUEFUSU9OTEVOR1RIfSIsYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKTt2YXIgZixnLGwscD1udWxsIT0obD1udWxsPT0oZj1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShnPWYucHJvdmluY2UpP3ZvaWQgMDpnLnNob3J0X25hbWUpP2w6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKTtkPUYmJiJRQyI9PXA\/ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZUkVOVH0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlQYXltZW50KyIgLS0gRGlzYnVyc2VtZW50OiAkIithLmZvcm1kYXRhLm1vbnRobHlEaXNidXJzZW1lbnQpOgpkLnJlcGxhY2UoInskQ1VSUkVOVE1PTlRITFlSRU5UfSIsIiQiK2EuZm9ybWRhdGEubW9udGhseVBheW1lbnQpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRPQ0NVUEFUSU9OfSIsZSk7ZD1kLnJlcGxhY2UoInskV09SS0lOR1dISUxFSU5TQ0hPT0x9IiwiIiE9YS5mb3JtZGF0YS53b3JraW5nV2hpbGVJblNjaG9vbD8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS53b3JraW5nV2hpbGVJblNjaG9vbCsnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVElOQ09NRVNPVVJDRX0iLCIiIT1hLmZvcm1kYXRhLm90aGVyRW1wbG95bWVudFN0YXR1cz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05UTFlJTkNPTUV9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5SW5jb21lKTsKZD1kLnJlcGxhY2UoInskQ1VSUkVOVE1PTlRITFlJTkNPTUVMRU5HVEh9IixhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5tb250aGx5SW5jb21lX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSk7IiIhPWEuZm9ybWRhdGEuYWRkcmVzczI\/KGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTQUREUkVTU30iLGEuZm9ybWRhdGEuYWRkcmVzczIpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTT0NDVVBBVElPTkxFTkdUSH0iLGEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKSwKZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNBRERSRVNTSU5GT1NUQVJUIyMiLCIiKSxkPWQucmVwbGFjZSgiIyNQUkVWSU9VU0FERFJFU1NJTkZPRU5EIyMiLCIiKSk6ZD1kLnJlcGxhY2UoLyMjUFJFVklPVVNBRERSRVNTSU5GT1NUQVJUIyNbXHNcU10qIyNQUkVWSU9VU0FERFJFU1NJTkZPRU5EIyMvLCIiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UTUFLRX0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlP2EuZm9ybWRhdGEuY3VycmVudE1ha2U6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVE1PREVMfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsP2EuZm9ybWRhdGEuY3VycmVudE1vZGVsOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRZRUFSfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXI\/YS5mb3JtZGF0YS5jdXJyZW50WWVhcjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UU1RPQ0tOVU1CRVJ9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/CmEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JGNyZWRpdEJ1cmVhdUNyZWRpdH0iLCIiIT1hLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD9hLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdDoiTk8iKTtkPWQucmVwbGFjZSgieyRTSU59IiwiIiE9YS5mb3JtZGF0YS5TSU4\/YS5mb3JtZGF0YS5TSU46InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQURERURJTkZPfSIsIiIhPWEuZm9ybWRhdGEuYWRkZWRJbmZvP2EuZm9ybWRhdGEuYWRkZWRJbmZvOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JEVNUExPWUVSfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lP2EuZm9ybWRhdGEuZW1wbG95ZXJOYW1lOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JEVNUExPWUVSUEhPTkV9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llclBob25lP2EuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZToicmVtb3ZlZW1wdHkiKTsKZD1kLnJlcGxhY2UoInskRU1QTE9ZRU1FTlRTVEFUVVNUSU1FfSIsYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcisiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aCsiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSk7ZD1kLnJlcGxhY2UoInskRU1QTE9ZRVJBRERSRVNTfSIsIiIhPWEuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyP2EuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENPTlNFTlRBQ0NPVU5UTU9OSVRPUklOR30iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZz8xPT1hLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZz8iWUVTIjoiTk8iOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENPTlNFTlRDUkVESVRBU1NFU1NNRU5UfSIsCiIiIT1hLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50PzE9PWEuZm9ybWRhdGEuY29uc2VudENyZWRpdEFzc2Vzc21lbnQ\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UUElQRURBfSIsIiIhPWEuZm9ybWRhdGEuY29uc2VudFBpcGVkYT8xPT1hLmZvcm1kYXRhLmNvbnNlbnRQaXBlZGE\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UQ0FTTH0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRDYXNsPzE9PWEuZm9ybWRhdGEuY29uc2VudENhc2w\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTsiIiE9YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyPyhmPSQoJ1t2YWx1ZT0iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIl0nKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCIiIT1hLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8yJiYoZis9IiAoIithLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8yKwoiKSIpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTT0NDVVBBVElPTn0iLGYpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRVJ9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyP2EuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMjoicmVtb3ZlZW1wdHkiKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSUEhPTkV9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llclBob25lMj9hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyOiJyZW1vdmVlbXB0eSIpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRU1FTlRTVEFUVVNUSU1FfSIsYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjIrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgyKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX01PTlRIUyIpLnZhbCgpKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSQUREUkVTU30iLAoiIiE9YS5mb3JtZGF0YS5hZGRyZXNzRW1wbG95ZXIyP2EuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyMjoicmVtb3ZlZW1wdHkiKSxkPWQucmVwbGFjZSgiIyNQUkVWSU9VU09DQ1VQQVRJT05TVEFSVCMjIiwiIiksZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNPQ0NVUEFUSU9ORU5EIyMiLCIiKSk6ZD1kLnJlcGxhY2UoLyMjUFJFVklPVVNPQ0NVUEFUSU9OU1RBUlQjI1tcc1xTXSojI1BSRVZJT1VTT0NDVVBBVElPTkVORCMjLywiIik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVFRZUEV9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50VHlwZT9hLmZvcm1kYXRhLnBheW1lbnRUeXBlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRURVJNfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0\/YS5mb3JtZGF0YS5wYXltZW50VGVybToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5URE9XTlBBWU1FTlR9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ\/CmEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50OiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRJTlRFUlZBTH0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD9hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbDoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5US01BTExPV0FOQ0V9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U\/YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVFZBTFVFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlP2EuZm9ybWRhdGEucGF5bWVudFZhbHVlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFJhdGU\/YS5mb3JtZGF0YS5wYXltZW50UmF0ZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyROT1BBWU1FTlR9IixhLmZvcm1kYXRhLm5vUGF5bWVudD8KIiI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1JFRElUREVDSVNJT059IixhLmNyZWRpdERlY2lzaW9uSFRNTD9hLmNyZWRpdERlY2lzaW9uSFRNTDoicmVtb3ZlZW1wdHkiKTsiIiE9YS5mb3JtZGF0YS50cmFkZUluVmFsdWU\/KGQ9ZC5yZXBsYWNlKCJ7JFRSQURFTUFLRX0iLGEuZm9ybWRhdGEudHJhZGVJbk1ha2UpLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFTU9ERUx9IixhLmZvcm1kYXRhLnRyYWRlSW5Nb2RlbCksZD1kLnJlcGxhY2UoInskVFJBREVZRUFSfSIsYS5mb3JtZGF0YS50cmFkZUluVHJpbSksZD1kLnJlcGxhY2UoInskVFJBREVUUklNfSIsYS5mb3JtZGF0YS50cmFkZUluWWVhciksZD1kLnJlcGxhY2UoInskVFJBREVWQUxVRX0iLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSxkPWQucmVwbGFjZSgiIyNUUkFERUlOSU5GT1NUQVJUIyMiLCIiKSxkPWQucmVwbGFjZSgiIyNUUkFERUlOSU5GT0VORCMjIiwiIikpOmQ9ZC5yZXBsYWNlKC8jI1RSQURFSU5JTkZPU1RBUlQjI1tcc1xTXSojI1RSQURFSU5JTkZPRU5EIyMvLAoiIik7ZD1rLmVtYWlsQm9keUZvck11bHRpRGVhbGVyKGQpO2JvZHlMb3dlcj1kLnRvTG93ZXJDYXNlKCk7Zm9yKGY9MDstMTxib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTspe3Bvcz1ib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTtpZigtMT09cG9zKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIscG9zKTtycGxTdGFydD1ib2R5TG93ZXIubGFzdEluZGV4T2YoIjxicj4iLHBvcyk7aWYoLTE9PXJwbEVuZHx8LTE9PXJwbFN0YXJ0KWJyZWFrO3JwbFN0cmluZz1kLnN1YnN0cmluZyhycGxTdGFydCxycGxFbmQpO2Q9ZC5yZXBsYWNlKHJwbFN0cmluZywiIik7Ym9keUxvd2VyPWQudG9Mb3dlckNhc2UoKTtmKys7aWYoNTA8ZilicmVha31lbWFpbEhhbmRsZXIuc3ViamVjdD1jO2VtYWlsSGFuZGxlci5ib2R5PWQ7ay5zZXRFbWFpbEhhbmRsZXJTZW5kKCk7ZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI7IjEiPT0KdSYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiKTsiMSI9PXgmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCIpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJGSU5BTkNFIjtlbWFpbEhhbmRsZXIuaXNtb2JpbGVzaXRlPTE9PSQoIiNpc21vYmlsZSIpPyJZRVMiOiJOTyI7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1hLmZvcm1kYXRhLmZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWEuZm9ybWRhdGEubGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1hLmZvcm1kYXRhLnBob25lTnVtYmVyO2VtYWlsSGFuZGxlci5jb250YWN0QWRkcmVzcz1hLmZvcm1kYXRhLmFkZHJlc3M7ZW1haWxIYW5kbGVyLmNvbnRhY3RCaXJ0aD1hLmZvcm1kYXRhLmJpcnRoZGF0ZURheSsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCsKIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlWWVhcjtlbWFpbEhhbmRsZXIuc2FsZXNEZXB0PWEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdDtlbWFpbEhhbmRsZXIubWFrZT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlO2VtYWlsSGFuZGxlci5tb2RlbD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudEJ5U3RvY2s9ITE7ZW1haWxIYW5kbGVyLnNraXBHZW9Mb2M9ITA7ZW1haWxIYW5kbGVyLnBhcnRpYWw9ITE7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKHEpe2lmKHEpay5zZXRGaW5hbmNlRm9ybVN0YXR1c1RvU2VudCgpO2Vsc2V7dmFyIHQ9ZW1haWxIYW5kbGVyLl9fbGFzdFJldHVybnx8e307cT0ib2JqZWN0Ij09PXR5cGVvZiB0JiZ0Lm1lc3NhZ2U\/dC5tZXNzYWdlOiIiOwp2YXIgQT1qc19kMmNfZ2V0X3ZhbCgiRU1BSUxfRkFJTF9NRVNTQUdFIil8fCQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpfHwiVGhlcmUgd2FzIGEgcHJvYmxlbSBzdWJtaXR0aW5nIHlvdXIgYXBwbGljYXRpb24uIFBsZWFzZSB0cnkgYWdhaW4uIjtjb25zb2xlLmVycm9yKCJmaW5hbmNlX211bHRpc3RlcC5zZW5kRW1haWwgZmFpbGVkIix0KTt0PSQoIjxkaXY+IikudGV4dChxKS5odG1sKCk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2Euc3RlcD0zMDskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuc2hvdygpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKHE\/QSsiICIrdDpBKX19O2VtYWlsSGFuZGxlci5zZW5kTWFpbCghMSl9fSxzZXRGaW5hbmNlRm9ybVN0YXR1c1RvU2VudDpmdW5jdGlvbigpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9zZXRGaW5hbmNlTXVsdGlzdGVwRGF0YVN0YXR1c1RvU2VudD93c3dpZHRoPTAiLApkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTp7dXNlcklkOmsudXNlcklkKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7bGV0IGQ9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiRmluYW5jZUFjdGlvbkJveCJ9fSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChkKTtpZigiU1VDQ0VTUyI9PWN8fG51bGw9PT1jKWEuc3RlcD0yMSxrLnVzZXJJZCgtMSksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIiksJChkb2N1bWVudC5ib2R5KS50cmlnZ2VyKCJtdWx0aUZvcm1GaW5hbmNlU3VibWl0Iil9fSl9LHJlc2V0Rm9ybTpmdW5jdGlvbigpe2EuZm9ybWRhdGE9e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIixjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIiwKYmlydGhkYXRlRGF5OiIiLGFkZHJlc3M6IiIsc3BsaXRBZGRyZXNzOltdLGFkZHJlc3NfeWVhcnM6MCxhZGRyZXNzX21vbnRoczowLGFkZHJlc3MyOiIiLHNwbGl0QWRkcmVzczI6W10sYWRkcmVzczJfeWVhcnM6MCxhZGRyZXNzMl9tb250aHM6MCxhZGRyZXNzRW1wbG95ZXI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXI6W10scmVudE9yT3duOiIiLG1vbnRobHlQYXltZW50OjAsbW9udGhseURpc2J1cnNlbWVudDowLGVtcGxveW1lbnRTdGF0dXM6IiIsZW1wbG95bWVudEFkZGVkSW5mbzoiIixlbXBsb3llck5hbWU6IiIsZW1wbG95ZXJQaG9uZToiIixlbXBsb3ltZW50U3RhdHVzWWVhcjowLGVtcGxveW1lbnRTdGF0dXNNb250aDowLGVtcGxveW1lbnRBZGRlZEluZm8yOiIiLGVtcGxveWVyTmFtZTI6IiIsZW1wbG95ZXJQaG9uZTI6IiIsZW1wbG95bWVudFN0YXR1c1llYXIyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoMjowLGFkZHJlc3NFbXBsb3llcjI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXIyOltdLAp3b3JraW5nV2hpbGVJblNjaG9vbDoiIixvdGhlckVtcGxveW1lbnRTdGF0dXM6IiIsbW9udGhseUluY29tZTowLG1vbnRobHlJbmNvbWVfeWVhcnM6MCxtb250aGx5SW5jb21lX21vbnRoczowLHRpdGxlOiIiLGZpcnN0TmFtZToiIixsYXN0TmFtZToiIixwaG9uZU51bWJlcjoiIixjdXJyZW50TWFrZToiIixjdXJyZW50TW9kZWw6IiIsY3VycmVudE1vZGVsVGV4dDoiIixjdXJyZW50WWVhcjoiIixjdXJyZW50U3RvY2tOdW1iZXI6IiIsY3VycmVudE1pbGVhZ2U6MTAsY3VycmVudFRyaW06IiIsY3VycmVudFN0eWxlaWQ6IiIsY3VycmVudENhcklkOiIiLHBheW1lbnRUeXBlOiIiLHBheW1lbnRUeXBlUmVhbDoiIixwYXltZW50VGVybToiIixwYXltZW50UmF0ZVR5cGU6IiIscGF5bWVudFZhbHVlOiIiLGJhc2VwYXltZW50OiIiLHBheW1lbnRUb3RhbEluY2VudGl2ZTowLHBheW1lbnRUb3RhbEZlZTowLHBheW1lbnRHU1Q6MCxwYXltZW50SFNUOjAscGF5bWVudFBTVDowLHBheW1lbnREb3duUGF5bWVudDowLApwYXltZW50S21BbGxvd2FuY2U6MCxwYXltZW50SW50ZXJ2YWw6IiIscGF5bWVudFJhdGU6IiIscGF5bWVudFJlc2lkdWFsVmFsdWU6MCxub1BheW1lbnQ6ITEsbXVsdGlfZGVhbGVyX3NlbmRUbzoiIixjcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIixTSU46IiIsYWRkZWRJbmZvOiIiLHZlaGljbGVTYWxlc0RlcHQ6Im90aGVyIix2ZWhpY2xlUHJpY2U6IiIsdmVoaWNsZVRyYW5zbWlzc2lvbjoiIix2ZWhpY2xlVHJpbToiIix2ZWhpY2xlQ29sb3I6IiIsaW5pdGlhbFRpdGxlU2hvdzohMCxtdWx0aUZyb21NaW5pOiExLHRyYWRlSW5NYWtlOiIiLHRyYWRlSW5Nb2RlbDoiIix0cmFkZUluWWVhcjoiIix0cmFkZUluVHJpbToiIix0cmFkZUluVmFsdWU6IiJ9fSxjcmVkaXRBcHBTdW1pc3Npb246ZnVuY3Rpb24oKXt2YXIgYz1hLmZvcm1kYXRhLGQ9JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCk7Yy5zaXRlSWQ9ZDtjLmN1cnJlbnREZXB0PWEuY3VycmVudERlcHQ7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuc2hvdygpOwphLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0iWUVTIjthLnN0ZXA9MjE7JC5hamF4KHt1cmw6Ii8iK3crYC9hamF4L3N1Ym1pdENyZWRpdEFwcGxpY2F0aW9uP3dzd2lkdGg9JHtlbmNvZGVVUklDb21wb25lbnQoIjAiKX1gLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOmMsc3VjY2VzczpmdW5jdGlvbihlKXtsZXQgZixnLGw9ZS5hcHBsaWNhdGlvbklkO2lmKGUuZXJyb3IpZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9FUlJPUl9NU0dfTEVBRCIsYikudmFsKCksYS5jcmVkaXREZWNpc2lvbkhUTUw9ZztlbHNlIGlmKGwpe2lmKGY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpKyI8YnI+PGJyPiIrbCxmPWYucmVwbGFjZSgiIyNVU0VSRU1BSUwjIyIsYy5lbWFpbEFkZHJlc3MpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9TVUNDRVNTX01TR19MRUFEIiwKYikudmFsKCkrIjxzdHJvbmc+IitsKyI8L3N0cm9uZz4iLGEuY3JlZGl0RGVjaXNpb25IVE1MPWcsYS5jcmVkaXRBcHBsaWNhdGlvbklkPWwsZS5hcHBsaWNhdGlvblN0YXR1cyYmZS5hcHBsaWNhdGlvblN0YXR1cy5zdGF0dXMpc3dpdGNoKGUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXtjYXNlICJBcHByb3ZlZCI6JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpO2JyZWFrO2Nhc2UgIlBlbmRpbmciOiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfUEVORElOR19NU0ciLGIpLnZhbCgpO2JyZWFrO2RlZmF1bHQ6JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9OT0FQUFJPVkFMX01TRyIsYikudmFsKCl9fWVsc2UgZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9FUlJPUl9NU0dfTEVBRCIsYikudmFsKCksYS5jcmVkaXREZWNpc2lvbkhUTUw9ZzskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKTsKJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLmhpZGUoKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmh0bWwoZik7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5zaG93KCk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9fSl9LHJvdXRlT25lQ2FsbDpmdW5jdGlvbigpe3ZhciBjPWEuZm9ybWRhdGEsZD0kKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKTtjLnNpdGVJZD1kO2MuY3VycmVudERlcHQ9YS5jdXJyZW50RGVwdDskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5zaG93KCk7YS5zdGVwPTIxOyhmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGYsZyk9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2U9ZSsiP2NiPSIrMjAzODM0NzQ5MypNYXRoLnJhbmRvbSgpO2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwpsLnNldEF0dHJpYnV0ZSgic3JjIixlKTtsLnNldEF0dHJpYnV0ZSgiYXN5bmMiLCJmYWxzZSIpO2xldCBwPWRvY3VtZW50LmhlYWQ7cC5pbnNlcnRCZWZvcmUobCxwLmZpcnN0RWxlbWVudENoaWxkKTtsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ZigpfSwhMSl9KSl9KSgiL2pzL3JvdXRlMUhhbmRsZXIuanMiKS50aGVuKCgpPT57bGV0IGU9bmV3IHJvdXRlMUV2ZW50SGFuZGxlcighMSk7ZS5vbigiY29ubmVjdGVkIiwoZixnKT0+e2NvbnNvbGUubG9nKCJDb25uZWN0ZWQiKX0pO2Uub24oInJlYWR5IiwoZixnKT0+e2NvbnNvbGUubG9nKCJSZWFkeSIpO2UucmVxdWVzdENyZWRpdENoZWNrKGMpfSk7ZS5vbigiZXJyb3IiLChmLGcpPT57Y29uc29sZS5sb2coIkVycm9yOiAlbyIsZik7ZS5jbG9zZSgpO2suc2V0Q3JlZGl0RGVjaXNpb24oZi5tZXNzYWdlKTskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX0pO2Uub24oImNyZWRpdENoZWNrQ29tcGxldGUiLAooZixnKT0+e2NvbnNvbGUubG9nKCJDcmVkaXQgQ2hlY2sgQ29tcGxldGU6ICVvIixmKTtlLmNsb3NlKCk7ay5zZXRDcmVkaXREZWNpc2lvbihmKTskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX0pO2Uub24oIndhaXRpbmdPblJvdXRlMSIsKGYsZyk9Pntjb25zb2xlLmxvZygiV2FpdGluZyBvbiBSb3V0ZSAxOiAlbyIsZil9KX0pfSxzZXRDcmVkaXREZWNpc2lvbjpmdW5jdGlvbihjKXt2YXIgZCxlPSIiO2lmKGMuanNvbil7dmFyIGY9ImFwcHJvdmVkIj09Yy5qc29uLnN0YXR1cz8iQXBwcm92ZWQiOiJEZW5pZWQiO3ZhciBnPW51bGwhPShkPWMuanNvbi5pZCk\/ZDoiIjt2YXIgbDtkPW51bGwhPShsPWMuanNvbi5sZW5kZXIpP2w6IiI7Yy5qc29uLmVycm9ybXNnJiYiTm8gcGF5bWVudCI9PWMuanNvbi5lcnJvcm1zZyYmKGY9Yy5qc29uLmVycm9ybXNnLGQ9Zz0iIik7ZT1jLmpzb24uZXJyb3Jtc2d9ZWxzZSBpZihjLnN0YXRlKXtmPSJEZW5pZWQiOwp2YXIgcDtnPW51bGwhPShwPWMuc3RhdGUuaWQpP3A6IiI7ZD0iIjtjLmVycm9ybXNnJiYiTm8gcGF5bWVudCI9PWMuZXJyb3Jtc2cmJihmPWMuZXJyb3Jtc2csZD1nPSIiKTtlPWMuZXJyb3Jtc2c\/Yy5lcnJvcm1zZzpjLmVycm9yfWVsc2UgZj0iRGVuaWVkIixkPWc9IiI7IkFwcHJvdmVkIiE9Zj8obD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX05PQVBQUk9WQUxfTVNHIikudmFsKCksIk5vIHBheW1lbnQiPT1mPyhmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2Y6IlBhcyBkZSBwYWllbWVudCIsbD1sLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIiwiIikucmVwbGFjZSgiJEVycm9yQ29kZSIsZikpOmw9Zz9sLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIixnKS5yZXBsYWNlKCIkRXJyb3JDb2RlIixlKTpsLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIiwiIikucmVwbGFjZSgiJEVycm9yQ29kZSIsZSkpOihsPSQoIiNGSU5BTkNFX0ZPUk1fUk9VVEVPTkVfQVBQUk9WQUxfTVNHIikudmFsKCksCmw9bC5yZXBsYWNlKCIkTWFrZSIsYS5mb3JtZGF0YS5jdXJyZW50TWFrZSksbD1sLnJlcGxhY2UoIiRNb2RlbCIsYS5mb3JtZGF0YS5jdXJyZW50TW9kZWxUZXh0KSxsPWwucmVwbGFjZSgiJFllYXIiLGEuZm9ybWRhdGEuY3VycmVudFllYXIpLGw9bC5yZXBsYWNlKCIkVmVyc2lvbiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbSksbD1sLnJlcGxhY2UoIiRMZW5kZXIiLGQpLGw9bC5yZXBsYWNlKCIkUmVmZXJlbmNlSUQiLGcpLGY9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIixwPSIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOgokKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpLGY9ZiE9cCYmIiIhPWY\/ZjpwLGw9bC5yZXBsYWNlKCIkRGVhbGVyTmFtZSIsZiksbD0iIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/bC5yZXBsYWNlKCIkU3RvY2siLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTpsLnJlcGxhY2UoIihTdG9jayAkU3RvY2spIiwiIiksZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQXBwcm92ZWQiOiJBcHByb3V2w6kiKTtkJiYoZis9IiAiK2QpO2cmJihmKz0iICgiK2crIikiKTtlJiYoZis9IlxuIitlKTtnPVtdO2Mucm91dGUxaWQmJmcucHVzaChjLnJvdXRlMWlkKTtjLnN0YXRlJiZjLnN0YXRlLmlkJiZnLnB1c2goYy5zdGF0ZS5pZCk7aWYoYy5oaXN0b3J5KWZvcihlPTA7ZTxjLmhpc3RvcnkubGVuZ3RoO2UrKyljLmhpc3RvcnlbZV0uaWQmJmcucHVzaChjLmhpc3RvcnlbZV0uaWQpO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9CnthY3Rpb246IlJPVVRFT05FIixjb252ZXJzYXRpb25JZHM6Z307YS5jcmVkaXREZWNpc2lvbkhUTUw9ZjskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKTskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UZXh0IikuaGlkZSgpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikudGV4dChsKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnNob3coKX0sc2V0Q3VycmVudE1ha2VNb2RlbFllYXI6ZnVuY3Rpb24oKXtpZigiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpKXthLnN0ZXA9MDthLm5leHRTdGVwPUw7YS5mb3JtZGF0YS5ub1BheW1lbnQ9ITE7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW51bGw7YS5mb3JtZGF0YS5wYXltZW50VHlwZT0iIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD0iIjthLmZvcm1kYXRhLnBheW1lbnRUZXJtPSIiO2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSIiO2EuZm9ybWRhdGEucGF5bWVudFJlc2lkdWFsVmFsdWU9CiIiO2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPSIiO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT0iIjthLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPSIiO2EuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PVtdO2EuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiI7YS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wO2EuZm9ybWRhdGEucGF5bWVudEdTVD0wO2EuZm9ybWRhdGEucGF5bWVudEhTVD0wO2EuZm9ybWRhdGEucGF5bWVudFBTVD0wO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTA7YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9IiI7YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U9MDthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0iIjthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSIiO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIpOwpjLnJlcGxhY2VXaXRoKGMuY2xvbmVOb2RlKCEwKSl9YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1ha2U7YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikubGVuZ3RoPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS5sZW5ndGgmJjAhPSQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCk\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRZZWFyO2EuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoKToKYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI7dmFyIGQ9JCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbCgpOzA9PXBhcnNlSW50KGQpJiYoZD0iIik7aWYoIiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXJ8fCIiIT1kKWlmKGQpJC5nZXRKU09OKCIvanMvanNvbi8iK2QrIi5qc29uIixmdW5jdGlvbihmKXthLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9InVzZWQiO2EuY3VycmVudERlcHQ9IlVTRUQiO2lmKGYuaXNuZXd8fGYuZGVtbyYmIjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX0RFTU9BU05FVyJdJyxiKS52YWwoKSlhLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9Im5ldyIsYS5jdXJyZW50RGVwdD0iTkVXSU5WIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPWYuc3R5bGVJZDswPGYubWFrZWNlcnQmJihhLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9ImNwbyIpOwp2YXIgZz0oZi50cmFuc21pc3Npb25FTisiIikubWF0Y2goLyhhdXRvbWF0aWN8bWFudWFsKS9pKTtnPWc\/Z1swXToiIjthLmZvcm1kYXRhLnZlaGljbGVDb2xvcj1mLmNvbG9yRU47YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9Zi5vcmlnaW5hbFByaWNlO2EuZm9ybWRhdGEudmVoaWNsZVRhbnNtaXNzaW9uPWc7YS5mb3JtZGF0YS52ZWhpY2xlVHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50VHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9ZDthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPWYubWlsZXM7c3dpdGNoKGYuYm9keVR5cGVJRCl7Y2FzZSAiU1VWIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9TVVYiO2JyZWFrO2Nhc2UgIlRSVUNLIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9UUlVDSyI7YnJlYWs7Y2FzZSAiTUlOSVZBTiI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfTUlOSVZBTiI7YnJlYWs7ZGVmYXVsdDphLmZvcm1kYXRhLnZlaGljbGVUeXBlPQoiQk9EWVRZUEVfQ0FSIn0wPT1hLnN0ZXAmJmEubmV4dCghMCk7ay5wb3B1cExhdW5jaGVkVHJhY2soKX0pO2Vsc2V7YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJuZXciO2M9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii1lbiI6Ii1mciI7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2EuZm9ybWRhdGEuY3VycmVudFllYXIrYysiLmpzb24iO2lmKCJCTVciPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlfHwiTWVyY2VkZXMtQmVueiI9PWEuZm9ybWRhdGEuY3VycmVudE1ha2Upe3ZhciBlPSQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLmxlbmd0aCYmJCgiI3RleHRNb2RlbE92ZXJyaWRlIikudmFsKCkubGVuZ3RoPyQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLnZhbCgpOgphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDt1cmw9Ii9qc29uLyIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZS5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2MrIi5qc29uIn0wPD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5pbmRleE9mKCJoeWJyaWQiKSYmKGU9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLnZhbCgpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCJdJykudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwsdXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKSsiLSIrZS5yZXBsYWNlKCItIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2MrIi5qc29uIik7CiQoIi5wYXltZW50Q2FsY3VsYXRvclZEUCIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY3VsYXRvclZEUCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIi5wYXltZW50Q2FsY0J0biIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY0J0biIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoJiYoYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjYWN0aXZlU3R5bGVJRCIpLnZhbCgpKTskLmdldEpTT04odXJsKS5kb25lKGZ1bmN0aW9uKGYpe2lmKGYpe3N3aXRjaChmLnNlY3Rpb24pe2Nhc2UgInN1diI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfU1VWIjticmVhaztjYXNlICJ0cnVja3MiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1RSVUNLIjticmVhaztjYXNlICJtaW5pdmFucyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfTUlOSVZBTiI7CmJyZWFrO2RlZmF1bHQ6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfQ0FSIn0iIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmZi5zdHlsZXMuZm9yRWFjaChmdW5jdGlvbihnKXtnLmlkPT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkJiYoYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIiE9Zy50cmltP2cudHJpbTpnLkNGU3R5bGVOYW1lLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPWcubXNycEFsbEluKX0pfX0pLmFsd2F5cyhmdW5jdGlvbigpezA9PWEuc3RlcCYmKGEubmV4dCghMCksay5wb3B1cExhdW5jaGVkVHJhY2soKSl9KX1lbHNlIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYyMSE9YS5zdGVwJiYiMSIhPSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNPUEVORURGUk9NSU1BR0VQT1BVUCIsYikudmFsKCkmJmEucHVzaFBhcnRpYWwmJmsucHVzaERhdGFUb1NlcnZlcigpLC0xPT1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEuc3RlcCkmJmEubmV4dCghMCksCmsucG9wdXBMYXVuY2hlZFRyYWNrKCl9LGdldENsaWVudFN0b3JhZ2VEYXRhOmZ1bmN0aW9uKGMpe2xldCBkPSIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJihkPWNsaWVudFN0b3JhZ2UuZ2V0KGMpKTtyZXR1cm4gZH0sc2V0Q2xpZW50U3RvcmFnZURhdGE6ZnVuY3Rpb24oYyxkKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiZjbGllbnRTdG9yYWdlLnNldChjLGQpfSxzZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlczpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9PWEuZm9ybWRhdGEuZmlyc3ROYW1lJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiLGEuZm9ybWRhdGEuZmlyc3ROYW1lKSwiIiE9PWEuZm9ybWRhdGEubGFzdE5hbWUmJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIixhLmZvcm1kYXRhLmxhc3ROYW1lKSwiIiE9PWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYKay5zZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiLGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzKSwiIiE9PWEuZm9ybWRhdGEucGhvbmVOdW1iZXImJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIixhLmZvcm1kYXRhLnBob25lTnVtYmVyKSl9LHNldERlcGFydG1lbnQ6ZnVuY3Rpb24oKXt2YXIgYz1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7aWYoIk5FVyIhPWN8fCJORVdJTlYiIT1jfHwiVVNFRCIhPWMpYz0iTkVXIjthLmN1cnJlbnREZXB0PWM7Ik5FVyIhPWN8fCJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSYmInVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCl8fChhLmN1cnJlbnREZXB0PSJORVdJTlYiKX0sc2V0VHJhZGVJbjpmdW5jdGlvbigpe2EuZm9ybWRhdGEudHJhZGVJbk1ha2U9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJbk1ha2UiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJbk1vZGVsPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5Nb2RlbCJdJykudmFsKCk7CmEuZm9ybWRhdGEudHJhZGVJblllYXI9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblllYXIiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJblRyaW09JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblRyaW0iXScpLnZhbCgpO2xldCBjPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5WYWx1ZSJdJykudmFsKCksZD0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluVmFsdWUiXScpLmF0dHIoImRhdGEtY3VycmVudCIpO2QmJiIiPT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT9hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1kOiIiPT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSYmKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlPWMpOyIiIT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSYmKCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikudmFsKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLApiKS5hdHRyKCJtYXgiLGMpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFsIixiKS5oaWRlKCkpfSxnZXRDdXJyZW50QnVkZ2V0OmZ1bmN0aW9uKGMpe3JldHVybiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPzUwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl81MDAiOjY3Njw9YyYmODUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNjc2X0FORF84NTAiOjg1MTw9YyYmMTEwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzg1MV9BTkRfMTEwMCI6MTM1MDxjPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfMTM1MSI6NTAxPD1jJiY2NzU+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl81MDFfQU5EXzY3NSI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xMTAxX0FORF8xMzUwIjoKIjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX01VTFRJU1RFUF9WRVJZSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPzkwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl85MDAiOjExNTE8PWMmJjE0MDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xMTUxX0FORF8xNDAwIjoxNDAxPD1jJiYxNjUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTQwMV9BTkRfMTY1MCI6MTkwMDxjPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfMTkwMSI6OTAxPD1jJiYxMTUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fOTAxX0FORF8xMTUwIjoiRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzE2NTFfQU5EXzE5MDAiOjM1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl8zNTAiOjYwMTw9YyYmNzUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNjAxX0FORF83NTAiOjc1MTw9YyYmOTAwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNzUxX0FORF85MDAiOgo5MDA8Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzkwMSI6MzUxPD1jJiY0NzU+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8zNTFfQU5EXzQ3NSI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl80NzZfQU5EXzYwMCJ9LHNldERlYWxlclNlbGVjdEVtYWlsOmZ1bmN0aW9uKCl7c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIikmJihlbWFpbEhhbmRsZXIuc2V0RGVhbGVyU2VsZWN0RW1haWxzKCksYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPS0xKX0saGFzRGVhbGVyU2VsZWN0VmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIpfSxzZXRFbWFpbEhhbmRsZXJTZW5kOmZ1bmN0aW9uKCl7aWYoMD09YS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pfHwiZmFsc2UiPT1hLmZvcm1kYXRhLm11bHRpRnJvbU1pbmkpZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjRklOQU5DRV9GT1JNX1NFTkRUT19FTUFJTCIsCmIpLnZhbCgpLGVtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9BREZfRU1BSUwiLGIpLnZhbCgpLGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSIiIT0kKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiLGIpLnZhbCgpPyQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIsYikudmFsKCk6ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU7ZW1haWxIYW5kbGVyLnZlaGljbGVUeXBlPWEuZm9ybWRhdGEudmVoaWNsZVR5cGU7ZW1haWxIYW5kbGVyLmNhcmlkPWEuZm9ybWRhdGEuY3VycmVudENhcklkO2lmKGsuaGFzRGVhbGVyU2VsZWN0VmFsdWVzKCkpay5zZXREZWFsZXJTZWxlY3RFbWFpbCgpO2Vsc2UgaWYoLTE9PT1bLTEsIi0xIiwiIl0uaW5kZXhPZihhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG8pKXt2YXIgYz0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0Iik7Yz1jLmxlbmd0aD9jOiQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJyk7CmMubGVuZ3RoJiYoYz1jLmZpbmQoIjpzZWxlY3RlZCIpLGVtYWlsSGFuZGxlci5zZW5kVG89Yy5kYXRhKCJlbWFpbGZpbmFuY2UiKXx8Yy5kYXRhKCJlbWFpbCIpLGVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUbz1jLmRhdGEoImVtYWlsZmluYW5jZSIpfHxjLmRhdGEoImVtYWlsIiksZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1jLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfHxjLmRhdGEoImVtYWlsYWRmIiksZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWMuZGF0YSgiZW1haWxhZGZmaW5hbmNlIil8fGMuZGF0YSgiZW1haWxhZGYiKSxlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT1jLnRleHQoKSxlbWFpbEhhbmRsZXIuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITAsYz17c2VuZFRvOmVtYWlsSGFuZGxlci5zZW5kVG8sc2VsZWN0ZWRTZW5kVG86ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvLHNlbmRUb0FERkZvcm1hdDplbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0LApzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDplbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQsZGVhbGVyTmFtZTpjLnRleHQoKS50cmltKCksZGVhbGVyaWQ6Yy5kYXRhKCJkZWFsZXJpZCIpLG9wdGlvbmlkOmMudmFsKCl9LHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIsSlNPTi5zdHJpbmdpZnkoYykpKX19LGluaXRTZWxlY3RNdWx0aURlYWxlcjpmdW5jdGlvbigpe2lmKGsuaGFzRGVhbGVyU2VsZWN0VmFsdWVzKCkpay5zZXREZWFsZXJTZWxlY3RFbWFpbCgpLGEubmV4dCghMCk7ZWxzZXt2YXIgYz0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIik7aWYoMD09PWMubGVuZ3RoKWEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSxhLm5leHQoITApO2Vsc2V7dmFyIGQ9JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLmxlbmd0aD8kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikudmFsKCk6CiJsb2NhdGlvbiI7KDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCIiIT0kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoKSYmIjEiPT0kKCIjRklOQU5DRV9GT1JNX0FETUlOX1NIT1dQSFlTSUNBTEFERFJFU1NfQ0hFQ0siKS52YWwoKSkmJiJsb2NhdGlvbiI9PWQ\/KGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSxhLm5leHQoITApKToiIj09PSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS50ZXh0KCkudHJpbSgpJiYoJCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmFwcGVuZChjLmh0bWwoKSksIiIhPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtdWx0aURlYWxlclNlbGVjdCYmKGM9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpLG11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcihjKS5ieU1ha2UoYS5mb3JtZGF0YS5jdXJyZW50TWFrZSkpLAokKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmNzcygiYm9yZGVyLWNvbG9yIiwiIik7YS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPSQodGhpcykudmFsKCk7ay5jaGVja1ZhbGlkaXR5KCl9KSl9fX0sbXVsdGlEZWFsZXJGb3JtU3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikubGVuZ3RoPyEwOiIiIT09YS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvfSxlbWFpbEJvZHlGb3JNdWx0aURlYWxlcjpmdW5jdGlvbihjKXtpZigwPT09JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmxlbmd0aClyZXR1cm4gYzt2YXIgZD0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0IDpzZWxlY3RlZCIpLGU9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiZkLmxlbmd0aD8KKGU9ZS5yZXBsYWNlKCJ7JE1VTFRJREVBTEVSTkFNRX0iLGQudGV4dCgpKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IiwiIiksYz1jLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGUpKTokKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aCYmIiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCk\/KGQ9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iQ29uY2Vzc2lvbiBv77+9IGVzdCBzaXR177+9IGxlIHbvv71oaWN1bGU6ICI6IkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGQrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksCmM9Yy5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixkKSk6Yz1jLnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKTtyZXR1cm4gY30sY2hlY2tWYWxpZGl0eTpmdW5jdGlvbigpe2lmKGEudmFsaWRhdGlvblJ1bGVzLmhhc093blByb3BlcnR5KCJzdGVwIithLnN0ZXApKWZvcih2YXIgYz0wO2M8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2MrKylpZihrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdW2NdLmZ1bmNdKGEuZm9ybWRhdGFbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF1bY10udmFsdWVdKSkkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLApiKS5hZGRDbGFzcygiaXNWYWxpZCIpO2Vsc2V7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudFZXIixiKS5yZW1vdmVDbGFzcygiaXNWYWxpZCIpO2JyZWFrfWVsc2UgJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLmFkZENsYXNzKCJpc1ZhbGlkIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudFZXIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSxwb3B1cExhdW5jaGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQb3B1cCBsYXVuY2hlZCIpOwohay51c2VySWQoKSYmYS5maXJzdFN0ZXAmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsMSk7ay5zdGVwVHJpZ2dlcighMSl9LHN0ZXAyVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJTdGVwIDIgdmlld2VkIil9LGVtYWlsU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgc3RlcCB2aWV3ZWQiKX0scGhvbmVTdGVwVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQaG9uZSBzdGVwIHZpZXdlZCIpfSxlbWFpbFByb3ZpZGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJFbWFpbCBwcm92aWRlZCIpfSxwaG9uZVByb3ZpZGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQaG9uZSBwcm92aWRlZCIpfSxzdGVwVHJpZ2dlcjpmdW5jdGlvbihjKXtjPXtzdGVwOmEuZ2V0TGluZWFyc3RlcChjKSxtYWtlOmEuZm9ybWRhdGEuY3VycmVudE1ha2UsbW9kZWw6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwseWVhcjphLmZvcm1kYXRhLmN1cnJlbnRZZWFyLGJvZHlUeXBlOmEuZm9ybWRhdGEudmVoaWNsZVR5cGUsCnNhbGVzRGVwdDphLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQsdmVoaWNsZUNvbG9yOmEuZm9ybWRhdGEudmVoaWNsZUNvbG9yLHZlaGljbGVQcmljZTphLmZvcm1kYXRhLnZlaGljbGVQcmljZSx2ZWhpY2xlVGFuc21pc3Npb246YS5mb3JtZGF0YS52ZWhpY2xlVGFuc21pc3Npb24sdmVoaWNsZVRyaW06YS5mb3JtZGF0YS52ZWhpY2xlVHJpbX07JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnRyaWdnZXIoImZvcm0uc3RlcCIsYyk7YS5maXJzdFN0ZXA9ITF9fTt3aW5kb3cuYXBwVGVzdD1hO3ZhciBXOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzZWxlY3QsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHRleHRhcmVhIikub24oImNoYW5nZSBpbnB1dCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoVyk7Vz1zZXRUaW1lb3V0KGsuY2hlY2tWYWxpZGl0eSw1MDApfSk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0nKS5vbigiZm9jdXMiLApmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigic2VsZWN0Iil9KTtyZXR1cm57c3RhcnQ6UCxoYXNVc2VyOmsuaGFzVXNlcn19CiQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIixmdW5jdGlvbigpeyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydCIpfSk7JChkb2N1bWVudCkub24oInJldmVhbDpvcGVuIiwiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkclZpZXdEaXNjbGFpbWVyTGluayIsZnVuY3Rpb24oKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1Z3RFIiKS52YWwoKSYmdm9pZCAwIT1kckRpc2NsYWltZXJKUyYmZHJEaXNjbGFpbWVySlMuY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnMoKTskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5zaG93KCk7CiQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLmFkZENsYXNzKCJvcGVuIil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciIsZnVuY3Rpb24oKXskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5yZW1vdmVDbGFzcygib3BlbiIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLmhpZGUoKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkclZpZXdEaXNjbGFpbWVyTGluayIsZnVuY3Rpb24oKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1Z3RFIiKS52YWwoKSYmdm9pZCAwIT1kckRpc2NsYWltZXJKUyYmZHJEaXNjbGFpbWVySlMuY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnMoKTsKJCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLnNob3coKTskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuYWRkQ2xhc3MoIm9wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciIsZnVuY3Rpb24oKXskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuaGlkZSgpfSl9KTsKLyoqIC9qcy9jYWxjdWxhdG9yRnVuY3Rpb25zLmpzICoqLwp2YXIgX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDIwOjMwOjE0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxOTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxODozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxNzozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxNjozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxNTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxNDozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxMzozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTI6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTE6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTA6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMDk6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMDg6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMDc6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMDY6MzA6MTQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA1OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA0OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDAzOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDAyOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDAxOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDAwOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDIzOjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAyMjozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAyMTozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAyMDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAxOTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAxODozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAxNzozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAxNjozMDoxOCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTU6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTQ6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTM6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTI6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTE6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTA6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMDk6MzA6MTkiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA4OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA2OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA1OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA0OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDAzOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDAyOjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMTozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAyMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAyMjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAyMTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAyMDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAxOTozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTc6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTY6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTU6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTQ6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTM6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTI6MzA6MTkiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDExOjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDEwOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDA5OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDA4OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDA3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDA2OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDA1OjMwOjE0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwMjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwMTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwMDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAyMzozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAyMjozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjE6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMTk6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMTc6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMTY6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMTU6MzA6MjEiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE0OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDEzOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDEyOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDExOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDEwOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDA5OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDA4OjMwOjE4IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwNzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwNjozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwNTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwNDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwMjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwMTozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMjM6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMjI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMjE6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMjA6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMTk6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE3OjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE2OjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE1OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE0OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDEzOjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDEyOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDExOjMwOjE4IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMDozMDoxNiI7InVzZSBzdHJpY3QiOwpjbGFzcyBjYWxjdWxhdG9yRnVuY3Rpb25ze2NvbnN0cnVjdG9yKGEpe3RoaXMucGFyZW50PWE7dGhpcy5wYXJlbnROYW1lPXRoaXMucGFyZW50LnJlcGxhY2UoIiMiLCIiKTt0aGlzLnNldFRyaWdnZXJzKCl9aW5pdChhLGIsZSxmLGgsZyxrLHAsbil7dmFyIHE9dGhpcy5wYXJlbnQ7dGhpcy5zdHlsZWlkPWE7dGhpcy5wYXltZW50VHlwZT1iO3RoaXMudHJhZGVJblZhbHVlPSQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpP3BhcnNlSW50KCQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpKTowO3RoaXMuZG93bnBheW1lbnQ9MD5lLXRoaXMudHJhZGVJblZhbHVlPzA6ZS10aGlzLnRyYWRlSW5WYWx1ZTt0aGlzLm9wdGlvbnNBbW91bnQ9Zjt0aGlzLnBheW1lbnRGcmVxdWVuY3k9aDt0aGlzLmttQWxsb3dhbmNlPWc7dGhpcy5pc0ludmVudG9yeT1rP2s6ITE7dGhpcy5zbj1wP3A6IiI7dGhpcy52aW49bj9uOiIiO3RoaXMubG9hZFBheW1lbnRzKCEwKX1zZXRJbml0aWFsVmlldyhhKXt2YXIgYj0KdGhpcy5wYXJlbnQsZT10aGlzOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHRoaXMuZG93bnBheW1lbnQpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKGEuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpO2xldCBmPSJsZWFzZSI9PWEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyI7JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrZisiJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTswPT1hLmZpbmFuY2UubGVuZ3RoPyQoYisiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKGIrCiIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuc2hvdygpO2lmKDA9PWEubGVhc2UubGVuZ3RoKSQoYisiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5oaWRlKCk7ZWxzZXskKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpO2xldCBnPVtdO2EubGVhc2UuZm9yRWFjaChmdW5jdGlvbihrKXstMT09JC5pbkFycmF5KGsua21fYWxsb3dhbmNlLGcpJiZnLnB1c2goay5rbV9hbGxvd2FuY2UpfSk7Zy5mb3JFYWNoKGZ1bmN0aW9uKGspe2xldCBwPWUucGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoay50b0ZpeGVkKDApKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLmFwcGVuZChuZXcgT3B0aW9uKHArIiBrbSIsaykpfSk7dmFyIGg9MkU0O2EuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYoaD0KMDxhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9hLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGgpfXRoaXMua21BbGxvd2FuY2U9JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTsibGVhc2luZyI9PWY\/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\/YDxkaXYgJHtmfT5gOiIifSggJHtifSApJHtoPyI8L2Rpdj4iOiIifWB9fTsKLyoqIC9qcy9qcXVlcnkuZXhpdExpc3RlbmVyLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWV4aXRMaXN0ZW5lcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MjEiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWV4aXRMaXN0ZW5lcmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MjgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5ZXhpdExpc3RlbmVyanNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MjoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnlleGl0TGlzdGVuZXJqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUyOjAwIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWV4aXRMaXN0ZW5lcmpzX2Nfb249IjIwMjEtMTItMTUgMTI6NTM6MDAiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGMpe2MuZXhpdExpc3RlbmVyPWZ1bmN0aW9uKGYpe2Z1bmN0aW9uIGQoYSxnKXthJiYiZnVuY3Rpb24iPT10eXBlb2YgYSYmKGEuY2FsbChudWxsLGcpLGU9ITAsYi5jb29raWUmJmMuY29va2llKGIuY29va2llTmFtZSwidCIse3BhdGg6Ii8ifSkpfWZ1bmN0aW9uIGgoKXshZSYmYi5jb29raWUmJihlPSJ0Ij09Yy5jb29raWUoYi5jb29raWVOYW1lKSk7cmV0dXJuIGV9dmFyIGI9Yy5leHRlbmQoe30se2Nvb2tpZTohMSxjb29raWVOYW1lOiJleGl0X3RyaWdnZXIiLGRlbGF5OjAsb25MZWF2ZVRvcDohMSxvbkxlYXZlQm90dG9tOiExLG9uTGVhdmVMZWZ0OiExLG9uTGVhdmVSaWdodDohMX0sZiksZT0hMSxtPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2lmKCFoKCkpYyhkb2N1bWVudCkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpeyhuZXcgRGF0ZSkuZ2V0VGltZSgpO2lmKCEoZi5kZWxheSYmZi5kZWxheT4obmV3IERhdGUpLmdldFRpbWUoKS1tfHxoKCkpKXt2YXIgZz0KYyh3aW5kb3cpLndpZHRoKCksbj1jKHdpbmRvdykuaGVpZ2h0KCk7c3dpdGNoKGEudHlwZSl7Y2FzZSAibW91c2VsZWF2ZSI6dmFyIGs9YS5vZmZzZXRYLGw9YS5vZmZzZXRZfWlmKDA+PWwpcmV0dXJuIGQoYi5vbkxlYXZlVG9wLGEpO2lmKGw+PW4pcmV0dXJuIGQoYi5vbkxlYXZlQm90dG9tLGEpO2lmKDA+PWspcmV0dXJuIGQoYi5vbkxlYXZlTGVmdCxhKTtpZihrPj1nKXJldHVybiBkKGIub25MZWF2ZVJpZ2h0LGEpfX0pfX0pKGpRdWVyeSk7Ci8qKiAvanMvY29udGFjdFBvcHVwLmpzICoqLwp2YXIgX19fZDJjX2NvbnRhY3RQb3B1cGpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6NDYiOyd1c2Ugc3RyaWN0Jzt2YXIgY29udGFjdFBvcHVwPXtwb3B1cDokKCIjY29udGFjdHBvcHVwIiksb3B0aW9uczp7dHlwZToiIn0sc2V0Q29uZmlnOmZ1bmN0aW9uKGEpe2NvbnRhY3RQb3B1cC5vcHRpb25zPSQuZXh0ZW5kKHt9LGNvbnRhY3RQb3B1cC5vcHRpb25zLGEpO3JldHVybiBjb250YWN0UG9wdXB9LGluaXQ6ZnVuY3Rpb24oKXtjb250YWN0UG9wdXAuc2V0Q29uZmlnKHt0eXBlOnNlbGYuc2V0dGluZ3MuZm9ybS50eXBlfSk7Y29udGFjdFBvcHVwLnBvcHVwLnBvcHVwaXplKHtvbkJlZm9yZVNlbmRNYWlsOmNvbnRhY3RQb3B1cC5vbkJlZm9yZVNlbmRNYWlsfSkub3BlbigpO3JldHVybiBjb250YWN0UG9wdXB9LG9uQmVmb3JlU2VuZE1haWw6ZnVuY3Rpb24oYSl7Y29udGFjdFBvcHVwLnNldEVtYWlsSGFuZGxlckZyb21BZGRyZXNzZXMoKTtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPWNvbnRhY3RQb3B1cC5nZXRDb25kaXRpb24oKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD1jb250YWN0UG9wdXAuZ2V0VHlwZSgpLnRvVXBwZXJDYXNlKCk7CiJCTlAiPT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCYmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJORVciKTtlbWFpbEhhbmRsZXIuc2tpcEdldERlcD0hMDtlbWFpbEhhbmRsZXIuYm9keT1lbWFpbEhhbmRsZXIuYm9keS5yZXBsYWNlKCJ7JE5BTUV9IixlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSsiICIrZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSl9LGdldENvbmRpdGlvbjpmdW5jdGlvbigpe3N3aXRjaChjb250YWN0UG9wdXAuZ2V0VHlwZSgpKXtjYXNlICJibnAiOmNhc2UgIm5ldyI6Y2FzZSAibWFudWZhY3R1cmVyIjpyZXR1cm4ibmV3IjtkZWZhdWx0OnJldHVybiJ1c2VkIn19LGdldFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gY29udGFjdFBvcHVwLm9wdGlvbnMudHlwZX0sc2V0RW1haWxIYW5kbGVyRnJvbUFkZHJlc3NlczpmdW5jdGlvbigpe3ZhciBhPWNvbnRhY3RQb3B1cC5nZXRUeXBlKCk7dHJ5e3ZhciBiPWNvbnRhY3RQb3B1cC5nZXRFbWFpbHMoYSk7IiI9PT1iLnNlbmRUbyYmCiIiPT09Yi5zZW5kVG9BREYmJihiPWNvbnRhY3RQb3B1cC5nZXRFbWFpbHMoInVzZWQiKSk7dmFyIGM9Yi5zZW5kVG8sZD1iLnNlbmRUb0FERjsiIj09PWMmJiIiPT09ZCYmY29uc29sZS5sb2coIldhcm5pbmc6IGJvdGggZW1haWwgYW5kIEFERiBhZGRyZXNzZXMgYXJlIGVtcHR5ISIpO2lmKCQoIiNjdXN0b21Gb3JtX29yaWdpbmFsc2VuZHRvIikubGVuZ3RoJiYiT3RoZXIiPT0kKCIjY3VzdG9tRm9ybV9vcmlnaW5hbHNlbmR0byIpLnZhbCgpKXt2YXIgZT0kKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS52YWwoKSxmPSQoIiNjdXN0b21Gb3JtX3NlbmR0b0FERiIpLnZhbCgpO2lmKCIiIT09ZXx8IiIhPT1mKWM9ZSxkPWZ9ZW1haWxIYW5kbGVyLnNlbmRUbz1jO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZH1jYXRjaChnKXtjb25zb2xlLmxvZyhnKX1yZXR1cm4gY29udGFjdFBvcHVwfSxnZXRFbWFpbHM6ZnVuY3Rpb24oYSl7dmFyIGI9JCgiI2hpZGRlbkNvbnRhY3Rwb3B1cCIpOwoiYm5wIj09YSYmKGE9Im5ldyIpO3ZhciBjPWIuZmluZCgiI2VtYWlsXyIrYSkudmFsKCk7YT1iLmZpbmQoIiNlbWFpbEFERl8iK2EpLnZhbCgpO3JldHVybntzZW5kVG86YyxzZW5kVG9BREY6YX19fSxpbml0Q29udGFjdHBvcHVwPWZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTtjb250YWN0UG9wdXAuaW5pdCgpfSxjb250YWN0UG9wdXBTdWJtaXQ9ZnVuY3Rpb24oKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5zdWJtaXQoKX0sY29udGFjdFBvcHVwQ2xvc2U9ZnVuY3Rpb24oKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5jbG9zZSgpfTsKLyoqIC9qcy9wYXltZW50Q2FsY3VsYXRvci5qcyAqKi8KdmFyIF9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMjA6MzA6MjUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxOTozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTg6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDE3OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxNjozMDozMSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTU6MzA6MjciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDE0OjMwOjMwIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxMzozMDoyNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDEyOjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxMTozMDozNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTA6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDA5OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAwODozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMDc6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDA2OjMwOjI1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMDU6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDA0OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAwMzozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMDI6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDAxOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAwMDozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMjM6MzA6MjYiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAyMjozMDoyNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMjE6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDIwOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxOTozMDoyNyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTg6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDE3OjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxNjozMDozMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDE1OjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxNDozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTM6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDEyOjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxMTozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTA6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDA5OjMwOjM0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDg6MzA6MzEiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDA3OjMwOjI3IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwNjozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDU6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDA0OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwMzozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDI6MzA6MjYiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwMTozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDA6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDIzOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAyMjozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMjE6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDIwOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxOTozMDoyNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE4OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxNzozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTY6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE1OjMwOjM1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxNDozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTM6MzA6MzAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDEyOjMwOjMzIjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTE6MzA6MzUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDEwOjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwOTozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDg6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDA3OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwNjozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDU6MzA6MjYiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwNDozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDM6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDAyOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwMTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDA6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDIzOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAyMjozMDoyNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDIxOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAyMDozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTk6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDE4OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxNzozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTY6MzA6MzIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDE1OjMwOjM0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTQ6MzA6MzAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDEzOjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxMjozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTE6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDEwOjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwOTozMDozMSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDg6MzA6MjkiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwNzozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDY6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA1OjMwOjI0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwNDozMDoyNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDM6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDAyOjMwOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwMTozMDoyMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDAwOjMwOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAyMzozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMjI6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDIxOjMwOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAyMDozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTk6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDE4OjMwOjI0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTc6MzA6MzYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDE2OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxNTozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTQ6MzA6MzEiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDEzOjMwOjI5IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxMjozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTE6MzA6MzIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxMDozMDoyOCI7InVzZSBzdHJpY3QiOwpmdW5jdGlvbiBwb3B1cENhbGN1bGF0b3JJbml0aWFsaXplZCgpe2Z1bmN0aW9uIGEoKXtiJiZiLmFib3J0KCk7Y2FsY1VwZGF0ZVBheW1lbnRYaHImJihjYWxjVXBkYXRlUGF5bWVudFhoci5hYm9ydCgpLGNhbGNVcGRhdGVQYXltZW50WGhyPW51bGwpO3ZhciBkPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGM9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksZj1nZXRPcHRpb25zQW1vdW50KGMpLHU9Z2V0QWNjZXNzb3JpZXNBbW91bnQoYyk7bGV0IG09Z2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhjKTt2YXIgbj1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYykscD1jLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09Yy5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWMubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fAoiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkseD1jLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP2Muc3RvY2tOdW1iZXI6IiIseT1jLmhhc093blByb3BlcnR5KCJ2aW4iKT9jLnZpbjoiIixyPXBhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApO2lmKHAmJiF4KXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO3QmJih4PXQudmFsdWV8fCIiKX1wJiYheSYmKHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoeT10LnZhbHVlfHwiIik7cCYmIWMuc3R5bGVpZCYmKHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihjLnN0eWxlaWQ9dC52YWx1ZXx8Yy5zdHlsZWlkKTtpZigiY2FzaCI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKWVuYWJsZUNhc2hPcHRpb24oKTsKZWxzZXt0PXBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwwKStyO3ZhciBBPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3EuY2hlY2tlZCYmKHE9cS5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZBLnB1c2gocSl9KTt2YXIgdz1udWxsO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYodz1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpKTt2YXIgQj0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpOyFCJiZ3JiZ3WzNdJiYoQj13WzNdKTt2YXIgZz0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKTshZyYmdyYmCndbMF0mJihnPXdbMF0pOyEkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpJiZ3JiZ3WzJdJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCh3WzJdKTtiPSQuYWpheCh7dXJsOmQsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6Yy5zdHlsZWlkLHBheW1lbnRUeXBlOmcsZG93bnBheW1lbnQ6dCxvcHRpb25zQW1vdW50OmYscGF5bWVudEZyZXF1ZW5jeTokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLGttQWxsb3dhbmNlOkIsb3B0aW9uczpmLGlzSW52ZW50b3J5OnAsc246eCx2aW46eSxjb25kaXRpb25hbFJlYmF0ZUlkczpBLmpvaW4oIiwiKSxhY2Nlc3Nvcmllczp1LHNlbGVjdGVkQWNjZXNzb3JpZXM6bSxwcm90ZWN0aW9uUGxhbnM6bn0sc3VjY2VzczpmdW5jdGlvbihxKXtxLmN1cnJlbnRQYXltZW50JiZxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHIpLApnPSJsZWFzZSI9PT1nPyJsZWFzaW5nIjoiZmluYW5jZSI9PT1nPyJmaW5hbmNpbmciOmcsImNhc2giPT09ZyYmKCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkscS5jdXJyZW50UGF5bWVudCYmMCE9PXEuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1nPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsCiExKSxxLmN1cnJlbnRQYXltZW50JiYwPHEuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwocS5jdXJyZW50UGF5bWVudFswXS5pbnRlcnZhbCksZz1nfHwoImxlYXNlIj09PXEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKSxzaG93SGlkZVBheW1lbnRTZWN0aW9uKHEsZyksMD49JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikubGVuZ3RoJiYKcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24ocSksImxlYXNpbmciPT1nPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpLGdldENhc2hQcmljZUJsb2NrKHEpLCJjYXNoIj09PWc\/ZW5hYmxlQ2FzaE9wdGlvbigpOihxLmN1cnJlbnRQYXltZW50JiZxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmc2hvd1BheW1lbnRzKHEuY3VycmVudFBheW1lbnQscS5wYXltZW50RmVlcyxxLm1ha2VpZCxxKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHo9JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdOmNoZWNrZWQnKTt6Lmxlbmd0aCYmIk5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYoej17Y3VycmVudFBheW1lbnQ6ei5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksCmN1cnJlbnRSYXRlOnouYXR0cigiZGF0YS1yYXRlIikscGF5bWVudFRlcm06ei52YWwoKSxwYXltZW50VHlwZTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxwYXltZW50SW50ZXJ2YWw6JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxwYXltZW50RG93blBheW1lbnQ6cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fDApK3BhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApLHRvdGFsSW50ZXJlc3Q6ei5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxsdXhlVGF4QW1vdW50OnouYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscmF0ZVR5cGU6ei5hdHRyKCJkYXRhLXJhdGV0eXBlIiksZWZmZWN0aXZlUmF0ZTp6LmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpLHRvdGFsQ29zdDp6LmF0dHIoImRhdGEtdG90YWxDb3N0Iil9LApjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHopKX0sMjUwKSkpfSxlcnJvcjpmdW5jdGlvbihxLHosRCl7Y29uc29sZS5lcnJvcigibG9hZFBheW1lbnRzOjogUGF5bWVudCBjYWxjdWxhdGlvbiBlcnJvcjoiLHosRCl9fSl9fXZhciBiPW51bGw7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub24oImNsaWNrIixmdW5jdGlvbihkKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3ZhciBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKTskKHRoaXMpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3N3aXRjaCghMCl7Y2FzZSAibGVhc2luZyI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmMuaGlkZGVuPQohMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTtzaG93RGlzY2xhaW1lckxpbmsoKTticmVhaztjYXNlICJmaW5hbmNpbmciPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpjLmhpZGRlbj0hMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTtzaG93RGlzY2xhaW1lckxpbmsoKTticmVhaztjYXNlICJjYXNoIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6aGlkZURpc2NsYWltZXJMaW5rKCksYy5oaWRkZW49ITEsJCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLApudWxsIT09Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihjPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksY1swXT0iY2FzaCIsQ29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixjLmpvaW4oIi0iKSxudWxsLCIvIikpLHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCwidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5zZXRCTlBWaWV3JiZtb2RlbENvbmZpZy5zZXRCTlBWaWV3KCEwLCJjYXNoIil9bGV0IGY7MSE9KG51bGw9PWQ\/dm9pZCAwOm51bGw9PShmPWQuZGV0YWlsKT92b2lkIDA6Zi5pc0ZpcnN0UnVuKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS50cmlnZ2VyKCJibHVyIil9KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9uKCJjaGFuZ2UiLApmdW5jdGlvbigpe2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGQ9cGFyc2VJbnQoJCh0aGlzKS52YWwoKS5yZXBsYWNlKC9bXlxkXS9nLCIiKSl8fDA7dmFyIGM9ImxlYXNpbmciPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/cGFyc2VJbnQoJCgiI21heERvd25QYXltZW50Rm9yVHJpbSIpLnZhbCgpKXx8MDpwYXJzZUludCgkKCIjbWF4RG93blBheW1lbnRGaW5hbmNlRm9yVHJpbSIpLnZhbCgpKXx8MDswPGMmJmQ+YyYmKGQ9Yyk7JCh0aGlzKS52YWwoZCk7YSgpfSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGQ9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsYz1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtjPWM+ZD9kOmM7JCh0aGlzKS52YWwoYyk7Cl9sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIsSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmN9KSwxKTthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwKJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikub24oImNsaWNrIixmdW5jdGlvbigpe2dldFBvcENvbnRhaW5TZXR0aW5ncygpLmFscmVhZHlJbml0PSEwO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITApO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMTt2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJm1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIC5jbG9zZS1yZXZlYWwtbW9kYWwiKS5vbigiY2xpY2siLApmdW5jdGlvbigpe3ZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmKG1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKSwkKCIjZHJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciIpLmxlbmd0aCYmJCgiI2RyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKS5pcygiOnZpc2libGUiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIikuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIikuc3R5bGUuZGlzcGxheT0ibm9uZSIpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBkPWdldFBvcENvbnRhaW5TZXR0aW5ncygpO2Quc3R5bGVpZD0kKHRoaXMpLnZhbCgpOwokKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aCYmJCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoZC5zdHlsZWlkKTtwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpO3VwZGF0ZVVybChkKX0pOyQoImJvZHkiKS5vbigiY2xpY2sgdGFwIiwiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgKiIsZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJyxmdW5jdGlvbigpe3ZhciBkPSQodGhpcykudmFsKCksYz0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJysKZCsnIl1bZGF0YS1yYXRldHlwZT0iJytjKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytkKyciXVtkYXRhLXJhdGV0eXBlPSInK2MrJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLnZhbCgpLGM9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrCmQrJyJdW2RhdGEtcmF0ZXR5cGU9IicrYysnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCkudHJpZ2dlcigiY2hhbmdlIil9KTt2YXIgZT0hMTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgZD1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxjPSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpLGY9JCh0aGlzKS52YWwoKSx1PSQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCksbT0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpLG49JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKT8kKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpOjAscD0kKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKT8KJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCk6MDtuPXBhcnNlSW50KG4pK3BhcnNlSW50KHApO249bi50b0ZpeGVkKDApO3A9YysiLSIrZisiLSIrdSsiLSIrbSsiLSIrbjtwIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmbnVsbCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJih3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITAsdm9pZCAwIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiZ2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmKGU9ITAsbW9kZWxDb25maWcuc2V0Qk5QVmlldyhlLGMpKSxudWxsIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmCkNvb2tpZXMuc2V0KCJwcmV2aW91c3BheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSxudWxsLCIvIikpO2V8fCJ1bmRlZmluZWQiPT10eXBlb2YgbW9kZWxDb25maWd8fCJ1bmRlZmluZWQiPT09dHlwZW9mIG1vZGVsQ29uZmlnfHx2b2lkIDA9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKXx8bW9kZWxDb25maWcuc2hvdWxkUmVsb2FkQk5QVmlld09uUGF5bWVudENoYW5nZShlLGMpO0Nvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIscCxudWxsLCIvIik7dmFyIHg9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Im1vbnRocyI6Im1vaXMiLHk9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiQiK24rIiBkb3duIHBheW1lbnQiOm4rIiAkIGNvbXB0YW50IjtwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwoicGVyIHdlZWsgZm9yIjoicGFyIHNlbWFpbmUgcG91ciI7c3dpdGNoKHUpe2Nhc2UgIndlZWtseSI6cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIHdlZWsgZm9yIjoicGFyIHNlbWFpbmUgcG91ciI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOnA9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciAyIHdlZWtzIGZvciI6InBhciAyIHNlbWFpbmVzIHBvdXIiO2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJ0d2ljZSBhIG1vbnRoIGZvciI6IjIgZm9pcyBwYXIgbW9pcyBwb3VyIjticmVhaztjYXNlICJtb250aGx5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgbW9udGggZm9yIjoicGFyIG1vaXMgcG91ciJ9bT0ibGVhc2luZyI9PT1jP20rImttIjoiIjt2YXIgcj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8ibGVhc2luZyI9PT1jPyJMZWFzaW5nIjoiRmluYW5jaW5nIjoKImxlYXNpbmciPT09Yz8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCI7ZC52ZWhpY2xlSW5mbyYmKGVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZT1kLnZlaGljbGVJbmZvLm1ha2UrIiAiKyhkLnZlaGljbGVJbmZvLm1vZGVsfHxkLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lKSsiICIrZC52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSxlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ZC52ZWhpY2xlSW5mby55ZWFyKyIgIitlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU6ZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlKyIgIitkLnZlaGljbGVJbmZvLnllYXIsZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlKz0iKCIrcisiICIrcCsiICIrZisiICIreCsiLiAiK3krIi4gIittKyIpIixlbWFpbEhhbmRsZXIubWFrZT1kLnZlaGljbGVJbmZvLm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPWQudmVoaWNsZUluZm8ubW9kZWx8fGQudmVoaWNsZUluZm8uQ0ZNb2RlbE5hbWUsCmVtYWlsSGFuZGxlci50cmltPWQudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnllYXI9ZC52ZWhpY2xlSW5mby55ZWFyKTtpZigiTkVXQ0FSUyIhPT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSl7bT0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTtkPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7cD0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpO3g9JCh0aGlzKS5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKTt5PSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIik7cj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTt2YXIgdD0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxDb3N0Iik7Y2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh7Y3VycmVudFBheW1lbnQ6bSxjdXJyZW50UmF0ZTpkLHBheW1lbnRUZXJtOmYscGF5bWVudFR5cGU6YyxwYXltZW50SW50ZXJ2YWw6dSwKcGF5bWVudERvd25QYXltZW50Om4sdG90YWxJbnRlcmVzdDpwLGx1eGVUYXhBbW91bnQ6eCxyYXRlVHlwZTpyLGVmZmVjdGl2ZVJhdGU6eSx0b3RhbENvc3Q6dH0pfXI9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IjskKCIjZGVhbGVyUHJvdmluY2VDb2RlIikubGVuZ3RoJiYiQUIiPT0kKCIjZGVhbGVyUHJvdmluY2VDb2RlIikudmFsKCkmJihyPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6IitHU1QiKTtpZigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoKXt4PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCI7bT0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTtkPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7cD0iMSI9PSQoIiNyb3VuZFBheW1lbnQiKS52YWwoKT8wOjI7CnQ9cGFyc2VGbG9hdChtKS50b0ZpeGVkKHApO3Q9dC5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihBLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7eT0kKHRoaXMpLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpO3A9JCgiI0lOVEVSVkFMX1NIT1JUX1dFRUtMWSIpLnZhbCgpO209NTI7c3dpdGNoKHUpe2Nhc2UgIndlZWtseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfV0VFS0xZIikudmFsKCk7bT01MjticmVhaztjYXNlICJiaXdlZWtseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfQklXRUVLTFkiKS52YWwoKTttPTI2O2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9TRU1JTU9OVEhMWSIpLnZhbCgpO209MjQ7YnJlYWs7Y2FzZSAibW9udGhseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfTU9OVEhMWSIpLnZhbCgpLG09MTJ9dT1yKyIvIitwOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYKImJsdXIiPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpJiYodD0nPHNwYW4gY2xhc3M9ImJsdXItcHJpY2UiPicrdCsiPC9zcGFuPiIpO3A9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UodCk7bj1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShuKSsoIkVOR0xJU0giPT09eD8iIGRvd24iOiIgY29tcHRhbnQiKTtjPSJmaW5hbmNpbmciPT09Yz8iRU5HTElTSCI9PT14P2YrIiBtb250aHMgZmluLiI6IkZpbi4gIitmKyIgbW9pcyI6IkVOR0xJU0giPT09eD9mKyIgbW9udGhzIGxlYXNlIjoiTG9jLiAiK2YrIiBtb2lzIjtkPXBhcnNlRmxvYXQoZCkudG9GaXhlZCgyKSsiJSI7eD1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dCh5LGQsIiIsIiIsITEpO3k9YysiIC8gIituKyIgQCAiK2QreCsiOiI7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoZj1wYXJzZUludChwYXJzZUludChmKS8xMiptKSxtPXN0b3JlLmdldCgiaTE4biIpLlBBWU1FTlRTLnRvTG93ZXJDYXNlKCksCiEwPT09c3RvcmUuZ2V0KCJmaWVsZHMuVldfRFJfUFBfRU5BQkxFRCIpJiYobis9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIiAgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJkaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNy1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iNyI+PHN1cCBkYXRhLWRpc2NsYWltZXItaWQ9IjciPjc8L3N1cD48L2E+JyxwKz0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMiICBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0zLWRpdiIgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj48c3VwIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+Mzwvc3VwPjwvYT4nKSx5PWMrIiAvICIrZisiICIrbSsiIC8gIituKyIgQCAiK2QreCsiOiIpOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXBheW1lbnQtZGVzYyIpLmh0bWwoeSk7CiQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXBheW1lbnQtYW1vdW50IikuaHRtbChwKTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC10YXgtdHh0IikudGV4dCh1KTtmPSQodGhpcykuY2xvc2VzdCgiLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKTsiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpJiYoZj0kKHRoaXMpLmNsb3Nlc3QoIi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZmluZCgiLnBheW1lbnRUb29sdGlwIikpO2Y9Zi5hdHRyKCJkYXRhLXRvb2x0aXAiKTtmPVN0cmluZyhmKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKTtjaGFuZ2VCblBUb29sVGlwTWVzc2FnZShmKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmKG1vZGVsQ29uZmlnLnNhdmVDb25maWcoKSxtb2RlbENvbmZpZy5jYWxjdWxhdGVBY2NQYXltZW50cygpKX19KTsKJCgiYm9keSIpLm9uKCJjaGFuZ2UiLCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IixmdW5jdGlvbigpe2lmKCQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIil8fCQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpKSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpP2NhbGNVcGRhdGVQYXltZW50SW5mbygpOmEoKX0pfWZ1bmN0aW9uIGVzY2FwZUhUTUwoYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjMzk7Iil9CnZhciBjdGFQYXltZW50VGV4dEZyPVtdLGN0YVBheW1lbnRUZXh0RW49W10sY2FsY0N1clBheW1lbnQ9e30sY3RhUGF5bWVudFZhbHVlcz1bXSxjYXNoUHJpY2VGb3JQYWdlPW51bGwsY2FsY1VwZGF0ZVBheW1lbnRYaHI9bnVsbDsKZnVuY3Rpb24gdXBkYXRlVXJsKGEpe3RyeXtpZighYS52ZWhpY2xlSW5mbylyZXR1cm47dmFyIGI9YS52ZWhpY2xlSW5mbyxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmV3Y2FyRGV0YWlscz9uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLnN0eWxlczpiLm1vZGVsSlNPTi5zdHlsZXMsZD13aW5kb3cucGFyZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoIi8iKS5zbGljZSgwLC0xKS5qb2luKCIvIiksYz1lLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZi5pZD09YS5zdHlsZWlkfSkucG9wKCl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcihmKTtyZXR1cm59YyYmKGU9Yy5lbmdsaXNoVHJpbXx8IiIsYj1nZXRDdXJyZW50VmVoaWNsZVBhdGgoYikrIi0iK2UucmVwbGFjZSgvXHN8LS9nLCIgIiksZS5sZW5ndGgmJndpbmRvdy5wYXJlbnQuaGlzdG9yeS5wdXNoU3RhdGUoe30sIiIsZCsiLyIrYisiLmh0bWwiKSl9CmZ1bmN0aW9uIGNoYW5nZUJuUFRvb2xUaXBNZXNzYWdlKGEpe2E9JzxzcGFuIGNsYXNzPSJwYXltZW50VG9vbHRpcCBmYWwgZmEtaW5mby1jaXJjbGUiIGRhdGEtdG9vbHRpcD0iJythKyciPjwvc3Bhbj4nOyQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCIpLmh0bWwoYSk7dHJ5e3ZhciBiPSQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCAucGF5bWVudFRvb2x0aXAiKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTskKCIucGF5bWVudEluZm9CdWJibGVCblAgLnBheW1lbnRUb29sdGlwIikuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YixncmF2aXR5OiJzb3V0aCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmYWRlSW4ifSl9Y2F0Y2goZSl7fX0KZnVuY3Rpb24gcG9wdXBpemVyT25DbG9zZShhLGIpeyJwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIiE9PWEuY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50LmlkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITEsd2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkub3BlbigxKSwkKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLHBvcHVwaXplck9uQ2xvc2UpKX0KZnVuY3Rpb24gZ2V0UG9wQ29udGFpblNldHRpbmdzKCl7dmFyIGE9JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5kYXRhKCJwb3B1cFNldHRpbmdzIik7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cz0hMTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHM9ITE7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYSlyZXR1cm4hMTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaERldGFpbHMmJnNlYXJjaERldGFpbHMudmVoaWNsZT8oYS5wYXltZW50VHlwZT0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKT8iZmluYW5jZSI6YS5wYXltZW50VHlwZSxhLnBheW1lbnRUeXBlPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0UGF5bWVudHx8ITEpPyJsZWFzZSI6YS5wYXltZW50VHlwZSxhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8CiExKT8hMDohMSxhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHM9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRQYXltZW50fHwhMSk\/ITA6ITEpOihhLnBheW1lbnRUeXBlPSIxIj09KGEubm9MZWFzZXx8ITEpPyJmaW5hbmNlIjphLnBheW1lbnRUeXBlLGEucGF5bWVudFR5cGU9IjEiPT0oYS5ub0ZpbmFuY2V8fCExKT8ibGVhc2UiOmEucGF5bWVudFR5cGUsYS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cz0iMSI9PShhLm5vTGVhc2V8fCExKT8hMDohMSxhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHM9IjEiPT0oYS5ub0ZpbmFuY2V8fCExKT8hMDohMSk7cmV0dXJuIGF9CmZ1bmN0aW9uIGNoYW5nZVBhZ2VQYXltZW50VmFsdWUoYSl7dmFyIGI9YS5jdXJyZW50UGF5bWVudCxlPWEuY3VycmVudFJhdGUsZD1hLnBheW1lbnRUZXJtLGM9YS5wYXltZW50VHlwZSxmPWEucGF5bWVudEludGVydmFsLHU9YS5wYXltZW50RG93blBheW1lbnQsbT1hLnRvdGFsSW50ZXJlc3Qsbj1hLmx1eGVUYXhBbW91bnQscD1hLnJhdGVUeXBlLHg9YS5lZmZlY3RpdmVSYXRlLHk9YS50b3RhbENvc3Qscj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsdD1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxBPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUm91bmRQYXltZW50IikudmFsKCk\/MDoyLHc9Mj09QT9NYXRoLmZsb29yKHBhcnNlRmxvYXQoYikpLnRvRml4ZWQoMCk6cGFyc2VGbG9hdChiKS50b0ZpeGVkKDApO2I9cGFyc2VGbG9hdChiKS50b0ZpeGVkKEEpO0E9Yi5zcGxpdCgiLiIpWzFdfHwiIjtiPWIucmVwbGFjZSgvXC4oWzAtOV0qKS8sCmZ1bmN0aW9uKEMsRil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0YrIjwvc3VwPiJ9KTsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmImJsdXIiPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpJiYoYj0nPHNwYW4gY2xhc3M9ImJsdXItcHJpY2UiPicrYisiPC9zcGFuPiIpO3ZhciBCPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGIpLGc9YisiJCIscT0iJCIrYix6PSJsZWFzaW5nIj09PWM\/IkxvY2F0aW9uIjoiRmluYW5jZW1lbnQiLEQ9ImxlYXNpbmciPT09Yz8iTGVhc2luZyI6IkZpbmFuY2luZyIsdj1lKyIlIixoPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6Iit0eCI7JCgiI2RlYWxlclByb3ZpbmNlQ29kZSIpLmxlbmd0aCYmIkFCIj09JCgiI2RlYWxlclByb3ZpbmNlQ29kZSIpLnZhbCgpJiYoaD0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8KJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK0dTVCIpO3ZhciBrPWgrIi9tb2lzIixsPWgrIi9tdGgiO3N3aXRjaChmKXtjYXNlICJ3ZWVrbHkiOms9aCsiL3NlbSI7bD1oKyIvd2VlayI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOms9aCsiLzJzZW0iO2w9aCsiLzJ3ZWVrIjticmVhaztjYXNlICJzZW1pbW9udGhseSI6az1oKyIvYmltZW5zdWVsIjtsPWgrIi9zZW1pbW9udGhseSI7YnJlYWs7ZGVmYXVsdDprPWgrIi9tb2lzIixsPWgrIi9tb250aCJ9bGV0IEc9aD0iIjsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJiEwPT09c3RvcmUuZ2V0KCJmaWVsZHMuVldfRFJfUFBfRU5BQkxFRCIpJiYoRz0nPHNwYW4+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMiICBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0zLWRpdiIgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj48c3VwIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+Mzwvc3VwPjwvYT48L3NwYW4+JywKaD0nPHNwYW4+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMiICBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy03LWRpdiIgZGF0YS1kaXNjbGFpbWVyLWlkPSI3Ij48c3VwIGRhdGEtZGlzY2xhaW1lci1pZD0iNyI+Nzwvc3VwPjwvYT48L3NwYW4+Jyk7dmFyIEg9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCk\/InNjcmF0Y2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpPyJzdHJpa2UtcHJpY2UtYmxhY2siOiIiOiIiLEU9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UodSkrIiBjb21wdGFudCIsTD1EMkNVdGlscy5Gb3JtYXQudG9QcmljZSh1KSsiIGRvd24gcGF5bWVudCI7dT16KyIgIitkKyIgbW9pcyI7RD1EKyIgIitkKyIgbW9udGhzIjtCPSc8c3BhbiBjbGFzcz0idHh0LXBheW1lbnQgJytIKyciPicrCkIrIjwvc3Bhbj4gIitHKycgQCA8c3BhbiBjbGFzcz0idHh0LXBheW1lbnQiPicrdisiPC9zcGFuPiIrZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoeCxlLCcgY2xhc3M9InR4dC1wYXltZW50IiAnKTtoPSgiRU5HTElTSCI9PT1yP2w6aykrIiAiKygiRU5HTElTSCI9PT1yP0w6RSkraCsoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8iIjonIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7Y29sb3I6IzAwMDsiIGNsYXNzPSJ2ZHBJbmZvVG9vbHRpcCBmYXIgZmEtaW5mby1jaXJjbGUiPjwvc3Bhbj4nKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMiwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTEiKS5odG1sKCJFTkdMSVNIIj09PXI\/RDp1KTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMSwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTIiKS5odG1sKEIpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUzLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMyIpLmh0bWwoaCk7CkU9Qj0iIjtjYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudCYmY2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoRT1jYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudFswXS50b3RhbCxCPWBBZmZpY2jDqSDDoCAke0V9JGAsRT1gTGlzdGVkIGF0ICQke0V9YCk7Y3RhUGF5bWVudFRleHRGcj1bYCR7Z30gJHtrfWAsYCR7dX0gQCAke3Z9YCxgJHtCfWBdO2N0YVBheW1lbnRUZXh0RW49W2Ake3F9ICR7bH1gLGAke0R9IEAgJHt2fWAsYCR7RX1gXTtjdGFQYXltZW50VmFsdWVzPVthLmN1cnJlbnRQYXltZW50LGUsZCxmXTt3aW5kb3cucGFyZW50LkFNUCYmd2luZG93LnBhcmVudC5BTVAuc2V0U3RhdGUoe1NTUl9TVEFURTp7bGVhc2VUZXJtVGV4dDoiRU5HTElTSCI9PT1yP0Q6dSxsZWFzZVBheW1lbnRUeHQ6dyxsZWFzZVBheW1lbnREZWNpbWFsOkEsbGVhc2VSYXRlOnYsbGVhc2VUYXhUZXh0Omh9fSk7Y2FsY0N1clBheW1lbnQuY3VyVGVybT1kO2NhbGNDdXJQYXltZW50LmN1clJhdGU9CmU7Y2FsY0N1clBheW1lbnQuY3VySW50ZXJ2YWw9ZjtjYWxjQ3VyUGF5bWVudC50YXhUZXh0RnI9aztjYWxjQ3VyUGF5bWVudC50YXhUZXh0RW49bDthPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnRUb29sdGlwQnlTdHlsZUlEP3dzd2lkdGg9MCI7Yz0ibGVhc2luZyI9PWM\/ImxlYXNlIjoiZmluYW5jZSI7cj1nZXRPcHRpb25zQW1vdW50KHQpO3c9dC5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PXQubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT10Lm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09PSQoIiNQQUdFSUQiKS52YWwoKTtBPXQuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/dC5zdG9ja051bWJlcjoiIjtnPXQuaGFzT3duUHJvcGVydHkoInZpbiIpP3QudmluOiIiO3E9Z2V0QWNjZXNzb3JpZXNBbW91bnQodCk7CnY9Z2V0U2VsZWN0ZWRBY2Nlc3Nvcmllcyh0KTtrPWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudCh0KTtsZXQgTj1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihDKXtDLmNoZWNrZWQmJihDPUMuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmTi5wdXNoKEMpfSk7dyYmIUEmJihsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXN0b2NrbnVtYmVyIikpJiYoQT1sLnZhbHVlfHwiIik7dyYmIWcmJihsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXZpbiIpKSYmKGc9bC52YWx1ZXx8IiIpOyQuYWpheCh7dXJsOmEsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkhUTUwiLGRhdGE6e3N0eWxlaWQ6dC5zdHlsZWlkLHR5cGU6YyxwYXltZW50OnBhcnNlRmxvYXQoYiksdGVybTpwYXJzZUludChkKSxyYXRlOnBhcnNlRmxvYXQoZSksaW50ZXJ2YWw6ZixvcHRpb25zOnIsCnRvdGFsSW50ZXJlc3Q6bSxpc0ludmVudG9yeTp3LHNuOkEsdmluOmcsbHV4ZVRheEFtb3VudDpuLHJhdGVfdHlwZTpwLHRvdGFsQ29zdDp5LGNvbmRpdGlvbmFsUmViYXRlSWRzOk4uam9pbigiLCIpLGFjY2Vzc29yaWVzOnEsc2VsZWN0ZWRBY2Nlc3Nvcmllczp2LHByb3RlY3Rpb25QbGFuczprLGVmZmVjdGl2ZVJhdGU6eH0sYmVmb3JlU2VuZDpmdW5jdGlvbihDKXt0cnl7bGV0IEY9JCgibWV0YVtuYW1lPSdjc3JmLWRvbWFpbi1jaGVjayddIik7Ri5sZW5ndGgmJkMuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLEYuYXR0cigiY29udGVudCIpKX1jYXRjaChGKXtjb25zb2xlLmVycm9yKEMpfX0sc3VjY2VzczpmdW5jdGlvbihDKXskKCIjZGFya3Rvb2x0aXAtcGF5bWVudFdyYXBwZXIsICNkYXJrdG9vbHRpcC12ZHBQYXltZW50VG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcEluZm9Ub29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwVXNlZEluZm9Ub29sdGlwIikucmVtb3ZlKCk7CnZhciBGPSQoIi5uZXdWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8id2VzdCI6JCgiLnVzZWRWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8id2VzdCI6ImVhc3QiOyQoIi52ZHBQYXltZW50VG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBJbmZvVG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBVc2VkSW5mb1Rvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Y29udGVudDpDLGdyYXZpdHk6Rix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX19KX0KZnVuY3Rpb24gZ2V0Q3VycmVudFZlaGljbGVQYXRoKGEpe3ZhciBiPVtkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tYWtlKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tb2RlbCksZDJjbWVkaWEudXJsLnNhbml0aXplKGEueWVhcildLmpvaW4oIi0iKTsiRU5HTElTSCI9PT0oJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiRlJFTkNIIikmJihiPVtkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tYWtlKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tb2RlbCksZDJjbWVkaWEudXJsLnNhbml0aXplKGEueWVhcildLmpvaW4oIi0iKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIHNob3dQYXltZW50cyhhLGIsZSxkKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaHRtbCgiIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmh0bWwoIiIpO3ZhciBjPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUm91bmRQYXltZW50IikudmFsKCk\/MDoyOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCk7dmFyIGY9W10sdT0kKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpfHwwOyJmaW5hbmNlIj09YVswXS50eXBlJiZhWzBdLmRvd25wYXltZW50PmQubWF4RG93bkZpbmFuY2U\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLnNob3coKSwKJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCkpOiJsZWFzZSI9PWFbMF0udHlwZSYmYVswXS5kb3ducGF5bWVudD5kLm1heERvd24\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwKJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCExKSwkKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5pcygiOmNoZWNrZWQiKT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKSk7CjU8YS5sZW5ndGg\/YS5mb3JFYWNoKGZ1bmN0aW9uKHYpeygwPT12LnRlcm0lMTJ8fDY0PT12LnRlcm18fDQwPT1lJiY1MT09di50ZXJtfHwyMD09ZSYmWzI3LDMwLDM5LDQyXS5pbmNsdWRlcyh2LnRlcm0pfHxbMTYsMjFdLmluY2x1ZGVzKGUpfHw0Mj09di50ZXJtJiYxMDE0PT11fHxbMzAsNDJdLmluY2x1ZGVzKHYudGVybSkmJls0NzE1NjIsNDcxNTYzLDQ3MTU2NF0uaW5jbHVkZXMocGFyc2VJbnQoc2V0dGluZ3Muc3R5bGVpZCkpfHxbMTYsMV0uaW5jbHVkZXMoZSkmJlsyOCw0MF0uaW5jbHVkZXModi50ZXJtKXx8Mjc9PXYudGVybSYmMjc9PWV8fDUyPT12LnRlcm0mJjM5PT1lKSYmZi5wdXNoKHYpfSk6Zj1hOyJkZXNjIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yVGVybU9yZGVyIikudmFsKCkmJihmPWYucmV2ZXJzZSgpKTt2YXIgbT17fSxuPSExO2YuZm9yRWFjaChmdW5jdGlvbih2LGgpe09iamVjdC5oYXNPd24obSx2LnRlcm0pP249ITA6bVt2LnRlcm1dPXt9O21bdi50ZXJtXVt2LnJhdGVfdHlwZV09Cmh9KTt2YXIgcD1bXSx4PSExLHk9ITEscj1wYXJzZUludChzZXR0aW5ncy5kZWZhdWx0VGVybSwxMCl8fDA7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIik\/KHg9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKVsxXXx8ITEseT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdfHwhMSk6MDxyJiYoeD1yLHI9c2V0dGluZ3MucGF5bWVudFR5cGUseT0ibGVhc2UiPT09cj8ibGVhc2luZyI6ImZpbmFuY2UiPT09cj8iZmluYW5jaW5nIjpyKTthWzBdJiYibGVhc2UiPT1hWzBdLnR5cGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGFbMF0ua21fYWxsb3dhbmNlJiYocj0wPGQuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2QuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNCwkKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChyKSk7CmxldCB0PWQudG90YWxJbmNlbnRpdmUsQT1uPyQoIiNMT1dFU1RQQVlNRU5UX0xBQkVMIikudmFsKCk6IiIsdz1uPyQoIiNMT1dFU1RSQVRFX0xBQkVMIikudmFsKCk6IiI7dmFyIEI9MDskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgLmpzLXRlbXBLbUFsbG93ZWQiKS5yZW1vdmUoKTtsZXQgZz0iIixxPSIiOzE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmITA9PT1zdG9yZS5nZXQoImZpZWxkcy5WV19EUl9QUF9FTkFCTEVEIikmJihnPSc8c3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyBjYWxjRGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgIiBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2IiAgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj48c3VwPjM8L3N1cD48L2E+PC9zcGFuPicscT0nPHNwYW4+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJjYWxjdWxhdG9yLWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0yLWRpdiIgIGRhdGEtZGlzY2xhaW1lci1pZD0iMiI+PHN1cD4yPC9zdXA+PC9hPjwvc3Bhbj4nKTsKJC5lYWNoKGYsZnVuY3Rpb24odixoKXtpZighcC5pbmNsdWRlcyhoLnRlcm0pKXtwLnB1c2goaC50ZXJtKTt2YXIgaz0ic3RhbmRhcmQiPT1oLnJhdGVfdHlwZXx8Mj5PYmplY3Qua2V5cyhtW2gudGVybV0pLmxlbmd0aD9oOmZbbVtoLnRlcm1dLnN0YW5kYXJkXSxsPTI9PU9iamVjdC5rZXlzKG1baC50ZXJtXSkubGVuZ3RoP2ZbbVtoLnRlcm1dLnN1YnZlbnRlZF06ITEsRz0yPT1PYmplY3Qua2V5cyhtW2gudGVybV0pLmxlbmd0aD9tW2gudGVybV0uc3VidmVudGVkOiExLEg9aC50ZXJtLEU9aC5kb3ducGF5bWVudC50b0ZpeGVkKDApLEw9ay5wYXltZW50LnRvRml4ZWQoYyksTj1rLnBheW1lbnQudG9GaXhlZChjKTtMPUwucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oTyxNKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrTSsiPC9zdXA+In0pO3ZhciBDPWsucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGMpLEY9ay5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYyk7Qz1DLnJlcGxhY2UoL1wuKFswLTldKikvLApmdW5jdGlvbihPLE0pe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytNKyI8L3N1cD4ifSk7dmFyIFU9ay5yYXRlLGZhPSJwYXltZW50Iit2O3Y9InBheW1lbnQiK3YrIndpdGhUYXhlcyI7SD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iPHNwYW4+IitIKyI8L3NwYW4+IG1vbnRoIjoiPHNwYW4+IitIKyI8L3NwYW4+IG1vaXMiO0U9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7RX08L3NwYW4+YCsoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiBkb3duIHBheW1lbnQiOiIgY29tcHRhbnQiKTt2YXIgUD0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8iPGRpdj4iKyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCkrIjwvZGl2PiI6Iit0eCI7JCgiI2RlYWxlclByb3ZpbmNlQ29kZSIpLmxlbmd0aCYmIkFCIj09JCgiI2RlYWxlclByb3ZpbmNlQ29kZSIpLnZhbCgpJiYoUD0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8KIjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrR1NUIik7dmFyIFE9ay5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9rLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsVj1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChRLGsucmF0ZSwiIiwnY2xhc3M9Ii1mczEwIicpLFc9ay50b3RhbE9ibGlnYXRpb25BbW91bnQ\/ay50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxYPSdkYXRhLXRvb2x0aXA9Iicray50b29sdGlwKyciJyxZPSdkYXRhLXRvb2x0aXA9Iicray50b29sdGlwV2l0aFRheGVzKyciJyxJLGhhPW51bGwhPShJPWsubTJkX2ZpbmFuY2UpP0k6dDtJPSJzaW5nbGUtY29sdW1uIjtoPXBhcnNlSW50KGgudGVybSk7aD14JiZ4PT1oJiZ5JiZ5PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKT8iY2hlY2tlZCI6IiI7dmFyIFI9InNtYWxsLWJveCIsSj0iIixLPSIiO2lmKGwpe0k9CiJsZWZ0LXNlY3Rpb24iO1I9IiI7Sj1sLnBheW1lbnQudG9GaXhlZChjKTtsZXQgTz1sLnBheW1lbnQudG9GaXhlZChjKTtKPUoucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oaWEsUyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK1MrIjwvc3VwPiJ9KTtLPWwucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGMpO2xldCBNPWwucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGMpO0s9Sy5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihpYSxTKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrUysiPC9zdXA+In0pO3ZhciBaPWwucmF0ZS50b0ZpeGVkKDIpLGphPSJwYXltZW50IitHO0c9InBheW1lbnQiK0crIndpdGhUYXhlcyI7bGV0IFQ9bC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9sLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsYWE9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoVCxsLnJhdGUsIiIsJ2NsYXNzPSItZnMxMCInKSxiYT1sLnRvdGFsT2JsaWdhdGlvbkFtb3VudD8KbC50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxjYT0nZGF0YS10b29sdGlwPSInK2wudG9vbHRpcCsnIicsZGE9J2RhdGEtdG9vbHRpcD0iJytsLnRvb2x0aXBXaXRoVGF4ZXMrJyInLGVhPWwubTJkX2ZpbmFuY2U7Sj0nXHQ8ZGl2IGlkPSInK2phKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrY2ErJz5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSisiPC9zcGFuPiIrZysnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytjYSsnPjwvaT48L2Rpdj5cdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytQKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrWisiJSAiK2FhKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrCmwudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2wucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2wucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2wucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytPKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrbC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrbC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytsLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK1QrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrYmErJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2wucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCmVhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0PGxhYmVsPicrdysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4iO0s9J1x0PGRpdiBpZD0iJytHKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrZGErJz5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSysiPC9zcGFuPiIrcSsnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytkYSsnPjwvaT48L2Rpdj5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrWisiJSAiK2FhKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrCmwudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2wucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2wucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2wucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytNKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrbC5yZXNpZHVhbFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrbC50b3RhbEludGVyZXN0V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytsLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK1QrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrYmErJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2wucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCmVhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytsLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrbC5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2wucHN0KyciXHRcdFx0XHQ+XHRcdFx0PGxhYmVsPicrdysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWw9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK1IrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK0grJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0UrJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytmYSsnIiBjbGFzcz0iJytJKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytYKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrCkwrIjwvc3Bhbj4iK2crJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJytYKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrUCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVSsiJSAiK1YrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnK2grJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2sudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2sucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2sucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2sucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytOKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrCmsucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2sudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9Iicray5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytRKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1crJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2sucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytrLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicraGErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK0ErIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSisiXHQ8L2Rpdj48L2Rpdj4iO0M9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnKwpSKyciPlx0PGRpdiBjbGFzcz0idGVybSI+JytIKyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+JytFKyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrdisnIiBjbGFzcz0iJytJKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytZKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrQysiPC9zcGFuPiIrcSsnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1krJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVSsiJSAiK1YrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnKwpoKydcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytrLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytrLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytrLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytrLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrRisnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2sucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2sudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9Iicray5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytRKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1crJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2sucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJysKay5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2suZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytrLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9Iicray5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK0ErIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSysiXHQ8L2Rpdj48L2Rpdj4iOzA9PWsucGF5bWVudFdpdGhUYXhlcyYmKEM9IiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQobCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChDKTtCKyt9fSk7cj0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKS5sZW5ndGg\/JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW2NoZWNrZWRdJylbMF06CiQoJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLmxhc3QoKVswXTskKHIpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik7cj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLnRvdGFsLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikudGV4dChyKTsibGVhc2UiPT1hWzBdLnR5cGU\/KHI9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYVswXS5rbV9hbGxvd2FuY2UudG9GaXhlZCgwKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlS00iKS50ZXh0KHIpLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCksCiQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuc2hvdygpKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5zaG93KCk7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKTswPGI\/KGI9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYi50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VGZWVzIikudGV4dChiKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5zaG93KCkpOgokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmVtcHR5KCk7bGV0IHo9JCgiPHVsPiIpO2QuY3VzdG9tRmVlcy5sZW5ndGgmJiQuZWFjaChkLmN1c3RvbUZlZXMsZnVuY3Rpb24odixoKXt2PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihoLmRlc2NFbiksaz0+ay5jaGFyQ29kZUF0KDApKSk6KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGguZGVzY0ZyKSxrPT5rLmNoYXJDb2RlQXQoMCkpKTtoPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGguYW1vdW50LnRvRml4ZWQoMCkpO2g9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoaCk7aD0kKCI8bGk+IikudGV4dCh2KyIgOiAiKS5hcHBlbmQoaCk7di50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJhZG1pbiIpJiYKMT09PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT09JCgiI2lzRFJTaXRlIikudmFsKCkmJiEwPT09c3RvcmUuZ2V0KCJmaWVsZHMuVldfRFJfUFBfRU5BQkxFRCIpJiZoLmFwcGVuZCgkKCI8YT4iLHtocmVmOiJqYXZhc2NyaXB0OnZvaWQoMCkiLCJjbGFzcyI6ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIsImRhdGEtZGlzY2xhaW1lci1kaXZpZCI6ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTQtZGl2IiwiZGF0YS1kaXNjbGFpbWVyLWlkIjoiNCJ9KS5hcHBlbmQoJCgiPHN1cD4iKS50ZXh0KCI0IikpKTt6LmFwcGVuZChoKX0pO251bGwhPT1hWzBdLmx1eHVyeVRheCYmdm9pZCAwIT09YVswXS5sdXh1cnlUYXgmJjA8YVswXS5sdXh1cnlUYXgmJnouYXBwZW5kKGdldEx1eHVyeVRheExhYmVsKGFbMF0pKTt6LmNoaWxkcmVuKCkubGVuZ3RoPygkKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzICNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXNMaXN0IikuYXBwZW5kKHopLAokKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuc2hvdygpKTokKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuaGlkZSgpO2I9ImxlYXNlIj09YVswXS50eXBlPygkKCIjcGF5bWVudENhbGN1bGF0b3JMZWFzZVRleHQiKS52YWwoKXx8IiIpLnRvTG93ZXJDYXNlKCk6KCQoIiNwYXltZW50Q2FsY3VsYXRvckZpbmFuY2VUZXh0IikudmFsKCl8fCIiKS50b0xvd2VyQ2FzZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVR5cGUiKS50ZXh0KGIpOzA8YVswXS5yZWJhdGU\/KGE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiQiK2FbMF0ucmViYXRlOmFbMF0ucmViYXRlKyIgJCIsJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlUmViYXRlIikudGV4dChhKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLmhpZGUoKTtpZihkLmNvbmRpdGlvbmFsUmViYXRlcyYmCjA8ZC5jb25kaXRpb25hbFJlYmF0ZXMubGVuZ3RoKXt2YXIgRD0iIjtkLmNvbmRpdGlvbmFsUmViYXRlcy5mb3JFYWNoKGZ1bmN0aW9uKHYpe3ZhciBoPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKHYuYW1vdW50LnRvU3RyaW5nKCkpO0QrPSI8bGk+Iit2Lm5hbWUrIjogLSIrRDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoaCkrIjwvbGk+In0pO0QmJiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLmFmdGVyKCc8ZGl2IGlkPSJwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbmRpdGlvbmFsUmViYXRlcyIgY2xhc3M9InBheW1lbnRDYWxjdWxhdG9yTm90aWNlU2VjdGlvbiI+PHN0cm9uZz4nKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iU2VsZWN0ZWQgQ29uZGl0aW9uYWwgUmViYXRlczoiOiJSYWJhaXMgY29uZGl0aW9ubmVscyBzw6lsZWN0aW9ubsOpOiIpKyI8L3N0cm9uZz48dWw+IitEKyI8L3VsPjwvZGl2PiIpfWVsc2UgJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29uZGl0aW9uYWxSZWJhdGVzIikucmVtb3ZlKCk7CnNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl7aWYoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSkkKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbihiKXt0cnl7dmFyIGU9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKSxkPSQodGhpcykuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Indlc3QiOiJlYXN0IjskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmUsZ3Jhdml0eTpkLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGMpe319KTtlbHNle2Zvcih2YXIgYT0wOzU+YTthKyspJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2EpLmxlbmd0aCYmKCQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5yZW1vdmUoKSwKJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2ErIndpdGhUYXhlcyIpLnJlbW92ZSgpKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBiPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZT0kKHRoaXMpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLGQ9ImVhc3QiO2UuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/ZD0id2VzdCI6ZS5oYXNDbGFzcygicmlnaHRUb29sdGlwIikmJihkPSJlYXN0Iik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpiLGdyYXZpdHk6ZCx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIn0pfWNhdGNoKGMpe319KX19CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oYSl7dmFyIGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7Yi52ZWhpY2xlSW5mbz1hOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvWWVhciIpLnRleHQoYS55ZWFyKTt2YXIgZT1hLkNGTW9kZWxOYW1lfHxhLm1vZGVsLGQ9YS5tYWtlLnRvVXBwZXJDYXNlKCkrIiAiK2UudG9VcHBlckNhc2UoKTsiTUVSQ0VERVMtQkVOWiIhPWEubWFrZS50b1VwcGVyQ2FzZSgpfHwvXGJzcHJpbnRlclxiL2kudGVzdChlKXx8KGQ9YS5tYWtlLnRvVXBwZXJDYXNlKCkpO2lmKCJidWlsZGFuZHByaWNlLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fGIuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1iLm5vVHJpbVNlbGVjdHx8InRydWUiPT09Yi5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpKWQrPQoiICIrYS5DRlN0eWxlTmFtZS50b1VwcGVyQ2FzZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm9NYWtlTW9kZWxUcmltIikudGV4dChkKTtlPWEubWFrZSsifHx8IitlKyJ8fHwiK2EueWVhcjtiLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpJiYoZSs9Inx8fChTdG9jazoiK2Iuc3RvY2tOdW1iZXIrIikiKTtDb29raWVzLnNldCgibGFzdHZpZXdlZHZlaGljbGUiLGUsbnVsbCwiLyIpO2EuaW1hZ2VzWzBdJiYoZT0oYS5pbWFnZXNbMF0rIiIpLnJlcGxhY2UoL2h0dHAocz8pOlwvXC9tZWRpYS4oY2hyb21lZGF0YXxjYXJib29rKS5jb21cL01lZGlhR2FsbGVyeVwvbWVkaWFcLy8sIi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcnMvY2IlQ0IvJU1BS0UvJU1PREVMLyVZRUFSLyIpLnJlcGxhY2UoIiVDQiIsTWF0aC5yb3VuZCg5OSpNYXRoLnJhbmRvbSgpKSsxRTUpLnJlcGxhY2UoIiVNQUtFIiwKYS5tYWtlLnJlcGxhY2UoIi0iLCJfIikpLnJlcGxhY2UoIiVNT0RFTCIsYS5tb2RlbC5yZXBsYWNlKCItIiwiXyIpKS5yZXBsYWNlKCIlWUVBUiIsYS55ZWFyKSwkKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXYiKS5odG1sKCc8aW1nIGlkPSJwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZSIgc3JjPSInK2UucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzAzOTsiKSsnIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiPicpKTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IG9wdGlvbiIpLnJlbW92ZSgpOygidW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHM\/bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXM6YS5tb2RlbEpTT04uc3R5bGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGMpeyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5hcHBlbmQobmV3IE9wdGlvbihjLkNGU3R5bGVOYW1lLApjLmlkKSl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikudmFsKGIuc3R5bGVpZCk7Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCl9CmZ1bmN0aW9uIGNhbGNVcGRhdGVTdHlsZUluZm8oYSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzJiZuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXt2YXIgYj1uZXdjYXJEZXRhaWxzLmFsbFN0eWxlcy5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PWF9KVswXTtiPWJ8fG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzWzBdO2IubWFrZT1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1ha2U7Yi5tb2RlbD1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1vZGVsO2IuaW1hZ2VzPW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuaW1hZ2VzO3NldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oYil9ZWxzZXtiPXNldHRpbmdzLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3NldHRpbmdzLnN0b2NrTnVtYmVyOiIiO3ZhciBlPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFZlaGljbGVKc29uQnlTdHlsZUlEP3dzd2lkdGg9MCI7CiQuYWpheCh7dXJsOmUsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6YSx2ZWhpY2xlaWQ6Yn0sc3VjY2VzczpmdW5jdGlvbihkKXtzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGQpfX0pfX0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk7IiIhPWEucHJvbW9CdXR0b25UZXh0JiYiMSIhPT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIikmJiQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk\/KC0xIT09YS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikmJihhLnByb21vQnV0dG9uVGV4dD1hLnByb21vQnV0dG9uVGV4dC5zdWJzdHIoMCxhLnByb21vQnV0dG9uVGV4dC5pbmRleE9mKCI8YnIiKSkpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikuaHRtbChhLnByb21vQnV0dG9uVGV4dCksJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuc2hvdygpKToKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0ibGVhc2luZyJdJyksZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImZpbmFuY2luZyJdJyksZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImNhc2giXScpO2IuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKTtlLmhpZGRlbj0iMSI9PShhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHN8fCExKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSEwO3NldFRpbWVvdXQoKCk9PntpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJgoiIj09JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl7dmFyIGM9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKGMudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoYz1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIsYy52YWx1ZSkpfWlmKCIiIT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpJiYwPCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe2M9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl8fDA7dmFyIGY9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS5hdHRyKCJkYXRhLWN1cnJlbnQiKSl8fGM7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKGYpOwokKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5hdHRyKCJtYXgiLGMpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuc2hvdygpfWVsc2UgJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCIiKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9uIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS50cmlnZ2VyKCJibHVyIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgdT1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsCm9uQ29tcGxldGU6bj0+e24uZGF0YXNldC5jb21wbF90eHRfZnI9bi5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEZyWzFdKTtuLmRhdGFzZXQuY29tcGxfdHh0X2VuPW4uZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7bj17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKG49SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHA9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO24ucGF5bWVudD17bGlzdFByaWNlOnBbMl18fAoiIixwYXltZW50OnBbMF18fCIiLHJhdGU6cFsxXXx8IiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkobiksMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pO2M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKTtmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbmZpcm0iKTtudWxsIT1mJiYoZi5oaWRkZW4mJihmLmhpZGRlbj0hMSksbnVsbCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJmbGV4LWNlbnRlciIpLApkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5jbGFzc0xpc3QuYWRkKCJmbGV4LWVuZCIsIi1tcjUiKSksYz1mLnF1ZXJ5U2VsZWN0b3IoImEiKSk7Yy5pbm5lclRleHQ9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkNvbmZpcm0iOiJDb25maXJtZXIiO2MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntuLnByZXZlbnREZWZhdWx0KCk7bj0iY2FzaCI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaXMoIjpoaWRkZW4iKSYmIW58fGRvY3VtZW50LmRpc3BhdGNoRXZlbnQodSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9KTtmPW49PntuPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOwokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaXMoIjpoaWRkZW4iKSYmIW58fGRvY3VtZW50LmRpc3BhdGNoRXZlbnQodSl9O2xldCBtPWEucGF5bWVudFR5cGU7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihjPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksbT0idW5kZWZpbmVkIiE9Y1swXT9jWzBdOm0sbT0ibGVhc2luZyI9PT1tPyJsZWFzZSI6ImZpbmFuY2luZyI9PT1tPyJmaW5hbmNlIjptKTsibGVhc2UiPT1tJiZiP2IuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIix7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKToiZmluYW5jZSI9PW0mJmU\/ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLHtkZXRhaWw6e2lzRmlyc3RSdW46ITB9fSkpOmQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIiwKe2RldGFpbDp7aXNGaXJzdFJ1bjohMH19KSk7JCgiLnJldmVhbC1tb2RhbCIpLm9mZigicG9wdXBpemVyLmNsb3NlIixmKS5vbigicG9wdXBpemVyLmNsb3NlIixmKTskKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5zaG93KCl9fSwxMDApO2NhbGNVcGRhdGVTdHlsZUluZm8oYS5zdHlsZWlkKX0KZnVuY3Rpb24gY2FsY1VwZGF0ZVBheW1lbnRJbmZvKCl7dmFyIGE9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksYj0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50RGF0YUZvclN0eWxlSUQ\/d3N3aWR0aD0wIixlPWEucGF5bWVudFR5cGUsZD0wLGM9cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fDApLGY9bnVsbCx1PW51bGwsbT1nZXRPcHRpb25zQW1vdW50KGEpLG49Z2V0QWNjZXNzb3JpZXNBbW91bnQoYSkscD1nZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGEpLHg9Z2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGEpLHk9YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWEubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1hLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT0KJCgiI1BBR0VJRCIpLnZhbCgpLHI9ITEsdD1hLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP2Euc3RvY2tOdW1iZXI6IiIsQT1hLmhhc093blByb3BlcnR5KCJ2aW4iKT9hLnZpbjoiIjtpZih5JiYhdCl7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25lc3RvY2tudW1iZXIiKTt3JiYodD13LnZhbHVlfHwiIil9eSYmIUEmJih3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXZpbiIpKSYmKEE9dy52YWx1ZXx8IiIpO3kmJiFhLnN0eWxlaWQmJih3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVTdHlsZUlEIikpJiYoYS5zdHlsZWlkPXcudmFsdWV8fGEuc3R5bGVpZCk7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJih1PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksZT0idW5kZWZpbmVkIiE9dVswXT91WzBdOmUscj11WzFdLGQ9cGFyc2VJbnQodVs0XSktCmMsZD0wPmQ\/MDpkLGY9dVsyXSx1PXVbM10pO2Eubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHMmJiJsZWFzZSI9PWUmJihlPSJmaW5hbmNlIixyPSExLGQ9MCx1PWY9bnVsbCk7YS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzJiZbImZpbmFuY2UiLCJmaW5hbmNpbmciXS5pbmNsdWRlcyhlKSYmKGU9ImxlYXNlIixyPSExLGQ9MCx1PWY9bnVsbCk7bGV0IEI9W107ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbmRpdGlvbmFsLXJlYmF0ZS1jaGVja2JveCIpLmZvckVhY2goZnVuY3Rpb24oZyl7Zy5jaGVja2VkJiYoZz1nLmdldEF0dHJpYnV0ZSgiZGF0YS1jb25kaXRpb25hbC1yZWJhdGUtaWQiKSkmJkIucHVzaChnKX0pO2NhbGNVcGRhdGVQYXltZW50WGhyPSQuYWpheCh7dXJsOmIsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6YS5zdHlsZWlkLHBheW1lbnRUeXBlOmUsZG93bnBheW1lbnQ6YytkLG9wdGlvbnNBbW91bnQ6bSxwYXltZW50RnJlcXVlbmN5OmYsCmttQWxsb3dhbmNlOnUsaXNJbnZlbnRvcnk6eSxvcHRpb25zOm0sc246dCx2aW46QSxjb25kaXRpb25hbFJlYmF0ZUlkczpCLmpvaW4oIiwiKSxhY2Nlc3NvcmllczpuLHNlbGVjdGVkQWNjZXNzb3JpZXM6cCxwcm90ZWN0aW9uUGxhbnM6eH0sc3VjY2VzczpmdW5jdGlvbihnKXtnLnNlbGVjdGVkVGVybT1yOyQoIiNtYXhEb3duUGF5bWVudEZvclRyaW0iKS52YWwoZy5tYXhEb3duKTskKCIjbWF4RG93blBheW1lbnRGaW5hbmNlRm9yVHJpbSIpLnZhbChnLm1heERvd25GaW5hbmNlKTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSBvcHRpb24iKS5yZW1vdmUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbChkKTtlPSJsZWFzZSI9PT1lPyJsZWFzaW5nIjoiZmluYW5jZSI9PT1lPyJmaW5hbmNpbmciOmU7ImNhc2giPT09ZSYmKCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSk7CmcuY3VycmVudFBheW1lbnQmJjAhPT1nLmN1cnJlbnRQYXltZW50Lmxlbmd0aHx8ImNhc2giPT09ZT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCExKSxnLmN1cnJlbnRQYXltZW50JiYwPGcuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoZy5jdXJyZW50UGF5bWVudFswXS5pbnRlcnZhbCksZT1lfHwoImxlYXNlIj09PQpnLmN1cnJlbnRQYXltZW50WzBdLnR5cGU\/ImxlYXNpbmciOiJmaW5hbmNpbmciKSkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApLCQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLnNob3coKSk7c2hvd0hpZGVQYXltZW50U2VjdGlvbihnLGUpO3BvcHVsYXRlTGVhc2VLTUFsbG93YW5jZURyb3Bkb3duKGcpOyJsZWFzaW5nIj09ZT8kKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTokKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTtnZXRDYXNoUHJpY2VCbG9jayhnKTsKImNhc2giPT09ZT9lbmFibGVDYXNoT3B0aW9uKCk6Zy5jdXJyZW50UGF5bWVudCYmZy5jdXJyZW50UGF5bWVudC5sZW5ndGgmJihjYWxjQ3VyUGF5bWVudD1nLHNob3dQYXltZW50cyhnLmN1cnJlbnRQYXltZW50LGcucGF5bWVudEZlZXMsZy5tYWtlaWQsZykpfSxlcnJvcjpmdW5jdGlvbihnLHEseil7ImFib3J0IiE9PXEmJmNvbnNvbGUuZXJyb3IoImNhbGNVcGRhdGVQYXltZW50SW5mbzo6IFBheW1lbnQgY2FsY3VsYXRpb24gZXJyb3I6IixxLHopfX0pfQpmdW5jdGlvbiBlbmFibGVDYXNoT3B0aW9uKCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9J2Nhc2gnXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yQ29tbW9uTm90aWNlIikuaGlkZSgpOwokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITEpOyQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5zaG93KCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jYWxjLXBheW1lbnQtY2FzaCIpLmhpZGRlbj0hMTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCExKTsKMT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoJCgiI2RyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpLmhpZGUoKSxjaGFuZ2VQYWdlQ2FzaFZhbHVlKCkpfQpmdW5jdGlvbiBjaGFuZ2VQYWdlQ2FzaFZhbHVlKCl7aWYobnVsbCE9PWNhc2hQcmljZUZvclBhZ2Upe3ZhciBhPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIixiPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGNhc2hQcmljZUZvclBhZ2UudG9TdHJpbmcoKSksZT1zdG9yZS5nZXQoImkxOG4iKS5ERUZBVUxUX1BBWU1FTlRfQ0FTSCxkPSc8c3BhbiBjbGFzcz0idHh0LXBheW1lbnQgZm9ybWF0LXByaWNlIj4nK2IrIjwvc3Bhbj4iLGM9c3RvcmUuZ2V0KCJpMThuIikuTEFCRUxfQkVGT1JFX1RBWEVTLnRvTG93ZXJDYXNlKCk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbChlKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMSwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTIiKS5odG1sKGQpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUzLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMyIpLmh0bWwoYyk7CmE9IkVOR0xJU0giPT09YT8iJCIrYjpiKyIgJCI7Y3RhUGF5bWVudFRleHRGcj1bYSwiQ29tcHRhbnQiLCIiXTtjdGFQYXltZW50VGV4dEVuPVthLCJDYXNoIiwiIl07Y3RhUGF5bWVudFZhbHVlcz1bY2FzaFByaWNlRm9yUGFnZSwwLDAsImNhc2giXTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoJiYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmhpZGUoKSwkKCIucGF5bWVudEluZm9CdWJibGVCblAiKS5oaWRlKCkpOyQoIiNkYXJrdG9vbHRpcC1wYXltZW50V3JhcHBlciwgI2Rhcmt0b29sdGlwLXZkcFBheW1lbnRUb29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwSW5mb1Rvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBVc2VkSW5mb1Rvb2x0aXAiKS5yZW1vdmUoKTskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe29wYWNpdHk6MH0pfX0KZnVuY3Rpb24gZ2V0Q2FzaFByaWNlQmxvY2soYSl7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKSxlPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGQ9ZS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWUubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1lLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCksYz0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO2xldCBmPXBhcnNlSW50KGEub3JpZ2luYWxQcmljZXx8ZS52ZWhpY2xlSW5mbyYmZS52ZWhpY2xlSW5mby5tc3JwQWxsSW58fDApO3ZhciB1PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYudG9TdHJpbmcoKSk7bGV0IG09Yi5xdWVyeVNlbGVjdG9yKCIuY2FsYy1wYXltZW50LWNhc2giKTt2YXIgbj0iMSI9PQpiLnF1ZXJ5U2VsZWN0b3IoIiNkaXNwbGF5QnJlYWtkb3duIikudmFsdWUscD0iMSI9PWIucXVlcnlTZWxlY3RvcigiI2hpZGVSZWJhdGVzIikudmFsdWUseD0iMSI9PWIucXVlcnlTZWxlY3RvcigiI3NjcmF0Y2hPcmlnaW5hbFByaWNlIikudmFsdWU7bGV0IHk9IkVOR0xJU0giPT1jPyJTdGFydGluZyBhdCI6IsOAIHBhcnRpciBkZSI7Yj0iRU5HTElTSCI9PWM\/IllvdXIgcHJpY2UiOiJWb3RyZSBwcml4IjtkJiYoeT0kKCIjTkVXSU5WX1BSSUNFX0xBQkVMX09SSUdJTkFMIikudmFsKCksYj0kKCIjTkVXSU5WX1BSSUNFX0xBQkVMX0ZJTkFMIikudmFsKCksZS52ZWhpY2xlSW5mbyYmeS5yZXBsYWNlKCJ7JE1BS0V9IixlLnZlaGljbGVJbmZvLm1ha2UpLnJlcGxhY2UoInskTU9ERUx9IixlLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lKS5yZXBsYWNlKCJ7JFZFUlNJT059IixlLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lKS5yZXBsYWNlKCJ7JFlFQVJ9IixlLnZlaGljbGVJbmZvLnllYXIpKTsKbGV0IHI9IkVOR0xJU0giPT1jPyJkZXNjRW4iOiJkZXNjRnIiOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikuaHRtbChmKTtkPXgmJmEucHJpY2VBbWVuZGVtZW50cyYmMD5hLnByaWNlQW1lbmRlbWVudHMudG90YWw\/InN0cmlrZS1wcmljZSI6IiI7Yz1gCgkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke24mJiFwP2I6eX08L3NwYW4+CgkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSAke2R9Ij4ke3V9PC9zcGFuPgoJCTwvZGl2PmA7aWYoMD09KGEucHJpY2VBbWVuZGVtZW50c3x8W10pLmxlbmd0aCltLmlubmVySFRNTD1jO2Vsc2V7eD0oYS5wcmljZUFtZW5kZW1lbnRzLmZlZXNMaXN0fHxbXSkucmVkdWNlKChCLGcpPT57aWYoMD09Zy5hbW91bnQpcmV0dXJuIEI7bGV0IHE9IiI7KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGcuZGVzY0VuKSxEPT5ELmNoYXJDb2RlQXQoMCkpKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJhZG1pbiIpJiYhMD09PXN0b3JlLmdldCgiZmllbGRzLlZXX0RSX1BQX0VOQUJMRUQiKSYmKHE9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNC1kaXYiICBkYXRhLWRpc2NsYWltZXItaWQ9IjQiPjxzdXA+NDwvc3VwPjwvYT4nKTsKbGV0IHo9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZy5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIEIrPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZ1tyXSksRD0+RC5jaGFyQ29kZUF0KDApKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlIj48c3BhbiBjbGFzcz0iJHsiZm9ybWF0LXByaWNlIn0iPiR7en08L3NwYW4+JHtxfTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciB0PShhLnByaWNlQW1lbmRlbWVudHMuaW5jZW50aXZlc0xpc3R8fFtdKS5yZWR1Y2UoKEIsZyk9PntpZigwPT1nLmFtb3VudClyZXR1cm4gQjtsZXQgcT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihnLmFtb3VudC50b1N0cmluZygpKTtyZXR1cm4gQis9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4keyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihnW3JdKSx6PT56LmNoYXJDb2RlQXQoMCkpKX08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0iPi0ke3F9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7dT0oYS5wcmljZUFtZW5kZW1lbnRzLnBvc3RUYXhJbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoQixnKT0+e2lmKDA9PWcuYW1vdW50KXJldHVybiBCO2xldCBxPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGcuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiBCKz1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGdbcl0pLHo9PnouY2hhckNvZGVBdCgwKSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7cX08L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTt2YXIgQT1mLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLHc9MDwoYS5wcmljZUFtZW5kZW1lbnRzLmNvbmRpdGlvbmFsUmViYXRlc1RvdGFsfHwwKTtlPXcmJmEucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlP2EucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlOmY7WyJORVdDQVJTIiwiTkVXQ0FSREVUQUlMUyJdLmluY2x1ZGVzKHNpdGVQYWdlLm5hbWUpfHwoQT1mLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLGU9dyYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6Zik7Y2FzaFByaWNlRm9yUGFnZT1lO0E9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoQS50b1N0cmluZygpKTtlPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGUudG9TdHJpbmcoKSk7CmE9eC5sZW5ndGh8fHQubGVuZ3RoO249biYmIXAmJmE\/YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHt5fTwvc3Bhbj4KCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9ICR7ZH0iPiR7QX08L3NwYW4+CgkJPC9kaXY+YCt4K3Q6IiI7YSYmKHA9IiIhPW4\/InByaWNlRmluYWwiOiIiLGE9IiIsMT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYhMD09PXN0b3JlLmdldCgiZmllbGRzLlZXX0RSX1BQX0VOQUJMRUQiKSYmKGE9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiICBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTEtZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjEiPjxzdXA+MTwvc3VwPjwvYT4nKSxjPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtifTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSIke3B9Ij48c3BhbiBjbGFzcz0iJHsiZm9ybWF0LXByaWNlIn0iPiR7ZX08L3NwYW4+JHthfTwvc3Bhbj4KCQkJPC9kaXY+YCk7bS5pbm5lckhUTUw9bitjK3V9fQpmdW5jdGlvbiBnZXRPcHRpb25zQW1vdW50KGEpe3ZhciBiPWEucGF5bWVudE9wdGlvbnM\/YS5wYXltZW50T3B0aW9uczowO2EuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1hLm5vVHJpbVNlbGVjdHx8InRydWUiPT09YS5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8JCgiI1BBR0VJRCIpLnZhbCgpO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7aWYoZXx8YSYmZSliPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZE9wdGlvbnNUb3RhbCxhPXBhcnNlSW50KG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5kZWZhdWx0T3B0aW9uQW1vdW50KSwwPGEmJihiLT1hLGI9TWF0aC5tYXgoMCxiKSk7cmV0dXJuIGJ8fAowfWZ1bmN0aW9uIGdldEFjY2Vzc29yaWVzQW1vdW50KGEpe3ZhciBiPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWEubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1hLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoZXx8YSYmZSkmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwmJihiPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY1RvdGFsKTtyZXR1cm4gYnx8MH0KZnVuY3Rpb24gZ2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhhKXt2YXIgYj0iIjthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhlfHxhJiZlKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NJZHMmJihiPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcy5qb2luKCIsIikpO3JldHVybiBifHwiIn0KZnVuY3Rpb24gZ2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGEpe3ZhciBiPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWEubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1hLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoZXx8YSYmZSkmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCYmKGI9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCk7cmV0dXJuIGJ8fDB9CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGEpe3JldHVybiBhLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIiwiKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsYil7JChhKS50cmlnZ2VyKCJwYXltZW50Q2FsY3VsYXRvci5jbGljayIse29yaWdFdmVudDpifSk7YT1uZXcgRXZlbnQoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIik7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChhKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWROZXdWRFBUcmlnZ2VyKGEsYil7dmFyIGU9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLGQ9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSxjPSQoIiNwb3B1cHllYXIiKS52YWwoKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIk5ldy1WRFAtT3V0Ym91bmQtY2xpY2tzIiwiQ2FsY3VsYXRyaWNlIixlKyItIitkKyItIitjKTtwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsYil9CmZ1bmN0aW9uIGZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KGEsYixlLGQsYyl7ZD12b2lkIDA9PT1kPyIiOmQ7Yz12b2lkIDA9PT1jPyEwOmM7Yj1wYXJzZUZsb2F0KGEpLXBhcnNlRmxvYXQoYik7dmFyIGY9c3RvcmUuZ2V0KCJmaWVsZHMiKS5BRE1JTl9TSE9XX0VGRkVDVElWRV9SQVRFX1NFTEVDVDtpZigiZmFsc2UiPT09c3RvcmUuZ2V0KCJmaWVsZHMiKS5BRE1JTl9TSE9XX0VGRkVDVElWRV9SQVRFfHwiZXZlcnl3aGVyZSIhPWYmJjA+PWIpcmV0dXJuIiI7Yj1zdG9yZS5nZXQoImkxOG4iKS5FRkZFQ1RJVkVfUkFURV9MQUJFTDtmPSQoIiNpc21vYmlsZSIpLnZhbCgpPyI8YnIvPiI6IiAiO2I9Yi5yZXBsYWNlKCJ7JFJBVEV9IixgPHNwYW4gJHtlfT4ke2F9JTwvc3Bhbj5gKTtyZXR1cm5gJHtmfSR7Yz9gPGRpdiAke2R9PmA6IiJ9KCAke2J9ICkke2M\/IjwvZGl2PiI6IiJ9YH0KZnVuY3Rpb24gcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24oYSl7dHJ5e2lmKGEubGVhc2UmJjA8YS5sZWFzZS5sZW5ndGgpe3ZhciBiPVtdO2EubGVhc2UuZm9yRWFjaChmdW5jdGlvbihkKXstMT09JC5pbkFycmF5KGQua21fYWxsb3dhbmNlLGIpJiZiLnB1c2goZC5rbV9hbGxvd2FuY2UpfSk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBjPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGQudG9GaXhlZCgwKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5hcHBlbmQobmV3IE9wdGlvbihjKyIga20iLGQpKX0pO3ZhciBlPTJFNDthLmN1cnJlbnRQYXltZW50WzBdJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZSYmKGU9MDxhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9hLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGUpfX1jYXRjaChkKXtjb25zb2xlLmVycm9yKCJFcnJvciBwb3B1bGF0aW5nIGxlYXNlIGttIGFsbG93YW5jZSBkcm9wZG93biBpbiB0aGUgZnVuY3Rpb24gcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd246ICIsCmQpfX0KZnVuY3Rpb24gc2hvd0hpZGVQYXltZW50U2VjdGlvbihhLGIpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7MDwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrYisiJ10iKS5sZW5ndGgmJiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitiKyInXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyJjYXNoIiE9PWImJih2b2lkIDAhPWEuZmluYW5jZSYmMD09PWEuZmluYW5jZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuaGlkZSgpOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLnNob3coKSx2b2lkIDAhPWEubGVhc2UmJjA9PT1hLmxlYXNlLmxlbmd0aD8kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuaGlkZSgpOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5zaG93KCkpfQpmdW5jdGlvbiBzaG93RGlzY2xhaW1lckxpbmsoKXsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF5bWVudENhbGN1bGF0b3JUZXJtcyIpLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikuc3R5bGUuZGlzcGxheT0iYmxvY2siKSl9CmZ1bmN0aW9uIGhpZGVEaXNjbGFpbWVyTGluaygpezE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXltZW50Q2FsY3VsYXRvclRlcm1zIikuc3R5bGUuZGlzcGxheT0ibm9uZSIsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSl9ZnVuY3Rpb24gZ2V0THV4dXJ5VGF4TGFiZWwoYSl7YT1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShwYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhLmx1eHVyeVRheC50b0ZpeGVkKDApKSk7cmV0dXJuIjxsaT4iK3N0b3JlLmdldCgiaTE4biIpLldFQl9TSVRFX1BSSUNFX0JSRUFLRE9XTl9MVVhVUllfVEFYX0xBQkVMKyIgOiAiK2ErIjwvbGk+In07Ci8qKiAvanMvdmFuaWxsYWpzL21vZGFsLmpzICoqLwp2YXIgX19fZDJjX21vZGFsanNfY19vbj0iMjAyNi0wMi0yNyAxNTozMDowMyI7J3VzZSBzdHJpY3QnO2NvbnN0IE1vZGFscz17fSxNb2RhbD1mdW5jdGlvbihoLGIpe2xldCBjPXt9O2NvbnN0IG49e3RpdGxlOmgsY29udGVudFR5cGU6Im5vZGUiLGNvbnRlbnRTcmM6IiIsYWZ0ZXJJbml0OigpPT57fX07bGV0IGs9IiI7Y29uc3QgZT1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5Ij48L2Rpdj4nKSxsPWZ1bmN0aW9uKGEpe2Eub25jbGljaz0oKT0+ZigiY2FuY2VsIil9LHA9ZnVuY3Rpb24oKXsoYy5xdWVyeVNlbGVjdG9yKCIub2theSIpfHwhMSkub25jbGljaz0oKT0+Zigib2theSIpO2NvbnN0IGE9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuY2FuY2VsIil8fCExOzE8YS5sZW5ndGg\/JC5lYWNoKGEsZnVuY3Rpb24oZCxnKXtsKGcpfSk6YSYmbChhWzBdKX0sbT1mdW5jdGlvbihhKXsiRXNjYXBlIj09YS5rZXkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsCm0se2NhcHR1cmU6ITB9KSxmKCkpfSxmPWE9PnthPWF8fCIiO3N3aXRjaChhKXtjYXNlICJjYW5jZWwiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2FuY2VsJiZiLm9uQmVmb3JlQ2FuY2VsLmNhbGwoKTticmVhaztjYXNlICJva2F5IjoiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZVNhdmUmJmIub25CZWZvcmVTYXZlLmNhbGwoKX0iZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZUNsb3NlJiZiLm9uQmVmb3JlQ2xvc2UuY2FsbChhKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iYXV0byI7Yy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLCExKTtlLnBhcmVudE5vZGUmJihlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksay5mb2N1cygpKX07Yj1PYmplY3QuYXNzaWduKG4sYik7KGZ1bmN0aW9uKCl7Y29uc3QgYT0rbmV3IERhdGU7dmFyIGQ9IiI7c3dpdGNoKGIuY29udGVudFR5cGUpe2Nhc2UgIm5vZGUiOmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYi5jb250ZW50U3JjKTsKZC5oaWRkZW49ITE7YnJlYWs7Y2FzZSAiaWZyYW1lIjpkPWh0bWxUb05vZGUoYDxkaXYgY2xhc3M9ImlmcmFtZS13cmFwcGVyIj4KCQkJCQkJCQk8aWZyYW1lCgkJCQkJCQkJCXNyYz0iJHtiLmNvbnRlbnRTcmN9IgoJCQkJCQkJCQlmcmFtZWJvcmRlcj0iMCIKCQkJCQkJCQkJYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCQl3ZWJraXRhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCW1vemFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQk+PC9pZnJhbWU+CgkJCQkJCQk8L2Rpdj5gKX1sZXQgZz0iIjtiLnNob3dZZXNOb0J1dHRvbnMmJihnPWA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgLXAgLS1zNSBmbGV4LWJldHdlZW4iPgoJCQkJPGRpdj4KCQkJCQk8c3BhbiBjbGFzcz0iIC1tdDIgbWFpblRleHQgLWJvbGQiPiR7Yi5idXR0b25UZXh0fHwiIn08L3NwYW4+CgkJCQk8L2Rpdj4KCQkJCTxkaXY+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gY2FuY2VsIiBkYXRhLWRpc21pc3M9Im1vZGFsIj4ke2Iubm9CdXR0b258fCJObyJ9PC9idXR0b24+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLW1haW4yIG9rYXkiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi55ZXNCdXR0b258fCJZZXMifTwvYnV0dG9uPgoJCQkJPC9kaXY+YCk7Yz1odG1sVG9Ob2RlKGAKCQkJPGJveC1sYyBjbGFzcz0ibW9kYWwtd3JhcHBlciAtYmctd2hpdGUgLS1zMCI+CgkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczAiPgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciBmbGV4LWJldHdlZW4gLXAgLS1zNSI+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLXRpdGxlIHR4dC11cHBlciAtZnMtbCAtYm9sZCI+CgkJCQkJCQkke2IudGl0bGV9CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1jb250cm9sIj4KCQkJCQkJCTxidXR0b24gdGl0bGU9ImNsb3NlIiBjbGFzcz0ieC1jbG9zZSBjYW5jZWwiPjwvYnV0dG9uPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IiBpZD0icS0ke2F9Ij4KCgkJCQkJPC9kaXY+CgkJCQkJJHtnfQoJCQkJPC9zdGFjay1sYz4KCQkJPC9ib3gtbGM+CgkJYCk7Yy5pZD1gbW9kYWwke2h9YDtjLnNldEF0dHJpYnV0ZSgicm9sZSIsImRpYWxvZyIpO2Muc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGBxLSR7YX1gKTtjLnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1ib2R5IikuYXBwZW5kQ2hpbGQoZCk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIjtiLmFmdGVySW5pdCgpO3AoKX0pKCk7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oKXtrPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbSx7Y2FwdHVyZTohMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITApfSwxKX0sY2xvc2U6Zn19OwovKiogL2pzL3ZhbmlsbGFqcy9sZWFkLmpzICoqLwp2YXIgX19fZDJjX2xlYWRqc19jX29uPSIyMDI2LTA0LTAyIDEzOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGIsYSxjKXtpZihiPT1BcnJheS5wcm90b3R5cGV8fGI9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGI7YlthXT1jLnZhbHVlO3JldHVybiBifTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYil7Yj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGIsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBhPTA7YTxiLmxlbmd0aDsrK2Epe3ZhciBjPWJbYV07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYixhKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFthXTtpZihudWxsPT1jKXJldHVybiBiW2FdO2M9YltjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmJbYV19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYixhLGMsZSl7YSYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGIsYSxjLGUpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGIsYSxjLGUpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGIsYSxjLGUpe2M9JGpzY29tcC5nbG9iYWw7Yj1iLnNwbGl0KCIuIik7Zm9yKGU9MDtlPGIubGVuZ3RoLTE7ZSsrKXt2YXIgaD1iW2VdO2lmKCEoaCBpbiBjKSlyZXR1cm47Yz1jW2hdfWI9YltiLmxlbmd0aC0xXTtlPWNbYl07YT1hKGUpO2EhPWUmJm51bGwhPWEmJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxiLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGIsYSxjLGUpe3ZhciBoPWIuc3BsaXQoIi4iKTtiPTE9PT1oLmxlbmd0aDtlPWhbMF07ZT0hYiYmZSBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIHE9MDtxPGgubGVuZ3RoLTE7cSsrKXt2YXIgcj1oW3FdO2lmKCEociBpbiBlKSlyZXR1cm47ZT1lW3JdfWg9aFtoLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2VbaF06bnVsbDthPWEoYyk7bnVsbCE9YSYmKGI\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxoLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pOmEhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChoKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitoKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGUsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBiPXthOiEwfSxhPXt9O3RyeXtyZXR1cm4gYS5fX3Byb3RvX189YixhLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihiLGEpe2IuX19wcm90b19fPWE7aWYoYi5fX3Byb3RvX18hPT1hKXRocm93IG5ldyBUeXBlRXJyb3IoYisiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGJ9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihiKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhPGIubGVuZ3RoP3tkb25lOiExLHZhbHVlOmJbYSsrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYil9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYil7dmFyIGE9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYltTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBhP2EuY2FsbChiKTokanNjb21wLmFycmF5SXRlcmF0b3IoYil9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGIpe2lmKCEoYiBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYisiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy55aWVsZFJlc3VsdD1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmIsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGIsYSl7dGhpcy5uZXh0QWRkcmVzcz1hO3JldHVybnt2YWx1ZTpifX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYixhKXtiPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGIpO3ZhciBjPWIubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1hO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89Yix0aGlzLnlpZWxkKGMudmFsdWUsYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYil7dGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiLGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1iO3ZvaWQgMCE9YSYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWEpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihiLGEpe3RoaXMubmV4dEFkZHJlc3M9Yjt0aGlzLmNhdGNoQWRkcmVzc189YXx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDtiPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixhLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixhKXthPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYXx8MClbMF07aWYoYT10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGEpe2lmKGEuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9YS5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGEuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWEuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYil7dGhpcy5vYmplY3RfPWI7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGEgaW4gYil0aGlzLnByb3BlcnRpZXNfLnB1c2goYSk7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBiPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYiBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGJ9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWJ9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBhPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYSlyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYT9hWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYix0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihiLGEsYyl7dHJ5e3ZhciBlPWIuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGEpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGUpO2lmKCFlLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxlO3ZhciBoPWUudmFsdWV9Y2F0Y2gocSl7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhxKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxoKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBiPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYilyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGEpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGEpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXtiPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGIuaXNFeGNlcHRpb24pdGhyb3cgYi5leGNlcHRpb247cmV0dXJue3ZhbHVlOmIucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGIpe3RoaXMubmV4dD1mdW5jdGlvbihhKXtyZXR1cm4gYi5uZXh0XyhhKX07dGhpcy50aHJvdz1mdW5jdGlvbihhKXtyZXR1cm4gYi50aHJvd18oYSl9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGEpe3JldHVybiBiLnJldHVybl8oYSl9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGIsYSl7YT1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYi5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYSxiLnByb3RvdHlwZSk7cmV0dXJuIGF9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYShlKXtyZXR1cm4gYi5uZXh0KGUpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGIudGhyb3coZSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsaCl7ZnVuY3Rpb24gcShyKXtyLmRvbmU\/ZShyLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoci52YWx1ZSkudGhlbihhLGMpLnRoZW4ocSxoKX1xKGIubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGIoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSkpfTsKY29uc3QgTGVhZD1mdW5jdGlvbihiKXtjb25zdCBhPU9iamVjdC5hc3NpZ24oe30sYiksYz1hLmxlYWRJZHx8YS5uYW1lO2I9YS5sZWFkTm9kZTtjb25zdCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtIitjKTtsZXQgaD0hMSxxPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1zdWJqZWN0XSIpLmlubmVyVGV4dCxyPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1ib2R5XSIpLmlubmVySFRNTCx6PWEudHJpZ2dlcixrPXt9O2NvbnN0IEE9KCk9PntBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtzd2l0Y2goITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgImVtYWlsIj09CmYudG9Mb3dlckNhc2UoKTpjYXNlICJkYXRhIj09ZjpicmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpjYXNlICJ0ZWwiPT1kLnR5cGU6SU1hc2soZCx7bWFzazpbe21hc2s6IjAwMCAwMDAtMDAwMCJ9LHttYXNrOiIxIDAwMCAwMDAtMDAwMCJ9XX0pfX19KTsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtzd2l0Y2goITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTp2YXIgZztmPW51bGwhPShnPWNsaWVudFN0b3JhZ2UuZ2V0KCJmaXJzdG5hbWUiKSk\/ZzoiIjt2YXIgbDtnPW51bGwhPShsPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9sOiIiO2w9ZisoIiIhPWc\/IiAiK2NsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpOgoiIik7ZC52YWx1ZT1sO2JyZWFrO2Nhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmxldCBtO2QudmFsdWU9bnVsbCE9KG09Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9tOiIiO2JyZWFrO2Nhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bGV0IG47ZC52YWx1ZT1udWxsIT0obj1jbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKSk\/bjoiIjticmVhaztjYXNlICJlbWFpbCI9PWYudG9Mb3dlckNhc2UoKTpsZXQgcDtkLnZhbHVlPW51bGwhPShwPWNsaWVudFN0b3JhZ2UuZ2V0KCJlbWFpbCIpKT9wOiIiO2JyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmxldCB1O2QudmFsdWU9bnVsbCE9KHU9Y2xpZW50U3RvcmFnZS5nZXQoInBob25lIikpP3U6IiJ9fX0pfSxFPSgpPT57aWYoaClyZXR1cm4hMTtoPSEwO0IoKS50aGVuKGQ9PntpZighZClyZXR1cm4gdigicG9wdXAudmFsaWRhdGlvbkZhaWxlZCIpLApoPSExO2EudmFsaWRhdGVkPSEwO0MoKTtEKCl9KX0sQz0oKT0+e0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO2lmKGYpc3dpdGNoKGtbZl09ZC52YWx1ZSwhMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmQ9ZC52YWx1ZS5zcGxpdCgiICIpO2sudXNlckZpcnN0TmFtZSs9ZC5zaGlmdCgpO2sudXNlckxhc3ROYW1lKz1kLmpvaW4oIiAiKTticmVhaztjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTprLnVzZXJGaXJzdE5hbWUrPWQudmFsdWU7YnJlYWs7Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTprLnVzZXJMYXN0TmFtZSs9ZC52YWx1ZTticmVhaztjYXNlICJlbWFpbCI9PWYudG9Mb3dlckNhc2UoKTprLnVzZXJFbWFpbD0KZC52YWx1ZTticmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpjYXNlICJ0ZWwiPT1kLnR5cGU6SU1hc2soZCx7bWFzazpbe21hc2s6IjAwMCAwMDAtMDAwMCJ9LHttYXNrOiIxIDAwMCAwMDAtMDAwMCJ9XX0pO2sudXNlclBob25lPWQudmFsdWU7YnJlYWs7Y2FzZSAiZGF0YSI9PWY6Zm9yKGxldCBnIGluIGQuZGF0YXNldClrW2cucmVwbGFjZSgvLS4vZyxsPT5sWzFdLnRvVXBwZXJDYXNlKCkpXT1kLmRhdGFzZXRbZ119fX0pfSxEPSgpPT57aWYoITE9PT1hLm9uQmVmb3JlU3VibWl0KGEpKXJldHVybiBhLmNsb3NlT25TdWJtaXQmJnQoKSwhMTt2YXIgZD14KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtpZihDb29raWVzLmdldChhLmxlYWRJZCtkKSlyZXR1cm4gaD0hMSx5KCEwKSwhMTtGKCk7digicG9wdXAuc3VibWl0Iik7bGV0IGY7aWYoIkRpZ2l0YWxSZXRhaWwiPT0obnVsbD09KGY9ayk\/dm9pZCAwOmYuaW52b2tlcikpe2Q9Y2xpZW50U3RvcmFnZS5nZXQoImNsaWVudFN0b3JhZ2UiKXx8Cnt9O2xldCBuLHA7ay5sZWFkSW52b2tlclNJRD1HKChudWxsPT1kP3ZvaWQgMDpudWxsPT0obj1kLmNvbnRhY3QpP3ZvaWQgMDpuLmVtYWlsKSsobnVsbD09ZD92b2lkIDA6bnVsbD09KHA9ZC5jb250YWN0KT92b2lkIDA6cC5waG9uZSkpO2VtYWlsSGFuZGxlci5sZWFkSW52b2tlcj0iRGlnaXRhbFJldGFpbCI7ZW1haWxIYW5kbGVyLmRpZ2l0YWxSZXRhaWxTSUQ9ay5sZWFkSW52b2tlclNJRH12YXIgZztxPShudWxsPT0oZz1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtc3ViamVjdF0iKSk\/dm9pZCAwOmcuaW5uZXJUZXh0KXx8cTtsZXQgbDtyPShudWxsPT0obD1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtYm9keV0iKSk\/dm9pZCAwOmwuaW5uZXJIVE1MKXx8cjtlbWFpbEhhbmRsZXIuYm9keT1IKCk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9cTtPYmplY3QuYXNzaWduKGVtYWlsSGFuZGxlcixrKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmCihnPWVtYWlsSGFuZGxlci51c2VyTmFtZS5zcGxpdCgiICIpLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWcuc2hpZnQoKSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWcuam9pbigiICIpKTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD1mdW5jdGlvbigpe2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24obil7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITE7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25EdXBsaWNhdGVTZW5kPWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCl9O2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihuKXt2YXIgcD0hMTthLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKHA9Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIithLm5hbWUpLHAudGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7ZS5yZXNldCgpfSk7CmlmKG4pdigicG9wdXAubGVhZF9zZW50IiksImZ1bmN0aW9uIj09dHlwZW9mIG9yaWdpbmFsQ2FsbGJhY2smJm9yaWdpbmFsQ2FsbGJhY2suY2FsbCgpLCJvblN1Ym1pdCI9PWEuY29va2llQ3JlYXRlJiZDb29raWVzLnNldChhLmNvb2tpZU5hbWUsIjEiLGEuY29va2llRHVyYXRpb24sIi8iKSxhLnN1Ym1pdEZsYWcmJkNvb2tpZXMuc2V0KCJwb3B1cEZvcm1GaWxsZWQiLCIxIiwxLCIvIiksYS5jbG9zZU9uU3VibWl0JiZ0KCJDT05TRU5UIikscD9wLnNob3dTdWNjZXNzKCk6MDwkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLmxlbmd0aCYmJChgZm9ybSNmb3JtJHthLm5hbWV9X2NvbmZpcm1gKS50cmlnZ2VyKCJzdWJtaXQiKTtlbHNle3B8fChwPWdldE1haWxTZW50SGFuZGxlcigpKTt0cnl7cC5zaG93RmFpbCgpfWNhdGNoKHUpe319eShuKTt3KCk7c2V0VGltZW91dChlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKSwxRTMpO24mJihuPXgod2luZG93LmxvY2F0aW9uLmhyZWYpLApDb29raWVzLnNldChhLmxlYWRJZCtuLCIxIiwxLCIvIikpfTthLnN1Ym1pdHRlZD0hMDtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkJlZm9yZVNlbmRNYWlsJiYwPT1hLm9uQmVmb3JlU2VuZE1haWwuY2FsbCgpKXJldHVybiExO2xldCBtPXt9OyJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQURGJiYobT1hLm9uQURGLmNhbGwoKSk7Im1ha2UgbW9kZWwgeWVhciBzdG9ja051bWJlciB0cmltIHZpbiBwcmljZSBjYXJpZCIuc3BsaXQoIiAiKS5mb3JFYWNoKG49PntlbWFpbEhhbmRsZXJbbl09bVtuXXx8ZW1haWxIYW5kbGVyW25dfSk7YS5wdXJjaGFzZUludGVudFBvcHVwfHxlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5ieXBhc3NDb25zZW50KTtyZXR1cm4hMH0sdz0oKT0+e2s9e3VzZXJGaXJzdE5hbWU6IiIsdXNlckxhc3ROYW1lOiIiLHVzZXJFbWFpbDoiIix1c2VyUGhvbmU6IiJ9O2g9ITF9LEI9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7aWYoYS5za2lwVmFsaWRhdGlvbilyZXR1cm4hMDsKY29uc3QgZD1uZXcgUHJpc3RpbmUoZSx7Y2xhc3NUbzoiZm9ybS1sYWJlbCIsZXJyb3JDbGFzczoiaW52YWxpZCJ9LCExKTtsZXQgZj1lLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJwaG9uZW51bSJdJyksZz0hMCxsPSEwO2lmKGYucmVxdWlyZWR8fGYudmFsdWUpZz1udWxsLGc9eWllbGQgSShmLnZhbHVlKTtudWxsPT09Zz8oZC5hZGRWYWxpZGF0b3IoZixmdW5jdGlvbihtKXttPW0ucmVwbGFjZSgvW14wLTldKy9naSwiIik7IjEiPT1tWzBdJiYobT1tLnN1YnN0cmluZygxKSk7bT1wYXJzZUludChtLnN1YnN0cmluZygwLDMpKTtyZXR1cm4gZz1bNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0Myw2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDJdLmluY2x1ZGVzKG0pfSwiRW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIiLDUsITEpLGw9ZC52YWxpZGF0ZSgpKToobD1kLnZhbGlkYXRlKCkmJmcsZi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImludmFsaWQiLAohZykpO2YucmVxdWlyZWQmJiFnJiYidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlciYmKGVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrLGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT0hMCk7cmV0dXJuIGx9KX0sST1kPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtsZXQgZj1udWxsO2Q9ZC5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTt5aWVsZCBheGlvcy5nZXQoIi9wcm94eV9yZDJjL3NpdGVzL3N2Yy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCIse3RpbWVvdXQ6MkUzLGRhdGFUeXBlOiJqc29uIixwYXJhbXM6e3Bob25lOmR9LHJlc3BvbnNlVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKGcpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGcuZGF0YS5pc09rJiYoZj1nLmRhdGEucGhvbmVOdW1iZXJJc1ZhbGlkKX0pLmNhdGNoKGZ1bmN0aW9uKGcpe30pO3JldHVybiBmfSksRj0oKT0+e2NvbnN0IGQ9CmRvY3VtZW50LmZvcm1zLmVtYWlsbXNnZnJtfHwhMTtpZighZClyZXR1cm4hMTtkLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJsYWJlbCInKS52YWx1ZT1gJHthLnR5cGV9ICgke2suY29uZGl0aW9ufSlgO2QucXVlcnlTZWxlY3RvcignW25hbWU9InNlY3Rpb24iJykudmFsdWU9ay5jb25kaXRpb259LHg9ZD0+Wy4uLmRdLnJlZHVjZSgoZixnKT0+TWF0aC5pbXVsKDMxLGYpK2cuY2hhckNvZGVBdCgwKXwwLDApLEg9ZnVuY3Rpb24oKXtsZXQgZD1yLGY9e25hbWU6WyJNTkFNRSJdLHBob25lbnVtOlsiTVBIT05FIiwiUEhPTkUiXSxlbWFpbDpbIk1NQUlMIl19O09iamVjdC5rZXlzKGspLmZvckVhY2goZz0+e3ZhciBsPW5ldyBSZWdFeHAoIntcXCQiK2cudG9VcHBlckNhc2UoKSsifSIsImciKTtkPWQucmVwbGFjZShsLGtbZ10pO2ZbZ10mJihsPW5ldyBSZWdFeHAoIntcXCQoIitmW2ddLmpvaW4oInwiKSsiKX0iLCJnIiksZD1kLnJlcGxhY2UobCxrW2ddKSl9KTtyZXR1cm4gZH0sdj1mdW5jdGlvbihkKXt2YXIgZj0KYS50eXBlO2lmKCFkKXJldHVybiExO2lmKCJwb3B1cC5sZWFkX3NlbnQiPT1kKXt2YXIgZz0iY2xpY2siLnJlcGxhY2UoLyheW2Etel17MX0pL2csZnVuY3Rpb24obSl7cmV0dXJuIG0udG9VcHBlckNhc2UoKX0pLGw9ZDJjbWVkaWEucGFnZURlcGFydG1lbnQoKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtbGVhZHMiLGcsbCwxKX0idW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixkLGYsc2VsZiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChkLGYpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGQsZil9LHQ9KCk9PnthLm9uQmVmb3JlQ2xvc2UoYSk7dygpO01vZGFsc1tjXSYmTW9kYWxzW2NdLmNsb3NlKCl9LAp5PWQ9PnthLm9uQWZ0ZXJTdWJtaXQoYSxkKTthLmNsb3NlT25TdWJtaXQmJmQmJnQoKTtkJiZlLnJlc2V0KCl9LEc9ZD0+e2xldCBmPTA7aWYoMD09ZC5sZW5ndGgpcmV0dXJuIGY7Zm9yKGxldCBnPTAsbD1kLmxlbmd0aDtnPGw7ZysrKXtsZXQgbT1kLmNoYXJDb2RlQXQoZyk7Zj0oZjw8NSktZittO2Z8PTB9cmV0dXJuIE1hdGguYWJzKGYpfTsoKCk9PnskKGUpLnRyaWdnZXIoInBvcHVwaXplci5vbk9wZW4iLCQoZSkpO3coKTtBKCk7ZS5vbnN1Ym1pdD1kPT57ZC5wcmV2ZW50RGVmYXVsdCgpO0UoKX07YS5vbkJlZm9yZU9wZW4oYSl9KSgpO3JldHVybntsZWFkSWQ6YyxsZWFkTm9kZTpiLHRyaWdnZXI6eixkaXNwbGF5OigpPT57YS5kaXNwbGF5P2EuZGlzcGxheShhKTooYS5jb250ZW50U3JjPWBsZWFkJHtjfWAsTW9kYWxzW2NdfHwoTW9kYWxzW2NdPW5ldyBNb2RhbChjLGEpKSxNb2RhbHNbY10uZGlzcGxheSgpKX0sY2xvc2U6dH19LExlYWRIYW5kbGVyPWZ1bmN0aW9uKCl7Y29uc3QgYj0Ke29uQmVmb3JlT3BlbjooKT0+e30sb25CZWZvcmVWYWxpZGF0aW9uOigpPT57fSxvbkJlZm9yZVN1Ym1pdDooKT0+e30sb25BZnRlclN1Ym1pdDooKT0+e30sb25CZWZvcmVDYW5jZWw6KCk9Pnt9LG9uQmVmb3JlQ2xvc2U6KCk9Pnt9LG9uQ2xvc2U6KCk9Pnt9LGZvcm06e2VtYWlsaWQ6bnVsbCxvZmZlcnR5cGU6bnVsbCxuYW1lOm51bGwsc2VuZFRvOm51bGwsc2VuZFRvQURGOm51bGwsT0tCdXR0b25DbGFzczoic3VibWl0QnRuIixDYW5jZWxCdXR0b25DbGFzczoiY2FuY2VsQnRuIixzaG93RW1haWxDb25maXJtYXRpb246ITEsZnJvbUFBOiExfSxnZXRJZFN1ZmZpeDphPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqRGF0ZS5ub3coKSksbW9kZToic3RhdGljIix0cmlnZ2VyOiJhdXRvIixkZWxheTohMSxkaXNwbGF5OiExLHN1Ym1pdHRlZDohMSxjbG9zZU9uU3VibWl0OiEwLHN1Ym1pdEZsYWc6ITEsYnlwYXNzQ29uc2VudDohMSxzaG93RW1haWxDb25maXJtYXRpb246ITAscHVyY2hhc2VJbnRlbnRQb3B1cDohMX07CmluaXQ9KCk9PnsidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuQWJzdHJhY3RVc2VkU3JwT2JqZWN0JiYobmV3IEFic3RyYWN0VXNlZFNycE9iamVjdCh7bmFtZToiVmlld0Rpc2NvdmVyQnRuSGFuZGxlciJ9KSkuYWRkVXNlZFNycEV2ZW50T2JzZXJ2ZXIoImNvbnRlbnQiLGFkZExlYWRFdmVudHMpLmluaXRVc2VkU3JwT2JzZXJ2ZXIoKTthZGRMZWFkRXZlbnRzKCl9O2FkZExlYWRFdmVudHM9KCk9Pntkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1sZWFkLXRyaWdnZXJdIikuZm9yRWFjaChhPT57dGhpcy5pbml0TGVhZFRyaWdnZXIoYSl9KX07dGhpcy5pbml0TGVhZFRyaWdnZXI9YT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGM9PntjLnN0b3BQcm9wYWdhdGlvbigpO2M9YS5kYXRhc2V0LmxlYWRUcmlnZ2VyO2xldCBlPWEuZGF0YXNldC5sZWFkaWR8fCExO0xlYWRDb25maWdzW2NdLnRyaWdnZXI9YTtjPXRoaXMuZ2V0TGVhZChjLGUpO2MuZGlzcGxheSgpOwphLmRhdGFzZXQubGVhZGlkPWMubGVhZElkfSl9O3RoaXMuZ2V0TGVhZD0oYSxjKT0+e2lmKCEoYz1MZWFkc1tjfHxhXSkpe3tjPWE7bGV0IGU9T2JqZWN0LmFzc2lnbih7fSxiKTtPYmplY3QuYXNzaWduKGUsTGVhZENvbmZpZ3NbYV0pO2NvbnN0IGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGxlYWQke2F9YCk7aD8oYT1oLCJzdGF0aWMiIT1lLm1vZGUmJihjPWAke2UubmFtZX1fJHtlLmdldElkU3VmZml4KGUpfWAsYT1oLmNsb25lTm9kZSghMCksYS5zZXRBdHRyaWJ1dGUoImlkIiwibGVhZCIrYyksYS5xdWVyeVNlbGVjdG9yKCJmb3JtIikuc2V0QXR0cmlidXRlKCJpZCIsImZvcm0iK2MpLGRvY3VtZW50LmJvZHkuYXBwZW5kKGEpKSxlLmxlYWRJZD1jLGUubGVhZE5vZGU9YSxMZWFkc1tjXT1uZXcgTGVhZChlKSxjPUxlYWRzW2NdKTpjPSExfX1yZXR1cm4gY307cmV0dXJue2luaXQsaW5pdExlYWRUcmlnZ2VyLGdldExlYWR9fTt2YXIgTGVhZHM9TGVhZHN8fHt9O2RvY1JlYWR5QXJyLnB1c2goTGVhZEhhbmRsZXIoKS5pbml0KTsKLyoqIC9qcy92YW5pbGxhanMvYXhpb3MubWluLmpzICoqLwohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSx0KToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM\/ZXhwb3J0cy5heGlvcz10KCk6ZS5heGlvcz10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIG4ocil7aWYodFtyXSlyZXR1cm4gdFtyXS5leHBvcnRzO3ZhciBvPXRbcl09e2k6cixsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3JdLmNhbGwoby5leHBvcnRzLG8sby5leHBvcnRzLG4pLG8ubD0hMCxvLmV4cG9ydHN9cmV0dXJuIG4ubT1lLG4uYz10LG4uZD1mdW5jdGlvbihlLHQscil7bi5vKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OnJ9KX0sbi5yPWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbihlLHQpe2lmKDEmdCYmKGU9bihlKSksOCZ0KXJldHVybiBlO2lmKDQmdCYmIm9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIociksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KSwyJnQmJiJzdHJpbmciIT10eXBlb2YgZSlmb3IodmFyIG8gaW4gZSluLmQocixvLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfS5iaW5kKG51bGwsbykpO3JldHVybiByfSxuLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIG4uZCh0LCJhIix0KSx0fSxuLm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9LG4ucD0iIixuKG4ucz0xMSl9KFtmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMyksbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PW8uY2FsbChlKX1mdW5jdGlvbiBzKGUpe3JldHVybiB2b2lkIDA9PT1lfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gdShlKXtpZigiW29iamVjdCBPYmplY3RdIiE9PW8uY2FsbChlKSlyZXR1cm4hMTt2YXIgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIG51bGw9PT10fHx0PT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBjKGUpe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1vLmNhbGwoZSl9ZnVuY3Rpb24gZihlLHQpe2lmKG51bGwhPWUpaWYoIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1bZV0pLGkoZSkpZm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXQuY2FsbChudWxsLGVbbl0sbixlKTtlbHNlIGZvcih2YXIgbyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiZ0LmNhbGwobnVsbCxlW29dLG8sZSl9ZS5leHBvcnRzPXtpc0FycmF5OmksaXNBcnJheUJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheUJ1ZmZlcl0iPT09by5jYWxsKGUpfSxpc0J1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PWUmJiFzKGUpJiZudWxsIT09ZS5jb25zdHJ1Y3RvciYmIXMoZS5jb25zdHJ1Y3RvcikmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfSxpc0Zvcm1EYXRhOmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJmUgaW5zdGFuY2VvZiBGb3JtRGF0YX0saXNBcnJheUJ1ZmZlclZpZXc6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyhlKTplJiZlLmJ1ZmZlciYmZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcn0saXNTdHJpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfSxpc051bWJlcjpmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGV9LGlzT2JqZWN0OmEsaXNQbGFpbk9iamVjdDp1LGlzVW5kZWZpbmVkOnMsaXNEYXRlOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IERhdGVdIj09PW8uY2FsbChlKX0saXNGaWxlOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEZpbGVdIj09PW8uY2FsbChlKX0saXNCbG9iOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEJsb2JdIj09PW8uY2FsbChlKX0saXNGdW5jdGlvbjpjLGlzU3RyZWFtOmZ1bmN0aW9uKGUpe3JldHVybiBhKGUpJiZjKGUucGlwZSl9LGlzVVJMU2VhcmNoUGFyYW1zOmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zJiZlIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zfSxpc1N0YW5kYXJkQnJvd3NlckVudjpmdW5jdGlvbigpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IlJlYWN0TmF0aXZlIiE9PW5hdmlnYXRvci5wcm9kdWN0JiYiTmF0aXZlU2NyaXB0IiE9PW5hdmlnYXRvci5wcm9kdWN0JiYiTlMiIT09bmF2aWdhdG9yLnByb2R1Y3QpJiYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQpfSxmb3JFYWNoOmYsbWVyZ2U6ZnVuY3Rpb24gZSgpe3ZhciB0PXt9O2Z1bmN0aW9uIG4obixyKXt1KHRbcl0pJiZ1KG4pP3Rbcl09ZSh0W3JdLG4pOnUobik\/dFtyXT1lKHt9LG4pOmkobik\/dFtyXT1uLnNsaWNlKCk6dFtyXT1ufWZvcih2YXIgcj0wLG89YXJndW1lbnRzLmxlbmd0aDtyPG87cisrKWYoYXJndW1lbnRzW3JdLG4pO3JldHVybiB0fSxleHRlbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmKHQsKGZ1bmN0aW9uKHQsbyl7ZVtvXT1uJiYiZnVuY3Rpb24iPT10eXBlb2YgdD9yKHQsbik6dH0pKSxlfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0\/ZS50cmltKCk6ZS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9LHN0cmlwQk9NOmZ1bmN0aW9uKGUpe3JldHVybiA2NTI3OT09PWUuY2hhckNvZGVBdCgwKSYmKGU9ZS5zbGljZSgxKSksZX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE3KSxpPW4oNSkscz17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9O2Z1bmN0aW9uIGEoZSx0KXshci5pc1VuZGVmaW5lZChlKSYmci5pc1VuZGVmaW5lZChlWyJDb250ZW50LVR5cGUiXSkmJihlWyJDb250ZW50LVR5cGUiXT10KX12YXIgdSxjPXt0cmFuc2l0aW9uYWw6e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9LGFkYXB0ZXI6KCgidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0fHwidW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwcm9jZXNzKSkmJih1PW4oNikpLHUpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7cmV0dXJuIG8odCwiQWNjZXB0Iiksbyh0LCJDb250ZW50LVR5cGUiKSxyLmlzRm9ybURhdGEoZSl8fHIuaXNBcnJheUJ1ZmZlcihlKXx8ci5pc0J1ZmZlcihlKXx8ci5pc1N0cmVhbShlKXx8ci5pc0ZpbGUoZSl8fHIuaXNCbG9iKGUpP2U6ci5pc0FycmF5QnVmZmVyVmlldyhlKT9lLmJ1ZmZlcjpyLmlzVVJMU2VhcmNoUGFyYW1zKGUpPyhhKHQsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZS50b1N0cmluZygpKTpyLmlzT2JqZWN0KGUpfHx0JiYiYXBwbGljYXRpb24vanNvbiI9PT10WyJDb250ZW50LVR5cGUiXT8oYSh0LCJhcHBsaWNhdGlvbi9qc29uIiksZnVuY3Rpb24oZSx0LG4pe2lmKHIuaXNTdHJpbmcoZSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShlKSxyLnRyaW0oZSl9Y2F0Y2goZSl7aWYoIlN5bnRheEVycm9yIiE9PWUubmFtZSl0aHJvdyBlfXJldHVybihufHxKU09OLnN0cmluZ2lmeSkoZSl9KGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe3ZhciB0PXRoaXMudHJhbnNpdGlvbmFsfHxjLnRyYW5zaXRpb25hbCxuPXQmJnQuc2lsZW50SlNPTlBhcnNpbmcsbz10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLHM9IW4mJiJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKHN8fG8mJnIuaXNTdHJpbmcoZSkmJmUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChlKXtpZihzKXtpZigiU3ludGF4RXJyb3IiPT09ZS5uYW1lKXRocm93IGkoZSx0aGlzLCJFX0pTT05fUEFSU0UiKTt0aHJvdyBlfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIn19fTtyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIl0sKGZ1bmN0aW9uKGUpe2MuaGVhZGVyc1tlXT17fX0pKSxyLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSwoZnVuY3Rpb24oZSl7Yy5oZWFkZXJzW2VdPXIubWVyZ2Uocyl9KSksZS5leHBvcnRzPWN9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXt0aGlzLm1lc3NhZ2U9ZX1yLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJDYW5jZWwiKyh0aGlzLm1lc3NhZ2U\/IjogIit0aGlzLm1lc3NhZ2U6IiIpfSxyLnByb3RvdHlwZS5fX0NBTkNFTF9fPSEwLGUuZXhwb3J0cz1yfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCkscj0wO3I8bi5sZW5ndGg7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBlLmFwcGx5KHQsbil9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtpZighdClyZXR1cm4gZTt2YXIgaTtpZihuKWk9bih0KTtlbHNlIGlmKHIuaXNVUkxTZWFyY2hQYXJhbXModCkpaT10LnRvU3RyaW5nKCk7ZWxzZXt2YXIgcz1bXTtyLmZvckVhY2godCwoZnVuY3Rpb24oZSx0KXtudWxsIT1lJiYoci5pc0FycmF5KGUpP3QrPSJbXSI6ZT1bZV0sci5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3IuaXNEYXRlKGUpP2U9ZS50b0lTT1N0cmluZygpOnIuaXNPYmplY3QoZSkmJihlPUpTT04uc3RyaW5naWZ5KGUpKSxzLnB1c2gobyh0KSsiPSIrbyhlKSl9KSkpfSkpLGk9cy5qb2luKCImIil9aWYoaSl7dmFyIGE9ZS5pbmRleE9mKCIjIik7LTEhPT1hJiYoZT1lLnNsaWNlKDAsYSkpLGUrPSgtMT09PWUuaW5kZXhPZigiPyIpPyI\/IjoiJiIpK2l9cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixyLG8pe3JldHVybiBlLmNvbmZpZz10LG4mJihlLmNvZGU9biksZS5yZXF1ZXN0PXIsZS5yZXNwb25zZT1vLGUuaXNBeGlvc0Vycm9yPSEwLGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnRoaXMuY29uZmlnLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnJlc3BvbnNlJiZ0aGlzLnJlc3BvbnNlLnN0YXR1cz90aGlzLnJlc3BvbnNlLnN0YXR1czpudWxsfX0sZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTgpLGk9bigxOSkscz1uKDQpLGE9bigyMCksdT1uKDIzKSxjPW4oMjQpLGY9big3KSxsPW4oMSkscD1uKDIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7dmFyIGQsaD1lLmRhdGEsbT1lLmhlYWRlcnMsdj1lLnJlc3BvbnNlVHlwZTtmdW5jdGlvbiB5KCl7ZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShkKSxlLnNpZ25hbCYmZS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGQpfXIuaXNGb3JtRGF0YShoKSYmZGVsZXRlIG1bIkNvbnRlbnQtVHlwZSJdO3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtpZihlLmF1dGgpe3ZhciBiPWUuYXV0aC51c2VybmFtZXx8IiIseD1lLmF1dGgucGFzc3dvcmQ\/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUuYXV0aC5wYXNzd29yZCkpOiIiO20uQXV0aG9yaXphdGlvbj0iQmFzaWMgIitidG9hKGIrIjoiK3gpfXZhciB3PWEoZS5iYXNlVVJMLGUudXJsKTtmdW5jdGlvbiBFKCl7aWYoZyl7dmFyIHI9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBnP3UoZy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbCxpPXtkYXRhOnYmJiJ0ZXh0IiE9PXYmJiJqc29uIiE9PXY\/Zy5yZXNwb25zZTpnLnJlc3BvbnNlVGV4dCxzdGF0dXM6Zy5zdGF0dXMsc3RhdHVzVGV4dDpnLnN0YXR1c1RleHQsaGVhZGVyczpyLGNvbmZpZzplLHJlcXVlc3Q6Z307bygoZnVuY3Rpb24oZSl7dChlKSx5KCl9KSwoZnVuY3Rpb24oZSl7bihlKSx5KCl9KSxpKSxnPW51bGx9fWlmKGcub3BlbihlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHModyxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLCEwKSxnLnRpbWVvdXQ9ZS50aW1lb3V0LCJvbmxvYWRlbmQiaW4gZz9nLm9ubG9hZGVuZD1FOmcub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ZyYmND09PWcucmVhZHlTdGF0ZSYmKDAhPT1nLnN0YXR1c3x8Zy5yZXNwb25zZVVSTCYmMD09PWcucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKSkmJnNldFRpbWVvdXQoRSl9LGcub25hYm9ydD1mdW5jdGlvbigpe2cmJihuKGYoIlJlcXVlc3QgYWJvcnRlZCIsZSwiRUNPTk5BQk9SVEVEIixnKSksZz1udWxsKX0sZy5vbmVycm9yPWZ1bmN0aW9uKCl7bihmKCJOZXR3b3JrIEVycm9yIixlLG51bGwsZykpLGc9bnVsbH0sZy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXt2YXIgdD1lLnRpbWVvdXQ\/InRpbWVvdXQgb2YgIitlLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIscj1lLnRyYW5zaXRpb25hbHx8bC50cmFuc2l0aW9uYWw7ZS50aW1lb3V0RXJyb3JNZXNzYWdlJiYodD1lLnRpbWVvdXRFcnJvck1lc3NhZ2UpLG4oZih0LGUsci5jbGFyaWZ5VGltZW91dEVycm9yPyJFVElNRURPVVQiOiJFQ09OTkFCT1JURUQiLGcpKSxnPW51bGx9LHIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSl7dmFyIFM9KGUud2l0aENyZWRlbnRpYWxzfHxjKHcpKSYmZS54c3JmQ29va2llTmFtZT9pLnJlYWQoZS54c3JmQ29va2llTmFtZSk6dm9pZCAwO1MmJihtW2UueHNyZkhlYWRlck5hbWVdPVMpfSJzZXRSZXF1ZXN0SGVhZGVyImluIGcmJnIuZm9yRWFjaChtLChmdW5jdGlvbihlLHQpe3ZvaWQgMD09PWgmJiJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpP2RlbGV0ZSBtW3RdOmcuc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpLHIuaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwoZy53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscyksdiYmImpzb24iIT09diYmKGcucmVzcG9uc2VUeXBlPWUucmVzcG9uc2VUeXBlKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3MmJmcuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25Eb3dubG9hZFByb2dyZXNzKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzJiZnLnVwbG9hZCYmZy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25VcGxvYWRQcm9ncmVzcyksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKGQ9ZnVuY3Rpb24oZSl7ZyYmKG4oIWV8fGUmJmUudHlwZT9uZXcgcCgiY2FuY2VsZWQiKTplKSxnLmFib3J0KCksZz1udWxsKX0sZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoZCksZS5zaWduYWwmJihlLnNpZ25hbC5hYm9ydGVkP2QoKTplLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZCkpKSxofHwoaD1udWxsKSxnLnNlbmQoaCl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLG8saSl7dmFyIHM9bmV3IEVycm9yKGUpO3JldHVybiByKHMsdCxuLG8saSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4hKCFlfHwhZS5fX0NBTkNFTF9fKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXt9O2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gci5pc1BsYWluT2JqZWN0KGUpJiZyLmlzUGxhaW5PYmplY3QodCk\/ci5tZXJnZShlLHQpOnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKHt9LHQpOnIuaXNBcnJheSh0KT90LnNsaWNlKCk6dH1mdW5jdGlvbiBpKG4pe3JldHVybiByLmlzVW5kZWZpbmVkKHRbbl0pP3IuaXNVbmRlZmluZWQoZVtuXSk\/dm9pZCAwOm8odm9pZCAwLGVbbl0pOm8oZVtuXSx0W25dKX1mdW5jdGlvbiBzKGUpe2lmKCFyLmlzVW5kZWZpbmVkKHRbZV0pKXJldHVybiBvKHZvaWQgMCx0W2VdKX1mdW5jdGlvbiBhKG4pe3JldHVybiByLmlzVW5kZWZpbmVkKHRbbl0pP3IuaXNVbmRlZmluZWQoZVtuXSk\/dm9pZCAwOm8odm9pZCAwLGVbbl0pOm8odm9pZCAwLHRbbl0pfWZ1bmN0aW9uIHUobil7cmV0dXJuIG4gaW4gdD9vKGVbbl0sdFtuXSk6biBpbiBlP28odm9pZCAwLGVbbl0pOnZvaWQgMH12YXIgYz17dXJsOnMsbWV0aG9kOnMsZGF0YTpzLGJhc2VVUkw6YSx0cmFuc2Zvcm1SZXF1ZXN0OmEsdHJhbnNmb3JtUmVzcG9uc2U6YSxwYXJhbXNTZXJpYWxpemVyOmEsdGltZW91dDphLHRpbWVvdXRNZXNzYWdlOmEsd2l0aENyZWRlbnRpYWxzOmEsYWRhcHRlcjphLHJlc3BvbnNlVHlwZTphLHhzcmZDb29raWVOYW1lOmEseHNyZkhlYWRlck5hbWU6YSxvblVwbG9hZFByb2dyZXNzOmEsb25Eb3dubG9hZFByb2dyZXNzOmEsZGVjb21wcmVzczphLG1heENvbnRlbnRMZW5ndGg6YSxtYXhCb2R5TGVuZ3RoOmEsdHJhbnNwb3J0OmEsaHR0cEFnZW50OmEsaHR0cHNBZ2VudDphLGNhbmNlbFRva2VuOmEsc29ja2V0UGF0aDphLHJlc3BvbnNlRW5jb2Rpbmc6YSx2YWxpZGF0ZVN0YXR1czp1fTtyZXR1cm4gci5mb3JFYWNoKE9iamVjdC5rZXlzKGUpLmNvbmNhdChPYmplY3Qua2V5cyh0KSksKGZ1bmN0aW9uKGUpe3ZhciB0PWNbZV18fGksbz10KGUpO3IuaXNVbmRlZmluZWQobykmJnQhPT11fHwobltlXT1vKX0pKSxufX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9e3ZlcnNpb246IjAuMjQuMCJ9fSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oMTIpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDMpLGk9bigxMykscz1uKDkpO3ZhciBhPWZ1bmN0aW9uIGUodCl7dmFyIG49bmV3IGkodCksYT1vKGkucHJvdG90eXBlLnJlcXVlc3Qsbik7cmV0dXJuIHIuZXh0ZW5kKGEsaS5wcm90b3R5cGUsbiksci5leHRlbmQoYSxuKSxhLmNyZWF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gZShzKHQsbikpfSxhfShuKDEpKTthLkF4aW9zPWksYS5DYW5jZWw9bigyKSxhLkNhbmNlbFRva2VuPW4oMjYpLGEuaXNDYW5jZWw9big4KSxhLlZFUlNJT049bigxMCkudmVyc2lvbixhLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9LGEuc3ByZWFkPW4oMjcpLGEuaXNBeGlvc0Vycm9yPW4oMjgpLGUuZXhwb3J0cz1hLGUuZXhwb3J0cy5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oNCksaT1uKDE0KSxzPW4oMTUpLGE9big5KSx1PW4oMjUpLGM9dS52YWxpZGF0b3JzO2Z1bmN0aW9uIGYoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBpLHJlc3BvbnNlOm5ldyBpfX1mLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpeyJzdHJpbmciPT10eXBlb2YgZT8oZT1hcmd1bWVudHNbMV18fHt9KS51cmw9YXJndW1lbnRzWzBdOmU9ZXx8e30sKGU9YSh0aGlzLmRlZmF1bHRzLGUpKS5tZXRob2Q\/ZS5tZXRob2Q9ZS5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD9lLm1ldGhvZD10aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOmUubWV0aG9kPSJnZXQiO3ZhciB0PWUudHJhbnNpdGlvbmFsO3ZvaWQgMCE9PXQmJnUuYXNzZXJ0T3B0aW9ucyh0LHtzaWxlbnRKU09OUGFyc2luZzpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pfSwhMSk7dmFyIG49W10scj0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goKGZ1bmN0aW9uKHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LnJ1bldoZW4mJiExPT09dC5ydW5XaGVuKGUpfHwocj1yJiZ0LnN5bmNocm9ub3VzLG4udW5zaGlmdCh0LmZ1bGZpbGxlZCx0LnJlamVjdGVkKSl9KSk7dmFyIG8saT1bXTtpZih0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpLnB1c2goZS5mdWxmaWxsZWQsZS5yZWplY3RlZCl9KSksIXIpe3ZhciBmPVtzLHZvaWQgMF07Zm9yKEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGYsbiksZj1mLmNvbmNhdChpKSxvPVByb21pc2UucmVzb2x2ZShlKTtmLmxlbmd0aDspbz1vLnRoZW4oZi5zaGlmdCgpLGYuc2hpZnQoKSk7cmV0dXJuIG99Zm9yKHZhciBsPWU7bi5sZW5ndGg7KXt2YXIgcD1uLnNoaWZ0KCksZD1uLnNoaWZ0KCk7dHJ5e2w9cChsKX1jYXRjaChlKXtkKGUpO2JyZWFrfX10cnl7bz1zKGwpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX1mb3IoO2kubGVuZ3RoOylvPW8udGhlbihpLnNoaWZ0KCksaS5zaGlmdCgpKTtyZXR1cm4gb30sZi5wcm90b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKGUpe3JldHVybiBlPWEodGhpcy5kZWZhdWx0cyxlKSxvKGUudXJsLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcikucmVwbGFjZSgvXlw\/LywiIil9LHIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sKGZ1bmN0aW9uKGUpe2YucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMucmVxdWVzdChhKG58fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihufHx7fSkuZGF0YX0pKX19KSksci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpe2YucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGEocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6bn0pKX19KSksZS5leHBvcnRzPWZ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtmdW5jdGlvbiBvKCl7dGhpcy5oYW5kbGVycz1bXX1vLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6ISFuJiZuLnN5bmNocm9ub3VzLHJ1bldoZW46bj9uLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9LG8ucHJvdG90eXBlLmVqZWN0PWZ1bmN0aW9uKGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfSxvLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUpe3IuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLChmdW5jdGlvbih0KXtudWxsIT09dCYmZSh0KX0pKX0sZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTYpLGk9big4KSxzPW4oMSksYT1uKDIpO2Z1bmN0aW9uIHUoZSl7aWYoZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksZS5zaWduYWwmJmUuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IGEoImNhbmNlbGVkIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiB1KGUpLGUuaGVhZGVycz1lLmhlYWRlcnN8fHt9LGUuZGF0YT1vLmNhbGwoZSxlLmRhdGEsZS5oZWFkZXJzLGUudHJhbnNmb3JtUmVxdWVzdCksZS5oZWFkZXJzPXIubWVyZ2UoZS5oZWFkZXJzLmNvbW1vbnx8e30sZS5oZWFkZXJzW2UubWV0aG9kXXx8e30sZS5oZWFkZXJzKSxyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sKGZ1bmN0aW9uKHQpe2RlbGV0ZSBlLmhlYWRlcnNbdF19KSksKGUuYWRhcHRlcnx8cy5hZGFwdGVyKShlKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdShlKSx0LmRhdGE9by5jYWxsKGUsdC5kYXRhLHQuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSx0fSksKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQpfHwodShlKSx0JiZ0LnJlc3BvbnNlJiYodC5yZXNwb25zZS5kYXRhPW8uY2FsbChlLHQucmVzcG9uc2UuZGF0YSx0LnJlc3BvbnNlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdCh0KX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzfHxvO3JldHVybiByLmZvckVhY2gobiwoZnVuY3Rpb24obil7ZT1uLmNhbGwoaSxlLHQpfSkpLGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ci5mb3JFYWNoKGUsKGZ1bmN0aW9uKG4scil7ciE9PXQmJnIudG9VcHBlckNhc2UoKT09PXQudG9VcHBlckNhc2UoKSYmKGVbdF09bixkZWxldGUgZVtyXSl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1uLmNvbmZpZy52YWxpZGF0ZVN0YXR1cztuLnN0YXR1cyYmbyYmIW8obi5zdGF0dXMpP3QocigiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK24uc3RhdHVzLG4uY29uZmlnLG51bGwsbi5yZXF1ZXN0LG4pKTplKG4pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1yLmlzU3RhbmRhcmRCcm93c2VyRW52KCk\/e3dyaXRlOmZ1bmN0aW9uKGUsdCxuLG8saSxzKXt2YXIgYT1bXTthLnB1c2goZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKSxyLmlzTnVtYmVyKG4pJiZhLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShuKS50b0dNVFN0cmluZygpKSxyLmlzU3RyaW5nKG8pJiZhLnB1c2goInBhdGg9IitvKSxyLmlzU3RyaW5nKGkpJiZhLnB1c2goImRvbWFpbj0iK2kpLCEwPT09cyYmYS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9YS5qb2luKCI7ICIpfSxyZWFkOmZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitlKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ\/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZTpmdW5jdGlvbihlKXt0aGlzLndyaXRlKGUsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigyMSksbz1uKDIyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXIodCk\/byhlLHQpOnR9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4vXihbYS16XVthLXpcZFwrXC1cLl0qOik\/XC9cLy9pLnRlc3QoZSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiB0P2UucmVwbGFjZSgvXC8rJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cLysvLCIiKTplfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89WyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9e307cmV0dXJuIGU\/KHIuZm9yRWFjaChlLnNwbGl0KCJcbiIpLChmdW5jdGlvbihlKXtpZihpPWUuaW5kZXhPZigiOiIpLHQ9ci50cmltKGUuc3Vic3RyKDAsaSkpLnRvTG93ZXJDYXNlKCksbj1yLnRyaW0oZS5zdWJzdHIoaSsxKSksdCl7aWYoc1t0XSYmby5pbmRleE9mKHQpPj0wKXJldHVybjtzW3RdPSJzZXQtY29va2llIj09PXQ\/KHNbdF0\/c1t0XTpbXSkuY29uY2F0KFtuXSk6c1t0XT9zW3RdKyIsICIrbjpufX0pKSxzKTpzfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1yLmlzU3RhbmRhcmRCcm93c2VyRW52KCk\/ZnVuY3Rpb24oKXt2YXIgZSx0PS8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7ZnVuY3Rpb24gbyhlKXt2YXIgcj1lO3JldHVybiB0JiYobi5zZXRBdHRyaWJ1dGUoImhyZWYiLHIpLHI9bi5ocmVmKSxuLnNldEF0dHJpYnV0ZSgiaHJlZiIscikse2hyZWY6bi5ocmVmLHByb3RvY29sOm4ucHJvdG9jb2w\/bi5wcm90b2NvbC5yZXBsYWNlKC86JC8sIiIpOiIiLGhvc3Q6bi5ob3N0LHNlYXJjaDpuLnNlYXJjaD9uLnNlYXJjaC5yZXBsYWNlKC9eXD8vLCIiKToiIixoYXNoOm4uaGFzaD9uLmhhc2gucmVwbGFjZSgvXiMvLCIiKToiIixob3N0bmFtZTpuLmhvc3RuYW1lLHBvcnQ6bi5wb3J0LHBhdGhuYW1lOiIvIj09PW4ucGF0aG5hbWUuY2hhckF0KDApP24ucGF0aG5hbWU6Ii8iK24ucGF0aG5hbWV9fXJldHVybiBlPW8od2luZG93LmxvY2F0aW9uLmhyZWYpLGZ1bmN0aW9uKHQpe3ZhciBuPXIuaXNTdHJpbmcodCk\/byh0KTp0O3JldHVybiBuLnByb3RvY29sPT09ZS5wcm90b2NvbCYmbi5ob3N0PT09ZS5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiEwfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDEwKS52ZXJzaW9uLG89e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe29bZV09ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT09ZXx8ImEiKyh0PDE\/Im4gIjoiICIpK2V9fSkpO3ZhciBpPXt9O28udHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIltBeGlvcyB2IityKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrZSsiJyIrdCsobj8iLiAiK246IiIpfXJldHVybiBmdW5jdGlvbihuLHIscyl7aWYoITE9PT1lKXRocm93IG5ldyBFcnJvcihvKHIsIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpKTtyZXR1cm4gdCYmIWlbcl0mJihpW3JdPSEwLGNvbnNvbGUud2FybihvKHIsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksIWV8fGUobixyLHMpfX0sZS5leHBvcnRzPXthc3NlcnRPcHRpb25zOmZ1bmN0aW9uKGUsdCxuKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxvPXIubGVuZ3RoO28tLSA+MDspe3ZhciBpPXJbb10scz10W2ldO2lmKHMpe3ZhciBhPWVbaV0sdT12b2lkIDA9PT1hfHxzKGEsaSxlKTtpZighMCE9PXUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uICIraSsiIG11c3QgYmUgIit1KX1lbHNlIGlmKCEwIT09bil0aHJvdyBFcnJvcigiVW5rbm93biBvcHRpb24gIitpKX19LHZhbGlkYXRvcnM6b319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigyKTtmdW5jdGlvbiBvKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTt2YXIgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3Q9ZX0pKTt2YXIgbj10aGlzO3RoaXMucHJvbWlzZS50aGVuKChmdW5jdGlvbihlKXtpZihuLl9saXN0ZW5lcnMpe3ZhciB0LHI9bi5fbGlzdGVuZXJzLmxlbmd0aDtmb3IodD0wO3Q8cjt0Kyspbi5fbGlzdGVuZXJzW3RdKGUpO24uX2xpc3RlbmVycz1udWxsfX0pKSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihlKXt2YXIgdCxyPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtuLnN1YnNjcmliZShlKSx0PWV9KSkudGhlbihlKTtyZXR1cm4gci5jYW5jZWw9ZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKHQpfSxyfSxlKChmdW5jdGlvbihlKXtuLnJlYXNvbnx8KG4ucmVhc29uPW5ldyByKGUpLHQobi5yZWFzb24pKX0pKX1vLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LG8ucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlKXt0aGlzLnJlYXNvbj9lKHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM\/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX0sby5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbGlzdGVuZXJzKXt2YXIgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTstMSE9PXQmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX19LG8uc291cmNlPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJue3Rva2VuOm5ldyBvKChmdW5jdGlvbih0KXtlPXR9KSksY2FuY2VsOmV9fSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KG51bGwsdCl9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiYhMD09PWUuaXNBeGlvc0Vycm9yfX1dKX0pKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXhpb3MubWluLm1hcDsKLyoqIC9qcy92YW5pbGxhanMvcHJpc3RpbmUubWluLmpzICoqLwohZnVuY3Rpb24oZSxyKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXIoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShyKTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5QcmlzdGluZT1yKCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtlbjp7cmVxdWlyZWQ6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiLGVtYWlsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MiLG51bWJlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIG51bWJlciIsaW50ZWdlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhbiBpbnRlZ2VyIHZhbHVlIix1cmw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCB3ZWJzaXRlIFVSTCIsdGVsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgdGVsZXBob25lIG51bWJlciIsbWF4bGVuZ3RoOiJUaGlzIGZpZWxkcyBsZW5ndGggbXVzdCBiZSA8ICR7MX0iLG1pbmxlbmd0aDoiVGhpcyBmaWVsZHMgbGVuZ3RoIG11c3QgYmUgPiAkezF9IixtaW46Ik1pbmltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgJHsxfSIsbWF4OiJNYXhpbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzICR7MX0iLHBhdHRlcm46IlBsZWFzZSBtYXRjaCB0aGUgcmVxdWVzdGVkIGZvcm1hdCIsZXF1YWxzOiJUaGUgdHdvIGZpZWxkcyBkbyBub3QgbWF0Y2gifX07ZnVuY3Rpb24gcihlKXt2YXIgcj1hcmd1bWVudHM7cmV0dXJuIHRoaXMucmVwbGFjZSgvXCR7KFtee31dKil9L2csKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHJbdF19KSl9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5wcmlzdGluZS5zZWxmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJytlLmdldEF0dHJpYnV0ZSgibmFtZSIpKyciXTpjaGVja2VkJykubGVuZ3RofXZhciBuPXtjbGFzc1RvOiJmb3JtLWdyb3VwIixlcnJvckNsYXNzOiJoYXMtZGFuZ2VyIixzdWNjZXNzQ2xhc3M6Imhhcy1zdWNjZXNzIixlcnJvclRleHRQYXJlbnQ6ImZvcm0tZ3JvdXAiLGVycm9yVGV4dFRhZzoiZGl2IixlcnJvclRleHRDbGFzczoidGV4dC1oZWxwIn0saT1bInJlcXVpcmVkIiwibWluIiwibWF4IiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwicGF0dGVybiJdLHM9L14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOV0rXC4pK1thLXpBLVpdezIsfSkpJC8sYT0vLW1lc3NhZ2UoPzotKFthLXpdezJ9KD86X1tBLVpdezJ9KT8pKT8vLG89ImVuIixsPXt9LHU9ZnVuY3Rpb24oZSxyKXtyLm5hbWU9ZSx2b2lkIDA9PT1yLnByaW9yaXR5JiYoci5wcmlvcml0eT0xKSxsW2VdPXJ9O2Z1bmN0aW9uIGYodCxzLHUpe3ZhciBmPXRoaXM7ZnVuY3Rpb24gYyhlLHIsdCxuKXt2YXIgaT1sW3RdO2lmKGkmJihlLnB1c2goaSksbikpe3ZhciBzPSJwYXR0ZXJuIj09PXQ\/W25dOm4uc3BsaXQoIiwiKTtzLnVuc2hpZnQobnVsbCksclt0XT1zfX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgbj1bXSxpPSEwLHM9MDt0LnZhbGlkYXRvcnNbc107cysrKXt2YXIgYT10LnZhbGlkYXRvcnNbc10sbD10LnBhcmFtc1thLm5hbWVdP3QucGFyYW1zW2EubmFtZV06W107aWYobFswXT10LmlucHV0LnZhbHVlLCFhLmZuLmFwcGx5KHQuaW5wdXQsbCkmJihpPSExLCJmdW5jdGlvbiI9PXR5cGVvZiBhLm1zZz9uLnB1c2goYS5tc2codC5pbnB1dC52YWx1ZSxsKSk6InN0cmluZyI9PXR5cGVvZiBhLm1zZz9uLnB1c2goci5hcHBseShhLm1zZyxsKSk6YS5tc2c9PT1PYmplY3QoYS5tc2cpJiZhLm1zZ1tvXT9uLnB1c2goci5hcHBseShhLm1zZ1tvXSxsKSk6dC5tZXNzYWdlc1tvXSYmdC5tZXNzYWdlc1tvXVthLm5hbWVdP24ucHVzaChyLmFwcGx5KHQubWVzc2FnZXNbb11bYS5uYW1lXSxsKSk6ZVtvXSYmZVtvXVthLm5hbWVdJiZuLnB1c2goci5hcHBseShlW29dW2EubmFtZV0sbCkpLCEwPT09YS5oYWx0KSlicmVha31yZXR1cm4gdC5lcnJvcnM9bixpfWZ1bmN0aW9uIG0oZSl7aWYoZS5lcnJvckVsZW1lbnRzKXJldHVybiBlLmVycm9yRWxlbWVudHM7dmFyIHI9ZnVuY3Rpb24oZSxyKXtmb3IoOyhlPWUucGFyZW50RWxlbWVudCkmJiFlLmNsYXNzTGlzdC5jb250YWlucyhyKTspO3JldHVybiBlfShlLmlucHV0LGYuY29uZmlnLmNsYXNzVG8pLHQ9bnVsbCxuPW51bGw7cmV0dXJuKHQ9Zi5jb25maWcuY2xhc3NUbz09PWYuY29uZmlnLmVycm9yVGV4dFBhcmVudD9yOnIucXVlcnlTZWxlY3RvcigiLiIrZi5jb25maWcuZXJyb3JUZXh0UGFyZW50KSkmJigobj10LnF1ZXJ5U2VsZWN0b3IoIi5wcmlzdGluZS1lcnJvciIpKXx8KChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZi5jb25maWcuZXJyb3JUZXh0VGFnKSkuY2xhc3NOYW1lPSJwcmlzdGluZS1lcnJvciAiK2YuY29uZmlnLmVycm9yVGV4dENsYXNzLHQuYXBwZW5kQ2hpbGQobiksbi5wcmlzdGluZURpc3BsYXk9bi5zdHlsZS5kaXNwbGF5KSksZS5lcnJvckVsZW1lbnRzPVtyLG5dfWZ1bmN0aW9uIGQoZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3QmJih0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSx0LmNsYXNzTGlzdC5hZGQoZi5jb25maWcuZXJyb3JDbGFzcykpLG4mJihuLmlubmVySFRNTD1lLmVycm9ycy5qb2luKCI8YnIvPiIpLG4uc3R5bGUuZGlzcGxheT1uLnByaXN0aW5lRGlzcGxheXx8IiIpfWZ1bmN0aW9uIGgoZSl7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3JldHVybiB0JiYodC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpLHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpKSxuJiYobi5pbm5lckhUTUw9IiIsbi5zdHlsZS5kaXNwbGF5PSJub25lIikscn0oZSlbMF07ciYmci5jbGFzc0xpc3QuYWRkKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyl9cmV0dXJuIGZ1bmN0aW9uKGUscix0KXtlLnNldEF0dHJpYnV0ZSgibm92YWxpZGF0ZSIsInRydWUiKSxmLmZvcm09ZSxmLmNvbmZpZz1mdW5jdGlvbihlLHIpe2Zvcih2YXIgdCBpbiByKXQgaW4gZXx8KGVbdF09clt0XSk7cmV0dXJuIGV9KHJ8fHt9LG4pLGYubGl2ZT0hKCExPT09dCksZi5maWVsZHM9QXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0Om5vdChbdHlwZV49aGlkZGVuXSk6bm90KFt0eXBlXj1zdWJtaXRdKSwgc2VsZWN0LCB0ZXh0YXJlYSIpKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHI9W10sdD17fSxuPXt9O3JldHVybltdLmZvckVhY2guY2FsbChlLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKGUpe2lmKC9eZGF0YS1wcmlzdGluZS0vLnRlc3QoZS5uYW1lKSl7dmFyIHM9ZS5uYW1lLnN1YnN0cigxNCksbz1zLm1hdGNoKGEpO2lmKG51bGwhPT1vKXt2YXIgbD12b2lkIDA9PT1vWzFdPyJlbiI6b1sxXTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eShsKXx8KG5bbF09e30pLHZvaWQobltsXVtzLnNsaWNlKDAscy5sZW5ndGgtb1swXS5sZW5ndGgpXT1lLnZhbHVlKX0idHlwZSI9PT1zJiYocz1lLnZhbHVlKSxjKHIsdCxzLGUudmFsdWUpfWVsc2V+aS5pbmRleE9mKGUubmFtZSk\/YyhyLHQsZS5uYW1lLGUudmFsdWUpOiJ0eXBlIj09PWUubmFtZSYmYyhyLHQsZS52YWx1ZSl9KSksci5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSksZi5saXZlJiZlLmFkZEV2ZW50TGlzdGVuZXIoflsicmFkaW8iLCJjaGVja2JveCJdLmluZGV4T2YoZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSk\/ImNoYW5nZSI6ImlucHV0IixmdW5jdGlvbihlKXtmLnZhbGlkYXRlKGUudGFyZ2V0KX0uYmluZChmKSksZS5wcmlzdGluZT17aW5wdXQ6ZSx2YWxpZGF0b3JzOnIscGFyYW1zOnQsbWVzc2FnZXM6bixzZWxmOmZ9fS5iaW5kKGYpKX0odCxzLHUpLGYudmFsaWRhdGU9ZnVuY3Rpb24oZSxyKXtyPWUmJiEwPT09cnx8ITA9PT1lO3ZhciB0PWYuZmllbGRzOyEwIT09ZSYmITEhPT1lJiYoZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P3Q9W2UucHJpc3RpbmVdOihlIGluc3RhbmNlb2YgTm9kZUxpc3R8fGUgaW5zdGFuY2VvZih3aW5kb3cuJHx8QXJyYXkpfHxlIGluc3RhbmNlb2YgQXJyYXkpJiYodD1BcnJheS5mcm9tKGUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpc3RpbmV9KSkpKTtmb3IodmFyIG49ITAsaT0wO3RbaV07aSsrKXt2YXIgcz10W2ldO3Aocyk\/IXImJmgocyk6KG49ITEsIXImJmQocykpfXJldHVybiBufSxmLmdldEVycm9ycz1mdW5jdGlvbihlKXtpZighZSl7Zm9yKHZhciByPVtdLHQ9MDt0PGYuZmllbGRzLmxlbmd0aDt0Kyspe3ZhciBuPWYuZmllbGRzW3RdO24uZXJyb3JzLmxlbmd0aCYmci5wdXNoKHtpbnB1dDpuLmlucHV0LGVycm9yczpuLmVycm9yc30pfXJldHVybiByfXJldHVybiBlLnRhZ05hbWUmJiJzZWxlY3QiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk\/ZS5wcmlzdGluZS5lcnJvcnM6ZS5sZW5ndGg\/ZVswXS5wcmlzdGluZS5lcnJvcnM6ZS5wcmlzdGluZS5lcnJvcnN9LGYuYWRkVmFsaWRhdG9yPWZ1bmN0aW9uKGUscix0LG4saSl7ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50PyhlLnByaXN0aW5lLnZhbGlkYXRvcnMucHVzaCh7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pLGUucHJpc3RpbmUudmFsaWRhdG9ycy5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSkpOmNvbnNvbGUud2FybigiVGhlIHBhcmFtZXRlciBlbGVtIG11c3QgYmUgYSBkb20gZWxlbWVudCIpfSxmLmFkZEVycm9yPWZ1bmN0aW9uKGUscil7KGU9ZS5sZW5ndGg\/ZVswXTplKS5wcmlzdGluZS5lcnJvcnMucHVzaChyKSxkKGUucHJpc3RpbmUpfSxmLnJlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7Zi5maWVsZHNbZV07ZSsrKWYuZmllbGRzW2VdLmVycm9yRWxlbWVudHM9bnVsbDtBcnJheS5mcm9tKGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIucHJpc3RpbmUtZXJyb3IiKSkubWFwKChmdW5jdGlvbihlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSksQXJyYXkuZnJvbShmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLiIrZi5jb25maWcuY2xhc3NUbykpLm1hcCgoZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyksZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpfSkpfSxmLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmLnJlc2V0KCksZi5maWVsZHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZGVsZXRlIGUuaW5wdXQucHJpc3RpbmV9KSksZi5maWVsZHM9W119LGYuc2V0R2xvYmFsQ29uZmlnPWZ1bmN0aW9uKGUpe249ZX0sZn1yZXR1cm4gdSgidGV4dCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiEwfSxwcmlvcml0eTowfSksdSgicmVxdWlyZWQiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4icmFkaW8iPT09dGhpcy50eXBlfHwiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk6dm9pZCAwIT09ZSYmIiIhPT1lfSxwcmlvcml0eTo5OSxoYWx0OiEwfSksdSgiZW1haWwiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8cy50ZXN0KGUpfX0pLHUoIm51bWJlciIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHwhaXNOYU4ocGFyc2VGbG9hdChlKSl9LHByaW9yaXR5OjJ9KSx1KCJpbnRlZ2VyIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fC9eXGQrJC8udGVzdChlKX19KSx1KCJtaW5sZW5ndGgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHxlLmxlbmd0aD49cGFyc2VJbnQocil9fSksdSgibWF4bGVuZ3RoIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8ZS5sZW5ndGg8PXBhcnNlSW50KHIpfX0pLHUoIm1pbiIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk+PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk+PXBhcnNlRmxvYXQocikpfX0pLHUoIm1heCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk8PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk8PXBhcnNlRmxvYXQocikpfX0pLHUoInBhdHRlcm4iLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PXIubWF0Y2gobmV3IFJlZ0V4cCgiXi8oLio\/KS8oW2dpbXldKikkIikpO3JldHVybiFlfHxuZXcgUmVnRXhwKHRbMV0sdFsyXSkudGVzdChlKX19KSx1KCJlcXVhbHMiLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocik7cmV0dXJuIHQmJighZSYmIXQudmFsdWV8fHQudmFsdWU9PT1lKX19KSxmLmFkZFZhbGlkYXRvcj1mdW5jdGlvbihlLHIsdCxuLGkpe3UoZSx7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pfSxmLmFkZE1lc3NhZ2VzPWZ1bmN0aW9uKHIsdCl7dmFyIG49ZS5oYXNPd25Qcm9wZXJ0eShyKT9lW3JdOmVbcl09e307T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtuW2VdPXRbZV19KSl9LGYuc2V0TG9jYWxlPWZ1bmN0aW9uKGUpe289ZX0sZn0pKTsKCi8vRXh0ZW5zaW9uCi8vIEEgdmFsaWRhdG9yIHRvIGNoZWNrIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UKLy8gVGhlIGdsb2JhbCB2YWxpZGF0b3IgbXVzdCBiZSBhZGRlZCBiZWZvcmUgY3JlYXRpbmcgdGhlIHByaXN0aW5lIGluc3RhbmNlCgovLyBQcmlzdGluZS5hZGRWYWxpZGF0b3IoInBob25lIiwgZnVuY3Rpb24ocGhvbmUpIHsKCi8vIAl2YXIgVmFsaWRBcmVhQ29kZXMgPSBbCi8vIAkJNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsCi8vIAkJNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0MywKLy8gCQk2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDIKLy8gCV07CgovLyAJcGhvbmUgPSBwaG9uZS5yZXBsYWNlKC9bXjAtOV0rL2dpLCAnJyk7Ci8vIAlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJyAmJiB0aGlzLmhhc0NsYXNzKCdyZXF1aXJlZCcpKSB7Ci8vIAkJZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PXRydWU7Ci8vIAl9Ci8vIAlpZiggcGhvbmVbMF0gPT0gJzEnICl7Ci8vIAkJcGhvbmUgPSBwaG9uZS5zdWJzdHJpbmcoIDEgKTsKLy8gCX0KCi8vIAl2YXIgYXJlYUNvZGUgPSBwYXJzZUludCggcGhvbmUuc3Vic3RyaW5nKDAsMykgKTsKCi8vIAlheGlvcy5nZXQoJ2h0dHBzOi8vYXV0b2F1YmFpbmUuY29tL3NlcnZpY2VzL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwJyx7Ci8vIAkJdGltZW91dDoyMDAwLAovLyAJCWRhdGFUeXBlOiAnanNvbicsCi8vIAkJcGFyYW1zOiB7cGhvbmU6IHBob25lfSwKLy8gCQlyZXNwb25zZVR5cGU6ICdqc29uJwovLyAJfSkKLy8gCS50aGVuKGZ1bmN0aW9uKHJlcykgewoKLy8gCQlpZiAodHlwZW9mIHJlcy5pc09rICE9PSAndW5kZWZpbmVkJyl7Ci8vIAkJCWlmIChyZXMucGhvbmVOdW1iZXJJc1ZhbGlkID09PSBmYWxzZSkgewovLyAJCQkJLy9jb25zb2xlLmxvZygncGhvbmUgJytwaG9uZSsnIGlzIGludmFsaWQnKTsKLy8gCQkJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnICYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSApIHsKLy8gCQkJCQllbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKzsKLy8gCQkJCX0KLy8gCQkJCXJldHVybiB0cnVlOwovLyAJCQl9Ci8vIAkJCX0gZWxzZSB7Ci8vIAkJCS8vdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQkJaWYoIHR5cGVvZiBWYWxpZEFyZWFDb2Rlcy5pbmRleE9mICE9ICd1bmRlZmluZWQnICYmCVZhbGlkQXJlYUNvZGVzLmluZGV4T2YoIGFyZWFDb2RlICkgPT0gLTEgKXsKLy8gCQkJCXJldHVybiBmYWxzZTsKLy8gCQkJfQovLyAJCX0KCi8vIAl9KQovLyAJLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Ci8vIAkJLy8gdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQlpZiggdHlwZW9mIFZhbGlkQXJlYUNvZGVzLmluZGV4T2YgIT0gJ3VuZGVmaW5lZCcgJiYJVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiggYXJlYUNvZGUgKSA9PSAtMSApewovLyAJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnCSYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSkgZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKys7Ci8vIAkJCXJldHVybiBmYWxzZTsKLy8gCQl9Ci8vIAkJLy9jb25zb2xlLmxvZygidmFsaWRpdHkgdmFsaWRhdGVQaG9uZU51bWJlciBuZXR3b3JrIGVycm9yIik7CgovLyAJCXJldHVybiBmYWxzZTsKLy8gCX0pOwoKCgovLyB9LCAiVGhlIHZhbHVlICgkezB9KSBtdXN0IGJlIGJldHdlZW4gJHsxfSBhbmQgJHsyfSIsIDUsIGZhbHNlKTsKLyoqIC9qcy92YW5pbGxhanMvZmxhdHBpY2tyLm1pbi5qcyAqKi8KLyogZmxhdHBpY2tyIHY0LjYuOSwsIEBsaWNlbnNlIE1JVCAqLwohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5mbGF0cGlja3I9dCgpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1mdW5jdGlvbigpe3JldHVybihlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gdCgpe2Zvcih2YXIgZT0wLHQ9MCxuPWFyZ3VtZW50cy5sZW5ndGg7dDxuO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO3ZhciBhPUFycmF5KGUpLGk9MDtmb3IodD0wO3Q8bjt0KyspZm9yKHZhciBvPWFyZ3VtZW50c1t0XSxyPTAsbD1vLmxlbmd0aDtyPGw7cisrLGkrKylhW2ldPW9bcl07cmV0dXJuIGF9dmFyIG49WyJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJvbkRheUNyZWF0ZSIsIm9uRGVzdHJveSIsIm9uS2V5RG93biIsIm9uTW9udGhDaGFuZ2UiLCJvbk9wZW4iLCJvblBhcnNlQ29uZmlnIiwib25SZWFkeSIsIm9uVmFsdWVVcGRhdGUiLCJvblllYXJDaGFuZ2UiLCJvblByZUNhbGVuZGFyUG9zaXRpb24iXSxhPXtfZGlzYWJsZTpbXSxhbGxvd0lucHV0OiExLGFsbG93SW52YWxpZFByZWxvYWQ6ITEsYWx0Rm9ybWF0OiJGIGosIFkiLGFsdElucHV0OiExLGFsdElucHV0Q2xhc3M6ImZvcm0tY29udHJvbCBpbnB1dCIsYW5pbWF0ZToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmLTE9PT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIiksYXJpYURhdGVGb3JtYXQ6IkYgaiwgWSIsYXV0b0ZpbGxEZWZhdWx0VGltZTohMCxjbGlja09wZW5zOiEwLGNsb3NlT25TZWxlY3Q6ITAsY29uanVuY3Rpb246IiwgIixkYXRlRm9ybWF0OiJZLW0tZCIsZGVmYXVsdEhvdXI6MTIsZGVmYXVsdE1pbnV0ZTowLGRlZmF1bHRTZWNvbmRzOjAsZGlzYWJsZTpbXSxkaXNhYmxlTW9iaWxlOiExLGVuYWJsZVNlY29uZHM6ITEsZW5hYmxlVGltZTohMSxlcnJvckhhbmRsZXI6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4oZSl9LGdldFdlZWs6ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IERhdGUoZS5nZXRUaW1lKCkpO3Quc2V0SG91cnMoMCwwLDAsMCksdC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzMtKHQuZ2V0RGF5KCkrNiklNyk7dmFyIG49bmV3IERhdGUodC5nZXRGdWxsWWVhcigpLDAsNCk7cmV0dXJuIDErTWF0aC5yb3VuZCgoKHQuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS84NjRlNS0zKyhuLmdldERheSgpKzYpJTcpLzcpfSxob3VySW5jcmVtZW50OjEsaWdub3JlZEZvY3VzRWxlbWVudHM6W10saW5saW5lOiExLGxvY2FsZToiZGVmYXVsdCIsbWludXRlSW5jcmVtZW50OjUsbW9kZToic2luZ2xlIixtb250aFNlbGVjdG9yVHlwZToiZHJvcGRvd24iLG5leHRBcnJvdzoiPHN2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAxNyAxNyc+PGc+PC9nPjxwYXRoIGQ9J00xMy4yMDcgOC40NzJsLTcuODU0IDcuODU0LTAuNzA3LTAuNzA3IDcuMTQ2LTcuMTQ2LTcuMTQ2LTcuMTQ4IDAuNzA3LTAuNzA3IDcuODU0IDcuODU0eicgLz48L3N2Zz4iLG5vQ2FsZW5kYXI6ITEsbm93Om5ldyBEYXRlLG9uQ2hhbmdlOltdLG9uQ2xvc2U6W10sb25EYXlDcmVhdGU6W10sb25EZXN0cm95OltdLG9uS2V5RG93bjpbXSxvbk1vbnRoQ2hhbmdlOltdLG9uT3BlbjpbXSxvblBhcnNlQ29uZmlnOltdLG9uUmVhZHk6W10sb25WYWx1ZVVwZGF0ZTpbXSxvblllYXJDaGFuZ2U6W10sb25QcmVDYWxlbmRhclBvc2l0aW9uOltdLHBsdWdpbnM6W10scG9zaXRpb246ImF1dG8iLHBvc2l0aW9uRWxlbWVudDp2b2lkIDAscHJldkFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTUuMjA3IDguNDcxbDcuMTQ2IDcuMTQ3LTAuNzA3IDAuNzA3LTcuODUzLTcuODU0IDcuODU0LTcuODUzIDAuNzA3IDAuNzA3LTcuMTQ3IDcuMTQ2eicgLz48L3N2Zz4iLHNob3J0aGFuZEN1cnJlbnRNb250aDohMSxzaG93TW9udGhzOjEsc3RhdGljOiExLHRpbWVfMjRocjohMSx3ZWVrTnVtYmVyczohMSx3cmFwOiExfSxpPXt3ZWVrZGF5czp7c2hvcnRoYW5kOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbG9uZ2hhbmQ6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSxtb250aHM6e3Nob3J0aGFuZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGxvbmdoYW5kOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sZGF5c0luTW9udGg6WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxmaXJzdERheU9mV2VlazowLG9yZGluYWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZSUxMDA7aWYodD4zJiZ0PDIxKXJldHVybiJ0aCI7c3dpdGNoKHQlMTApe2Nhc2UgMTpyZXR1cm4ic3QiO2Nhc2UgMjpyZXR1cm4ibmQiO2Nhc2UgMzpyZXR1cm4icmQiO2RlZmF1bHQ6cmV0dXJuInRoIn19LHJhbmdlU2VwYXJhdG9yOiIgdG8gIix3ZWVrQWJicmV2aWF0aW9uOiJXayIsc2Nyb2xsVGl0bGU6IlNjcm9sbCB0byBpbmNyZW1lbnQiLHRvZ2dsZVRpdGxlOiJDbGljayB0byB0b2dnbGUiLGFtUE06WyJBTSIsIlBNIl0seWVhckFyaWFMYWJlbDoiWWVhciIsbW9udGhBcmlhTGFiZWw6Ik1vbnRoIixob3VyQXJpYUxhYmVsOiJIb3VyIixtaW51dGVBcmlhTGFiZWw6Ik1pbnV0ZSIsdGltZV8yNGhyOiExfSxvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PTIpLCgiMDAwIitlKS5zbGljZSgtMSp0KX0scj1mdW5jdGlvbihlKXtyZXR1cm4hMD09PWU\/MTowfTtmdW5jdGlvbiBsKGUsdCl7dmFyIG47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcztjbGVhclRpbWVvdXQobiksbj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KGEsYXJndW1lbnRzKX0pLHQpfX12YXIgYz1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEFycmF5P2U6W2VdfTtmdW5jdGlvbiBkKGUsdCxuKXtpZighMD09PW4pcmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KTtlLmNsYXNzTGlzdC5yZW1vdmUodCl9ZnVuY3Rpb24gcyhlLHQsbil7dmFyIGE9d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIHQ9dHx8IiIsbj1ufHwiIixhLmNsYXNzTmFtZT10LHZvaWQgMCE9PW4mJihhLnRleHRDb250ZW50PW4pLGF9ZnVuY3Rpb24gdShlKXtmb3IoO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGYoZSx0KXtyZXR1cm4gdChlKT9lOmUucGFyZW50Tm9kZT9mKGUucGFyZW50Tm9kZSx0KTp2b2lkIDB9ZnVuY3Rpb24gbShlLHQpe3ZhciBuPXMoImRpdiIsIm51bUlucHV0V3JhcHBlciIpLGE9cygiaW5wdXQiLCJudW1JbnB1dCAiK2UpLGk9cygic3BhbiIsImFycm93VXAiKSxvPXMoInNwYW4iLCJhcnJvd0Rvd24iKTtpZigtMT09PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSA5LjAiKT9hLnR5cGU9Im51bWJlciI6KGEudHlwZT0idGV4dCIsYS5wYXR0ZXJuPSJcXGQqIiksdm9pZCAwIT09dClmb3IodmFyIHIgaW4gdClhLnNldEF0dHJpYnV0ZShyLHRbcl0pO3JldHVybiBuLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQoaSksbi5hcHBlbmRDaGlsZChvKSxufWZ1bmN0aW9uIGcoZSl7dHJ5e3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbXBvc2VkUGF0aD9lLmNvbXBvc2VkUGF0aCgpWzBdOmUudGFyZ2V0fWNhdGNoKHQpe3JldHVybiBlLnRhcmdldH19dmFyIHA9ZnVuY3Rpb24oKXt9LGg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLm1vbnRoc1t0PyJzaG9ydGhhbmQiOiJsb25naGFuZCJdW2VdfSx2PXtEOnAsRjpmdW5jdGlvbihlLHQsbil7ZS5zZXRNb250aChuLm1vbnRocy5sb25naGFuZC5pbmRleE9mKHQpKX0sRzpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEg6ZnVuY3Rpb24oZSx0KXtlLnNldEhvdXJzKHBhcnNlRmxvYXQodCkpfSxKOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxLOmZ1bmN0aW9uKGUsdCxuKXtlLnNldEhvdXJzKGUuZ2V0SG91cnMoKSUxMisxMipyKG5ldyBSZWdFeHAobi5hbVBNWzFdLCJpIikudGVzdCh0KSkpfSxNOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLnNob3J0aGFuZC5pbmRleE9mKHQpKX0sUzpmdW5jdGlvbihlLHQpe2Uuc2V0U2Vjb25kcyhwYXJzZUZsb2F0KHQpKX0sVTpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZSgxZTMqcGFyc2VGbG9hdCh0KSl9LFc6ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPXBhcnNlSW50KHQpLGk9bmV3IERhdGUoZS5nZXRGdWxsWWVhcigpLDAsMis3KihhLTEpLDAsMCwwLDApO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktaS5nZXREYXkoKStuLmZpcnN0RGF5T2ZXZWVrKSxpfSxZOmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcihwYXJzZUZsb2F0KHQpKX0sWjpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZSh0KX0sZDpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0saDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LGk6ZnVuY3Rpb24oZSx0KXtlLnNldE1pbnV0ZXMocGFyc2VGbG9hdCh0KSl9LGo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LGw6cCxtOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChwYXJzZUZsb2F0KHQpLTEpfSxuOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChwYXJzZUZsb2F0KHQpLTEpfSxzOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSx1OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHBhcnNlRmxvYXQodCkpfSx3OnAseTpmdW5jdGlvbihlLHQpe2Uuc2V0RnVsbFllYXIoMmUzK3BhcnNlRmxvYXQodCkpfX0sRD17RDoiKFxcdyspIixGOiIoXFx3KykiLEc6IihcXGRcXGR8XFxkKSIsSDoiKFxcZFxcZHxcXGQpIixKOiIoXFxkXFxkfFxcZClcXHcrIixLOiIiLE06IihcXHcrKSIsUzoiKFxcZFxcZHxcXGQpIixVOiIoLispIixXOiIoXFxkXFxkfFxcZCkiLFk6IihcXGR7NH0pIixaOiIoLispIixkOiIoXFxkXFxkfFxcZCkiLGg6IihcXGRcXGR8XFxkKSIsaToiKFxcZFxcZHxcXGQpIixqOiIoXFxkXFxkfFxcZCkiLGw6IihcXHcrKSIsbToiKFxcZFxcZHxcXGQpIixuOiIoXFxkXFxkfFxcZCkiLHM6IihcXGRcXGR8XFxkKSIsdToiKC4rKSIsdzoiKFxcZFxcZHxcXGQpIix5OiIoXFxkezJ9KSJ9LHc9e1o6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9JU09TdHJpbmcoKX0sRDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQud2Vla2RheXMuc2hvcnRoYW5kW3cudyhlLHQsbildfSxGOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaCh3Lm4oZSx0LG4pLTEsITEsdCl9LEc6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBvKHcuaChlLHQsbikpfSxIOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0SG91cnMoKSl9LEo6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwIT09dC5vcmRpbmFsP2UuZ2V0RGF0ZSgpK3Qub3JkaW5hbChlLmdldERhdGUoKSk6ZS5nZXREYXRlKCl9LEs6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5hbVBNW3IoZS5nZXRIb3VycygpPjExKV19LE06ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaChlLmdldE1vbnRoKCksITAsdCl9LFM6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRTZWNvbmRzKCkpfSxVOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFRpbWUoKS8xZTN9LFc6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLmdldFdlZWsoZSl9LFk6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRGdWxsWWVhcigpLDQpfSxkOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0RGF0ZSgpKX0saDpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRIb3VycygpJTEyP2UuZ2V0SG91cnMoKSUxMjoxMn0saTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1pbnV0ZXMoKSl9LGo6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF0ZSgpfSxsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQud2Vla2RheXMubG9uZ2hhbmRbZS5nZXREYXkoKV19LG06ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRNb250aCgpKzEpfSxuOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldE1vbnRoKCkrMX0sczpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRTZWNvbmRzKCl9LHU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpfSx3OmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldERheSgpfSx5OmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZS5nZXRGdWxsWWVhcigpKS5zdWJzdHJpbmcoMil9fSxiPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29uZmlnLG49dm9pZCAwPT09dD9hOnQsbz1lLmwxMG4scj12b2lkIDA9PT1vP2k6byxsPWUuaXNNb2JpbGUsYz12b2lkIDAhPT1sJiZsO3JldHVybiBmdW5jdGlvbihlLHQsYSl7dmFyIGk9YXx8cjtyZXR1cm4gdm9pZCAwPT09bi5mb3JtYXREYXRlfHxjP3Quc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24odCxhLG8pe3JldHVybiB3W3RdJiYiXFwiIT09b1thLTFdP3dbdF0oZSxpLG4pOiJcXCIhPT10P3Q6IiJ9KSkuam9pbigiIik6bi5mb3JtYXREYXRlKGUsdCxpKX19LEM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvO3JldHVybiBmdW5jdGlvbihlLHQsaSxvKXtpZigwPT09ZXx8ZSl7dmFyIGwsYz1vfHxyLGQ9ZTtpZihlIGluc3RhbmNlb2YgRGF0ZSlsPW5ldyBEYXRlKGUuZ2V0VGltZSgpKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgZSYmdm9pZCAwIT09ZS50b0ZpeGVkKWw9bmV3IERhdGUoZSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBzPXR8fChufHxhKS5kYXRlRm9ybWF0LHU9U3RyaW5nKGUpLnRyaW0oKTtpZigidG9kYXkiPT09dSlsPW5ldyBEYXRlLGk9ITA7ZWxzZSBpZigvWiQvLnRlc3QodSl8fC9HTVQkLy50ZXN0KHUpKWw9bmV3IERhdGUoZSk7ZWxzZSBpZihuJiZuLnBhcnNlRGF0ZSlsPW4ucGFyc2VEYXRlKGUscyk7ZWxzZXtsPW4mJm4ubm9DYWxlbmRhcj9uZXcgRGF0ZSgobmV3IERhdGUpLnNldEhvdXJzKDAsMCwwLDApKTpuZXcgRGF0ZSgobmV3IERhdGUpLmdldEZ1bGxZZWFyKCksMCwxLDAsMCwwLDApO2Zvcih2YXIgZj12b2lkIDAsbT1bXSxnPTAscD0wLGg9IiI7ZzxzLmxlbmd0aDtnKyspe3ZhciB3PXNbZ10sYj0iXFwiPT09dyxDPSJcXCI9PT1zW2ctMV18fGI7aWYoRFt3XSYmIUMpe2grPURbd107dmFyIE09bmV3IFJlZ0V4cChoKS5leGVjKGUpO00mJihmPSEwKSYmbVsiWSIhPT13PyJwdXNoIjoidW5zaGlmdCJdKHtmbjp2W3ddLHZhbDpNWysrcF19KX1lbHNlIGJ8fChoKz0iLiIpO20uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5mbixuPWUudmFsO3JldHVybiBsPXQobCxuLGMpfHxsfSkpfWw9Zj9sOnZvaWQgMH19aWYobCBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihsLmdldFRpbWUoKSkpcmV0dXJuITA9PT1pJiZsLnNldEhvdXJzKDAsMCwwLDApLGw7bi5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcHJvdmlkZWQ6ICIrZCkpfX19O2Z1bmN0aW9uIE0oZSx0LG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksITEhPT1uP25ldyBEYXRlKGUuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKS1uZXcgRGF0ZSh0LmdldFRpbWUoKSkuc2V0SG91cnMoMCwwLDAsMCk6ZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9dmFyIHk9ODY0ZTU7ZnVuY3Rpb24geChlKXt2YXIgdD1lLmRlZmF1bHRIb3VyLG49ZS5kZWZhdWx0TWludXRlLGE9ZS5kZWZhdWx0U2Vjb25kcztpZih2b2lkIDAhPT1lLm1pbkRhdGUpe3ZhciBpPWUubWluRGF0ZS5nZXRIb3VycygpLG89ZS5taW5EYXRlLmdldE1pbnV0ZXMoKSxyPWUubWluRGF0ZS5nZXRTZWNvbmRzKCk7dDxpJiYodD1pKSx0PT09aSYmbjxvJiYobj1vKSx0PT09aSYmbj09PW8mJmE8ciYmKGE9ZS5taW5EYXRlLmdldFNlY29uZHMoKSl9aWYodm9pZCAwIT09ZS5tYXhEYXRlKXt2YXIgbD1lLm1heERhdGUuZ2V0SG91cnMoKSxjPWUubWF4RGF0ZS5nZXRNaW51dGVzKCk7KHQ9TWF0aC5taW4odCxsKSk9PT1sJiYobj1NYXRoLm1pbihjLG4pKSx0PT09bCYmbj09PWMmJihhPWUubWF4RGF0ZS5nZXRTZWNvbmRzKCkpfXJldHVybntob3Vyczp0LG1pbnV0ZXM6bixzZWNvbmRzOmF9fSJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuYXNzaWduJiYoT2JqZWN0LmFzc2lnbj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtpZighZSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO2Zvcih2YXIgYT1mdW5jdGlvbih0KXt0JiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gZVtuXT10W25dfSkpfSxpPTAsbz10O2k8by5sZW5ndGg7aSsrKXt2YXIgcj1vW2ldO2Eocil9cmV0dXJuIGV9KTtmdW5jdGlvbiBFKHAsdil7dmFyIHc9e2NvbmZpZzplKGUoe30sYSksVC5kZWZhdWx0Q29uZmlnKSxsMTBuOml9O2Z1bmN0aW9uIEUoZSl7cmV0dXJuIGUuYmluZCh3KX1mdW5jdGlvbiBrKCl7dmFyIGU9dy5jb25maWc7ITE9PT1lLndlZWtOdW1iZXJzJiYxPT09ZS5zaG93TW9udGhzfHwhMCE9PWUubm9DYWxlbmRhciYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiYody5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siKSx2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3ZhciB0PSh3LmRheXMub2Zmc2V0V2lkdGgrMSkqZS5zaG93TW9udGhzO3cuZGF5c0NvbnRhaW5lci5zdHlsZS53aWR0aD10KyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS53aWR0aD10Kyh2b2lkIDAhPT13LndlZWtXcmFwcGVyP3cud2Vla1dyYXBwZXIub2Zmc2V0V2lkdGg6MCkrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ2aXNpYmlsaXR5Iiksdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiZGlzcGxheSIpfX0pKX1mdW5jdGlvbiBJKGUpe2lmKDA9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoKXt2YXIgdD12b2lkIDA9PT13LmNvbmZpZy5taW5EYXRlfHxNKG5ldyBEYXRlLHcuY29uZmlnLm1pbkRhdGUpPj0wP25ldyBEYXRlOm5ldyBEYXRlKHcuY29uZmlnLm1pbkRhdGUuZ2V0VGltZSgpKSxuPXgody5jb25maWcpO3Quc2V0SG91cnMobi5ob3VycyxuLm1pbnV0ZXMsbi5zZWNvbmRzLHQuZ2V0TWlsbGlzZWNvbmRzKCkpLHcuc2VsZWN0ZWREYXRlcz1bdF0sdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dH12b2lkIDAhPT1lJiYiYmx1ciIhPT1lLnR5cGUmJmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD0ia2V5ZG93biI9PT1lLnR5cGUsbj1nKGUpLGE9bjt2b2lkIDAhPT13LmFtUE0mJm49PT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcih3LmFtUE0udGV4dENvbnRlbnQ9PT13LmwxMG4uYW1QTVswXSldKTt2YXIgaT1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJtaW4iKSksbD1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJtYXgiKSksYz1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJzdGVwIikpLGQ9cGFyc2VJbnQoYS52YWx1ZSwxMCkscz1lLmRlbHRhfHwodD8zOD09PWUud2hpY2g\/MTotMTowKSx1PWQrYypzO2lmKHZvaWQgMCE9PWEudmFsdWUmJjI9PT1hLnZhbHVlLmxlbmd0aCl7dmFyIGY9YT09PXcuaG91ckVsZW1lbnQsbT1hPT09dy5taW51dGVFbGVtZW50O3U8aT8odT1sK3UrcighZikrKHIoZikmJnIoIXcuYW1QTSkpLG0mJmoodm9pZCAwLC0xLHcuaG91ckVsZW1lbnQpKTp1PmwmJih1PWE9PT13LmhvdXJFbGVtZW50P3UtbC1yKCF3LmFtUE0pOmksbSYmaih2b2lkIDAsMSx3LmhvdXJFbGVtZW50KSksdy5hbVBNJiZmJiYoMT09PWM\/dStkPT09MjM6TWF0aC5hYnModS1kKT5jKSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pLGEudmFsdWU9byh1KX19KGUpO3ZhciBhPXcuX2lucHV0LnZhbHVlO1MoKSxiZSgpLHcuX2lucHV0LnZhbHVlIT09YSYmdy5fZGVib3VuY2VkQ2hhbmdlKCl9ZnVuY3Rpb24gUygpe2lmKHZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCl7dmFyIGUsdCxuPShwYXJzZUludCh3LmhvdXJFbGVtZW50LnZhbHVlLnNsaWNlKC0yKSwxMCl8fDApJTI0LGE9KHBhcnNlSW50KHcubWludXRlRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwLGk9dm9pZCAwIT09dy5zZWNvbmRFbGVtZW50PyhwYXJzZUludCh3LnNlY29uZEVsZW1lbnQudmFsdWUsMTApfHwwKSU2MDowO3ZvaWQgMCE9PXcuYW1QTSYmKGU9bix0PXcuYW1QTS50ZXh0Q29udGVudCxuPWUlMTIrMTIqcih0PT09dy5sMTBuLmFtUE1bMV0pKTt2YXIgbz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lfHx3LmNvbmZpZy5taW5EYXRlJiZ3Lm1pbkRhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWluRGF0ZSwhMCk7aWYodm9pZCAwIT09dy5jb25maWcubWF4VGltZXx8dy5jb25maWcubWF4RGF0ZSYmdy5tYXhEYXRlSGFzVGltZSYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmomJjA9PT1NKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcuY29uZmlnLm1heERhdGUsITApKXt2YXIgbD12b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lP3cuY29uZmlnLm1heFRpbWU6dy5jb25maWcubWF4RGF0ZTsobj1NYXRoLm1pbihuLGwuZ2V0SG91cnMoKSkpPT09bC5nZXRIb3VycygpJiYoYT1NYXRoLm1pbihhLGwuZ2V0TWludXRlcygpKSksYT09PWwuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1pbihpLGwuZ2V0U2Vjb25kcygpKSl9aWYobyl7dmFyIGM9dm9pZCAwIT09dy5jb25maWcubWluVGltZT93LmNvbmZpZy5taW5UaW1lOncuY29uZmlnLm1pbkRhdGU7KG49TWF0aC5tYXgobixjLmdldEhvdXJzKCkpKT09PWMuZ2V0SG91cnMoKSYmYTxjLmdldE1pbnV0ZXMoKSYmKGE9Yy5nZXRNaW51dGVzKCkpLGE9PT1jLmdldE1pbnV0ZXMoKSYmKGk9TWF0aC5tYXgoaSxjLmdldFNlY29uZHMoKSkpfU8obixhLGkpfX1mdW5jdGlvbiBfKGUpe3ZhciB0PWV8fHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqO3QmJk8odC5nZXRIb3VycygpLHQuZ2V0TWludXRlcygpLHQuZ2V0U2Vjb25kcygpKX1mdW5jdGlvbiBPKGUsdCxuKXt2b2lkIDAhPT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmouc2V0SG91cnMoZSUyNCx0LG58fDAsMCksdy5ob3VyRWxlbWVudCYmdy5taW51dGVFbGVtZW50JiYhdy5pc01vYmlsZSYmKHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmNvbmZpZy50aW1lXzI0aHI\/ZTooMTIrZSklMTIrMTIqcihlJTEyPT0wKSksdy5taW51dGVFbGVtZW50LnZhbHVlPW8odCksdm9pZCAwIT09dy5hbVBNJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3IoZT49MTIpXSksdm9pZCAwIT09dy5zZWNvbmRFbGVtZW50JiYody5zZWNvbmRFbGVtZW50LnZhbHVlPW8obikpKX1mdW5jdGlvbiBGKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlKSsoZS5kZWx0YXx8MCk7KG4vMWUzPjF8fCJFbnRlciI9PT1lLmtleSYmIS9bXlxkXS8udGVzdChuLnRvU3RyaW5nKCkpKSYmUShuKX1mdW5jdGlvbiBBKGUsdCxuLGEpe3JldHVybiB0IGluc3RhbmNlb2YgQXJyYXk\/dC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gQShlLHQsbixhKX0pKTplIGluc3RhbmNlb2YgQXJyYXk\/ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gQShlLHQsbixhKX0pKTooZS5hZGRFdmVudExpc3RlbmVyKHQsbixhKSx2b2lkIHcuX2hhbmRsZXJzLnB1c2goe3JlbW92ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuKX19KSl9ZnVuY3Rpb24gTigpe3BlKCJvbkNoYW5nZSIpfWZ1bmN0aW9uIFAoZSx0KXt2YXIgbj12b2lkIDAhPT1lP3cucGFyc2VEYXRlKGUpOncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqfHwody5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZT53Lm5vdz93LmNvbmZpZy5taW5EYXRlOncuY29uZmlnLm1heERhdGUmJncuY29uZmlnLm1heERhdGU8dy5ub3c\/dy5jb25maWcubWF4RGF0ZTp3Lm5vdyksYT13LmN1cnJlbnRZZWFyLGk9dy5jdXJyZW50TW9udGg7dHJ5e3ZvaWQgMCE9PW4mJih3LmN1cnJlbnRZZWFyPW4uZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD1uLmdldE1vbnRoKCkpfWNhdGNoKGUpe2UubWVzc2FnZT0iSW52YWxpZCBkYXRlIHN1cHBsaWVkOiAiK24sdy5jb25maWcuZXJyb3JIYW5kbGVyKGUpfXQmJncuY3VycmVudFllYXIhPT1hJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSksIXR8fHcuY3VycmVudFllYXI9PT1hJiZ3LmN1cnJlbnRNb250aD09PWl8fHBlKCJvbk1vbnRoQ2hhbmdlIiksdy5yZWRyYXcoKX1mdW5jdGlvbiBZKGUpe3ZhciB0PWcoZSk7fnQuY2xhc3NOYW1lLmluZGV4T2YoImFycm93IikmJmooZSx0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dVcCIpPzE6LTEpfWZ1bmN0aW9uIGooZSx0LG4pe3ZhciBhPWUmJmcoZSksaT1ufHxhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5maXJzdENoaWxkLG89aGUoImluY3JlbWVudCIpO28uZGVsdGE9dCxpJiZpLmRpc3BhdGNoRXZlbnQobyl9ZnVuY3Rpb24gSChlLHQsbixhKXt2YXIgaT1YKHQsITApLG89cygic3BhbiIsImZsYXRwaWNrci1kYXkgIitlLHQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkpO3JldHVybiBvLmRhdGVPYmo9dCxvLiRpPWEsby5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcuZm9ybWF0RGF0ZSh0LHcuY29uZmlnLmFyaWFEYXRlRm9ybWF0KSksLTE9PT1lLmluZGV4T2YoImhpZGRlbiIpJiYwPT09TSh0LHcubm93KSYmKHcudG9kYXlEYXRlRWxlbT1vLG8uY2xhc3NMaXN0LmFkZCgidG9kYXkiKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwiZGF0ZSIpKSxpPyhvLnRhYkluZGV4PS0xLHZlKHQpJiYoby5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLHcuc2VsZWN0ZWREYXRlRWxlbT1vLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoZChvLCJzdGFydFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMF0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzBdLCEwKSksZChvLCJlbmRSYW5nZSIsdy5zZWxlY3RlZERhdGVzWzFdJiYwPT09TSh0LHcuc2VsZWN0ZWREYXRlc1sxXSwhMCkpLCJuZXh0TW9udGhEYXkiPT09ZSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSk6by5jbGFzc0xpc3QuYWRkKCJmbGF0cGlja3ItZGlzYWJsZWQiKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmZnVuY3Rpb24oZSl7cmV0dXJuISgicmFuZ2UiIT09dy5jb25maWcubW9kZXx8dy5zZWxlY3RlZERhdGVzLmxlbmd0aDwyKSYmKE0oZSx3LnNlbGVjdGVkRGF0ZXNbMF0pPj0wJiZNKGUsdy5zZWxlY3RlZERhdGVzWzFdKTw9MCl9KHQpJiYhdmUodCkmJm8uY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpLHcud2Vla051bWJlcnMmJjE9PT13LmNvbmZpZy5zaG93TW9udGhzJiYicHJldk1vbnRoRGF5IiE9PWUmJm4lNz09MSYmdy53ZWVrTnVtYmVycy5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsIjxzcGFuIGNsYXNzPSdmbGF0cGlja3ItZGF5Jz4iK3cuY29uZmlnLmdldFdlZWsodCkrIjwvc3Bhbj4iKSxwZSgib25EYXlDcmVhdGUiLG8pLG99ZnVuY3Rpb24gTChlKXtlLmZvY3VzKCksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmFlKGUpfWZ1bmN0aW9uIFcoZSl7Zm9yKHZhciB0PWU+MD8wOncuY29uZmlnLnNob3dNb250aHMtMSxuPWU+MD93LmNvbmZpZy5zaG93TW9udGhzOi0xLGE9dDthIT1uO2ErPWUpZm9yKHZhciBpPXcuZGF5c0NvbnRhaW5lci5jaGlsZHJlblthXSxvPWU+MD8wOmkuY2hpbGRyZW4ubGVuZ3RoLTEscj1lPjA\/aS5jaGlsZHJlbi5sZW5ndGg6LTEsbD1vO2whPXI7bCs9ZSl7dmFyIGM9aS5jaGlsZHJlbltsXTtpZigtMT09PWMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKGMuZGF0ZU9iaikpcmV0dXJuIGN9fWZ1bmN0aW9uIFIoZSx0KXt2YXIgbj1lZShkb2N1bWVudC5hY3RpdmVFbGVtZW50fHxkb2N1bWVudC5ib2R5KSxhPXZvaWQgMCE9PWU\/ZTpuP2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6dm9pZCAwIT09dy5zZWxlY3RlZERhdGVFbGVtJiZlZSh3LnNlbGVjdGVkRGF0ZUVsZW0pP3cuc2VsZWN0ZWREYXRlRWxlbTp2b2lkIDAhPT13LnRvZGF5RGF0ZUVsZW0mJmVlKHcudG9kYXlEYXRlRWxlbSk\/dy50b2RheURhdGVFbGVtOlcodD4wPzE6LTEpO3ZvaWQgMD09PWE\/dy5faW5wdXQuZm9jdXMoKTpuP2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiTW9udGgiKT9lLmRhdGVPYmouZ2V0TW9udGgoKTp3LmN1cnJlbnRNb250aCxhPXQ+MD93LmNvbmZpZy5zaG93TW9udGhzOi0xLGk9dD4wPzE6LTEsbz1uLXcuY3VycmVudE1vbnRoO28hPWE7bys9aSlmb3IodmFyIHI9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW29dLGw9bi13LmN1cnJlbnRNb250aD09PW8\/ZS4kaSt0OnQ8MD9yLmNoaWxkcmVuLmxlbmd0aC0xOjAsYz1yLmNoaWxkcmVuLmxlbmd0aCxkPWw7ZD49MCYmZDxjJiZkIT0odD4wP2M6LTEpO2QrPWkpe3ZhciBzPXIuY2hpbGRyZW5bZF07aWYoLTE9PT1zLmNsYXNzTmFtZS5pbmRleE9mKCJoaWRkZW4iKSYmWChzLmRhdGVPYmopJiZNYXRoLmFicyhlLiRpLWQpPj1NYXRoLmFicyh0KSlyZXR1cm4gTChzKX13LmNoYW5nZU1vbnRoKGkpLFIoVyhpKSwwKX0oYSx0KTpMKGEpfWZ1bmN0aW9uIEIoZSx0KXtmb3IodmFyIG49KG5ldyBEYXRlKGUsdCwxKS5nZXREYXkoKS13LmwxMG4uZmlyc3REYXlPZldlZWsrNyklNyxhPXcudXRpbHMuZ2V0RGF5c0luTW9udGgoKHQtMSsxMiklMTIsZSksaT13LnV0aWxzLmdldERheXNJbk1vbnRoKHQsZSksbz13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHI9dy5jb25maWcuc2hvd01vbnRocz4xLGw9cj8icHJldk1vbnRoRGF5IGhpZGRlbiI6InByZXZNb250aERheSIsYz1yPyJuZXh0TW9udGhEYXkgaGlkZGVuIjoibmV4dE1vbnRoRGF5IixkPWErMS1uLHU9MDtkPD1hO2QrKyx1Kyspby5hcHBlbmRDaGlsZChIKGwsbmV3IERhdGUoZSx0LTEsZCksZCx1KSk7Zm9yKGQ9MTtkPD1pO2QrKyx1Kyspby5hcHBlbmRDaGlsZChIKCIiLG5ldyBEYXRlKGUsdCxkKSxkLHUpKTtmb3IodmFyIGY9aSsxO2Y8PTQyLW4mJigxPT09dy5jb25maWcuc2hvd01vbnRoc3x8dSU3IT0wKTtmKyssdSsrKW8uYXBwZW5kQ2hpbGQoSChjLG5ldyBEYXRlKGUsdCsxLGYlaSksZix1KSk7dmFyIG09cygiZGl2IiwiZGF5Q29udGFpbmVyIik7cmV0dXJuIG0uYXBwZW5kQ2hpbGQobyksbX1mdW5jdGlvbiBKKCl7aWYodm9pZCAwIT09dy5kYXlzQ29udGFpbmVyKXt1KHcuZGF5c0NvbnRhaW5lciksdy53ZWVrTnVtYmVycyYmdSh3LndlZWtOdW1iZXJzKTtmb3IodmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9MDt0PHcuY29uZmlnLnNob3dNb250aHM7dCsrKXt2YXIgbj1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHcuY3VycmVudE1vbnRoLDEpO24uc2V0TW9udGgody5jdXJyZW50TW9udGgrdCksZS5hcHBlbmRDaGlsZChCKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCkpKX13LmRheXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZSksdy5kYXlzPXcuZGF5c0NvbnRhaW5lci5maXJzdENoaWxkLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmYWUoKX19ZnVuY3Rpb24gSygpe2lmKCEody5jb25maWcuc2hvd01vbnRocz4xfHwiZHJvcGRvd24iIT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGUpKXt2YXIgZT1mdW5jdGlvbihlKXtyZXR1cm4hKHZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkmJmU8dy5jb25maWcubWluRGF0ZS5nZXRNb250aCgpKSYmISh2b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpJiZlPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSl9O3cubW9udGhzRHJvcGRvd25Db250YWluZXIudGFiSW5kZXg9LTEsdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5pbm5lckhUTUw9IiI7Zm9yKHZhciB0PTA7dDwxMjt0KyspaWYoZSh0KSl7dmFyIG49cygib3B0aW9uIiwiZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGgiKTtuLnZhbHVlPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdCkuZ2V0TW9udGgoKS50b1N0cmluZygpLG4udGV4dENvbnRlbnQ9aCh0LHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pLG4udGFiSW5kZXg9LTEsdy5jdXJyZW50TW9udGg9PT10JiYobi5zZWxlY3RlZD0hMCksdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5hcHBlbmRDaGlsZChuKX19fWZ1bmN0aW9uIFUoKXt2YXIgZSx0PXMoImRpdiIsImZsYXRwaWNrci1tb250aCIpLG49d2luZG93LmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/ZT1zKCJzcGFuIiwiY3VyLW1vbnRoIik6KHcubW9udGhzRHJvcGRvd25Db250YWluZXI9cygic2VsZWN0IiwiZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIiksdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcubDEwbi5tb250aEFyaWFMYWJlbCksQSh3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLCJjaGFuZ2UiLChmdW5jdGlvbihlKXt2YXIgdD1nKGUpLG49cGFyc2VJbnQodC52YWx1ZSwxMCk7dy5jaGFuZ2VNb250aChuLXcuY3VycmVudE1vbnRoKSxwZSgib25Nb250aENoYW5nZSIpfSkpLEsoKSxlPXcubW9udGhzRHJvcGRvd25Db250YWluZXIpO3ZhciBhPW0oImN1ci15ZWFyIix7dGFiaW5kZXg6Ii0xIn0pLGk9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTtpLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLnllYXJBcmlhTGFiZWwpLHcuY29uZmlnLm1pbkRhdGUmJmkuc2V0QXR0cmlidXRlKCJtaW4iLHcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpKSx3LmNvbmZpZy5tYXhEYXRlJiYoaS5zZXRBdHRyaWJ1dGUoIm1heCIsdy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLGkuZGlzYWJsZWQ9ISF3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCk9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpO3ZhciBvPXMoImRpdiIsImZsYXRwaWNrci1jdXJyZW50LW1vbnRoIik7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoZSksby5hcHBlbmRDaGlsZChhKSxuLmFwcGVuZENoaWxkKG8pLHQuYXBwZW5kQ2hpbGQobikse2NvbnRhaW5lcjp0LHllYXJFbGVtZW50OmksbW9udGhFbGVtZW50OmV9fWZ1bmN0aW9uIHEoKXt1KHcubW9udGhOYXYpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5wcmV2TW9udGhOYXYpLHcuY29uZmlnLnNob3dNb250aHMmJih3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10pO2Zvcih2YXIgZT13LmNvbmZpZy5zaG93TW9udGhzO2UtLTspe3ZhciB0PVUoKTt3LnllYXJFbGVtZW50cy5wdXNoKHQueWVhckVsZW1lbnQpLHcubW9udGhFbGVtZW50cy5wdXNoKHQubW9udGhFbGVtZW50KSx3Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHQuY29udGFpbmVyKX13Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHcubmV4dE1vbnRoTmF2KX1mdW5jdGlvbiAkKCl7dy53ZWVrZGF5Q29udGFpbmVyP3Uody53ZWVrZGF5Q29udGFpbmVyKTp3LndlZWtkYXlDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtkYXlzIik7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXIiKTt3LndlZWtkYXlDb250YWluZXIuYXBwZW5kQ2hpbGQodCl9cmV0dXJuIHooKSx3LndlZWtkYXlDb250YWluZXJ9ZnVuY3Rpb24geigpe2lmKHcud2Vla2RheUNvbnRhaW5lcil7dmFyIGU9dy5sMTBuLmZpcnN0RGF5T2ZXZWVrLG49dCh3LmwxMG4ud2Vla2RheXMuc2hvcnRoYW5kKTtlPjAmJmU8bi5sZW5ndGgmJihuPXQobi5zcGxpY2UoZSxuLmxlbmd0aCksbi5zcGxpY2UoMCxlKSkpO2Zvcih2YXIgYT13LmNvbmZpZy5zaG93TW9udGhzO2EtLTspdy53ZWVrZGF5Q29udGFpbmVyLmNoaWxkcmVuW2FdLmlubmVySFRNTD0iXG4gICAgICA8c3BhbiBjbGFzcz0nZmxhdHBpY2tyLXdlZWtkYXknPlxuICAgICAgICAiK24uam9pbigiPC9zcGFuPjxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+IikrIlxuICAgICAgPC9zcGFuPlxuICAgICAgIn19ZnVuY3Rpb24gRyhlLHQpe3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgbj10P2U6ZS13LmN1cnJlbnRNb250aDtuPDAmJiEwPT09dy5faGlkZVByZXZNb250aEFycm93fHxuPjAmJiEwPT09dy5faGlkZU5leHRNb250aEFycm93fHwody5jdXJyZW50TW9udGgrPW4sKHcuY3VycmVudE1vbnRoPDB8fHcuY3VycmVudE1vbnRoPjExKSYmKHcuY3VycmVudFllYXIrPXcuY3VycmVudE1vbnRoPjExPzE6LTEsdy5jdXJyZW50TW9udGg9KHcuY3VycmVudE1vbnRoKzEyKSUxMixwZSgib25ZZWFyQ2hhbmdlIiksSygpKSxKKCkscGUoIm9uTW9udGhDaGFuZ2UiKSxEZSgpKX1mdW5jdGlvbiBWKGUpe3JldHVybiEoIXcuY29uZmlnLmFwcGVuZFRvfHwhdy5jb25maWcuYXBwZW5kVG8uY29udGFpbnMoZSkpfHx3LmNhbGVuZGFyQ29udGFpbmVyLmNvbnRhaW5zKGUpfWZ1bmN0aW9uIFooZSl7aWYody5pc09wZW4mJiF3LmNvbmZpZy5pbmxpbmUpe3ZhciB0PWcoZSksbj1WKHQpLGE9dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0fHx3LmVsZW1lbnQuY29udGFpbnModCl8fGUucGF0aCYmZS5wYXRoLmluZGV4T2YmJih+ZS5wYXRoLmluZGV4T2Yody5pbnB1dCl8fH5lLnBhdGguaW5kZXhPZih3LmFsdElucHV0KSksaT0iYmx1ciI9PT1lLnR5cGU\/YSYmZS5yZWxhdGVkVGFyZ2V0JiYhVihlLnJlbGF0ZWRUYXJnZXQpOiFhJiYhbiYmIVYoZS5yZWxhdGVkVGFyZ2V0KSxvPSF3LmNvbmZpZy5pZ25vcmVkRm9jdXNFbGVtZW50cy5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb250YWlucyh0KX0pKTtpJiZvJiYodm9pZCAwIT09dy50aW1lQ29udGFpbmVyJiZ2b2lkIDAhPT13Lm1pbnV0ZUVsZW1lbnQmJnZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJiIiIT09dy5pbnB1dC52YWx1ZSYmdm9pZCAwIT09dy5pbnB1dC52YWx1ZSYmSSgpLHcuY2xvc2UoKSx3LmNvbmZpZyYmInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiYody5jbGVhcighMSksdy5yZWRyYXcoKSkpfX1mdW5jdGlvbiBRKGUpe2lmKCEoIWV8fHcuY29uZmlnLm1pbkRhdGUmJmU8dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpfHx3LmNvbmZpZy5tYXhEYXRlJiZlPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpe3ZhciB0PWUsbj13LmN1cnJlbnRZZWFyIT09dDt3LmN1cnJlbnRZZWFyPXR8fHcuY3VycmVudFllYXIsdy5jb25maWcubWF4RGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aD1NYXRoLm1pbih3LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCksdy5jdXJyZW50TW9udGgpOncuY29uZmlnLm1pbkRhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkmJih3LmN1cnJlbnRNb250aD1NYXRoLm1heCh3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCksdy5jdXJyZW50TW9udGgpKSxuJiYody5yZWRyYXcoKSxwZSgib25ZZWFyQ2hhbmdlIiksSygpKX19ZnVuY3Rpb24gWChlLHQpe3ZhciBuO3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgYT13LnBhcnNlRGF0ZShlLHZvaWQgMCx0KTtpZih3LmNvbmZpZy5taW5EYXRlJiZhJiZNKGEsdy5jb25maWcubWluRGF0ZSx2b2lkIDAhPT10P3Q6IXcubWluRGF0ZUhhc1RpbWUpPDB8fHcuY29uZmlnLm1heERhdGUmJmEmJk0oYSx3LmNvbmZpZy5tYXhEYXRlLHZvaWQgMCE9PXQ\/dDohdy5tYXhEYXRlSGFzVGltZSk+MClyZXR1cm4hMTtpZighdy5jb25maWcuZW5hYmxlJiYwPT09dy5jb25maWcuZGlzYWJsZS5sZW5ndGgpcmV0dXJuITA7aWYodm9pZCAwPT09YSlyZXR1cm4hMTtmb3IodmFyIGk9ISF3LmNvbmZpZy5lbmFibGUsbz1udWxsIT09KG49dy5jb25maWcuZW5hYmxlKSYmdm9pZCAwIT09bj9uOncuY29uZmlnLmRpc2FibGUscj0wLGw9dm9pZCAwO3I8by5sZW5ndGg7cisrKXtpZigiZnVuY3Rpb24iPT10eXBlb2YobD1vW3JdKSYmbChhKSlyZXR1cm4gaTtpZihsIGluc3RhbmNlb2YgRGF0ZSYmdm9pZCAwIT09YSYmbC5nZXRUaW1lKCk9PT1hLmdldFRpbWUoKSlyZXR1cm4gaTtpZigic3RyaW5nIj09dHlwZW9mIGwpe3ZhciBjPXcucGFyc2VEYXRlKGwsdm9pZCAwLCEwKTtyZXR1cm4gYyYmYy5nZXRUaW1lKCk9PT1hLmdldFRpbWUoKT9pOiFpfWlmKCJvYmplY3QiPT10eXBlb2YgbCYmdm9pZCAwIT09YSYmbC5mcm9tJiZsLnRvJiZhLmdldFRpbWUoKT49bC5mcm9tLmdldFRpbWUoKSYmYS5nZXRUaW1lKCk8PWwudG8uZ2V0VGltZSgpKXJldHVybiBpfXJldHVybiFpfWZ1bmN0aW9uIGVlKGUpe3JldHVybiB2b2lkIDAhPT13LmRheXNDb250YWluZXImJigtMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiYtMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoImZsYXRwaWNrci1kaXNhYmxlZCIpJiZ3LmRheXNDb250YWluZXIuY29udGFpbnMoZSkpfWZ1bmN0aW9uIHRlKGUpeyEoZS50YXJnZXQ9PT13Ll9pbnB1dCl8fCEody5zZWxlY3RlZERhdGVzLmxlbmd0aD4wfHx3Ll9pbnB1dC52YWx1ZS5sZW5ndGg+MCl8fGUucmVsYXRlZFRhcmdldCYmVihlLnJlbGF0ZWRUYXJnZXQpfHx3LnNldERhdGUody5faW5wdXQudmFsdWUsITAsZS50YXJnZXQ9PT13LmFsdElucHV0P3cuY29uZmlnLmFsdEZvcm1hdDp3LmNvbmZpZy5kYXRlRm9ybWF0KX1mdW5jdGlvbiBuZShlKXt2YXIgdD1nKGUpLG49dy5jb25maWcud3JhcD9wLmNvbnRhaW5zKHQpOnQ9PT13Ll9pbnB1dCxhPXcuY29uZmlnLmFsbG93SW5wdXQsaT13LmlzT3BlbiYmKCFhfHwhbiksbz13LmNvbmZpZy5pbmxpbmUmJm4mJiFhO2lmKDEzPT09ZS5rZXlDb2RlJiZuKXtpZihhKXJldHVybiB3LnNldERhdGUody5faW5wdXQudmFsdWUsITAsdD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpLHQuYmx1cigpO3cub3BlbigpfWVsc2UgaWYoVih0KXx8aXx8byl7dmFyIHI9ISF3LnRpbWVDb250YWluZXImJncudGltZUNvbnRhaW5lci5jb250YWlucyh0KTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDEzOnI\/KGUucHJldmVudERlZmF1bHQoKSxJKCksc2UoKSk6dWUoZSk7YnJlYWs7Y2FzZSAyNzplLnByZXZlbnREZWZhdWx0KCksc2UoKTticmVhaztjYXNlIDg6Y2FzZSA0NjpuJiYhdy5jb25maWcuYWxsb3dJbnB1dCYmKGUucHJldmVudERlZmF1bHQoKSx3LmNsZWFyKCkpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAzOTppZihyfHxuKXcuaG91ckVsZW1lbnQmJncuaG91ckVsZW1lbnQuZm9jdXMoKTtlbHNlIGlmKGUucHJldmVudERlZmF1bHQoKSx2b2lkIDAhPT13LmRheXNDb250YWluZXImJighMT09PWF8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJmVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSl7dmFyIGw9Mzk9PT1lLmtleUNvZGU\/MTotMTtlLmN0cmxLZXk\/KGUuc3RvcFByb3BhZ2F0aW9uKCksRyhsKSxSKFcoMSksMCkpOlIodm9pZCAwLGwpfWJyZWFrO2Nhc2UgMzg6Y2FzZSA0MDplLnByZXZlbnREZWZhdWx0KCk7dmFyIGM9NDA9PT1lLmtleUNvZGU\/MTotMTt3LmRheXNDb250YWluZXImJnZvaWQgMCE9PXQuJGl8fHQ9PT13LmlucHV0fHx0PT09dy5hbHRJbnB1dD9lLmN0cmxLZXk\/KGUuc3RvcFByb3BhZ2F0aW9uKCksUSh3LmN1cnJlbnRZZWFyLWMpLFIoVygxKSwwKSk6cnx8Uih2b2lkIDAsNypjKTp0PT09dy5jdXJyZW50WWVhckVsZW1lbnQ\/USh3LmN1cnJlbnRZZWFyLWMpOncuY29uZmlnLmVuYWJsZVRpbWUmJighciYmdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpLEkoZSksdy5fZGVib3VuY2VkQ2hhbmdlKCkpO2JyZWFrO2Nhc2UgOTppZihyKXt2YXIgZD1bdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnQsdy5zZWNvbmRFbGVtZW50LHcuYW1QTV0uY29uY2F0KHcucGx1Z2luRWxlbWVudHMpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSkscz1kLmluZGV4T2YodCk7aWYoLTEhPT1zKXt2YXIgdT1kW3MrKGUuc2hpZnRLZXk\/LTE6MSldO2UucHJldmVudERlZmF1bHQoKSwodXx8dy5faW5wdXQpLmZvY3VzKCl9fWVsc2Uhdy5jb25maWcubm9DYWxlbmRhciYmdy5kYXlzQ29udGFpbmVyJiZ3LmRheXNDb250YWluZXIuY29udGFpbnModCkmJmUuc2hpZnRLZXkmJihlLnByZXZlbnREZWZhdWx0KCksdy5faW5wdXQuZm9jdXMoKSl9fWlmKHZvaWQgMCE9PXcuYW1QTSYmdD09PXcuYW1QTSlzd2l0Y2goZS5rZXkpe2Nhc2Ugdy5sMTBuLmFtUE1bMF0uY2hhckF0KDApOmNhc2Ugdy5sMTBuLmFtUE1bMF0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCk6dy5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNWzBdLFMoKSxiZSgpO2JyZWFrO2Nhc2Ugdy5sMTBuLmFtUE1bMV0uY2hhckF0KDApOmNhc2Ugdy5sMTBuLmFtUE1bMV0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCk6dy5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNWzFdLFMoKSxiZSgpfShufHxWKHQpKSYmcGUoIm9uS2V5RG93biIsZSl9ZnVuY3Rpb24gYWUoZSl7aWYoMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJighZXx8ZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kYXkiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGlzYWJsZWQiKSkpe2Zvcih2YXIgdD1lP2UuZGF0ZU9iai5nZXRUaW1lKCk6dy5kYXlzLmZpcnN0RWxlbWVudENoaWxkLmRhdGVPYmouZ2V0VGltZSgpLG49dy5wYXJzZURhdGUody5zZWxlY3RlZERhdGVzWzBdLHZvaWQgMCwhMCkuZ2V0VGltZSgpLGE9TWF0aC5taW4odCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxpPU1hdGgubWF4KHQsdy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKSksbz0hMSxyPTAsbD0wLGM9YTtjPGk7Yys9eSlYKG5ldyBEYXRlKGMpLCEwKXx8KG89b3x8Yz5hJiZjPGksYzxuJiYoIXJ8fGM+cik\/cj1jOmM+biYmKCFsfHxjPGwpJiYobD1jKSk7Zm9yKHZhciBkPTA7ZDx3LmNvbmZpZy5zaG93TW9udGhzO2QrKylmb3IodmFyIHM9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2RdLHU9ZnVuY3Rpb24oYSxpKXt2YXIgYyxkLHUsZj1zLmNoaWxkcmVuW2FdLG09Zi5kYXRlT2JqLmdldFRpbWUoKSxnPXI+MCYmbTxyfHxsPjAmJm0+bDtyZXR1cm4gZz8oZi5jbGFzc0xpc3QuYWRkKCJub3RBbGxvd2VkIiksWyJpblJhbmdlIiwic3RhcnRSYW5nZSIsImVuZFJhbmdlIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zi5jbGFzc0xpc3QucmVtb3ZlKGUpfSkpLCJjb250aW51ZSIpOm8mJiFnPyJjb250aW51ZSI6KFsic3RhcnRSYW5nZSIsImluUmFuZ2UiLCJlbmRSYW5nZSIsIm5vdEFsbG93ZWQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksdm9pZCh2b2lkIDAhPT1lJiYoZS5jbGFzc0xpc3QuYWRkKHQ8PXcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCk\/InN0YXJ0UmFuZ2UiOiJlbmRSYW5nZSIpLG48dCYmbT09PW4\/Zi5jbGFzc0xpc3QuYWRkKCJzdGFydFJhbmdlIik6bj50JiZtPT09biYmZi5jbGFzc0xpc3QuYWRkKCJlbmRSYW5nZSIpLG0+PXImJigwPT09bHx8bTw9bCkmJihkPW4sdT10LChjPW0pPk1hdGgubWluKGQsdSkmJmM8TWF0aC5tYXgoZCx1KSkmJmYuY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpKSkpfSxmPTAsbT1zLmNoaWxkcmVuLmxlbmd0aDtmPG07ZisrKXUoZil9fWZ1bmN0aW9uIGllKCl7IXcuaXNPcGVufHx3LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8Y2UoKX1mdW5jdGlvbiBvZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dy5jb25maWdbIl8iK2UrIkRhdGUiXT13LnBhcnNlRGF0ZSh0LHcuY29uZmlnLmRhdGVGb3JtYXQpLGE9dy5jb25maWdbIl8iKygibWluIj09PWU\/Im1heCI6Im1pbiIpKyJEYXRlIl07dm9pZCAwIT09biYmKHdbIm1pbiI9PT1lPyJtaW5EYXRlSGFzVGltZSI6Im1heERhdGVIYXNUaW1lIl09bi5nZXRIb3VycygpPjB8fG4uZ2V0TWludXRlcygpPjB8fG4uZ2V0U2Vjb25kcygpPjApLHcuc2VsZWN0ZWREYXRlcyYmKHcuc2VsZWN0ZWREYXRlcz13LnNlbGVjdGVkRGF0ZXMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gWChlKX0pKSx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RofHwibWluIiE9PWV8fF8obiksYmUoKSksdy5kYXlzQ29udGFpbmVyJiYoZGUoKSx2b2lkIDAhPT1uP3cuY3VycmVudFllYXJFbGVtZW50W2VdPW4uZ2V0RnVsbFllYXIoKS50b1N0cmluZygpOncuY3VycmVudFllYXJFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShlKSx3LmN1cnJlbnRZZWFyRWxlbWVudC5kaXNhYmxlZD0hIWEmJnZvaWQgMCE9PW4mJmEuZ2V0RnVsbFllYXIoKT09PW4uZ2V0RnVsbFllYXIoKSl9fWZ1bmN0aW9uIHJlKCl7cmV0dXJuIHcuY29uZmlnLndyYXA\/cC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1pbnB1dF0iKTpwfWZ1bmN0aW9uIGxlKCl7Im9iamVjdCIhPXR5cGVvZiB3LmNvbmZpZy5sb2NhbGUmJnZvaWQgMD09PVQubDEwbnNbdy5jb25maWcubG9jYWxlXSYmdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiZmxhdHBpY2tyOiBpbnZhbGlkIGxvY2FsZSAiK3cuY29uZmlnLmxvY2FsZSkpLHcubDEwbj1lKGUoe30sVC5sMTBucy5kZWZhdWx0KSwib2JqZWN0Ij09dHlwZW9mIHcuY29uZmlnLmxvY2FsZT93LmNvbmZpZy5sb2NhbGU6ImRlZmF1bHQiIT09dy5jb25maWcubG9jYWxlP1QubDEwbnNbdy5jb25maWcubG9jYWxlXTp2b2lkIDApLEQuSz0iKCIrdy5sMTBuLmFtUE1bMF0rInwiK3cubDEwbi5hbVBNWzFdKyJ8Iit3LmwxMG4uYW1QTVswXS50b0xvd2VyQ2FzZSgpKyJ8Iit3LmwxMG4uYW1QTVsxXS50b0xvd2VyQ2FzZSgpKyIpIix2b2lkIDA9PT1lKGUoe30sdiksSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwLmRhdGFzZXR8fHt9KSkpLnRpbWVfMjRociYmdm9pZCAwPT09VC5kZWZhdWx0Q29uZmlnLnRpbWVfMjRociYmKHcuY29uZmlnLnRpbWVfMjRocj13LmwxMG4udGltZV8yNGhyKSx3LmZvcm1hdERhdGU9Yih3KSx3LnBhcnNlRGF0ZT1DKHtjb25maWc6dy5jb25maWcsbDEwbjp3LmwxMG59KX1mdW5jdGlvbiBjZShlKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygdy5jb25maWcucG9zaXRpb24pe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXIpe3BlKCJvblByZUNhbGVuZGFyUG9zaXRpb24iKTt2YXIgdD1lfHx3Ll9wb3NpdGlvbkVsZW1lbnQsbj1BcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwody5jYWxlbmRhckNvbnRhaW5lci5jaGlsZHJlbiwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0Lm9mZnNldEhlaWdodH0pLDApLGE9dy5jYWxlbmRhckNvbnRhaW5lci5vZmZzZXRXaWR0aCxpPXcuY29uZmlnLnBvc2l0aW9uLnNwbGl0KCIgIiksbz1pWzBdLHI9aS5sZW5ndGg+MT9pWzFdOm51bGwsbD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGM9d2luZG93LmlubmVySGVpZ2h0LWwuYm90dG9tLHM9ImFib3ZlIj09PW98fCJiZWxvdyIhPT1vJiZjPG4mJmwudG9wPm4sdT13aW5kb3cucGFnZVlPZmZzZXQrbC50b3ArKHM\/LW4tMjp0Lm9mZnNldEhlaWdodCsyKTtpZihkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93VG9wIiwhcyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0JvdHRvbSIscyksIXcuY29uZmlnLmlubGluZSl7dmFyIGY9d2luZG93LnBhZ2VYT2Zmc2V0K2wubGVmdCxtPSExLGc9ITE7ImNlbnRlciI9PT1yPyhmLT0oYS1sLndpZHRoKS8yLG09ITApOiJyaWdodCI9PT1yJiYoZi09YS1sLndpZHRoLGc9ITApLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dMZWZ0IiwhbSYmIWcpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dDZW50ZXIiLG0pLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dSaWdodCIsZyk7dmFyIHA9d2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgtKHdpbmRvdy5wYWdlWE9mZnNldCtsLnJpZ2h0KSxoPWYrYT53aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCx2PXArYT53aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtpZihkKHcuY2FsZW5kYXJDb250YWluZXIsInJpZ2h0TW9zdCIsaCksIXcuY29uZmlnLnN0YXRpYylpZih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnRvcD11KyJweCIsaClpZih2KXt2YXIgRD1mdW5jdGlvbigpe2Zvcih2YXIgZT1udWxsLHQ9MDt0PGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDt0Kyspe3ZhciBuPWRvY3VtZW50LnN0eWxlU2hlZXRzW3RdO3RyeXtuLmNzc1J1bGVzfWNhdGNoKGUpe2NvbnRpbnVlfWU9bjticmVha31yZXR1cm4gbnVsbCE9ZT9lOihhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKSxhLnNoZWV0KTt2YXIgYX0oKTtpZih2b2lkIDA9PT1EKXJldHVybjt2YXIgYj13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCxDPU1hdGgubWF4KDAsYi8yLWEvMiksTT1ELmNzc1J1bGVzLmxlbmd0aCx5PSJ7bGVmdDoiK2wubGVmdCsicHg7cmlnaHQ6YXV0bzt9IjtkKHcuY2FsZW5kYXJDb250YWluZXIsInJpZ2h0TW9zdCIsITEpLGQody5jYWxlbmRhckNvbnRhaW5lciwiY2VudGVyTW9zdCIsITApLEQuaW5zZXJ0UnVsZSgiLmZsYXRwaWNrci1jYWxlbmRhci5jZW50ZXJNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YWZ0ZXIiK3ksTSksdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PUMrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PSJhdXRvIn1lbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD0iYXV0byIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD1wKyJweCI7ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9ZisicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifX19ZWxzZSB3LmNvbmZpZy5wb3NpdGlvbih3LGUpfWZ1bmN0aW9uIGRlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8KEsoKSxEZSgpLEooKSl9ZnVuY3Rpb24gc2UoKXt3Ll9pbnB1dC5mb2N1cygpLC0xIT09d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSIpfHx2b2lkIDAhPT1uYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz9zZXRUaW1lb3V0KHcuY2xvc2UsMCk6dy5jbG9zZSgpfWZ1bmN0aW9uIHVlKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWYoZyhlKSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NMaXN0JiZlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoIm5vdEFsbG93ZWQiKX0pKTtpZih2b2lkIDAhPT10KXt2YXIgbj10LGE9dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9bmV3IERhdGUobi5kYXRlT2JqLmdldFRpbWUoKSksaT0oYS5nZXRNb250aCgpPHcuY3VycmVudE1vbnRofHxhLmdldE1vbnRoKCk+dy5jdXJyZW50TW9udGgrdy5jb25maWcuc2hvd01vbnRocy0xKSYmInJhbmdlIiE9PXcuY29uZmlnLm1vZGU7aWYody5zZWxlY3RlZERhdGVFbGVtPW4sInNpbmdsZSI9PT13LmNvbmZpZy5tb2RlKXcuc2VsZWN0ZWREYXRlcz1bYV07ZWxzZSBpZigibXVsdGlwbGUiPT09dy5jb25maWcubW9kZSl7dmFyIG89dmUoYSk7bz93LnNlbGVjdGVkRGF0ZXMuc3BsaWNlKHBhcnNlSW50KG8pLDEpOncuc2VsZWN0ZWREYXRlcy5wdXNoKGEpfWVsc2UicmFuZ2UiPT09dy5jb25maWcubW9kZSYmKDI9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZ3LmNsZWFyKCExLCExKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1hLHcuc2VsZWN0ZWREYXRlcy5wdXNoKGEpLDAhPT1NKGEsdy5zZWxlY3RlZERhdGVzWzBdLCEwKSYmdy5zZWxlY3RlZERhdGVzLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZ2V0VGltZSgpLXQuZ2V0VGltZSgpfSkpKTtpZihTKCksaSl7dmFyIHI9dy5jdXJyZW50WWVhciE9PWEuZ2V0RnVsbFllYXIoKTt3LmN1cnJlbnRZZWFyPWEuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD1hLmdldE1vbnRoKCksciYmKHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLHBlKCJvbk1vbnRoQ2hhbmdlIil9aWYoRGUoKSxKKCksYmUoKSxpfHwicmFuZ2UiPT09dy5jb25maWcubW9kZXx8MSE9PXcuY29uZmlnLnNob3dNb250aHM\/dm9pZCAwIT09dy5zZWxlY3RlZERhdGVFbGVtJiZ2b2lkIDA9PT13LmhvdXJFbGVtZW50JiZ3LnNlbGVjdGVkRGF0ZUVsZW0mJncuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpOkwobiksdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpLHcuY29uZmlnLmNsb3NlT25TZWxlY3Qpe3ZhciBsPSJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmVuYWJsZVRpbWUsYz0icmFuZ2UiPT09dy5jb25maWcubW9kZSYmMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJiF3LmNvbmZpZy5lbmFibGVUaW1lOyhsfHxjKSYmc2UoKX1OKCl9fXcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pLHcuX2hhbmRsZXJzPVtdLHcucGx1Z2luRWxlbWVudHM9W10sdy5sb2FkZWRQbHVnaW5zPVtdLHcuX2JpbmQ9QSx3Ll9zZXRIb3Vyc0Zyb21EYXRlPV8sdy5fcG9zaXRpb25DYWxlbmRhcj1jZSx3LmNoYW5nZU1vbnRoPUcsdy5jaGFuZ2VZZWFyPVEsdy5jbGVhcj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PWUmJihlPSEwKTt2b2lkIDA9PT10JiYodD0hMCk7dy5pbnB1dC52YWx1ZT0iIix2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT0iIik7dm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmKHcubW9iaWxlSW5wdXQudmFsdWU9IiIpO3cuc2VsZWN0ZWREYXRlcz1bXSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj12b2lkIDAsITA9PT10JiYody5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCkpO2lmKCEwPT09dy5jb25maWcuZW5hYmxlVGltZSl7dmFyIG49eCh3LmNvbmZpZyksYT1uLmhvdXJzLGk9bi5taW51dGVzLG89bi5zZWNvbmRzO08oYSxpLG8pfXcucmVkcmF3KCksZSYmcGUoIm9uQ2hhbmdlIil9LHcuY2xvc2U9ZnVuY3Rpb24oKXt3LmlzT3Blbj0hMSx3LmlzTW9iaWxlfHwodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiksdm9pZCAwIT09dy5faW5wdXQmJncuX2lucHV0LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpKTtwZSgib25DbG9zZSIpfSx3Ll9jcmVhdGVFbGVtZW50PXMsdy5kZXN0cm95PWZ1bmN0aW9uKCl7dm9pZCAwIT09dy5jb25maWcmJnBlKCJvbkRlc3Ryb3kiKTtmb3IodmFyIGU9dy5faGFuZGxlcnMubGVuZ3RoO2UtLTspdy5faGFuZGxlcnNbZV0ucmVtb3ZlKCk7aWYody5faGFuZGxlcnM9W10sdy5tb2JpbGVJbnB1dCl3Lm1vYmlsZUlucHV0LnBhcmVudE5vZGUmJncubW9iaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh3Lm1vYmlsZUlucHV0KSx3Lm1vYmlsZUlucHV0PXZvaWQgMDtlbHNlIGlmKHcuY2FsZW5kYXJDb250YWluZXImJncuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZSlpZih3LmNvbmZpZy5zdGF0aWMmJncuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZSl7dmFyIHQ9dy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlO2lmKHQubGFzdENoaWxkJiZ0LnJlbW92ZUNoaWxkKHQubGFzdENoaWxkKSx0LnBhcmVudE5vZGUpe2Zvcig7dC5maXJzdENoaWxkOyl0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQuZmlyc3RDaGlsZCx0KTt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9fWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpO3cuYWx0SW5wdXQmJih3LmlucHV0LnR5cGU9InRleHQiLHcuYWx0SW5wdXQucGFyZW50Tm9kZSYmdy5hbHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcuYWx0SW5wdXQpLGRlbGV0ZSB3LmFsdElucHV0KTt3LmlucHV0JiYody5pbnB1dC50eXBlPXcuaW5wdXQuX3R5cGUsdy5pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCJmbGF0cGlja3ItaW5wdXQiKSx3LmlucHV0LnJlbW92ZUF0dHJpYnV0ZSgicmVhZG9ubHkiKSk7WyJfc2hvd1RpbWVJbnB1dCIsImxhdGVzdFNlbGVjdGVkRGF0ZU9iaiIsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLCJfaGlkZVByZXZNb250aEFycm93IiwiX19oaWRlTmV4dE1vbnRoQXJyb3ciLCJfX2hpZGVQcmV2TW9udGhBcnJvdyIsImlzTW9iaWxlIiwiaXNPcGVuIiwic2VsZWN0ZWREYXRlRWxlbSIsIm1pbkRhdGVIYXNUaW1lIiwibWF4RGF0ZUhhc1RpbWUiLCJkYXlzIiwiZGF5c0NvbnRhaW5lciIsIl9pbnB1dCIsIl9wb3NpdGlvbkVsZW1lbnQiLCJpbm5lckNvbnRhaW5lciIsInJDb250YWluZXIiLCJtb250aE5hdiIsInRvZGF5RGF0ZUVsZW0iLCJjYWxlbmRhckNvbnRhaW5lciIsIndlZWtkYXlDb250YWluZXIiLCJwcmV2TW9udGhOYXYiLCJuZXh0TW9udGhOYXYiLCJtb250aHNEcm9wZG93bkNvbnRhaW5lciIsImN1cnJlbnRNb250aEVsZW1lbnQiLCJjdXJyZW50WWVhckVsZW1lbnQiLCJuYXZpZ2F0aW9uQ3VycmVudE1vbnRoIiwic2VsZWN0ZWREYXRlRWxlbSIsImNvbmZpZyJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXtkZWxldGUgd1tlXX1jYXRjaChlKXt9fSkpfSx3LmlzRW5hYmxlZD1YLHcuanVtcFRvRGF0ZT1QLHcub3Blbj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PXcuX3Bvc2l0aW9uRWxlbWVudCk7aWYoITA9PT13LmlzTW9iaWxlKXtpZihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49ZyhlKTtuJiZuLmJsdXIoKX1yZXR1cm4gdm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmKHcubW9iaWxlSW5wdXQuZm9jdXMoKSx3Lm1vYmlsZUlucHV0LmNsaWNrKCkpLHZvaWQgcGUoIm9uT3BlbiIpfWlmKHcuX2lucHV0LmRpc2FibGVkfHx3LmNvbmZpZy5pbmxpbmUpcmV0dXJuO3ZhciBhPXcuaXNPcGVuO3cuaXNPcGVuPSEwLGF8fCh3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm9wZW4iKSx3Ll9pbnB1dC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxwZSgib25PcGVuIiksY2UodCkpOyEwPT09dy5jb25maWcuZW5hYmxlVGltZSYmITA9PT13LmNvbmZpZy5ub0NhbGVuZGFyJiYoITEhPT13LmNvbmZpZy5hbGxvd0lucHV0fHx2b2lkIDAhPT1lJiZ3LnRpbWVDb250YWluZXIuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KXx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdy5ob3VyRWxlbWVudC5zZWxlY3QoKX0pLDUwKSl9LHcucmVkcmF3PWRlLHcuc2V0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSlmb3IodmFyIGEgaW4gT2JqZWN0LmFzc2lnbih3LmNvbmZpZyxlKSxlKXZvaWQgMCE9PWZlW2FdJiZmZVthXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpO2Vsc2Ugdy5jb25maWdbZV09dCx2b2lkIDAhPT1mZVtlXT9mZVtlXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpOm4uaW5kZXhPZihlKT4tMSYmKHcuY29uZmlnW2VdPWModCkpO3cucmVkcmF3KCksYmUoITApfSx3LnNldERhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZvaWQgMD09PXQmJih0PSExKTt2b2lkIDA9PT1uJiYobj13LmNvbmZpZy5kYXRlRm9ybWF0KTtpZigwIT09ZSYmIWV8fGUgaW5zdGFuY2VvZiBBcnJheSYmMD09PWUubGVuZ3RoKXJldHVybiB3LmNsZWFyKHQpO21lKGUsbiksdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzW3cuc2VsZWN0ZWREYXRlcy5sZW5ndGgtMV0sdy5yZWRyYXcoKSxQKHZvaWQgMCx0KSxfKCksMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEpO2JlKHQpLHQmJnBlKCJvbkNoYW5nZSIpfSx3LnRvZ2dsZT1mdW5jdGlvbihlKXtpZighMD09PXcuaXNPcGVuKXJldHVybiB3LmNsb3NlKCk7dy5vcGVuKGUpfTt2YXIgZmU9e2xvY2FsZTpbbGUsel0sc2hvd01vbnRoczpbcSxrLCRdLG1pbkRhdGU6W1BdLG1heERhdGU6W1BdLGNsaWNrT3BlbnM6W2Z1bmN0aW9uKCl7ITA9PT13LmNvbmZpZy5jbGlja09wZW5zPyhBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk6KHcuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix3Lm9wZW4pLHcuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix3Lm9wZW4pKX1dfTtmdW5jdGlvbiBtZShlLHQpe3ZhciBuPVtdO2lmKGUgaW5zdGFuY2VvZiBBcnJheSluPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBEYXRlfHwibnVtYmVyIj09dHlwZW9mIGUpbj1bdy5wYXJzZURhdGUoZSx0KV07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpc3dpdGNoKHcuY29uZmlnLm1vZGUpe2Nhc2Uic2luZ2xlIjpjYXNlInRpbWUiOm49W3cucGFyc2VEYXRlKGUsdCldO2JyZWFrO2Nhc2UibXVsdGlwbGUiOm49ZS5zcGxpdCh3LmNvbmZpZy5jb25qdW5jdGlvbikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKTticmVhaztjYXNlInJhbmdlIjpuPWUuc3BsaXQody5sMTBuLnJhbmdlU2VwYXJhdG9yKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpfWVsc2Ugdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiSW52YWxpZCBkYXRlIHN1cHBsaWVkOiAiK0pTT04uc3RyaW5naWZ5KGUpKSk7dy5zZWxlY3RlZERhdGVzPXcuY29uZmlnLmFsbG93SW52YWxpZFByZWxvYWQ\/bjpuLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlJiZYKGUsITEpfSkpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSl9ZnVuY3Rpb24gZ2UoZSl7cmV0dXJuIGUuc2xpY2UoKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgRGF0ZT93LnBhcnNlRGF0ZShlLHZvaWQgMCwhMCk6ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZlLmZyb20mJmUudG8\/e2Zyb206dy5wYXJzZURhdGUoZS5mcm9tLHZvaWQgMCksdG86dy5wYXJzZURhdGUoZS50byx2b2lkIDApfTplfSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl9ZnVuY3Rpb24gcGUoZSx0KXtpZih2b2lkIDAhPT13LmNvbmZpZyl7dmFyIG49dy5jb25maWdbZV07aWYodm9pZCAwIT09biYmbi5sZW5ndGg+MClmb3IodmFyIGE9MDtuW2FdJiZhPG4ubGVuZ3RoO2ErKyluW2FdKHcuc2VsZWN0ZWREYXRlcyx3LmlucHV0LnZhbHVlLHcsdCk7Im9uQ2hhbmdlIj09PWUmJih3LmlucHV0LmRpc3BhdGNoRXZlbnQoaGUoImNoYW5nZSIpKSx3LmlucHV0LmRpc3BhdGNoRXZlbnQoaGUoImlucHV0IikpKX19ZnVuY3Rpb24gaGUoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIHQuaW5pdEV2ZW50KGUsITAsITApLHR9ZnVuY3Rpb24gdmUoZSl7Zm9yKHZhciB0PTA7dDx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoO3QrKylpZigwPT09TSh3LnNlbGVjdGVkRGF0ZXNbdF0sZSkpcmV0dXJuIiIrdDtyZXR1cm4hMX1mdW5jdGlvbiBEZSgpe3cuY29uZmlnLm5vQ2FsZW5kYXJ8fHcuaXNNb2JpbGV8fCF3Lm1vbnRoTmF2fHwody55ZWFyRWxlbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHcuY3VycmVudE1vbnRoLDEpO24uc2V0TW9udGgody5jdXJyZW50TW9udGgrdCksdy5jb25maWcuc2hvd01vbnRocz4xfHwic3RhdGljIj09PXcuY29uZmlnLm1vbnRoU2VsZWN0b3JUeXBlP3cubW9udGhFbGVtZW50c1t0XS50ZXh0Q29udGVudD1oKG4uZ2V0TW9udGgoKSx3LmNvbmZpZy5zaG9ydGhhbmRDdXJyZW50TW9udGgsdy5sMTBuKSsiICI6dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci52YWx1ZT1uLmdldE1vbnRoKCkudG9TdHJpbmcoKSxlLnZhbHVlPW4uZ2V0RnVsbFllYXIoKS50b1N0cmluZygpfSkpLHcuX2hpZGVQcmV2TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5taW5EYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aDw9dy5jb25maWcubWluRGF0ZS5nZXRNb250aCgpOncuY3VycmVudFllYXI8dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpKSx3Ll9oaWRlTmV4dE1vbnRoQXJyb3c9dm9pZCAwIT09dy5jb25maWcubWF4RGF0ZSYmKHcuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk\/dy5jdXJyZW50TW9udGgrMT53LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcj53LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpKX1mdW5jdGlvbiB3ZShlKXtyZXR1cm4gdy5zZWxlY3RlZERhdGVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHcuZm9ybWF0RGF0ZSh0LGUpfSkpLmZpbHRlcigoZnVuY3Rpb24oZSx0LG4pe3JldHVybiJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LmNvbmZpZy5lbmFibGVUaW1lfHxuLmluZGV4T2YoZSk9PT10fSkpLmpvaW4oInJhbmdlIiE9PXcuY29uZmlnLm1vZGU\/dy5jb25maWcuY29uanVuY3Rpb246dy5sMTBuLnJhbmdlU2VwYXJhdG9yKX1mdW5jdGlvbiBiZShlKXt2b2lkIDA9PT1lJiYoZT0hMCksdm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmdy5tb2JpbGVGb3JtYXRTdHImJih3Lm1vYmlsZUlucHV0LnZhbHVlPXZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cuZm9ybWF0RGF0ZSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3Lm1vYmlsZUZvcm1hdFN0cik6IiIpLHcuaW5wdXQudmFsdWU9d2Uody5jb25maWcuZGF0ZUZvcm1hdCksdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudmFsdWU9d2Uody5jb25maWcuYWx0Rm9ybWF0KSksITEhPT1lJiZwZSgib25WYWx1ZVVwZGF0ZSIpfWZ1bmN0aW9uIENlKGUpe3ZhciB0PWcoZSksbj13LnByZXZNb250aE5hdi5jb250YWlucyh0KSxhPXcubmV4dE1vbnRoTmF2LmNvbnRhaW5zKHQpO258fGE\/RyhuPy0xOjEpOncueWVhckVsZW1lbnRzLmluZGV4T2YodCk+PTA\/dC5zZWxlY3QoKTp0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dVcCIpP3cuY2hhbmdlWWVhcih3LmN1cnJlbnRZZWFyKzEpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd0Rvd24iKSYmdy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXItMSl9cmV0dXJuIGZ1bmN0aW9uKCl7dy5lbGVtZW50PXcuaW5wdXQ9cCx3LmlzT3Blbj0hMSxmdW5jdGlvbigpe3ZhciB0PVsid3JhcCIsIndlZWtOdW1iZXJzIiwiYWxsb3dJbnB1dCIsImFsbG93SW52YWxpZFByZWxvYWQiLCJjbGlja09wZW5zIiwidGltZV8yNGhyIiwiZW5hYmxlVGltZSIsIm5vQ2FsZW5kYXIiLCJhbHRJbnB1dCIsInNob3J0aGFuZEN1cnJlbnRNb250aCIsImlubGluZSIsInN0YXRpYyIsImVuYWJsZVNlY29uZHMiLCJkaXNhYmxlTW9iaWxlIl0saT1lKGUoe30sSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwLmRhdGFzZXR8fHt9KSkpLHYpLG89e307dy5jb25maWcucGFyc2VEYXRlPWkucGFyc2VEYXRlLHcuY29uZmlnLmZvcm1hdERhdGU9aS5mb3JtYXREYXRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywiZW5hYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9lbmFibGV9LHNldDpmdW5jdGlvbihlKXt3LmNvbmZpZy5fZW5hYmxlPWdlKGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywiZGlzYWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fZGlzYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9kaXNhYmxlPWdlKGUpfX0pO3ZhciByPSJ0aW1lIj09PWkubW9kZTtpZighaS5kYXRlRm9ybWF0JiYoaS5lbmFibGVUaW1lfHxyKSl7dmFyIGw9VC5kZWZhdWx0Q29uZmlnLmRhdGVGb3JtYXR8fGEuZGF0ZUZvcm1hdDtvLmRhdGVGb3JtYXQ9aS5ub0NhbGVuZGFyfHxyPyJIOmkiKyhpLmVuYWJsZVNlY29uZHM\/IjpTIjoiIik6bCsiIEg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKX1pZihpLmFsdElucHV0JiYoaS5lbmFibGVUaW1lfHxyKSYmIWkuYWx0Rm9ybWF0KXt2YXIgZD1ULmRlZmF1bHRDb25maWcuYWx0Rm9ybWF0fHxhLmFsdEZvcm1hdDtvLmFsdEZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Img6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMgSyI6IiBLIik6ZCsiIGg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKSsiIEsifU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWluRGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWluRGF0ZX0sc2V0Om9lKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4RGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4RGF0ZX0sc2V0Om9lKCJtYXgiKX0pO3ZhciBzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt3LmNvbmZpZ1sibWluIj09PWU\/Il9taW5UaW1lIjoiX21heFRpbWUiXT13LnBhcnNlRGF0ZSh0LCJIOmk6UyIpfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5UaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5UaW1lfSxzZXQ6cygibWluIil9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1heFRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21heFRpbWV9LHNldDpzKCJtYXgiKX0pLCJ0aW1lIj09PWkubW9kZSYmKHcuY29uZmlnLm5vQ2FsZW5kYXI9ITAsdy5jb25maWcuZW5hYmxlVGltZT0hMCk7T2JqZWN0LmFzc2lnbih3LmNvbmZpZyxvLGkpO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKXcuY29uZmlnW3RbdV1dPSEwPT09dy5jb25maWdbdFt1XV18fCJ0cnVlIj09PXcuY29uZmlnW3RbdV1dO24uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dy5jb25maWdbZV19KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dy5jb25maWdbZV09Yyh3LmNvbmZpZ1tlXXx8W10pLm1hcChFKX0pKSx3LmlzTW9iaWxlPSF3LmNvbmZpZy5kaXNhYmxlTW9iaWxlJiYhdy5jb25maWcuaW5saW5lJiYic2luZ2xlIj09PXcuY29uZmlnLm1vZGUmJiF3LmNvbmZpZy5kaXNhYmxlLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZSYmIXcuY29uZmlnLndlZWtOdW1iZXJzJiYvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7Zm9yKHU9MDt1PHcuY29uZmlnLnBsdWdpbnMubGVuZ3RoO3UrKyl7dmFyIGY9dy5jb25maWcucGx1Z2luc1t1XSh3KXx8e307Zm9yKHZhciBtIGluIGYpbi5pbmRleE9mKG0pPi0xP3cuY29uZmlnW21dPWMoZlttXSkubWFwKEUpLmNvbmNhdCh3LmNvbmZpZ1ttXSk6dm9pZCAwPT09aVttXSYmKHcuY29uZmlnW21dPWZbbV0pfWkuYWx0SW5wdXRDbGFzc3x8KHcuY29uZmlnLmFsdElucHV0Q2xhc3M9cmUoKS5jbGFzc05hbWUrIiAiK3cuY29uZmlnLmFsdElucHV0Q2xhc3MpO3BlKCJvblBhcnNlQ29uZmlnIil9KCksbGUoKSxmdW5jdGlvbigpe2lmKHcuaW5wdXQ9cmUoKSwhdy5pbnB1dClyZXR1cm4gdm9pZCB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGlucHV0IGVsZW1lbnQgc3BlY2lmaWVkIikpO3cuaW5wdXQuX3R5cGU9dy5pbnB1dC50eXBlLHcuaW5wdXQudHlwZT0idGV4dCIsdy5pbnB1dC5jbGFzc0xpc3QuYWRkKCJmbGF0cGlja3ItaW5wdXQiKSx3Ll9pbnB1dD13LmlucHV0LHcuY29uZmlnLmFsdElucHV0JiYody5hbHRJbnB1dD1zKHcuaW5wdXQubm9kZU5hbWUsdy5jb25maWcuYWx0SW5wdXRDbGFzcyksdy5faW5wdXQ9dy5hbHRJbnB1dCx3LmFsdElucHV0LnBsYWNlaG9sZGVyPXcuaW5wdXQucGxhY2Vob2xkZXIsdy5hbHRJbnB1dC5kaXNhYmxlZD13LmlucHV0LmRpc2FibGVkLHcuYWx0SW5wdXQucmVxdWlyZWQ9dy5pbnB1dC5yZXF1aXJlZCx3LmFsdElucHV0LnRhYkluZGV4PXcuaW5wdXQudGFiSW5kZXgsdy5hbHRJbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLCF3LmNvbmZpZy5zdGF0aWMmJncuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmFsdElucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpKTt3LmNvbmZpZy5hbGxvd0lucHV0fHx3Ll9pbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwicmVhZG9ubHkiKTt3Ll9wb3NpdGlvbkVsZW1lbnQ9dy5jb25maWcucG9zaXRpb25FbGVtZW50fHx3Ll9pbnB1dH0oKSxmdW5jdGlvbigpe3cuc2VsZWN0ZWREYXRlcz1bXSx3Lm5vdz13LnBhcnNlRGF0ZSh3LmNvbmZpZy5ub3cpfHxuZXcgRGF0ZTt2YXIgZT13LmNvbmZpZy5kZWZhdWx0RGF0ZXx8KCJJTlBVVCIhPT13LmlucHV0Lm5vZGVOYW1lJiYiVEVYVEFSRUEiIT09dy5pbnB1dC5ub2RlTmFtZXx8IXcuaW5wdXQucGxhY2Vob2xkZXJ8fHcuaW5wdXQudmFsdWUhPT13LmlucHV0LnBsYWNlaG9sZGVyP3cuaW5wdXQudmFsdWU6bnVsbCk7ZSYmbWUoZSx3LmNvbmZpZy5kYXRlRm9ybWF0KTt3Ll9pbml0aWFsRGF0ZT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjA\/dy5zZWxlY3RlZERhdGVzWzBdOncuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0VGltZSgpPncubm93LmdldFRpbWUoKT93LmNvbmZpZy5taW5EYXRlOncuY29uZmlnLm1heERhdGUmJncuY29uZmlnLm1heERhdGUuZ2V0VGltZSgpPHcubm93LmdldFRpbWUoKT93LmNvbmZpZy5tYXhEYXRlOncubm93LHcuY3VycmVudFllYXI9dy5faW5pdGlhbERhdGUuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD13Ll9pbml0aWFsRGF0ZS5nZXRNb250aCgpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MCYmKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXcuc2VsZWN0ZWREYXRlc1swXSk7dm9pZCAwIT09dy5jb25maWcubWluVGltZSYmKHcuY29uZmlnLm1pblRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWluVGltZSwiSDppIikpO3ZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWUmJih3LmNvbmZpZy5tYXhUaW1lPXcucGFyc2VEYXRlKHcuY29uZmlnLm1heFRpbWUsIkg6aSIpKTt3Lm1pbkRhdGVIYXNUaW1lPSEhdy5jb25maWcubWluRGF0ZSYmKHcuY29uZmlnLm1pbkRhdGUuZ2V0SG91cnMoKT4wfHx3LmNvbmZpZy5taW5EYXRlLmdldE1pbnV0ZXMoKT4wfHx3LmNvbmZpZy5taW5EYXRlLmdldFNlY29uZHMoKT4wKSx3Lm1heERhdGVIYXNUaW1lPSEhdy5jb25maWcubWF4RGF0ZSYmKHcuY29uZmlnLm1heERhdGUuZ2V0SG91cnMoKT4wfHx3LmNvbmZpZy5tYXhEYXRlLmdldE1pbnV0ZXMoKT4wfHx3LmNvbmZpZy5tYXhEYXRlLmdldFNlY29uZHMoKT4wKX0oKSx3LnV0aWxzPXtnZXREYXlzSW5Nb250aDpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT1lJiYoZT13LmN1cnJlbnRNb250aCksdm9pZCAwPT09dCYmKHQ9dy5jdXJyZW50WWVhciksMT09PWUmJih0JTQ9PTAmJnQlMTAwIT0wfHx0JTQwMD09MCk\/Mjk6dy5sMTBuLmRheXNJbk1vbnRoW2VdfX0sdy5pc01vYmlsZXx8ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKHcuY2FsZW5kYXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWNhbGVuZGFyIiksdy5jYWxlbmRhckNvbnRhaW5lci50YWJJbmRleD0tMSwhdy5jb25maWcubm9DYWxlbmRhcil7aWYoZS5hcHBlbmRDaGlsZCgody5tb250aE5hdj1zKCJkaXYiLCJmbGF0cGlja3ItbW9udGhzIiksdy55ZWFyRWxlbWVudHM9W10sdy5tb250aEVsZW1lbnRzPVtdLHcucHJldk1vbnRoTmF2PXMoInNwYW4iLCJmbGF0cGlja3ItcHJldi1tb250aCIpLHcucHJldk1vbnRoTmF2LmlubmVySFRNTD13LmNvbmZpZy5wcmV2QXJyb3csdy5uZXh0TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1uZXh0LW1vbnRoIiksdy5uZXh0TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLm5leHRBcnJvdyxxKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlUHJldk1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVQcmV2TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlUHJldk1vbnRoQXJyb3chPT1lJiYoZCh3LnByZXZNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZVByZXZNb250aEFycm93PWUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJfaGlkZU5leHRNb250aEFycm93Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuX19oaWRlTmV4dE1vbnRoQXJyb3d9LHNldDpmdW5jdGlvbihlKXt3Ll9faGlkZU5leHRNb250aEFycm93IT09ZSYmKGQody5uZXh0TW9udGhOYXYsImZsYXRwaWNrci1kaXNhYmxlZCIsZSksdy5fX2hpZGVOZXh0TW9udGhBcnJvdz1lKX19KSx3LmN1cnJlbnRZZWFyRWxlbWVudD13LnllYXJFbGVtZW50c1swXSxEZSgpLHcubW9udGhOYXYpKSx3LmlubmVyQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci1pbm5lckNvbnRhaW5lciIpLHcuY29uZmlnLndlZWtOdW1iZXJzKXt2YXIgdD1mdW5jdGlvbigpe3cuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFzV2Vla3MiKTt2YXIgZT1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla3dyYXBwZXIiKTtlLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3Itd2Vla2RheSIsdy5sMTBuLndlZWtBYmJyZXZpYXRpb24pKTt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla3MiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZCh0KSx7d2Vla1dyYXBwZXI6ZSx3ZWVrTnVtYmVyczp0fX0oKSxuPXQud2Vla1dyYXBwZXIsYT10LndlZWtOdW1iZXJzO3cuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQobiksdy53ZWVrTnVtYmVycz1hLHcud2Vla1dyYXBwZXI9bn13LnJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXJDb250YWluZXIiKSx3LnJDb250YWluZXIuYXBwZW5kQ2hpbGQoJCgpKSx3LmRheXNDb250YWluZXJ8fCh3LmRheXNDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWRheXMiKSx3LmRheXNDb250YWluZXIudGFiSW5kZXg9LTEpLEooKSx3LnJDb250YWluZXIuYXBwZW5kQ2hpbGQody5kYXlzQ29udGFpbmVyKSx3LmlubmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuckNvbnRhaW5lciksZS5hcHBlbmRDaGlsZCh3LmlubmVyQ29udGFpbmVyKX13LmNvbmZpZy5lbmFibGVUaW1lJiZlLmFwcGVuZENoaWxkKGZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNUaW1lIiksdy5jb25maWcubm9DYWxlbmRhciYmdy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJub0NhbGVuZGFyIik7dmFyIGU9eCh3LmNvbmZpZyk7dy50aW1lQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci10aW1lIiksdy50aW1lQ29udGFpbmVyLnRhYkluZGV4PS0xO3ZhciB0PXMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6Iiksbj1tKCJmbGF0cGlja3ItaG91ciIseyJhcmlhLWxhYmVsIjp3LmwxMG4uaG91ckFyaWFMYWJlbH0pO3cuaG91ckVsZW1lbnQ9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTt2YXIgYT1tKCJmbGF0cGlja3ItbWludXRlIix7ImFyaWEtbGFiZWwiOncubDEwbi5taW51dGVBcmlhTGFiZWx9KTt3Lm1pbnV0ZUVsZW1lbnQ9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSx3LmhvdXJFbGVtZW50LnRhYkluZGV4PXcubWludXRlRWxlbWVudC50YWJJbmRleD0tMSx3LmhvdXJFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0SG91cnMoKTp3LmNvbmZpZy50aW1lXzI0aHI\/ZS5ob3VyczpmdW5jdGlvbihlKXtzd2l0Y2goZSUyNCl7Y2FzZSAwOmNhc2UgMTI6cmV0dXJuIDEyO2RlZmF1bHQ6cmV0dXJuIGUlMTJ9fShlLmhvdXJzKSksdy5taW51dGVFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0TWludXRlcygpOmUubWludXRlcyksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcuY29uZmlnLmhvdXJJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcubWludXRlSW5jcmVtZW50LnRvU3RyaW5nKCkpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLHcuY29uZmlnLnRpbWVfMjRocj8iMCI6IjEiKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy50aW1lXzI0aHI\/IjIzIjoiMTIiKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsIjAiKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLCI1OSIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIsIjIiKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQobiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHQpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChhKSx3LmNvbmZpZy50aW1lXzI0aHImJncudGltZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJ0aW1lMjRociIpO2lmKHcuY29uZmlnLmVuYWJsZVNlY29uZHMpe3cudGltZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNTZWNvbmRzIik7dmFyIGk9bSgiZmxhdHBpY2tyLXNlY29uZCIpO3cuc2Vjb25kRWxlbWVudD1pLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuc2Vjb25kRWxlbWVudC52YWx1ZT1vKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLmdldFNlY29uZHMoKTplLnNlY29uZHMpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcubWludXRlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzKCJzcGFuIiwiZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yIiwiOiIpKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoaSl9dy5jb25maWcudGltZV8yNGhyfHwody5hbVBNPXMoInNwYW4iLCJmbGF0cGlja3ItYW0tcG0iLHcubDEwbi5hbVBNW3IoKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cuaG91ckVsZW1lbnQudmFsdWU6dy5jb25maWcuZGVmYXVsdEhvdXIpPjExKV0pLHcuYW1QTS50aXRsZT13LmwxMG4udG9nZ2xlVGl0bGUsdy5hbVBNLnRhYkluZGV4PS0xLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmFtUE0pKTtyZXR1cm4gdy50aW1lQ29udGFpbmVyfSgpKTtkKHcuY2FsZW5kYXJDb250YWluZXIsInJhbmdlTW9kZSIsInJhbmdlIj09PXcuY29uZmlnLm1vZGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYW5pbWF0ZSIsITA9PT13LmNvbmZpZy5hbmltYXRlKSxkKHcuY2FsZW5kYXJDb250YWluZXIsIm11bHRpTW9udGgiLHcuY29uZmlnLnNob3dNb250aHM+MSksdy5jYWxlbmRhckNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTt2YXIgaT12b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8ubm9kZVR5cGU7aWYoKHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljKSYmKHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCh3LmNvbmZpZy5pbmxpbmU\/ImlubGluZSI6InN0YXRpYyIpLHcuY29uZmlnLmlubGluZSYmKCFpJiZ3LmVsZW1lbnQucGFyZW50Tm9kZT93LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5jYWxlbmRhckNvbnRhaW5lcix3Ll9pbnB1dC5uZXh0U2libGluZyk6dm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8mJncuY29uZmlnLmFwcGVuZFRvLmFwcGVuZENoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpKSx3LmNvbmZpZy5zdGF0aWMpKXt2YXIgbD1zKCJkaXYiLCJmbGF0cGlja3Itd3JhcHBlciIpO3cuZWxlbWVudC5wYXJlbnROb2RlJiZ3LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCx3LmVsZW1lbnQpLGwuYXBwZW5kQ2hpbGQody5lbGVtZW50KSx3LmFsdElucHV0JiZsLmFwcGVuZENoaWxkKHcuYWx0SW5wdXQpLGwuYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcil9dy5jb25maWcuc3RhdGljfHx3LmNvbmZpZy5pbmxpbmV8fCh2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbz93LmNvbmZpZy5hcHBlbmRUbzp3aW5kb3cuZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcil9KCksZnVuY3Rpb24oKXt3LmNvbmZpZy53cmFwJiZbIm9wZW4iLCJjbG9zZSIsInRvZ2dsZSIsImNsZWFyIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh3LmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtIitlKyJdIiksKGZ1bmN0aW9uKHQpe3JldHVybiBBKHQsImNsaWNrIix3W2VdKX0pKX0pKTtpZih3LmlzTW9iaWxlKXJldHVybiB2b2lkIGZ1bmN0aW9uKCl7dmFyIGU9dy5jb25maWcuZW5hYmxlVGltZT93LmNvbmZpZy5ub0NhbGVuZGFyPyJ0aW1lIjoiZGF0ZXRpbWUtbG9jYWwiOiJkYXRlIjt3Lm1vYmlsZUlucHV0PXMoImlucHV0Iix3LmlucHV0LmNsYXNzTmFtZSsiIGZsYXRwaWNrci1tb2JpbGUiKSx3Lm1vYmlsZUlucHV0LnRhYkluZGV4PTEsdy5tb2JpbGVJbnB1dC50eXBlPWUsdy5tb2JpbGVJbnB1dC5kaXNhYmxlZD13LmlucHV0LmRpc2FibGVkLHcubW9iaWxlSW5wdXQucmVxdWlyZWQ9dy5pbnB1dC5yZXF1aXJlZCx3Lm1vYmlsZUlucHV0LnBsYWNlaG9sZGVyPXcuaW5wdXQucGxhY2Vob2xkZXIsdy5tb2JpbGVGb3JtYXRTdHI9ImRhdGV0aW1lLWxvY2FsIj09PWU\/IlktbS1kXFxUSDppOlMiOiJkYXRlIj09PWU\/IlktbS1kIjoiSDppOlMiLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MCYmKHcubW9iaWxlSW5wdXQuZGVmYXVsdFZhbHVlPXcubW9iaWxlSW5wdXQudmFsdWU9dy5mb3JtYXREYXRlKHcuc2VsZWN0ZWREYXRlc1swXSx3Lm1vYmlsZUZvcm1hdFN0cikpO3cuY29uZmlnLm1pbkRhdGUmJih3Lm1vYmlsZUlucHV0Lm1pbj13LmZvcm1hdERhdGUody5jb25maWcubWluRGF0ZSwiWS1tLWQiKSk7dy5jb25maWcubWF4RGF0ZSYmKHcubW9iaWxlSW5wdXQubWF4PXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5tYXhEYXRlLCJZLW0tZCIpKTt3LmlucHV0LmdldEF0dHJpYnV0ZSgic3RlcCIpJiYody5tb2JpbGVJbnB1dC5zdGVwPVN0cmluZyh3LmlucHV0LmdldEF0dHJpYnV0ZSgic3RlcCIpKSk7dy5pbnB1dC50eXBlPSJoaWRkZW4iLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnR5cGU9ImhpZGRlbiIpO3RyeXt3LmlucHV0LnBhcmVudE5vZGUmJncuaW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5tb2JpbGVJbnB1dCx3LmlucHV0Lm5leHRTaWJsaW5nKX1jYXRjaChlKXt9QSh3Lm1vYmlsZUlucHV0LCJjaGFuZ2UiLChmdW5jdGlvbihlKXt3LnNldERhdGUoZyhlKS52YWx1ZSwhMSx3Lm1vYmlsZUZvcm1hdFN0cikscGUoIm9uQ2hhbmdlIikscGUoIm9uQ2xvc2UiKX0pKX0oKTt2YXIgZT1sKGllLDUwKTt3Ll9kZWJvdW5jZWRDaGFuZ2U9bChOLDMwMCksdy5kYXlzQ29udGFpbmVyJiYhL2lQaG9uZXxpUGFkfGlQb2QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZBKHcuZGF5c0NvbnRhaW5lciwibW91c2VvdmVyIiwoZnVuY3Rpb24oZSl7InJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmFlKGcoZSkpfSkpO0Eod2luZG93LmRvY3VtZW50LmJvZHksImtleWRvd24iLG5lKSx3LmNvbmZpZy5pbmxpbmV8fHcuY29uZmlnLnN0YXRpY3x8QSh3aW5kb3csInJlc2l6ZSIsZSk7dm9pZCAwIT09d2luZG93Lm9udG91Y2hzdGFydD9BKHdpbmRvdy5kb2N1bWVudCwidG91Y2hzdGFydCIsWik6QSh3aW5kb3cuZG9jdW1lbnQsIm1vdXNlZG93biIsWik7QSh3aW5kb3cuZG9jdW1lbnQsImZvY3VzIixaLHtjYXB0dXJlOiEwfSksITA9PT13LmNvbmZpZy5jbGlja09wZW5zJiYoQSh3Ll9pbnB1dCwiZm9jdXMiLHcub3BlbiksQSh3Ll9pbnB1dCwiY2xpY2siLHcub3BlbikpO3ZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKEEody5tb250aE5hdiwiY2xpY2siLENlKSxBKHcubW9udGhOYXYsWyJrZXl1cCIsImluY3JlbWVudCJdLEYpLEEody5kYXlzQ29udGFpbmVyLCJjbGljayIsdWUpKTtpZih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCl7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSkuc2VsZWN0KCl9O0Eody50aW1lQ29udGFpbmVyLFsiaW5jcmVtZW50Il0sSSksQSh3LnRpbWVDb250YWluZXIsImJsdXIiLEkse2NhcHR1cmU6ITB9KSxBKHcudGltZUNvbnRhaW5lciwiY2xpY2siLFkpLEEoW3cuaG91ckVsZW1lbnQsdy5taW51dGVFbGVtZW50XSxbImZvY3VzIiwiY2xpY2siXSx0KSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJkEody5zZWNvbmRFbGVtZW50LCJmb2N1cyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHcuc2Vjb25kRWxlbWVudCYmdy5zZWNvbmRFbGVtZW50LnNlbGVjdCgpfSkpLHZvaWQgMCE9PXcuYW1QTSYmQSh3LmFtUE0sImNsaWNrIiwoZnVuY3Rpb24oZSl7SShlKSxOKCl9KSl9dy5jb25maWcuYWxsb3dJbnB1dCYmQSh3Ll9pbnB1dCwiYmx1ciIsdGUpfSgpLCh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RofHx3LmNvbmZpZy5ub0NhbGVuZGFyKSYmKHcuY29uZmlnLmVuYWJsZVRpbWUmJl8ody5jb25maWcubm9DYWxlbmRhcj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iajp2b2lkIDApLGJlKCExKSksaygpO3ZhciB0PS9eKCg\/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7IXcuaXNNb2JpbGUmJnQmJmNlKCkscGUoIm9uUmVhZHkiKX0oKSx3fWZ1bmN0aW9uIGsoZSx0KXtmb3IodmFyIG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fSkpLGE9W10saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO3RyeXtpZihudWxsIT09by5nZXRBdHRyaWJ1dGUoImRhdGEtZnAtb21pdCIpKWNvbnRpbnVlO3ZvaWQgMCE9PW8uX2ZsYXRwaWNrciYmKG8uX2ZsYXRwaWNrci5kZXN0cm95KCksby5fZmxhdHBpY2tyPXZvaWQgMCksby5fZmxhdHBpY2tyPUUobyx0fHx7fSksYS5wdXNoKG8uX2ZsYXRwaWNrcil9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19cmV0dXJuIDE9PT1hLmxlbmd0aD9hWzBdOmF9InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MRWxlbWVudCYmInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ29sbGVjdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiBOb2RlTGlzdCYmKEhUTUxDb2xsZWN0aW9uLnByb3RvdHlwZS5mbGF0cGlja3I9Tm9kZUxpc3QucHJvdG90eXBlLmZsYXRwaWNrcj1mdW5jdGlvbihlKXtyZXR1cm4gayh0aGlzLGUpfSxIVE1MRWxlbWVudC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKFt0aGlzXSxlKX0pO3ZhciBUPWZ1bmN0aW9uKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2sod2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSksdCk6ZSBpbnN0YW5jZW9mIE5vZGU\/ayhbZV0sdCk6ayhlLHQpfTtyZXR1cm4gVC5kZWZhdWx0Q29uZmlnPXt9LFQubDEwbnM9e2VuOmUoe30saSksZGVmYXVsdDplKHt9LGkpfSxULmxvY2FsaXplPWZ1bmN0aW9uKHQpe1QubDEwbnMuZGVmYXVsdD1lKGUoe30sVC5sMTBucy5kZWZhdWx0KSx0KX0sVC5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtULmRlZmF1bHRDb25maWc9ZShlKHt9LFQuZGVmYXVsdENvbmZpZyksdCl9LFQucGFyc2VEYXRlPUMoe30pLFQuZm9ybWF0RGF0ZT1iKHt9KSxULmNvbXBhcmVEYXRlcz1NLCJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiZ2b2lkIDAhPT1qUXVlcnkuZm4mJihqUXVlcnkuZm4uZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9KSxEYXRlLnByb3RvdHlwZS5mcF9pbmNyPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpLHRoaXMuZ2V0RGF0ZSgpKygic3RyaW5nIj09dHlwZW9mIGU\/cGFyc2VJbnQoZSwxMCk6ZSkpfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5mbGF0cGlja3I9VCksVH0pKTsKLyoqIC9qcy92YW5pbGxhanMvZmxhdHBpY2tyLmZyLmpzICoqLwp2YXIgX19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNToxNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDI0LTAxLTMxIDE0OjMyOjQ2IjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MTo0NiI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTE6MzAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIxLTEyLTIxIDEzOjMwOjUyIjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiLGEpeyJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZHVsZT9hKGV4cG9ydHMpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImV4cG9ydHMiXSxhKTooYj0idW5kZWZpbmVkIiE9PXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6Ynx8c2VsZixhKGIuZnI9e30pKX0pKHRoaXMsZnVuY3Rpb24oYil7dmFyIGE9InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZmxhdHBpY2tyP3dpbmRvdy5mbGF0cGlja3I6e2wxMG5zOnt9fSxjPXtmaXJzdERheU9mV2VlazoxLHdlZWtkYXlzOntzaG9ydGhhbmQ6ImRpbSBsdW4gbWFyIG1lciBqZXUgdmVuIHNhbSIuc3BsaXQoIiAiKSxsb25naGFuZDoiZGltYW5jaGUgbHVuZGkgbWFyZGkgbWVyY3JlZGkgamV1ZGkgdmVuZHJlZGkgc2FtZWRpIi5zcGxpdCgiICIpfSxtb250aHM6e3Nob3J0aGFuZDoiamFudiBmw6l2ciBtYXJzIGF2ciBtYWkganVpbiBqdWlsIGFvw7t0IHNlcHQgb2N0IG5vdiBkw6ljIi5zcGxpdCgiICIpLApsb25naGFuZDoiamFudmllciBmw6l2cmllciBtYXJzIGF2cmlsIG1haSBqdWluIGp1aWxsZXQgYW\/Du3Qgc2VwdGVtYnJlIG9jdG9icmUgbm92ZW1icmUgZMOpY2VtYnJlIi5zcGxpdCgiICIpfSxvcmRpbmFsOmZ1bmN0aW9uKGQpe3JldHVybiAxPGQ\/IiI6ImVyIn0scmFuZ2VTZXBhcmF0b3I6IiBhdSAiLHdlZWtBYmJyZXZpYXRpb246IlNlbSIsc2Nyb2xsVGl0bGU6IkTDqWZpbGVyIHBvdXIgYXVnbWVudGVyIGxhIHZhbGV1ciIsdG9nZ2xlVGl0bGU6IkNsaXF1ZXIgcG91ciBiYXNjdWxlciIsdGltZV8yNGhyOiEwfTthLmwxMG5zLmZyPWM7YT1hLmwxMG5zO2IuRnJlbmNoPWM7Yi5kZWZhdWx0PWE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSk7Ci8qKiAvanMvZnIubmV3Y2Fycy5pbmxpbmUuanMgKiovCnZhciBqc19kMmNfZ2V0X3ZhbD0oanNfZDJjX2dldF92YWx8fGZ1bmN0aW9uKGlkKXt0cnl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZTt9Y2F0Y2goZXgpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKWNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIraWQsZXgpO3JldHVybicnO319KTt2YXIgaWRlbnRfNDg5NjQwNDljNTNjYjQyYzE2ZmVkMWU4ZGUwZDMzNjY7dHJ5e2Z1bmN0aW9uIE9wdGFub25XcmFwcGVyKCl7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMjU1NDMwYWIxYTg5NTcxN2VkYjljYWQ1MjQxYmFkN2U7dHJ5e0QyQVNDKHsidXNlckxhbmd1YWdlIjoiZnJlIiwicGFDb2RlIjoiNzc1NiIsImNsaWVudCI6ImhvbmRhIiwicGFnZUlkIjoic2hvd3Jvb20iLCJvZW1JbmZvIjp7Im9lbURlYWxlckNvZGUiOiI3NzU2IiwiMCI6Ijc3NTYiLCJvZW0iOiJIb25kYSIsIjEiOiJIb25kYSJ9LCJkZWFsZXJfbmFtZSI6IiIsImZvcm1NYXAiOnsiQURGQnVybGluZ3Rvbl9DZW50cmVfLV9FVl9Ub3VyXy1fRHJpdmVmZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIEJ1cmxpbmd0b24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIEJ1cmxpbmd0b24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGY2FtcGJlbGxyaXZlcmNhcnMuY2FfKEQyQ19NZWRpYSlfLV9MZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhbXBiZWxscml2ZXJjYXJzLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIFVzZWQgICBMb2NfcGh5c2ljYWw9OTAwMTYxM10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhbXBiZWxscml2ZXJjYXJzLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIFVzZWQgICBMb2NfcGh5c2ljYWw9OTAwMTYxM10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0FwcCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9DYXIiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9PZmYiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1BERiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9SZXEiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1NlciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgW0ZhY2Vib29rIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgW0ZhY2Vib29rIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1RyYSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9WZWgiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYV8tX09yZ2FuaWMpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbT3JnYW5pY10ifSwiQURGZGFuaWVscGFyZWRvZGdlLmNvbV8ocGFyX0QyQ19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGRhbmllbHBhcmVkb2RnZS5jb20gKHBhciBEMkMgTWVkaWEpIC0gRDJDIE1lZGlhIC0gTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIFtHb29nbGUgLSBOZXVmLXZsYV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRhbmllbHBhcmVkb2RnZS5jb20gKHBhciBEMkMgTWVkaWEpIC0gRDJDIE1lZGlhIC0gTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIFtHb29nbGUgLSBOZXVmLXZsYV0ifSwiQURGZGVtb2NybS5kMmNtZWRpYS5jYV8oRDJDX01lZGlhXy1fT3JnYSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBkZW1vY3JtLmQyY21lZGlhLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIFtPcmdhbmljXSJ9LCJBREZNb25fc2l0ZV8tX0QyQ19NZWRpYV8tX0xlYWRfOl9EZW1hbmRlIjp7IkZSRU5DSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19NZWRpYSlfLV8iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIFVzZWQtdmxhICAgTG9jX3BoeXNpY2FsPTkwMDExNDFdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIFVzZWQtdmxhICAgTG9jX3BoeXNpY2FsPTkwMDExNDFdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19NZWRpYSlfXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpICAtIExlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgW0ZhY2Vib29rIC0gVXNlZCBbIEtleXdvcmQ6IFVzZWQrVHJ1Y2tdICBMb2NfIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpICAtIExlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgW0ZhY2Vib29rIC0gVXNlZCBbIEtleXdvcmQ6IFVzZWQrVHJ1Y2tdICBMb2NfcCJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDICBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTE4XSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDICBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTE4XSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tX18oRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTMzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTMzXSJ9LCJBREZwYWxsYWRpbm9zdWJhcnUuY2FfKHBhcl9EMkNfTWVkaWFfLV9PIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub3N1YmFydS5jYSAocGFyIEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gRDJDIE1lZGlhIC0gTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QgW09yZ2FuaWNdIn0sIkFERlNjYXJib3JvdWdoX1Rvd25fQ2VudHJlXy1fRVZfVG91cl8tX0QiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTY2FyYm9yb3VnaCBUb3duIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTY2FyYm9yb3VnaCBUb3duIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNoZXJ3YXlfR2FyZGVuc18tX0VWX1RvdXJfLV9Ecml2ZWZlc3QiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU2hlcndheSBHYXJkZW5zIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9Ecml2ZWZlc3RfK19LaSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNxdWFyZV9PbmVfLV9FVl9Ub3VyXy1fS2lhX1NpZ25fVXBfSG8iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBLaWEgU2lnbiBVcCBIb3QgTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGVXBwZXJfQ2FuYWRhX01hbGxfLV9FVl9Ub3VyXy1fRHJpdmVmZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFVwcGVyIENhbmFkYSBNYWxsIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFVwcGVyIENhbmFkYSBNYWxsIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQUlDaGF0Ym90TGVhZCI6eyJGUkVOQ0giOiJMZWFkIDogQ2hhdEJvdCBJQSIsIkVOR0xJU0giOiJMZWFkOiBDaGF0Qm90IEFJIn0sIkF2YWlsYWJpbGl0eVVzZWQiOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkJhbm5lckZvcm0iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBmb3JtIGJhbm5lciIsIkVOR0xJU0giOiJMZWFkOiBCYW5uZXIgRm9ybSBSZXF1ZXN0In0sIkJlc3RQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgIG1laWxsZXVyIHByaXggKHZlaGljdWxlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgYmVzdCBwcmljZSAobmV3IHZlaGljbGUpIn0sIkJvZHlTaG9wIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGVuIGNhcm9zc2VyaWUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBib2R5IHNob3AgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJCcm9jaHVyZXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnJvY2h1cmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBicm9jaHVyZSIsIkVOR0xJU0giOiJMZWFkIDogQnJvY2h1cmUgcmVxdWVzdCJ9LCJCdWlsZEFuZFByaWNlX1NhdmUiOnsiRlJFTkNIIjoiTGVhZDogQ29uZmlndXJhdGlvbiBkJ3VuIHZlaGljdWxlIG5ldWYiLCJFTkdMSVNIIjoiTGVhZDogTmV3IFZlaGljbGUgQ29uZmlndXJhdGlvbiAoQnVpbGQgJiBQcmljZSkifSwiQnVpbGRBbmRQcmljZV9TdG9jayI6eyJGUkVOQ0giOiJMZWFkOiBEaXNwb25pYmlsaXRlIGQndW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkifSwiQ2FycHJvb2ZNYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIENhckZheCIsIkVOR0xJU0giOiJMZWFkOiBDYXJGYXggcmVxdWVzdCJ9LCJDb250YWN0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFZpc2l0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ29udGFjdFZpc2l0UmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ3JlZGl0Qm9vc3RNdWx0aSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHByZXF1YWxpZmljYXRpb24gZGUgY3JlZGl0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIENyZWRpdCBQcmUtUXVhbGlmaWNhdGlvbiJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IChQbHVzaWV1cnMgZXRhcGVzKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcyAyZSBjaGFuY2UpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsaXN0ZXAgMm5kIGNoYW5jZSkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOnsiRlJFTkNIIjoiTGVhZDogQXBwcm9iYXRpb24gZGUgY3JlZGl0IGluc3RhbnRhbmVlIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgQ3JlZGl0IEFwcHJvdmFsIn0sIkNyZWRpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGVGdWxsIjp7IkZSRU5DSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdF9TaG9ydCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAodmVyc2lvbiBjb3VydGUpIiwiRU5HTElTSCI6IkxlYWQgOiBDcmVkaXQgYXBwbGljYXRpb24gKHNob3J0IHZlcnNpb24pIn0sIkRlYWxlckFwcG9pbnRtZW50Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIiwiRU5HTElTSCI6IkxlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QifSwiRGlzY292ZXJPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAiLCJFTkdMSVNIIjoiTGVhZDogU2VlIE9mZmVyIENvdXBvbiBpbiBTUlAifSwiRXN0aGV0aWNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYSBsJ2VzdGhldHF1ZSBldCBsYXZlLWF1dG8iLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBlc3RoZXRpYyBhbmQgY2FyIHdhc2ggYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJmYWNlYm9va0Nvbm5lY3QiOnsiRlJFTkNIIjoiTGVhZDogUmFiYWlzIEZhY2Vib29rIiwiRU5HTElTSCI6IkxlYWQ6IEZhY2Vib29rIFJlYmF0ZSJ9LCJGaW5kVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZWNoZXJjaGUgZGUgdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCB0byBmaW5kIGEgcHJlLW93bmVkIHZlaGljbGUifSwiaGVhZGVyU2VydmljZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IEV4cHJlc3MifSwiTWFrZU9mZmVyIjp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwiTWFrZU9mZmVyTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwibWVudVNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1vbnRobHlQYXltZW50cyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX05FVyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX1NNUyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIC0gU01TIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMgLSBTTVMifSwiTW9udGhseVBheW1lbnRzX1NNU19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIlBhcnRzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb21tYW5kZSBwaSZlZ3JhdmU7Y2UiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdmVoaWNsZSBwYXJ0cyJ9LCJQaG90b1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwaG90b3MiLCJFTkdMSVNIIjoiTGVhZDogUGhvdG8gcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZTMiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZUFBIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwcml4IiwiRU5HTElTSCI6IkxlYWQ6IFByaWNlIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVBY2N1dHJhZGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkIDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkOiBUcmFkZS1pbiByZXF1ZXN0In0sIlF1aWNrRW1haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QifSwiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBFeHByZXNzIChpbnZlbnRhaXJlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IEV4cHJlc3MgcmVxdWVzdCAobmV3IGludmVudG9yeSkifSwiUmViYXRlQ291cG9uIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKHZlaGljdWxlIGVuIGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIn0sIlJlYmF0ZUNvdXBvbkludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIn0sIlJlYmF0ZUNvdXBvbk5ld0JOUCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjb25maWd1cmF0ZXVyKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGNvbmZpZ3VyYXRvcikifSwiUmViYXRlQ291cG9uTmV3SW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb25OZXdTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWJhdGVDb3Vwb25Qcm9tbyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGJvdXRvbiAnUHJvbW90aW9ucycpIiwiRU5HTElTSCI6IkxlYWQ6IFJlYmF0ZSBDb3Vwb24gcmVxdWVzdCAoJ1Byb21vdGlvbnMnIGJ1dHRvbikifSwiUmViYXRlQ291cG9uU2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uVXNlZFNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlY2FsbHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkJ2luZm9ybWF0aW9uIHN1ciBsZXMgcmFwcGVscyIsIkVOR0xJU0giOiJSZWNhbGwgaW5mb3JtYXRpb24gcmVxdWVzdCJ9LCJSZXNlcnZlSXROb3ciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlJlc2VydmVJdE5vd05ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBwb3VyIHJlc2VydmVyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIHByZS1vcmRlciBhIHZlaGljbGUifSwiU2VsbENhciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBWZW5kZXogVmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIn0sIlNlbGxDYXJfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6LW5vdXMgdm90cmUgdmVoaWN1bGUgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBidXkgeW91ciBjYXIgKFNob3J0IHZlcnNpb24pIn0sIlNlcnZpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0In0sIlNNU0xlYWQiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkOiBTTVMgcmVxdWVzdCJ9LCJTTVNMZWFkX29sZCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkIDogU01TIHJlcXVlc3QifSwiU3BlY3NSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZmljaGUgUERGIC0gVmVoaWN1bGUgZW4gaW52ZW50YWlyZSIsIkVOR0xJU0giOiJMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5In0sIlNwZWNzUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGJyb2NodXJlIFBERiIsIkVOR0xJU0giOiJMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCJ9LCJTUlBDb250YWN0VXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBTUlAiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU1JQIn0sIlRlc3REcml2ZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRlc3REcml2ZU5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRpcmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwbmV1cyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciB0aXJlcyJ9LCJQcm9tb01haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdpbnZpdGF0aW9uIGEgbGEgdmVudGUgcHJpdmVlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGludml0YXRpb24gdG8gcHJpdmF0ZSBzYWxlIn0sIlNsaWRlV2lkZ2V0Rm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIkNvbXBhcmVGb3JtIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiU2VhcmNoRmlsdGVycyI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sImhlYWRlckdsb2JhbFNlYXJjaCI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn19LCJzdWJfZ2E0IjoiWSJ9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Y3M2ZhNmFiYmZiNGJhYjNmNDlkYWFmYjM4OTFlMjdmO3RyeXsoZnVuY3Rpb24odyxkLHQscix1KXt2YXIgZixuLGk7d1t1XT13W3VdfHxbXSxmPWZ1bmN0aW9uKCl7dmFyIG89e3RpOiI1MDc5MzkxIixlbmFibGVBdXRvU3BhVHJhY2tpbmc6dHJ1ZX07by5xPXdbdV0sd1t1XT1uZXcgVUVUKG8pLHdbdV0ucHVzaCgicGFnZUxvYWQiKX0sbj1kLmNyZWF0ZUVsZW1lbnQodCksbi5zcmM9cixuLmFzeW5jPTEsbi5zZXRBdHRyaWJ1dGUoImRhdGEtb3QtaWdub3JlIix0cnVlKSxuLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5yZWFkeVN0YXRlO3MmJnMhPT0ibG9hZGVkIiYmcyE9PSJjb21wbGV0ZSJ8fChmKCksbi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCl9LGk9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KVswXSxpLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4saSl9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsIi8vYmF0LmJpbmcuY29tL2JhdC5qcyIsInVldHEiKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzYwMDU3MTBkMjkzOTU4OWYwZGM3MGEzZjA2M2YzYTQ4O3RyeXt2YXIgZGVwbG95bWVudFR5cGU9JycranNfZDJjX2dldF92YWwoIjJlamhiYzB5eW9nMHd3dyIpKycnO2lmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe2dhVHJhY2soJ190cmFja0V2ZW50JywnUGFnZXMgdnVlcycsJ1NlY3Rpb24tTmV1ZicsJycsMSk7fWVsc2UgaWYoZGVwbG95bWVudFR5cGU9PSdzdGFnaW5nJyl7Z2FUcmFjaygnYi5fdHJhY2tFdmVudCcsJ01vYmlsZSBwYWdldmlld3MnLCdTdGFuZGFyZCBNb2JpbGUnLHdpbmRvdy5sb2NhdGlvbi5ocmVmLCcxJyk7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTFjNDlmODRmNjlmY2ZiYjgzZjZlMjc5NTBkNmFkODg7dHJ5eyQoZnVuY3Rpb24oKXt0cnl7JCgnLmRlYWxlck1hcExpbmsnKS5kYXJrVG9vbHRpcCh7Y29udGVudDoiRGlyZWN0aW9ucyB2ZXJzICIranNfZDJjX2dldF92YWwoIjE3Z2E4dmhuY2h2azhjZ2siKSsiIixncmF2aXR5Oidub3J0aCcsdGhlbWU6J2xpZ2h0Jyx0cmlnZ2VyOidob3ZlcicsfSk7fWNhdGNoKGUpe319KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q3NWI3NjgyODY4NDgwMWUyNjZkYmNiYjNjODEyMDU1O3RyeXskKGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyOm5vdCgubm90cmlnZ2VyKScpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuc2hvdygpO30pLm9uKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuaGlkZSgpO30pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZTZjNDBiZDJiMTYxYjZmNWRmYWQyYjBlY2ZhNWM2ZWE7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKCl7JCgnI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCcpLnByb3AoJ2Rpc2FibGVkJyxmYWxzZSk7JCgnI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCcpLnNob3coKTt0cmFkZWlucG9wdXBkMmMuaW5pdFRyYWRlSW5TdGVwMSgpOyQoJ2lucHV0W25hbWU9c3RlcDNkb25lXScpLnZhbCgwKTt0cmFkZWlucG9wdXBkMmMub25CZWZvcmVPcGVuKCk7fSwib25CZWZvcmVzdWJtaXQiOmZ1bmN0aW9uKHBvcHVwKXtyZXR1cm4gdHJhZGVpbnBvcHVwZDJjLm9uQmVmb3JlU3VibWl0KHBvcHVwKTt9LCJvbkFmdGVyc3VibWl0IjpmdW5jdGlvbihwb3B1cCl7dHJhZGVpbnBvcHVwZDJjLm9uQWZ0ZXJTdWJtaXQocG9wdXApO0Nvb2tpZXMuc2V0KCdwb3B1cEZvcm1GaWxsZWQnLG51bGwsbnVsbCwnLycpO0Nvb2tpZXMuc2V0KCd0cmFkZUluUG9wdXBTaG93bicsbnVsbCxudWxsLCcvJyk7aWYoJCgnI3RyYWRlSW5CYXInKS5sZW5ndGgpeyQoJyN0cmFkZUluQmFyJykuaGlkZSgpO30KaWYoJCgnI3RyYWRlaW5CYXJGbG9hdCcpLmxlbmd0aCl7JCgnI3RyYWRlaW5CYXJGbG9hdCcpLmhpZGUoKTt9fSwib25CZWZvcmVWYWxpZGF0aW9uIjpmdW5jdGlvbihwb3B1cCl7cmV0dXJuIHRyYWRlaW5wb3B1cGQyYy5vbkJlZm9yZVZhbGlkYXRpb24ocG9wdXApO30sIm9uQmVmb3JlQ2xvc2UiOmZ1bmN0aW9uKHBvcHVwKXtDb29raWVzLmdldCgndHJhZGVJblBvcHVwU2hvd24nLG51bGwsbnVsbCwnLycpOyQoJyNsZWFkU2VudCcpLnJlbW92ZSgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCcpLmhpZGUoKTt9LCJvbkJlZm9yZUluaXRpYWxpemUiOmZ1bmN0aW9uKHBvcHVwKXtwb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUbz1wb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUbztwb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERj1wb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERjt9LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7dHJhZGVJbkJhckluaXRpYWxpemUoKTt0cmFkZWlucG9wdXBkMmMuaW5pdCgpO3dpbmRvdy5sYXVuY2hUcmFkZUluUG9wdXA9ZnVuY3Rpb24oc291cmNlKXt2YXIgcD0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoe3BvcHVwRXZlbnRTb3VyY2U6c291cmNlfSk7aWYoc291cmNlIT0iYXV0b21hdGljIil7cC5zZXRUcmlnZ2VyKCJjbGljayIpO30KcC5vcGVuKCk7cmV0dXJuIGZhbHNlO30KaWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHBvcHVwVHlwZT0idXNlZCI7dmFyIGN1cnJlbnRQYWdlPSIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiI7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgidXNlZCIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCJ0cmFkZUluQmFyUG9wdXAiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsIlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIsZmFsc2UpO3JldHVybiB0bXA7fX0sIm9uQmVmb3JlU2VuZE1haWwiOmZ1bmN0aW9uKHBvcHVwKXtpZignJz09Jycpe2lmKGVtYWlsSGFuZGxlci5nZXREZXAoKT09J05FVycpe2VtYWlsSGFuZGxlci5zZW5kVG89JzE5NzlkNWRiMTZmMTMyYWI2ZGRkYWEwMTIzZDZhODE0fDM2MDM2OTAyNjInO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JzdlYjc3ZDc2Mzc0NWMzYmFmM2IwYjRiOTUxY2FjNTBjfDM2MDM2OTAyNjInO2VtYWlsSGFuZGxlci5zZW5kVG9BREY9JzdlYjc3ZDc2Mzc0NWMzYmFmM2IwYjRiOTUxY2FjNTBjfDM2MDM2OTAyNjInO31lbHNle2VtYWlsSGFuZGxlci5zZW5kVG89JycranNfZDJjX2dldF92YWwoIjNwbTZ0dmdxcWVndzR3IikrJyc7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD0nJytqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrJyc7ZW1haWxIYW5kbGVyLnNlbmRUb0FERj0nJytqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrJyc7fX0KaWYoZW1haWxIYW5kbGVyLmdldERlcCgpPT0nTkVXJyl7ZW1haWxIYW5kbGVyLm1haWxJRD0ncHJpY2V2ZWhpY2xlbmV3Jzt9ZWxzZXtlbWFpbEhhbmRsZXIubWFpbElEPSdwcmljZXZlaGljbGUnO319LCJvbkFmdGVyQ29uc2VudCI6ZnVuY3Rpb24ocG9wdXApeyQoJyN0cmFkZUluQmFyUG9wdXBTdWJtaXQnKS5wcm9wKCdkaXNhYmxlZCcsZmFsc2UpOyQoJyN0cmFkZUluQmFyUG9wdXBTdWJtaXQnKS5zaG93KCk7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoidHJhZGVJblBvcHVwU2hvd24iLCJjb29raWVDcmVhdGUiOiJvblN1Ym1pdCIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiUHJpY2VWZWhpY2xlIiwib2ZmZXJ0eXBlIjoidHJhZGVJbkJhclBvcHVwIiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiM3BtNnR2Z3FxZWd3NHciKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJ0cmFkZUluQmFyUG9wdXBTdWJtaXQiLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOmZhbHNlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOmZhbHNlLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsImNvdW50ZG93biI6MTc4NDM0NzIwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9lMjVkNmNmYWIzOTI3ZDc4ZDllMmY1YTJlMzQ3NjAxNjt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYzBmYjMyODBkYzhlNTFkOTEzZDQ2ZjI1NDA5ZGMyYzE7dHJ5eyhmdW5jdGlvbigpe3ZhciBleGNlcnB0TWF4TnVtPTQ5MDt2YXIgc3VmaXg9Jyc7dmFyIHJldmlld0pzPScnO3ZhciBzdGFyY29sb3I9JyMxYjFiMWInO3N0YXJjb2xvcj0oc3RhcmNvbG9yPT09JyNmZmZmZmYnKT8nIzAwMDAwMCc6bnVsbDtjb25zdCBzdHlsZVN0YXJDb2xvcj0oc3RhcmNvbG9yIT09bnVsbCk\/InN0eWxlPSdjb2xvcjoiK3N0YXJjb2xvcisiJyI6IiI7dmFyIHNob3J0TGFuZz0kKCdib2R5JykuaGFzQ2xhc3MoJ0VOR0xJU0gnKT8nZW4nOidmcic7JC5nZXRKU09OKCcvanNvbi9nb29nbGVQbGFjZV8nK3Nob3J0TGFuZysnLmpzb24nLGZ1bmN0aW9uKGRhdGEpe2lmKHR5cGVvZiBkYXRhLmdfMCE9PSd1bmRlZmluZWQnJiZkYXRhLmdfMCE9PW51bGwmJnR5cGVvZiBkYXRhLmdfMC5yZXN1bHQhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIGRhdGEuZ18wLnJlc3VsdC5yZXZpZXdzIT09J3VuZGVmaW5lZCcpe3ZhciByZXZpZXdzPWRhdGEuZ18wLnJlc3VsdC5yZXZpZXdzO3ZhciBpbmRleD0wO3ZhciBtYXJnaW5SaWdodD0nJzskLmVhY2gocmV2aWV3cyxmdW5jdGlvbihrZXkscmV2aWV3KXtpZihpbmRleCUyPT09MCl7bWFyZ2luUmlnaHQ9J21hcmdpbi1yaWdodDoyMHB4Oyc7fWVsc2V7bWFyZ2luUmlnaHQ9J21hcmdpbi1yaWdodDowcHg7Jzt9CnZhciBhPW5ldyBEYXRlKHJldmlldy50aW1lKjEwMDApO3ZhciBkYXRlPWEuZ2V0TW9udGgoKSsnLycrYS5nZXREYXRlKCkrJy8nK2EuZ2V0RnVsbFllYXIoKTt2YXIgc3RhcnM9IjxkaXYgY2xhc3M9J3Jldmlldy1zdGFycyc+PHVsPiI7Zm9yKHZhciBpPTA7aTxyZXZpZXcucmF0aW5nO2krKyl7c3RhcnM9c3RhcnMrIjxsaT48aSAiK3N0eWxlU3RhckNvbG9yKyIgY2xhc3M9J3Jldmlldy1zdGFyJz48L2k+PC9saT4iO30Kc3RhcnM9c3RhcnMrIjwvdWw+PC9kaXY+IjtpZihyZXZpZXcucmF0aW5nPjMpe3Jldmlld0pzKz0iPGRpdiBjbGFzcz0ncmV2aWV3LWl0ZW0nIHN0eWxlPSciK21hcmdpblJpZ2h0KyInPjxkaXYgY2xhc3M9J3Jldmlldy1tZXRhJz48c3BhbiBjbGFzcz0ncmV2aWV3LWF1dGhvcic+IityZXZpZXcuYXV0aG9yX25hbWUrIjwvc3Bhbj48c3BhbiBjbGFzcz0ncmV2aWV3LXNlcCc+LCA8L3NwYW4+PHNwYW4gY2xhc3M9J3Jldmlldy1kYXRlJz4iK2RhdGUrIjwvc3Bhbj48L2Rpdj4iK3N0YXJzKyI8cCBjbGFzcz0ncmV2aWV3LXRleHQnPiIrcmV2aWV3LnRleHQuc3Vic3RyaW5nKDAsZXhjZXJwdE1heE51bSkrc3VmaXgrIjwvcD48L2Rpdj4iO2luZGV4Kys7fX0pO31lbHNle2NvbnNvbGUubG9nKCdnb29nbGUgcGxhY2UgZXJyb3InLGRhdGEpO30KJCgiI2dvb2dsZV9yZXZpZXdzIikuaHRtbChyZXZpZXdKcyk7dmFyIHJldmlld0Vscz0kKCIjZ29vZ2xlX3Jldmlld3MiKS5jaGlsZHJlbignLnJldmlldy1pdGVtJyk7dmFyIGN1cnJlbnRJZHg9cmV2aWV3RWxzLmxlbmd0aD4wPzA6ZmFsc2U7cmV2aWV3RWxzLmhpZGUoKTtpZihjdXJyZW50SWR4IT09ZmFsc2UpeyQocmV2aWV3RWxzW2N1cnJlbnRJZHhdKS5zaG93KCk7aWYodHlwZW9mICQocmV2aWV3RWxzW2N1cnJlbnRJZHgrMV0pIT09J3VuZGVmaW5lZCcpCiQocmV2aWV3RWxzW2N1cnJlbnRJZHgrMV0pLnNob3coKTt2YXIgdGltZXI7JCgiI2dvb2dsZV9yZXZpZXdzIikub24oJ21vdXNlZW50ZXInLGZ1bmN0aW9uKCl7aWYodGltZXIpY2xlYXJJbnRlcnZhbCh0aW1lcik7fSkub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7dGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtjdXJyZW50SWR4PWN1cnJlbnRJZHgrMjtpZihjdXJyZW50SWR4Pj1yZXZpZXdFbHMubGVuZ3RoKWN1cnJlbnRJZHg9MDtpZihyZXZpZXdFbHMubGVuZ3RoPjIpe2lmKGN1cnJlbnRJZHg8PXJldmlld0Vscy5sZW5ndGgpe3Jldmlld0Vscy5oaWRlKCk7JChyZXZpZXdFbHNbY3VycmVudElkeF0pLmZhZGVJbignc2xvdycpO30KaWYoY3VycmVudElkeCsxPD1yZXZpZXdFbHMubGVuZ3RoKXskKHJldmlld0Vsc1tjdXJyZW50SWR4KzFdKS5mYWRlSW4oJ3Nsb3cnKTt9fX0sNDAwMCk7fSkudHJpZ2dlcignbW91c2VsZWF2ZScpO319KTt9KSgpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMjYzYThkZjc3ZmY5OTY0ZTliZWI0MDVjNDVkMGM2NTM7dHJ5e2luVmlld0V4ZWMoJyNtYXBfb3Blbl9ob3VycycsZnVuY3Rpb24oKXtsZXQgbWFwVVJMPSdodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/cT1wbGFjZV9pZCUzQUNoSUp3Wm9PLXAxLXgwd1IxMVF5NXZjdmlIayZrZXk9X19LRVlfXyZjZW50ZXI9NDYuNjg1MzY0OTAwMCUyQy03MS4yMDA1MDU0MjczMTImem9vbT0xMCZsYW5ndWFnZT1mciZyZWdpb249Q0EnO2xldCBtYXBGcmFtZT0kKCcjbWFwZnJhbWUnKTtpZihtYXBGcmFtZS5sZW5ndGg+MCl7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihrZXkpe21hcEZyYW1lLmF0dHIoJ3NyYycsbWFwVVJMLnJlcGxhY2UoJ19fS0VZX18nLGtleSkpO30pO30KKG5ldyBPcGVuSG91cnMoe2NvbnRhaW5lcjonI21hcF9vcGVuX2hvdXJzJyxhdXRvT3Blbjp0cnVlLH0pKS5pbml0KCk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF85MWM0OWY4NGY2OWZjZmJiODNmNmUyNzk1MGQ2YWQ4ODt0cnl7JChmdW5jdGlvbigpe3RyeXskKCcuZGVhbGVyTWFwTGluaycpLmRhcmtUb29sdGlwKHtjb250ZW50OiJEaXJlY3Rpb25zIHZlcnMgIitqc19kMmNfZ2V0X3ZhbCgiMTdnYTh2aG5jaHZrOGNnayIpKyIiLGdyYXZpdHk6J25vcnRoJyx0aGVtZTonbGlnaHQnLHRyaWdnZXI6J2hvdmVyJyx9KTt9Y2F0Y2goZSl7fX0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTU7dHJ5eyQoZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXI6bm90KC5ub3RyaWdnZXIpJykub24oJ21vdXNlZW50ZXInLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5zaG93KCk7fSkub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5oaWRlKCk7fSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8wMjRkMzhjOWUxYTAzN2RkNDE1OGEwY2E5NTc0NGUzMDt0cnl7dmFyIHNpdGVTZWN0aW9uPSIiK2pzX2QyY19nZXRfdmFsKCJpcG51bTJteTAwZzhzMDAiKSsiIjt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2YxZDg1NDgyMTJiNWRhZDkxN2VjNGVmNzZiNDk5ZDI1O3RyeXskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2lmKENvb2tpZXMuZ2V0KCd0b2FzdHJBbGVydFNob3duJykmJkNvb2tpZXMuZ2V0KCd0b2FzdHJBbGVydFNob3duJyk8MCkKcmV0dXJuO2lmKCQoJyNQQUdFSUQnKS52YWwoKT09J25ld2NhcmRldGFpbC5odG1sJyYmJ25vJz09J3llcycpe3JldHVybjt9CnZhciB0b2FzdHJEaXNwbGF5VHlwZT0ncGFnZXZpZXcnO3ZhciB0b2FzdHJGcmVxdWVuY3k9Mjt2YXIgdG9hc3RySW5pdFZhbD0odG9hc3RyRGlzcGxheVR5cGU9PSdwYWdldmlldyc\/dG9hc3RyRnJlcXVlbmN5OjApO3ZhciB0b2FzdHJEaXNwbGF5ZWQ9KENvb2tpZXMuaGFzKCd0b2FzdHJBbGVydFNob3duJyk\/Q29va2llcy5nZXQoJ3RvYXN0ckFsZXJ0U2hvd24nKTp0b2FzdHJJbml0VmFsKTt2YXIgZGlzcGxheVRvYXN0cj1mYWxzZTtzZXRUb2FzdHJDb29raWUoKTtpZih0b2FzdHJEaXNwbGF5VHlwZT09J3BhZ2V2aWV3JyYmdG9hc3RyRGlzcGxheWVkPT10b2FzdHJGcmVxdWVuY3kpe2Rpc3BsYXlUb2FzdHI9dHJ1ZTtzZXRUb2FzdHJDb29raWUoJ3Jlc2V0Jyk7fWVsc2UgaWYodG9hc3RyRGlzcGxheVR5cGU9PSdzZXNzaW9uJyYmdG9hc3RyRGlzcGxheWVkPHRvYXN0ckZyZXF1ZW5jeSl7ZGlzcGxheVRvYXN0cj10cnVlO3NldFRvYXN0ckNvb2tpZSgnb2ZmJyk7fQp0b2FzdHIub3B0aW9ucz17ImNsb3NlQnV0dG9uIjp0cnVlLCJvbkNsb3NlIjpmdW5jdGlvbigpe3NldFRvYXN0ckNvb2tpZSgnb2ZmJyk7fSwiZGVidWciOmZhbHNlLCJuZXdlc3RPblRvcCI6ZmFsc2UsInByb2dyZXNzQmFyIjpmYWxzZSwicG9zaXRpb25DbGFzcyI6InRvYXN0LWJvdHRvbS1sZWZ0IiwicHJldmVudER1cGxpY2F0ZXMiOmZhbHNlLCJvbmNsaWNrIjpmdW5jdGlvbigpe3RvYXN0Q2xpY2tSZWRpcmVjdCgpO3NldFRvYXN0ckNvb2tpZSgib2ZmIik7fSwic2hvd0R1cmF0aW9uIjoiMzAwIiwiaGlkZUR1cmF0aW9uIjoiMTAwMCIsInRpbWVPdXQiOiI5MDAwMCIsImV4dGVuZGVkVGltZU91dCI6IjEwMDAiLCJzaG93RWFzaW5nIjoic3dpbmciLCJoaWRlRWFzaW5nIjoibGluZWFyIiwic2hvd01ldGhvZCI6InNsaWRlRG93biIsImhpZGVNZXRob2QiOiJmYWRlT3V0IiwiY29sb3IiOiIjZmZmZmZmIiwiYmdDb2xvciI6IiNlMzE3M2UifQppZihkaXNwbGF5VG9hc3RyKXtpZighKGZhbHNlJiZ3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDc2N3B4KScpLm1hdGNoZXMpKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG9hc3RyLndhcm5pbmcoIlNveWV6IHByJmVhY3V0ZTstYXBwcm91diZlYWN1dGU7IEVUIHJlY2V2ZXogbm90cmUgbWVpbGxldXJlIG9mZnJlIGRlIGZpbmFuY2VtZW50IHJhcGlkZW1lbnQuIEQmRWFjdXRlO0JVVEVaIEVOIENMSVFVQU5UIElDSS4iLCJEJmVhY3V0ZTtjb3V2cmV6IG5vcyBNRUlMTEVVUlMgT0ZGUkVTIGRlIEZJTkFOQ0VNRU5UISIpfSwxMDAwMCk7fX19KTtmdW5jdGlvbiB0b2FzdENsaWNrUmVkaXJlY3QoKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iamF2YXNjcmlwdDp2b2lkKCQoJyNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpKTsiO30KZnVuY3Rpb24gc2V0VG9hc3RyQ29va2llKHR5cGUpe2lmKHR5cGVvZiB0eXBlPT0ndW5kZWZpbmVkJykKdHlwZT0naW5jcmVtZW50Jzt2YXIgdG9hc3RyQ29va2llVmFsPShDb29raWVzLmhhcygndG9hc3RyQWxlcnRTaG93bicpP3BhcnNlSW50KENvb2tpZXMuZ2V0KCd0b2FzdHJBbGVydFNob3duJykpOjApO3N3aXRjaCh0eXBlKXtjYXNlJ29mZic6dG9hc3RyQ29va2llVmFsPS0xO2JyZWFrO2Nhc2UncmVzZXQnOnRvYXN0ckNvb2tpZVZhbD0xO2JyZWFrO2Nhc2UnaW5jcmVtZW50JzpkZWZhdWx0OnRvYXN0ckNvb2tpZVZhbCsrO30KQ29va2llcy5zZXQoJ3RvYXN0ckFsZXJ0U2hvd24nLHRvYXN0ckNvb2tpZVZhbCxudWxsLCcvJyk7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOThlYzk1MjU1ZjQ0YjM1ZWZlN2FjNjc0ZmFjZDY2OGM7dHJ5e3ZhciB1dG1fc291cmNlPWdldFBhcmFtZXRlckJ5TmFtZSgndXRtX3NvdXJjZScpO2pRdWVyeShmdW5jdGlvbigkKXtpZih1dG1fc291cmNlIT0iIil7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3RlcicsbnVsbCxudWxsLCIvIik7fQppZihDb29raWVzLmdldCgidXRtX2xhbmRpbmdfZm9vdGVyIik9PW51bGx8fENvb2tpZXMuZ2V0KCJ1dG1fbGFuZGluZ19mb290ZXIiKT09PSdudWxsJyl7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3Rlcicsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLDE4MCwiLyIpO30KaWYoJCgnI2dlbmVyaWNfZm9ybV9jb25maXJtJykubGVuZ3RoPDEpe3ZhciBGb3JtPSQoJzxmb3JtIGlkPSJnZW5lcmljX2Zvcm1fY29uZmlybSIgdGFyZ2V0PSJpZnJhbWVndHJhY2siIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPjwvZm9ybT4nKTt2YXIgbWFrZVZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiO3ZhciBtb2RlbFZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiI7dmFyIHllYXJWYWw9IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiO3ZhciByZWZlcmFsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIjt2YXIgc2VjdGlvblZhbD0nJytqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrJyc7dmFyIGZyb21BdXRvYXViYWluZT0kKCcjYXV0b2F1YmFpbmVfcG9wdXAnKS5sZW5ndGg+MCYmKCQoJyNhdXRvYXViYWluZV9wb3B1cCcpLnZhbCgpIT0nZmFsc2UnKTt2YXIgaW5wdXRzPVt7bmFtZToibGFiZWwiLHZhbHVlOiIiLCdjbGFzcyc6ImxhYmVsZW1haWwifSx7bmFtZToic2VjdGlvbiIsdmFsdWU6IiIsJ2NsYXNzJzoibGFiZWxzZWN0aW9uIn0se25hbWU6ImJyYW5kIix2YWx1ZTptYWtlVmFsLCdjbGFzcyc6ImJyYW5kZW1haWwifSx7bmFtZToibW9kZWwiLHZhbHVlOm1vZGVsVmFsLCdjbGFzcyc6Im1vZGVsZW1haWwifSx7bmFtZToieWVhciIsdmFsdWU6eWVhclZhbCwnY2xhc3MnOiJ5ZWFyZW1haWwifSx7bmFtZToiZ29vZ2xlaWQiLHZhbHVlOiIifSx7bmFtZToiZ29vZ2xlaWRkMmNtZWRpYSIsdmFsdWU6IiJ9LHtuYW1lOiJiaW5nY29uaWQiLHZhbHVlOiIifSx7bmFtZToiYmluZ2FjdGlvbmlkIix2YWx1ZToiIn0se25hbWU6ImJpbmdkb21haW5pZCIsdmFsdWU6IiJ9LHtuYW1lOiJndGFnX2NvbnZlcnNpb24iLHZhbHVlOiJndGFnIn0se25hbWU6ImFkcm9sbEFkdiIsdmFsdWU6IiJ9LHtuYW1lOiJhZHJvbGxQaXgiLHZhbHVlOiIifSx7bmFtZToiZmFjZWJvb2tDb25JZCIsdmFsdWU6IjEyOTMzNDIyODQwNjA5MzQifSx7bmFtZToibGVhZF9kZXBhcnRtZW50Iix2YWx1ZToiIn0se25hbWU6ImxlYWRUeXBlIix2YWx1ZToiIn0se25hbWU6InBhZ2VJRCIsdmFsdWU6IiJ9LHtuYW1lOiJjdXJyZW50VVJMIix2YWx1ZToiIn0se25hbWU6ImRvbWFpbiIsdmFsdWU6ImhvbmRhZG9ubmFjb25hLmNvbSJ9LHtuYW1lOiJyZWZlcnJlciIsdmFsdWU6cmVmZXJhbFZhbH0se25hbWU6ImlzZXhwcmVzcyIsdmFsdWU6IiIsJ2NsYXNzJzonaXNleHByZXNzJ30se25hbWU6ImlzcHJvbW8iLHZhbHVlOiIifSx7bmFtZToiaXNob21lcGFnZSIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLCdjbGFzcyc6InRlc3Rtb2RlIn0se25hbWU6J3RleHRDYXJTZWN0aW9uVHlwZScsdmFsdWU6c2VjdGlvblZhbH0se25hbWU6ImxhbmciLHZhbHVlOiJGUkVOQ0gifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjB9XQpmb3IodmFyIGk9MDtpPGlucHV0cy5sZW5ndGg7aSsrKXskKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiAvPicpLmF0dHIoaW5wdXRzW2ldKS5hcHBlbmRUbyhGb3JtKTt9CkZvcm0uYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7Rm9ybS5vbignc3VibWl0JyxvbkNvbmZpcm1TdWJtaXQpO30KaWYoJCgnI2d0cmFja0ZyYW1lJykubGVuZ3RoPDEpeyQoJzxpZnJhbWU+PC9pZnJhbWU+JykuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOidndHJhY2tGcmFtZScsbmFtZTonaWZyYW1lZ3RyYWNrJyxyb2xlOidub25lJyxzdHlsZTond2lkdGg6MXB4O2hlaWdodDoxcHg7Jyx0aXRsZTonZnJhbWUnfSkuYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7fX0pO3ZhciBzZXRDaGF0WmluZGV4PWZ1bmN0aW9uKCl7dmFyIGNoYXRFbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWVbdGl0bGU9ImNoYXQgd2lkZ2V0Il0nKTtpZihjaGF0RWwpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZVt0aXRsZT0iY2hhdCB3aWRnZXQiXScpLnBhcmVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3otaW5kZXgnLCcxMCcsJ2ltcG9ydGFudCcpO319CnNldFRpbWVvdXQoc2V0Q2hhdFppbmRleCwzMDAwKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNhMjQ2YTc5OGQyNWRjYzMzMTU3NmViNWZkODBkNDdlO3RyeXskKCcuY29uc2VudC5kaXNjbGFpbWVyJykuZGFya1Rvb2x0aXAoe2dyYXZpdHk6J3NvdXRoJyx0aGVtZTonbGlnaHQnLHRyaWdnZXI6J2hvdmVyJyxvcGFjaXR5OjEsfSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF84YzNlMjJmN2ViYjdlZDY0NzllYjUwMTdmNWYxMDg1Nzt0cnl7dHJ5e3dpbmRvdy5EMkNGYkNvbnNlbnQ9d2luZG93LkQyQ0ZiQ29uc2VudHx8e19zdGF0ZTpudWxsLF9xdWV1ZTpbXSxfZmx1c2g6ZnVuY3Rpb24oKXt2YXIgcT10aGlzLl9xdWV1ZTt0aGlzLl9xdWV1ZT1bXTtxLmZvckVhY2goZnVuY3Rpb24oY2Ipe3RyeXtjYigpO31jYXRjaChlKXt9fSk7fSxncmFudDpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSdncmFudCc7aWYodHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLCdncmFudCcpO3RoaXMuX2ZsdXNoKCk7fX0scmV2b2tlOmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9J3Jldm9rZSc7aWYodHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLCdyZXZva2UnKTt9fSxvbkdyYW50ZWQ6ZnVuY3Rpb24oY2Ipe2lmKHR5cGVvZiBjYiE9PSdmdW5jdGlvbicpe3JldHVybjt9aWYodGhpcy5fc3RhdGU9PT0nZ3JhbnQnJiZ0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe3RyeXtjYigpO31jYXRjaChlKXt9fWVsc2V7dGhpcy5fcXVldWUucHVzaChjYik7fX0sc3luY1RvRmJxOmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RhdGUmJnR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7ZmJxKCdjb25zZW50Jyx0aGlzLl9zdGF0ZSk7aWYodGhpcy5fc3RhdGU9PT0nZ3JhbnQnKXt0aGlzLl9mbHVzaCgpO319fX07c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHdpbmRvdy5EMkNGYkNvbnNlbnQuX3N0YXRlPT09bnVsbCYmdHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50PT09J3VuZGVmaW5lZCcpe3dpbmRvdy5EMkNGYkNvbnNlbnQuZ3JhbnQoKTt9fSwxNTAwKTshZnVuY3Rpb24oZixiLGUsdixuLHQscyl7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q\/bi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKTpuLnF1ZXVlLnB1c2goYXJndW1lbnRzKX07aWYoIWYuX2ZicSlmLl9mYnE9bjtuLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7bi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwO3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTt0LnNyYz12O3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTtzPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSlbMF07cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMnKTtmYnEoJ2luaXQnLCcxMjkzMzQyMjg0MDYwOTM0Jyk7d2luZG93LkQyQ0ZiQ29uc2VudC5zeW5jVG9GYnEoKTt3aW5kb3cuRDJDRmJDb25zZW50Lm9uR3JhbnRlZChmdW5jdGlvbigpe2ZicSgndHJhY2snLCJQYWdlVmlldyIpO30pO3dpbmRvdy5EMkNGYkNvbnNlbnQub25HcmFudGVkKGZ1bmN0aW9uKCl7ZmJxKCd0cmFjaycsJ1ZpZXdDb250ZW50Jyk7fSk7fWNhdGNoKGV4KXt9O31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfODNjMjUyOGE3NTM4MGMwNzg3MmU5MmFkMmM5OWFlMmU7dHJ5e2lmKHR5cGVvZiBwYWdlIT09J3VuZGVmaW5lZCcmJnBhZ2U9PSJORVdDQVJERVRBSUxTIil7JChkb2N1bWVudCkub24oJ2NsaWNrJywnYScsZnVuY3Rpb24oKXt2YXIgb2JqPSQodGhpcyk7dmFyIGhyZWY9b2JqLmF0dHIoJ2hyZWYnKTt2YXIgdGV4dD1vYmoudGV4dCgpO2lmKHRleHQubGVuZ3RoPjAmJm9iai5maW5kKCdpbWcnKS5sZW5ndGg9PTAmJnR5cGVvZiBocmVmIT0ndW5kZWZpbmVkJyl7dmFyIHRpdGxlPSQoJy5icmFuZGVtYWlsW25hbWU9ImJyYW5kIl0nKS52YWwoKSsnLScrJCgnLm1vZGVsZW1haWxbbmFtZT0ibW9kZWwiXScpLnZhbCgpKyctJyskKCcueWVhcmVtYWlsJykudmFsKCk7aWYoaHJlZiE9IiMiJiZocmVmIT0iIiYmaHJlZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik8MCYmaHJlZi5pbmRleE9mKCd7Jyk8MCl7dGl0bGU9aHJlZjt9CmdhVHJhY2soJ190cmFja0V2ZW50JywnTmV3LVZEUC1PdXRib3VuZC1jbGlja3MnLG9iai50ZXh0KCksdGl0bGUpO319KTt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF83MTMwNzgwMTA0NTJhZmIwNTE1ZTZhMmQ0ZWQ0YWNkMzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNkMmNGb290ZXJDb29raWVEZWxldGUiKS5wb3B1cGl6ZSh7ImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6bnVsbCwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6ZmFsc2UsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc4NDM0NzIwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiMTI5MzM0MjI4NDA2MDkzNCJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoiaG9uZGFkb25uYWNvbmEuY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzJkMzM5OTI2N2Q1ZWVlNWRhNDVkYTUwNTJkODdiZGVhO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI211bHRpZm9ybVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKCl7dmFyICQkPSQodGhpcyk7aWYoIUNvb2tpZXMuZ2V0KCJwb3B1cFBhZ2VWaWV3cyIpKXtDb29raWVzLmdldCgicG9wdXBQYWdlVmlld3MiLCIwIixudWxsLCIvIik7fQokKCIjbXVsdGlmb3JtUG9wdXBDb250YWluZXIiKS5jc3Moe3BhZGRpbmc6MCxiYWNrZ3JvdW5kOiIjZmZmIn0pO2lmKENvb2tpZXMuZ2V0KCJtdWx0aUZvcm1Qb3B1cEZpbGxlZCIpKXskKCIubXVsdGlmb3JtX2JvZHkiLCQkKS5odG1sKCQoIi5tdWx0aWZvcm1fZmlsbGVkIiwkJCkuaHRtbCgpKTskKCIubXVsdGlmb3JtX2Zvb3RlciIsJCQpLmhpZGUoKTskKCIjbXVsdGlmb3JtX2Zvcm1XIikuY3NzKCJoZWlnaHQiLCIyNDBweCIpOyQoIiNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwiMjQwcHgiKTt9CiQoZG9jdW1lbnQpLm9uKCJyZXZlYWw6b3BlbiIsIiNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIsZnVuY3Rpb24oKXskKCJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciAjbXVsdGlmb3JtX3Bvc3RhbCIpLnRyaWdnZXIoImZvY3VzIik7fSk7fSwib25CZWZvcmVzdWJtaXQiOmZ1bmN0aW9uKHNlbGYpe3ZhciAkJD0kKHRoaXMpO0Nvb2tpZXMuc2V0KCdtdWx0aUZvcm1Qb3B1cEZpbGxlZCcsJzEnLHBhcnNlSW50KDIwMjYtMDctMTEpLCcvJyk7aWYoJCgnI211bHRpZm9ybV9zbXMnKS52YWwoKS5sZW5ndGg+Myl7JCgnLmVtYWlsU3ViamVjdCcsJCQpLmh0bWwoJCgnLnNtc19lbWFpbFN1YmplY3QnLCQkKS5odG1sKCkpOyQoJy5lbWFpbEJvZHknLCQkKS5odG1sKCQoJy5zbXNfZW1haWxCb2R5JywkJCkuaHRtbCgpKTtzZWxmLnNldHRpbmdzLmZvcm0uZW1haWxpZD0nTXVsdGlGb3JtX1NNUyc7c2VsZi5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbD0nTWVpbGxldXJlIG9mZnJlIFNNUyAoTmV1ZiknO3NlbGYuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWxzZWN0aW9uPSdOZXVmJzt9CmVtYWlsSGFuZGxlci5kZXBhcnRtZW50PWVtYWlsSGFuZGxlci5nZXREZXAoKTtpZihlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCE9J05FVyd8fGVtYWlsSGFuZGxlci5kZXBhcnRtZW50IT0nVVNFRCcpe2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSdORVcnO319LCJvbkJlZm9yZVZhbGlkYXRpb24iOmZ1bmN0aW9uKCl7JC52YWxpZGl0eS5zdGFydCgpO3ZhciBpc1NNUz1mYWxzZTtpZigkKCcjbXVsdGlmb3JtUG9wdXBDb250YWluZXInKS5maW5kKCcjbXVsdGlmb3JtX3NtcycpLnZhbCgpLmxlbmd0aD4zfHwkKCcjbXVsdGlmb3JtX3NtcycpLmhhc0NsYXNzKCdyZXF1aXJlZCcpKXtpc1NNUz10cnVlOyQoJyNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lcicpLmZpbmQoJyNtdWx0aWZvcm1fc21zJykucmVxdWlyZSgpLnZhbGlkYXRlUGhvbmUoKTskKCcjbXVsdGlmb3JtUG9wdXBDb250YWluZXInKS5maW5kKCcjdXNlcm5hbWUnKS5yZXF1aXJlKCk7fWVsc2V7JCgnI211bHRpZm9ybVBvcHVwQ29udGFpbmVyJykuZmluZCgnI211bHRpZm9ybV9lbWFpbCcpLnJlcXVpcmUoKS52YWxpZEVtYWlsQWRkcmVzcygpOyQoJyNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lcicpLmZpbmQoJyN1c2VybmFtZScpLnJlcXVpcmUoKTt9CnZhciByZXN1bHQ9JC52YWxpZGl0eS5lbmQoKTtyZXR1cm4gcmVzdWx0LnZhbGlkO30sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXttdWx0aUZvcm1Qb3B1cEluaXRpYWxpemUoIm11bHRpZm9ybVBvcHVwQ29udGFpbmVyIik7KG5ldyBGb3JtKCkpLm1hc2tQb3N0YWxDb2RlKCJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciAjbXVsdGlmb3JtX3Bvc3RhbCIpOyQoIm11bHRpZm9ybVBvcHVwQ29udGFpbmVyICNtdWx0aWZvcm1fZW1haWwiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7JCgiW25hbWU9bXVsdGlmb3JtX29yXSIpLnZhbChbImVtYWlsIl0pO30pOyQoIm11bHRpZm9ybVBvcHVwQ29udGFpbmVyICNtdWx0aWZvcm1fc21zIikub24oImZvY3VzIixmdW5jdGlvbigpeyQoIltuYW1lPW11bHRpZm9ybV9vcl0iKS52YWwoWyJzbXMiXSk7fSk7dmFyIHBvcHVwVHlwZT0ibmV3Ijt2YXIgY3VycmVudFBhZ2U9IiIranNfZDJjX2dldF92YWwoIjE2ZDd2d3Q2NnBtb3dvMGsiKSsiIjtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIix0cnVlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsIm11bHRpZm9ybVBvcHVwQ29udGFpbmVyIixmYWxzZSk7cmV0dXJuIHRtcDt9fSwib25CZWZvcmVTZW5kTWFpbCI6ZnVuY3Rpb24oc2VsZil7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9ZW1haWxIYW5kbGVyLmdldERlcCgpO2lmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PT0nVVNFRCcpe2VtYWlsSGFuZGxlci5zdWJqZWN0PWVtYWlsSGFuZGxlci5zdWJqZWN0LnJlcGxhY2UoJ25ldycsJ3VzZWQnKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1lbWFpbEhhbmRsZXIuc3ViamVjdC5yZXBsYWNlKCduZXVmJywnb2NjYXNpb24nKTt9fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoibXVsdGlmb3JtUG9wdXBTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uT3BlbiIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiJCZXN0IG9mZmVyIChOZXcpIiwibGFiZWxzZWN0aW9uIjoiTmV3IiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6Ik11bHRpRm9ybSIsIm9mZmVydHlwZSI6Ik11bHRpRm9ybVBvcHVwIiwibmFtZSI6Im11bHRpZm9ybV9mb3JtIiwic2VuZFRvIjoiMTk3OWQ1ZGIxNmYxMzJhYjZkZGRhYTAxMjNkNmE4MTR8MzYwMzY5MDI2MiIsInNlbmRUb0FERiI6IjdlYjc3ZDc2Mzc0NWMzYmFmM2IwYjRiOTUxY2FjNTBjfDM2MDM2OTAyNjIiLCJPS0J1dHRvbkNsYXNzIjoibXVsdGlmb3JtX2J0bl8yIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6IlZvdHJlIGRlbWFuZGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ZSBhdmVjIHN1Y2MmZWdyYXZlO3MuIFVuIHJlcHImZWFjdXRlO3NlbnRhbnQgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LiJ9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJOZXciLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOiI3NSIsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjp0cnVlLCJzaG93b25sb2FkIjpmYWxzZSwiZXJyb3JNc2ciOiJDZXJ0YWlucyBjaGFtcHMgb2JsaWdhdG9pcmVzIG4nb250IHBhcyAmZWFjdXRlO3QmZWFjdXRlOyByZW1wbGlzIiwiY291bnRkb3duIjoxNzg0MzQ3MjAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2IxOTI1YzJkM2QzYThkMzhmNjRjNGYwODI0Mzg0OTEzO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfbXVsdGlmb3JtUG9wdXBDb250YWluZXInKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzgyYzc4OWVjMTRkZWUxMzdjNzI1ZDg3NGY4NDNmZWI0O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJzdWJtaXQiOmZ1bmN0aW9uKHNlbGYpe3NldENvb2tpZSgnY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCcsMSwzMCk7aWYodHlwZW9mIGdVc2VkU3JwQXBweiE9PSd1bmRlZmluZWQnKXtnVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmNsZWFyUHJveHlDYWNoZUFuZFJlRmV0Y2goKTt9fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpeyhuZXcgRm9ybSgpKS5tYXNrUGhvbmUoIiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZVBob25lIik7dmFyIGxhbmc9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ImVuIjoiZnIiO3ZhciBzdGFydERhdGU9bmV3IERhdGUoKTtzdGFydERhdGUuc2V0RnVsbFllYXIoc3RhcnREYXRlLmdldEZ1bGxZZWFyKCktMzApO3ZhciBtYXhEYXRlPW5ldyBEYXRlKCk7bWF4RGF0ZS5zZXRGdWxsWWVhcihtYXhEYXRlLmdldEZ1bGxZZWFyKCktMTgpO3ZhciBtaW5EYXRlPW5ldyBEYXRlKCk7bWluRGF0ZS5zZXRGdWxsWWVhcihtaW5EYXRlLmdldEZ1bGxZZWFyKCktMTIwKTskKCIuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5uZWJDYWwoe21heERhdGU6bWF4RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxtaW5EYXRlOm1pbkRhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZGVmYXVsdERhdGU6c3RhcnREYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCgnI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7dmFyIHBvcHVwVHlwZT0ibmV3IjtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIixmYWxzZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIixmYWxzZSk7aWYoMCYmdG1wKXtzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MTA7fQplbHNle3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD1mYWxzZTt9CnJldHVybiB0bXA7fX0sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6ImNyZWRpdFNjb3JlU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdFNjb3JlIiwib2ZmZXJ0eXBlIjoiQ3JlZGl0U2NvcmUiLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIxM2RxdHNuY2Q4MXdrODQ0IikrIiIsInNlbmRUb0FERiI6IiIranNfZDJjX2dldF92YWwoIjVjY3lnazkyNW1nd2cwIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJjcmVkaXRTY29yZV9idG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6Ik1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZCZlYWN1dGU7dGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjciZlYWN1dGU7ZGl0LiIsIm5vb3ZlcndyaXRlIjp0cnVlfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MzQ3MjAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYmZjMzMxMzI2MDdjMThkNTg1NGRlMWZmNjgzYmQ0NTk7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oc2VsZil7aWYoZW1haWxIYW5kbGVyKXskKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQ29uZmlybUlucHV0IC5maXJzdG5hbWUiKS52YWwoZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLmxhc3RuYW1lIikudmFsKGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLmVtYWlsIikudmFsKGVtYWlsSGFuZGxlci51c2VyRW1haWwpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLnBob25lIikudmFsKGVtYWlsSGFuZGxlci51c2VyUGhvbmUpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLmJpcnRoZGF0ZSIpLnZhbChlbWFpbEhhbmRsZXIuYmlydGhkYXRlKTskKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQ29uZmlybUlucHV0IC5hZGRyZXNzIikudmFsKGVtYWlsSGFuZGxlci51c2VyQWRkcmVzcyk7fX0sIm9uQ2xvc2UiOmZ1bmN0aW9uKHNlbGYpe2VtYWlsSGFuZGxlci5za2lwR2VvTG9jPWZhbHNlO30sIm9uQmVmb3Jlc3VibWl0IjpmdW5jdGlvbihzZWxmKXtlbWFpbEhhbmRsZXIuc2tpcEdlb0xvYz10cnVlO2VtYWlsSGFuZGxlci5sZWFkVGl0bGVUZXh0PSQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgI2NyZWRpdFNjb3JlTGVhZFR5cGUiKS52YWwoKTt9LCJvbkFmdGVyc3VibWl0IjpmdW5jdGlvbihzZWxmKXtlbWFpbEhhbmRsZXIuc2tpcEdlb0xvYz1mYWxzZTtzZXRDb29raWUoJ2NyZWRpdFNjb3JlRW1iZWRkZWRGaWxsZWQnLDEsMzApO2lmKHR5cGVvZiBnVXNlZFNycEFwcHohPT0ndW5kZWZpbmVkJyl7Z1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5jbGVhclByb3h5Q2FjaGVBbmRSZUZldGNoKCk7fX0sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXsobmV3IEZvcm0oKSkubWFza1Bob25lKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlUGhvbmUiKTt2YXIgbGFuZz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iZW4iOiJmciI7dmFyIHN0YXJ0RGF0ZT1uZXcgRGF0ZSgpO3N0YXJ0RGF0ZS5zZXRGdWxsWWVhcihzdGFydERhdGUuZ2V0RnVsbFllYXIoKS0zMCk7dmFyIG1heERhdGU9bmV3IERhdGUoKTttYXhEYXRlLnNldEZ1bGxZZWFyKG1heERhdGUuZ2V0RnVsbFllYXIoKS0xOCk7dmFyIG1pbkRhdGU9bmV3IERhdGUoKTttaW5EYXRlLnNldEZ1bGxZZWFyKG1pbkRhdGUuZ2V0RnVsbFllYXIoKS0xMjApOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5uZWJDYWwoe21heERhdGU6bWF4RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxtaW5EYXRlOm1pbkRhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZGVmYXVsdERhdGU6c3RhcnREYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCgnI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXScpLmdvb2dsZVBsYWNlcygpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLm9uKCJjbGljayIsIi5jcmVkaXRTY29yZUNvbmZpcm1fYnRuIixmdW5jdGlvbigpe3NlbGYuc3VibWl0KCk7fSk7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uT3BlbiIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ3JlZGl0U2NvcmUiLCJvZmZlcnR5cGUiOiJDcmVkaXRTY29yZSIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6ImNyZWRpdFNjb3JlQ29uZmlybV9idG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6Ik1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZCZlYWN1dGU7dGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjciZlYWN1dGU7ZGl0LiIsIm5vb3ZlcndyaXRlIjp0cnVlfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOnRydWUsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQzNDcyMDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMzYzODdkOTIwOTY4NzhkNzliMDU2OTE1ZWNiNTM0OGY7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDM1MjBiM2FjZjY5Njk1MmYyMzdlMWYxYjQ0YTVkNTg7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoeyJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLnNldENvbmZpZyh7dHlwZTpzZWxmLnNldHRpbmdzLmZvcm0udHlwZX0pO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNvbnRhY3Rwb3B1cCIsdHJ1ZSk7aWYoZmFsc2UmJnRtcClzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MzA7cmV0dXJuIHRtcDt9fSwib25CZWZvcmVTZW5kTWFpbCI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWwoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDb250YWN0VXNSZXF1ZXN0Iiwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgbWVzc2FnZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlOyEiLCJib2R5IjoiTWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSAmZWFjdXRlO3F1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS4ifSwidHlwZSI6Im5ldyJ9LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MzQ3MjAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfY29udGFjdHBvcHVwJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8xYWE1ZjNlMThiYmRkZjk4NDUxM2IwYmVmYjNmZjliYTt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXt2YXIgbXVsdGlzdGVwPWluaXRpYWxpemVGaW5hbmNlTXVsdGlTdGVwKHNlbGYudGFyZ2V0KTskKGRvY3VtZW50KS5vbignY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0JyxmdW5jdGlvbihlKXttdWx0aXN0ZXAuc3RhcnQoKTt9KTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Iiwib2ZmZXJ0eXBlIjoiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MzQ3MjAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxMjkzMzQyMjg0MDYwOTM0In0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJob25kYWRvbm5hY29uYS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZGYzNzkzNzJjZmRhZjE4MDc5ZDJlM2QyOGIxODE5MjU7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjZXhpdFBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKCl7cmV0dXJuISgoIm9udG91Y2hzdGFydCJpbiB3aW5kb3d8fHdpbmRvdy5Eb2N1bWVudFRvdWNoJiZkb2N1bWVudCBpbnN0YW5jZW9mIERvY3VtZW50VG91Y2gpKTt9LCJvbkJlZm9yZUluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe30sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6InJlYmF0ZVNob3duIiwiY29va2llQ3JlYXRlIjoib25PcGVuIiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IkV4aXQtUG9wdXAiLCJsYWJlbHNlY3Rpb24iOiJPY2Nhc2lvbiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJTcGVjc1JlcXVlc3QiLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6IjE5NzlkNWRiMTZmMTMyYWI2ZGRkYWEwMTIzZDZhODE0fDM2MDM2OTAyNjIiLCJzZW5kVG9BREYiOiI3ZWI3N2Q3NjM3NDVjM2JhZjNiMGI0Yjk1MWNhYzUwY3wzNjAzNjkwMjYyIiwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdC1idXR0b24iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2UsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MzQ3MjAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiJFeGl0LVBvcHVwIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiT2NjYXNpb24iLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxMjkzMzQyMjg0MDYwOTM0In0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJob25kYWRvbm5hY29uYS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYmJlNzAyOWQ1MTIwOWIyYWZlMDAwYzYxM2YyOGRjYzc7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25CZWZvcmVPcGVuIjpmdW5jdGlvbihzZWxmKXtpZihzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0KXtzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0PWZhbHNlO2lmKENvb2tpZXMuZ2V0KCdwb3B1cEZvcm1GaWxsZWQnKT09IjEiKXskKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5oaWRlKCk7fQpyZXR1cm4gdHJ1ZTt9CmlmKCFzZWxmLnNldHRpbmdzLnN0eWxlaWQpcmV0dXJuIGZhbHNlO3NlbGYuc2V0dGluZ3MuaW5pdGlhbFN0eWxlaWQ9c2VsZi5zZXR0aW5ncy5zdHlsZWlkO2lmKCQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgpe3NlbGYuc2V0dGluZ3MucGF5bWVudE9wdGlvbnM9cGFyc2VJbnQoJCgiI29wdGlvblByaWNlVG90YWwiKS5odG1sKCkucmVwbGFjZSgiLCIsIiIpKTt9CmdhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdDbGlxdWVzIENhbGN1bGF0cmljZScsJ05ldWYnLCdPcGVuJywxKTtwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpO30sIm9uQ2xvc2UiOmZ1bmN0aW9uKHNlbGYpe2lmKCFzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0KXtnYVRyYWNrKCdjLl90cmFja0V2ZW50JywnQ2xpcXVlcyBDYWxjdWxhdHJpY2UnLCdOZXVmJywnQ2xvc2UnLDEpO30KaWYoKCgkKCcjdGFyZ2V0UGFnZScpLnZhbCgpfHxmYWxzZSk9PSdORVdDQVJTJ3x8KCQoJyN0YXJnZXRQYWdlJykudmFsKCl8fGZhbHNlKT09J1VTRURDQVJTJykmJndpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD09dHJ1ZSl7bG9jYXRpb24ucmVsb2FkKCk7fX0sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXtwb3B1cENhbGN1bGF0b3JJbml0aWFsaXplZCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6bnVsbCwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MzQ3MjAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxMjkzMzQyMjg0MDYwOTM0In0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJob25kYWRvbm5hY29uYS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fTsKLyoqIC9qcy9za2VsZXRvbi5jb250cm9sbGVyLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uY29udHJvbGxlcmpzX2Nfb249IjIwMjYtMDQtMDEgMTE6MzA6MDIiOyd1c2Ugc3RyaWN0Jzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKGMpe2xldCBoO2NvbnNvbGUubG9nKCJHU1BFRUQtQUZURVItSlFVRVJZOiIrKERhdGUubm93KCktKG51bGwhPShoPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/aDowKSkvMUUzKTt3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeT0hMDtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGMoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYikpfX0sN0UzKTtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTsKY29uc29sZS5sb2coIlNLRUxFVE9OfCNlbWJlZC1jb250YWluZXItbWFwcy1ob21lcGFnZS1ieWlkIik7aWYoYi5sZW5ndGgpe3ZhciBhPWIuYXR0cigiZGF0YS1pZnJhbWUtYXR0cmlidXRlcyIpOyJ1bmRlZmluZWQiIT09YSYmdm9pZCAwIT09YSYmKGE9SlNPTi5wYXJzZShhdG9iKGEpKSxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKGYpe2Euc3JjPWEuc3JjLnJlcGxhY2UoIl9fS0VZX18iLGYpO2MoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYil9KSl9fSw3RTMpO3dpbmRvdy5kZWxheWVkQ3NzPWZ1bmN0aW9uKGIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7YS50eXBlPSJ0ZXh0L2NzcyI7YS5zdHlsZVNoZWV0P2Euc3R5bGVTaGVldC5jc3NUZXh0PWI6YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiKSk7Y29uc29sZS5sb2coIlNLRUxFVE9OfERFTEFZRURMT0FEQ1NTfCIrYik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX07CndpbmRvdy5kZWxheWVkQ3NzKCIuaGlkZU9uUHJlTG9hZHt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDt9Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxzZXR0aW5nIG1lbnUgbXV0YXRpb24gb2JzZXJ2ZXIiKTt0cnl7Y29uc3QgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiKTtpZihudWxsIT09YSl7Y29uc3QgZj1uZXcgTXV0YXRpb25PYnNlcnZlcigoZCxrKT0+e2Zvcihjb25zdCBlIG9mIGQpImF0dHJpYnV0ZXMiPT09ZS50eXBlJiYiY2xhc3MiPT09ZS5hdHRyaWJ1dGVOYW1lJiZlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoInVwX21lbnUiKSYmKGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIiksZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpP2QuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpfHwKZC5jbGFzc0xpc3QuYWRkKCJmaXhlZCIpOmQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZkLmNsYXNzTGlzdC5yZW1vdmUoImZpeGVkIikpfSksZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgPiAudXBfbWVudSIpO2cmJihmLm9ic2VydmUoZyx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pLGcuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZhLmNsYXNzTGlzdC5hZGQoImZpeGVkIikpfX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJTS0VMRVRPTnwuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiLGEpfWNvbnNvbGUubG9nKCJTS0VMRVRPTnxpcy1sb2FkZWQtbm93Iik7Y29uc3QgYj1jKCIuc2tlbGV0b24iKTtiLmFkZENsYXNzKCJpcy1sb2FkZWQtbm93Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxyZW1vdmluZyBza2VsZXRvbnMgZmlyc3QgaW1nIGJhY2tncm91bmQiKTsKYi5maW5kKCJpbWcuaXMtc2tlbGV0b24tYmctaW1nIikucmVtb3ZlKCl9LDM8d2luZG93LmdTcGVlZENvbm4\/MUU0OjZFMyl9LDIwMCl9KX1jYXRjaChjKXt9Ow==","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudCI+CgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiIHZhbHVlPSJGUkVOQ0giLz4KCgkJPGlucHV0CgkJCXR5cGU9ImhpZGRlbiIKCQkJaWQ9ImQyY0RhdGFTdG9yZSIKCQkJZGF0YS1iYXNldXJsPSJodHRwczovL2hvbmRhZG9ubmFjb25hLmNvbSIKCQkJZGF0YS1ib2R5Y2xhc3M9IiBoZWFkaW5nQ2Fwc09uIEZSRU5DSCBpc1BhZ2VGdWxsV2lkdGhFbmFibGVkIHRlbXBsYXRlMSBpc0Z1bGxXaWR0aFBhZ2UgTmV3U3JwMiIKCQkJZGF0YS1pc21vYmlsZT0iMCIKCQk+CgoJCTxzY3JpcHQgc3JjPSJodHRwczovL2FpYXBwcy5kMmNtZWRpYS5jYS9ldmJvb3N0L2V2LWNvbXBhcmF0b3IuaWlmZS5qcyIgYXN5bmM+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsiQGNvbnRleHQiOiJodHRwczpcL1wvc2NoZW1hLm9yZyIsIkB0eXBlIjoiV2ViU2l0ZSIsIm5hbWUiOiJIb25kYSBEb25uYWNvbmEiLCJ1cmwiOiJodHRwczpcL1wvd3d3LmhvbmRhZG9ubmFjb25hLmNvbVwvIiwicG90ZW50aWFsQWN0aW9uIjp7IkB0eXBlIjoiU2VhcmNoQWN0aW9uIiwidGFyZ2V0IjoiaHR0cHM6XC9cL3d3dy5ob25kYWRvbm5hY29uYS5jb21cL29jY2FzaW9uXC9yZWNoZXJjaGUuaHRtbD9xPXtzZWFyY2hfdGVybV9zdHJpbmd9IiwicXVlcnktaW5wdXQiOiJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyJ9fQo8L3NjcmlwdD48c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOlsiQXV0b0RlYWxlciIsIkF1dG9tb3RpdmVCdXNpbmVzcyJdLCJ1cmwiOiJodHRwczpcL1wvd3d3LmhvbmRhZG9ubmFjb25hLmNvbSIsIm5hbWUiOiJIb25kYSBEb25uYWNvbmEiLCJpbWFnZSI6Imh0dHBzOlwvXC93d3cuaG9uZGFkb25uYWNvbmEuY29tXC9pbWFnZXNcL0xvZ29Nb2JpbGVcL0hvbmRhLURvbm5hY29uYS1Mb2dvLnBuZyIsImxvZ28iOiJodHRwczpcL1wvd3d3LmhvbmRhZG9ubmFjb25hLmNvbVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9Ib25kYS1Eb25uYWNvbmEtTG9nby5wbmciLCJzYW1lQXMiOlsiaHR0cHM6XC9cL3d3dy5mYWNlYm9vay5jb21cLzIyODkwOTM4Mzg2NzMwNSIsImh0dHBzOlwvXC93d3cubGlua2VkaW4uY29tXC9jb21wYW55XC8xMDU1Njk4NDlcLyIsImh0dHBzOlwvXC93d3cueW91dHViZS5jb21cL2NoYW5uZWxcL1VDWVhxOEFlMHhqUENOeFJPR1BCVEhxQSIsImh0dHBzOlwvXC93d3cuaW5zdGFncmFtLmNvbVwvaG9uZGFkb25uYWNvbmFcLyJdLCJnZW8iOnsiQHR5cGUiOiJHZW9DaXJjbGUiLCJnZW9NaWRwb2ludCI6eyJAdHlwZSI6Ikdlb0Nvb3JkaW5hdGVzIiwibGF0aXR1ZGUiOiI0Ni42ODUzNjQ5MDAwIiwibG9uZ2l0dWRlIjoiLTcxLjcyNDMwMTIwMDAifSwiZ2VvUmFkaXVzIjoxMDAwMDB9LCJhZGRyZXNzIjp7IkB0eXBlIjoiUG9zdGFsQWRkcmVzcyIsInN0cmVldEFkZHJlc3MiOiIxNTksIHJ1ZSBDb21tZXJjaWFsZSIsImFkZHJlc3NMb2NhbGl0eSI6IkRvbm5hY29uYSIsImFkZHJlc3NSZWdpb24iOiJRdWViZWMiLCJwb3N0YWxDb2RlIjoiRzNNIDFXMiIsImFkZHJlc3NDb3VudHJ5IjoiQ0EifSwidGVsZXBob25lIjoiNDE4LTI4NS0zMjIwIiwicHJpY2VSYW5nZSI6IjI5NzcwJC02MjE5MCQiLCJvcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIjpbeyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJNb25kYXkiLCJvcGVucyI6IjA4OjMwIiwiY2xvc2VzIjoiMTk6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IlR1ZXNkYXkiLCJvcGVucyI6IjA4OjMwIiwiY2xvc2VzIjoiMTk6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IldlZG5lc2RheSIsIm9wZW5zIjoiMDg6MzAiLCJjbG9zZXMiOiIxOTowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVGh1cnNkYXkiLCJvcGVucyI6IjA4OjMwIiwiY2xvc2VzIjoiMTk6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IkZyaWRheSIsIm9wZW5zIjoiMDg6MzAiLCJjbG9zZXMiOiIxNzowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiU2F0dXJkYXkiLCJvcGVucyI6IjEwOjAwIiwiY2xvc2VzIjoiMTQ6MDAifV0sImhhc01hcCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvbWFwc1wvcGxhY2VcLzE1OSwgcnVlIENvbW1lcmNpYWxlIERvbm5hY29uYSBRdWViZWMgRzNNIDFXMiIsImNvbnRhY3RQb2ludCI6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsInRlbGVwaG9uZSI6IjQxOC0yODUtMzIyMCIsImNvbnRhY3RUeXBlIjpbIlNhbGVzIiwiU2VydmljZSIsIlBhcnRzIl0sImF2YWlsYWJsZUxhbmd1YWdlIjpbIkVuZ2xpc2giLCJGcmVuY2giXX0sImFyZWFTZXJ2ZWQiOiJRdWViZWMiLCJtYWtlc09mZmVyIjpbeyJAdHlwZSI6Ik9mZmVyIiwiaXRlbU9mZmVyZWQiOnsiQHR5cGUiOiJTZXJ2aWNlIiwibmFtZSI6IlZlbnRlcyBkZSB2XHUwMGU5aGljdWxlcyBIb25kYSBuZXVmcyBldCBkJ29jY2FzaW9uIn19LHsiQHR5cGUiOiJPZmZlciIsIml0ZW1PZmZlcmVkIjp7IkB0eXBlIjoiU2VydmljZSIsIm5hbWUiOiJGaW5hbmNlbWVudCBkZSB2XHUwMGU5aGljdWxlcyJ9fSx7IkB0eXBlIjoiT2ZmZXIiLCJpdGVtT2ZmZXJlZCI6eyJAdHlwZSI6IlNlcnZpY2UiLCJuYW1lIjoiUlx1MDBlOXBhcmF0aW9uIGV0IG1haW50ZW5hbmNlIGRlIHZcdTAwZTloaWN1bGVzIn19LHsiQHR5cGUiOiJPZmZlciIsIml0ZW1PZmZlcmVkIjp7IkB0eXBlIjoiU2VydmljZSIsIm5hbWUiOiJWZW50ZXMgZGUgcGlcdTAwZThjZXMgZXQgYWNjZXNzb2lyZXMifX1dfQo8L3NjcmlwdD48bGluayByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vaG9uZGFkb25uYWNvbmEuY29tL2ltYWdlcy9GYXZpY29uL2hvbmRhLWZhdmljb24uc3ZnIj48bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9Im9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkiIGhyZWY9Imh0dHBzOi8vd3d3LmhvbmRhZG9ubmFjb25hLmNvbS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEiPjxsaW5rIHJlbD0icHJlbG9hZCIgYXM9ImltYWdlIiBocmVmPSJodHRwczovL2hvbmRhZG9ubmFjb25hLmNvbS9pbWFnZXMvTG9nby9Ib25kYS1Eb25uYWNvbmEtTG9nby53ZWJwIj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi1JdGFsaWMud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4ud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vaG9uZGFkb25uYWNvbmEuY29tL2Nzc19yL3Jlc291cmNlLmxvYWRlci5mci5jc3M\/dj0zJmFtcDtjc3NycGw9JmFtcDt3c3dpZHRoPTAmYW1wO2RldmljZT1kZXNrdG9wJmFtcDt1YT1RME5DYjNRdk1pNHdJQ2hvZEhSd2N6b3ZMMk52YlcxdmJtTnlZWGRzTG05eVp5OW1ZWEV2S1E9PSI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ltYWdlc2Nkbi5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cuaG9uZGFkb25uYWNvbmEuY29tL2VtYmVkZXIvcHJvY2Vzcy9mciIgZGF0YS1jYW5vbmljYWwtaGVhZGVyLXdpZGdldD0iMSI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvc2NyaXB0dGVtcGxhdGVzL290U0RLU3R1Yi5qcyIgZGF0YS1kb2N1bWVudC1sYW5ndWFnZT0idHJ1ZSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJVVEYtOCIgZGF0YS1kb21haW4tc2NyaXB0PSIwMTkyZTg1Ny00NTE0LTcyOWUtOTZjMS05ZmY2MzkyNjdjMDkiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvY29uc2VudC8wMTkyZTg1Ny00NTE0LTcyOWUtOTZjMS05ZmY2MzkyNjdjMDkvT3RBdXRvQmxvY2suanMiPjwvc2NyaXB0PjxkaXYgaWQ9ImFzY19kaWdpdGFsX2RhdGFfaW5mbyIgZGF0YS1hbmFseXRpY3M9Imdvb2dsZV9hbmFseXRpY3NfNCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDYXRlZ29yeSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1ha2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aW4iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmltIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJpY2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJleHRjb2xvciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGVfbGlzdGluZyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQyYXNjX2lzQ2VydGlmaWVkIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVN0YXR1cyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlckNvZGUiIHZhbHVlPSI3NzU2Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZVR5cGUiIHZhbHVlPSJTaG93cm9vbSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlcl9uYW1lIiB2YWx1ZT0iSG9uZGEgRG9ubmFjb25hIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX2FkZHJlc3MiIHZhbHVlPSIxNTksIHJ1ZSBDb21tZXJjaWFsZSwgRG9ubmFjb25hLCBRdcOpYmVjIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX3Bvc3RhbCIgdmFsdWU9IkczTSAxVzIiPgoJCTwvZGl2PgoJCTwhLS0gT086OjI1NTQzMGFiMWE4OTU3MTdlZGI5Y2FkNTI0MWJhZDdlIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljcyAtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM\/aWQ9Ry1QVFlDV0pDMEJQIiB0eXBlPSJ0ZXh0L3BsYWluIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSI+PC9zY3JpcHQ+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tICMjVk1KUzIjIyAtLT48IS0tIEdPIElEIC0tPgo8IS0tIEJJTkcgU0NSSVBUIC0tPgo8IS0tIE9POjpmNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3ZiAtLT4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgZGF0YS1ybD0iMSI+Ci8qKiAvY3NzL3Jvb3QuY3NzICoqLwo6cm9vdHsgLS1yYXRpbzoxLjE1OyAtLXMwOjA7IC0tcy05OmNhbGModmFyKC0tcy04KSAvIHZhcigtLXJhdGlvKSk7IC0tcy04OmNhbGModmFyKC0tcy03KSAvIHZhcigtLXJhdGlvKSk7IC0tcy03OmNhbGModmFyKC0tcy02KSAvIHZhcigtLXJhdGlvKSk7IC0tcy02OmNhbGModmFyKC0tcy01KSAvIHZhcigtLXJhdGlvKSk7IC0tcy01OmNhbGModmFyKC0tcy00KSAvIHZhcigtLXJhdGlvKSk7IC0tcy00OmNhbGModmFyKC0tcy0zKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0zOmNhbGModmFyKC0tcy0yKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0yOmNhbGModmFyKC0tcy0xKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0xOmNhbGModmFyKC0tcykgLyB2YXIoLS1yYXRpbykpOyAtLXM6MC41cmVtOyAtLXMxOmNhbGModmFyKC0tcykgKiB2YXIoLS1yYXRpbykpOyAtLXMyOmNhbGModmFyKC0tczEpICogdmFyKC0tcmF0aW8pKTsgLS1zMzpjYWxjKHZhcigtLXMyKSAqIHZhcigtLXJhdGlvKSk7IC0tczQ6Y2FsYyh2YXIoLS1zMykgKiB2YXIoLS1yYXRpbykpOyAtLXM1OmNhbGModmFyKC0tczQpICogdmFyKC0tcmF0aW8pKTsgLS1zNjpjYWxjKHZhcigtLXM1KSAqIHZhcigtLXJhdGlvKSk7IC0tczc6Y2FsYyh2YXIoLS1zNikgKiB2YXIoLS1yYXRpbykpOyAtLXM4OmNhbGModmFyKC0tczcpICogdmFyKC0tcmF0aW8pKTsgLS1zOTpjYWxjKHZhcigtLXM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZnMtYmFzZTowLjg3NXJlbTsgLS1mczp2YXIoLS1mcy1iYXNlKTsgLS1mcy05OmNhbGModmFyKC0tZnMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTggOmNhbGModmFyKC0tZnMtNykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTcgOmNhbGModmFyKC0tZnMtNikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTYgOmNhbGModmFyKC0tZnMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTUgOmNhbGModmFyKC0tZnMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTQgOmNhbGModmFyKC0tZnMtMykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTMgOmNhbGModmFyKC0tZnMtMikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTIgOmNhbGModmFyKC0tZnMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTEgOmNhbGModmFyKC0tZnMwKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMwIDp2YXIoLS1mcy1iYXNlLCAwLjg3NXJlbSk7IC0tZnMxIDpjYWxjKHZhcigtLWZzMCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzMiA6Y2FsYyh2YXIoLS1mczEpICogdmFyKC0tcmF0aW8pKTsgLS1mczMgOmNhbGModmFyKC0tZnMyKSAqIHZhcigtLXJhdGlvKSk7IC0tZnM0IDpjYWxjKHZhcigtLWZzMykgKiB2YXIoLS1yYXRpbykpOyAtLWZzNSA6Y2FsYyh2YXIoLS1mczQpICogdmFyKC0tcmF0aW8pKTsgLS1mczYgOmNhbGModmFyKC0tZnM1KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM3IDpjYWxjKHZhcigtLWZzNikgKiB2YXIoLS1yYXRpbykpOyAtLWZzOCA6Y2FsYyh2YXIoLS1mczcpICogdmFyKC0tcmF0aW8pKTsgLS1mczkgOmNhbGModmFyKC0tZnM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZGVmYXVsdC1ibGFjazojMWIxYjFiOyAtLXRhYi1jb2xvci1zcGVjaWFsY2FzZTojMWIxYjFiOyAtLXRhYi1jb2xvcjojMWIxYjFiOyAtLXRhYi10ZXh0LWNvbG9yOiNlYWVhZWE7IC0tdGFiLWNvbG9yLW1vYjojMWIxYjFiOyAtLXRhYi10ZXh0LWNvbG9yLW1vYjojZmZmZmZmOyAtLXRhYi1jb2xvci1tb2ItZXg6I2VhZWFlYTsgLS10YWItdGV4dC1jb2xvci1tb2ItZXg6IzFiMWIxYjsgLS1tZW51LWNvbG9yLWJvcmRlcjojZmZmZmZmOyAtLW1lbnUtY29sb3ItbW9iOiMxYjFiMWI7IC0tbWVudS10ZXh0LWNvbG9yLW1vYjojZjFmMWYxOyAtLW1lbnUtY29sb3ItbW9iLWV4OiNmM2YzZjM7IC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leDojMWIxYjFiOyAtLXByb21vLWNvbG9yOiNlMzE3M2U7IC0tcHJvbW8tdGV4dC1jb2xvcjojZmZmZmZmOyAtLW5ld3NycC1tb2RlbC1jb2xvcjojMWIxYjFiOyAtLWZvb3Rlci1saW5rLXRpdGxlLWNvbDojMWIxYjFiOyAtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yOiM3MDcwNzA7IC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3I6IzcwNzA3MDsgLS1mb290ZXItYmctY29sb3I6I2ZhZmFmYTsgLS1nZW5lcmFsLWJnLWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQ6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLWJnOiNlMzE3M2U7IC0tcHJvbW8tYnRuLWNvbG9yOiNlMzE3M2U7IC0tcHJvbW8tYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4taG92ZXItYmctY29sb3I6I2UzMTczZTsgLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzOjNweDsgLS1ob21lLWJnLWNvbG9yOiNmZmZmZmY7IC0tZm9ybS10aXRsZS1jb2xvcjojMjQyNDI0OyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yOiMxYTFhMWE7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcjo7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iOiMxYTFhMWE7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2I6I2ZmZmZmZjsgLS11c2VkLXNsaWRlci1iZzojZmZmZmZmOyAtLXVzZWQtc2xpZGVyLXR4dDojMWExYTFhOyAtLXVzZWQtc2xpZGVyLXByaWNlOiMxYjFiMWI7IC0tbmV3LXNsaWRlci1iZzo7IC0tbmV3LXZkcC1iZXN0cHJpY2UtYnRuLWJnLWNvbG9yOiNlMzE3M2U7IC0tbmV3LXZkcC1iZXN0cHJpY2UtYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1kZWFsZXItbmFtZS1jb2xvcjojZmZmZmZmOyAtLW5ld3MtYmctY29sb3I6I2YzZjNmMzsgLS1uZXdzLXRleHQtY29sb3I6IzFhMWExYTsgLS1leGl0LXBvcHVwLWJnY29sOiNlMzE3M2U7IC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yOiMwMDAwMDA7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWZpbmFuY2UtYnRuLWJnLWNvbG9yOiNlMzE3M2U7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvci1uZXdpbnY6I2ZmZmZmZjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvci1uZXdpbnY6I2UzMTczZTsgLS1tZW51LWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1tZW51LWhvdmVyLWJnLWNvbG9yOiNlMzE3M2U7IC0tbWVudS1iZy1jb2xvcjpyZ2IoMjcsMjcsMjcpOyAtLW1haW4tbWVudS1iZy1jb2xvcjpyZ2IoMjcsMjcsMjcpOyAtLWRlYWxlci1hZGRyZXNzLWNvbG9yOiNmZmZmZmY7IC0tZGVhbGVyLWFkZHJlc3MtZm9udC1zaXplOjE2OyAtLXdoaXRlOiNmZmY7IC0tbGlnaHQ6I2Y2ZjZmNjsgLS1saWdodC1ncmF5OiNlZmVmZWY7IC0tbWlkLWdyYXk6I2RkZDsgLS1ncmF5OiM5OTk7IC0tY250ci1ncmF5OiM3Njc2NzY7IC0tZGFyay1ncmF5OiM2NjY7IC0tYmxhY2stZ3JheTojMzMzOyAtLWJsYWNrOiMwMDA7IC0tcmVkOiNmZjAwMDA7IC0tYm9yZGVyLXRoaW46MXB4OyAtLWJvcmRlci10aGljazoycHg7IC0tdHh0LXVwcGVyOnVwcGVyY2FzZTsgLS1mb250LW1lbnU6SGVsdmV0aWNhTmV1ZUxUOyAtLWZvbnQtbWVudS1tb2I6SGVsdmV0aWNhTmV1ZUxUOyAtLWZvbnQtbWVudS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDE6TmF0aW9uYWw7IC0tZm9udC1oMS1tb2I6TmF0aW9uYWw7IC0tZm9udC1oMS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDI6TmF0aW9uYWw7IC0tZm9udC1oMi1tb2I6TmF0aW9uYWw7IC0tZm9udC1oMi13ZWlnaHQ6NDAwOyAtLWZvbnQtdGV4dDpIZWx2ZXRpY2FOZXVlTFQ7IC0tZm9udC10ZXh0LW1vYjpIZWx2ZXRpY2FOZXVlTFQ7IC0tZm9udC10ZXh0LXdlaWdodDo0MDA7IC0tZm9udC1idXR0b25zOkhlbHZldGljYU5ldWVMVDsgLS1mb250LWJ1dHRvbnMtbW9iOkhlbHZldGljYU5ldWVMVDsgLS1mb250LWJ1dHRvbnMtd2VpZ2h0OjQwMDsgLS1jb3JuZXItcmliYm9uLWJnLWNvbG9yOiNlMzE3M2U7IC0tY29ybmVyLXJpYmJvbi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2UtbWVudS1pdGVtLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1iYW5uZXItc2VhcmNoLWJhci12aWRlby1vcGFjaXR5OjMwOyAtLWhvbWVwYWdlLXNvY2lhbC1iZy1jb2xvcjojZjNmM2YzOyAtLWhvbWVwYWdlLXNvY2lhbC10ZXh0LWNvbG9yOiMwMDAwMDA7IC0taG9tZXBhZ2Utc29jaWFsLWxvZ28tY29sb3I6IzE4NzdmMjsgLS1wcm9tb3Rpb24tYmFja2dyb3VuZC1jb2xvcjojZmFmYWZhOyAtLXByb21vdGlvbi10ZXh0LWNvbG9yOiMxYjFiMWI7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9iZzojZWFlYWVhOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfY29sb3I6IzFiMWIxYjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9iZzojRTMxNzNFOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2NvbG9yOiNmZmZmZmY7IC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlOiNlMzE3M2U7IC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dDojMDAwMDAwOyAtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yOiMxYjFiMWI7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3I6I2UzMTczZTsgLS10cmFkZWluYmFyLWJ0bi1iZzojZTMxNzNlOyAtLXRyYWRlaW5iYXItYnRuLWNvbG9yOiNmZmZmZmY7IC0tZGVmYXVsdC1ibGFjay10ZXh0OiMxYjFiMWI7IC0tcHJvbW8tYnRuLWJnLWNvbG9yOiNlMzE3M2U7IC0tdHJhZGVpbmJhci1iZzojZWFlYWVhOyAtLXRyYWRlaW5iYXItY29sb3I6IzFiMWIxYjsgLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yOiNmZmZmZmY7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZzojZmZmZmZmOyAtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3I6IzFiMWIxYjsgLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3I6cmdiKDIzNCwyMzQsMjM0KTsgLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yOnJnYigyNywyNywyNyk7IC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yOiMxYjFiMWI7IC0tZGlnaXRhbC1yZXRhaWxpbmctZHJhd2VyLXdpZHRoOiU7IH0gKiB7IGJvcmRlci1jb2xvcjppbmhlcml0OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci13aWR0aDowOyBmb250LWZhbWlseTppbmhlcml0OyBsaW5lLWhlaWdodDoxLjJlbTsgfSBvbCwgdWwsIG1lbnUgeyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9IGgxLGgyLGgzLGg0LGg1LGg2LCBwIHsgbWFyZ2luOjA7IH0gaDEsaDIsaDMsaDQsaDUsaDZ7IGZvbnQtc2l6ZTppbmhlcml0OyBmb250LXdlaWdodDppbmhlcml0OyB9IGltZyB7IG1heC13aWR0aDoxMDAlOyB9IHRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9IHRleHRhcmVhIHsgd2hpdGUtc3BhY2U6cmV2ZXJ0OyB9IDp3aGVyZShbaGlkZGVuXSl7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IDp3aGVyZShbY29udGVudGVkaXRhYmxlXSl7IC1tb3otdXNlci1tb2RpZnk6cmVhZC13cml0ZTsgLXdlYmtpdC11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyBvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7IGxpbmUtYnJlYWs6YWZ0ZXItd2hpdGUtc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgfSA6d2hlcmUoW2RyYWdnYWJsZT0idHJ1ZSJdKSB7IC13ZWJraXQtdXNlci1kcmFnOmVsZW1lbnQ7IH0gI0FmdGVyQ2Fyb3VzZWwgPiAuY29udGFpbmVyLCAjaG9tZXBhZ2UtY29udGVudCA+IC5jb250YWluZXIsICNob21lX0FmdGVyQWN0aW9uQm94ID4gLmNvbnRhaW5lciwgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSA+IC5jb250YWluZXIgeyBtYXgtd2lkdGg6MTIwMHB4OyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgfSAjQWZ0ZXJDYXJvdXNlbCA+IC5jb250YWluZXI6aGFzKC5BZnRlckNhcm91c2VsRncpLCAjaG9tZV9BZnRlckFjdGlvbkJveCA+IC5jb250YWluZXI6aGFzKC5BZnRlckNhcm91c2VsRncpLCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgPiAuY29udGFpbmVyOmhhcyguZW1iZWQtY29udGFpbmVyLXlvdXR1YmUpIHsgbWF4LXdpZHRoOm5vbmU7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IH0gYm9keS5oYXMtZDJjYm90ICNBZnRlckNhcm91c2VsIC5jb250YWluZXIsIGJvZHkuaGFzLWQyY2JvdCAjaG9tZXBhZ2UtY29udGVudCAuY29udGFpbmVyLCBib2R5Lmhhcy1kMmNib3QgI2hvbWVfQWZ0ZXJBY3Rpb25Cb3ggLmNvbnRhaW5lciwgYm9keS5oYXMtZDJjYm90ICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgLmNvbnRhaW5lciB7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6MCAhaW1wb3J0YW50OyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkeyBvdmVyZmxvdy14OmhpZGRlbjsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbnRhaW5lci1mbHVpZCAqIHsgbGluZS1oZWlnaHQ6aW5pdGlhbDsgfSAuY2tlZGl0b3JXcmFwcGVyeyBvdmVyZmxvdy14OmhpZGRlbjsgc2Nyb2xsYmFyLXdpZHRoOm5vbmU7IH0gKiB7IGZvbnQtdmFyaWFudC1udW1lcmljOmxpbmluZy1udW1zOyB9Ci8qKiAvY3NzL3YyL25hdi5jc3MgKiovCmhlYWRlci5tb2JpbGUtaGVhZGVyeyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgYm94LXNoYWRvdzpyZ2JhKDAsIDAsIDAsIDAuNSkgMCAwIDVweCAzcHg7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1jb2xvci1tb2IsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10eHQtY29sb3IpOyB6LWluZGV4OjEwMDA7IH0gZGl2Lm1vYmlsZS1oZWFkZXItc3BhY2VyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwdnc7IGhlaWdodDozLjJyZW07IGRpc3BsYXk6YmxvY2s7IH0gaGVhZGVyLm1vYmlsZS1oZWFkZXIgPiAqICsgKiB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBoZWlnaHQ6MTAwJTsgfSBoZWFkZXIubW9iaWxlLWhlYWRlci50YWxsID4gKiArICp7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZGRkOyBmbGV4OjEgMSBhdXRvOyB9IGhlYWRlciAubG9nby1hY3Rpb24gfiAqIHsgbWluLXdpZHRoOjIuNXJlbTsgfSAuaGVhZGVyLWRlYWxlci1uYW1lIHsgY29sb3I6aW5oZXJpdDsgZm9udC1zaXplOnZhcigtLWZzLTEpOyAtLWZzOnZhcigtLWZzLTEpOyB9IGhlYWRlciBhc2lkZXsgLS10eHQtY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyLjk1cmVtOyBsZWZ0Oi0xOXJlbTsgd2lkdGg6bWluKDgwdncsIDE5cmVtKTsgbWluLWhlaWdodDoxMDB2aDsgZm9udC1zaXplOnZhcigtLWZzKTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMzAwbXMgZWFzZS1pbjsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvcik7IG1heC1oZWlnaHQ6MTAwdmg7IG92ZXJmbG93OmF1dG87IHotaW5kZXg6MTAwOyB9IG5hdnsgLS1mczp2YXIoLS1mczEpOyBmb250LXNpemU6dmFyKC0tZnMpOyB9IG5hdiAubWVudS1pdGVtLCBuYXYgLnN1Ym1lbnUtaXRlbSB7IHBhZGRpbmc6dmFyKC0tcyk7IH0gbmF2IC5tZW51LWl0ZW17IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IG5hdiAuc3VibWVudS1pdGVteyBib3JkZXItY29sb3I6dmFyKC0tZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLWV4KTsgfSBuYXYgLnN1Ym1lbnUtaXRlbSBzdmcuaWNvbiB7IGZpbGw6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLWV4LCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9IG5hdiAubWVudS1ncm91cCB7IGJvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IG5hdiAubWVudS1ncm91cCB+IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDowOyB9IG5hdiAubWVudUNvbGxwYXNlIHN2Z3sgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9ICNob21lbmF2IG5hdnsgLS10eHQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBiYWNrZ3JvdW5kOnZhcigtLXRhYi1jb2xvci1tb2IsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uaW52ZXJzZS1jb2xvcnsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAjaG9tZW5hdiBuYXYgLnN1Ym1lbnUtaXRlbXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3ItbW9iLWV4LCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLWV4LCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9ICNob21lbmF2IG5hdiBsaXsgcGFkZGluZy10b3A6dmFyKC0tcy04KTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbXsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVtLkxBTkdVQUdFeyBkaXNwbGF5Om5vbmU7IH0gLmJ1cmdlci1tZW51LWNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmJ1cmdlcl90b3AgeyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXJfYm90dG9tIHsgdHJhbnNmb3JtLW9yaWdpbjowIDUwJTsgfSAuYnVyZ2VyLW1lbnUtYnV0dG9uID4gc3BhbiB7IHdpZHRoOjEuNnJlbTsgaGVpZ2h0OjAuMjVyZW07IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYik7IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC40cyBlYXNlOyB6LWluZGV4OjEwMTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9wLCAjYm1fYm90dG9tX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX3RvcHsgb3BhY2l0eToxOyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxlLCAjYm1fYm90dG9tX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX21pZGRsZXsgb3BhY2l0eTowOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIHNjYWxlKDAuMiwgMC4yKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9tLCAjYm1fYm90dG9tX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX2JvdHRvbXsgb3BhY2l0eToxOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZykgdHJhbnNsYXRlKDAuMXJlbSwgMCk7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dHJhbnNsYXRlKDE5cmVtKTsgfSBsYWJlbFtmb3I9ImJtX3RvZ2dsZSJdeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTAyOyB9IC50aGluTGVmdCAuaGVhZGVyLWRlYWxlci1uYW1lIHsgZm9udC1zaXplOnZhcigtLWZzMCk7IG1hcmdpbi1sZWZ0OjhweDsgfSAudGhpbkxlZnQgLmxvZ28tYWN0aW9uIGEgeyBmbGV4LWJhc2lzOjE1JSB9IGhlYWRlci50aGluTGVmdCBhc2lkZSB7IGxlZnQ6dW5zZXQ7IHJpZ2h0OjA7IHRyYW5zZm9ybTpzY2FsZVgoMCkgdHJhbnNsYXRlWCgxOXJlbSk7IHRyYW5zZm9ybS1vcmlnaW46MTAwJSA1MCU7IH0gLnRoaW5MZWZ0ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gfiBhc2lkZXsgdHJhbnNmb3JtOnVuc2V0OyB9Ci8qKiAvY3NzL3NrZWxldG9uLmNzcyAqKi8KLmhpZGVPblByZUxvYWQgeyB2aXNpYmlsaXR5OmhpZGRlbjsgfSAucmV2ZWFsLW1vZGFsIHsgdmlzaWJpbGl0eTpoaWRkZW47IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTEwMDBweDsgfSAuc2tlbGV0b24geyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZWVlOyB9IC5za2VsZXRvbjo6YmVmb3JlIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NDsgY29udGVudDoiIjsgZm9udC1zaXplOjAuNzVyZW07IGxpbmUtaGVpZ2h0OjAuNzVyZW07IGNvbG9yOiM4ODg7IGFuaW1hdGlvbjpza2VsZXRvbi1hbmltIDJzIGxpbmVhciBpbmZpbml0ZTsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbGV0dGVyLXNwYWNpbmc6MC4yNXJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyB9IEBrZXlmcmFtZXMgc2tlbGV0b24tYW5pbSB7IDAlIHsgY29udGVudDoiIjsgfSAyNSUgeyBjb250ZW50OiJ8IjsgfSA1MCUgeyBjb250ZW50OiJ8fCI7IH0gNzUlIHsgY29udGVudDoifHx8IjsgfSB9IC5za2VsZXRvbiBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbiBzcGFuOmZpcnN0LWNoaWxkIHsgb3BhY2l0eTowOyB0cmFuc2l0aW9uOm9wYWNpdHkgLjMwMHM7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIHsgYmFja2dyb3VuZDpub25lOyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZCB7IHdpZHRoOmluaGVyaXQgIWltcG9ydGFudDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyB7IGJhY2tncm91bmQ6dW5zZXQ7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3cgZGl2OmZpcnN0LWNoaWxkLCAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBzcGFuOmZpcnN0LWNoaWxkIHsgb3BhY2l0eToxOyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93OjpiZWZvcmUgeyBjb250ZW50OiIiOyBkaXNwbGF5Om5vbmU7IGFuaW1hdGlvbjp1bnNldDsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIuZml4ZWQuaXMtbG9hZGVkLW5vdyA+IGRpdjpmaXJzdC1jaGlsZCB7IG9wYWNpdHk6Ljc1OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkOmhvdmVyIHsgb3BhY2l0eToxOyB9Ci8qKiAvY3NzL2Nzcy5jc3MgKiovCmh0bWwsIGJvZHksIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGZvbnQsIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkIHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSBodG1seyBmb250LXNpemU6MXJlbSA7IH0gYm9keSB7IHBhZGRpbmc6MDsgbWFyZ2luLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgYmFja2dyb3VuZDogdG9wIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyB9IGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBidXR0b24geyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgfSAubmF2IGxpIGEudG9wX2xpbmssIC51cF9tZW51IHVsLm5hdiB1bC5zdWIgbGkgYS5zdWJ0aXRsZSwgLmltZ19tZW51LnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9ORVc+dWwuc3ViIGxpPnVsLnN1Yj5saS5oYXNTdWIgbGkgYSwgYm9keSAud3JhcHBlciAudXBfbWVudSAubmF2eyBmb250LWZhbWlseTp2YXIoLS1mb250LW1lbnUpOyBmb250LXdlaWdodDp2YXIoLS1mb250LW1lbnUtd2VpZ2h0KTsgfSBoMXsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDEtd2VpZ2h0KTsgY2xlYXI6Ym90aDsgfSAuZm4ub3JneyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyB9IGlucHV0W3R5cGU9YnV0dG9uXSwgYnV0dG9uLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4gc3BhbiwgLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhLCAuYnV0dG9uXzMgYSwgLmJ1dHRvbl91bmRlciBhLCAuYnV0dG9uX2NtcF9sZWZ0IGEsIC5idXR0b25fY21wX3JpZ2h0IGEsIC5idXR0b25fY21wX2FjdCBhLCAucHVsbG91dHMgYSwgLmlkTmF2MSBsaSBhLnRvcF9saW5rMSwgLmN0YV9wcmljZS5hbHQsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV90ZXN0RHJpdmUsIC5jdGFfZXZhbC5hbHQsIC5jdGFfc2VydmljZS5hbHQsIC5jdGFfcGFydHMuYWx0LCAuY3RhX3RpcmVzLmFsdCwgLmN0YV9zdmNwcm9tby5hbHQsIC5ib3gxNSBoMiBhLCAuYm94MTkgaDIgYSwgLmJveDI3IGEsIC52aW9yLCAuYnRuLWRlZmF1bHQsIC5idG4tc20sIC5idG4tbGcgeyBmb250LWZhbWlseTp2YXIoLS1mb250LWJ1dHRvbnMpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWJ1dHRvbnMtd2VpZ2h0KTsgfSBoMixoMyxoNCxoNSxoNnsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgfSBzdHJvbmd7IGZvbnQtd2VpZ2h0OjkwMCAhaW1wb3J0YW50OyB9ICNtYWluRGl2LndyYXBwZXIgLnRvcF9iZ3sgbWF4LWhlaWdodDoyNTBweDsgbWluLWhlaWdodDoxMTVweDsgfSAuaGVhZGVyLWltYWdlLXdyYXBwZXIgaW1nLmltYWdlLXBhZGRpbmcgeyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLmNrZWRpdG9yV3JhcHBlciBoMiB7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBtYXJnaW4tcmlnaHQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6MTVweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjE1cHggIWltcG9ydGFudDsgfSAuY2tlZGl0b3JXcmFwcGVyIGEgeyBmbG9hdDpub25lICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBmb250LXNpemU6MTAwJSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcCB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgfSAuY2tlZGl0b3JXcmFwcGVyIHA6ZW1wdHkgeyBtYXJnaW4tYm90dG9tOjFyZW07IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb2xsYXBzZS5zaG93LCAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbGxhcHNlLnNob3cgLmNhcmQtYm9keSB7IHZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGEuZGVzY3JpcHRpb24tYXV0by1saW5rIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50OyBjb2xvcjppbmhlcml0OyB9IC5jbHJ7IGNsZWFyOmJvdGg7fSAuZmxlZnR7IGZsb2F0OmxlZnQ7IH0gaW5wdXQ6aW52YWxpZHtib3gtc2hhZG93Om5vbmU7IC1tb3otYm94LXNoYWRvdzpub25lO30gLmNvbmRpdGlvbnMtLWNvbnRhaW5lciB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmNvbmRpdGlvbnMtLWNvbnRhaW5lciAuY29uZGl0aW9ucyB7IGZsZXgtZ3JvdzoyOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxOHB4OyBjb2xvcjojNzA3MDcwOyB9IC5jb25kaXRpb25zRm9vdGVyeyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDsgbWFyZ2luLXRvcDoyNXB4OyBjb2xvcjojNzA3MDcwOyB9IC5jb25kaXRpb25zLS1jb250YWluZXIgYSwgLmNvbmRpdGlvbnNGb290ZXIgYSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNzA3MDcwOyBmb250LXdlaWdodDpub3JtYWw7IH0gLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIGF7IGNvbG9yOmluaGVyaXQ7IH0gLm1haW5EaXYtd3JhcHBlciA+IC5sYW5ndWFnZUJhci16ZXJvIHsgbWFyZ2luOjA7IGhlaWdodDppbmhlcml0OyB3aWR0aDoxMDAlOyB9IC5oZWFkZXItc2VjdGlvbiAubGFuZ3VhZ2VCYXIgeyBtYXJnaW46MCBhdXRvIDIuNzVyZW07IHdpZHRoOmluaGVyaXQ7IH0gLmhlYWRlci1zZWN0aW9uIC5sYW5ndWFnZUJhciArIC5waG9uZSB7IG1hcmdpbi1ib3R0b206MC41cmVtOyB9IC5sYW5ndWFnZUJhciB1bCBhOmhvdmVye2ZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY2NjY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSAubGFuZ3VhZ2VCYXIgdWwgYTp2aXNpdGVke3BhZGRpbmctcmlnaHQ6MzVweDsgd2lkdGg6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjY2NjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgdGV4dC1hbGlnbjpyaWdodDt9IC5sYW5ndWFnZUJhci5sYW5ndWFnZUJhci16ZXJvIHsgaGVpZ2h0OjA7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gI21haW5EaXYud3JhcHBlci5uby1pY29ucyB7IHBhZGRpbmctdG9wOjAuMDFyZW07IH0gLnRvcF9yb3V7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6NHB4OyBmbG9hdDpsZWZ0OyB9IC5sb2dveyB9IC5sb2dvTm9QYWRkaW5nIGltZ3sgd2lkdGg6MTAwJTt9IC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b24sIC5sYW5ndWFnZUJhciBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b257IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgZm9udC1zaXplOjAuNzVyZW0gOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MjZweDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHZlcnRpY2FsLWFsaWduOnRvcDsgYm9yZGVyOjFweCBzb2xpZCAjQjZCN0I5OyBjb2xvcjojQjZCN0I5OyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyB9IC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbi5hY3RpdmUsIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246aG92ZXJ7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiMxYjFiMWI7IGJhY2tncm91bmQtY29sb3I6I0I2QjdCOTsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5sYW5ndWFnZUJhciBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b246bnRoLWNoaWxkKGV2ZW4pLCAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uOm50aC1jaGlsZChldmVuKXsgbWFyZ2luLWxlZnQ6MnB4OyB9IC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b24gc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQsIC5sYW5ndWFnZUJhciBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b24gc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHR7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyB9IC5sb2dvTm9QYWRkaW5neyBtYXgtd2lkdGg6NTAlOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOi00cHg7fSAudi1jYXJkLnRvcF9iZyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyB9IC52LWNhcmQudG9wX2JnLi1tdDAgLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKSB7IG1hcmdpbi10b3A6NzRweDsgfSAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmZsZXg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuaGVhZGVyLWltYWdlLXdyYXBwZXIgeyBtaW4taGVpZ2h0Ojk3cHg7IH0gLmhlYWRlci1zZWN0aW9uLmltYWdlIHsgd2lkdGg6MjUlOyB9IC5oZWFkZXItc2VjdGlvbi5pbWFnZSA+IC5oZWFkZXItaW1hZ2Utd3JhcHBlciBpbWcgeyBtYXgtaGVpZ2h0OjI1MHB4OyB9IC5oZWFkZXItc2VjdGlvbiA+IGRpdiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5oZWFkZXItc2VjdGlvbiAucGhvbmUgeyB3aWR0aDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp2YXIoLS1kZWFsZXItYWRkcmVzcy1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOnJpZ2h0OyBwYWRkaW5nOjAuNXJlbSAwOyB9IC5oZWFkZXItc2VjdGlvbjpudGgtY2hpbGQoMikuaW1hZ2UgeyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5oZWFkZXItc2VjdGlvbiAucGhvbmUucGhvbmVfcmlnaHR7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9sZWZ0IHsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5oZWFkZXItc2VjdGlvbiA+IC52LWNhcmQgeyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGV7IGRpc3BsYXk6ZmxleDsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIC5tdWx0aS1hZGRyZXNzLS1waG9uZXsgd2lkdGg6YXV0bzsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgLm11bHRpLWFkZHJlc3MtLXBob25lIGl7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAubXVsdGktYWRkcmVzcyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB9IC5tdWx0aS1hZGRyZXNzLS1waG9uZSB7IHdpZHRoOjEzM3B4OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyB9IC5tdWx0aS1hZGRyZXNzIGkgeyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gLnRvcF9iZyB0YWJsZSB0Ym9keSB0ZDpudGgtY2hpbGQoMikgLmhlYWRlci1zZWN0aW9uIHsgd2lkdGg6MTAwJTsgfSAudG9wX2JnLmRpdlRhYmxlIC5oZWFkZXItc2VjdGlvbjpudGgtY2hpbGQoMikgeyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC50b3BfYmcgdGFibGUgdGQgLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnBob25lIGgyeyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmUgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM1MjUyNTI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBob25lIGRpdi5vcmd7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiM1MjUyNTI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBob25lX3RleHQgeyBjb2xvcjp2YXIoLS1kZWFsZXItYWRkcmVzcy1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWxlZnQ6MnB4OyBwYWRkaW5nLXRvcDoycHg7fSAucGhvbmVfdGV4dCBheyBjb2xvcjp2YXIoLS1kZWFsZXItYWRkcmVzcy1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmlubGluZS1ibG9jazsgd2lsbC1jaGFuZ2U6dHJhbnNmb3JtOyB0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGNlbnRlcjsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zcyBlYXNlOyB9IC5waG9uZV90ZXh0IGE6aG92ZXJ7IHRyYW5zZm9ybTpzY2FsZSgwLjkzKTsgY29sb3I6IzAwNTc5YzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gYS5waG9uZS1saW5rIHsgZGlzcGxheSA6aW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHBhZGRpbmcgOjAgIWltcG9ydGFudDsgY29sb3IgOmluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbiA6bm9uZTsgfSBhLnBob25lLWxpbms6aG92ZXIgeyBjb2xvcjppbmhlcml0OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjc2xpZGVyeyB3aWR0aDo5NjBweDsgbWFyZ2luLWxlZnQ6MHB4OyBib3gtc2hhZG93Om5vbmU7IH0gLmNlbnRlcmVkIHtwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo1MCU7IHRvcDo1MCU7fSAudXBfbWVudXsgd2lkdGg6OTYwcHg7IGhlaWdodDozMXB4OyB6LWluZGV4OjExMTE7IGZsb2F0OnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcDsgfSAuYmFubmVyeyB3aWR0aDo5NjBweDsgaGVpZ2h0OjMwMXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoycHg7IG1hcmdpbi1ib3R0b206NnB4OyB9IC5tZV90b3B7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLm1lX2JneyB3aWR0aDo5NjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVfYmdfcm91LnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAubWVfZGVzY3ttYXJnaW46MHB4O2hlaWdodDphdXRvO2ZvbnQtc2l6ZTowLjg3NXJlbSA7IG92ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjVweCAxNXB4fSAubWVfYm91eyB3aWR0aDo5NjdweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDt9IC5vbmV7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXRvcDo4cHg7fSAudHdveyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjE0cHg7IG1hcmdpbi10b3A6OHB4O30gLnRocmVleyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjE0cHg7IG1hcmdpbi10b3A6OHB4O30gLmZvdXJ7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NHB4OyBtYXJnaW4tdG9wOjRweDt9IC5Wb3VzeyBmb250LXNpemU6MS4wNjNyZW0gOyBjb2xvcjojMWIxYjFiOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206MnB4O30gLmNsYXNzeyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206MHB4OyBwYWRkaW5nLXRvcDo2cHg7fSAuY2xhc3MxeyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgaGVpZ2h0OjE1N3B4OyBtYXJnaW4tdG9wOjZweDt9IC5ib3JkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZDNkM2QzOyB3aWR0aDoyMThweDt9IC5ib3h7IHdpZHRoOjc1cHg7IGhlaWdodDo3M3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy10b3A6MTBweDsgbWFyZ2luOjAgYXV0bzt9IC5jYXtoZWlnaHQ6MTQzcHg7fSAuYm94MjI1eyB3aWR0aDoyMjVweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjNweDt9IC5ib3gyMjR7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWJvdHRvbTo2cHg7fSAuYm94MjIzeyB3aWR0aDoyMjVweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6M3B4O30gLm5vc3sgd2lkdGg6NzEwcHg7IGhlaWdodDoxMDAlOyBtYXJnaW4tdG9wOjVweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDt9IC5ub3NfdG9weyB3aWR0aDo3MTZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDt9IC5ub3NfYmd7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ub3NfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5ub3NfYm91eyB3aWR0aDo3MTZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDt9IC5ub3NfdGV4dHtoZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLmFyb3d7IHdpZHRoOjY5NXB4OyBoZWlnaHQ6MTYwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjRweDt9IC5jb257IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMzYzNjM2M7fSAuZGVzYyB7bWF4LXdpZHRoOjEwMCU7fSAuZGVzY19iZyB7d2lkdGg6MTAwJTsgaGVpZ2h0OjI0OHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9ub3NfYmcucG5nIikgcmVwZWF0LXkgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50O30gLmFkZHJ7bWFyZ2luLXRvcDoyNXB4O30gLmFkZHJfbWlke2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVfYmdfcm91LnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAuaGlkZGVue2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30gLmhvdXJzX3JlbSB7IHRleHQtYWxpZ246cmlnaHQ7bGluZS1oZWlnaHQ6MThweDsgZmxvYXQ6cmlnaHQ7cGFkZGluZy1yaWdodDoxNXB4OyB9IC5ob3Vyc19yZW0gYXsgZm9udC1zaXplOjAuNjg4cmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI2x7d2lkdGg6NjBweDsgZmxvYXQ6bGVmdDt9IC5kZXJ7d2lkdGg6NDYwcHg7IGhlaWdodDoyNTVweDsgbWFyZ2luLXRvcDoxcHg7IGZsb2F0OmxlZnQ7fSAuZGVyX3RvcHsgd2lkdGg6NDY0cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAuZGVyX2JneyB3aWR0aDo0NDRweDsgaGVpZ2h0OjIyNnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjZweCAxMHB4IDEwcHggMTBweDt9IC5kZXJfYm91eyB3aWR0aDo0NjRweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5kZW17d2lkdGg6NDk1cHg7IGhlaWdodDoyNTVweDsgbWFyZ2luLXRvcDozcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDttYXJnaW4tYm90dG9tOjZweDt9IC5zYm94MXsgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3gyeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDN7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94NHsgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLmJvdHRvbTRib3hlc3tmbG9hdDpsZWZ0O3dpZHRoOjEwMCU7cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt9IC5ib3R0b200Ym94ZXMgKiB7Ym94LXNpemluZzpib3JkZXItYm94O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDV7ZmxvYXQ6bGVmdDt3aWR0aDoyNSU7bWF4LXdpZHRoOjI0NXB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDF7ZmxvYXQ6bGVmdDttYXJnaW46MTBweCA2cHg7fSAuYm90dG9tNGJveGVzID4gLmJveDI0MTpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowcHg7fSAuYm90dG9tNGJveGVzID4gLmJveDI0MTpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowcHg7fSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KSB7IC5ib3R0b200Ym94ZXMgdGFibGUgeyBwYWRkaW5nOjAgMTBweDsgfSB9IC5zYm94VXNlZHsgZmxvYXQ6bGVmdDsgfSAuc2JveF90b3B7IHdpZHRoOjI0N3B4OyBoZWlnaHQ6NXB4OyBmbG9hdDpsZWZ0O30gLnNib3hfYmd7IHdpZHRoOjI0N3B4OyBoZWlnaHQ6MTA3cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2JveF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5zYm94X2JvdXsgd2lkdGg6MjQ3cHg7IGhlaWdodDo1cHg7IGZsb2F0OmxlZnQ7fSAuZGF7IG1hcmdpbi10b3A6MTJweDt9IC5kYTF7IG1hcmdpbi10b3A6MTBweDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZGExIGgxeyBwYWRkaW5nOjA7IG1hcmdpbjowOyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsO30gLmFkZGxpbmV7IGNvbG9yOiMxYjFiMWIhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW47IHRleHQtYWxpZ246Y2VudGVyOyB9ICNyZXR1cm5Qb3B1cE5leHRNb2RlbHsgaGVpZ2h0OjQwcHghaW1wb3J0YW50OyB9IC5hZGRsaW5lOjpiZWZvcmUsIC5hZGRsaW5lOjphZnRlciB7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgY29udGVudDoiIjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGhlaWdodDoxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHdpZHRoOjUwJTsgfSAuYWRkbGluZTpiZWZvcmUgeyByaWdodDowLjVlbTsgbWFyZ2luLWxlZnQ6LTUwJTsgfSAuYWRkbGluZTphZnRlciB7IGxlZnQ6MC41ZW07IG1hcmdpbi1yaWdodDotNTAlOyB9IC5zYm94MSBhLmNMaW5rLCAuc2JveDIgYS5jTGluaywgLnNib3gzIGEuY0xpbmssIC5zYm94NCBhLmNMaW5reyBkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnNib3gxIGEuY0xpbms6aG92ZXIsIC5zYm94MiBhLmNMaW5rOmhvdmVyLCAuc2JveDMgYS5jTGluazpob3ZlciwgLnNib3g0IGEuY0xpbms6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24sIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24tY2VydCwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiAuYm9yZGVyX2JveCB7IGJhY2tncm91bmQtY29sb3I6I2ZhZmFmYTsgYmFja2dyb3VuZC1jb2xvcjo7IGNvbG9yOiMxYjFiMWI7IGNvbG9yOiMxYTFhMWE7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiBhLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgYSB7IGNvbG9yOiMxYjFiMWI7IGNvbG9yOiMxYTFhMWE7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiAuYm9yZGVyX2JveCwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0IC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBjb2xvcjppbmhlcml0OyB9IC5ibGFja190ZXh0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzE5MTkxOTsgbWFyZ2luLWJvdHRvbTo0cHg7fSAuZ3JheV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMTkxOTE5O30gLmJ1dHsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjowcHggMHB4IDBweCAwcHg7fSAubGluZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2QyZDJkMjsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1ib3R0b206NXB4O30gLnZpdnsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiNmZmY7IGNvbG9yOiMxYjFiMWI7IHRleHQtYWxpZ246anVzdGlmeTt9IC50d3sgd2lkdGg6MjYwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7fSAuRU5HTElTSCAudml2e3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuTWFpbkJveExheWVyIC52aXYgeyBtYXJnaW4tbGVmdDowOyB9IC5zb2NpYWwtc2hhcmluZ3sgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWx7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nLWxlZnQ6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6bGFzdC1jaGlsZHsgcGFkZGluZy1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpmaXJzdC1jaGlsZHsgcGFkZGluZy1yaWdodDo1cHg7IH0gLk1haW5Cb3hMYXllciAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gI2Zvb3RlckRpdiAuYWRkLCAjZm9vdGVyRGl2IC5hZGQgYSB7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSAjZm9vdGVyRGl2IC5hZGQgLm9yZ3sgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAucG91cnsgd2lkdGg6NzI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLnBhZ2Vub3t3aWR0aDoyMzZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi10b3A6MTBweDsgfSAucGFnZW5vIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxNXB4IDA7IHBhZGRpbmc6MDsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAucGFnZW5vIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7ZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wYWdlbm8gdWwgbGkgYXsgd2lkdGg6MjM3cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vIHVsIGxpIHNwYW4sIC5wYWdlbm8gdWwgbGkgYS5mdGl0bGV7IHdpZHRoOjIzNnB4OyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZTpob3ZlcnsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnBhZ2VubyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLnBhZ2VubyBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6MThweDt9IC5FTkdMSVNIIC5wYWdlbm8gdWwgbGkgYXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO30gLmFkZHsgd2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOnJpZ2h0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O30gLmNvcHl7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7fSAuY29weSBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyBmb250LXdlaWdodDpub3JtYWx9IC5jb3B5IGE6aG92ZXJ7IGNvbG9yOiNkNGQ0ZDQ7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuZm9vdGVyLWxpc3RzIGxpID4gc3BhbiB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gI2Zvb3RlcldyYXBwZXIgLnYtY2FyZC5hZGQgeyBsaW5lLWhlaWdodDppbml0aWFsOyB9ICNmb290ZXIgLmZvb3Rlci10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wsIHZhcigtLXdoaXRlKSk7IH0gLkVOR0xJU0ggI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDp2YXIoLS1zNSk7IH0gI2Zvb3RlciA+IC5mbGV4LWJveCA+IC5mb290ZXItbG9nb19fY29udGFpbmVyIGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjE1MHB4OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLW1lZGlhLWljb25zIHsgdGV4dC1hbGlnbjpsZWZ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgeyB3aWR0aCA6YXV0bzsgaGVpZ2h0OmF1dG87IG1hcmdpbjowIDRweDsgfSAjZm9vdGVyIGEuc29jaWFsLWxpbmsgPiBzdmcgeyBoZWlnaHQ6MjJweDsgbWFyZ2luLWxlZnQ6M3B4OyB9IGhlYWRlciAuaGVhZGVyLXNvY2lhbCAjc29jaWFsX21lZGlhX2ljb25zX2RpdiA+IGEgPiBzdmcgeyBoZWlnaHQ6MjFweDsgbWFyZ2luLXRvcDo0cHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyAuc29jaWFsLWljb25zIC5mYWIgeyBtYXJnaW4tdG9wOjA7IGZvbnQtc2l6ZSA6MS45ZW07IGNvbG9yIDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjFyZW07IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5mb290ZXItbG9nb19fY29udGFpbmVyIHsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjE4MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9sZWZ0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gI2Zvb3RlciB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTk5cHgpIHsgI01haW5NZW51X1NFQVJDSF9CQVIgeyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkuZmlyc3RNZW51IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgPiB1bC5zdWIgeyByaWdodDoxMHB4OyB9IC5sYW5ndWFnZUJhciBkaXY6Zmlyc3Qtb2YtdHlwZSB7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5tZW51NyAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTggLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0xNjBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMzAwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IH0gLmRpdlNwYW4ucGFnZW5vIHsgbWFyZ2luLWxlZnQ6MDsgfSAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgc3BhbiwgLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEuZnRpdGxlIHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWF4LXdpZHRoOjIyNXB4OyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAuYWRyIHsgbGluZS1oZWlnaHQ6MS4ycmVtOyBtYXJnaW46MC41cmVtIDA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZm9vdGVyLXRpdGxlX19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjJyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjMgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE1cHg7IHBhZGRpbmctcmlnaHQ6MzBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLmRpdlNwYW45IHsgZmxvYXQ6cmlnaHQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyBmbG9hdDp1bnNldDsgY2xlYXI6dW5zZXQ7IG1hcmdpbjowOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbC1zaGFyaW5nIHsgd2lkdGg6MjUlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzUlOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxcmVtOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWw6Zmlyc3QtY2hpbGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9ICNmb290ZXIgLmljb24tdGV4dHsgbWFyZ2luLWJvdHRvbTouNHJlbTsgfSAjZm9vdGVyIC5pY29uLXRleHQgc3Bhbnsgd2lkdGg6MjBweDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2Zvb3RlciAuZm4ub3JnIHsgbGluZS1oZWlnaHQ6Mi4wNjI1cmVtOyB9IC5zbWFsbHBpY19ib3h7d2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDt9IC5zbWFsbHBpYzQze3dpZHRoOjQzcHg7IGhlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMCAwOyBib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7fSAuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgZGlzcGxheTpibG9jazsgfSBhLmRldGFpbHN7d2lkdGg6ODFweDsgaGVpZ2h0OjMwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGV0YWlscy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IGE6aG92ZXIuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCAtMzJweCBuby1yZXBlYXQ7fSAuYmlnX3BpY2JveHttaW4taGVpZ2h0OjExMHB4O3dpZHRoOjE0NnB4O30gLmJpZ19waWNib3ggaW1neyBkaXNwbGF5OmJsb2NrOyB9IC5waWNib3hfdmlkZW9idG5fZW4sIC5waWNib3hfdmlkZW9idG5fZnIge2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQ1cHg7fSAucGljYm94X3ZpZGVvYnRuX2VuIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW4ucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2VuOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW5faG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnJfaG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAuYmlnX3BpY2JveF93cmFwcGVyIHsgd2lkdGg6MTQ2cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDEwcHggMHB4IDIxcHg7IH0gLnRleHRfdGl0bGUgYXsgZGlzcGxheTpibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyBmb250LXdlaWdodDpib2xkO30gLnRleHRfdGl0bGUye3dpZHRoOjMyOXB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNvbGRfY2FyX25vdGV7YmFja2dyb3VuZC1jb2xvcjojMUUxRTFFOyBib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0ZGRjsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjE1cHg7fSAuc29sZF9jYXJfbm90ZSBhIHtjb2xvcjojRkZGO30gLnNvbGRfY2FyX25vdGUgYTpob3ZlciB7Y29sb3I6I0JCQjt9IC50ZXh0X3RpdGxlM3t3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDsgcGFkZGluZy1ib3R0b206N3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDg0ODQ4O30gLnRleHRfYm94Mnt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDBweCAwcHggMHB4OyB9IC5tYWluX3BpY2JveHt3aWR0aDo2NzFweDsgbWluLWhlaWdodDoxNzBweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMnt3aWR0aDo2ODFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyX2RldGFpbHNfbWlkRXh7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDBweDtoZWlnaHQ6ODVweDt9IC5ib3gyX2RldGFpbHNfdGV4dCBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMjJ7d2lkdGg6OTcxcHg7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87fSAuYm94MTcwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDBweCAxMHB4IDA7fSAuY3VzdG9tQm94QmFzaWN7IHdpZHRoOjI0MXB4OyBoZWlnaHQ6MTE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDAgMCAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZToyNDFweCAxMjFweDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLmN1c3RvbUJveEJhc2ljOmhvdmVyeyBjb2xvcjojZmZmOyB9IC5jdXN0b201IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMl9ob3Zlci5wbmcpOyB9IC5jdXN0b201NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjIucG5nKTsgfSAuY3VzdG9tNjY1IHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3gyM19ob3Zlci5wbmcpOyB9IC5jdXN0b202NjU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMy5wbmcpOyB9IC5jdXN0b202NzUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3LnBuZyk7IH0gLmN1c3RvbTY3NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3X2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY4NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjgucG5nKTsgfSAuY3VzdG9tNjg1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjhfaG92ZXIucG5nKTsgfSAuaW1hZ2VfcmliYm9uIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6LTVweDsgdG9wOi00cHg7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMTJweDsgaGVpZ2h0OjExMnB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5pbWFnZV9yaWJib24gc3BhbiB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyOHB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoxNDhweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojZTMxNzNlOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjMwcHg7IGxlZnQ6LTMwcHg7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgI2UzMTczZTsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNlMzE3M2U7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDozcHggc29saWQgI2UzMTczZTsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNlMzE3M2U7IH0gLmltYWdlX3JpYmJvbl92ZHAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTZweDsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxOTRweDsgaGVpZ2h0OjE5NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB6LWluZGV4OjQwOyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW4geyBmb250LXNpemU6MS4wNjNyZW0gOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzZweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgd2lkdGg6MjczcHg7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6I2UzMTczZTsgYm94LXNoYWRvdzowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo2N3B4OyBsZWZ0Oi01MXB4OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjMWIxYjFiOzsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMxYjFiMWI7OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjMWIxYjFiOzsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMxYjFiMWI7OyB9IC5yaWJib24tY29udGFpbmVyIHsgd2lkdGggOjMwMHB4OyBoZWlnaHQgOjMwMHB4OyBvdmVyZmxvdyA6aGlkZGVuOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbiB7IHotaW5kZXggOjU1NTsgbWFyZ2luIDowOyBwYWRkaW5nIDowLjVyZW0gMCAhaW1wb3J0YW50OyBib3gtc2hhZG93IDowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgZm9udC1zaXplIDoxN3B4OyBsaW5lLWhlaWdodCA6MjNweDsgdGV4dC1hbGlnbiA6Y2VudGVyOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgdHJhbnNmb3JtIDp0cmFuc2xhdGVYKC0zMCUpIHRyYW5zbGF0ZVkoMCUpIHJvdGF0ZSgtNDVkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luIDp0b3AgcmlnaHQ7IGJhY2tncm91bmQgOiNlMzE3M2U7IGNvbG9yIDojZmZmZmZmOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSwgLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YWZ0ZXIgeyBjb250ZW50IDoiIjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IG1hcmdpbiA6MCAtMXB4OyB3aWR0aCA6MTAwJTsgaGVpZ2h0IDoxMDAlOyBiYWNrZ3JvdW5kIDojZTMxNzNlOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLnNlYXJjaHJpZ2h0IHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsO2N1cnNvcjpwb2ludGVyOyB9IC5zZWFyY2hyaWdodGhvdmVyIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0WFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdCByZ2IoMjcsMjcsMjcpOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDtjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHRob3ZlclhYWCB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MTE2cHg7IHBhZGRpbmc6NXB4IDAgMCAwOyBtYXJnaW46MCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LWhvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0IHJnYigyNywyNywyNyk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHQtdGV4dHsgbWFyZ2luLWxlZnQ6MTAwcHg7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6NjAlOyB9IC5zZWFyY2hyaWdodC10ZXh0IHB7IG1hcmdpbjoxNXB4IDAgMDsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLm1haW5fYm94e3dpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvO30gLm1haW5fbGVmdF9ib3h7d2lkdGg6NjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6MTBweDt9IC5tYWluX2xlZnRfYm94IHVse3BhZGRpbmc6MHB4O30gLmJveF9taWRfcm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXRvcDoxMHB4OyB9IC5ib3hfdG9wX3JvdW5kIHsgZGlzcGxheTpub25lOyB9IC5ib3gyX2RldGFpbHNfZm9vdGVyMiB7IGRpc3BsYXk6bm9uZTsgfSAuZGV0YWlsc19ib3ggaW1nLnZpcHsgbWFyZ2luLXRvcDotNDhweDsgd2lkdGg6MTQwcHg7IGJvcmRlcjoxcHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5ib3hfdG9wX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgbWFyZ2luLXRvcDo1cHg7fSAuYm94X21pZF9yb3VuZDJ7d2lkdGg6OTcxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgcGFkZGluZzowIDVweDt9IC5wYWdlX25hbWV7d2lkdGg6NjUwcHg7IGhlaWdodDozMHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wYWdlX25hbWUgYXsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGFnZV9uYW1lIGE6aG92ZXJ7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWM7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGF7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gdGFibGUudmVoaWNsZUxpc3RUYWJsZSBhOmhvdmVye2Rpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMjt9IC5Qb3JzY2hlMnt3aWR0aDoxMDAlO2hlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDIwcHggMjFweDsgbWFyZ2luOjE1cHggMCAyNXB4IDA7IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7ZGlzcGxheTppbmxpbmV9IC5Qb3JzY2hlMiBoMXtmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuVHJpZXJwYXJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzVCNjk5QzsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo1cHg7fSAuc2VsZWN0ZWRfYm94Mnt3aWR0aDoxNzVweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbWFyZ2luOjE1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5zZWxlY3RlZF9vcmRlcmJ5e3dpZHRoOjEzNXB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTBweCAxMHB4IDBweCAwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAucHJpeHt3aWR0aDo3OXB4OyBoZWlnaHQ6NzhweDsgZmxvYXQ6bGVmdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTE7IG1hcmdpbi10b3A6LTRweDsgbWFyZ2luLWxlZnQ6LTRweDsgdG9wOjBweDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7IGhlaWdodDoyNHB4OyBtYXJnaW46MzBweCAwIDIwcHggMHB4OyBwYWRkaW5nOjA7IGZsb2F0OmxlZnQgfSAucGFnZW5vNnt3aWR0aDoyNTRweDsgaGVpZ2h0OjI0cHg7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246cmlnaHQ7fSAuc3VpdmFudHt3aWR0aDoyODBweDsgaGVpZ2h0OjE5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDt9IC5tYWluX3JpZ2h0X2JveHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94N3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3TGlua3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3X21pZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAycHg7fSAuYm94N19taWRfZnVsbHt3aWR0aDo5NTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6bm9uZSBsZWZ0IHRvcCBuby1yZXBlYXQgMCAwIHRyYW5zcGFyZW50OyBwYWRkaW5nOjAgMnB4IDE1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNCQkI7fSAuc2ltdWxhcl92X2JveHsgd2lkdGg6MjY1cHg7IHBhZGRpbmc6MHB4IDBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveFNlYXJjaE5ld3N7bWFyZ2luLXRvcDotM3B4O21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcF8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94U2VhcmNoTmV3c19taWR7bWFyZ2luLWxlZnQ6LTVweDtwYWRkaW5nOjBweDt3aWR0aDoyODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkXzI4MC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9IC5ib3hTZWFyY2hOZXdzX2Zvb3RlcjE1e21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X2Zvb3Rlcl8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94N0hfbWlke3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWJvdHRvbTo2cHg7fSAuUmVjaGVyY2hlMjJ7aGVpZ2h0OjIwcHg7IHBhZGRpbmc6MTBweCA3cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxYjFiMWI7fSAuc2ltVGl0bGV7aGVpZ2h0OmF1dG87IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDh7d2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7fSAuYm94OXt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDExe3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLmJveDEye3dpZHRoOjEzMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLnNlbGVjdF9ib3gxNHtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjNweDt9IC5zZWxlY3RfYm94MTZ7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94MTE1e3dpZHRoOjExNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuc2VsZWN0X2JveDgwe3dpZHRoOjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLmFfdGV4dHt3aWR0aDoyMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzowIDVweDt9IC5ham91dGVye3dpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjojMWYxZjFmO21hcmdpbjo1cHggMCAxMHB4IDBweDt9IC5ham91dGVyX2F7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvc2VhcmNoLWRvd24tYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IDNweCB0cmFuc3BhcmVudDsgcGFkZGluZy1sZWZ0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ham91dGVyX2FfZnVsbHtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtcmlnaHQtYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCAtMXB4IHRyYW5zcGFyZW50OyBwYWRkaW5nLXJpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ib3gxM3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7fSAuaW5wdXRfYm94Mnt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmlucHV0X3RleHR7IHdpZHRoOjE5NXB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzozcHggMHB4IDdweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmJ1dHRvbl9ib3gye3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAuYnV0dG9uX2JveFMyeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjI5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAzcHggMTNweCAzcHg7IH0gLmJveC1mb290ZXIxNXt3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmRpc3sgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjQwcHg7fSAuZGlzX2N1c3RvbXsgd2lkdGg6MjQwcHg7d2lkdGg6MjQwcHg7fSAuZGlzX3RvcHsgd2lkdGg6MjQ2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAuZGlzX3RvcF9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojY2JjYmNiO30gLmRpc19iZ3sgd2lkdGg6MjQ2cHg7IGhlaWdodDoxNTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5fZGlzX2JneyB3aWR0aDoyNDBweDsgaGVpZ2h0OjIwMHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4O30gLmRpc19iZ19jdXN0b217IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5fZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmRpc19ib3V7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLl9kaXNfYm91eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjM4cHg7IGZsb2F0OmxlZnQ7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTRweDsgY29sb3I6IzJkMmQyZDs7IH0gLmRpc19ib3VfY3VzdG9teyB3aWR0aDoyMzhweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDsgY29sb3I6IzFiMWIxYjsgYmFja2dyb3VuZDojZmZmZmZmO30gLl9kaXNfYm91X2N1c3RvbXsgd2lkdGg6MjQwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMWIxYjFiOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyBtYXJnaW4tdG9wOjEycHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAuZGlzX2JvdV8yeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91XzIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzX3RleHR7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IHBhZGRpbmc6NHB4IDBweCAwcHggMTVweDt9IC5sdW5kaV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBwYWRkaW5nOjJweCAwcHggMHB4IDIwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7fSAubHVuZGlfdGV4dF9ob21lcGFnZV9oMjQ4e2ZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IHBhZGRpbmc6MTBweCAwIDAgMjBweDsgfSAubHVuZGlfdGV4dCB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsO3dpZHRoOjYwcHg7fSAubHVuZGlfdGV4dCB0ZHt0ZXh0LWFsaWduOmxlZnQ7fSAucHsgaGVpZ2h0OjE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDVweCAwcHggMTBweDsgZm9udC1zaXplOjAuODEzcmVtIDt9IC5leyBoZWlnaHQ6MTZweDsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6N3B4IDBweCAwcHggMHB4OyBmb250LXNpemU6MC44NzVyZW0gO30gLmJveDI4OCwgLmJveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5fYm94Mjg4LCAuX2JveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OFVzZWR7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDowcHg7fSAuYm94Mjg4TmV3e3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyB9IC5ib3gyODhOZXdfY3VzdG9te2Zsb2F0OmxlZnQ7fSAuYm94Mjg4TmV3UU0sIC5ib3gyODhOZXdRTV9tb2JpbGUgeyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyBmbG9hdDpsZWZ0OyB3aWR0aDoyODBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveDI4OE5ld1FNX21vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuUmVjaGVyY2hlMjIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHRhYmxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIGlucHV0IHsgd2lkdGg6OTUlIWltcG9ydGFudDsgfSAuYm94Mjg4UU17IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDtmb250LXdlaWdodDpub3JtYWw7fSAuYm94Mjg4UU1fY3VzdG9te3dpZHRoOjI3OHB4O21hcmdpbjo1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDAgNHB4ICMzMzM7fSAudGV4dEFyZWFRTXsgZm9udC1zaXplOjAuODEzcmVtIDtsaW5lLWhlaWdodDoxNXB4O30gLmJveDI4OF90b3B7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBtYXJnaW4tdG9wOjBweDt9IC5ib3gyODhfdG9wX2N1c3RvbXt3aWR0aDoyNzhweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6I2NiY2JjYjt9IC5fYm94Mjg4UU17IHdpZHRoOjI4MHB4OyB9IC5fYm94Mjg4X3RvcHt9IC5fYm94Mjg4X3RvcF9jdXN0b217IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBXaWR0aDoxMDAlOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7IH0gLl9ib3gyODgwX21pZHt9IC5fYm94Mjg4MF9taWRfY3VzdG9te2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyODhfbWlkeyBib3gtc2hhZG93OjAgMCA1cHggIzMzMzMzMzsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgfSAuYm94Mjg4X21pZF9jdXN0b217IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4ODBfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC5ib3gyODgwX21pZF9jdXN0b217d2lkdGg6MjI4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAyNXB4OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94MjY5X21pZHt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDE1cHggMHB4IDE1cHg7fSAuem9vbTIye3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2VhcmNoX3JpZ2h0IHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3NlYXJjaC5wbmcpIDAgMCBuby1yZXBlYXQ7IHdpZHRoOjI3OHB4OyBoZWlnaHQ6MTExcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggNXB4IDVweCA1cHh9IC5EZW1hbmRlMjJ7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjZweDsgbWFyZ2luLXRvcDo2N3B4O30gLkRlbWFuZGUyMiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBhOmhvdmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5EZW1hbmRlMjIgc3BhbiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI5MjkyOTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBzcGFuIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmJveDI4OF9mb290ZXJ7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXI1NXsgd2lkdGg6MjgwcHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kLWNvbG9yOiNDQkNCQ0I7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLmJveDI4OF9mb290ZXI1NV9jdXN0b217IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MzVweDsgcGFkZGluZy10b3A6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMWIxYjFiOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLnAgYXt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5nYXAxMHt3aWR0aDoyMzBweDsgaGVpZ2h0OjEwcHg7IGZsb2F0OmxlZnQ7fSAucGFnZV9uYW1lMnt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwIDIwcHggMDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNjI1cmVtIDsgY29sb3I6IzFiMWIxYjtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWUzeyB3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5wYWdlX25hbWUzIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjQyNDI0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTR7d2lkdGg6NjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMTRGODA7fSAucGFnZV9uYW1lNCBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOnJnYigyNywyNywyNyk7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNXt3aWR0aDoxMDAlO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDA7IG1hcmdpbi1ib3R0b206MTVweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsIH0gI3NlYXJjaENvbnRhaW5lclBhcmVudCAucGFnZV9uYW1lNTpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi10b3A6MzBweDsgfSAuYm94Ml90ZXh0e2hlaWdodDphdXRvOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQgcHsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDtjb2xvcjojMWIxYjFiOyBtYXJnaW4tYm90dG9tOjIwcHg7fSAucG9zaXRpdmVSYXRpbmdUeHQgcHtmb250LXNpemU6MXJlbSA7fSAucG9zaXRpdmVSYXRpbmdUeHQgaDMsIC5wb3NpdGl2ZVJhdGluZ1R4dCBoNHtmb250LXdlaWdodDpub3JtYWw7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e3RleHQtdHJhbnNmb3JtOm5vbmU7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e2ZvbnQtc2l6ZToxLjI1cmVtIDt9IC5ldGFwZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7fSAudGV4dDF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDt9IC50ZXh0MSBhe3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLnRleHQxIGE6aG92ZXJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYS5hY3RpdmV7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAub25lMXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi1sZWZ0OjEwcHg7fSAub25lMSBhe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfcm91bmQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I0ZGRkZGRjsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYTpob3Zlcnt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX2hvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGNvbG9yOiMxYjFiMWI7IGxpbmUtaGVpZ2h0OjQ2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5vbmUxIGEuYWN0aXZle3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzFiMWIxYjsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnNlbGVjdGlvbm5lent3aWR0aDphdXRvOyBoZWlnaHQ6YXV0byA7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6M3B4OyBwYWRkaW5nLXRvcDo0cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxYTFhMWE7IGxpbmUtaGVpZ2h0OjIycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZm9ybXNfYm94MjJ7Ym94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMCAxMHB4IDA7IH0gLndpdGhfYm9yZGVyIHsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MCAxNnB4OyB9IC5QcmVub217d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAxMHB4IDA7fSAuUHJlbm9tIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tMnt3aWR0aDozMjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20yIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tM3t3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub200e3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTV7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzpweCAwIDEwcHggMDt9IC5QcmVub202e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTd7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tOHt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6cHggMCAxMHB4IDA7IGRpc3BsYXk6YmxvY2t9IC5QcmVub205e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLlByZW5vbTEwe3dpZHRoOjEwN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLnRleHQxNXt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNnt3aWR0aDoxNzJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxN3t3aWR0aDoxMTJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxOHt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDNweCAwO30gLnRleHQxNSBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLmJ1dHRvbjV7d2lkdGg6Mjg1cHg7IG1hcmdpbi1ib3R0b206MzBweDsgbWFyZ2luLXRvcDo3MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5ib3hfZGF0ZXt3aWR0aDoxNjdweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDoxcHg7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94X2RhdGUye3dpZHRoOjEwN3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3hfZGF0ZTN7d2lkdGg6ODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gc3Bhbi5hc3RreyBjb2xvcjojRkYwMTAxO2ZvbnQtc2l6ZTowLjY4OHJlbSA7ZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjNweDsgfSAuYm94NjF7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gLmJveDYxNjZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IH0gLlBvbGl0aXF1ZXt3aWR0aDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmc6MCAycHggMHB4IDJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjJweDsgfSAuUG9saXRpcXVlIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDU5YWY7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNmI5MWJkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMy5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTt9IC5Qb2xpdGlxdWUgYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjRweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lNC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMyNDI0MjQ7fSAudGV4dDE1NXt3aWR0aDoyODVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNTVjaGt7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTVweDt0ZXh0LWFsaWduOmxlZnQ7fSAuVmV1aWxsZXp7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzFiMWIxYjtmb250LXdlaWdodDpub3JtYWx9IC5WZXVpbGxleiBzcGFue3RleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjJweDt9IC5WZXVpbGxleiBzcGFuIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OnJpZ2h0OyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDsgZGlzcGxheTpibG9ja30gLlZldWlsbGV6IHNwYW4gYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNDQ2ZjsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDA0NDZmOyBkaXNwbGF5OmJsb2NrO30gLkh5cG90aGVxdWV7d2lkdGg6MTk1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo1MHB4O30gLkh5cG90aGVxdWUyMnt3aWR0aDoyMjRweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLkh5cG90aGVxdWUzM3t3aWR0aDo1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwOyBsaW5lLWhlaWdodDozNXB4O30gLmNpdmlxdWV7d2lkdGg6MTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5SdWV7d2lkdGg6MjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5BcHB7d2lkdGg6MTgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5mb3JtczEwMHt3aWR0aDoxMzBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLmZvcm1zMTAxe3dpZHRoOjI5MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDJ7d2lkdGg6MTgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5WaWxsZXsgd2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuUHJvdmluY2V7IHdpZHRoOjE1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLkNvZGV7IHdpZHRoOjE2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLmZvcm1zMTAzeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDR7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNXsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA2eyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnR9IC5UeXBle3dpZHRoOjIwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuYm94NjAwe3dpZHRoOjYwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLXJpZ2h0OjBweDt9IC5EZW1hbmRlNTV7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTY2e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2FsMi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU3N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL20ucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODh7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTg4N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX3RleHQye3dpZHRoOjY0OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDBweCAxNXB4IDIzcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAuYm94X2JyYW5ke3dpZHRoOjY0OHB4OyBmbG9hdDpsZWZ0O3BhZGRpbmc6MjBweCAwcHggMTVweCAwcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDN7d2lkdGg6NjYxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxNXB4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5jYXJfYm94e3dpZHRoOjIwOHB4OyBoZWlnaHQ6MTMwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDhweCAwIDA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7fSAuY2FyX2ltYWdlc3t3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJvcmRlcjowOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5jYXJfdGV4dHt3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMxYjFiMWI7IHRleHQtYWxpZ246Y2VudGVyfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMxYjFiMWI7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzFiMWIxYn0gLmNhcl9ib3gyeyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgMTBweCAxMHB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLmNhcl9ib3gyX3RheHR7aGVpZ2h0OmF1dG87IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWFsaWduOmxlZnQ7IGxpbmUtaGVpZ2h0OjIxcHg7fSAucGljX2JveDJ7IGJvcmRlcjoxcHggc29saWQgI0FBQTsgYmFja2dyb3VuZDojRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljX2JveDIgaW1nIHt3aWR0aDoxMDAlO30gLnByaW50e3dpZHRoOjE5MnB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmctdG9wOjdweDt9IC5wcmludCBheyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50LnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucHJpbnQgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9wcmludF9ob3Zlci5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNGE3ODsgcGFkZGluZy1sZWZ0OjM1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWVfY29ue3dpZHRoOjg0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDIxcHggMTBweCAyMHB4OyB9IC5ob21lMnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzM3MzczNzsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWUze3dpZHRoOjUxMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwe3dpZHRoOjMxMHB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgbGluZS1oZWlnaHQ6MzJweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwIHNwYW57IGNvbG9yOiNGRjAwMDA7fSAuaW5wdXQyNXt3aWR0aDozMTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAudmV1eHt3aWR0aDo2MDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyBwYWRkaW5nLXRvcDo1cHg7IGxpbmUtaGVpZ2h0OjE3cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkMGQwZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDt9IC5Ob3N7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiMwMDAwMDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTVweCAwIDE1cHggMTVweDsgbWFyZ2luOjVweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I0ZGRkZGRjt9IC5idXR0b25fam9ib2ZmZXIgeyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9pY29uX2VtcGxveS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDBweCAwcHggcmdiKDIzMSwgMjMyLCAyMzIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDo0MHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhIHsgYmFja2dyb3VuZDojMWIxYjFiOyBjb2xvcjojZWFlYWVhOyBib3JkZXI6MXB4IHNvbGlkICNlYWVhZWE7IH0gLmJ1dHRvbl8xIGE6aG92ZXIsIC5idXR0b25fMiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiNlMzE3M2U7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgfSAuYnV0dG9uXzMgYTpub3QoLmRpc2NsYWltZXJzU3VwZXJzY3JpcHRzKXsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gLmJ1dHRvbl8zIGE6bm90KC5kaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyk6aG92ZXJ7IGJhY2tncm91bmQ6I0ZGRjsgY29sb3I6IzAwMDsgfSAuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIxIl0gc3VwLCAuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIzIl0gc3VwIHsgZm9udC1zaXplOjAuNWVtOyB9IGEuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIzIl0gc3VwIHsgY29sb3I6dmFyKC0tZGFyay1ncmF5LCByZ2IoMTAyLCAxMDIsIDEwMikpOyB9IC5mYkNvbm5lY3RCdG4geyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMzA1ODk4OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjNweDsgbGluZS1oZWlnaHQ6MzhweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5mYkNvbm5lY3RCdG4gLmZhLWZhY2Vib29reyBjb2xvcjojMzA1ODk4OyB9IGEuZmFjZWJvb2tDb25uZWN0QnRuIHsgY29sb3I6I2ZmZjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LWZhbWlseTppbmhlcml0OyB9IC5idXR0b25fdmlkZW9zX2ZyIGEsIC5idXR0b25fdmlkZW9zX2VuIGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvc19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGEsIC5idXR0b25fdmlkZW9fZW4gYXsgd2lkdGg6MTkzcHg7IGhlaWdodDo1MXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9fZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3VuZGVye3dpZHRoOjI0OXB4OyBwYWRkaW5nOjBweDsgbWFyZ2luOjEwcHggMHB4O30gLmJ1dHRvbl91bmRlciBheyB3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6bm9uZTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fdW5kZXIgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuYnV0dG9uX3VuZGVyLnByb21vIGF7YmFja2dyb3VuZC1jb2xvcjojZTgwZDBkOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vMyBhe2JhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbyBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8yIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzMgYTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2J1dHRvbl8xaG92ZXIucG5nKX0gLmJ1dHRvbl80e3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTdweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5idXR0b25fNCBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IHBhZGRpbmctdG9wOjdweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uXzQgYTpob3Zlcnt3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzRob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5jaGVja2JveDE1Mnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgfSAuQmFzZTIye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NnB4OyBwYWRkaW5nOjZweCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzFiMWIxYjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94OTQwX2xpbmV7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyNS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgYm90dG9tOjA7fSAud2hpdGVfYm94e3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRkZGRkZGOyBvdmVyZmxvdzpoaWRkZW47IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLmJveDEwMHt3aWR0aDoyMjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTNweCAwIDE1cHggMTBweDt9IC5ib3gxMDF7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTAye3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveDEwM3t3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDR7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94RXZlbnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O30gLmJveE9kZHt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmZpbGVpbnB1dC1idXR0b24sIC5maWxlaW5wdXQtYnV0dG9uOmhvdmVyIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5maWxlaW5wdXQtYnV0dG9uIGlucHV0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBtYXJnaW46MDsgb3BhY2l0eTowOyAtbXMtZmlsdGVyOidhbHBoYShvcGFjaXR5PTApJzsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5ib3g5NDBfbWFpbnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTVweCAwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94MjAwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NnB4O30gLndoaXRlX2JveF90ZXh0Mnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDN7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NXtiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLndoaXRlX2JveF90ZXh0NntwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF9ibGFua3t3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dE9kZHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0RXZlbntiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYm94X3RpdGxle3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzozMHB4IDBweCA1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9IC5jdXN0b21fMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ViZWJlYjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLmN1c3RvbV8yMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ZmZmZmZjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLnRveW90YV9jYW1yeXt3aWR0aDo0MzBweDsgaGVpZ2h0OjIyMnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDt9IC50b3lvdGFfY2FtcnkgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo1cHg7fSAudG95b3RhX2NhbXJ5IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Ml9kZXRhaWxzX3RleHQyNXt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjE1cHggYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtc2hhZG93OjFweCAxcHggNHB4ICM4MjgyODI7fSAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gxNXtjdXJzb3I6cG9pbnRlcjt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggMnB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTUgaDJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNSBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE1IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNnt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNiBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE2IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjBweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTYgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjpyZ2IoMjM0LDIzNCwyMzQpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE3e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE3IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTcgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNyBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb240LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTh7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTggaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOCBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjUucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOXt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IHBhZGRpbmctcmlnaHQ6M3B4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTkgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOSBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb242LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTkgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDExMTR7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzEucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxMTE0IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTExNCBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5TcGVjaWZpY2F0aW9uc3t3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI1MjUyNTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6NXB4O30gLk1vcmJpMnt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojRUZFRkVGOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4O2ZvbnQtd2VpZ2h0Om5vcm1hbDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuTW9yYmkyIHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Mjg4OV9taWR7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCA1cHggMjBweCA1cHg7fSAuTW9yYmkyMnt3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuX2JveDI4ODlfbWlkIGgxeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMjBweCAxMHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjgyODI4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjI0cHh9IC5ib3gyODg5X21pZCBoMnsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NHB4IDEwcHggMjBweCAxNXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyM3B4fSAjc2ltaWxhclRpdGxleyBwYWRkaW5nOjRweCAxMHB4IDlweCAxNXB4OyBmb250LXNpemU6MS40MzhyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IH0gLnRhYmU1e3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAudGFiZTUgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC50YWJlNSB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLnRhYmU1IHVsIGxpIHNwYW57Y3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdGFiX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLnRhYmU1IHVsIGxpIHNwYW46aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMTVweCA3cHggMTVweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDogI2ViZWJlYjsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IH0gLnRhYmU1IHVsIGxpIHNwYW4uYWN0aXZle2N1cnNvcjpkZWZhdWx0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJfZGV0YWlsczJ7d2lkdGg6NjMxcHg7IHBhZGRpbmc6MTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5ib3gyNXt3aWR0aDo0ODdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luOjAgMTNweCAwIDA7IHBhZGRpbmc6MjBweCAwIDIwcHggMjBweDt9IC5ib3gyNnt3aWR0aDoyNDNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94MjYgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLmJveDI2IHVsIGxpIHNwYW57IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7fSAuYm94MjYgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDI2IHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI2IHVsIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94Mjd7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuYm94MzN7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDMzIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MzMgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gzMyB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDBweCA3cHggMHB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDMzIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9hcnJvdzgucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLk1vdGV1cnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206NXB4O30gLk1vdGV1ciBoMnt3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjEzNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiMyMDIwMjA7fSAuTW90ZXVyIGgze3doaXRlLXNwYWNlOm5vcm1hbDsgd2lkdGg6MTQwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzVhNWE1YTt9IC5ib3gyNiB1bCBsaSBzcGFuOmJlZm9yZSwuYm94MzMgdWwgbGkgc3BhbjpiZWZvcmUsLk1vdGV1ciBoMjpiZWZvcmUgeyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDo1cHg7IH0gLmJveDI3IGF7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLmJveDI3IGE6aG92ZXJ7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteCA7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyOHB4OyB9IC5ib3gyOHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwO30gLnRleHQ0NHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgfSAudGV4dF9ib3g2MCBoMnt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgaDN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MCBwe3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnZpb3J7d2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdmlvci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IH0gLmJveDEzM3t3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgbWFyZ2luOjA7fSAuYm94MjU4e3dpZHRoOjI1OHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjliOWI5OyBwYWRkaW5nOjAgMTBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZsb2F0OmxlZnQ7fSAuYm94MTE2e3dpZHRoOjExNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYm9yZGVyOjJweCBzb2xpZCAjRkZGRkZGOyBwYWRkaW5nOjA7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94MTE2IGltZ3t3aWR0aDoxMjBweDsgfSAuYm94Mnt3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo0N3B4OyBtYXJnaW4tbGVmdDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MiBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3gze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7IHBhZGRpbmc6MCAwIDEwcHggNXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDt9IC5ib3gzIHNwYW57Zm9udDpib2xkIDEycHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMH0gLmJveDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ1cHggMTBweCAyMHB4OyB9IC5ib3g0NHt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggNDdweCAxMHB4IDIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlO30gLmJveDV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO30gLmJveDZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MTBweCAwcHggMHB4IDA7fSAuYm94NTV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO30gLmxpbjJ7d2lkdGg6NjE3cHg7IGhlaWdodDoycHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggMCAxMHB4IDA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14O30gLmJveDE0e3BhZGRpbmc6MHB4IDA7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0fSAuYm94MjB7cGFkZGluZzowIDEwcHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLnRleHQzMHt3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMjQyNDI0fSAudGV4dDMwIHNwYW57cGFkZGluZy1yaWdodDoxMHB4OyBmbG9hdDpyaWdodDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMjQyNDI0O30gLnRleHQzMCBzcGFuIHN0cm9uZ3tmb250OmJvbGQgMjBweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwIH0gLnRleHQzMC5mb3JtSGVhZGluZywgLnRleHQzMC5mb3JtSGVhZGluZyBzcGFue2NvbG9yOnZhcigtLWZvcm0tdGl0bGUtY29sb3IsICMyNDI0MjQpO30gLmJveDYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IHBhZGRpbmctYm90dG9tOjIwcHg7IG1hcmdpbi1yaWdodDowcHg7fSAubWFpbjYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6MTVweDt9IC5ib3gyMEF7cGFkZGluZzowIDVweDsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAub25TaXRlICsgLnByZWZlcnJlZCwgLnByZWZlcnJlZDpoYXMoKy5vblNpdGUpIHsgYWxpZ24tc2VsZjplbmQ7IH0gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZTo5MCU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtiYWNrZ3JvdW5kOiNmM2YzZjM7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRke3BhZGRpbmctdG9wOjAuNXJlbTsgdmVydGljYWwtYWxpZ246dG9wOyBsaW5lLWhlaWdodDoxLjU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRkOm50aC1jaGlsZCgyKSB7cGFkZGluZzowLjVyZW07fSAuZGV0YWlsQ2FyVGl0bGUsIC5kZXRhaWxDYXJUaXRsZVdpZGUsIC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dvcmQtd3JhcDpicmVhay13b3JkO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5kZXRhaWxDYXJUaXRsZSB7d2lkdGg6NDkwcHg7fSAuZGV0YWlsQ2FyVGl0bGVXaWRlIHt3aWR0aDo3NzVweDt9IC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dpZHRoOjEwMCU7fSAubWFpbmJveF90ZXh0YXJlNjE3e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MjBweCAwOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDAlKTsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6NTAlO30gLnRleHRib3gyMnt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDAgMDt9IC5idXR0b241MXsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IH0gLmJ1dHRvbjUxIGF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5idXR0b241MSBhOmhvdmVyeyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCAtNDRweCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO30gLnRleHQ1NXt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDIwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjaykgOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDU1IHB7IHBhZGRpbmctbGVmdDowcHggNXB4IDAgMDsgbWFyZ2luOjBweCAwcHggMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGljYm94XzIyMXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAxNXB4IDAgMDt9IC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjMzMnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAuaXNGdWxsV2lkdGhQYWdlIC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjQ0MnB4OyB9IC5waWNib3g2NTF7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDEwcHggMHB4O30gLnBpY2JveDkzMHt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggNXB4IDBweDt9IC5waWNib3g2NTEgaW1nIHsgd2lkdGg6NjUxcHg7IH0gLnBpY2JveDkzMCBpbWcgeyB3aWR0aDo5MzBweDsgfSAucGljYm94NjUxIGltZywgLnBpY2JveDkzMCBpbWcgeyBmbG9hdDpsZWZ0OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudG9wUHJvbW9JbWFnZSBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6OTMwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50b3BQcm9tb0ltYWdlVXNlZCBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDo2NTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRlYW1fdGl0bGVfZGVhbGVye21hcmdpbi1ib3R0b206MTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZm9ybXNfYm94NjYxe3dpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjEwcHggYXV0bzsgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudGV4dGJveDE5MXt3aWR0aDo1MiU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxLjI7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRib3gxOTEgaDR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMyNDI0MjQ7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWFpbmJveDI5MXt3aWR0aDoyOTFweDsgbWluLWhlaWdodDoxMjNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5lbWFpbF9saW5re3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojODg4O30gLmVtYWlsX2xpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMzMzM7fSAucGFnZV9uYW1lNTU1IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MDsgfSAucGFnZV9uYW1lNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZTU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWU1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgeyBjb2xvcjojMjQyNDI0OyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5wYWdlX25hbWVORVc1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDQ0IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjFyZW07IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDA7IHdpZHRoOmF1dG87IH0gLnRleHRfYm94MTEgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAyMHB4IDEwcHggMDsgd2lkdGg6YXV0bzsgbGluZS1oZWlnaHQ6MjFweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IH0gLnRleHRfYm94MTEgaDQgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MTBweCAwOyB9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC43NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjEwcHggMDsgZmxvYXQ6bGVmdDsgfSAudGV4dF9ib3gxMSBhOmhvdmVyIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSBhOnZpc2l0ZWQgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDAgNXB4OyB9IC50ZXh0X2JveDExIHVsIHsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7IH0gLnRleHRfYm94MTEgcCBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bm9uZTsgfSAucGljYm94MzM2IHsgYm9yZGVyOjFweCBzb2xpZCAjN0Q3RDdEOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjY4cHg7IH0gLmZvbnRfc2l6ZTIxIHsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7IH0gLnBhZ2VfbmFtZTE4IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZTE4IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnZpZGVvNSB7IGZsb2F0OmxlZnQ7IGhlaWdodDo0MXB4OyBtYXJnaW4tdG9wOjcwcHg7IG1hcmdpbi1sZWZ0OjcwcHg7IH0gLmZsb2F0TG9nb3sgd2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9MT0dPX0dBX1RSQU5TUEFSRU5ULnBuZykgcmlnaHQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm1lZGl1bSBub25lOyBjb2xvcjojRkZGRkZGOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjA7IG92ZXJmbG93OnZpc2libGU7IHBhZGRpbmc6MDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9yaWdodDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCB0b3AgdHJhbnNwYXJlbnQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDozNXB4OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX2xlZnQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjEzcHg7IHBhZGRpbmc6MTJweCAxM3B4IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9ob3ZlciBzcGFuIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25fY2xpY2sgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC02NnB4OyB9IC52ZWhpY2xlTGlzdFRhYmxlIHsgbWFyZ2luOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCB7IGJvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjNjY2NjY2OyBoZWlnaHQ6MzBweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBheyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYTpob3ZlcnsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6dmlzaXRlZHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5leHBhbmRSb3d7IGJhY2tncm91bmQtY29sb3I6IzFmMWYxZjsgdGV4dC1hbGlnbjpyaWdodDsgY29sb3I6IzQxNDE0MTsgbWFyZ2luLWxlZnQ6NHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyB9IGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyB6LWluZGV4Ojk5OTk7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9IGRpdi50b3lvdEltYWdlIHsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjMuNDM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjI1MHB4OyBsZWZ0OjA7IG9wYWNpdHk6MC44OyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6NXB4IDEwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzgwcHg7IHotaW5kZXg6ODsgfSBkaXYudG95b3RJbWFnZSBwIHsgcGFkZGluZzo1cHg7IG1hcmdpbjowOyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojQTZBNkE2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYubmV3Q2FyTWFpbkJveCB7IHdpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94MiB7IG1hcmdpbi10b3A6NXB4OyB9IGRpdi5uZXdDYXJNYWluQm94MyB7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5zdG9ja0ltZ1N0eWxleyB3aWR0aDoxMDAlOyBoZWlnaHQ6NTAlOyBmb250LXNpemU6Mi4yNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLXRvcDozMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luOjBweDsgY29sb3I6IzMwMzAzMDsgfSAjZmlyc3RTbGlkZXJJbWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE1OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgb3BhY2l0eToxOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXJ7IGJvcmRlcjoxcHggc29saWQgI0ZGRjsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIC5pbm5lci1wbGFjZWhvbGRlcnsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgdG9wOjA7IGJvdHRvbTowOyBsZWZ0OjA7IHJpZ2h0OjA7IH0gI2ZpcnN0U2xpZGVySW1nIElNR3sgaGVpZ2h0OmF1dG87IG1heC13aWR0aDo2NDBweDsgbWF4LWhlaWdodDo0ODBweDsgd2lkdGg6YXV0bzsgbWFyZ2luOmF1dG87IH0gI2ZpcnN0U2xpZGVySW1nLmZhZGUtb3V0eyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyAtd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtbW96LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IH0gI3NvY2lhbFRpbWVsaW5leyB3aWR0aDo5NjBweDsgaGVpZ2h0OmF1dG87IH0gZGl2Lm5ld0Nhck1haW5Cb3g0IHsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDk3MF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzoxMHB4IDE1cHg7IH0gZGl2Lm5ld0NhclRpdGxlQm94IGgxeyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ncmF5Ym94IHsgYmFja2dyb3VuZC1jb2xvcjojRUZFRkVGOyBib3JkZXI6MXB4IHNvbGlkICNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IHBhZGRpbmc6MTBweCAwIDEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgMXB4IDAgI0ZGRkZGRjsgfSAuZ3JheWJveCA+IHNwYW4geyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuZ3JheWJveCAuc21hbGx0ZXh0IHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0NDQ0NDQzsgYm9yZGVyLXRvcDoxcHggc29saWQgI0NDQ0NDQzsgY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBwYWRkaW5nOjEwcHg7IH0gLmdyYXlib3ggaDIgeyBjb2xvcjojMDAwOyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luOjVweCBhdXRvOyB9IC5leHRlbmRlZFBob25leyBwb3NpdGlvbjpmaXhlZDsgYmFja2dyb3VuZC1jb2xvcjojNjc2NzY3OyBjb2xvcjojZGRkOyBwYWRkaW5nOjAuNmVtOyBib3JkZXItcmFkaXVzOjVweDsgei1pbmRleDo5OTk5OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmV4dGVuZGVkUGhvbmUgbGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5leHRlbmRlZFBob25lIHNwYW57IGNvbG9yOiNmZmY7IH0gLnBob25lTm90ZXsgZm9udC1zaXplOjAuNjg4cmVtIDsgcGFkZGluZy10b3A6N3B4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2RXggeyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MXJlbSA7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctdG9wOjMwcHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgZGl2eyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy10b3A6MTBweDsgd2lkdGg6MjAwcHg7IGZsb2F0OmxlZnQ7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWx7IG1hcmdpbi1ib3R0b206MjBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDo1cHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGl7IGxpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjQwcHg7IHRleHQtaW5kZW50Oi0xMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGF7IGNvbG9yOiMzMzM7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9hcnJvd19yZWQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCAwIDEwcHggdHJhbnNwYXJlbnQ7IGNvbG9yOiMzMzMzMzM7IG1hcmdpbi1yaWdodDoycHg7IHBhZGRpbmc6NnB4IDEwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5jb21wYXJlTGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmNvbXBhcmVMaW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHVzIGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gI2NvbnRhY3R1cyBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcEFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfaG92ZXIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6IzFiMWIxYjsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcFVuYWN0aXZlIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvMV9yb3VuZC5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojRkZGRkZGOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjQ2cHg7IG1hcmdpbi1sZWZ0OjEwcHg7IH0gI1BhZ2VGaW5hbmNlIC50ZXh0MSBzcGFuIHsgY29sb3I6IzQzNDM0MzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI0YzRjNGMzsgd2lkdGg6YXV0bzsgfSAjUGFnZUZpbmFuY2UgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I0I4RkZCODsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMEI5NjAwOyBjb2xvcjojMEI5NjAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAub3RoZXJfbGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm90aGVyX2xpbmtzIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnByb21vdGlvblNpZGVCdG5BIHsgYmFja2dyb3VuZDojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyBkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxLjI1cmVtIDt3aWR0aDpmaXQtY29udGVudDtoZWlnaHQ6NTNweDtwYWRkaW5nOjJweCAxNXB4IDBweCAxNXB4O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjUzcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1zaXplOjEwMCU7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjBweDsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMyB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDo3MHB4OyBtYXJnaW4tbGVmdDoxNHB4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MyIHsgYm9yZGVyLXJpZ2h0OjFweCAjOTE5MTkxIHNvbGlkOyBwYWRkaW5nLXJpZ2h0OjE1MHB4OyBtYXJnaW4tbGVmdDo5M3B4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MxIHsgbWFyZ2luLWxlZnQ6MzQ1cHg7IGNvbG9yOiM1NzU3NTc7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yIHsgYmFja2dyb3VuZCA6dXJsKCIvaW1hZ2VzL2JsX2JnMi5wbmciKSBsZWZ0IHRvcCByZXBlYXQteDsgY29sb3I6cmdiKDIzNCwyMzQsMjM0KTsgfSAuc21hbGxBY3Rpb25XZWJzaXRlQ29sb3I6aG92ZXJ7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9tZW51MTBfYmcucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOiNGRkY7IH0gLm5hdiBsaSBhLnRvcF9saW5rLmlzQm9sZCwgLm5hdiBsaSBhLmlzQm9sZHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbWFpbkhlYWRlciBkaXYuYm94MTVQYWRkaW5neyBwYWRkaW5nLXRvcDoxNXB4OyB9IC5uYXYgLm5vdENsaWNrYWJsZXsgY3Vyc29yOmRlZmF1bHQgIWltcG9ydGFudDsgfSAuUzEwMFBlcmNlbnRXaWR0aHsgd2lkdGg6MTAwJTsgfSAjZmlsdGVyTWFpbkJveCB7IGNvbG9yOiMwMDA7IH0gI2ZpbHRlck1haW5Cb3ggLmZpbHRlclNwYW4sICNmaWx0ZXJNYWluQm94IC5maWx0ZXJDaGVjaywgI2ZpbHRlck1haW5Cb3ggLnJhZGlvU29ydCB7IGN1cnNvcjpwb2ludGVyOyB9IC5iQ29kZVN0eWxlIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MjUlOyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IGJhY2tncm91bmQtY29sb3I6OyB9IC5iQ29kZVNvcnQgeyBmbG9hdDpsZWZ0OyB3aWR0aDoxNiU7IGJhY2tncm91bmQtY29sb3I6OyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IH0gLmJDb2RlU29ydCAuYkNvZGVIZWFkaW5nLCAuYkNvZGVTdHlsZSAuYkNvZGVIZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoycHg7IH0gLnBhZ2VfbmFtZTQye3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMWIxYjFiO30gLnBhZ2VfbmFtZTQyIGgyIHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzFiMWIxYjtmb250LXdlaWdodDpub3JtYWw7Ym9yZGVyOm5vbmU7fSAucGFnZV9uYW1lNDIgaDIubm90Zmlyc3Qge2ZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMWIxYjFiO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjBweDtwYWRkaW5nLXRvcDo0MHB4O2JvcmRlci10b3A6MXB4ICNjY2NjY2Mgc29saWQ7d2lkdGg6OTIwcHg7fSAjZmlsdGVyTWFpbkJveC5uZXdjYXJzc3R5bGUyeyAtbW96LWJvcmRlci1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JlYmViZTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2JlYmViZTsgd2lkdGg6OTU1cHg7IGxlZnQ6M3B4OyB9IGRpdi5pbWRldiBsYWJlbHsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MTBweDsgfSBkaXYuaW1kZXYgZGl2eyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQtY29sb3I6I0Q5RDlEOTsgcGFkZGluZzoxMHB4IDBweCAxMHB4IDBweDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuODEzcmVtIDsgfSBkaXYuaW1kZXZfaW5uZXIgeyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1sZWZ0OjMwcHg7IHdpZHRoOjkwJSAhaW1wb3J0YW50OyB9IHVsLnF1aXoge3BhZGRpbmc6MTBweCAwIDEwcHggMjBweDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGhlaWdodDoxNzVweDt9IHVsLnF1aXogbGkge3BhZGRpbmc6MTBweDt9IHVsLnF1aXogbGkgaW5wdXQge21hcmdpbi1yaWdodDoxMHB4O30gLm5ld3MtYm9keSB7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtc2l6ZTowLjgxM3JlbSA7Y29sb3I6IzE5MTkxOTtwYWRkaW5nLXJpZ2h0OjE1cHg7bWFyZ2luLXRvcDotMjBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30gLm5ld3MtYWxsLXRleHQge2NvbG9yOiMxOTE5MTk7fSAjbmV3c0NvbnRhaW5lciAudGV4dF9ib3gxMSBpbWcgeyBtYXgtd2lkdGg6NjQwcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggYXV0bzsgfSAjbmV3c0NvbnRhaW5lciAudXNlZHsgY2xlYXI6Ym90aDsgfSAuaG9tZV9hY3Rpb25fYWRqIHsgd2lkdGg6OTYxcHg7IH0gLmhvbWVfYWN0aW9uX2FkajIgeyB3aWR0aDo3MzBweCFpbXBvcnRhbnQ7IGhlaWdodDo2MDBweCFpbXBvcnRhbnQ7IH0gLmhvbWVfZW1haWx7IHdpZHRoOjIzMnB4OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC53aWRnZXRfbWVudV9hZGoxeyBmb250LXNpemU6MC44ZW07IH0gLndpZGdldF9tZW51X2FkajJ7IGZsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4OyB9IC53aWRnZXRfbWVudV9leHRlbmRlZFBob25leyBmb250LXNpemU6MC44ZW07IG1hcmdpbi1sZWZ0OjEwNHB4OyB0b3A6MTMycHg7IH0gLndpZGdldF9tZW51X2FkajN7IGZvbnQtc2l6ZTowLjhlbTtjb2xvcjojNTc1NzU3O3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LThweDsgfSAud2lkZ2V0X21lbnVfYWRqNHsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZTowLjhlbTsgZGlzcGxheTp0YWJsZTsgcGFkZGluZy1ib3R0b206MTBweDsgfSAucGhvbmVfdGV4dC5yaWdodCB7IGZsb2F0Om5vbmU7IGhlaWdodDppbml0aWFsOyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbmhlcml0OyB9IC5waG9uZV90ZXh0IC50ZWwgeyBtYXJnaW4tbGVmdDoxMHB4OyB9IC5waG9uZV90ZXh0IGxhYmVsIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTo0cHg7IH0gLndpZGdldF9tZW51X2FkajQucmlnaHQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgdGV4dC1hbGlnbjpyaWdodDsgfSAud2lkZ2V0X21lbnVfYWRqNC5sZWZ0IHsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDppbmhlcml0OyB9IC53aWRnZXRfbWVudV9hZGo2eyBmb250LXNpemU6MC44ZW07cG9zaXRpb246cmVsYXRpdmU7bGVmdDotM3B4O2NvbG9yOiM1NzU3NTc7Y3Vyc29yOnBvaW50ZXI7IH0gLndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWE7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbTo4cHg7IHBhZGRpbmctdG9wOjhweDsgY29sb3I6IzFiMWIxYjsgfSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9hZGoxeyBwYWRkaW5nOjE1cHggMTBweDsgbGluZS1oZWlnaHQ6NjBweDsgZm9udC1zaXplOjJlbTsgcGFkZGluZzoxNXB4IDEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGxlZnQ6NzEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxNXB4OyB0b3A6MjBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNHB4OyB9IC5zdGFja2VkRGlzY2xhaW1lcnsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoxMHB4OyB9IHNwYW4uc3RhY2tlZERpc2NsYWltZXI6YmVmb3JleyBjb250ZW50OiIqKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSAudG9wcmludHsgZGlzcGxheTpub25lOyB9IC5yZWZmZXJlbmNlQ29udGVudERlbW8sIC5yZWZmZXJlbmNlQ29udGVudENsZWFyYW5jZXsgcGFkZGluZzozMHB4IDIwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuYm94Ml9kZXRhaWxzX3RleHQyIC5jb21wYXJlQnV0dG9uLCAuYm94Ml9kZXRhaWxzX3RleHQyMiAuY29tcGFyZUJ1dHRvbnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6LTIwcHg7IHotaW5kZXg6MTsgbGVmdDotMzBweDsgfSAudmRweyBjbGVhcjpib3RoOyB3aWR0aDoxNjBweDsgfSAuY29tcGFyZUJ1dHRvbnsgdHJhbnNpdGlvbjpib3gtc2hhZG93IDAuMjVzIGVhc2Utb3V0IDBzOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwczsgZGlzcGxheTpub25lOyB9IGRpdiNzbGlkZXItcHJvLTEyIHsgYm9yZGVyOjFweCBzb2xpZCAjRUJFQkVCOyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDojZmZmOyB9ICNzbGlkZXJQcm9tb0FsZXJ0eyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB9IC5zbGlkZS13cmFwcGVyeyBib3JkZXItcmFkaXVzOjNweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVueyBib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4OyB9IGltZy5pbWFnZSB7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5uZXdWZHBWaWV3ZXIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MnB4OyByaWdodDowcHg7IHotaW5kZXg6MTExMTsgfSAubGl2ZUFsZXJ0X2xpbmt7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB9IC5saXZlQWxlcnRfbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmJ1dHRvbi10b2FzdHJ7IGJhY2tncm91bmQ6I0ZGRjtwYWRkaW5nOjRweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojQkQzNjJGIWltcG9ydGFudDsgfSAuYnV0dG9uLXRvYXN0cjpob3ZlcnsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgc3BhbiB7IHBvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDsgdG9wOjUwJSFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7IGxlZnQ6MCFpbXBvcnRhbnQ7IHJpZ2h0OjAhaW1wb3J0YW50OyBwYWRkaW5nOjAgOHB4IDAgOHB4IWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50OyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBjb2xvcjojRkZGIWltcG9ydGFudDsgbWFyZ2luLXRvcDotOXB4IWltcG9ydGFudDsgfSByZXR1cm5Qb3B1cF9zdWJtaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwYmIxZTA7IGNvbG9yOiNmZmY7IH0gLnJldHVyblBvcHVwX3N1Ym1pdCB7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXJhZGl1czo1cHg7IGxlZnQ6MjI4cHg7IHotaW5kZXg6NTsgd2lkdGg6MjI1cHg7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyB0ZXh0LXNoYWRvdzoxcHggMXB4ICMwMDJiNDY7IGNvbG9yOiNmZmY7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjcmV0dXJuUG9wdXBGb3JtX3dyYXBwZXIgeyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOnJnYmEoNjYsNjYsNjYsMSk7IGJvcmRlci1zdHlsZTpub25lOyBib3JkZXItcmFkaXVzOjExcHg7IGxlZnQ6MjgwcHg7IHRvcDoxNTVweDsgei1pbmRleDoyOyB3aWR0aDo1MzFweDsgaGVpZ2h0OjM4NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjcmV0dXJuUG9wdXBUaWx0ZXsgd2lkdGg6MzM1cHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjBweDsgY29sb3I6IzFiMWIxYjsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjcmV0dXJuUG9wdXBUaWx0ZSAucnBfbWN7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyB9ICNyZXR1cm5Qb3B1cFRpbHRlMnsgY29sb3I6I0ZGRjsgbWFyZ2luOjIwcHggMTBweCAyMHB4IDIwcHg7IHBhZGRpbmc6MDsgfSAucmV0dXJuUG9wdXBGb3JtX2xhYmVsIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNHB4OyBjb2xvcjojYmZiZmJmOyBtYXJnaW4tbGVmdDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucmV0dXJuUG9wdXBGb3JtX3RhYmxlIHRyIHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5ycF9tYyB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgcGFkZGluZzowIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyB9ICNleGl0UG9wdXBDb250YWluZXJ7IHBhZGRpbmc6MDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBoZWlnaHQ6MzRyZW07IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3RyYWRlaW4tZXhpdHBvcHVwLWZyLnBuZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZXhpdC1wb3B1cC1iZ2NvbCwgI2VlZSk7IH0gYm9keS5FTkdMSVNIICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1lbi5wbmcpOyB9IC5leGl0X3BvcHVwX2J1dHRvbnMgYnV0dG9uIHsgd2lkdGg6MTFyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzJ7IG1hcmdpbi10b3A6MjdweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzN7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IG1hcmdpbi1ib3R0b206M3B4OyBmb250LXdlaWdodDpib2xkZXI7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzUgeyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgbWFyZ2luLXRvcDo2M3B4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZXsgaGVpZ2h0Ojk1cHg7IHdpZHRoOjU3MHB4OyBtYXJnaW4tdG9wOjIwcHg7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxlLl9GUkVOQ0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9mci5wbmcpOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRU5HTElTSHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvYWNjdS10cmFkZS1leGl0LXRpdGxlX2VuLnBuZyk7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxMHB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IHdpZHRoOjQ4MHB4OyBoZWlnaHQ6NTE1cHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZyL2Jlc3RQcmljZU5ld1ZkcC5wbmcnKTsgfSAucG9wdXBfYmd7IGJhY2tncm91bmQtY29sb3I6IzFiMWIxYjsgYmFja2dyb3VuZC1zaXplOjQ4MHB4IDUxNXB4OyB9IC5wb3B1cEZvcm0gLmFzdGVyaXNreyBjb2xvcjojZDAwOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTppbmhlcml0OyBtYXJnaW46MDsgfSAucG9wdXBGb3JteyB6LWluZGV4OjUwOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjI0OHB4OyBoZWlnaHQ6MjQ5cHg7IGxlZnQ6ODBweDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvY291cG9uLWZvcm0tYmctMi5wbmciKSBuby1yZXBlYXQ7IHdpZHRoOjMzNXB4OyBwYWRkaW5nOjMwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6NDBweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucG9wdXBGb3JtSW5wdXRzIHRkIHsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWJvdHRvbTozcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MjEwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjYwMHB4OyBwYWRkaW5nOjMwcHggMzBweDsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDA7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgei1pbmRleDoxMDAwMDIxOyB9ICNwcm9tb0Rpc2NvdmVyQnV0dG9ueyB9IC5uZXdWZHBWaWV3ZXIgeyB3aWR0aDo2NDBweDsgaGVpZ2h0OjQ4MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoyMHB4OyB9IC5sb2NhdGlvbi1uYW1lcyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgPiBsaSA+IHVsIHsgcG9zaXRpb246c3RhdGljOyB9IC5pbWdfbWVudS51cF9tZW51IHVsLm5hdiB1bC5zdWIgbGkgLmxvY2F0aW9uLW5hbWVzIHsgbWluLXdpZHRoOjIwMHB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyBsaS5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAubG9jYXRpb24tbmFtZXMsIC5sb2NhdGlvbi1uYW1lcyBsaSB7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuTDEwMCB7IGxlZnQ6MTAwJTsgfSAuUjEwMCB7IHJpZ2h0OjEwMCU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjE0cHg7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBkaXNwbGF5Om5vbmU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IG1pbi13aWR0aDoyOTBweDsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgPiAudGl0bGUgeyBtYXJnaW4tYm90dG9tOjFlbTsgZm9udC1zaXplOmluaXRpYWw7IGNvbG9yOiMwMDAwMDA7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLmxvY2F0aW9uLWRldGFpbHMtbG9nbyA+IGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjhweDsgfSBsaS5sb2NhdGlvbi1uYW1lczpob3ZlciAubG9jYXRpb24tZGV0YWlscyB7IGRpc3BsYXk6YmxvY2s7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLm1haW5tZW51LXN1Ym1lbnUgeyBvcGFjaXR5OjE7IHZpc2liaWxpdHk6dmlzaWJsZTsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgLmxvY2F0aW9uLWRldGFpbHMtbG9nbyB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IG1hcmdpbi1ib3R0b206OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgLmxvY2F0aW9uLW5hbWVzIC5tYWlubWVudS1zdWJtZW51IC5sb2NhdGlvbi1kZXRhaWxzIHsgbWF4LWhlaWdodDo2MHZoOyBwb3NpdGlvbjpzdGF0aWM7IH0gLnVwX21lbnUgdWwubmF2IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gYSB7IGNvbG9yOiMxYjFiMWI7IHBhZGRpbmc6MDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvIC5sb2NhdGlvbi1zcGFjaW5nLW1sLTEzIHsgbWFyZ2luLWxlZnQ6MTMuNDlweDsgfSAudXBfbWVudSB1bC5uYXYgbGkuZGV0YWlscy1pbmZvLWxpbmsgYSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC51cF9tZW51IHVsLm5hdiAuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgYSB7IGNvbG9yOiNmZmZmZmY7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IG1heC1oZWlnaHQ6NjB2aDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgfSBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXYgPiBsaTpob3ZlciB1bC5zdWIgbGk6aG92ZXIgLmRldGFpbHMtaW5mby1saW5rIGxpOmhvdmVyIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IH0gbGkuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IGNvbG9yOiNmZmZmZmY7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaSB7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1ib3R0b206NHB4OyBmb250LXdlaWdodDoyMDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gPiB1bCA+IGxpOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgbWFyZ2luLWJvdHRvbToxcHg7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIHVsIHsgcGFkZGluZzowOyB9IEBtZWRpYSBwcmludHsgLnRvcHJpbnR7IGRpc3BsYXk6YmxvY2s7fSB9IC5tci0xNSB7IG1hcmdpbi1yaWdodDoxNXB4OyB9IC5tbC0xNSB7IG1hcmdpbi1sZWZ0OjE1cHg7IH0gLm1sLTcgeyBtYXJnaW4tbGVmdDo3cHg7IH0gc3Bhbi5hcnJvdyB7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0ycHg7IH0gc3Bhbi5hcnJvdy5hcnJvdy1sYXJnZSB7IGJvcmRlci13aWR0aDowIDNweCAzcHggMDsgcGFkZGluZzo0cHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IHNwYW4uYXJyb3cuYXJyb3ctcmlnaHQgeyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctbGVmdCB7IHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy11cCB7IHRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWRvd24geyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgfSAudG9wYmFyM2J0bldyYXB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6NDJweDsgcGFkZGluZzowIDIwcHg7IGNvbG9yOiNmZmZmZmY7IH0gLnRvcGJhcjNidG57IGZvbnQtd2VpZ2h0OmJvbGQ7IHRyYW5zaXRpb246LjJzOyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gLnRyYWRlSW5CYXJfYnRueyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgdHJhbnNpdGlvbjouMnM7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOndoaXRlOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQtY29sb3I6I2UzMTczZTsgY29sb3I6ICNmZmZmZmY7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRlSW5CYXJfYnRuOmhvdmVyLC50b3BiYXIzYnRuV3JhcDpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojZTMxNzNlIWltcG9ydGFudDsgfSAjZ1JhdGluZ0xhcmdleyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgI2VhZWFlYTsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMHB4OyBtYXJnaW4tdG9wOjVweDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTUwcHg7IG1hcmdpbi1sZWZ0OjMwcHg7IH0gI2dSYXRpbmd7IGN1cnNvcjpwb2ludGVyOyB9IC50cmFkZUluVmluSW5wdXR7IGhlaWdodDo1MHB4OyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IH0gLnRyYWRlSW5WaW5JbnB1dDo6cGxhY2Vob2xkZXJ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgfSAudHJhZGVJbk9yTGFiZWx7IG1heC13aWR0aDoyNXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdHsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0TGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW46MCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdDpjaGVja2VkK2xhYmVseyBib3JkZXItYm90dG9tOjJweCBzb2xpZCBibGFjazsgfSAudHJhZGluU2VsZWN0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdFcud2l0aFZJTk1ha2V7IG1pbi13aWR0aDoxNDBweDsgbWF4LXdpZHRoOjE0MHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5ZZWFyeyBtaW4td2lkdGg6ODBweDsgbWF4LXdpZHRoOjgwcHg7IH0gLnRyYWRpbklucHV0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdEF7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC50cmFkaW5TZWxlY3RBOmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gLnRyYWRpblNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmZmZmOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjEwMCU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBoZWlnaHQ6NTBweDsgfSAudHJhZGluU2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMgc3BhbnsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46MCAhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgd2lkdGg6NTY4cHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtbWVudS50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyNzJweDsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjEyMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAudHJhZGluU2VsZWN0VyB7IG1pbi13aWR0aDpjYWxjKCgyMDBweCAtIHZhcigtLXMpKSAtIHZhcigtLXMsIDAuNXJlbSkpOyBtYXgtd2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgfSB9ICNnb29nbGVSZXZpZXdzRm9vdGVyeyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXgtd2lkdGg6OTQwcHg7IGhlaWdodDoyNzVweDsgfSAucmV2aWV3LWl0ZW0geyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MTg1cHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDo0NjBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlci10b3A6NHB4IHNvbGlkICNFQkVCRUI7IHBhZGRpbmctdG9wOjEwcHg7IH0gLmZpcnN0Y2hhcnVwOjpmaXJzdC1sZXR0ZXJ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSBJLmljb24tY29tcGFyZS0xLCBzcGFuLmljb24tY29tcGFyZS0xeyBjb2xvcjojZTMxNzNlOyB9IEkuaWNvbi1jb21wYXJlLTE6aG92ZXIsIHNwYW4uaWNvbi1jb21wYXJlLTE6aG92ZXJ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6I2UzMTczZSAxcHggMXB4LCAjZTMxNzNlIC0xcHggMXB4LCAjZTMxNzNlIC0xcHggLTFweCwgI2UzMTczZSAxcHggLTFweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IH0gLmdSYXRpbmctaWNvbiBpIHsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6OTBweDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiMxYjFiMWI7IGdhcDo3cHg7IH0gLmdSYXRpbmctaW1nI2dSYXRpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2dyYXRpbmcucG5nKTsgY29sb3I6IzM1NkNGMjsgd2lkdGg6OTVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6NHB4IDMxcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjFweDsgfSAjZ1JhdGluZ3sgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MS4wNjNyZW0gOyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0idGVsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IEgxLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMxYjFiMWI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMjVweCAwOyB9IEgxLmRlZmF1bHQgQXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gSDEuZGVmYXVsdCBJLmljb24sIEgxLmRlZmF1bHQgc3Bhbi5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4OyBoZWlnaHQ6MjlweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNTYzcmVtIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2VhZWFlYTsgY29sb3I6I2VhZWFlYTsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMXsgbWFyZ2luLXRvcDoxMHB4OyB9IEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjJweDsgfSBIMS5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDMpeyBmb250LXNpemU6MC44cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojYmJiOyBwYWRkaW5nLXRvcDo1cHg7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdCB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjEyNXJlbSA7IHBhZGRpbmc6MCAwIDE1cHggMDsgY29sb3I6IzFiMWIxYjsgfSBoMS5ja2VkaXRvci1kZWZhdWx0OjpiZWZvcmUgeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtZmFtaWx5OkZvbnRBd2Vzb21lOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IHBhZGRpbmc6NHB4IDAgMCAxMXB4OyBib3JkZXItcmFkaXVzOjQxcHg7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgI2VhZWFlYTsgY29sb3I6I2VhZWFlYTsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyB9IEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMWIxYjFiOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MTBweCAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gSDIuZGVmYXVsdCBJLmljb24sIEgyLmRlZmF1bHQgc3Bhbi5pY29ueyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNlYWVhZWE7IGNvbG9yOiNlYWVhZWE7IGJhY2tncm91bmQtY29sb3I6IzFiMWIxYjsgfSBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6N3B4OyB9IEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgyeyBtYXJnaW4tdG9wOjBweDsgfSBIMi5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6ODAlOyB9IEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC45MzhyZW0gOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyB3aWR0aDo4MDBweDsgaGVpZ2h0OjYwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIElNR3sgbWF4LXdpZHRoOjgwMHB4OyBtYXgtaGVpZ2h0OjYwMHB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCB7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IHdpZHRoOjI4cHg7IGhlaWdodDozNXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBwYWRkaW5nLWxlZnQ6MTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0LmNyZWRzaWlVc2VkTWluSGVpZ2h0IC5UaXRsZVRleHQgeyB3aWR0aDo5MCU7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMnsgbWFyZ2luLXRvcDoxMXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgyLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDo0cHg7IH0gfSAjY2l0eVRpdGxlIHtjb2xvcjojMWIxYjFiO30gLm1haW5fbGVmdF9ib3ggeyBjb2xvcjojMWIxYjFiOyB9IC5kaXZUYWJsZSB7IGRpc3BsYXk6dGFibGU7IH0gLmRpdlRhYmxlLmFsaWduLWNlbnRlciB7IG1hcmdpbjowIGF1dG87IH0gLmRpdlRhYmxlIC5mb3Jtc19ib3gyMiwgLmRpdlRhYmxlIGZvcm1bbmFtZT0ic2VuZEVtYWlsRm9ybSJdIHsgd2lkdGg6OTQwcHg7IH0gLmRpdlRhYmxlIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5zZXJ2aWNlLXRpdGxlIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5mdWxsV2lkdGhGb3JtIC5mb3Jtc19ib3gyMiB7IHdpZHRoOjEwMCU7IG1hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmZ1bGxXaWR0aEZvcm0gLnRleHQzMCB7IHdpZHRoOjEwMCU7IH0gLmZvcm0tZ3JvdXAgeyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmlubGluZS1mb3JtLWdyb3VwIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmZvcm0tZ3JvdXAgbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWF4LXdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDo3MDA7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IG1hcmdpbjoyMHB4IDAgMCAwOyBwYWRkaW5nOjE1cHg7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgYm9yZGVyLXJhZGl1czo1cHg7IGNsZWFyOmJvdGg7IH0gLmNyZWRzaWlOZXcgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6NDcwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaU5ld1ZEUCB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDozNTBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpVXNlZE1pbkhlaWdodCB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLmNyZWRzaWlGaW5hbmNlIHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjk2MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTI1cHg7IG1hcmdpbi10b3A6MTVweDsgfSAuY3JlZHNpaUZpbmFuY2UgLmNyZWRzaWktd2lkZ2V0LWNvbnRhaW5lcnsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzQ1cHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaURpdiAuY3JlZHNpaUZpbmFuY2VNZW51IHsgbWF4LXdpZHRoOjM3NXB4OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgLmNyZWRzaWktd2lkZ2V0eyBib3JkZXI6MDsgfSAucHJvbW8tY2FyZCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWJvdHRvbToxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IHBhZGRpbmc6MjBweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5wcm9tby1ib2R5IC5waWNfYm94MiB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLnByb21vLWhvdmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IG9wYWNpdHk6MDsgfSAucHJvbW8tYm9keTpob3ZlciAucHJvbW8taG92ZXIgeyBvcGFjaXR5OjE7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWluZm8geyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLDEpOyB9IC5wcm9tby1tYXNrIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC41KTsgfSAucHJvbW8taW5mbyB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDo1MCU7IHdpZHRoOjM1JTsgbWFyZ2luOmF1dG87IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgfSAuZm9ybS1lbmQgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuZm9ybS1lbmQgLmJ0bi13cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgfSAuZm9ybS1lbmQgLmVtcHR5LXNwYWNlIHsgbWFyZ2luOmF1dG87IH0gLmZvcm0tZW5kIC5wcm9tby1idG4geyBwb3NpdGlvbjppbml0aWFsOyB9IC5mb3JtLWVuZCAucHJpbnQgeyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbml0aWFsOyB9IC5wcm9tby1idG4geyBwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEwcHg7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlcjoxcHggc29saWQ7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcG9zaXRpb246YWJzb2x1dGU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0tcHJvbW8tYnRuLWJvcmRlci1yYWRpdXMpOyB0cmFuc2l0aW9uOjAuMjVzOyB9IC5wcm9tb3MgeyBiYWNrZ3JvdW5kOiNmMWYxZjE7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6ZGVmYXVsdDsgbWFyZ2luOjEycHggMTBweDsgZGlzcGxheTogZ3JpZDsgZ3JpZC1yb3c6c3BhbiA4OyBncmlkLWNvbHVtbjpzcGFuIDE7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpzdWJncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgfSAucHJvbW9zIC5oZWFkZXIgeyBncmlkLWFyZWE6aGVhZGVyOyB9ICNzZXJ2aWNlIC5wcm9tb3MgLnByb21vLWNvbnRlbnR7IGRpc3BsYXk6YmxvY2s7IGdyaWQtcm93OmF1dG87IH0gLnByb21vcyAucHJvbW8tY29udGVudCB7IGdyaWQtYXJlYTpjb250ZW50OyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzoyIC8gNzsgfSAucHJvbW9zIC5wcm9tby1mb290ZXIgeyBncmlkLWFyZWE6Zm9vdGVyOyBwYWRkaW5nOjAgMTVweCAxNXB4IDE1cHg7IH0gLnByb21vczpob3ZlciAucHJvbW8tYnRuLCAucHJvbW8tYnRuOmhvdmVyIHsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci1iZy1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vcyAucHJvbW8tYnRuIHsgd2lkdGg6aW5oZXJpdDsgcG9zaXRpb246aW5pdGlhbDsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxNXB4IDQ1cHg7IH0gLnByb21vcy5wcm9tby1zbWFsbCAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDI1cHg7IH0gLnByb21vLWJyZWFrIHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2FiYWJhYjsgcGFkZGluZy10b3A6MTBweDsgbWFyZ2luOjE1cHggMDsgfSAucHJvbW8taW1hZ2UsIC5wcm9tby1kZXRhaWxzLWltYWdlIHsgb3ZlcmZsb3c6aGlkZGVuOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBhc3BlY3QtcmF0aW86dmFyKC0tcHJvbW8taW1nLXJhdGlvLCBub25lKTsgfSAucHJvbW8tZGV0YWlscy1pbWFnZXsgd2lkdGg6MTAwJTsgfSAucHJvbW9zOmhvdmVyIC5wcm9tby1pbWFnZSBpbWcgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1vLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW8taW1hZ2UgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IHRyYW5zaXRpb246dHJhbnNmb3JtIDFzOyBkaXNwbGF5OnRhYmxlLWNlbGw7IG1hcmdpbjowIGF1dG87IH0gLnByb21vLWJvZHkgeyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5wcm9tby1ib2R5LmdyaWQgeyBkaXNwbGF5OmdyaWQ7IGhlaWdodDoxMDAlOyBncmlkLXRlbXBsYXRlLXJvd3M6MWZyIDNmcjsgfSAucHJvbW8tYm9keS5ncmlkIC5wcm9tby1jYXB0aW9uLmhlYWRlciB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciBhdXRvOyB9IC5wcm9tby1jb250ZW50LnBhZGRlZCB7IHBhZGRpbmc6MTVweDsgfSAucHJvbW8tZGVzYyB7IGRpc3BsYXk6bm9uZTsgfSAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS41cmVtIDsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojMzMzMzMzOyBtaW4taGVpZ2h0Ojc4cHg7IH0gLnByb21vLW1lZGl1bSAucHJvbW8tdGl0bGUgeyBtaW4taGVpZ2h0Ojg3cHg7IH0gLnByb21vLXNtYWxsIC5wcm9tby10aXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucHJvbW8tb2ZmZXIgLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDowOyB9IC5wcm9tby1zdWJjYXB0aW9uIHsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbTsgfSAucHJvbW8tc3ViY2FwdGlvbi5zdWJoZWFkaW5nLi1taCB7IG1pbi1oZWlnaHQ6MzFweDsgfSAucHJvbW8tc3ViY2FwdGlvbi5kZXNjcmlwdGlvbi4tbWggeyBtaW4taGVpZ2h0OjQ4cHg7IH0gLnByb21vLWRpc2xjYWltZXIgeyBmb250LXNpemU6MC43NXJlbTsgfSAucHJvbW8tbGlua3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLnByb21vLWxpbmstaXRlbSAucHJpbnQgeyB3aWR0aDphdXRvOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpncmlkOyB9IC5wcm9tb3MtY29udGFpbmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyBmb250LXNpemU6MnJlbTsgY29sb3I6IzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHBhZGRpbmc6NnB4OyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB0cmFuc2l0aW9uOmFsbCAwLjI1cyBlYXNlLW91dDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLW1lZGl1bSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLXNtYWxsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2UgeyBoZWlnaHQ6MTQycHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgdG9wOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigwIDAgMCAvIDMwJSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSkgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMTM4IDEzOCAxMzggLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpOyBjdXJzb3I6cG9pbnRlcjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyB0b3A6NTUlOyBjb2xvcjojODM4MzgzOyB9IC5iYW5uZXItZm9ybSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OnRhYmxlOyBtYXJnaW46MCBhdXRvOyB9IC5iYW5uZXItZm9ybSAuTWFpbkJveExheWVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTA7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IGRpc3BsYXk6dGFibGUtY2VsbDsgaGVpZ2h0OjEwMCU7IH0gLmJhbm5lci1mb3JtLWJveCB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgbWF4LXdpZHRoOjM1MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjM1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyAuTWFpbkJveExheWVyIC5iYW5uZXItZm9ybS1ib3ggeyB0b3A6NTAlOyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgbWFyZ2luLXRvcDowOyB9IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEzMDFweCkgeyAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MTVweDsgbWF4LXdpZHRoOjI3MHB4OyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5iYW5uZXItZm9ybSAjYmFubmVyRm9ybSAuZm9ybS1jb250cm9sIHsgcGFkZGluZzo0cHggOHB4OyBoZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tdGl0bGUgeyBmb250LXNpemU6MTVwdDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXN1YnRpdGxlIHsgZm9udC1zaXplOjExcHQ7IH0gLmJhbm5lci1mb3JtIC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NHB4IDEycHg7IH0gfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lcnsgZmxvYXQ6bGVmdDsgfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lclJpZ2h0eyBmbG9hdDpyaWdodDsgfSAub3RoZXJMb2dvTWVudUltYWdleyBtYXgtd2lkdGg6MjUwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gLmN0YWJveC0td3JhcHBlciB7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MC43NXJlbSAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gLmN0YWJveC0tdGFibGUgeyB3aWR0aDo4NSUhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTIwMHB4OyBtYXJnaW46YXV0bzsgYm9yZGVyLXNwYWNpbmc6MXJlbTsgYm9yZGVyLWNvbGxhcHNlOnVuc2V0OyB9IC5jdGFib3gtLWNlbGwgeyB3aWR0aDoyNSU7IHRyYW5zaXRpb246YWxsIDAuMnMgbGluZWFyOyB9IC5jdGFib3gtLWNlbGw6bm90KFtvbmNsaWNrPScnXSk6aG92ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMSB7IHdpZHRoOjEwMCU7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzIgeyB3aWR0aDo0ODBweDsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMyB7IHdpZHRoOjMzJTsgfSAuY3RhYm94LS1jb250YWluZXIgeyBwYWRkaW5nOjFyZW07IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24geyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uLmN0YWJveC0taWNvbl9fdG9wIHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX2xlZnQgeyBmbG9hdDpsZWZ0OyB9IC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS10aXRsZSwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWRlc2NyaXB0aW9uLCAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6MzVweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tdGl0bGUgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1kZXNjcmlwdGlvbiB7IG1hcmdpbi10b3A6MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5wYXJhbGxheC1zZWN0aW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1hdHRhY2htZW50OmxvY2FsOyBwYWRkaW5nOjI1cHggMDsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lciB7IHdpZHRoOjYwJTsgcGFkZGluZy1yaWdodDoxNXB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OmF1dG87IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjgwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5wYXJhbGxheC1jb250ZW50IHsgd2lkdGg6NDUlOyBwYWRkaW5nOjQwcHggNDBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7IGNvbG9yOiNmZmY7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtdGl0bGUgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MjBweDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIHsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246bGVmdDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIGF7IGNvbG9yOmluaGVyaXQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6MTMzMHB4KSB7IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo4MCU7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjEwMCU7IH0gfSAuc3Itb25seSB7IHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7IHdpZHRoOjFweCAhaW1wb3J0YW50OyBoZWlnaHQ6MXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46LTFweCAhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgY2xpcDpyZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IH0gLmJucF9wdWxsb3V0X2ltZ3sgbWF4LXdpZHRoOjEwcmVtOyBtYXJnaW46YXV0bzsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo5OHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIwcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2x7IHdpZHRoOjcwJTsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3JpZ2h0eyBib3JkZXItbGVmdC13aWR0aDoxcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yeyB3aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I0VCRUJFQjsgaGVpZ2h0OjQwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NzhweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxleyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjQ1JTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZXsgZm9udC1zaXplOjJyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAuYm5wX3B1bGxvdXRfbWlkX2NvbCB7IHdpZHRoOjUwJTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxlIHsgd2lkdGg6MTAwJTsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvciB7IGhlaWdodDoxNjRweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTA2cHg7IH0gfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRJbWd7IGhlaWdodDoxMTBweDsgYmFja2dyb3VuZC1jb2xvcjojMDA0NDc4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dEJ1dHRvbnsgYmFja2dyb3VuZDojNDE3RjFBICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojZmZmZmZmOyBwYWRkaW5nOjdweCAyMHB4IDdweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDo3MDA7IHRleHQtc2hhZG93OjAuNHB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudHsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuNTYzcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyBtYXJnaW4tYm90dG9tOi0xNXB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnRTY29yZXsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS44NzVyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50RnJlZXsgY29sb3I6IzQxN0YxQTsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDoxMjAwcHg7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDo5NjBweDsgfSAuc2xpZGVyLW1haW4gaW1neyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0IH0gLmNvbW11bmljYXRpb25QcmVmeyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6NTAlICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB9IC51cF9tZW51LmZpeGVkIC5TMTAwUGVyY2VudFdpZHRoeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNywyNywyNykgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAub3JnLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuc3RyZWV0LWFkZHJlc3MsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5sb2NhbGl0eSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnJlZ2lvbiwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnBvc3RhbC1jb2RlLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuYWRkcmVzcy1zZXAsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5waG9uZS10eXBlLWxhYmVsLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5waG9uZS1saW5rIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpICFpbXBvcnRhbnQ7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmRlYWxlck1hcExpbmsgc3ZnIHsgZmlsbDp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLWNhcmV0LWRvd246OmJlZm9yZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLXBob25lOjpiZWZvcmUgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggPiB1bCA+IGxpID4gYS50b3BfbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLW1lbnUtaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSAuYnRuIHsgYm9yZGVyLWNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLCAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24geyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50OyB9IC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxpbmUtaGVpZ2h0OjE7IH0gLm1hcmdpbi1ib3R0b20tLTRweCB7IG1hcmdpbi1ib3R0b206LTRweDsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5iYW5uZXItc2VhcmNoLWJveC13cmFwcGVyIHsgei1pbmRleDoyOyBwb3NpdGlvbjpyZWxhdGl2ZSB9Ci8qKiAvY3NzL3Byb19kcm9wZG93bl80LmNzcyAqKi8KLmlkTmF2MSB7IHBhZGRpbmc6MDsgbGlzdC1zdHlsZTpub25lOyBoZWlnaHQ6MjhweDsgZm9udC1zaXplOjAuNzVyZW0gOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjEgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowO30gLmlkTmF2MSBsaS50b3AxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBwYWRkaW5nOjA7IHBhZGRpbmctcmlnaHQ6MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6IzFiMWIxYjsgY29sb3I6I2VhZWFlYTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgZmlsdGVyOmJyaWdodG5lc3MoOTUlKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsxIHsgY29sb3I6cmdiKDIzNCwyMzQsMjM0KTsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGNvbG9yOiNmZWZlZmU7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDt9ICNmcm1SZWJhdGUgLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fcG9wdXAucG5nKSByZXBlYXQteCBzY3JvbGwgbGVmdCB0b3A7IH0gI2ZybVJlYmF0ZSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IH0gLmlkTmF2MSBsaSBhLnNlcnZpY2UtbGlua3sgbWFyZ2luLWJvdHRvbToxMnB4OyB3aWR0aDoyMDJweDsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5pZE5hdjEgbGkgYS5zZXJ2aWNlLWxpbmtfX3N1Ym1pdCB7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAubGFuZ3VhZ2VCYXIgLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgYmFja2dyb3VuZDppbmhlcml0OyBiYWNrZ3JvdW5kLWNvbG9yOiM5MjkyOTI7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojMWIxYjFiOyB9Ci8qKiAvY3NzL2pxdWVyeS11aS1mYWN0b3J5LzEuMTMuMi9qcXVlcnktdWkubWluLmNzcyAqKi8KLnVpLWhlbHBlci1oaWRkZW57ZGlzcGxheTpub25lfS51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9LnVpLWhlbHBlci1yZXNldHttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7b3V0bGluZTowO2xpbmUtaGVpZ2h0OjEuMzt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTAwJTtsaXN0LXN0eWxlOm5vbmV9LnVpLWhlbHBlci1jbGVhcmZpeDpiZWZvcmUsLnVpLWhlbHBlci1jbGVhcmZpeDphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfS51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y2xlYXI6Ym90aH0udWktaGVscGVyLXpmaXh7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MCkifS51aS1mcm9udHt6LWluZGV4OjEwMH0udWktc3RhdGUtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LnVpLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi10b3A6LS4yNWVtO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtaW5kZW50Oi05OTk5OXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnVpLXdpZGdldC1pY29uLWJsb2Nre2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi04cHg7ZGlzcGxheTpibG9ja30udWktd2lkZ2V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlcntkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjoycHggMCAwIDA7cGFkZGluZzouNWVtIC41ZW0gLjVlbSAuN2VtO2ZvbnQtc2l6ZToxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6MWVtIDIuMmVtO2JvcmRlci10b3A6MDtvdmVyZmxvdzphdXRvfS51aS1zbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fS51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyO3dpZHRoOjEuMmVtO2hlaWdodDoxLjJlbTtjdXJzb3I6cG9pbnRlcjstbXMtdG91Y2gtYWN0aW9uOm5vbmU7dG91Y2gtYWN0aW9uOm5vbmV9LnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTtmb250LXNpemU6LjdlbTtkaXNwbGF5OmJsb2NrO2JvcmRlcjowO2JhY2tncm91bmQtcG9zaXRpb246MCAwfS51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1oYW5kbGUsLnVpLXNsaWRlci51aS1zdGF0ZS1kaXNhYmxlZCAudWktc2xpZGVyLXJhbmdle2ZpbHRlcjppbmhlcml0fS51aS1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6LjhlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGV7dG9wOi0uM2VtO21hcmdpbi1sZWZ0Oi0uNmVtfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdle3RvcDowO2hlaWdodDoxMDAlfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1pbntsZWZ0OjB9LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3JpZ2h0OjB9LnVpLXNsaWRlci12ZXJ0aWNhbHt3aWR0aDouOGVtO2hlaWdodDoxMDBweH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItaGFuZGxle2xlZnQ6LS4zZW07bWFyZ2luLWxlZnQ6MDttYXJnaW4tYm90dG9tOi0uNmVtfS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZXtsZWZ0OjA7d2lkdGg6MTAwJX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWlue2JvdHRvbTowfS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7dG9wOjB9LnVpLXdpZGdldHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MWVtfS51aS13aWRnZXQgLnVpLXdpZGdldHtmb250LXNpemU6MWVtfS51aS13aWRnZXQgaW5wdXQsLnVpLXdpZGdldCBzZWxlY3QsLnVpLXdpZGdldCB0ZXh0YXJlYSwudWktd2lkZ2V0IGJ1dHRvbntmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MWVtfS51aS13aWRnZXQudWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1fS51aS13aWRnZXQtY29udGVudHtib3JkZXI6MXB4IHNvbGlkICNkZGQ7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzMzN9LnVpLXdpZGdldC1jb250ZW50IGF7Y29sb3I6IzMzM30udWktd2lkZ2V0LWhlYWRlcntib3JkZXI6MXB4IHNvbGlkICNkZGQ7YmFja2dyb3VuZDojZTllOWU5O2NvbG9yOiMzMzM7Zm9udC13ZWlnaHQ6Ym9sZH0udWktd2lkZ2V0LWhlYWRlciBhe2NvbG9yOiMzMzN9LnVpLXN0YXRlLWRlZmF1bHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0LC51aS1idXR0b24saHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1O2JhY2tncm91bmQ6I2Y2ZjZmNjtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzQ1NDU0NX0udWktc3RhdGUtZGVmYXVsdCBhLC51aS1zdGF0ZS1kZWZhdWx0IGE6bGluaywudWktc3RhdGUtZGVmYXVsdCBhOnZpc2l0ZWQsYS51aS1idXR0b24sYTpsaW5rLnVpLWJ1dHRvbixhOnZpc2l0ZWQudWktYnV0dG9uLC51aS1idXR0b257Y29sb3I6IzQ1NDU0NTt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLC51aS1idXR0b246aG92ZXIsLnVpLWJ1dHRvbjpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNjY2M7YmFja2dyb3VuZDojZWRlZGVkO2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjojMmIyYjJifS51aS1zdGF0ZS1ob3ZlciBhLC51aS1zdGF0ZS1ob3ZlciBhOmhvdmVyLC51aS1zdGF0ZS1ob3ZlciBhOmxpbmssLnVpLXN0YXRlLWhvdmVyIGE6dmlzaXRlZCwudWktc3RhdGUtZm9jdXMgYSwudWktc3RhdGUtZm9jdXMgYTpob3ZlciwudWktc3RhdGUtZm9jdXMgYTpsaW5rLC51aS1zdGF0ZS1mb2N1cyBhOnZpc2l0ZWQsYS51aS1idXR0b246aG92ZXIsYS51aS1idXR0b246Zm9jdXN7Y29sb3I6IzJiMmIyYjt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktdmlzdWFsLWZvY3Vze2JveC1zaGFkb3c6MCAwIDNweCAxcHggcmdiKDk0LDE1OCwyMTQpfS51aS1zdGF0ZS1hY3RpdmUsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1hY3RpdmUsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSxhLnVpLWJ1dHRvbjphY3RpdmUsLnVpLWJ1dHRvbjphY3RpdmUsLnVpLWJ1dHRvbi51aS1zdGF0ZS1hY3RpdmU6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjMDAzZWZmO2JhY2tncm91bmQ6IzAwN2ZmZjtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6I2ZmZn0udWktaWNvbi1iYWNrZ3JvdW5kLC51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24tYmFja2dyb3VuZHtib3JkZXI6IzAwM2VmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnVpLXN0YXRlLWFjdGl2ZSBhLC51aS1zdGF0ZS1hY3RpdmUgYTpsaW5rLC51aS1zdGF0ZS1hY3RpdmUgYTp2aXNpdGVke2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhpZ2hsaWdodCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0e2JvcmRlcjoxcHggc29saWQgI2RhZDU1ZTtiYWNrZ3JvdW5kOiNmZmZhOTA7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtY2hlY2tlZHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwfS51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCBhLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgYXtjb2xvcjojNzc3NjIwfS51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvcntib3JkZXI6MXB4IHNvbGlkICNmMWE4OTk7YmFja2dyb3VuZDojZmRkZmRmO2NvbG9yOiM1ZjNmM2Z9LnVpLXN0YXRlLWVycm9yIGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciBhe2NvbG9yOiM1ZjNmM2Z9LnVpLXN0YXRlLWVycm9yLXRleHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvci10ZXh0e2NvbG9yOiM1ZjNmM2Z9LnVpLXByaW9yaXR5LXByaW1hcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1wcmltYXJ5e2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXByaW9yaXR5LXNlY29uZGFyeSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXNlY29uZGFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktc2Vjb25kYXJ5e29wYWNpdHk6Ljc7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT03MCkiO2ZvbnQtd2VpZ2h0Om5vcm1hbH0udWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGlzYWJsZWR7b3BhY2l0eTouMzU7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zNSkiO2JhY2tncm91bmQtaW1hZ2U6bm9uZX0udWktc3RhdGUtZGlzYWJsZWQgLnVpLWljb257LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zNSkifS51aS1pY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9LnVpLWljb24sLnVpLXdpZGdldC1jb250ZW50IC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtaG92ZXIgLnVpLWljb24sLnVpLXN0YXRlLWZvY3VzIC51aS1pY29uLC51aS1idXR0b246aG92ZXIgLnVpLWljb24sLnVpLWJ1dHRvbjpmb2N1cyAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzU1NTU1NV8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24sLnVpLWJ1dHRvbjphY3RpdmUgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc19mZmZmZmZfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtaGlnaGxpZ2h0IC51aS1pY29uLC51aS1idXR0b24gLnVpLXN0YXRlLWhpZ2hsaWdodC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNzc3NjIwXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWVycm9yIC51aS1pY29uLC51aS1zdGF0ZS1lcnJvci10ZXh0IC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfY2MwMDAwXzI1NngyNDAucG5nIil9LnVpLWJ1dHRvbiAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3Nzc3N18yNTZ4MjQwLnBuZyIpfS51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmsudWktaWNvbi1ibGFua3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLWljb24tY2FyZXQtMS1ue2JhY2tncm91bmQtcG9zaXRpb246MCAwfS51aS1pY29uLWNhcmV0LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAwfS51aS1pY29uLWNhcmV0LTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IDB9LnVpLWljb24tY2FyZXQtMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IDB9LnVpLWljb24tY2FyZXQtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggMH0udWktaWNvbi1jYXJldC0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggMH0udWktaWNvbi1jYXJldC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAwfS51aS1pY29uLWNhcmV0LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggMH0udWktaWNvbi1jYXJldC0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAwfS51aS1pY29uLWNhcmV0LTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IDB9LnVpLWljb24tdHJpYW5nbGUtMS1ue2JhY2tncm91bmQtcG9zaXRpb246MCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xNnB4fS51aS1pY29uLWFycm93LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTMycHh9LnVpLWljb24tYXJyb3ctMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTMycHh9LnVpLWljb24tYXJyb3ctMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0zMnB4fS51aS1pY29uLWFycm93LTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTItc2Utbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtMzJweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjFweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItbmUtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItc2Utbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC00OHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246MCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtNjRweH0udWktaWNvbi1hcnJvdy00e2JhY2tncm91bmQtcG9zaXRpb246MCAtODBweH0udWktaWNvbi1hcnJvdy00LWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtODBweH0udWktaWNvbi1leHRsaW5re2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTgwcHh9LnVpLWljb24tbmV3d2lue2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTgwcHh9LnVpLWljb24tcmVmcmVzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC04MHB4fS51aS1pY29uLXNodWZmbGV7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtODBweH0udWktaWNvbi10cmFuc2Zlci1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtODBweH0udWktaWNvbi10cmFuc2ZlcnRoaWNrLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtODBweH0udWktaWNvbi1mb2xkZXItY29sbGFwc2Vke2JhY2tncm91bmQtcG9zaXRpb246MCAtOTZweH0udWktaWNvbi1mb2xkZXItb3BlbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50e2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTk2cHh9LnVpLWljb24tZG9jdW1lbnQtYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC05NnB4fS51aS1pY29uLW5vdGV7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtOTZweH0udWktaWNvbi1tYWlsLWNsb3NlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC05NnB4fS51aS1pY29uLW1haWwtb3BlbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC05NnB4fS51aS1pY29uLXN1aXRjYXNle2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC05NnB4fS51aS1pY29uLWNvbW1lbnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTk2cHh9LnVpLWljb24tcGVyc29ue2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC05NnB4fS51aS1pY29uLXByaW50e2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC05NnB4fS51aS1pY29uLXRyYXNoe2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC05NnB4fS51aS1pY29uLWxvY2tlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtOTZweH0udWktaWNvbi11bmxvY2tlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtOTZweH0udWktaWNvbi1ib29rbWFya3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtOTZweH0udWktaWNvbi10YWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTk2cHh9LnVpLWljb24taG9tZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTExMnB4fS51aS1pY29uLWZsYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTEycHh9LnVpLWljb24tY2FsZW5kYXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTEycHh9LnVpLWljb24tY2FydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xMTJweH0udWktaWNvbi1wZW5jaWx7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTEycHh9LnVpLWljb24tY2xvY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTEycHh9LnVpLWljb24tZGlza3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMTJweH0udWktaWNvbi1jYWxjdWxhdG9ye2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xMTJweH0udWktaWNvbi16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTExMnB4fS51aS1pY29uLXpvb21vdXR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTExMnB4fS51aS1pY29uLXNlYXJjaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTEycHh9LnVpLWljb24td3JlbmNoe2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0xMTJweH0udWktaWNvbi1nZWFye2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xMTJweH0udWktaWNvbi1oZWFydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMTEycHh9LnVpLWljb24tc3RhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtMTEycHh9LnVpLWljb24tbGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtMTEycHh9LnVpLWljb24tY2FuY2Vse2JhY2tncm91bmQtcG9zaXRpb246MCAtMTI4cHh9LnVpLWljb24tcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xMjhweH0udWktaWNvbi1wbHVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTI4cHh9LnVpLWljb24tbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTI4cHh9LnVpLWljb24tbWludXN0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xMjhweH0udWktaWNvbi1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xMjhweH0udWktaWNvbi1jbG9zZXRoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTEyOHB4fS51aS1pY29uLWtleXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTI4cHh9LnVpLWljb24tbGlnaHRidWxie2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMjhweH0udWktaWNvbi1zY2lzc29yc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTI4cHh9LnVpLWljb24tY2xpcGJvYXJke2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0xMjhweH0udWktaWNvbi1jb3B5e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0xMjhweH0udWktaWNvbi1jb250YWN0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xMjhweH0udWktaWNvbi1pbWFnZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMTI4cHh9LnVpLWljb24tdmlkZW97YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTEyOHB4fS51aS1pY29uLXNjcmlwdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtMTI4cHh9LnVpLWljb24tYWxlcnR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNDRweH0udWktaWNvbi1pbmZve2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE0NHB4fS51aS1pY29uLW5vdGljZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNDRweH0udWktaWNvbi1oZWxwe2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE0NHB4fS51aS1pY29uLWNoZWNre2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE0NHB4fS51aS1pY29uLWJ1bGxldHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNDRweH0udWktaWNvbi1yYWRpby1vbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNDRweH0udWktaWNvbi1yYWRpby1vZmZ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE0NHB4fS51aS1pY29uLXBpbi13e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNDRweH0udWktaWNvbi1waW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTQ0cHh9LnVpLWljb24tcGxheXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2MHB4fS51aS1pY29uLXBhdXNle2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE2MHB4fS51aS1pY29uLXNlZWstbmV4dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNjBweH0udWktaWNvbi1zZWVrLXByZXZ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTYwcHh9LnVpLWljb24tc2Vlay1lbmR7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTYwcHh9LnVpLWljb24tc2Vlay1zdGFydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zZWVrLWZpcnN0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2MHB4fS51aS1pY29uLXN0b3B7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTYwcHh9LnVpLWljb24tZWplY3R7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE2MHB4fS51aS1pY29uLXZvbHVtZS1vZmZ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE2MHB4fS51aS1pY29uLXZvbHVtZS1vbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTYwcHh9LnVpLWljb24tcG93ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNzZweH0udWktaWNvbi1zaWduYWwtZGlhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNzZweH0udWktaWNvbi1zaWduYWx7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0we2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTJ7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ze2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE3NnB4fS51aS1pY29uLWNpcmNsZS1wbHVze2JhY2tncm91bmQtcG9zaXRpb246MCAtMTkycHh9LnVpLWljb24tY2lyY2xlLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy13e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXpvb21pbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXpvb21vdXR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlc21hbGwtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTIwOHB4fS51aS1pY29uLWNpcmNsZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTIwOHB4fS51aS1pY29uLWNpcmNsZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMjA4cHh9LnVpLWljb24tc3F1YXJlc21hbGwtbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjA4cHh9LnVpLWljb24tc3F1YXJlc21hbGwtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMjA4cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtdmVydGljYWx7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMjRweH0udWktaWNvbi1ncmlwLWRvdHRlZC1ob3Jpem9udGFse2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtdmVydGljYWx7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1zb2xpZC1ob3Jpem9udGFse2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIyNHB4fS51aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0yMjRweH0udWktaWNvbi1ncmlwLWRpYWdvbmFsLXNle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIyNHB4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItdG9wLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLXRse2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItdG9wLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci10cntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci1ib3R0b20sLnVpLWNvcm5lci1sZWZ0LC51aS1jb3JuZXItYmx7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci1ib3R0b20sLnVpLWNvcm5lci1yaWdodCwudWktY29ybmVyLWJye2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweH0udWktd2lkZ2V0LW92ZXJsYXl7YmFja2dyb3VuZDojYWFhO29wYWNpdHk6LjM7LW1zLWZpbHRlcjpBbHBoYShPcGFjaXR5PTMwKX0udWktd2lkZ2V0LXNoYWRvd3std2Via2l0LWJveC1zaGFkb3c6MCAwIDVweCAjNjY2O2JveC1zaGFkb3c6MCAwIDVweCAjNjY2fQovKiogL2Nzcy9kYXJrdG9vbHRpcC5jc3MgKiovCi5kYXJrLXRvb2x0aXB7IGRpc3BsYXk6bm9uZTsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IHRvcDowOyBsZWZ0OjA7fSAuZGFyay10b29sdGlwIC5ldmFwTGlua3sgY29sb3I6IzAwNjZjYzsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZGFyay10b29sdGlwLnNtYWxseyBwYWRkaW5nOjRweDsgZm9udC1zaXplOjAuNzVyZW0gOyBtYXgtd2lkdGg6MTUwcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7IC1tb3otYm9yZGVyLXJhZGl1czoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB9IC5kYXJrLXRvb2x0aXAubWVkaXVteyBwYWRkaW5nOjZweDsgZm9udC1zaXplOjAuNjg4cmVtIDsgbWF4LXdpZHRoOjIwMHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDt9IC5kYXJrLXRvb2x0aXAubGFyZ2V7IHBhZGRpbmc6MTZweDsgZm9udC1zaXplOjFyZW0gOyBtYXgtd2lkdGg6MjUwcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7IC1tb3otYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlci1yYWRpdXM6NnB4OyB9IC5kYXJrLXRvb2x0aXAgLnRpcHsgdHJhbnNmb3JtOnNjYWxlKDEuMDEpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjAxKTsgdHJhbnNmb3JtOnNjYWxlKDEuMDEpOyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MDsgaGVpZ2h0OjA7IGJvcmRlci1zdHlsZTpzb2xpZDsgbGluZS1oZWlnaHQ6MHB4OyB9IC5kYXJrLXRvb2x0aXAuc291dGggLnRpcHsgbGVmdDo1MCU7IHRvcDoxMDAlO30gLmRhcmstdG9vbHRpcC53ZXN0IC50aXB7IGxlZnQ6MDsgdG9wOjUwJTt9IC5kYXJrLXRvb2x0aXAubm9ydGggLnRpcHsgbGVmdDo1MCU7IHRvcDowOyB9IC5kYXJrLXRvb2x0aXAuZWFzdCAudGlweyBsZWZ0OjEwMCU7IHRvcDo1MCU7fSAuZGFyay10b29sdGlwLnNvdXRoLnNtYWxsIC50aXB7IGJvcmRlci13aWR0aDowcHggNXB4IDAgNXB4OyBtYXJnaW4tbGVmdDotNXB4O30gLmRhcmstdG9vbHRpcC5zb3V0aC5tZWRpdW0gLnRpcHsgYm9yZGVyLXdpZHRoOjBweCA2cHggMCA2cHg7IG1hcmdpbi1sZWZ0Oi02cHg7fSAuZGFyay10b29sdGlwLnNvdXRoLmxhcmdlIC50aXB7IGJvcmRlci13aWR0aDowcHggMTJweCAwIDEycHg7IG1hcmdpbi1sZWZ0Oi0xMnB4O30gLmRhcmstdG9vbHRpcC53ZXN0LnNtYWxsIC50aXB7IGJvcmRlci13aWR0aDo1cHggN3B4IDVweCAwOyBtYXJnaW4tbGVmdDotN3B4OyBtYXJnaW4tdG9wOi01cHg7fSAuZGFyay10b29sdGlwLndlc3QubWVkaXVtIC50aXB7IGJvcmRlci13aWR0aDo2cHggOHB4IDZweCAwOyBtYXJnaW4tbGVmdDotOHB4OyBtYXJnaW4tdG9wOi02cHg7fSAuZGFyay10b29sdGlwLndlc3QubGFyZ2UgLnRpcHsgYm9yZGVyLXdpZHRoOjEycHggMTRweCAxMnB4IDA7IG1hcmdpbi1sZWZ0Oi0xNHB4OyBtYXJnaW4tdG9wOi0xMnB4O30gLmRhcmstdG9vbHRpcC5ub3J0aC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6MCA1cHggN3B4IDVweDsgbWFyZ2luLWxlZnQ6LTVweDsgbWFyZ2luLXRvcDotN3B4O30gLmRhcmstdG9vbHRpcC5ub3J0aC5tZWRpdW0gLnRpcHsgYm9yZGVyLXdpZHRoOjAgNnB4IDhweCA2cHg7IG1hcmdpbi1sZWZ0Oi02cHg7IG1hcmdpbi10b3A6LThweDt9IC5kYXJrLXRvb2x0aXAubm9ydGgubGFyZ2UgLnRpcHsgYm9yZGVyLXdpZHRoOjAgMTJweCAxNHB4IDEycHg7IG1hcmdpbi1sZWZ0Oi0xMnB4OyBtYXJnaW4tdG9wOi0xNHB4O30gLmRhcmstdG9vbHRpcC5lYXN0LnNtYWxsIC50aXB7IGJvcmRlci13aWR0aDo1cHggMCA1cHggMHB4OyBtYXJnaW4tdG9wOi01cHg7fSAuZGFyay10b29sdGlwLmVhc3QubWVkaXVtIC50aXB7IGJvcmRlci13aWR0aDo2cHggMHB4IDZweCAwcHg7IG1hcmdpbi10b3A6LTZweDt9IC5kYXJrLXRvb2x0aXAuZWFzdC5sYXJnZSAudGlweyBib3JkZXItd2lkdGg6MTJweCAwIDEycHggMHB4OyBtYXJnaW4tdG9wOi0xMnB4O30gLmRhcmstdG9vbHRpcCB1bC5jb25maXJteyBsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tdG9wOjVweDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCBhdXRvOyB9IC5kYXJrLXRvb2x0aXAgdWwuY29uZmlybSBsaXsgcGFkZGluZzoxMHB4O2Zsb2F0OmxlZnQ7bWFyZ2luOjVweDttaW4td2lkdGg6MjVweDstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7LW8tYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHg7fSAuZGFyay10b29sdGlwLmRhcmt7IGJhY2tncm91bmQtY29sb3I6I0RBRDlEQjsgY29sb3I6IzAwMDt9IC5kYXJrLXRvb2x0aXAubGlnaHR7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgY29sb3I6IzVlNWU1ZTsgYm9yZGVyOjFweCBzb2xpZCAjNWU1ZTVlOyB6LWluZGV4OjEwMDAwMzA7fSAuZGFyay10b29sdGlwLmRhcmsuc291dGggLnRpcHsgYm9yZGVyLWNvbG9yOiNEQUQ5REIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IF9ib3JkZXItY29sb3I6I0RBRDlEQiAjMDAwMDAwICMwMDAwMDAgIzAwMDAwMDsgX2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyk7IH0gLmRhcmstdG9vbHRpcC5kYXJrLndlc3QgLnRpcHsgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNEQUQ5REIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IF9ib3JkZXItY29sb3I6IzAwMDAwMCAjREFEOURCICMwMDAwMDAgIzAwMDAwMDsgX2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyk7IH0gLmRhcmstdG9vbHRpcC5kYXJrLm5vcnRoIC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjREFEOURCIHRyYW5zcGFyZW50OyBfYm9yZGVyLWNvbG9yOiMwMDAwMDAgIzAwMDAwMCAjREFEOURCICMwMDAwMDA7IF9maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpOyB9IC5kYXJrLXRvb2x0aXAuZGFyay5lYXN0IC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjREFEOURCOyBfYm9yZGVyLWNvbG9yOiMwMDAwMDAgIzAwMDAwMCAjMDAwMDAwICNEQUQ5REI7IF9maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpOyB9IC5kYXJrLXRvb2x0aXAubGlnaHQuc291dGggLnRpcHsgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHMucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB3aWR0aDoxMnB4OyBoZWlnaHQ6OHB4OyB9IC5kYXJrLXRvb2x0aXAubGlnaHQud2VzdCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwdy5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHdpZHRoOjhweDsgaGVpZ2h0OjEycHg7IH0gLmRhcmstdG9vbHRpcC5saWdodC5ub3J0aCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwbi5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHdpZHRoOjEycHg7IGhlaWdodDo4cHg7IH0gLmRhcmstdG9vbHRpcC5saWdodC5lYXN0IC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBlLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGNlbnRlcjsgd2lkdGg6OHB4OyBoZWlnaHQ6MTJweDt9IC5kYXJrLXRvb2x0aXAuZGFyayB1bC5jb25maXJtIGxpeyBiYWNrZ3JvdW5kLWNvbG9yOiM0MTZFODU7fSAuZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaTpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojNDE3RTg1O30gLmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpeyBiYWNrZ3JvdW5kLWNvbG9yOiNDMURCREI7fSAuZGFyay10b29sdGlwLmxpZ2h0IHVsLmNvbmZpcm0gbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I0RDRThFODt9IC5hbmltYXRlZHsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW1vei1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW1zLWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstby1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tcy1hbmltYXRpb24tZHVyYXRpb246LjVzOy1vLWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLWR1cmF0aW9uOi41czsgfSBALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluVXAgeyAwLjAwMDElIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTsgb3BhY2l0eTowO30gNDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyk7fSA3MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyk7fSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7IG9wYWNpdHk6MTt9IH0gQC1tb3ota2V5ZnJhbWVzIGZsaXBJblVwIHsgMC4wMDAxJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowO30gNDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyk7fSA3MCUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyk7fSAxMDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7b3BhY2l0eToxO30gfSBALW8ta2V5ZnJhbWVzIGZsaXBJblVwIHsgMC4wMDAxJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowO30gNDAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyk7fSA3MCUgey1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyk7fSAxMDAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7b3BhY2l0eToxO30gfSBAa2V5ZnJhbWVzIGZsaXBJblVwIHsgMC4wMDAxJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowO30gNDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyk7fSA3MCUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyk7fSAxMDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7b3BhY2l0eToxO30gfSBALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluUmlnaHQgeyAwLjAwMDElIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTsgb3BhY2l0eTowO30gNDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyk7fSA3MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyk7fSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7IG9wYWNpdHk6MTt9IH0gQC1tb3ota2V5ZnJhbWVzIGZsaXBJblJpZ2h0IHsgMC4wMDAxJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowO30gNDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyk7fSA3MCUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyk7fSAxMDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7b3BhY2l0eToxO30gfSBALW8ta2V5ZnJhbWVzIGZsaXBJblJpZ2h0IHsgMC4wMDAxJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowO30gNDAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyk7fSA3MCUgey1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyk7fSAxMDAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7b3BhY2l0eToxO30gfSBAa2V5ZnJhbWVzIGZsaXBJblJpZ2h0IHsgMC4wMDAxJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowO30gNDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyk7fSA3MCUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyk7fSAxMDAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7b3BhY2l0eToxO30gfSAuZmxpcEluIHsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsgLW8tYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IGJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50fSAuZmxpcEluLnNvdXRoLCAuZmxpcEluLm5vcnRoIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDsgLW1vei1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDsgLW8tYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7IGFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOyB9IC5mbGlwSW4ud2VzdCwgLmZsaXBJbi5lYXN0IHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDsgLW1vei1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDsgLW8tYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7IGFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0OyB9IEAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4geyAwJSB7b3BhY2l0eTowO30gMTAwJSB7b3BhY2l0eToxO319IEAtbW96LWtleWZyYW1lcyBmYWRlSW4geyAwJSB7b3BhY2l0eTowO30gMTAwJSB7b3BhY2l0eToxO319IEAtby1rZXlmcmFtZXMgZmFkZUluIHswJSB7b3BhY2l0eTowO30xMDAlIHtvcGFjaXR5OjE7fX0gQGtleWZyYW1lcyBmYWRlSW4gezAlIHtvcGFjaXR5OjA7fTEwMCUge29wYWNpdHk6MTt9fSAuZmFkZUluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluOyAtbW96LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjsgLW8tYW5pbWF0aW9uLW5hbWU6ZmFkZUluOyBhbmltYXRpb24tbmFtZTpmYWRlSW47fQovKiogL2Nzcy9kaXZfYmxvY2tzLmNzcyAqKi8KZGl2LmRpdkJsb2NrVmlld3sgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGV7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzozMHB4IDEwcHggMTBweCAxMHB4OyBjb2xvcjojMWIxYjFiOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGUuYmxvY2tUaXRsZVN0eWxlMnsgcGFkZGluZzowIDQwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnR7IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzoxNXB4IDBweDsgbWFyZ2luOjA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbnsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgNDBweDsgbWFyZ2luOjA7IHdpZHRoOjg2MHB4ICFpbXBvcnRhbnQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0eyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCAyMHB4IDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgeyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdHsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdDpub3QoLnNpemVGb3I0Q29sdW1uc0xpc3QpOm50aC1jaGlsZCgzbisxKSwgZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdDpudGgtY2hpbGQoNG4rMSl7IGNsZWFyOmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgZGl2LmRpdkJsb2NrTGlzdFRpdGxleyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MCAwIDEwcHggMDsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGZvbnQtd2VpZ2h0OmJvbGQgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbXsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyBtYXJnaW46MDsgdGV4dC1pbmRlbnQ6MDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYXJyb3dfcmVkLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMCA1cHggdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0gPiBBeyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZTppbml0aWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RUaXRsZTJ7IGZvbnQtc2l6ZToxLjFlbTsgYm9yZGVyOjA7IG1hcmdpbjowOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTJ7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgdGV4dC1pbmRlbnQ6MDsgbGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZTsgZGlzcGxheTpibG9jazsgbWFyZ2luOjAgMCAwIDEycHg7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yIC5vdGhlck9wdGlvbkxhYmVseyBmb250LXdlaWdodDpib2xkICFpbXBvcnRhbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6LTIxcHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMjpiZWZvcmV7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCBMSSB7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5ub1N0eWxlSXRlbXsgcGFkZGluZzowIDAgNXB4IDA7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOm5vbmU7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5vblNhbWVMaW5leyBwYWRkaW5nLXJpZ2h0OjE1cHg7IGRpc3BsYXk6aW5saW5lLXRhYmxlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1yaWdodDowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGVPdXRlcnsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrUm93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NlbGx7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbiB7IHdpZHRoOjExMDBweCAhaW1wb3J0YW50OyB9IH0KLyoqIC9jc3MvY2VydGlmaWNhdGlvbi9ob25kYS5wcmVsb2FkLmNzcyAqKi8KOnJvb3QgeyAtLWhvbmRhLWRhcmstZ3JheTojMWIxYjFiOyB9IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciBidXR0b24uYnRuLWRlZmF1bHQgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvbmRhLWRhcmstZ3JheSk7IGJvcmRlci1jb2xvcjogdmFyKC0taG9uZGEtZGFyay1ncmF5KTsgY29sb3I6IHZhcigtLXdoaXRlKTsgfQovKiogL2Nzcy9uZXdjYXJzLmNzcyAqKi8KLmRpdkZpbHRlck91dGVyQm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbjoxNXB4IDAgMCAwOyBwYWRkaW5nOjE1cHg7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMIHsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjBweCAxMHB4IDIwcHggMDsgbWFyZ2luOjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwuc2hvd0FzUm93IHsgZGlzcGxheTppbmxpbmUtZmxleDsgZmxleC13cmFwOndyYXA7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMIExJeyBtYXJnaW46MCAwIDNweCAwOyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTC5zaG93QXNSb3cgTEl7IHBhZGRpbmctcmlnaHQ6MTBweDsgZmxleDowIDAgMTUwcHg7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggLmRpdkZpbHRlclRpdGxlQ2FyTWFrZXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGZsZXgtd3JhcDp3cmFwOyBjb2x1bW4tZ2FwOjEycHg7IHJvdy1nYXA6NHB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuZGl2RmlsdGVyVGl0bGVDYXJNYWtlIC5kaXZGaWx0ZXJUaXRsZUxhYmVseyBmb250LXdlaWdodDpib2xkOyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuc2VsZWN0VG9nZ2xlV3JhcHBlckNhck1ha2V7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGNvbHVtbi1nYXA6MTBweDsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuc2VsZWN0VG9nZ2xlV3JhcHBlckNhck1ha2UgLnNlbGVjdEFsbFRvZ2dsZUJ0biwgLmRpdkZpbHRlck91dGVyQm94IC5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSAudW5zZWxlY3RBbGxUb2dnbGVCdG57IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOjA7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGNvbG9yOiNlMzE3M2U7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmRpdkZpbHRlck91dGVyQm94IC5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSAuc2VsZWN0QWxsVG9nZ2xlQnRuOmhvdmVyLCAuZGl2RmlsdGVyT3V0ZXJCb3ggLnNlbGVjdFRvZ2dsZVdyYXBwZXJDYXJNYWtlIC51bnNlbGVjdEFsbFRvZ2dsZUJ0bjpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJCb3hUaXRsZXsgbWFyZ2luOjAgMCAxNXB4IDA7IGNvbG9yOiM2NjY7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MCAwIDEwcHggMDsgZm9udC1zaXplOjAuOTM4cmVtIDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXJ7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206MjBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlcjpsYXN0LWNoaWxkeyBtYXJnaW4tYm90dG9tOjA7IH0gSDEuZGVmYXVsdC5pc1NpbmdsZVRpdGxlLmlzQm90dG9tQm9yZGVyZWQsIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIEgyeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhcnNCb3hXcmFwcGVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luOjE1cHggNXB4IDEwcHggNXB4OyBwYWRkaW5nOjEwcHg7IGJvcmRlcjoxcHggI2RkZCBzb2xpZDsgaGVpZ2h0OjMyMHB4OyB0cmFuc2l0aW9uOmJvcmRlciAwLjJzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhcjsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlciAwLjJzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhciA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6Y2FsYygzMy4zMzMzMzMlIC0gMTBweCk7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seXsgaGVpZ2h0OjE1NnB4OyB3aWR0aDphdXRvOyBtYXJnaW4tdG9wOjIwcHg7IHBhZGRpbmc6MjBweDsgYm9yZGVyLWNvbG9yOiNlZWU7IHRleHQtYWxpZ246Y2VudGVyOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5kaXZNYWtlTG9nb09ubHkgSU1HIHsgaGVpZ2h0OjEwMCU7IHdpZHRoOmF1dG87IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94Om50aC1jaGlsZCgzKXsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94OmFjdGl2ZSB7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5Nb3ZpbmdCb3hFZmZlY3QgeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3h7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgZmxvYXQ6bGVmdDsgb3BhY2l0eToxOyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgYm9yZGVyOjA7IGN1cnNvcjpwb2ludGVyOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyeyBmbG9hdDpsZWZ0OyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBIM3sgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS4zMTNyZW0gOyB3aWR0aDphdXRvOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6bm9ybWFsOyBjb2xvcjojMWIxYjFiOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIGRpdi5kaXZOZXdDYXJTdGFydFByaWNlLCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBkaXYuZGl2TmV3Q2FyUHJvbW9QcmljZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MjBweDsgbGVmdDoxMHB4OyByaWdodDoxMHB4OyBoZWlnaHQ6ODAlOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyIEF7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXIgSU1HeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBoZWlnaHQ6NDA1cHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXNpemU6MS4wNjNyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXNpemU6MS42MjVyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgZGl2LmRpdk5ld0NhclN0YXJ0UHJpY2V7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2RmlsdGVyT3V0ZXJCb3ggZGl2LmRpdkZpbHRlckJveFRpdGxleyB3aWR0aDoxMTAwcHg7IH0gfSAucmViYXRlVGFneyBwYWRkaW5nOjJweCAxMHB4IDRweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTZweDsgcmlnaHQ6MTVweDsgYmFja2dyb3VuZDojZTMxNzNlIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IHRleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyB9IC5yZWJhdGVUYWcgc3Bhbi5yZWJhdGVUZXh0eyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZUFtb3VudHsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NzAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5yZWJhdGVCb3JkZXJDb2xvcnsgYm9yZGVyLWNvbG9yOiNkZGQ7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjE1cHggIWltcG9ydGFudDsgfSBkaXYuZGl2Q2FyRm9vdGVyQ29udGFpbmVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgbGVmdDowOyByaWdodDowOyB3aWR0aDoxMDAlOyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW07IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuY2FyUGF5bWVudFdyYXBwZXJ7IG1pbi1oZWlnaHQ6dW5zZXQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEyOTlweCkgeyBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IGhlaWdodDozODBweCFpbXBvcnRhbnQ7IH0gZGl2LmNhclBheW1lbnRXcmFwcGVyeyBoZWlnaHQ6NnJlbSFpbXBvcnRhbnQ7IH0gfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tY2VydC1jb25jcmV0ZS1ncmF5LCB2YXIoLS1saWdodC1ncmF5KSk7IHBhZGRpbmctYm90dG9tOjVweDsgcGFkZGluZy10b3A6NXB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyeyBmb250LXNpemU6MS4xODhyZW0gOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRMaW5lMiBzcGFueyBjb2xvcjojZTMxNzNlOyBmb250LXNpemU6MS4xODhyZW0gOyBmb250LXdlaWdodDo3MDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUzeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2QjZCNkI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUxeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2QjZCNkI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBeyBib3R0b206NTBweCFpbXBvcnRhbnQ7IH0gZGl2LmRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQXsgaGVpZ2h0OjQyNXB4IWltcG9ydGFudDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEF7IGJvdHRvbTo2MHB4IWltcG9ydGFudDsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlweyBkaXNwbGF5OmlubGluZS10YWJsZTsgcGFkZGluZzowIDEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwJTsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAucGF5bWVudEluZm9CdWJibGV7IGRpc3BsYXk6bm9uZTsgfSBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgZGl2LmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gZGl2LmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IHBhZGRpbmc6M3B4IDhweDsgYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOmZpdC1jb250ZW50OyBjb2xvcjojMDAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW5TdG9ja0xpbmsgYXsgY29sb3I6IzAwMDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfQovKiogL2Nzcy9kaXZfcmFuZ2VzbGlkZXIuY3NzICoqLwpkaXYuZGl2UHJpY2VSYW5nZVNsaWRlcnsgbWFyZ2luOjAgMCAxMHB4IDA7IHBhZGRpbmc6MDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXRpdGxleyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjAgMCAxMHB4IDA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXN7IHBhZGRpbmc6MCAwIDE1cHggMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1pbnt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzIHNwYW4ucHJpY2UtbWF4e30gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlcnsgYm9yZGVyLXJhZGl1czo1cHggIWltcG9ydGFudDsgaGVpZ2h0OjEwcHg7IG1hcmdpbjo0cHggNnB4IDAgLTNweDsgcGFkZGluZzowOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1sZWZ0LCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXJpZ2h0eyBmb250LXNpemU6MC43NXJlbSA7IGxpbmUtaGVpZ2h0OjIwcHg7IGNvbG9yOiM3NTc1NzU7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1sZWZ0eyB0ZXh0LWFsaWduOmxlZnQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIGRpdi51aS1zbGlkZXItcmFuZ2V7IGJhY2tncm91bmQ6IzFiMWIxYjsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZSwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGV7IG1hcmdpbjotOHB4IDAgMCAtMTFweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBwYWRkaW5nOjAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1MHB4ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyB0b3A6MDsgaGVpZ2h0OjI1cHg7IHdpZHRoOjI1cHg7IGN1cnNvcjpwb2ludGVyOyBvdXRsaW5lOm5vbmUgIWltcG9ydGFudDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBBLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZleyBib3JkZXItY29sb3I6IzY2NjsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1cywgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtZm9jdXN7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL2Rpdl9hbmltYXRpb25zLm1pbi5jc3MgKiovCi5ib3VuY2luZy1wcmljZS1hcnJvd3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jaW5nLWFycm93Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjVzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tbmFtZTpib3VuY2luZy1hcnJvdzthbmltYXRpb24tZHVyYXRpb246NXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0uZmFkZS1pbi1vdXQsLmZhZGUtaW4tb3V0LWZhc3R7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfUBrZXlmcmFtZXMgYm91bmNpbmctYXJyb3d7MCUsMTAwJSwxNiUsMzIley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfTI0JSw4JXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KX19QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jaW5nLWFycm93ezAlLDEwMCUsMTYlLDMyJXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0yNCUsOCV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSl9fS5mYWRlLWluLW91dHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0O2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO29wYWNpdHk6MX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbi1vdXR7MCUsMTAwJSw1MCV7b3BhY2l0eToxfTI1JXtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGZhZGUtaW4tb3V0ezAlLDEwMCUsNDAle29wYWNpdHk6MX0yMCV7b3BhY2l0eTouNX19LmZhZGUtaW4tb3V0LWZhc3R7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlLWluLW91dC1mYXN0Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tbmFtZTpmYWRlLWluLW91dC1mYXN0O2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTtvcGFjaXR5OjF9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtaW4tb3V0LWZhc3R7MCUsMTAwJXtvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgZmFkZS1pbi1vdXQtZmFzdHswJSwxMDAle29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19Lmljb24tY2lyY2xpbmd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTppY29uLWNpcmNsaW5nOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjFzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42OCwtLjU1LC4yNywxLjU1KTthbmltYXRpb24tbmFtZTppY29uLWNpcmNsaW5nO2FuaW1hdGlvbi1kdXJhdGlvbjoxczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42OCwtLjU1LC4yNywxLjU1KX1ALXdlYmtpdC1rZXlmcmFtZXMgaWNvbi1jaXJjbGluZ3tmcm9tey1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfXRvey1tcy10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGljb24tY2lyY2xpbmd7ZnJvbXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3stbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19Ci8qKiAvY3NzL2ZvbnRzLmNzcyAqKi8KQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FsaWJyaSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXNpemU6MWVtOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhbGlicmknOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWxpYnJpJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LnN2ZyNDYWxpYnJpJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVJlZ3VsYXJJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1TZW1pYm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVNlbWlib2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1SZWcud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLVJlZ0l0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1NZWQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLU1lZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0Lm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhci13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1ib2xkLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtYm9sZC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0b2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLUJvbGRJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZGxpbmVvdC1zZW1pYm9sZF8wLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRsaW5lb3Qtc2VtaWJvbGRfMC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZGxpbmVPVC1TZW1pYm9sZF8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWxpZ2h0LXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtbGlnaHQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtTGlnaHQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWV4dHJhYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWV4dHJhYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1FeHRyYUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1SZWd1bGFySXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1Cb2xkSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHRPZmZpY2UnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHRPZmZpY2UnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFjay53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1JdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LnN2ZyNSb2JvdG8nKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5zdmcjUm9ib3RvQmxhY2tJdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuc3ZnI1JvYm90b0JvbGQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC5zdmcjUm9ib3RvTGlnaHQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LWJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtsLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2wtd2ViZm9udC1saWdodC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmttJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgiZW90IiksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmttJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQtbWVkaXVtLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bWVkaXVtOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX3JlZ3VsYXJfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19yZWd1bGFyX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfbGlnaHRfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19saWdodF93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2JvbGRfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19ib2xkX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVBQ29uZGVuc2VkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYWNvbmRwcm9fcmVndWxhcl93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYWNvbmRwcm9fcmVndWxhcl93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVBUmVndWxhcic7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFwcm9fcmVndWxhcl9sb2dvX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhcHJvX3JlZ3VsYXJfbG9nb193ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5lb3QnKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9yZWd1bGFyIikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3QiKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9ib2xkIikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseToiU291cmNlU2Fuc1BybyI7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LmVvdCIpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9saWdodCIpIGZvcm1hdCgic3ZnIik7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLU5vcm1hbC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLU5vcm1hbC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1Ob3JtYWwub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1Cb2xkIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRCb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRCb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUV4dGVuZGVkQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLU5vcm1hbC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLUl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWQtNC4wMy1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpRXh0ZW5kZWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLUJvbGRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1SZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW4ud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW5JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3N3YWxkJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQuc3ZnJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPc3dhbGRCb2xkJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLnN2ZycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonc2hvd3Jvb20nOyBzcmM6IGxvY2FsKCdzaG93cm9vbScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS5zdmcnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0T2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0T2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFja09ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pclBybyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRQcm8tbm9ybWFsLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pclBybyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0UHJvLWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRMVFByby1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dExUUHJvLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRMVFByby1JdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLVJlZy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtQm9sZEl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBcGV4TmV3Qm9vayc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYXBleC1uZXctYm9vay1yZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LnN2ZyNtb250c2VycmF0cmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC5zdmcjbW9udHNlcnJhdGJvbGQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LnN2ZyNtb250c2VycmF0Ym9sZF9pdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRpdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LnN2ZyNtb250c2VycmF0bWVkaXVtJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC5zdmcjbW9udHNlcnJhdG1lZGl1bV9pdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01NQyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNTUMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLU1lZGl1bS5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTU1DJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtQm9sZC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVcnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdUeXBlTmV4dC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XVHlwZU5leHQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNV0dsb2JhbFBybyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV0dsb2JhbF9Qcm9fcmVnLndvZmYnKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XR2xvYmFsUHJvJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XR2xvYmFsX1Byb19ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW5JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0SXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXJJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFySXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbEJvb2snOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9vay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWxCb29rJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9va0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2tJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xhbmRSb3Zlcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMYW5kUm92ZXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05pc3Nhbic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05pc3Nhbic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05pc3Nhbic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhci1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhck1vZGVybic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhck1vZGVybi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhck1vZGVybic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJNb2Rlcm4tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJHb3RoYW0nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJHb3RoYW0tTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyR290aGFtJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3VhckdvdGhhbS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0luZmluaXRpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW5maW5pdGlCcmFuZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW5maW5pdGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW5maW5pdGlCcmFuZC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVSZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmVMaWdodCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFySXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXJJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkSXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGRJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsYmtfLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxia2ktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGlnLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxpdC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdW1kaS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxtZWQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtNV9QbGFpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtNWlQbGFpbkl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTNfTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy0zaUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtN19Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtN2lCb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtNV9QbGFpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTVpUGxhaW5JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtM19MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC0zaUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTdfQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC03aUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1MaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLVRoaW4ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLUJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMb3Vpcyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTG91aXNHbG9iYWwyLVJlZy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTG91aXMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Mb3Vpc0dsb2JhbDItQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTG91aXMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xvdWlzR2xvYmFsMi1IZWF2eS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNXaWRlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1XaWRlUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNXaWRlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtV2lkZUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljV2lkZSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtV2lkZU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNOYXJyb3cnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU5hcnJvd1JlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljTmFycm93JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTmFycm93Qm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNOYXJyb3cnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU5hcnJvd01lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWwnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbFJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbEJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsQm9vayc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxCb29rLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tUmVndWxhckl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tTWVkaXVtSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVNlbWlCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVNlbWlCb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1UaGluLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVRoaW4td2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtTGlnaHQtd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtbGlnaHQtd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtUmVndWxhci13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1SZWd1bGFyLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LU1lZGl1bS13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1NZWRpdW0td2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtQm9sZC13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1Cb2xkLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0TW9ubyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dE1vbm8tUmVndWxhci13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dE1vbm8tUmVndWxhci13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0LUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnkub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2stSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXItT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnktT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2stT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2UnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2UnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZUJvb2snOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvb2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0xpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNNZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc1JlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc1JlZ3VsYXJJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0JvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0JvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWNMYXJlbkJlc3Bva2UnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL01jTGFyZW5CZXNwb2tlX0x0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01jTGFyZW5CZXNwb2tlJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9NY0xhcmVuQmVzcG9rZV9SZy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNY0xhcmVuQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTWNMYXJlbkJlc3Bva2VfQmQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRElOTmV4dExUUHJvJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9ESU5OZXh0TFRQcm8tTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRElOTmV4dExUUHJvJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9ESU5OZXh0TFRQcm8tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidESU5OZXh0TFRQcm8nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0RJTk5leHRMVFByby1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1R1bmdzdGVuJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9UdW5nc3Rlbi1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVHVuZ3N0ZW4nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL1R1bmdzdGVuLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3VhckV4dWJlcmFudCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyRXh1YmVyYW50VzA1LUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3VhckV4dWJlcmFudCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyRXh1YmVyYW50VzA1LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyRXh1YmVyYW50JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJFeHViZXJhbnRXMDUtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfQovKiogL2Nzcy9tYWluLmNzcyAqKi8KLi1sZWZ0IHtmbG9hdDpsZWZ0IWltcG9ydGFudDt9IC4tcmlnaHQge2Zsb2F0OnJpZ2h0fSAuLXNtYWxsIHtmb250LXNpemU6LjhlbTttYXJnaW4tYm90dG9tOjEuODc1ZW07bGluZS1oZWlnaHQ6MS44NzVlbSFpbXBvcnRhbnQ7fSAuLWxhcmdlIHtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6Mi41ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW0haW1wb3J0YW50O30gLi1oaWRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1xdWlldCB7Y29sb3I6IzY2NiFpbXBvcnRhbnQ7fSAuLWxvdWQge2NvbG9yOiMxYjFiMWIhaW1wb3J0YW50O30gLi1oaWdobGlnaHQge2JhY2tncm91bmQ6I2ZmMCFpbXBvcnRhbnQ7fSAuLWFkZGVkIHtiYWNrZ3JvdW5kOiMwNjA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXJlbW92ZWQge2JhY2tncm91bmQ6IzkwMDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcHVzaC1maXJzdCB7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGFzdCB7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHVzaC1sZWZ0IHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtYm90dG9tIHttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW5vYm9yZGVyIHtib3JkZXI6MCFpbXBvcnRhbnQ7fSAuLW5vZGVjb3JhdGlvbiwgLi1uby10ZXh0LWRlY29yYXRpb24sIC4tbm90ZXh0LWRlY29yYXRpb24ge3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDt9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2Uge3RleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7fSAuLXRleHQtbG93ZXJjYXNlLCAuLWxvd2VyY2FzZSB7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudDt9IC4taGlkZGVuIHsgZGlzcGxheTpub25lOyB9IC4tdGV4dC1ib2xkLC5ib2xke2ZvbnQtd2VpZ2h0OmJvbGQhaW1wb3J0YW50O30gLi10ZXh0LW5vcm1hbCwubm9ybWFse2ZvbnQtd2VpZ2h0Om5vcm1hbCFpbXBvcnRhbnQ7fSAuLWFsaWduLXRvcCB7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudDt9IC4tYWxpZ24tbWlkZGxlIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O30gLi1saW5lLWgxeyBsaW5lLWhlaWdodDoxZW07IH0gLi1saW5lLWgyeyBsaW5lLWhlaWdodDoyZW07IH0gLi1ib3R0b20weyBib3R0b206MDsgfSAuLWJvdHRvbTAtaW1wb3J0YW50eyBib3R0b206MCFpbXBvcnRhbnQ7IH0gLlBvcnNjaGUyeyBjbGVhcjpib3RoOyB9IC5ibGFjay10ZXh0IHsgY29sb3I6IzFiMWIxYjsgfSA6OnBsYWNlaG9sZGVyIHsgcGFkZGluZy10b3A6MXB4OyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0IHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjZWFlYWVhOyBiYWNrZ3JvdW5kLWNvbG9yOiMxYjFiMWI7IGNvbG9yOiNlYWVhZWEgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHR7IG1hcmdpbi10b3A6MXB4OyB9ICNjYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAjY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjEuMTI1cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2VhZWFlYTsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyBjb2xvcjojZWFlYWVhIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmNhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS40MzhyZW0gOyB9IC5jYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MC45MzhyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDozMXB4OyBoZWlnaHQ6NDFweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6MTRweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgI2VhZWFlYTsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyBjb2xvcjojZWFlYWVhIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI1NlYXJjaFRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxcmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgbWFyZ2luLWxlZnQ6NDVweDsgZGlzcGxheTpibG9jazsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbCBpbnB1dCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MXB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBoZWlnaHQ6MTNweDsgfSAudWktd2lkZ2V0LC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IGJhY2tncm91bmQ6I2ZmZiFpbXBvcnRhbnQ7IGNvbG9yOiM1NTU7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBwYWRkaW5nOjhweCAxMHB4IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLWNvcm5lci1hbGx7IGJvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDsgfSAuLWNvbGxhcHNleyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gLi1saXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IH0gLi1uby1zaGFkb3csIC4tc2hhZG93MCwgLi1ub3NoYWRvd3sgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuLXVuZGVybGluZXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnQ7IH0gLi10b3AweyB0b3A6MDsgfSAuLXRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O30gLi10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50O30gLi10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7fSAuLXRleHQtcmVkLCAuLXJlZC10ZXh0e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fSAuLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O30gLi1ub25lLCAuLWhpZGRlbiwgLi1oaWRkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4taW5saW5lIHtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQ7fSAuLWNvbG9yMSB7IGNvbG9yOiM1NzU3NTchaW1wb3J0YW50O30gLi10aXRsZTEgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC1jb2xvcjojMWIxYjFiICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuLWlucHV0IHsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTVweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MzJweDsgY29sb3I6IzQwNDA0MDsgcGFkZGluZzowcHggNnB4IWltcG9ydGFudDsgbWFyZ2luOjBweDsgb3V0bGluZTpub25lOyBtaW4taGVpZ2h0OjIwcHg7IGJvcmRlcjoxcHggc29saWQgI2NlZDRkYTsgYm9yZGVyLXJhZGl1czouMjVyZW07IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC4taW5wdXQ6Zm9jdXMsIC4taW5wdXQ6aG92ZXJ7IGJvcmRlci1jb2xvcjojODBiZGZmICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSk7IH0gLi1wb3NpdGlvbi1zdGF0aWMsIC4tcG9zLXN0YXRpYywgLi1wb3Mtc3RhdCB7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDt9IC4tcG9zaXRpb24tYWJzb2x1dGUsIC4tcG9zLWFic29sdXRlLCAuLXBvcy1hYnMge3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt9IC4tcG9zaXRpb24tZml4ZWQsIC4tcG9zLWZpeGVkLCAuLXBvcy1maXgge3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt9IC4tcG9zaXRpb24tcmVsYXRpdmUsIC4tcG9zLXJlbGF0aXZlLCAuLXBvcy1yZWwge3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDt9IC4tcG9zaXRpb24taW5oZXJpdCwgLi1wb3MtaW5oZXJpdCwgLi1wb3MtaW5oIHtwb3NpdGlvbjppbmhlcml0IWltcG9ydGFudDt9IC1saC0xLTMsIC1saW5lLWhlaWdodC0xLTN7IGxpbmUtaGVpZ2h0OjEuMzsgfSAtbGgtMjB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLi1lcnJvciwgLi1hbGVydCwgLi1ub3RpY2UsIC4tc3VjY2VzcywgLi1pbmZvIHtwYWRkaW5nOjAuOGVtO21hcmdpbi1ib3R0b206MWVtO2JvcmRlcjoycHggc29saWQgI2RkZCFpbXBvcnRhbnQ7fSAuLWVycm9yLCAuLWFsZXJ0IHtiYWNrZ3JvdW5kOiNmYmUzZTQ7Y29sb3I6IzhhMWYxMTtib3JkZXItY29sb3I6I2ZiYzJjNCFpbXBvcnRhbnQ7fSAuLW5vdGljZSB7YmFja2dyb3VuZDojZmZmNmJmO2NvbG9yOiM1MTQ3MjE7Ym9yZGVyLWNvbG9yOiNmZmQzMjQhaW1wb3J0YW50O30gLi1zdWNjZXNzIHtiYWNrZ3JvdW5kOiNlNmVmYzI7Y29sb3I6IzI2NDQwOTtib3JkZXItY29sb3I6I2M2ZDg4MCFpbXBvcnRhbnQ7fSAuLWluZm8ge2JhY2tncm91bmQ6I2Q1ZWRmODtjb2xvcjojMjA1NzkxO2JvcmRlci1jb2xvcjojOTJjYWU0IWltcG9ydGFudDt9IC4tZXJyb3IgYSwgLmFsZXJ0IGEge2NvbG9yOiM4YTFmMTEhaW1wb3J0YW50O30gLi1ub3RpY2UgYSB7Y29sb3I6IzUxNDcyMSFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3MgYSB7Y29sb3I6IzI2NDQwOSFpbXBvcnRhbnQ7fSAuLWluZm8gYSB7Y29sb3I6IzIwNTc5MSFpbXBvcnRhbnQ7fSAuLWJveCB7cGFkZGluZzoxLjVlbTttYXJnaW4tYm90dG9tOjEuNWVtO2JhY2tncm91bmQ6I2U1ZUNmOSFpbXBvcnRhbnQ7fSAtaHIge2JhY2tncm91bmQ6I2RkZGRkZDtjb2xvcjojZGRkZGRkO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC1zcGFjZSB7YmFja2dyb3VuZDojZmZmO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLi1jbGVhcmZpeDphZnRlciB7Y29udGVudDoiXDAwMjAiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7Y2xlYXI6Ym90aDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi1jbGVhcmZpeHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4tY2xlYXIge2NsZWFyOmJvdGghaW1wb3J0YW50O30gLmludmlzaWJsZSB7dmlzaWJpbGl0eTpoaWRkZW47fSAuY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IiI7IGRpc3BsYXk6dGFibGU7IGNsZWFyOmJvdGg7fSAuLW92ZXJmbG93LWhpZGRlbiB7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tdzUge3dpZHRoOjVweCFpbXBvcnRhbnQ7fSAuLXcxMCB7d2lkdGg6MTBweCFpbXBvcnRhbnQ7fSAuLXcxNSB7d2lkdGg6MTVweCFpbXBvcnRhbnQ7fSAuLXcxOCB7d2lkdGg6MThweCFpbXBvcnRhbnQ7fSAuLXcyMCB7d2lkdGg6MjBweCFpbXBvcnRhbnQ7fSAuLXcyNSB7d2lkdGg6MjVweCFpbXBvcnRhbnQ7fSAuLXczMCB7d2lkdGg6MzBweCFpbXBvcnRhbnQ7fSAuLXczNSB7d2lkdGg6MzVweCFpbXBvcnRhbnQ7fSAuLXc0MCB7d2lkdGg6NDBweCFpbXBvcnRhbnQ7fSAuLXc0NSB7d2lkdGg6NDVweCFpbXBvcnRhbnQ7fSAuLXc1MCB7d2lkdGg6NTBweCFpbXBvcnRhbnQ7fSAuLXc1NSB7d2lkdGg6NTVweCFpbXBvcnRhbnQ7fSAuLXc2MCB7d2lkdGg6NjBweCFpbXBvcnRhbnQ7fSAuLXc2NSB7d2lkdGg6NjVweCFpbXBvcnRhbnQ7fSAuLXc3MCB7d2lkdGg6NzBweCFpbXBvcnRhbnQ7fSAuLXc3MyB7d2lkdGg6NzNweCFpbXBvcnRhbnQ7fSAuLXc3NSB7d2lkdGg6NzVweCFpbXBvcnRhbnQ7fSAuLXc4MCB7d2lkdGg6ODBweCFpbXBvcnRhbnQ7fSAuLXc4NSB7d2lkdGg6ODVweCFpbXBvcnRhbnQ7fSAuLXc4OCB7d2lkdGg6ODhweCFpbXBvcnRhbnQ7fSAuLXc5MCB7d2lkdGg6OTBweCFpbXBvcnRhbnQ7fSAuLXc5NSB7d2lkdGg6OTVweCFpbXBvcnRhbnQ7fSAuLXcxMDAge3dpZHRoOjEwMHB4IWltcG9ydGFudDt9IC4tdzExMCB7d2lkdGg6MTEwcHghaW1wb3J0YW50O30gLi13MTIwIHt3aWR0aDoxMjBweCFpbXBvcnRhbnQ7fSAuLXcxMjUge3dpZHRoOjEyNXB4IWltcG9ydGFudDt9IC4tdzEzMCB7d2lkdGg6MTMwcHghaW1wb3J0YW50O30gLi13MTM1IHt3aWR0aDoxMzVweCFpbXBvcnRhbnQ7fSAuLXcxNDAge3dpZHRoOjE0MHB4IWltcG9ydGFudDt9IC4tdzE0MyB7d2lkdGg6MTQzcHghaW1wb3J0YW50O30gLi13MTQ1IHt3aWR0aDoxNDVweCFpbXBvcnRhbnQ7fSAuLXcxNTAge3dpZHRoOjE1MHB4IWltcG9ydGFudDt9IC4tdzE3MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTgwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODUge3dpZHRoOjE4NXB4IWltcG9ydGFudDt9IC4tdzE5MCB7d2lkdGg6MTkwcHghaW1wb3J0YW50O30gLi13MjAwIHt3aWR0aDoyMDBweCFpbXBvcnRhbnQ7fSAuLXcyMTAge3dpZHRoOjIxMHB4IWltcG9ydGFudDt9IC4tdzIxNSB7d2lkdGg6MjE1cHghaW1wb3J0YW50O30gLi13MjIwIHt3aWR0aDoyMjBweCFpbXBvcnRhbnQ7fSAuLXcyMzAge3dpZHRoOjIzMHB4IWltcG9ydGFudDt9IC4tdzI0MCB7d2lkdGg6MjQwcHghaW1wb3J0YW50O30gLi13MjUwIHt3aWR0aDoyNTBweCFpbXBvcnRhbnQ7fSAuLXcyNTUge3dpZHRoOjI1NXB4IWltcG9ydGFudDt9IC4tdzI2MCB7d2lkdGg6MjYwcHghaW1wb3J0YW50O30gLi13MjcwIHt3aWR0aDoyNzBweCFpbXBvcnRhbnQ7fSAuLXcyNzUge3dpZHRoOjI3NXB4IWltcG9ydGFudDt9IC4tdzI4MCB7d2lkdGg6MjgwcHghaW1wb3J0YW50O30gLi13MjkwIHt3aWR0aDoyOTBweCFpbXBvcnRhbnQ7fSAuLXczMDAge3dpZHRoOjMwMHB4IWltcG9ydGFudDt9IC4tdzMxNSB7d2lkdGg6MzE1cHghaW1wb3J0YW50O30gLi13MzIwIHt3aWR0aDozMjBweCFpbXBvcnRhbnQ7fSAuLXczMjUge3dpZHRoOjMyNXB4IWltcG9ydGFudDt9IC4tdzM1MCB7d2lkdGg6MzUwcHghaW1wb3J0YW50O30gLi13NDAwIHt3aWR0aDo0MDBweCFpbXBvcnRhbnQ7fSAuLXc0NTAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzQ2MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NTAwIHt3aWR0aDo1MDBweCFpbXBvcnRhbnQ7fSAuLXc2MzAge3dpZHRoOjYzMHB4IWltcG9ydGFudDt9IC4tdzYyMCB7d2lkdGg6NjIwcHghaW1wb3J0YW50O30gLi13NjI1IHt3aWR0aDo2MjVweCFpbXBvcnRhbnQ7fSAuLXc2NzUge3dpZHRoOjY3NXB4IWltcG9ydGFudDt9IC4tdzY4MCB7d2lkdGg6NjgwcHghaW1wb3J0YW50O30gLi13NjcwIHt3aWR0aDo2NzBweCFpbXBvcnRhbnQ7fSAuLXc3MDAge3dpZHRoOjcwMHB4IWltcG9ydGFudDt9IC4tdzcyMCB7d2lkdGg6NzIwcHghaW1wb3J0YW50O30gLi13NzI1IHt3aWR0aDo3MjVweCFpbXBvcnRhbnQ7fSAuLXc3MzAge3dpZHRoOjczMHB4IWltcG9ydGFudDt9IC4tdzc1MCB7d2lkdGg6NzUwcHghaW1wb3J0YW50O30gLi13ODAwIHt3aWR0aDo4MDBweCFpbXBvcnRhbnQ7fSAuLXc5MDAge3dpZHRoOjkwMHB4IWltcG9ydGFudDt9IC4tdzkzNyB7d2lkdGg6OTM3cHghaW1wb3J0YW50O30gLi13OTQwIHt3aWR0aDo5NDBweCFpbXBvcnRhbnQ7fSAuLXc5NjAge3dpZHRoOjk2MHB4IWltcG9ydGFudDt9IC4tdzk3MCB7d2lkdGg6OTcwcHghaW1wb3J0YW50O30gLi13MTAwMCB7d2lkdGg6MTAwMHB4IWltcG9ydGFudDt9IC4tdzVwIHt3aWR0aDo1JSFpbXBvcnRhbnQ7fSAuLXcxMHAge3dpZHRoOjEwJSFpbXBvcnRhbnQ7fSAuLXcxNXAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXcyMHAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXdxLCAuLXcyNXAge3dpZHRoOjI1JSFpbXBvcnRhbnQ7fSAuLXczMHAge3dpZHRoOjMwJSFpbXBvcnRhbnQ7fSAuLXczNXAge3dpZHRoOjM1JSFpbXBvcnRhbnQ7fSAuLXc0MHAge3dpZHRoOjQwJSFpbXBvcnRhbnQ7fSAuLXc0NXAge3dpZHRoOjQ1JSFpbXBvcnRhbnQ7fSAuLXdoLC4tdzUwcCB7d2lkdGg6NTAlIWltcG9ydGFudDt9IC4tdzU1cCB7d2lkdGg6NTUlIWltcG9ydGFudDt9IC4tdzYwcCB7d2lkdGg6NjAlIWltcG9ydGFudDt9IC4tdzY1cCB7d2lkdGg6NjUlIWltcG9ydGFudDt9IC4tdzcwcCB7d2lkdGg6NzAlIWltcG9ydGFudDt9IC4tdzc1cCB7d2lkdGg6NzUlIWltcG9ydGFudDt9IC4tdzgwcCB7d2lkdGg6ODAlIWltcG9ydGFudDt9IC4tdzg1cCB7d2lkdGg6ODUlIWltcG9ydGFudDt9IC4tdzkwcCB7d2lkdGg6OTAlIWltcG9ydGFudDt9IC4tdzk1cCB7d2lkdGg6OTUlIWltcG9ydGFudDt9IC4td2YsLi13MTAwcCB7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7fSAuLW1heC13LW5vbmUge21heC13aWR0aDpub25lIWltcG9ydGFudDt9IC4taDUge2hlaWdodDo1cHghaW1wb3J0YW50O30gLi1oNiB7aGVpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLWg3IHtoZWlnaHQ6N3B4IWltcG9ydGFudDt9IC4taDgge2hlaWdodDo4cHghaW1wb3J0YW50O30gLi1oOSB7aGVpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLWgxMCB7aGVpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1oMTEge2hlaWdodDoxMXB4IWltcG9ydGFudDt9IC4taDEyIHtoZWlnaHQ6MTJweCFpbXBvcnRhbnQ7fSAuLWgxMyB7aGVpZ2h0OjEzcHghaW1wb3J0YW50O30gLi1oMTQge2hlaWdodDoxNHB4IWltcG9ydGFudDt9IC4taDE1IHtoZWlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLWgyMCB7aGVpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1oMjUge2hlaWdodDoyNXB4IWltcG9ydGFudDt9IC4taDMwIHtoZWlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLWgzMiB7aGVpZ2h0OjMycHghaW1wb3J0YW50O30gLi1oMzUge2hlaWdodDozNXB4IWltcG9ydGFudDt9IC4taDQwIHtoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLWg0NSB7aGVpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1oNTAge2hlaWdodDo1MHB4IWltcG9ydGFudDt9IC4taDU1IHtoZWlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLWg2MCB7aGVpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1oNjUge2hlaWdodDo2NXB4IWltcG9ydGFudDt9IC4taDcwIHtoZWlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLWg3NSB7aGVpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1oODAge2hlaWdodDo4MHB4IWltcG9ydGFudDt9IC4taDg1IHtoZWlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLWg5MCB7aGVpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1oOTUge2hlaWdodDo5NXB4IWltcG9ydGFudDt9IC4taDEwMCB7aGVpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4taDExMCB7aGVpZ2h0OjExMHB4IWltcG9ydGFudDt9IC4taDEyMCB7aGVpZ2h0OjEyMHB4IWltcG9ydGFudDt9IC4taDEzMCB7aGVpZ2h0OjEzMHB4IWltcG9ydGFudDt9IC4taDE0MCB7aGVpZ2h0OjE0MHB4IWltcG9ydGFudDt9IC4taDE1MCB7aGVpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4taDE2MCB7aGVpZ2h0OjE2MHB4IWltcG9ydGFudDt9IC4taDE3MCB7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9IC4taDE4MCB7aGVpZ2h0OjE4MHB4IWltcG9ydGFudDt9IC4taDE5MCB7aGVpZ2h0OjE5MHB4IWltcG9ydGFudDt9IC4taDIwMCB7aGVpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4taDIyMCB7aGVpZ2h0OjIyMHB4IWltcG9ydGFudDt9IC4taDIzMCB7aGVpZ2h0OjIzMHB4IWltcG9ydGFudDt9IC4taDI0MCB7aGVpZ2h0OjI0MHB4IWltcG9ydGFudDt9IC4taDI0NSB7aGVpZ2h0OjI0NXB4IWltcG9ydGFudDt9IC4taDI0OCB7aGVpZ2h0OjI0OHB4IWltcG9ydGFudDt9IC4taDI1MCB7aGVpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4taDI1NSB7aGVpZ2h0OjI1NXB4IWltcG9ydGFudDt9IC4taDI2MCB7aGVpZ2h0OjI2MHB4IWltcG9ydGFudDt9IC4taDMwMCB7aGVpZ2h0OjMwMHB4IWltcG9ydGFudDt9IC4taDM1MCB7aGVpZ2h0OjM1MHB4IWltcG9ydGFudDt9IC4taDQwMCB7aGVpZ2h0OjQwMHB4IWltcG9ydGFudDt9IC4taDQ1MCB7aGVpZ2h0OjQ1MHB4IWltcG9ydGFudDt9IC4taDUwMCB7aGVpZ2h0OjUwMHB4IWltcG9ydGFudDt9IC4taDU1MCB7aGVpZ2h0OjU1MHB4IWltcG9ydGFudDt9IC4taDYwMCB7aGVpZ2h0OjYwMHB4IWltcG9ydGFudDt9IC4taDY1MCB7aGVpZ2h0OjY1MHB4IWltcG9ydGFudDt9IC4taDcwMCB7aGVpZ2h0OjcwMHB4IWltcG9ydGFudDt9IC4taDc1MCB7aGVpZ2h0Ojc1MHB4IWltcG9ydGFudDt9IC4taDgwMCB7aGVpZ2h0OjgwMHB4IWltcG9ydGFudDt9IC4taDkwMCB7aGVpZ2h0OjkwMHB4IWltcG9ydGFudDt9IC4taDEwMDAge2hlaWdodDoxMDAwcHghaW1wb3J0YW50O30gLi1oNXAge2hlaWdodDo1JSFpbXBvcnRhbnQ7fSAuLWgxMHAge2hlaWdodDoxMCUhaW1wb3J0YW50O30gLi1oMTVwIHtoZWlnaHQ6MTUlIWltcG9ydGFudDt9IC4taDIwcCB7aGVpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLWhxLCAuLWgyNXAge2hlaWdodDoyNSUhaW1wb3J0YW50O30gLi1oaCwuLWg1MHAge2hlaWdodDo1MCUhaW1wb3J0YW50O30gLi1oZiwuLWgxMDBwIHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLWJveC1zLWJ7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC4tYm94LWNvbnRlbnR7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLi1mbGV4e2Rpc3BsYXk6ZmxleDt9IC4tZmxleC1jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9IC4tYWktY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcjt9IC4tcDAsLi1ub3BhZGRpbmcsLi1ub3BhZGRpbmdzIHtwYWRkaW5nOjA7fSAuLXAxIHtwYWRkaW5nOjFweCFpbXBvcnRhbnQ7fSAuLXAyIHtwYWRkaW5nOjJweCFpbXBvcnRhbnQ7fSAuLXAzIHtwYWRkaW5nOjNweCFpbXBvcnRhbnQ7fSAuLXA0IHtwYWRkaW5nOjRweCFpbXBvcnRhbnQ7fSAuLXA1IHtwYWRkaW5nOjVweCFpbXBvcnRhbnQ7fSAuLXA2IHtwYWRkaW5nOjZweCFpbXBvcnRhbnQ7fSAuLXA3IHtwYWRkaW5nOjdweCFpbXBvcnRhbnQ7fSAuLXA4IHtwYWRkaW5nOjhweCFpbXBvcnRhbnQ7fSAuLXA5IHtwYWRkaW5nOjlweCFpbXBvcnRhbnQ7fSAuLXAxMCB7cGFkZGluZzoxMHB4IWltcG9ydGFudDt9IC4tcDE1IHtwYWRkaW5nOjE1cHghaW1wb3J0YW50O30gLi1wMjAge3BhZGRpbmc6MjBweCFpbXBvcnRhbnQ7fSAuLXAyNSB7cGFkZGluZzoyNXB4IWltcG9ydGFudDt9IC4tcDMwIHtwYWRkaW5nOjMwcHghaW1wb3J0YW50O30gLi1wMzUge3BhZGRpbmc6MzVweCFpbXBvcnRhbnQ7fSAuLXA0MCB7cGFkZGluZzo0MHB4IWltcG9ydGFudDt9IC4tcDQ1IHtwYWRkaW5nOjQ1cHghaW1wb3J0YW50O30gLi1wNTAge3BhZGRpbmc6NTBweCFpbXBvcnRhbnQ7fSAuLXBsMCB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wbDEge3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50O30gLi1wbDIge3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50O30gLi1wbDMge3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50O30gLi1wbDQge3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50O30gLi1wbDUge3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50O30gLi1wbDYge3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50O30gLi1wbDcge3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50O30gLi1wbDgge3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50O30gLi1wbDkge3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50O30gLi1wbDEwIHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLXBsMTUge3BhZGRpbmctbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tcGwxNiB7cGFkZGluZy1sZWZ0OjE2cHghaW1wb3J0YW50O30gLi1wbDE3IHtwYWRkaW5nLWxlZnQ6MTdweCFpbXBvcnRhbnQ7fSAuLXBsMjAge3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tcGwyNSB7cGFkZGluZy1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1wbDMwIHtwYWRkaW5nLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLXBsMzUge3BhZGRpbmctbGVmdDozNXB4IWltcG9ydGFudDt9IC4tcGw0MCB7cGFkZGluZy1sZWZ0OjQwcHghaW1wb3J0YW50O30gLi1wbDQ1IHtwYWRkaW5nLWxlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLXBsNTAge3BhZGRpbmctbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tcGw1NSB7cGFkZGluZy1sZWZ0OjU1cHghaW1wb3J0YW50O30gLi1wcjAge3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXByMSB7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50O30gLi1wcjIge3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcHIzIHtwYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXByNCB7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50O30gLi1wcjUge3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcHI2IHtwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXByNyB7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50O30gLi1wcjgge3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcHI5IHtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXByMTAge3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXByMTUge3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXByMjAge3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXByMjUge3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXByMzAge3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXByMzUge3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXByNDAge3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXByNDUge3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXByNTAge3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXByNTUge3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHQxIHtwYWRkaW5nLXRvcDoxcHghaW1wb3J0YW50O30gLi1wdDIge3BhZGRpbmctdG9wOjJweCFpbXBvcnRhbnQ7fSAuLXB0MyB7cGFkZGluZy10b3A6M3B4IWltcG9ydGFudDt9IC4tcHQ0IHtwYWRkaW5nLXRvcDo0cHghaW1wb3J0YW50O30gLi1wdDUge3BhZGRpbmctdG9wOjVweCFpbXBvcnRhbnQ7fSAuLXB0NiB7cGFkZGluZy10b3A6NnB4IWltcG9ydGFudDt9IC4tcHQ3IHtwYWRkaW5nLXRvcDo3cHghaW1wb3J0YW50O30gLi1wdDgge3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnQ7fSAuLXB0OSB7cGFkZGluZy10b3A6OXB4IWltcG9ydGFudDt9IC4tcHQxMCB7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXB0MTUge3BhZGRpbmctdG9wOjE1cHghaW1wb3J0YW50O30gLi1wdDIwIHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tcHQyNSB7cGFkZGluZy10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXB0MzAge3BhZGRpbmctdG9wOjMwcHghaW1wb3J0YW50O30gLi1wdDM1IHtwYWRkaW5nLXRvcDozNXB4IWltcG9ydGFudDt9IC4tcHQ0MCB7cGFkZGluZy10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXB0NDUge3BhZGRpbmctdG9wOjQ1cHghaW1wb3J0YW50O30gLi1wdDUwIHtwYWRkaW5nLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tcHQ1NSB7cGFkZGluZy10b3A6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAwIHtwYWRkaW5nLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLXBiMSB7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tcGIyIHtwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1wYjMge3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLXBiNCB7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tcGI1IHtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1wYjYge3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLXBiNyB7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tcGI4IHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1wYjkge3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLXBiMTAge3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1wYjE1IHtwYWRkaW5nLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tcGIyMCB7cGFkZGluZy1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLXBiMjUge3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1wYjMwIHtwYWRkaW5nLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tcGI0MCB7cGFkZGluZy1ib3R0b206NDBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czAsLXJhZGl1czAsLXJhZDAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMSwtcmFkaXVzMSwtcmFkMSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMyLC1yYWRpdXMyLC1yYWQyIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czMsLXJhZGl1czMsLXJhZDMge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNCwtcmFkaXVzNCwtcmFkNCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM1LC1yYWRpdXM1LC1yYWQ1IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czYsLXJhZGl1czYsLXJhZDYge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNywtcmFkaXVzNywtcmFkNyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM4LC1yYWRpdXM4LC1yYWQ4IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czksLXJhZGl1czksLXJhZDkge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMTAsLXJhZGl1czEwLC1yYWQxMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLi1tYXV0byB7bWFyZ2luOmF1dG8haW1wb3J0YW50O30gLi1tMCAuLW5vbWFyZ2lucywuLW5vbWFyZ2lue21hcmdpbjowIWltcG9ydGFudDt9IC4tbTEge21hcmdpbjoxcHghaW1wb3J0YW50O30gLi1tMiB7bWFyZ2luOjJweCFpbXBvcnRhbnQ7fSAuLW0zIHttYXJnaW46M3B4IWltcG9ydGFudDt9IC4tbTQge21hcmdpbjo0cHghaW1wb3J0YW50O30gLi1tNSB7bWFyZ2luOjVweCFpbXBvcnRhbnQ7fSAuLW02IHttYXJnaW46NnB4IWltcG9ydGFudDt9IC4tbTcge21hcmdpbjo3cHghaW1wb3J0YW50O30gLi1tOCB7bWFyZ2luOjhweCFpbXBvcnRhbnQ7fSAuLW05IHttYXJnaW46OXB4IWltcG9ydGFudDt9IC4tbTEwIHttYXJnaW46MTBweCFpbXBvcnRhbnQ7fSAuLW0xNSB7bWFyZ2luOjE1cHghaW1wb3J0YW50O30gLi1tMjAge21hcmdpbjoyMHB4IWltcG9ydGFudDt9IC4tbTIyIHttYXJnaW46MjJweCFpbXBvcnRhbnQ7fSAuLW0yNSB7bWFyZ2luOjI1cHghaW1wb3J0YW50O30gLi1tNXAge21hcmdpbjo1JSFpbXBvcnRhbnQ7fSAuLW0xMHAge21hcmdpbjoxMCUhaW1wb3J0YW50O30gLi1tMTVwIHttYXJnaW46MTUlIWltcG9ydGFudDt9IC4tbTIwcCB7bWFyZ2luOjIwJSFpbXBvcnRhbnQ7fSAuLW0yNXAge21hcmdpbjoyNSUhaW1wb3J0YW50O30gLi1tbGF1dG8ge21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O30gLi1tbDAge21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O30gLi1tbDEge21hcmdpbi1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLW1sMiB7bWFyZ2luLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tbWwzIHttYXJnaW4tbGVmdDozcHghaW1wb3J0YW50O30gLi1tbDQge21hcmdpbi1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLW1sNSB7bWFyZ2luLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tbWw2IHttYXJnaW4tbGVmdDo2cHghaW1wb3J0YW50O30gLi1tbDcge21hcmdpbi1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLW1sOCB7bWFyZ2luLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tbWw5IHttYXJnaW4tbGVmdDo5cHghaW1wb3J0YW50O30gLi1tbDEwIHttYXJnaW4tbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbWwxNSB7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1sMjAge21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1tbDI1IHttYXJnaW4tbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbWwyNyB7bWFyZ2luLWxlZnQ6MjdweCFpbXBvcnRhbnQ7fSAuLW1sMzAge21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1tbDUwIHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbWw4MCB7bWFyZ2luLWxlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLW1sMTAwIHttYXJnaW4tbGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1sMTMwIHttYXJnaW4tbGVmdDoxMzBweCFpbXBvcnRhbnQ7fSAuLW1sMTUwIHttYXJnaW4tbGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLW1sMnAge21hcmdpbi1sZWZ0OjIlIWltcG9ydGFudDt9IC4tbWwzcCB7bWFyZ2luLWxlZnQ6MyUhaW1wb3J0YW50O30gLi1tbDVwIHttYXJnaW4tbGVmdDo1JSFpbXBvcnRhbnQ7fSAuLW1sMTBwIHttYXJnaW4tbGVmdDoxMCUhaW1wb3J0YW50O30gLi1tbDE1cCB7bWFyZ2luLWxlZnQ6MTUlIWltcG9ydGFudDt9IC4tbWwyMHAge21hcmdpbi1sZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLW1sMjVwIHttYXJnaW4tbGVmdDoyNSUhaW1wb3J0YW50O30gLi1tcmF1dG8ge21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDt9IC4tbXIwIHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLW1yMSB7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLW1yMiB7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLW1yMyB7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLW1yNCB7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLW1yNSB7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLW1yNiB7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLW1yNyB7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLW1yOCB7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLW1yOSB7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLW1yMTAge21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tbXIxNSB7bWFyZ2luLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1tcjIwIHttYXJnaW4tcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1yMjUge21hcmdpbi1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tbXIzMCB7bWFyZ2luLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1tcjM1IHttYXJnaW4tcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLW1yNDAge21hcmdpbi1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tbXI0NSB7bWFyZ2luLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1tcjUwIHttYXJnaW4tcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1yMTAwIHttYXJnaW4tcmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1tcjJwIHttYXJnaW4tcmlnaHQ6MiUhaW1wb3J0YW50O30gLi1tcjNwIHttYXJnaW4tcmlnaHQ6MyUhaW1wb3J0YW50O30gLi1tcjVwIHttYXJnaW4tcmlnaHQ6NSUhaW1wb3J0YW50O30gLi1tcjEwcCB7bWFyZ2luLXJpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLW1yMTVwIHttYXJnaW4tcmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tbXIyMHAge21hcmdpbi1yaWdodDoyMCUhaW1wb3J0YW50O30gLi1tcjI1cCB7bWFyZ2luLXJpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLW10YXV0byB7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDt9IC4tbXQtN3ttYXJnaW4tdG9wOi03cHghaW1wb3J0YW50O30gLi1tdDB7bWFyZ2luLXRvcDowIWltcG9ydGFudDt9IC4tbXQxIHttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7fSAuLW10MiB7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gLi1tdDMge21hcmdpbi10b3A6M3B4IWltcG9ydGFudDt9IC4tbXQ0IHttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7fSAuLW10NSB7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50O30gLi1tdDYge21hcmdpbi10b3A6NnB4IWltcG9ydGFudDt9IC4tbXQ3IHttYXJnaW4tdG9wOjdweCFpbXBvcnRhbnQ7fSAuLW10OCB7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50O30gLi1tdDkge21hcmdpbi10b3A6OXB4IWltcG9ydGFudDt9IC4tbXQxMCB7bWFyZ2luLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tbXQxMSB7bWFyZ2luLXRvcDoxMXB4IWltcG9ydGFudDt9IC4tbXQxMiB7bWFyZ2luLXRvcDoxMnB4IWltcG9ydGFudDt9IC4tbXQxMyB7bWFyZ2luLXRvcDoxM3B4IWltcG9ydGFudDt9IC4tbXQxNCB7bWFyZ2luLXRvcDoxNHB4IWltcG9ydGFudDt9IC4tbXQxNSB7bWFyZ2luLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tbXQyMCB7bWFyZ2luLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tbXQyNSB7bWFyZ2luLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tbXQyNyB7bWFyZ2luLXRvcDoyN3B4IWltcG9ydGFudDt9IC4tbXQzMCB7bWFyZ2luLXRvcDozMHB4IWltcG9ydGFudDt9IC4tbXQzNSB7bWFyZ2luLXRvcDozNXB4IWltcG9ydGFudDt9IC4tbXQ0MCB7bWFyZ2luLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tbXQ1MCB7bWFyZ2luLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tbXQxMTUge21hcmdpbi10b3A6MTE1cHghaW1wb3J0YW50O30gLi1tdDIwMCB7bWFyZ2luLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLW1iYXV0byB7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50O30gLi1tYjEge21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tbWIyIHttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLW1iMyB7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1tYjQge21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tbWI1IHttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLW1iNiB7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1tYjcge21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tbWI4IHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLW1iOSB7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1tYjEwIHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1tYjE1IHttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1tYjIwIHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1tYjI1IHttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1tYjMwIHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1tYjUwIHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50O30gLi10b3AtMTAsIC4tdC0xMCB7dG9wOi0xMHB4IWltcG9ydGFudDt9IC4tdG9wMCwgLi10MCB7dG9wOjBweCFpbXBvcnRhbnQ7fSAuLXRvcDEsIC4tdDEge3RvcDoxcHghaW1wb3J0YW50O30gLi10b3AyLCAuLXQyIHt0b3A6MnB4IWltcG9ydGFudDt9IC4tdG9wMywgLi10MyB7dG9wOjNweCFpbXBvcnRhbnQ7fSAuLXRvcDQsIC4tdDQge3RvcDo0cHghaW1wb3J0YW50O30gLi10b3A1LCAuLXQ1IHt0b3A6NXB4IWltcG9ydGFudDt9IC4tdG9wNiwgLi10NiB7dG9wOjZweCFpbXBvcnRhbnQ7fSAuLXRvcDcsIC4tdDcge3RvcDo3cHghaW1wb3J0YW50O30gLi10b3A4LCAuLXQ4IHt0b3A6OHB4IWltcG9ydGFudDt9IC4tdG9wOSwgLi10OSB7dG9wOjlweCFpbXBvcnRhbnQ7fSAuLXRvcDEwLCAuLXQxMCB7dG9wOjEwcHghaW1wb3J0YW50O30gLi10b3AxNSwgLi10MTUge3RvcDoxNXB4IWltcG9ydGFudDt9IC4tdG9wMjAsIC4tdDIwIHt0b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXRvcDI1LCAuLXQyNXt0b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXRvcDMwLCAuLXQzMCB7dG9wOjMwcHghaW1wb3J0YW50O30gLi10b3AzNSwgLi10MzUge3RvcDozNXB4IWltcG9ydGFudDt9IC4tdG9wNDAsIC4tdDQwIHt0b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXRvcDQ1LCAuLXQ0NSB7dG9wOjQ1cHghaW1wb3J0YW50O30gLi10b3A1MCwgLi10NTAge3RvcDo1MHB4IWltcG9ydGFudDt9IC4tdG9wMTAwLCAuLXQxMDAge3RvcDoxMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDIwMCwgLi10MjAwIHt0b3A6MjAwcHghaW1wb3J0YW50O30gLi10b3A1cCwgLi10NXAge3RvcDo1JSFpbXBvcnRhbnQ7fSAuLXRvcDEwcCwgLi10MTBwIHt0b3A6MTAlIWltcG9ydGFudDt9IC4tdG9wMTVwLCAuLXQxNXAge3RvcDoxNSUhaW1wb3J0YW50O30gLi10b3AyMHAsIC4tdDIwcCB7dG9wOjIwJSFpbXBvcnRhbnQ7fSAuLXRvcDI1cCwgLi10MjVwIHt0b3A6MjUlIWltcG9ydGFudDt9IC4tdG9wNTBwLCAuLXQ1MHAge3RvcDo1MCUhaW1wb3J0YW50O30gLi10b3AxMDBwLCAuLXQxMDBwIHt0b3A6MTAwJSFpbXBvcnRhbnQ7fSAuLWxlZnQwLCAuLWwwIHtsZWZ0OjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxLCAuLWwxIHtsZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLWxlZnQyLCAuLWwyIHtsZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLWxlZnQzLCAuLWwzIHtsZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0LCAuLWw0IHtsZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1LCAuLWw1IHtsZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2LCAuLWw2IHtsZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3LCAuLWw3IHtsZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4LCAuLWw4IHtsZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5LCAuLWw5IHtsZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMCwgLi1sMTAge2xlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNSwgLi1sMTUge2xlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMCwgLi1sMjAge2xlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNSwgLi1sMjV7bGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbGVmdDMwLCAuLWwzMCB7bGVmdDozMHB4IWltcG9ydGFudDt9IC4tbGVmdDM1LCAuLWwzNSB7bGVmdDozNXB4IWltcG9ydGFudDt9IC4tbGVmdDQwLCAuLWw0MCB7bGVmdDo0MHB4IWltcG9ydGFudDt9IC4tbGVmdDQ1LCAuLWw0NSB7bGVmdDo0NXB4IWltcG9ydGFudDt9IC4tbGVmdDUwLCAuLWw1MCB7bGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbGVmdDU1LCAuLWw1NSB7bGVmdDo1NXB4IWltcG9ydGFudDt9IC4tbGVmdDYwLCAuLWw2MCB7bGVmdDo2MHB4IWltcG9ydGFudDt9IC4tbGVmdDY1LCAuLWw2NSB7bGVmdDo2NXB4IWltcG9ydGFudDt9IC4tbGVmdDcwLCAuLWw3MCB7bGVmdDo3MHB4IWltcG9ydGFudDt9IC4tbGVmdDc1LCAuLWw3NSB7bGVmdDo3NXB4IWltcG9ydGFudDt9IC4tbGVmdDgwLCAuLWw4MCB7bGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbGVmdDg1LCAuLWw4NSB7bGVmdDo4NXB4IWltcG9ydGFudDt9IC4tbGVmdDkwLCAuLWw5MCB7bGVmdDo5MHB4IWltcG9ydGFudDt9IC4tbGVmdDk1LCAuLWw5NSB7bGVmdDo5NXB4IWltcG9ydGFudDt9IC4tbGVmdDEwMCwgLi1sMTAwIHtsZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1MCwgLi1sMTUwIHtsZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbGVmdDIwMCwgLi1sMjAwIHtsZWZ0OjIwMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1MCwgLi1sMjUwIHtsZWZ0OjI1MHB4IWltcG9ydGFudDt9IC4tbGVmdDMwMCwgLi1sMzAwIHtsZWZ0OjMwMHB4IWltcG9ydGFudDt9IC4tbGVmdDVwLCAuLWw1cCB7bGVmdDo1JSFpbXBvcnRhbnQ7fSAuLWxlZnQxMHAsIC4tbDEwcCB7bGVmdDoxMCUhaW1wb3J0YW50O30gLi1sZWZ0MTVwLCAuLWwxNXAge2xlZnQ6MTUlIWltcG9ydGFudDt9IC4tbGVmdDIwcCwgLi1sMjBwIHtsZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLWxlZnQyNXAsIC4tbDI1cCB7bGVmdDoyNSUhaW1wb3J0YW50O30gLi1sZWZ0NDBwLCAuLWw0MHAge2xlZnQ6NDAlIWltcG9ydGFudDt9IC4tbGVmdDUwcCwgLi1sNTBwIHtsZWZ0OjUwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxMDBwLCAuLWwxMDBwIHtsZWZ0OjEwMCUhaW1wb3J0YW50O30gLi1yaWdodDAsIC4tcjAge3JpZ2h0OjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MSwgLi1yMSB7cmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcmlnaHQyLCAuLXIyIHtyaWdodDoycHghaW1wb3J0YW50O30gLi1yaWdodDMsIC4tcjMge3JpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NCwgLi1yNCB7cmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1LCAuLXI1IHtyaWdodDo1cHghaW1wb3J0YW50O30gLi1yaWdodDYsIC4tcjYge3JpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NywgLi1yNyB7cmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcmlnaHQ4LCAuLXI4IHtyaWdodDo4cHghaW1wb3J0YW50O30gLi1yaWdodDksIC4tcjkge3JpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAsIC4tcjEwIHtyaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNSwgLi1yMTUge3JpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1yaWdodDIwLCAuLXIyMCB7cmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUsIC4tcjI1IHtyaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcmlnaHQzMCwgLi1yMzAge3JpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1yaWdodDM1LCAuLXIzNSB7cmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDAsIC4tcjQwIHtyaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ0NSwgLi1yNDUge3JpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1yaWdodDUwLCAuLXI1MCB7cmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTUsIC4tcjU1IHtyaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2MCwgLi1yNjAge3JpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1yaWdodDY1LCAuLXI2NSB7cmlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzAsIC4tcjcwIHtyaWdodDo3MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ3NSwgLi1yNzUge3JpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1yaWdodDgwLCAuLXI4MCB7cmlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODUsIC4tcjg1IHtyaWdodDo4NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ5MCwgLi1yOTAge3JpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1yaWdodDk1LCAuLXI5NSB7cmlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwLCAuLXIxMDAge3JpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNTAsIC4tcjE1MCB7cmlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1yaWdodDIwMCwgLi1yMjAwIHtyaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUwLCAuLXIyNTAge3JpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1cCwgLi1yNXAge3JpZ2h0OjUlIWltcG9ydGFudDt9IC4tcmlnaHQxMHAsIC4tcjEwcCB7cmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tcmlnaHQxNXAsIC4tcjE1cCB7cmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tcmlnaHQyMHAsIC4tcjIwcCB7cmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tcmlnaHQyNXAsIC4tcjI1cCB7cmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tcmlnaHQ1MHAsIC4tcjUwcCB7cmlnaHQ6NTAlIWltcG9ydGFudDt9IC4tcmlnaHQxMDBwLCAuLXIxMDBwIHtyaWdodDoxMDAlIWltcG9ydGFudDt9IC4tei1pbmRleDk5e3otaW5kZXg6OTkhaW1wb3J0YW50O30gLi16LWluZGV4MTAwe3otaW5kZXg6MTAwIWltcG9ydGFudDt9IC4tei1pbmRleDEwMXt6LWluZGV4OjEwMSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDAxLCAuemluZGV4MTAwMXsgei1pbmRleDoxMDAxIWltcG9ydGFudDsgfSAuLXotaW5kZXgzNjAwMSwgLnppbmRleDM2MDAxeyB6LWluZGV4OjM2MDAxIWltcG9ydGFudDsgfSAuLW5vLWJvcmRlci1zcGFjaW5neyBib3JkZXItc3BhY2luZzowIWltcG9ydGFudDsgfSAuLXRhYmxleyBjZWxscGFkZGluZzowIWltcG9ydGFudDsgY2VsbHNwYWNpbmc6MCFpbXBvcnRhbnQ7IGJvcmRlcjowIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdGhlYWQgdGggeyBiYWNrZ3JvdW5kOiNjM2Q5ZmYhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0ciB0aCwgdGFibGUuLXRhYmxlIHRyIHRkIHsgcGFkZGluZzo0cHggMTBweCA0cHggNXB4IWltcG9ydGFudDsgfSB0ci4tYm9yZGVyLWJvdHRvbSB0ZCwgdHIuLWJvcmRlci1ib3R0b20gdGggeyBib3JkZXItYm90dG9tOjFwdCBzb2xpZCBibGFjayFpbXBvcnRhbnQ7IH0gLXdoaXRlLXNwYWNlLW5vd3JhcCB7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt9IC4tY3Vyc29yLWF1dG8geyBjdXJzb3I6YXV0bzsgfSAuLWN1cnNvci1kZWZhdWx0IHsgY3Vyc29yOmRlZmF1bHQ7IH0gLi1jdXJzb3Itbm9uZSB7IGN1cnNvcjpub25lOyB9IC4tY3Vyc29yLWNvbnRleHQtbWVudSB7IGN1cnNvcjpjb250ZXh0LW1lbnU7IH0gLi1jdXJzb3ItaGVscCB7IGN1cnNvcjpoZWxwOyB9IC4tY3Vyc29yLXBvaW50ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuLWN1cnNvci1wcm9ncmVzcyB7IGN1cnNvcjpwcm9ncmVzczsgfSAuLWN1cnNvci13YWl0IHsgY3Vyc29yOndhaXQ7IH0gLi1jdXJzb3ItY2VsbCB7IGN1cnNvcjpjZWxsOyB9IC4tY3Vyc29yLWNyb3NzaGFpciB7IGN1cnNvcjpjcm9zc2hhaXI7IH0gLi1jdXJzb3ItdGV4dCB7IGN1cnNvcjp0ZXh0OyB9IC4tY3Vyc29yLXZlcnRpY2FsLXRleHQgeyBjdXJzb3I6dmVydGljYWwtdGV4dDsgfSAuLWN1cnNvci1hbGlhcyB7IGN1cnNvcjphbGlhczsgfSAuLWN1cnNvci1jb3B5IHsgY3Vyc29yOmNvcHk7IH0gLi1jdXJzb3ItbW92ZSB7IGN1cnNvcjptb3ZlOyB9IC4tY3Vyc29yLW5vLWRyb3AgeyBjdXJzb3I6bm8tZHJvcDsgfSAuLWN1cnNvci1ub3QtYWxsb3dlZCB7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuLWN1cnNvci1hbGwtc2Nyb2xsIHsgY3Vyc29yOmFsbC1zY3JvbGw7IH0gLi1jdXJzb3ItY29sLXJlc2l6ZSB7IGN1cnNvcjpjb2wtcmVzaXplOyB9IC4tY3Vyc29yLXJvdy1yZXNpemUgeyBjdXJzb3I6cm93LXJlc2l6ZTsgfSAuLWN1cnNvci1uLXJlc2l6ZSB7IGN1cnNvcjpuLXJlc2l6ZTsgfSAuLWN1cnNvci1lLXJlc2l6ZSB7IGN1cnNvcjplLXJlc2l6ZTsgfSAuLWN1cnNvci1zLXJlc2l6ZSB7IGN1cnNvcjpzLXJlc2l6ZTsgfSAuLWN1cnNvci13LXJlc2l6ZSB7IGN1cnNvcjp3LXJlc2l6ZTsgfSAuLWN1cnNvci1ucy1yZXNpemUgeyBjdXJzb3I6bnMtcmVzaXplOyB9IC4tY3Vyc29yLWV3LXJlc2l6ZSB7IGN1cnNvcjpldy1yZXNpemU7IH0gLi1jdXJzb3ItbmUtcmVzaXplIHsgY3Vyc29yOm5lLXJlc2l6ZTsgfSAuLWN1cnNvci1udy1yZXNpemUgeyBjdXJzb3I6bnctcmVzaXplOyB9IC4tY3Vyc29yLXNlLXJlc2l6ZSB7IGN1cnNvcjpzZS1yZXNpemU7IH0gLi1jdXJzb3Itc3ctcmVzaXplIHsgY3Vyc29yOnN3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZXN3LXJlc2l6ZSB7IGN1cnNvcjpuZXN3LXJlc2l6ZTsgfSAuLWN1cnNvci1ud3NlLXJlc2l6ZSB7IGN1cnNvcjpud3NlLXJlc2l6ZTsgfSAuLWZvbnQtc2l6ZTAsIC4tZnMweyBmb250LXNpemU6MCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEsIC4tZnMxeyBmb250LXNpemU6MXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMiwgLi1mczJ7IGZvbnQtc2l6ZToycHghaW1wb3J0YW50O30gLi1mb250LXNpemUzLCAuLWZzM3sgZm9udC1zaXplOjNweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQsIC4tZnM0eyBmb250LXNpemU6NHB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNSwgLi1mczV7IGZvbnQtc2l6ZTo1cHghaW1wb3J0YW50O30gLi1mb250LXNpemU2LCAuLWZzNnsgZm9udC1zaXplOjZweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTcsIC4tZnM3eyBmb250LXNpemU6N3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplOCwgLi1mczh7IGZvbnQtc2l6ZTowLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplOSwgLi1mczl7IGZvbnQtc2l6ZTowLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMCwgLi1mczEweyBmb250LXNpemU6MC42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTEsIC4tZnMxMXsgZm9udC1zaXplOjAuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEyLCAuLWZzMTJ7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEzLCAuLWZzMTN7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNCwgLi1mczE0eyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTUsIC4tZnMxNXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE2LCAuLWZzMTZ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE3LCAuLWZzMTd7IGZvbnQtc2l6ZToxLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOCwgLi1mczE4eyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTksIC4tZnMxOXsgZm9udC1zaXplOjEuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIwLCAuLWZzMjB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIxLCAuLWZzMjF7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMiwgLi1mczIyeyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjMsIC4tZnMyM3sgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI0LCAuLWZzMjR7IGZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjUsIC4tZnMyNXsgZm9udC1zaXplOjEuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI2LCAuLWZzMjZ7IGZvbnQtc2l6ZToxLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNywgLi1mczI3eyBmb250LXNpemU6MS42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjgsIC4tZnMyOHsgZm9udC1zaXplOjEuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjksIC4tZnMyOXsgZm9udC1zaXplOjEuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMwLCAuLWZzMzB7IGZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMSwgLi1mczMxeyBmb250LXNpemU6MS45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzIsIC4tZnMzMnsgZm9udC1zaXplOjJyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzMsIC4tZnMzM3sgZm9udC1zaXplOjIuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM0LCAuLWZzMzR7IGZvbnQtc2l6ZToyLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNSwgLi1mczM1eyBmb250LXNpemU6Mi4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzYsIC4tZnMzNnsgZm9udC1zaXplOjIuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzcsIC4tZnMzN3sgZm9udC1zaXplOjIuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM4LCAuLWZzMzh7IGZvbnQtc2l6ZToyLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOSwgLi1mczM5eyBmb250LXNpemU6Mi40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplNDAsIC4tZnM0MHsgZm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50O30gLi1yZWQtbGluZS1oMzV7IGhlaWdodDozNXB4OyBtYXJnaW4tYm90dG9tOi0zNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0yNXB4OyB9ICNicmVhZGNydW1ic3sgZm9udC1zaXplOjFyZW0gOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBjb2xvcjojNzU3NTc1OyB9IC5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZTowLjlyZW07IGNvbG9yOiMyMjIyMjI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEuMjVyZW07IH0gI2JyZWFkY3J1bWJzIGF7IGNvbG9yOiM3NTc1NzU7IH0gI2NhcnByb29mX21haW4uY2FycHJvb2ZfbWFpbnsgd2lkdGg6MzQwcHg7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MjBweDsgZGlzcGxheTpub25lOyB6LWluZGV4Ojk5OTk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmZpeGVkOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgbGVmdDo1MCU7IHRvcDo1MCU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mQ2xvc2VCdXR0b257IGZsb2F0OnJpZ2h0OyB0b3A6MDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IHsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZmZmOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUx7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTCBMSSB7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCA1cHggMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfZmllbGR7IG1hcmdpbi1ib3R0b206N3B4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1lc3NhZ2V7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmctYm90dG9tOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2lubmVyUGFnZURpdnsgZGlzcGxheTp0YWJsZTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfbGFiZWx7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojNjY2NjY2OyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDoyNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6MTAwJTsgY29sb3I6Izc5Nzk3OTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzFiMWIxYiAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6NDdweDsgbWFyZ2luLXJpZ2h0OjVweDsgY29sb3I6Izc5Nzk3OTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMxYjFiMWI7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFIHsgYm9yZGVyOjFweCBzb2xpZCAjQzgzRjQxOyBtYXJnaW46MTBweCAxMHB4IDEwcHggMDsgcGFkZGluZzozcHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsb2F0OnJpZ2h0OyB3aWR0aDo2MHB4OyBjb2xvcjojZmZmOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXRvcC1jb2xvcjojQzgzRjQxOyBib3JkZXItcmlnaHQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWJvdHRvbS1jb2xvcjojQzgzRjQxOyBib3JkZXItbGVmdC1jb2xvcjojQzgzRjQxOyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgYm9yZGVyLXRvcC1zdHlsZTpzb2xpZDsgYm9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTpzb2xpZDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDsgYm94LXNoYWRvdzowcHggMnB4IDNweCAjNjY2OyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJhY2tncm91bmQtYXR0YWNobWVudDpzY3JvbGw7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IGJhY2tncm91bmQtc2l6ZTphdXRvOyBiYWNrZ3JvdW5kLW9yaWdpbjpwYWRkaW5nLWJveDsgYmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6cmdiKDIwMCwgNjMsIDY1KTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRUhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojQzgzRjQxOyBmb250LXdlaWdodDpib2xkOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b24geyBmb250LXNpemU6MS4ycmVtOyBmbG9hdDpyaWdodDsgbWFyZ2luOjI1cHggMCAwOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjFyZW07IHBhZGRpbmc6MTBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgLTFweCAxcHggIzY0Nzk5ZTsgYmFja2dyb3VuZDojYmIwMDAzOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI0M4M0Y0MSAwJSwgI2JiMDAwMyAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCUgMCUsIDAlIDEwMCUsIGZyb20oI0M4M0Y0MSksIHRvKCNiYjAwMDMpKTsgYm9yZGVyOjFweCBzb2xpZCAjNWM2ZjkxOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiNDODNGNDE7IGN1cnNvcjpwb2ludGVyOyB9ICNjYXJwcm9vZl9kaWFsb2ctb3ZlcmxheSB7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgei1pbmRleDo5OTk4OyBkaXNwbGF5Om5vbmU7IH0gLmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyBtYXJnaW4tbGVmdDotMTVweDsgaGVpZ2h0OjU2cHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLXRvcDotMTBweDsgZmxvYXQ6bGVmdDsgfSAucHJlUHJvY2Vzc29ySHRtbENhclBvb2ZBUElyZXBvcnQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3NvckNhclBvb2ZBUElyZXBvcnRWNS5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29ySHRtbENhclByb29mRGVmYXVsdC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgd2lkdGg6MTA2cHg7IG1hcmdpbjoycHggNXB4IDAgMDsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiBpbWcgeyB3aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MCAwIDE1cHggMDsgfSAjYXNQb3BVcHsgYmFja2dyb3VuZDojZmZmZmZmOyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4OyBjb2xvcjojMWIxYjFiOyB6LWluZGV4OjEwMDAwMjE7IH0gI2FzUG9wVXAgLnBvcHVwLXBvbGljeSB7IG1pbi1oZWlnaHQ6MTAwcHg7IG1heC1oZWlnaHQ6MTUwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAucG9wdXAtcG9saWN5IGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyB9ICNhc1BvcFVwIC5hc1RpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDo7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjYXNQb3BVcCAuYnRuRXhwbGljaXR7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3MHB4OyB3aWR0aDoxMDBweDsgfSAjYXNQb3BVcCAuYnRuSW1wbGljaXR7IGZsb2F0OnJpZ2h0OyB3aWR0aDoxMDBweDsgcGFkZGluZy1yaWdodDo3MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50LnJldmVhbC1tb2RhbCBzcGFuLmpxVHJhbnNmb3JtUmFkaW9XcmFwcGVyeyBwYWRkaW5nOjA7IG1hcmdpbjo2cHggNHB4IDA7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnBvcHVwLXBvbGljeSB7IG1heC1oZWlnaHQ6MTcwcHg7IG92ZXJmbG93LXk6YXV0bzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXNQSVRpdGxleyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1ib3R0b206MDsgcGFkZGluZy1ib3R0b206MTBweDsgZGlzcGxheTpibG9jazsgfSAjYXNQdXJjaGFzZUludGVudCAudmlUZXh0eyBjbGVhcjpib3RoOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnN7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzo1cHg7IG1hcmdpbi1ib3R0b206M3B4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGkgeyBwYWRkaW5nOjJweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpeyBjbGVhcjpib3RoOyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCBsaSBsYWJlbHsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmJ1dHRvbkRlZmF1bHRDb2xvciB7IG1hcmdpbjowIGF1dG8gNXB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyB7IGxpc3Qtc3R5bGU6aW5zaWRlIG5vbmUgbm9uZTsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNiYmJiYmI7IGJvcmRlci13aWR0aDowIDFweCAxcHggMDsgcGFkZGluZzoxNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc25vIHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDo5MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc3sgcGFkZGluZy1sZWZ0OjkwcHg7IHdpZHRoOjcwcHg7IH0gLmNvbnNlbnQuZGlzY2xhaW1lciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IGFsaWduLXNlbGY6Y2VudGVyOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGN1cnNvcjpoZWxwOyB9IC5jdXN0b201X2xlZnQsIC5jdXN0b20yNV9sZWZ0LCAuY3VzdG9tMzVfbGVmdCwgLmN1c3RvbTQ1X2xlZnQsIC5jdGFfcHJpY2UsLmN0YV9jcmVkaXQsLmN0YV90ZXN0RHJpdmUsLmN0YV9ldmFsLC5jdGFfc3ZjcHJvbW8sLmN0YV9zZXJ2aWNlLC5jdGFfcGFydHMsLmN0YV90aXJlcyB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NjFweDsgcGFkZGluZzowIDE1cHggMCA2MHB4OyBkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6IzE5MTkxOTsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYm94MjUucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcDsgYmFja2dyb3VuZC1zaXplOjU4OXB4IDU1MHB4OyB9IC5jdGFfcHJpY2UuYWx0OmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciwgLmN0YV9ldmFsLmFsdDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciwgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIsIC5jdGFfdGlyZXMuYWx0OmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGNvbG9yOiMxOTE5MTk7IH0gLmN1c3RvbTU1X2xlZnQsIC5jdXN0b20yNTVfbGVmdCwgLmN1c3RvbTM1NV9sZWZ0LCAuY3VzdG9tNDU1X2xlZnQsIC5jdGFfcHJpY2UuYWx0LC5jdGFfcHJpY2U6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgY29sb3I6I0ZGRkZGRjsgfSAuY3RhX3ByaWNlLCAuY3RhX3ByaWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyB9IC5jdGFfcHJpY2UuYWx0LCAuY3RhX3ByaWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggMDsgfSAuY3RhX2NyZWRpdCwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02N3B4OyB9IC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNjdweDsgfSAuY3RhX3Rlc3REcml2ZSwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0xMzVweDsgfSAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTEzNXB4OyB9IC5jdGFfZXZhbCwgLmN0YV9ldmFsLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjA0cHg7IH0gLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTIwNHB4OyB9IC5jdGFfc3ZjcHJvbW8sIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yNzNweDsgfSAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yNzNweDsgfSAuY3RhX3NlcnZpY2UsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM0MXB4OyB9IC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0zNDFweDsgfSAuY3RhX3BhcnRzLCAuY3RhX3BhcnRzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDEwcHg7IH0gLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDEwcHg7IH0gLmN0YV90aXJlcywgLmN0YV90aXJlcy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQ4MnB4OyB9IC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQ4MnB4OyB9IC5jdGFfc2VydmljZS5oaWRlX3RleHQsIC5jdGFfcGFydHMuaGlkZV90ZXh0LCAuY3RhX3RpcmVzLmhpZGVfdGV4dCwgLmN0YV9wcmljZS5oaWRlX3RleHQsIC5jdGFfY3JlZGl0LmhpZGVfdGV4dCwgLmN0YV90ZXN0RHJpdmUuaGlkZV90ZXh0LCAuY3RhX2V2YWwuaGlkZV90ZXh0LCAuY3RhX3N2Y3Byb21vLmhpZGVfdGV4dCB7IHRleHQtaW5kZW50Oi0yMDAwZW07IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuaGVhZGluZ0NhcHNPbiBoMSwgYm9keS5oZWFkaW5nQ2Fwc09uIGgyLCBib2R5LmhlYWRpbmdDYXBzT24gaDMsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgyLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDMtYWx0LCBib2R5LmhlYWRpbmdDYXBzT24uVXNlZFNycDIgLmNhckJhc2ljcyAuY2FyVGl0bGUgLmRpdkNpdHksIGJvZHkuaGVhZGluZ0NhcHNPbiAudi1jYXJkIC5oZWFkZXItc2VjdGlvbiAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gLmxvZ29hcmVhIC5hZGRyZXNzIC5hZHIgc3BhbjpmaXJzdC1jaGlsZCwgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLnZpdiwgYm9keS5oZWFkaW5nQ2Fwc09uIC5zZWFyY2gtbGlua3Mtd3JhcHBlciAuc2VhcmNoLWxpbmstdGl0bGUsIGJvZHkuaGVhZGluZ0NhcHNPbiAucG9wdXBpemVyQm9keSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxLCBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwsIGJvZHkuaGVhZGluZ0NhcHNPbiAuZm9ybUhlYWRpbmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY29tcGFyZS12ZWhpY2xlcy1mb3JtLXRhYmxlIC50cmltLXByZXZpZXcgLmNvbXBhcmUtdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UgIWltcG9ydGFudDsgfSBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwgeyBmb250LXNpemU6MS4yNXJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaGVhZGluZ0NhcHNPbiAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyLmRlZmF1bHQgeyBmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnQ7IH0gfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyIHNwYW4uaWNvbiwgLmRpdkNlcnRpZmljYXRpb25CbG9jayBzcGFuLmgyLWFsdCBzcGFuLmljb24geyBtaW4td2lkdGg6MjBweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgZm9udC1zaXplOjEuM2VtOyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtc3VidGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM3Nzc7IGZvbnQtc2l6ZToxZW07IG1hcmdpbi10b3A6NXB4OyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuSW5uZXJCb3hMYXllci5kaXZDZXJ0aWZpY2F0aW9uQmxvY2suaXNPbmVSb3cgaW1nIHsgbWF4LXdpZHRoOmF1dG8gIWltcG9ydGFudDsgfSAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCB7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjEwcHggIWltcG9ydGFudDsgfSAuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vOmhvdmVyeyBvcGFjaXR5OjAuNzU7IH0gLnNlYXJjaF9jZXJ0X2dlbmVyaWN7IGhlaWdodDo0NHB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTBweDsgfSAjbmV3Q2FySW5Vc2VkUGFnZXsgbWFyZ2luLXRvcDotMnB4OyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X3RvcHsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4MF9taWR7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZycpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODhfZm9vdGVyX3FzeyBiYWNrZ3JvdW5kIDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlX3NjcmF0Y2hQcmljZXsgd2lkdGg6MTEwcHg7IGhlaWdodDozNXB4OyBmbG9hdDpyaWdodDsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6LTgzcHg7IGRpc3BsYXk6bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZV90aXRsZXsgZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MC45MzhyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4sIHVsI2NyZWRpdF9mdWVsdHlwZSwgdWwjY3JlZGl0X2JvZHlUeXBlcyB7IGxpc3Qtc3R5bGU6bm9uZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MzMlOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwsIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWx7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gZGl2LCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBkaXYsIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBkaXZ7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMWIxYjFiOyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCA+IHNwYW4sIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBsYWJlbCA+IHNwYW57IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi10b3A6MHB4OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWx7IGZsb2F0OmxlZnQ7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBkaXYubGFiZWx7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjMycHg7IG1hcmdpbi1yaWdodDo2cHg7IHdpZHRoOjIwMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dDI1IHNwYW4sIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQgc3BhbnsgY29sb3I6IzFiMWIxYjsgfSAudXNwLWNvbG9yIHsgY29sb3I6IzFiMWIxYjsgfSAubXljYXJvdXNlbF90ZHsgZGlzcGxheTpibG9jazsgd2lkdGg6NTYwcHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLWxlZnQ6MzBweDsgbWFyZ2luLXRvcDoxMHB4OyB9IC52ZWhpY2xlQ2Fyb3VzZWx7IHdpZHRoOjE5MHB4OyB9IC5kZXRhaWxzX2JveCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkRXggeyBiYWNrZ3JvdW5kOiNiNWI1YjQ7IH0gI2V4dENvbG9yU2VsZWN0LmZpeGVkV2lkdGggLCAjaW50Q29sb3JTZWxlY3QuZml4ZWRXaWR0aCB7IHdpZHRoOjIzMHB4OyB9IC5jb2xvckNob2ljZXsgaGVpZ2h0OjMxcHg7IHdpZHRoOjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWluZGVudDotMjAwMGVtOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IG1hcmdpbjoycHg7IGNvbG9yOiNmZmY7IH0gLmNvbG9yQ2hvaWNlLmNob3NlbiB7IHRleHQtaW5kZW50OjA7IH0gLmNvbG9yQ2hvaWNlLnRhbiB7IGJhY2tncm91bmQtY29sb3I6I2QyYjQ4YzsgfSAuY29sb3JDaG9pY2UuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmdvbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNiMjk2MDA7IH0gLmNvbG9yQ2hvaWNlLmJyb3duIHsgYmFja2dyb3VuZC1jb2xvcjojNjYzMzBlOyB9IC5jb2xvckNob2ljZS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IzAwOTkwMDsgfSAuY29sb3JDaG9pY2UuZ3JheSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2UuZ3JleSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2Uub3JhbmdlIHsgYmFja2dyb3VuZC1jb2xvcjojZTY5NDAwOyB9IC5jb2xvckNob2ljZS5zaWx2ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjMGMwYzA7IGNvbG9yOiMxYjFiMWI7IH0gLmNvbG9yQ2hvaWNlLm1hdXZlIHsgYmFja2dyb3VuZC1jb2xvcjojZDQ3M2Q0OyB9IC5jb2xvckNob2ljZS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjYzAwMDA7IH0gLmNvbG9yQ2hvaWNlLndoaXRlIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOyBjb2xvcjojMWIxYjFiOyB9IC5jb2xvckNob2ljZS55ZWxsb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMGMwMDA7IGNvbG9yOiMxYjFiMWI7IH0gLmNvbG9yQ2hvaWNlLmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxOTE5YzQ7IH0gLmNvbG9yQ2hvaWNlLmNvcHBlciB7IGJhY2tncm91bmQtY29sb3I6I0FGNDc0NDsgfSAuY29sb3JDaG9pY2UucHVycGxlIHsgYmFja2dyb3VuZC1jb2xvcjojNTMxNUIyOyB9IC5saWdodC1ncmF5IHsgYmFja2dyb3VuZC1jb2xvcjojNGI0YzRjOyBjb2xvcjojMWIxYjFiO30gYS5jb2xvckNob2ljZSB7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IHRyLmJvcmRlcl9ib3R0b21fbGluZSB0ZCwgdHIuYm9yZGVyX2JvdHRvbV9saW5lIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2s7IH0gLmJvcmRlcl9ib3h7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyB9IC5ob21lcGFnZSAuYm9yZGVyX2JveHsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAjaG9tZV9zb2NpYWxUaW1lbGluZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3IpOyB9ICNmb290ZXJXcmFwcGVyeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgY2xlYXI6Ym90aDsgcGFkZGluZy10b3A6MTVweDsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBjb2xvcjojNzA3MDcwOyBiYWNrZ3JvdW5kLWNvbG9yOiMxYjFiMWI7IGJhY2tncm91bmQtY29sb3I6I2ZhZmFmYTsgfSAjZm9vdGVyV3JhcHBlciBzdmcgeyBmaWxsOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmN1c3RvbWZvcm1fc3VibWl0eyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuc2VlT3B0aW9uc3sgZGlzcGxheTpub25lOyB9IC5zdHJpa2UtcHJpY2UsIC5zdHJpa2UtcHJpY2UtYmxhY2ssIC5zdHJpa2UtcHJpY2Utd2hpdGUgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDAlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7IHdpZHRoOjEwMCU7IH0gLnN0cmlrZS1wcmljZS4tdGhpbjo6YmVmb3JleyBoZWlnaHQ6MXB4OyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjMDAwOyB9IC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgfSAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgd2hpdGU7IH0gLmJsdXItcHJpY2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgaGVpZ2h0PScwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J3N2Z0JsdXInIHg9Jy01JScgeT0nLTUlJyB3aWR0aD0nMTEwJScgaGVpZ2h0PScxMTAlJz48ZmVHYXVzc2lhbkJsdXIgaW49J1NvdXJjZUdyYXBoaWMnIHN0ZERldmlhdGlvbj0nNScvPiNzdmdCbHVyIik7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmx1cihQaXhlbFJhZGl1cz0nNScpOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5sZWZ0X2JveHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgbWFyZ2luLXRvcDoxMHB4IDsgcGFkZGluZzoxMHB4IDAgMTBweDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnLC5jdXN0b21mb3JtX3N1Ym1pdCwuc3VibWl0eyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IC5idG4tZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyB9IC5idG4tZGVmYXVsdCwgLnN1Ym1pdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdCB7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnRuLXNtLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLXNtLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLXNtIHsgZm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAxMHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyB9IC5idG4tbGcsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tbGcsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tbGcgeyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjEycHggNTBweDsgYm9yZGVyLXJhZGl1czo2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kZWZhdWx0OmZvY3VzLCAuY3VzdG9tZm9ybV9zdWJtaXQ6Zm9jdXMsIC5idG4tc206Zm9jdXMsIC5idG4tbGc6Zm9jdXMsICNleGl0X3BvcHVwX3llczpmb2N1cywgI2V4aXRfcG9wdXBfbm86Zm9jdXMgeyBvdXRsaW5lOm5vbmU7IH0gLmJ0bi1kZWZhdWx0LmFwcGx5LWNyZWRpdCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHdvcmQtd3JhcDpub3JtYWw7IHdpZHRoOjEwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozcHggNXB4OyBmb250LXNpemU6MC43NXJlbSA7IH0gLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6MC44cmVtOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB0ZXh0LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSB7IGJvcmRlci1jb2xvcjojMWIxYjFiOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciB7IGJvcmRlci1jb2xvcjojZTMxNzNlOyB9IC5idG4tZGVmYXVsdDpob3ZlciwgLmN1c3RvbWZvcm1fc3VibWl0OmhvdmVyLCAuYnRuLXNtOmhvdmVyLCAuYnRuLWxnOmhvdmVyLCAuc3VibWl0OmhvdmVyLCAjc2xpZGVpdCBpbnB1dC5zZW5kOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvciwgLmJ0bi1zbS5wcm9tb2NvbG9yLCAuYnRuLWxnLnByb21vY29sb3IgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IGJvcmRlcjoxcHggc29saWQgI2UzMTczZTsgY29sb3I6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1zbS5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLWxnLnByb21vY29sb3I6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6I2UzMTczZTsgfSAuYnRuLWRlZmF1bHQuYmxhY2ssIC5idG4tc20uYmxhY2ssIC5idG4tbGcuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yIDojMDAwMDAwOyBib3JkZXIgOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvciA6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1zbS5ibGFjay53aXRoYm9yZGVyLCAuYnRuLWxnLmJsYWNrLndpdGhib3JkZXIgeyBib3JkZXIgOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjazpob3ZlciwgLmJ0bi1zbS5ibGFjazpob3ZlciwgLmJ0bi1sZy5ibGFjazpob3ZlciB7IGJhY2tncm91bmQtY29sb3IgOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vLCAuYnRuLXNtLm5vLCAuYnRuLWxnLm5vIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICM1NTU7IGNvbG9yOiMwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vOmhvdmVyLCAuYnRuLXNtLm5vOmhvdmVyLCAuYnRuLWxnLm5vOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGJvcmRlcjoxcHggc29saWQgIzY2NjY2NjsgY29sb3I6I0ZGRkZGRjsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0LCAuYnRuLXNtLmludmVydCwgLmJ0bi1sZy5pbnZlcnQsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdCwgLmJ0bi1zbS5pbnZlcnQuZmxhdCwgLmJ0bi1sZy5pbnZlcnQuZmxhdCB7IGJhY2tncm91bmQ6IHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0OmhvdmVyLCAuYnRuLXNtLmludmVydDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQ6aG92ZXIsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQuZmxhdDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5yZWQsIC5idG4tc20ucmVkLCAuYnRuLWxnLnJlZCB7IGJhY2tncm91bmQ6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2Y1MWExYSFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC5yZWQ6aG92ZXIsIC5idG4tc20ucmVkOmhvdmVyLCAuYnRuLWxnLnJlZDpob3ZlcnsgYmFja2dyb3VuZDojMzMzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LndoaXRlLCAuYnRuLXNtLndoaXRlLCAuYnRuLWxnLndoaXRlIHsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiMxYjFiMWI7IGJveC1zaGFkb3c6bm9uZTsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgY29sdW1uLWdhcDoxLjVyZW07IHJvdy1nYXA6MC41cmVtOyBncmlkLWF1dG8tY29sdW1uczowLjVmcjsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gI21pbmlmb3JtIC5kZWFsZXItc2VsZWN0LXdyYXBwZXJ7IG1hcmdpbi1sZWZ0OjIwcHg7IG1hcmdpbi1yaWdodDoyMHB4OyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0biB7IHRleHQtd3JhcDphdXRvOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoxMHB4OyB0cmFuc2l0aW9uOjAuMnMgZWFzZS1pbi1vdXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG4uZm9jdXNlZCwgLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpOyB9IC5hcHBseS1jcmVkaXQgeyAtbW96LWJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjZjAyNDRiOyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjZjAyNDRiOyBib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2YwMjQ0YjsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICNmZjRhNzEpLCBjb2xvci1zdG9wKDEsICNlMzE3M2UpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjRhNzEgNSUsICNlMzE3M2UgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmY0YTcxIDUlLCAjZTMxNzNlIDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjRhNzEgNSUsICNlMzE3M2UgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjRhNzEgNSUsICNlMzE3M2UgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmNGE3MSA1JSwgI2UzMTczZSAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojZmY0YTcxOyBib3JkZXI6MXB4IHNvbGlkICNmZDMxNTg7IH0gLmFwcGx5LWNyZWRpdDpob3ZlciB7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjZmY0YTcxKSwgY29sb3Itc3RvcCgxLCAjZTMxNzNlKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZTMxNzNlIDUlLCAjZmY0YTcxIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2UzMTczZSA1JSwgI2ZmNGE3MSAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjZTMxNzNlIDUlLCAjZmY0YTcxIDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZTMxNzNlIDUlLCAjZmY0YTcxIDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlMzE3M2UgNSUsICNmZjRhNzEgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6I2ZmNGE3MTsgfSAub2ZmZXItYnRueyBjb2xvcjp2YXIoLS1idG4tdHh0LWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvciwgI2ZmZikpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1iZy1jb2wsIHZhcigtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yLCB2YXIoLS1wcm9tby1jb2xvcikpKTsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgKnsgYm94LXNpemluZzpib3JkZXItYm94OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE57IHRleHQtYWxpZ246bGVmdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLnByb21vQlROOjphZnRlcnsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybycsIHNlcmlmOyBmb250LXdlaWdodDo5MDA7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMsIC51c2VkLWRldGFpbHMsIC5uZXctZGV0YWlscykgLnByb21vQlROID4gc3Bhbi5mYXsgZGlzcGxheTpmbGV4OyB3aWR0aDoxLjVlbTsgaGVpZ2h0OjEuNWVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGNvbG9yOmluaGVyaXQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5jb21wbGV0ZWQucHJvbW9CVE46OmFmdGVyeyBjb250ZW50OiJcZjAwYyI7IGNvbG9yOmluaGVyaXQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5jb21wbGV0ZWQucHJvbW9CVE4gc3Bhbi5mYXsgY29sb3I6IzAwMDsgfSAuZ3JheWJveCAucHJvbW9CVE4sIC51c2VkVmRwQWN0aW9ucyAucHJvbW9CVE57IGJvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgdGV4dC1hbGlnbjp1bnNldDsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC5ncmF5Ym94IC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjLCAubmV3VmRwQWN0aW9ucyAuYnV0dG9uX3VuZGVyIC5wcm9tb0JUTiBzdGFjay1sYyB7IGZsZXgtZ3JvdzoxICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7IH0gLm11bHRpZm9ybV9lbWJlZGRlZF9mb290ZXIgLi1mb3JjZWQtLWEtY2ZhOjphZnRlciB7IGZsZXg6MCAxOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkeyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbjphdXRvOyB3aWR0aDo5NSU7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1kZWZhdWx0IHNwYW4uZmF7IGRpc3BsYXk6bm9uZTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWljb25lZCBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IH0gLmdyYXlib3ggLnByb21vQlROIHNwYW4sIC51c2VkVmRwQWN0aW9ucyAucHJvbW9CVE4gc3BhbnsgbWFyZ2luLWxlZnQ6dW5zZXQ7IGxpbmUtaGVpZ2h0OjEuNWVtOyB9IC5wcm9tb0JUTi5jaGV2cm9uLXJpZ2h0IC5jdGEtbGFiZWwgeyBwYWRkaW5nLXJpZ2h0OjEuNXJlbTsgfSAucHJvbW9CVE4sIC5wcm9tb0JUTiBhLCAuYnJvY2h1cmVCdG57IGJhY2tncm91bmQ6I2UzMTczZTsgY29sb3I6I2ZmZmZmZjsgdGV4dC1zaGFkb3c6bm9uZTsgYW5pbWF0aW9uOmFsbCAzczsgYm9yZGVyLWNvbG9yOiNlMzE3M2U7IH0gLnByb21vQlROOmhvdmVyLCAucHJvbW9CVE4gYTpob3ZlcnsgYmFja2dyb3VuZDojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICNlMzE3M2U7IH0gLnByb21vQlROOmhvdmVyID4gKiA+IC5mYSwgLnByb21vQlROIGE6aG92ZXIgPiAqID4gLmZhIHsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojZTMxNzNlOyB9IC5wcm9tb0JUTi5ncm93OmhvdmVyIHsgdHJhbnNmb3JtOnNjYWxlKDEuMSk7IH0gLnByb21vQlROLmdyb3c6aG92ZXIsIC5wcm9tb0JUTi5ncm93OmhvdmVyID4gKiA+IC5mYSwgLnByb21vQlROLmdyb3cgYTpob3ZlciA+ICogPiAuZmEgeyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB0cmFuc2l0aW9uOjFzIGFsbCBlYXNlOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6YmVmb3JlIHsgY29udGVudCA6IiAiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHotaW5kZXggOi0xOyBib3JkZXItcmFkaXVzIDoxMDBweDsgd2lkdGggOjAlOyBoZWlnaHQgOjEyMCU7IHRvcCA6NTAlOyBib3R0b20gOjUwJTsgbGVmdCA6NTAlOyByaWdodCA6NTAlOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgdHJhbnNpdGlvbiA6YWxsIDAuNnMgZWFzZTsgYm9yZGVyOnVuc2V0OyBiYWNrZ3JvdW5kOiNlMzE3M2U7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpob3ZlciB7IGJhY2tncm91bmQ6I2UzMTczZTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOzsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyOmJlZm9yZSB7IHdpZHRoOjEyMCU7IH0gLnByb21vQlROLnJpcHBsZTpob3ZlciBzcGFuLmZheyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vQXJyb3csLnByb21vQ29sb3J7IGNvbG9yOiNlMzE3M2UhaW1wb3J0YW50OyB9IC5icm9jaHVyZUJ0bnsgYm9yZGVyOm5vbmU7IGRpc3BsYXk6YmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweDsgfSAudmRwLWJ0biB7IGJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjhweCA1cHg7IHdpZHRoOjIzN3B4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MDBweCkgeyAuYnRuLWRlZmF1bHQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHR7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5hcHBseS1jcmVkaXQgeyBiYWNrZ3JvdW5kOiNmZjRhNzE7IGJvcmRlcjoxcHggc29saWQgI2ZkMzE1ODsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDp7JEFQUExZX0NSRURJVF9CVE5fQ09MT1JfRU5ESE9WRVJDT0xPUn07IH0gfSAuYmdfYmx1ZXsgYmFja2dyb3VuZC1jb2xvcjojMDY4OGZhIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfcmVkeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDAhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ncmVlbnsgYmFja2dyb3VuZC1jb2xvcjojNjhhNTRiIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmxhY2t7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyYXl7IGJhY2tncm91bmQtY29sb3I6Izc5Nzk3OSFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2JsdWUgYSwuYmdfcmVkIGEsLmJnX2dyZWVuIGEsLmJnX2JsYWNrIGEsLmJnX2dyYXkgYSB7IGNvbG9yOiNmZmY7IH0gLmJnX2RlZmF1bHR7IGJhY2tncm91bmQtY29sb3I6IzFiMWIxYiFpbXBvcnRhbnQ7IH0gLmJveDI3eyB3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5ib3gyNyBheyB3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteCA7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjcgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXg7IGNvbG9yOiNGRkZGRkY7IH0gLmJveDI4eyB3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDsgfSAudGV4dDQ0eyB3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4OyB9IC5jb25zdW1wdGlvbi1ub3QtYXZhaWxhYmxlID4gLnRleHQ0NCA+IHNwYW4gPiAjY2l0eUZ1ZWwgeyBkaXNwbGF5Om5vbmU7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNoaWdod2F5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAudGV4dF9zbGlkZSBhIHsgaGVpZ2h0OjM4cHg7IG1hcmdpbi1yaWdodDowLjNlbTsgcGFkZGluZy10b3A6MXB4ICFpbXBvcnRhbnQ7IH0gLnRleHRfc2xpZGUgYSA+IGIgeyBkaXNwbGF5OmJsb2NrOyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoyNXB4OyB3aWR0aDoxMDAlOyB9IC50ZXh0X3NsaWRlIGEgPiBiID4gbTEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IHdoaXRlLXNwYWNlOm5vd3JhcDsgbGluZS1oZWlnaHQ6MzhweCAhaW1wb3J0YW50OyB0b3A6LThweDsgbGVmdDowOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfNCBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfNCA0cyBlYXNlIDVzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfMyBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfMyAzcyBlYXNlIDRzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfMiBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfMiAycyBlYXNlIDJzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnByb21vY29kZWJveCB7IHBhZGRpbmc6MHB4IDBweDsgbWFyZ2luLWxlZnQ6MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjlweDsgfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfNCB7IDAlIHsgdG9wOi04cHg7IH0gMjUlIHsgdG9wOi00NnB4OyB9IDUwJSB7IHRvcDotODRweDsgfSA3NSUgeyB0b3A6LTEyMnB4OyB9IDEwMCUgeyB0b3A6LTE2MHB4OyB9IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzMgeyAwJSB7IHRvcDotOHB4OyB9IDMzJSB7IHRvcDotNDZweDsgfSA2NiUgeyB0b3A6LTg0cHg7IH0gMTAwJSB7IHRvcDotMTIycHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMiB7IDAlIHsgdG9wOi04cHg7IH0gNTAlIHsgdG9wOi00NnB4OyB9IDEwMCUgeyB0b3A6LTg0cHg7IH0gfSAubWFwIHsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tYXAgLndyYXBwZXJ7IHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50OyB9IC5tYXBfZGVhbGVyX2xpc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcGFkZGluZzowIDMwcHg7IHdpZHRoOjMxNXB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyBvdmVyZmxvdy15OmF1dG87IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtIHsgY3Vyc29yOnBvaW50ZXI7IHBhZGRpbmc6MTNweCAwOyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWU6aG92ZXIgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIHsgZm9udC13ZWlnaHQ6NzAwOyB9IC5tYXJrZXJTcGFuIHsgaGVpZ2h0OjE4cHg7IHdpZHRoOjIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLm1hcmtlclNwYW46YmVmb3JlIHsgY29udGVudDonJzsgaGVpZ2h0OjRweDsgd2lkdGg6NHB4OyBib3JkZXI6MnB4IHNvbGlkICMzMzM7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyBsZWZ0OjBweDsgei1pbmRleDoxOyBiYWNrZ3JvdW5kOiNmZmY7IGxpbmUtaGVpZ2h0OjI2cHg7IGJvcmRlci1yYWRpdXM6NDBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjQwcHg7IC1tb3otYm9yZGVyLXJhZGl1czo0MHB4OyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFya2VyU3BhbjphZnRlciB7IGNvbnRlbnQ6Jyc7IGhlaWdodDowcHg7IHdpZHRoOjBweDsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbToycHg7IGxlZnQ6MnB4OyBib3JkZXI6MTBweCB0cmFuc3BhcmVudCBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjojMzMzOyBib3JkZXItd2lkdGg6N3B4IDJweCAwcHggMnB4OyB9IC5tYXBfb3Blbl9ob3VycyB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyB3aWR0aDo0MDBweDsgaGVpZ2h0OjEwMCU7IHRleHQtYWxpZ246bGVmdDsgfSAub3Blbl9ob3Vyc19jb250YWluZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHRleHQtYWxpZ246bGVmdDsgfSAubWFwX29wZW5faG91cnMgLm1hcF9vcGVuX2hvdXJzLS10aXRsZSwgLm9wZW5faG91cnNfY29udGFpbmVyIGgyLCAub3Blbl9ob3Vyc19jb250YWluZXIgc3Bhbi5oMi1hbHQgeyBmb250LXNpemU6MS41ZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoxNXB4OyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6aW5oZXJpdDsgfSAubWFwX29wZW5faG91cnMgdWwsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciB1bCB7IHBhZGRpbmc6MCAwOyB9IC5tYXBfb3Blbl9ob3VycyB1bCBsaSwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIGxpIHsgbGlzdC1zdHlsZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgY3Vyc29yOmhhbmQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmM2YzZjM7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZHsgcGFkZGluZzo2cHggMzBweCA4cHggMTVweDsgZGlzcGxheTpibG9jazsgfSAuZXhwYW5kYWJsZV9jb250ZW50eyBwYWRkaW5nOjBweCAxNnB4IDVweCAxNnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgZGl2LCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gZGl2IHsgZGlzcGxheSA6ZmxleDsgZmxleC1kaXJlY3Rpb24gOnJvdzsgfSAuZXhwYW5kYWJsZV9jb250ZW50ID4gZGl2ID4gc3BhbjpmaXJzdC1vZi10eXBlLCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gZGl2IHNwYW46Zmlyc3Qtb2YtdHlwZSB7IHdpZHRoOjQwJTsgfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb257IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IG1hcmdpbi10b3A6MTVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOjc1OXB4KSB7IC5leHBhbmRhYmxlX2NvbnRlbnQsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IH0gLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHRhYmxleyBtYXJnaW4tdG9wOjE1cHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvd3sgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6M3B4OyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3cuZXhwYW5kZWR7IHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTsgfSAubWFwX29wZW5faG91cnNfbW9iaWxleyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgLm1hcF9vcGVuX2hvdXJzX21vYmlsZS0tdGl0bGUgeyBmb250LXNpemU6dmFyKC0tZnM0KTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSB1bHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSB1bCBsaXsgbGlzdC1zdHlsZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFpbl9sZWZ0X2JveCAjZm9vdGVyR29vZ2xlTWFwSG91cnNDb250YWluZXJ7IHdpZHRoOjk2MHB4OyB9IC52aWRlb0J0blNsaWRlciwgLnBob3RvQnRuU2xpZGVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjMWIxYjFiOyBjb2xvcjojMWIxYjFiOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZDVkNWQ1OyBvcGFjaXR5OjAuNTsgfSAudmlkZW9CdG5TbGlkZXI6aG92ZXIsIC5waG90b0J0blNsaWRlcjpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2Q1ZDVkNTsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6IzFiMWIxYjsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyIC5mYXsgY29sb3I6IzFiMWIxYjsgfSAucGhvdG9CdG5TbGlkZXI6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXI6aG92ZXIgLmZheyBjb2xvcjojZDVkNWQ1OyB9IC52aWRlb0J0blNsaWRlclVzZWQsIC5waG90b0J0blNsaWRlclVzZWR7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNiM2IzYjM7IGNvbG9yOiNiM2IzYjM7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IG9wYWNpdHk6MC45OyB9IC52aWRlb0J0blNsaWRlclVzZWQ6aG92ZXIsIC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNiM2IzYjM7IG9wYWNpdHk6MC41OyB9IC5waG90b0J0blNsaWRlclVzZWQgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkIC5mYXsgY29sb3I6I2IzYjNiMzsgfSAucGhvdG9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciAuZmF7IGNvbG9yOiNmZmZmZmY7IH0gLnZpZGVvc19waWN0dXJlc19idXR0b25zX2NvbnRhaW5lcnsgbGVmdDo1cHg7IGJvdHRvbTo4MnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo5OTk7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206LTgwcHg7IH0gLi1kaXNwbGF5LW5vbmV7IGRpc3BsYXk6bm9uZTsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHBhZGRpbmc6NDBweCAxNXB4OyB9ICNkZWZhdWx0VG9wQmFubmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo2cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNkZWZhdWx0VG9wQmFubmVyVGl0bGUsICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXAgZGl2LmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyeyBtYXJnaW46MzBweCAwIDIwcHggMDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgfSAjZGVmYXVsdFRvcEJhbm5lckJ0bnsgcGFkZGluZzoxMHB4IDMwcHg7IGJhY2tncm91bmQ6YmxhY2s7IGJvcmRlcjoycHggd2hpdGUgc29saWQ7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjEuMzc1cmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgZm9udC1zaXplOjEuNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjEuMzEzcmVtIDsgfSAjdG9wQmFubmVySW1hZ2U6ZW1wdHl7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoxNjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjI0LjE1MDk0MzM5NjIyNnB4IDE1cHg7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MTY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzoyNC45MDU2NjAzNzczNThweCAxNXB4OyB9ICNnb29nbGVfcmV2aWV3c3sgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjA7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIHsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgd2lkdGg6aW5pdGlhbCAhaW1wb3J0YW50OyBwYWRkaW5nOmluaXRpYWw7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIGkgeyBjb2xvcjojRTRCMjQ4OyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgaS5pbmFjdGl2ZSB7IGNvbG9yOiNjNmM2YzY7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXI6YWZ0ZXIgeyBjb250ZW50OiJcMjYwNSI7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dHsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzo1cHggOHB4OyBoZWlnaHQ6MjdweDsgbGluZS1oZWlnaHQ6MjdweDsgfSAucmV2aWV3LWF1dGhvcnsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LmRlZmF1bHR7IGNvbG9yOiM0NDQ7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI2Y1ZjVmNSwgI2YxZjFmMSk7IGJvcmRlcjoxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQucmVkeyBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICNERDRCMzksICNEMTQ4MzYpOyBib3JkZXI6MXB4IHNvbGlkICNEMTQ4MzY7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5ibHVleyBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiM0RDkwRkU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICM0RDkwRkUsICM0Nzg3RUQpOyBib3JkZXI6MXB4IHNvbGlkICMzMDc5RUQ7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIGlmcmFtZSwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIG9iamVjdCwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIGVtYmVkIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZTJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47IG1heC13aWR0aDoxMDAlOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZTIgaWZyYW1lLCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIG9iamVjdCwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBlbWJlZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAjc2VhcmNoQ3JpdGVyaWFXOjphZnRlciwgI2FjdGlvbkJveEJ0bjo6YWZ0ZXIsICNsaW5rQ29udGFpbmVyOjphZnRlcnsgY29udGVudDonJzsgaGVpZ2h0OjFweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1ib3R0b206JzE1cHgnOyB9ICNzZWFyY2hDcml0ZXJpYVc6OmFmdGVyLCAjYWN0aW9uQm94QnRuOjphZnRlciwgI2xpbmtDb250YWluZXI6OmFmdGVyeyBiYWNrZ3JvdW5kOiNhYWE7IHdpZHRoOjI4MHB4OyB9IC5iYW5uZXJQb3B1cENsb3NleyBjb2xvcjojYWFhOyB9IC5zZWVWaWRlb0J0bjF7IGJhY2tncm91bmQtY29sb3I6IzAwMCAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNmZmYgIWltcG9ydGFudDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50OyB9IC5zZWVWaWRlb0J0bjE6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMwMDAgIWltcG9ydGFudDsgY29sb3I6IzFiMWIxYiAhaW1wb3J0YW50OyB9ICNib3R0b21MZWZ0QmFubmVySW1hZ2V7IG1hcmdpbjoxMHB4IDBweCAwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo2cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcldyYXB7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHBhZGRpbmc6MTVweDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjIuMTg4cmVtIDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJUZXh0eyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS45MzhyZW0gOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcldyYXAgZGl2LmRlZmF1bHRCb3R0b21MZWZ0QmFubmVyQnRuV3JhcHBlcnsgbWFyZ2luOjIwcHggMCAxMHB4IDA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyQnRueyBwYWRkaW5nOjdweCAyMXB4OyBiYWNrZ3JvdW5kOmJsYWNrOyBib3JkZXI6MnB4IHdoaXRlIHNvbGlkOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBib3gtc2hhZG93OjBweCAycHggMTNweCAwcHggIzFiMWIxYjsgZm9udC1zaXplOjcwJTsgfSAubWFpbkRpdi13cmFwcGVyIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEgeyBwYWRkaW5nOjAgMTJweDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IGJvcmRlci1yYWRpdXM6MDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEgeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOndoaXRlOyBjb2xvcjojMWIxYjFiOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYS5idG4geyBmb250LXdlaWdodDpub3JtYWw7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gLmJ0bi1kZWZhdWx0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOiNmZmZmZmY7IGJvcmRlci1jb2xvcjojZmZmZmZmOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5Om5vbmU7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIC4xNzUpOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzUwcHg7IHJpZ2h0OjA7IHBhZGRpbmc6MTVweDsgei1pbmRleDo5OTk5OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBoZWlnaHQ6YXV0bzsgdG9wOjIzcHg7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIGRpdjpub3QoW2NsYXNzXSkgeyBmbG9hdDppbml0aWFsOyB3aWR0aDoxMDAlOyBtYXJnaW4tcmlnaHQ6MDsgdGV4dC1hbGlnbjppbml0aWFsOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyOmhvdmVyIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5OmJsb2NrOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIuaXNPcGVuIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5OmJsb2NrOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3csIC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgZGl2IHsgbWFyZ2luLXJpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZmxvYXQ6bm9uZTsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93IHRhYmxlIHRleHRhcmVhIHsgd2lkdGg6Y2FsYygxMDAlICsgMnB4KSAhaW1wb3J0YW50OyB9ICN1c2VkXzQwNF9tZXNzYWdlIHsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MzBweDsgYm9yZGVyOjFweCBzb2xpZCAjZjAwOyBtYXJnaW46MCAwIDIwcHggMDsgfSAuYXVkaS10aXRsZSBoMiB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYXVkaS1jb2xvciB7IGNvbG9yOiNiYjBhMzA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gZGl2I3NvY2lhbF9tZWRpYV9pY29uc19kaXYgeyBmb250LXNpemU6aW5oZXJpdDsgfSBhLnNvY2lhbC1saW5rIHsgLS1mczp2YXIoLS1mczYpOyAtLXR4dC1jb2xvcjojZmZmZmZmOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IC5zb2NpYWwtbGlua1tkYXRhLXRvb2x0aXA9J1lvdXR1YmUnXSAuc29jaWFsLWljb25zIHsgbWFyZ2luLXJpZ2h0OjNweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxleyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6d2hpdGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MCAwIDEwcHggMDsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZSB0cjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OjQwcHg7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZSBzZWxlY3R7IGJvcmRlci1yYWRpdXM6NXB4OyB3aWR0aDoyMDBweDsgaGVpZ2h0OjM1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheXBhbF9idXR0b25faHRtbCBpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdeyB3aWR0aDoxMDAlOyBib3JkZXI6bm9uZTsgcGFkZGluZzowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MDBweCkgeyAucGF5cGFsX2J1dHRvbl9odG1seyB3aWR0aDo5MCU7IG1hcmdpbjowIGF1dG87IH0gfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHsgei1pbmRleDoxMDAwMDAwMDAyMTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLmRlc2t0b3AgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLmRlc2t0b3Agc2VsZWN0IHsgbWF4LXdpZHRoOjMwMHB4OyBtYXJnaW46MCBhdXRvOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uc21hbGwgeyBwYWRkaW5nOjIwcHggMTBweDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIGxhYmVsIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAjbXV0bGlBZGRyZXNzU3VibWl0IHsgbWFyZ2luOjAgYXV0bzsgbWFyZ2luLXRvcDo4cHg7IGRpc3BsYXk6dGFibGU7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAjbXVsdGktZGVhbGVyLW1hcCB7IGhlaWdodDo1MjBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24ucmV2ZWFsLW1vZGFsIHNwYW4geyBmb250LXNpemU6aW5oZXJpdDsgfSAudmFsaWRpdHktZXJyb25lb3VzIHsgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMhaW1wb3J0YW50OyB9IC5ib3g0LnZhbGlkaXR5LWVycm9uZW91cywgLmJveDUudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6MjYzcHg7IH0gLmZvcm0tY29udHJvbCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IGhlaWdodDozNHB4OyBwYWRkaW5nOjZweCAxMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyBjb2xvcjojNTU1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpOyBib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtby10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IH0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MzBweDsgYmFja2dyb3VuZC1jb2xvcjo7IGNvbG9yOjsgfSAuYmFubmVyLWZvcm0tdGl0bGUgeyBmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZToxOHB0OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYmFubmVyLWZvcm0tc3VidGl0bGUgeyBmb250LXNpemU6MTEuNXB0OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYmFubmVyLWZvcm0tYm9keSB7IG1hcmdpbi1ib3R0b206MjVweDsgfSAuYmFubmVyLWZvcm0tYm9keSAuZm9ybS1jb250cm9sIHsgaGVpZ2h0OjQxcHg7IG1hcmdpbi1ib3R0b206MTVweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmJhbm5lci1mb3JtLWJveC1mb290ZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC5iYW5uZXItZm9ybS1ib3gtaGVhZGVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuYnRuLmJhbm5lci1idG4geyBwYWRkaW5nOjZweCAyNHB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOndoaXRlOyBiYWNrZ3JvdW5kLWNvbG9yOjsgY29sb3I6OyB9IC5idG4uYmFubmVyLWJ0bjpob3ZlciB7IGJveC1zaGFkb3c6aW5zZXQgMCAwIDEwMHB4IDEwMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfSAuYnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6NnB4IDEycHg7IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6NDAwOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2hpdGUtc3BhY2U6bm93cmFwOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IC1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOyB0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOyBjdXJzb3I6cG9pbnRlcjsgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyAtbW96LXVzZXItc2VsZWN0Om5vbmU7IC1tcy11c2VyLXNlbGVjdDpub25lOyB1c2VyLXNlbGVjdDpub25lOyBib3JkZXItcmFkaXVzOjRweDsgfSAubGF6eWxvYWR7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5nYm94IHsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgfSAucGQgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBmb250LXNpemU6MC41ZW07IHZlcnRpY2FsLWFsaWduOnN1cGVyOyB9IC51aS1sb2FkZXItYmFja2dyb3VuZHsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMC4zKTsgZGlzcGxheTpub25lOyBwb3NpdGlvbjpmaXhlZDsgei1pbmRleDoxMDAwMDAwMDA7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5kLWdpZnsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IGxlZnQ6NTAlOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUaXRsZSB7IGZvbnQtc2l6ZToxLjNlbTsgfSAuZDJjRm9vdGVyQ29va2llRGVsZXRlVGV4dCB7IG1hcmdpbi10b3A6MzBweDsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRueyBiYWNrZ3JvdW5kOiNlMzE3M2U7IGNvbG9yOiNmZmZmZmY7IHBhZGRpbmc6MTBweCAyMHB4IDEwcHggMjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLm1vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX2J0biBzcGFueyBiYWNrZ3JvdW5kOiNlMzE3M2U7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3Ntc3sgYmFja2dyb3VuZDojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyB9ICNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9zbXMgc3BhbnsgYmFja2dyb3VuZDojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyB9IC5ibGFja0NvbG9yQm9sZHsgY29sb3I6IzAwMCFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7IH0gLnByaWNlTXNnRGl2Omhhcyg+IC5ldmFwRGlzY2xhaW1lckljb24pLCAuY2FzaFJlYmF0ZVBvc3RUYXhUZXh0Omhhcyg+IC5ldmFwRGlzY2xhaW1lckljb24pLCAucHJpY2VTcGFuOmhhcyg+IC5ldmFwRGlzY2xhaW1lckljb24peyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjNweDsgfSAuZmxleC1jZW50ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIHsgZmxleC1ncm93OjE7IH0gLnJldmVhbC1tb2RhbHsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuZ20tc3R5bGUtaXctZCB7IHBhZGRpbmctdG9wOjEycHg7IG1hcmdpbi1yaWdodDotMjRweDsgfSAuZ20tc3R5bGUgLmdtLXN0eWxlLWl3LWMgeyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfSAuZ3JlY2FwdGNoYS1iYWRnZSB7IHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IH0gLnJlY2FwdGNoYS1kaXNjbGFpbWVyIHsgZm9udC1zaXplOjAuNjg4cmVtIDsgY29sb3I6Izc3NzsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjo4cHggMDsgbGluZS1oZWlnaHQ6MS4zOyB9Ci8qKiAvY3NzL2Jhc2UuY3NzICoqLwpzdGFjay1sYywgLnN0YWNrLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IH0gc3RhY2stbGMgPiAqLCAuc3RhY2stbGMgPiAqIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tYm90dG9tOjA7IH0gc3RhY2stbGMgPiAqICsgKiwgLnN0YWNrLWxjID4gKiArICogeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgfSBzdGFjay1sYy4tLXMwID4gKiArICosIC5zdGFjay1sYy4tLXMwID4gKiArICogeyBib3JkZXItd2lkdGg6MDsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IGJvcmRlci1jb2xvcjppbmhlcml0OyB9IC5ib3gtbGMsIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpibG9jazsgcGFkZGluZzp2YXIoLS1zcGFjZSk7IG91dGxpbmU6dmFyKC0tYm9yZGVyLXRoaW4pIHRyYW5zcGFyZW50OyBvdXRsaW5lLW9mZnNldDpjYWxjKHZhcigtLWJvcmRlci10aGluKSAqIC0xKTsgfSAuYm94LWxjLCBib3gtbGMgKiB7IGNvbG9yOmluaGVyaXQ7IH0gLmJnLWJveHsgY29sb3I6dmFyKC0tYmxhY2spOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSAuZ2xhc3MtYm94eyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjppbmhlcml0OyB9IC5jdHItYm94LCAuZmxleC1ib3gsIC5mbGV4LWNvbHVtbiwgLmZsZXgtYXJvdW5kLCAuZmxleC1iZXR3ZWVuLCAuZmxleC1ldmVubHksIC5mbGV4LWNlbnRlciwgLmZsZXgtc3RhcnQsIC5mbGV4LWVuZCwgLmZsZXgtYXV0bywgLmZsZXgtZXF1YWx7IGRpc3BsYXk6ZmxleDsgfSAuaW5saW5lLWJveHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnNoYWRvdy1ib3h7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYm9yZGVyLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5mbGV4LWJveDpub3QoOmlzKC5mbGV4LWJldHdlZW4sLmZsZXgtZXZlbmx5LC5mbGV4LWFyb3VuZCkpID4gKiArICp7IG1hcmdpbi1sZWZ0OnZhcigtLXMpOyB9IC5ncm91cC1sYywgZ3JvdXAtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IH0gLmdyb3VwLWxjID4gKiwgZ3JvdXAtbGMgPiAqIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSAuZ3JvdXAtbGMgPiAqID4gKiwgZ3JvdXAtbGMgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSB7IG92ZXJmbG93OmhpZGRlbjsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyICogLTEpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiAqIHsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IGZsZXgtZ3JvdzoxOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiA6Zmlyc3QtY2hpbGQgeyBmbGV4LWJhc2lzOjA7IGZsZXgtZ3Jvdzo5OTk7IG1pbi13aWR0aDpjYWxjKHZhcigtLXNpZGViYXItYnAsIDUwJSkgLSB2YXIoLS1zcGFjZSkpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGMoKHZhcigtLXNwYWNlKSAvIDIpICogLTEpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+ICogeyBmbGV4LWdyb3c6MTsgZmxleC1iYXNpczpjYWxjKCh2YXIoLS1zd2l0Y2gtYnAsIDMwcmVtKSAtICgxMDAlIC0gdmFyKC0tc3BhY2UpKSkgKiA5OTkpOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiA6bnRoLWxhc3QtY2hpbGQobis1KSwgOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSkgfiAqIHsgZmxleC1iYXNpczoxMDAlOyB9IC4tLXMwey0tc3BhY2U6dmFyKC0tczApO30gLi0tcy05ey0tc3BhY2U6dmFyKC0tcy05KTt9IC4tLXMtOHstLXNwYWNlOnZhcigtLXMtOCk7fSAuLS1zLTd7LS1zcGFjZTp2YXIoLS1zLTcpO30gLi0tcy02ey0tc3BhY2U6dmFyKC0tcy02KTt9IC4tLXMtNXstLXNwYWNlOnZhcigtLXMtNSk7fSAuLS1zLTR7LS1zcGFjZTp2YXIoLS1zLTQpO30gLi0tcy0zey0tc3BhY2U6dmFyKC0tcy0zKTt9IC4tLXMtMnstLXNwYWNlOnZhcigtLXMtMik7fSAuLS1zLTF7LS1zcGFjZTp2YXIoLS1zLTEpO30gLi0tc3stLXNwYWNlOnZhcigtLXMpO30gLi0tczF7LS1zcGFjZTp2YXIoLS1zMSk7fSAuLS1zMnstLXNwYWNlOnZhcigtLXMyKTt9IC4tLXMzey0tc3BhY2U6dmFyKC0tczMpO30gLi0tczR7LS1zcGFjZTp2YXIoLS1zNCk7fSAuLS1zNXstLXNwYWNlOnZhcigtLXM1KTt9IC4tLXM2ey0tc3BhY2U6dmFyKC0tczYpO30gLi0tczd7LS1zcGFjZTp2YXIoLS1zNyk7fSAuLS1zOHstLXNwYWNlOnZhcigtLXM4KTt9IC4tLXM5ey0tc3BhY2U6dmFyKC0tczkpO30gLi0tZnMtOXtmb250LXNpemU6dmFyKC0tZnMtOSk7LS1mczp2YXIoLS1mcy05KTt9IC4tLWZzLTh7Zm9udC1zaXplOnZhcigtLWZzLTgpOy0tZnM6dmFyKC0tZnMtOCk7fSAuLS1mcy03e2ZvbnQtc2l6ZTp2YXIoLS1mcy03KTstLWZzOnZhcigtLWZzLTcpO30gLi0tZnMtNntmb250LXNpemU6dmFyKC0tZnMtNik7LS1mczp2YXIoLS1mcy02KTt9IC4tLWZzLTV7Zm9udC1zaXplOnZhcigtLWZzLTUpOy0tZnM6dmFyKC0tZnMtNSk7fSAuLS1mcy00e2ZvbnQtc2l6ZTp2YXIoLS1mcy00KTstLWZzOnZhcigtLWZzLTQpO30gLi0tZnMtM3tmb250LXNpemU6dmFyKC0tZnMtMyk7LS1mczp2YXIoLS1mcy0zKTt9IC4tLWZzLTJ7Zm9udC1zaXplOnZhcigtLWZzLTIpOy0tZnM6dmFyKC0tZnMtMik7fSAuLS1mcy0xe2ZvbnQtc2l6ZTp2YXIoLS1mcy0xKTstLWZzOnZhcigtLWZzLTEpO30gLi0tZnMwe2ZvbnQtc2l6ZTp2YXIoLS1mczApOy0tZnM6dmFyKC0tZnMwKTt9IC4tLWZzMXtmb250LXNpemU6dmFyKC0tZnMxKTstLWZzOnZhcigtLWZzMSk7fSAuLS1mczJ7Zm9udC1zaXplOnZhcigtLWZzMik7LS1mczp2YXIoLS1mczIpO30gLi0tZnMze2ZvbnQtc2l6ZTp2YXIoLS1mczMpOy0tZnM6dmFyKC0tZnMzKTt9IC4tLWZzNHtmb250LXNpemU6dmFyKC0tZnM0KTstLWZzOnZhcigtLWZzNCk7fSAuLS1mczV7Zm9udC1zaXplOnZhcigtLWZzNSk7LS1mczp2YXIoLS1mczUpO30gLi0tZnM2e2ZvbnQtc2l6ZTp2YXIoLS1mczYpOy0tZnM6dmFyKC0tZnM2KTt9IC4tLWZzN3tmb250LXNpemU6dmFyKC0tZnM3KTstLWZzOnZhcigtLWZzNyk7fSAuLS1mczh7Zm9udC1zaXplOnZhcigtLWZzOCk7LS1mczp2YXIoLS1mczgpO30gLi0tZnM5e2ZvbnQtc2l6ZTp2YXIoLS1mczkpOy0tZnM6dmFyKC0tZnM5KTt9IC5zaHJpbmstZ3Jvd3tmbGV4OjEgMTt9IC5mbGV4LXdyYXAge2ZsZXgtd3JhcDp3cmFwO30gLmZsZXgtcmV2ZXJzZSB7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fSAuZmxleC1hdXRvID4gKntmbGV4OjEgMSBhdXRvO30gLmZsZXgtZXF1YWwgPiAqe2ZsZXg6MSAxO30gLmFsaWduLWNlbnRlciB7YWxpZ24taXRlbXM6Y2VudGVyO30gLmFsaWduLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fSAuYWxpZ24tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kO30gLmFsaWduLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lO30gLmZsZXgtY29sdW1uIHtmbGV4LWZsb3c6Y29sdW1uO30gLmZsZXgtcm93IHtmbGV4LWZsb3c6cm93O30gLmZsZXgtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7fSAuZmxleC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmZsZXgtZXZlbmx5e2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHk7fSAuZmxleC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9IC5mbGV4LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30gLmZsZXgtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9IC4tcDAge3BhZGRpbmc6MDt9IC4tcHQwIHtwYWRkaW5nLXRvcDowO30gLi1wYjAge3BhZGRpbmctYm90dG9tOjA7fSAuLXB2MCB7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfSAuLXBoMCB7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfSAuLXAge3BhZGRpbmc6dmFyKC0tc3BhY2UpO30gLi1wdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tcGh7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLXB0e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlKTt9IC4tcGJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1tMCB7bWFyZ2luOjA7fSAuLW10MCB7bWFyZ2luLXRvcDowO30gLi1tYjAge21hcmdpbi1ib3R0b206MDt9IC4tbXYwIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfSAuLW1oMCB7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0gLi1tIHttYXJnaW46dmFyKC0tc3BhY2UpO30gLi1tdnttYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLW1oe21hcmdpbi1sZWZ0OnZhcigtLXNwYWNlKTsgbWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNlKTt9IC4tbXR7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7fSAuLW1ie21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1iMCB7Ym9yZGVyOm5vbmU7fSAuLWIyIHtib3JkZXItd2lkdGg6MnB4O30gLi1ie2JvcmRlci13aWR0aDoxcHg7fSAuLWJ0e2JvcmRlci10b3Atd2lkdGg6MXB4O30gLi1iYntib3JkZXItYm90dG9tLXdpZHRoOjFweDt9IC4tYnZ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJoe2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MXB4O30gLi13LWZ1bGwge3dpZHRoOjEwMHZ3O30gLi13LTEwMCB7d2lkdGg6MTAwJTt9IC4tdy01MCB7d2lkdGg6NTAlO30gLi13LTMzIHt3aWR0aDozMy4zMyU7fSAuLXctMjUge3dpZHRoOjI1JTt9IC4tdy01MHcge3dpZHRoOjUwdnc7fSAuLWZzLXh4c3tmb250LXNpemU6MC4xNXJlbTsgLS1mczowLjE1cmVtO30gLi1mcy14c3tmb250LXNpemU6MC41cmVtOyAtLWZzOjAuNXJlbTt9IC4tZnMtc3tmb250LXNpemU6MC43NXJlbTsgLS1mczowLjc1cmVtO30gLi1mcy1zcntmb250LXNpemU6MC45cmVtOyAtLWZzOjAuOXJlbTt9IC4tZnMtbHJ7Zm9udC1zaXplOjEuMXJlbTsgLS1mczoxLjFyZW07fSAuLWZzLWx7Zm9udC1zaXplOjEuMjVyZW07IC0tZnM6MS4yNXJlbTt9IC4tZnMteGx7Zm9udC1zaXplOjEuNXJlbTsgLS1mczoxLjVyZW07fSAuLWZzLXh4bHtmb250LXNpemU6MnJlbTsgLS1mczoycmVtO30gLi1mcy14eHhse2ZvbnQtc2l6ZToyLjI1cmVtOyAtLWZzOjIuMjVyZW07fSAuLWZ3MSB7Zm9udC13ZWlnaHQ6MTAwO30gLi1mdzIge2ZvbnQtd2VpZ2h0OjIwMDt9IC4tZnczIHtmb250LXdlaWdodDozMDA7fSAuLWZ3NCB7Zm9udC13ZWlnaHQ6NDAwO30gLi1mdzUge2ZvbnQtd2VpZ2h0OjUwMDt9IC4tZnc2IHtmb250LXdlaWdodDo2MDA7fSAuLWZ3NyB7Zm9udC13ZWlnaHQ6NzAwO30gLi1mdzgge2ZvbnQtd2VpZ2h0OjgwMDt9IC4tZnc5IHtmb250LXdlaWdodDo5MDA7fSAuLWJvbGQge2ZvbnQtd2VpZ2h0OmJvbGQ7fSAudHh0LXJlZCB7Y29sb3I6I2NjMDAwMDt9IC50eHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyO30gLnR4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0O30gLnR4dC1sZWZ0e3RleHQtYWxpZ246bGVmdDt9IC50eHQtdXBwZXJ7dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSkpO30gLnR4dC1ub3Rle2ZvbnQtc3R5bGU6aXRhbGljO30gLnR4dC1wYXltZW50IHtjb2xvcjp2YXIoLS1uZXd2ZHAtYmVzdHByaWNlLXRleHQtY29sb3ItcHJpY2UpICFpbXBvcnRhbnQ7fSAuLXBvc3JlbHtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5jZXJ0LXR4dC10cmFuc2Zvcm17dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCBub25lKTt9IFtoaWRkZW5dLCAuaGlkZGVuIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gLnNrZWxldG9uLXNsaWRlciA+ICp7IGRpc3BsYXk6bm9uZTsgfSAuc2tlbGV0b24tdHh0eyB0ZXh0LWluZGVudDoxMDAlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IGJvcmRlci1yYWRpdXM6MC41cmVtOyB9IC5za2VsZXRvbi1idG57IHdpZHRoOm1pbigyMHJlbSwxMDAlKTsgaGVpZ2h0OjIuNXJlbTsgYm9yZGVyLXJhZGl1czowLjVyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBtYXJnaW46YXV0bzsgfSAuc2tlbGV0b24tYmxvY2t7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgfSAuc2tlbGV0b24tc2xpZGVyLCAuc2tlbGV0b24tdHh0LCAuc2tlbGV0b24tYnRuLCAuc2tlbGV0b24tYmxvY2sgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmJsb2NrOyB9IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlciwgLnNrZWxldG9uLWJ0bjo6YWZ0ZXIsIC5za2VsZXRvbi1ibG9jazo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBsZWZ0OjA7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTsgYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDIwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlOyB9IC5za2VsZXRvbi1zbGlkZXIgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyUzRSUzQ3BhdGggZD0nTTQ2NCA0NDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTExMiAxMjBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpNNjQgMzg0aDM4NFYyNzJsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwyMDggMzIwbC01NS41MTUtNTUuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMNjQgMzM2djQ4eicgZmlsbD0nJTIzZWVlJy8lM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6I2NjYzsgb3BhY2l0eTowLjk7IH0gQGtleWZyYW1lcyBzaGltbWVyIHsgMTAwJSB7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7fSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgLnNrZWxldG9uLXNsaWRlcjo6YWZ0ZXIsIC5za2VsZXRvbi10eHQ6OmFmdGVyeyBhbmltYXRpb246bm9uZTsgfSB9IC5jb250ZW50LXNrZWxldG9uIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgbWF4LXdpZHRoOjQwMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY29udGVudC1za2VsZXRvbi5yZWN0YW5nbGUgeyBhc3BlY3QtcmF0aW86dmFyKC0tcmF0aW8sIDE2LzkpOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQgeyBoZWlnaHQ6YXV0bzsgcGFkZGluZzoxcmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmJlZm9yZSwgLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6MXJlbTsgYmFja2dyb3VuZDojZGRkOyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgd2lkdGg6NzAlOyB9IC5jb250ZW50LXNrZWxldG9uLmFjdGl2ZSB7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjlmOWY5IDI1JSwgI2RlZGVkZSA1MCUsICNmOWY5ZjkgNzUlKTsgYmFja2dyb3VuZC1zaXplOjIwMCUgMTAwJTsgYW5pbWF0aW9uOnNoaW1tZXIgMnMgaW5maW5pdGUgbGluZWFyOyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjoyMDAlIDA7IH0gMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMDsgfSB9IC5jb250ZW50LXNrZWxldG9uLmRlYnVnOjphZnRlciB7IGNvbnRlbnQ6YXR0cihkYXRhLWJsb2NrKSAiIHwgIiBhdHRyKGRhdGEtc291cmNlKSAiIHwgIiBhdHRyKGRhdGEtZ2VuZXJhdGVkLWF0KTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0cHg7IGxlZnQ6NHB4OyByaWdodDo0cHg7IGZvbnQtc2l6ZTowLjdyZW07IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7IHBhZGRpbmc6MnB4IDRweDsgYm9yZGVyLXJhZGl1czo0cHg7IHotaW5kZXg6MTA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gYm9keSB7IHdpZHRoOmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtOyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQtbW9iKTsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IHVsIHsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbml0aWFsOyBsaXN0LXN0eWxlLWltYWdlOmluaXRpYWw7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIHVsIHsgbGlzdC1zdHlsZTppbmhlcml0OyBsaXN0LXN0eWxlLXR5cGU6aW5oZXJpdDsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbmhlcml0OyBsaXN0LXN0eWxlLWltYWdlOmluaGVyaXQ7IH0gc3ZnLCBzdmcuaWNvbnsgLS1pY29uLXNpemU6Y2FsYyh2YXIoLS1mcywgdmFyKC0tZnMwKSkgLyB2YXIoLS1yYXRpbykpOyBmaWxsOnZhcigtLXR4dC1jb2xvciwgdmFyKC0tYmxhY2spKTsgd2lkdGg6dmFyKC0taWNvbi1zaXplKTsgaGVpZ2h0OnZhcigtLWljb24tc2l6ZSk7IH0gc3ZnLmF1dGhvcml6ZWQtYmxhY2t7ZmlsbDojMjgyODI4IWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLWJsYWNrLWtpYXtmaWxsOiMwNTE0MUYhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtcmVke2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC13aGl0ZXtmaWxsOiNGRkZGRkYhaW1wb3J0YW50O30gLmF1dGhvcml6ZWQtcmVkLXdoaXRlLXBsYXktYnRue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1mYWNlYm9va3tmaWxsOiM0MjY3QjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdHdpdHRlcntmaWxsOiMxREExRjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVye2ZpbGw6IzE0MTcxQSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci14LXR3aXR0ZXItd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLWxpbmtlZGlue2ZpbGw6IzAwNzdCNSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1ibG9nZ2Vye2ZpbGw6I0ZGNTcyMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1waW50ZXJlc3R7ZmlsbDojRTYwMDIzIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXlvdXR1YmV7ZmlsbDojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IHN2Zy5vZ2NvbG9yLWluc3RhZ3JhbXtmaWxsOiM4MzNBQjQhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdGlrdG9re2ZpbGw6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjRweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gI2Zvb3RlciAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjNweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gLmluc3RhZ3JhbS1vZ2ljb24tdHdlYWtze2hlaWdodDoyOHB4IWltcG9ydGFudDttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7fSAjZm9vdGVyIC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjlweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudDt9IHN2Zy5jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntmaWxsOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLWJsYWNrLWtpYXtiYWNrZ3JvdW5kLWNvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItZmFjZWJvb2t7YmFja2dyb3VuZC1jb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItbGlua2VkaW57YmFja2dyb3VuZC1jb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1ibG9nZ2Vye2JhY2tncm91bmQtY29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItcGludGVyZXN0e2JhY2tncm91bmQtY29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteW91dHViZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWluc3RhZ3JhbXtiYWNrZ3JvdW5kLWNvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXRpa3Rva3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNre2NvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtYmxhY2sta2lhe2NvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtcmVke2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1mYWNlYm9va3tjb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXR3aXR0ZXJ7Y29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXJ7Y29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXItd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1saW5rZWRpbntjb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWJsb2dnZXJ7Y29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1waW50ZXJlc3R7Y29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci15b3V0dWJle2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItaW5zdGFncmFte2NvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItdGlrdG9re2NvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2NvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5ub3RlLWJveHsgZGlzcGxheTpibG9jazsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5ub3RlLXN1Y2Nlc3N7IGNvbG9yOiMxNTU3MjQ7IGJhY2tncm91bmQtY29sb3I6I2Q0ZWRkYTsgYm9yZGVyLWNvbG9yOiMxNTU3MjQ7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLm5vdGUtZXJyb3J7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYm9yZGVyLWNvbG9yOiNmZjAwMDA7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gdWwuY2hlY2tsaXN0IGxpOmJlZm9yZXsgY29udGVudDoiIjsgYm9yZGVyLWxlZnQ6MC4ycmVtIHNvbGlkOyBib3JkZXItYm90dG9tOjAuMnJlbSBzb2xpZDsgd2lkdGg6MC43cmVtOyBoZWlnaHQ6MC40cmVtOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6MXJlbTsgfSB1bC5jaGVja2xpc3QgbGl7IG1hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLi1iZy13aGl0ZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1kYXJrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2stZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1saWdodHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodCk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLWxpZ2h0LWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLW5vbmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt9IC4tcm91bmR7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5wdXNoLWRvd257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyB9IC5wcmljZS1tYWlueyBjb2xvcjojZmYwMDAwOyB9IC5wcmljZS1zdHJpa2V7IGNvbG9yOiM5OTk7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IH0gLmZvcm1hdC1wcmljZXsgcG9zaXRpb246cmVsYXRpdmU7IG1heC13aWR0aDpmaXQtY29udGVudDsgbWFyZ2luLXJpZ2h0OjAuN3JlbTsgbGluZS1oZWlnaHQ6MWVtOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1sZWZ0OjAuNnJlbTsgbWFyZ2luLXJpZ2h0OnVuc2V0OyB9IC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IGNvbnRlbnQ6IiQiOyBmb250LXNpemU6bWF4KDAuNXJlbSwwLjZlbSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6dmFyKC0tZm9ybWF0LXBpY2Utc2lnbi1wb3NpdGlvbiwwKTsgcmlnaHQ6LTAuNmVtOyBsaW5lLWhlaWdodDppbmhlcml0OyB9IC5maW5hbC1wcmljZSAuZm9ybWF0LXByaWNlOmFmdGVyeyBtYXJnaW4tdG9wOi01cHg7IH0gLmZpbmFsLXByaWNlIC5mb3JtYXQtcHJpY2V7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nLXJpZ2h0OjJweDsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgLmZvcm1hdC1wcmljZTphZnRlcnsgbGVmdDotMC43ZW07IHJpZ2h0OnVuc2V0OyB9IC5wcmljZS1lbjpiZWZvcmV7IGNvbnRlbnQ6IiQiOyB9IDppcygucHJpY2UtZW4pOmJlZm9yZXsgZm9udC1zaXplOjAuNmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0wLjVlbTsgfSAucHJpY2UtZnI6YWZ0ZXJ7IGNvbnRlbnQ6IiAkIjsgfSA6aXMoLnByaWNlLWZyKTphZnRlcnsgZm9udC1zaXplOjAuNmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0wLjVlbTsgfSAuc2NyYXRjaC1vdmVyLCAuc2NyYXRjaC1sZWFzZXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnNjcmF0Y2gtb3ZlcjpiZWZvcmUsIC5zY3JhdGNoLWxlYXNlOmJlZm9yZXsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIGJsYWNrOyBjb250ZW50OiIgIjsgaGVpZ2h0OjJweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0NSU7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB3aWR0aDo5MCU7IH0gLkVOR0xJU0ggOmlzKC5zY3JhdGNoLWxlYXNlLC5zY3JhdGNoLW92ZXIpOmhhcyguZm9ybWF0LXByaWNlKTpiZWZvcmV7IG1hcmdpbi1sZWZ0OjAuNXJlbTsgfSAuYmx1ci1vdmVyLCAuYmx1ci1sZWFzZSB7IC13ZWJraXQtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1vei1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbXMtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW8tZmlsdGVyOmJsdXIoMC4xNWVtKTsgZmlsdGVyOmJsdXIoMC4xNWVtKTsgfSAub3V0LXZpZXd7IHBvc2l0aW9uOmZpeGVkOyB0b3A6LTIwcHg7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IHotaW5kZXg6MDsgfSAudG9wLWZpeGVkIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDozLjJyZW07IGxlZnQ6MDsgei1pbmRleDoxMDA7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuZml4ZWQtd3JhcHBlci50b3AtZml4ZWQgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLXMpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXItYm90dG9tLXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjojMDAwOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuZml4ZWQtd3JhcHBlci50b3AtZml4ZWQgPiAucHJvbW9CVE4geyBtYXJnaW46MDsgd2lkdGg6OTB2dzsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuZml4ZWQtd3JhcHBlci50b3AtZml4ZWQgLmN0YS1sYWJlbHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1haW4tY29sb3JzeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgfSAucHJvbW8tY29sb3JzeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLXRleHQtY29sb3IpOyB9IC5idG57IC0tYnRuLWJnLWNvbDp2YXIoLS10YWItY29sb3IpOyAtLWJ0bi10eHQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idG4tYmctY29sKTsgY29sb3I6dmFyKC0tYnRuLXR4dC1jb2wpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJ0bi1icmQtY29sLCB2YXIoLS1idG4tdHh0LWNvbCkpOyBwYWRkaW5nOjAuNXJlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuYnRuLWRhcmstZ3JleSwgLmNiRGFya0dyZXl7IC0tYnRuLWJnLWNvbDojMzMzOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gW3JvbGU9ImJ1dHRvbiJdeyBjdXJzb3I6cG9pbnRlcjsgfSAuYnRuLXByb21veyAtLXR4dC1jb2xvcjp2YXIoLS1wcm9tby10ZXh0LWNvbG9yLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBjb2xvcjp2YXIoLS10eHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXByb21vLXRleHQtY29sb3IpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgYWxpZ24taXRlbXM6Y2VudGVyOyBib3JkZXI6bm9uZTsgfSAuYnRuLWN0YTphZnRlcnsgY29udGVudDoiXGYwNTQiOyBmb250LXN0eWxlOm5vcm1hbDsgdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxcmVtOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tbWFpbnsgLS1idG4tYmctY29sOnZhcigtLXRhYi1jb2xvcik7IC0tYnRuLXR4dC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IpOyAtLWJ0bi1icmQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9IC5idG4tbWFpbjIsIC5idG4tbWFpbjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyB9IC5idG4tYmxhY2t7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgY29sb3I6I2ZmZjsgLS10eHQtY29sb3I6I2ZmZjsgfSAuYnRuLWxpZ2h0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2FhYTsgY29sb3I6Izg4ODsgfSAuYnRuLXN1Y2Nlc3N7IC0tYnRuLWJnLWNvbDojNGNhZjUwOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gLmJ0bi13YXJuaW5neyAtLWJ0bi1iZy1jb2w6I2ZmOTgwMDsgLS1idG4tdHh0LWNvbDojZmZmOyB9IC5ibnQtZGlzYWJsZWQsIC5idG5bZGlzYWJsZWRdIHsgY29sb3I6dmFyKC0tZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tZ3JheSk7IH0gLmJ0bi1lbWFpbC1tZSwgLmJ0bi10ZXh0LW1leyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuYnRuLWVtYWlsLW1lOmJlZm9yZXsgY29udGVudDoiXGYwZTAiOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi10ZXh0LW1lOmJlZm9yZXsgY29udGVudDoiXGYzY2QiOyBmb250LXNpemU6eC1sYXJnZTsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tZW1haWwtbWU6YmVmb3JlLCAuYnRuLXRleHQtbWU6YmVmb3JleyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgbWFyZ2luLXJpZ2h0OjVweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMXB4OyB9IGJ1dHRvbi5yb3VuZC1idXR0b257IGFsbDppbmhlcml0OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGZpbGw6dmFyKC0tdGFiLWNvbG9yKTsgcGFkZGluZzowLjNyZW07IGN1cnNvcjpwb2ludGVyOyB9IGJ1dHRvbi5pY29uLWJ1dHRvbnsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6bm9uZTsgcGFkZGluZzowLjVyZW07IHdpZHRoOmF1dG87IH0gLngtY2xvc2V7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIHZpZXdCb3g9JzAgMCAxMCAxMCclM0UlM0NzdHlsZSUzRS52ZXJ0JTdCZmlsbDolMjMwMDA7JTdEJTNDL3N0eWxlJTNFJTNDcmVjdCBjbGFzcz0ndmVydCcgaGVpZ2h0PSc4JyB3aWR0aD0nMicgeT0nMScgeD0nNCclM0UlM0MvcmVjdCUzRSUzQ3JlY3QgaGVpZ2h0PScyJyB3aWR0aD0nOCcgeT0nNCcgeD0nMSclM0UlM0MvcmVjdCUzRSUzQy9zdmclM0UiKTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm5vbmU7IHdpZHRoOjEuNXJlbTsgaGVpZ2h0OjEuNXJlbTsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IGN1cnNvcjpwb2ludGVyOyB9IDpub3QoLmNvbXBsZXRlZCkucmlwcGxlIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IDpub3QoLmNvbXBsZXRlZCkucmlwcGxlOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgbGVmdDowOyBwb2ludGVyLWV2ZW50czpub25lOyBiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYigwLCAwLCAwKSAxMCUsIHRyYW5zcGFyZW50IDEwLjAxJSk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7IHRyYW5zZm9ybTpzY2FsZSgxMCwxMCk7IG9wYWNpdHk6MDsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzLCBvcGFjaXR5IDFzOyB9IDpub3QoLmNvbXBsZXRlZCkucmlwcGxlOmFjdGl2ZTphZnRlciB7IHRyYW5zZm9ybTpzY2FsZSgwLDApOyBvcGFjaXR5Oi4yOyB0cmFuc2l0aW9uOjBzOyB9IC5sb2dvYXJlYSB7IG1pbi1oZWlnaHQ6N3JlbTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2VlZTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLWhlYWRlci1iZy1jb2xvcik7IH0gYSA+IDp3aGVyZSg6aXMoc3ZnLCAuZmEsIC5mYXMpOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkpeyBtYXJnaW4tcmlnaHQ6MC42cmVtOyB9IC5wcm9tb1RvcEJ0biA6aXMoYSxidXR0b24pIHsgLS1mczp2YXIoLS1mczEpOyAtLXR4dC1jb2xvcjp2YXIoLS10b3AtcHJvbW8tYnRuLXR4dCwgdmFyKC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3IpKTsgYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci10b3Atd2lkdGg6MXB4OyBib3JkZXItYm90dG9tLXdpZHRoOjFweDsgYm9yZGVyLWNvbG9yOiNmM2YzZjM7IGhlaWdodDozLjJyZW07IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYmFja2dyb3VuZDp2YXIoLS10b3AtcHJvbW8tYnRuLWJnLCB2YXIoLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRvcC1wcm9tby1idG4tdHh0LCB2YXIoLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcikpOyB9IC5wcm9tb1RvcEJ0bi5kZWFsZXJMaW5lQnV0dG9uIDppcyhhLGJ1dHRvbil7IC0tdHh0LWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZDp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3IpOyBjb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IHdpZHRoOjEwMCU7IH0gOmlzKC5wcm9tb1RvcEJ0bixsYWJlbCkuZmxvYXRpbmd7IHBvc2l0aW9uOmZpeGVkOyBib3R0b206MS41cmVtOyByaWdodDoxLjVyZW07IHotaW5kZXg6MTA7IH0gLnByb21vVG9wQnRuLmZsb2F0aW5nLndpdGhUb2FzdGVyIHtib3R0b206NnJlbTt9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZyA6aXMoYSxidXR0b24peyAtLWZzOnZhcigtLWZzNSk7IHBhZGRpbmc6MXJlbTsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlci13aWR0aDoxcHg7IGhlaWdodDp1bnNldDsgfSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcgOmlzKGEsYnV0dG9uKSBzcGFuIHtkaXNwbGF5Om5vbmU7fSAuaWNvbi1oZWFkaW5nIHNwYW4uZmF7IGZvbnQtc2l6ZTppbmhlcml0OyB3aWR0aDoxZW07IHBhZGRpbmc6MC4yZW07IGhlaWdodDoxZW07IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ibGFjayk7IGNvbG9yOnZhcigtLXdoaXRlKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjayk7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLmljb24taGVhZGluZyAuc2Vjb25kYXJ5VGV4dHsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuNzVlbTsgfSAuZ3JvdXBUYWJzID4gKnsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTpjYWxjKDEuMnJlbSArICgyMCAtIDE4KSAqICgoMTAwdncgLSAzMjBweCkgLyAoMTEwMCAtIDMwMCkpKTsgfSAuZ3JvdXBUYWJzID4gKjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmOyB9IC5ncm91cFRhYnMgLnRhYi1sYWJlbCwgLm5ld0NhclNsaWRlciAuY2Fyb3VzZWxUaXRsZXsgY29sb3I6dmFyKC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yLCB2YXIoLS1kZWZhdWx0LWJsYWNrKSk7IH0gLmdyb3VwVGFicyAuYWN0aXZlVGFiIC50YWItbGFiZWx7IGNvbG9yOnZhcigtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvciwgdmFyKC0tZGVmYXVsdC1ibGFjaykpOyBib3JkZXItYm90dG9tOjNweCBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjojMDAwOyBib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IH0gLmNhclNsaWRlcnsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5jYXJTbGlkZXIgPiAqeyB3aWR0aDptaW4oOTByZW0sMTAwJSk7IH0gLmNhclNsaWRlci4tYmctbGlnaHQtZ3JheSA+ICp7IG1heC13aWR0aDptaW4oNzVyZW0sMTAwJSk7IH0gLm5ld0NhckNhcmR7IGhlaWdodDoxMDAlOyBtaW4taGVpZ2h0OjI3cmVtOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB9IC5uZXdDYXJDYXJkIGltZ3sgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDotMXJlbTsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNhclBheW1lbnRXcmFwcGVyeyB3aWR0aDptaW4oMTAwJSwyNXJlbSk7IG1pbi1oZWlnaHQ6N3JlbTsgfSAuY2FyUGF5bWVudFdyYXBwZXIgLnBheW1lbnRCbG9ja3sgaGVpZ2h0OjEwMCU7IH0gLnBheW1lbnRzRGlzYWJsZWQgLm5ld0NhckNhcmR7IG1pbi1oZWlnaHQ6MjJyZW07IH0gLnZlaGljbGVDYXJvdXNlbCAubmV3Q2FyQ2FyZHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IHdpZHRoOjIzLjdyZW07IGJvcmRlcjoxcHggc29saWQgI2JiYjsgbWFyZ2luOjAgMC40cmVtOyBoZWlnaHQ6MTAwJSB9IC5uZXdDYXJDYXJkIC5wcm9tby1iYWRnZXsgaGVpZ2h0OmZpdC1jb250ZW50OyBtaW4td2lkdGg6NnJlbTsgfSAubmV3Q2FyQ2FyZDpob3ZlcnsgYm94LXNoYWRvdzowIDAgMTBweCAycHggdmFyKC0tbWlkLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5uZXdDYXJDYXJkOmhvdmVyIC5pblN0b2NrTGluayB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubmV3Q2FyQ2FyZCAuY2FyZC1ib2R5eyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgaGVpZ2h0OjEycmVtOyBvdmVyZmxvdzpoaWRkZW47IH0gLm5ld0NhckNhcmQgPiAuYm94LWxjeyBtYXJnaW4tdG9wOjA7IHBhZGRpbmctdG9wOjA7IHBhZGRpbmctYm90dG9tOjA7IH0gLm5ld0NhckNhcmQgPiAuYm94LWxjOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDowLjVyZW07IG1heC1oZWlnaHQ6MTByZW07IH0gLm5ld0NhckNhcmQgLmRlc2t0b3BQYXltZW50eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmV3Q2FyQ2FyZCBzcGFuLnBheW1lbnRDYWxjQnRuLmRlc2t0b3B7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo3JTsgZm9udC1zaXplOjEuN2VtOyBjdXJzb3I6cG9pbnRlcjsgfSAudXNlZENhclNsaWRleyBkaXNwbGF5OmJsb2NrOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXNlZENhclNsaWRlICp7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXNlZENhclNsaWRlIC5zbGlkZUNvbnRlbnR7IGhlaWdodDoxMDAlIH0gLmFuaW1hdGVkLXRyaWFuZ2xlIHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXIgeyBjb250ZW50OiJcZjA3MSI7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlIGl7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IHN2ZywgLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlciB7IGFuaW1hdGlvbjpyaXBwbGUtMSAxcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uLWRlbGF5OjAuNXM7IGFuaW1hdGlvbjpyaXBwbGUtMiAxcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uLWRlbGF5OjAuNzVzOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyeyB0b3A6MDsgbGVmdDowOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IHN2Z3sgdG9wOjFweDsgbGVmdDotMXJlbTsgfSBAa2V5ZnJhbWVzIHJpcHBsZS0xIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEuNyk7IG9wYWNpdHk6MDsgfSB9IEBrZXlmcmFtZXMgcmlwcGxlLTIgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eToxOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoMik7IG9wYWNpdHk6MDsgfSB9IHNwYW4uYXN0ZXJpeDphZnRlcnsgY29udGVudDoiKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MnJlbTsgfSBkaXYucHJpY2VOb3RlLmFzdGVyaXg6YmVmb3JleyBjb250ZW50OiIqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToxcmVtOyB9IGZvb3RlciB7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IC1tb3otYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyBib3gtc2hhZG93OiBpbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IC0tdHh0LWNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1mb290ZXItYmctY29sb3IpOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IH0gYS52aXNpdENvbnRhY3RCdXR0b257IC0tdHh0LWNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tYmctY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IH0gLmNGb290ZXJDYXJMaW5rcyBsaS5jSXRlbUV4cGVuZHsgZGlzcGxheTpub25lOyB9IC5jRm9vdGVyQ2FyTGlua3MgaDMsIC5mb290ZXJfYWRkcmVzcyAuYWRyID4gc3BhbnsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAuY0Zvb3RlckNhckxpbmtzIHNwYW4uaDMtYWx0IHsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAuY0Zvb3RlckNhckxpbmtzLmNMaXN0RXhwZW5kZWQgbGkuY0l0ZW1FeHBlbmR7IGRpc3BsYXk6YmxvY2s7IH0gLmNFeHBlbmRMaXN0IGJ1dHRvbnsgcGFkZGluZzp2YXIoLS1zKSAwOyBiYWNrZ3JvdW5kOm5vbmU7IH0gLmNvbmRpdGlvbnNGb290ZXIgeyBjb2xvcjp2YXIoLS1mb290ZXItY29uZGl0aW9ucy1jb2xvciwgIzkxOTE5MSk7IC0tdHh0LWNvbG9yOnZhcigtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yKTsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiB7IHBvc2l0aW9uOmZpeGVkOyBib3R0b206MTBweDsgbWFyZ2luOjVweCA1cHggMTVweCAxNXB4OyB6LWluZGV4OjQ7IHdpZHRoOjE0MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I2VhMDAyOTsgdGV4dC1hbGlnbjpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRyYWRlaW5iYXItYnRuLWJnKTsgY29sb3I6IHZhcigtLXRyYWRlaW5iYXItYnRuLWNvbG9yKTsgYWxpZ24taXRlbXM6Y2VudGVyOyBib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXdpZHRoOjFweCAzcHggNHB4IDFweDsgYm9yZGVyLWNvbG9yOiMzMzMzMzM7IHBhZGRpbmctdG9wOjEwcHg7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24gaXsgZGlzcGxheTppbmxpbmUtZmxleDsgYm9yZGVyLXJhZGl1czoxMDAlOyB3aWR0aDoyZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGhlaWdodDoxLjVlbTsgY29sb3I6IzAwMDsgZmxvYXQ6bGVmdDsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbi53aXRoVG9hc3RlciB7IGJvdHRvbTo1cmVtOyB9ICN0cmFkZUluQmFyUG9wdXBfbGluZTF7IGJhY2tncm91bmQtY29sb3I6I2YxZjFmMTsgYm9yZGVyOjFweCBzb2xpZCBncmV5OyBwYWRkaW5nOjIwcHggNDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJ0bi50cmFkZUluQmFyUG9wdXBTdWJtaXR7IHBhZGRpbmc6MC43NXJlbSAwLjM3NXJlbTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLWNvbG9yOiMwMDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyBpbnB1dHsgbWFyZ2luOjVweCAwIDA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtV3sgaGVpZ2h0OjU4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2stdGV4dCk7IHBhZGRpbmc6MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyBpbnB1dHsgcGFkZGluZzoxMXB4IDEwcHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHdpZHRoOjI1MHB4OyBtYXJnaW46NXB4IDAgMDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5IWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyBhcHBlYXJhbmNlOm5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjVweCAwIDA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnRyYWRpblNlbGVjdCwgLnRyYWRpblNlbGVjdFBvcHVwIHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IG1hcmdpbjo1cHggMCAwOyBhcHBlYXJhbmNlOm5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgfSAudHJhZGluU2VsZWN0QSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC50cmFkaW5TZWxlY3RBOmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gLmVtYWlsQm9keSwgLmVtYWlsU3ViamVjdHsgZGlzcGxheTpub25lOyB9IC5yZXZlYWwtbW9kYWw6bm90KCNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyKSAqOm5vdCguZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgOmlzKGlucHV0LCBzZWxlY3QpKXsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5yZXZlYWwtbW9kYWw6bm90KCNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyKSA6aXMoaW5wdXRbdHlwZT0idGV4dCJdOm5vdCguZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gaW5wdXQpLGlucHV0W3R5cGU9ImVtYWlsIl0saW5wdXRbdHlwZT0idGVsIl0sc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0LCBzZWxlY3Quc3RlcDI0c2VsZWN0KSl7IHBhZGRpbmc6MC40cmVtOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItcmFkaXVzOjAuM3JlbTsgd2lkdGg6MTAwJTsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IH0gW2RhdGEtcGFnZT0iSE9NRVBBR0UiXXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lLWJnLWNvbG9yLCAjRkZGRkZGKTsgfSAueXQtYmctY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5iYW5uZXItYmctY29udGFpbmVyeyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOmNvbG9yOyB9ICN5b3V0dWJlX19jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nLWJvdHRvbTptaW4oY2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQsMTByZW0pKSw2N3Z3KTsgYmFja2dyb3VuZC1jb2xvcjojODg4OyB9ICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotNDUlOyBsZWZ0Oi0xMCU7IGhlaWdodDoxOTAlOyB3aWR0aDoxMjAlOyBwb2ludGVyLWV2ZW50czpub25lOyB9ICN5b3V0dWJlX19jb250YWluZXI6aXMoLmZ1bGxIZWlnaHQsLnZpc2libGVIZWlnaHQpeyBwYWRkaW5nLWJvdHRvbTpjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCwxMHJlbSkpOyB9IDppcyguZnVsbEhlaWdodCwudmlzaWJsZUhlaWdodCkgI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBoZWlnaHQ6MTAwJTsgdG9wOjA7IH0gI3lvdXR1YmVfX2NvbnRhaW5lci5mdWxsV2lkdGh7IHBhZGRpbmctYm90dG9tOjU2LjI1JTsgfSAjbW9iaWxlU2xpZGVyICN5b3V0dWJlX19jb250YWluZXJ7IHBhZGRpbmctYm90dG9tOm1heCg2N3Z3LDI0cmVtKTsgfSAjbW9iaWxlU2xpZGVyICN5b3V0dWJlX19jb250YWluZXIgI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lcnsgaGVpZ2h0Om1heCg2N3Z3LDI0cmVtKTsgbWluLWhlaWdodDoxOHJlbTsgei1pbmRleDoxOyB9IC5mdWxsV2lkdGggI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBoZWlnaHQ6MTIwJTsgdG9wOi0xMCU7IH0gLnl0LXZpZGVveyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IH0gLnl0LXBsYXl7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3NiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOkNDIEJZIDQuMCwgRm9udHM6U0lMIE9GTCAxLjEsIENvZGU6TUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6IiBmaWxsPSIlMjNjMzNjMmQiIC8lM0UlM0Mvc3ZnJTNFJyk7IHdpZHRoOjVyZW07IGhlaWdodDo1cmVtOyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBvcGFjaXR5OjAuNzsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OmNhbGMoMTAwdncgLyAoMTYgLyA5KSk7IG92ZXJmbG93OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgfSAubW9iaWxlX2J1c2luZXNzRGVzYyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCkpOyB9IC5idXNpbmVzc0Rlc2MgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iLCB2YXIoLS1mb290ZXItYmctY29sb3IpKTsgY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iLCB2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpKTsgfSAuYnVzaW5lc3NEZXNjICogeyBsaW5lLWhlaWdodDoxLjVyZW07IH0gLndyYXBwZXIgeyBtYXJnaW46MCBhdXRvOyB3aWR0aDo5NjBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmxhbmd1YWdlQmFyIHsgbWFyZ2luOjFyZW0gYXV0byA1cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjAgdmFyKC0tcyk7IH0gLnYtY2FyZC50b3BfYmcgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgbWluLWhlaWdodDo4cmVtOyBwYWRkaW5nOjAgdmFyKC0tcyk7IH0gLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTpmbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGFsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9ICN0cmFkZUluQmFyTW9iaWxleyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6NXB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46M3B4IDVweCA1cHggNXB4OyB9ICN0cmFkZUluQmFyTW9iaWxlIC5taWRkbGV7IGNvbG9yOiNmZmZmZmY7IH0gI3RyYWRlSW5CYXJNb2JpbGUgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgcGFkZGluZzo1cHggMjBweCAwcHggMjBweDsgfSAjdHJhZGVJbkJhck1vYmlsZSAuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXIgZGl2eyBtYXgtd2lkdGg6MzMwcHg7IG1hcmdpbjoxMHB4IGF1dG87IHBhZGRpbmc6MTJweCAwOyBib3JkZXItcmFkaXVzOjJweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tYmctY29sb3IpOyB9ICN0cmFkZUluQmFyTW9iaWxlIC5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlciBheyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgZm9udC13ZWlnaHQ6NzAwOyB9ICN0cmFkZUluQmFyTW9iaWxlICNkZWZhdWx0VG9wQmFubmVyTG9nbyBzcGFueyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDozMDA7IGNvbG9yOnZhcigtLW1pZC1ncmF5KTsgfSAjdHJhZGVJbkJhcnsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10cmFkZWluYmFyLWJnKTsgY29sb3I6IHZhcigtLXRyYWRlaW5iYXItY29sb3IpOyB9ICN0cmFkZUluQmFyV01vYmlsZSwgI3RyYWRlSW5CYXJXIHsgZGlzcGxheTpmbGV4OyBtaW4taGVpZ2h0OjUwcHg7IG1hcmdpbjphdXRvOyB3aWR0aDptaW4oMTAwJSwxMzUwcHgpOyBwb3NpdGlvbjpyZWxhdGl2ZTsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gPiBheyBwYWRkaW5nOjRweCAxMnB4OyBoZWlnaHQ6MThweDsgbGluZS1oZWlnaHQ6MThweDsgYm9yZGVyLXJhZGl1czowOyBmb250LXdlaWdodDpub3JtYWw7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZywgdmFyKC0tbGFuZ3VhZ2UtYnRuLWFjdGl2ZS1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLCB3aGl0ZSApOyB9IC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSBhOmhvdmVyIHsgYm9yZGVyLWNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmcsIHZhcigtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3IpKTsgfSAjYWxlcnRNc2dDb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IHotaW5kZXg6OTk5OyB3aWR0aDoxMDAlOyBjb2xvcjp3aGl0ZTsgYm94LXNpemluZzpib3JkZXItYm94OyBjb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yKTsgZm9udC13ZWlnaHQ6NjAwOyB9ICNhbGVydE1zZ0NvbnRhaW5lci5zdGljay10b3B7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHotaW5kZXg6OTk5OTk7IH0gQG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpIHsgLmFsZXJ0LWhpZGUtb24tbW9iaWxlIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gfSAuZmEtZml4LWNlbnRlcjpiZWZvcmUgeyB3aWR0aDoxLjVlbTsgaGVpZ2h0OjEuNWVtOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGRpc3BsYXk6ZmxleDsgfSAjeW91dHViZV9fY29udGFpbmVyLmZ1bGxzY3JlZW57IG9iamVjdC1maXQ6Y292ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBvcGFjaXR5OjAuODsgfSAubWFpbkRpdkFkanVzdEhlYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzLCBib3JkZXIgLjNzOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgfSAubWFpbkRpdkFkanVzdEhlYWRlci53aXRoLWFsZXJ0IHsgdG9wOjQwcHg7IH0gLnBheW1lbnRCbG9ja0NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tY2VydC1jb25jcmV0ZS1ncmF5LCB2YXIoLS1saWdodC1ncmF5KSk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLnZlaGljbGVMb2NhdGlvbnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2RkZDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmxpbmVTZXBhcmF0b3J7IGJvcmRlci10b3A6MXB4IHNvbGlkICNBOUE5QTk7IG1hcmdpbi10b3A6NDBweDsgbWFyZ2luLWJvdHRvbTo0MHB4OyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5mYS1oYW5kLXBvaW50ZXItY29sb3IgeyBjb2xvcjojZmZmZmZmOyBtYXJnaW4tcmlnaHQ6NXB4OyBtYXJnaW4tdG9wOjVweDsgfSAuY29uZmxpY3QtcmVzb2x2ZS1vcHRpb25zIHsgZm9udC1zaXplOjAuODEzcmVtIDsgfQovKiogL2Nzcy9mb250YXdlc29tZS1hbGwubWluLmNzcyAqKi8KLmZhLC5mYXMsLmZhciwuZmFsLC5mYWQsLmZhYnstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtcmVuZGVyaW5nOmF1dG87bGluZS1oZWlnaHQ6MX0uZmEtbGd7Zm9udC1zaXplOjEuMzMzMzNlbTtsaW5lLWhlaWdodDouNzVlbTt2ZXJ0aWNhbC1hbGlnbjotLjA2NjdlbX0uZmEteHN7Zm9udC1zaXplOi43NWVtfS5mYS1zbXtmb250LXNpemU6Ljg3NWVtfS5mYS0xeHtmb250LXNpemU6MWVtfS5mYS0yeHtmb250LXNpemU6MmVtfS5mYS0zeHtmb250LXNpemU6M2VtfS5mYS00eHtmb250LXNpemU6NGVtfS5mYS01eHtmb250LXNpemU6NWVtfS5mYS02eHtmb250LXNpemU6NmVtfS5mYS03eHtmb250LXNpemU6N2VtfS5mYS04eHtmb250LXNpemU6OGVtfS5mYS05eHtmb250LXNpemU6OWVtfS5mYS0xMHh7Zm9udC1zaXplOjEwZW19LmZhLWZ3e3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEuMjVlbX0uZmEtdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLWxlZnQ6Mi41ZW07cGFkZGluZy1sZWZ0OjB9LmZhLXVsID4gbGl7cG9zaXRpb246cmVsYXRpdmV9LmZhLWxpe2xlZnQ6LTJlbTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoyZW07bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtYm9yZGVye2JvcmRlcjpzb2xpZCAuMDhlbSAjZWVlO2JvcmRlci1yYWRpdXM6LjFlbTtwYWRkaW5nOi4yZW0gLjI1ZW0gLjE1ZW19LmZhLXB1bGwtbGVmdHtmbG9hdDpsZWZ0fS5mYS1wdWxsLXJpZ2h0e2Zsb2F0OnJpZ2h0fS5mYS5mYS1wdWxsLWxlZnQsLmZhcy5mYS1wdWxsLWxlZnQsLmZhci5mYS1wdWxsLWxlZnQsLmZhbC5mYS1wdWxsLWxlZnQsLmZhYi5mYS1wdWxsLWxlZnR7bWFyZ2luLXJpZ2h0Oi4zZW19LmZhLmZhLXB1bGwtcmlnaHQsLmZhcy5mYS1wdWxsLXJpZ2h0LC5mYXIuZmEtcHVsbC1yaWdodCwuZmFsLmZhLXB1bGwtcmlnaHQsLmZhYi5mYS1wdWxsLXJpZ2h0e21hcmdpbi1sZWZ0Oi4zZW19LmZhLXNwaW57LXdlYmtpdC1hbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7YW5pbWF0aW9uOmZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyfS5mYS1wdWxzZXstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpO2FuaW1hdGlvbjpmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpfUAtd2Via2l0LWtleWZyYW1lcyBmYS1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5mYS1yb3RhdGUtOTB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5mYS1yb3RhdGUtMTgwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5mYS1yb3RhdGUtMjcwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Myk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfS5mYS1mbGlwLWhvcml6b250YWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MCxtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLDEpO3RyYW5zZm9ybTpzY2FsZSgtMSwxKX0uZmEtZmxpcC12ZXJ0aWNhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSwtMSk7dHJhbnNmb3JtOnNjYWxlKDEsLTEpfS5mYS1mbGlwLWJvdGgsLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwtMSk7dHJhbnNmb3JtOnNjYWxlKC0xLC0xKX06cm9vdCAuZmEtcm90YXRlLTkwLDpyb290IC5mYS1yb3RhdGUtMTgwLDpyb290IC5mYS1yb3RhdGUtMjcwLDpyb290IC5mYS1mbGlwLWhvcml6b250YWwsOnJvb3QgLmZhLWZsaXAtdmVydGljYWwsOnJvb3QgLmZhLWZsaXAtYm90aHstd2Via2l0LWZpbHRlcjpub25lO2ZpbHRlcjpub25lfS5mYS1zdGFja3tkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MmVtO2xpbmUtaGVpZ2h0OjJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6Mi41ZW19LmZhLXN0YWNrLTF4LC5mYS1zdGFjay0yeHtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0uZmEtc3RhY2stMXh7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtc3RhY2stMnh7Zm9udC1zaXplOjJlbX0uZmEtaW52ZXJzZXtjb2xvcjojZmZmfS5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1hY2Nlc3NpYmxlLWljb246YmVmb3Jle2NvbnRlbnQ6IlxmMzY4In0uZmEtYWRkcmVzcy1ib29rOmJlZm9yZXtjb250ZW50OiJcZjJiOSJ9LmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYmIifS5mYS1haXItZnJlc2hlbmVyOmJlZm9yZXtjb250ZW50OiJcZjVkMCJ9LmZhLWFsYXJtLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjM0ZSJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjE3OSJ9LmZhLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTg3In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzViIn0uZmEtYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU0In0uZmEtYXJyb3ctYWx0LWZyb20tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0NiJ9LmZhLWFycm93LWFsdC1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ3In0uZmEtYXJyb3ctYWx0LWZyb20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ4In0uZmEtYXJyb3ctYWx0LWZyb20tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0OSJ9LmZhLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1NSJ9LmZhLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTYifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzUwIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1MSJ9LmZhLWFycm93LWFsdC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUyIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNTMifS5mYS1hcnJvdy1hbHQtdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0YSJ9LmZhLWFycm93LWFsdC10by1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0YiJ9LmZhLWFycm93LWFsdC10by1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNGMifS5mYS1hcnJvdy1hbHQtdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0ZCJ9LmZhLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzNTcifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQyIn0uZmEtYXJyb3ctZnJvbS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0MyJ9LmZhLWFycm93LWZyb20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ0In0uZmEtYXJyb3ctZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ1In0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMzkifS5mYS1hcnJvdy1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzM2EifS5mYS1hcnJvdy1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNiIn0uZmEtYXJyb3ctc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMzYyJ9LmZhLWFycm93LXRvLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzM2QifS5mYS1hcnJvdy10by1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzZSJ9LmZhLWFycm93LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0MCJ9LmZhLWFycm93LXRvLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ3In0uZmEtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwYjIifS5mYS1hcnJvd3MtYWx0LWg6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZXtjb250ZW50OiJcZjMzOCJ9LmZhLWFycm93cy1oOmJlZm9yZXtjb250ZW50OiJcZjA3ZSJ9LmZhLWFycm93cy12OmJlZm9yZXtjb250ZW50OiJcZjA3ZCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDoiXGYyYTIifS5mYS1hdDpiZWZvcmV7Y29udGVudDoiXGYxZmEifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hd2FyZDpiZWZvcmV7Y29udGVudDoiXGY1NTkifS5mYS1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYzMzUifS5mYS1iYWRnZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYzMzYifS5mYS1iYW46YmVmb3Jle2NvbnRlbnQ6IlxmMDVlIn0uZmEtYmFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMmEifS5mYS1iYXJjb2RlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0NjMifS5mYS1iYXJzOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWJhdHRlcnktZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyNDAifS5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjQyIn0uZmEtYmVsbDpiZWZvcmV7Y29udGVudDoiXGYwZjMifS5mYS1iZWxsLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjg0OCJ9LmZhLWJlbGwtcGx1czpiZWZvcmV7Y29udGVudDoiXGY4NDkifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLWJsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmNzgxIn0uZmEtYmxvZ2dlcjpiZWZvcmV7Y29udGVudDoiXGYzN2MifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OiJcZjI5MyJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLWJvbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtYm94LW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNDllIn0uZmEtYnJvYWRjYXN0LXRvd2VyOmJlZm9yZXtjb250ZW50OiJcZjUxOSJ9LmZhLWJ0YzpiZWZvcmV7Y29udGVudDoiXGYxNWEifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxmMGExIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWJ1cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTVlIn0uZmEtYnVzLXNjaG9vbDpiZWZvcmV7Y29udGVudDoiXGY1ZGQifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLWNhbGN1bGF0b3ItYWx0OmJlZm9yZXtjb250ZW50OiJcZjY0YyJ9LmZhLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1jYWxlbmRhci1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMzMyJ9LmZhLWNhbGVuZGFyLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjMzNCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1jYW1lcmEtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMzMiJ9LmZhLWNhbWVyYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjhmZSJ9LmZhLWNhcjpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjVkZSJ9LmZhLWNhci1iYXR0ZXJ5OmJlZm9yZXtjb250ZW50OiJcZjVkZiJ9LmZhLWNhci1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGY4NTkifS5mYS1jYXItYnVtcDpiZWZvcmV7Y29udGVudDoiXGY1ZTAifS5mYS1jYXItYnVzOmJlZm9yZXtjb250ZW50OiJcZjg1YSJ9LmZhLWNhci1jcmFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZTEifS5mYS1jYXItZ2FyYWdlOmJlZm9yZXtjb250ZW50OiJcZjVlMiJ9LmZhLWNhci1tZWNoYW5pYzpiZWZvcmV7Y29udGVudDoiXGY1ZTMifS5mYS1jYXItc2lkZTpiZWZvcmV7Y29udGVudDoiXGY1ZTQifS5mYS1jYXItdGlsdDpiZWZvcmV7Y29udGVudDoiXGY1ZTUifS5mYS1jYXItd2FzaDpiZWZvcmV7Y29udGVudDoiXGY1ZTYifS5mYS1jYXJhdmFuOmJlZm9yZXtjb250ZW50OiJcZjhmZiJ9LmZhLWNhcmF2YW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZTAwMCJ9LmZhLWNhcmV0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyZCJ9LmZhLWNhcmV0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyZSJ9LmZhLWNhcmV0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMzAifS5mYS1jYXJldC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzMxIn0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNhcmV0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1MCJ9LmZhLWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWNhcmV0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1jYXJldC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ4In0uZmEtY2FyczpiZWZvcmV7Y29udGVudDoiXGY4NWIifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIxNyJ9LmZhLWNjLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZjQifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFpcjpiZWZvcmV7Y29udGVudDoiXGY2YzAifS5mYS1jaGFsa2JvYXJkOmJlZm9yZXtjb250ZW50OiJcZjUxYiJ9LmZhLWNoYXJnaW5nLXN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNWU3In0uZmEtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifS5mYS1jaGFydC1saW5lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmNjRkIn0uZmEtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDBjIn0uZmEtY2hlY2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OCJ9LmZhLWNoZWNrLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGY1NjAifS5mYS1jaGVjay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRhIn0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzIyIn0uZmEtY2hldnJvbi1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMjMifS5mYS1jaGV2cm9uLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMjQifS5mYS1jaGV2cm9uLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMjUifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtY2hldnJvbi1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjkifS5mYS1jaGV2cm9uLXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyYSJ9LmZhLWNoZXZyb24tc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyYiJ9LmZhLWNoZXZyb24tc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyYyJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDc3In0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS1jaXR5OmJlZm9yZXtjb250ZW50OiJcZjY0ZiJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWQifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZSJ9LmZhLWNsb3VkLXVwbG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgyIn0uZmEtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYzMjcifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1jb21tZW50LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50LWFsdC1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0YTIifS5mYS1jb21tZW50LWFsdC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUwIn0uZmEtY29tbWVudC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUxIn0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtY29tbWVudHMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjRiNiJ9LmZhLWNvbW1lbnRzLWFsdC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUyIn0uZmEtY29tbWVudHMtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MyJ9LmZhLWNvbXByZXNzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MjIifS5mYS1jb21wcmVzcy1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjc4YyJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNvdWNoOmJlZm9yZXtjb250ZW50OiJcZjRiOCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNGYyIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDlkIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjFjMCJ9LmZhLWRlc2t0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA4In0uZmEtZGlhbW9uZDpiZWZvcmV7Y29udGVudDoiXGYyMTkifS5mYS1kaWdpdGFsLXRhY2hvZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmNTY2In0uZmEtZG9sbGFyLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzliIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbGxpcHNpcy12LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWMifS5mYS1lbmdpbmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY1ZjIifS5mYS1lbnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXGYwZTAifS5mYS1lbnZlbG9wZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjJiNiJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTJkIn0uZmEtZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGVjIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzIxIn0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZXhwYW5kLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MjQifS5mYS1leHBhbmQtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZjMxZCJ9LmZhLWV4cGFuZC1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWV4dGVybmFsLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMDhlIn0uZmEtZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVkIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MCJ9LmZhLWV5ZTpiZWZvcmV7Y29udGVudDoiXGYwNmUifS5mYS1leWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDcwIn0uZmEtZmFjZWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDlhIn0uZmEtZmFjZWJvb2stZjpiZWZvcmV7Y29udGVudDoiXGYzOWUifS5mYS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzlmIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDoiXGYxYWMifS5mYS1maWxlOmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9LmZhLWZpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxYzYifS5mYS1maWxlLWF1ZGlvOmJlZm9yZXtjb250ZW50OiJcZjFjNyJ9LmZhLWZpbGUtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGY2NTkifS5mYS1maWxlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMxNiJ9LmZhLWZpbGUtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxYzkifS5mYS1maWxlLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjU2ZCJ9LmZhLWZpbGUtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYzMWMifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzFhIn0uZmEtZmlsZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZlIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLWltcG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmYifS5mYS1maWxlLWludm9pY2UtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjU3MSJ9LmZhLWZpbGUtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE4In0uZmEtZmlsZS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGY4YjYifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE5In0uZmEtZmlsZS1wb3dlcnBvaW50OmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9LmZhLWZpbGUtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjg2NSJ9LmZhLWZpbGUtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE3In0uZmEtZmlsZS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLWZpbmdlcnByaW50OmJlZm9yZXtjb250ZW50OiJcZjU3NyJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWFsdDpiZWZvcmV7Y29udGVudDoiXGY3NGMifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbHV4LWNhcGFjaXRvcjpiZWZvcmV7Y29udGVudDoiXGY4YmEifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTA1MyJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWZvbGRlci11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDU0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnJvd24tb3BlbjpiZWZvcmV7Y29udGVudDoiXGY1N2EifS5mYS1nYWxhY3RpYy1zZW5hdGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTBkIn0uZmEtZ2FyYWdlOmJlZm9yZXtjb250ZW50OiJcZTAwOSJ9LmZhLWdhcmFnZS1jYXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDBhIn0uZmEtZ2FyYWdlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMDBiIn0uZmEtZ2FzLXB1bXA6YmVmb3Jle2NvbnRlbnQ6IlxmNTJmIn0uZmEtZ2FzLXB1bXAtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWY0In0uZmEtZ2xhc3NlczpiZWZvcmV7Y29udGVudDoiXGY1MzAifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ3JpcC1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZjU4ZCJ9LmZhLWdyaXAtbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxmN2E0In0uZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY3YTUifS5mYS1ncmlwLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjU4ZSJ9LmZhLWhhbmQtaG9sZGluZy11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmNGMwIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmRzLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzUifS5mYS1oYXNodGFnOmJlZm9yZXtjb250ZW50OiJcZjI5MiJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0LWJyb2tlbjpiZWZvcmV7Y29udGVudDoiXGY3YTkifS5mYS1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMxMiJ9LmZhLWhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWRhIn0uZmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGYwMTUifS5mYS1ob21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MGEifS5mYS1ob21lLWxnOmJlZm9yZXtjb250ZW50OiJcZjgwYiJ9LmZhLWhvbWUtbGctYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYyJ9LmZhLWhvdXNlOmJlZm9yZXtjb250ZW50OiJcZTAwZCJ9LmZhLWktY3Vyc29yOmJlZm9yZXtjb250ZW50OiJcZjI0NiJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluYm94LWluOmJlZm9yZXtjb250ZW50OiJcZjMxMCJ9LmZhLWluYm94LW91dDpiZWZvcmV7Y29udGVudDoiXGYzMTEifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluZm8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjMwZiJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnN0YWdyYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZTA1NSJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYWIifS5mYS1sYXNzbzpiZWZvcmV7Y29udGVudDoiXGY4YzgifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OiJcZjA2YyJ9LmZhLWxldmVsLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OiJcZjEyNCJ9LmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtbG9uZy1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMGEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMGIifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzMGMifS5mYS1sb25nLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9LmZhLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0uZmEtbG9uZy1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYxNzYifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1tYXAtbWFya2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWExIn0uZmEtbWVkYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNWEyIn0uZmEtbWVoOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjOSJ9LmZhLW1pY3JvcGhvbmUtYWx0LXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjUzOSJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWluZC1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY2NzcifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtbWludXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDcifS5mYS1taW51cy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwOCJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2JpbGUtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYzY2UifS5mYS1tb2JpbGUtYW5kcm9pZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NmIn0uZmEtbW9uZXktY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNTNjIn0uZmEtbW9uZXktY2hlY2stYWx0OmJlZm9yZXtjb250ZW50OiJcZjUzZCJ9LmZhLW1vbmV5LWNoZWNrLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmODcyIn0uZmEtbW9uZXktY2hlY2stZWRpdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODczIn0uZmEtbW90b3JjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMWMifS5mYS1tb3VudGFpbjpiZWZvcmV7Y29udGVudDoiXGY2ZmMifS5mYS1tb3VzZS1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI0NSJ9LmZhLW1wMy1wbGF5ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmOGNlIn0uZmEtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDAxIn0uZmEtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDYifS5mYS1vaWwtY2FuOmJlZm9yZXtjb250ZW50OiJcZjYxMyJ9LmZhLW9pbC10ZW1wOmJlZm9yZXtjb250ZW50OiJcZjYxNCJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGV0dGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTNmIn0uZmEtcGFwZXItcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGVhIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLXBlbjpiZWZvcmV7Y29udGVudDoiXGYzMDQifS5mYS1wZW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwNSJ9LmZhLXBlbi1mYW5jeTpiZWZvcmV7Y29udGVudDoiXGY1YWMifS5mYS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDQwIn0uZmEtcGVuY2lsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDMifS5mYS1wZW5jaWwtcnVsZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWFlIn0uZmEtcGVvcGxlLWFycm93czpiZWZvcmV7Y29udGVudDoiXGUwNjgifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODc5In0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLXBob25lLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODdiIn0uZmEtcGhvbmUtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjJhMCJ9LmZhLXBob3RvLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjg3YyJ9LmZhLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDIifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkMyJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtcGx1ZzpiZWZvcmV7Y29udGVudDoiXGYxZTYifS5mYS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjA2NyJ9LmZhLXBsdXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NSJ9LmZhLXBsdXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDAifS5mYS1wbHVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzAxIn0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZlIn0uZmEtcG9vOmJlZm9yZXtjb250ZW50OiJcZjJmZSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMjkifS5mYS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMjgifS5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU5In0uZmEtcXVlc3Rpb24tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJmZCJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXJlY3RhbmdsZS1sYW5kc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZhIn0uZmEtcmVjdGFuZ2xlLXBvcnRyYWl0OmJlZm9yZXtjb250ZW50OiJcZjJmYiJ9LmZhLXJlY3RhbmdsZS13aWRlOmJlZm9yZXtjb250ZW50OiJcZjJmYyJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZXBlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYzIn0uZmEtcmVwZWF0LTE6YmVmb3Jle2NvbnRlbnQ6IlxmMzY1In0uZmEtcmVwZWF0LTEtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2NiJ9LmZhLXJlcGVhdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY0In0uZmEtcmVwbHk6YmVmb3Jle2NvbnRlbnQ6IlxmM2U1In0uZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcmV0d2VldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYxIn0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2JvdDpiZWZvcmV7Y29udGVudDoiXGY1NDQifS5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDMifS5mYS1ydjpiZWZvcmV7Y29udGVudDoiXGY3YmUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjcmV3ZHJpdmVyOmJlZm9yZXtjb250ZW50OiJcZjU0YSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1zZWFyY2gtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDEwIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2hhcGVzOmJlZm9yZXtjb250ZW50OiJcZjYxZiJ9LmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLXNoYXJlLWFsbDpiZWZvcmV7Y29udGVudDoiXGYzNjcifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hpZWxkOmJlZm9yZXtjb250ZW50OiJcZjEzMiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2VkIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2h1dHRsZS12YW46YmVmb3Jle2NvbnRlbnQ6IlxmNWI2In0uZmEtc2lnbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwOTAifS5mYS1zaWduLWluLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjYifS5mYS1zaWduLW91dDpiZWZvcmV7Y29udGVudDoiXGYwOGIifS5mYS1zaWduLW91dC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY1In0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjAxMiJ9LmZhLXNpZ25hbC1zdHJlYW06YmVmb3Jle2NvbnRlbnQ6IlxmOGRkIn0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVycy1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzZjAifS5mYS1zbGlkZXJzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmM2YxIn0uZmEtc2xpZGVycy12LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzZjIifS5mYS1zbWlsZTpiZWZvcmV7Y29udGVudDoiXGYxMTgifS5mYS1zbXM6YmVmb3Jle2NvbnRlbnQ6IlxmN2NkIn0uZmEtc25vd2ZsYWtlOmJlZm9yZXtjb250ZW50OiJcZjJkYyJ9LmZhLXNvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRjIn0uZmEtc29ydC1hbHBoYS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgxIn0uZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFscGhhLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODIifS5mYS1zb3J0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODMifS5mYS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9LmZhLXNvcnQtYW1vdW50LWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NCJ9LmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLXNvcnQtYW1vdW50LXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODUifS5mYS1zb3J0LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwMzAifS5mYS1zb3J0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTAzMSJ9LmZhLXNvcnQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZTAzMiJ9LmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjIifS5mYS1zb3J0LW51bWVyaWMtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg2In0uZmEtc29ydC1udW1lcmljLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXNvcnQtbnVtZXJpYy11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg3In0uZmEtc29ydC1zaGFwZXMtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4ODgifS5mYS1zb3J0LXNoYXBlcy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODkifS5mYS1zb3J0LXNoYXBlcy11cDpiZWZvcmV7Y29udGVudDoiXGY4OGEifS5mYS1zb3J0LXNoYXBlcy11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhiIn0uZmEtc29ydC1zaXplLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmODhjIn0uZmEtc29ydC1zaXplLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4ZCJ9LmZhLXNvcnQtc2l6ZS11cDpiZWZvcmV7Y29udGVudDoiXGY4OGUifS5mYS1zb3J0LXNpemUtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4ZiJ9LmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtc3BhZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmY0In0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1zcGlubmVyLXRoaXJkOmJlZm9yZXtjb250ZW50OiJcZjNmNCJ9LmZhLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwYzgifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXN0YXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmYzIn0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLXN0YXItaGFsZi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWMwIn0uZmEtc3RlZXJpbmctd2hlZWw6YmVmb3Jle2NvbnRlbnQ6IlxmNjIyIn0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtc3RvcHdhdGNoOmJlZm9yZXtjb250ZW50OiJcZjJmMiJ9LmZhLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjU0ZSJ9LmZhLXN0b3JlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NGYifS5mYS1zdWl0Y2FzZS1yb2xsaW5nOmJlZm9yZXtjb250ZW50OiJcZjVjMSJ9LmZhLXN1bjpiZWZvcmV7Y29udGVudDoiXGYxODUifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxldDpiZWZvcmV7Y29udGVudDoiXGYxMGEifS5mYS10YWJsZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmYSJ9LmZhLXRhY2hvbWV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGU0In0uZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZkIn0uZmEtdGFjaG9tZXRlci1hbHQtYXZlcmFnZTpiZWZvcmV7Y29udGVudDoiXGY2MjQifS5mYS10YWNob21ldGVyLWFsdC1mYXN0OmJlZm9yZXtjb250ZW50OiJcZjYyNSJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI2In0uZmEtdGFjaG9tZXRlci1hbHQtc2xvdzpiZWZvcmV7Y29udGVudDoiXGY2MjcifS5mYS10YWNob21ldGVyLWFsdC1zbG93ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyOCJ9LmZhLXRhY2hvbWV0ZXItYXZlcmFnZTpiZWZvcmV7Y29udGVudDoiXGY2MjkifS5mYS10YWNob21ldGVyLWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJhIn0uZmEtdGFjaG9tZXRlci1mYXN0ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyYiJ9LmZhLXRhY2hvbWV0ZXItc2xvdzpiZWZvcmV7Y29udGVudDoiXGY2MmMifS5mYS10YWNob21ldGVyLXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJkIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtdGF4aTpiZWZvcmV7Y29udGVudDoiXGYxYmEifS5mYS10ZW1wZXJhdHVyZS1oaWdoOmJlZm9yZXtjb250ZW50OiJcZjc2OSJ9LmZhLXRlbXBlcmF0dXJlLWxvdzpiZWZvcmV7Y29udGVudDoiXGY3NmIifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZjAzNSJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTY1In0uZmEtdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9LmZhLXRpY2tldDpiZWZvcmV7Y29udGVudDoiXGYxNDUifS5mYS10aWt0b2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDdiIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbWVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMmVlIn0uZmEtdGltZXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZjAifS5mYS10aW1lcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQzIn0uZmEtdGludDpiZWZvcmV7Y29udGVudDoiXGYwNDMifS5mYS10aXJlOmJlZm9yZXtjb250ZW50OiJcZjYzMSJ9LmZhLXRpcmUtZmxhdDpiZWZvcmV7Y29udGVudDoiXGY2MzIifS5mYS10aXJlLXByZXNzdXJlLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNjMzIn0uZmEtdGlyZS1ydWdnZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjM0In0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdG9vbHM6YmVmb3Jle2NvbnRlbnQ6IlxmN2Q5In0uZmEtdHJhaWxlcjpiZWZvcmV7Y29udGVudDoiXGUwNDEifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJhc2gtcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGY4MjkifS5mYS10cmFzaC1yZXN0b3JlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MmEifS5mYS10cmFzaC11bmRvOmJlZm9yZXtjb250ZW50OiJcZjg5NSJ9LmZhLXRyYXNoLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg5NiJ9LmZhLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjJlYyJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS10cm9waHktYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYiJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXRydWNrLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNGRlIn0uZmEtdHJ1Y2stbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGY2M2IifS5mYS10cnVjay1waWNrdXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjNjIn0uZmEtdHR5OmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9LmZhLXR2OmJlZm9yZXtjb250ZW50OiJcZjI2YyJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtdW5kbzpiZWZvcmV7Y29udGVudDoiXGYwZTIifS5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNkLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyZTgifS5mYS11c2Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJlOSJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDA2In0uZmEtdXNlci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0ZmMifS5mYS11c2VyLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyYmQifS5mYS11c2VyLWZyaWVuZHM6YmVmb3Jle2NvbnRlbnQ6IlxmNTAwIn0uZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGMwIn0uZmEtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMDNkIn0uZmEtdm9pY2VtYWlsOmJlZm9yZXtjb250ZW50OiJcZjg5NyJ9LmZhLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGY2YTgifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtbXV0ZTpiZWZvcmV7Y29udGVudDoiXGY2YTkifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYyZTIifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtd2Fnb24tY292ZXJlZDpiZWZvcmV7Y29udGVudDoiXGY4ZWUifS5mYS13YWxraWUtdGFsa2llOmJlZm9yZXtjb250ZW50OiJcZjhlZiJ9LmZhLXdlYmNhbTpiZWZvcmV7Y29udGVudDoiXGY4MzIifS5mYS13ZWJjYW0tc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmODMzIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDoiXGYxOTMifS5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQzMSJ9LmZhLXNoaWVsZC1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyZjcifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYxMjcifS5mYS1iYWRnZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjQ1In0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1jb21tZW50LWFsdC1kb3RzOmJlZm9yZXtjb250ZW50OiJcZjRhMyJ9LmZhLWFycm93LWRvd24tdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGYzM2QifS5mYS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTYiO30uc3Itb25seXtib3JkZXI6MDtjbGlwOnJlY3QoMCwwLDAsMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLC5zci1vbmx5LWZvY3VzYWJsZTpmb2N1c3tjbGlwOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0b31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBCcmFuZHMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFie2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBCcmFuZHMnO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjMwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFse2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtd2VpZ2h0OjMwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFye2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjkwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmEsLmZhc3tmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJyFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6OTAwfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0QyQ0N1c3RvbUljb25zJztzcmM6bG9jYWwoRDJDQ3VzdG9tSWNvbnMpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnN2ZyNzdmdGb250TmFtZSkgZm9ybWF0KCJzdmciKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9LmZhLXgtdHdpdHRlcjpiZWZvcmV7Zm9udC1mYW1pbHk6J0QyQ0N1c3RvbUljb25zJyxzZXJpZjtjb250ZW50OiJcZTkwMCI7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9Ci8qKiAvY3NzL2ZvbnQtYXdlc29tZS5jb250ZW50Lm1pbi5jc3MgKiovCi5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1hY2Nlc3NpYmxlLWljb246YmVmb3Jle2NvbnRlbnQ6IlxmMzY4In0uZmEtYWNjdXNvZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY5In0uZmEtYWRkcmVzcy1ib29rOmJlZm9yZXtjb250ZW50OiJcZjJiOSJ9LmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYmIifS5mYS1hZGp1c3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDQyIn0uZmEtYWRuOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9LmZhLWFkdmVyc2FsOmJlZm9yZXtjb250ZW50OiJcZjM2YSJ9LmZhLWFmZmlsaWF0ZXRoZW1lOmJlZm9yZXtjb250ZW50OiJcZjM2YiJ9LmZhLWFsZ29saWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZjIn0uZmEtYWxpZ24tY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZjAzNyJ9LmZhLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMDM5In0uZmEtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwMzYifS5mYS1hbGlnbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzgifS5mYS1hbWF6b246YmVmb3Jle2NvbnRlbnQ6IlxmMjcwIn0uZmEtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmMifS5mYS1hbWJ1bGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGY5In0uZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMmEzIn0uZmEtYW1pbGlhOmJlZm9yZXtjb250ZW50OiJcZjM2ZCJ9LmZhLWFuY2hvcjpiZWZvcmV7Y29udGVudDoiXGYxM2QifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWFuZ2VsbGlzdDpiZWZvcmV7Y29udGVudDoiXGYyMDkifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDMifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTA3In0uZmEtYW5nbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDQifS5mYS1hbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDUifS5mYS1hbmdsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDYifS5mYS1hbmdyeWNyZWF0aXZlOmJlZm9yZXtjb250ZW50OiJcZjM2ZSJ9LmZhLWFuZ3VsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIwIn0uZmEtYXBwLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjM2ZiJ9LmZhLWFwcC1zdG9yZS1pb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzcwIn0uZmEtYXBwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzcxIn0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXBwbGUtcGF5OmJlZm9yZXtjb250ZW50OiJcZjQxNSJ9LmZhLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTg3In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzViIn0uZmEtYXJyb3ctY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGFiIn0uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE4In0uZmEtYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhOSJ9LmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYwYWEifS5mYS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA2MyJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYwIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYxIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwYjIifS5mYS1hcnJvd3MtYWx0LWg6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZXtjb250ZW50OiJcZjMzOCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDoiXGYyYTIifS5mYS1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXGYwNjkifS5mYS1hc3ltbWV0cmlrOmJlZm9yZXtjb250ZW50OiJcZjM3MiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzczIn0uZmEtYXVkaW8tZGVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMjllIn0uZmEtYXV0b3ByZWZpeGVyOmJlZm9yZXtjb250ZW50OiJcZjQxYyJ9LmZhLWF2aWFuZXg6YmVmb3Jle2NvbnRlbnQ6IlxmMzc0In0uZmEtYXZpYXRvOmJlZm9yZXtjb250ZW50OiJcZjQyMSJ9LmZhLWF3czpiZWZvcmV7Y29udGVudDoiXGYzNzUifS5mYS1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGEifS5mYS1iYWxhbmNlLXNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjI0ZSJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYW5kY2FtcDpiZWZvcmV7Y29udGVudDoiXGYyZDUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmFzZWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzMifS5mYS1iYXNrZXRiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM0In0uZmEtYmF0aDpiZWZvcmV7Y29udGVudDoiXGYyY2QifS5mYS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjI0NCJ9LmZhLWJhdHRlcnktZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyNDAifS5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjQyIn0uZmEtYmF0dGVyeS1xdWFydGVyOmJlZm9yZXtjb250ZW50OiJcZjI0MyJ9LmZhLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjQxIn0uZmEtYmVkOmJlZm9yZXtjb250ZW50OiJcZjIzNiJ9LmZhLWJlZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGZjIn0uZmEtYmVoYW5jZTpiZWZvcmV7Y29udGVudDoiXGYxYjQifS5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYjUifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmljeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMDYifS5mYS1iaW1vYmplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMzc4In0uZmEtYmlub2N1bGFyczpiZWZvcmV7Y29udGVudDoiXGYxZTUifS5mYS1iaXJ0aGRheS1jYWtlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9LmZhLWJpdGJ1Y2tldDpiZWZvcmV7Y29udGVudDoiXGYxNzEifS5mYS1iaXRjb2luOmJlZm9yZXtjb250ZW50OiJcZjM3OSJ9LmZhLWJpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdhIn0uZmEtYmxhY2stdGllOmJlZm9yZXtjb250ZW50OiJcZjI3ZSJ9LmZhLWJsYWNrYmVycnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdiIn0uZmEtYmxpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjlkIn0uZmEtYmxvZ2dlcjpiZWZvcmV7Y29udGVudDoiXGYzN2MifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OiJcZjI5MyJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMyIn0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib21iOmJlZm9yZXtjb250ZW50OiJcZjFlMiJ9LmZhLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDJkIn0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtYm93bGluZy1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzNiJ9LmZhLWJyYWlsbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmExIn0uZmEtYnJpZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBiMSJ9LmZhLWJ0YzpiZWZvcmV7Y29udGVudDoiXGYxNWEifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxmMGExIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtYnVyb21vYmVsZXhwZXJ0ZTpiZWZvcmV7Y29udGVudDoiXGYzN2YifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnV5c2VsbGFkczpiZWZvcmV7Y29udGVudDoiXGYyMGQifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1jYWxlbmRhci1taW51czpiZWZvcmV7Y29udGVudDoiXGYyNzIifS5mYS1jYWxlbmRhci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjI3MSJ9LmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1jYW1lcmEtcmV0cm86YmVmb3Jle2NvbnRlbnQ6IlxmMDgzIn0uZmEtY2FyOmJlZm9yZSwuZmEtYXV0b21vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIxNyJ9LmZhLWNjLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJkIn0uZmEtY2MtYW1leDpiZWZvcmV7Y29udGVudDoiXGYxZjMifS5mYS1jYy1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE2In0uZmEtY2MtZGluZXJzLWNsdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjRjIn0uZmEtY2MtZGlzY292ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWYyIn0uZmEtY2MtamNiOmJlZm9yZXtjb250ZW50OiJcZjI0YiJ9LmZhLWNjLW1hc3RlcmNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNjLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGYxZjUifS5mYS1jYy12aXNhOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9LmZhLWNlbnRlcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzgwIn0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtY2hhcnQtYXJlYTpiZWZvcmV7Y29udGVudDoiXGYxZmUifS5mYS1jaGFydC1iYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDgwIn0uZmEtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifS5mYS1jaGFydC1waWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0uZmEtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDBjIn0uZmEtY2hlY2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGVzczpiZWZvcmV7Y29udGVudDoiXGY0MzkifS5mYS1jaGVzcy1iaXNob3A6YmVmb3Jle2NvbnRlbnQ6IlxmNDNhIn0uZmEtY2hlc3MtYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDNjIn0uZmEtY2hlc3Mta2luZzpiZWZvcmV7Y29udGVudDoiXGY0M2YifS5mYS1jaGVzcy1rbmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDQxIn0uZmEtY2hlc3MtcGF3bjpiZWZvcmV7Y29udGVudDoiXGY0NDMifS5mYS1jaGVzcy1xdWVlbjpiZWZvcmV7Y29udGVudDoiXGY0NDUifS5mYS1jaGVzcy1yb29rOmJlZm9yZXtjb250ZW50OiJcZjQ0NyJ9LmZhLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTNhIn0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaGlsZDpiZWZvcmV7Y29udGVudDoiXGYxYWUifS5mYS1jaHJvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY4In0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS1jbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI4In0uZmEtY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtY2xvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRkIn0uZmEtY2xvc2VkLWNhcHRpb25pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMjBhIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtY2xvdWQtZG93bmxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MSJ9LmZhLWNsb3VkLXVwbG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgyIn0uZmEtY2xvdWRzY2FsZTpiZWZvcmV7Y29udGVudDoiXGYzODMifS5mYS1jbG91ZHNtaXRoOmJlZm9yZXtjb250ZW50OiJcZjM4NCJ9LmZhLWNsb3VkdmVyc2lmeTpiZWZvcmV7Y29udGVudDoiXGYzODUifS5mYS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjEyMSJ9LmZhLWNvZGUtYnJhbmNoOmJlZm9yZXtjb250ZW50OiJcZjEyNiJ9LmZhLWNvZGVwZW46YmVmb3Jle2NvbnRlbnQ6IlxmMWNiIn0uZmEtY29kaWVwaWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg0In0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWNvZzpiZWZvcmV7Y29udGVudDoiXGYwMTMifS5mYS1jb2dzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWdlYXJzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWNvbHVtbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGRiIn0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1jb21tZW50LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21wYXNzOmJlZm9yZXtjb250ZW50OiJcZjE0ZSJ9LmZhLWNvbXByZXNzOmJlZm9yZXtjb250ZW50OiJcZjA2NiJ9LmZhLWNvbm5lY3RkZXZlbG9wOmJlZm9yZXtjb250ZW50OiJcZjIwZSJ9LmZhLWNvbnRhbzpiZWZvcmV7Y29udGVudDoiXGYyNmQifS5mYS1jb3B5OmJlZm9yZXtjb250ZW50OiJcZjBjNSJ9LmZhLWNvcHlyaWdodDpiZWZvcmV7Y29udGVudDoiXGYxZjkifS5mYS1jcGFuZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzg4In0uZmEtY3JlYXRpdmUtY29tbW9uczpiZWZvcmV7Y29udGVudDoiXGYyNWUifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jcm9wOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9LmZhLWNyb3NzaGFpcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDViIn0uZmEtY3NzMzpiZWZvcmV7Y29udGVudDoiXGYxM2MifS5mYS1jc3MzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOGIifS5mYS1jdWJlOmJlZm9yZXtjb250ZW50OiJcZjFiMiJ9LmZhLWN1YmVzOmJlZm9yZXtjb250ZW50OiJcZjFiMyJ9LmZhLWN1dDpiZWZvcmV7Y29udGVudDoiXGYwYzQifS5mYS1jdXR0bGVmaXNoOmJlZm9yZXtjb250ZW50OiJcZjM4YyJ9LmZhLWQtYW5kLWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzhkIn0uZmEtZGFzaGN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVhZjpiZWZvcmV7Y29udGVudDoiXGYyYTQifS5mYS1kZWxpY2lvdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0uZmEtZGVwbG95ZG9nOmJlZm9yZXtjb250ZW50OiJcZjM4ZSJ9LmZhLWRlc2twcm86YmVmb3Jle2NvbnRlbnQ6IlxmMzhmIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kZXZpYW50YXJ0OmJlZm9yZXtjb250ZW50OiJcZjFiZCJ9LmZhLWRpZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmMWE2In0uZmEtZGlnaXRhbC1vY2VhbjpiZWZvcmV7Y29udGVudDoiXGYzOTEifS5mYS1kaXNjb3JkOmJlZm9yZXtjb250ZW50OiJcZjM5MiJ9LmZhLWRpc2NvdXJzZTpiZWZvcmV7Y29udGVudDoiXGYzOTMifS5mYS1kb2NodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk0In0uZmEtZG9ja2VyOmJlZm9yZXtjb250ZW50OiJcZjM5NSJ9LmZhLWRvbGxhci1zaWduOmJlZm9yZSwuZmEtZG9sbGFyOmJlZm9yZSwuZmEtdXNkOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9LmZhLWRvdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTkyIn0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE5In0uZmEtZHJhZnQyZGlnaXRhbDpiZWZvcmV7Y29udGVudDoiXGYzOTYifS5mYS1kcmliYmJsZTpiZWZvcmV7Y29udGVudDoiXGYxN2QifS5mYS1kcmliYmJsZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzk3In0uZmEtZHJvcGJveDpiZWZvcmV7Y29udGVudDoiXGYxNmIifS5mYS1kcnVwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0uZmEtZHlhbG9nOmJlZm9yZXtjb250ZW50OiJcZjM5OSJ9LmZhLWVhcmx5YmlyZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMzlhIn0uZmEtZWRnZTpiZWZvcmV7Y29udGVudDoiXGYyODIifS5mYS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjA1MiJ9LmZhLWVsZW1lbnRvcjpiZWZvcmV7Y29udGVudDoiXGY0MzAifS5mYS1lbGxpcHNpcy1oOmJlZm9yZXtjb250ZW50OiJcZjE0MSJ9LmZhLWVsbGlwc2lzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMTQyIn0uZmEtZW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIzIn0uZmEtZW1waXJlOmJlZm9yZXtjb250ZW50OiJcZjFkMSJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVudmlyYTpiZWZvcmV7Y29udGVudDoiXGYyOTkifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTJkIn0uZmEtZXJsYW5nOmJlZm9yZXtjb250ZW50OiJcZjM5ZCJ9LmZhLWV0aGVyZXVtOmJlZm9yZXtjb250ZW50OiJcZjQyZSJ9LmZhLWV0c3k6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ3In0uZmEtZXVyby1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1MyJ9LmZhLWV4Y2hhbmdlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjIifS5mYS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMmEifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZhIn0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZXhwYW5kOmJlZm9yZXtjb250ZW50OiJcZjA2NSJ9LmZhLWV4cGFuZC1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWV4cGVkaXRlZHNzbDpiZWZvcmV7Y29udGVudDoiXGYyM2UifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1kcm9wcGVyOmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmFzdC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNDkifS5mYS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUwIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODIifS5mYS1maWdodGVyLWpldDpiZWZvcmV7Y29udGVudDoiXGYwZmIifS5mYS1maWxlOmJlZm9yZSwuZmEtZmlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9LmZhLWZpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxYzYifS5mYS1maWxlLWF1ZGlvOmJlZm9yZXtjb250ZW50OiJcZjFjNyJ9LmZhLWZpbGUtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxYzkifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS1wZGY6YmVmb3Jle2NvbnRlbnQ6IlxmMWMxIn0uZmEtZmlsZS1wb3dlcnBvaW50OmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9LmZhLWZpbGUtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS13b3JkOmJlZm9yZXtjb250ZW50OiJcZjFjMiJ9LmZhLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxmMDA4In0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZmlyZS1leHRpbmd1aXNoZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTM0In0uZmEtZmlyZWZveDpiZWZvcmV7Y29udGVudDoiXGYyNjkifS5mYS1maXJzdC1vcmRlcjpiZWZvcmV7Y29udGVudDoiXGYyYjAifS5mYS1maXJzdGRyYWZ0OmJlZm9yZXtjb250ZW50OiJcZjNhMSJ9LmZhLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDI0In0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0uZmEtZmxhc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGMzIn0uZmEtZmxpY2tyOmJlZm9yZXtjb250ZW50OiJcZjE2ZSJ9LmZhLWZsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0NGQifS5mYS1mbHk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE3In0uZmEtZm9sZGVyOmJlZm9yZXtjb250ZW50OiJcZjA3YiJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMxIn0uZmEtZm9udC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjJiNCJ9LmZhLWZvbnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVjIn0uZmEtZm9udC1hd2Vzb21lLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmNDI1In0uZmEtZm9udGljb25zOmJlZm9yZXtjb250ZW50OiJcZjI4MCJ9LmZhLWZvbnRpY29ucy1maTpiZWZvcmV7Y29udGVudDoiXGYzYTIifS5mYS1mb290YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ0ZSJ9LmZhLWZvcnQtYXdlc29tZTpiZWZvcmV7Y29udGVudDoiXGYyODYifS5mYS1mb3J0LWF3ZXNvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNhMyJ9LmZhLWZvcnVtYmVlOmJlZm9yZXtjb250ZW50OiJcZjIxMSJ9LmZhLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRlIn0uZmEtZm91cnNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxODAifS5mYS1mcmVlLWNvZGUtY2FtcDpiZWZvcmV7Y29udGVudDoiXGYyYzUifS5mYS1mcmVlYnNkOmJlZm9yZXtjb250ZW50OiJcZjNhNCJ9LmZhLWZyb3duOmJlZm9yZXtjb250ZW50OiJcZjExOSJ9LmZhLWZ1dGJvbDpiZWZvcmV7Y29udGVudDoiXGYxZTMifS5mYS1nYW1lcGFkOmJlZm9yZXtjb250ZW50OiJcZjExYiJ9LmZhLWdhdmVsOmJlZm9yZXtjb250ZW50OiJcZjBlMyJ9LmZhLWdlbTpiZWZvcmV7Y29udGVudDoiXGYzYTUifS5mYS1nZW5kZXJsZXNzOmJlZm9yZXtjb250ZW50OiJcZjIyZCJ9LmZhLWdldC1wb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjY1In0uZmEtZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmMjYwIn0uZmEtZ2ctY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI2MSJ9LmZhLWdpZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDZiIn0uZmEtZ2l0OmJlZm9yZXtjb250ZW50OiJcZjFkMyJ9LmZhLWdpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQyIn0uZmEtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjA5YiJ9LmZhLWdpdGh1Yi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTEzIn0uZmEtZ2l0aHViLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTIifS5mYS1naXRrcmFrZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2E2In0uZmEtZ2l0bGFiOmJlZm9yZXtjb250ZW50OiJcZjI5NiJ9LmZhLWdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGY0MjYifS5mYS1nbGFzcy1tYXJ0aW5pOmJlZm9yZXtjb250ZW50OiJcZjAwMCJ9LmZhLWdsaWRlOmJlZm9yZXtjb250ZW50OiJcZjJhNSJ9LmZhLWdsaWRlLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMmE2In0uZmEtZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGFjIn0uZmEtZ29mb3JlOmJlZm9yZXtjb250ZW50OiJcZjNhNyJ9LmZhLWdvbGYtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NTAifS5mYS1nb29kcmVhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmM2E4In0uZmEtZ29vZHJlYWRzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmM2E5In0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLWdvb2dsZS1kcml2ZTpiZWZvcmV7Y29udGVudDoiXGYzYWEifS5mYS1nb29nbGUtcGxheTpiZWZvcmV7Y29udGVudDoiXGYzYWIifS5mYS1nb29nbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyYjMifS5mYS1nb29nbGUtcGx1cy1nOmJlZm9yZXtjb250ZW50OiJcZjBkNSJ9LmZhLWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDQifS5mYS1nb29nbGUtd2FsbGV0OmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9LmZhLWdyYWR1YXRpb24tY2FwOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9LmZhLWdyYXRpcGF5OmJlZm9yZXtjb250ZW50OiJcZjE4NCJ9LmZhLWdyYXY6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ2In0uZmEtZ3JpcGZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FjIn0uZmEtZ3J1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2FkIn0uZmEtZ3VscDpiZWZvcmV7Y29udGVudDoiXGYzYWUifS5mYS1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmQifS5mYS1oYWNrZXItbmV3czpiZWZvcmV7Y29udGVudDoiXGYxZDQifS5mYS1oYWNrZXItbmV3cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FmIn0uZmEtaGFuZC1saXphcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjU4In0uZmEtaGFuZC1wYXBlcjpiZWZvcmV7Y29udGVudDoiXGYyNTYifS5mYS1oYW5kLXBlYWNlOmJlZm9yZXtjb250ZW50OiJcZjI1YiJ9LmZhLWhhbmQtcG9pbnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1oYW5kLXBvaW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE1In0uZmEtaGFuZC1wb2ludC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTQifS5mYS1oYW5kLXBvaW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjBhNiJ9LmZhLWhhbmQtcG9pbnRlcjpiZWZvcmUsLmZhLWhhbmQtcG9pbnRlci1vOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmQtcm9jazpiZWZvcmV7Y29udGVudDoiXGYyNTUifS5mYS1oYW5kLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZjI1NyJ9LmZhLWhhbmQtc3BvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjU5In0uZmEtaGFuZHNoYWtlOmJlZm9yZXtjb250ZW50OiJcZjJiNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGRkOmJlZm9yZXtjb250ZW50OiJcZjBhMCJ9LmZhLWhlYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWRjIn0uZmEtaGVhZHBob25lczpiZWZvcmV7Y29udGVudDoiXGYwMjUifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1oZWFydGJlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFlIn0uZmEtaGlwczpiZWZvcmV7Y29udGVudDoiXGY0NTIifS5mYS1oaXJlLWEtaGVscGVyOmJlZm9yZXtjb250ZW50OiJcZjNiMCJ9LmZhLWhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWRhIn0uZmEtaG9ja2V5LXB1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDUzIn0uZmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGYwMTUifS5mYS1ob29saTpiZWZvcmV7Y29udGVudDoiXGY0MjcifS5mYS1ob3NwaXRhbDpiZWZvcmV7Y29udGVudDoiXGYwZjgifS5mYS1ob3RqYXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IxIn0uZmEtaG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjI1NCJ9LmZhLWhvdXJnbGFzcy1lbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUzIn0uZmEtaG91cmdsYXNzLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjUyIn0uZmEtaG91cmdsYXNzLXN0YXJ0OmJlZm9yZXtjb250ZW50OiJcZjI1MSJ9LmZhLWhvdXp6OmJlZm9yZXtjb250ZW50OiJcZjI3YyJ9LmZhLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjEzYiJ9LmZhLWh1YnNwb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2IyIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaWQtYmFkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmMxIn0uZmEtaWQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYzIifS5mYS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYwM2UifS5mYS1pbWFnZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzAyIn0uZmEtaW1kYjpiZWZvcmV7Y29udGVudDoiXGYyZDgifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1pbmRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNjIn0uZmEtaW5kdXN0cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjc1In0uZmEtaW5mbzpiZWZvcmV7Y29udGVudDoiXGYxMjkifS5mYS1pbmZvLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNWEifS5mYS1pbnN0YWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMTZkIn0uZmEtaW50ZXJuZXQtZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjZiIn0uZmEtaW94aG9zdDpiZWZvcmV7Y29udGVudDoiXGYyMDgifS5mYS1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDMzIn0uZmEtaXR1bmVzOmJlZm9yZXtjb250ZW50OiJcZjNiNCJ9LmZhLWl0dW5lcy1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjNiNSJ9LmZhLWplbmtpbnM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I2In0uZmEtam9nZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2I3In0uZmEtam9vbWxhOmJlZm9yZXtjb250ZW50OiJcZjFhYSJ9LmZhLWpzOmJlZm9yZXtjb250ZW50OiJcZjNiOCJ9LmZhLWpzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYjkifS5mYS1qc2ZpZGRsZTpiZWZvcmV7Y29udGVudDoiXGYxY2MifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDg0In0uZmEta2V5Ym9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0uZmEta2V5Y2RuOmJlZm9yZXtjb250ZW50OiJcZjNiYSJ9LmZhLWtpY2tzdGFydGVyOmJlZm9yZXtjb250ZW50OiJcZjNiYiJ9LmZhLWtpY2tzdGFydGVyLWs6YmVmb3Jle2NvbnRlbnQ6IlxmM2JjIn0uZmEta29ydnVlOmJlZm9yZXtjb250ZW50OiJcZjQyZiJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhcHRvcDpiZWZvcmV7Y29udGVudDoiXGYxMDkifS5mYS1sYXJhdmVsOmJlZm9yZXtjb250ZW50OiJcZjNiZCJ9LmZhLWxhc3RmbTpiZWZvcmV7Y29udGVudDoiXGYyMDIifS5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjIwMyJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGVhbnB1YjpiZWZvcmV7Y29udGVudDoiXGYyMTIifS5mYS1sZW1vbjpiZWZvcmV7Y29udGVudDoiXGYwOTQifS5mYS1sZXNzOmJlZm9yZXtjb250ZW50OiJcZjQxZCJ9LmZhLWxldmVsLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZSJ9LmZhLWxldmVsLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmYifS5mYS1saWZlLXJpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWNkIn0uZmEtbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjBlYiJ9LmZhLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2MwIn0uZmEtbGluazpiZWZvcmV7Y29udGVudDoiXGYwYzEifS5mYS1saW5rZWRpbjpiZWZvcmV7Y29udGVudDoiXGYwOGMifS5mYS1saW5rZWRpbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwZTEifS5mYS1saW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI4In0uZmEtbGludXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0uZmEtbGlyYS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9LmZhLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDNhIn0uZmEtbGlzdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDIyIn0uZmEtbGlzdC1vbDpiZWZvcmV7Y29udGVudDoiXGYwY2IifS5mYS1saXN0LXVsOmJlZm9yZXtjb250ZW50OiJcZjBjYSJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OiJcZjEyNCJ9LmZhLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDIzIn0uZmEtbG9jay1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjNjMSJ9LmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtbG9uZy1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMGEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMGIifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzMGMifS5mYS1sb3ctdmlzaW9uOmJlZm9yZXtjb250ZW50OiJcZjJhOCJ9LmZhLWx5ZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2MzIn0uZmEtbWFnZW50bzpiZWZvcmV7Y29udGVudDoiXGYzYzQifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1tYWduZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc2In0uZmEtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODMifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1tYXAtbWFya2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXJzOmJlZm9yZXtjb250ZW50OiJcZjIyMiJ9LmZhLW1hcnMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNyJ9LmZhLW1hcnMtc3Ryb2tlOmJlZm9yZXtjb250ZW50OiJcZjIyOSJ9LmZhLW1hcnMtc3Ryb2tlLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMjJiIn0uZmEtbWFycy1zdHJva2UtdjpiZWZvcmV7Y29udGVudDoiXGYyMmEifS5mYS1tYXhjZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTM2In0uZmEtbWVkYXBwczpiZWZvcmV7Y29udGVudDoiXGYzYzYifS5mYS1tZWRpdW06YmVmb3Jle2NvbnRlbnQ6IlxmMjNhIn0uZmEtbWVkaXVtLW06YmVmb3Jle2NvbnRlbnQ6IlxmM2M3In0uZmEtbWVka2l0OmJlZm9yZXtjb250ZW50OiJcZjBmYSJ9LmZhLW1lZHJ0OmJlZm9yZXtjb250ZW50OiJcZjNjOCJ9LmZhLW1lZXR1cDpiZWZvcmV7Y29udGVudDoiXGYyZTAifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWVyY3VyeTpiZWZvcmV7Y29udGVudDoiXGYyMjMifS5mYS1taWNyb2NoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmRiIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLW1pY3Jvc29mdDpiZWZvcmV7Y29udGVudDoiXGYzY2EifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1peDpiZWZvcmV7Y29udGVudDoiXGYzY2IifS5mYS1taXhjbG91ZDpiZWZvcmV7Y29udGVudDoiXGYyODkifS5mYS1taXp1bmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2NjIn0uZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLW1vYmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NkIn0uZmEtbW9keDpiZWZvcmV7Y29udGVudDoiXGYyODUifS5mYS1tb25lcm86YmVmb3Jle2NvbnRlbnQ6IlxmM2QwIn0uZmEtbW9uZXktYmlsbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2QxIn0uZmEtbW9vbjpiZWZvcmV7Y29udGVudDoiXGYxODYifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDAxIn0uZmEtbmFwc3RlcjpiZWZvcmV7Y29udGVudDoiXGYzZDIifS5mYS1uZXV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjJjIn0uZmEtbmV3c3BhcGVyOmJlZm9yZSwuZmEtbmV3c3BhcGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0uZmEtbmludGVuZG8tc3dpdGNoOmJlZm9yZXtjb250ZW50OiJcZjQxOCJ9LmZhLW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDE5In0uZmEtbm9kZS1qczpiZWZvcmV7Y29udGVudDoiXGYzZDMifS5mYS1ucG06YmVmb3Jle2NvbnRlbnQ6IlxmM2Q0In0uZmEtbnM4OmJlZm9yZXtjb250ZW50OiJcZjNkNSJ9LmZhLW51dHJpdGlvbml4OmJlZm9yZXtjb250ZW50OiJcZjNkNiJ9LmZhLW9iamVjdC1ncm91cDpiZWZvcmV7Y29udGVudDoiXGYyNDcifS5mYS1vYmplY3QtdW5ncm91cDpiZWZvcmV7Y29udGVudDoiXGYyNDgifS5mYS1vZG5va2xhc3NuaWtpOmJlZm9yZXtjb250ZW50OiJcZjI2MyJ9LmZhLW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjI2NCJ9LmZhLW9wZW5jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjIzZCJ9LmZhLW9wZW5pZDpiZWZvcmV7Y29udGVudDoiXGYxOWIifS5mYS1vcGVyYTpiZWZvcmV7Y29udGVudDoiXGYyNmEifS5mYS1vcHRpbi1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjIzYyJ9LmZhLW9zaTpiZWZvcmV7Y29udGVudDoiXGY0MWEifS5mYS1vdXRkZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYiJ9LmZhLXBhZ2U0OmJlZm9yZXtjb250ZW50OiJcZjNkNyJ9LmZhLXBhZ2VsaW5lczpiZWZvcmV7Y29udGVudDoiXGYxOGMifS5mYS1wYWludC1icnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1wYWxmZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q4In0uZmEtcGFwZXItcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFwZXJjbGlwOmJlZm9yZXtjb250ZW50OiJcZjBjNiJ9LmZhLXBhcmFncmFwaDpiZWZvcmV7Y29udGVudDoiXGYxZGQifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXRyZW9uOmJlZm9yZXtjb250ZW50OiJcZjNkOSJ9LmZhLXBhdXNlOmJlZm9yZXtjb250ZW50OiJcZjA0YyJ9LmZhLXBhdXNlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGIifS5mYS1wYXc6YmVmb3Jle2NvbnRlbnQ6IlxmMWIwIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLXBlbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRiIn0uZmEtcGVuY2lsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDMifS5mYS1wZXJjZW50OmJlZm9yZXtjb250ZW50OiJcZjI5NSJ9LmZhLXBlcmlzY29wZTpiZWZvcmV7Y29udGVudDoiXGYzZGEifS5mYS1waGFicmljYXRvcjpiZWZvcmV7Y29udGVudDoiXGYzZGIifS5mYS1waG9lbml4LWZyYW1ld29yazpiZWZvcmV7Y29udGVudDoiXGYzZGMifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjJhMCJ9LmZhLXBocDpiZWZvcmV7Y29udGVudDoiXGY0NTcifS5mYS1waWVkLXBpcGVyOmJlZm9yZXtjb250ZW50OiJcZjJhZSJ9LmZhLXBpZWQtcGlwZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9LmZhLXBpZWQtcGlwZXItcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWE3In0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcyIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbGF5c3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzZGYifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZlIn0uZmEtcG9kY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyY2UifS5mYS1wb3VuZC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NCJ9LmZhLXBvd2VyLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMTEifS5mYS1wcmludDpiZWZvcmV7Y29udGVudDoiXGYwMmYifS5mYS1wcm9kdWN0LWh1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg4In0uZmEtcHVzaGVkOmJlZm9yZXtjb250ZW50OiJcZjNlMSJ9LmZhLXB1enpsZS1waWVjZTpiZWZvcmV7Y29udGVudDoiXGYxMmUifS5mYS1weXRob246YmVmb3Jle2NvbnRlbnQ6IlxmM2UyIn0uZmEtcXE6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ2In0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWlkZGl0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDU4In0uZmEtcXVpbnNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjQ1OSJ9LmZhLXF1b3JhOmJlZm9yZXtjb250ZW50OiJcZjJjNCJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXJhdmVscnk6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ5In0uZmEtcmVhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNDFiIn0uZmEtcmViZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWQwIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWQtcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2UzIn0uZmEtcmVkZGl0OmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9LmZhLXJlZGRpdC1hbGllbjpiZWZvcmV7Y29udGVudDoiXGYyODEifS5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFhMiJ9LmZhLXJlZG86YmVmb3Jle2NvbnRlbnQ6IlxmMDFlIn0uZmEtcmVkby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY5In0uZmEtcmVnaXN0ZXJlZDpiZWZvcmV7Y29udGVudDoiXGYyNWQifS5mYS1yZW5kYWN0OmJlZm9yZXtjb250ZW50OiJcZjNlNCJ9LmZhLXJlbnJlbjpiZWZvcmV7Y29udGVudDoiXGYxOGIifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmVwbHlkOmJlZm9yZXtjb250ZW50OiJcZjNlNiJ9LmZhLXJlc29sdmluZzpiZWZvcmV7Y29udGVudDoiXGYzZTcifS5mYS1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZjA3OSJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE4In0uZmEtcm9ja2V0OmJlZm9yZXtjb250ZW50OiJcZjEzNSJ9LmZhLXJvY2tldGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U4In0uZmEtcm9ja3JtczpiZWZvcmV7Y29udGVudDoiXGYzZTkifS5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDMifS5mYS1ydWJsZS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OCJ9LmZhLXJ1cGVlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU2In0uZmEtc2FmYXJpOmJlZm9yZXtjb250ZW50OiJcZjI2NyJ9LmZhLXNhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFlIn0uZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zY2hsaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2VhIn0uZmEtc2NyaWJkOmJlZm9yZXtjb250ZW50OiJcZjI4YSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1zZWFyY2gtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDEwIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2VhcmNoZW5naW46YmVmb3Jle2NvbnRlbnQ6IlxmM2ViIn0uZmEtc2VsbGNhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmRhIn0uZmEtc2VsbHN5OmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9LmZhLXNlcnZlcjpiZWZvcmV7Y29udGVudDoiXGYyMzMifS5mYS1zZXJ2aWNlc3RhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmM2VjIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjFlMCJ9LmZhLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWUxIn0uZmEtc2hhcmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0ZCJ9LmZhLXNoZWtlbC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjIwYiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2VkIn0uZmEtc2hpcDpiZWZvcmV7Y29udGVudDoiXGYyMWEifS5mYS1zaGlydHNpbmJ1bGs6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0uZmEtc2hvcHBpbmctYmFnOmJlZm9yZXtjb250ZW50OiJcZjI5MCJ9LmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLXNob3dlcjpiZWZvcmV7Y29udGVudDoiXGYyY2MifS5mYS1zaWduLWluLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjYifS5mYS1zaWduLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjJhNyJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2ltcGx5YnVpbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE1In0uZmEtc2lzdHJpeDpiZWZvcmV7Y29udGVudDoiXGYzZWUifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNreWF0bGFzOmJlZm9yZXtjb250ZW50OiJcZjIxNiJ9LmZhLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjE3ZSJ9LmZhLXNsYWNrOmJlZm9yZXtjb250ZW50OiJcZjE5OCJ9LmZhLXNsYWNrLWhhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmM2VmIn0uZmEtc2xpZGVycy1oOmJlZm9yZXtjb250ZW50OiJcZjFkZSJ9LmZhLXNsaWRlc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWU3In0uZmEtc21pbGU6YmVmb3JlLC5mYS1zbWlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNuYXBjaGF0OmJlZm9yZXtjb250ZW50OiJcZjJhYiJ9LmZhLXNuYXBjaGF0LWdob3N0OmJlZm9yZXtjb250ZW50OiJcZjJhYyJ9LmZhLXNuYXBjaGF0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWQifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9LmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjIifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zb3VuZGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjFiZSJ9LmZhLXNwYWNlLXNodXR0bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk3In0uZmEtc3BlYWthcDpiZWZvcmV7Y29udGVudDoiXGYzZjMifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwb3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJjIn0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXNxdWFyZS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1YyJ9LmZhLXN0YWNrLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9LmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiJcZjE2YyJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLXN0YXlsaW5rZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y1In0uZmEtc3RlYW06YmVmb3Jle2NvbnRlbnQ6IlxmMWI2In0uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNyJ9LmZhLXN0ZWFtLXN5bWJvbDpiZWZvcmV7Y29udGVudDoiXGYzZjYifS5mYS1zdGVwLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OCJ9LmZhLXN0ZXAtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTEifS5mYS1zdGV0aG9zY29wZTpiZWZvcmV7Y29udGVudDoiXGYwZjEifS5mYS1zdGlja2VyLW11bGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y3In0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtc3RvcDpiZWZvcmV7Y29udGVudDoiXGYwNGQifS5mYS1zdG9wLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGQifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RyYXZhOmJlZm9yZXtjb250ZW50OiJcZjQyOCJ9LmZhLXN0cmVldC12aWV3OmJlZm9yZXtjb250ZW50OiJcZjIxZCJ9LmZhLXN0cmlrZXRocm91Z2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGNjIn0uZmEtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjQyOSJ9LmZhLXN0cmlwZS1zOmJlZm9yZXtjb250ZW50OiJcZjQyYSJ9LmZhLXN0dWRpb3ZpbmFyaTpiZWZvcmV7Y29udGVudDoiXGYzZjgifS5mYS1zdHVtYmxldXBvbjpiZWZvcmV7Y29udGVudDoiXGYxYTQifS5mYS1zdHVtYmxldXBvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEzIn0uZmEtc3Vic2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYyJ9LmZhLXN1YndheTpiZWZvcmV7Y29udGVudDoiXGYyMzkifS5mYS1zdWl0Y2FzZTpiZWZvcmV7Y29udGVudDoiXGYwZjIifS5mYS1zdW46YmVmb3JlLC5mYS1zdW4tbzpiZWZvcmV7Y29udGVudDoiXGYxODUifS5mYS1zdXBlcnBvd2VyczpiZWZvcmV7Y29udGVudDoiXGYyZGQifS5mYS1zdXBlcnNjcmlwdDpiZWZvcmV7Y29udGVudDoiXGYxMmIifS5mYS1zdXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y5In0uZmEtc3luYzpiZWZvcmV7Y29udGVudDoiXGYwMjEifS5mYS1zeW5jLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjEifS5mYS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGYwY2UifS5mYS10YWJsZS10ZW5uaXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDVkIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZkIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxmMGFlIn0uZmEtdGF4aTpiZWZvcmV7Y29udGVudDoiXGYxYmEifS5mYS10ZWxlZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYyYzYifS5mYS10ZWxlZ3JhbS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYzZmUifS5mYS10ZW5jZW50LXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjFkNSJ9LmZhLXRlcm1pbmFsOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDBhIn0uZmEtdGgtbGFyZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDA5In0uZmEtdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwMGIifS5mYS10aGVtZWlzbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmIyIn0uZmEtdGhlcm1vbWV0ZXItZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMmNiIn0uZmEtdGhlcm1vbWV0ZXItZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyYzcifS5mYS10aGVybW9tZXRlci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjJjOSJ9LmZhLXRoZXJtb21ldGVyLXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmNhIn0uZmEtdGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMmM4In0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTY1In0uZmEtdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9LmZhLXRodW1idGFjazpiZWZvcmV7Y29udGVudDoiXGYwOGQifS5mYS10aWNrZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZiJ9LmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjAwZCJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLXRyYWRlbWFyazpiZWZvcmV7Y29udGVudDoiXGYyNWMifS5mYS10cmFpbjpiZWZvcmV7Y29udGVudDoiXGYyMzgifS5mYS10cmFuc2dlbmRlcjpiZWZvcmV7Y29udGVudDoiXGYyMjQifS5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjI1In0uZmEtdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY4In0uZmEtdHJhc2gtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlZCJ9LmZhLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMWJiIn0uZmEtdHJlbGxvOmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9LmZhLXRyaXBhZHZpc29yOmJlZm9yZXtjb250ZW50OiJcZjI2MiJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHVtYmxyOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9LmZhLXR1bWJsci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdGNoOmJlZm9yZXtjb250ZW50OiJcZjFlOCJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtdHlwbzM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJiIn0uZmEtdWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MDIifS5mYS11aWtpdDpiZWZvcmV7Y29udGVudDoiXGY0MDMifS5mYS11bWJyZWxsYTpiZWZvcmV7Y29udGVudDoiXGYwZTkifS5mYS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGNkIn0uZmEtdW5kbzpiZWZvcmV7Y29udGVudDoiXGYwZTIifS5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS11bmlyZWdpc3RyeTpiZWZvcmV7Y29udGVudDoiXGY0MDQifS5mYS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZXtjb250ZW50OiJcZjI5YSJ9LmZhLXVuaXZlcnNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTljIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLXVubG9jazpiZWZvcmV7Y29udGVudDoiXGYwOWMifS5mYS11bmxvY2stYWx0OmJlZm9yZXtjb250ZW50OiJcZjEzZSJ9LmZhLXVudGFwcGQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDA1In0uZmEtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjA5MyJ9LmZhLXVzYjpiZWZvcmV7Y29udGVudDoiXGYyODcifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OiJcZjAwNyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItbWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGYwIn0uZmEtdXNlci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIzNCJ9LmZhLXVzZXItc2VjcmV0OmJlZm9yZXtjb250ZW50OiJcZjIxYiJ9LmZhLXVzZXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM1In0uZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGMwIn0uZmEtdXNzdW5uYWg6YmVmb3Jle2NvbnRlbnQ6IlxmNDA3In0uZmEtdXRlbnNpbC1zcG9vbjpiZWZvcmV7Y29udGVudDoiXGYyZTUifS5mYS11dGVuc2lsczpiZWZvcmV7Y29udGVudDoiXGYyZTcifS5mYS12YWFkaW46YmVmb3Jle2NvbnRlbnQ6IlxmNDA4In0uZmEtdmVudXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIxIn0uZmEtdmVudXMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNiJ9LmZhLXZlbnVzLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjI4In0uZmEtdmlhY29pbjpiZWZvcmV7Y29udGVudDoiXGYyMzcifS5mYS12aWFkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMmE5In0uZmEtdmlhZGVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWEifS5mYS12aWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MDkifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12aW1lbzpiZWZvcmV7Y29udGVudDoiXGY0MGEifS5mYS12aW1lby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0uZmEtdmltZW8tdjpiZWZvcmV7Y29udGVudDoiXGYyN2QifS5mYS12aW5lOmJlZm9yZXtjb250ZW50OiJcZjFjYSJ9LmZhLXZrOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9LmZhLXZudjpiZWZvcmV7Y29udGVudDoiXGY0MGIifS5mYS12b2xsZXliYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVmIn0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDI3In0uZmEtdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMjYifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtdnVlanM6YmVmb3Jle2NvbnRlbnQ6IlxmNDFmIn0uZmEtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMThhIn0uZmEtd2VpeGluOmJlZm9yZXtjb250ZW50OiJcZjFkNyJ9LmZhLXdoYXRzYXBwOmJlZm9yZXtjb250ZW50OiJcZjIzMiJ9LmZhLXdoYXRzYXBwLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MGMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdobWNzOmJlZm9yZXtjb250ZW50OiJcZjQwZCJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd2lraXBlZGlhLXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjY2In0uZmEtd2luZG93LWNsb3NlOmJlZm9yZXtjb250ZW50OiJcZjQxMCJ9LmZhLXdpbmRvdy1tYXhpbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDAifS5mYS13aW5kb3ctbWluaW1pemU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQxIn0uZmEtd2luZG93LXJlc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQyIn0uZmEtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxN2EifS5mYS13b24tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTkifS5mYS13b3JkcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0uZmEtd29yZHByZXNzLXNpbXBsZTpiZWZvcmV7Y29udGVudDoiXGY0MTEifS5mYS13cGJlZ2lubmVyOmJlZm9yZXtjb250ZW50OiJcZjI5NyJ9LmZhLXdwZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmRlIn0uZmEtd3Bmb3JtczpiZWZvcmV7Y29udGVudDoiXGYyOTgifS5mYS13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGFkIn0uZmEteGJveDpiZWZvcmV7Y29udGVudDoiXGY0MTIifS5mYS14aW5nOmJlZm9yZXtjb250ZW50OiJcZjE2OCJ9LmZhLXhpbmctc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE2OSJ9LmZhLXktY29tYmluYXRvcjpiZWZvcmV7Y29udGVudDoiXGYyM2IifS5mYS15YWhvbzpiZWZvcmV7Y29udGVudDoiXGYxOWUifS5mYS15YW5kZXg6YmVmb3Jle2NvbnRlbnQ6IlxmNDEzIn0uZmEteWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNDE0In0uZmEteWVscDpiZWZvcmV7Y29udGVudDoiXGYxZTkifS5mYS15ZW4tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTcifS5mYS15b2FzdDpiZWZvcmV7Y29udGVudDoiXGYyYjEifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQzMSJ9Ci8qKiAvY3NzL3YyL2FuaW1hdGUuY3NzICoqLwouYW5pbS1iZWF0IHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQ7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpIH0gLmFuaW0tYm91bmNlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1ib3VuY2U7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpIH0gLmFuaW0tZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1mYWRlOyBhbmltYXRpb24tbmFtZTphbmltLWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWJlYXQtZmFkZSwuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKSB9IC5hbmltLWJlYXQtZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdC1mYWRlOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSkgfSAuYW5pbS1mbGlwIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZsaXA7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwzcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpIH0gLmFuaW0tc2hha2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc2hha2U7IGFuaW1hdGlvbi1uYW1lOmFuaW0tc2hha2U7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpIH0gLmFuaW0tc2hha2UsLmFuaW0tc3BpbiB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCkgfSAuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNwaW47IGFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwycyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zcGluLXJldmVyc2UgeyAtLWFuaW0tZGlyZWN0aW9uOnJldmVyc2UgfSAuYW5pbS1wdWxzZSwuYW5pbS1zcGluLXB1bHNlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNwaW47IGFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsc3RlcHMoOCkpIH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQGtleWZyYW1lcyBhbmltLWJlYXQgeyAwJSw5MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJvdW5jZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSAxMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCkgfSAzMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKSB9IDU3JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpIH0gNjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWZhZGUgeyA1MCUgeyBvcGFjaXR5OnZhcigtLWFuaW0tZmFkZS1vcGFjaXR5LC40KSB9IH0gQGtleWZyYW1lcyBhbmltLWZhZGUgeyA1MCUgeyBvcGFjaXR5OnZhcigtLWFuaW0tZmFkZS1vcGFjaXR5LC40KSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQGtleWZyYW1lcyBhbmltLWJlYXQtZmFkZSB7IDAlLHRvIHsgb3BhY2l0eTp2YXIoLS1hbmltLWJlYXQtZmFkZS1vcGFjaXR5LC40KTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDUwJSB7IG9wYWNpdHk6MTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWZsaXAgeyA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpOyB0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKSB9IH0gQGtleWZyYW1lcyBhbmltLWZsaXAgeyA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpOyB0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQGtleWZyYW1lcyBhbmltLXNoYWtlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpIH0gNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKSB9IDglLDI0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xOGRlZykgfSAxMiUsMjglIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZykgfSAxNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpIH0gMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZykgfSAzMiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpIH0gMzYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgfSA0MCUsdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBrZXlmcmFtZXMgYW5pbS1zcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7IHRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pIH0gfSBAc3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lKSB7IGJvZHkgI3Byb21vVG9wQnRuIC5hbmltLWZsaXB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnVuc2V0OyBhbmltYXRpb24tZGVsYXk6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp1bnNldDsgYW5pbWF0aW9uLWRpcmVjdGlvbjp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dW5zZXQ7IGFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnVuc2V0OyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dW5zZXQ7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dW5zZXQ7IH0gfSAucHVsc2F0aW5nLWNpcmNsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDozMHB4OyBoZWlnaHQ6MzBweDsgZmxleDowIDAgYXV0bzsgJjpiZWZvcmUgeyBjb250ZW50OicnOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MzAwJTsgaGVpZ2h0OjMwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLWxlZnQ6LTEwMCU7IG1hcmdpbi10b3A6LTEwMCU7IGJvcmRlci1yYWRpdXM6NDVweDsgYmFja2dyb3VuZC1jb2xvcjojMDFhNGU5OyBhbmltYXRpb246cHVsc2UtcmluZyAxLjI1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSBpbmZpbml0ZTsgfSAmOmFmdGVyIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjE1cHg7IGJveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC4zKTsgYW5pbWF0aW9uOnB1bHNlLWRvdCAxLjI1cyBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSkgLS40cyBpbmZpbml0ZTsgfSB9IEBrZXlmcmFtZXMgcHVsc2UtcmluZyB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC4zMyk7IH0gODAlLCAxMDAlIHsgb3BhY2l0eTowOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1kb3QgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gNTAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjgpOyB9IH0KLyoqIC9jc3MvZGl2X2xheWVycy5jc3MgKiovCmRpdi5NYWluQm94TGF5ZXJ7IHdpZHRoOm1pbigxMDAlLDk2MHB4KTsgbWFyZ2luOjAgYXV0bzsgfSBkaXYuTWFpbkJveExheWVyIEgxeyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIC5yZXNwb25zaXZlLWVkaXRvciBoMSB7IHdpZHRoOmluaXRpYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuY3JlZHNpaURpdiBIMXsgd2lkdGg6YXV0bzsgfSAuY3JlZHNpaURpdnsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllciB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuUmlnaHRCb3hMYXllciB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgd2lkdGg6OTQwcHg7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllciB7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyLnRvcEJvcmRlcmVkeyBib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIuYm90dG9tQm9yZGVyZWR7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLmVhc3R7IGZsb2F0OnJpZ2h0OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLndlc3R7IGZsb2F0OmxlZnQ7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlID4gaW1neyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIjaGlzdG9yeURpdiBkaXYuSW5uZXJCb3hMYXllciAjYnJlYWRjcnVtYnMgeyBtYXJnaW46MDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyLnh0aW1lRnJhbWUgeyB3aWR0aDoxMjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIEgxeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIC5yZXNwb25zaXZlLWVkaXRvciBoMSB7IHdpZHRoOmluaXRpYWw7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZS5URUFNIHsgd2lkdGg6OTYwcHg7IH0gfSBkaXYuTWFpbkJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5MZWZ0Qm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9ICN2ZHBQcmludEltZyB7IGRpc3BsYXk6bm9uZTsgfSBAbWVkaWEgcHJpbnQgeyBib2R5I05FV0NBUkRFVEFJTFMuaGFzLXZkcC1wcmludC1pbWcgZGl2Lk1haW5Cb3hMYXllciAuSW5uZXJCb3hMYXllci4tcGIzMCB7IGRpc3BsYXk6ZmxleCAhaW1wb3J0YW50OyBmbGV4LWRpcmVjdGlvbjpyb3cgIWltcG9ydGFudDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydCAhaW1wb3J0YW50OyBnYXA6MTZweCAhaW1wb3J0YW50OyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDsgfSBib2R5I05FV0NBUkRFVEFJTFMuaGFzLXZkcC1wcmludC1pbWcgZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQud2VzdCB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgb3JkZXI6MSAhaW1wb3J0YW50OyBmbGV4OjEgMSBhdXRvICFpbXBvcnRhbnQ7IHdpZHRoOmF1dG8gIWltcG9ydGFudDsgbWF4LXdpZHRoOjYyJSAhaW1wb3J0YW50OyBtaW4td2lkdGg6MCAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC5lYXN0LCBib2R5I05FV0NBUkRFVEFJTFMuaGFzLXZkcC1wcmludC1pbWcgZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQtMSB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgb3JkZXI6MiAhaW1wb3J0YW50OyBmbGV4OjAgMCAyNzBweCAhaW1wb3J0YW50OyB3aWR0aDoyNzBweCAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyLCBib2R5I05FV0NBUkRFVEFJTFMuaGFzLXZkcC1wcmludC1pbWcgZGl2Lk91dGVyQm94TGF5ZXIsIGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTGVmdEJveExheWVyIHsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyAuU2xpZGVyT3V0ZXJCb3ggeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSBib2R5I05FV0NBUkRFVEFJTFMuaGFzLXZkcC1wcmludC1pbWcgI3ZkcFByaW50SW1nIHsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBtYXgtaGVpZ2h0OjMuMmluICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgb2JqZWN0LWZpdDpjb250YWluICFpbXBvcnRhbnQ7IHBhZ2UtYnJlYWstaW5zaWRlOmF2b2lkICFpbXBvcnRhbnQ7IH0gfSBAbWVkaWEgcHJpbnQgeyBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgZGl2Lk1haW5Cb3hMYXllciAuSW5uZXJCb3hMYXllci4tcGIzMCB7IGRpc3BsYXk6ZmxleCAhaW1wb3J0YW50OyBmbGV4LWRpcmVjdGlvbjpyb3cgIWltcG9ydGFudDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydCAhaW1wb3J0YW50OyBnYXA6MTZweCAhaW1wb3J0YW50OyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDsgfSBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgI3VzZWRWRFBTbGlkZXJDb250YWluZXIgeyBmbG9hdDpub25lICFpbXBvcnRhbnQ7IG9yZGVyOjEgIWltcG9ydGFudDsgZmxleDoxIDEgYXV0byAhaW1wb3J0YW50OyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IG1heC13aWR0aDo2MiUgIWltcG9ydGFudDsgbWluLXdpZHRoOjAgIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IH0gYm9keS5pc1VzZWRWZHBQYWdlLmhhcy12ZHAtcHJpbnQtaW1nIC51c2VkVmRwQWN0aW9ucyB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgb3JkZXI6MiAhaW1wb3J0YW50OyBmbGV4OjAgMCAyNzBweCAhaW1wb3J0YW50OyB3aWR0aDoyNzBweCAhaW1wb3J0YW50OyB2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsgfSBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgLlNsaWRlck91dGVyQm94IHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gYm9keS5pc1VzZWRWZHBQYWdlLmhhcy12ZHAtcHJpbnQtaW1nICN2ZHBQcmludEltZyB7IGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgbWF4LWhlaWdodDozLjJpbiAhaW1wb3J0YW50OyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IG1hcmdpbjowICFpbXBvcnRhbnQ7IH0gfQovKiogL2Nzcy9kaXZfc3BhbnMuY3NzICoqLwouZGl2U3BhbntmbG9hdDpsZWZ0O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZGl2U3Bhbi5kaXZTcGFuTGVmdHtmbG9hdDpsZWZ0fS5kaXZTcGFuLmRpdlNwYW5SaWdodHtmbG9hdDpyaWdodH0uZGl2U3Bhbi5kaXZTcGFuMXt3aWR0aDo4LjMzMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjJ7d2lkdGg6MTYuNjY2NjY2NjY2NjY2NjclfS5kaXZTcGFuLmRpdlNwYW4ze3dpZHRoOjI1JX0uZGl2U3Bhbi5kaXZTcGFuNHt3aWR0aDozMy4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjV7d2lkdGg6NDEuNjY2NjY2NjY2NjY2NjclfS5kaXZTcGFuLmRpdlNwYW42e3dpZHRoOjUwJX0uZGl2U3Bhbi5kaXZTcGFuN3t3aWR0aDo1OC4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3Bhbjh7d2lkdGg6NjYuNjY2NjY2NjY2NjY2NjYlfS5kaXZTcGFuLmRpdlNwYW45e3dpZHRoOjc1JX0uZGl2U3Bhbi5kaXZTcGFuMTB7d2lkdGg6ODMuMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW4xMXt3aWR0aDo5MS42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3BhbjEye3dpZHRoOjEwMCV9Ci8qKiAvY3NzL21lbnUtYmFzZS5jc3MgKiovCmJvZHkgLnVwX21lbnUsIGJvZHkgLnVwX21lbnUgKiB7IGJveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDsgfSBib2R5IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViLCBib2R5IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViICosIGJvZHkgLnVwX21lbnUgaW5wdXQsIGJvZHkgLnVwX21lbnUgc2VsZWN0LCBib2R5IC51cF9tZW51IHRleHRhcmVhLCBib2R5IC51cF9tZW51IGJ1dHRvbiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveCAhaW1wb3J0YW50OyB9IGJvZHkgLnVwX21lbnUsIGJvZHkgLnVwX21lbnUgPiAuUzEwMFBlcmNlbnRXaWR0aCB7IGJvcmRlci13aWR0aDppbml0aWFsOyBib3JkZXItc3R5bGU6aW5pdGlhbDsgYm9yZGVyLWNvbG9yOmluaXRpYWw7IH0gLnByaWNlIHsgZGlzcGxheTpub25lOyB9IC5tZW51LXNwZWMtcHJpY2UgPiAucHJpY2UgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46aW5pdGlhbDsgbWFyZ2luLXRvcDo0cHg7IHdpZHRoOmluaXRpYWw7IGZsb2F0OmluaXRpYWw7IH0gLm1lbnUtc3BlYy1wcmljZSA+IC5wcmljZSA+IHNwYW4geyBkaXNwbGF5Omxpc3QtaXRlbTsgbGluZS1oZWlnaHQ6MTVweDsgfSBpbWcuaG9tZS1pY29uIHsgcGFkZGluZy10b3A6MCAhaW1wb3J0YW50OyB9IGJvZHkgPiAudXBfbWVudSA+IC5uYXYgPiAuaXNCb2xkeyBmb250LXdlaWdodDpib2xkOyB9IC5uYXYgPiBsaSNNYWluTWVudV9IT01FID4gYS5pc0ltYWdlID4gc3BhbnsgaGVpZ2h0OjMzcHg7IHdpZHRoOjMxcHg7IHBhZGRpbmc6MDsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvaWNvbl9ob21lX3RhYkNvbG9yLnBuZycpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciAwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBkaXNwbGF5OmJsb2NrOyB9IC5uYXYgPiBsaSNNYWluTWVudV9IT01FOmhvdmVyID4gYS5pc0ltYWdlID4gc3BhbnsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvaWNvbl9ob21lX2hvdmVyLnBuZycpOyB9IHVsLnNsaW0tc3VibWVudSA+IGxpID4gYSB7IHBhZGRpbmc6NnB4IDE1cHggIWltcG9ydGFudDsgdGV4dC13cmFwOmF1dG87IH0gdWwuc2xpbS1zdWJtZW51LTIgPiBsaSA+IGEgeyBwYWRkaW5nOjlweCAxNXB4ICFpbXBvcnRhbnQ7IHRleHQtd3JhcDphdXRvOyB9IHVsLnNsaW0tc3VibWVudS0zID4gbGkgPiBhIHsgcGFkZGluZzoxMnB4IDE1cHggIWltcG9ydGFudDsgfSB1bC5zbGltLXN1Ym1lbnUtMyA+IGxpID4gYTpub3QoLnRvcF9saW5rKSB7IHRleHQtd3JhcDphdXRvOyBtaW4td2lkdGg6MjAwcHg7IH0gdWwuc3ViID4gbGkgPiBhIHsgdGV4dC13cmFwOmF1dG87IG1pbi13aWR0aDoyMDBweDsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGEgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgcGFkZGluZy1ib3R0b206MTVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbGV0dGVyLXNwYWNpbmc6MXB4OyBmb250LXdlaWdodDpib2xkOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID5saS5oYXNTdWI6aG92ZXIgPiBhLCAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X1RBQl9DT01NRVJDSUFMPnVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPmxpLmhhc1N1Yjpob3ZlciA+IGF7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSB7IGxlZnQ6MTQwJTsgdG9wOjA7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyB6LWluZGV4OjE7IH0gLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaTpob3ZlciA+IC5tYWlubWVudS1zdWJtZW51LCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVVNFRCB1bC5zdWIgPiBsaTpob3ZlciA+IC5tYWlubWVudS1zdWJtZW51LCBsaVtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl06aG92ZXIgPiAubWFpbm1lbnUtc3VibWVudSB7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgbGVmdDoxMDAlOyB0cmFuc2l0aW9uOmFsbCAwLjJzLCBvcGFjaXR5IDAuNXM7IG9wYWNpdHk6MTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBwb3NpdGlvbjpzdGF0aWM7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9IC5tZW51LXRlY2gtc3BlY3MgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo5NCU7IHRvcDowOyAtd2Via2l0LWJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgZGlzcGxheTpub25lOyBwYWRkaW5nOjE0cHg7IGJhY2tncm91bmQ6d2hpdGU7IHRleHQtYWxpZ246bGVmdDsgei1pbmRleDoxMDsgY29sb3I6dmFyKC0tYmxhY2spOyBtaW4td2lkdGg6MjUwcHg7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgfSAubWVudS10ZWNoLXNwZWNzIGxpLmRpdmlkZXIgeyBoZWlnaHQ6MXB4OyBtYXJnaW46OXB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjojZTVlNWU1OyB9IC5tZW51LXRlY2gtc3BlY3MgPiAubWVudS1zcGVjcy10aXRsZSB7IG1hcmdpbi1ib3R0b206MWVtOyBmb250LXNpemU6aW5pdGlhbDsgY29sb3I6YmxhY2s7IH0gdWwubWVudS1zcGVjcy1saXN0IGxpIHsgZm9udC1zaXplOjAuNzVyZW0gOyB9IHVsLm1lbnUtc3BlY3MtbGlzdCA+IGxpOm50aC1jaGlsZChuKzMpIHsgbWFyZ2luLWJvdHRvbToxZW07IH0gLm1lbnUtdGVjaC1zcGVjcyA+IHVsLm1lbnUtc3BlY3MtbGlzdCA+IGxpID4gYSB7IHBhZGRpbmc6M3B4IDRweCAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7IH0gLm1lbnUtc3BlY3MtbGlzdCA+IGxpIHsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC5tZW51LXNwZWNzLWxpc3QgbGkgc3Ryb25nLCAubWVudS1zcGVjcy1saXN0IGxpIHNwYW4geyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gdWwubWVudS1zcGVjcy1saXN0ID4gbGkgPiBzdHJvbmcgeyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDs7IH0gdWwubWVudS1zcGVjcy1saXN0ID4gbGkgPiBzcGFuIHsgbGluZS1oZWlnaHQ6MjsgfSAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiAubWVudS10ZWNoLXNwZWNzIHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB0cmFuc2l0aW9uOjAuNXM7IG9wYWNpdHk6MTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gLm1lbnUtdGVjaC1zcGVjcywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gLm1lbnUtdGVjaC1zcGVjc3sgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB0cmFuc2l0aW9uOjAuNXM7IG9wYWNpdHk6MTsgfSBib2R5Om5vdCguaXNGdWxsV2lkdGhQYWdlKSAudXBfbWVudSB7IHBvc2l0aW9uOmluaGVyaXQ7IH0gYm9keTpub3QoLmlzRnVsbFdpZHRoUGFnZSkgI21haW5EaXY6OmFmdGVyIHsgaGVpZ2h0OjA7IH0gI21haW5EaXYud3JhcHBlciB7IHBhZGRpbmc6MDsgfSBib2R5IC51cF9tZW51eyBoZWlnaHQ6YXV0bzsgd2lkdGg6OTYwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjEwMDA7IHdoaXRlLXNwYWNlOm5vd3JhcDsgY29sb3I6dmFyKC0tYmxhY2spOyB9IGJvZHkgLnVwX21lbnUuaGlkZGVuaGVhZGVyeyBtYXJnaW4tdG9wOjEwNnB4OyBwYWRkaW5nLXRvcDozcHg7IH0gYm9keSAudXBfbWVudS5oaWRkZW5oZWFkZXIuZml4ZWQsIGJvZHkgLnVwX21lbnUuZml4ZWQgeyB0b3A6MDsgcG9zaXRpb246Zml4ZWQ7IG1hcmdpbi10b3A6MDsgb3BhY2l0eTowLjc1OyB9IGJvZHkgLnVwX21lbnUud2l0aC1ib3JkZXIuZml4ZWQgeyB0b3A6MXB4OyB9IGJvZHkgLnVwX21lbnUuZml4ZWQ6aG92ZXJ7IG9wYWNpdHk6MTsgfSBib2R5IC51cF9tZW51ID4gLlMxMDBQZXJjZW50V2lkdGggeyBiYWNrZ3JvdW5kOnZhcigtLW1lbnUtYmctY29sb3IpOyBoZWlnaHQ6YXV0bzsgfSBib2R5IC51cF9tZW51IC5uYXYgPiBsaS5ub2Z4ID4gYXsgdHJhbnNpdGlvbjpub25lOyB9IGJvZHkgLnVwX21lbnUgLm5hdiA+IGxpeyBmbGV4LWdyb3c6MTsgfSBib2R5IC51cF9tZW51IC5uYXYgPiBsaSBheyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5zdWIgeyBoZWlnaHQ6YXV0bzsgfSB1bC5zdWIgeyBwYWRkaW5nOjA7IH0gLnVwX21lbnUgeyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgfSAudXBfbWVudSB1bCB7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowOyBtYXJnaW46MDsgei1pbmRleDoxOyB9IC51cF9tZW51IHVsLnN1YiB7IC13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyB9IC51cF9tZW51IHVsLm5hdiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWFpbi1tZW51LWJnLWNvbG9yKTsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVcgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSB1bC5uYXYgbGkgPiBhIHsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tYmxhY2spOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTVweCA1JTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOmF1dG87IH0gLnVwX21lbnUgdWwubmF2IGxpIHVsLnN1YiB7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSA+IGEgeyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IHRleHQtYWxpZ246Y2VudGVyOyB9IC51cF9tZW51IHVsLm5hdiBsaTpob3ZlciA+IGEsIC51cF9tZW51IHVsLm5hdiBsaS5pc09wZW4gPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpob3ZlciA+IHVsLnN1YiwgLnVwX21lbnUgdWwubmF2ID4gbGkuaXNPcGVuID4gdWwuc3ViIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXOmhvdmVyID4gdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTDpob3ZlciA+IHVsLnN1YnsgbWluLXdpZHRoOjEwMCU7IH0gLnVwX21lbnUgdWwubmF2IGxpOmhvdmVyID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBsZWZ0OjE0MCU7IHRvcDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgfSAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIHsgbWF4LWhlaWdodDo2NDBweDsgb3ZlcmZsb3cteTphdXRvOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSk6bm90KC5sYXN0TWVudSk6bm90KC5oYXNJdGVtcykgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOm5vdCgubGFzdEl0ZW0pIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgfSBsaSB1bC5zdWIgYSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaTpob3ZlciB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViIHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyBsZWZ0OjEwMCU7IHRyYW5zaXRpb246YWxsIDAuMnMsIG9wYWNpdHkgMC41czsgb3BhY2l0eToxOyB9IC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEOmhvdmVyIHVsLnN1YiBsaSB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IGxlZnQ6MDsgcG9zaXRpb246cmVsYXRpdmU7IG9wYWNpdHk6MTsgYm94LXNoYWRvdzpub25lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaS5ob3ZlciA+IGEsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpLmhvdmVyID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpLmhvdmVyIGxpID4gdWwuc3ViLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaS5ob3ZlciBsaSA+IHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViID4gbGkgPiB1bC5zdWI6Zmlyc3QtY2hpbGQsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViID4gbGkgPiB1bC5zdWI6Zmlyc3QtY2hpbGQgeyBkaXNwbGF5OmJsb2NrOyB9ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IC5zdWIgeyBtaW4td2lkdGg6MTAwJTsgfSAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgLml0ZW0td3JhcC5pbWdMaW5rIHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBiYWNrZ3JvdW5kOndoaXRlOyB3aWR0aDo0MjBweDsgcG9zaXRpb246YWJzb2x1dGU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIHsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOm5vdCgubGFzdEl0ZW0pLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiBsaT51bC5zdWI+bGkuaGFzU3ViOmhvdmVyPmEsIC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUw+dWwuc3ViIGxpPnVsLnN1Yj5saS5oYXNTdWI6aG92ZXI+YSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGkgYS5lbXB0eSwgLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTD51bC5zdWIgbGkgYS5lbXB0eSB7IHBhZGRpbmc6MDsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIHsgbGVmdDowOyB0b3A6aW5oZXJpdDsgcG9zaXRpb246c3RhdGljOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgYm94LXNoYWRvdzpub25lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViICwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiBhLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpub3QoLml0ZW0td3JhcCksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApIHsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo2MHB4OyBoZWlnaHQ6NjBweDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgd2lkdGg6MjUlOyBtaW4td2lkdGg6Zml0LWNvbnRlbnQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMiksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLWxlZnQ6MTVweDsgd2lkdGg6NzUlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmssIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgPiBpbWcsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZyB7IGhlaWdodDo2MHB4OyB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGEgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgcGFkZGluZy1ib3R0b206MTVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbGV0dGVyLXNwYWNpbmc6MXB4OyBmb250LXdlaWdodDpib2xkOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGE6YWZ0ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgfSBsaS5hbGlnbi1sZXZlbCB7IHBvc2l0aW9uOnN0YXRpYzsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpLml0ZW0td3JhcCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpLml0ZW0td3JhcHsgcGFkZGluZy10b3A6MTFweDsgcGFkZGluZy1ib3R0b206MTBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IHVsLnN1YiBsaSBhLml0ZW0td3JhcCB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgKiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViICosIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgKiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSB7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6NjBweDsgaGVpZ2h0OjYwcHg7IHRleHQtYWxpZ246bGVmdDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IHdpZHRoOjMwJTsgbWluLXdpZHRoOmZpdC1jb250ZW50OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMiksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKXsgcGFkZGluZy1sZWZ0OjE1cHg7IHdpZHRoOjcwJTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQ6YWZ0ZXJ7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdG9wOi0yN3B4OyByaWdodDotN3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlciwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlcnsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0b3A6LTI3cHg7IHJpZ2h0Oi03cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluaywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmt7IHJpZ2h0OjA7IGZsb2F0OnJpZ2h0OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgPiBpbWd7IGhlaWdodDo2MXB4OyB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsgfSBsaS5sYXN0TWVudSB1bC5zdWIgeyByaWdodDowOyB9IC51cF9tZW51IHVsLm5hdiBsaSB1bC5zdWIgbGkgYTpudGgtb2YtdHlwZSgxKS5pdGVtLXdyYXAgeyBwYWRkaW5nOjA7IH0gbGkuaGFzSXRlbXMgPiBhOmFmdGVyIHsgY29udGVudDoiICI7IHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItcmFkaXVzOjJweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZDsgbWFyZ2luLWxlZnQ6N3B4OyB9IGxpLmhhc1N1YiA+IGE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IGxlZnQ6MTAwJTsgbWFyZ2luLWxlZnQ6N3B4OyBwb3NpdGlvbjpzdGlja3k7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgbGkuaGFzSXRlbXMgPiBhOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6YmVmb3JlLCAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSBhOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMXB4OyB9IGkudHJpYW5nbGUgeyB3aWR0aDowOyBoZWlnaHQ6MDsgYm9yZGVyLXJhZGl1czoycHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gaS50cmlhbmdsZS50cmlhbmdsZS11cCB7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQ7IH0gaS50cmlhbmdsZS50cmlhbmdsZS1kb3duIHsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZDsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLXJpZ2h0IHsgYm9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItbGVmdDo1cHggc29saWQ7IH0gaS50cmlhbmdsZS50cmlhbmdsZS1sZWZ0IHsgYm9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkOyB9IGxpI01haW5NZW51X1VTRURfU0VBUkNIRVMgdWwgbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCB3aGl0ZTsgfSAubWVudS1hZGRyZXNzLWRlc2MgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBmb250LXNpemU6MC44NzVyZW0gOyBwYWRkaW5nLWJvdHRvbToyMHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBsaW5lLWhlaWdodDoxOXB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViID4gLmNvbnRhY3QtY29udGFpbmVyICNtZW51LW1hcC1saW5rIHsgcGFkZGluZzowOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X0NPTlRBQ1QgPiB1bC5zdWIgPiBsaS5jb250YWN0LWNvbnRhaW5lciB7IGJvcmRlci1ib3R0b206bm9uZTsgZGlzcGxheTpncmlkOyBncmlkLWF1dG8tZmxvdzpjb2x1bW47IGdyaWQtY29sdW1uLWdhcDoyMHB4OyB9IC51cF9tZW51ICNNYWluTWVudV9DT05UQUNUIHVsLnN1Yi5jb250YWN0dXMtZm9ybSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBsZWZ0OjA7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViLmNvbnRhY3R1cy1mb3JtLmNvbnRhY3Qtc2hvcnQgeyB3aWR0aDo2MTlweDsgbGVmdDphdXRvOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyByaWdodDowOyB9IC51cF9tZW51ICNNYWluTWVudV9DT05UQUNUIHVsLnN1Yi5jb250YWN0LXNob3J0ID4gLmNvbnRhY3QtY29udGFpbmVyID4gLmFkZHJlc3MgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IC5tZW51LXBob25lcyB7IGJvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IG1hcmdpbi10b3A6OHB4OyB9IC5waG9uZS13cmFwcGVyIHNwYW4uZmlyc3QgLmZhLXBob25lIHsgbWFyZ2luLXJpZ2h0OjhweDsgfSAucGhvbmUtd3JhcHBlciB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWVudS1waG9uZXMgLnBob25lLXdyYXBwZXIgeyBtYXJnaW4tdG9wOjhweDsgfSAubWVudS1hZGRyZXNzLWRlc2MgLm1lbnUtYWRkcmVzcy13cmFwcGVyIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1heC13aWR0aDoyNjZweDsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC5tZW51LWFkZHJlc3MtZGVzYyA+IC5mYS1tYXAtbWFya2VyIHsgdmVydGljYWwtYWxpZ246dG9wOyBtYXJnaW4tcmlnaHQ6OHB4OyB9IC5tZW51LW11bHRpbG9jYXRpb24geyBib3JkZXItdG9wOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyBtYXJnaW4tdG9wOjhweDsgcGFkZGluZy10b3A6OHB4OyB9IC5tZW51LW11bHRpbG9jIHsgbWFyZ2luLXRvcDo2cHg7IH0gLm1lbnUtbXVsdGlsb2Mgc3VtbWFyeSB7IGN1cnNvcjpwb2ludGVyOyBmb250LXdlaWdodDpib2xkOyBsaXN0LXN0eWxlOm5vbmU7IH0gLm1lbnUtbXVsdGlsb2Mgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7IGRpc3BsYXk6bm9uZTsgfSAubWVudS1tdWx0aWxvYyBzdW1tYXJ5OjpiZWZvcmUgeyBjb250ZW50OiJcMjVCNiI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6NnB4OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZTsgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7IH0gLm1lbnUtbXVsdGlsb2Nbb3Blbl0gc3VtbWFyeTo6YmVmb3JlIHsgdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7IH0gLm1lbnUtbXVsdGlsb2MtYm9keSB7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjEycHg7IH0gLmNvbnRhY3QtY29udGFpbmVyIC50aXRsZSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXRleHQtdXBwZXIpOyBjb2xvcjp2YXIoLS1ibGFjayk7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NnB4IDE1cHggNnB4IDA7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAuUmVjaGVyY2hlMjIgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10ZXh0LXVwcGVyKTsgY29sb3I6dmFyKC0tYmxhY2spOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjZweCAxNXB4IDZweCAwOyBmb250LXNpemU6MTMuMjhweDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OmluaGVyaXQ7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAjcXVpY2tFbWFpbEZvcm0geyBtYXJnaW46MCBhdXRvOyB9IC5jb250YWN0LWNvbnRhaW5lciAuYWRkcmVzcyA+IHVsID4gbGkgPiBhOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMXB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAuYnV0dG9uX2JveFMyIHsgZmxvYXQ6bm9uZTsgd2lkdGg6MjU1cHg7IHBhZGRpbmctcmlnaHQ6MDsgdGV4dC1hbGlnbjpyaWdodDsgfSAudXBfbWVudSAjTWFpbk1lbnVfU0VSVklDRSB1bC5zdWIuc2VydmljZS1mb3JtIHsgd2lkdGg6NjAlOyBsZWZ0OmF1dG87IHJpZ2h0OjA7IHBhZGRpbmctbGVmdDoxNXB4OyBwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgKiB7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciwgLm1lbnUtc2VydmljZS13cmFwcGVyIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciwgLm1lbnUtc2VydmljZS13cmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLmpxVHJhbnNmb3JtU2VsZWN0V3JhcHBlcnsgLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyAtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIHsgbWFyZ2luLWxlZnQ6LTE1cHg7IG1hcmdpbi1yaWdodDotMTVweDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXI6OmJlZm9yZSwgLm1lbnUtc2VydmljZS13cmFwcGVyOjphZnRlciB7IGRpc3BsYXk6dGFibGU7IGNvbnRlbnQ6IiAiOyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlcjo6YWZ0ZXIgeyBjbGVhcjpib3RoOyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1sZWZ0LCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLnNlcnZpY2UtcmlnaHQgeyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1kaXZpZGVyIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MC4xJTsgaGVpZ2h0OjQwMnB4OyBib3JkZXItbGVmdDoxcHggc29saWQgI2U1ZTVlNTsgbWFyZ2luLXRvcDoxNXB4OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1yaWdodCB7IHdpZHRoOjM5LjglOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X1NFUlZJQ0UgPiB1bCA+IGxpID4gLm1lbnUtc2VydmljZS13cmFwcGVyID4gLnNlcnZpY2UtcmlnaHQgdWwgbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1sZWZ0IHsgd2lkdGg6NjAlOyB9IC5zaG9ydC1zZXJ2aWNlLWZvcm0gaW5wdXQgeyBkaXNwbGF5OmJsb2NrOyB9IC5zZXJ2aWNlLWZvcm0tdGl0bGUgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjZweCAxNXB4IDZweCAwOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuc3NmLXN1Ym1pdCB7IG1hcmdpbi10b3A6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnNzZi1zdWJtaXQgLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4gc3BhbiB7IC13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC51cF9tZW51IHVsLm5hdiBsaS5tZW51LWFjdGl2ZSB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSB1bC5uYXYgbGkubWVudS1hY3RpdmUgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSBmb3JtLnNob3J0LXNlcnZpY2UtZm9ybS5qcXRyYW5zZm9ybWRvbmUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyLCBmb3JtLnNob3J0LXNlcnZpY2UtZm9ybS5qcXRyYW5zZm9ybWRvbmUgLmpxVHJhbnNmb3JtU2VsZWN0V3JhcHBlciB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAuc3NmLWRhdGUtY2FsZW5kYXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6MC41cmVtOyByaWdodDoxLjNyZW07IGNvbG9yOiNhYWE7IHdpZHRoOjA7IH0gLml0ZW0td3JhcCB7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAudXBfbWVudSB1bC5zdWIgbGkgLml0ZW0td3JhcCB7IG1pbi1oZWlnaHQ6NjFweDsgfSBib2R5LmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQuaXNGdWxsV2lkdGhQYWdlIC5NYWluQm94TGF5ZXIgLnVwX21lbnUsIGJvZHkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLndyYXBwZXIuTWFpbkJveExheWVyIC51cF9tZW51IHsgd2lkdGg6aW5oZXJpdDsgfSAjZnVsbFdpZHRoTWVudUJhciB7IHdpZHRoOmNhbGModmFyKC0tdndzLCAxdncpICogMTAwKTsgYm90dG9tOjA7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo1MCU7IHJpZ2h0OjUwJTsgbWFyZ2luLWxlZnQ6LTUwdnc7IG1hcmdpbi1yaWdodDotNTB2dzsgYm94LXNpemluZzpib3JkZXItYm94OyBiYWNrZ3JvdW5kOmluaGVyaXQ7IHotaW5kZXg6LTE7IH0gLnVwX21lbnUud2l0aC1ib3JkZXIgI2Z1bGxXaWR0aE1lbnVCYXIgeyBib3JkZXItdG9wOjJweCBzb2xpZCB2YXIoLS1tZW51LWNvbG9yLWJvcmRlcik7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW1lbnUtY29sb3ItYm9yZGVyKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnB4KTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpLmludmVudG9yeSA+IHVsLnN1YiB7IG92ZXJmbG93OmhpZGRlbjsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydCA+IHVsLnN1YiB7IGxlZnQ6aW5oZXJpdDsgd2lkdGg6YXV0bzsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydCA+IHVsLnN1YiA+IGxpW2RhdGEtaWRePSJVU0VEXyJdIHsgd2lkdGg6YXV0bzsgbWluLXdpZHRoOjI2MHB4OyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNob3J0ID4gdWwuc3ViID4gbGkuaW52ZW50b3J5ID4gdWwgPiBsaVtkYXRhLWlkXj0iVVNFRF9DQVJTX0ciXSB7IHdpZHRoOmF1dG87IH0gLnNrZWxldG9uLmhlYWRlci1tZW51LmZpeGVkIHsgcG9zaXRpb246aW5oZXJpdDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTMwMHB4KSB7IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNob3J0LnNob3J0LTIgPiB1bC5zdWIgeyBsZWZ0OjA7IH0gfQovKiogL2Nzcy9tZW51NS5jc3MgKiovCi51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3VieyB3aWR0aDoxMDAlOyBsZWZ0OjA7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaSB7IGZsb2F0OmxlZnQ7IHdpZHRoOjI1JTsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjVweDsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpLmludmVudG9yeSB7IGZsb2F0OmxlZnQ7IHdpZHRoOjc1JTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgPiBhIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpOmhvdmVyID4gYSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpLmludmVudG9yeSA+IHVsID4gbGkgeyB3aWR0aDozMyU7IGZsb2F0OmxlZnQ7IH0gLmNvbnRhY3QtY29udGFpbmVyICNxdWlja0VtYWlsRm9ybSB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3QtY29udGFpbmVyIC5idXR0b25fYm94UzIgeyBtYXJnaW46YXV0bzsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaW1wbGlmaWVkIHVsLnN1YiB7IHdpZHRoOmluaGVyaXQ7IGxlZnQ6aW5oZXJpdDsgfSAuZXhwcmVzcy1mb3JtIHRhYmxlIHsgbWFyZ2luOjAgYXV0bzsgfSAuZXhwcmVzcy1mb3JtIC53aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxlIHsgZGlzcGxheTpub25lOyB9IGltZyNtZW51LWNvbnRhY3QtbWFwIHsgd2lkdGg6MTAwJTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaW1wbGlmaWVkIHVsLnN1YiAjTWFpbk1lbnVfVVNFRF9TRUFSQ0hFUyB7IHdpZHRoOjEwMCU7IH0gLmZpbmFuY2UtbWVudS1jcmVkc2lpeyBtaW4td2lkdGg6Mzc1cHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfRklOQU5DRSA+IHVsID4gbGkgPiAubWVudS1maW5hbmNlLXdyYXBwZXIgPiB1bCBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gI01haW5NZW51X0ZJTkFOQ0UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmxlZnQgeyBsZWZ0OjA7IHJpZ2h0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5yaWdodCB7IHJpZ2h0OjA7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0yNTBweDsgbGVmdDphdXRvOyB9IC5tZW51NSAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQgeyBtaW4td2lkdGg6ODAwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkubGFzdE1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsID4gbGkgPiBkaXYgeyByaWdodDoxMDAlOyBsZWZ0OmluaXRpYWw7IH0gLnVwX21lbnUgdWwubmF2IGxpLmludmVyc2UtY29sb3IgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAuZGVhbGVyTWFwTGluayAuZmEtbG9jYXRpb24tYXJyb3cgeyBtYXJnaW46MCA3cHggMCAwOyB9IC52LWNhcmQudG9wX2JnLmhlYWRlci1pbmZvIC5oZWFkZXItc2VjdGlvbi5hZGRyZXNzLXJpZ2h0IHsgZmxleC1ncm93OjI7IGp1c3RpZnktY29udGVudDpyaWdodDsgfSAudi1jYXJkLnRvcF9iZy5oZWFkZXItaW5mbyAuaGVhZGVyLXNlY3Rpb24ubG9nby1yaWdodCB7IG1hcmdpbi1sZWZ0OjEwcHg7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2pxdWVyeS5tdWx0aXNlbGVjdC5jc3MgKiovCi51aS1tdWx0aXNlbGVjdHtwYWRkaW5nOjJweCAwIDJweCA0cHg7dGV4dC1hbGlnbjpsZWZ0fS51aS1tdWx0aXNlbGVjdCBzcGFuLnVpLWljb257ZmxvYXQ6cmlnaHR9LnVpLW11bHRpc2VsZWN0LXNpbmdsZSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O3RvcDphdXRvICFpbXBvcnRhbnQ7bGVmdDotOTk5OXB4fS51aS1tdWx0aXNlbGVjdC1zaW5nbGUgLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWx7cGFkZGluZzo1cHggIWltcG9ydGFudH0udWktbXVsdGlzZWxlY3QtaGVhZGVye21hcmdpbi1ib3R0b206M3B4O3BhZGRpbmc6M3B4IDAgM3B4IDRweH0udWktbXVsdGlzZWxlY3QtaGVhZGVyIHVse2ZvbnQtc2l6ZTouOWVtfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgdWwgbGl7ZmxvYXQ6bGVmdDtwYWRkaW5nOjAgMTBweCAwIDB9LnVpLW11bHRpc2VsZWN0LWhlYWRlciBhe3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgc3Bhbi51aS1pY29ue2Zsb2F0OmxlZnR9LnVpLW11bHRpc2VsZWN0LWhlYWRlciBsaS51aS1tdWx0aXNlbGVjdC1jbG9zZXtmbG9hdDpyaWdodDt0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmctcmlnaHQ6MH0udWktbXVsdGlzZWxlY3QtbWVudXtkaXNwbGF5Om5vbmU7cGFkZGluZzozcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMDt0ZXh0LWFsaWduOmxlZnR9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXN7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteTphdXRvfS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVse2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtwYWRkaW5nOjNweCAxcHh9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWwgaW5wdXR7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweH0udWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXtjbGVhcjpib3RoO2ZvbnQtc2l6ZTouOWVtO3BhZGRpbmctcmlnaHQ6M3B4fS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxpLnVpLW11bHRpc2VsZWN0LW9wdGdyb3VwLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWR9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGkudWktbXVsdGlzZWxlY3Qtb3B0Z3JvdXAtbGFiZWwgYXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4O21hcmdpbjoxcHggMDt0ZXh0LWRlY29yYXRpb246bm9uZX0qIGh0bWwgLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWx7Ym9yZGVyOjB9LnVpLW11bHRpc2VsZWN0LWhhc2ZpbHRlciB1bHtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4fS51aS1tdWx0aXNlbGVjdC1maWx0ZXJ7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTBweDtmb250LXNpemU6MTFweH0udWktbXVsdGlzZWxlY3QtZmlsdGVyIGlucHV0e3dpZHRoOjEwMHB4O2ZvbnQtc2l6ZTowLjYyNXJlbSA7bWFyZ2luLWxlZnQ6NXB4O2hlaWdodDoxNXB4O3BhZGRpbmc6MnB4O2JvcmRlcjoxcHggc29saWQgIzI5MjkyOTstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveH0KLyoqIC9jc3MvdHJhZGVpbnBvcHVwLmNzcyAqKi8KLnRyYWRlSW5CYXJTdGVwMiAudHJhZGVJbkJhclN0ZXAyUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGxhYmVseyB3aWR0aDo1MHB4OyBwYWRkaW5nOjA7IG1hcmdpbjo1cHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrIH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGlucHV0eyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46NXB4ICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IH0gLnRyYWRlSW5CYXJTdGVwMiwgLnRyYWRlSW5CYXJTdGVwMywgLnRyYWRlSW5CYXJTdGVwNCwgLnRyYWRlSW5CYXJTdGVwNXsgbWFyZ2luOjYwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnRyYWRlSW5CYXJTdGVwNnsgbWFyZ2luOjAgMCAzMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC50cmFkZUluQmFyU3RlcDMgLnRyYWRlSW5CYXJTdGVwM1F1ZXN0aW9uLCAudHJhZGVJbkJhclN0ZXA0IC50cmFkZUluQmFyU3RlcDRRdWVzdGlvbiwgLnRyYWRlSW5CYXJTdGVwNSAudHJhZGVJbkJhclN0ZXA1UXVlc3Rpb24sIC50cmFkZUluQmFyU3RlcDYgLnRyYWRlSW5CYXJTdGVwNlF1ZXN0aW9ueyBtYXJnaW46MjBweCAwOyB9ICN0cmFkZUluQmFyUG9wdXBTdWJtaXQsIC50cmFkZUluQmFyU3RlcDMgI3RyYWRlSW5TdGVwM1llcywgLnRyYWRlSW5CYXJTdGVwNCAjdHJhZGVJblN0ZXA0WWVzLCAudHJhZGVJbkJhclN0ZXA1ICN0cmFkZUluU3RlcDVZZXMsIC50cmFkZUluQmFyU3RlcDYgI3RyYWRlSW5TdGVwNlllc3sgYmFja2dyb3VuZDojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBmb250LXdlaWdodDo1MDA7IGJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IHRyYW5zaXRpb246YWxsIDAuM3M7IG1heC13aWR0aDozNTBweDsgfSAudHJhZGVJbkJhclN0ZXAzICN0cmFkZUluU3RlcDNOb3sgYmFja2dyb3VuZDojZTBlMGUwOyBjb2xvcjojMzMzOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHg7IGZvbnQtd2VpZ2h0OjUwMDsgYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlcjpub25lOyBjdXJzb3I6cG9pbnRlcjsgdHJhbnNpdGlvbjphbGwgMC4zczsgbWF4LXdpZHRoOjM1MHB4OyBtYXJnaW4tdG9wOjEwcHg7IH0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdDpob3ZlciwgLnRyYWRlSW5CYXJTdGVwMyAjdHJhZGVJblN0ZXAzWWVzOmhvdmVyLCAudHJhZGVJbkJhclN0ZXA0ICN0cmFkZUluU3RlcDRZZXM6aG92ZXIsIC50cmFkZUluQmFyU3RlcDUgI3RyYWRlSW5TdGVwNVllczpob3ZlciwgLnRyYWRlSW5CYXJTdGVwNiAjdHJhZGVJblN0ZXA2WWVzOmhvdmVyeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiNlMzE3M2U7IG9wYWNpdHk6MC45OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCAjdHJhZGVJbktleVNlbGVjdHsgd2lkdGg6MzUwcHg7IG1heC13aWR0aDozNTBweDsgcGFkZGluZzoxMHB4OyBtYXJnaW4tYm90dG9tOjIwcHg7IGJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG91dGxpbmU6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUgI3N0ZXA1VmlueyB3aWR0aDozNTBweDsgbWF4LXdpZHRoOjM1MHB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiAudHJhZGVJbkJhclN0ZXA2VGl0bGV7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBfbGluZTF7IGJvcmRlci1yYWRpdXM6NnB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZGVyLWNvbnRhaW5lciB7IG1heC13aWR0aDo2MDBweDsgd2lkdGg6MTAwJTsgbWFyZ2luOjAgYXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwYWRkaW5nOjIwcHg7IGJvcmRlci1yYWRpdXM6OHB4OyBib3gtc2hhZG93OjAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkZXItY29udGFpbmVyIGgyIHsgZm9udC1zaXplOjEuMnJlbTsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWRlci1jb250YWluZXIgcCB7IGNvbG9yOiM2NjY7IG1hcmdpbi1ib3R0b206MjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjlyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuaW1hZ2UtZ3JpZCB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LCAxZnIpOyBnYXA6MTVweDsgb3ZlcmZsb3cteTpzY3JvbGw7IGhlaWdodDoyODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IGFzcGVjdC1yYXRpbzoxIC8gMTsgYm9yZGVyOjJweCBkYXNoZWQgI2NjYzsgYm9yZGVyLXJhZGl1czoxMHB4OyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLXNpemU6OTAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkLWFyZWEgaW5wdXRbdHlwZT0iZmlsZSJdIHsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnBsYWNlaG9sZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvYmplY3QtZml0OmNvbnRhaW47IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlci10aXRsZSB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NXB4OyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiM2NjY7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyBwYWRkaW5nOjFweCA2cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBwb2ludGVyLWV2ZW50czpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuYWRkLWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgcmlnaHQ6NXB4OyBmb250LXNpemU6MS4xcmVtOyBjb2xvcjojMDA3QkZGOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjUwJTsgd2lkdGg6MjhweDsgaGVpZ2h0OjI4cHg7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBib3gtc2hhZG93OjAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuZGVsZXRlLWJ0biB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NXB4OyByaWdodDo1cHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC43KTsgY29sb3I6d2hpdGU7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjUwJTsgZm9udC1zaXplOjAuNzVyZW0gOyBsaW5lLWhlaWdodDoyMHB4OyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhOmhvdmVyIC5kZWxldGUtYnRuIHsgZGlzcGxheTpmbGV4OyB9IC50cmFkZUluQm90dG9tTG9nb3sgdGV4dC1hbGlnbjpjZW50ZXI7IGNvbG9yOiNhOWE5YTk7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC50cmFkZUluQm90dG9tTG9nby50cmFkZUluQm90dG9tTG9nb1ZXeyBtYXJnaW46MCBhdXRvOyB3aWR0aDo4NSU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnR7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1vdmVyZmxvdzpjbGlwOyBtYXgtd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjE2cHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQ6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB0b3A6MDsgd2lkdGg6MjBweDsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQ6d2hpdGU7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQ6OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo1cHg7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZDp3aGl0ZSB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0IHNwYW57IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBmb250LXNpemU6MC44MTNyZW0gIWltcG9ydGFudDsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQgc3BhbiBheyBmb250LXdlaWdodDpib2xkOyB9IC50cmFkZUluRGlzY2xhaW1lckRyYXdlcnsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDsgYm90dG9tOi0zMDBweDsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIC0ycHggMTBweCByZ2JhKDAsMCwwLDAuMyk7IHRyYW5zaXRpb246Ym90dG9tIDAuM3MgZWFzZTsgZGlzcGxheTpub25lOyBvdmVyZmxvdzphdXRvOyB6LWluZGV4OjEwOyB9IC50cmFkZUluRGlzY2xhaW1lckRyYXdlci5vcGVueyBib3R0b206MDsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbiAudHJhZGVJbkRpc2NsYWltZXJDb250ZW50eyBwYWRkaW5nOjIwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbiAudHJhZGVJbkRpc2NsYWltZXJDbG9zZXsgcGFkZGluZzo3cHg7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpmaXhlZDsgcmlnaHQ6MDsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbiBheyBmb250LXdlaWdodDpib2xkOyB9IEBtZWRpYSAobWF4LXdpZHRoOjYwMHB4KSB7ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZGVyLWNvbnRhaW5lciB7IHBhZGRpbmc6MTVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5pbWFnZS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpOyBnYXA6MTBweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlci10aXRsZSB7IGZvbnQtc2l6ZTowLjdyZW07IH0gfSBAbWVkaWEgKG1heC13aWR0aDo0MDBweCkgeyAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5pbWFnZS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCAxZnIpOyBnYXA6OHB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnBsYWNlaG9sZGVyLXRpdGxlIHsgZm9udC1zaXplOjAuNnJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5hZGQtaWNvbiB7IHdpZHRoOjI0cHg7IGhlaWdodDoyNHB4OyBmb250LXNpemU6MXJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5kZWxldGUtYnRuIHsgd2lkdGg6MTZweDsgaGVpZ2h0OjE2cHg7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IH0gfQovKiogL2Nzcy9yZXZlYWwuY3NzICoqLwoucmV2ZWFsLW1vZGFsLWJnIHsgcG9zaXRpb246Zml4ZWQ7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kOiMwMDA7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHotaW5kZXg6MTAwMDAwOTsgZGlzcGxheTpub25lOyB0b3A6MDsgbGVmdDowOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgdG9wOi0xMDAwcHg7IHdpZHRoOm1pbig1MjBweCwgOTB2dyk7IGJhY2tncm91bmQ6I2VlZSB1cmwoL2ltYWdlcy9tb2RhbC1nbG9zcy5wbmcpIG5vLXJlcGVhdCAtMjAwcHggLTgwcHg7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgcmlnaHQ6MDsgbWFyZ2luOmF1dG87IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzozMHB4IDQwcHggMzRweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyAtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgfSAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDoxMDBweDsgd2lkdGg6NTIwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IGJhY2tncm91bmQ6bm9uZTsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyLXJhZGl1czowcHg7IC1tb3otYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgLWJveC1zaGFkb3c6bm9uZTsgfSAuLS1pcy1wb3B1cC1maXhlZC1jb250YWluZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgei1pbmRleDoxMDAwMDAwMDA7IH0gLnJldmVhbC1tb2RhbC5zbWFsbCB7IHdpZHRoOjIwMHB4O30gLnJldmVhbC1tb2RhbC5tZWRpdW0geyB3aWR0aDo0MDBweDt9IC5yZXZlYWwtbW9kYWwubGFyZ2UgeyB3aWR0aDo2MDBweDt9IC5yZXZlYWwtbW9kYWwueGxhcmdlIHsgd2lkdGg6ODAwcHg7fSAucmV2ZWFsLW1vZGFsIC5jbG9zZS1yZXZlYWwtbW9kYWwgeyBmb250LXNpemU6MS4zNzVyZW0gOyBsaW5lLWhlaWdodDouNTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo5cHg7IHJpZ2h0OjEwcHg7IGNvbG9yOiM0NDQ7IHRleHQtc2hhZG93OjAgLTFweCAxcHggcmJnYSgwLDAsMCwuNik7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyB9IC5jbG9zZS1yZXZlYWwtbW9kYWwubW9kYWwtY2xvc2UtaGlkZSB7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsIHNwYW4geyBwYWRkaW5nOjBweDsgZm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6IzQxNDE0MTsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uc3VjY2VzcyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2lyY2xlLWdyZWVuLTI0LW5zLnBuZykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uZmFpbCB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2lyY2xlLXJlZC0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IHBhZGRpbmctbGVmdDozMHB4OyB9IC5yZXZlYWwtbW9kYWwgcCB7IG1hcmdpbjowIDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAucG9wdXAtZG9tLW5vd3JhcHBlciB7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyBib3gtc2hhZG93Om5vbmU7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDo0ODBweCkgeyAucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdG9wOjEwcHg7IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzowLjVyZW07IHBhZGRpbmctdG9wOjJyZW07IH0gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuODc1cmVtIDsgbGluZS1oZWlnaHQ6MC42OyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IHotaW5kZXg6MTsgfSB9IC5lbWFpbC1jb25zZW50LWJveCA6aXMoLnRpdGxlLXR4dCwgcCl7IG1hcmdpbi1sZWZ0OjA7IHBhZGRpbmc6MDsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3h7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3ggLmljb24tdGl0bGV7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5lbWFpbC1jb25zZW50LWJveC0tY29tcGFjdCBzcGFuLmZhaWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBsaW5lLWhlaWdodDoxLjI7IH0gLmVtYWlsLWNvbnNlbnQtYm94LS1jb21wYWN0IHB7IG1hcmdpbi10b3A6MTJweDsgbGluZS1oZWlnaHQ6MS40OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIHsgW2lkXj0iZW1haWxGYWlsTWVzc2FnZSJdeyB3aWR0aDptaW4oOTJ2dywgNDIwcHgpICFpbXBvcnRhbnQ7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSB9Ci8qKiAvY3NzL2FkdmFuY2VkLXNsaWRlci1iYXNlLmNzcyAqKi8KLmFkdmFuY2VkLXNsaWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyBvdXRsaW5lOm5vbmU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgKiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVyLW1haW4geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIHVsLnNsaWRlcyB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbjowOyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHZpc2liaWxpdHk6aGlkZGVuOyBsaXN0LXN0eWxlOm5vbmU7IGZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7IG9wYWNpdHk6MTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5pbWFnZSwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudGh1bWJuYWlsLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5jYXB0aW9uLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSBpbWcsIC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCBpbWcgeyBtYXgtd2lkdGg6bm9uZTsgbWF4LWhlaWdodDpub25lOyBib3JkZXI6MCBub25lOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLmh0bWwgeyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUuYWN0aXZlIC52aWRlbyB7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpY2UtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgeyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW8tdXNlci1zZWxlY3Q6bm9uZTsgdXNlci1zZWxlY3Q6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgLnNlbGVjdGFibGUgeyAtd2Via2l0LXVzZXItc2VsZWN0OmF1dG87IC1tb3otdXNlci1zZWxlY3Q6YXV0bzsgLW8tdXNlci1zZWxlY3Q6YXV0bzsgdXNlci1zZWxlY3Q6YXV0bzsgY3Vyc29yOmF1dG87IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuZ3JhYiB7IGN1cnNvcjpncmFiOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWJiaW5nIHsgY3Vyc29yOmdyYWJiaW5nOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAucHJlbG9hZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJlbG9hZGVyMi5naWYpIG5vLXJlcGVhdDsgd2lkdGg6NjJweDsgaGVpZ2h0OjE0cHg7IHotaW5kZXg6MTU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYXJyb3dzIHsgcG9zaXRpb246c3RhdGljOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MzA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6ODBweDsgaGVpZ2h0OjgwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi00MHB4OyBtYXJnaW4tbGVmdDotNDBweDsgY3Vyc29yOnBvaW50ZXI7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5LnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5tYWduaWZ5aW5nIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saWdodGJveF9tYWduaWZ5aW5nX3NtYWxsLnBuZykgbm8tcmVwZWF0OyBmbG9hdDpsZWZ0OyBsZWZ0OjA7IHRvcDowOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6bm9uZTsgfSB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmsucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZXNob3ctY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IHsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDo5NHB4OyBtYXJnaW4tdG9wOi01MHB4OyB6LWluZGV4OjU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctbGVmdCwgLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctcmlnaHQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LW1pZGRsZSB7IGZsb2F0OmxlZnQ7IH0gLmFkdmFuY2VkLXNsaWRlciAuZnVsbC1zY3JlZW4tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Z1bGxzY3JlZW4ucG5nKSBuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozMXB4OyBoZWlnaHQ6MjdweDsgdG9wOjIwcHg7IGxlZnQ6MjBweDsgei1pbmRleDo2MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NTA7IH0gLmFkdmFuY2VkLXNsaWRlciBjYW52YXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgd2lkdGg6MjBweDsgaGVpZ2h0OjIwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xMHB4OyBtYXJnaW4tbGVmdDotMTBweDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcGxheXBhdXNlX3NtYWxsLnBuZykgbm8tcmVwZWF0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wbGF5IC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMHB4IDA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uLnBhdXNlIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciB7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLndyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtd3JhcHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcHJlbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLmxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLnJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgYSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6cG9pbnRlcjsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAudmlzaWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IG92ZXJmbG93OnZpc2libGU7IHRvcDowOyBsZWZ0OjA7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnRodW1ibmFpbC13cmFwcGVyIHsgY3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xNXB4OyBtYXJnaW4tbGVmdDotMTVweDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLnBsYXkgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X3BsYXlfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5oeXBlcmxpbmsgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X2h5cGVybGlua19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmNvbnRlbnQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyLXRvb2x0aXAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTk5OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGU6bnRoLWNoaWxkKC1uKzQpIGEgaW1neyB3aWR0aDoxMTUlICFpbXBvcnRhbnQ7IH0gLm9lbS1pbWctc2xpZGVyIC5zbGlkZSBhIGltZ3sgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgbWF4LWhlaWdodDpub25lICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7IGxlZnQ6aW5pdGlhbCAhaW1wb3J0YW50OyB0b3A6aW5pdGlhbCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6dW5zZXQgIWltcG9ydGFudDsgbWF4LWhlaWdodDp1bnNldCAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIHsgYmFja2dyb3VuZC1zaXplOjExNSU7IH0KLyoqIC9jc3MvcGFnZWJhbm5lci5jc3MgKiovCiN0b3BCYW5uZXJJbWFnZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIHsgei1pbmRleDoxMTA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBmb250LXNpemU6dmFyKC0tZnMpOyBwYWRkaW5nOjVweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIC5mYS10aW1lcyB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRyb2wgeyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IHRleHQtd3JhcDpub3dyYXA7IH0gI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sID4gYnV0dG9uIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgZm9udC1zaXplOnZhcigtLWZzKTsgY29sb3I6dmFyKC0td2hpdGUpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgd2lkdGg6MTAwJTsgcGFkZGluZzowLjc1cmVtOyB9ICN0b3BCYW5uZXJJbWFnZTpub3QoOmhhcygqKSkgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJuZXdpbnYiXTpoYXMoLnVzZWRJbnZCYW5uZXI6b25seS1jaGlsZCkgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJ1c2VkIl06aGFzKC5uZXdJbnZCYW5uZXI6b25seS1jaGlsZCkgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJuZXdpbnYiXSAudXNlZEludkJhbm5lciB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2VbZGF0YS1pbnZjYXQ9InVzZWQiXSAubmV3SW52QmFubmVyIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0ibmV3aW52Il06aGFzKC5uZXdJbnZCYW5uZXIpICNkZWZhdWx0VG9wQmFubmVyIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0idXNlZCJdOmhhcygudXNlZEludkJhbm5lcikgI2RlZmF1bHRUb3BCYW5uZXIgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlID4gaW1neyB3aWR0aDoxMDAlOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjBweCkgeyAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRyb2wgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDI7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTsgYm90dG9tOjAuNzVyZW07IH0gI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sID4gYnV0dG9uIHsgd2lkdGg6YXV0bzsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjgpOyBib3JkZXI6bm9uZTsgY29sb3I6dmFyKC0td2hpdGUpOyBmb250LXNpemU6dmFyKC0tZnMtMik7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6OHB4IDEzcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyB3aWR0aDpjYWxjKDEwMCUgLSAyMHB4KTsgaGVpZ2h0OmNhbGMoMTAwJSAtIDEwcHgpOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC44KTsgY29sb3I6dmFyKC0tbGlnaHQpOyBmb250LXNpemU6dmFyKC0tZnMpOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIC5mYS10aW1lcyB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wIDoxMHB4OyByaWdodDoxMCU7IGN1cnNvcjpwb2ludGVyOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyID4gZGl2IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjc1JTsgdG9wOjUwJTsgbGVmdDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7IGhlaWdodDo5MCU7IG92ZXJmbG93LXg6aGlkZGVuOyBvdmVyZmxvdy15OmF1dG87IH0gfQovKiogL2Nzcy9mYXZvcml0ZXMucHJlbG9hZC5jc3MgKiovCmRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLTIgZGl2LlNsaWRlck91dGVyQm94LCAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxMTBweDsgdG9wOjMwcHg7IHotaW5kZXg6MTE7IGZvbnQtc2l6ZToxLjZlbTsgY3Vyc29yOnBvaW50ZXI7IH0gLmNhckJveE91dGVyIC5jYXJJbWFnZSAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIHsgcmlnaHQ6NDBweDsgdG9wOjE1cHg7IH0gLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgeyBtYXgtd2lkdGg6ODUlOyB9IC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciB7IHJpZ2h0OjI3cHg7IHRvcDowOyB9IC5kaXZDYXJTaW5nbGVPdXRlckJveCAucmViYXRlVGFnICsgLmRpdkNhclNpbmdsZUlubmVyQm94IC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgeyB0b3A6NjBweDsgfSAuZmEtbGF5ZXJzIC5mYSwgLmZhLWxheWVycyAuZmFyIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IH0gLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciAuZmEtbGF5ZXJzIC5mYSB7IGNvbG9yOiNGRkY7IGZvbnQtc2l6ZTowLjk3NWVtOyBsZWZ0OjFweCAhaW1wb3J0YW50OyB9IC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgLmZhLWxheWVycyAuZmFyLCAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyLmQyYy1mYXZzLXNlbGVjdGVkIC5mYS1sYXllcnMgLmZhIHsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2UzMTczZTsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZSAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIHsgZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7IG9wYWNpdHk6MDsgfSBkaXYjbXljYXJvdXNlbGRpdiAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyLCBkaXYudXNlZC1kZXRhaWxzIC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgeyByaWdodDo0MHB4OyB0b3A6MTVweDsgfSAuaGVhZGVyLXNvY2lhbCAubGFuZ3VhZ2VCYXIgeyBtYXJnaW4tcmlnaHQ6MjVweDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIHsgZm9udC1zaXplOnZhcigtLWZzNSk7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MjhweDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmEgeyBjb2xvcjp0cmFuc3BhcmVudDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHsgY29sb3I6I2FlYjViZTsgZm9udC13ZWlnaHQ6MTAwOyB9IC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIuZmF2LW5hdi1oYXMtdmVoaWNsZXMgLmZhLWxheWVycyBpLmZhLCAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyLmZhdi1uYXYtaGFzLXZlaGljbGVzIC5mYS1sYXllcnMgaS5mYXIgeyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2UzMTczZTsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHNwYW4uZmF2LW5hdi1jb3VudCB7IHBvc2l0aW9uOmFic29sdXRlOyBmb250LXNpemU6MC44MTNyZW0gOyB0b3A6N3B4OyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGNvbG9yOiNGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDo2MDA7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbWVudSkgIWltcG9ydGFudDsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciB7IGRpc3BsYXk6bm9uZTsgfSAuaGVhZGVyLXNvY2lhbCBkaXYubGFuZ3VhZ2VCYXIuaXNLaWFTaGlmdCB7IG1hcmdpbi1yaWdodDowOyB9IC5sYW5ndWFnZUJhciAuZDJjLWZhdnMtbmF2LXdyYXBwZXIuaXNLaWFTaGlmdCB7IGZvbnQtc2l6ZTowLjg3NXJlbTsgd2lkdGg6MjBweDsgbGVmdDowOyB0b3A6NXB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyLmlzS2lhU2hpZnQgaSB7IHBhZGRpbmc6MDsgbWFyZ2luLXJpZ2h0OjhweDsgZm9udC1zaXplOjEuMjVyZW07IH0gLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlci5mYXYtbmF2LWhhcy12ZWhpY2xlcy5pc0tpYVNoaWZ0IC5mYS1sYXllcnMgaS5mYSwgLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlci5mYXYtbmF2LWhhcy12ZWhpY2xlcy5pc0tpYVNoaWZ0IC5mYS1sYXllcnMgaS5mYXIgeyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I0ZGRjsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyLmlzS2lhU2hpZnQgaS5mYXIgc3Bhbi5mYXYtbmF2LWNvdW50IHsgcGFkZGluZzowOyBmb250LXNpemU6MC42NzVyZW07IHRvcDo0cHg7IGNvbG9yOiMwMDA7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlci5pc0tpYVNoaWZ0IC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciB7IHRvcDoyMHB4OyB9Ci8qKiAvY3NzL2Zhdm9yaXRlcy5sb2FkLmNzcyAqKi8KYm9keS5pc0Z1bGxXaWR0aFBhZ2UgZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQtMiBkaXYuU2xpZGVyT3V0ZXJCb3g6aG92ZXIgLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciwgYm9keS5pc0Z1bGxXaWR0aFBhZ2UgLmRpdkNhclNpbmdsZU91dGVyQm94OmhvdmVyIC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyLCBib2R5LmlzRnVsbFdpZHRoUGFnZSAuY2FyQm94T3V0ZXI6aG92ZXIgLmNhckltYWdlIC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIsIGJvZHkuaXNGdWxsV2lkdGhQYWdlIC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIuZDJjLWZhdnMtc2VsZWN0ZWQgeyBmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApOyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0OyAtbW96LXRyYW5zaXRpb246b3BhY2l0eSAzNTBtcyBlYXNlLWluLW91dDsgLW1zLXRyYW5zaXRpb246b3BhY2l0eSAzNTBtcyBlYXNlLWluLW91dDsgLW8tdHJhbnNpdGlvbjpvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uOm9wYWNpdHkgMzUwbXMgZWFzZS1pbi1vdXQ7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgeyB3aWR0aDo0MDBweDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IHRvcDoyNXB4OyB6LWluZGV4Ojk5OTk7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgYm9yZGVyOjFweCBzb2xpZCAjZTVlNWU1OyBib3JkZXItYm90dG9tOm5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsMC4xOCk7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTgpOyBvdmVyZmxvdzpoaWRkZW47IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXI6aG92ZXIsIC5sYW5ndWFnZUJhciAuZDJjLWZhdnMtbmF2LXdyYXBwZXI6bm90KC5kMmMtZmF2cy1uYXYtZGlzYWJsZWQpOmhvdmVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciB7IGRpc3BsYXk6YmxvY2s7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCB7IHdpZHRoOjEwMCU7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCBhIHsgd2lkdGg6MTAwJTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtOyB9IC5sYW5ndWFnZUJhciAuZDJjLWZhdnMtbmF2LXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taW5uZXJCb3ggYSAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW0geyBwYWRkaW5nOjEwcHg7IHdpZHRoOmNhbGMoMTAwJSAtIDIwcHgpOyBkaXNwbGF5OmJsb2NrOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB0ZXh0LWFsaWduOmxlZnQ7IG1pbi1oZWlnaHQ6MzBweDsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IGEgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pdGVtOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB9IC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW0tc3ViLCAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IGEgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pdGVtLXN1YiB7IGNvbG9yOiNhMWExYTE7IGZvbnQtc2l6ZTowLjdyZW07IGZvbnQtd2VpZ2h0OjEwMDsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDo1cHg7IHRleHQtYWxpZ246bGVmdDsgfSAuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIuZDJjLWZhdnMtbmF2LWRpc2FibGVkIC5tZW51RXhwYW5kIHsgZGlzcGxheTpub25lOyB9IC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW0tc3ViIHsgbWFyZ2luLXRvcDo1cHg7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCBhIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbSBpbWcgeyBtYXgtd2lkdGg6NTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCBhIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbSBkaXYgeyBmbG9hdDpub25lOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmEgeyBmb250LXNpemU6MC44NXJlbTsgfQovKiogL2Nzcy92ZWhpY2xlRmVhdHVyZVN1bW1hcnkucHJlbG9hZC5jc3MgKiovCi52ZHBGZWF0dXJlU3VtbWFyeXsgLS1zd2l0Y2gtYnA6NTByZW07IGJvcmRlci1jb2xvcjojY2NjY2NjOyBjbGVhcjpib3RoOyB9IC52c2ZpSXRlbVN1bW1hcnkgeyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxLjJyZW07IH0gLnZkcEZlYXR1cmVDb25zdW1wdGlvbnsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgfSAudmRwRmVhdHVyZUNvbnN1bXB0aW9uID4gKnsgZmxleDoxIDEgMzElOyBtaW4td2lkdGg6OXJlbTsgfSAjdG9wRmVhdHVyZVRpdGxlIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9Ci8qKiAvY3NzL21haWxFeHByZXNzUmVxdWVzdFdpZGdldC5jc3MgKiovCi5tYWlsLWV4cHJlc3Mtd2lkZ2V0LCAubWFpbC1leHByZXNzLXdpZGdldC0tZnVsbHdpZHRoIHsgZmxvYXQ6bGVmdDsgd2lkdGg6Mjg1cHg7IG1hcmdpbjo1cHggNXB4IDVweCAxNXB4OyBwYWRkaW5nOjVweDsgfSAubWFpbC1leHByZXNzLXdpZGdldDphZnRlciB7IGNvbnRlbnQ6IiAiOyBjbGVhcjpib3RoOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19jb250YWluZXIsIC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19jb250YWluZXItLWZ1bGx3aWR0aCB7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgYm94LXNoYWRvdzoxcHggMnB4IDZweCAwIHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yNSk7IGNsZWFyOmJvdGg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2VtYWlsLWRlZmluaXRpb24geyBkaXNwbGF5Om5vbmU7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2hlYWRlciB7IHBhZGRpbmc6MTBweCAxNXB4IDVweCAxNXB4OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19oZWFkZXIgLm1haWwtZXhwcmVzcy13aWRnZXRfX2hlYWRlci0tdGl0bGUgeyBmb250LXNpemU6dmFyKC0tZnM0KTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2JvZHkgeyBwYWRkaW5nOjE1cHg7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2Zvb3RlciB7IHBhZGRpbmc6NXB4IDE1cHggMTVweCAxNXB4OyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXIgLmVycm9yTXNnIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXJfX3N1Ym1pdCBidXR0b24geyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMTlweDsgbWFyZ2luOjA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MjhweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXJfX3N1Ym1pdCBidXR0b246aG92ZXIgeyBib3JkZXItY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9Ci8qKiAvY3NzL2pxdWVyeS5kYXRldGltZXBpY2tlci5jc3MgKiovCi54ZHNvZnRfZGF0ZXRpbWVwaWNrZXJ7Ym94LXNoYWRvdzowIDVweCAxNXB4IC01cHggcmdiYSgwLDAsMCwwLjUwNik7YmFja2dyb3VuZDojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiYmI7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7Y29sb3I6IzMzMztmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO3BhZGRpbmc6OHB4O3BhZGRpbmctbGVmdDowO3BhZGRpbmctdG9wOjJweDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDAwMjE7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6NzVweDtoZWlnaHQ6MjEwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIGJ1dHRvbntib3JkZXI6bm9uZSAhaW1wb3J0YW50fS54ZHNvZnRfbm9zZWxlY3R7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lnhkc29mdF9ub3NlbGVjdDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnhkc29mdF9ub3NlbGVjdDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9pbmxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246c3RhdGljO2JveC1zaGFkb3c6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyICp7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MDttYXJnaW46MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfZGF0ZXBpY2tlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlcntkaXNwbGF5Om5vbmV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXIuYWN0aXZlLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9kYXRlcGlja2Vye3dpZHRoOjIyNHB4O2Zsb2F0OmxlZnQ7bWFyZ2luLWxlZnQ6OHB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X3Nob3d3ZWVrcyAueGRzb2Z0X2RhdGVwaWNrZXJ7d2lkdGg6MjU2cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXJ7d2lkdGg6NThweDtmbG9hdDpsZWZ0O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjhweDttYXJnaW4tdG9wOjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXIuYWN0aXZlKy54ZHNvZnRfdGltZXBpY2tlcnttYXJnaW4tdG9wOjhweDttYXJnaW4tYm90dG9tOjNweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbW91bnRocGlja2Vye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbCBpLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUFlQ0FZQUFBRGFXN3Z6QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5SnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVjJsdVpHOTNjeWtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UTBOQlJqSTFOak0wTTBVd01URkZORGs0TmtGR016SkZRa1F6UWpFd1JVSWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZRME5CUmpJMU5qUTBNMFV3TVRGRk5EazROa0ZHTXpKRlFrUXpRakV3UlVJaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcERRMEZHTWpVMk1UUXpSVEF4TVVVME9UZzJRVVl6TWtWQ1JETkNNVEJGUWlJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwRFEwRkdNalUyTWpRelJUQXhNVVUwT1RnMlFVWXpNa1ZDUkROQ01UQkZRaUl2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUG9ORVA1NEFBQUlPU1VSQlZIamE3SnE5VHNNd0VNY3hyWkQ0V3BCWWVLVUNlK2tUTUNBQ0haaDRCRmZITy9BQUlIWkdGaFlrQkJzU0VxeHNMQ0FnWEtoYlhZT1R4aDlwZkpWUCtxdXRuWjVzLzVMejJZNUkwM1FoV2ppMkdJY2dBb2tXZ2ZDeE52Y09DQ0dLcWlTcWhVcDBsYUhPbmUwNXZkRXlHTWZrZHhKRFZqZ3dEbEVRZ1lRQmd4K1VMSmFXU1hYUzZyL0VSNUZCVlI4VmZHZnRUS2NJVE5zK2ExWHBjRm9FeFJFSURGMTRBVklGeGdRVVMraDUyMGNkdWQ2d05rQzBVQnc2QkNPL0hvQ1l3QmhEOFFDa1EveDFtd0R5RDRwbGg0RDZERFYwVEFHeW80SGNhd0xJQkJTTERrSGVIME1nMnlWUDNsNFRRTVpRRERzRU9sL01nSFFxaE1OdUUwRCtvQmgwQ0lyOE1BS3lhekJIOVd5QnVLeERXZ2JYZmpOZjMyVFoxS1dtL0FwMW9Tay9SNTNVdFE1eFRoM0xVbE1tVDhndDZnNTFROXArU29ieGdKUS9xbXNmWmhXeXdHRlNsMHlCakNMSkNNZ1hhaWwzYjcrcnVtZFZKMllSc3M0Y04rcjZxQUhEa1BXalBqZEpDRjRuOVJtQUQvVjlBL1dwNE5RYXNzRGp3bEI2WEJpQ3hjSlFXbVpaYjhUSEZpbGZ5L2xmclR2TGdocTJUcVRIclJNVEtOSjBzSWhkbzE1UlQrUnB5V3dGZFk5NlVaL0xkUUtCR2pjWHBjYzFBbFNGRWZMbW91RCsxa251eEJEVVZydk9CbW9PQy9yRWNON09ReEtWZUpUQ2lBZFV6VUpoQTJPZXo5UVRrcDcyT1RWY3hEY1hZOGlLTmt4R0FKWG1KQ09Rd09hNmRoeVhzT2E2WHdFR0FLZGViNUVUM3JRZEFBQUFBRWxGVGtTdVFtQ0MpfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbCBpe29wYWNpdHk6LjU7YmFja2dyb3VuZC1wb3NpdGlvbjotOTJweCAtMTlweDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo5cHg7aGVpZ2h0OjIwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi03MHB4IDA7bWFyZ2luLWxlZnQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0e2Zsb2F0OnJpZ2h0O2JhY2tncm91bmQtcG9zaXRpb246MCAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyOjAgbm9uZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2hlaWdodDozMHB4O29wYWNpdHk6LjU7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT01MCkiO291dGxpbmU6bWVkaXVtIG5vbmU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyMHB4O21pbi13aWR0aDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfcHJldiwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X25leHR7ZmxvYXQ6bm9uZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IC0xNXB4O2hlaWdodDoxNXB4O3dpZHRoOjMwcHg7ZGlzcGxheTpibG9jazttYXJnaW4tbGVmdDoxNHB4O21hcmdpbi10b3A6N3B4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfcHJldntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IDA7bWFyZ2luLWJvdHRvbTo3cHg7bWFyZ2luLXRvcDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3h7aGVpZ2h0OjE1MXB4O292ZXJmbG93OmhpZGRlbjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdntiYWNrZ3JvdW5kOiNmNWY1ZjU7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTowLjc1cmVtIDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2hlaWdodDoyNXB4O2xpbmUtaGVpZ2h0OjI1cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2OmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdG9kYXlfYnV0dG9uOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0OmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2OmhvdmVye29wYWNpdHk6MTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTEwMCkifS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbHtkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7bWFyZ2luOjA7cGFkZGluZzo1cHggM3B4O2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjBweDtmb250LXdlaWdodDpib2xkO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmbG9hdDpsZWZ0O3dpZHRoOjE4MnB4O3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbDpob3Zlcj5zcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsOmhvdmVyIGl7b3BhY2l0eToxLjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0e2JvcmRlcjoxcHggc29saWQgI2NjYztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDozMHB4O3otaW5kZXg6MTAxO2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7bWF4LWhlaWdodDoxNjBweDtvdmVyZmxvdy15OmhpZGRlbn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3QueGRzb2Z0X21vbnRoc2VsZWN0e3JpZ2h0Oi03cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0Lnhkc29mdF95ZWFyc2VsZWN0e3JpZ2h0OjJweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3Q+ZGl2Pi54ZHNvZnRfb3B0aW9uOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzMzfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb257cGFkZGluZzoycHggMTBweCAycHggNXB4O3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiMzYWY7Ym94LXNoYWRvdzojMTc4ZmU1IDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9tb250aHt3aWR0aDoxMDBweDt0ZXh0LWFsaWduOnJpZ2h0fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhcntjbGVhcjpib3RofS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF95ZWFye3dpZHRoOjQ4cHg7bWFyZ2luLWxlZnQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQ+ZGl2e3BhZGRpbmctcmlnaHQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtoZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRoe3dpZHRoOjE0LjI4NTcxNDIlO2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Y29sb3I6IzY2Njtmb250LXNpemU6MC43NXJlbSA7dGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9zaG93d2Vla3MgLnhkc29mdF9jYWxlbmRhciB0ZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9zaG93d2Vla3MgLnhkc29mdF9jYWxlbmRhciB0aHt3aWR0aDoxMi41JX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojZjFmMWYxfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfdG9kYXl7Y29sb3I6IzNhZn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHR7YmFja2dyb3VuZDojZmZlOWQyO2JveC1zaGFkb3c6I2ZmYjg3MSAwIDFweCA0cHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfbWludHtiYWNrZ3JvdW5kOiNjMWZmYzk7Ym94LXNoYWRvdzojMDBkZDFjIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kZWZhdWx0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfY3VycmVudCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnR7YmFja2dyb3VuZDpncmV5O2JveC1zaGFkb3c6cmdiYSgyOSwzMCwzMSwwLjcpIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfb3RoZXJfbW9udGgsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kaXNhYmxlZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfZGlzYWJsZWR7b3BhY2l0eTouNTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTUwKSI7Y3Vyc29yOmRlZmF1bHR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9vdGhlcl9tb250aC54ZHNvZnRfZGlzYWJsZWR7b3BhY2l0eTouMjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTIwKSJ9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdjpob3Zlcntjb2xvcjojZmZmICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9jdXJyZW50Lnhkc29mdF9kaXNhYmxlZDpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnQueGRzb2Z0X2Rpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6IzNhZiAhaW1wb3J0YW50O2JveC1zaGFkb3c6IzE3OGZlNSAwIDFweCAzcHggMCBpbnNldCAhaW1wb3J0YW50O2NvbG9yOiNmZmYgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2Rpc2FibGVkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfZGlzYWJsZWQ6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50O2JhY2tncm91bmQ6aW5oZXJpdCAhaW1wb3J0YW50O2JveC1zaGFkb3c6aW5oZXJpdCAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtmb250LXdlaWdodDo3MDA7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0e2NvbG9yOiNjY2MgIWltcG9ydGFudDtmb250LXNpemU6MC42MjVyZW0gO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTttYXJnaW4tbGVmdDo4cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NvcHlyaWdodCBhe2NvbG9yOiNlZWUgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0IGE6aG92ZXJ7Y29sb3I6I2FhYSAhaW1wb3J0YW50fS54ZHNvZnRfdGltZV9ib3h7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfS54ZHNvZnRfc2Nyb2xsYmFyPi54ZHNvZnRfc2Nyb2xsZXJ7YmFja2dyb3VuZDojY2NjICFpbXBvcnRhbnQ7aGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czozcHh9Lnhkc29mdF9zY3JvbGxiYXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6N3B4O3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7Y3Vyc29yOnBvaW50ZXJ9Lnhkc29mdF9zY3JvbGxlcl9ib3h7cG9zaXRpb246cmVsYXRpdmV9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFya3tib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCByZ2JhKDI1NSwyNTUsMjU1LDAuNTA2KTtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ0NDtib3JkZXItbGVmdDoxcHggc29saWQgIzMzMztib3JkZXItcmlnaHQ6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztjb2xvcjojY2NjfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3h7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzIyMn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXZ7YmFja2dyb3VuZDojMGEwYTBhO2JvcmRlci10b3A6MXB4IHNvbGlkICMyMjI7Y29sb3I6Izk5OX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdHtib3JkZXI6MXB4IHNvbGlkICMzMzM7YmFja2dyb3VuZDojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb246aG92ZXJ7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiMwMDdmZmZ9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiNjNTA7Ym94LXNoYWRvdzojYjAzZTAwIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsIGksLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3ByZXYsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X25leHQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3RvZGF5X2J1dHRvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQWVDQVlBQUFEYVc3dnpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9WMmx1Wkc5M2N5a2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRVUV4UVVVek9UQTBNMFV5TVRGRk5EbEJNMEZGUVRKRU5URXhSRFZCT0RZaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFVRXhRVVV6T1RFME0wVXlNVEZGTkRsQk0wRkZRVEpFTlRFeFJEVkJPRFlpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwQlFURkJSVE00UlRRelJUSXhNVVUwT1VFelFVVkJNa1ExTVRGRU5VRTROaUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBCUVRGQlJUTTRSalF6UlRJeE1VVTBPVUV6UVVWQk1rUTFNVEZFTlVFNE5pSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcDBWeEdFQUFBSUFTVVJCVkhqYTdKck5TZ014RU1lYnRnaCszTVNMcjFUMVhuMkNIb1NLQjA4K1FtUjhCeDlBOGU3Uml4ZEI5Q0tDb05kZXhJdWd4RmxKYTdyTlpuZVRiTElwTS9Dbk5Mc2RNdk5qTThsMG1SQ2lROVllNjFJS0NBZ1pBVW5IK21VM01NWmFIWUNoQm5KVUR6V09GWmRWZmM1K1pGTGJyV0RlWFB3YnhJcXJMTGZhZVMwaEVCVkdJUlFDRWlab0hRd3RsR1NCeUNDZFlCbDhnOGVnVFRBV29LUU1SQlJCY1p4WWxoemhLZWdxTU9hZ2VFcnNDSFZrazNoWElGb29EZ0hCMUtrSElIVmd6S0I0QURKUS9BMWpBRm1BWWhrUXFBNVRPQnRvY3JLcmdYd1FBOGdjRkl1QUlPOHNRU0E3aGlkdlB3YVFHWlNhQVlIT1VXSkFCaFdXdzJFTUlIOVFhZ1FFUlU0U0FySlhvMFpaTDE4dXZheGVqWHQvRW04eGpWQlhtdkZyMUtWbS9BSjEwdFJlMlhucmFOcWFKdktFM0tIdVViZksxRStWSEIwcTQwL3kzc2RRU3hZNEZIV2VLSkN1blA4VXlEZHFKWmVuVDNudFZWNWpJWUNBaDIwdlQ3aW9QOHRwZjZFMmxmRU13RVJlK3doVjFNSGp3WkI3UEJpQ3hjR1FXd0taS0Q2MmxmR05uUC8xcG9GQUE2MFQ3ckYxVWdjS2QyaWQzS0RlVVMrb0xXVjhEZldBZXBPZnEwMENnUWFiaTl6amNnSlZZVkQ3UFZ6UVVBVUdBUWtiTkpUQklDRGhnd1lUakRZRDZYZVcwOFpLaCtBNHBZa3plbk94WFVidlpjV3o3RTh5a1JNbklIR1gxWFBsKzFtMnZQWXBMKzJxZGI4Q0RBQVJsS0ZFei9aVmtBQUFBQUJKUlU1RXJrSmdnZz09KX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRoe2JhY2tncm91bmQ6IzBhMGEwYTtib3JkZXI6MXB4IHNvbGlkICMyMjI7Y29sb3I6Izk5OX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojMGUwZTBlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfdG9kYXl7Y29sb3I6I2M1MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHR7YmFja2dyb3VuZDojZmZlOWQyO2JveC1zaGFkb3c6I2ZmYjg3MSAwIDFweCA0cHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfbWludHtiYWNrZ3JvdW5kOiNjMWZmYzk7Ym94LXNoYWRvdzojMDBkZDFjIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kZWZhdWx0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfY3VycmVudCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnR7YmFja2dyb3VuZDojYzUwO2JveC1zaGFkb3c6I2IwM2UwMCAwIDFweCAzcHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZDpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXY6aG92ZXJ7Y29sb3I6IzAwMCAhaW1wb3J0YW50O2JhY2tncm91bmQ6IzAwN2ZmZiAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0aHtjb2xvcjojNjY2fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jb3B5cmlnaHR7Y29sb3I6IzMzMyAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jb3B5cmlnaHQgYXtjb2xvcjojMTExICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NvcHlyaWdodCBhOmhvdmVye2NvbG9yOiM1NTUgIWltcG9ydGFudH0ueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lX2JveHtib3JkZXI6MXB4IHNvbGlkICMzMzN9Lnhkc29mdF9kYXJrIC54ZHNvZnRfc2Nyb2xsYmFyPi54ZHNvZnRfc2Nyb2xsZXJ7YmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3NhdmVfc2VsZWN0ZWR7ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDttYXJnaW4tdG9wOjVweDt3aWR0aDoxMDAlO2NvbG9yOiM0NTQ1NTE7Zm9udC1zaXplOjEzcHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAuYmx1ZS1ncmFkaWVudC1idXR0b257Zm9udC1mYW1pbHk6Im11c2VvLXNhbnMiLCJCb29rIEFudGlxdWEiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuNzVyZW0gO2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjojODI4NzhjO2hlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6NHB4IDE3cHggNHB4IDMzcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDdkOGRhO2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAsI2ZmZiksY29sb3Itc3RvcCg3MyUsI2Y0ZjhmYSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjZmZmIDAsI2Y0ZjhmYSA3MyUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmIDAsI2Y0ZjhmYSA3MyUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZicsZW5kQ29sb3JzdHI9JyNmNGY4ZmEnLEdyYWRpZW50VHlwZT0wKX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpmb2N1cywueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpob3ZlciBzcGFuLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLmJsdWUtZ3JhZGllbnQtYnV0dG9uOmZvY3VzIHNwYW57Y29sb3I6IzQ1NDU1MTtiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwLCNmNGY4ZmEpLGNvbG9yLXN0b3AoNzMlLCNGRkYpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y0ZjhmYSAwLCNGRkYgNzMlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2Y0ZjhmYSAwLCNGRkYgNzMlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmNGY4ZmEnLGVuZENvbG9yc3RyPScjRkZGJyxHcmFkaWVudFR5cGU9MCl9Lnhkc29mdF9kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjp3aGl0ZTtvcGFjaXR5OjF9Lnhkc29mdF9kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlODQ2NDYgIWltcG9ydGFudDtjb2xvcjp3aGl0ZSAhaW1wb3J0YW50fQovKiogL2Nzcy92aXNpdENvbnRhY3RGb3JtLmNzcyAqKi8KLnZpc2l0Q29udGFjdEhlYWRlcnsgcGFkZGluZzoxMHB4IDVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnZpc2l0Q29udGFjdEhlYWRlciAudmlzaXRDb250YWN0Q1RBQ29udGFpbmVyeyB3aWR0aDoxMDAlOyB9IC52aXNpdENvbnRhY3RIZWFkZXIgLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXJ7IGRpc3BsYXk6bm9uZTsgei1pbmRleDoxMDA5OTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoyNTBweDsgcGFkZGluZzoxNXB4OyB0b3A6NTBweDsgbGVmdDotMjBweDsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7IH0gLnZpc2l0Q29udGFjdEhlYWRlcjpob3ZlciAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lcnsgZGlzcGxheTpibG9jazsgfSAudmlzaXRDb250YWN0SGVhZGVyIC52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyLmlzT3BlbnsgZGlzcGxheTpibG9jazsgfSAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciAudmlzaXRDb250YWN0Rm9ybSB0ZXh0YXJlYS52aXNpdENvbnRhY3RDb21tZW50eyBkaXNwbGF5Om5vbmU7IGhlaWdodDo0MHB4OyByZXNpemU6dmVydGljYWw7IH0gLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIgLnZpc2l0Q29udGFjdEZvcm0gdGV4dGFyZWEudmlzaXRDb250YWN0Q29tbWVudC5zaG93Q29tbWVudHsgZGlzcGxheTpibG9jazsgfSAudmlzaXRDb250YWN0SGVhZGVyIC52aXNpdENvbnRhY3RDVEFDb250YWluZXIgLnZpc2l0Q29udGFjdEJ1dHRvbnsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTFweCA1cHggOXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IGNvbG9yOiNmZmZmZmY7IH0gLnZpc2l0Q29udGFjdEhlYWRlciAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciAudmlzaXRDb250YWN0Rm9ybSAudmlzaXRDb250YWN0Rm9ybVN1Ym1pdHsgaGVpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MDsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyB9Ci8qKiAvY3NzL3RvYXN0ci5jc3MgKiovCi50b2FzdC10aXRsZXtmb250LXdlaWdodDpib2xkfS50b2FzdC1tZXNzYWdley1tcy13b3JkLXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0udG9hc3QtbWVzc2FnZSBhLC50b2FzdC1tZXNzYWdlIGxhYmVse2NvbG9yOiNmZmZ9LnRvYXN0LW1lc3NhZ2UgYTpob3Zlcntjb2xvcjojY2NjO3RleHQtZGVjb3JhdGlvbjpub25lfS50b2FzdC1jbG9zZS1idXR0b257cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6LTAuM2VtO3RvcDotMC4zZW07ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuMjVyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6aW5oZXJpdDstd2Via2l0LXRleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0udG9hc3QtY2xvc2UtYnV0dG9uOmhvdmVyLC50b2FzdC1jbG9zZS1idXR0b246Zm9jdXN7Y29sb3I6IzFiMWIxYjt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfWJ1dHRvbi50b2FzdC1jbG9zZS1idXR0b257cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnRvYXN0LXRvcC1jZW50ZXJ7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tY2VudGVye2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWZ1bGwtd2lkdGh7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tZnVsbC13aWR0aHtib3R0b206MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LXRvcC1sZWZ0e3RvcDoxMnB4O2xlZnQ6MTJweH0udG9hc3QtdG9wLXJpZ2h0e3RvcDoxMnB4O3JpZ2h0OjEycHh9LnRvYXN0LWJvdHRvbS1yaWdodHtyaWdodDoxMnB4O2JvdHRvbToxMnB4fS50b2FzdC1ib3R0b20tbGVmdHtib3R0b206MTJweDtsZWZ0OjEycHh9I3RvYXN0LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk5OTtjb2xvcjojRkZGfSN0b2FzdC1jb250YWluZXIgKnstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowIDAgNnB4O3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDozMDBweDstbW96LWJvcmRlci1yYWRpdXM6M3B4IDNweCAzcHggM3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7Ym9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7YmFja2dyb3VuZC1wb3NpdGlvbjoxNXB4IGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LW1vei1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Ym94LXNoYWRvdzowIDAgMTJweCAjOTk5O2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0jdG9hc3QtY29udGFpbmVyPjpob3ZlcnstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDtib3gtc2hhZG93OjAgMCAxMnB4ICMwMDA7b3BhY2l0eToxOy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7Y3Vyc29yOnBvaW50ZXJ9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUd3U1VSQlZFaEx0WmE5U2dOQkVNYzlzVXh4UmNvVUtTelNXSWhYcEZNaGhZV0ZoYUJnNHlQWWlXQ1haeEJMRVJzTFJTM0VRa0Vmd0NLZGpXSkF3U0tDZ29LQ2N1ZHY0TzVZTHJ0N0V6Z1hoaVUzLzQrYjJja213VmpKU3BLa1E2d0FpNGd3aFQrejN3UkJjRXoweWpTc2VVVHJjUnlmc0hzWG1EMEFtYkhPQzlJaThWSW1udVhCUGdsSHBRNXd3U1ZNN3NOblRHN1phNEp3RGRDanh5QWlIM255QTJtdGFUSnVmaURaNWRDYXFsSXRJTGgxTkhhdGZONXNrdmp4OVozOG02OUNnenVYbVpnVnJQSUdFNzYzSng5cUtzUm96V1l3NnhPSGRFUitubjJLa08rQmIrVVY1Q0JONldDNlF0QmdiUlZvenJhaEFibW02SHRVc2d0UEMxOXRGZHhYWllCT2ZrYm1GSjFWYUhBMVZBSGpkMHBwNzBvVFp6dlIrRVZyeDJZZ2Zkc3E2ZXU1NUJIWVI4aGxja2krbitrRVJVRkc4QnJBMEJ3amVBdjJNOFdMUUJ0Y3krU0Q2Zk5zbW5CM0FsQkxyZ1R0VlcxYzJRTjRiVldMQVRhSVM2MEoyRHU1eTFUaUpnalNCdkZWWmdUbXdDVStkQVpGb1B4R0VFczhueUhDOUJ3ZTJHdkVKdjJXWFpiMHZqZHlGVDRDeGszZS9rSXFsT0dvVkx3d1BldnBZSFQrMDBUK2hXd1hEZjRBSkFPVXFXY0RoYndBQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFIT1NVUkJWRWhMclphL1NnTkJFTVp6aDBXS0NDbFNDS2FJWU9FRCtBQUtlUVFMRzhIV3p0TENJbUJyWWFkZ0lkWStnSUtOWWtCRlN3dTdDQW9xQ2dra29HQkkvRTI4UGRiTFptZURMZ3paemN4ODMveloyU1NYQzFqOWZyK0kxSHE5M2cyeXhINGl3TTF2a29CV0FkeENtcHpUeGZrTjJSY3laTmFIRklrU28xMCs4a2d4a1hJVVJWNUhHeFRtRnVjNzVCMlJmUWtweEhHOGFBZ2FBRmEwdEFIcVlGZlE3SXdlMnloT0RrOCtKNEM3eUFvUlRXSTN3LzRrbEdSZ1I0bE83UnBuOStndk15V3ArdXhGaDgrSCtBUmxnTjFuSnVKdVFBWXZOa0Vud0dGY2sxOEVyNHEzZWdFYy9vTyttaExkS2dSeWhkTkZpYWNDMHJsT0NiaE5WejRIOUZuQVlnREJ2VTNRSWlvWmxKRkxKdHNvSFlSRGZpWm9VeUl4cUN0UnBWbEFOcTBFVTRkQXBqcnRnZXpQRmFkNVMxOVdnamtjMGhOVm51RjRIalZBNkM3UXJTSWJ5bEIrb1plM2FIZ0JzcWxOcUtZSDQ4alh5SktNdUFiaXlWSjhLemFCM2VSYzBwZzlWd1E0bmlGcnlJNjhxaU9pM0Fiandkc2ZuQXRrMGJDalRMSktyNm1yRDlnOGlxL1MvQjgxaGd1T01sUVRuVnlHNDB3QWNqbm1nc0NORVNEcmptZTd3ZmZ0UDRQN1NQNE4zQ0paZHZ6b055R3EyYy9IV09YSkdzdlZnK1JBL2syTUMvd042STJZQTJQdDhHa0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBRHNTVVJCVkVoTFkyQVlCZlFNZ2YvLy8zUDgrL2V2QUlndkEvRnNJRitCYXZZRERXTUJHcm9hU01NQmlFOFZDN0FaRHJJRmFNRm5paTNBWlRqVWdzVVVXVURBOE9kQUg2aVFiUUVodzRIeUdzUEVjS0JYQklDNEFSaGV4NEc0QnNqbXdlVTFzb0lGYUdnL1d0b0ZaUklaZEV2SU1oeGtDQ2pYSVZzQVRWNmdGR0FDczRSc3cwRUdnSUlIM1FKWUpnSFNBUlFaRHJXQUIramF3emdzK1EyVU80OUQ3am5SU1JHb0VGUklMY2RtRU1XR0kwY20wSkoyUXBZQTFSRHZjbXpKRVdoQUJoRC9wcXJMMFMwQ1d1QUJLZ25Sa2k5bExzZVM3ZzJBbHF3SFdRU0tING9LTHJJTHBSR2hFUUN3MkxpUlVJYTRsd0FBQUFCSlJVNUVya0pnZ2c9PSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUdZU1VSQlZFaEw1WlN2VHNOUUZNYlhaR0lDTVlHWW1KaEFRSUpBSUNZUVBBQUNpU0RCOEFpSUNRUUpUNENxUUV3Z0p2WUFTQVFDaVppWW1KaEFJQkFUQ0FSSnkrOXJUc2xkZDhzS3UxTTArZExiMDU3djYvbGJxLzJySzBtUy9UUk5qOWNXTkFLUFlJSklJN2dJeENjUTUxY3ZxSUQrR0lFWDhBU0c0QjFiSzVnSVpGZVFmb0pkRVhPZmdYNFFBUWc3a0gyQTY1eVE4N2x5eGIyN3NnZ2tBekF1RmhiYmcxSzJrZ0NrQjFiVnd5SVI5bTJMN1BSUEloRFVJWGdHdHlLdzU3NXl6M2xUTnM2WDRKWG5qVitMS00vbTNNeWRuVGJ0T0tJanR6NlZoQ0JxNHZTbTNuY2RyRDJsazBWZ1VYU1ZLalZESlhKemlqVzFSUWRzVTdGNzdIZTh1Njhrb05aVHo4T3o1eUdhNkozSDNsWjB4WWdYQksyUXltbFdXQStSV25ZaHNrTEJ2MnZtRStoQk1DdGJBN0tYNWRyV3lSVC8ySnNxWjJJdmZCOVk0YldETk1GYkpSRm1DOUU3NFNvUzBDcXVsd2prQzArNWJwY1YxQ1o4Tk1lajRwankwVStkb0RRc0d5bzFoelZKdHRJamhRN0duQnRSRk4xVWFyVWxIOEYzeGljdCtIWTA3ckV6b1VHUGxXY2pSRlJyNC9nQ2haZ2MzWkwyZDhvQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWNlbnRlcj5kaXYsI3RvYXN0LWNvbnRhaW5lci50b2FzdC1ib3R0b20tY2VudGVyPmRpdnt3aWR0aDozMDBweDttYXJnaW46YXV0b30jdG9hc3QtY29udGFpbmVyLnRvYXN0LXRvcC1mdWxsLXdpZHRoPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoPmRpdnt3aWR0aDo5NiU7bWFyZ2luOmF1dG99LnRvYXN0e2JhY2tncm91bmQtY29sb3I6IzAzMDMwM30udG9hc3Qtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM1MWEzNTF9LnRvYXN0LWVycm9ye2JhY2tncm91bmQtY29sb3I6I2JkMzYyZn0udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMyZjk2YjR9LnRvYXN0LXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjg5NDA2fS50b2FzdC1wcm9ncmVzc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNDstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjI0MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MTFlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MjQxcHgpIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MThlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6NDgxcHgpIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjE1cHggMTVweCAxNXB4IDUwcHg7d2lkdGg6MjVlbX19Ci8qKiAvY3NzL3NsaWRlUmlnaHQuY3NzICoqLwojc2xpZGVpdCBsYWJlbCB7IGN1cnNvcjpwb2ludGVyOyB9ICNzbGlkZWl0IHsgei1pbmRleDoxMTAxOyBwb3NpdGlvbjpmaXhlZDsgd2lkdGg6YXV0bzsgaGVpZ2h0OjEwMCU7IHRvcDowOyByaWdodDowOyB9ICNzbGlkZWl0IC5maWVsZCBpbnB1dCwgI3NsaWRlaXQgLmZpZWxkIHNlbGVjdCwgI3NsaWRlaXQgLmZpZWxkIHRleHRhcmVheyB3aWR0aDoxMDAlOyB9ICNzbGlkZWl0IGxhYmVsLnRleHQtdXMtYnRueyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEuNXJlbTsgcmlnaHQ6MS41cmVtOyB6LWluZGV4OjEwOyBwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXItd2lkdGg6MXB4OyBoZWlnaHQ6MS41cmVtOyAtLWZzOnZhcigtLWZzNSk7IC0tdHh0LWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6I2UzMTczZTsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyLWNvbG9yOiNmZmZmZmY7IH0gI3NsaWRlaXQgc2VjdGlvbiB7IG1hcmdpbjowOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjMyMHB4OyBoZWlnaHQ6YXV0bzsgcmlnaHQ6MDsgYm90dG9tOjA7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwOyBiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgIzMzMzsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgLW1zLXRyYW5zaXRpb246YWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC42LCAwLjMsIDEpOyAtby10cmFuc2l0aW9uOmFsbCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgdHJhbnNpdGlvbjphbGwgMC40cyBjdWJpYy1iZXppZXIoMC4yLCAwLjYsIDAuMywgMSk7IH0gI3NsaWRlaXQgc2VjdGlvbiwgI3NsaWRlaXQgaW5wdXQjY2xvc2UtaXRlbTpjaGVja2VkIH4gc2VjdGlvbiB7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpOyB9ICNzbGlkZWl0IGlucHV0I29wZW4taXRlbTpjaGVja2VkIH4gc2VjdGlvbiB7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOyB9ICNzbGlkZWl0IHNlY3Rpb24gLndyYXAgeyBwYWRkaW5nOjE1cHggMjBweDsgcG9zaXRpb246cmVsYXRpdmU7IGJvcmRlci1ib3R0b206NnB4IHNvbGlkICNlYWVhZWE7IH0gI3NsaWRlaXQgc3Bhbi50aXRsZSB7IGZvbnQtc2l6ZToxLjVyZW0gOyBwYWRkaW5nOjE1cHg7IGNvbG9yOiNlYWVhZWE7IGJhY2tncm91bmQ6IzFiMWIxYjsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9ICNzbGlkZWl0IHAuaW5mbyB7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVuLCAjc2xpZGVpdCBsYWJlbC5jbG9zZSB7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjc2xpZGVpdCBsYWJlbC5vcGVuIHsgYm90dG9tIDphdXRvOyByaWdodCA6LTEwMXB4OyBsZWZ0IDphdXRvOyB3aWR0aCA6MjlweDsgbWFyZ2luIDowIGF1dG87IHBhZGRpbmcgOjEwcHggMTJweDsgYm9yZGVyIDoxcHggc29saWQgIzMzMzMzMzsgYm9yZGVyLXJpZ2h0IDpub25lOyB0ZXh0LXRyYW5zZm9ybSA6dXBwZXJjYXNlOyBmb250LXdlaWdodCA6Ym9sZDsgei1pbmRleCA6MTsgd2hpdGUtc3BhY2UgOm5vd3JhcDsgdG9wOjYxJTsgY29sb3I6IzFiMWIxYjsgYmFja2dyb3VuZDojZWFlYWVhOyB9ICNzbGlkZWl0IGxhYmVsLm9wZW46aG92ZXIgeyB3aWR0aCA6MTQwcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbjpiZWZvcmUgeyBjb250ZW50IDoiXGY3Y2QiOyBmb250LWZhbWlseSA6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtd2VpZ2h0IDo5MDA7IGZvbnQtc2l6ZSA6MjBweDsgcG9zaXRpb24gOmFic29sdXRlOyBsZWZ0IDoxOHB4OyB0b3AgOjdweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVuOmhvdmVyOmJlZm9yZSB7IGxlZnQ6MTBweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVuIHNwYW4geyBkaXNwbGF5IDppbmxpbmUtYmxvY2s7IHdpZHRoIDowOyBvdmVyZmxvdyA6aGlkZGVuOyB9ICNzbGlkZWl0IGxhYmVsLm9wZW46aG92ZXIgc3BhbiB7IHdpZHRoIDpjYWxjKDEwMCUgLSAyMnB4KTsgaGVpZ2h0IDphdXRvOyBwYWRkaW5nLWxlZnQgOjIycHg7IH0gI3NsaWRlaXQgaW5wdXQjY2xvc2UtaXRlbTpjaGVja2VkIH4gbGFiZWwub3BlbiB7IC13ZWJraXQtdHJhbnNpdGlvbjpyaWdodCAwLjNzIGVhc2UgMC40cywgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgd2lkdGggMC4zcyBsaW5lYXI7IC1tb3otdHJhbnNpdGlvbjpyaWdodCAwLjNzIGVhc2UgMC40cywgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgd2lkdGggMC4zcyBsaW5lYXI7IC1tcy10cmFuc2l0aW9uOnJpZ2h0IDAuM3MgZWFzZSAwLjRzLCBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCB3aWR0aCAwLjNzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjpyaWdodCAwLjNzIGVhc2UgMC40cywgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgd2lkdGggMC4zcyBsaW5lYXI7IHRyYW5zaXRpb246cmlnaHQgMC4zcyBlYXNlIDAuNHMsIGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIHdpZHRoIDAuM3MgbGluZWFyOyByaWdodDowOyB9ICNzbGlkZWl0IGxhYmVsLmNsb3NlIHsgcGFkZGluZzoxMC43cHggMjBweDsgbGVmdDphdXRvOyB0b3A6MDsgYm90dG9tOmF1dG87IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGJhY2tncm91bmQ6IzQ0NDQ0NDsgY29sb3I6I2ZmZjsgd2lkdGg6MjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgcmlnaHQ6MDsgfSAjc2xpZGVpdCBsYWJlbC5jbG9zZTpob3ZlciwgI3NsaWRlaXQgbGFiZWwuY2xvc2U6Zm9jdXMgeyBiYWNrZ3JvdW5kOiMwMDA7IH0gQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKSB7ICNzZWxlY3QtYXJyb3ctc3ZnIHsgZGlzcGxheTpub25lOyB9IH0geDotby1wcmVmb2N1cywgI3NlbGVjdC1hcnJvdyB7IGRpc3BsYXk6bm9uZTsgfSAjc2xpZGVpdCBpbnB1dDpyZXF1aXJlZCwgI3NsaWRlaXQgdGV4dGFyZWE6cmVxdWlyZWQgeyBiYWNrZ3JvdW5kOnVybCgiaW1nL3JlcXVpcmVkLnBuZyIpIG5vLXJlcGVhdCAxMDAlIDZweDsgYm94LXNoYWRvdzpub25lOyBvdXRsaW5lOm5vbmU7IH0gI3NsaWRlaXQgaW5wdXQ6aG92ZXI6aW52YWxpZCwgI3NsaWRlaXQgdGV4dGFyZWE6aG92ZXI6aW52YWxpZCB7IGJhY2tncm91bmQ6dXJsKCJpbWcvZm9jdXNlZC5wbmciKSBuby1yZXBlYXQgMTAwJSA2cHg7IGJveC1zaGFkb3c6bm9uZTsgb3V0bGluZTpub25lOyB9ICNzbGlkZWl0IGlucHV0OnJlcXVpcmVkOnZhbGlkLCAjc2xpZGVpdCB0ZXh0YXJlYTpyZXF1aXJlZDp2YWxpZCB7IGJhY2tncm91bmQ6dXJsKCJpbWcvdmFsaWQucG5nIikgbm8tcmVwZWF0IDEwMCUgNnB4OyBib3gtc2hhZG93Om5vbmU7IG91dGxpbmU6bm9uZTsgfSAjc2xpZGVpdCBpbnB1dDpmb2N1czppbnZhbGlkLCAjc2xpZGVpdCB0ZXh0YXJlYTpmb2N1czppbnZhbGlkIHsgYmFja2dyb3VuZDp1cmwoImltZy9pbnZhbGlkLnBuZyIpIG5vLXJlcGVhdCAxMDAlIDZweDsgei1pbmRleDoxMDsgYm94LXNoYWRvdzpub25lOyBvdXRsaW5lOm5vbmU7IH0gI3NsaWRlaXQgLnRpcCB7IGJhY2tncm91bmQ6IzIyMjsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjAuNzVyZW0gOyBwYWRkaW5nOjEwcHggMTJweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTY4cHg7IGxlZnQ6LTIwcHg7IG9wYWNpdHk6MDsgdmlzaWJpbGl0eTpoaWRkZW47IHdpZHRoOmF1dG87IGN1cnNvcjpkZWZhdWx0OyB9ICNzbGlkZWl0IC50aXA6YWZ0ZXIgeyBib3JkZXItdG9wOjZweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDEpOyBib3JkZXItbGVmdDo4cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTsgYm9yZGVyLXJpZ2h0OjhweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApOyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi02cHg7IGxlZnQ6MjhweDsgfSAjc2xpZGVpdCBpbnB1dDpmb2N1cyB+IC50aXAsICNzbGlkZWl0IHNlbGVjdDpmb2N1cyB+IC50aXAsICNzbGlkZWl0IHRleHRhcmVhOmZvY3VzIH4gLnRpcCB7IHRvcDotNDhweDsgb3BhY2l0eToxOyB2aXNpYmlsaXR5OnZpc2libGU7IHotaW5kZXg6OTk7IH0gI3NsaWRlaXQgaW5wdXQ6cmVxdWlyZWQ6dmFsaWQgfiAudGlwLCAjc2xpZGVpdCB0ZXh0YXJlYTpyZXF1aXJlZDp2YWxpZCB+IC50aXAgeyBvcGFjaXR5OjA7IHZpc2liaWxpdHk6aGlkZGVuOyB9ICNzbGlkZWl0IGxhYmVsLCAjc2xpZGVpdCBzZWxlY3QsICNzbGlkZWl0IGlucHV0IHsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjFzIGVhc2UtaW4tb3V0OyAtbW96LXRyYW5zaXRpb246YWxsIDAuMXMgZWFzZS1pbi1vdXQ7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjFzIGVhc2UtaW4tb3V0OyAtby10cmFuc2l0aW9uOmFsbCAwLjFzIGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uOmFsbCAwLjFzIGVhc2UtaW4tb3V0OyB9ICNzbGlkZWl0IC50aXAgeyAtd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjRzIGVhc2U7IC1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuNHMgZWFzZTsgLW1zLXRyYW5zaXRpb246b3BhY2l0eSAwLjRzIGVhc2U7IC1vLXRyYW5zaXRpb246b3BhY2l0eSAwLjRzIGVhc2U7IHRyYW5zaXRpb246b3BhY2l0eSAwLjRzIGVhc2U7IH0gI3NsaWRlaXQgdGV4dGFyZWEgeyAtd2Via2l0LXRyYW5zaXRpb246aGVpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC42LCAwLjMsIDEpOyAtbW96LXRyYW5zaXRpb246aGVpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC42LCAwLjMsIDEpOyAtbXMtdHJhbnNpdGlvbjpoZWlnaHQgMC40cyBjdWJpYy1iZXppZXIoMC4yLCAwLjYsIDAuMywgMSk7IC1vLXRyYW5zaXRpb246aGVpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC42LCAwLjMsIDEpOyB0cmFuc2l0aW9uOmhlaWdodCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgfQovKiogL2Nzcy9tdWx0aUZvcm1Qb3B1cC5jc3MgKiovCi5tdWx0aWZvcm1fZm9ybSBsYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1ib3R0b206LjVyZW07IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC13ZWlnaHQ6NDAwOyBsaW5lLWhlaWdodDoxLjU7IGNvbG9yOiMyMTI1Mjk7IHRleHQtYWxpZ246bGVmdDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubXVsdGlmb3JtX2Zvcm17IG1hcmdpbi1sZWZ0OjQwcHg7IH0gLm11bHRpZm9ybV9jaXJjbGUtbGluZXsgaGVpZ2h0OjFweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDoxM3B4OyBmbG9hdDpsZWZ0OyB9IC5tdWx0aWZvcm1fdGV4dHsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDsgcGFkZGluZy10b3A6MjBweDsgZm9udC13ZWlnaHQ6NjAwOyBwYWRkaW5nLWJvdHRvbToyMHB4OyB9IC5tdWx0aWZvcm1fY2lyY2xleyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyBib3JkZXItcmFkaXVzOjMwcHg7IGJvcmRlcjoxcHggc29saWQgI2NjYzsgcGFkZGluZzo1cHggMHB4IDBweCAwcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6I2NjYzsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjAgYXV0bzsgfSAubXVsdGlmb3JtX2NpcmNsZTF7IGJhY2tncm91bmQ6IzMzMzMzMzsgY29sb3I6I2ZmZmZmZjsgfSAubXVsdGlmb3JtX2JvZHl7IHBhZGRpbmc6MzBweDsgfSAubXVsdGlmb3JtX2Zvb3RlcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjYzsgcGFkZGluZzoyNXB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjA7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIgLm11bHRpZm9ybV9mb290ZXJ7IHBvc2l0aW9uOnN0YXRpYzsgfSAubXVsdGlmb3JtX2xpbmVfd3JhcHBlcnsgbWFyZ2luOjAgYXV0bzsgd2lkdGg6MzAwcHg7IGhlaWdodDozMHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAubXVsdGlmb3JtX2NpcmNsZV93cmFwcGVyMiB7IHdpZHRoOjExN3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDotMzBweDsgfSAubXVsdGlmb3JtX2NpcmNsZV93cmFwcGVyeyB3aWR0aDoyMzVweDsgbWFyZ2luOjAgYXV0bzsgfSAjbXVsdGlmb3JtX2Zvcm1XIHsgYmFja2dyb3VuZDp3aGl0ZTsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiM0MTQxNDE7IH0gLm11bHRpZm9ybV9jaXJjbGVUZXh0X3dyYXBwZXJ7IHdpZHRoOjIwMHB4OyBtYXJnaW46MCBhdXRvOyB9IC5tdWx0aWZvcm1fc3RlcDJ7IGRpc3BsYXk6bm9uZTsgfSAubXVsdGlmb3JtSW1hZ2UxeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubXVsdGlmb3JtSW1hZ2VUZXh0MXsgcG9zaXRpb246YWJzb2x1dGU7IGNvbG9yOiNmZmZmZmY7IHRvcDoxMDVweDsgbGVmdDowOyByaWdodDowOyBtYXJnaW46YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IHdpZHRoOjI3MHB4OyB9IC5yZXZlYWwtbW9kYWwgLm11bHRpZm9ybUltYWdlVGV4dDEgc3BhbnsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgY29sb3I6I2ZmZmZmZjsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjIuMDYzcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyB9IC5tdWx0aWZvcm1JbWFnZTJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tdWx0aWZvcm1JbWFnZVRleHQyeyBwb3NpdGlvbjphYnNvbHV0ZTsgY29sb3I6I2ZmZmZmZjsgdG9wOjExNXB4OyBsZWZ0OjA7IHJpZ2h0OjA7IG1hcmdpbjphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMzc1cmVtIDsgd2lkdGg6MjcwcHg7IH0gLnJldmVhbC1tb2RhbCAubXVsdGlmb3JtSW1hZ2VUZXh0MiBzcGFueyBtYXJnaW46MDsgcGFkZGluZzowOyBjb2xvcjojZmZmZmZmOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6Mi4wNjNyZW0gOyBmb250LXdlaWdodDo3MDA7IH0gLm11bHRpZm9ybUltYWdlVGV4dDFfbXsgcG9zaXRpb246YWJzb2x1dGU7IGNvbG9yOiNmZmZmZmY7IHRvcDo3MHB4OyBsZWZ0OjIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44MTNyZW0gOyB3aWR0aDoxODRweDsgfSAubXVsdGlmb3JtSW1hZ2VUZXh0MV9tIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgcGFkZGluZzowIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyBmb250LXNpemU6MS4zMTNyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpLCBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpeyAubXVsdGlmb3JtX2Zvcm0geyBtYXJnaW4tbGVmdDoxNXB4OyB9IC5tdWx0aWZvcm1fY2lyY2xlLWxpbmV7IHdpZHRoOjEwMCU7IH0gLm11bHRpZm9ybV9saW5lX3dyYXBwZXIgeyB3aWR0aDoyNDVweDsgfSB9Ci8qKiAvY3NzL2NyZWRpdFNjb3JlUG9wdXAuY3NzICoqLwojY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcnsgYmFja2dyb3VuZDp3aGl0ZTsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFueyBtYXJnaW46MDsgcGFkZGluZzowOyBmb250LXNpemU6MS4zMTNyZW0gOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVHcmVlbkNvbG9yeyBjb2xvcjojMDA0NDc4OyBmb250LXdlaWdodDpib2xkOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVCb2xkeyBmb250LXdlaWdodDpib2xkOyB9IC5jcmVkaXRTY29yZV9idG57IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6IzAwNDQ3ODsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxMnB4IDMwcHg7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjVweDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IHRyYW5zaXRpb246b3BhY2l0eSAwLjJzOyB9IC5jcmVkaXRTY29yZV9idG46aG92ZXJ7IG9wYWNpdHk6MC44NTsgfSAuY3JlZGl0U2NvcmVJbWFnZXsgaGVpZ2h0OjIzMHB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5zY29yZUNyZWRpdFRpdGxleyBmb250LXNpemU6MS41cmVtIDsgbWFyZ2luLXRvcDo1NXB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5zY29yZUNyZWRpdEltYWdleyB0ZXh0LWFsaWduOnJpZ2h0OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVUaXRsZUZyZWV7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVUaXRsZVNjb3JleyBmb250LXNpemU6MS44MTNyZW0gOyB0ZXh0LXNoYWRvdzoxLjRweCAwOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGlucHV0eyBoZWlnaHQ6MzJweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MTYycHg7IHBhZGRpbmc6MCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2VlZWVlZTsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVBZGRyZXNzeyB3aWR0aDozOTNweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVfYnRueyB3aWR0aDoxODBweDsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MTJweCAzMHB4OyBib3JkZXI6bm9uZTsgYm94LXNpemluZzpib3JkZXItYm94OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVFeHRyYVRleHR7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUNvbnNlbnRNZXNzYWdleyBjb2xvcjojYjNiM2IzOyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjJweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVJbWFnZXsgYmFja2dyb3VuZC1jb2xvcjojMDA0NDc4OyB9IC5wYWMtY29udGFpbmVyIHsgei1pbmRleDoxMDAwMDIxOyB9Ci8qKiAvY3NzL25lYkNhbC9uZWJDYWwuY3NzICoqLwoubmViQ2FsICogeyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3IgOndoaXRlOyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50Oic8JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBmbG9hdDpyaWdodDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDonPic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OnZpc2libGU7IHdpZHRoOjE0NnB4OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY3Vyc29yOnBvaW50ZXI7IH0gLm5lYkNhbCAuY2FsLWJvZHkgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdiB7IGZsb2F0OmxlZnQ7IH0gLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGguY2FsLXBpY2thYmxlIC5jYWwtcm93IGRpdiwgLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgY3Vyc29yOnBvaW50ZXI7fSAubmViQ2FsIHsgY3Vyc29yOmRlZmF1bHQ7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoyOTBweDsgaGVpZ2h0OjIxNXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwuaW5saW5lIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtd3JhcHBlciB7IHBhZGRpbmc6MCA0cHg7IGJvcmRlcjpzb2xpZCAxcHggI2RkZGVkOTsgLW1vei1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4Oy13ZWJraXQtYm94LXNoYWRvdzowcHggMHB4IDRweCAycHggI2Q4ZDhkODtib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIHsgaGVpZ2h0OjI1cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB3aWR0aDoxMnB4OyBoZWlnaHQ6MTNweDsgbWFyZ2luOjZweCA3cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpob3ZlciB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWFycm93LXJpZ2h0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbCB7IGxpbmUtaGVpZ2h0OjI1cHg7IGNvbG9yOiM1MjNhMjk7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY29sb3I6IzA4YTUzYzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IHsgaGVpZ2h0OjE4MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciB7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IHsgd2lkdGg6MjkwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdy5jYWwtb2RkIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2RlZGVkZTtib3JkZXI6MXB4IHNvbGlkICNkOWQ5ZDk7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1ldmVuIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNlY2VjZWM7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC10b2RheSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1yaWdodDo1cHg7IGhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxcmVtIDtmb250LXdlaWdodDo2MDA7IGNvbG9yOiNmZmYgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzoxcHggMXB4IDBweCAjMzlhNjYzOyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDstbW96LWJvcmRlci1yYWRpdXM6NXB4O2JvcmRlci1yYWRpdXM6NXB4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGUsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLW5vbi1zZWxlY3RhYmxlOmhvdmVyIHsgY29sb3I6I2JkYmRiZCAhaW1wb3J0YW50OyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuYSBkaXYgeyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyBjb2xvcjojMzc5YjU3ICFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgeyBoZWlnaHQ6MjZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdiB7IG1hcmdpbi10b3A6M3B4OyB3aWR0aDo0MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IG1hcmdpbi10b3A6M3B4OyB3aWR0aDozMHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IHBhZGRpbmctbGVmdDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1sYXN0IHsgcGFkZGluZy1yaWdodDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2RlZGVkZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmNhbC1ldmVuIGRpdi5jYWwtb3V0c2lkZSB7IGNvbG9yOiNjZWNlY2U7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5hIGRpdiB7IGNvbG9yOiM5YzljOWM7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyB7IGhlaWdodDo0MnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgd2lkdGg6ODBweDtsaW5lLWhlaWdodDoyN3B4OyBoZWlnaHQ6MjdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtZmlyc3QgeyBtYXJnaW4tbGVmdDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1sYXN0IHsgbWFyZ2luLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgYmFja2dyb3VuZC1jb2xvcjojNTRiYjAwO30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2OmhvdmVyLCAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdjpob3ZlciB7IGNvbG9yOiNiMmNmZTE7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtZm9vdGVyIHsgaGVpZ2h0OjRweDsgfQovKiogL2Nzcy9maW5hbmNlX211bHRpc3RlcC5jc3MgKiovCiNmaW5hbmNlX211bHRpc3RlcF9mb3JteyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yeyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaDJ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IG1hcmdpbi1ib3R0b206MjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBoM3sgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS4xMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToxNXB4OyB3aWR0aDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyBib3R0b206MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b257IHBhZGRpbmc6MTdweCA2NXB4IDE1cHggNjVweDsgZm9udC1zaXplOjEuMjVyZW0gOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjI4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjojQzBDMEMwOyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlcjoxcHggc29saWQgI0MwQzBDMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24uaXNWYWxpZHsgYmFja2dyb3VuZC1jb2xvcjojMWIxYjFiOyBjb2xvcjojZWFlYWVhOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXXsgb3BhY2l0eTowOyB3aWR0aDowOyBoZWlnaHQ6MDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MjBweCAxMHB4OyBjdXJzb3I6cG9pbnRlcjsgb3BhY2l0eToxOyB0cmFuc2l0aW9uOmFsbCAxcyBlYXNlLWluLW91dDsgbWFyZ2luLWJvdHRvbToxNXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZCB+IGxhYmVsLnJhZGlvX2xhYmVsIHsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBsYWJlbC5yYWRpb19sYWJlbDIgeyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgY3Vyc29yOnBvaW50ZXI7IG9wYWNpdHk6MTsgdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1pbi1vdXQ7IG1hcmdpbi1ib3R0b206NXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIH4gbGFiZWwucmFkaW9fbGFiZWwyIHsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2eyB3aWR0aDo0NSU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2Rpdi52d1JlbnRPck93bnsgd2lkdGg6MzIlIWltcG9ydGFudDsgbWFyZ2luLXJpZ2h0OjVweDsgZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJlbnRPck93blF1ZXN0aW9ueyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yZW50T3JPd25RdWVzdGlvbi52d1JlbnRPck93bnsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXYyeyB3aWR0aDozMiUhaW1wb3J0YW50OyBtYXJnaW4tcmlnaHQ6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXYyOm50aC1vZi10eXBlKG9kZCl7IGZsb2F0OmxlZnQhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXYyOm50aC1vZi10eXBlKGV2ZW4peyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Om50aC1vZi10eXBlKG9kZCl7IGZsb2F0OmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjpudGgtb2YtdHlwZShldmVuKXsgZmxvYXQ6cmlnaHQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0idGV4dCJdeyB3aWR0aDo0NTBweDsgaGVpZ2h0OjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4yNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl06bm90KC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJudW1iZXIiXSk6bm90KGlucHV0W3R5cGU9Im51bWJlciJdLmVtcGxveW1lbnRTdGF0dXNUaW1lKXsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOyB3aWR0aDoxNDBweDsgYm9yZGVyLXJpZ2h0Om5vbmU7IG1hcmdpbjowIDAgMTBweDsgbGluZS1oZWlnaHQ6MzBweDsgaGVpZ2h0Ojc1cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W25hbWU9Im1vbnRobHlJbmNvbWUiXTpiZWZvcmV7IGNvbnRlbnQ6IiQiOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5udW1iZXItdHlwZS1sYWJlbHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOyB3aWR0aDoyMzBweDsgY29sb3I6IzI1MjUyNTsgaGVpZ2h0Ojc1cHg7IGxpbmUtaGVpZ2h0Ojc1cHg7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5udW1iZXItdHlwZS1kaXZ7IGZsb2F0OmxlZnQ7IGxlZnQ6MTMlOyBtYXJnaW4tdG9wOjIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyeyBtYXJnaW4tdG9wOjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfZGl2eyB3aWR0aDoxMDAlOyBtYXJnaW46MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lciBzZWxlY3R7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgIzAwMDAwMDsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTBweCAxMHB4OyBmb250LXNpemU6MXJlbSA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgd2lkdGg6MTUwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX3NlbGVjdHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjE1JTsgbWFyZ2luOmF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfc2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzZWxlY3Quc3RlcDI0c2VsZWN0eyBtYXJnaW4tdG9wOjEwcHg7IHdpZHRoOjUwJTsgfSAucGFjLWNvbnRhaW5lciB7IHotaW5kZXg6MTAwMDAyMTsgfSBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24geyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3Mgc2VsZWN0IHsgbWF4LXdpZHRoOjMzNXB4OyBtYXJnaW46MCBhdXRvOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIGxhYmVsIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBkaXNwbGF5OmJsb2NrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBkaXNwbGF5Om5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dHN7IGRpc3BsYXk6aW5saW5lLWZsZXg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXZ7IG1hcmdpbjoyMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGxhYmVseyBmb250LXNpemU6MS4xMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0W3R5cGU9Im51bWJlciJdeyB3aWR0aDo4MHB4OyBoZWlnaHQ6NTBweDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgbWFyZ2luLXRvcDoxMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0W3R5cGU9Im51bWJlciJdLmJpcnRoeWVhcnsgd2lkdGg6MTAwcHg7IH0gLnJldmVhbC1tb2RhbC5maW5hbmNlX2JhY2tncm91bmRfaW1hZ2V7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3BvcHVwcy9maW5hbmNlcG9wdXAtYmctZGVza3RvcC5qcGcnKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXZ7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXYgLmZpbmFuY2VDYWxjeyBmb250LXNpemU6MTAwcHg7IGxlZnQ6NDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXYgLmZpbmFuY2VDYXJ7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDozOSU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHRMYWJlbHsgd2lkdGg6MjAlOyBhbGlnbi1zZWxmOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHR7IHdpZHRoOjM3JSFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0uZW1wbG95bWVudFN0YXR1c1RpbWV7IHdpZHRoOjUwcHg7IGhlaWdodDo1MHB4OyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBhbGlnbi1zZWxmOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudEFkZGVkSW5mb3sgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IHJlc2l6ZTpub25lOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgfSAuZmFkZS1lbnRlciwgLmZhZGUtbGVhdmUgeyBvcGFjaXR5OjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRBZGRlZEluZm9EaXZ7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6OTclIH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0TGFiZWxEaXZ7IGRpc3BsYXk6ZmxleDsgd2lkdGg6OTclIH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvcnsgbWFyZ2luOjAgMjAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybXsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGxhYmVseyBtYXJnaW4tYm90dG9tOjVweDsgcGFkZGluZzowOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3Igc3BhbnsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBpbnB1dHsgdGV4dC1hbGlnbjpsZWZ0OyBoZWlnaHQ6MjVweDsgZm9udC1zaXplOjFlbTsgY29sb3I6YmxhY2s7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBzZWxlY3R7IGhlaWdodDoyOHB4OyBjb2xvcjpibGFjazsgZm9udC1zaXplOjFlbTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5lc3RpbWF0ZWRUZXh0eyBtYXJnaW46MDsgZm9udC13ZWlnaHQ6NzAwOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlLXR4dHsgd2lkdGg6MjglOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnRheGVUZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6LTU1cHg7IHdpZHRoOmZpdC1jb250ZW50OyBtYXJnaW46MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnB1dCB7IGJvcmRlcjoxcHggc29saWQgIzk5OTsgYmFja2dyb3VuZDojZWVlOyBwYWRkaW5nOjAuMjVyZW07IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgd2lkdGg6bWluKDUwJSw2cmVtKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gZGl2LmRvbGxhclNwYW57IGRpc3BsYXk6Y29udGVudHM7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBkaXYuZG9sbGFyU3BhbiAuaW5wdXR7IHBhZGRpbmctbGVmdDoxMnB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBkaXYuZG9sbGFyU3Bhbjo6YmVmb3JleyBjb250ZW50OiIkIjsgZm9udC1zaXplOjFlbTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0Ojg1cHg7IHRvcDo0OSU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9jb25zZW50X3RleHRfZGl2eyBvdmVyZmxvdy15OnNjcm9sbDsgaGVpZ2h0OjI4NXB4OyB3aWR0aDoxMDAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5tdWx0aXN0ZXBQYXltZW50VmVoaWNsZXsgZm9udC1zaXplOmluaGVyaXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIC5sb2FuYW1vdW50LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmludGVyZXN0cmF0ZXsgYm9yZGVyOjA7IGJhY2tncm91bmQtY29sb3I6dW5zZXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5tdWx0aXN0ZXBJbml0aWFsVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IG1hcmdpbi10b3A6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzcGFuLmgyLWFsdHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MjVweDsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IG1hcmdpbi1sZWZ0OjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc3Bhbi5oMy1hbHR7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MjVweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmhpZGRlbklucHV0eyBkaXNwbGF5Om5vbmU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVja0RpdnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6MTBweDsgcmlnaHQ6MTAwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFseyBmb250LXNpemU6MC42ODhyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjRweCAycHggNXB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFseyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweCAycHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBmb250LXNpemU6MS4wNjNyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkluaXRpYWx7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDo5NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzo1cHggMnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweCAycHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBmb250LXNpemU6MS4wNjNyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1ib3R0b206dW5zZXQ7IG1hcmdpbi1sZWZ0OjAuN3JlbTsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgbGFiZWwgLmZvcm1hdC1wcmljZXsgbWFyZ2luLXJpZ2h0OjAuM3JlbTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAudndDb25zZW50VGV4dHsgaGVpZ2h0Ojk1cHg7IG92ZXJmbG93LXk6c2Nyb2xsOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MTBweCAxMHB4OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBoMXsgZm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTZweCAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgaDJ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyBtYXJnaW46MjRweCAwIDEwcHggMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTJweCAwICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHVseyBtYXJnaW46OHB4IDAgMTZweCAyNHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGxpeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDEycHggMCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBzdHJvbmd7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAudndDb25zZW50RGl2c3sgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246bGVmdDsgfSAuZHJWaWV3RGlzY2xhaW1lckxpbmsgeyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyIHsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDsgYm90dG9tOi0zMDBweDsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIC0ycHggMTBweCByZ2JhKDAsMCwwLDAuMyk7IHRyYW5zaXRpb246Ym90dG9tIDAuM3MgZWFzZTsgZGlzcGxheTpub25lOyBvdmVyZmxvdzphdXRvOyB6LWluZGV4OjEwMDAwMDsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4geyBib3R0b206MDsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4gLmRyRGlzY2xhaW1lckNvbnRlbnQgeyBwYWRkaW5nOjIwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4gLmNsb3NlRFJEaXNjbGFpbWVyRHJhd2VyLCAuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4gLmNsb3NlRFJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciB7IHBhZGRpbmc6MTBweDsgY3Vyc29yOnBvaW50ZXI7IH0KLyoqIC9jc3MvcGF5bWVudENhbGN1bGF0b3IuY3NzICoqLwo6aXMoI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLCNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcikuY2FsYy1tb2JpbGUgeyAtLXdyYXAtcGF5bWVudHM6d3JhcDsgLS1tb2JpbGUtZGlzcGxheTpub25lOyAtLW1vYi1mdWxsLXdpZHRoOjEwMCU7IC0tcGF5bWVudC1taW4td2lkdGg6Ni4zcmVtOyAtLWhlYWRlci1mb250LXNpemU6dmFyKC0tZnMyKTsgLS1oZWFkZXItaWNvbi1zaXplOnZhcigtLWZzNSk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyeyBtaW4taGVpZ2h0OjQ1MHB4OyBjb2xvcjpibGFjazsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcnsgYm9yZGVyOjRweCBzb2xpZCAjMWIxYjFiOyB9ICNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyOmhhcyguY2FsYy1tb2JpbGUpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyeyBvdmVyZmxvdy14OnZpc2libGU7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MzcwcHg7IGZsZXgtd3JhcDp3cmFwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyBvdmVyZmxvdy14OnNjcm9sbDsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyB3aWR0aDoxMDAlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0LCAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczR7IHdpZHRoOjgwJTsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIgc3BhbiwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHNwYW57IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXJnaW4tYm90dG9tOnZhcigtLXMpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgd2lkdGg6MjQlOyB9IC5wYXltZW50Q2FsY3VsYXRvckxpbmV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGdyZXk7IG1hcmdpbjoxMHB4IDA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxeyBmb250LXNpemU6MC42ODhyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxIHNwYW57IGZvbnQtc2l6ZToxLjc1cmVtIDsgY29sb3I6I2UzMTczZTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMiBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lM3sgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUzIHNwYW57IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6Z3JleTsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZURpdnsgbWF4LXdpZHRoOjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IHRvcDotNTAlOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXJ7IHdpZHRoOm1heCh2YXIoLS1tb2ItZnVsbC13aWR0aCwgNjYlKSwgMjByZW0pOyB9IC5jYWxjLXBheW1lbnRzeyBtYXgtd2lkdGg6dmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSk7IH0gLmNhbGMtcGF5bWVudHMgOmlzKC5wcmljZS1mciwgLnByaWNlLWVuKXsgdGV4dC1hbGlnbjpyZXZlcnQ7IG1pbi13aWR0aDp1bnNldDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUNvbnRhaW5lcnsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY2NjYzsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZXsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjAgMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGl7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgbWluLXdpZHRoOjVyZW07IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2Q5ZDlkOTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaS5hY3RpdmVQYXltZW50VHlwZXsgYmFja2dyb3VuZC1jb2xvcjojOTg5ODk4OyBjb2xvcjp3aGl0ZTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lcnsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyID4gKiB7IHBhZGRpbmctYm90dG9tOjAuNXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciBsYWJlbHsgY29sb3I6Z3JleTsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWxlZnQ6M3B4OyBtYXJnaW4tYm90dG9tOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6MTByZW07IG1heC13aWR0aDoyMHJlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsIC5kMmNmb3JtIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6N3JlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2V7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6MTEwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50eyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6NXJlbTsgcGFkZGluZy1sZWZ0OjIwcHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6NjAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6NDAlOyAtbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9IC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lcnsgbWluLXdpZHRoOjE4cmVtOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojODY4Njg2OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIuYm94ZXM0eyB3aWR0aDozMCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgcCwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgc3BhbnsgY29sb3I6aW5oZXJpdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2V7IHdpZHRoOjUwJTsgbWFyZ2luLXRvcDozMHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZveyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaWNvbnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luOjA7IHBhZGRpbmc6MC40cmVtOyAtLXR4dC1jb2xvcjojZmZmZmZmOyAtLWZzOnZhcigtLWhlYWRlci1pY29uLXNpemUsIHZhcigtLWZzNykpOyBiYWNrZ3JvdW5kLWNvbG9yOiNlMzE3M2U7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoMiBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgzeyBmb250LXNpemU6MS4xODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIHNwYW4uaDItYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgbGluZS1oZWlnaHQ6MS4yZW07IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMi1hbHQgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW57IGZvbnQtc2l6ZTp2YXIoLS1oZWFkZXItZm9udC1zaXplLCB2YXIoLS1mczMpKTsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgzLWFsdHsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lci5ib3hlczR7IHdpZHRoOjY0JTsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYXsgd2lkdGg6bWluKDY0JSwxOHJlbSk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdHsgfSAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6IzAwMDAwMDsgfSAuLWJnLWJsYWNrIC5mYS5mYS1jYWxjdWxhdG9yeyBjb2xvcjojRkZGRkZGOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBzZWxlY3Q6Oi1tcy1leHBhbmQgeyBkaXNwbGF5Om5vbmU7IH0gLmNhbGMtcGF5bWVudC1jYXNoIHsgd2lkdGg6bWluKDE3cmVtLDkwJSk7IHBhZGRpbmc6MCAxLjVyZW07IH0gLmNhbGMtcGF5bWVudC1jYXNoIHNwYW57IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOnJldmVydDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlRmluYWwgeyBwYWRkaW5nLXRvcDp2YXIoLS1zKTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JiYjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlUm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBsaW5lLWhlaWdodDpub3JtYWw7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZU5hbWV7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSAjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbnsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZXsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24geyBib3JkZXI6MS41cHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6OHB4OyB3aWR0aDoxOTBweDsgYmFja2dyb3VuZDp3aGl0ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXgtc2hyaW5rOjA7IG1pbi13aWR0aDoxODdweDsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24uc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IzAwN0JGRjsgYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAudGVybSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC50ZXJtIHsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzMzsgbWFyZ2luLWJvdHRvbToycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kb3duLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZG93bi1wYXltZW50IHsgZm9udC1zaXplOjAuNjI1cmVtIDsgY29sb3I6Izk5OTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zZXBhcmF0b3JQYXksICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2VwYXJhdG9yUGF5IHsgd2lkdGg6OTAlOyBoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG1hcmdpbi1ib3R0b206NnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuY29udGVudC1jb250YWluZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyOyBhbGlnbi1pdGVtczpzdGFydDsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubGVmdC1zZWN0aW9uLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJpZ2h0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnJpZ2h0LXNlY3Rpb24geyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzpzcGFuIDQ7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjZweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uIHsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXBheW1lbnQsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXBheW1lbnQgeyBmb250LXNpemU6MS4yNXJlbSA7IGNvbG9yOiNkMzJmMmY7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuaW5mby1pY29uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmluZm8taWNvbiB7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzY2NjsgY3Vyc29yOnBvaW50ZXI7IG1hcmdpbi1sZWZ0OjRweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcmF0ZSB7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXJhdGUsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXJhdGUgeyBjb2xvcjojMzMzOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZGV0YWlsc1RheCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5kZXRhaWxzVGF4IHsgZm9udC1zaXplOjAuNjg4cmVtIDsgY29sb3I6IzMzMzsgbWFyZ2luLXRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5yYWRpby1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmFkaW8tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDowcHg7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MC42ODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdIHsgbWFyZ2luLXJpZ2h0OjRweDsgb3BhY2l0eTp1bnNldDsgd2lkdGg6dW5zZXQ7IGhlaWdodDp1bnNldDsgcG9zaXRpb246dW5zZXQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zaW5nbGUtY29sdW1uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNpbmdsZS1jb2x1bW4geyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBncmlkLWNvbHVtbjoxIC8gLTE7IHBhZGRpbmc6OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc21hbGwtYm94LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNtYWxsLWJveCB7IHdpZHRoOjEwMHB4OyBwYWRkaW5nOjhweDsgbWluLXdpZHRoOjEwMHB4OyBtYXgtd2lkdGg6MTAwcHg7IH0KLyoqIC9jc3MvY3JlZGl0U2NvcmVDb25maXJtUG9wdXAuY3NzICoqLwojY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXJ7IGJhY2tncm91bmQ6d2hpdGU7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiMwMDQ0Nzg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVCb2xkeyBmb250LXdlaWdodDpib2xkOyB9IC5jcmVkaXRTY29yZUNvbmZpcm1fYnRueyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOiMwMDQ0Nzg7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MTJweCAzMHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MXJlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6MXB4OyB0cmFuc2l0aW9uOm9wYWNpdHkgMC4yczsgfSAuY3JlZGl0U2NvcmVDb25maXJtX2J0bjpob3Zlcnsgb3BhY2l0eTowLjg1OyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBkaXYuc2NvcmVDcmVkaXRUaXRsZXsgZm9udC1zaXplOjAuOTM4cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIGRpdi5zY29yZUNyZWRpdFRpdGxlIGRpdi5jcmVkaXRTY29yZVRpdGxleyBtYXJnaW4tYm90dG9tOjEwcHg7IGZvbnQtd2VpZ2h0OjcwMDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZVRpdGxlRnJlZXsgZm9udC1zaXplOjIuNXJlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjEuNTYzcmVtIDsgdGV4dC1zaGFkb3c6MS40cHggMDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQ29uZmlybUlucHV0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDozMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIGlucHV0eyBoZWlnaHQ6MzJweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MjYwcHg7IHBhZGRpbmc6MCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2VlZWVlZTsgYm94LXNpemluZzpjb250ZW50LWJveDsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUNvbmZpcm1fYnRueyB3aWR0aDoyNDBweDsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MTJweCAzMHB4OyBib3JkZXI6bm9uZTsgYm94LXNpemluZzpib3JkZXItYm94OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlRXh0cmFUZXh0eyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlQ29uc2VudE1lc3NhZ2V7IGNvbG9yOiNiM2IzYjM7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25maXJtUG9wdXBNZXNzYWdleyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgYmxhY2s7IG1hcmdpbi1ib3R0b206MTBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IHdpZHRoOjQzMHB4OyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25maXJtUG9wdXBNZXNzYWdlIGRpdi5jcmVkaXRTY29yZUNvbmZpcm1Qb3B1cE1lc3NhZ2VUaXRsZXsgZm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbi1ib3R0b206MTBweDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlQ29uZmlybVBvcHVwTWVzc2FnZSBkaXYuY3JlZGl0U2NvcmVDb25maXJtUG9wdXBNZXNzYWdlVGV4dHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAucGFjLWNvbnRhaW5lciB7IHotaW5kZXg6MTAwMDAyMTsgfQovKiogL2Nzcy9jb250YWN0UG9wdXAuY3NzICoqLwojY29udGFjdHBvcHVwIHsgd2lkdGg6NTk4cHg7IG1pbi13aWR0aDoyMzBweDsgfSAjY29udGFjdHBvcHVwLm1vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZXh0YXJlYS5qcXRyYW5zZm9ybWRvbmUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tbCwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZC5qcVRyYW5zZm9ybVRleHRhcmVhLW1yIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCB7IHBhZGRpbmc6MDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgLmNvbnRhY3Rwb3B1cC1ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgcGFkZGluZzozMHB4IDEwcHggMTBweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgaW5wdXQgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3c6bm90KDpsYXN0LWNoaWxkKSAuZGl2U3BhbiB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpsYXN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjYgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgbWF4LXdpZHRoOjI3NHB4ICFpbXBvcnRhbnQ7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgeyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBwYWRkaW5nOjE1cHggMTVweCAzMHB4IDE1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGNvbG9yOiNlYWVhZWE7IGJhY2tncm91bmQtY29sb3I6IzFiMWIxYjsgfSAuY29udGFjdHBvcHVwLWhlYWRlcjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi0xNXB4OyBsZWZ0OjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyBib3JkZXItbGVmdDozMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDoxNXB4IHNvbGlkICMxYjFiMWI7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjAuNXJlbTsgdG9wOjAuNXJlbTsgZm9udC1zaXplOmluaXRpYWw7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmhlYWRlci1yZXBsYWNlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gYnV0dG9uLmNvbnRhY3Qtc3VibWl0IHsgcGFkZGluZzoxMHB4IDE1cHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojZWFlYWVhOyBiYWNrZ3JvdW5kOiMxYjFiMWI7IHRyYW5zaXRpb246YWxsIDAuMjVzOyBjb2xvcjojZWFlYWVhOyBmb250LXdlaWdodDo2MDA7IG1hcmdpbjowOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jb250YWN0LXN1Ym1pdDpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZTMxNzNlOyBjb2xvcjojZmZmZmZmOyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIHsgfSAuY29udGFjdHBvcHVwLWZvb3RlciAuYnRuLXdyYXBwZXIgeyBwYWRkaW5nOjEwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdiB7IGhlaWdodDozMHB4OyB9ICNjb250YWN0cG9wdXAgLmpxVHJhbnNmb3JtSW5wdXRJbm5lciBkaXYudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6aW5oZXJpdDsgfQovKiogL2Nzcy9kaXZfdGFibGVzLmNzcyAqKi8KZGl2LmRpdlRhYmxlVmlld3sgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUYWJsZVdyYXBlcnsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC45MzhyZW0gOyBwYWRkaW5nOjMwcHggMHB4IDEwcHggMTBweDsgY29sb3I6IzFiMWIxYjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGhlaWdodDphdXRvOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlT3V0ZXJ7IGJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzowOyBib3JkZXItcmFkaXVzOjhweDsgbWFyZ2luOjA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgb3ZlcmZsb3c6aGlkZGVuOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmd7IGRpc3BsYXk6dGFibGUtcm93OyBmb250LXdlaWdodDppbml0aWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgaGVpZ2h0OjY1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxNXB4IDE1cHggMjVweCAxNXB4OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7IGNvbG9yOiMxYjFiMWI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGx7IHBhZGRpbmc6MTBweCAxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bGFzdC1jaGlsZHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6Zmlyc3QtY2hpbGR7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdzpsYXN0LWNoaWxkIGRpdi5kaXZDZWxseyBib3JkZXItYm90dG9tOjBweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3cgZGl2LmRpdkNlbGx7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbDpudGgtY2hpbGQoZXZlbil7IGJhY2tncm91bmQtY29sb3I6I2Y2ZjdmODsgfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5wcmVsb2FkLmNzcyAqKi8KLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLmQyY2Zvcm0gKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZDJjZm9ybSBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtNCk7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS10aGluIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy05KTsgfSAuZDJjZm9ybS0tcm93IHN0YWNrLWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LXdyYXA6d3JhcDsgfSAuZDJjZm9ybS0tcm93IGJveC1sYyB7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6MTE1cHg7IHdpZHRoOjMwJTsgcGFkZGluZy1yaWdodDp2YXIoLS1zKTsgbWFyZ2luLXRvcDp2YXIoLS1zMSk7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSBsYWJlbDpoYXMoW3JlcXVpcmVkXSkgc3BhbjphZnRlcnsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsOm5vdCguZmluYW5jZUNhbGMpLCAuZDJjZm9ybSAubGFiZWw6bm90KC5maW5hbmNlQ2FsYykgeyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLXJpZ2h0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIDp3aGVyZShpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pKSwgLmQyY2Zvcm0gc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0KSwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QgeyBoZWlnaHQ6MzVweDsgfSAuZDJjZm9ybSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLmQyY2Zvcm0gaW5wdXQ6ZGlzYWJsZWQsIC5kMmNmb3JtIGlucHV0LmRpc2FibGVkIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyk7IGNvbG9yOnJnYig4NCwgODQsIDg0KTsgYm9yZGVyLWNvbG9yOnJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlciB7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyOjpwbGFjZWhvbGRlciB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0LCAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTsgdG9wOnZhcigtLXMxKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCAuaW5wdXQtaWNvbiB7IHJpZ2h0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IC5pbnB1dC1pY29uIHsgbGVmdDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCBpbnB1dCB7IHBhZGRpbmctbGVmdDp2YXIoLS1zOSk7IH0gLmQyY2Zvcm0gLnNlcGFyYXRvciB7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNkNGQ0ZDQ7IG1hcmdpbi10b3A6dmFyKC0tczcpOyBtYXJnaW4tYm90dG9tOnZhcigtLXM3KTsgfSAuZDJjZm9ybSAucmFkaW8taW5saW5lIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0IHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCA+ICogeyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0IHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCA+ICo6bm90KDpsYXN0LW9mLXR5cGUpIHsgbWFyZ2luLXJpZ2h0OnZhcigtLXMxKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgeyBkaXNwbGF5OmZsZXg7IHdpZHRoIDoxMDAlOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtdGV4dCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlci1sZWZ0OjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IEBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KSB7IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDo4NXB4OyB9IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvdjIvbW9kYWwuY3NzICoqLwoubW9kYWwtd3JhcHBlciB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MTUwJTsgbGVmdDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHotaW5kZXg6MTYwMDE7IHRyYW5zaXRpb246dG9wIDE1MG1zIGVhc2UtaW47IH0gLm1vZGFsLXdyYXBwZXIuaXMtYWN0aXZleyB0b3A6NTAlOyB9IC5tb2RhbC13cmFwcGVyIC5tb2RhbC1ib2R5eyBtaW4td2lkdGg6MjByZW07IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0Ojg1dmg7IG92ZXJmbG93LXk6YXV0bzsgfSAubW9kYWwtb3ZlcmxheXsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6MTAwdmg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjUpOyB6LWluZGV4OjEwMDAwOyB9IC5sb2FkaW5nLW92ZXJsYXl7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IGxlZnQ6MDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9hamF4LWxvYWRlci5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyB9IC5tb2RhbC13cmFwcGVyIDppcyhpbnB1dFt0eXBlPSJ0ZXh0Il0saW5wdXRbdHlwZT0iZW1haWwiXSxpbnB1dFt0eXBlPSJ0ZWwiXSl7IHBhZGRpbmc6MC40cmVtOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLW1pZC1ncmF5KTsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gLm1vZGFsLWJvZHkgLmlmcmFtZS13cmFwcGVyeyB3aWR0aDptYXgoOTB2dywgMjAuNXJlbSk7IGhlaWdodDptYXgoODR2aCwgMzByZW0pOyB3aWR0aDpjbGFtcCgyMC41cmVtLCBtYXgoOTB2dywgMjAuNXJlbSksIDYwcmVtKTsgaGVpZ2h0OmNsYW1wKDMwcmVtLCBtYXgoODR2aCwgMzByZW0pLCA2MHJlbSk7IH0gLm1vZGFsLWJvZHkgLmlmcmFtZS13cmFwcGVyIGlmcmFtZXsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0KLyoqIC9jc3MvdjIvZmxhdHBpY2tyLm1pbi5jc3MgKiovCi5mbGF0cGlja3ItY2FsZW5kYXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtvcGFjaXR5OjA7ZGlzcGxheTpub25lO3RleHQtYWxpZ246Y2VudGVyO3Zpc2liaWxpdHk6aGlkZGVuO3BhZGRpbmc6MDstd2Via2l0LWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lO2RpcmVjdGlvbjpsdHI7Ym9yZGVyOjA7Zm9udC1zaXplOjAuODc1cmVtIDtsaW5lLWhlaWdodDoyNHB4O2JvcmRlci1yYWRpdXM6NXB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMwNy44NzVweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjtiYWNrZ3JvdW5kOiNmZmY7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNiwtMXB4IDAgMCAjZTZlNmU2LDAgMXB4IDAgI2U2ZTZlNiwwIC0xcHggMCAjZTZlNmU2LDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNiwtMXB4IDAgMCAjZTZlNmU2LDAgMXB4IDAgI2U2ZTZlNiwwIC0xcHggMCAjZTZlNmU2LDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KX0uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW4sLmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmV7b3BhY2l0eToxO21heC1oZWlnaHQ6NjQwcHg7dmlzaWJpbGl0eTp2aXNpYmxlfS5mbGF0cGlja3ItY2FsZW5kYXIub3BlbntkaXNwbGF5OmlubGluZS1ibG9jazt6LWluZGV4Ojk5OTk5fS5mbGF0cGlja3ItY2FsZW5kYXIuYW5pbWF0ZS5vcGVuey13ZWJraXQtYW5pbWF0aW9uOmZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoLjIzLDEsLjMyLDEpO2FuaW1hdGlvbjpmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKX0uZmxhdHBpY2tyLWNhbGVuZGFyLmlubGluZXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoycHh9LmZsYXRwaWNrci1jYWxlbmRhci5zdGF0aWN7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDJweCl9LmZsYXRwaWNrci1jYWxlbmRhci5zdGF0aWMub3Blbnt6LWluZGV4Ojk5OTtkaXNwbGF5OmJsb2NrfS5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisxKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bis3KXstd2Via2l0LWJveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50fS5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisyKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bisxKXstd2Via2l0LWJveC1zaGFkb3c6LTJweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotMnB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVyLC5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1RpbWUgLmRheUNvbnRhaW5lcntib3JkZXItYm90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lcntib3JkZXItbGVmdDowfS5mbGF0cGlja3ItY2FsZW5kYXIuaGFzVGltZSAuZmxhdHBpY2tyLXRpbWV7aGVpZ2h0OjQwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyLm5vQ2FsZW5kYXIuaGFzVGltZSAuZmxhdHBpY2tyLXRpbWV7aGVpZ2h0OmF1dG99LmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyOnNvbGlkIHRyYW5zcGFyZW50O2NvbnRlbnQ6Jyc7aGVpZ2h0OjA7d2lkdGg6MDtsZWZ0OjIycHh9LmZsYXRwaWNrci1jYWxlbmRhci5yaWdodE1vc3Q6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dSaWdodDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5yaWdodE1vc3Q6YWZ0ZXIsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1JpZ2h0OmFmdGVye2xlZnQ6YXV0bztyaWdodDoyMnB4fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dDZW50ZXI6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dDZW50ZXI6YWZ0ZXJ7bGVmdDo1MCU7cmlnaHQ6NTAlfS5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3Jle2JvcmRlci13aWR0aDo1cHg7bWFyZ2luOjAgLTVweH0uZmxhdHBpY2tyLWNhbGVuZGFyOmFmdGVye2JvcmRlci13aWR0aDo0cHg7bWFyZ2luOjAgLTRweH0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVye2JvdHRvbToxMDAlfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmFmdGVye3RvcDoxMDAlfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3Jle2JvcmRlci10b3AtY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmFmdGVye2JvcmRlci10b3AtY29sb3I6I2ZmZn0uZmxhdHBpY2tyLWNhbGVuZGFyOmZvY3Vze291dGxpbmU6MH0uZmxhdHBpY2tyLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsYXRwaWNrci1tb250aHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgwLDAsMCwwLjkpO2ZpbGw6cmdiYSgwLDAsMCwwLjkpO2hlaWdodDozNHB4O2xpbmUtaGVpZ2h0OjE7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aHt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtoZWlnaHQ6MzRweDtwYWRkaW5nOjEwcHg7ei1pbmRleDozO2NvbG9yOnJnYmEoMCwwLDAsMC45KTtmaWxsOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItZGlzYWJsZWR7ZGlzcGxheTpub25lfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBpLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBpe3Bvc2l0aW9uOnJlbGF0aXZlfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItcHJldi1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGh7bGVmdDowfSAuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLW5leHQtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoe3JpZ2h0OjB9IC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3ZlciwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXJ7Y29sb3I6Izk1OWVhOX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIgc3ZnLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciBzdmd7ZmlsbDojZjY0NzQ3fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBzdmcsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2Z3t3aWR0aDoxNHB4O2hlaWdodDoxNHB4fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBzdmcgcGF0aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3ZnIHBhdGh7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwgLjFzO3RyYW5zaXRpb246ZmlsbCAuMXM7ZmlsbDppbmhlcml0fS5udW1JbnB1dFdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OmF1dG99Lm51bUlucHV0V3JhcHBlciBpbnB1dCwubnVtSW5wdXRXcmFwcGVyIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm51bUlucHV0V3JhcHBlciBpbnB1dHt3aWR0aDoxMDAlfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi1tcy1jbGVhcntkaXNwbGF5Om5vbmV9Lm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwubnVtSW5wdXRXcmFwcGVyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9ue21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5udW1JbnB1dFdyYXBwZXIgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3dpZHRoOjE0cHg7cGFkZGluZzowIDRweCAwIDJweDtoZWlnaHQ6NTAlO2xpbmUtaGVpZ2h0OjUwJTtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuMTUpOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubnVtSW5wdXRXcmFwcGVyIHNwYW46aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSl9Lm51bUlucHV0V3JhcHBlciBzcGFuOmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKX0ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1Vwe3RvcDowO2JvcmRlci1ib3R0b206MH0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItbGVmdDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7dG9wOjI2JX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3due3RvcDo1MCV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItbGVmdDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7dG9wOjQwJX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3Zne3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmF1dG99Lm51bUlucHV0V3JhcHBlciBzcGFuIHN2ZyBwYXRoe2ZpbGw6cmdiYSgwLDAsMCwwLjUpfS5udW1JbnB1dFdyYXBwZXI6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5udW1JbnB1dFdyYXBwZXI6aG92ZXIgc3BhbntvcGFjaXR5OjF9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoe2ZvbnQtc2l6ZToxMzUlO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NzUlO2xlZnQ6MTIuNSU7cGFkZGluZzo3LjQ4cHggMCAwIDA7bGluZS1oZWlnaHQ6MTtoZWlnaHQ6MzRweDtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggc3Bhbi5jdXItbW9udGh7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDo3MDA7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDouNWNoO3BhZGRpbmc6MH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggc3Bhbi5jdXItbW9udGg6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjZjaDt3aWR0aDo3Y2hcMDtkaXNwbGF5OmlubGluZS1ibG9ja30uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnRleHQ7cGFkZGluZzowIDAgMCAuNWNoO21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OmluaGVyaXQ7aGVpZ2h0OmF1dG87Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO3ZlcnRpY2FsLWFsaWduOmluaXRpYWw7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkO2FwcGVhcmFuY2U6dGV4dGZpZWxkfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcjpmb2N1c3tvdXRsaW5lOjB9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXSwuZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdOmhvdmVye2ZvbnQtc2l6ZToxMDAlO2NvbG9yOnJnYmEoMCwwLDAsMC41KTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHN7YXBwZWFyYW5jZTptZW51bGlzdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjotMXB4IDAgMCAwO291dGxpbmU6bm9uZTtwYWRkaW5nOjAgMCAwIC41Y2g7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246aW5pdGlhbDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6bWVudWxpc3Q7LW1vei1hcHBlYXJhbmNlOm1lbnVsaXN0O3dpZHRoOmF1dG99LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6Zm9jdXMsLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6YWN0aXZle291dGxpbmU6bm9uZX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMgLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7b3V0bGluZTpub25lO3BhZGRpbmc6MH0uZmxhdHBpY2tyLXdlZWtkYXlze2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjhweH0uZmxhdHBpY2tyLXdlZWtkYXlzIC5mbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MX1zcGFuLmZsYXRwaWNrci13ZWVrZGF5e2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZTo5MCU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDAsMCwwLDAuNTQpO2xpbmUtaGVpZ2h0OjE7bWFyZ2luOjA7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpibG9jazstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7Zm9udC13ZWlnaHQ6Ym9sZGVyfS5kYXlDb250YWluZXIsLmZsYXRwaWNrci13ZWVrc3twYWRkaW5nOjFweCAwIDAgMH0uZmxhdHBpY2tyLWRheXN7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7d2lkdGg6MzA3Ljg3NXB4fS5mbGF0cGlja3ItZGF5czpmb2N1c3tvdXRsaW5lOjB9LmRheUNvbnRhaW5lcntwYWRkaW5nOjA7b3V0bGluZTowO3RleHQtYWxpZ246bGVmdDt3aWR0aDozMDcuODc1cHg7bWluLXdpZHRoOjMwNy44NzVweDttYXgtd2lkdGg6MzA3Ljg3NXB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1ibG9jaztkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTtvcGFjaXR5OjF9LmRheUNvbnRhaW5lciArIC5kYXlDb250YWluZXJ7LXdlYmtpdC1ib3gtc2hhZG93Oi0xcHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotMXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItZGF5e2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTUwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiMzOTM5Mzk7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NDAwO3dpZHRoOjE0LjI4NTcxNDMlOy13ZWJraXQtZmxleC1iYXNpczoxNC4yODU3MTQzJTstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToxNC4yODU3MTQzJTtmbGV4LWJhc2lzOjE0LjI4NTcxNDMlO21heC13aWR0aDozOXB4O2hlaWdodDozOXB4O2xpbmUtaGVpZ2h0OjM5cHg7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LmZsYXRwaWNrci1kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS50b2RheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS50b2RheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS50b2RheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpob3ZlciwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6aG92ZXIsLmZsYXRwaWNrci1kYXk6Zm9jdXMsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmZvY3VzLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpmb2N1c3tjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjA7YmFja2dyb3VuZDojZTZlNmU2O2JvcmRlci1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItZGF5LnRvZGF5e2JvcmRlci1jb2xvcjojOTU5ZWE5fS5mbGF0cGlja3ItZGF5LnRvZGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5LnRvZGF5OmZvY3Vze2JvcmRlci1jb2xvcjojOTU5ZWE5O2JhY2tncm91bmQ6Izk1OWVhOTtjb2xvcjojZmZmfS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpmb2N1cywuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmZvY3VzLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmZvY3VzLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmhvdmVyLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6aG92ZXIsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6aG92ZXIsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UubmV4dE1vbnRoRGF5e2JhY2tncm91bmQ6IzU2OWZmNzstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6IzU2OWZmN30uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdle2JvcmRlci1yYWRpdXM6NTBweCAwIDAgNTBweH0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmVuZFJhbmdle2JvcmRlci1yYWRpdXM6MCA1MHB4IDUwcHggMH0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpey13ZWJraXQtYm94LXNoYWRvdzotMTBweCAwIDAgIzU2OWZmNztib3gtc2hhZG93Oi0xMHB4IDAgMCAjNTY5ZmY3fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UuZW5kUmFuZ2V7Ym9yZGVyLXJhZGl1czo1MHB4fS5mbGF0cGlja3ItZGF5LmluUmFuZ2V7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzotNXB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi01cHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXIsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQubmV4dE1vbnRoRGF5e2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4zKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdH0uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVye2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMSl9LmZsYXRwaWNrci1kYXkud2Vlay5zZWxlY3RlZHtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Oi01cHggMCAwICM1NjlmZjcsNXB4IDAgMCAjNTY5ZmY3O2JveC1zaGFkb3c6LTVweCAwIDAgIzU2OWZmNyw1cHggMCAwICM1NjlmZjd9LmZsYXRwaWNrci1kYXkuaGlkZGVue3Zpc2liaWxpdHk6aGlkZGVufS5yYW5nZU1vZGUgLmZsYXRwaWNrci1kYXl7bWFyZ2luLXRvcDoxcHh9LmZsYXRwaWNrci13ZWVrd3JhcHBlcntmbG9hdDpsZWZ0fS5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrc3twYWRkaW5nOjAgMTJweDstd2Via2l0LWJveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrZGF5e2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDoyOHB4fS5mbGF0cGlja3Itd2Vla3dyYXBwZXIgc3Bhbi5mbGF0cGlja3ItZGF5LC5mbGF0cGlja3Itd2Vla3dyYXBwZXIgc3Bhbi5mbGF0cGlja3ItZGF5OmhvdmVye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXgtd2lkdGg6bm9uZTtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdDtib3JkZXI6bm9uZX0uZmxhdHBpY2tyLWlubmVyQ29udGFpbmVye2Rpc3BsYXk6YmxvY2s7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVufS5mbGF0cGlja3ItckNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5mbGF0cGlja3ItdGltZXt0ZXh0LWFsaWduOmNlbnRlcjtvdXRsaW5lOjA7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtsaW5lLWhlaWdodDo0MHB4O21heC1oZWlnaHQ6NDBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZsYXRwaWNrci10aW1lOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTt3aWR0aDo0MCU7aGVpZ2h0OjQwcHg7ZmxvYXQ6bGVmdH0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMzkzOTM5fS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci10b3AtY29sb3I6IzM5MzkzOX0uZmxhdHBpY2tyLXRpbWUuaGFzU2Vjb25kcyAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjI2JX0uZmxhdHBpY2tyLXRpbWUudGltZTI0aHIgLm51bUlucHV0V3JhcHBlcnt3aWR0aDo0OSV9LmZsYXRwaWNrci10aW1lIGlucHV0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMzkzOTM5O2ZvbnQtc2l6ZTowLjg3NXJlbSA7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDthcHBlYXJhbmNlOnRleHRmaWVsZH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLWhvdXJ7Zm9udC13ZWlnaHQ6Ym9sZH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLW1pbnV0ZSwuZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLXNlY29uZHtmb250LXdlaWdodDo0MDB9LmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3Vze291dGxpbmU6MDtib3JkZXI6MH0uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci10aW1lLXNlcGFyYXRvciwuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbXtoZWlnaHQ6aW5oZXJpdDtmbG9hdDpsZWZ0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzM5MzkzOTtmb250LXdlaWdodDpib2xkO3dpZHRoOjIlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LWFsaWduLXNlbGY6Y2VudGVyOy1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyfS5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBte291dGxpbmU6MDt3aWR0aDoxOCU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NDAwfS5mbGF0cGlja3ItdGltZSBpbnB1dDpob3ZlciwuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpob3ZlciwuZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXMsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06Zm9jdXN7YmFja2dyb3VuZDojZWVlfS5mbGF0cGlja3ItaW5wdXRbcmVhZG9ubHlde2N1cnNvcjpwb2ludGVyfUAtd2Via2l0LWtleWZyYW1lcyBmcEZhZGVJbkRvd257ZnJvbXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9fUBrZXlmcmFtZXMgZnBGYWRlSW5Eb3due2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX0KLyoqIC9jc3MvaW5saW5lLmZyLm5ld2NhcnMuY3NzICoqLwpidXR0b24jb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24jb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24jb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgY29sb3I6IzcwNzA3MCAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbi5zYXZlLXByZWZlcmVuY2UtYnRuLWhhbmRsZXIub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbi5vdC1wYy1yZWZ1c2UtYWxsLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXJ7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTpzbWFsbCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IC5vdC1wYy1sb2dvIGltZ3sgY29udGVudDp1cmwoIi9pbWFnZXMvTG9nby9Ib25kYS1Eb25uYWNvbmEtTG9nby53ZWJwIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dveyB3aWR0aDozMCUgIWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmxlZnQgIWltcG9ydGFudDsgfSAub3QtYm5yLWxvZ297IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ28vSG9uZGEtRG9ubmFjb25hLUxvZ28ud2VicCIpICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ297IHdpZHRoOjg1cHggIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MjVweCAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7IG1hcmdpbi1sZWZ0OjExMHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDoyNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MjVweCl7ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dveyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjE1cHggMCAxMHB4IDAgIWltcG9ydGFudDsgdHJhbnNmb3JtOmluaGVyaXQ7IHpvb206NDAlOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjVweDsgfSAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBvbGljeS10aXRsZXsgZm9udC1zaXplOjFlbSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1yZWplY3QtYWxsLWhhbmRsZXIsICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlcnsgcGFkZGluZzoxMHB4IDEwcHg7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgYnV0dG9uLCAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiwgI290LXNkay1jb29raWUtcG9saWN5IGJ1dHRvbnsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gI29uZXRydXN0LXBjLXNkayBidXR0b24geyB3aWR0aDphdXRvOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLCAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyLCAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb250YWluZXJ7IHBhZGRpbmc6NXB4IDIwcHg7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeXsgbWFyZ2luOjA7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cCAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyeyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSB9PC9zdHlsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPC9zdHlsZT4KCQoJCTwhLS0gT086OjYwMDU3MTBkMjkzOTU4OWYwZGM3MGEzZjA2M2YzYTQ4IC0tPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkTDqXRhaWxzIiBpZD0idGV4dERldGFpbHMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJUb3VzIiBpZD0idGV4dEFsbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU8OpbGVjdGlvbm5leiB1bmUgbWFycXVlIiBpZD0idGV4dE1hbnVUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZvaXIgbm9zIG1vZMOobGVzIEhvbmRhIiBpZD0idGV4dEJyYW5kVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJNb2TDqGxlcyBIb25kYSBuZXVmcyAyMDI1LCAyMDI2ICZhbXA7IDIwMjciIGlkPSJ0ZXh0TWFpblRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQXV0b3MgbmV1dmVzIEhvbmRhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dENhclRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVlVTIG5ldWZzIEhvbmRhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dFNVVlRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQ2FtaW9ucyBuZXVmcyBIb25kYSAyMDI1LCAyMDI2ICZhbXA7IDIwMjcgw6AgeyRORVdDSVRZfSIgaWQ9InRleHRUcnVja1RpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSHlicmlkZXMgbmV1dmVzIEhvbmRhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEh5YnJpZFRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iw4lsZWN0cmlxdWUgbmV1dmVzIEhvbmRhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEVsZWN0cmljVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJub3V2ZWF1IiBpZD0idGV4dE5ldyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkhvbmRhIHskQ0xBU1NOQU1FfSAyMDI1LCAyMDI2ICZhbXA7IDIwMjciIGlkPSJ0ZXh0Q2xhc3NWaWV3Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQWNjdWVpbCIgaWQ9InRleHRIb21lIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iLyIgaWQ9InVyaUhvbWUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvbmV1ZnMvbm91dmVhdS5odG1sIiBpZD0idXJpTmV3Q2FycyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9uZXVmcy8iIGlkPSJ0ZXh0TmV3Q2FyRm9sZGVyIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTm9zIG1hcnF1ZXMiIGlkPSJ0ZXh0TWFudVNlbGVjdCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkVuIFN0b2NrIC8gRGlzcG9uaWJsZXMiIGlkPSJpblN0b2NrTGFiZWwiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvaW1hZ2VzLyIgaWQ9InRleHRCYXNlSW1hZ2VQYXRoIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL3Byb3h5X2F1Yi8iIGlkPSJicmFuZEltYWdlUGF0aCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjE5NzlkNWRiMTZmMTMyYWI2ZGRkYWEwMTIzZDZhODE0fDM2MDM2OTAyNjIiIGlkPSJlbWFpbFVzZWRDYXJzIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmRFbWFpbE92ZXJyaWRlIiBpZD0iYnJhbmRFbWFpbE92ZXJyaWRlIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZEVtYWlsQWRmT3ZlcnJpZGUiIGlkPSJicmFuZEVtYWlsQWRmT3ZlcnJpZGUiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcmNlVG9GaWxsUG9wdXBfbmV3IiB2YWx1ZT0ibm9uZSI+CgkJPCEtLSBTVEFSVCBTT1JUIE9SREVSIC0tPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwcmljZSIgaWQ9InNvcnRCeSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkFzYyIgaWQ9InNvcnREaXIiPgoJCTwhLS0gRU5EIFNPUlQgT1JERVIgLS0+CgkJCQkJCTxzY3JpcHQ+CgoJCS8vZ2xvYmFsIHN0b3JlCgkJdmFyIHN0b3JlID0gbnVsbDsKCgkJY29uc3QgaW5pdFN0b3JlID0gKCkgPT4gewoKCQkJaWYodHlwZW9mIGNyZWF0ZURhdGFTdG9yZSAhPT0gJ2Z1bmN0aW9uJyl7CgkJCQlzZXRUaW1lb3V0KGluaXRTdG9yZSwgNTApOwoJCQkJcmV0dXJuOwoJCQl9CgoJCQlzdG9yZSA9IGNyZWF0ZURhdGFTdG9yZSh7ImNvbnRleHQiOnsibGFuZyI6IkZSRU5DSCIsInNob3J0TGFuZyI6ImZyIiwiaXNNb2JpbGUiOmZhbHNlLCJjYXRlZ29yeSI6ImFsbCIsInNlY3Rpb24iOiJORVciLCJsb2NhbGUiOiJmcl9DQSIsImRhdGVmb3JtYXQiOiIlZSAlQiJ9LCJkZWFsZXJJbmZvIjp7ImFkZHJlc3MiOiIxNTksIHJ1ZSBDb21tZXJjaWFsZSIsImNpdHkiOiJEb25uYWNvbmEiLCJwcm92aW5jZSI6IlF1XHUwMGU5YmVjIiwicmVnaW9uIjoiUXVcdTAwZTliZWMiLCJwb3N0YWwiOiJHM00gMVcyIiwibmFtZSI6IkhvbmRhIERvbm5hY29uYSIsImVtYWlsIjoiZHBlbGxldGllckBkb25uYWNvbmFob25kYS5jb20iLCJkZWFsZXJJRCI6MjA1OSwiZGVhbGVyR3JvdXAiOnsiZ3JvdXBlTmFtZSI6Ikdyb3VwZSBGb3JjZUF1dG8iLCJncm91cGVJRCI6IjQxNjkiLCJkZWFsZXJzIjpbeyJkZWFsZXJJRCI6NDcwNSwibmFtZSI6IkNlbnRyZSBkJ0luc3BpcmF0aW9uIFx1MDBjOWxlY3RyaXF1ZSBLaWEiLCJzaXRlSUQiOjE3OTgsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjMyODksIm5hbWUiOiJGb3JjZSBcdTAwYzlsZWN0cmlxdWUiLCJzaXRlSUQiOjExNDcsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjIzNTMsIm5hbWUiOiJGb3JjZSBPY2Nhc2lvbiBRdVx1MDBlOWJlYyIsInNpdGVJRCI6NzAyLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoyNzg5LCJuYW1lIjoiRm9yZCBEb25uYWNvbmEiLCJzaXRlSUQiOjEwMDcsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjIwNTksIm5hbWUiOiJIb25kYSBEb25uYWNvbmEiLCJzaXRlSUQiOjQ3OSwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6MTUwMiwibmFtZSI6IktpYSBRdVx1MDBlOWJlYyIsInNpdGVJRCI6NTg1LCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoyMTg1LCJuYW1lIjoiS2lhIFN0ZS1Gb3kiLCJzaXRlSUQiOjU3OSwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6MjE5MSwibmFtZSI6IktpYSBWYWwtQlx1MDBlOWxhaXIiLCJzaXRlSUQiOjU5MiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6MjY1OSwibmFtZSI6Ik1hIERldXhpXHUwMGU4bWUgQ2hhbmNlIiwic2l0ZUlEIjo4NzMsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjU4NDcsIm5hbWUiOiJSZW1vcnF1ZXMgR3JhbmQgUG9ydG5ldWYiLCJzaXRlSUQiOjI1NDMsImlzTGl2ZSI6IllFUyJ9XX0sImZheCI6IiIsInBob25lIjoiNDE4LTI4NS0zMjIwIiwibGF0aXR1ZGUiOiI0Ni42ODUzNjQ5MDAwIiwibG9uZ2l0dWRlIjoiLTcxLjcyNDMwMTIwMDAiLCJwcm92aW5jZV9jb2RlIjoiUUMiLCJkZXRhaWxfcHJpeCI6IiIsImRldGFpbF9wcml4X2FuIjoiIiwiZGV0YWlsX3ByaXhfdXNlZCI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZF9hbiI6bnVsbCwib2VtRGVhbGVyQ29kZSI6Ijc3NTYiLCJwcmljZV9kaXNjbGFpbWVyX3ByZWZlcmVuY2UiOiIwIiwicHJpY2VfZGlzY2xhaW1lcl9wcmVmZXJlbmNlX3VzZWQiOiIwIiwiZ21CQUMiOiIiLCJwbGFjZUlkIjoiQ2hJSndab08tcDEteDB3UjExUXk1dmN2aUhrIn0sImlzVk0iOmZhbHNlLCJmaWVsZHMiOnsiU0hPV1JPT01fSU1BR0VfU09VUkNFX1RZUEUiOiJjaHJvbWUiLCJORVdfSU5WX0lNQUdFX1NPVVJDRV9UWVBFIjoiY2hyb21lIiwiQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURV9TRUxFQ1QiOiJwcmltYXJ5IiwiQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURSI6ImZhbHNlIiwiVldfRFJfUFBfRU5BQkxFRCI6dHJ1ZX0sImkxOG4iOnsiV0VCX1NJVEVfR0VORVJBVE9SX1BBR0VfTkVXSU5WIjoiXC9uZXVmc1wvaW52ZW50YWlyZVwvcmVjaGVyY2hlLmh0bWwiLCJQQVlNRU5UUyI6IlBhaWVtZW50cyIsIkRFRkFVTFRfUEFZTUVOVF9DQVNIIjoiQ29tcHRhbnQiLCJMQUJFTF9CRUZPUkVfVEFYRVMiOiJBdmFudCB0YXhlcyIsIkxBQkVMX1NBVkVfQlVJTERfVElUTEUiOiJFbnJlZ2lzdHJlciB2b3RyZSBjb25maWd1cmF0aW9uISIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9UT09MVElQIjoiUmVzdGF1cmV6IHVuZSBjb25maWd1cmF0aW9uIHByXHUwMGU5Y1x1MDBlOWRlbW1lbnQgZW5yZWdpc3RyXHUwMGU5ZSBlbiBzYWlzaXNzYW50IHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VNQUlMX1BIT05FIjoiU2Fpc2lzc2V6IHZvdHJlIGFkcmVzc2UgZS1tYWlsIGV0XC9vdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lIHBvdXIgY2hhcmdlciB1bmUgY29uZmlndXJhdGlvbiBlbnJlZ2lzdHJcdTAwZTllLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FTUFJTF9QSE9ORV9FUlJPUiI6IlZldWlsbGV6IHNhaXNpciB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FUlJPUiI6IkxlcyBkb25uXHUwMGU5ZXMgZGUgY29uZmlndXJhdGlvbiBuZSBzb250IHBhcyBkaXNwb25pYmxlcyBwb3VyIGNldCBlbnJlZ2lzdHJlbWVudC4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfUkVESVJFQ1RJTkciOiJDb21waWxhdGlvbiBjaGFyZ1x1MDBlOWUhIFJlZGlyZWN0aW9uIGVuIGNvdXJzLi4uIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1RfRVJST1IiOiJBdWN1bmUgY29uZmlndXJhdGlvbiBuJiMzOTthIFx1MDBlOXRcdTAwZTkgdHJvdXZcdTAwZTllIHBvdXIgY2V0dGUgYWRyZXNzZSBlLW1haWxcL251bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0lOVkFMSURfVE9LRU4iOiJMZSBqZXRvbiBlc3QgaW52YWxpZGUgb3UgYSBleHBpclx1MDBlOS4gVmV1aWxsZXogclx1MDBlOWVzc2F5ZXIuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1QiOiJDaGFyZ2VtZW50IGRlcyBjb25maWd1cmF0aW9ucyBzYXV2ZWdhcmRcdTAwZTlzLi4uIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1RfU0VMRUNUIjoiU1x1MDBlOWxlY3Rpb25uZXogdW5lIGNvbmZpZ3VyYXRpb24gXHUwMGUwIGNoYXJnZXI6IiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1RfRkFJTEVEIjoiSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxlcyBjb25maWd1cmF0aW9ucy4iLCJXRUJTSVRFX09FTURSX01GQV9TRU5EX0NPREUiOiJFbnZvaSBkdSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9NRkFfU1RBUlRfRVJST1IiOiJJbXBvc3NpYmxlIGRlIGRcdTAwZTltYXJyZXIgbGEgdlx1MDBlOXJpZmljYXRpb24uIiwiV0VCU0lURV9PRU1EUl9NRkFfRU5URVJfQ09ERSI6IlNhaXNpc3NleiBsZSBjb2RlIFx1MDBlMCA2IGNoaWZmcmVzIGVudm95XHUwMGU5IFx1MDBlMCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSBcdTAwZTAgdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX01GQV9FTlRFUl9DT0RFX0VSUk9SIjoiVmV1aWxsZXogc2Fpc2lyIGxlIGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24uIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZZX0NPREUiOiJWXHUwMGU5cmlmaWNhdGlvbiBkdSBjb2RlLi4uIiwiV0VCU0lURV9PRU1EUl9NRkFfRVhQSVJFRF9DT0RFIjoiQ29kZSBpbnZhbGlkZSBvdSBleHBpclx1MDBlOS4gVmV1aWxsZXogclx1MDBlOWVzc2F5ZXIuIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZZX0ZBSUxFRCI6IkxhIHZcdTAwZTlyaWZpY2F0aW9uIGEgXHUwMGU5Y2hvdVx1MDBlOS4gVmV1aWxsZXogclx1MDBlOWVzc2F5ZXIuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFUSU5HIjoiTWlzZSBcdTAwZTAgam91ciBkZSBsYSBjb25maWd1YXRpb24uLi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRFX1NVQ0NFU1MiOiJMYSBjb25maWd1YXRpb24gYSBcdTAwZTl0XHUwMGU5IG1pc2UgXHUwMGUwIGpvdXIgYXZlYyBzdWNjXHUwMGU4cy4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRFX0VSUk9SIjoiSW1wb3NzaWJsZSBkZSBtZXR0cmUgXHUwMGUwIGpvdXIgbGEgY29uZmlndWF0aW9uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZJTkciOiJTYXV2ZWdhcmRlIGRlIGxhIGNvbmZpZ3VhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZFX1NVQ0NFU1MiOiJDb25maWd1YXRpb24gZW5yZWdpc3RyXHUwMGU5ICEgVm91cyBwb3VycmV6IGxlIGNoYXJnZXIgdWx0XHUwMGU5cmlldXJlbWVudCBlbiB1dGlsaXNhbnQgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWRV9FUlJPUiI6IkltcG9zc2libGUgZCYjMzk7ZW5yZWdpc3RyZXIgbGEgY29uZmlndXJhdGlvbi4iLCJXRUJTSVRFX09FTURSX0JUTl9MT0FEIjoiQ2hhcmdlciIsIldFQlNJVEVfT0VNRFJfQlROX1ZFUklGWSI6IlZcdTAwZTlyaWZpZXIiLCJXRUJTSVRFX09FTURSX0JUTl9SRVNFTkRfQ09ERSI6IlJlbnZveWVyIGxlIGNvZGUiLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRklDQVRJT05fQ09ERSI6IkxlIGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfTU9EQUxfVElUTEUiOiJDaGFyZ2VyIHVuZSBjb25maWd1cmF0aW9uIGVucmVnaXN0clx1MDBlOWUiLCJFRkZFQ1RJVkVfUkFURV9MT05HX0xBQkVMIjoieyRSQVRFfSB0YXV4IGVmZmVjdGlmIiwiRUZGRUNUSVZFX1JBVEVfTEFCRUwiOiJUYXV4IHskUkFURX0iLCJXRUJfU0lURV9QUklDRV9CUkVBS0RPV05fTFVYVVJZX1RBWF9MQUJFTCI6IlRheGUgZGUgbHV4ZSJ9LCJzaG93T2VtSW1hZ2VzIjpmYWxzZX0pOwoJCX07CgoJCWluaXRTdG9yZSgpOwoKCTwvc2NyaXB0PgoJCQkJCQk8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KCQkJCQoJCQk8L3N2Zz4KCQkJCQkJCgkJCTxoZWFkZXIgY2xhc3M9Im1haW5EaXYtd3JhcHBlciI+CgkJCQkKCQkJCTxkaXYgY2xhc3M9IndyYXBwZXIgTWFpbkJveExheWVyIiBpZD0ibWFpbkRpdiIgaGlkZGVuPSIxIj4KCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMCIgaWQ9Im11bHRpLWxhbmd1YWdlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJuZXdfdHJhbnNsYXRlZF90aXRsZXMiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRlJFTkNIIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIj4JCQkJPGRpdiBjbGFzcz0ibGFuZ3VhZ2VCYXIgZmxleC1ib3ggZmxleC1lbmQgYWxpZ24tY2VudGVyICIgaWQ9Imxhbmd1YWdlQ2hhbmdlckRpdiI+CgkJCQkJCTxkaXYgaWQ9InNvY2lhbF9tZWRpYV9pY29uc19kaXYiIGNsYXNzPSJmbGV4LWJveCAtLWZzNiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tLzIyODkwOTM4Mzg2NzMwNSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJzb2NpYWwtbGluayAtcHIwIiBhcmlhLWxhYmVsPSJGYWNlYm9vayBzJ291dnJlIGRhbnMgdW4gbm91dmVsIG9uZ2xldCIgdGl0bGU9IkZhY2Vib29rIiBkYXRhLXRvb2x0aXA9IkZhY2Vib29rIj4KICAgIDxzdmcgY2xhc3M9ImF1dGhvcml6ZWQtd2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDUxMiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZjMCAxMjMuNzggOTAuNjkgMjI2LjM4IDIwOS4yNSAyNDVWMzI3LjY5aC02M1YyNTZoNjN2LTU0LjY0YzAtNjIuMTUgMzctOTYuNDggOTMuNjctOTYuNDggMjcuMTQgMCA1NS41MiA0Ljg0IDU1LjUyIDQuODR2NjFoLTMxLjI4Yy0zMC44IDAtNDAuNDEgMTkuMTItNDAuNDEgMzguNzNWMjU2aDY4Ljc4bC0xMSA3MS42OWgtNTcuNzhWNTAxQzQxMy4zMSA0ODIuMzggNTA0IDM3OS43OCA1MDQgMjU2eiI+PC9wYXRoPjwvc3ZnPgogICAgPCEtLSA8c3BhbiBjbGFzcz0iZmFiIGZhLWZhY2Vib29rIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPiAtLT4KPC9hPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55LzEwNTU2OTg0OS8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ic29jaWFsLWxpbmsgLXByMCIgYXJpYS1sYWJlbD0iTGlua2VkSW4gcydvdXZyZSBkYW5zIHVuIG5vdXZlbCBvbmdsZXQiIHRpdGxlPSJMaW5rZWRJbiIgZGF0YS10b29sdGlwPSJMaW5rZWRJbiI+CiAgICA8c3ZnIGNsYXNzPSJhdXRob3JpemVkLXdoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdib3g9IjAgMCA0NDggNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNMTAwLjI4IDQ0OEg3LjRWMTQ4LjloOTIuODh6TTUzLjc5IDEwOC4xQzI0LjA5IDEwOC4xIDAgODMuNSAwIDUzLjhhNTMuNzkgNTMuNzkgMCAwIDEgMTA3LjU4IDBjMCAyOS43LTI0LjEgNTQuMy01My43OSA1NC4zek00NDcuOSA0NDhoLTkyLjY4VjMwMi40YzAtMzQuNy0uNy03OS4yLTQ4LjI5LTc5LjItNDguMjkgMC01NS42OSAzNy43LTU1LjY5IDc2LjdWNDQ4aC05Mi43OFYxNDguOWg4OS4wOHY0MC44aDEuM2MxMi40LTIzLjUgNDIuNjktNDguMyA4Ny44OC00OC4zIDk0IDAgMTExLjI4IDYxLjkgMTExLjI4IDE0Mi4zVjQ0OHoiPjwvcGF0aD48L3N2Zz4KICAgIDwhLS0gPHNwYW4gY2xhc3M9ImZhYiBmYS1saW5rZWRpbi1pbiIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gLS0+CjwvYT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDWVhxOEFlMHhqUENOeFJPR1BCVEhxQSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJzb2NpYWwtbGluayAtcHIwIiBhcmlhLWxhYmVsPSJZb3V0dWJlIHMnb3V2cmUgZGFucyB1biBub3V2ZWwgb25nbGV0IiB0aXRsZT0iWW91dHViZSIgZGF0YS10b29sdGlwPSJZb3V0dWJlIj4KICAgIDxzdmcgY2xhc3M9ImF1dGhvcml6ZWQtd2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDU3NiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6Ij48L3BhdGg+PC9zdmc+CiAgICA8IS0tIDxzcGFuIGNsYXNzPSJmYWIgZmEteW91dHViZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gLS0+CjwvYT48YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2hvbmRhZG9ubmFjb25hLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJzb2NpYWwtbGluayAtcHIwIiBhcmlhLWxhYmVsPSJJbnN0YWdyYW0gcydvdXZyZSBkYW5zIHVuIG5vdXZlbCBvbmdsZXQiIHRpdGxlPSJJbnN0YWdyYW0iIGRhdGEtdG9vbHRpcD0iSW5zdGFncmFtIj4KICAgIDxzdmcgY2xhc3M9ImF1dGhvcml6ZWQtd2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDQ0OCA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0yMjQuMSAxNDFjLTYzLjYgMC0xMTQuOSA1MS4zLTExNC45IDExNC45czUxLjMgMTE0LjkgMTE0LjkgMTE0LjlTMzM5IDMxOS41IDMzOSAyNTUuOSAyODcuNyAxNDEgMjI0LjEgMTQxem0wIDE4OS42Yy00MS4xIDAtNzQuNy0zMy41LTc0LjctNzQuN3MzMy41LTc0LjcgNzQuNy03NC43IDc0LjcgMzMuNSA3NC43IDc0LjctMzMuNiA3NC43LTc0LjcgNzQuN3ptMTQ2LjQtMTk0LjNjMCAxNC45LTEyIDI2LjgtMjYuOCAyNi44LTE0LjkgMC0yNi44LTEyLTI2LjgtMjYuOHMxMi0yNi44IDI2LjgtMjYuOCAyNi44IDEyIDI2LjggMjYuOHptNzYuMSAyNy4yYy0xLjctMzUuOS05LjktNjcuNy0zNi4yLTkzLjktMjYuMi0yNi4yLTU4LTM0LjQtOTMuOS0zNi4yLTM3LTIuMS0xNDcuOS0yLjEtMTg0LjkgMC0zNS44IDEuNy02Ny42IDkuOS05My45IDM2LjFzLTM0LjQgNTgtMzYuMiA5My45Yy0yLjEgMzctMi4xIDE0Ny45IDAgMTg0LjkgMS43IDM1LjkgOS45IDY3LjcgMzYuMiA5My45czU4IDM0LjQgOTMuOSAzNi4yYzM3IDIuMSAxNDcuOSAyLjEgMTg0LjkgMCAzNS45LTEuNyA2Ny43LTkuOSA5My45LTM2LjIgMjYuMi0yNi4yIDM0LjQtNTggMzYuMi05My45IDIuMS0zNyAyLjEtMTQ3LjggMC0xODQuOHpNMzk4LjggMzg4Yy03LjggMTkuNi0yMi45IDM0LjctNDIuNiA0Mi42LTI5LjUgMTEuNy05OS41IDktMTMyLjEgOXMtMTAyLjcgMi42LTEzMi4xLTljLTE5LjYtNy44LTM0LjctMjIuOS00Mi42LTQyLjYtMTEuNy0yOS41LTktOTkuNS05LTEzMi4xcy0yLjYtMTAyLjcgOS0xMzIuMWM3LjgtMTkuNiAyMi45LTM0LjcgNDIuNi00Mi42IDI5LjUtMTEuNyA5OS41LTkgMTMyLjEtOXMxMDIuNy0yLjYgMTMyLjEgOWMxOS42IDcuOCAzNC43IDIyLjkgNDIuNiA0Mi42IDExLjcgMjkuNSA5IDk5LjUgOSAxMzIuMXMyLjcgMTAyLjctOSAxMzIuMXoiPjwvcGF0aD48L3N2Zz4KICAgIDwhLS0gPHNwYW4gY2xhc3M9ImZhYiBmYS1pbnN0YWdyYW0iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+IC0tPgo8L2E+PC9kaXY+Cgk8ZGl2IGlkPSJnUmF0aW5nIiBjbGFzcz0iZ1JhdGluZy1pY29uIiBvbmNsaWNrPSJ3aW5kb3cub3BlbignaHR0cHM6Ly9zZWFyY2guZ29vZ2xlLmNvbS9sb2NhbC93cml0ZXJldmlldz9wbGFjZWlkPUNoSUp3Wm9PLXAxLXgwd1IxMVF5NXZjdmlIaycpIiBkYXRhLXRvb2x0aXA9IlNjb3JlIG1veWVuIGRlIDQuNiDDqXRvaWxlcyBzdXIgbGVzIHJldnVlcyBHb29nbGUhIiBzdHlsZT0iZGlzcGxheTogOyI+Cgk8c3BhbiBjbGFzcz0iZmFiIGZhLWdvb2dsZSI+PC9zcGFuPgoJPHNwYW4gY2xhc3M9InJhdGluZyAtYm9sZCAtZnMxNyI+NC42PC9zcGFuPgoJPHNwYW4gY2xhc3M9ImZhcyBmYS1zdGFyIj48L3NwYW4+CjwvZGl2PgoJPGRpdiBjbGFzcz0ic2VydmljZS1oZWFkZXItZm9ybSBmbGV4LWJveCBhbGlnbi1jZW50ZXIiIGlkPSJzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIj4KCTxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9yZW5kZXotdm91cy1hdS1zZXJ2aWNlLmh0bWwiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiPgoJCTxzcGFuIGNsYXNzPSJmYSBmYS13cmVuY2giPjwvc3Bhbj4KCQk8c3Bhbj5SZW5kZXotdm91cyBhdSBzZXJ2aWNlPC9zcGFuPgoJPC9hPgoJCjwvZGl2PgoJCgkKCTxkaXYgY2xhc3M9ImQyYy1mYXZzLW5hdi13cmFwcGVyIj48c3BhbiBjbGFzcz0iZmEtbGF5ZXJzIj48aSBjbGFzcz0iZmEgZmEtaGVhcnQiPjwvaT48aSBjbGFzcz0iZmFyIGZhLWhlYXJ0Ij48c3BhbiBjbGFzcz0iZmF2LW5hdi1jb3VudCI+PC9zcGFuPjwvaT48L3NwYW4+PGRpdiBjbGFzcz0iZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIiPjxkaXYgY2xhc3M9ImQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCI+PC9kaXY+PC9kaXY+PC9kaXY+CgkJCQk8L2Rpdj4KCQkJPCEtLSBIT01FUEFHRV9FTkcgPT4gL2VuZy8gfHwgSE9NRVBBR0UgRlJFID0+IC8gLS0+CgkJCQoJCQk8ZGl2IGNsYXNzPSJ2LWNhcmQgdG9wX2JnIGhlYWRlci1pbmZvIiBzdHlsZT0iYmFja2dyb3VuZDpub25lOyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiI+Cgk8ZGl2IGNsYXNzPSJoZWFkZXItaW1hZ2Utd3JhcHBlciI+CgkJPGEgaHJlZj0iP3BhdGg9LyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZTsiIGFyaWEtbGFiZWw9IkhvbmRhIERvbm5hY29uYSBMb2dvIiB0aXRsZT0iSG9uZGEgRG9ubmFjb25hIj4KCQkJPGltZyBhbHQ9IkhvbmRhIERvbm5hY29uYSIgY2xhc3M9Im9wdGFub24tY2F0ZWdvcnktQzAwMDEgbGl2ZWxvYWQgcGhvdG8gaW1hZ2UtcGFkZGluZyBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLW90LWlnbm9yZSBkYXRhLXNjb2RlcmVmPSI2NDgxNTMtUCIgaWQ9ImRlYWxlcl9sb2dvIiBzcmM9Imh0dHBzOi8vaG9uZGFkb25uYWNvbmEuY29tLy9pbWFnZXMvTG9nby9Ib25kYS1Eb25uYWNvbmEtTG9nby53ZWJwIiBzdHlsZT0id2lkdGg6Mzg5cHg7aGVpZ2h0OjExMHB4OyIgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCTwvYT4KCTwvZGl2Pgo8L2Rpdj4KCQkJCgkJCTxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uIGxvZ28tbWlkZGxlIiBzdHlsZT0id2lkdGg6MzUwcHg7Ij48YSBjbGFzcz0ib3RoZXJMb2dvTWVudUNvbnRhaW5lciIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKCk7Ij48aW1nIGNsYXNzPSJvdGhlckxvZ29NZW51SW1hZ2UgbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaG9uZGFkb25uYWNvbmEuY29tLy9pbWFnZXMvT3RoZXJfTG9nby9ncm91cGVmb3JjZS1oZWFkZXItb3BlbnNhdHVyZGF5cy1GUi5wbmciIGFsdD0iZ3JvdXBlZm9yY2UgaGVhZGVyIG9wZW5zYXR1cmRheXMgIGYgciIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24gYWRkcmVzcy1taWRkbGUiPgoJPGRpdj4KCQkKCQk8ZGl2IGNsYXNzPSJwaG9uZSBwaG9uZV9yaWdodCAiIHN0eWxlPSJjb2xvcjogI2ZmZmZmZjsiPgoJPGRpdiBjbGFzcz0iZm4gb3JnIiBzdHlsZT0iZm9udC1zaXplOiAxOHB4O2NvbG9yOiAjZmZmZmZmOyIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMyI+SG9uZGEgRG9ubmFjb25hPC9kaXY+CgkJCQkJPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNnB4OyIgY2xhc3M9ImFkciI+CgkJCQkJPCEtLSBPTzo6OTFjNDlmODRmNjlmY2ZiYjgzZjZlMjc5NTBkNmFkODggLS0+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNhL21hcHMvZGlyLz9hcGk9MSZhbXA7ZGVzdGluYXRpb249SG9uZGElMkJEb25uYWNvbmElMkMxNTkrK3J1ZStDb21tZXJjaWFsZSUyQ0Rvbm5hY29uYSUyQ1FDJTJDRzNNKzFXMiZhbXA7ZGVzdGluYXRpb25fcGxhY2VfaWQ9Q2hJSndab08tcDEteDB3UjExUXk1dmN2aUhrJmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4IiB0YXJnZXQ9Il9ibGFuayIgYXJpYS1sYWJlbD0iMTU5LCBydWUgQ29tbWVyY2lhbGUsIERvbm5hY29uYSwgUUMsIEczTSAxVzIuIEdvb2dsZSBNYXAgcydvdXZyZSBkYW5zIHVuIG5vdXZlbCBvbmdsZXQiIHRpdGxlPSJMb2NhdGlvbiA6IDE1OSwgcnVlIENvbW1lcmNpYWxlLCBEb25uYWNvbmEsIFFDLCBHM00gMVcyIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZmZmZjsgLS10eHQtY29sb3I6I2ZmZmZmZjsiPgoJCQkJCTxzcGFuIGNsYXNzPSJkZWFsZXJNYXBMaW5rIiBpdGVtcHJvcD0iYWRkcmVzcyIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwczovL3NjaGVtYS5vcmcvUG9zdGFsQWRkcmVzcyI+CgkJCQkJCTxzdmcgY2xhc3M9IiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+PCEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS0+PHBhdGggZD0iTTQ0NC41MiAzLjUyTDI4Ljc0IDE5NS40MmMtNDcuOTcgMjIuMzktMzEuOTggOTIuNzUgMTkuMTkgOTIuNzVoMTc1LjkxdjE3NS45MWMwIDUxLjE3IDcwLjM2IDY3LjE3IDkyLjc1IDE5LjE5bDE5MS45LTQxNS43OGMxNS45OS0zOC4zOS0yNS41OS03OS45Ny02My45Ny02My45N3oiPjwvcGF0aD48L3N2Zz4KCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzdHJlZXQtYWRkcmVzcyIgaXRlbXByb3A9InN0cmVldEFkZHJlc3MiPjE1OSwgcnVlIENvbW1lcmNpYWxlPC9zcGFuPjxzcGFuIGNsYXNzPSJhZGRyZXNzLXNlcCI+LCA8L3NwYW4+CiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsb2NhbGl0eSIgc3R5bGU9Im1hcmdpbi1sZWZ0OjVweCIgaXRlbXByb3A9ImFkZHJlc3NMb2NhbGl0eSI+RG9ubmFjb25hPC9zcGFuPjxzcGFuIGNsYXNzPSJhZGRyZXNzLXNlcCI+LCA8L3NwYW4+CiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWdpb24iIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHgiIGl0ZW1wcm9wPSJhZGRyZXNzUmVnaW9uIj5RQzwvc3Bhbj48c3BhbiBjbGFzcz0iYWRkcmVzcy1zZXAiPiw8L3NwYW4+CiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3N0YWwtY29kZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OjVweCIgaXRlbXByb3A9InBvc3RhbENvZGUiPkczTSAxVzI8L3NwYW4+PHNwYW4gY2xhc3M9ImFkZHJlc3Mtc2VwIj48L3NwYW4+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCTwvZGl2PgoJPGRpdiBoaWRkZW4+CgkJPG1ldGEgaXRlbXByb3A9ImxhdGl0dWRlIiBjb250ZW50PSI0Ni42ODUzNjQ5MDAwIj4KCQk8bWV0YSBpdGVtcHJvcD0ibG9uZ2l0dWRlIiBjb250ZW50PSItNzEuNzI0MzAxMjAwMCI+CiAgICAgPC9kaXY+CgkKCSA8ZGl2IGNsYXNzPSJwaG9uZV90ZXh0IGljb24tdGV4dCIgc3R5bGU9ImNvbG9yOiAjZmZmZmZmO2ZvbnQtc2l6ZTogMTZweDsiPgoJCQkJCQoJCQk8ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayIgY2xhc3M9ImZsZXgtYm94Ij4KCQkJPHNwYW4gc3R5bGU9IiIgY2xhc3M9ImZhIGZhLXBob25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPiA8c3BhbiBjbGFzcz0icGhvbmUtdHlwZS1sYWJlbCI+PC9zcGFuPiA8c3BhbiBpZD0iaGVhZGVyLXBob25lLXRyaWdnZXIiIGl0ZW1wcm9wPSJ0ZWxlcGhvbmUiIGNsYXNzPSJleHRlbmRlZFBob25lVHJpZ2dlciAiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij48YSBocmVmPSI\/cGF0aD10ZWw6NDE4JTIwMjg1LTMyMjAiIGNsYXNzPSJwaG9uZS1saW5rIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj40MTggMjg1LTMyMjA8L2E+IDxzcGFuIHN0eWxlPSJwb2ludGVyLWV2ZW50czpub25lOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyIgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4KCQkJPGRpdiBjbGFzcz0iZXh0ZW5kZWRQaG9uZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCTxkaXY+PGxhYmVsPkfDqW7DqXJhbDogPHNwYW4gY2xhc3M9InRlbCAtbWwxMCI+PGEgaHJlZj0iP3BhdGg9dGVsOjQxOCUyMDI4NS0zMjIwIiBjbGFzcz0icGhvbmUtbGluayIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+NDE4IDI4NS0zMjIwPC9hPiA8YnI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+Cgk8ZGl2IGNsYXNzPSJwaG9uZU5vdGUiPjwvZGl2PgoJPCEtLSBPTzo6ZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTUgLS0+CjwvZGl2PgoJCQk8L2Rpdj4KCQkKCQkKCQkKCTwvZGl2PgoJCiAgCjwvZGl2PgoJCQoJPC9kaXY+CjwvZGl2PgoJCQkKCQkJCgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJza2VsZXRvbiBza2VsZXRvbi1kZXNrdG9wIHNrZWxldG9uLWNvbmQtMiBoZWFkZXItbWVudSIgc3R5bGU9IndpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSk7bWluLWhlaWdodDo0OHB4OyI+CgkJCQk8ZGl2IGNsYXNzPSJ1cF9tZW51ICBGUkVOQ0ggaW1nX21lbnUgbWVudTUgd2l0aC1ib3JkZXIgZnVsbF93aWR0aCIgZGF0YS1zY29kZXJlZj0iODk4OTQxNS1BIj4KCQkJCQk8ZGl2IGNsYXNzPSJTMTAwUGVyY2VudFdpZHRoIj4KCQkJCQkJPGRpdiBpZD0iZnVsbFdpZHRoTWVudUJhciI+PC9kaXY+CgkJCQkJCTx1bCBjbGFzcz0ibmF2ICI+CgkJCQkJCQk8ZGl2IGlkPSJtZW51LXNwZWNzLXRlbXBsYXRlIiBjbGFzcz0ibWVudS10ZWNoLXNwZWNzIj4gPGRpdiBjbGFzcz0ibWVudS1zcGVjcy10aXRsZSI+PHNwYW4gY2xhc3M9ImFycm93IGFycm93LWxhcmdlIGFycm93LXJpZ2h0IG1yLTE1Ij48L3NwYW4+PC9kaXY+IDx1bCBjbGFzcz0ibWVudS1zcGVjcy1saXN0Ij4gPGxpPiA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0ibWVudS1zcGVjLWxpbmsiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5TcMOpYy4gdGVjaG5pcXVlcyA8L2E+IDwvbGk+IDxsaT4gPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9Im1lbnUtc3BlYy1ibnAiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5Db25maWd1cmV6IHZvdHJlICRNT0RFTCA8L2E+IDwvbGk+IDxsaSBjbGFzcz0iZGl2aWRlciI+IDxsaT4gPHN0cm9uZyBjbGFzcz0ibWVudS1wcmljZS10ZXh0IiBkYXRhLXByaWNlLXRlbXBsYXRlPSIjI01FTlVNT0RFTCMjICMjTUVOVVRSSU0jIyAjI01FTlVZRUFSIyMgw6AgcGFydGlyIGRlIj48L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtcHJpY2UiPjwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPlB1aXNzYW5jZTwvc3Ryb25nPiA8YnI+PHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1ocCI+PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+Q3lsaW5kcsOpZTwvc3Ryb25nPiA8YnI+PHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1wb3dlciI+PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+Q29uc29tbWF0aW9uIGQnZXNzZW5jZTwvc3Ryb25nPiA8YnI+VmlsbGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1jaXR5Ij48L3NwYW4+IDxicj5BdXRvcm91dGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1oaWdod2F5Ij48L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5Nb3RyaWNpdMOpPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWRyaXZldHJhaW4iPjwvc3Bhbj4gPC9saT4gPC91bD4KPC9kaXY+PGxpIGRhdGEtaWQ9IkNPTlRBQ1QiIGlkPSJNYWluTWVudV9DT05UQUNUIiBjbGFzcz0idG9wIGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L2NvbnRhY3Rlem5vdXMuaHRtbCI+Tk9VUyBKT0lORFJFPC9hPjx1bCBjbGFzcz0ic3ViIGNvbnRhY3R1cy1mb3JtIj4gPGxpIGRhdGEtaWQ9IjZhNTJlMDUzNDcyZWMiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MmVjIiBjbGFzcz0iY29udGFjdC1jb250YWluZXIiPiA8ZGl2PiA8aDUgY2xhc3M9InRpdGxlIj5Ob3RyZSBlbXBsYWNlbWVudDwvaDU+IDxhIGhyZWY9Ij9wYXRoPSNmb290ZXJXcmFwcGVyIiBpZD0ibWVudS1tYXAtbGluayIgdGl0bGU9Ikdvb2dsZSBNYXBzIiBhcmlhLWxhYmVsPSJHb29nbGUgTWFwcyIgZGF0YS1wbGFjZS1pZD0icGxhY2VfaWQ6Q2hJSndab08tcDEteDB3UjExUXk1dmN2aUhrIiBkYXRhLXpvb209IjE0IiBkYXRhLWxhbmd1YWdlPSJmci1DQSI+PCEtLSAtLT48L2E+IDwvZGl2PiA8ZGl2IGNsYXNzPSJleHByZXNzLWZvcm0iPiA8Zm9ybSBpZD0icXVpY2tFbWFpbEZvcm0iIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXRoaW4gY29sLW1kLTMgbWVudSBoaWRlT25QcmVMb2FkIiBhY3Rpb249ImphdmFzY3JpcHQ6dm9pZCgwKTsiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbGVjdFJlcXVpcmVkIiB2YWx1ZT0iMSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzUGhvbmVSZXF1aXJlZCIgdmFsdWU9IjEiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGV4dFNhdmVNYWlsSUQiIG5hbWU9InRleHRTYXZlTWFpbElEIiB2YWx1ZT0ibWVudUNvbnRhY3RVcyI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0ZXh0UXVpY2tFbWFpbEluZm8iIG5hbWU9InRleHRRdWlja0VtYWlsSW5mbyIgdmFsdWU9IkluZm9ybWF0aW9uIHN1ciB7JExJTktNQUtFfSB7JExJTktNT0RFTH0geyRMSU5LWUVBUn0iPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnRyaW0iIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnZpbiIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FycHJpY2UiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcmlkIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJtYWtlIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJtb2RlbCIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FyeWVhciIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzc3RvY2tudW1iZXIiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsIiB2YWx1ZT0iMTk3OWQ1ZGIxNmYxMzJhYjZkZGRhYTAxMjNkNmE4MTR8MzYwMzY5MDI2MiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxORVciIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGIiB2YWx1ZT0iN2ViNzdkNzYzNzQ1YzNiYWYzYjBiNGI5NTFjYWM1MGN8MzYwMzY5MDI2MiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxBREZORVciIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGU0VSVklDRSIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzSW5EZW1vIiB2YWx1ZT0ieyRFWFBSRVNTSU5ERU1PfSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwcmludEZsYWciIHZhbHVlPSIwIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxfbmV3IiB2YWx1ZT0iMTk3OWQ1ZGIxNmYxMzJhYjZkZGRhYTAxMjNkNmE4MTR8MzYwMzY5MDI2MiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxfdXNlZCIgdmFsdWU9IjE5NzlkNWRiMTZmMTMyYWI2ZGRkYWEwMTIzZDZhODE0fDM2MDM2OTAyNjIiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3NlcnZpY2UiIHZhbHVlPSIyMGFjOWVlYzI1ZjBkZjYxZWZlNTBmZmM2ZjI3OTU5MnwzNjAzNjkwMjYyIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9wYXJ0cyIgdmFsdWU9ImFmMmRjOTU2ZmFhMDgzMDQ5Y2UzYWY3YTk5NjdkYzMxfDM2MDM2OTAyNjIiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX2ZpbmFuY2UiIHZhbHVlPSI3YzIxYWExNTc1MTIzMmFlNDI3Njk4MDMzZjZkZWEyOHwzNjAzNjkwMjYyIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl9uZXciIHZhbHVlPSI3ZWI3N2Q3NjM3NDVjM2JhZjNiMGI0Yjk1MWNhYzUwY3wzNjAzNjkwMjYyIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl91c2VkIiB2YWx1ZT0iN2ViNzdkNzYzNzQ1YzNiYWYzYjBiNGI5NTFjYWM1MGN8MzYwMzY5MDI2MiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxBZGZfZmluYW5jZSIgdmFsdWU9IjdlYjc3ZDc2Mzc0NWMzYmFmM2IwYjRiOTUxY2FjNTBjfDM2MDM2OTAyNjIiPiA8IS0tIFBMQUNFIDEtQSAtLT4gPGRpdj4gPGRpdiBjbGFzcz0iX2JveDI4ODBfbWlkIC1wbDggLXByOCI+IDxkaXYgY2xhc3M9IndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGUiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiPjQxOCAyODUtMzIyMDwvZGl2PiA8ZGl2IGNsYXNzPSJSZWNoZXJjaGUyMiAiPkRlbWFuZGUgRXhwcmVzczwvZGl2PiA8c3RhY2stbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxOYW1lIiBjbGFzcz0ic3Itb25seSI+Tm9tPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSJxdWlja0VtYWlsTmFtZSIgbmFtZT0ibmFtZSIgcGxhY2Vob2xkZXI9Ik5vbSI+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsVGVsIiBjbGFzcz0ic3Itb25seSI+VMOpbMOpcGhvbmU8L2xhYmVsPiA8aW5wdXQgY2xhc3M9InBob25lIHJlcXVpcmVkIiB0eXBlPSJ0ZWwiIGlkPSJxdWlja0VtYWlsVGVsIiBuYW1lPSJ0ZWwiIHBsYWNlaG9sZGVyPSJUw6lsw6lwaG9uZSI+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsQWRkciIgY2xhc3M9InNyLW9ubHkiPkNvdXJyaWVsPC9sYWJlbD4gPGlucHV0IHR5cGU9ImVtYWlsIiBpZD0icXVpY2tFbWFpbEFkZHIiIG5hbWU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iQ291cnJpZWwiPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbERlcGFydG1lbnQiIGNsYXNzPSJzci1vbmx5Ij5Tw6lsZWN0aW9ubmVyPC9sYWJlbD4gPHNlbGVjdCBpZD0icXVpY2tFbWFpbERlcGFydG1lbnQiPjxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQ+U8OpbGVjdGlvbm5lcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im5ldyI+VmVudGVzIC0gTmV1Zjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZWQiPlZlbnRlcyAtIE9jY2FzaW9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VydmljZSI+U2VydmljZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbmFuY2UiPkZpbmFuY2VtZW50PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icGFydHMiPlBpw6hjZXMgJmFtcDsgQWNjZXNzb2lyZXM8L29wdGlvbj48L3NlbGVjdD4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxNc2ciIGNsYXNzPSJzci1vbmx5Ij5NZXNzYWdlPC9sYWJlbD4gPHRleHRhcmVhIGlkPSJxdWlja0VtYWlsTXNnIiByb3dzPSIzIiBwbGFjZWhvbGRlcj0iTWVzc2FnZSI+PC90ZXh0YXJlYT4gPC9ib3gtbGM+IDwvc3RhY2stbGM+IDxzdGFjay1sYz4gPGJveC1sYz4gPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIGlkPSJNaXNzaW5nVmFsaWRhdGlvbk1zZyIgY2xhc3M9ImVycm9yTXNnIj4gPHA+Q2VydGFpbnMgY2hhbXBzIG9ibGlnYXRvaXJlcyBuJ29udCBwYXMgw6l0w6kgcmVtcGxpczwvcD4gPC9kaXY+IDwvYm94LWxjPiA8Ym94LWxjPiA8ZGl2IGNsYXNzPSJyZWNhcHRjaGEtZGlzY2xhaW1lciI+Q2Ugc2l0ZSBlc3QgcHJvdMOpZ8OpIHBhciByZUNBUFRDSEEuPC9kaXY+IDxidXR0b24gY2xhc3M9InNlbmRRdWlja0VtYWlsIC1yaWdodCBidG4tZGVmYXVsdCAiPkVudm95ZXI8L2J1dHRvbj4gPC9ib3gtbGM+IDwvc3RhY2stbGM+IDwvZGl2Pgo8L2Rpdj4gPGRpdiBpZD0ibWVudUNvbnRhY3RVc0RlZiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+IDxkaXYgaWQ9ImVtYWlsU3ViamVjdERlZl9tZW51Q29udGFjdFVzIiBzdHlsZT0iZGlzcGxheTpub25lIj5MZWFkIDogRGVtYW5kZSBkZSBjb250YWN0PC9kaXY+IDxkaXYgaWQ9ImVtYWlsQm9keURlZl9tZW51Q29udGFjdFVzIiBzdHlsZT0iZGlzcGxheTpub25lIj5Cb25qb3VyLDxicj48YnI+VW4gY2xpZW50IHBvdGVudGllbCBheWFudCB2aXNpdMOpIHZvdHJlIHNpdGUgd2ViLCBhIHJlbXBsaSBsZSBmb3JtdWxhaXJlIGRlIGNvbnRhY3QgOjxicj48YnI+PHU+UmVuc2VpZ25lbWVudHMgc3VyIGxlIHZpc2l0ZXVyPC91PiA6PGJyPk5vbSA6IDxzdHJvbmc+eyROQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbCA6IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9bWFpbHRvOiU3QiUyNEVNQUlMJTdEIj57JEVNQUlMfTwvYT48L3N0cm9uZz4geyRTUEFNTUVSX1dBUk5JTkd9PGJyPlTDqWzDqXBob25lIDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD10ZWw6JTdCJTI0RU1BSUxQSE9ORSU3RCI+eyRFTUFJTFBIT05FfTwvYT48L3N0cm9uZz4geyRQSE9ORV9WQUxJREFUSU9OX0FUVEVNUFRTfTxicj5WaWxsZSA6IDxzdHJvbmc+eyRFTUFJTENJVFl9PC9zdHJvbmc+PGJyPjxicj5EZXJuaWVyIHbDqWhpY3VsZSB2dWU6IDxzdHJvbmc+eyRMQVNUVkVISUNMRVZJRVdFRH08L3N0cm9uZz48YnI+RGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqTogPHN0cm9uZz57JEVNQUlMQlVJTERBTkRQUklDRX08L3N0cm9uZz48YnI+PGJyPkTDqXBhcnRlbWVudDogPHN0cm9uZz57JERFUEFSVE1FTlQyfTwvc3Ryb25nPjxicj48YnI+PHU+TWVzc2FnZSBkdSB2aXNpdGV1cjwvdT4gOjxicj48c3Ryb25nPnskTUVTU0FHRX08L3N0cm9uZz48YnI+PGJyPjxkaXYgc3R5bGU9IiMjU0VPQkxPQ0tESVNQTEFZIyMiPlNvdXJjZSBNw6lkaWE6IDxzdHJvbmc+eyRVVE1ERVRBSUxTfTwvc3Ryb25nPjxicj5OYXZpZ2F0ZXVyOiA8c3Ryb25nPnskVVNFUkFHRU5UfSAtIDwvc3Ryb25nPjxicj5IaXN0b3JpcXVlIGRlIG5hdmlnYXRpb246IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9JTdCJTI0VVVMSU5LJTdEIiByZWw9Im5vZm9sbG93IHVnYyBzcG9uc29yZWQgbm9pbmRleCIgc3R5bGU9ImNvbG9yOmJsYWNrOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij5DbGlxdWV6IGljaTwvYT48L3N0cm9uZz48YnI+PC9kaXY+Q29uc2VudGVtZW50OsKgPHN0cm9uZz57JENPTlNFTlRfREVUQUlMU308L3N0cm9uZz57JFBVUkNIQVNFX0lOVEVOVH08L2Rpdj4gPC9kaXY+IDwvZm9ybT4gPC9kaXY+IDxkaXYgY2xhc3M9ImFkZHJlc3MiPiA8ZGl2IGNsYXNzPSJtZW51LWFkZHJlc3MiPiA8aDUgY2xhc3M9InRpdGxlIj5Db29yZG9ubsOpZXM8L2g1PiA8ZGl2IGNsYXNzPSJtZW51LWFkZHJlc3MtZGVzYyI+IDxzcGFuIGNsYXNzPSJmYSBmYS1tYXAtbWFya2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPiA8ZGl2IGNsYXNzPSJtZW51LWFkZHJlc3Mtd3JhcHBlciI+IEhvbmRhIERvbm5hY29uYSA8YnI+IDE1OSwgcnVlIENvbW1lcmNpYWxlIDxicj4gRG9ubmFjb25hLCBRQyA8YnI+IEczTSAxVzIgPGJyPiA8L2Rpdj4gPGRpdiBjbGFzcz0ibWVudS1waG9uZXMiPiA8c3RhY2stbGMgY2xhc3M9InBob25lLXdyYXBwZXIiPjxhIGhyZWY9Ij9wYXRoPXRlbDo0MTglMjAyODUtMzIyMCIgY2xhc3M9ImZsZXgtYmV0d2VlbiIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+IDxzcGFuIGNsYXNzPSJmaXJzdCI+PHNwYW4gY2xhc3M9ImZhIGZhLXBob25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPkfDqW7DqXJhbDo8L3NwYW4+IDxzcGFuPjQxOCAyODUtMzIyMDxicj48L3NwYW4+CjwvYT48L3N0YWNrLWxjPiA8L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9Ii1mczEwIC1yaWdodCIgc3R5bGU9Im1hcmdpbi1yaWdodDogMTBweDsiPjwvZGl2PiA8L2Rpdj4gPHVsIGNsYXNzPSJzbGltLXN1Ym1lbnUgLW10MTUiPjxsaSBkYXRhLWlkPSJDT05UQUNUVVMiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ0ZGRlIj48YSBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJDT05UQUNUVVMiPlBsdXMgZGUgZMOpdGFpbHM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkpPQk9GRkVSIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NGRmMSI+PGEgaHJlZj0iaHR0cHM6Ly9ncm91cGVmb3JjZS56b2hvcmVjcnVpdC5jYS9qb2JzL2hvbmRhLWNhcnJpZXJlcyIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9IkpPQk9GRkVSIj5DYXJyacOocmVzPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI5YWM0MjUwOC1lZDdmLTk3ODYtZTMwYS02IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NGRmNiI+PGEgaHJlZj0iP3BhdGg9L2VxdWlwZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI5YWM0MjUwOC1lZDdmLTk3ODYtZTMwYS02Ij5Ob3RyZSDDqXF1aXBlPC9hPjwvbGk+CjwvdWw+CjwvZGl2PiA8L2xpPjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJTRVJWSUNFIiBpZD0iTWFpbk1lbnVfU0VSVklDRSIgY2xhc3M9InRvcCBoYXNJdGVtcyBpc0JvbGQiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiIGhyZWY9Ij9wYXRoPS9zZXJ2aWNlcy1ob25kYS5odG1sIj5TRVJWSUNFPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9IkdBUkFHRSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyZDUiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9yZW5kZXotdm91cy1hdS1zZXJ2aWNlLmh0bWwiPlByZW5kcmUgcmVuZGV6LXZvdXMgYXUgc2VydmljZTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iUElFQ0VTIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzJkOCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLXBpZWNlcy1hY2Nlc3NvaXJlcy1hdXRvbW9iaWxlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJQSUVDRVMiPlBpw6hjZXMgJmFtcDsgQWNjZXNzb2lyZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlRJUkVTIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzJkYiI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLWRlLXBuZXVzLmh0bWwiPkNvbW1hbmRleiB2b3MgcG5ldXMgaWNpITwvYT48L2xpPgo8bGkgZGF0YS1pZD0iQk9EWSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyZGUiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL3JlbmRlei12b3VzLWF1LWNhcm9zc2VyaWUuaHRtbCI+UmVuZGV6LXZvdXMgY2Fycm9zc2VyaWU8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IkZJTkFOQ0UiIGlkPSJNYWluTWVudV9GSU5BTkNFIiBjbGFzcz0idG9wIGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2ZpbmFuY2VtZW50Lmh0bWwiPkZJTkFOQ0VNRU5UPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9Ijg2MWRiM2I5LTMzZDEtODA4Yy02NDRlLWIiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MmNlIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvZmluYW5jZW1lbnQuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iODYxZGIzYjktMzNkMS04MDhjLTY0NGUtYiI+RGVtYW5kZSBkZSBjcsOpZGl0PC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NTyIgaWQ9Ik1haW5NZW51X1BST01PIiBjbGFzcz0idG9wIGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCI+T0ZGUkVTPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9IlBST01PX05FVyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyYmIiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjbmV3Ij5PZmZyZXMgSG9uZGE8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlBST01PX1NFUlZJQ0UiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MmJlIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI3NlcnZpY2UiPlNlcnZpY2U8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlBST01PX01BTlVGQUNUVVJFUiIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyYzEiPjxhIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjbWFudWZhY3R1cmVyIj5JbmNpdGF0aWZzIEhvbmRhPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NT19PRU1SRUJBVEVTX0hPTkRBIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzJjNCIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI2hvbmRhcmViYXRlcyIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iUFJPTU9fT0VNUkVCQVRFU19IT05EQSI+TW9kw6hsZXMgSG9uZGEgZW4gcmFiYWlzPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEIiBpZD0iTWFpbk1lbnVfVVNFRCIgY2xhc3M9InRvcCBoYXNJdGVtcyBpc0JvbGQiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9yZWNoZXJjaGUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRCI+T0NDQVNJT048L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9TRUFSQ0hFUyIgaWQ9Ik1haW5NZW51X1VTRURfU0VBUkNIRVMiIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCBub3RDbGlja2FibGUiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiIGhyZWY9Ij9wYXRoPSMiPkxpZW5zIFJhcGlkZXM8L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9BTExJTlYiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjBlIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiPkludmVudGFpcmUgQ29tcGxldCAoNTI1KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DRVJUSUZJRURfQ0FSUyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyMTIiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9jZXJ0aWZpZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRF9DRVJUSUZJRURfQ0FSUyI+VsOpaGljdWxlcyBDZXJ0aWZpw6lzICgyNzEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0xPV0MiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjE2Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vZmFpYmxlLWNvbnNvbW1hdGlvbi5odG1sIj5GYWlibGUgY29uc29tbWF0aW9uICg0NCk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfTEVTUzMwSyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyMTkiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9tb2lucy1kZS0zMDAwMC5odG1sIj5Nb2lucyBkZSAzMCwwMDAkICgyNjYpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0xFU1MyMEsiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjFjIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vbW9pbnMtZGUtMjAwMDAuaHRtbCI+TW9pbnMgZGUgMjAsMDAwJCAoMTAwKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9MRVNTMTBLIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzIxZiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL21vaW5zLWRlLTEwMDAwLmh0bWwiPk1vaW5zIGRlIDEwLDAwMCQgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9DQVIiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjIyIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9BdXRvcy5odG1sIj5BdXRvcyAoMTAwKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfVkFOIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzIyZSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvQ2FtaW9ubmV0dGVzX0NvbW1lcmNpYWxlcy5odG1sIj5DYW1pb25uZXR0ZXMgQ29tbWVyY2lhbGVzICgxNik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FUX01JTklWQU4iIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjM0Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9NaW5pX2ZvdXJnb25uZXR0ZXMuaHRtbCI+TWluaS1mb3VyZ29ubmV0dGVzICgyNCk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FUX1NVViIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyMzgiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL1ZVUy5odG1sIj5WVVMgJmFtcDsgTXVsdGlzZWdtZW50cyAoMzIxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfVFJVQ0siIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjNiIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9DYW1pb25zLmh0bWwiPkNhbWlvbnMgKDU3KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfRUxFQ1RSSUMiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjNlIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9FbGVjdHJpcXVlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRURfQ0FUX0VMRUNUUklDIj7DiWxlY3RyaXF1ZXMgKDI4KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfSFlCUklEIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI0MSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvSHlicmlkZS5odG1sIj5IeWJyaWRlcyAoMjkpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9DT05WRVJUSUJMRSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyNDQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL0RlY2Fwb3RhYmxlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX0NBVF9DT05WRVJUSUJMRSI+RMOpY2Fwb3RhYmxlcyAoMTEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX09USEVSIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI0NiIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRURfT1RIRVIiPkF1dHJlcyBtb2TDqGxlczwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVJTIiBpZD0iTWFpbk1lbnVfVVNFRF9DQVJTIiBjbGFzcz0idG9wIGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCBpbnZlbnRvcnkiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQgbm90Q2xpY2thYmxlIiBvbmNsaWNrPSJyZXR1cm4gZmFsc2U7IiBocmVmPSI\/cGF0aD0jIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX0NBUlMiPk5vcyB0b3AtMzAgbW9kw6hsZXM8L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVJTX0cwIiBpZD0iTWFpbk1lbnVfVVNFRF9DQVJTX0cwIiBjbGFzcz0idG9wIGZpcnN0TWVudSBoYXNJdGVtcyBpc0JvbGQiPjxzcGFuIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiPjwvc3Bhbj48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSJVU0VEMSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyNTUiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Ib25kYS1DaXZpYy5odG1sIj5Ib25kYSBDaXZpYyAoNyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI1OCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0hvbmRhLUNSX1YuaHRtbCI+SG9uZGEgQ1ItViAoNyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQzIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI1YiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0hvbmRhLUhSX1YuaHRtbCI+SG9uZGEgSFItViAoNSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ0IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI1ZCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0hvbmRhLU9keXNzZXkuaHRtbCI+SG9uZGEgT2R5c3NleSAoMik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ1IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI2MCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0hvbmRhLUNpdmljX1NlZGFuLmh0bWwiPkhvbmRhIENpdmljIEJlcmxpbmUgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VENiIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyNjIiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Ib25kYS1QYXNzcG9ydC5odG1sIj5Ib25kYSBQYXNzcG9ydCAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ3IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI2NSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0hvbmRhLVByb2xvZ3VlLmh0bWwiPkhvbmRhIFByb2xvZ3VlICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDgiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjY3Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vS2lhLVNwb3J0YWdlLmh0bWwiPktpYSBTcG9ydGFnZSAoMzApPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEOSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyNmEiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLUZfMTUwLmh0bWwiPkZvcmQgRi0xNTAgKDI0KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDEwIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI2YyIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vS2lhLVNlbHRvcy5odG1sIj5LaWEgU2VsdG9zICgyMSk8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FSU19HMSIgaWQ9Ik1haW5NZW51X1VTRURfQ0FSU19HMSIgY2xhc3M9InRvcCBoYXNJdGVtcyBpc0JvbGQiPjxzcGFuIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiPjwvc3Bhbj48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSJVU0VEMTEiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3Mjc0IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vS2lhLVNvcmVudG8uaHRtbCI+S2lhIFNvcmVudG8gKDIwKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDEyIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI3OCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0tpYS1DYXJuaXZhbC5odG1sIj5LaWEgQ2Fybml2YWwgKDE2KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDEzIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI3YyI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRXNjYXBlLmh0bWwiPkZvcmQgRXNjYXBlICgxMyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxNCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyODAiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLU11c3RhbmcuaHRtbCI+Rm9yZCBNdXN0YW5nICgxMik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxNSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyODMiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9LaWEtRm9ydGUuaHRtbCI+S2lhIEZvcnRlICgxMik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxNiIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyODciPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9LaWEtU291bC5odG1sIj5LaWEgU291bCAoMTEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMTciIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjhiIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vS2lhLU5pcm8uaHRtbCI+S2lhIE5pcm8gKDEwKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDE4IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI4ZCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRWRnZS5odG1sIj5Gb3JkIEVkZ2UgKDcpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMTkiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MjkwIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vSHl1bmRhaS1Lb25hLmh0bWwiPkh5dW5kYWkgS29uYSAoNyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyMCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyOTMiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0tpYS1SaW81Lmh0bWwiPktpYSBSaW81ICg3KTwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVJTX0cyIiBpZD0iTWFpbk1lbnVfVVNFRF9DQVJTX0cyIiBjbGFzcz0idG9wIGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PHNwYW4gY2xhc3M9InRvcF9saW5rIGlzQm9sZCI+PC9zcGFuPjx1bCBjbGFzcz0ic3ViIHNsaW0tc3VibWVudS0zIj4KPGxpIGRhdGEtaWQ9IlVTRUQyMSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyOWEiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Wb2xrc3dhZ2VuLVRpZ3Vhbi5odG1sIj5Wb2xrc3dhZ2VuIFRpZ3VhbiAoNyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyMiIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyOWQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9HTUMtU2llcnJhXzI1MDBfSEQuaHRtbCI+R01DIFNpZXJyYSAyNTAwIEhEICg2KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDIzIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzI5ZiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0h5dW5kYWktVHVjc29uLmh0bWwiPkh5dW5kYWkgVHVjc29uICg2KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDI0IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzJhMiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0plZXAtV3JhbmdsZXIuaHRtbCI+SmVlcCBXcmFuZ2xlciAoNik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyNSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyYTQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9LaWEtSzQuaHRtbCI+S2lhIEs0ICg2KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDI2IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzJhNyI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL01hemRhLUNYXzUuaHRtbCI+TWF6ZGEgQ1gtNSAoNik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyNyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyYTkiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Ub3lvdGEtUkFWNC5odG1sIj5Ub3lvdGEgUkFWNCAoNik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyOCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcyYWIiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLmh0bWwiPkZvcmQgVHJhbnNpdCBDYXJnbyBWYW4gKDUpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMjkiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MmFlIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vSmVlcC1DaGVyb2tlZS5odG1sIj5KZWVwIENoZXJva2VlICg1KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDMwIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzJiMCIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vS2lhLUVWNi5odG1sIj5LaWEgRVY2ICg1KTwvYT48L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iTkVXIiBpZD0iTWFpbk1lbnVfTkVXIiBjbGFzcz0idG9wIGZpcnN0TWVudSBoYXNJdGVtcyBpc0JvbGQiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiIGhyZWY9Ij9wYXRoPS9uZXVmcy9ub3V2ZWF1Lmh0bWwiPk5FVUZTPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9Ik5FV19CVUlMRFBSSUNFIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzEyMiIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L2NvbmZpZ3VyYXRpb24tZXQtcHJpeC9jb25maWd1cmF0aW9uLmh0bWwiPkNvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeDwvYT48L2xpPgo8bGkgZGF0YS1pZD0iTkVXSU5WIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzEyYyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL2ludmVudGFpcmUvcmVjaGVyY2hlLmh0bWwiPkludmVudGFpcmUgTmV1ZiAoODQpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfU0VEQU4iIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTdiIiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvYXV0b3MuaHRtbCI+QmVybGluZXMgLyBDb21wYWN0ZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU0VEQU5fSG9uZGEiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTc4IiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMzM2NzI0NDA4IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzEzNiIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTg4OTciPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TZWRhbi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDaXZpYyBCZXJsaW5lIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NpdmljIFNlZGFuLzIwMjUvVC80NjA3ODYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQ2l2aWMgQmVybGluZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zMSAwMDkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1NlZGFuLTIwMjUuaHRtbCI+Q2l2aWMgQmVybGluZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxODE1OTMxMjgiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTQyIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzQ1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW4tMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ2l2aWMgQmVybGluZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9DaXZpYyBTZWRhbi8yMDI2L1QvNDc4NTg4L1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJDaXZpYyBCZXJsaW5lIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjMxIDYwOSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW4tMjAyNi5odG1sIj5DaXZpYyBCZXJsaW5lIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI5NzAxODE1NjQiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTQ5IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYyMzAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNpdmljIEhheW9uIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NpdmljIEhhdGNoYmFjay8yMDI1L1QvNDY0NTcxL1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkNpdmljIEhheW9uIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM0IDg2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrLTIwMjUuaHRtbCI+Q2l2aWMgSGF5b24gMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzk3MjA4NTA1OCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxNGYiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMxMTEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19IYXRjaGJhY2stMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ2l2aWMgSGF5b24gMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvQ2l2aWMgSGF0Y2hiYWNrLzIwMjYvVC80ODAyODMvU2lsdmVyL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkNpdmljIEhheW9uIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM1IDQ2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrLTIwMjYuaHRtbCI+Q2l2aWMgSGF5b24gMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNDQxODM1MDU3IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzE1NSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDgwMyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1NpX1NlZGFuLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNpdmljIFNpIGJlcmxpbmUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvQ2l2aWMgU2kgU2VkYW4vMjAyNS9ULzQ2MzA3NS9XaGl0ZS9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJDaXZpYyBTaSBiZXJsaW5lIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM5IDI2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2lfU2VkYW4tMjAyNS5odG1sIj5DaXZpYyBTaSBiZXJsaW5lIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijg2NjU1MjUzMyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxNWIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzI0MTQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TaV9TZWRhbi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDaXZpYyBTaSBiZXJsaW5lIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NpdmljIFNpIFNlZGFuLzIwMjYvVC80Nzg4MTEvUmVkL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkNpdmljIFNpIGJlcmxpbmUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzkgODY5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TaV9TZWRhbi0yMDI2Lmh0bWwiPkNpdmljIFNpIGJlcmxpbmUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTQyNzczMjU0NCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxNjAiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjI5MDMiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19UeXBlX1ItMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ2l2aWMgVHlwZSBSIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NpdmljIFR5cGUgUi8yMDI1L1QvNDY1MjIzL1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkNpdmljIFR5cGUgUiAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NiAyNjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1R5cGVfUi0yMDI1Lmh0bWwiPkNpdmljIFR5cGUgUiAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI2NDAzMjAxNzEiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTY1IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc3NDAxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfVHlwZV9SLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNpdmljIFR5cGUgUiAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9DaXZpYyBUeXBlIFIvMjAyNi9ULzQ4NTQ3NS9SZWQvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQ2l2aWMgVHlwZSBSIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU3IDAxOSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfVHlwZV9SLTIwMjYuaHRtbCI+Q2l2aWMgVHlwZSBSIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI3NjA4NjYzNzkiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTZhIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYyMzA2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQWNjb3JkX1NlZGFuLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkFjY29yZCBCZXJsaW5lIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0FjY29yZCBTZWRhbi8yMDI1L1QvNDY0NTk2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkFjY29yZCBCZXJsaW5lIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQxIDQ2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQWNjb3JkX1NlZGFuLTIwMjUuaHRtbCI+QWNjb3JkIEJlcmxpbmUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjExMzI1ODYwOCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxNmUiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjcxOTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfU2VkYW4tMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQWNjb3JkIEJlcmxpbmUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvQWNjb3JkIFNlZGFuLzIwMjYvVC80ODMzNDYvU2lsdmVyL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkFjY29yZCBCZXJsaW5lIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQxIDc2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQWNjb3JkX1NlZGFuLTIwMjYuaHRtbCI+QWNjb3JkIEJlcmxpbmUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjkyMTg0OTUxNCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxNzMiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUyMDYiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1QcmVsdWRlLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlByZWx1ZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvUHJlbHVkZS8yMDI2L1QvNDgyOTk3L1JlZC9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQcmVsdWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUzIDI1OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtUHJlbHVkZS0yMDI2Lmh0bWwiPlByZWx1ZGUgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19TVVYiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MWE1IiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvVlVTLmh0bWwiPlZVUyAvIE11bHRpc2VnbWVudHM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU1VWX0hvbmRhIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFhMyIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjI1OTM2NjkyNTMiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTgyIiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjE5OSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUhSX1YtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iSFItViAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9IUl9WLzIwMjYvVC80Nzc3NzQvU2lsdmVyL3Byb2ZpbGUucG5nP2NiPTZhNTJlMDQ5MjFjZTgiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9ob25kYV9jLnBuZyIgdGl0bGU9IkhSLVYgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzMgNzM5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1IUl9WLTIwMjYuaHRtbCI+SFItViAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI3NzA0MzMxMDkiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MTg4IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc4MDAzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtSFJfVi0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJIUi1WIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0hSX1YvMjAyNy9ULzQ4Njg4MC9TaWx2ZXIvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iSFItViAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zMyAxNDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUhSX1YtMjAyNy5odG1sIj5IUi1WIDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM4OTkzMzg0NjgiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MThkIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMTMyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ1JfVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDUi1WIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NSX1YvMjAyNi9ULzQ3NzczNi9TaWx2ZXIvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQ1ItViAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MCA0MTQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNSX1YtMjAyNi5odG1sIj5DUi1WIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMyMTU1NTc3NyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxOTAiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIxMzQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1QYXNzcG9ydC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJQYXNzcG9ydCAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9QYXNzcG9ydC8yMDI2L1QvNDc3NzMwL1JlZC9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQYXNzcG9ydCAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MCA0MjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLVBhc3Nwb3J0LTIwMjYuaHRtbCI+UGFzc3BvcnQgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzk1MzA2MDg2NCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxOTYiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUyNDUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1QaWxvdC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJQaWxvdCAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9QaWxvdC8yMDI2L1QvNDgzMTYyL1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQaWxvdCAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41OCA5ODkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLVBpbG90LTIwMjYuaHRtbCI+UGlsb3QgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTczNTg5NDIyMyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxOWEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIxMDkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1Qcm9sb2d1ZS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJQcm9sb2d1ZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9Qcm9sb2d1ZS8yMDI1L1QvNDc3MzkzL1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQcm9sb2d1ZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyAzMjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLVByb2xvZ3VlLTIwMjUuaHRtbCI+UHJvbG9ndWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzgyNDQwMTA5NCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxOWYiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzYxMDUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1Qcm9sb2d1ZS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJQcm9sb2d1ZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9Qcm9sb2d1ZS8yMDI2L1QvNDg0MDg2L1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQcm9sb2d1ZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyA0MjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLVByb2xvZ3VlLTIwMjYuaHRtbCI+UHJvbG9ndWUgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19UUlVDS19NSU5JVkFOIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFiNyIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL25vdXZlYXUuaHRtbD9ib2R5PWNhbWlvbi1taW5pX2ZvdXJnb25uZXR0ZSI+Q2FtaW9ucyAvIE1pbml2YW5zPC9hPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iTkVXX1RSVUNLX01JTklWQU5fSG9uZGEiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MWI1IiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMTUwNjk2MTk5OSIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxYWMiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczMDIxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtT2R5c3NleS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJPZHlzc2V5IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL09keXNzZXkvMjAyNi9ULzQ4MDE0My9TaWx2ZXIvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iT2R5c3NleSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NCA4NTkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLU9keXNzZXktMjAyNi5odG1sIj5PZHlzc2V5IDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjExNTgwMDc5MjUiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MWIwIiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczOTAyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtUmlkZ2VsaW5lLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlJpZGdlbGluZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9SaWRnZWxpbmUvMjAyNi9ULzQ4MTQ5My9TaWx2ZXIvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iUmlkZ2VsaW5lIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU2IDQyOSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtUmlkZ2VsaW5lLTIwMjYuaHRtbCI+UmlkZ2VsaW5lIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfSFlCUklEX0VMRUNUUklDIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFmMyIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL25vdXZlYXUuaHRtbD9mdWVsPWh5YnJpZGUtZWxlY3RyaXF1ZSIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iTkVXX0hZQlJJRF9FTEVDVFJJQyI+SHlicmlkZXMgLyDDiWxlY3RyaXF1ZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfSFlCUklEX0VMRUNUUklDX0hvbmRhIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFmMSIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ijk4MzcyOTY4NyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxYmMiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYyMzA3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQWNjb3JkX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJBY2NvcmQgSHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9BY2NvcmQgSHlicmlkLzIwMjUvVC80NjQ1OTcvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQWNjb3JkIEh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDYgMTY5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfSHlicmlkLTIwMjUuaHRtbCI+QWNjb3JkIEh5YnJpZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzgyMjU5ODE4OCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxYzEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUzMTIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkFjY29yZCBIeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0FjY29yZCBIeWJyaWQvMjAyNi9ULzQ4MzM0Ny9TaWx2ZXIvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQWNjb3JkIEh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDYgOTY5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfSHlicmlkLTIwMjYuaHRtbCI+QWNjb3JkIEh5YnJpZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzE4NzczMDA4NCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxYzUiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTczOTEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDUi1WIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvQ1JfViBIeWJyaWQvMjAyNS9ULzQ1ODg2MS9XaGl0ZS9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJDUi1WIGh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTEgNDE0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI1Lmh0bWwiPkNSLVYgaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzNDQyNjc4ODYzIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFjYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjEzMyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNSX1ZfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNSLVYgaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9DUl9WIEh5YnJpZC8yMDI2L1QvNDc3NzM5L1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJDUi1WIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDkgMzM5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI2Lmh0bWwiPkNSLVYgaHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNzM4NzYyMzc0IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFjZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1ODk5MSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1NlZGFuX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDaXZpYyBoeWJyaWRlIGJlcmxpbmUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvQ2l2aWMgU2VkYW4gSHlicmlkLzIwMjUvVC80NjA4ODMvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQ2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM2IDc2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW5fSHlicmlkLTIwMjUuaHRtbCI+Q2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM1NDAzMDgwNDgiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MWQ0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzQ2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW5fSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNpdmljIGh5YnJpZGUgYmVybGluZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9DaXZpYyBTZWRhbiBIeWJyaWQvMjAyNi9ULzQ3ODU5MC9TaWx2ZXIvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQ2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM3IDM2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW5fSHlicmlkLTIwMjYuaHRtbCI+Q2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE4NTEwMjM2NzUiIGlkPSJNYWluTWVudV82YTUyZTA1MzQ3MWQ5IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYyNDk4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE4NTEwMjM2NzUiPjxpbWcgYWx0PSJDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NpdmljIEhhdGNoYmFjayBIeWJyaWQvMjAyNS9ULzQ2NDc2Mi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM4IDY2OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE4NTEwMjM2NzUiPkNpdmljIMOgIGhheW9uIGh5YnJpZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNTEwNTU5MjEzIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFlMCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzExMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX0hhdGNoYmFja19IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI1MTA1NTkyMTMiPjxpbWcgYWx0PSJDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0hvbmRhL0NpdmljIEhhdGNoYmFjayBIeWJyaWQvMjAyNi9ULzQ4MDI4MS9SZWQvcHJvZmlsZS5wbmc\/Y2I9NmE1MmUwNDkyMWNlOCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2hvbmRhX2MucG5nIiB0aXRsZT0iQ2l2aWMgw6AgaGF5b24gaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zOSAyNjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX0hhdGNoYmFja19IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI1MTA1NTkyMTMiPkNpdmljIMOgIGhheW9uIGh5YnJpZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjkyMTg0OTUxNCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxZTQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUyMDYiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1QcmVsdWRlLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlByZWx1ZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSG9uZGEvUHJlbHVkZS8yMDI2L1QvNDgyOTk3L1JlZC9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQcmVsdWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUzIDI1OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSG9uZGEtUHJlbHVkZS0yMDI2Lmh0bWwiPlByZWx1ZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTczNTg5NDIyMyIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxZTkiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIxMDkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1Qcm9sb2d1ZS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJQcm9sb2d1ZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9Qcm9sb2d1ZS8yMDI1L1QvNDc3MzkzL1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQcm9sb2d1ZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyAzMjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLVByb2xvZ3VlLTIwMjUuaHRtbCI+UHJvbG9ndWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzgyNDQwMTA5NCIgaWQ9Ik1haW5NZW51XzZhNTJlMDUzNDcxZWQiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzYxMDUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Ib25kYS1Qcm9sb2d1ZS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJQcm9sb2d1ZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Ib25kYS9Qcm9sb2d1ZS8yMDI2L1QvNDg0MDg2L1NpbHZlci9wcm9maWxlLnBuZz9jYj02YTUyZTA0OTIxY2U4IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaG9uZGFfYy5wbmciIHRpdGxlPSJQcm9sb2d1ZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyA0MjkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0hvbmRhLVByb2xvZ3VlLTIwMjYuaHRtbCI+UHJvbG9ndWUgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19ERU1PIiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFmOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L2RlbW9uc3RyYXRldXJzL3JlY2hlcmNoZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfREVNTyI+RMOpbW9zPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI2OTgxM2ExOS1hZGNkLTY1ZGQtZjZlYi05IiBpZD0iTWFpbk1lbnVfNmE1MmUwNTM0NzFmYyIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbm91dmVhdS1tYXpkYS1jeDUtMjAyNi5odG1sIj5Ub3V0IG5vdXZlYXUgTWF6ZGEgQ1gtNTwvYT48L2xpPgo8L3VsPgo8L2xpPgoKCQkJCQkJPC91bD4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3ByZWZlcmVyIiBuYW1lPSJ0b3ByZWZlcmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BzaXRlaWQiIG5hbWU9InRvcHNpdGVpZCIgdmFsdWU9IjQ3OSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wY2FyaWQiIG5hbWU9InRvcGNhcmlkIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BjYXJpZE11bHRpc3RlcEZvcm0iIG5hbWU9InRvcGNhcmlkTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZU1vZGVsIiBuYW1lPSJlTW9kZWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InN0eWxlaWQiIG5hbWU9IiIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbWFrZSIgbmFtZT0icG9wdXBtYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1vZGVsIiBuYW1lPSJwb3B1cG1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVweWVhciIgbmFtZT0icG9wdXB5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHRyaW0iIG5hbWU9InBvcHVwdHJpbSIgdmFsdWU9InskUE9QVVBUUklNfSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBzdG9ja251bWJlciIgbmFtZT0icG9wdXBzdG9ja251bWJlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkbWFrZSIgbmFtZT0ibGFzdHZpZXdlZG1ha2UiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRtb2RlbCIgbmFtZT0ibGFzdHZpZXdlZG1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkeWVhciIgbmFtZT0ibGFzdHZpZXdlZHllYXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWR0cmltIiBuYW1lPSJsYXN0dmlld2VkdHJpbSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHN0b2NrbnVtYmVyIiBuYW1lPSJsYXN0dmlld2Vkc3RvY2tudW1iZXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGRlcGxveW1lbnR0eXBlIiBuYW1lPSJ0b3BkZXBsb3ltZW50dHlwZSIgdmFsdWU9ImxpdmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VFbWFpbCIgbmFtZT0ic2VydmljZUVtYWlsIiB2YWx1ZT0iMjBhYzllZWMyNWYwZGY2MWVmZTUwZmZjNmYyNzk1OTJ8MzYwMzY5MDI2MiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZUFkZkVtYWlsIiBuYW1lPSJzZXJ2aWNlQWRmRW1haWwiIHZhbHVlPSIiPjx0ZXh0YXJlYSBpZD0iZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiIHRpdGxlPSJMaW5rIFJ1bGVzIiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+IyNMSU5LUlVMRVMjIzwvdGV4dGFyZWE+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjAiIGlkPSJ0cmFkZUluQmFyU3RpY2t5Qm90dG9tIj4KPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKICAgICAgICAgICAgPC9kaXY+IDwhLS0gd3VsbCB3aWR0aCAtICBjbG9zZSBtYWluRGl2IGhlcmUgLS0+CiAgICAgICAgICAgIDxkaXYgaWQ9InRyYWRlSW5CYXIiIGNsYXNzPSJib3gtbGMiIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj4KICAgICAgICAgICAgPGRpdiBpZD0idHJhZGVJbkJhclciIGNsYXNzPSJmbGV4LWJveCBmbGV4LWVxdWFsIGFsaWduLWNlbnRlciI+CiAgICAgICAgICAgICAgICAJCQkJPGRpdiBjbGFzcz0idHJhZGluSW5wdXRXIj4KICAgICAgICAgICAgCQk8ZGl2PgogICAgICAgICAgICAJCQk8aW5wdXQgY2xhc3M9InRyYWRlSW5WaW5JbnB1dCIgdHlwZT0idGV4dCIgbmFtZT0idHJhZGluVmluIiBpZD0idHJhZGluVmluIiBwbGFjZWhvbGRlcj0iRW50cmV6IHZvdHJlIE5JViI+CiAJCQkJCTwvZGl2PgogICAgICAgICAgIAkJPC9kaXY+CgkJCQk8c3Ryb25nIGNsYXNzPSJ0cmFkZUluT3JMYWJlbCI+T1U8L3N0cm9uZz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0VyB3aXRoVklOTWFrZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdEEiPgoKCQkJCTxzZWxlY3QgY2xhc3M9InRyYWRpblNlbGVjdCIgbmFtZT0idHJhZGluTWFrZSIgaWQ9InRyYWRpbk1ha2UiIHRpdGxlPSJNYXJxdWUiIGFyaWEtbGFiZWw9Ik1hcnF1ZSI+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5Nb24gdsOpaGljdWxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWN1cmEiPkFjdXJhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQWxmYSBSb21lbyI+QWxmYSBSb21lbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkF1ZGkiPkF1ZGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCTVciPkJNVzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJyaWdodERyb3AiPkJyaWdodERyb3A8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCdWljayI+QnVpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDYWRpbGxhYyI+Q2FkaWxsYWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDaGV2cm9sZXQiPkNoZXZyb2xldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNocnlzbGVyIj5DaHJ5c2xlcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRvZGdlIj5Eb2RnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZJQVQiPkZJQVQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJGb3JkIj5Gb3JkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR2VuZXNpcyI+R2VuZXNpczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdNQyI+R01DPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSG9uZGEiPkhvbmRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSFVNTUVSIj5IVU1NRVI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIeXVuZGFpIj5IeXVuZGFpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU5FT1MiPklORU9TPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU5GSU5JVEkiPklORklOSVRJPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSXN1enUiPklzdXp1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSmFndWFyIj5KYWd1YXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJKZWVwIj5KZWVwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS2lhIj5LaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMYW5kIFJvdmVyIj5MYW5kIFJvdmVyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTGV4dXMiPkxleHVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTGluY29sbiI+TGluY29sbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ikx1Y2lkIj5MdWNpZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1hc2VyYXRpIj5NYXNlcmF0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1hemRhIj5NYXpkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1lcmNlZGVzLUJlbnoiPk1lcmNlZGVzLUJlbno8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNZXJjdXJ5Ij5NZXJjdXJ5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUlOSSI+TUlOSTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1pdHN1YmlzaGkiPk1pdHN1YmlzaGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOaXNzYW4iPk5pc3Nhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik9sZHNtb2JpbGUiPk9sZHNtb2JpbGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQbHltb3V0aCI+UGx5bW91dGg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQb2xlc3RhciI+UG9sZXN0YXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQb250aWFjIj5Qb250aWFjPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUG9yc2NoZSI+UG9yc2NoZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlJhbSI+UmFtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUml2aWFuIj5SaXZpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTYWFiIj5TYWFiPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU2F0dXJuIj5TYXR1cm48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTY2lvbiI+U2Npb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzbWFydCI+c21hcnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTdWJhcnUiPlN1YmFydTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlN1enVraSI+U3V6dWtpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVGVzbGEiPlRlc2xhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVG95b3RhIj5Ub3lvdGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWaW5GYXN0Ij5WaW5GYXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVm9sa3N3YWdlbiI+Vm9sa3N3YWdlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZvbHZvIj5Wb2x2bzwvb3B0aW9uPgogICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0VyB3aXRoVklOWWVhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdEEiPgogICAgICAgICAgICAJPHNlbGVjdCBjbGFzcz0idHJhZGluU2VsZWN0IiBuYW1lPSJ0cmFkaW5ZZWFyIiBpZD0idHJhZGluWWVhciIgdGl0bGU9IkFubsOpZSIgYXJpYS1sYWJlbD0iQW5uw6llIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPjwvb3B0aW9uPgogICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RXIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0QSI+CgoJCQkJPHNlbGVjdCBjbGFzcz0idHJhZGluU2VsZWN0IiBuYW1lPSJ0cmFkaW5Nb2RlbCIgaWQ9InRyYWRpbk1vZGVsIiB0aXRsZT0iTW9kw6hsZSIgYXJpYS1sYWJlbD0iTW9kw6hsZSI+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdFciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RBIj4KICAgICAgICAgICAgCTxzZWxlY3QgY2xhc3M9InRyYWRpblNlbGVjdCIgbmFtZT0idHJhZGluVHJpbSIgaWQ9InRyYWRpblRyaW0iIHRpdGxlPSJWZXJzaW9uIiBhcmlhLWxhYmVsPSJWZXJzaW9uIj4KICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idHJhZGVJbkJhcl9idG4gZmxleC1ib3ggYWxpZ24tY2VudGVyIiBvbmNsaWNrPSJnYVRyYWNrKCdjLl90cmFja0V2ZW50JywgJ0NsaXF1ZXMgQmFycmUgc291cyBsZSBtZW51JywgJ8OJdmFsdWV6IG1vbiDDqWNoYW5nZSEnLCAnTmV1ZicsIDEpOyI+CgoJCQkKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmYSBmYS1zZWFyY2ggLWJsb2NrIC1sZWZ0IC1tbDEwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iLWJsb2NrIC1sZWZ0IC13MTQwIj4gIMOJdmFsdWV6IG1vbiDDqWNoYW5nZSE8L2Rpdj4KICAgICAgICAgICAgPC9idXR0b24+PGRpdiBjbGFzcz0ianMtdHJhZGVJbkJhck92ZXJsYXkiIHN0eWxlPSJkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjojZWFlYWVhO2NvbG9yOiMxYjFiMWI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ij48ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4O2p1c3RpZnktY29udGVudDogY2VudGVyO2FsaWduLWl0ZW1zOiBjZW50ZXI7aGVpZ2h0OiAxMDAlOyI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjIycHg7Ij7DiXZhbHVleiB2b3RyZSDDqWNoYW5nZSBHUkFUVUlURU1FTlQhPC9zcGFuPgkJCQk8aW1nIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9ob25kYWRvbm5hY29uYS5jb20vL2ltYWdlcy9jYW5hZGlhbi1ibGFjay1ib29rLXZhbGV1ci1hdXRvLnBuZyIgYWx0PSJjYW5hZGlhbiBibGFjayBib29rIHZhbGV1ciBhdXRvIiBzdHlsZT0iaGVpZ2h0OjgwJTttYXJnaW4tbGVmdDoxMHB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgkJCgkJPGRpdiBpZD0iVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjYwMHB4O2hlaWdodDo2NTVweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc190cmFkZWluYmFycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6ZTZjNDBiZDJiMTYxYjZmNWRmYWQyYjBlY2ZhNWM2ZWEgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+SG9uZGEgRG9ubmFjb25hIHZvdXMgcmVtZXJjaWUgZCdhdm9pciBjb21tdW5pcXXDqSB2b3RyZSBkZW1hbmRlLiBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2kgcG91ciB2b3RyZSBkZW1hbmRlLiBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI4NjE1NTQ1MTciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJYZkhBQ09fRDZXMFExWTdwbWdNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMTI5MzM0MjI4NDA2MDkzNCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJob25kYWRvbm5hY29uYS5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fZmFpbENvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQkJPCEtLSBPTzo6ZTI1ZDZjZmFiMzkyN2Q3OGQ5ZTJmNWEyZTM0NzYwMTYgLS0+CgkJCg08IS0tIFRSQURFIElOIEJBUiBORVdDQVJTIC0tPgoNCjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+CgoJCQkJCgkJCTwvaGVhZGVyPgoJCTwhLS0gT1BFTiBNQUlOQk9YTEFZRVIgLS0+CgkJPGRpdiBjbGFzcz0iTWFpbkJveExheWVyIj4KCQkJCQkJPCEtLSBPUEVOIExFRlRCT1hMQVlFUiAtLT4KCQkJPGRpdiBpZD0ibmV3Y2FyQ29udGFpbmVyIiBjbGFzcz0ibGVmdF9ib3ggTGVmdEJveExheWVyIj4KCQkJCTwhLS0gT1BFTiBISVNUT1JZIC0tPgoJCQkJPGRpdiBpZD0iaGlzdG9yeURpdiIgY2xhc3M9Ik91dGVyQm94TGF5ZXIiPgoJCQkJCTxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPgoJCQkJCQkJPCEtLSBPUEVOIEJSRUFEQ1JVTUIgLS0+CgoJPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KCXsKCQkiQGNvbnRleHQiOiAiaHR0cHM6Ly9zY2hlbWEub3JnIiwKCQkiQHR5cGUiOiAiQnJlYWRjcnVtYkxpc3QiLAoJCSJpdGVtTGlzdEVsZW1lbnQiOiBbeyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjEsIml0ZW0iOnsiQGlkIjoiaHR0cHM6XC9cL2hvbmRhZG9ubmFjb25hLmNvbVwvIiwibmFtZSI6IkFjY3VlaWwifX0seyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjIsIml0ZW0iOnsiQGlkIjoiaHR0cHM6XC9cL2hvbmRhZG9ubmFjb25hLmNvbVwvbmV1ZnNcL25vdXZlYXUuaHRtbCIsIm5hbWUiOiJWXHUwMGU5aGljdWxlcyBuZXVmcyJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MywiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvSG9uZGEiLCJuYW1lIjoiSG9uZGEifX1dCgl9Cgk8L3NjcmlwdD4KCgk8ZGl2IGlkPSJicmVhZGNydW1icyIgY2xhc3M9IkJSRENSTUJfMTk3OCI+CgkJCTxzcGFuPgoJCTxhIGhyZWY9Ij9wYXRoPS8iPkFjY3VlaWw8L2E+Cgk8L3NwYW4+PHNwYW4gY2xhc3M9Ii1waCI+wrs8L3NwYW4+CTxzcGFuPgoJCTxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9ub3V2ZWF1Lmh0bWwiPlbDqWhpY3VsZXMgbmV1ZnM8L2E+Cgk8L3NwYW4+PHNwYW4gY2xhc3M9Ii1waCI+wrs8L3NwYW4+CTxzcGFuPgoJCTxzcGFuPkhvbmRhPC9zcGFuPgoJPC9zcGFuPgoJPC9kaXY+CgoJPCEtLSBDTE9TRSBCUkVBRENSVU1CIC0tPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCQk8IS0tIENMT1NFIEhJU1RPUlkgLS0+CgkJCQk8IS0tIE9QRU4gSEVBREVSIElNQUdFIC0tPgoJCQkJCTxkaXYgaWQ9InRvcEJhbm5lckltYWdlIiBjbGFzcz0iTkVXQ0FSUy1jbGVhciBmbGV4LWNvbHVtbiBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIiIHN0eWxlPSJhc3BlY3QtcmF0aW86MTAwLzIwO21hcmdpbi1ib3R0b206MTBweCAhaW1wb3J0YW50OyIgZGF0YS1pbnZjYXQ9ImFsbCI+CgkJCTxpbWcgYWx0PSJIb25kYSBhIHZlbmRyZSA\/IERvbm5hY29uYSwgcHLDqHMgZGUgUXXDqWJlYywgUG9udC1Sb3VnZSBldCBTYWludC1BdWd1c3RpbiBjaGV6IEhvbmRhIERvbm5hY29uYSAtIDEiIGNsYXNzPSJsaXZlbG9hZCAgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiIGRhdGEtb3QtaWdub3JlPSIiIGZldGNocHJpb3JpdHk9ImhpZ2giIHNyYz0iaHR0cHM6Ly9ob25kYWRvbm5hY29uYS5jb20vL2ltYWdlcy9OZXdDYXJQYWdlSW1hZ2UvTk9OQ0JCLVRSQURFSU4tMTI1MFgyMDAtSEVYLTAwMDAwMC1GUi5wbmciPgoJPC9kaXY+CgkKCgkJCQk8IS0tIENMT1NFIEhFQURFUiBJTUFHRSAtLT4KCQkJCTxkaXYgaWQ9InVuZGVyQmFubmVyIj48L2Rpdj4KCQkJCTwhLS0gT1BFTiBPVVRFUkJPWExBWUVSIC0tPgoJCQkJPGRpdiBjbGFzcz0iT3V0ZXJCb3hMYXllciI+CgkJCQkJPGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciI+PGgxIGNsYXNzPSJkZWZhdWx0IEgxXzIwODcgIj48ZGl2PjxkaXY+SG9uZGEgbmV1dmVzIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB2ZW5kcmXCoDwvZGl2PjxkaXY+w6AgRG9ubmFjb25hLCBwcsOocyBkZSBRdcOpYmVjLCBQb250LVJvdWdlIGV0IFNhaW50LUF1Z3VzdGluwqA8L2Rpdj48L2Rpdj48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPgkgICAgICAgICAgICA8L2Rpdj4JCQk8IS0tIE9QRU4gRklMVEVSTUFJTkJPWCAoJy5fX0xJTkVfXy4nKS0tPgoJCQk8ZGl2IGlkPSJmaWx0ZXJNYWluQm94IiBjbGFzcz0iSW5uZXJCb3hMYXllciBibGFjay10ZXh0Ij4KCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJPdXRlckJveCI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlckJveFRpdGxlIj4KCQkJCQkJCQlSYWZmaW5leiB2b3RyZSByZWNoZXJjaGUgOgoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2Fycm9zc2VyaWU8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY2FyIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9ImNhciIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX2NhciI+QXV0bzwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGNsYXNzPSJmaWx0ZXJDaGVjayBjYXRlZ29yeSIgaWQ9InNob3dDbGFzc190cnVjayIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ0cnVjayIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3RydWNrIj5DYW1pb248L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfbWluaXZhbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJtaW5pdmFuIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiBjYXRlZ29yeSIgZm9yPSJzaG93Q2xhc3NfbWluaXZhbiI+TWluaS1Gb3VyZ29ubmV0dGU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3Nfc3V2IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9InN1diIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3N1diI+VlVTPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPk1vdHJpY2l0w6k8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMSIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgZGF0YS1kcml2ZXRyYWluPSJGV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMSIgY2xhc3M9ImZpbHRlclNwYW4iPlRyYWN0aW9uIGF2YW50PC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2FyYnVyYW50PC9kaXY+PHVsIGNsYXNzPSIiPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZWxlY3RyaWMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazMiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2szIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCcOJbGVjdHJpcXVlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJnYXMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazEiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUVzc2VuY2UKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9Imh5YnJpZCIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrNCIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI0IiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazQiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJSHlicmlkZQoJCTwvbGFiZWw+Cgk8L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlRyaWVyIHBhcjwvZGl2Pjx1bCBjbGFzcz0iIj48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb01vZGxlIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0ibW9kZWwiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvTW9kbGUiPk1vZMOobGU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9QcmljZSIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9InByaWNlIj48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9QcmljZSI+UHJpeDwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb0NvbnNvIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0iY29uc28iPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb0NvbnNvIj5MLzEwMGttPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+CQkJCQoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCgkJCQkJCQk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZQcmljZVJhbmdlU2xpZGVyIiBpZD0icHJpY2VSYW5nZVNsaWRlckZpbHRlckNvbnRhaW5lciI+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJUaXRsZSI+CgkJCQkJRm91cmNoZXR0ZSBkZSBwcml4CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIHJhbmdlLXNsaWRlci1wcmljZXMiPgoJCQkJCTxzcGFuIGNsYXNzPSJwcmljZS1taW4gZm9ybWF0LXByaWNlIj48L3NwYW4+wqDCoMOgwqDCoDxzcGFuIGNsYXNzPSJwcmljZS1tYXggZm9ybWF0LXByaWNlIj48L3NwYW4+CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjYiPgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLWxlZnQiPk1pbjwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjkgcmFuZ2Utc2xpZGVyIiBhdHRyLXByaWNlLW1pbj0iMzEwMDkiIGF0dHItcHJpY2UtbWF4PSI2MzQyOSI+PC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMSByYW5nZS1zbGlkZXItcmlnaHQiPk1heDwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8IS0tIENMT1NFIEZJTFRFUk1BSU5CT1ggKCcuX19MSU5FX18uJyktLT48IS0tIE9QRU4gQ0FURUdPUklFU0JPWFdSQVBQRVIgKDIxMzEpLS0+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciBkaXZDYXRlZ29yaWVzQm94V3JhcHBlciI+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3NjYXJfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5BdXRvcyBuZXV2ZXMgSG9uZGEgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgRG9ubmFjb25hLCBwcsOocyBkZSBRdcOpYmVjLCBQb250LVJvdWdlIGV0IFNhaW50LUF1Z3VzdGluPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19jYXIiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY2FyXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBTZWRhbiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIEJlcmxpbmUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1NlZGFuLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgQmVybGluZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DaXZpYyBCZXJsaW5lIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIExYIGJlcmxpbmUgQ1ZUIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zMSAwMDk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzI3IDg0MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0JhcnJ1cmVzIGRlIHJvdWVzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMSAwMDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFNlZGFuIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MDc4Niw0NjA3ODUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgQmVybGluZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW4tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQ2l2aWMgQmVybGluZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0NpdmljX1NlZGFuLzIwMjUvNDYwNzg2L1NpbHZlci9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0NpdmljX1NlZGFuLzIwMjUvNDYwNzg2L1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjA3ODYsInRpdGxlIjoiSG9uZGEgQ2l2aWMgQmVybGluZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUNpdmljX1NlZGFuLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ2l2aWMgU2VkYW4nLCAnMjAyNScpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFNlZGFuIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgQmVybGluZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW4tMjAyNi5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBCZXJsaW5lIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIEJlcmxpbmUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgTFggYmVybGluZSBDVlQgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMxIDYwOTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjggNDQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzMxIDYwOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgU2VkYW4iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4NTg4LDQ3ODU4OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBCZXJsaW5lIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TZWRhbi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDaXZpYyBCZXJsaW5lIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfU2VkYW4vMjAyNi80Nzg1ODgvU2lsdmVyL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfU2VkYW4vMjAyNi80Nzg1ODgvU2lsdmVyL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ3ODU4OCwidGl0bGUiOiJIb25kYSBDaXZpYyBCZXJsaW5lIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtQ2l2aWNfU2VkYW4tMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdDaXZpYyBTZWRhbicsICcyMDI2JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgSGF0Y2hiYWNrIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgSGF5b24gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX0hhdGNoYmFjay0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIEhheW9uIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIEhheW9uIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIFNwb3J0IMOgIGhheW9uIENWVCDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzQgODY5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMSA3MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzQgODY5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBIYXRjaGJhY2siIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY0NTcxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIEhheW9uIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19IYXRjaGJhY2stMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQ2l2aWMgSGF5b24gMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9DaXZpY19IYXRjaGJhY2svMjAyNS80NjQ1NzEvU2lsdmVyL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfSGF0Y2hiYWNrLzIwMjUvNDY0NTcxL1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjQ1NzEsInRpdGxlIjoiSG9uZGEgQ2l2aWMgSGF5b24gMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1DaXZpY19IYXRjaGJhY2stMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdDaXZpYyBIYXRjaGJhY2snLCAnMjAyNScpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIEhhdGNoYmFjayIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIEhheW9uIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19IYXRjaGJhY2stMjAyNi5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBIYXlvbiAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DaXZpYyBIYXlvbiAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBTcG9ydCDDoCBoYXlvbiBDVlQgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDQ2OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzIgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM1IDQ2OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgSGF0Y2hiYWNrIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDI4MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBIYXlvbiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkhvbmRhIENpdmljIEhheW9uIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfSGF0Y2hiYWNrLzIwMjYvNDgwMjgzL1NpbHZlci9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0NpdmljX0hhdGNoYmFjay8yMDI2LzQ4MDI4My9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDgwMjgzLCJ0aXRsZSI6IkhvbmRhIENpdmljIEhheW9uIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ2l2aWMgSGF0Y2hiYWNrJywgJzIwMjYnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY2FyXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBTaSBTZWRhbiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIFNpIGJlcmxpbmUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1NpX1NlZGFuLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgU2kgYmVybGluZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DaXZpYyBTaSBiZXJsaW5lIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIE1hbnVlbGxlIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOSAyNjk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM2IDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0JhcnJ1cmVzIGRlIHJvdWVzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszOSAyNjkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFNpIFNlZGFuIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MzA3NSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBTaSBiZXJsaW5lIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TaV9TZWRhbi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDaXZpYyBTaSBiZXJsaW5lIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfU2lfU2VkYW4vMjAyNS80NjMwNzUvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2MzA3NSwidGl0bGUiOiJIb25kYSBDaXZpYyBTaSBiZXJsaW5lIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtQ2l2aWNfU2lfU2VkYW4tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdDaXZpYyBTaSBTZWRhbicsICcyMDI1JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgU2kgU2VkYW4iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBTaSBiZXJsaW5lIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TaV9TZWRhbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFNpIGJlcmxpbmUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Ib25kYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q2l2aWMgU2kgYmVybGluZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBNYW51ZWxsZSDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzkgODY5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNiA3MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzkgODY5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBTaSBTZWRhbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg4MTEiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgU2kgYmVybGluZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2lfU2VkYW4tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQ2l2aWMgU2kgYmVybGluZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0NpdmljX1NpX1NlZGFuLzIwMjYvNDc4ODExL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0Nzg4MTEsInRpdGxlIjoiSG9uZGEgQ2l2aWMgU2kgYmVybGluZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUNpdmljX1NpX1NlZGFuLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ2l2aWMgU2kgU2VkYW4nLCAnMjAyNicpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFR5cGUgUiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIFR5cGUgUiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfVHlwZV9SLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgVHlwZSBSIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIFR5cGUgUiAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBUeXBlIFIgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU3IDAxOTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTMgODUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU3IDAxOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgVHlwZSBSIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4NTQ3NSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBUeXBlIFIgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1R5cGVfUi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDaXZpYyBUeXBlIFIgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9DaXZpY19UeXBlX1IvMjAyNi80ODU0NzUvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4NTQ3NSwidGl0bGUiOiJIb25kYSBDaXZpYyBUeXBlIFIgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1DaXZpY19UeXBlX1ItMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdDaXZpYyBUeXBlIFInLCAnMjAyNicpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFR5cGUgUiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIFR5cGUgUiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfVHlwZV9SLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgVHlwZSBSIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIFR5cGUgUiAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBUeXBlIFIgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU2IDI2OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTMgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU2IDI2OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgVHlwZSBSIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NTIyMyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBUeXBlIFIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1R5cGVfUi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDaXZpYyBUeXBlIFIgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9DaXZpY19UeXBlX1IvMjAyNS80NjUyMjMvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2NTIyMywidGl0bGUiOiJIb25kYSBDaXZpYyBUeXBlIFIgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1DaXZpY19UeXBlX1ItMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdDaXZpYyBUeXBlIFInLCAnMjAyNScpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfOSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkFjY29yZCBTZWRhbiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIEFjY29yZCBCZXJsaW5lIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfU2VkYW4tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJBY2NvcmQgQmVybGluZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5BY2NvcmQgQmVybGluZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBTRSBiZXJsaW5lIENWVCDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgNDY5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszOCAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDEgNDY5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJBY2NvcmQgU2VkYW4iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY0NTk2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIEFjY29yZCBCZXJsaW5lIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfU2VkYW4tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQWNjb3JkIEJlcmxpbmUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9BY2NvcmRfU2VkYW4vMjAyNS80NjQ1OTYvU2lsdmVyL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2NDU5NiwidGl0bGUiOiJIb25kYSBBY2NvcmQgQmVybGluZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUFjY29yZF9TZWRhbi0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0FjY29yZCBTZWRhbicsICcyMDI1JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8xMCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkFjY29yZCBTZWRhbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIEFjY29yZCBCZXJsaW5lIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfU2VkYW4tMjAyNi5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJBY2NvcmQgQmVybGluZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5BY2NvcmQgQmVybGluZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBTRSBiZXJsaW5lIENWVCDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgNzY5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszOCA2MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDEgNzY5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJBY2NvcmQgU2VkYW4iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgzMzQ2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIEFjY29yZCBCZXJsaW5lIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfU2VkYW4tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQWNjb3JkIEJlcmxpbmUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9BY2NvcmRfU2VkYW4vMjAyNi80ODMzNDYvU2lsdmVyL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4MzM0NiwidGl0bGUiOiJIb25kYSBBY2NvcmQgQmVybGluZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUFjY29yZF9TZWRhbi0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0FjY29yZCBTZWRhbicsICcyMDI2JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc3N1dl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPlZVUyBuZXVmcyBIb25kYSAyMDI2ICZhbXA7IDIwMjc8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBEb25uYWNvbmEsIHByw6hzIGRlIFF1w6liZWMsIFBvbnQtUm91Z2UgZXQgU2FpbnQtQXVndXN0aW48L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3N1diI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkhSLVYiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBIUi1WIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1IUl9WLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iSFItViAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5IUi1WIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIExYIDJSTSBDVlQgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMzIDczOTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzAgNDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzMzIDczOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iSFItViIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc3NzQsNDc3NzcxLDQ3Nzc3Miw0Nzc3NzMiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgSFItViAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtSFJfVi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBIUi1WIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvSFJfVi8yMDI2LzQ3Nzc3NC9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9IUl9WLzIwMjYvNDc3Nzc0L1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0Nzc3NzQsInRpdGxlIjoiSG9uZGEgSFItViAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUhSX1YtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdIUi1WJywgJzIwMjYnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJIUi1WIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgSFItViAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtSFJfVi0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkhSLVYgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Ib25kYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+SFItViAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBMWCAyUk0gw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMzIDE0MDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMwIDgwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzMgMTQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJIUi1WIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4Njg4MCw0ODY4NzcsNDg2ODc4LDQ4Njg3OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBIUi1WIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1IUl9WLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkhvbmRhIEhSLVYgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9IUl9WLzIwMjcvNDg2ODgwL1NpbHZlci9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0hSX1YvMjAyNy80ODY4ODAvU2lsdmVyL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4Njg4MCwidGl0bGUiOiJIb25kYSBIUi1WIDIwMjciLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtSFJfVi0yMDI3Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0hSLVYnLCAnMjAyNycpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNSLVYiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDUi1WIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ1ItViAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DUi1WIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIExYIDJSTSDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDAgNDE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNyAwNzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDAgNDE0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDUi1WIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NzczNiw0Nzc3MzQsNDc3NzM1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENSLVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNSX1YtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQ1ItViAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0NSX1YvMjAyNi80Nzc3MzYvU2lsdmVyL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ3NzczNiwidGl0bGUiOiJIb25kYSBDUi1WIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtQ1JfVi0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0NSLVYnLCAnMjAyNicpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IlBpbG90IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgUGlsb3QgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLVBpbG90LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iUGlsb3QgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Ib25kYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UGlsb3QgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQgVHJhY3Rpb24gSW50w6lncmFsZSDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTggOTg5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NSA2NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTggOTg5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJQaWxvdCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMxNjIsNDgzMTYzLDQ4MzE2NCw0ODMxNjUsNDgzMTY2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIFBpbG90IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1QaWxvdC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBQaWxvdCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL1BpbG90LzIwMjYvNDgzMTYyL1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODMxNjIsInRpdGxlIjoiSG9uZGEgUGlsb3QgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1QaWxvdC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ1BpbG90JywgJzIwMjYnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJQYXNzcG9ydCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIFBhc3Nwb3J0IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1QYXNzcG9ydC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IlBhc3Nwb3J0IDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlBhc3Nwb3J0IDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIFRyYWlsU3BvcnQgVEkgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYwIDQyOTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTcgMDkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzYwIDQyOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iUGFzc3BvcnQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc3NzMwLDQ3NzczMSw0Nzc3MzIsNDc3NzMzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIFBhc3Nwb3J0IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1QYXNzcG9ydC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBQYXNzcG9ydCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL1Bhc3Nwb3J0LzIwMjYvNDc3NzMwL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0Nzc3MzAsInRpdGxlIjoiSG9uZGEgUGFzc3BvcnQgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1QYXNzcG9ydC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ1Bhc3Nwb3J0JywgJzIwMjYnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMjAyKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxOTQpIC0tPjxkaXYgaWQ9ImNsYXNzbWluaXZhbl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPk1pbmktZm91cmdvbm5ldHRlcyBuZXV2ZXMgSG9uZGEgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIERvbm5hY29uYSwgcHLDqHMgZGUgUXXDqWJlYywgUG9udC1Sb3VnZSBldCBTYWludC1BdWd1c3RpbjwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfbWluaXZhbiI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9taW5pdmFuXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJPZHlzc2V5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgT2R5c3NleSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtT2R5c3NleS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9Ik9keXNzZXkgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Ib25kYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+T2R5c3NleSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBTcG9ydCBCQSDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTQgODU5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1MSA1MjAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTQgODU5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJPZHlzc2V5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDE0Myw0ODAxNDQsNDgwMTQ1LDQ4MDE0NiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBPZHlzc2V5IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1PZHlzc2V5LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkhvbmRhIE9keXNzZXkgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9PZHlzc2V5LzIwMjYvNDgwMTQzL1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODAxNDMsInRpdGxlIjoiSG9uZGEgT2R5c3NleSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLU9keXNzZXktMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdPZHlzc2V5JywgJzIwMjYnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMjAyKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxOTQpIC0tPjxkaXYgaWQ9ImNsYXNzdHJ1Y2tfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5DYW1pb25zIG5ldWZzIEhvbmRhIDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBEb25uYWNvbmEsIHByw6hzIGRlIFF1w6liZWMsIFBvbnQtUm91Z2UgZXQgU2FpbnQtQXVndXN0aW48L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3RydWNrIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJSaWRnZWxpbmUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBSaWRnZWxpbmUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLVJpZGdlbGluZS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IlJpZGdlbGluZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5SaWRnZWxpbmUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQgVHJhY3Rpb24gSW50w6lncmFsZSDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTYgNDI5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1MyAwOTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTYgNDI5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJSaWRnZWxpbmUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxNDkzLDQ4MTQ5NCw0ODE0OTUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgUmlkZ2VsaW5lIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1SaWRnZWxpbmUtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgUmlkZ2VsaW5lIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvUmlkZ2VsaW5lLzIwMjYvNDgxNDkzL1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODE0OTMsInRpdGxlIjoiSG9uZGEgUmlkZ2VsaW5lIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtUmlkZ2VsaW5lLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnUmlkZ2VsaW5lJywgJzIwMjYnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMjAyKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxOTQpIC0tPjxkaXYgaWQ9ImNsYXNzaHlicmlkX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+SHlicmlkZXMgKEFzc2lzdGFuY2UgbW90ZXVyIGludMOpZ3LDqWUgLSBJTUEpIG5ldXZlcyBIb25kYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBEb25uYWNvbmEsIHByw6hzIGRlIFF1w6liZWMsIFBvbnQtUm91Z2UgZXQgU2FpbnQtQXVndXN0aW48L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2h5YnJpZCI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFNlZGFuIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIGh5YnJpZGUgYmVybGluZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW5fSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIGh5YnJpZGUgYmVybGluZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBTcG9ydCBiZXJsaW5lIGVDVlQgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM2IDc2OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzMgNjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM2IDc2OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgU2VkYW4gSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MDg4Myw0NjA4ODQiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DaXZpY19TZWRhbl9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgQ2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfU2VkYW5fSHlicmlkLzIwMjUvNDYwODgzL1NpbHZlci9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjA4ODMsInRpdGxlIjoiSG9uZGEgQ2l2aWMgaHlicmlkZSBiZXJsaW5lIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtQ2l2aWNfU2VkYW5fSHlicmlkLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ2l2aWMgU2VkYW4gSHlicmlkJywgJzIwMjUnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBTZWRhbiBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBDaXZpYyBoeWJyaWRlIGJlcmxpbmUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX1NlZGFuX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIGh5YnJpZGUgYmVybGluZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DaXZpYyBoeWJyaWRlIGJlcmxpbmUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQgYmVybGluZSBlQ1ZUIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNyAzNjk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM0IDIwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0JhcnJ1cmVzIGRlIHJvdWVzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNyAzNjkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNpdmljIFNlZGFuIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg1OTAsNDc4NTkxIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIGh5YnJpZGUgYmVybGluZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfU2VkYW5fSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkhvbmRhIENpdmljIGh5YnJpZGUgYmVybGluZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0NpdmljX1NlZGFuX0h5YnJpZC8yMDI2LzQ3ODU5MC9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc4NTkwLCJ0aXRsZSI6IkhvbmRhIENpdmljIGh5YnJpZGUgYmVybGluZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUNpdmljX1NlZGFuX0h5YnJpZC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0NpdmljIFNlZGFuIEh5YnJpZCcsICcyMDI2JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgSGF0Y2hiYWNrIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIMOgIGhheW9uIGh5YnJpZGUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX0hhdGNoYmFja19IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIMOgIGhheW9uIGh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQgZUNWVCDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzggNjY5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNSA1MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzggNjY5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBIYXRjaGJhY2sgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NDc2Miw0NjQ3NjMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgw6AgaGF5b24gaHlicmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfSGF0Y2hiYWNrX0h5YnJpZC8yMDI1LzQ2NDc2Mi9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ2l2aWMgSGF0Y2hiYWNrIEh5YnJpZCcsICcyMDI1JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQ2l2aWMgSGF0Y2hiYWNrIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIENpdmljIMOgIGhheW9uIGh5YnJpZGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUNpdmljX0hhdGNoYmFja19IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNpdmljIMOgIGhheW9uIGh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQgZUNWVCDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzkgMjY5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzkgMjY5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDaXZpYyBIYXRjaGJhY2sgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDI4MSw0ODAyODIiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ2l2aWMgw6AgaGF5b24gaHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQ2l2aWNfSGF0Y2hiYWNrX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDaXZpYyDDoCBoYXlvbiBoeWJyaWRlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQ2l2aWNfSGF0Y2hiYWNrX0h5YnJpZC8yMDI2LzQ4MDI4MS9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ2l2aWMgSGF0Y2hiYWNrIEh5YnJpZCcsICcyMDI2JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF81Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQWNjb3JkIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIEFjY29yZCBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQWNjb3JkIEh5YnJpZGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Ib25kYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+QWNjb3JkIEh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQtTCBlQ1ZUIEh5YnJpZCBiZXJsaW5lIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NiAxNjk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQzIDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0JhcnJ1cmVzIGRlIHJvdWVzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0NiAxNjkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkFjY29yZCBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY0NTk3LDQ2NDU5OCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBBY2NvcmQgSHlicmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtQWNjb3JkX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBBY2NvcmQgSHlicmlkZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0hvbmRhL0FjY29yZF9IeWJyaWQvMjAyNS80NjQ1OTcvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2NDU5NywidGl0bGUiOiJIb25kYSBBY2NvcmQgSHlicmlkZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUFjY29yZF9IeWJyaWQtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdBY2NvcmQgSHlicmlkJywgJzIwMjUnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzYiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJBY2NvcmQgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQWNjb3JkIEh5YnJpZGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLUFjY29yZF9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJBY2NvcmQgSHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5BY2NvcmQgSHlicmlkZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBTcG9ydC1MIGVDVlQgSHlicmlkIGJlcmxpbmUgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDk2OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDMgODAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ2IDk2OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iQWNjb3JkIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMzNDcsNDgzMzQ4IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciBkaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEEiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIEFjY29yZCBIeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1BY2NvcmRfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkhvbmRhIEFjY29yZCBIeWJyaWRlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvQWNjb3JkX0h5YnJpZC8yMDI2LzQ4MzM0Ny9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDgzMzQ3LCJ0aXRsZSI6IkhvbmRhIEFjY29yZCBIeWJyaWRlIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtQWNjb3JkX0h5YnJpZC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0FjY29yZCBIeWJyaWQnLCAnMjAyNicpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNSLVYgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ1ItViBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNSLVYgaHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DUi1WIGh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgU3BvcnQgVHJhY3Rpb24gSW50w6lncmFsZSDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDkgMzM5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0NiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDkgMzM5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJDUi1WIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc3MzksNDc3NzQwLDQ3NzczNyw0Nzc3MzgiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ1ItViBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDUi1WIGh5YnJpZGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9DUl9WX0h5YnJpZC8yMDI2LzQ3NzczOS9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc3NzM5LCJ0aXRsZSI6IkhvbmRhIENSLVYgaHlicmlkZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLUNSX1ZfSHlicmlkLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnQ1ItViBIeWJyaWQnLCAnMjAyNicpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNSLVYgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ1ItViBoeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNSLVYgaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DUi1WIGh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgRVgtTCBUcmFjdGlvbiBJbnTDqWdyYWxlIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MSA0MTQ8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ4IDA3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0JhcnJ1cmVzIGRlIHJvdWVzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1MSA0MTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IkNSLVYgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ1ODg2MSw0NTg4NjIiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgQ1ItViBoeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1DUl9WX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBDUi1WIGh5YnJpZGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9DUl9WX0h5YnJpZC8yMDI1LzQ1ODg2MS9HcmF5L3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ1ODg2MSwidGl0bGUiOiJIb25kYSBDUi1WIGh5YnJpZGUgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1DUl9WX0h5YnJpZC0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6ImRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBIiwicHJvbW90ZXh0IjoiUmVjZXZleiB1bmUgb2ZmcmUgcGVyc29ubmFsaXNcdTAwZTllIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckNvbnRhY3RDVEFDb250YWluZXIiPgoJCQkJPGJ1dHRvbiBzdHlsZT0id2lkdGg6MTAwJTsiIGNsYXNzPSJidG4tZGVmYXVsdCIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChldmVudCwgJ0hvbmRhJywgJ0NSLVYgSHlicmlkJywgJzIwMjUnKSk7Ij4KCSAgICAgICAgICAgICAgICBDb250YWN0ZXotbm91cwoJICAgICAgICAgICAgPC9idXR0b24+CgkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCBkaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEEgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzkiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJQcmVsdWRlIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgUHJlbHVkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtUHJlbHVkZS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IlByZWx1ZGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Ib25kYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UHJlbHVkZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBjb3Vww6kgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUzIDI1OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTAgMDkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzUzIDI1OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iUHJlbHVkZSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODI5OTciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgUHJlbHVkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtUHJlbHVkZS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIb25kYSBQcmVsdWRlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvUHJlbHVkZS8yMDI2LzQ4Mjk5Ny9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDgyOTk3LCJ0aXRsZSI6IkhvbmRhIFByZWx1ZGUgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Ib25kYS1QcmVsdWRlLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnUHJlbHVkZScsICcyMDI2JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc2VsZWN0cmljX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+w4lsZWN0cmlxdWVzIG5ldXZlcyBIb25kYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBEb25uYWNvbmEsIHByw6hzIGRlIFF1w6liZWMsIFBvbnQtUm91Z2UgZXQgU2FpbnQtQXVndXN0aW48L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2VsZWN0cmljIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzEiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xIDczOTwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iUHJvbG9ndWUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBQcm9sb2d1ZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtUHJvbG9ndWUtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJQcm9sb2d1ZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkhvbmRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Qcm9sb2d1ZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICBFWCBUcmFjdGlvbiBJbnTDqWdyYWxlIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MyAzMjk8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTkgOTkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7QmFycnVyZXMgZGUgcm91ZXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7OTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzYzIDMyOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogI2UzMTczZTsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MSA1OTA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIb25kYSIgZGF0YS1tb2RlbD0iUHJvbG9ndWUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDc3MzkzLDQ3NzM5NCw0NzczOTUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIGRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQSI+CgkJCQk8YSB0aXRsZT0iSG9uZGEgUHJvbG9ndWUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0hvbmRhLVByb2xvZ3VlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkhvbmRhIFByb2xvZ3VlIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSG9uZGEvUHJvbG9ndWUvMjAyNS80NzczOTMvU2lsdmVyL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ3NzM5MywidGl0bGUiOiJIb25kYSBQcm9sb2d1ZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0hvbmRhLVByb2xvZ3VlLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEEiLCJwcm9tb3RleHQiOiJSZWNldmV6IHVuZSBvZmZyZSBwZXJzb25uYWxpc1x1MDBlOWUifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lciI+CgkJCQk8YnV0dG9uIHN0eWxlPSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQob3BlblNob3dyb29tQ29udGFjdFBvcHVwKGV2ZW50LCAnSG9uZGEnLCAnUHJvbG9ndWUnLCAnMjAyNScpKTsiPgoJICAgICAgICAgICAgICAgIENvbnRhY3Rlei1ub3VzCgkgICAgICAgICAgICA8L2J1dHRvbj4KCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94IGRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQSByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18yIj4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MTAgNDM3PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJQcm9sb2d1ZSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkhvbmRhIFByb2xvZ3VlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Ib25kYS1Qcm9sb2d1ZS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSG9uZGEiIGRhdGEtbW9kZWw9IlByb2xvZ3VlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SG9uZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlByb2xvZ3VlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIEVYIFRyYWN0aW9uIEludMOpZ3JhbGUgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYzIDQyOTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs2MCAwOTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtCYXJydXJlcyBkZSByb3VlcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzExMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NjMgNDI5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjZTMxNzNlOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUyIDk5Mjwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkhvbmRhIiBkYXRhLW1vZGVsPSJQcm9sb2d1ZSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODQwODYsNDg0MDg3LDQ4NDA4OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBIj4KCQkJCTxhIHRpdGxlPSJIb25kYSBQcm9sb2d1ZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSG9uZGEtUHJvbG9ndWUtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSG9uZGEgUHJvbG9ndWUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Ib25kYS9Qcm9sb2d1ZS8yMDI2LzQ4NDA4Ni9TaWx2ZXIvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDg0MDg2LCJ0aXRsZSI6IkhvbmRhIFByb2xvZ3VlIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvSG9uZGEtUHJvbG9ndWUtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiJkaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQSIsInByb21vdGV4dCI6IlJlY2V2ZXogdW5lIG9mZnJlIHBlcnNvbm5hbGlzXHUwMGU5ZSJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyIj4KCQkJCTxidXR0b24gc3R5bGU9IndpZHRoOjEwMCU7IiBjbGFzcz0iYnRuLWRlZmF1bHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6dm9pZChvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoZXZlbnQsICdIb25kYScsICdQcm9sb2d1ZScsICcyMDI2JykpOyI+CgkgICAgICAgICAgICAgICAgQ29udGFjdGV6LW5vdXMKCSAgICAgICAgICAgIDwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JJRVNCT1hXUkFQUEVSICgyMjA5KS0tPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJIb25kYSIgaWQ9ImlzQnJhbmRQYWdlIj4KCQkJCTwvZGl2PgoJCQkJPCEtLSBDTE9TRSBPVVRFUkJPWExBWUVSIC0tPgoJCQkJICAgIDxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIgZGl2RGlzY2xhaW1lckJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja1ZpZXciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja0NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2QmxvY2tUaXRsZSBibG9ja1RpdGxlU3R5bGUyIj4KICAgICAgICAgICAgICAgICAgICBDbGF1c2UgZGUgbm9uLXJlc3BvbnNhYmlsaXTDqQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja0NvbHVtbiBibGFjay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICBMZSBtb250YW50IGluZGlxdcOpIHJlcHLDqXNlbnRlIHVuZSBlc3RpbWF0aW9uIGR1IG1vbnRhbnQgcXVlIHZvdXMgcG91dmV6IHZvdXMgYXR0ZW5kcmUgw6AgcGF5ZXIgZW4gZG9sbGFycyBjYW5hZGllbnMuIExlcyB0YXhlcyBzb250IGV4Y2x1ZXMgKHNhdWYgaW5kaWNhdGlvbiBjb250cmFpcmUpLiBMZXMgcGhvdG9zIHJlcHLDqXNlbnRlbnQgbGUgbW9kw6hsZSBvZmZlcnQgbWFpcyBwZXV2ZW50IHZhcmllciBsw6lnw6hyZW1lbnQgZW4gY291bGV1ciwgb3B0aW9ucywgb3UgY2FyYWN0w6lyaXN0aXF1ZXMuIEJpZW4gcXVlIG5vdXMgbm91cyBlZmZvcmNpb25zIGRlIGdhcmFudGlyIGwnZXhhY3RpdHVkZSBkZXMgaW5mb3JtYXRpb25zIHN1ciBjZSBzaXRlIFdlYiwgbm91cyB2b3VzIHJlY29tbWFuZG9ucyBkZSBub3VzIGNvbnRhY3RlciBkaXJlY3RlbWVudCBwb3VyIHbDqXJpZmllciBsZXMgZMOpdGFpbHMgZXQgb2J0ZW5pciBkZXMgaW5mb3JtYXRpb25zIHN1cHBsw6ltZW50YWlyZXMgc3VyIGxlIHbDqWhpY3VsZSwgeSBjb21wcmlzIGxhIGNvbmZpcm1hdGlvbiBkZXMgcHJpeCwgZGVzIGNvdWxldXJzLCBkZXMgZmluaXRpb25zLCBkZXMgb3B0aW9ucyBldCBhdXRyZXMgc3DDqWNpZmljYXRpb25zLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgkJCTwvZGl2PgoJCQk8IS0tIENMT1NFIExFRlRCT1hMQVlFUiAtLT4KCQk8L2Rpdj4KCQk8IS0tIENMT1NFIE1BSU5CT1hMQVlFUiAtLT4KCQk8IS0tIE9QRU4gRk9PVEVSV0lER0VUIC0tPgoJCQk8ZGl2IGlkPSJkMmNfdmFycyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5ld2NhcnMuaHRtbCIgaWQ9IjE2ZDd2d3Q2NnBtb3dvMGsiIGRhdGEtZm9ydmFyPSJDVVJSRU5UUEFHRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxOTc5ZDVkYjE2ZjEzMmFiNmRkZGFhMDEyM2Q2YTgxNHwzNjAzNjkwMjYyIiBpZD0iM3BtNnR2Z3FxZWd3NHciIGRhdGEtZm9ydmFyPSJVU0VEX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjdlYjc3ZDc2Mzc0NWMzYmFmM2IwYjRiOTUxY2FjNTBjfDM2MDM2OTAyNjIiIGlkPSJyZDVwOHM0aDZyNHMwY2siIGRhdGEtZm9ydmFyPSJBREZfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBpZD0ic283eXVxYWo0ZHdjYzhzIiBkYXRhLWZvcnZhcj0iU0lURV9DQVJfU0VDVElPTl9UWVBFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjdjMjFhYTE1NzUxMjMyYWU0Mjc2OTgwMzNmNmRlYTI4fDM2MDM2OTAyNjIiIGlkPSIxM2RxdHNuY2Q4MXdrODQ0IiBkYXRhLWZvcnZhcj0iRklOQU5DRV9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSI3ZWI3N2Q3NjM3NDVjM2JhZjNiMGI0Yjk1MWNhYzUwY3wzNjAzNjkwMjYyIiBpZD0iNWNjeWdrOTI1bWd3ZzAiIGRhdGEtZm9ydmFyPSJGSU5BTkNFX0FERl9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJsaXZlIiBpZD0iMmVqaGJjMHl5b2cwd3d3IiBkYXRhLWZvcnZhcj0iREVQTE9ZTUVOVFRZUEUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSG9uZGEgRG9ubmFjb25hIiBpZD0iMTdnYTh2aG5jaHZrOGNnayIgZGF0YS1mb3J2YXI9IkRFQUxFUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJyZXNldCIgaWQ9IjZqeXA0NjY0dmd3czgwdyIgZGF0YS1mb3J2YXI9IlBPUFVQV0lER0VUVE9BQ1RJVkUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTmV1ZiIgaWQ9ImlwbnVtMm15MDBnOHMwMCIgZGF0YS1mb3J2YXI9IkNVUlJFTlRTRUNUSU9OVFhUIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9IjFlcml2OTAwcGRhODh3dzgiIGRhdGEtZm9ydmFyPSJNQUtFRk9SRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMTBwYTd2M3FlbGRjb3NrIiBkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSJyODJ6Zmt4YTJkd3NzMDAiIGRhdGEtZm9ydmFyPSJZRUFSIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9ImkzZ3NheGdzNWprOHdjayIgZGF0YS1mb3J2YXI9IlJFRkVSRVIiPgo8L2Rpdj48IS0tICMjRU5ET0ZQQUdFIyMgLS0+CgkJPGRpdiBjbGFzcz0iLS13MTAwcCAtY2xlYXIgLW12IC0tczUiPgoJCTxkaXYgaWQ9Imdvb2dsZVJldmlld3NGb290ZXIiPgkJPGRpdiBjbGFzcz0iLXcxMDBwIj4KCQkJPGRpdiBjbGFzcz0iZ29vZ2xlLWxvZ28iPgoJCQkJPGltZyBhbHQ9IkxvZ28gZGUgR29vZ2xlIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9ob25kYWRvbm5hY29uYS5jb20vL2ltYWdlcy9Hb29nbGUtbG9nby5wbmciIGRhdGEtb3QtaWdub3JlIHN0eWxlPSJ3aWR0aDphdXRvO2hlaWdodDo0LjVyZW07IiBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCTwvZGl2PgoJCQk8ZGl2IGlkPSJnb29nbGVfcmV2aWV3cyI+PC9kaXY+CgkJPC9kaXY+Cgo8IS0tIE9POjpjMGZiMzI4MGRjOGU1MWQ5MTNkNDZmMjU0MDlkYzJjMSAtLT48L2Rpdj4KCTwvZGl2PgoJCiAgICA8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2hvbmRhZG9ubmFjb25hLmNvbS8vaW1hZ2VzL2FqYXgtbG9hZGVyMi5naWYiIGFsdD0iYWpheCBsb2FkZXIyIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9kaXY+CiAgICA8ZGl2IGlkPSJpb3NfZml4ZWRfYmciPjwvZGl2PgoKCQkKCgkJPCEtLSBQcm9tb3Rpb25TaWRlQnRuIERJU0FCTEVEIEZPUiBTRUNUSU9OOiBORVcgLS0+CiAgICAKCQkKCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ib25MZWFkU3VibWl0R2VvbG9jIiB2YWx1ZT0iMSI+CiAgICAgICAgICAgIDxkaXYgaWQ9Imdlb2xvY2F0aW9uTXNnIiBzdHlsZT0iZGlzcGxheTpub25lOyBwb3NpdGlvbjogZml4ZWQ7IHotaW5kZXg6IDM2MDAxOyI+CiAgICAgICAgICAgICAgICA8aW1nIGFsdD0iRmzDqGNoZSBwb2ludGFudCB2ZXJzIGxlIGhhdXQiIGNsYXNzPSJidXR0b25fcG9pbnRlciBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9ob25kYWRvbm5hY29uYS5jb20vL2ltYWdlcy9yZWQtYXJyb3ctZ2wucG5nIiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OjMwMHB4OyB0b3A6MjVweDsiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOjQ5NXB4OyBoZWlnaHQ6YXV0bzsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM0NDQ7IHBhZGRpbmc6MzBweCAxMHB4IDE1cHg7IG1hcmdpbjowIDAgMCAwOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6MTBweDsiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PSJGZW1tZSBwb2ludGFudCB2ZXJzIGxhIGRyb2l0ZSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2hvbmRhZG9ubmFjb25hLmNvbS8vaW1hZ2VzL3dvbWFuLXBvaW50LXJpZ2h0LnBuZyIgc3R5bGU9ImZsb2F0OmxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOjE1cHg7IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDoyMTBweDsgbGluZS1oZWlnaHQ6IDEuMzsiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD0iTG9nbyBkZSBIb25kYSBEb25uYWNvbmEiIGNsYXNzPSJnZWFsb2NNc2dMb2dvIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2hvbmRhZG9ubmFjb25hLmNvbS8vaW1hZ2VzL0xvZ28vSG9uZGEtRG9ubmFjb25hLUxvZ28ucG5nIiBzdHlsZT0iZGlzcGxheTpibG9jazsgaGVpZ2h0OjMwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEFpZGV6IEhvbmRhIERvbm5hY29uYSDDoCBjb21wcmVuZHJlIGQnb8O5IHZpZW5uZW50IGxldXJzIHZpc2l0ZXVycy4gTWVyY2kgZGUgcGFydGFnZXIgdm90cmUgbG9jYXRpb24gYWN0dWVsbGUgZGUgZmHDp29uIDxzdHJvbmc+c3RyaWN0ZW1lbnQgY29uZmlkZW50aWVsbGU8L3N0cm9uZz4gZW4gY2xpcXVhbnQgc3VyIDxzdHJvbmc+J0F1dG9yaXNlcic8L3N0cm9uZz4uIE1lcmNpCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgaWQ9Imdlb2xvY2F0aW9uTXNnSUUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAwOyBsZWZ0OiA0MCU7IHotaW5kZXg6IDM2MDAxOyI+CiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDo0OTVweDsgaGVpZ2h0OmF1dG87IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojNDQ0OyBwYWRkaW5nOjEwcHggMTBweCAzMHB4OyBtYXJnaW46MCAwIDAgMDsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOjEwcHg7Ij4KICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD0iRmVtbWUgcG9pbnRhbnQgdmVycyBsYSBkcm9pdGUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9ob25kYWRvbm5hY29uYS5jb20vL2ltYWdlcy93b21hbi1wb2ludC1yaWdodC5wbmciIHN0eWxlPSJmbG9hdDpsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDoxNXB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6MjEwcHg7IGxpbmUtaGVpZ2h0OiAxLjM7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9IkxvZ28gZGUgSG9uZGEgRG9ubmFjb25hIiBjbGFzcz0iZ2VhbG9jTXNnTG9nbyBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9ob25kYWRvbm5hY29uYS5jb20vL2ltYWdlcy9Mb2dvL0hvbmRhLURvbm5hY29uYS1Mb2dvLnBuZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IGhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICAgICAgICAgICAgICBBaWRleiBIb25kYSBEb25uYWNvbmEgw6AgY29tcHJlbmRyZSBkJ2\/DuSB2aWVubmVudCBsZXVycyB2aXNpdGV1cnMuIE1lcmNpIGRlIHBhcnRhZ2VyIHZvdHJlIGxvY2F0aW9uIGFjdHVlbGxlIGRlIGZhw6dvbiA8c3Ryb25nPnN0cmljdGVtZW50IGNvbmZpZGVudGllbGxlPC9zdHJvbmc+IGVuIGNsaXF1YW50IHN1ciA8c3Ryb25nPidBdXRvcmlzZXInPC9zdHJvbmc+LiBNZXJjaQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbWcgYWx0PSJGbMOoY2hlIHBvaW50YW50IHZlcnMgbGUgYmFzIiBjbGFzcz0iYnV0dG9uX3BvaW50ZXIgbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaG9uZGFkb25uYWNvbmEuY29tLy9pbWFnZXMvcmVkLWRvd24tYXJyb3ctZ2wucG5nIiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAyOTVweDsgdG9wOi0yNXB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdlb2xvYy1tb2RhbC1iZyIgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgcmdiYSgwLDAsMCwwLjgpOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDsgdG9wOjA7IHotaW5kZXg6MzYwMDA7IGRpc3BsYXk6IG5vbmU7Ij48L2Rpdj4KCgoJCQk8IS0tIE9POjowMjRkMzhjOWUxYTAzN2RkNDE1OGEwY2E5NTc0NGUzMCAtLT4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBPTzo6ZjFkODU0ODIxMmI1ZGFkOTE3ZWM0ZWY3NmI0OTlkMjUgLS0+CgogICAgCgoJCTxkaXYgaWQ9IkhJRERFTl9JTlBVVFMiPgoJCQk8IS0tIGJ1bmRsaW5nIGhpZGRlbiBpbnB1dHMgdG8gcGxlYXNlIEdvb2dsZSAtLT4KCQkJPGRpdiBjbGFzcz0iaGlfX19fMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlIiB2YWx1ZT0iY2FyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGVVUkxTYWZlRU4iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRTdGF0dXMiIHZhbHVlPSJuZXciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dFVzZXJBZ2VudCIgdmFsdWU9IiAgIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50Q2FyUHJpY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRW1haWxMaW5rIiB2YWx1ZT0iRGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqSAobW9kdWxlIENvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeCkgbGUgeyRCQU5QTElOS30iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIiB2YWx1ZT0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMSIgdmFsdWU9IkphbnZpZXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMiIgdmFsdWU9IkbDqXZyaWVyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDMiIHZhbHVlPSJNYXJzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDQiIHZhbHVlPSJBdnJpbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg1IiB2YWx1ZT0iTWFpIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDYiIHZhbHVlPSJKdWluIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDciIHZhbHVlPSJKdWlsbGV0Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDgiIHZhbHVlPSJBb8O7dCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg5IiB2YWx1ZT0iU2VwdGVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEwIiB2YWx1ZT0iT2N0b2JyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxMSIgdmFsdWU9Ik5vdmVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEyIiB2YWx1ZT0iRMOpY2VtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJmZmRMMSIgdmFsdWU9IjNhZDE0ZmRhOGY1NmM2MjY4MmM2NWYwNzBlNmFlNjRkZmM2MzI3MjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzQVZHTWFya2V0UHJpY2VBY3RpdmUiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc0FWR01hcmtldFByaWNlQWN0aXZlQ2xlYXJhbmNlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2hvd09ubHlSZWR1Y2VkUHJpY2VDbGVhcmFuY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoYXNNdWx0aXBsZURlYWxlcnMiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZW5kRW1haWxUb0FsbERlYWxlcnMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZFZlaGljbGUiIHZhbHVlPSIgICI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1ha2UiIG5hbWU9InNlYXJjaGVkcXVlcnltYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIG5hbWU9InNlYXJjaGVkcXVlcnltb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeXllYXIiIG5hbWU9InNlYXJjaGVkcXVlcnl5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbWdzdnJwb29sYWN0aXZlIiBuYW1lPSJpbWdzdnJwb29sYWN0aXZlIiB2YWx1ZT0iVFJVRSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZWNvbXBpbGVpZCIgbmFtZT0ic2l0ZWNvbXBpbGVpZCIgdmFsdWU9IjZhNTJlMDQ5MjFjZTgiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVtYWlsTGlzdFN1ZmZpeCIgbmFtZT0iZW1haWxMaXN0U3VmZml4IiB2YWx1ZT0iMzYwMzY5MDI2MiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZVBvcHVwcyIgbmFtZT0iZGlzYWJsZVBvcHVwcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VFbmFibGVkIiBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgdmFsdWU9IjEiPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iaGlfX19fMiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIG5hbWU9IkFETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibmV3U2VjdGlvbm5hYmxlZCIgbmFtZT0ibmV3U2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InVzZWRTZWN0aW9ubmFibGVkIiBuYW1lPSJ1c2VkU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiBuYW1lPSJmaW5hbmNlU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VTZWN0aW9ubmFibGVkIiBuYW1lPSJzZXJ2aWNlU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InByb21vU2VjdGlvbm5hYmxlZCIgbmFtZT0icHJvbW9TZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGFyZ2V0UGFnZSIgbmFtZT0idGFyZ2V0UGFnZSIgdmFsdWU9Ik5FV0NBUlMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBhZ2VTZWN0aW9uIiBuYW1lPSJwYWdlU2VjdGlvbiIgdmFsdWU9Ik5FVyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIG5hbWU9IkRpc2NvdW50UG9wdXBPdGhlclBhZ2VzIiB2YWx1ZT0iSE9NRVBBR0U7UFJPTU87U0VSVklDRVM7RklOQU5DRTtURUFNO0NPTlRBQ1QiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPIiBuYW1lPSJTSE9XX1BPUFVQX0FVVE8iIHZhbHVlPSJkZWxheSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIG5hbWU9IlNIT1dfUE9QVVBfQVVUT19VU0VEIiB2YWx1ZT0ic2Nyb2xsdXAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNIT1dfUE9QVVBfQVVUT19ORVciIG5hbWU9IlNIT1dfUE9QVVBfQVVUT19ORVciIHZhbHVlPSJzY3JvbGx1cCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQIiBuYW1lPSJBVVRPX1BFUkNFTlRfUE9QVVAiIHZhbHVlPSI1MCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUF9VU0VEIiB2YWx1ZT0iNzUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFVVE9fUEVSQ0VOVF9QT1BVUF9ORVciIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUF9ORVciIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9VU0VEX1BBR0VfUE9QVVBfU0VMRUNUIiBuYW1lPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIHZhbHVlPSJJTkNMVURJTkciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiBuYW1lPSJHRU5FUkFMX05FV19QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IklOQ0xVRElORyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVVNFRF9MT0dPX09OX0NIRUNLIiBuYW1lPSJVU0VEX0xPR09fT05fQ0hFQ0siIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNFTV9CT09TVEVSX0FDVElWRSIgbmFtZT0iU0VNX0JPT1NURVJfQUNUSVZFIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iUEFHRUlEIiBuYW1lPSJQQUdFSUQiIHZhbHVlPSJuZXdjYXJzLmh0bWwiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkNSTV9XU1NfQUNUSVZFIiBuYW1lPSJDUk1fV1NTX0FDVElWRSIgdmFsdWU9Im5vIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJSRVFVRVNUX1NFTlQiIG5hbWU9IlJFUVVFU1RfU0VOVCIgdmFsdWU9IlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llISI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkQiIG5hbWU9IkRFQUxFUkJSQU5EIiB2YWx1ZT0iSG9uZGEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIG5hbWU9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIHZhbHVlPSJIb25kYSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSUEFDT0RFIiBuYW1lPSJERUFMRVJQQUNPREUiIHZhbHVlPSI3NzU2Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGSU5BTkNFRk9STVRZUEUiIG5hbWU9IkZJTkFOQ0VGT1JNVFlQRSIgdmFsdWU9Im11bHRpc3RlcCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSVElSRVJFRElSRUNUQ0hFQ0siIG5hbWU9IkRFQUxFUlRJUkVSRURJUkVDVENIRUNLIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJUSVJFUkVESVJFQ1RUWVBFIiBuYW1lPSJERUFMRVJUSVJFUkVESVJFQ1RUWVBFIiB2YWx1ZT0iY3VzdG9tIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJQQVJUUkVESVJFQ1RUWVBFIiBuYW1lPSJERUFMRVJQQVJUUkVESVJFQ1RUWVBFIiB2YWx1ZT0iY3VzdG9tIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJJU1ZNIiBuYW1lPSJJU1ZNIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHUldMIiBuYW1lPSJHUldMIiB2YWx1ZT0iYjJlMzUwYjcxYzE2NDZiN2VlZWM5ZTFhZjZjODU0YjEzY2IxZGI1MTtiYTZiODYxMWNiYTExNzgwMzFiMTdmYTdlMzUwYWNmMmNlMTM1YWE1OzA5YzM1ODA3YmE0N2E4MjU5MmVmODhlNWQ2MzA0ZWE2OTliOGNiZTIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkVNQUlMX0ZBSUxfTUVTU0FHRSIgdmFsdWU9IlVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdlbnZvaSBkZSB2b3RyZSBtZXNzYWdlLiBWZXVpbGxleiByw6llc3NheWVyLiI+CgkJCQk8IS0tIDxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvcHJpeC1vY2Nhc2lvbi8iIGlkPSdwcmljZVJlcXVlc3RGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZXNzYWlzLXJvdXRpZXItb2NjYXNpb24vIiBpZD0nU2NoZWR1bGVUZXN0RHJpdmVGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZmluYW5jZW1lbnQvIiBpZD0nRmluYW5jZUZvbGRlcicvPiAtLT4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvZGVtYW5kZXMvb2ZmcmUtb2NjYXNpb24vIiBpZD0idGV4dE1ha2VPZmZlckZvbGRlciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMCIgaWQ9Imhhc1ZCRENFbmFibGVkIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0ibWVudUxvY2siPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Im9lbUNlcnRpZmljYXRpb24iIHZhbHVlPSIxNCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE5ld1JlYmF0ZVNob3dUZXh0VXMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwVXNlZFJlYmF0ZVNob3dUZXh0VXMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb29raWVMb2dUb2tlbiIgdmFsdWU9Ik9EVTBORFV6TkRnNU16YzIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZVRvQ2hlY2siIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkaXNhYmxlSW50ZXJuYWxTZXNzaW9uIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGVhbGVyUHJvdmluY2VDb2RlIiB2YWx1ZT0iUUMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVJRCIgdmFsdWU9IjQ3OSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQURNSU5fTkVXX0RPTlRfU0hPV19QUklDRV9NT0RFTFMiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Ik5FV19QUklDRV9URVhUIiB2YWx1ZT0iQXBwZWxleiBwb3VyIHVuIHByaXgiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZpbmFuY2VfRm9ybVR5cGUiIHZhbHVlPSJtdWx0aXN0ZXAiPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8ZGl2IGlkPSJjb25maXJtX2Zvcm1zIj48L2Rpdj4KCgkJCgoJCTwhLS0gT086Ojk4ZWM5NTI1NWY0NGIzNWVmZTdhYzY3NGZhY2Q2NjhjIC0tPgkJCTxkaXYgaWQ9ImFzUG9wVXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgbWVkaXVtIj4KCQkJCTxmb3JtPgoJCQkJCTxkaXYgY2xhc3M9ImFzVGl0bGUgdGV4dC11cHBlcmNhc2UiPgoJCQkJCQlTVlAgY29uZmlybWVyCgkJCQkJPC9kaXY+CgoJCQkJCTxmaWVsZHNldCBzdHlsZT0iYm9yZGVyOiBub25lOyIgY2xhc3M9ImQyY2Zvcm0gZDJjZm9ybS0tcm93Ij4KCTxsZWdlbmQgY2xhc3M9InZpVGV4dCI+CgkJPGRpdiBjbGFzcz0icG9wdXAtcG9saWN5Ij5BZmluIGRlIHJlc3BlY3RlciBsYSBMb2kgQ2FuYWRpZW5uZSBBbnRpLVBvdXJyaWVsIGV0IGxhIExvaSAyNSBkdSBRdcOpYmVjLCBub3VzIHZvdXMgcHJpb25zIGRlIGJpZW4gdm91bG9pciBjb25maXJtZXIgc2kgdm91cyBzb3VoYWl0ZXogcmVjZXZvaXIgbm9zIGNvbW11bmljYXRpb25zIGZ1dHVyZXMgY29uY2VybmFudCBsZXMgcmFiYWlzLCBsZXMgcHJvbW90aW9ucywgbGVzIG9mZnJlcyBldCBsZXMgdmVudGVzIHByaXbDqWVzLiBWZXVpbGxleiBub3RlciBxdWUgdm91cyBwb3V2ZXogbW9kaWZpZXIgb3UgcmV0aXJlciBjZSBjb25zZW50ZW1lbnQgw6AgdG91dCBtb21lbnQuIEVuIGNsaXF1YW50IHN1ciBPdWksIHZvdXMgY29uZmlybWV6IGF2b2lyIGx1IGV0IGFjY2VwdMOpIG5vdHJlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSI\/cGF0aD0vcG9saXRpcXVlLWRlLWNvbmZpZGVudGlhbGl0ZS5odG1sIj5wb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqTwvYT4uPC9kaXY+Cgk8L2xlZ2VuZD4KCTxib3gtbGM+CgkJPGRpdiBjbGFzcz0icmFkaW8taW5saW5lIGZsZXgtYmV0d2VlbiBhbGlnbi1jZW50ZXIgZGVhbGVyQ29uc2VudCI+CgkJCTxkaXYgY2xhc3M9Ii13NTBwIj5Eb25uYWNvbmEgSG9uZGE8L2Rpdj4KCQkJPGxhYmVsIGNsYXNzPSItdzIwcCIgc3R5bGU9Im1hcmdpbjogMDsiPgoJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iMSIgbmFtZT0iY29uc2VudCIgaWQ9ImNvbnNlbnRZZXMiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQlPdWkKCQkJPC9sYWJlbD4KCQkJPGxhYmVsIGNsYXNzPSItdzIwcCIgc3R5bGU9Im1hcmdpbjogMDsiPgoJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iLTEiIG5hbWU9ImNvbnNlbnQiIGlkPSJjb25zZW50Tm8iIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQlOb24KCQkJPC9sYWJlbD4KCQkJPGRpdiBjbGFzcz0iY29uc2VudCBkaXNjbGFpbWVyIiBzdHlsZT0id2lkdGg6IDEyMHB4O21hcmdpbi1sZWZ0OiAxMHB4OyIgZGF0YS10b29sdGlwPSdFbiBmb3Vybmlzc2FudCBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcywgamUgY29uc2VucyDDoCBsZXVyIHV0aWxpc2F0aW9uIGV0IGxldXIgZGl2dWxnYXRpb24gY29uZm9ybcOpbWVudCDDoCBsYSBQb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqSBkZSBIb25kYSBEb25uYWNvbmEuIEplIGNvbmZpcm1lIGF2b2lyIGx1IGxhICZsdDthIGhyZWY9Ii9wb2xpdGlxdWUtZGUtY29uZmlkZW50aWFsaXRlLmh0bWwiJmd0O1BvbGl0aXF1ZSBkZSBjb25maWRlbnRpYWxpdMOpJmx0Oy9hJmd0Oy4gSmUgY29tcHJlbmRzIHF1ZSBIb25kYSBEb25uYWNvbmEgcGV1dCBwYXJ0YWdlciBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBhdmVjIGRlcyB0aWVycyBkYW5zIGxlIGJ1dCBkZSBnw6lyZXIgbWEgcmVsYXRpb24gYXZlYyBldXgsIHRlbHMgcXVlIG5vdHJlIGZvdXJuaXNzZXVyIGRlIGdlc3Rpb24gZGUgbGEgcmVsYXRpb24gY2xpZW50IChDUk0pLiBKZSBjb21wcmVuZHMgcXVlIGNlcnRhaW5zIGRlIGNlcyBmb3Vybmlzc2V1cnMgcGV1dmVudCBzdG9ja2VyIG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIHN1ciBkZXMgc2VydmV1cnMgZXQgZGVzIGJhc2VzIGRlIGRvbm7DqWVzIHNpdHXDqXMgZW4gZGVob3JzIGRlIG1hIHByb3ZpbmNlLiBKZSBjb21wcmVuZHMgw6lnYWxlbWVudCBxdWUgamUgcGV1eCByZXRpcmVyIG1vbiBjb25zZW50ZW1lbnQgZXQgbWUgZMOpc2Fib25uZXIgZGUgbGEgcsOpY2VwdGlvbiBkZSBjb21tdW5pY2F0aW9ucyBmdXR1cmVzIGRlIEhvbmRhIERvbm5hY29uYSDDoCB0b3V0IG1vbWVudC4gTGUgY29uc2VudGVtZW50IMOgIGxhIHLDqWNlcHRpb24gZGUgY29tbXVuaWNhdGlvbnMgw6lsZWN0cm9uaXF1ZXMgZXN0IHNvbGxpY2l0w6kgcGFyIEhvbmRhIERvbm5hY29uYS4nPkNsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpPC9kaXY+CgkJPC9kaXY+CgoJCQoKCQk8ZGl2IGNsYXNzPSItcHQxNSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBweDt0ZXh0LWFsaWduOiBjZW50ZXI7Y29sb3I6IHZhcigtLWRhcmstZ3JheSk7Ij5JTVBPUlRBTlQ6IFZvdXMgcG91dmV6IGZhY2lsZW1lbnQgcmV0aXJlciB2b3RyZSBjb25zZW50ZW1lbnQgZW4gdG91dCB0ZW1wcyE8L2Rpdj4KCTwvYm94LWxjPgo8L2ZpZWxkc2V0PgoKCQkJCQk8ZGl2IGNsYXNzPSJmbGV4LWJveCBmbGV4LWV2ZW5seSIgc3R5bGU9Im1hcmdpbi10b3A6IDM1cHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImNvbnNlbnRTdWJtaXQiIGNsYXNzPSIgYnRuLWRlZmF1bHQgIiB2YWx1ZT0iU291bWV0dHJlIj4KCQkJCQk8L2Rpdj4KCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdENvbnNlbnRQb3AiIHZhbHVlPSIiPgoJCQkJPC9mb3JtPgoJCQk8L2Rpdj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVJRCIgdmFsdWU9IjQ3OSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InB1cmNoYXNlX2ludGVudF9hbnN3ZXIiIHZhbHVlPSJQR0p5SUM4K1RHVWdZMnhwWlc1MElHRWdiQ2RwYm5SbGJuUnBiMjRnWkNkaFkyaGxkR1Z5SUhOdmJpQndjbTlqYUdGcGJpQjI2V2hwWTNWc1pTQThZajRsZEdsdFpXWnlZVzFsSlR3dllqNDhZbklnTHo0PSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InB1cmNoYXNlX2ludGVudF9ub19hbnN3ZXIiIHZhbHVlPSJjMkZ1Y3lCa1lYUmxJSEJ5NldOcGMyVT0iPgoJCTxkaXYgY2xhc3M9InJldmVhbC1tb2RhbCIgaWQ9ImFzUHVyY2hhc2VJbnRlbnQiPgoJCQk8Zm9ybSBtZXRob2Q9InBvc3QiPgoJCQkJPHN0cm9uZyBjbGFzcz0iYXNQSVRpdGxlIj4KCQkJCQlRdWVscXVlcyBwcsOpY2lzaW9ucwoJCQkJPC9zdHJvbmc+CgkJCQk8b2wgY2xhc3M9InN0ZXBzIj4KCgkJCQkJPGxpIGlkPSJBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPIiBjbGFzcz0iaGlkZGVuIj4KCQkJCQkJPGZpZWxkc2V0IHN0eWxlPSJib3JkZXI6IG5vbmU7IiBjbGFzcz0iZDJjZm9ybSBkMmNmb3JtLS1yb3ciPgoJCQkJCQkJPGxlZ2VuZCBjbGFzcz0idmlUZXh0Ij4KCQkJCQkJCQk8c3Ryb25nPk5vdXMgcGVybWV0dGV6LXZvdXMgZGUgcGFydGFnZXIgdm9zIGluZm9ybWF0aW9ucyBwZXJzb25uZWxsZXMgYXZlYyBsZXMgaW5zdGl0dXRpb25zIGZpbmFuY2nDqHJlcyBwb3VyIHZvdHJlIGJ1cmVhdSBkZSBjcsOpZGl0Pzwvc3Ryb25nPgoJCQkJCQkJPC9sZWdlbmQ+CgkJCQkJCQk8Ym94LWxjPgoJCQkJCQkJCTxkaXYgY2xhc3M9InJhZGlvLWlubGluZSI+CgkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iLXcyNXAiPgoJCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0ieWVzIiBuYW1lPSJzaGFyZV9wZXJzb25hbCIgaWQ9InNoYXJlUGVyc29uYWxZZXMiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCQlPdWkKCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSItdzI1cCI+CgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJubyIgbmFtZT0ic2hhcmVfcGVyc29uYWwiIGlkPSJzaGFyZVBlcnNvbmFsTm8iIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCQlOb24KCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQk8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmU7Y29sb3I6I2I1MDAwMDtwYWRkaW5nLXRvcDo0cHg7Y2xlYXI6IGJvdGg7IiBpZD0iQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIj5Wb3RyZSBjb25zZW50ZW1lbnQgZXN0IHJlcXVpcyBwb3VyIGNvbXBsw6l0ZXIgdm90cmUgZGVtYW5kZSBkZSBjcsOpZGl0ITwvZGl2PgoJCQkJCQkJPC9ib3gtbGM+CgkJCQkJCTwvZmllbGRzZXQ+CgkJCQkJPC9saT4KCgkJCQkJPGxpIGNsYXNzPSJzdGVwSW50ZW50IGhpZGRlbiI+CgkJCQkJCTxmaWVsZHNldCBzdHlsZT0iYm9yZGVyOiBub25lOyI+CgkJCQkJCQk8bGVnZW5kIGNsYXNzPSJ2aVRleHQiPgoJCQkJCQkJCTxzdHJvbmc+UXVhbmQgcHLDqXZveWV6LXZvdXMgYWNoZXRlciB1biB2w6loaWN1bGU\/PC9zdHJvbmc+CgkJCQkJCQk8L2xlZ2VuZD4KCQkJCQkJCTx1bCBjbGFzcz0idmlPcHRpb25zIj4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IkQnaWNpIDMwIGpvdXJzIiBuYW1lPSJwdXJjaGFzZV9pbnRlbnQiIGlkPSJwdXJjaGFzZUludGVudDEiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCTxsYWJlbCBmb3I9InB1cmNoYXNlSW50ZW50MSI+IEQnaWNpIDMwIGpvdXJzPC9sYWJlbD4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iRCdpY2kgMyBtb2lzIiBuYW1lPSJwdXJjaGFzZV9pbnRlbnQiIGlkPSJwdXJjaGFzZUludGVudDIiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCTxsYWJlbCBmb3I9InB1cmNoYXNlSW50ZW50MiI+IEQnaWNpIDMgbW9pczwvbGFiZWw+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IkQnaWNpIDYgbW9pcyIgbmFtZT0icHVyY2hhc2VfaW50ZW50IiBpZD0icHVyY2hhc2VJbnRlbnQzIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQk8bGFiZWwgZm9yPSJwdXJjaGFzZUludGVudDMiPiBEJ2ljaSA2IG1vaXM8L2xhYmVsPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpPgoJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJEJ2ljaSBwbHVzIGRlIDYgbW9pcyIgbmFtZT0icHVyY2hhc2VfaW50ZW50IiBpZD0icHVyY2hhc2VJbnRlbnQ0IiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQk8bGFiZWwgZm9yPSJwdXJjaGFzZUludGVudDQiPiBEJ2ljaSBwbHVzIGRlIDYgbW9pczwvbGFiZWw+CgkJCQkJCQkJPC9saT4KCQkJCQkJCTwvdWw+CgkJCQkJCTwvZmllbGRzZXQ+CgkJCQkJPC9saT4KCgkJCQkJPGxpIGNsYXNzPSJzdGVwQ29udGFjdCAiIGRhdGEtZGVwYXJ0bWVudHM9Im5ldzt1c2VkIj4KCQkJCQkJPGZpZWxkc2V0IHN0eWxlPSJib3JkZXI6IG5vbmU7IiBjbGFzcz0iZDJjZm9ybSBkMmNmb3JtLS1yb3ciPgoJCQkJCQkJPGxlZ2VuZCBjbGFzcz0idmlUZXh0Ij4KCQkJCQkJCQk8c3Ryb25nPlF1ZWxsZSBlc3Qgdm90cmUgbcOpdGhvZGUgZGUgY29udGFjdCBwcsOpZsOpcsOpZSA\/PC9zdHJvbmc+CgkJCQkJCQk8L2xlZ2VuZD4KCQkJCQkJCTxib3gtbGM+CgkJCQkJCQkJPGRpdiBjbGFzcz0icmFkaW8taW5saW5lIj4KCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSItdzMwcCI+CgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InByZWZlcnJlZF9jb250YWN0IiB2YWx1ZT0iVMOpbMOpcGhvbmUiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCQlUw6lsw6lwaG9uZQoJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCQk8bGFiZWwgY2xhc3M9Ii13MjVwIj4KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icHJlZmVycmVkX2NvbnRhY3QiIHZhbHVlPSJDb3VycmllbCIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJCUNvdXJyaWVsCgkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iLXcyNXAiPgoJCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwcmVmZXJyZWRfY29udGFjdCIgdmFsdWU9IlNNUyIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJCVNNUwoJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC9ib3gtbGM+CgkJCQkJCTwvZmllbGRzZXQ+CgkJCQkJPC9saT4KCgkJCQkJPGxpIGNsYXNzPSJzdGVwQ29uc2VudCI+CgkJCQkJCTxmaWVsZHNldCBzdHlsZT0iYm9yZGVyOiBub25lOyIgY2xhc3M9ImQyY2Zvcm0gZDJjZm9ybS0tcm93Ij4KCTxsZWdlbmQgY2xhc3M9InZpVGV4dCI+CgkJPGRpdiBjbGFzcz0icG9wdXAtcG9saWN5Ij5BZmluIGRlIHJlc3BlY3RlciBsYSBMb2kgQ2FuYWRpZW5uZSBBbnRpLVBvdXJyaWVsIGV0IGxhIExvaSAyNSBkdSBRdcOpYmVjLCBub3VzIHZvdXMgcHJpb25zIGRlIGJpZW4gdm91bG9pciBjb25maXJtZXIgc2kgdm91cyBzb3VoYWl0ZXogcmVjZXZvaXIgbm9zIGNvbW11bmljYXRpb25zIGZ1dHVyZXMgY29uY2VybmFudCBsZXMgcmFiYWlzLCBsZXMgcHJvbW90aW9ucywgbGVzIG9mZnJlcyBldCBsZXMgdmVudGVzIHByaXbDqWVzLiBWZXVpbGxleiBub3RlciBxdWUgdm91cyBwb3V2ZXogbW9kaWZpZXIgb3UgcmV0aXJlciBjZSBjb25zZW50ZW1lbnQgw6AgdG91dCBtb21lbnQuIEVuIGNsaXF1YW50IHN1ciBPdWksIHZvdXMgY29uZmlybWV6IGF2b2lyIGx1IGV0IGFjY2VwdMOpIG5vdHJlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSI\/cGF0aD0vcG9saXRpcXVlLWRlLWNvbmZpZGVudGlhbGl0ZS5odG1sIj5wb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqTwvYT4uPC9kaXY+Cgk8L2xlZ2VuZD4KCTxib3gtbGM+CgkJPGRpdiBjbGFzcz0icmFkaW8taW5saW5lIGZsZXgtYmV0d2VlbiBhbGlnbi1jZW50ZXIgZGVhbGVyQ29uc2VudCI+CgkJCTxkaXYgY2xhc3M9Ii13NTBwIj5Eb25uYWNvbmEgSG9uZGE8L2Rpdj4KCQkJPGxhYmVsIGNsYXNzPSItdzIwcCIgc3R5bGU9Im1hcmdpbjogMDsiPgoJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iMSIgbmFtZT0iY29uc2VudCIgaWQ9ImNvbnNlbnRZZXMiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQlPdWkKCQkJPC9sYWJlbD4KCQkJPGxhYmVsIGNsYXNzPSItdzIwcCIgc3R5bGU9Im1hcmdpbjogMDsiPgoJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iLTEiIG5hbWU9ImNvbnNlbnQiIGlkPSJjb25zZW50Tm8iIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQlOb24KCQkJPC9sYWJlbD4KCQkJPGRpdiBjbGFzcz0iY29uc2VudCBkaXNjbGFpbWVyIiBzdHlsZT0id2lkdGg6IDEyMHB4O21hcmdpbi1sZWZ0OiAxMHB4OyIgZGF0YS10b29sdGlwPSdFbiBmb3Vybmlzc2FudCBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcywgamUgY29uc2VucyDDoCBsZXVyIHV0aWxpc2F0aW9uIGV0IGxldXIgZGl2dWxnYXRpb24gY29uZm9ybcOpbWVudCDDoCBsYSBQb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqSBkZSBIb25kYSBEb25uYWNvbmEuIEplIGNvbmZpcm1lIGF2b2lyIGx1IGxhICZsdDthIGhyZWY9Ii9wb2xpdGlxdWUtZGUtY29uZmlkZW50aWFsaXRlLmh0bWwiJmd0O1BvbGl0aXF1ZSBkZSBjb25maWRlbnRpYWxpdMOpJmx0Oy9hJmd0Oy4gSmUgY29tcHJlbmRzIHF1ZSBIb25kYSBEb25uYWNvbmEgcGV1dCBwYXJ0YWdlciBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBhdmVjIGRlcyB0aWVycyBkYW5zIGxlIGJ1dCBkZSBnw6lyZXIgbWEgcmVsYXRpb24gYXZlYyBldXgsIHRlbHMgcXVlIG5vdHJlIGZvdXJuaXNzZXVyIGRlIGdlc3Rpb24gZGUgbGEgcmVsYXRpb24gY2xpZW50IChDUk0pLiBKZSBjb21wcmVuZHMgcXVlIGNlcnRhaW5zIGRlIGNlcyBmb3Vybmlzc2V1cnMgcGV1dmVudCBzdG9ja2VyIG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIHN1ciBkZXMgc2VydmV1cnMgZXQgZGVzIGJhc2VzIGRlIGRvbm7DqWVzIHNpdHXDqXMgZW4gZGVob3JzIGRlIG1hIHByb3ZpbmNlLiBKZSBjb21wcmVuZHMgw6lnYWxlbWVudCBxdWUgamUgcGV1eCByZXRpcmVyIG1vbiBjb25zZW50ZW1lbnQgZXQgbWUgZMOpc2Fib25uZXIgZGUgbGEgcsOpY2VwdGlvbiBkZSBjb21tdW5pY2F0aW9ucyBmdXR1cmVzIGRlIEhvbmRhIERvbm5hY29uYSDDoCB0b3V0IG1vbWVudC4gTGUgY29uc2VudGVtZW50IMOgIGxhIHLDqWNlcHRpb24gZGUgY29tbXVuaWNhdGlvbnMgw6lsZWN0cm9uaXF1ZXMgZXN0IHNvbGxpY2l0w6kgcGFyIEhvbmRhIERvbm5hY29uYS4nPkNsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpPC9kaXY+CgkJPC9kaXY+CgoJCQoKCQk8ZGl2IGNsYXNzPSItcHQxNSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBweDt0ZXh0LWFsaWduOiBjZW50ZXI7Y29sb3I6IHZhcigtLWRhcmstZ3JheSk7Ij5JTVBPUlRBTlQ6IFZvdXMgcG91dmV6IGZhY2lsZW1lbnQgcmV0aXJlciB2b3RyZSBjb25zZW50ZW1lbnQgZW4gdG91dCB0ZW1wcyE8L2Rpdj4KCTwvYm94LWxjPgo8L2ZpZWxkc2V0PgoJCQkJCTwvbGk+CgkJCQk8L29sPgoJCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9Ii10ZXh0LWNlbnRlciI+CgkJCQk8YnV0dG9uIGlkPSJlbWFpbENvbnNlbnRTdWJtaXQiIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiPlNPVU1FVFRSRTwvYnV0dG9uPgoJCQk8L2Rpdj4KCQk8L2Rpdj4JCQkKCgkJCQoJCTxzdHlsZT4KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICp7CgkJCQl3aWR0aDogY2xhbXAoMjAuNXJlbSwgbWF4KDkwdncsIDIwLjVyZW0pLCA2MHJlbSk7CgkJCQlkaXJlY3Rpb246IHJ0bDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjID4gKiA+ICp7CgkJCQlkaXJlY3Rpb246IGluaXRpYWw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPjpsYXN0LWNoaWxkewoJCQkJd2lkdGg6IDIwcmVtOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGN7CgkJCQktLXNpZGViYXItYnA6IDQwJTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzd2l0Y2hlci1sY3sKCQkJCS0tc3dpdGNoLWJwOiAzNXJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgbGFiZWx7CgkJCQltYXgtd2lkdGg6MTlyZW07CgkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJZmxleC13cmFwOiB3cmFwOwoJCQkJanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwoJCQl9CgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsIHNwYW57CgkJCQl3aWR0aDo0cmVtOwoJCQl9CgoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBbdHlwZT0ic3VibWl0Il17CgkJCQltYXgtd2lkdGg6MTlyZW07CgkJCX0KCgkJCS5jb250YWN0TWFwQ29udGFpbmVyewoJCQkJaGVpZ2h0OjEwMCU7CgkJCQltaW4taGVpZ2h0Om1pbig3NXZoLCAzOHJlbSk7CgkJCX0KCgkJCS5jb250YWN0Rm9ybXsKCQkJCWJvcmRlci1jb2xvcjojYmJiOwoJCQkJYm94LXNpemluZzogYm9yZGVyLWJveDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCAuY29udGFjdEZvcm0gaW5wdXR7CgkJCQltYXgtd2lkdGg6IDEwcmVtOwoJCQl9CgoKCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWR7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiMwMDA7CgkJCQlib3JkZXItY29sb3I6IzAwMDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCAuZmxhdHBpY2tyLXRpbWUgOmlzKGlucHV0OmhvdmVyLGlucHV0OmZvY3VzKXsKCQkJCWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwoJCQl9CgoJCQkuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGgsIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHN7CgkJCQl0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7CgkJCX0KCgkJCS8qIC5kcC1sYXJnZSAuZmxhdHBpY2tyLWNhbGVuZGFyewoJCQkJd2lkdGg6MzByZW07CgkJCQlmb250LXNpemU6MS4xcmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci13ZWVrZGF5c3sKCQkJCWhlaWdodDoyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSAuZmxhdHBpY2tyLWRheXsKCQkJCW1heC13aWR0aDogNHJlbTsKCQkJCWhlaWdodDogMi41cmVtOwoJCQkJbGluZS1oZWlnaHQ6IDIuNXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIDppcyguZmxhdHBpY2tyLWRheXMsLmRheUNvbnRhaW5lcikgewoJCQkJd2lkdGg6MTAwJTsKCQkJCW1heC13aWR0aDogMzByZW07CgkJCX0gKi8KCQk8L3N0eWxlPgoKCQkJPGRpdiBpZD0ibGVhZERlYWxlckFwcG9pbnRtZW50IiBoaWRkZW4+CgkJCQk8ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIiPgoJCQkJPHNpZGViYXItbGM+CgkJCQkJPGRpdj4gPCEtLSBpbnRlcm1lZGlhcnkgd3JhcHBlciAtLT4KCgkJCQkJCTxib3gtbGM+CgkJCQkJCQk8c3RhY2stbGMgY2xhc3M9ImFsaWduLWNlbnRlciI+CgkJCQkJCQkJPHVsIGNsYXNzPSJjaGVja2xpc3QgLWZzLTEgLS1zIj4KCQkJCQkJCQkJPGxpPlVuZSBleHDDqXJpZW5jZSBwZXJzb25uYWxpc8OpZSBkw6hzIHZvdHJlIGFycml2w6llPC9saT4KCQkJCQkJCQkJPGxpPkF1Y3VuZSBhdHRlbnRlIGNoZXogbGUgY29uY2Vzc2lvbm5haXJlPC9saT4KCQkJCQkJCQkJPGxpPkF1Y3VuZSBwYXBlcmFzc2UgaW51dGlsZTogY29uY2VudHJlei12b3VzIHN1ciBsZSB2w6loaWN1bGU8L2xpPgoJCQkJCQkJCTwvdWw+CgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iZmxleC1jZW50ZXIiPgoJCQkJCQkJCQk8aW5wdXQgY2xhc3M9ImRhdGVwaWNrZXIgZmxhdHBpY2tyLWlucHV0IiBoaWRkZW4gdHlwZT0idGV4dCIgdGl0bGU9IlNlbGVjdCBEYXRlLi4uIiBwbGFjZWhvbGRlcj0iU2VsZWN0IERhdGUuLi4iIGRhdGEtaWQ9ImlubGluZSIgcmVhZG9ubHk+CgkJCQkJCQkJPC9ib3gtbGM+CgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iY29udGFjdEZvcm0gLWIgLXctMTAwIGZsZXgtY2VudGVyIC0tczIiPgoJCQkJCQkJCQk8Zm9ybSBpZD0iZm9ybURlYWxlckFwcG9pbnRtZW50IiBjbGFzcz0iLXctMTAwIiBub3ZhbGlkYXRlPgoJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMyIGFsaWduLWNlbnRlciI+CgoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItYm9sZCB0eHQtY2VudGVyIHR4dC11cHBlciBzZWxlY3RlZFRpbWUiPjwvc3Bhbj4KCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYXRlIj4KCgkJCQkJCQkJCQkJPHN3aXRjaGVyLWxjPgoJCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciI+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Ob20gKjwvc3Bhbj4KCQkJCQkJCQkJCQkJCQk8aW5wdXQgcmVxdWlyZWQgY2xhc3M9Ii1waCIgbmFtZT0ibmFtZSIgdHlwZT0idGV4dCI+CgkJCQkJCQkJCQkJCQk8L2xhYmVsPgoKCQkJCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCQkJCQkJCTxzcGFuPkNvdXJyaWVsICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IG5hbWU9ImVtYWlsIiB0eXBlPSJlbWFpbCIgcmVxdWlyZWQ+CgkJCQkJCQkJCQkJCQk8L2xhYmVsPgoKCQkJCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCQkJCQkJCTxzcGFuPlTDqWzDqXBob25lICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IGRhdGEtcHJpc3RpbmUtcGhvbmUgbmFtZT0icGhvbmVudW0iIHR5cGU9InRlbCIgcmVxdWlyZWQ+CgkJCQkJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJCQk8L3N3aXRjaGVyLWxjPgoKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJyZWNhcHRjaGEtZGlzY2xhaW1lciI+V0VCX1NJVEVfR0VORVJBVE9SX1JFQ0FQVENIQV9ESVNDTEFJTUVSPC9kaXY+CgkJCQkJCQkJCQkJPGJ1dHRvbiBvbnN1Ym1pdD0iamF2YXNjcmlwdDp2b2lkKCkiIGNsYXNzPSJidG4gYnRuLXByb21vIC1mcy1sciAtdy0xMDAgdHh0LXVwcGVyIC1ib2xkIiB0eXBlPSJzdWJtaXQiPgoJCQkJCQkJCQkJCQlQcmVuZHJlIHJlbmRlei12b3VzCgkJCQkJCQkJCQkJPC9idXR0b24+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJkYXRhIiB0eXBlPSJoaWRkZW4iIGRhdGEtbWFrZT0iIiBkYXRhLW1vZGVsPSIiIGRhdGEteWVhcj0iIiBkYXRhLXRyaW09IiIgZGF0YS1jb25kaXRpb249IiIgZGF0YS1rbT0iIiBkYXRhLXZpbj0iIiBkYXRhLXN0b2NrLW51bWJlcj0iIj4KCgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUbyIgdmFsdWU9IjE5NzlkNWRiMTZmMTMyYWI2ZGRkYWEwMTIzZDZhODE0fDM2MDM2OTAyNjIiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUb0FERkZvcm1hdCIgdmFsdWU9IjdlYjc3ZDc2Mzc0NWMzYmFmM2IwYjRiOTUxY2FjNTBjfDM2MDM2OTAyNjIiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9Im1haWxJRCIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJwb3B1cE9mZmVyVHlwZSIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50QWxsIiB0eXBlPSJoaWRkZW4iPgoKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJsZWFkRW1haWwiIGhpZGRlbj4KCQkJCQkJCQkJCQkJPHNwYW4gZGF0YS1zdWJqZWN0PkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLWJvZHk+Qm9uam91ciw8YnI+PGJyPlVuIGNsaWVudCBwb3RlbnRpZWwgYXlhbnQgdmlzaXTDqSB2b3RyZSBzaXRlIHdlYiwgYWltZXJhaXQgcHJlbmRyZSB1biByZW5kZXotdm91czo8YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2w6loaWN1bGU8L3U+Ojxicj5Nb2TDqGxlOiA8c3Ryb25nPiAgPC9zdHJvbmc+PGJyPk5JVjogPHN0cm9uZz57JFZJTn08L3N0cm9uZz48YnI+TnVtw6lybyBkZSBzdG9jazogPHN0cm9uZz57JFNUT0NLTlVNQkVSfTwvc3Ryb25nPjxicj5LaWxvbcOodHJlczogPHN0cm9uZz57JEtNfTwvc3Ryb25nPjxicj48YnI+PHU+RGF0ZSBkdSByZW5kZXotdm91cyBzb3VoYWl0w6k8L3U+IDogPHN0cm9uZz57JERBVEV9PC9zdHJvbmc+PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+Ojxicj5Ob206IDxzdHJvbmc+eyROQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPjxicj5Uw6lsw6lwaG9uZTogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD10ZWw6JTdCJTI0UEhPTkVOVU0lN0QiPnskUEhPTkVOVU19PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPjxicj48dT5Db25jZXNzaW9uPC91Pjo8YnI+Tm9tIDogPHN0cm9uZz57JERFQUxFUk5BTUV9PC9zdHJvbmc+PGJyPjxicj48ZGl2IHN0eWxlPSIjI1NFT0JMT0NLRElTUExBWSMjIj5Tb3VyY2UgTcOpZGlhOiA8c3Ryb25nPnskVVRNREVUQUlMU308L3N0cm9uZz48YnI+TmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+SGlzdG9yaXF1ZSBkZSBuYXZpZ2F0aW9uOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPSU3QiUyNFVVTElOSyU3RCIgcmVsPSJub2ZvbGxvdyB1Z2Mgc3BvbnNvcmVkIG5vaW5kZXgiIHN0eWxlPSJjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q2xpcXVleiBpY2k8L2E+PC9zdHJvbmc+PGJyPjwvZGl2PkNvbnNlbnRlbWVudDogPHN0cm9uZz57JENPTlNFTlRfREVUQUlMU308L3N0cm9uZz57JFBVUkNIQVNFX0lOVEVOVH08L3NwYW4+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQk8ZGl2PgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJjb250YWN0TWFwQ29udGFpbmVyIC0tcy04IC1iZy1saWdodCIgaWQ9ImZvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIj4KCgkJCQkJCQkJCgkJCTxpZnJhbWUgdGl0bGU9Ikdvb2dsZSBNYXAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZyYW1lYm9yZGVyPSIwIiBjbGFzcz0iIGxhenlsb2FkZWQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKd1pvTy1wMS14MHdSMTFReTV2Y3ZpSGsmYW1wO2tleT1BSXphU3lDcktENlpQck9MZ21HV3JXX1lSMDlfZW15aVZxbDdfX2cmYW1wO3pvb209MTQmYW1wO3JlZ2lvbj1DQSZhbXA7bGFuZ3VhZ2U9ZnIiIGFsbG93ZnVsbHNjcmVlbj0iIj48L2lmcmFtZT4KCgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iY29udGFjdEJsb2NrIC0tczIgLW0wIj4KCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMzIj4KCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItLWZzMCI+SG9uZGEgRG9ubmFjb25hPC9zcGFuPgoJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1Ib25kYSUyQkRvbm5hY29uYSUyQzE1OSsrcnVlK0NvbW1lcmNpYWxlJTJDRG9ubmFjb25hJTJDUUMlMkNHM00rMVcyJmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4JmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKd1pvTy1wMS14MHdSMTFReTV2Y3ZpSGsiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxzcGFuPjE1OSwgcnVlIENvbW1lcmNpYWxlPC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+RG9ubmFjb25hLCBRQzwvc3Bhbj4KCQkJCQkJCQkJCQkJCTxzcGFuPkczTSAxVzI8L3NwYW4+CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5Uw6lsw6lwaG9uZTwvc3Bhbj4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMtMSI+CgkJCQkJCQkJCQkJCQk8YSBocmVmPSI\/cGF0aD10ZWw6NDE4JTIwMjg1LTMyMjAiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiIHRpdGxlPSJDb250YWN0IFBob25lIj40MTggMjg1LTMyMjA8L2E+CgkJCQkJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5IZXVyZXM8L3NwYW4+CgkJCQkJCQkJCQkJCQkJCTxkaXYgaWQ9Iml0ZW1fbmV3Ij4KCQkJCTxzdGFjay1sYyBjbGFzcz0iaG91cnNMaXN0Ij4KCQkJCQkJCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODozMCIgZGF0YS1tYXhob3VyPSIxOTowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkx1bmRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MzAgLSAxOTowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjMwIiBkYXRhLW1heGhvdXI9IjE5OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+TWFyZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODozMCAtIDE5OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDg6MzAiIGRhdGEtbWF4aG91cj0iMTk6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NZXJjcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA4OjMwIC0gMTk6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODozMCIgZGF0YS1tYXhob3VyPSIxOTowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkpldWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MzAgLSAxOTowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjMwIiBkYXRhLW1heGhvdXI9IjE3OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+VmVuZHJlZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODozMCAtIDE3OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMTA6MDAiIGRhdGEtbWF4aG91cj0iMTQ6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5TYW1lZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4xMDowMCAtIDE0OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMCIgZGF0YS1tYXhob3VyPSIwIiBkYXRhLWNsb3NlZD0iMSI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+RGltYW5jaGU8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj5GZXJtw6k8L3NwYW4+CgkJCQk8L2JveC1sYz4KCQkJCTwvc3RhY2stbGM+CgkJCTwvZGl2PgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC9zaWRlYmFyLWxjPgoJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuU2l0ZUlEIiB2YWx1ZT0iNDc5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5Ta2lwT25sb2FkUHJpbnRzY3JlZW4iIHZhbHVlPSIjI0RPTlRfU0tJUF9PTkxPQUQjIyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuUHJpbnRzY3JlZW5LZXkiIHZhbHVlPSIjI1BSSU5UU0NSRUVOX0tFWSMjIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5EZWFsZXJOYW1lIiB2YWx1ZT0iSG9uZGEgRG9ubmFjb25hIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNCQkNoZWNrVXNlciIgdmFsdWU9Ik1UZ3VPVGN1T1M0eE56ST0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9lbWFpbHMiIHZhbHVlPSIiPjwhLS0gT086OjNhMjQ2YTc5OGQyNWRjYzMzMTU3NmViNWZkODBkNDdlIC0tPgkJCTxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbjsiPgoJCQkgIAoKCQkJICAJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb29rX2lzX2FjdGl2ZSIgdmFsdWU9IjEiIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAyLUMwMDAzLUMwMDA0LUMwMDA1Ij4KCQkJCTwhLS0gRmFjZWJvb2sgUGl4ZWwgQ29kZSBWaWV3Q29udGVudCAgLS0+CgkJCQk8IS0tIE9POjo4YzNlMjJmN2ViYjdlZDY0NzllYjUwMTdmNWYxMDg1NyAtLT4KCQkJCTxub3NjcmlwdD4KCQkJCQk8aW1nIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD0xMjkzMzQyMjg0MDYwOTM0JmFtcDtldj1QYWdlVmlldyZhbXA7bm9zY3JpcHQ9MSIgYWx0PSJ0ciBpZCAxMjkzMzQyMjg0MDYwOTM0IGV2ICBwYWdlIHZpZXcgbm9zY3JpcHQgMSIgaGVpZ2h0PSIxIiBzdHlsZT0iZGlzcGxheTpub25lIiB3aWR0aD0iMSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9ub3NjcmlwdD4KCQkJPCEtLSBFbmQgRmFjZWJvb2sgUGl4ZWwgQ29kZSBWaWV3Q29udGVudCAtLT4KCgkJICA8L2Rpdj4KCgkJICA8ZGl2IGlkPSJjb252ZXJzaW9uVGFnc1dyYXBwZXIiPjwvZGl2PgoKCQkJPCEtLSBEV1AtMjQzOSAtLT4KCgkJCTwhLS0gT086OjgzYzI1MjhhNzUzODBjMDc4NzJlOTJhZDJjOTlhZTJlIC0tPgoKPCEtLSBDVVNUT00gQk9EWSBGUkVFRklFTEQgLS0+CiAKPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLSBTVEFSVCAtLSBGYWNlYm9vayAvIE1ldGEgUGl4ZWwgKG5vc2NyaXB0KSAtLSBSRVFVRVNURVI6IEN1c3RvbWVyIC0tPgo8bm9zY3JpcHQ+PGltZyBhbHQ9ImZhY2Vib29rIHBpeGVsIHRyYWNraW5nIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD0zMzY4MDIwNzAyNTI1MjQmYW1wO2V2PVBhZ2VWaWV3JmFtcDtub3NjcmlwdD0xIiBoZWlnaHQ9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHdpZHRoPSIxIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9ub3NjcmlwdD4KPCEtLSBFTkQgLS0gRmFjZWJvb2sgLyBNZXRhIFBpeGVsIChub3NjcmlwdCkgLS0gUkVRVUVTVEVSOiBDdXN0b21lciAtLT4KCjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAyLS0+Cgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKIDwhLS0gRU5EIENVU1RPTSBCT0RZIEZSRUVGSUVMRCAtLT48c2NyaXB0IHNyYz0iaHR0cHM6Ly9haWFwcHMuZDJjbWVkaWEuY2EvY2hhdGJvdC9kMmNib3Qtd2lkZ2V0LmpzIiBkYXRhLWNoYXQtd2lkZ2V0PSIiPjwvc2NyaXB0PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9haWFwcHMuZDJjbWVkaWEuY2EvY2hhdGJvdC9kMmNib3Qtd2lkZ2V0LmNzcyI+CgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZSIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPlZvdHJlIGRlbWFuZGUgYSDDqXTDqSBlbnZvecOpZSBhdmVjIHN1Y2PDqHMuIFVuIHJlcHLDqXNlbnRhbnQgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpIHBvdXIgdm90cmUgZGVtYW5kZS4gVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybSIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI4NjE1NTQ1MTciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJYZkhBQ09fRDZXMFExWTdwbWdNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMTI5MzM0MjI4NDA2MDkzNCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJob25kYWRvbm5hY29uYS5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fZmFpbENvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQoJCTxkaXYgaWQ9ImQyY0Zvb3RlckNvb2tpZURlbGV0ZSIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo1ODBweDtoZWlnaHQ6MzUwcHg7cGFkZGluZzo7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfZDJjZm9vdGVyY29va2llZGVsZXRlIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjcxMzA3ODAxMDQ1MmFmYjA1MTVlNmEyZDRlZDRhY2QzIC0tPgoKCQkKCQkKCQk8IS0tIENMT1NFIEZPT1RFUldJREdFVCAtLT4KCQk8IS0tIE9QRU4gUE9QVVBXSURHRVQgLS0+CgkJPCEtLSBNQUlOIFBPUFVQIG5ldyBNdWx0aWZvcm1Qb3B1cCAtLT4KCQkKCQk8ZGl2IGlkPSJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo1ODBweDtoZWlnaHQ6NTUwcHg7cGFkZGluZzowcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfbXVsdGlmb3JtcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6MmQzMzk5MjY3ZDVlZWU1ZGE0NWRhNTA1MmQ4N2JkZWEgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfbXVsdGlmb3JtUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5Wb3RyZSBkZW1hbmRlIGEgw6l0w6kgZW52b3nDqWUgYXZlYyBzdWNjw6hzLiBVbiByZXByw6lzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5Wb3RyZSBkZW1hbmRlIGEgw6l0w6kgZW52b3nDqWUgYXZlYyBzdWNjw6hzLiBVbiByZXByw6lzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9tdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSJCZXN0IG9mZmVyIChOZXcpIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iODYxNTU0NTE3Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iWGZIQUNPX0Q2VzBRMVk3cG1nTSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjEyOTMzNDIyODQwNjA5MzQiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0iaG9uZGFkb25uYWNvbmEuY29tIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9tdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OmIxOTI1YzJkM2QzYThkMzhmNjRjNGYwODI0Mzg0OTEzIC0tPgoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIENSRURJVCBTQ09SRSBQT1BVUCAtLT4KCQkKCQk8ZGl2IGlkPSJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjc2MHB4O2hlaWdodDozODBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19jcmVkaXRzY29yZXBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjgyYzc4OWVjMTRkZWUxMzdjNzI1ZDg3NGY4NDNmZWI0IC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9Ijg2MTU1NDUxNyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IlhmSEFDT19ENlcwUTFZN3BtZ00iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSIxMjkzMzQyMjg0MDYwOTM0Ij4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9ImhvbmRhZG9ubmFjb25hLmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OmQ2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwIC0tPgoJCQo8IS0tIEVORCBDUkVESVQgU0NPUkUgUE9QVVAgLS0+Cgo8IS0tIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoJCQoJCTxkaXYgaWQ9ImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjUyMHB4O21pbi1oZWlnaHQ6NDUwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY3JlZGl0c2NvcmVjb25maXJtcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6YmZjMzMxMzI2MDdjMThkNTg1NGRlMWZmNjgzYmQ0NTkgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI4NjE1NTQ1MTciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJYZkhBQ09fRDZXMFExWTdwbWdNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMTI5MzM0MjI4NDA2MDkzNCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJob25kYWRvbm5hY29uYS5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fZmFpbENvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQkJPCEtLSBPTzo6MzYzODdkOTIwOTY4NzhkNzliMDU2OTE1ZWNiNTM0OGYgLS0+CgkJCjwhLS0gRU5EIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKCQkKCQk8ZGl2IGlkPSJjb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY29udGFjdHBvcHVwIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmQzNTIwYjNhY2Y2OTY5NTJmMjM3ZTFmMWI0NGE1ZDU4IC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIG1lc3NhZ2UgYSBiaWVuIMOpdMOpIGVudm95w6khPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+TWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX2NvbnRhY3Rwb3B1cCIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI4NjE1NTQ1MTciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJYZkhBQ09fRDZXMFExWTdwbWdNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMTI5MzM0MjI4NDA2MDkzNCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJob25kYWRvbm5hY29uYS5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OjNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjIC0tPgoJCQoKCjwhLS0gRklOQU5DRSBNVUxUSVNURVAgUE9QVVAgbmV3IC0tPgoJCQoJCTxkaXYgaWQ9ImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo1ODBweDtoZWlnaHQ6NDQ1cHg7cGFkZGluZzo7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfZmluYW5jZW11bHRpc3RlcHBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjFhYTVmM2UxOGJiZGRmOTg0NTEzYjBiZWZiM2ZmOWJhIC0tPgoKCQkKCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBFTkQgRklOQU5DRSBNVUxUSVNURVAgSU5TVEFOVCAtLT4KCjwhLS0gQ1JFRElUIEJPT1NUIE1VTFRJIC0tPgoKPCEtLSBFTkQgQ1JFRElUIEJPT1NUIE1VTFRJIC0tPgoKPCEtLSBTRUNPTkQgQ0hBTkNFIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gUkVUVVJOIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gRVhJVCBQT1BVUCBuZXcgLS0+CgkJCgkJPGRpdiBpZD0iZXhpdFBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIHBvcHVwLWRvbS1saWdodGJveC13cmFwcGVyIiBzdHlsZT0id2lkdGg6ODIwcHg7aGVpZ2h0OjU0MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2V4aXRwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpkZjM3OTM3MmNmZGFmMTgwNzlkMmUzZDI4YjE4MTkyNSAtLT4KCgkJCgkJCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gQkVTVCBQUkFDVElDRSBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+CgkJPCEtLSBDTE9TRSBQT1BVUFdJREdFVCAtLT4KCQkKCQk8IS0tIFBBWU1FTlQgQ0FMQ1VMQVRPUiBQT1BVUCAgLS0+CgkJCgkJPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo5MDBweDttaW4taGVpZ2h0OjQ5NXB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3BheW1lbnRjYWxjdWxhdG9ycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6YmJlNzAyOWQ1MTIwOWIyYWZlMDAwYzYxM2YyOGRjYzcgLS0+CgoJCQoJCTwhLS0gRU5EIFBBWU1FTlQgQ0FMQ1VMQVRPUiAgLS0+CgoKCQk8ZGl2IGlkPSJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij48L2Rpdj4KCTxzY3JpcHQgZGF0YS1zY29kZXJlZj0iMjExMS1CIiBzcmM9Imh0dHBzOi8vaG9uZGFkb25uYWNvbmEuY29tL2pzL21hcHMuanMucGhwPyZhbXA7bGFuZz1mciIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJkZWZhdWx0RGVwYXJ0bWVudCI+CgoJPC9kaXY+","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/hondadonnacona.com\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVTtjtMwEHwh2nIF8QD0qAAdolAQP09bZ5Ns63iDvUmv9_RseorttFfxo2o8Y3s_ZtaLfVjs_3boT_N9eLNIK8N8IBzBHhxZC_r1ggflXUAnr21wosQDQ4H-9vlptB0E_PD-AizAH4TZCrUXTA-WCpKYcwPkxm8Lz6dAzxqiSWCKX_h7CsYCNei_bqf3zjqalWCE_WlxN797N18m4vXbgu6NTUJNw34GV9hU-L6GUAvsbNzl8GjAxwYUS_MIwTxWEMtvPTn5VVPcM-3Omjwe2R9ez4gaCDeokn2Tdcz-6MgcPg1ff6ioMGpZoUNP5psSIyRe1fziPoK_Rr736C2cJgS5ltsuynZeqCbJD5mmx63xIKbeQDFC4VhOOhs92Tkp-BhrK0Dwt5C9tJPHHsFegK1HkdOmZuHlBaU5u0BC7PLOjSR3pt4eqcWcbKHCHTiXaqqYK6seaGM2JbOgnza3hJ49SZoAbtHV3Plw5X5BUZe2KlIKMqi1NTUWnTpqOX-b45-etMQQfqJeEGQaduDvsSR3rnKjBszEIK19pWOr1l9nHqmQH9jAuS2juAxB4sGgU4jTOLU0dmnA9ZA7XMxh0bWeS9KsNQnVJm9lbpWm03kfsthMDFSUk7XD3Qrs8HevbVq7a3yV9O87HH6ToXiBZlLj7DwwozqamzP4eM4iCMaABqzpLKgp150zQ0su9cInkofhTGYJ89LUaSlwavR9XMULrwe14SLLPsIW04QkFJ6Ib7x1-pAEIYc3ngONPpjL_48uk-AHtChqh6EwzzZ76CK1wzKbXD07Pnjk7JDLPvwD&jsrpl=&wswidth=0&device=desktop&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}