{"title":"PHRpdGxlPkxpbmNvbG4gbmV1ZnMgMjAyNSAmYW1wOyAyMDI2IMOgIENoZWxtc2ZvcmQsIEdyYW5kZSB2aWxsZSBkZSBTdWRidXJ5IHwgQmVsYW5nZXIgTGluY29sbjwvdGl0bGU+","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"Ci8vZGF0YS1zY29kZXJlZj0iUVBRLTIxMzU1NTU1MjY2MjI1IgooZnVuY3Rpb24oKXt2YXIgbGFzdFdpZHRoPTA7dmFyIGZpcnN0UnVuPTE7dmFyIHRpbWVvdXQ9ZmFsc2U7dHJ5e2Z1bmN0aW9uIGhpZGVtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QuYWRkKCdoaWRlbWUnKTt9CmZ1bmN0aW9uIHNob3dtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRlbWUnKTt9CnZhciByZXNwb25zaXZlU2l0ZT1mdW5jdGlvbihldmVudCl7dmFyIHN3PXdpbmRvdy5zY3JlZW4ud2lkdGg\/d2luZG93LnNjcmVlbi53aWR0aDp3aW5kb3cub3V0ZXJXaWR0aDt2YXIgb3c9d2luZG93Lm91dGVyV2lkdGgsaXc9d2luZG93LmlubmVyV2lkdGg7dmFyIGJ3PW93PD0zNjAmJml3Pm93P2l3Om93O3ZhciB3aWR0aD1idz5zdz9idzpzdztpZih3aWR0aDw9MzYwKXt3aWR0aD05NjA7fQp2YXIgdmVyc2lvbj0od2lkdGg8OTYwKT8nbW9iaWxlJzonZGVza3RvcCc7dmFyIGVscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5ID4gKicpO3ZhciBpZnJhbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vYmlsZVNpdGUnKTtpZihsYXN0V2lkdGg9PXdpZHRoKXtyZXR1cm4gZmFsc2U7fQpmb3IoaSBpbiBlbHMpe2lmKCFlbHMuaGFzT3duUHJvcGVydHkoaSkpe2NvbnRpbnVlO30Kc3dpdGNoKHZlcnNpb24pe2Nhc2UnbW9iaWxlJzppZihlbHNbaV09PT1pZnJhbWUpe3Nob3dtZShlbHNbaV0pO31lbHNlIGlmKGlmcmFtZSl7aGlkZW1lKGVsc1tpXSk7fQppZihpZnJhbWUpe2lmKGlmcmFtZS5zcmM9PSdhYm91dDpibGFuaycpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3NyYycsaWZyYW1lLmRhdGFzZXRbJ2ltZ3NyYyddKTt9CmlmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ3RvcDowJywnZGlzcGxheTpibG9jaycsJ2xlZnQ6MCcsJ3dpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSknLCdoZWlnaHQ6MTAwJScsJ2JvdHRvbTowJywncmlnaHQ6MCcsJ3Bvc2l0aW9uOmFic29sdXRlJyxdLmpvaW4oJzsnKSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdvcHRhbm9uLWNhdGVnb3J5LUMwMDAxJyk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1vdC1pZ25vcmUnLHRydWUpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtY29va2llY29uc2VudCcsJ2lnbm9yZScpO30KYnJlYWs7Y2FzZSdkZXNrdG9wJzppZihlbHNbaV09PT1pZnJhbWUpaGlkZW1lKGVsc1tpXSk7ZWxzZSBzaG93bWUoZWxzW2ldKTtpZihpZnJhbWUpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ2Rpc3BsYXk6IG5vbmUnLCcnXS5qb2luKCc7JykpO30KYnJlYWs7fX0KaWYodmVyc2lvbj09J2Rlc2t0b3AnKXtpZihsYXN0V2lkdGg9PXdpZHRoKXJldHVybjtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodHlwZW9mIGpRdWVyeSE9PSd1bmRlZmluZWQnKWpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoJ3Jlc2l6ZScpO30sNTAwKTt9Cmxhc3RXaWR0aD13aWR0aDt9CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO3RpbWVvdXQ9c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwyMDApfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtzLnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvY3NzJyk7cy5pbm5lckhUTUw9Jy5oaWRlbWUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gI21vYmlsZVNpdGUgeyBkaXNwbGF5OiBub25lOyB9Jztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO3ZhciB0Z3Q9J2h0dHBzOi8vd3d3LmJlbGFuZ2VybGluY29sbi5jYS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEnLnJlcGxhY2UoLyUyRi9pZywnLycpO3RndCs9KCh0Z3QuaW5kZXhPZignPycpPT09LTEpPyc\/JzpgJmApKyduZnI9MSZ3c3dpZHRoPScrd2luZG93LnNjcmVlbi53aWR0aDtsZXQgdXJsUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXModGd0KTtsZXQgY291bnQ9MDtpZih1cmxQYXJhbXMhPT0ndW5kZWZpbmVkJyYmdXJsUGFyYW1zLmhhcygnbmZyJykpe2NvdW50PXVybFBhcmFtcy5nZXRBbGwoJ25mcicpLmxlbmd0aDt9CmlmKGNvdW50PDMpe2kuc2V0QXR0cmlidXRlKCdkYXRhLWltZ3NyYycsdGd0KTtpLnNldEF0dHJpYnV0ZSgnc3JjJywnYWJvdXQ6YmxhbmsnKTtpLnNldEF0dHJpYnV0ZSgnaWQnLCdtb2JpbGVTaXRlJyk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt9CnJlc3BvbnNpdmVTaXRlKCk7fSk7c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwxMDAwKTt9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSk7fX0pKCk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iUEFGLTE4NjQ1NjM2ODExODUxMjI4NSIKKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBTVE9SQUdFX0tFWT0nb25lcnJvcicsc3RvcmFnZT1bXSxlcnJvckNvbGxlY3Rpb25zPVtdLHBpeGVsQWRkcmVzcz0nL2ZyL2FqYXgvbG9nRXJyb3I\/d3N3aWR0aD0wJzt2YXIgc3RhcnRUaW1lPW5ldyBEYXRlKCk7bG9hZFN0b3JlZEVycm9ycygpO3ZhciBwaXhlbEZyYWdtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBnZXRQaXhlbEZyYWdtZW50KCl7aWYocGl4ZWxGcmFnbWVudCE9PXVuZGVmaW5lZClyZXR1cm4gcGl4ZWxGcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk7dmFyIGZyYWc9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZnJhZy5hcHBlbmRDaGlsZChkaXYpO3BpeGVsRnJhZ21lbnQ9ZnJhZy5jbG9uZU5vZGUodHJ1ZSk7cmV0dXJuIGZyYWc7fQpmdW5jdGlvbiBoYXNQaXhlbChkYXRhKXtyZXR1cm4hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLWxpbmU9IicrZGF0YS5saW5lKyciXVtkYXRhLW1zZz0iJytkYXRhLm1zZysnIl0nKTt9CmZ1bmN0aW9uIGNyZWF0ZVBpeGVsKGRhdGEpe2lmKGhhc1BpeGVsKGRhdGEpKXJldHVybiB0cnVlO3ZhciBmcmFnbWVudD1nZXRQaXhlbEZyYWdtZW50KCk7dmFyIGRpdj1mcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTt2YXIgaW50ZXJuYWw9aXNGaWxlSW50ZXJuYWwoZGF0YS5maWxlKT8xOjA7dmFyIG9iaj17bXNnOmRhdGEubXNnLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGludGVybmFsOmludGVybmFsLHVpZDpnZXRVSUQoKSx0b3A6KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCktc3RhcnRUaW1lLmdldFRpbWUoKSksbW91c2VPdmVyOmdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl9O3ZhciBhZGRFbGVtZW50PWZ1bmN0aW9uKCl7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1tc2cnLGRhdGEubXNnKTtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLWxpbmUnLGRhdGEubGluZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFnbWVudCk7fTthamF4KG9iaixmdW5jdGlvbih4aHIpe2NvbnNvbGUubG9nKCJJc3N1ZSBzZW5kaW5nIGVycm9yLCBzdGF0dXM6ICIreGhyLnN0YXR1cysiIGVycm9yOiAiK3hoci5yZXNwb25zZVRleHQpO2FkZEVsZW1lbnQoKTt9LGZ1bmN0aW9uKHhocil7YWRkRWxlbWVudCgpO2NvbnNvbGUubG9nKHhocik7fSk7fQpmdW5jdGlvbiBhamF4KGRhdGEsZXJyb3Isc3VjY2Vzcyl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignUE9TVCcscGl4ZWxBZGRyZXNzLHRydWUpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnJlYWR5U3RhdGU9PT00KXtpZih4aHIuc3RhdHVzPT09MjAwKXtzdWNjZXNzKHhocik7fWVsc2V7ZXJyb3IoeGhyKTt9fX07eGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO30KZnVuY3Rpb24gZ2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKXt2YXIgaG92ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmhvdmVyJyk7aWYoaG92ZXI9PT11bmRlZmluZWR8fGhvdmVyLmxlbmd0aD09PTApe3JldHVybidub25lJzt9CmhvdmVyPWhvdmVyW2hvdmVyLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtyZXR1cm4gaG92ZXIub3V0ZXJIVE1MO30KZnVuY3Rpb24gaXNGaWxlSW50ZXJuYWwoZmlsZSl7cmV0dXJuKGZpbGUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPi0xKTt9CmZ1bmN0aW9uIGdldFVJRCgpe2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9PSd1bmRlZmluZWQnKXtyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO30KcmV0dXJuJyc7fQpmdW5jdGlvbiBsb2FkU3RvcmVkRXJyb3JzKCl7aWYodHlwZW9mIHNlc3Npb25TdG9yYWdlIT09J3VuZGVmaW5lZCcpe2lmKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKXtzdG9yYWdlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpO319CnJldHVybiBzdG9yYWdlO30KZnVuY3Rpb24gaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKXtsb2FkU3RvcmVkRXJyb3JzKCk7cmV0dXJuIGhhc0Vycm9yU2hvd24obXNnKTt9CmZ1bmN0aW9uIGhhc0Vycm9yU2hvd24obXNnKXtpZihzdG9yYWdlPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPHN0b3JhZ2UubGVuZ3RoO2krKyl7aWYoc3RvcmFnZVtpXT09PW1zZyl7cmV0dXJuIHRydWU7fX0KcmV0dXJuIGZhbHNlO30KaWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJ2N1c3RvbS1wYWdlLXByZXZpZXcuaHRtbCcpPT09LTEpe3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1zZyxmaWxlLGxpbmUsY29sLGVycm9yKXtjb25zb2xlLmxvZygnb25lcnJvciByYWlzZWQhJyk7aWYoIWhhc1Nlc3Npb25FcnJvclNob3duKG1zZykpe2Vycm9yQ29sbGVjdGlvbnMucHVzaCh7bXNnOm1zZyxsaW5lOmxpbmUsZmlsZTpmaWxlfSk7c3RvcmFnZS5wdXNoKG1zZyk7aWYoc2Vzc2lvblN0b3JhZ2UhPT11bmRlZmluZWQpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksSlNPTi5zdHJpbmdpZnkoc3RvcmFnZSkpO319CmlmKGRvY3VtZW50Wydib2R5J10hPT1udWxsJiZkb2N1bWVudFsnYm9keSddIT09dW5kZWZpbmVkKXthZGRQaXhlbHNUb0RvbSgpO30KaWYoJ2xpdmUnPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnZXhjZXB0aW9uJyx7J3NlbmRfdG8nOidHLVo1UThaNUM3S0YnLCdkZXNjcmlwdGlvbic6bXNnLCdmYXRhbCc6dHJ1ZX0pO319O30KaWYoL1dlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBfdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7b25sb2FkKCk7fX0sMTApO30KLypAY2Nfb24gQCovCi8qQGlmIChAX3dpbjMyKQoJCQkJZG9jdW1lbnQud3JpdGUoIjwiKyJzY3JpcHQgaWQ9X19pZV9vbmxvYWQgZGVmZXIgc3JjPWphdmFzY3JpcHQ6dm9pZCgwKT48XC9zY3JpcHQ+Iik7CgkJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CgkJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQkgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewoJCQkJCW9ubG9hZCgpOyAvLyBjYWxsIHRoZSBvbmxvYWQgaGFuZGxlcgoJCQkJICB9CgkJCQl9OwoJCQkvKkBlbmQgQCovCmZ1bmN0aW9uIGFkZFBpeGVsc1RvRG9tKCl7Zm9yKHZhciBpPTA7aTxlcnJvckNvbGxlY3Rpb25zLmxlbmd0aDtpKyspe2NvbnNvbGUubG9nKCdjcmVhdGVQaXhlbCcsZXJyb3JDb2xsZWN0aW9uc1tpXSk7fX0KZnVuY3Rpb24gb25sb2FkKCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmZ1bmN0aW9uIF9jcmVhdGVTY3JpcHQodGV4dCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5hcHBlbmQodGV4dCk7cmV0dXJuIHM7fQp3aW5kb3cuZXJyb3JUZXN0cz17c3ludGF4OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCd9Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LG9mTnVsbDpmdW5jdGlvbigpe3ZhciB0ZXh0PSd2YXIgYSA9IG51bGw7IHZhciBiID0gYS53aGF0Oyc7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KHRleHQpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxpbnZhbGlkQXNzaWdubWVudDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnMSA9IGZ1bmMoKTsnKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO319O3dpbmRvdy50cmFja0NvbnZlcnNpb249ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ3RhZz09J3VuZGVmaW5lZCcpcmV0dXJuLTE7aWYoIXdpbmRvdy5kMmNfYXdjSWR8fCF3aW5kb3cuZDJjX2F3Y0xhYmVsKXJldHVybi0zO2lmKGRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJyx7J3NlbmRfdG8nOmQyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsfSk7fWVsc2V7Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsKyIgfSk7Iik7fX19KSgpOwovKl1dPiovCgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iUEFGLTE4NjQ1NjM2ODExODUxMjI4NSIKKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBTVE9SQUdFX0tFWT0nb25lcnJvcicsc3RvcmFnZT1bXSxlcnJvckNvbGxlY3Rpb25zPVtdLHBpeGVsQWRkcmVzcz0nL2ZyL2FqYXgvbG9nRXJyb3I\/d3N3aWR0aD0wJzt2YXIgc3RhcnRUaW1lPW5ldyBEYXRlKCk7bG9hZFN0b3JlZEVycm9ycygpO3ZhciBwaXhlbEZyYWdtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBnZXRQaXhlbEZyYWdtZW50KCl7aWYocGl4ZWxGcmFnbWVudCE9PXVuZGVmaW5lZClyZXR1cm4gcGl4ZWxGcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk7dmFyIGZyYWc9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZnJhZy5hcHBlbmRDaGlsZChkaXYpO3BpeGVsRnJhZ21lbnQ9ZnJhZy5jbG9uZU5vZGUodHJ1ZSk7cmV0dXJuIGZyYWc7fQpmdW5jdGlvbiBoYXNQaXhlbChkYXRhKXtyZXR1cm4hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLWxpbmU9IicrZGF0YS5saW5lKyciXVtkYXRhLW1zZz0iJytkYXRhLm1zZysnIl0nKTt9CmZ1bmN0aW9uIGNyZWF0ZVBpeGVsKGRhdGEpe2lmKGhhc1BpeGVsKGRhdGEpKXJldHVybiB0cnVlO3ZhciBmcmFnbWVudD1nZXRQaXhlbEZyYWdtZW50KCk7dmFyIGRpdj1mcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTt2YXIgaW50ZXJuYWw9aXNGaWxlSW50ZXJuYWwoZGF0YS5maWxlKT8xOjA7dmFyIG9iaj17bXNnOmRhdGEubXNnLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGludGVybmFsOmludGVybmFsLHVpZDpnZXRVSUQoKSx0b3A6KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCktc3RhcnRUaW1lLmdldFRpbWUoKSksbW91c2VPdmVyOmdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl9O3ZhciBhZGRFbGVtZW50PWZ1bmN0aW9uKCl7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1tc2cnLGRhdGEubXNnKTtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLWxpbmUnLGRhdGEubGluZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFnbWVudCk7fTthamF4KG9iaixmdW5jdGlvbih4aHIpe2NvbnNvbGUubG9nKCJJc3N1ZSBzZW5kaW5nIGVycm9yLCBzdGF0dXM6ICIreGhyLnN0YXR1cysiIGVycm9yOiAiK3hoci5yZXNwb25zZVRleHQpO2FkZEVsZW1lbnQoKTt9LGZ1bmN0aW9uKHhocil7YWRkRWxlbWVudCgpO2NvbnNvbGUubG9nKHhocik7fSk7fQpmdW5jdGlvbiBhamF4KGRhdGEsZXJyb3Isc3VjY2Vzcyl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignUE9TVCcscGl4ZWxBZGRyZXNzLHRydWUpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnJlYWR5U3RhdGU9PT00KXtpZih4aHIuc3RhdHVzPT09MjAwKXtzdWNjZXNzKHhocik7fWVsc2V7ZXJyb3IoeGhyKTt9fX07eGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO30KZnVuY3Rpb24gZ2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKXt2YXIgaG92ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmhvdmVyJyk7aWYoaG92ZXI9PT11bmRlZmluZWR8fGhvdmVyLmxlbmd0aD09PTApe3JldHVybidub25lJzt9CmhvdmVyPWhvdmVyW2hvdmVyLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtyZXR1cm4gaG92ZXIub3V0ZXJIVE1MO30KZnVuY3Rpb24gaXNGaWxlSW50ZXJuYWwoZmlsZSl7cmV0dXJuKGZpbGUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPi0xKTt9CmZ1bmN0aW9uIGdldFVJRCgpe2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9PSd1bmRlZmluZWQnKXtyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO30KcmV0dXJuJyc7fQpmdW5jdGlvbiBsb2FkU3RvcmVkRXJyb3JzKCl7aWYodHlwZW9mIHNlc3Npb25TdG9yYWdlIT09J3VuZGVmaW5lZCcpe2lmKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKXtzdG9yYWdlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpO319CnJldHVybiBzdG9yYWdlO30KZnVuY3Rpb24gaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKXtsb2FkU3RvcmVkRXJyb3JzKCk7cmV0dXJuIGhhc0Vycm9yU2hvd24obXNnKTt9CmZ1bmN0aW9uIGhhc0Vycm9yU2hvd24obXNnKXtpZihzdG9yYWdlPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPHN0b3JhZ2UubGVuZ3RoO2krKyl7aWYoc3RvcmFnZVtpXT09PW1zZyl7cmV0dXJuIHRydWU7fX0KcmV0dXJuIGZhbHNlO30KaWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJ2N1c3RvbS1wYWdlLXByZXZpZXcuaHRtbCcpPT09LTEpe3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1zZyxmaWxlLGxpbmUsY29sLGVycm9yKXtjb25zb2xlLmxvZygnb25lcnJvciByYWlzZWQhJyk7aWYoIWhhc1Nlc3Npb25FcnJvclNob3duKG1zZykpe2Vycm9yQ29sbGVjdGlvbnMucHVzaCh7bXNnOm1zZyxsaW5lOmxpbmUsZmlsZTpmaWxlfSk7c3RvcmFnZS5wdXNoKG1zZyk7aWYoc2Vzc2lvblN0b3JhZ2UhPT11bmRlZmluZWQpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksSlNPTi5zdHJpbmdpZnkoc3RvcmFnZSkpO319CmlmKGRvY3VtZW50Wydib2R5J10hPT1udWxsJiZkb2N1bWVudFsnYm9keSddIT09dW5kZWZpbmVkKXthZGRQaXhlbHNUb0RvbSgpO30KaWYoJ2xpdmUnPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnZXhjZXB0aW9uJyx7J3NlbmRfdG8nOidHLVo1UThaNUM3S0YnLCdkZXNjcmlwdGlvbic6bXNnLCdmYXRhbCc6dHJ1ZX0pO319O30KaWYoL1dlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBfdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7b25sb2FkKCk7fX0sMTApO30KLypAY2Nfb24gQCovCi8qQGlmIChAX3dpbjMyKQoJCQkJZG9jdW1lbnQud3JpdGUoIjwiKyJzY3JpcHQgaWQ9X19pZV9vbmxvYWQgZGVmZXIgc3JjPWphdmFzY3JpcHQ6dm9pZCgwKT48XC9zY3JpcHQ+Iik7CgkJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CgkJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQkgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewoJCQkJCW9ubG9hZCgpOyAvLyBjYWxsIHRoZSBvbmxvYWQgaGFuZGxlcgoJCQkJICB9CgkJCQl9OwoJCQkvKkBlbmQgQCovCmZ1bmN0aW9uIGFkZFBpeGVsc1RvRG9tKCl7Zm9yKHZhciBpPTA7aTxlcnJvckNvbGxlY3Rpb25zLmxlbmd0aDtpKyspe2NvbnNvbGUubG9nKCdjcmVhdGVQaXhlbCcsZXJyb3JDb2xsZWN0aW9uc1tpXSk7fX0KZnVuY3Rpb24gb25sb2FkKCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmZ1bmN0aW9uIF9jcmVhdGVTY3JpcHQodGV4dCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5hcHBlbmQodGV4dCk7cmV0dXJuIHM7fQp3aW5kb3cuZXJyb3JUZXN0cz17c3ludGF4OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCd9Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LG9mTnVsbDpmdW5jdGlvbigpe3ZhciB0ZXh0PSd2YXIgYSA9IG51bGw7IHZhciBiID0gYS53aGF0Oyc7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KHRleHQpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxpbnZhbGlkQXNzaWdubWVudDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnMSA9IGZ1bmMoKTsnKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO319O3dpbmRvdy50cmFja0NvbnZlcnNpb249ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ3RhZz09J3VuZGVmaW5lZCcpcmV0dXJuLTE7aWYoIXdpbmRvdy5kMmNfYXdjSWR8fCF3aW5kb3cuZDJjX2F3Y0xhYmVsKXJldHVybi0zO2lmKGRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJyx7J3NlbmRfdG8nOmQyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsfSk7fWVsc2V7Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsKyIgfSk7Iik7fX19KSgpOwovKl1dPiovCgovL2RhdGEtc2NvZGVyZWY9IlFQUS0yMTM1NTU1NTI2NjIyNSIKKGZ1bmN0aW9uKCl7dmFyIGxhc3RXaWR0aD0wO3ZhciBmaXJzdFJ1bj0xO3ZhciB0aW1lb3V0PWZhbHNlO3RyeXtmdW5jdGlvbiBoaWRlbWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LmFkZCgnaGlkZW1lJyk7fQpmdW5jdGlvbiBzaG93bWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZW1lJyk7fQp2YXIgcmVzcG9uc2l2ZVNpdGU9ZnVuY3Rpb24oZXZlbnQpe3ZhciBzdz13aW5kb3cuc2NyZWVuLndpZHRoP3dpbmRvdy5zY3JlZW4ud2lkdGg6d2luZG93Lm91dGVyV2lkdGg7dmFyIG93PXdpbmRvdy5vdXRlcldpZHRoLGl3PXdpbmRvdy5pbm5lcldpZHRoO3ZhciBidz1vdzw9MzYwJiZpdz5vdz9pdzpvdzt2YXIgd2lkdGg9Ync+c3c\/Ync6c3c7aWYod2lkdGg8PTM2MCl7d2lkdGg9OTYwO30KdmFyIHZlcnNpb249KHdpZHRoPDk2MCk\/J21vYmlsZSc6J2Rlc2t0b3AnO3ZhciBlbHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYm9keSA+IConKTt2YXIgaWZyYW1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2JpbGVTaXRlJyk7aWYobGFzdFdpZHRoPT13aWR0aCl7cmV0dXJuIGZhbHNlO30KZm9yKGkgaW4gZWxzKXtpZighZWxzLmhhc093blByb3BlcnR5KGkpKXtjb250aW51ZTt9CnN3aXRjaCh2ZXJzaW9uKXtjYXNlJ21vYmlsZSc6aWYoZWxzW2ldPT09aWZyYW1lKXtzaG93bWUoZWxzW2ldKTt9ZWxzZSBpZihpZnJhbWUpe2hpZGVtZShlbHNbaV0pO30KaWYoaWZyYW1lKXtpZihpZnJhbWUuc3JjPT0nYWJvdXQ6YmxhbmsnKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzcmMnLGlmcmFtZS5kYXRhc2V0WydpbWdzcmMnXSk7fQppZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWyd0b3A6MCcsJ2Rpc3BsYXk6YmxvY2snLCdsZWZ0OjAnLCd3aWR0aDpjYWxjKDEwMHZ3IC0gKDEwMHZ3IC0gMTAwJSkpJywnaGVpZ2h0OjEwMCUnLCdib3R0b206MCcsJ3JpZ2h0OjAnLCdwb3NpdGlvbjphYnNvbHV0ZScsXS5qb2luKCc7JykpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMScpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJyx0cnVlKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLWNvb2tpZWNvbnNlbnQnLCdpZ25vcmUnKTt9CmJyZWFrO2Nhc2UnZGVza3RvcCc6aWYoZWxzW2ldPT09aWZyYW1lKWhpZGVtZShlbHNbaV0pO2Vsc2Ugc2hvd21lKGVsc1tpXSk7aWYoaWZyYW1lKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWydkaXNwbGF5OiBub25lJywnJ10uam9pbignOycpKTt9CmJyZWFrO319CmlmKHZlcnNpb249PSdkZXNrdG9wJyl7aWYobGFzdFdpZHRoPT13aWR0aClyZXR1cm47c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHR5cGVvZiBqUXVlcnkhPT0ndW5kZWZpbmVkJylqUXVlcnkod2luZG93KS50cmlnZ2VyKCdyZXNpemUnKTt9LDUwMCk7fQpsYXN0V2lkdGg9d2lkdGg7fQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aW1lb3V0KTt0aW1lb3V0PXNldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMjAwKX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2NzcycpO3MuaW5uZXJIVE1MPScuaGlkZW1lIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9ICNtb2JpbGVTaXRlIHsgZGlzcGxheTogbm9uZTsgfSc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTt2YXIgdGd0PSdodHRwczovL3d3dy5iZWxhbmdlcmxpbmNvbG4uY2EvZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xJy5yZXBsYWNlKC8lMkYvaWcsJy8nKTt0Z3QrPSgodGd0LmluZGV4T2YoJz8nKT09PS0xKT8nPyc6YCZgKSsnbmZyPTEmd3N3aWR0aD0nK3dpbmRvdy5zY3JlZW4ud2lkdGg7bGV0IHVybFBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHRndCk7bGV0IGNvdW50PTA7aWYodXJsUGFyYW1zIT09J3VuZGVmaW5lZCcmJnVybFBhcmFtcy5oYXMoJ25mcicpKXtjb3VudD11cmxQYXJhbXMuZ2V0QWxsKCduZnInKS5sZW5ndGg7fQppZihjb3VudDwzKXtpLnNldEF0dHJpYnV0ZSgnZGF0YS1pbWdzcmMnLHRndCk7aS5zZXRBdHRyaWJ1dGUoJ3NyYycsJ2Fib3V0OmJsYW5rJyk7aS5zZXRBdHRyaWJ1dGUoJ2lkJywnbW9iaWxlU2l0ZScpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7fQpyZXNwb25zaXZlU2l0ZSgpO30pO3NldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMTAwMCk7fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpO319KSgpOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlpaWi00MTU1NjQ4Igp2YXIgY3VycmVudFNpdGVJRD0xNTQyO3ZhciBkMmNfZ2FBY2NvdW50cz17ImFsbCI6W10sImludGVybmFsIjpbXX07dmFyIGQyY19hd2NJZD0nQVctMTA5NTcyOTQxNjMnO3ZhciBkMmNfYXdjTGFiZWw9J3FIT0VDSVdqejlBREVOT1U3T2dvJzt2YXIgbGVnYWN5X2dhPWZhbHNlO3dpbmRvdy5kYXRhTGF5ZXI9d2luZG93LmRhdGFMYXllcnx8W107ZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQpndGFnKCdqcycsbmV3IERhdGUoKSk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctWjVROFo1QzdLRicpO2QyY19nYUFjY291bnRzLmFsbC5wdXNoKCdHLUZCUkY5UFE1TE0nKTtpZihkMmNfYXdjSWQpe2QyY19nYUFjY291bnRzLmFsbC5wdXNoKGQyY19hd2NJZCk7fQooZDJjX2dhQWNjb3VudHMuYWxsfHxbXSkubWFwKGZ1bmN0aW9uKGlkKXtndGFnKCdjb25maWcnLGlkLHsnc2VuZF9wYWdlX3ZpZXcnOmZhbHNlLCdsaW5rZXInOnsnZG9tYWlucyc6SlNPTi5wYXJzZShhdG9iKCJXMTA9IikpLCdjb29raWVfZG9tYWluJzond3d3LmJlbGFuZ2VybGluY29sbi5jYSd9fSk7fSk7Ci8qXV0+Ki8KCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJGTFQtMTU2NjQ1ODg5OTY0NTM0MTE1Mzg2Igp2YXIgZG9jUmVhZHlBcnI9W107dmFyIHBhZ2U9Ik5FV0NBUlMiO3ZhciBmYkNoYXRSZWY9e307dmFyIGRlcGxveW1lbnRUeXBlPSdsaXZlJzt2YXIgY3VycmVudFNpdGVJRD0xNTQyO3ZhciBjdXJyZW50RGVhbGVySUQ9NDQ3OTt2YXIgZ2FUeXBlPSdndGFnJzt2YXIgYWxsQ2FtcGFpZ25zPVtbImJlbGFuZ2VybGluY29sbi5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiVG91dGVzIiwiMTU0NzEiXSxbImJlbGFuZ2VybGluY29sbi5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiTmV1ZnMiLCIxNTQ3MiJdLFsiYmVsYW5nZXJsaW5jb2xuLmNhIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJPY2Nhc2lvbiIsIjE1NDczIl0sWyJiZWxhbmdlcmxpbmNvbG4uY2EiLCJTRU0iLCJBZ2VuY3kiLCIxNTQ3OSJdLFsiYmVsYW5nZXJsaW5jb2xuLmNhIiwiVHJhZGVyIiwiUmV0YXJnZXRpbmciLCIxNTQ4MiJdLFsiYmVsYW5nZXJsaW5jb2xuLmNhIiwiQmluZyIsIkJpbmciLCIxNTQ4NSJdLFsiQmVsYW5nZXJsaW5jb2xuLmNhIiwiR29vZ2xlIiwiTmV1ZiIsIjE1NzEyIl0sWyJCZWxhbmdlcmxpbmNvbG4uY2EiLCJHb29nbGUiLCJEaXNwbGF5IiwiMTczNTUiXSxbIkJlbGFuZ2VybGluY29sbi5jYSIsIkdvb2dsZSIsIkNvbnF1ZXN0IiwiMTgwNzEiXSxbIkJlbGFuZ2VybGluY29sbi5jYSIsIkZhY2Vib29rIiwiTmV3IiwiMTgwODMiXV0KdmFyIHJldGFyZ2V0aW5nQ2FtcGFpZ25zPVtdCnZhciBBSUN1cnJlbnRDb25maWdJRD0wO3ZhciBBSUlEUGVyTmV3Q2Fyc0ZyZW5jaD1uZXcgQXJyYXkoKTt2YXIgQUlJRFBlck5ld0NhcnNFbmdsaXNoPW5ldyBBcnJheSgpO2Z1bmN0aW9uIHBhcnNlUXVlcnkoc3RyKXtpZihzdHIubGVuZ3RoPDEpcmV0dXJue30KdmFyIHZhcnM9e30sdjt2YXIgcXM9c3RyLnNwbGl0KCcmJyk7Zm9yKHZhciBpPTA7aTxxcy5sZW5ndGg7aSsrKXt2PWV4cGxvZGUocXNbaV0sJz0nLDEpO3ZhcnNbdlswXV09dlsxXTt9CnJldHVybiB2YXJzO30KZnVuY3Rpb24gZGVjb2RlU3RyaW5nKHN0cmluZyx0aW1lcyl7aWYodGltZXM9PSIifHx0aW1lcz09InVuZGVmaW5lZCIpe3RpbWVzPTE7fQpmb3IoaT0wO2k8dGltZXM7aSsrKXtzdHJpbmc9ZGVjb2RlVVJJQ29tcG9uZW50KHN0cmluZyk7fQpyZXR1cm4gc3RyaW5nO30KZnVuY3Rpb24gZGVjb2RlSFRNTChlbmNvZGVkKXtpZih0eXBlb2YgZW5jb2RlZCE9PSdzdHJpbmcnKXJldHVybiBlbmNvZGVkO3ZhciBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO2VsLmlubmVySFRNTD1lbmNvZGVkO3JldHVybiBlbC52YWx1ZTt9CmZ1bmN0aW9uIGV4cGxvZGUoc3RyLHNlcGFyYXRvcixsaW1pdCl7c3RyPXN0ci5zcGxpdChzZXBhcmF0b3IpO2lmKHN0ci5sZW5ndGg8PWxpbWl0KXJldHVybiBzdHI7dmFyIHJldD1zdHIuc3BsaWNlKDAsbGltaXQpO3JldC5wdXNoKHN0ci5qb2luKHNlcGFyYXRvcikpO3JldHVybiByZXQ7fQpmdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIHFzPSh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkocXMpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7cmV0dXJuIENvb2tpZXMuZ2V0KGNfbmFtZSk7fQpmdW5jdGlvbiBnZXRDb29raWUoY19uYW1lKXt2YXIgY192YWx1ZT1kb2N1bWVudC5jb29raWU7dmFyIGNfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKCIgIitjX25hbWUrIj0iKTtpZihjX3N0YXJ0PT0tMSl7Y19zdGFydD1jX3ZhbHVlLmluZGV4T2YoY19uYW1lKyI9Iik7fQppZihjX3N0YXJ0PT0tMSl7Y192YWx1ZT1udWxsO31lbHNle2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKCI9IixjX3N0YXJ0KSsxO3ZhciBjX2VuZD1jX3ZhbHVlLmluZGV4T2YoIjsiLGNfc3RhcnQpO2lmKGNfZW5kPT0tMSl7Y19lbmQ9Y192YWx1ZS5sZW5ndGg7fQpjX3ZhbHVlPXVuZXNjYXBlKGNfdmFsdWUuc3Vic3RyaW5nKGNfc3RhcnQsY19lbmQpKTt9CnJldHVybiBjX3ZhbHVlO30KZnVuY3Rpb24gc2V0Q29va2llKGNfbmFtZSx2YWx1ZSxleGRheXMpe2lzQ29va2llQWxsb3dlZChjX25hbWUsZnVuY3Rpb24oYWxsb3dlZCl7aWYoIWFsbG93ZWQpe3JldHVybiBDb29raWVzLnNldChjX25hbWUsdmFsdWUsZXhkYXlzLCcvJyk7bG9nQ29va2llKGNfbmFtZSx2YWx1ZSxleGRheXMpO3JldHVybjt9CnZhciBleGRhdGU9bmV3IERhdGUoKTtleGRhdGUuc2V0RGF0ZShleGRhdGUuZ2V0RGF0ZSgpK2V4ZGF5cyk7dmFyIGNfdmFsdWU9ZXNjYXBlKHZhbHVlKSsoKGV4ZGF5cz09bnVsbCk\/IiI6IjsgZXhwaXJlcz0iK2V4ZGF0ZS50b1VUQ1N0cmluZygpKSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT1jX25hbWUrIj0iK2NfdmFsdWU7fSk7fQpmdW5jdGlvbiBsb2dDb29raWUobmFtZSx2YWx1ZSxleHBpcmVzLHRyaWVzKXtpZih0eXBlb2YgdHJpZXM9PT0ndW5kZWZpbmVkJyl7dHJpZXM9NTt9CmlmKHR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyPT09J3VuZGVmaW5lZCcpe2lmKHRyaWVzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhuYW1lLHZhbHVlLGV4cGlyZXMpO319CmZ1bmN0aW9uIGlzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrKXtjYWxsYmFjayh0cnVlKTt9CmZ1bmN0aW9uIGdhUGFnZVZpZXcocHApeyhkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2xldCBkPXtwYWdlX3BhdGg6cHB9O2lmKGRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQScpe2NvbnNvbGUubG9nKCdndGFnJywnY29uZmlnJyxpZCxkKQpyZXR1cm47fQpndGFnKCdjb25maWcnLGlkLGQpO30pO307ZnVuY3Rpb24gZ2E0UGFnZVZpZXcocHApe2lmKGRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQScpe3JldHVybjt9Cmd0YWcoJ3NldCcseydwYWdlX3BhdGgnOnBwfSk7Z3RhZygnZXZlbnQnLCdwYWdlX3ZpZXcnLHsnc2VuZF90byc6J0ctRkJSRjlQUTVMTSd9KTt9CmZ1bmN0aW9uIGdldEdhQ2xpZW50SWQoKXtyZXR1cm4oKCh0eXBlb2Ygd2luZG93LmdhPT09J29iamVjdCcmJndpbmRvdy5nYSE9PW51bGwpfHx0eXBlb2Ygd2luZG93LmdhPT09J2Z1bmN0aW9uJykmJnR5cGVvZiBnYVsnZ2V0QWxsJ109PT0nZnVuY3Rpb24nKT9nYS5nZXRBbGwoKVswXS5nZXQoJ2NsaWVudElkJyk6Jyc7fQpmdW5jdGlvbiBnYVRyYWNrKGFhLGMsYSxsLHYpe2xldCBhYz1bXTtjb25zdCBjcz1kZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnO2NvbnN0IGNoPShvLGQpPT50eXBlb2YgbyE9PSd1bmRlZmluZWQnP286ZDthYT1jaChhYSwnJyk7Yz1jaChjLCcnKTthPWNoKGEsJycpO2w9Y2gobCwnJyk7dj1jaCh2LDEpO2lmKGFhPT0naW50ZXJuYWwnKXthYz1kMmNfZ2FBY2NvdW50cy5pbnRlcm5hbDt9ZWxzZSBpZihhYS5sZW5ndGgmJi9eKGJ8Y3xkKVwuX3RyYWNrRXZlbnQvLnRlc3QoYWEpJiZ0eXBlb2YgZDJjX2dhQWNjb3VudHNbYWFbMF1dIT0ndW5kZWZpbmVkJyl7YWMucHVzaChkMmNfZ2FBY2NvdW50c1thYVswXV0pO30KaWYoYWMubGVuZ3RoKXthYy5tYXAoKGlkKT0+e2NvbnN0IGQ9e3NlbmRfdG86aWQsZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZyhgR0FUUkFDSy1HVEFHLVNFTkQtVE9bJHtpZH1dOmAsJ2V2ZW50JyxhLGQpO3JldHVybjt9Cmd0YWcoJ2V2ZW50JyxhLGQpO30pO31lbHNle2NvbnN0IGQ9e2V2ZW50X2FjdGlvbjphLGV2ZW50X2NhdGVnb3J5OmMsZXZlbnRfbGFiZWw6bCx2YWx1ZTp2fTtpZihjcyl7Y29uc29sZS5sb2coJ0dBVFJBQ0stR1RBRy1OTy1TRU5ELVRPOicsJ2V2ZW50JyxhLGQpO31lbHNle2d0YWcoJ2V2ZW50JyxhLGQpO319fTtmdW5jdGlvbiBvbkNvbmZpcm1TdWJtaXQoZXZlbnQpe3JldHVybiB0cnVlO30KZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZShjX25hbWUsdmFsdWUpe3ZhciBleGRheXM9bnVsbDt2YXIgY192YWx1ZT1lc2NhcGUodmFsdWUpKyI7ZXhwaXJlcz0wO3BhdGg9LyI7ZG9jdW1lbnQuY29va2llPWNfbmFtZSsiPSIrY192YWx1ZTtsb2dDb29raWUoY19uYW1lKTt9CmZ1bmN0aW9uIGluaXRMQ0kocGFyYW1zLG4pe2lmKG4+MjApcmV0dXJuIG47dmFyIG49KG4pP246MDtpZih0eXBlb2YgTENfQVBJPT0ndW5kZWZpbmVkJ3x8dHlwZW9mIExDX0ludml0ZT09J3VuZGVmaW5lZCcpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbml0TENJKHBhcmFtcywrK24pO30sNTAwKTtyZXR1cm47fQppZih0eXBlb2YgTENfQVBJIT0ndW5kZWZpbmVkJyYmdHlwZW9mIExDX0ludml0ZSE9J3VuZGVmaW5lZCcmJnBhcmFtcyl7cmV0dXJuIExDX0FQSS5zZXRfY3VzdG9tX3ZhcmlhYmxlcyhwYXJhbXMpO319CmZ1bmN0aW9uIHNhbml0aXplUmVmZXJlcihyZWZlcmVyKXtyZXR1cm4gcmVmZXJlci5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLCcnKTt9CmZ1bmN0aW9uIGdldFJlZmVycmVyVmFyRnVuY3Rpb24ocmVmZXJlcil7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoJyc9PXJlZmVyZXIpcmVmZXJlcj1kb2N1bWVudC5yZWZlcnJlcjtyZWZlcmVyPXNhbml0aXplUmVmZXJlcihyZWZlcmVyKTt2YXIgcXMscXNpbmRleD1yZWZlcmVyLmluZGV4T2YoJz8nKSsxO2lmKHFzaW5kZXg+MCl7dmFyIHFzPXJlZmVyZXIuc2xpY2UocXNpbmRleCk7cmV0dXJuIHBhcnNlUXVlcnkocXMpO30KcmV0dXJue319fQp2YXIgZ2V0UmVmZXJlclZhcnM9Z2V0UmVmZXJyZXJWYXJGdW5jdGlvbignJyk7dmFyIHV0bV9sYW5kaW5nX2Nvb2tpZT0oZ2V0Q29va2llKCd1dG1fbGFuZGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fbGFuZGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9sYW5kaW5nJyk6JycpO2lmKHV0bV9sYW5kaW5nX2Nvb2tpZS5sZW5ndGg9PTApe3NldENvb2tpZSgndXRtX2xhbmRpbmcnLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7fQppZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXt2YXIgZ2VuZXJhdGVHVUlEPWZ1bmN0aW9uKCl7dmFyIFM0PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoweDEwMDAwKS50b1N0cmluZygxNik7fTtyZXR1cm4oUzQoKStTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpKyItIisKUzQoKStTNCgpK1M0KCkpO30KdmFyIHVybFZhcnM9Z2V0VXJsVmFycygpO3ZhciByZWZlcmVyVmFycz1nZXRSZWZlcmVyVmFycygpO3ZhciByZWZlcmVyPScnO3ZhciByYXdSZWZlcnJlcj1yZWZlcmVyO3JlZmVyZXI9KHJlZmVyZXIubGVuZ3RoPDE\/MDpyZWZlcmVyKTtpZignJz09cmF3UmVmZXJyZXIpcmF3UmVmZXJyZXI9ZG9jdW1lbnQucmVmZXJyZXI7dmFyIGl0ZW1UeXBlPSdjYXInO2l0ZW1UeXBlPShpdGVtVHlwZS5sZW5ndGg8MT8wOml0ZW1UeXBlKTtpZihpc05hTihyZWZlcmVyKSl7cmVmZXJlcj1yZWZlcmVyLnJlcGxhY2UoL1wvL2csInwiKS5yZXBsYWNlKC9cPy9nLCJfXyIpLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2VBbGwoJyUwQScsJycpLnJlcGxhY2VBbGwoJyUwOScsJycpLnJlcGxhY2VBbGwoJyUwQicsJycpLnJlcGxhY2VBbGwoJyUwMCcsJycpLnJlcGxhY2VBbGwoJyUwRCcsJycpO30KdmFyIG1ha2U9IiI7aWYobWFrZS5sZW5ndGg9PTApbWFrZT0iMCI7dmFyIG1vZGVsPSIiO2lmKG1vZGVsLmxlbmd0aD09MCltb2RlbD0iMCI7dmFyIHllYXI9IiI7aWYoeWVhci5sZW5ndGg9PTApeWVhcj0iMCI7dmFyIGlzbW9iaWxlPSIiO2lmKGlzbW9iaWxlLmxlbmd0aD09MClpc21vYmlsZT0iMCI7dmFyIG9yaWdTb3VyY2U9IiI7dmFyIG9yaWdDYW1wYWlnbj0iIjt2YXIgb3JpZ0tleXdvcmQ9IiI7aWYodXJsVmFyc1sicmVsYW5jZUlEIl0hPXVuZGVmaW5lZCkKc2V0Q29va2llKCdyZWxhbmNlSUQnLHVybFZhcnNbInJlbGFuY2VJRCJdLDE4MCk7dmFyIHNvdXJjZT0oZ2V0Q29va2llKCd1dG1fc291cmNlJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlJyk6JycpO3ZhciBzb3VyY2VDb29raWU9c291cmNlO3ZhciBzb3VyY2VVUkw9IiI7aWYoInV0bV9zb3VyY2UiaW4gdXJsVmFycyl7aWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9dXJsVmFyc1sndXRtX3NvdXJjZSddO3NvdXJjZVVSTD11cmxWYXJzWyd1dG1fc291cmNlJ107fQp2YXIgY2FtcGFpZ249KGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpOicnKTtpZihjYW1wYWlnbi50b0xvd2VyQ2FzZSgpPT0nZWNvbGUtZXR1ZGlhbnQnKXtjYW1wYWlnbj0nJztzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsIiIsMSk7fQp2YXIgY2FtcGFpZ25Db29raWU9Y2FtcGFpZ247dmFyIGNhbXBhaWduVVJMPSIiO2lmKCJ1dG1fY2FtcGFpZ24iaW4gdXJsVmFycyl7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO2NhbXBhaWduVVJMPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO30KdmFyIG1lZGl1bT0oZ2V0Q29va2llKCd1dG1fbWVkaXVtJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbWVkaXVtJyk6JycpO3ZhciBtZWRpdW1Db29raWU9bWVkaXVtO3ZhciBtZWRpdW1VUkw9IiI7aWYoInV0bV9tZWRpdW0iaW4gdXJsVmFycyl7aWYobWVkaXVtLmxlbmd0aD09MCltZWRpdW09dXJsVmFyc1sndXRtX21lZGl1bSddO21lZGl1bVVSTD11cmxWYXJzWyd1dG1fbWVkaXVtJ107fQp2YXIgY29va2llSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIHVybEluQ2FtcGFpZ25zPWZhbHNlO3ZhciBoYXNHb29nbGVPcmdhbmljPWZhbHNlO2Zvcih2YXIgaT0wO2k8YWxsQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VVUkwudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpdXJsSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlQ29va2llLnRvTG93ZXJDYXNlKCkmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpKWNvb2tpZUluQ2FtcGFpZ25zPXRydWU7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PSdnb29nbGUnJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09J29yZ2FuaXF1ZScpaGFzR29vZ2xlT3JnYW5pYz10cnVlO30KaWYoc291cmNlVVJMPT0iIiYmY2FtcGFpZ25VUkw9PSIiJiZzb3VyY2U9PSIiJiZjYW1wYWlnbj09IiImJmhhc0dvb2dsZU9yZ2FuaWMpe3NvdXJjZVVSTD0iR29vZ2xlIjtjYW1wYWlnblVSTD0iT3JnYW5pcXVlIjt1cmxJbkNhbXBhaWducz10cnVlO30KaWYoY29va2llSW5DYW1wYWlnbnM9PWZhbHNlJiZ1cmxJbkNhbXBhaWducz09dHJ1ZSl7c291cmNlPXNvdXJjZVVSTDtjYW1wYWlnbj1jYW1wYWlnblVSTDtzb3VyY2VDb29raWU9c291cmNlVVJMO2NhbXBhaWduQ29va2llPWNhbXBhaWduVVJMO30KaWYoc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nJiZzb3VyY2VVUkwudG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJnVybEluQ2FtcGFpZ25zKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO30KdmFyIGN1cnJlbnRTaXRlSUQ9MTU0MjtpZigoY3VycmVudFNpdGVJRD09NTkyfHxjdXJyZW50U2l0ZUlEPT00Mzd8fGN1cnJlbnRTaXRlSUQ9PTU3OXx8Y3VycmVudFNpdGVJRD09NTg1KSYmc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nKXtzb3VyY2VDb29raWU9J0dvb2dsZSc7c291cmNlPSdHb29nbGUnO2NhbXBhaWduQ29va2llPSdOZXVmJztjYW1wYWlnbj0nTmV1Zic7fQppZihjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pYyd8fGNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmlxdWUnKXtzb3VyY2VDb29raWU9Jyc7Y2FtcGFpZ25Db29raWU9Jyc7bWVkaXVtQ29va2llPScnO30KaWYoc291cmNlLmxlbmd0aD4wJiYoc291cmNlQ29va2llLmxlbmd0aD09MHx8c291cmNlQ29va2llPT1zb3VyY2UpKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoY2FtcGFpZ24ubGVuZ3RoPjAmJihjYW1wYWlnbkNvb2tpZS5sZW5ndGg9PTB8fGNhbXBhaWduQ29va2llPT1jYW1wYWlnbikpc2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7aWYobWVkaXVtLmxlbmd0aD4wJiYobWVkaXVtQ29va2llLmxlbmd0aD09MHx8bWVkaXVtQ29va2llPT1tZWRpdW0pKXNldENvb2tpZSgndXRtX21lZGl1bScsbWVkaXVtLDE4MCk7dmFyIGtleXdvcmQ9KGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fa2V5d29yZCcpOicnKTtpZigia3ciaW4gdXJsVmFycyl7a2V5d29yZD1kZWNvZGVTdHJpbmcodXJsVmFyc1sna3cnXSwzKTt9CmlmKGtleXdvcmQubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fa2V5d29yZCcsa2V5d29yZCwxODApO3ZhciBpc1JldGFyZ2V0aW5nPWZhbHNlO2Zvcih2YXIgaT0wO2k8cmV0YXJnZXRpbmdDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYocmV0YXJnZXRpbmdDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlVVJMLnRvTG93ZXJDYXNlKCkmJnJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpaXNSZXRhcmdldGluZz10cnVlO30KaWYoaXNSZXRhcmdldGluZyl7dmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2UhPXNvdXJjZVVSTHx8Y2FtcGFpZ24hPWNhbXBhaWduVVJMKXtpZihzb3VyY2VVUkwubGVuZ3RoPjAmJnNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVVSTCwxODApO2lmKGNhbXBhaWduVVJMLmxlbmd0aD4wJiZjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25VUkwsMTgwKTt9CnNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlVVJMLDE4MCk7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduVVJMLDE4MCk7fQp2YXIgc291cmNlUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpOicnKTt2YXIgY2FtcGFpZ25SZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyk6JycpO2lmKHNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycsc291cmNlUmV0YXJnZXRpbmcsMTgwKTtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyxjYW1wYWlnblJldGFyZ2V0aW5nLDE4MCk7aWYoIXNvdXJjZSl7aWYocmF3UmVmZXJyZXIhPScnKXt2YXIgc2VsZkhvc3Q9KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoc2VsZkhvc3Qpe3NlbGZIb3N0PXNlbGZIb3N0WzFdfQp2YXIgaG9zdD0ocmF3UmVmZXJyZXIudG9TdHJpbmcoKSkubWF0Y2goL15bQS16XSs6XC9cLyhbXlwvXSspXC8\/LiovKTtpZihob3N0KXtob3N0PWhvc3RbMV19ZWxzZXtob3N0PXNlbGZIb3N0O30KaWYoaG9zdCE9c2VsZkhvc3Qpe2hvc3Q9aG9zdC5zcGxpdCgnLicpO2lmKGhvc3QubGVuZ3RoPjIpe3NvdXJjZT1ob3N0WzFdO30KaWYoaG9zdC5sZW5ndGg9PTIpe3NvdXJjZT1ob3N0WzBdO30KaWYoc291cmNlKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoIWNhbXBhaWduKXtjYW1wYWlnbj0nb3JnYW5pYyc7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7fX19fQppZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT0iMCI7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPSIwIjtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc291cmNlUmV0YXJnZXRpbmc9IjAiO2lmKGNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPT0wKWNhbXBhaWduUmV0YXJnZXRpbmc9IjAiO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXtpZihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZScpPT0ndW5kZWZpbmVkJyl7aWYodXJsVmFyc1sidXRtX2NhbXBhaWduIl0hPXVuZGVmaW5lZCYmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nLHVybFZhcnNbInV0bV9jYW1wYWlnbiJdLDE4MCk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyx1cmxWYXJzWyJ1dG1fc291cmNlIl0sMTgwKTt9CnNldENvb2tpZSgnRGlzcGxheVNvdXJjZScsdXJsVmFyc1siRGlzcGxheVNvdXJjZSJdLDE4MCk7fQp2YXIgc2V0R2NsaWRDb29raWU9dHJ1ZTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZCl7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nU0VNJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nVHJhZGVyJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nR29vZ2xlLW5lcmRtYXJrZXRpbmcnKXtzZXRHY2xpZENvb2tpZT1mYWxzZTt9fQppZih1cmxWYXJzWyJnY2xpZCJdIT11bmRlZmluZWQmJnNldEdjbGlkQ29va2llKXtzZXRDb29raWUoJ2djbGlkJyx1cmxWYXJzWyJnY2xpZCJdLDE4MCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKGV2ZW50KXtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nKXtzYXZlR0NMSUQ9ZnVuY3Rpb24oKXtpZigndW5kZWZpbmVkJz09dHlwZW9mIHdpbmRvdy5qUXVlcnkpe3JldHVybjt9CiQucG9zdCgiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL2djbGlkLnJlc3QuYXBpLnBocCIse3Nlc3Npb25pZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQsZ2NsaWQ6dXJsVmFyc1snZ2NsaWQnXX0pO307dHJ5e2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrKHNhdmVHQ0xJRCk7fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZyhlcnJvcik7fX19KTt9CndpbmRvdy5hY3RpdmVQYWdlPXBhZ2U7dmFyIHVpZD0oZ2V0Q29va2llKCd1aWQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndWlkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndWlkJyk6Z2VuZXJhdGVHVUlEKCkpO3NldENvb2tpZSgndWlkJyx1aWQsMTgwKTt2YXIgZGVhbGVyaWQ9NDQ3OTt2YXIgc2l0ZWlkPTE1NDI7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgooYXN5bmMgKCkgPT4geyB0cnkgeyB2YXIgbGFuZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5jbGFzc05hbWUubWF0Y2goJ0ZSRU5DSCcpID8gJ2ZyJyA6ICdlbic7IHZhciB1cmwgPSBuZXcgVVJMKGAvanMvanNvbi9tZW51VGl0bGVzXyR7bGFuZ30uanNvbmAsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhyZWY7IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsgaWYgKHRleHQpIHsgZGF0YSA9IEpTT04ucGFyc2UodGV4dCk7IHZhciBtdWx0aSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ1VTRUQnKTsgaWYgKG11bHRpLmxlbmd0aCkgeyBmb3IodmFyIGkgPSAwOyBpIDwgbXVsdGkubGVuZ3RoOyBpKyspIHsgbXVsdGlbaV0ucXVlcnlTZWxlY3RvcignLnNocmluay1ncm93JykudGV4dENvbnRlbnQgPSBkYXRhWydVU0VEJ10udGV4dDsgfSB9IGVsc2UgeyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjTWFpbk1lbnVfVVNFRCA+IGEnKS50ZXh0Q29udGVudCA9IGRhdGFbJ1VTRUQnXS50ZXh0OyB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTsgfSB9IH0gY2F0Y2ggKGUpeyBjb25zb2xlLmxvZyhlKTsgfSB9KSgpOwoKCS8qPCFbQ0RBVEFbKi8KCXZhciBwYXJhbXMgPSBnZXRVcmxWYXJzKCk7CgkvL3NldCBwYXJhbSB2YWx1ZSBpbnRvIHNlc3Npb24gc3RvcmFnZQoJaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHsKCgkJaWYocGFyYW1zLmhhc093blByb3BlcnR5KCdoJykpewoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdoJyxwYXJhbXMuaCk7CgkJfQoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ20nKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ20nLHBhcmFtcy5tKTsKCQl9CgoJCXZhciBoID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnaCcpOwoJCXZhciBtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbScpOwoKCQkvL3JlYWQgc2Vzc2lvbiBhbmQgcmVtb3ZlIGhlYWRlciAmIG1lbnUgaWYgb3B0aW9ucyBoYXZlIGJlZW4gc2V0CgkJaWYoaCA9PT0gJ25vJyl7CgkJCS8vc3R1ZmYgdG8gcmVtb3ZlIHRoYXQgaXMgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBoZWFkZXIKCQkJdmFyIGhlYWRlcnMgPSBbCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWluZm8nKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItZm9vdGVyJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGFuZ3VhZ2VCYXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbG9nbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vYmlsZS1oZWFkZXIgPiAqOm5vdCguYnVyZ2VyLW1lbnUtY29udGFpbmVyKScpCgkJCV07CgoJCQlmb3IodmFyIGVsZW0gb2YgaGVhZGVycyl7CgkJCQkvL3JlbW92ZSBub2RlIGxpc3QgcXVlcmllcwoJCQkJaWYgKE5vZGVMaXN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGVsZW0pKSB7CgkJCQkJZm9yKHZhciBfZWxlbSBvZiBlbGVtKXsKCQkJCQkJaWYgKF9lbGVtICE9PSBudWxsKSB7CgkJCQkJCQlfZWxlbS5yZW1vdmUoKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgaWYgKGVsZW0gIT09IG51bGwpewoJCQkJCWVsZW0ucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vbWVudQoJCWlmKG0gPT09ICdubycpewoJCQl2YXIgbWVudXMgPSBbCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLW1lbnUnKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5idXJnZXItbWVudS1jb250YWluZXInKSwKCQkJXTsKCQkJZm9yKHZhciBlbGVtIG9mIG1lbnVzKXsKCQkJCWlmKGVsZW0gIT09IG51bGwpewoJCQkJCWVsZW0ucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vc2luY2Ugbm8gaGVhZGVyIG9yIG1lbnUsIHJlbW92ZSBldmVyeXRoaW5nCgkJaWYgKG0gPT09ICdubycgJiYgaCA9PT0gJ25vJykgewoJCQl2YXIgaGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vYmlsZS1oZWFkZXInKTsKCQkJaWYoaGVhZGVyICE9PSBudWxsKXsKCQkJCWhlYWRlci5yZW1vdmUoKTsKCQkJfQoJCX0KCgl9CgkvKl1dPiovCgoJCShmdW5jdGlvbigpewoJCQlmdW5jdGlvbiBpbml0KCl7CgkJCQlpZiggdHlwZW9mIFBhZ2VCYW5uZXIgPT09ICdmdW5jdGlvbicgKSB7CgkJCQkJd2luZG93LnBhZ2VCYW5uZXIgPSBuZXcgUGFnZUJhbm5lcih7ImJhbm5lcnMiOnsic3RhdGljYmFubmVycyI6eyI1MDAiOnsiaSI6IlwvaW1hZ2VzXC9OZXdDYXJQYWdlSW1hZ2VEeW5cLzEyNTBfRlIuanBnIiwidSI6IiIsInQiOjYwMDB9LCIwIjp7ImkiOiJcL2ltYWdlc1wvTmV3Q2FyUGFnZUltYWdlXC8xMjUwX0ZSLmpwZyIsInUiOiIiLCJ0IjozMDAwLCJhIjoiTGluY29sbiBhIHZlbmRyZSA\/IENoZWxtc2ZvcmQsIEdyYW5kZSB2aWxsZSBkZSBTdWRidXJ5IGNoZXogQmVsYW5nZXIgTGluY29sbiAtIDEifSwiMSI6eyJpIjoiXC9pbWFnZXNcL05ld0NhclBhZ2VJbWFnZTJcLzEyNTBfRlIuanBnIiwidSI6IiIsInQiOjMwMDAsImEiOiJMaW5jb2xuIGEgdmVuZHJlID8gQ2hlbG1zZm9yZCwgR3JhbmRlIHZpbGxlIGRlIFN1ZGJ1cnkgY2hleiBCZWxhbmdlciBMaW5jb2xuIC0gMiJ9fX0sImNvbmZpZyI6eyJjMSI6ImZmZmZmZiIsImMyIjoiZmZmZmZmIiwiYzJfMSI6ImZmZmZmZiIsImMyXzIiOiIwMDAwMDAifX0pOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJCXNldFRpbWVvdXQoIGluaXQsIDMwMDAgKTsKCQkJfQoJCQlpbml0KCk7CgkJfSkoKTsKCQ==","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkJLyo8IVtDREFUQVsqLwoJCQkJCXZhciBib3hCbG9ja3MgPSB7InN1diI6eyJmYnhfc3V2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTMwOTQsImNvbnNvIjo4LjMwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibGluY29sbiIsImNhck1vZGVsIjoiQ29yc2FpciIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo1MzY4NCwiY29uc28iOjguMzAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJsaW5jb2xuIiwiY2FyTW9kZWwiOiJDb3JzYWlyIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjYzOTQ0LCJjb25zbyI6OC4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJsaW5jb2xuIiwiY2FyTW9kZWwiOiJOYXV0aWx1cyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo2NDM0NCwiY29uc28iOjguMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibGluY29sbiIsImNhck1vZGVsIjoiTmF1dGlsdXMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6ODAzOTQsImNvbnNvIjo5LjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImxpbmNvbG4iLCJjYXJNb2RlbCI6IkF2aWF0b3IiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6ODExOTQsImNvbnNvIjo5LjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImxpbmNvbG4iLCJjYXJNb2RlbCI6IkF2aWF0b3IiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6MTIyOTg5LCJjb25zbyI6MTAuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibGluY29sbiIsImNhck1vZGVsIjoiTmF2aWdhdG9yIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl84Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjEyNjk4OSwiY29uc28iOjEwLjgwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibGluY29sbiIsImNhck1vZGVsIjoiTmF2aWdhdG9yIEwiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6MTI5NDk0LCJjb25zbyI6MTAuODAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJsaW5jb2xuIiwiY2FyTW9kZWwiOiJOYXZpZ2F0b3IiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzEwIjp7InZpc2libGUiOnRydWUsImlkIjoxMCwicG9zaXRpb24iOjEwLCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6MTMzNDk0LCJjb25zbyI6MTAuODAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJsaW5jb2xuIiwiY2FyTW9kZWwiOiJOYXZpZ2F0b3IgTCIsInNwZWNpYWxPcmRlciI6MH19LCJwaGV2Ijp7ImZieF9waGV2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxNiwicHJpY2UiOjYzNDg0LCJjb25zbyI6Ny40MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJsaW5jb2xuIiwiY2FyTW9kZWwiOiJDb3JzYWlyIFBIRVYiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo2MzQ4NCwiY29uc28iOjcuNDAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibGluY29sbiIsImNhck1vZGVsIjoiQ29yc2FpciBQSEVWIiwic3BlY2lhbE9yZGVyIjowfX19OwoJCQkJCS8qLS0qLwoJCQkJCXZhciBib3hQb3NpdGlvbnMgPSB7ImZieF9zdXZfMSI6MSwiZmJ4X3N1dl8yIjoyLCJmYnhfcGhldl8xIjoxLCJmYnhfcGhldl8yIjoyLCJmYnhfc3V2XzMiOjMsImZieF9zdXZfNCI6NCwiZmJ4X3N1dl81Ijo1LCJmYnhfc3V2XzYiOjYsImZieF9zdXZfNyI6NywiZmJ4X3N1dl84Ijo4LCJmYnhfc3V2XzkiOjksImZieF9zdXZfMTAiOjEwfTsKCQkJCQkvKiogRmlsdGVyIEpTIGluIG5ld2NhcnMuanMgKiovCgkJCQkJLypdXT4qLwoJCQkJCgoJCQkJdmFyIExlYWRDb25maWdzID0gKHR5cGVvZiBMZWFkQ29uZmlncyAhPSAndW5kZWZpbmVkJykgPyBMZWFkQ29uZmlncyA6IHt9OwoKCQkJCWxldCBhY3RpdmVMYW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZXNpdGVsYW5ndWFnZScpID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZXNpdGVsYW5ndWFnZScpLnZhbHVlIDogJ0ZSRU5DSCc7CgoJCQkJTGVhZENvbmZpZ3MuRGVhbGVyQXBwb2ludG1lbnQgPSB7CgoJCQkJCXRpdGxlOiAoYWN0aXZlTGFuZyA9PSAnRU5HTElTSCcgPyAnUmVxdWVzdCBhbiBhcHBvaW50bWVudCcgOiAnUHJlbmRyZSBSZW5kZXotdm91cycpLAoJCQkJCWNsb3NlT25TdWJtaXQgOiB0cnVlLAoJCQkJCW5hbWUgOiAnRGVhbGVyQXBwb2ludG1lbnQnLAoKCQkJCQlvbkJlZm9yZU9wZW46IGZ1bmN0aW9uKGxlYWRDb25mKXsKICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignZGVhbGVyQXBwb2ludG1lbnQuc3RhcnQnKTsKCgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCQkJCQkJY29uc3QgdGltZUlucHV0ID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignW25hbWU9ImRhdGUiXScpOwoJCQkJCQljb25zdCBwaWNrZXIgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuZGF0ZXBpY2tlcicpOwoJCQkJCQljb25zdCBwaG9uZUVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKTsKCQkJCQkJY29uc3QgaG91cnNCbG9jayA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5ob3Vyc0xpc3QnKTsKCQkJCQkJbGV0IGRheU5vZGVzID0gQXJyYXkuZnJvbShob3Vyc0Jsb2NrLmNoaWxkcmVuKTsKCQkJCQkJbGV0IGRhdGVGb3JtYXQgPSAgYWN0aXZlTGFuZyA9PSAnRU5HTElTSCcgPyAnRiBqIFksIEg6aScgOiAnaiBGIFksIEg6aSc7CgoKCQkJCQkJY29uc3Qgc2V0U2VsZWN0ZWQgPSAoc2VsZWN0ZWREYXRlcywgZGF0ZVN0ciwgaW5zdGFuY2UpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50bHlTZWxlY3RlZERhdGUgPSBzZWxlY3RlZERhdGVzWzBdIHx8IG5ldyBEYXRlKCk7Ly9kb24ndCBwbGF5IHdpdGggdGhpcyBvciBtaWdodCBhZmZlY3QgZGF0ZS90aW1lIHNlbGVjdGlvbgoJCQkJCQkJbGV0IGRheU51bSA9IGN1cnJlbnRseVNlbGVjdGVkRGF0ZS5nZXREYXkoKTsKCgkJCQkJCQlkYXlOdW0gPSBkYXlOdW0gPT0gMCA\/IDcgOiBkYXlOdW07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRheU1pblRpbWUgPSBkYXlOb2Rlc1tkYXlOdW0gLSAxXS5kYXRhc2V0Lm1pbmhvdXIgfHwgJzA5OjAwJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlNYXhUaW1lID0gZGF5Tm9kZXNbZGF5TnVtIC0gMV0uZGF0YXNldC5tYXhob3VyIHx8ICcxNzowMCc7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9taW5UaW1lIG1hbmFnZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgZGF0ZSBpcyB0b2RheSwgbWluVGltZSBuZWVkcyB0byBiZSBhIG1pbmltdW0gb2YgMWhvdXIgbGF0ZXIgZnJvbSBjdXJyZW50IHRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNlbGVjdGVkRGF0ZXNbMF0pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY2NlcHRlZEV4Y2VwdGlvbiA9IDU7Ly9taW51dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWREYXRlc1swXS50b0RhdGVTdHJpbmcoKSA9PSBub3cudG9EYXRlU3RyaW5nKCkpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWluSG91ciA9IG5vdy5nZXRIb3VycygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWluTWludXRlID0gbm93LmdldE1pbnV0ZXMoKSArIDYwOy8vYWRkIDEgaG91cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5NaW51dGUgPj0gNjApewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSG91ciArPSBNYXRoLmZsb29yKG1pbk1pbnV0ZSAvIDYwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbk1pbnV0ZSA9IG1pbk1pbnV0ZSAlIDYwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlICUgMTUpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWFrZSBpdCBzbyB0aGF0IG1pbnV0ZXMgYXJlIGVpdGhlciByb3VuZGVkIHRvIG5leHQgMTVtaW4gaW5jcmVtZW50IG9yIHRvIHRoZSBwcmV2aW91cyBvbmUgaWYgd2l0aGluIGFjY2VwdGVkRXhjZXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlICUgMTUgPD0gYWNjZXB0ZWRFeGNlcHRpb24pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgLSAobWluTWludXRlICUgMTUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKChtaW5NaW51dGUgJSAxNSA+IGFjY2VwdGVkRXhjZXB0aW9uKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbk1pbnV0ZSA9IG1pbk1pbnV0ZSArICgxNSAtIChtaW5NaW51dGUgJSAxNSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZG8gbm90aGluZywgYWxyZWFkeSBhdCBpbmNyZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5Ib3VyID49IDI0KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbm8gbW9yZSBhdmFpbGFibGUgdGltZSB0b2RheSwgc2V0IHRvIG5leHQgZGF5IGF0IDA5OjAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5zZXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5zZXQoJ21pblRpbWUnLCBkYXlNaW5UaW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlNaW5UaW1lID0gU3RyaW5nKG1pbkhvdXIpLnBhZFN0YXJ0KDIsJzAnKSArICc6JyArIFN0cmluZyhtaW5NaW51dGUpLnBhZFN0YXJ0KDIsJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21heFRpbWUgbWFuYWdlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFzdCBhcHBvaW50bWVudCB0aW1lIG1hbmFnZW1lbnQgKDE1bWluIGJlZm9yZSBjbG9zaW5nIHRpbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgW2Nsb3NpbmdIb3VycywgY2xvc2luZ01pbnV0ZXNdID0gZGF5TWF4VGltZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRheURhdGUgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5RGF0ZS5zZXRIb3VycyhjbG9zaW5nSG91cnMsIGNsb3NpbmdNaW51dGVzLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheURhdGUuc2V0TWludXRlcyhkYXlEYXRlLmdldE1pbnV0ZXMoKSAtIDE1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZm9ybWF0IHRoZSBuZXcgdGltZSBiYWNrIGludG8gJ0hIOm1tJyBmb3JtYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWxDbG9zaW5nSG91cnMgPSBkYXlEYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbENsb3NpbmdNaW51dGVzID0gZGF5RGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5TWF4VGltZSA9IGFjdHVhbENsb3NpbmdIb3VycyArICc6JyArIGFjdHVhbENsb3NpbmdNaW51dGVzOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2V0IHN0YXJ0L2VuZCB0aW1lIGZvciB0aGF0IGRheQoJCQkJCQkJaW5zdGFuY2Uuc2V0KCdtaW5UaW1lJywgZGF5TWluVGltZSk7CgkJCQkJCQlpbnN0YW5jZS5zZXQoJ21heFRpbWUnLCBkYXlNYXhUaW1lKTsKCgkJCQkJCQkvL1NldCBjdXJyZW50IGRhdGUgaW5pdGlhbGx5CgkJCQkJCQl0aW1lVHh0RWwudGV4dENvbnRlbnQgPSAhc2VsZWN0ZWREYXRlcy5sZW5ndGgKCQkJCQkJCQkJCQkJICA\/IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCAoYWN0aXZlTGFuZyA9PSAnRU5HTElTSCcgPyAnRiBqIFksIDEyOjAwJyA6ICdqIEYgWSwgMTI6MDAnKSkKCQkJCQkJCQkJCQkJICA6IGRhdGVTdHI7CgoJCQkJCQkJLy9nZXQgdGhlIGRhdGUgaW4gZW5nbGlzaCBhbmQgZnJlbmNoIGZvciB0aGUgbG9jYWwgc3RvcmFnZQoJCQkJCQkJdGltZVR4dEVsLmRhdGFzZXQuZW4gPSBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwnRiBqIFksIDEyOjAwJywgZmxhdHBpY2tyLmwxMG5zLmVuKTsKCQkJCQkJCXRpbWVUeHRFbC5kYXRhc2V0LmZyID0gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksJ2ogRiBZLCAxMjowMCcsIGZsYXRwaWNrci5sMTBucy5mcik7CgoJCQkJCQkJdGltZUlucHV0LnZhbHVlID0gdGltZVR4dEVsLnRleHRDb250ZW50OwoKCQkJCQkJCWluc3RhbmNlLmhvdXJFbGVtZW50LmJsdXIoKTsKCQkJCQkJfTsKCgkJCQkJCWxldCBjbG9zZWREYXlzID0gW107CgkJCQkJCWRheU5vZGVzLmZvckVhY2goKGUsaSkgPT4gewoJCQkJCQkJaWYoKGUuZGF0YXNldC5jbG9zZWQgfHwgJzAnKSA9PSAnMScpIGNsb3NlZERheXMucHVzaChpKQoJCQkJCQl9KTsKCgkJCQkJCS8vQWRkIGZyZW5jaCBsb2NhbGl6YXRpb24gd2hlbiBuZWVkZWQKCQkJCQkJaWYoYWN0aXZlTGFuZyA9PSAnRlJFTkNIJyl7CgkJCQkJCQlmbGF0cGlja3IubG9jYWxpemUoZmxhdHBpY2tyLmwxMG5zLmZyKTsKCQkJCQkJfQoKCgoJCQkJCQljb25zdCBmcCA9IGZsYXRwaWNrcihwaWNrZXIsIHsKCQkJCQkJCWlubGluZTp0cnVlLAoJCQkJCQkJZW5hYmxlVGltZTogdHJ1ZSwKCQkJCQkJCW1pbkRhdGU6ICd0b2RheScsLy9iYWNrIGZyb20gbmV3IERhdGUoKS5mcF9pbmNyKDEpIGJ1dCBhbHNvIGFkZGVkIHRpbWUgdmFsaWRhdGlvbiBmb3IgbWluVGltZQoJCQkJCQkJbWluVGltZTogIjA5OjAwIiwKCQkJCQkJCW1heFRpbWU6ICIxNzowMCIsCgkJCQkJCQlkYXRlRm9ybWF0OiBkYXRlRm9ybWF0LC8vIkQsIGogRiBZLCBIOmkiLAoJCQkJCQkJbWludXRlSW5jcmVtZW50OjE1LAoJCQkJCQkJdGltZV8yNGhyOnRydWUsCgkJCQkJCQlvbkNoYW5nZTogc2V0U2VsZWN0ZWQsCgkJCQkJCQlvblJlYWR5OiBzZXRTZWxlY3RlZCwKCQkJCQkJCWRpc2FibGU6IFsKCQkJCQkJCQlmdW5jdGlvbihkYXRlKXsKCQkJCQkJCQkJbGV0IGRheU51bSA9IGRhdGUuZ2V0RGF5KCkgPT0gMCA\/IDcgOiBkYXRlLmdldERheSgpOwoJCQkJCQkJCQlyZXR1cm4gY2xvc2VkRGF5cy5pbmNsdWRlcyhkYXlOdW0gLSAxKTsKCQkJCQkJCQl9CgkJCQkJCQldLAoJCQkJCQkJbG9jYWxlOiB7CgkJCQkJCQkJZmlyc3REYXlPZldlZWs6IDEgLy8gc3RhcnQgd2VlayBvbiBNb25kYXkKCQkJCQkJCX0KCgkJCQkJCX0pOwoKCQkJCQl9LAoKCQkJCQlvbkJlZm9yZVN1Ym1pdCA6IChsZWFkQ29uZikgPT4gewoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgkJCQkJCWVtYWlsSGFuZGxlci5kZWFsZXJBcHBvaW50bWVudERhdGEgPSB7CgkJCQkJCQlkYXRlIDogdGltZVR4dEVsLnRleHRDb250ZW50CgkJCQkJCX07CgkJCQkJfSwKCgkJCQkJb25BZnRlclN1Ym1pdCA6IChsZWFkQ29uZikgPT4gewoKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoKCQkJCQkJY29uc3QgY2IgPSB0cmFja1N0ZXAgPT4gewoJCQkJCQkJdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2ZyID0gdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2ZyLnJlcGxhY2UoJ3skQVBQT0lOVF9EQVRFfScsIHRpbWVUeHRFbC5kYXRhc2V0LmZyKTsKCQkJCQkJCXRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9lbiA9IHRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9lbi5yZXBsYWNlKCd7JEFQUE9JTlRfREFURX0nLCB0aW1lVHh0RWwuZGF0YXNldC5lbik7CgkJCQkJCX07CgoJCQkJCQlsZXQgY29tcGxldGVFdmVudCA9IG5ldyBDdXN0b21FdmVudCgndHJhY2tzdGVwLmNvbXBsZXRlJyx7CgkJCQkJCQlkZXRhaWw6ewoJCQkJCQkJCXN0ZXBJZCA6ICdEZWFsZXJBcHBvaW50bWVudCcsCgkJCQkJCQkJb25Db21wbGV0ZSA6IGNiCgkJCQkJCQl9CgkJCQkJCX0pOwoKCQkJCQkJZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjb21wbGV0ZUV2ZW50KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnRyaWdnZXIoJ2RlYWxlckFwcG9pbnRtZW50LmVuZCcpOwoJCQkJCX0KCgkJCQl9CgoJCQkKLyoqIC9qcy9za2VsZXRvbi5iZWZvcmUuanMgKiovCnZhciBfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjAzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzc6NTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDIzLTA2LTAxIDEyOjMwOjE5IjsidXNlIHN0cmljdCI7bGV0ICRqc2NvbXAkbnVsbGlzaCR0bXAwO3dpbmRvdy5nU3BlZWRDb25uPXBhcnNlSW50KE1hdGguZmxvb3IoKERhdGUubm93KCktKG51bGwhPSgkanNjb21wJG51bGxpc2gkdG1wMD13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pPyRqc2NvbXAkbnVsbGlzaCR0bXAwOjApKS8xRTMpKTtsZXQgJGpzY29tcCRudWxsaXNoJHRtcDE7Y29uc29sZS5sb2coIkdTUEVFRC1CRUZPUkU6IisoRGF0ZS5ub3coKS0obnVsbCE9KCRqc2NvbXAkbnVsbGlzaCR0bXAxPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/JGpzY29tcCRudWxsaXNoJHRtcDE6MCkpLzFFMyk7Ci8qKiAvanMvanF1ZXJ5LmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6NDkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzE6MzMiOyJ1c2Ugc3RyaWN0IjsKIWZ1bmN0aW9uKG4sZGEpeyJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPW4uZG9jdW1lbnQ\/ZGEobiwhMCk6ZnVuY3Rpb24od2Epe2lmKCF3YS5kb2N1bWVudCl0aHJvdyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBkYSh3YSl9OmRhKG4pfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihuLGRhKXtmdW5jdGlvbiB3YShhLGIsYyl7dmFyIGUsZixnPShjPWN8fEwpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKGcudGV4dD1hLGIpZm9yKGUgaW4gTGMpKGY9YltlXXx8Yi5nZXRBdHRyaWJ1dGUmJmIuZ2V0QXR0cmlidXRlKGUpKSYmZy5zZXRBdHRyaWJ1dGUoZSxmKTtjLmhlYWQuYXBwZW5kQ2hpbGQoZykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKX1mdW5jdGlvbiBVKGEpe3JldHVybiBudWxsPT1hP2ErCiIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE\/TWJba2MuY2FsbChhKV18fCJvYmplY3QiOnR5cGVvZiBhfWZ1bmN0aW9uIGViKGEpe3ZhciBiPSEhYSYmImxlbmd0aCJpbiBhJiZhLmxlbmd0aCxjPVUoYSk7cmV0dXJuIU0oYSkmJiFrYihhKSYmKCJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiYwPGImJmItMSBpbiBhKX1mdW5jdGlvbiBYKGEsYil7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWIudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBiYShhLGIpe3JldHVybiBiPyJceDAwIj09PWE\/Ilx1ZmZmZCI6YS5zbGljZSgwLC0xKSsiXFwiK2EuY2hhckNvZGVBdChhLmxlbmd0aC0xKS50b1N0cmluZygxNikrIiAiOiJcXCIrYX1mdW5jdGlvbiBqYShhLGIsYyl7cmV0dXJuIE0oYik\/ZC5ncmVwKGEsZnVuY3Rpb24oZSxmKXtyZXR1cm4hIWIuY2FsbChlLGYsZSkhPT1jfSk6Yi5ub2RlVHlwZT9kLmdyZXAoYSwKZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1iIT09Y30pOiJzdHJpbmciIT10eXBlb2YgYj9kLmdyZXAoYSxmdW5jdGlvbihlKXtyZXR1cm4tMTxOYS5jYWxsKGIsZSkhPT1jfSk6ZC5maWx0ZXIoYixhLGMpfWZ1bmN0aW9uIGxiKGEsYil7Zm9yKDsoYT1hW2JdKSYmMSE9PWEubm9kZVR5cGU7KTtyZXR1cm4gYX1mdW5jdGlvbiBZYShhKXtyZXR1cm4gYX1mdW5jdGlvbiBaYShhKXt0aHJvdyBhO31mdW5jdGlvbiBtYihhLGIsYyxlKXt2YXIgZjt0cnl7YSYmTShmPWEucHJvbWlzZSk\/Zi5jYWxsKGEpLmRvbmUoYikuZmFpbChjKTphJiZNKGY9YS50aGVuKT9mLmNhbGwoYSxiLGMpOmIuYXBwbHkodm9pZCAwLFthXS5zbGljZShlKSl9Y2F0Y2goZyl7Yy5hcHBseSh2b2lkIDAsW2ddKX19ZnVuY3Rpb24gT2EoKXtMLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLE9hKTtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLE9hKTtkLnJlYWR5KCl9ZnVuY3Rpb24gTmIoYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfQpmdW5jdGlvbiBCYShhKXtyZXR1cm4gYS5yZXBsYWNlKE1jLCJtcy0iKS5yZXBsYWNlKE5jLE5iKX1mdW5jdGlvbiBKYSgpe3RoaXMuZXhwYW5kbz1kLmV4cGFuZG8rSmEudWlkKyt9ZnVuY3Rpb24gT2IoYSxiLGMpe3ZhciBlLGY7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpaWYoZT0iZGF0YS0iK2IucmVwbGFjZShPYywiLSQmIikudG9Mb3dlckNhc2UoKSwic3RyaW5nIj09dHlwZW9mKGM9YS5nZXRBdHRyaWJ1dGUoZSkpKXt0cnl7Yz0idHJ1ZSI9PT0oZj1jKXx8ImZhbHNlIiE9PWYmJigibnVsbCI9PT1mP251bGw6Zj09PStmKyIiPytmOlBjLnRlc3QoZik\/SlNPTi5wYXJzZShmKTpmKX1jYXRjaChnKXt9eGEuc2V0KGEsYixjKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfWZ1bmN0aW9uIFBiKGEsYixjLGUpe3ZhciBmLGcsaD0yMCxtPWU\/ZnVuY3Rpb24oKXtyZXR1cm4gZS5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gZC5jc3MoYSxiLCIiKX0sbD1tKCksdD1jJiZjWzNdfHwKKGQuY3NzTnVtYmVyW2JdPyIiOiJweCIpLHc9YS5ub2RlVHlwZSYmKGQuY3NzTnVtYmVyW2JdfHwicHgiIT09dCYmK2wpJiZ5Yi5leGVjKGQuY3NzKGEsYikpO2lmKHcmJndbM10hPT10KXtsLz0yO3Q9dHx8d1szXTtmb3Iodz0rbHx8MTtoLS07KWQuc3R5bGUoYSxiLHcrdCksMD49KDEtZykqKDEtKGc9bSgpL2x8fC41KSkmJihoPTApLHcvPWc7dyo9MjtkLnN0eWxlKGEsYix3K3QpO2M9Y3x8W119cmV0dXJuIGMmJih3PSt3fHwrbHx8MCxmPWNbMV0\/dysoY1sxXSsxKSpjWzJdOitjWzJdLGUmJihlLnVuaXQ9dCxlLnN0YXJ0PXcsZS5lbmQ9ZikpLGZ9ZnVuY3Rpb24gJGEoYSxiKXtmb3IodmFyIGMsZSxmLGcsaCxtLGwsdD1bXSx3PTAscj1hLmxlbmd0aDt3PHI7dysrKShlPWFbd10pLnN0eWxlJiYoYz1lLnN0eWxlLmRpc3BsYXksYj8oIm5vbmUiPT09YyYmKHRbd109Ry5nZXQoZSwiZGlzcGxheSIpfHxudWxsLHRbd118fChlLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PWUuc3R5bGUuZGlzcGxheSYmClFiKGUpJiYodFt3XT0obD1oPWc9dm9pZCAwLGg9KGY9ZSkub3duZXJEb2N1bWVudCxtPWYubm9kZU5hbWUsKGw9bGNbbV0pfHwoZz1oLmJvZHkuYXBwZW5kQ2hpbGQoaC5jcmVhdGVFbGVtZW50KG0pKSxsPWQuY3NzKGcsImRpc3BsYXkiKSxnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyksIm5vbmUiPT09bCYmKGw9ImJsb2NrIiksbGNbbV09bCkpKSk6Im5vbmUiIT09YyYmKHRbd109Im5vbmUiLEcuc2V0KGUsImRpc3BsYXkiLGMpKSk7Zm9yKHc9MDt3PHI7dysrKW51bGwhPXRbd10mJihhW3ddLnN0eWxlLmRpc3BsYXk9dFt3XSk7cmV0dXJuIGF9ZnVuY3Rpb24gc2EoYSxiKXt2YXIgYztyZXR1cm4gYz0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWU\/YS5nZXRFbGVtZW50c0J5VGFnTmFtZShifHwiKiIpOiJ1bmRlZmluZWQiIT10eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsP2EucXVlcnlTZWxlY3RvckFsbChifHwiKiIpOltdLHZvaWQgMD09PWJ8fGImJgpYKGEsYik\/ZC5tZXJnZShbYV0sYyk6Y31mdW5jdGlvbiBuYihhLGIpe2Zvcih2YXIgYz0wLGU9YS5sZW5ndGg7YzxlO2MrKylHLnNldChhW2NdLCJnbG9iYWxFdmFsIiwhYnx8Ry5nZXQoYltjXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBSYihhLGIsYyxlLGYpe2Zvcih2YXIgZyxoLG0sbCx0PWIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHc9W10scj0wLHo9YS5sZW5ndGg7cjx6O3IrKylpZigoZz1hW3JdKXx8MD09PWcpaWYoIm9iamVjdCI9PT1VKGcpKWQubWVyZ2UodyxnLm5vZGVUeXBlP1tnXTpnKTtlbHNlIGlmKFFjLnRlc3QoZykpe2g9aHx8dC5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImRpdiIpKTttPShtYy5leGVjKGcpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpO209Q2FbbV18fENhLl9kZWZhdWx0O2guaW5uZXJIVE1MPW1bMV0rZC5odG1sUHJlZmlsdGVyKGcpK21bMl07Zm9yKG09bVswXTttLS07KWg9aC5sYXN0Q2hpbGQ7ZC5tZXJnZSh3LGguY2hpbGROb2Rlcyk7CihoPXQuZmlyc3RDaGlsZCkudGV4dENvbnRlbnQ9IiJ9ZWxzZSB3LnB1c2goYi5jcmVhdGVUZXh0Tm9kZShnKSk7dC50ZXh0Q29udGVudD0iIjtmb3Iocj0wO2c9d1tyKytdOylpZihlJiYtMTxkLmluQXJyYXkoZyxlKSlmJiZmLnB1c2goZyk7ZWxzZSBpZihsPW9iKGcpLGg9c2EodC5hcHBlbmRDaGlsZChnKSwic2NyaXB0IiksbCYmbmIoaCksYylmb3IobT0wO2c9aFttKytdOyluYy50ZXN0KGcudHlwZXx8IiIpJiZjLnB1c2goZyk7cmV0dXJuIHR9ZnVuY3Rpb24gYWIoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYigpe3JldHVybiExfWZ1bmN0aW9uIGZiKGEsYixjLGUsZixnKXt2YXIgaCxtO2lmKCJvYmplY3QiPT10eXBlb2YgYil7Zm9yKG0gaW4ic3RyaW5nIiE9dHlwZW9mIGMmJihlPWV8fGMsYz12b2lkIDApLGIpZmIoYSxtLGMsZSxiW21dLGcpO3JldHVybiBhfWlmKG51bGw9PWUmJm51bGw9PWY\/KGY9YyxlPWM9dm9pZCAwKTpudWxsPT1mJiYoInN0cmluZyI9PXR5cGVvZiBjPyhmPQplLGU9dm9pZCAwKTooZj1lLGU9YyxjPXZvaWQgMCkpLCExPT09ZilmPWJiO2Vsc2UgaWYoIWYpcmV0dXJuIGE7cmV0dXJuIDE9PT1nJiYoaD1mLChmPWZ1bmN0aW9uKGwpe3JldHVybiBkKCkub2ZmKGwpLGguYXBwbHkodGhpcyxhcmd1bWVudHMpfSkuZ3VpZD1oLmd1aWR8fChoLmd1aWQ9ZC5ndWlkKyspKSxhLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LmFkZCh0aGlzLGIsZixlLGMpfSl9ZnVuY3Rpb24gcGIoYSxiLGMpe2M\/KEcuc2V0KGEsYiwhMSksZC5ldmVudC5hZGQoYSxiLHtuYW1lc3BhY2U6ITEsaGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgZixnPUcuZ2V0KHRoaXMsYik7aWYoMSZlLmlzVHJpZ2dlciYmdGhpc1tiXSlpZihnKShkLmV2ZW50LnNwZWNpYWxbYl18fHt9KS5kZWxlZ2F0ZVR5cGUmJmUuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZXtpZihnPXlhLmNhbGwoYXJndW1lbnRzKSxHLnNldCh0aGlzLGIsZyksdGhpc1tiXSgpLGY9Ry5nZXQodGhpcyxiKSxHLnNldCh0aGlzLGIsCiExKSxnIT09ZilyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksZn1lbHNlIGcmJihHLnNldCh0aGlzLGIsZC5ldmVudC50cmlnZ2VyKGdbMF0sZy5zbGljZSgxKSx0aGlzKSksZS5zdG9wUHJvcGFnYXRpb24oKSxlLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWFiKX19KSk6dm9pZCAwPT09Ry5nZXQoYSxiKSYmZC5ldmVudC5hZGQoYSxiLGFiKX1mdW5jdGlvbiBTYihhLGIpe3JldHVybiBYKGEsInRhYmxlIikmJlgoMTEhPT1iLm5vZGVUeXBlP2I6Yi5maXJzdENoaWxkLCJ0ciIpJiZkKGEpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxhfWZ1bmN0aW9uIHFiKGEpe3JldHVybiBhLnR5cGU9KG51bGwhPT1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24gJGIoYSl7cmV0dXJuInRydWUvIj09PShhLnR5cGV8fCIiKS5zbGljZSgwLDUpP2EudHlwZT1hLnR5cGUuc2xpY2UoNSk6YS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSwKYX1mdW5jdGlvbiBnYihhLGIpe3ZhciBjLGUsZixnLGg7aWYoMT09PWIubm9kZVR5cGUpe2lmKEcuaGFzRGF0YShhKSYmKGg9Ry5nZXQoYSkuZXZlbnRzKSlmb3IoZSBpbiBHLnJlbW92ZShiLCJoYW5kbGUgZXZlbnRzIiksaCl7dmFyIG09MDtmb3IoYz1oW2VdLmxlbmd0aDttPGM7bSsrKWQuZXZlbnQuYWRkKGIsZSxoW2VdW21dKX14YS5oYXNEYXRhKGEpJiYoZj14YS5hY2Nlc3MoYSksZz1kLmV4dGVuZCh7fSxmKSx4YS5zZXQoYixnKSl9fWZ1bmN0aW9uIGNiKGEsYixjLGUpe2I9b2MoYik7dmFyIGYsZyxoLG09MCxsPWEubGVuZ3RoLHQ9bC0xLHc9YlswXSxyPU0odyk7aWYocnx8MTxsJiYic3RyaW5nIj09dHlwZW9mIHcmJiFOLmNoZWNrQ2xvbmUmJlJjLnRlc3QodykpcmV0dXJuIGEuZWFjaChmdW5jdGlvbihEKXt2YXIgRj1hLmVxKEQpO3ImJihiWzBdPXcuY2FsbCh0aGlzLEQsRi5odG1sKCkpKTtjYihGLGIsYyxlKX0pO2lmKGwmJihnPShmPVJiKGIsYVswXS5vd25lckRvY3VtZW50LAohMSxhLGUpKS5maXJzdENoaWxkLDE9PT1mLmNoaWxkTm9kZXMubGVuZ3RoJiYoZj1nKSxnfHxlKSl7Zm9yKGg9KGc9ZC5tYXAoc2EoZiwic2NyaXB0IikscWIpKS5sZW5ndGg7bTxsO20rKyl7dmFyIHo9ZjttIT09dCYmKHo9ZC5jbG9uZSh6LCEwLCEwKSxoJiZkLm1lcmdlKGcsc2Eoeiwic2NyaXB0IikpKTtjLmNhbGwoYVttXSx6LG0pfWlmKGgpZm9yKGY9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LGQubWFwKGcsJGIpLG09MDttPGg7bSsrKXo9Z1ttXSxuYy50ZXN0KHoudHlwZXx8IiIpJiYhRy5hY2Nlc3MoeiwiZ2xvYmFsRXZhbCIpJiZkLmNvbnRhaW5zKGYseikmJih6LnNyYyYmIm1vZHVsZSIhPT0oei50eXBlfHwiIikudG9Mb3dlckNhc2UoKT9kLl9ldmFsVXJsJiYhei5ub01vZHVsZSYmZC5fZXZhbFVybCh6LnNyYyx7bm9uY2U6ei5ub25jZXx8ei5nZXRBdHRyaWJ1dGUoIm5vbmNlIil9LGYpOndhKHoudGV4dENvbnRlbnQucmVwbGFjZShTYywiIikseixmKSl9cmV0dXJuIGF9CmZ1bmN0aW9uIFRiKGEsYixjKXtmb3IodmFyIGU9Yj9kLmZpbHRlcihiLGEpOmEsZj0wO251bGwhPShiPWVbZl0pO2YrKyljfHwxIT09Yi5ub2RlVHlwZXx8ZC5jbGVhbkRhdGEoc2EoYikpLGIucGFyZW50Tm9kZSYmKGMmJm9iKGIpJiZuYihzYShiLCJzY3JpcHQiKSksYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpKTtyZXR1cm4gYX1mdW5jdGlvbiBLYShhLGIsYyl7dmFyIGUsZixnLGgsbT1hYy50ZXN0KGIpLGw9YS5zdHlsZTtyZXR1cm4oYz1jfHxVYihhKSkmJihoPWMuZ2V0UHJvcGVydHlWYWx1ZShiKXx8Y1tiXSxtJiZoJiYoaD1oLnJlcGxhY2UoemIsIiQxIil8fHZvaWQgMCksIiIhPT1ofHxvYihhKXx8KGg9ZC5zdHlsZShhLGIpKSwhTi5waXhlbEJveFN0eWxlcygpJiZiYy50ZXN0KGgpJiZUYy50ZXN0KGIpJiYoZT1sLndpZHRoLGY9bC5taW5XaWR0aCxnPWwubWF4V2lkdGgsbC5taW5XaWR0aD1sLm1heFdpZHRoPWwud2lkdGg9aCxoPWMud2lkdGgsbC53aWR0aD1lLGwubWluV2lkdGg9CmYsbC5tYXhXaWR0aD1nKSksdm9pZCAwIT09aD9oKyIiOmh9ZnVuY3Rpb24gVmIoYSxiKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWEoKSlyZXR1cm4odGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fWZ1bmN0aW9uIEFiKGEpe3ZhciBiO2lmKCEoYj1kLmNzc1Byb3BzW2FdfHxwY1thXSkpe2lmKCEoYSBpbiBxYykpe2E6e2I9YTtmb3IodmFyIGM9YlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSksZT1yYy5sZW5ndGg7ZS0tOylpZigoYj1yY1tlXStjKWluIHFjKWJyZWFrIGE7Yj12b2lkIDB9YT1wY1thXT1ifHxhfWI9YX1yZXR1cm4gYn1mdW5jdGlvbiBXYihhLGIsYyl7cmV0dXJuKGE9eWIuZXhlYyhiKSk\/TWF0aC5tYXgoMCxhWzJdLShjfHwwKSkrKGFbM118fCJweCIpOmJ9ZnVuY3Rpb24gcmIoYSxiLGMsZSxmLGcpe3ZhciBoPSJ3aWR0aCI9PT1iPzE6MCxtPTAsbD0wLHQ9MDtpZihjPT09KGU\/ImJvcmRlciI6ImNvbnRlbnQiKSlyZXR1cm4gMDsKZm9yKDs0Pmg7aCs9MikibWFyZ2luIj09PWMmJih0Kz1kLmNzcyhhLGMrUGFbaF0sITAsZikpLGU\/KCJjb250ZW50Ij09PWMmJihsLT1kLmNzcyhhLCJwYWRkaW5nIitQYVtoXSwhMCxmKSksIm1hcmdpbiIhPT1jJiYobC09ZC5jc3MoYSwiYm9yZGVyIitQYVtoXSsiV2lkdGgiLCEwLGYpKSk6KGwrPWQuY3NzKGEsInBhZGRpbmciK1BhW2hdLCEwLGYpLCJwYWRkaW5nIiE9PWM\/bCs9ZC5jc3MoYSwiYm9yZGVyIitQYVtoXSsiV2lkdGgiLCEwLGYpOm0rPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKSk7cmV0dXJuIWUmJjA8PWcmJihsKz1NYXRoLm1heCgwLE1hdGguY2VpbChhWyJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpXS1nLWwtbS0uNSkpfHwwKSxsK3R9ZnVuY3Rpb24gQmIoYSxiLGMpe3ZhciBlPVViKGEpLGY9KCFOLmJveFNpemluZ1JlbGlhYmxlKCl8fGMpJiYiYm9yZGVyLWJveCI9PT1kLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGc9CmYsaD1LYShhLGIsZSksbT0ib2Zmc2V0IitiWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKTtpZihiYy50ZXN0KGgpKXtpZighYylyZXR1cm4gaDtoPSJhdXRvIn1yZXR1cm4oIU4uYm94U2l6aW5nUmVsaWFibGUoKSYmZnx8IU4ucmVsaWFibGVUckRpbWVuc2lvbnMoKSYmWChhLCJ0ciIpfHwiYXV0byI9PT1ofHwhcGFyc2VGbG9hdChoKSYmImlubGluZSI9PT1kLmNzcyhhLCJkaXNwbGF5IiwhMSxlKSkmJmEuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJihmPSJib3JkZXItYm94Ij09PWQuY3NzKGEsImJveFNpemluZyIsITEsZSksKGc9bSBpbiBhKSYmKGg9YVttXSkpLChoPXBhcnNlRmxvYXQoaCl8fDApK3JiKGEsYixjfHwoZj8iYm9yZGVyIjoiY29udGVudCIpLGcsZSxoKSsicHgifWZ1bmN0aW9uIHphKGEsYixjLGUsZil7cmV0dXJuIG5ldyB6YS5wcm90b3R5cGUuaW5pdChhLGIsYyxlLGYpfWZ1bmN0aW9uIENiKCl7WGImJighMT09PUwuaGlkZGVuJiZuLnJlcXVlc3RBbmltYXRpb25GcmFtZT8Kbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoQ2IpOm4uc2V0VGltZW91dChDYixkLmZ4LmludGVydmFsKSxkLmZ4LnRpY2soKSl9ZnVuY3Rpb24gRGIoKXtyZXR1cm4gbi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2I9dm9pZCAwfSksc2I9RGF0ZS5ub3coKX1mdW5jdGlvbiB0YihhLGIpe3ZhciBjLGU9MCxmPXtoZWlnaHQ6YX07Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYilmWyJtYXJnaW4iKyhjPVBhW2VdKV09ZlsicGFkZGluZyIrY109YTtyZXR1cm4gYiYmKGYub3BhY2l0eT1mLndpZHRoPWEpLGZ9ZnVuY3Rpb24gdShhLGIsYyl7Zm9yKHZhciBlLGY9KHgudHdlZW5lcnNbYl18fFtdKS5jb25jYXQoeC50d2VlbmVyc1siKiJdKSxnPTAsaD1mLmxlbmd0aDtnPGg7ZysrKWlmKGU9ZltnXS5jYWxsKGMsYixhKSlyZXR1cm4gZX1mdW5jdGlvbiB4KGEsYixjKXt2YXIgZSxmPTAsZz14LnByZWZpbHRlcnMubGVuZ3RoLGg9ZC5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBtLmVsZW19KSwKbT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7dmFyIHQ9c2J8fERiKCk7dD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tdCk7Zm9yKHZhciB3PTEtKHQvbC5kdXJhdGlvbnx8MCkscj0wLHo9bC50d2VlbnMubGVuZ3RoO3I8ejtyKyspbC50d2VlbnNbcl0ucnVuKHcpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbbCx3LHRdKSwxPncmJno\/dDooenx8aC5ub3RpZnlXaXRoKGEsW2wsMSwwXSksaC5yZXNvbHZlV2l0aChhLFtsXSksITEpfSxsPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOmQuZXh0ZW5kKHt9LGIpLG9wdHM6ZC5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOmQuZWFzaW5nLl9kZWZhdWx0fSxjKSxvcmlnaW5hbFByb3BlcnRpZXM6YixvcmlnaW5hbE9wdGlvbnM6YyxzdGFydFRpbWU6c2J8fERiKCksZHVyYXRpb246Yy5kdXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24odCx3KXt0PWQuVHdlZW4oYSxsLm9wdHMsdCx3LGwub3B0cy5zcGVjaWFsRWFzaW5nW3RdfHwKbC5vcHRzLmVhc2luZyk7cmV0dXJuIGwudHdlZW5zLnB1c2godCksdH0sc3RvcDpmdW5jdGlvbih0KXt2YXIgdz0wLHI9dD9sLnR3ZWVucy5sZW5ndGg6MDtpZihlKXJldHVybiB0aGlzO2ZvcihlPSEwO3c8cjt3KyspbC50d2VlbnNbd10ucnVuKDEpO3JldHVybiB0PyhoLm5vdGlmeVdpdGgoYSxbbCwxLDBdKSxoLnJlc29sdmVXaXRoKGEsW2wsdF0pKTpoLnJlamVjdFdpdGgoYSxbbCx0XSksdGhpc319KTtjPWwucHJvcHM7IWZ1bmN0aW9uKHQsdyl7dmFyIHIseixELEYsTztmb3IociBpbiB0KWlmKEQ9d1t6PUJhKHIpXSxGPXRbcl0sQXJyYXkuaXNBcnJheShGKSYmKEQ9RlsxXSxGPXRbcl09RlswXSksciE9PXomJih0W3pdPUYsZGVsZXRlIHRbcl0pLChPPWQuY3NzSG9va3Nbel0pJiYiZXhwYW5kImluIE8pZm9yKHIgaW4gRj1PLmV4cGFuZChGKSxkZWxldGUgdFt6XSxGKXIgaW4gdHx8KHRbcl09RltyXSx3W3JdPUQpO2Vsc2Ugd1t6XT1EfShjLGwub3B0cy5zcGVjaWFsRWFzaW5nKTsKZm9yKDtmPGc7ZisrKWlmKGI9eC5wcmVmaWx0ZXJzW2ZdLmNhbGwobCxhLGMsbC5vcHRzKSlyZXR1cm4gTShiLnN0b3ApJiYoZC5fcXVldWVIb29rcyhsLmVsZW0sbC5vcHRzLnF1ZXVlKS5zdG9wPWIuc3RvcC5iaW5kKGIpKSxiO3JldHVybiBkLm1hcChjLHUsbCksTShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChhLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLGQuZngudGltZXIoZC5leHRlbmQobSx7ZWxlbTphLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1mdW5jdGlvbiBDKGEpe3JldHVybihhLm1hdGNoKExhKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBIKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIifWZ1bmN0aW9uIFAoYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk\/CmE6InN0cmluZyI9PXR5cGVvZiBhJiZhLm1hdGNoKExhKXx8W119ZnVuY3Rpb24gZWEoYSxiLGMsZSl7dmFyIGY7aWYoQXJyYXkuaXNBcnJheShiKSlkLmVhY2goYixmdW5jdGlvbihnLGgpe2N8fFVjLnRlc3QoYSk\/ZShhLGgpOmVhKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGgmJm51bGwhPWg\/ZzoiIikrIl0iLGgsYyxlKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1VKGIpKWUoYSxiKTtlbHNlIGZvcihmIGluIGIpZWEoYSsiWyIrZisiXSIsYltmXSxjLGUpfWZ1bmN0aW9uIFFhKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGU9MCxmPWIudG9Mb3dlckNhc2UoKS5tYXRjaChMYSl8fFtdO2lmKE0oYykpZm9yKDtiPWZbZSsrXTspIisiPT09YlswXT8oYj1iLnNsaWNlKDEpfHwiKiIsKGFbYl09YVtiXXx8W10pLnVuc2hpZnQoYykpOihhW2JdPWFbYl18fFtdKS5wdXNoKGMpfX1mdW5jdGlvbiBFYihhLGIsYyxlKXtmdW5jdGlvbiBmKG0pe3ZhciBsOwpyZXR1cm4gZ1ttXT0hMCxkLmVhY2goYVttXXx8W10sZnVuY3Rpb24odCx3KXt0PXcoYixjLGUpO3JldHVybiJzdHJpbmciIT10eXBlb2YgdHx8aHx8Z1t0XT9oPyEobD10KTp2b2lkIDA6KGIuZGF0YVR5cGVzLnVuc2hpZnQodCksZih0KSwhMSl9KSxsfXZhciBnPXt9LGg9YT09PWNjO3JldHVybiBmKGIuZGF0YVR5cGVzWzBdKXx8IWdbIioiXSYmZigiKiIpfWZ1bmN0aW9uIGhiKGEsYil7dmFyIGMsZSxmPWQuYWpheFNldHRpbmdzLmZsYXRPcHRpb25zfHx7fTtmb3IoYyBpbiBiKXZvaWQgMCE9PWJbY10mJigoZltjXT9hOmV8fChlPXt9KSlbY109YltjXSk7cmV0dXJuIGUmJmQuZXh0ZW5kKCEwLGEsZSksYX12YXIgb2E9W10sc2M9T2JqZWN0LmdldFByb3RvdHlwZU9mLHlhPW9hLnNsaWNlLG9jPW9hLmZsYXQ\/ZnVuY3Rpb24oYSl7cmV0dXJuIG9hLmZsYXQuY2FsbChhKX06ZnVuY3Rpb24oYSl7cmV0dXJuIG9hLmNvbmNhdC5hcHBseShbXSxhKX0sdWI9b2EucHVzaCxOYT1vYS5pbmRleE9mLApNYj17fSxrYz1NYi50b1N0cmluZyxGYj1NYi5oYXNPd25Qcm9wZXJ0eSx0Yz1GYi50b1N0cmluZyxWYz10Yy5jYWxsKE9iamVjdCksTj17fSxNPWZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhJiYibnVtYmVyIiE9dHlwZW9mIGEubm9kZVR5cGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBhLml0ZW19LGtiPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hJiZhPT09YS53aW5kb3d9LEw9bi5kb2N1bWVudCxMYz17dHlwZTohMCxzcmM6ITAsbm9uY2U6ITAsbm9Nb2R1bGU6ITB9LFdjPS9IVE1MJC9pLGQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IGQuZm4uaW5pdChhLGIpfTtkLmZuPWQucHJvdG90eXBlPXtqcXVlcnk6IjMuNy4wIixjb25zdHJ1Y3RvcjpkLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4geWEuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP3lhLmNhbGwodGhpcyk6MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXX0sCnB1c2hTdGFjazpmdW5jdGlvbihhKXthPWQubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBhLnByZXZPYmplY3Q9dGhpcyxhfSxlYWNoOmZ1bmN0aW9uKGEpe3JldHVybiBkLmVhY2godGhpcyxhKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLm1hcCh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuY2FsbChiLGMsYil9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHlhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC5ncmVwKHRoaXMsZnVuY3Rpb24oYSxiKXtyZXR1cm4oYisxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC5ncmVwKHRoaXMsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiUKMn0pKX0sZXE6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGg7YT0rYSsoMD5hP2I6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PWEmJmE8Yj9bdGhpc1thXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6dWIsc29ydDpvYS5zb3J0LHNwbGljZTpvYS5zcGxpY2V9O2QuZXh0ZW5kPWQuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGEsYixjLGUsZixnPWFyZ3VtZW50c1swXXx8e30saD0xLG09YXJndW1lbnRzLmxlbmd0aCxsPSExOyJib29sZWFuIj09dHlwZW9mIGcmJihsPWcsZz1hcmd1bWVudHNbaF18fHt9LGgrKyk7Im9iamVjdCI9PXR5cGVvZiBnfHxNKGcpfHwoZz17fSk7Zm9yKGg9PT1tJiYoZz10aGlzLGgtLSk7aDxtO2grKylpZihudWxsIT0oYT1hcmd1bWVudHNbaF0pKWZvcihiIGluIGEpe3ZhciB0PWFbYl07Il9fcHJvdG9fXyIhPT1iJiZnIT09dCYmKGwmJnQmJihkLmlzUGxhaW5PYmplY3QodCl8fAooZT1BcnJheS5pc0FycmF5KHQpKSk\/KGM9Z1tiXSxmPWUmJiFBcnJheS5pc0FycmF5KGMpP1tdOmV8fGQuaXNQbGFpbk9iamVjdChjKT9jOnt9LGU9ITEsZ1tiXT1kLmV4dGVuZChsLGYsdCkpOnZvaWQgMCE9PXQmJihnW2JdPXQpKX1yZXR1cm4gZ307ZC5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKCIzLjcuMCIrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBFcnJvcihhKTt9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGIsYztyZXR1cm4hKCFhfHwiW29iamVjdCBPYmplY3RdIiE9PWtjLmNhbGwoYSkpJiYoIShiPXNjKGEpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKGM9RmIuY2FsbChiLCJjb25zdHJ1Y3RvciIpJiZiLmNvbnN0cnVjdG9yKSYmdGMuY2FsbChjKT09PVZjKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0sCmdsb2JhbEV2YWw6ZnVuY3Rpb24oYSxiLGMpe3dhKGEse25vbmNlOmImJmIubm9uY2V9LGMpfSxlYWNoOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0wO2lmKGViKGEpKWZvcihjPWEubGVuZ3RoO2U8YyYmITEhPT1iLmNhbGwoYVtlXSxlLGFbZV0pO2UrKyk7ZWxzZSBmb3IoZSBpbiBhKWlmKCExPT09Yi5jYWxsKGFbZV0sZSxhW2VdKSlicmVhaztyZXR1cm4gYX0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYixjPSIiLGU9MDtpZihiPWEubm9kZVR5cGUpe2lmKDE9PT1ifHw5PT09Ynx8MTE9PT1iKXJldHVybiBhLnRleHRDb250ZW50O2lmKDM9PT1ifHw0PT09YilyZXR1cm4gYS5ub2RlVmFsdWV9ZWxzZSBmb3IoO2I9YVtlKytdOyljKz1kLnRleHQoYik7cmV0dXJuIGN9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe2I9Ynx8W107cmV0dXJuIG51bGwhPWEmJihlYihPYmplY3QoYSkpP2QubWVyZ2UoYiwic3RyaW5nIj09dHlwZW9mIGE\/W2FdOmEpOnViLmNhbGwoYixhKSksYn0saW5BcnJheTpmdW5jdGlvbihhLApiLGMpe3JldHVybiBudWxsPT1iPy0xOk5hLmNhbGwoYixhLGMpfSxpc1hNTERvYzpmdW5jdGlvbihhKXt2YXIgYj1hJiYoYS5vd25lckRvY3VtZW50fHxhKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIVdjLnRlc3QoYSYmYS5uYW1lc3BhY2VVUkl8fGImJmIubm9kZU5hbWV8fCJIVE1MIil9LG1lcmdlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPStiLmxlbmd0aCxlPTAsZj1hLmxlbmd0aDtlPGM7ZSsrKWFbZisrXT1iW2VdO3JldHVybiBhLmxlbmd0aD1mLGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPVtdLGY9MCxnPWEubGVuZ3RoO2ZvcihjPSFjO2Y8ZztmKyspIWIoYVtmXSxmKSE9PWMmJmUucHVzaChhW2ZdKTtyZXR1cm4gZX0sbWFwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9MCxoPVtdO2lmKGViKGEpKWZvcihlPWEubGVuZ3RoO2c8ZTtnKyspbnVsbCE9KGY9YihhW2ddLGcsYykpJiZoLnB1c2goZik7ZWxzZSBmb3IoZyBpbiBhKW51bGwhPShmPWIoYVtnXSxnLGMpKSYmCmgucHVzaChmKTtyZXR1cm4gb2MoaCl9LGd1aWQ6MSxzdXBwb3J0Ok59KTsiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoZC5mbltTeW1ib2wuaXRlcmF0b3JdPW9hW1N5bWJvbC5pdGVyYXRvcl0pO2QuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtNYlsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTt2YXIgWGM9b2EucG9wLFljPW9hLnNvcnQsWmM9b2Euc3BsaWNlLHpiPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0rfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKilbXFx4MjBcXHRcXHJcXG5cXGZdKyQiLCJnIik7ZC5jb250YWlucz1mdW5jdGlvbihhLGIpe2I9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT09Ynx8ISghYnx8MSE9PWIubm9kZVR5cGV8fCEoYS5jb250YWlucz9hLmNvbnRhaW5zKGIpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJgoxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpKSl9O3ZhciAkYz0vKFtcMC1ceDFmXHg3Zl18Xi0\/XGQpfF4tJHxbXlx4ODAtXHVGRkZGXHctXS9nO2QuZXNjYXBlU2VsZWN0b3I9ZnVuY3Rpb24oYSl7cmV0dXJuKGErIiIpLnJlcGxhY2UoJGMsYmEpfTt2YXIgUmE9TDshZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGsscCxxLHYpe3ZhciB5LEUsQSxJLEI9cCYmcC5vd25lckRvY3VtZW50LEo9cD9wLm5vZGVUeXBlOjk7aWYocT1xfHxbXSwic3RyaW5nIiE9dHlwZW9mIGt8fCFrfHwxIT09SiYmOSE9PUomJjExIT09SilyZXR1cm4gcTtpZighdiYmKHQocCkscD1wfHxaLHZhKSl7aWYoMTEhPT1KJiYoST1hZC5leGVjKGspKSlpZih5PUlbMV0paWYoOT09PUope2lmKCEoRT1wLmdldEVsZW1lbnRCeUlkKHkpKSlyZXR1cm4gcTtpZihFLmlkPT09eSlyZXR1cm4gdGEuY2FsbChxLEUpLHF9ZWxzZXtpZihCJiYoRT1CLmdldEVsZW1lbnRCeUlkKHkpKSYmYS5jb250YWlucyhwLEUpJiZFLmlkPT09CnkpcmV0dXJuIHRhLmNhbGwocSxFKSxxfWVsc2V7aWYoSVsyXSlyZXR1cm4gdGEuYXBwbHkocSxwLmdldEVsZW1lbnRzQnlUYWdOYW1lKGspKSxxO2lmKCh5PUlbM10pJiZwLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIHRhLmFwcGx5KHEscC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHkpKSxxfWlmKCEoWVtrKyIgIl18fGthJiZrYS50ZXN0KGspKSl7aWYoeT1rLEI9cCwxPT09SiYmKHZiLnRlc3Qoayl8fEhhLnRlc3QoaykpKXsoQj1kYy50ZXN0KGspJiZsKHAucGFyZW50Tm9kZSl8fHApPT1wJiZOLnNjb3BlfHwoKEE9cC5nZXRBdHRyaWJ1dGUoImlkIikpP0E9ZC5lc2NhcGVTZWxlY3RvcihBKTpwLnNldEF0dHJpYnV0ZSgiaWQiLEE9VykpO2ZvcihKPSh5PXIoaykpLmxlbmd0aDtKLS07KXlbSl09KEE\/IiMiK0E6IjpzY29wZSIpKyIgIit6KHlbSl0pO3k9eS5qb2luKCIsIil9dHJ5e3JldHVybiB0YS5hcHBseShxLEIucXVlcnlTZWxlY3RvckFsbCh5KSkscX1jYXRjaChSKXtZKGssCiEwKX1maW5hbGx5e0E9PT1XJiZwLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX19fXJldHVybiBTYShrLnJlcGxhY2UoemIsIiQxIikscCxxLHYpfWZ1bmN0aW9uIGIoKXt2YXIgaz1bXTtyZXR1cm4gZnVuY3Rpb24geShxLHYpe3JldHVybiBrLnB1c2gocSsiICIpPksuY2FjaGVMZW5ndGgmJmRlbGV0ZSB5W2suc2hpZnQoKV0seVtxKyIgIl09dn19ZnVuY3Rpb24gYyhrKXtyZXR1cm4ga1tXXT0hMCxrfWZ1bmN0aW9uIGUoayl7dmFyIHA9Wi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIWsocCl9Y2F0Y2gocSl7cmV0dXJuITF9ZmluYWxseXtwLnBhcmVudE5vZGUmJnAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKX19ZnVuY3Rpb24gZihrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIFgocCwiaW5wdXQiKSYmcC50eXBlPT09a319ZnVuY3Rpb24gZyhrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuKFgocCwiaW5wdXQiKXx8WChwLCJidXR0b24iKSkmJnAudHlwZT09PQprfX1mdW5jdGlvbiBoKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4iZm9ybSJpbiBwP3AucGFyZW50Tm9kZSYmITE9PT1wLmRpc2FibGVkPyJsYWJlbCJpbiBwPyJsYWJlbCJpbiBwLnBhcmVudE5vZGU\/cC5wYXJlbnROb2RlLmRpc2FibGVkPT09azpwLmRpc2FibGVkPT09azpwLmlzRGlzYWJsZWQ9PT1rfHxwLmlzRGlzYWJsZWQhPT0hayYmYmQocCk9PT1rOnAuZGlzYWJsZWQ9PT1rOiJsYWJlbCJpbiBwJiZwLmRpc2FibGVkPT09a319ZnVuY3Rpb24gbShrKXtyZXR1cm4gYyhmdW5jdGlvbihwKXtyZXR1cm4gcD0rcCxjKGZ1bmN0aW9uKHEsdil7Zm9yKHZhciB5LEU9ayhbXSxxLmxlbmd0aCxwKSxBPUUubGVuZ3RoO0EtLTspcVt5PUVbQV1dJiYocVt5XT0hKHZbeV09cVt5XSkpfSl9KX1mdW5jdGlvbiBsKGspe3JldHVybiBrJiYidW5kZWZpbmVkIiE9dHlwZW9mIGsuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmt9ZnVuY3Rpb24gdChrKXt2YXIgcDtrPWs\/ay5vd25lckRvY3VtZW50fHwKazpSYTtyZXR1cm4gayE9WiYmOT09PWsubm9kZVR5cGUmJmsuZG9jdW1lbnRFbGVtZW50JiYocmE9KFo9aykuZG9jdW1lbnRFbGVtZW50LHZhPSFkLmlzWE1MRG9jKFopLE1hPXJhLm1hdGNoZXN8fHJhLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cmEubXNNYXRjaGVzU2VsZWN0b3IsUmEhPVomJihwPVouZGVmYXVsdFZpZXcpJiZwLnRvcCE9PXAmJnAuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixjZCksTi5nZXRCeUlkPWUoZnVuY3Rpb24ocSl7cmV0dXJuIHJhLmFwcGVuZENoaWxkKHEpLmlkPWQuZXhwYW5kbywhWi5nZXRFbGVtZW50c0J5TmFtZXx8IVouZ2V0RWxlbWVudHNCeU5hbWUoZC5leHBhbmRvKS5sZW5ndGh9KSxOLmRpc2Nvbm5lY3RlZE1hdGNoPWUoZnVuY3Rpb24ocSl7cmV0dXJuIE1hLmNhbGwocSwiKiIpfSksTi5zY29wZT1lKGZ1bmN0aW9uKCl7cmV0dXJuIFoucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIil9KSxOLmNzc0hhcz1lKGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBaLnF1ZXJ5U2VsZWN0b3IoIjpoYXMoKiw6anFmYWtlKSIpLAohMX1jYXRjaChxKXtyZXR1cm4hMH19KSxOLmdldEJ5SWQ\/KEsuZmlsdGVyLklEPWZ1bmN0aW9uKHEpe3ZhciB2PXEucmVwbGFjZShUYSxVYSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiB5LmdldEF0dHJpYnV0ZSgiaWQiKT09PXZ9fSxLLmZpbmQuSUQ9ZnVuY3Rpb24ocSx2KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudEJ5SWQmJnZhKXJldHVybihxPXYuZ2V0RWxlbWVudEJ5SWQocSkpP1txXTpbXX0pOihLLmZpbHRlci5JRD1mdW5jdGlvbihxKXt2YXIgdj1xLnJlcGxhY2UoVGEsVWEpO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4oeT0idW5kZWZpbmVkIiE9dHlwZW9mIHkuZ2V0QXR0cmlidXRlTm9kZSYmeS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXZ9fSxLLmZpbmQuSUQ9ZnVuY3Rpb24ocSx2KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudEJ5SWQmJnZhKXt2YXIgeSxFPXYuZ2V0RWxlbWVudEJ5SWQocSk7aWYoRSl7aWYoKHk9CkUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJnkudmFsdWU9PT1xKXJldHVybltFXTt2YXIgQT12LmdldEVsZW1lbnRzQnlOYW1lKHEpO2Zvcih2PTA7RT1BW3YrK107KWlmKCh5PUUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJnkudmFsdWU9PT1xKXJldHVybltFXX1yZXR1cm5bXX19KSxLLmZpbmQuVEFHPWZ1bmN0aW9uKHEsdil7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRzQnlUYWdOYW1lP3YuZ2V0RWxlbWVudHNCeVRhZ05hbWUocSk6di5xdWVyeVNlbGVjdG9yQWxsKHEpfSxLLmZpbmQuQ0xBU1M9ZnVuY3Rpb24ocSx2KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmdmEpcmV0dXJuIHYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShxKX0sa2E9W10sZShmdW5jdGlvbihxKXt2YXIgdjtyYS5hcHBlbmRDaGlsZChxKS5pbm5lckhUTUw9IjxhIGlkPSciK1crIicgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT48c2VsZWN0IGlkPSciKwpXKyItXHJcXCcgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiI7cS5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxrYS5wdXNoKCJcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OnZhbHVlfGNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkKSIpO3EucXVlcnlTZWxlY3RvckFsbCgiW2lkfj0iK1crIi1dIikubGVuZ3RofHxrYS5wdXNoKCJ+PSIpO3EucXVlcnlTZWxlY3RvckFsbCgiYSMiK1crIisqIikubGVuZ3RofHxrYS5wdXNoKCIuIy4rWyt+XSIpO3EucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fGthLnB1c2goIjpjaGVja2VkIik7KHY9Wi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLAoiaGlkZGVuIik7cS5hcHBlbmRDaGlsZCh2KS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIik7cmEuYXBwZW5kQ2hpbGQocSkuZGlzYWJsZWQ9ITA7MiE9PXEucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZrYS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpOyh2PVouY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJuYW1lIiwiIik7cS5hcHBlbmRDaGlsZCh2KTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPScnXSIpLmxlbmd0aHx8a2EucHVzaCgiXFxbW1xceDIwXFx0XFxyXFxuXFxmXSpuYW1lW1xceDIwXFx0XFxyXFxuXFxmXSo9W1xceDIwXFx0XFxyXFxuXFxmXSooPzonJ3xcIlwiKSIpfSksTi5jc3NIYXN8fGthLnB1c2goIjpoYXMiKSxrYT1rYS5sZW5ndGgmJm5ldyBSZWdFeHAoa2Euam9pbigifCIpKSxsYT1mdW5jdGlvbihxLHYpe2lmKHE9PT12KXJldHVybiBpYj0hMCwwO3ZhciB5PSFxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSF2LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uOwpyZXR1cm4geXx8KDEmKHk9KHEub3duZXJEb2N1bWVudHx8cSk9PSh2Lm93bmVyRG9jdW1lbnR8fHYpP3EuY29tcGFyZURvY3VtZW50UG9zaXRpb24odik6MSl8fCFOLnNvcnREZXRhY2hlZCYmdi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihxKT09PXk\/cT09PVp8fHEub3duZXJEb2N1bWVudD09UmEmJmEuY29udGFpbnMoUmEscSk\/LTE6dj09PVp8fHYub3duZXJEb2N1bWVudD09UmEmJmEuY29udGFpbnMoUmEsdik\/MTpoYT9OYS5jYWxsKGhhLHEpLU5hLmNhbGwoaGEsdik6MDo0Jnk\/LTE6MSl9KSxafWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gcihrLHApe3ZhciBxLHYseSxFLEEsSTtpZihBPVZhW2srIiAiXSlyZXR1cm4gcD8wOkEuc2xpY2UoMCk7QT1rO3ZhciBCPVtdO2ZvcihJPUsucHJlRmlsdGVyO0E7KXtmb3IoRSBpbiBxJiYhKHY9bWEuZXhlYyhBKSl8fCh2JiYoQT1BLnNsaWNlKHZbMF0ubGVuZ3RoKXx8QSksQi5wdXNoKHk9W10pKSxxPSExLCh2PUhhLmV4ZWMoQSkpJiYocT0Kdi5zaGlmdCgpLHkucHVzaCh7dmFsdWU6cSx0eXBlOnZbMF0ucmVwbGFjZSh6YiwiICIpfSksQT1BLnNsaWNlKHEubGVuZ3RoKSksSy5maWx0ZXIpISh2PVliW0VdLmV4ZWMoQSkpfHxJW0VdJiYhKHY9SVtFXSh2KSl8fChxPXYuc2hpZnQoKSx5LnB1c2goe3ZhbHVlOnEsdHlwZTpFLG1hdGNoZXM6dn0pLEE9QS5zbGljZShxLmxlbmd0aCkpO2lmKCFxKWJyZWFrfXJldHVybiBwP0EubGVuZ3RoOkE\/YS5lcnJvcihrKTpWYShrLEIpLnNsaWNlKDApfWZ1bmN0aW9uIHooayl7Zm9yKHZhciBwPTAscT1rLmxlbmd0aCx2PSIiO3A8cTtwKyspdis9a1twXS52YWx1ZTtyZXR1cm4gdn1mdW5jdGlvbiBEKGsscCxxKXt2YXIgdj1wLmRpcix5PXAubmV4dCxFPXl8fHYsQT1xJiYicGFyZW50Tm9kZSI9PT1FLEk9RGErKztyZXR1cm4gcC5maXJzdD9mdW5jdGlvbihCLEosUil7Zm9yKDtCPUJbdl07KWlmKDE9PT1CLm5vZGVUeXBlfHxBKXJldHVybiBrKEIsSixSKTtyZXR1cm4hMX06ZnVuY3Rpb24oQiwKSixSKXt2YXIgVCxWLGlhPVtmYSxJXTtpZihSKWZvcig7Qj1CW3ZdOyl7aWYoKDE9PT1CLm5vZGVUeXBlfHxBKSYmayhCLEosUikpcmV0dXJuITB9ZWxzZSBmb3IoO0I9Qlt2XTspaWYoMT09PUIubm9kZVR5cGV8fEEpaWYoVj1CW1ddfHwoQltXXT17fSkseSYmWChCLHkpKUI9Qlt2XXx8QjtlbHNle2lmKChUPVZbRV0pJiZUWzBdPT09ZmEmJlRbMV09PT1JKXJldHVybiBpYVsyXT1UWzJdO2lmKChWW0VdPWlhKVsyXT1rKEIsSixSKSlyZXR1cm4hMH1yZXR1cm4hMX19ZnVuY3Rpb24gRihrKXtyZXR1cm4gMTxrLmxlbmd0aD9mdW5jdGlvbihwLHEsdil7Zm9yKHZhciB5PWsubGVuZ3RoO3ktLTspaWYoIWtbeV0ocCxxLHYpKXJldHVybiExO3JldHVybiEwfTprWzBdfWZ1bmN0aW9uIE8oayxwLHEsdix5KXtmb3IodmFyIEUsQT1bXSxJPTAsQj1rLmxlbmd0aCxKPW51bGwhPXA7STxCO0krKykoRT1rW0ldKSYmKHEmJiFxKEUsdix5KXx8KEEucHVzaChFKSxKJiZwLnB1c2goSSkpKTtyZXR1cm4gQX0KZnVuY3Rpb24gYWEoayxwLHEsdix5LEUpe3JldHVybiB2JiYhdltXXSYmKHY9YWEodikpLHkmJiF5W1ddJiYoeT1hYSh5LEUpKSxjKGZ1bmN0aW9uKEEsSSxCLEope3ZhciBSLFQsVj1bXSxpYT1bXSxwYT1JLmxlbmd0aCxuYTtpZighKG5hPUEpKXtuYT1wfHwiKiI7Zm9yKHZhciBFYT1CLm5vZGVUeXBlP1tCXTpCLGNhPVtdLEFhPTAsV2E9RWEubGVuZ3RoO0FhPFdhO0FhKyspYShuYSxFYVtBYV0sY2EpO25hPWNhfW5hPSFrfHwhQSYmcD9uYTpPKG5hLFYsayxCLEopO2lmKHE\/cShuYSxUPXl8fChBP2s6cGF8fHYpP1tdOkksQixKKTpUPW5hLHYpe3ZhciBGYT1PKFQsaWEpO3YoRmEsW10sQixKKTtmb3IoQj1GYS5sZW5ndGg7Qi0tOykoUj1GYVtCXSkmJihUW2lhW0JdXT0hKG5hW2lhW0JdXT1SKSl9aWYoQSl7aWYoeXx8ayl7aWYoeSl7RmE9W107Zm9yKEI9VC5sZW5ndGg7Qi0tOykoUj1UW0JdKSYmRmEucHVzaChuYVtCXT1SKTt5KG51bGwsVD1bXSxGYSxKKX1mb3IoQj1ULmxlbmd0aDtCLS07KShSPQpUW0JdKSYmLTE8KEZhPXk\/TmEuY2FsbChBLFIpOlZbQl0pJiYoQVtGYV09IShJW0ZhXT1SKSl9fWVsc2UgVD1PKFQ9PT1JP1Quc3BsaWNlKHBhLFQubGVuZ3RoKTpUKSx5P3kobnVsbCxJLFQsSik6dGEuYXBwbHkoSSxUKX0pfWZ1bmN0aW9uIEdhKGspe2Zvcih2YXIgcCxxLHY9ay5sZW5ndGgseT1LLnJlbGF0aXZlW2tbMF0udHlwZV0sRT15fHxLLnJlbGF0aXZlWyIgIl0sQT15PzE6MCxJPUQoZnVuY3Rpb24oUil7cmV0dXJuIFI9PT1wfSxFLCEwKSxCPUQoZnVuY3Rpb24oUil7cmV0dXJuLTE8TmEuY2FsbChwLFIpfSxFLCEwKSxKPVtmdW5jdGlvbihSLFQsVil7Uj0heSYmKFZ8fFQhPVMpfHwoKHA9VCkubm9kZVR5cGU\/SShSLFQsVik6QihSLFQsVikpO3JldHVybiBwPW51bGwsUn1dO0E8djtBKyspaWYoRT1LLnJlbGF0aXZlW2tbQV0udHlwZV0pSj1bRChGKEopLEUpXTtlbHNle2lmKChFPUsuZmlsdGVyW2tbQV0udHlwZV0uYXBwbHkobnVsbCxrW0FdLm1hdGNoZXMpKVtXXSl7Zm9yKHE9CisrQTtxPHYmJiFLLnJlbGF0aXZlW2tbcV0udHlwZV07cSsrKTtyZXR1cm4gYWEoMTxBJiZGKEopLDE8QSYmeihrLnNsaWNlKDAsQS0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWtbQS0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKHpiLCIkMSIpLEUsQTxxJiZHYShrLnNsaWNlKEEscSkpLHE8diYmR2Eoaz1rLnNsaWNlKHEpKSxxPHYmJnooaykpfUoucHVzaChFKX1yZXR1cm4gRihKKX1mdW5jdGlvbiBxYShrLHApe3ZhciBxLHYseSxFLEE9W10sST1bXSxCPXVhW2srIiAiXTtpZighQil7cHx8KHA9cihrKSk7Zm9yKHE9cC5sZW5ndGg7cS0tOykoQj1HYShwW3FdKSlbV10\/QS5wdXNoKEIpOkkucHVzaChCKTsoQj11YShrLCh2PTA8QS5sZW5ndGgseT0wPEkubGVuZ3RoLEU9ZnVuY3Rpb24oSixSLFQsVixpYSl7dmFyIHBhLG5hLEVhPTAsY2E9IjAiLEFhPUomJltdLFdhPVtdLEZhPVMsdWM9Snx8eSYmSy5maW5kLlRBRygiKiIsaWEpLHZjPWZhKz1udWxsPT1GYT8xOk1hdGgucmFuZG9tKCl8fAouMSxkZD11Yy5sZW5ndGg7Zm9yKGlhJiYoUz1SPT1afHxSfHxpYSk7Y2EhPT1kZCYmbnVsbCE9KHBhPXVjW2NhXSk7Y2ErKyl7aWYoeSYmcGEpe3ZhciBlYz0wO2ZvcihSfHxwYS5vd25lckRvY3VtZW50PT1afHwodChwYSksVD0hdmEpO25hPUlbZWMrK107KWlmKG5hKHBhLFJ8fFosVCkpe3RhLmNhbGwoVixwYSk7YnJlYWt9aWEmJihmYT12Yyl9diYmKChwYT0hbmEmJnBhKSYmRWEtLSxKJiZBYS5wdXNoKHBhKSl9aWYoRWErPWNhLHYmJmNhIT09RWEpe2ZvcihlYz0wO25hPUFbZWMrK107KW5hKEFhLFdhLFIsVCk7aWYoSil7aWYoMDxFYSlmb3IoO2NhLS07KUFhW2NhXXx8V2FbY2FdfHwoV2FbY2FdPVhjLmNhbGwoVikpO1dhPU8oV2EpfXRhLmFwcGx5KFYsV2EpO2lhJiYhSiYmMDxXYS5sZW5ndGgmJjE8RWErQS5sZW5ndGgmJmQudW5pcXVlU29ydChWKX1yZXR1cm4gaWEmJihmYT12YyxTPUZhKSxBYX0sdj9jKEUpOkUpKSkuc2VsZWN0b3I9a31yZXR1cm4gQn1mdW5jdGlvbiBTYShrLApwLHEsdil7dmFyIHksRSxBLEksQixKPSJmdW5jdGlvbiI9PXR5cGVvZiBrJiZrLFI9IXYmJnIoaz1KLnNlbGVjdG9yfHxrKTtpZihxPXF8fFtdLDE9PT1SLmxlbmd0aCl7aWYoMjwoRT1SWzBdPVJbMF0uc2xpY2UoMCkpLmxlbmd0aCYmIklEIj09PShBPUVbMF0pLnR5cGUmJjk9PT1wLm5vZGVUeXBlJiZ2YSYmSy5yZWxhdGl2ZVtFWzFdLnR5cGVdKXtpZighKHA9KEsuZmluZC5JRChBLm1hdGNoZXNbMF0ucmVwbGFjZShUYSxVYSkscCl8fFtdKVswXSkpcmV0dXJuIHE7SiYmKHA9cC5wYXJlbnROb2RlKTtrPWsuc2xpY2UoRS5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9Zm9yKHk9WWIubmVlZHNDb250ZXh0LnRlc3Qoayk\/MDpFLmxlbmd0aDt5LS0mJihBPUVbeV0sIUsucmVsYXRpdmVbST1BLnR5cGVdKTspaWYoKEI9Sy5maW5kW0ldKSYmKHY9QihBLm1hdGNoZXNbMF0ucmVwbGFjZShUYSxVYSksZGMudGVzdChFWzBdLnR5cGUpJiZsKHAucGFyZW50Tm9kZSl8fHApKSl7aWYoRS5zcGxpY2UoeSwKMSksIShrPXYubGVuZ3RoJiZ6KEUpKSlyZXR1cm4gdGEuYXBwbHkocSx2KSxxO2JyZWFrfX1yZXR1cm4oSnx8cWEoayxSKSkodixwLCF2YSxxLCFwfHxkYy50ZXN0KGspJiZsKHAucGFyZW50Tm9kZSl8fHApLHF9dmFyIFEsSyxTLGhhLGliLFoscmEsdmEsa2EsTWEsdGE9dWIsVz1kLmV4cGFuZG8sZmE9MCxEYT0wLGRiPWIoKSxWYT1iKCksdWE9YigpLFk9YigpLGxhPWZ1bmN0aW9uKGsscCl7cmV0dXJuIGs9PT1wJiYoaWI9ITApLDB9LElhPVJlZ0V4cCgiW1xceDIwXFx0XFxyXFxuXFxmXSsiLCJnIiksbWE9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSosW1xceDIwXFx0XFxyXFxuXFxmXSoiKSxIYT1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKihbPit+XXxbXFx4MjBcXHRcXHJcXG5cXGZdKVtcXHgyMFxcdFxcclxcblxcZl0qIiksdmI9UmVnRXhwKCJbXFx4MjBcXHRcXHJcXG5cXGZdfD4iKSxmYz1SZWdFeHAoIjooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86XFwoKCgnKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg\/OlxcXFwufFteXFxcXCgpW1xcXV18XFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSkqKXwuKilcXCl8KSIpLAplZD1SZWdFeHAoIl4oPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKyQiKSxZYj17SUQ6UmVnRXhwKCJeIygoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykiKSxDTEFTUzpSZWdFeHAoIl5cXC4oKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspIiksVEFHOlJlZ0V4cCgiXigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pK3xbKl0pIiksQVRUUjpSZWdFeHAoIl5cXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdIiksClBTRVVETzpSZWdFeHAoIl46KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfFxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0pKil8LiopXFwpfCkiKSwKQ0hJTEQ6UmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXChbXFx4MjBcXHRcXHJcXG5cXGZdKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KVtcXHgyMFxcdFxcclxcblxcZl0qKD86KFsrLV18KVtcXHgyMFxcdFxcclxcblxcZl0qKFxcZCspfCkpW1xceDIwXFx0XFxyXFxuXFxmXSpcXCl8KSIsImkiKSxib29sOlJlZ0V4cCgiXig\/OmNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkKSQiLCJpIiksbmVlZHNDb250ZXh0OlJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXChbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzotXFxkKT9cXGQqKVtcXHgyMFxcdFxcclxcblxcZl0qXFwpfCkoPz1bXi1dfCQpIiwKImkiKX0sZmQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxnZD0vXmhcZCQvaSxhZD0vXig\/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLGRjPS9bK35dLyxUYT1SZWdFeHAoIlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXChbXlxcclxcblxcZl0pIiwiZyIpLFVhPWZ1bmN0aW9uKGsscCl7az0iMHgiK2suc2xpY2UoMSktNjU1MzY7cmV0dXJuIHB8fCgwPms\/U3RyaW5nLmZyb21DaGFyQ29kZShrKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGs+PjEwfDU1Mjk2LDEwMjMma3w1NjMyMCkpfSxjZD1mdW5jdGlvbigpe3QoKX0sYmQ9RChmdW5jdGlvbihrKXtyZXR1cm4hMD09PWsuZGlzYWJsZWQmJlgoaywiZmllbGRzZXQiKX0se2RpcjoicGFyZW50Tm9kZSIsbmV4dDoibGVnZW5kIn0pO3RyeXt0YS5hcHBseShvYT15YS5jYWxsKFJhLmNoaWxkTm9kZXMpLFJhLmNoaWxkTm9kZXMpLG9hW1JhLmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChrKXt0YT0Ke2FwcGx5OmZ1bmN0aW9uKHAscSl7dWIuYXBwbHkocCx5YS5jYWxsKHEpKX0sY2FsbDpmdW5jdGlvbihwKXt1Yi5hcHBseShwLHlhLmNhbGwoYXJndW1lbnRzLDEpKX19fWZvcihRIGluIGEubWF0Y2hlcz1mdW5jdGlvbihrLHApe3JldHVybiBhKGssbnVsbCxudWxsLHApfSxhLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihrLHApe2lmKHQoayksISghdmF8fFlbcCsiICJdfHxrYSYma2EudGVzdChwKSkpdHJ5e3ZhciBxPU1hLmNhbGwoayxwKTtpZihxfHxOLmRpc2Nvbm5lY3RlZE1hdGNofHxrLmRvY3VtZW50JiYxMSE9PWsuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIHF9Y2F0Y2godil7WShwLCEwKX1yZXR1cm4gMDxhKHAsWixudWxsLFtrXSkubGVuZ3RofSxhLmNvbnRhaW5zPWZ1bmN0aW9uKGsscCl7cmV0dXJuKGsub3duZXJEb2N1bWVudHx8aykhPVomJnQoayksZC5jb250YWlucyhrLHApfSxhLmF0dHI9ZnVuY3Rpb24oayxwKXsoay5vd25lckRvY3VtZW50fHxrKSE9WiYmdChrKTsKdmFyIHE9Sy5hdHRySGFuZGxlW3AudG9Mb3dlckNhc2UoKV07cT1xJiZGYi5jYWxsKEsuYXR0ckhhbmRsZSxwLnRvTG93ZXJDYXNlKCkpP3EoayxwLCF2YSk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1xP3E6ay5nZXRBdHRyaWJ1dGUocCl9LGEuZXJyb3I9ZnVuY3Rpb24oayl7dGhyb3cgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrayk7fSxkLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oayl7dmFyIHAscT1bXSx2PTAseT0wO2lmKGliPSFOLnNvcnRTdGFibGUsaGE9IU4uc29ydFN0YWJsZSYmeWEuY2FsbChrLDApLFljLmNhbGwoayxsYSksaWIpe2Zvcig7cD1rW3krK107KXA9PT1rW3ldJiYodj1xLnB1c2goeSkpO2Zvcig7di0tOylaYy5jYWxsKGsscVt2XSwxKX1yZXR1cm4gaGE9bnVsbCxrfSxkLmZuLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC51bmlxdWVTb3J0KHlhLmFwcGx5KHRoaXMpKSl9LChLPWQuZXhwcj0Ke2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpjLG1hdGNoOlliLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihrKXtyZXR1cm4ga1sxXT1rWzFdLnJlcGxhY2UoVGEsVWEpLGtbM109KGtbM118fGtbNF18fGtbNV18fCIiKS5yZXBsYWNlKFRhLFVhKSwifj0iPT09a1syXSYmKGtbM109IiAiK2tbM10rIiAiKSxrLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGspe3JldHVybiBrWzFdPWtbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWtbMV0uc2xpY2UoMCwzKT8oa1szXXx8YS5lcnJvcihrWzBdKSxrWzRdPSsoa1s0XT9rWzVdKyhrWzZdfHwxKToyKigiZXZlbiI9PT1rWzNdfHwib2RkIj09PWtbM10pKSxrWzVdPQorKGtbN10ra1s4XXx8Im9kZCI9PT1rWzNdKSk6a1szXSYmYS5lcnJvcihrWzBdKSxrfSxQU0VVRE86ZnVuY3Rpb24oayl7dmFyIHAscT0ha1s2XSYma1syXTtyZXR1cm4gWWIuQ0hJTEQudGVzdChrWzBdKT9udWxsOihrWzNdP2tbMl09a1s0XXx8a1s1XXx8IiI6cSYmZmMudGVzdChxKSYmKHA9cihxLCEwKSkmJihwPXEuaW5kZXhPZigiKSIscS5sZW5ndGgtcCktcS5sZW5ndGgpJiYoa1swXT1rWzBdLnNsaWNlKDAscCksa1syXT1xLnNsaWNlKDAscCkpLGsuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihrKXt2YXIgcD1rLnJlcGxhY2UoVGEsVWEpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09az9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihxKXtyZXR1cm4gWChxLHApfX0sQ0xBU1M6ZnVuY3Rpb24oayl7dmFyIHA9ZGJbaysiICJdO3JldHVybiBwfHwocD1uZXcgUmVnRXhwKCIoXnxbXFx4MjBcXHRcXHJcXG5cXGZdKSIraysiKFtcXHgyMFxcdFxcclxcblxcZl18JCkiKSwKZGIoayxmdW5jdGlvbihxKXtyZXR1cm4gcC50ZXN0KCJzdHJpbmciPT10eXBlb2YgcS5jbGFzc05hbWUmJnEuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIHEuZ2V0QXR0cmlidXRlJiZxLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSkpfSxBVFRSOmZ1bmN0aW9uKGsscCxxKXtyZXR1cm4gZnVuY3Rpb24odil7dj1hLmF0dHIodixrKTtyZXR1cm4gbnVsbD09dj8iIT0iPT09cDohcHx8KHYrPSIiLCI9Ij09PXA\/dj09PXE6IiE9Ij09PXA\/diE9PXE6Il49Ij09PXA\/cSYmMD09PXYuaW5kZXhPZihxKToiKj0iPT09cD9xJiYtMTx2LmluZGV4T2YocSk6IiQ9Ij09PXA\/cSYmdi5zbGljZSgtcS5sZW5ndGgpPT09cToifj0iPT09cD8tMTwoIiAiK3YucmVwbGFjZShJYSwiICIpKyIgIikuaW5kZXhPZihxKToifD0iPT09cCYmKHY9PT1xfHx2LnNsaWNlKDAscS5sZW5ndGgrMSk9PT1xKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oayxwLHEsdix5KXt2YXIgRT0ibnRoIiE9PWsuc2xpY2UoMCwKMyksQT0ibGFzdCIhPT1rLnNsaWNlKC00KSxJPSJvZi10eXBlIj09PXA7cmV0dXJuIDE9PT12JiYwPT09eT9mdW5jdGlvbihCKXtyZXR1cm4hIUIucGFyZW50Tm9kZX06ZnVuY3Rpb24oQixKLFIpe3ZhciBULFYsaWE7Sj1FIT09QT8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciO3ZhciBwYT1CLnBhcmVudE5vZGUsbmE9SSYmQi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLEVhPSFSJiYhSSxjYT0hMTtpZihwYSl7aWYoRSl7Zm9yKDtKOyl7Zm9yKFY9QjtWPVZbSl07KWlmKEk\/WChWLG5hKToxPT09Vi5ub2RlVHlwZSlyZXR1cm4hMTt2YXIgQWE9Sj0ib25seSI9PT1rJiYhQWEmJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYoQWE9W0E\/cGEuZmlyc3RDaGlsZDpwYS5sYXN0Q2hpbGRdLEEmJkVhKWZvcihjYT0oaWE9KFQ9KFI9cGFbV118fChwYVtXXT17fSkpW2tdfHxbXSlbMF09PT1mYSYmVFsxXSkmJlRbMl0sVj1pYSYmcGEuY2hpbGROb2Rlc1tpYV07Vj0rK2lhJiZWJiZWW0pdfHwKKGNhPWlhPTApfHxBYS5wb3AoKTspe2lmKDE9PT1WLm5vZGVUeXBlJiYrK2NhJiZWPT09Qil7UltrXT1bZmEsaWEsY2FdO2JyZWFrfX1lbHNlIGlmKEVhJiYoY2E9aWE9KFQ9KEJbV118fChCW1ddPXt9KSlba118fFtdKVswXT09PWZhJiZUWzFdKSwhMT09PWNhKWZvcig7KFY9KytpYSYmViYmVltKXXx8KGNhPWlhPTApfHxBYS5wb3AoKSkmJigoST8hWChWLG5hKToxIT09Vi5ub2RlVHlwZSl8fCErK2NhfHwoRWEmJigoUj1WW1ddfHwoVltXXT17fSkpW2tdPVtmYSxjYV0pLFYhPT1CKSk7KTtyZXR1cm4oY2EtPXkpPT09dnx8MD09Y2EldiYmMDw9Y2Evdn19fSxQU0VVRE86ZnVuY3Rpb24oayxwKXt2YXIgcSx2PUsucHNldWRvc1trXXx8Sy5zZXRGaWx0ZXJzW2sudG9Mb3dlckNhc2UoKV18fGEuZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIitrKTtyZXR1cm4gdltXXT92KHApOjE8di5sZW5ndGg\/KHE9W2ssaywiIixwXSxLLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoay50b0xvd2VyQ2FzZSgpKT8KYyhmdW5jdGlvbih5LEUpe2Zvcih2YXIgQSxJPXYoeSxwKSxCPUkubGVuZ3RoO0ItLTspeVtBPU5hLmNhbGwoeSxJW0JdKV09IShFW0FdPUlbQl0pfSk6ZnVuY3Rpb24oeSl7cmV0dXJuIHYoeSwwLHEpfSk6dn19LHBzZXVkb3M6e25vdDpjKGZ1bmN0aW9uKGspe3ZhciBwPVtdLHE9W10sdj1xYShrLnJlcGxhY2UoemIsIiQxIikpO3JldHVybiB2W1ddP2MoZnVuY3Rpb24oeSxFLEEsSSl7dmFyIEI7QT12KHksbnVsbCxJLFtdKTtmb3IoST15Lmxlbmd0aDtJLS07KShCPUFbSV0pJiYoeVtJXT0hKEVbSV09QikpfSk6ZnVuY3Rpb24oeSxFLEEpe3JldHVybiBwWzBdPXksdihwLG51bGwsQSxxKSxwWzBdPW51bGwsIXEucG9wKCl9fSksaGFzOmMoZnVuY3Rpb24oayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiAwPGEoayxwKS5sZW5ndGh9fSksY29udGFpbnM6YyhmdW5jdGlvbihrKXtyZXR1cm4gaz1rLnJlcGxhY2UoVGEsVWEpLGZ1bmN0aW9uKHApe3JldHVybi0xPChwLnRleHRDb250ZW50fHwKZC50ZXh0KHApKS5pbmRleE9mKGspfX0pLGxhbmc6YyhmdW5jdGlvbihrKXtyZXR1cm4gZWQudGVzdChrfHwiIil8fGEuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrayksaz1rLnJlcGxhY2UoVGEsVWEpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24ocCl7dmFyIHE7ZG8gaWYocT12YT9wLmxhbmc6cC5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fHAuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuKHE9cS50b0xvd2VyQ2FzZSgpKT09PWt8fDA9PT1xLmluZGV4T2YoaysiLSIpO3doaWxlKChwPXAucGFyZW50Tm9kZSkmJjE9PT1wLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oayl7dmFyIHA9bi5sb2NhdGlvbiYmbi5sb2NhdGlvbi5oYXNoO3JldHVybiBwJiZwLnNsaWNlKDEpPT09ay5pZH0scm9vdDpmdW5jdGlvbihrKXtyZXR1cm4gaz09PXJhfSxmb2N1czpmdW5jdGlvbihrKXthOnt0cnl7dmFyIHA9Wi5hY3RpdmVFbGVtZW50O2JyZWFrIGF9Y2F0Y2gocSl7fXA9CnZvaWQgMH1yZXR1cm4gaz09PXAmJlouaGFzRm9jdXMoKSYmISEoay50eXBlfHxrLmhyZWZ8fH5rLnRhYkluZGV4KX0sZW5hYmxlZDpoKCExKSxkaXNhYmxlZDpoKCEwKSxjaGVja2VkOmZ1bmN0aW9uKGspe3JldHVybiBYKGssImlucHV0IikmJiEhay5jaGVja2VkfHxYKGssIm9wdGlvbiIpJiYhIWsuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGspe3JldHVybiBrLnBhcmVudE5vZGUmJmsucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LCEwPT09ay5zZWxlY3RlZH0sZW1wdHk6ZnVuY3Rpb24oayl7Zm9yKGs9ay5maXJzdENoaWxkO2s7az1rLm5leHRTaWJsaW5nKWlmKDY+ay5ub2RlVHlwZSlyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGspe3JldHVybiFLLnBzZXVkb3MuZW1wdHkoayl9LGhlYWRlcjpmdW5jdGlvbihrKXtyZXR1cm4gZ2QudGVzdChrLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oayl7cmV0dXJuIGZkLnRlc3Qoay5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihrKXtyZXR1cm4gWChrLAoiaW5wdXQiKSYmImJ1dHRvbiI9PT1rLnR5cGV8fFgoaywiYnV0dG9uIil9LHRleHQ6ZnVuY3Rpb24oayl7dmFyIHA7cmV0dXJuIFgoaywiaW5wdXQiKSYmInRleHQiPT09ay50eXBlJiYobnVsbD09KHA9ay5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXAudG9Mb3dlckNhc2UoKSl9LGZpcnN0Om0oZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Om0oZnVuY3Rpb24oayxwKXtyZXR1cm5bcC0xXX0pLGVxOm0oZnVuY3Rpb24oayxwLHEpe3JldHVyblswPnE\/cStwOnFdfSksZXZlbjptKGZ1bmN0aW9uKGsscCl7Zm9yKHZhciBxPTA7cTxwO3ErPTIpay5wdXNoKHEpO3JldHVybiBrfSksb2RkOm0oZnVuY3Rpb24oayxwKXtmb3IodmFyIHE9MTtxPHA7cSs9MilrLnB1c2gocSk7cmV0dXJuIGt9KSxsdDptKGZ1bmN0aW9uKGsscCxxKXtmb3IocD0wPnE\/cStwOnA8cT9wOnE7MDw9LS1wOylrLnB1c2gocCk7cmV0dXJuIGt9KSxndDptKGZ1bmN0aW9uKGsscCxxKXtmb3IocT0wPnE\/CnErcDpxOysrcTxwOylrLnB1c2gocSk7cmV0dXJuIGt9KX19KS5wc2V1ZG9zLm50aD1LLnBzZXVkb3MuZXEse3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KUsucHNldWRvc1tRXT1mKFEpO2ZvcihRIGlue3N1Ym1pdDohMCxyZXNldDohMH0pSy5wc2V1ZG9zW1FdPWcoUSk7dy5wcm90b3R5cGU9Sy5maWx0ZXJzPUsucHNldWRvcztLLnNldEZpbHRlcnM9bmV3IHc7Ti5zb3J0U3RhYmxlPVcuc3BsaXQoIiIpLnNvcnQobGEpLmpvaW4oIiIpPT09Vzt0KCk7Ti5zb3J0RGV0YWNoZWQ9ZShmdW5jdGlvbihrKXtyZXR1cm4gMSZrLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFouY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KTtkLmZpbmQ9YTtkLmV4cHJbIjoiXT1kLmV4cHIucHNldWRvcztkLnVuaXF1ZT1kLnVuaXF1ZVNvcnQ7YS5jb21waWxlPXFhO2Euc2VsZWN0PVNhO2Euc2V0RG9jdW1lbnQ9dDthLmVzY2FwZT1kLmVzY2FwZVNlbGVjdG9yOwphLmdldFRleHQ9ZC50ZXh0O2EuaXNYTUw9ZC5pc1hNTERvYzthLnNlbGVjdG9ycz1kLmV4cHI7YS5zdXBwb3J0PWQuc3VwcG9ydDthLnVuaXF1ZVNvcnQ9ZC51bmlxdWVTb3J0fSgpO3ZhciB3Yj1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBlPVtdLGY9dm9pZCAwIT09YzsoYT1hW2JdKSYmOSE9PWEubm9kZVR5cGU7KWlmKDE9PT1hLm5vZGVUeXBlKXtpZihmJiZkKGEpLmlzKGMpKWJyZWFrO2UucHVzaChhKX1yZXR1cm4gZX0sd2M9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W107YTthPWEubmV4dFNpYmxpbmcpMT09PWEubm9kZVR5cGUmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9LHhjPWQuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQseWM9L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZC5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmCjE9PT1lLm5vZGVUeXBlP2QuZmluZC5tYXRjaGVzU2VsZWN0b3IoZSxhKT9bZV06W106ZC5maW5kLm1hdGNoZXMoYSxkLmdyZXAoYixmdW5jdGlvbihmKXtyZXR1cm4gMT09PWYubm9kZVR5cGV9KSl9O2QuZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe3ZhciBiLGM9dGhpcy5sZW5ndGgsZT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soZChhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2I8YztiKyspaWYoZC5jb250YWlucyhlW2JdLHRoaXMpKXJldHVybiEwfSkpO3ZhciBmPXRoaXMucHVzaFN0YWNrKFtdKTtmb3IoYj0wO2I8YztiKyspZC5maW5kKGEsZVtiXSxmKTtyZXR1cm4gMTxjP2QudW5pcXVlU29ydChmKTpmfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGphKHRoaXMsYXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqYSh0aGlzLGF8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhamEodGhpcywKInN0cmluZyI9PXR5cGVvZiBhJiZ4Yy50ZXN0KGEpP2QoYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgaGQ9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLzsoZC5mbi5pbml0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmO2lmKCFhKXJldHVybiB0aGlzO2lmKGM9Y3x8aWQsInN0cmluZyI9PXR5cGVvZiBhKXtpZighKGU9IjwiPT09YVswXSYmIj4iPT09YVthLmxlbmd0aC0xXSYmMzw9YS5sZW5ndGg\/W251bGwsYSxudWxsXTpoZC5leGVjKGEpKXx8IWVbMV0mJmIpcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxjKS5maW5kKGEpOnRoaXMuY29uc3RydWN0b3IoYikuZmluZChhKTtpZihlWzFdKXtpZihiPWIgaW5zdGFuY2VvZiBkP2JbMF06YixkLm1lcmdlKHRoaXMsZC5wYXJzZUhUTUwoZVsxXSxiJiZiLm5vZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8YjpMLCEwKSkseWMudGVzdChlWzFdKSYmZC5pc1BsYWluT2JqZWN0KGIpKWZvcihlIGluIGIpTSh0aGlzW2VdKT90aGlzW2VdKGJbZV0pOgp0aGlzLmF0dHIoZSxiW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4oZj1MLmdldEVsZW1lbnRCeUlkKGVbMl0pKSYmKHRoaXNbMF09Zix0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTpNKGEpP3ZvaWQgMCE9PWMucmVhZHk\/Yy5yZWFkeShhKTphKGQpOmQubWFrZUFycmF5KGEsdGhpcyl9KS5wcm90b3R5cGU9ZC5mbjt2YXIgaWQ9ZChMKSxqZD0vXig\/OnBhcmVudHN8cHJldig\/OlVudGlsfEFsbCkpLyxrZD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtkLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGEpe3ZhciBiPWQoYSx0aGlzKSxjPWIubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8YztlKyspaWYoZC5jb250YWlucyh0aGlzLGJbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTAsZj10aGlzLmxlbmd0aCwKZz1bXSxoPSJzdHJpbmciIT10eXBlb2YgYSYmZChhKTtpZigheGMudGVzdChhKSlmb3IoO2U8ZjtlKyspZm9yKGM9dGhpc1tlXTtjJiZjIT09YjtjPWMucGFyZW50Tm9kZSlpZigxMT5jLm5vZGVUeXBlJiYoaD8tMTxoLmluZGV4KGMpOjE9PT1jLm5vZGVUeXBlJiZkLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGMsYSkpKXtnLnB1c2goYyk7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKDE8Zy5sZW5ndGg\/ZC51bmlxdWVTb3J0KGcpOmcpfSxpbmRleDpmdW5jdGlvbihhKXtyZXR1cm4gYT8ic3RyaW5nIj09dHlwZW9mIGE\/TmEuY2FsbChkKGEpLHRoaXNbMF0pOk5hLmNhbGwodGhpcyxhLmpxdWVyeT9hWzBdOmEpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQudW5pcXVlU29ydChkLm1lcmdlKHRoaXMuZ2V0KCksZChhLGIpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT0KYT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZC5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5wYXJlbnROb2RlKSYmMTEhPT1hLm5vZGVUeXBlP2E6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB3YihhLCJwYXJlbnROb2RlIixjKX0sbmV4dDpmdW5jdGlvbihhKXtyZXR1cm4gbGIoYSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gbGIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHdiKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHdiKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB3YihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsCmMpe3JldHVybiB3YihhLCJwcmV2aW91c1NpYmxpbmciLGMpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gd2MoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiB3YyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YS5jb250ZW50RG9jdW1lbnQmJnNjKGEuY29udGVudERvY3VtZW50KT9hLmNvbnRlbnREb2N1bWVudDooWChhLCJ0ZW1wbGF0ZSIpJiYoYT1hLmNvbnRlbnR8fGEpLGQubWVyZ2UoW10sYS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihhLGIpe2QuZm5bYV09ZnVuY3Rpb24oYyxlKXt2YXIgZj1kLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZT1jKSxlJiYic3RyaW5nIj09dHlwZW9mIGUmJihmPWQuZmlsdGVyKGUsZikpLDE8dGhpcy5sZW5ndGgmJihrZFthXXx8ZC51bmlxdWVTb3J0KGYpLGpkLnRlc3QoYSkmJmYucmV2ZXJzZSgpKSwKdGhpcy5wdXNoU3RhY2soZil9fSk7dmFyIExhPS9bXlx4MjBcdFxyXG5cZl0rL2c7ZC5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7dmFyIGIsYzthPSJzdHJpbmciPT10eXBlb2YgYT8oYj1hLGM9e30sZC5lYWNoKGIubWF0Y2goTGEpfHxbXSxmdW5jdGlvbih6LEQpe2NbRF09ITB9KSxjKTpkLmV4dGVuZCh7fSxhKTt2YXIgZSxmLGcsaCxtPVtdLGw9W10sdD0tMSx3PWZ1bmN0aW9uKCl7aD1ofHxhLm9uY2U7Zm9yKGc9ZT0hMDtsLmxlbmd0aDt0PS0xKWZvcihmPWwuc2hpZnQoKTsrK3Q8bS5sZW5ndGg7KSExPT09bVt0XS5hcHBseShmWzBdLGZbMV0pJiZhLnN0b3BPbkZhbHNlJiYodD1tLmxlbmd0aCxmPSExKTthLm1lbW9yeXx8KGY9ITEpO2U9ITE7aCYmKG09Zj9bXToiIil9LHI9e2FkZDpmdW5jdGlvbigpe3JldHVybiBtJiYoZiYmIWUmJih0PW0ubGVuZ3RoLTEsbC5wdXNoKGYpKSxmdW5jdGlvbiBGKEQpe2QuZWFjaChELGZ1bmN0aW9uKE8sYWEpe00oYWEpP2EudW5pcXVlJiZyLmhhcyhhYSl8fAptLnB1c2goYWEpOmFhJiZhYS5sZW5ndGgmJiJzdHJpbmciIT09VShhYSkmJkYoYWEpfSl9KGFyZ3VtZW50cyksZiYmIWUmJncoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGQuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oeixEKXtmb3IodmFyIEY7LTE8KEY9ZC5pbkFycmF5KEQsbSxGKSk7KW0uc3BsaWNlKEYsMSksRjw9dCYmdC0tfSksdGhpc30saGFzOmZ1bmN0aW9uKHope3JldHVybiB6Py0xPGQuaW5BcnJheSh6LG0pOjA8bS5sZW5ndGh9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIG0mJihtPVtdKSx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGg9bD1bXSxtPWY9IiIsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hbX0sbG9jazpmdW5jdGlvbigpe3JldHVybiBoPWw9W10sZnx8ZXx8KG09Zj0iIiksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFofSxmaXJlV2l0aDpmdW5jdGlvbih6LEQpe3JldHVybiBofHwoRD1beiwoRD1EfHwKW10pLnNsaWNlP0Quc2xpY2UoKTpEXSxsLnB1c2goRCksZXx8dygpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIHIuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFnfX07cmV0dXJuIHJ9O2QuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihhKXt2YXIgYj1bWyJub3RpZnkiLCJwcm9ncmVzcyIsZC5DYWxsYmFja3MoIm1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0sYz0icGVuZGluZyIsZT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSwKdGhpc30sImNhdGNoIjpmdW5jdGlvbihnKXtyZXR1cm4gZS50aGVuKG51bGwsZyl9LHBpcGU6ZnVuY3Rpb24oKXt2YXIgZz1hcmd1bWVudHM7cmV0dXJuIGQuRGVmZXJyZWQoZnVuY3Rpb24oaCl7ZC5lYWNoKGIsZnVuY3Rpb24obSxsKXt2YXIgdD1NKGdbbFs0XV0pJiZnW2xbNF1dO2ZbbFsxXV0oZnVuY3Rpb24oKXt2YXIgdz10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt3JiZNKHcucHJvbWlzZSk\/dy5wcm9taXNlKCkucHJvZ3Jlc3MoaC5ub3RpZnkpLmRvbmUoaC5yZXNvbHZlKS5mYWlsKGgucmVqZWN0KTpoW2xbMF0rIldpdGgiXSh0aGlzLHQ\/W3ddOmFyZ3VtZW50cyl9KX0pO2c9bnVsbH0pLnByb21pc2UoKX0sdGhlbjpmdW5jdGlvbihnLGgsbSl7ZnVuY3Rpb24gbCh3LHIseixEKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgRj10aGlzLE89YXJndW1lbnRzLGFhPWZ1bmN0aW9uKCl7dmFyIHFhO2lmKCEodzx0KSl7aWYoKHFhPXouYXBwbHkoRixPKSk9PT1yLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTsKdmFyIFNhPXFhJiYoIm9iamVjdCI9PXR5cGVvZiBxYXx8ImZ1bmN0aW9uIj09dHlwZW9mIHFhKSYmcWEudGhlbjtNKFNhKT9EP1NhLmNhbGwocWEsbCh0LHIsWWEsRCksbCh0LHIsWmEsRCkpOih0KyssU2EuY2FsbChxYSxsKHQscixZYSxEKSxsKHQscixaYSxEKSxsKHQscixZYSxyLm5vdGlmeVdpdGgpKSk6KHohPT1ZYSYmKEY9dm9pZCAwLE89W3FhXSksKER8fHIucmVzb2x2ZVdpdGgpKEYsTykpfX0sR2E9RD9hYTpmdW5jdGlvbigpe3RyeXthYSgpfWNhdGNoKHFhKXtkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJmQuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhxYSxHYS5lcnJvciksdDw9dysxJiYoeiE9PVphJiYoRj12b2lkIDAsTz1bcWFdKSxyLnJlamVjdFdpdGgoRixPKSl9fTt3P0dhKCk6KGQuRGVmZXJyZWQuZ2V0RXJyb3JIb29rP0dhLmVycm9yPWQuRGVmZXJyZWQuZ2V0RXJyb3JIb29rKCk6ZC5EZWZlcnJlZC5nZXRTdGFja0hvb2smJihHYS5lcnJvcj1kLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSwKbi5zZXRUaW1lb3V0KEdhKSl9fXZhciB0PTA7cmV0dXJuIGQuRGVmZXJyZWQoZnVuY3Rpb24odyl7YlswXVszXS5hZGQobCgwLHcsTShtKT9tOllhLHcubm90aWZ5V2l0aCkpO2JbMV1bM10uYWRkKGwoMCx3LE0oZyk\/ZzpZYSkpO2JbMl1bM10uYWRkKGwoMCx3LE0oaCk\/aDpaYSkpfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGcpe3JldHVybiBudWxsIT1nP2QuZXh0ZW5kKGcsZSk6ZX19LGY9e307cmV0dXJuIGQuZWFjaChiLGZ1bmN0aW9uKGcsaCl7dmFyIG09aFsyXSxsPWhbNV07ZVtoWzFdXT1tLmFkZDtsJiZtLmFkZChmdW5jdGlvbigpe2M9bH0sYlszLWddWzJdLmRpc2FibGUsYlszLWddWzNdLmRpc2FibGUsYlswXVsyXS5sb2NrLGJbMF1bM10ubG9jayk7bS5hZGQoaFszXS5maXJlKTtmW2hbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIGZbaFswXSsiV2l0aCJdKHRoaXM9PT1mP3ZvaWQgMDp0aGlzLGFyZ3VtZW50cyksdGhpc307ZltoWzBdKyJXaXRoIl09bS5maXJlV2l0aH0pLAplLnByb21pc2UoZiksYSYmYS5jYWxsKGYsZiksZn0sd2hlbjpmdW5jdGlvbihhKXt2YXIgYj1hcmd1bWVudHMubGVuZ3RoLGM9YixlPUFycmF5KGMpLGY9eWEuY2FsbChhcmd1bWVudHMpLGc9ZC5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24obSl7cmV0dXJuIGZ1bmN0aW9uKGwpe2VbbV09dGhpcztmW21dPTE8YXJndW1lbnRzLmxlbmd0aD95YS5jYWxsKGFyZ3VtZW50cyk6bDstLWJ8fGcucmVzb2x2ZVdpdGgoZSxmKX19O2lmKDE+PWImJihtYihhLGcuZG9uZShoKGMpKS5yZXNvbHZlLGcucmVqZWN0LCFiKSwicGVuZGluZyI9PT1nLnN0YXRlKCl8fE0oZltjXSYmZltjXS50aGVuKSkpcmV0dXJuIGcudGhlbigpO2Zvcig7Yy0tOyltYihmW2NdLGgoYyksZy5yZWplY3QpO3JldHVybiBnLnByb21pc2UoKX19KTt2YXIgbGQ9L14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87ZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rPWZ1bmN0aW9uKGEsYil7bi5jb25zb2xlJiYKbi5jb25zb2xlLndhcm4mJmEmJmxkLnRlc3QoYS5uYW1lKSYmbi5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrYS5tZXNzYWdlLGEuc3RhY2ssYil9O2QucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oYSl7bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYTt9KX07dmFyIGdjPWQuRGVmZXJyZWQoKTtkLmZuLnJlYWR5PWZ1bmN0aW9uKGEpe3JldHVybiBnYy50aGVuKGEpWyJjYXRjaCJdKGZ1bmN0aW9uKGIpe2QucmVhZHlFeGNlcHRpb24oYil9KSx0aGlzfTtkLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihhKXsoITA9PT1hPy0tZC5yZWFkeVdhaXQ6ZC5pc1JlYWR5KXx8KGQuaXNSZWFkeT0hMCkhPT1hJiYwPC0tZC5yZWFkeVdhaXR8fGdjLnJlc29sdmVXaXRoKEwsW2RdKX19KTtkLnJlYWR5LnRoZW49Z2MudGhlbjsiY29tcGxldGUiPT09TC5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1MLnJlYWR5U3RhdGUmJiFMLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8Kbi5zZXRUaW1lb3V0KGQucmVhZHkpOihMLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLE9hKSxuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLE9hKSk7dmFyIFhhPWZ1bmN0aW9uKGEsYixjLGUsZixnLGgpe3ZhciBtPTAsbD1hLmxlbmd0aCx0PW51bGw9PWM7aWYoIm9iamVjdCI9PT1VKGMpKWZvcihtIGluIGY9ITAsYylYYShhLGIsbSxjW21dLCEwLGcsaCk7ZWxzZSBpZih2b2lkIDAhPT1lJiYoZj0hMCxNKGUpfHwoaD0hMCksdCYmKGg\/KGIuY2FsbChhLGUpLGI9bnVsbCk6KHQ9YixiPWZ1bmN0aW9uKHcscix6KXtyZXR1cm4gdC5jYWxsKGQodykseil9KSksYikpZm9yKDttPGw7bSsrKWIoYVttXSxjLGg\/ZTplLmNhbGwoYVttXSxtLGIoYVttXSxjKSkpO3JldHVybiBmP2E6dD9iLmNhbGwoYSk6bD9iKGFbMF0sYyk6Z30sTWM9L14tbXMtLyxOYz0vLShbYS16XSkvZyxHYj1mdW5jdGlvbihhKXtyZXR1cm4gMT09PWEubm9kZVR5cGV8fDk9PT1hLm5vZGVUeXBlfHwhK2Eubm9kZVR5cGV9OwpKYS51aWQ9MTtKYS5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGEpe3ZhciBiPWFbdGhpcy5leHBhbmRvXTtyZXR1cm4gYnx8KGI9e30sR2IoYSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT1iOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHRoaXMuZXhwYW5kbyx7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSkpLGJ9LHNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGU7YT10aGlzLmNhY2hlKGEpO2lmKCJzdHJpbmciPT10eXBlb2YgYilhW0JhKGIpXT1jO2Vsc2UgZm9yKGUgaW4gYilhW0JhKGUpXT1iW2VdO3JldHVybiBhfSxnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdm9pZCAwPT09Yj90aGlzLmNhY2hlKGEpOmFbdGhpcy5leHBhbmRvXSYmYVt0aGlzLmV4cGFuZG9dW0JhKGIpXX0sYWNjZXNzOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdm9pZCAwPT09Ynx8YiYmInN0cmluZyI9PXR5cGVvZiBiJiZ2b2lkIDA9PT1jP3RoaXMuZ2V0KGEsYik6KHRoaXMuc2V0KGEsYixjKSx2b2lkIDAhPT0KYz9jOmIpfSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09Yyl7aWYodm9pZCAwIT09Yil7dmFyIGU9KGI9QXJyYXkuaXNBcnJheShiKT9iLm1hcChCYSk6KGI9QmEoYikpaW4gYz9bYl06Yi5tYXRjaChMYSl8fFtdKS5sZW5ndGg7Zm9yKDtlLS07KWRlbGV0ZSBjW2JbZV1dfSh2b2lkIDA9PT1ifHxkLmlzRW1wdHlPYmplY3QoYykpJiYoYS5ub2RlVHlwZT9hW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBhW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihhKXthPWFbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09YSYmIWQuaXNFbXB0eU9iamVjdChhKX19O3ZhciBHPW5ldyBKYSx4YT1uZXcgSmEsUGM9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxPYz0vW0EtWl0vZztkLmV4dGVuZCh7aGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4geGEuaGFzRGF0YShhKXx8Ry5oYXNEYXRhKGEpfSxkYXRhOmZ1bmN0aW9uKGEsCmIsYyl7cmV0dXJuIHhhLmFjY2VzcyhhLGIsYyl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXt4YS5yZW1vdmUoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBHLmFjY2VzcyhhLGIsYyl9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7Ry5yZW1vdmUoYSxiKX19KTtkLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihhLGIpe3ZhciBjLGUsZixnPXRoaXNbMF0saD1nJiZnLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09YSl7aWYodGhpcy5sZW5ndGgmJihmPXhhLmdldChnKSwxPT09Zy5ub2RlVHlwZSYmIUcuZ2V0KGcsImhhc0RhdGFBdHRycyIpKSl7Zm9yKGM9aC5sZW5ndGg7Yy0tOyloW2NdJiYwPT09KGU9aFtjXS5uYW1lKS5pbmRleE9mKCJkYXRhLSIpJiYoZT1CYShlLnNsaWNlKDUpKSxPYihnLGUsZltlXSkpO0cuc2V0KGcsImhhc0RhdGFBdHRycyIsITApfXJldHVybiBmfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5zZXQodGhpcywKYSl9KTpYYSh0aGlzLGZ1bmN0aW9uKG0pe3ZhciBsO2lmKGcmJnZvaWQgMD09PW0pcmV0dXJuIHZvaWQgMCE9PShsPXhhLmdldChnLGEpKT9sOnZvaWQgMCE9PShsPU9iKGcsYSkpP2w6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe3hhLnNldCh0aGlzLGEsbSl9KX0sbnVsbCxiLDE8YXJndW1lbnRzLmxlbmd0aCxudWxsLCEwKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEucmVtb3ZlKHRoaXMsYSl9KX19KTtkLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlO2lmKGEpcmV0dXJuIGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZT1HLmdldChhLGIpLGMmJighZXx8QXJyYXkuaXNBcnJheShjKT9lPUcuYWNjZXNzKGEsYixkLm1ha2VBcnJheShjKSk6ZS5wdXNoKGMpKSxlfHxbXX0sZGVxdWV1ZTpmdW5jdGlvbihhLGIpe2I9Ynx8ImZ4Ijt2YXIgYz1kLnF1ZXVlKGEsYiksZT1jLmxlbmd0aCxmPWMuc2hpZnQoKSxnPWQuX3F1ZXVlSG9va3MoYSwKYik7ImlucHJvZ3Jlc3MiPT09ZiYmKGY9Yy5zaGlmdCgpLGUtLSk7ZiYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZy5zdG9wLGYuY2FsbChhLGZ1bmN0aW9uKCl7ZC5kZXF1ZXVlKGEsYil9LGcpKTshZSYmZyYmZy5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGEsYil7dmFyIGM9YisicXVldWVIb29rcyI7cmV0dXJuIEcuZ2V0KGEsYyl8fEcuYWNjZXNzKGEsYyx7ZW1wdHk6ZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7Ry5yZW1vdmUoYSxbYisicXVldWUiLGNdKX0pfSl9fSk7ZC5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYil7dmFyIGM9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihiPWEsYT0iZngiLGMtLSksYXJndW1lbnRzLmxlbmd0aDxjP2QucXVldWUodGhpc1swXSxhKTp2b2lkIDA9PT1iP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZC5xdWV1ZSh0aGlzLGEsYik7ZC5fcXVldWVIb29rcyh0aGlzLAphKTsiZngiPT09YSYmImlucHJvZ3Jlc3MiIT09ZVswXSYmZC5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MSxmPWQuRGVmZXJyZWQoKSxnPXRoaXMsaD10aGlzLmxlbmd0aCxtPWZ1bmN0aW9uKCl7LS1lfHxmLnJlc29sdmVXaXRoKGcsW2ddKX07InN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKTtmb3IoYT1hfHwiZngiO2gtLTspKGM9Ry5nZXQoZ1toXSxhKyJxdWV1ZUhvb2tzIikpJiZjLmVtcHR5JiYoZSsrLGMuZW1wdHkuYWRkKG0pKTtyZXR1cm4gbSgpLGYucHJvbWlzZShiKX19KTt2YXIgemM9L1srLV0\/KD86XGQqXC58KVxkKyg\/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UseWI9bmV3IFJlZ0V4cCgiXig\/OihbKy1dKT18KSgiKwp6YysiKShbYS16JV0qKSQiLCJpIiksUGE9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxqYj1MLmRvY3VtZW50RWxlbWVudCxvYj1mdW5jdGlvbihhKXtyZXR1cm4gZC5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl9LG1kPXtjb21wb3NlZDohMH07amIuZ2V0Um9vdE5vZGUmJihvYj1mdW5jdGlvbihhKXtyZXR1cm4gZC5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl8fGEuZ2V0Um9vdE5vZGUobWQpPT09YS5vd25lckRvY3VtZW50fSk7dmFyIFFiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIm5vbmUiPT09KGE9Ynx8YSkuc3R5bGUuZGlzcGxheXx8IiI9PT1hLnN0eWxlLmRpc3BsYXkmJm9iKGEpJiYibm9uZSI9PT1kLmNzcyhhLCJkaXNwbGF5Iil9LGxjPXt9O2QuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKCl7cmV0dXJuICRhKHRoaXMsITApfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuICRhKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oYSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgYT8KYT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtRYih0aGlzKT9kKHRoaXMpLnNob3coKTpkKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBaYixIYj0vXig\/OmNoZWNrYm94fHJhZGlvKSQvaSxtYz0vPChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKikvaSxuYz0vXiR8Xm1vZHVsZSR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2kseGI9TC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoTC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7KFpiPUwuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKTtaYi5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIik7WmIuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpO3hiLmFwcGVuZENoaWxkKFpiKTtOLmNoZWNrQ2xvbmU9eGIuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkO3hiLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiI7Ck4ubm9DbG9uZUNoZWNrZWQ9ISF4Yi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWU7eGIuaW5uZXJIVE1MPSI8b3B0aW9uPjwvb3B0aW9uPiI7Ti5vcHRpb249ISF4Yi5sYXN0Q2hpbGQ7dmFyIENhPXt0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07Q2EudGJvZHk9Q2EudGZvb3Q9Q2EuY29sZ3JvdXA9Q2EuY2FwdGlvbj1DYS50aGVhZDtDYS50aD1DYS50ZDtOLm9wdGlvbnx8KENhLm9wdGdyb3VwPUNhLm9wdGlvbj1bMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdKTt2YXIgUWM9Lzx8JiM\/XHcrOy8sQWM9L14oW14uXSopKD86XC4oLispfCkvOwpkLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGUsZil7dmFyIGcsaCxtLGwsdCx3LHIseixEPUcuZ2V0KGEpO2lmKEdiKGEpKWZvcihjLmhhbmRsZXImJihjPShnPWMpLmhhbmRsZXIsZj1nLnNlbGVjdG9yKSxmJiZkLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGpiLGYpLGMuZ3VpZHx8KGMuZ3VpZD1kLmd1aWQrKyksKGw9RC5ldmVudHMpfHwobD1ELmV2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpKSwoaD1ELmhhbmRsZSl8fChoPUQuaGFuZGxlPWZ1bmN0aW9uKE8pe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZCYmZC5ldmVudC50cmlnZ2VyZWQhPT1PLnR5cGU\/ZC5ldmVudC5kaXNwYXRjaC5hcHBseShhLGFyZ3VtZW50cyk6dm9pZCAwfSksRD0oYj0oYnx8IiIpLm1hdGNoKExhKXx8WyIiXSkubGVuZ3RoO0QtLTspe3ZhciBGPXo9KG09QWMuZXhlYyhiW0RdKXx8W10pWzFdO209KG1bMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKTtGJiYodz1kLmV2ZW50LnNwZWNpYWxbRl18fAp7fSxGPShmP3cuZGVsZWdhdGVUeXBlOncuYmluZFR5cGUpfHxGLHc9ZC5ldmVudC5zcGVjaWFsW0ZdfHx7fSx0PWQuZXh0ZW5kKHt0eXBlOkYsb3JpZ1R5cGU6eixkYXRhOmUsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmYsbmVlZHNDb250ZXh0OmYmJmQuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChmKSxuYW1lc3BhY2U6bS5qb2luKCIuIil9LGcpLChyPWxbRl0pfHwoKHI9bFtGXT1bXSkuZGVsZWdhdGVDb3VudD0wLHcuc2V0dXAmJiExIT09dy5zZXR1cC5jYWxsKGEsZSxtLGgpfHxhLmFkZEV2ZW50TGlzdGVuZXImJmEuYWRkRXZlbnRMaXN0ZW5lcihGLGgpKSx3LmFkZCYmKHcuYWRkLmNhbGwoYSx0KSx0LmhhbmRsZXIuZ3VpZHx8KHQuaGFuZGxlci5ndWlkPWMuZ3VpZCkpLGY\/ci5zcGxpY2Uoci5kZWxlZ2F0ZUNvdW50KyssMCx0KTpyLnB1c2godCksZC5ldmVudC5nbG9iYWxbRl09ITApfX0scmVtb3ZlOmZ1bmN0aW9uKGEsYixjLGUsZil7dmFyIGcsaCxtLGwsCnQsdyxyLHosRD1HLmhhc0RhdGEoYSkmJkcuZ2V0KGEpO2lmKEQmJihsPUQuZXZlbnRzKSl7Zm9yKHQ9KGI9KGJ8fCIiKS5tYXRjaChMYSl8fFsiIl0pLmxlbmd0aDt0LS07KWlmKHc9ej0obT1BYy5leGVjKGJbdF0pfHxbXSlbMV0scj0obVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLHcpe3ZhciBGPWQuZXZlbnQuc3BlY2lhbFt3XXx8e30sTz1sW3c9KGU\/Ri5kZWxlZ2F0ZVR5cGU6Ri5iaW5kVHlwZSl8fHddfHxbXTttPW1bMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Iuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik7Zm9yKGg9Zz1PLmxlbmd0aDtnLS07KXt2YXIgYWE9T1tnXTshZiYmeiE9PWFhLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1hYS5ndWlkfHxtJiYhbS50ZXN0KGFhLm5hbWVzcGFjZSl8fGUmJmUhPT1hYS5zZWxlY3RvciYmKCIqKiIhPT1lfHwhYWEuc2VsZWN0b3IpfHwoTy5zcGxpY2UoZywxKSxhYS5zZWxlY3RvciYmTy5kZWxlZ2F0ZUNvdW50LS0sRi5yZW1vdmUmJgpGLnJlbW92ZS5jYWxsKGEsYWEpKX1oJiYhTy5sZW5ndGgmJihGLnRlYXJkb3duJiYhMSE9PUYudGVhcmRvd24uY2FsbChhLHIsRC5oYW5kbGUpfHxkLnJlbW92ZUV2ZW50KGEsdyxELmhhbmRsZSksZGVsZXRlIGxbd10pfWVsc2UgZm9yKHcgaW4gbClkLmV2ZW50LnJlbW92ZShhLHcrYlt0XSxjLGUsITApO2QuaXNFbXB0eU9iamVjdChsKSYmRy5yZW1vdmUoYSwiaGFuZGxlIGV2ZW50cyIpfX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZz1BcnJheShhcmd1bWVudHMubGVuZ3RoKSxoPWQuZXZlbnQuZml4KGEpLG09KEcuZ2V0KHRoaXMsImV2ZW50cyIpfHxPYmplY3QuY3JlYXRlKG51bGwpKVtoLnR5cGVdfHxbXSxsPWQuZXZlbnQuc3BlY2lhbFtoLnR5cGVdfHx7fTtnWzBdPWg7Zm9yKGI9MTtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWdbYl09YXJndW1lbnRzW2JdO2lmKGguZGVsZWdhdGVUYXJnZXQ9dGhpcywhbC5wcmVEaXNwYXRjaHx8ITEhPT1sLnByZURpc3BhdGNoLmNhbGwodGhpcywKaCkpe3ZhciB0PWQuZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGgsbSk7Zm9yKGI9MDsoZT10W2IrK10pJiYhaC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOylmb3IoaC5jdXJyZW50VGFyZ2V0PWUuZWxlbSxtPTA7KGY9ZS5oYW5kbGVyc1ttKytdKSYmIWguaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKTspaC5ybmFtZXNwYWNlJiYhMSE9PWYubmFtZXNwYWNlJiYhaC5ybmFtZXNwYWNlLnRlc3QoZi5uYW1lc3BhY2UpfHwoaC5oYW5kbGVPYmo9ZixoLmRhdGE9Zi5kYXRhLHZvaWQgMCE9PShjPSgoZC5ldmVudC5zcGVjaWFsW2Yub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxmLmhhbmRsZXIpLmFwcGx5KGUuZWxlbSxnKSkmJiExPT09KGgucmVzdWx0PWMpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcFByb3BhZ2F0aW9uKCkpKTtyZXR1cm4gbC5wb3N0RGlzcGF0Y2gmJmwucG9zdERpc3BhdGNoLmNhbGwodGhpcyxoKSxoLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGEsYil7dmFyIGMsCmUsZixnPVtdLGg9Yi5kZWxlZ2F0ZUNvdW50LG09YS50YXJnZXQ7aWYoaCYmbS5ub2RlVHlwZSYmISgiY2xpY2siPT09YS50eXBlJiYxPD1hLmJ1dHRvbikpZm9yKDttIT09dGhpczttPW0ucGFyZW50Tm9kZXx8dGhpcylpZigxPT09bS5ub2RlVHlwZSYmKCJjbGljayIhPT1hLnR5cGV8fCEwIT09bS5kaXNhYmxlZCkpe3ZhciBsPVtdLHQ9e307Zm9yKGM9MDtjPGg7YysrKXZvaWQgMD09PXRbZj0oZT1iW2NdKS5zZWxlY3RvcisiICJdJiYodFtmXT1lLm5lZWRzQ29udGV4dD8tMTxkKGYsdGhpcykuaW5kZXgobSk6ZC5maW5kKGYsdGhpcyxudWxsLFttXSkubGVuZ3RoKSx0W2ZdJiZsLnB1c2goZSk7bC5sZW5ndGgmJmcucHVzaCh7ZWxlbTptLGhhbmRsZXJzOmx9KX1yZXR1cm4gbT10aGlzLGg8Yi5sZW5ndGgmJmcucHVzaCh7ZWxlbTptLGhhbmRsZXJzOmIuc2xpY2UoaCl9KSxnfSxhZGRQcm9wOmZ1bmN0aW9uKGEsYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQuRXZlbnQucHJvdG90eXBlLAphLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6TShiKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gYih0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W2FdfSxzZXQ6ZnVuY3Rpb24oYyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfX0pfSxmaXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbZC5leHBhbmRvXT9hOm5ldyBkLkV2ZW50KGEpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGEpe2E9dGhpc3x8YTtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiZhLmNsaWNrJiZYKGEsImlucHV0IikmJnBiKGEsImNsaWNrIiwhMCksITF9LHRyaWdnZXI6ZnVuY3Rpb24oYSl7YT10aGlzfHxhO3JldHVybiBIYi50ZXN0KGEudHlwZSkmJgphLmNsaWNrJiZYKGEsImlucHV0IikmJnBiKGEsImNsaWNrIiksITB9LF9kZWZhdWx0OmZ1bmN0aW9uKGEpe2E9YS50YXJnZXQ7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmYS5jbGljayYmWChhLCJpbnB1dCIpJiZHLmdldChhLCJjbGljayIpfHxYKGEsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZvaWQgMCE9PWEucmVzdWx0JiZhLm9yaWdpbmFsRXZlbnQmJihhLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9YS5yZXN1bHQpfX19fTtkLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpfTtkLkV2ZW50PWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgZC5FdmVudCkpcmV0dXJuIG5ldyBkLkV2ZW50KGEsYik7YSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8CnZvaWQgMD09PWEuZGVmYXVsdFByZXZlbnRlZCYmITE9PT1hLnJldHVyblZhbHVlP2FiOmJiLHRoaXMudGFyZ2V0PWEudGFyZ2V0JiYzPT09YS50YXJnZXQubm9kZVR5cGU\/YS50YXJnZXQucGFyZW50Tm9kZTphLnRhcmdldCx0aGlzLmN1cnJlbnRUYXJnZXQ9YS5jdXJyZW50VGFyZ2V0LHRoaXMucmVsYXRlZFRhcmdldD1hLnJlbGF0ZWRUYXJnZXQpOnRoaXMudHlwZT1hO2ImJmQuZXh0ZW5kKHRoaXMsYik7dGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fERhdGUubm93KCk7dGhpc1tkLmV4cGFuZG9dPSEwfTtkLkV2ZW50LnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZC5FdmVudCxpc0RlZmF1bHRQcmV2ZW50ZWQ6YmIsaXNQcm9wYWdhdGlvblN0b3BwZWQ6YmIsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6YmIsaXNTaW11bGF0ZWQ6ITEscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YWI7CmEmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPWFiO2EmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1hYjthJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTt0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX07ZC5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjb2RlOiEwLApjaGFyQ29kZTohMCxrZXk6ITAsa2V5Q29kZTohMCxidXR0b246ITAsYnV0dG9uczohMCxjbGllbnRYOiEwLGNsaWVudFk6ITAsb2Zmc2V0WDohMCxvZmZzZXRZOiEwLHBvaW50ZXJJZDohMCxwb2ludGVyVHlwZTohMCxzY3JlZW5YOiEwLHNjcmVlblk6ITAsdGFyZ2V0VG91Y2hlczohMCx0b0VsZW1lbnQ6ITAsdG91Y2hlczohMCx3aGljaDohMH0sZC5ldmVudC5hZGRQcm9wKTtkLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhlKXtpZihMLmRvY3VtZW50TW9kZSl7dmFyIGY9Ry5nZXQodGhpcywiaGFuZGxlIiksZz1kLmV2ZW50LmZpeChlKTtnLnR5cGU9ImZvY3VzaW4iPT09ZS50eXBlPyJmb2N1cyI6ImJsdXIiO2cuaXNTaW11bGF0ZWQ9ITA7ZihlKTtnLnRhcmdldD09PWcuY3VycmVudFRhcmdldCYmZihnKX1lbHNlIGQuZXZlbnQuc2ltdWxhdGUoYixlLnRhcmdldCxkLmV2ZW50LmZpeChlKSl9ZC5ldmVudC5zcGVjaWFsW2FdPQp7c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZTtpZihwYih0aGlzLGEsITApLCFMLmRvY3VtZW50TW9kZSlyZXR1cm4hMTsoZT1HLmdldCh0aGlzLGIpKXx8dGhpcy5hZGRFdmVudExpc3RlbmVyKGIsYyk7Ry5zZXQodGhpcyxiLChlfHwwKSsxKX0sdHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBwYih0aGlzLGEpLCEwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBlO2lmKCFMLmRvY3VtZW50TW9kZSlyZXR1cm4hMTsoZT1HLmdldCh0aGlzLGIpLTEpP0cuc2V0KHRoaXMsYixlKToodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyksRy5yZW1vdmUodGhpcyxiKSl9LF9kZWZhdWx0OmZ1bmN0aW9uKGUpe3JldHVybiBHLmdldChlLnRhcmdldCxhKX0sZGVsZWdhdGVUeXBlOmJ9O2QuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsZj1MLmRvY3VtZW50TW9kZT90aGlzOmUsZz1HLmdldChmLGIpO2d8fAooTC5kb2N1bWVudE1vZGU\/dGhpcy5hZGRFdmVudExpc3RlbmVyKGIsYyk6ZS5hZGRFdmVudExpc3RlbmVyKGEsYywhMCkpO0cuc2V0KGYsYiwoZ3x8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLGY9TC5kb2N1bWVudE1vZGU\/dGhpczplLGc9Ry5nZXQoZixiKS0xO2c\/Ry5zZXQoZixiLGcpOihMLmRvY3VtZW50TW9kZT90aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKTplLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxjLCEwKSxHLnJlbW92ZShmLGIpKX19fSk7ZC5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihhLGIpe2QuZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYyl7dmFyIGUsZj0KYy5yZWxhdGVkVGFyZ2V0LGc9Yy5oYW5kbGVPYmo7cmV0dXJuIGYmJihmPT09dGhpc3x8ZC5jb250YWlucyh0aGlzLGYpKXx8KGMudHlwZT1nLm9yaWdUeXBlLGU9Zy5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxjLnR5cGU9YiksZX19fSk7ZC5mbi5leHRlbmQoe29uOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiBmYih0aGlzLGEsYixjLGUpfSxvbmU6ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIGZiKHRoaXMsYSxiLGMsZSwxKX0sb2ZmOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmO2lmKGEmJmEucHJldmVudERlZmF1bHQmJmEuaGFuZGxlT2JqKXJldHVybiBlPWEuaGFuZGxlT2JqLGQoYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGUubmFtZXNwYWNlP2Uub3JpZ1R5cGUrIi4iK2UubmFtZXNwYWNlOmUub3JpZ1R5cGUsZS5zZWxlY3RvcixlLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtmb3IoZiBpbiBhKXRoaXMub2ZmKGYsYixhW2ZdKTtyZXR1cm4gdGhpc31yZXR1cm4hMSE9PQpiJiYiZnVuY3Rpb24iIT10eXBlb2YgYnx8KGM9YixiPXZvaWQgMCksITE9PT1jJiYoYz1iYiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC5yZW1vdmUodGhpcyxhLGMsYil9KX19KTt2YXIgbmQ9LzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksUmM9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksU2M9L15ccyo8IVxbQ0RBVEFcW3xcXVxdPlxzKiQvZztkLmV4dGVuZCh7aHRtbFByZWZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sY2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPWEuY2xvbmVOb2RlKCEwKSxtPW9iKGEpO2lmKCEoTi5ub0Nsb25lQ2hlY2tlZHx8MSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZXx8ZC5pc1hNTERvYyhhKSkpe3ZhciBsPXNhKGgpLHQ9MDtmb3IoZT0oZj1zYShhKSkubGVuZ3RoO3Q8ZTt0Kyspe3ZhciB3PWZbdF0scj1sW3RdO3ZvaWQgMDsiaW5wdXQiPT09KGc9ci5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSYmSGIudGVzdCh3LnR5cGUpPwpyLmNoZWNrZWQ9dy5jaGVja2VkOiJpbnB1dCIhPT1nJiYidGV4dGFyZWEiIT09Z3x8KHIuZGVmYXVsdFZhbHVlPXcuZGVmYXVsdFZhbHVlKX19aWYoYilpZihjKWZvcihmPWZ8fHNhKGEpLGw9bHx8c2EoaCksdD0wLGU9Zi5sZW5ndGg7dDxlO3QrKylnYihmW3RdLGxbdF0pO2Vsc2UgZ2IoYSxoKTtyZXR1cm4gMDwobD1zYShoLCJzY3JpcHQiKSkubGVuZ3RoJiZuYihsLCFtJiZzYShhLCJzY3JpcHQiKSksaH0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGUsZj1kLmV2ZW50LnNwZWNpYWwsZz0wO3ZvaWQgMCE9PShjPWFbZ10pO2crKylpZihHYihjKSl7aWYoYj1jW0cuZXhwYW5kb10pe2lmKGIuZXZlbnRzKWZvcihlIGluIGIuZXZlbnRzKWZbZV0\/ZC5ldmVudC5yZW1vdmUoYyxlKTpkLnJlbW92ZUV2ZW50KGMsZSxiLmhhbmRsZSk7Y1tHLmV4cGFuZG9dPXZvaWQgMH1jW3hhLmV4cGFuZG9dJiYoY1t4YS5leHBhbmRvXT12b2lkIDApfX19KTtkLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiBUYih0aGlzLAphLCEwKX0scmVtb3ZlOmZ1bmN0aW9uKGEpe3JldHVybiBUYih0aGlzLGEpfSx0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiB2b2lkIDA9PT1iP2QudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD1iKX0pfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8U2IodGhpcyxhKS5hcHBlbmRDaGlsZChhKX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT0KdGhpcy5ub2RlVHlwZSl7dmFyIGI9U2IodGhpcyxhKTtiLmluc2VydEJlZm9yZShhLGIuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYSxiPTA7bnVsbCE9KGE9dGhpc1tiXSk7YisrKTE9PT1hLm5vZGVUeXBlJiYoZC5jbGVhbkRhdGEoc2EoYSwhMSkpLGEudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihhLGIpe3JldHVybiBhPW51bGwhPWEmJmEsYj1udWxsPT1iP2E6Yix0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBkLmNsb25lKHRoaXMsCmEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihiKXt2YXIgYz10aGlzWzBdfHx7fSxlPTAsZj10aGlzLmxlbmd0aDtpZih2b2lkIDA9PT1iJiYxPT09Yy5ub2RlVHlwZSlyZXR1cm4gYy5pbm5lckhUTUw7aWYoInN0cmluZyI9PXR5cGVvZiBiJiYhbmQudGVzdChiKSYmIUNhWyhtYy5leGVjKGIpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7Yj1kLmh0bWxQcmVmaWx0ZXIoYik7dHJ5e2Zvcig7ZTxmO2UrKykxPT09KGM9dGhpc1tlXXx8e30pLm5vZGVUeXBlJiYoZC5jbGVhbkRhdGEoc2EoYywhMSkpLGMuaW5uZXJIVE1MPWIpO2M9MH1jYXRjaChnKXt9fWMmJnRoaXMuZW1wdHkoKS5hcHBlbmQoYil9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5wYXJlbnROb2RlOzA+ZC5pbkFycmF5KHRoaXMsYSkmJgooZC5jbGVhbkRhdGEoc2EodGhpcykpLGMmJmMucmVwbGFjZUNoaWxkKGIsdGhpcykpfSxhKX19KTtkLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe2QuZm5bYV09ZnVuY3Rpb24oYyl7Zm9yKHZhciBlPVtdLGY9ZChjKSxnPWYubGVuZ3RoLTEsaD0wO2g8PWc7aCsrKWM9aD09PWc\/dGhpczp0aGlzLmNsb25lKCEwKSxkKGZbaF0pW2JdKGMpLHViLmFwcGx5KGUsYy5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBiYz1uZXcgUmVnRXhwKCJeKCIremMrIikoPyFweClbYS16JV0rJCIsImkiKSxhYz0vXi0tLyxVYj1mdW5jdGlvbihhKXt2YXIgYj1hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGImJmIub3BlbmVyfHwoYj1uKSxiLmdldENvbXB1dGVkU3R5bGUoYSl9LEJjPWZ1bmN0aW9uKGEsCmIsYyl7dmFyIGUsZj17fTtmb3IoZSBpbiBiKWZbZV09YS5zdHlsZVtlXSxhLnN0eWxlW2VdPWJbZV07Zm9yKGUgaW4gYz1jLmNhbGwoYSksYilhLnN0eWxlW2VdPWZbZV07cmV0dXJuIGN9LFRjPW5ldyBSZWdFeHAoUGEuam9pbigifCIpLCJpIik7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2lmKGwpe20uc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDt3aWR0aDo2MHB4O21hcmdpbi10b3A6MXB4O3BhZGRpbmc6MDtib3JkZXI6MCI7bC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpzY3JvbGw7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt3aWR0aDo2MCU7dG9wOjElIjtqYi5hcHBlbmRDaGlsZChtKS5hcHBlbmRDaGlsZChsKTt2YXIgdD1uLmdldENvbXB1dGVkU3R5bGUobCk7Yj0iMSUiIT09dC50b3A7aD0xMj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpKTsKbC5zdHlsZS5yaWdodD0iNjAlIjtmPTM2PT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KHQucmlnaHQpKTtjPTM2PT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KHQud2lkdGgpKTtsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZT0xMj09PU1hdGgucm91bmQocGFyc2VGbG9hdChsLm9mZnNldFdpZHRoLzMpKTtqYi5yZW1vdmVDaGlsZChtKTtsPW51bGx9fXZhciBiLGMsZSxmLGcsaCxtPUwuY3JlYXRlRWxlbWVudCgiZGl2IiksbD1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuc3R5bGUmJihsLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsbC5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLE4uY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1sLnN0eWxlLmJhY2tncm91bmRDbGlwLGQuZXh0ZW5kKE4se2JveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxjfSxwaXhlbEJveFN0eWxlczpmdW5jdGlvbigpe3JldHVybiBhKCksCmZ9LHBpeGVsUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGJ9LHJlbGlhYmxlTWFyZ2luTGVmdDpmdW5jdGlvbigpe3JldHVybiBhKCksaH0sc2Nyb2xsYm94U2l6ZTpmdW5jdGlvbigpe3JldHVybiBhKCksZX0scmVsaWFibGVUckRpbWVuc2lvbnM6ZnVuY3Rpb24oKXt2YXIgdCx3LHIsejtyZXR1cm4gbnVsbD09ZyYmKHQ9TC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpLHc9TC5jcmVhdGVFbGVtZW50KCJ0ciIpLHI9TC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlIix3LnN0eWxlLmNzc1RleHQ9ImJvcmRlcjoxcHggc29saWQiLHcuc3R5bGUuaGVpZ2h0PSIxcHgiLHIuc3R5bGUuaGVpZ2h0PSI5cHgiLHIuc3R5bGUuZGlzcGxheT0iYmxvY2siLGpiLmFwcGVuZENoaWxkKHQpLmFwcGVuZENoaWxkKHcpLmFwcGVuZENoaWxkKHIpLHo9bi5nZXRDb21wdXRlZFN0eWxlKHcpLApnPXBhcnNlSW50KHouaGVpZ2h0LDEwKStwYXJzZUludCh6LmJvcmRlclRvcFdpZHRoLDEwKStwYXJzZUludCh6LmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PXcub2Zmc2V0SGVpZ2h0LGpiLnJlbW92ZUNoaWxkKHQpKSxnfX0pKX0oKTt2YXIgcmM9WyJXZWJraXQiLCJNb3oiLCJtcyJdLHFjPUwuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUscGM9e30sb2Q9L14obm9uZXx0YWJsZSg\/IS1jW2VhXSkuKykvLHBkPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxDYz17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZC5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybiBhPUthKGEsIm9wYWNpdHkiKSwiIj09PWE\/IjEiOmF9fX0sY3NzTnVtYmVyOnthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGNvbHVtbkNvdW50OiEwLApmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsZ3JpZEFyZWE6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TdGFydDohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1N0YXJ0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHNjYWxlOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwfSxjc3NQcm9wczp7fSxzdHlsZTpmdW5jdGlvbihhLGIsYyxlKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBmLGcsaCxtPUJhKGIpLGw9YWMudGVzdChiKSx0PWEuc3R5bGU7aWYobHx8KGI9QWIobSkpLGg9ZC5jc3NIb29rc1tiXXx8ZC5jc3NIb29rc1ttXSx2b2lkIDA9PT1jKXJldHVybiBoJiYKImdldCJpbiBoJiZ2b2lkIDAhPT0oZj1oLmdldChhLCExLGUpKT9mOnRbYl07InN0cmluZyI9PT0oZz10eXBlb2YgYykmJihmPXliLmV4ZWMoYykpJiZmWzFdJiYoYz1QYihhLGIsZiksZz0ibnVtYmVyIik7bnVsbCE9YyYmYz09YyYmKCJudW1iZXIiIT09Z3x8bHx8KGMrPWYmJmZbM118fChkLmNzc051bWJlclttXT8iIjoicHgiKSksTi5jbGVhckNsb25lU3R5bGV8fCIiIT09Y3x8MCE9PWIuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwodFtiXT0iaW5oZXJpdCIpLGgmJiJzZXQiaW4gaCYmdm9pZCAwPT09KGM9aC5zZXQoYSxjLGUpKXx8KGw\/dC5zZXRQcm9wZXJ0eShiLGMpOnRbYl09YykpfX0sY3NzOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmLGcsaCxtPUJhKGIpO3JldHVybiBhYy50ZXN0KGIpfHwoYj1BYihtKSksKGg9ZC5jc3NIb29rc1tiXXx8ZC5jc3NIb29rc1ttXSkmJiJnZXQiaW4gaCYmKGY9aC5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9S2EoYSxiLGUpKSwibm9ybWFsIj09PQpmJiZiIGluIENjJiYoZj1DY1tiXSksIiI9PT1jfHxjPyhnPXBhcnNlRmxvYXQoZiksITA9PT1jfHxpc0Zpbml0ZShnKT9nfHwwOmYpOmZ9fSk7ZC5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe2QuY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihjLGUsZil7aWYoZSlyZXR1cm4hb2QudGVzdChkLmNzcyhjLCJkaXNwbGF5IikpfHxjLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiZjLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoP0JiKGMsYixmKTpCYyhjLHBkLGZ1bmN0aW9uKCl7cmV0dXJuIEJiKGMsYixmKX0pfSxzZXQ6ZnVuY3Rpb24oYyxlLGYpe3ZhciBnLGg9VWIoYyksbT0hTi5zY3JvbGxib3hTaXplKCkmJiJhYnNvbHV0ZSI9PT1oLnBvc2l0aW9uLGw9KG18fGYpJiYiYm9yZGVyLWJveCI9PT1kLmNzcyhjLCJib3hTaXppbmciLCExLGgpO2Y9Zj9yYihjLGIsZixsLGgpOjA7cmV0dXJuIGwmJm0mJihmLT1NYXRoLmNlaWwoY1sib2Zmc2V0IitiWzBdLnRvVXBwZXJDYXNlKCkrCmIuc2xpY2UoMSldLXBhcnNlRmxvYXQoaFtiXSktcmIoYyxiLCJib3JkZXIiLCExLGgpLS41KSksZiYmKGc9eWIuZXhlYyhlKSkmJiJweCIhPT0oZ1szXXx8InB4IikmJihjLnN0eWxlW2JdPWUsZT1kLmNzcyhjLGIpKSxXYigwLGUsZil9fX0pO2QuY3NzSG9va3MubWFyZ2luTGVmdD1WYihOLnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuKHBhcnNlRmxvYXQoS2EoYSwibWFyZ2luTGVmdCIpKXx8YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LUJjKGEse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KTtkLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihhLGIpe2QuY3NzSG9va3NbYStiXT17ZXhwYW5kOmZ1bmN0aW9uKGMpe3ZhciBlPTAsZj17fTtmb3IoYz0ic3RyaW5nIj09dHlwZW9mIGM\/Yy5zcGxpdCgiICIpOltjXTs0PgplO2UrKylmW2ErUGFbZV0rYl09Y1tlXXx8Y1tlLTJdfHxjWzBdO3JldHVybiBmfX07Im1hcmdpbiIhPT1hJiYoZC5jc3NIb29rc1thK2JdLnNldD1XYil9KTtkLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYyxlLGYpe3ZhciBnLGg9e30sbT0wO2lmKEFycmF5LmlzQXJyYXkoZSkpe2Y9VWIoYyk7Zm9yKGc9ZS5sZW5ndGg7bTxnO20rKyloW2VbbV1dPWQuY3NzKGMsZVttXSwhMSxmKTtyZXR1cm4gaH1yZXR1cm4gdm9pZCAwIT09Zj9kLnN0eWxlKGMsZSxmKTpkLmNzcyhjLGUpfSxhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX19KTsoKGQuVHdlZW49emEpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6emEsaW5pdDpmdW5jdGlvbihhLGIsYyxlLGYsZyl7dGhpcy5lbGVtPWE7dGhpcy5wcm9wPWM7dGhpcy5lYXNpbmc9Znx8ZC5lYXNpbmcuX2RlZmF1bHQ7dGhpcy5vcHRpb25zPWI7dGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpO3RoaXMuZW5kPQplO3RoaXMudW5pdD1nfHwoZC5jc3NOdW1iZXJbY10\/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPXphLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTp6YS5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGIsYz16YS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9ZC5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOnphLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319KS5pbml0LnByb3RvdHlwZT0KemEucHJvdG90eXBlOyh6YS5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIDEhPT1hLmVsZW0ubm9kZVR5cGV8fG51bGwhPWEuZWxlbVthLnByb3BdJiZudWxsPT1hLmVsZW0uc3R5bGVbYS5wcm9wXT9hLmVsZW1bYS5wcm9wXTooYj1kLmNzcyhhLmVsZW0sYS5wcm9wLCIiKSkmJiJhdXRvIiE9PWI\/YjowfSxzZXQ6ZnVuY3Rpb24oYSl7ZC5meC5zdGVwW2EucHJvcF0\/ZC5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8IWQuY3NzSG9va3NbYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW0FiKGEucHJvcCldP2EuZWxlbVthLnByb3BdPWEubm93OmQuc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpfX19KS5zY3JvbGxUb3A9emEucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX07ZC5lYXNpbmc9CntsaW5lYXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHN3aW5nOmZ1bmN0aW9uKGEpe3JldHVybi41LU1hdGguY29zKGEqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn07ZC5meD16YS5wcm90b3R5cGUuaW5pdDtkLmZ4LnN0ZXA9e307dmFyIHNiLFhiLHFkPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxyZD0vcXVldWVIb29rcyQvO2QuQW5pbWF0aW9uPWQuZXh0ZW5kKHgse3R3ZWVuZXJzOnsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpO3JldHVybiBQYihjLmVsZW0sYSx5Yi5leGVjKGIpLGMpLGN9XX0sdHdlZW5lcjpmdW5jdGlvbihhLGIpe00oYSk\/KGI9YSxhPVsiKiJdKTphPWEubWF0Y2goTGEpO2Zvcih2YXIgYyxlPTAsZj1hLmxlbmd0aDtlPGY7ZSsrKWM9YVtlXSx4LnR3ZWVuZXJzW2NdPXgudHdlZW5lcnNbY118fFtdLHgudHdlZW5lcnNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyczpbZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoLAptLGwsdCx3PSJ3aWR0aCJpbiBifHwiaGVpZ2h0ImluIGIscj10aGlzLHo9e30sRD1hLnN0eWxlLEY9YS5ub2RlVHlwZSYmUWIoYSksTz1HLmdldChhLCJmeHNob3ciKTtmb3IoZSBpbiBjLnF1ZXVlfHwobnVsbD09KGg9ZC5fcXVldWVIb29rcyhhLCJmeCIpKS51bnF1ZXVlZCYmKGgudW5xdWV1ZWQ9MCxtPWguZW1wdHkuZmlyZSxoLmVtcHR5LmZpcmU9ZnVuY3Rpb24oKXtoLnVucXVldWVkfHxtKCl9KSxoLnVucXVldWVkKyssci5hbHdheXMoZnVuY3Rpb24oKXtyLmFsd2F5cyhmdW5jdGlvbigpe2gudW5xdWV1ZWQtLTtkLnF1ZXVlKGEsImZ4IikubGVuZ3RofHxoLmVtcHR5LmZpcmUoKX0pfSkpLGIpaWYoZj1iW2VdLHFkLnRlc3QoZikpe2lmKGRlbGV0ZSBiW2VdLGc9Z3x8InRvZ2dsZSI9PT1mLGY9PT0oRj8iaGlkZSI6InNob3ciKSl7aWYoInNob3ciIT09Znx8IU98fHZvaWQgMD09PU9bZV0pY29udGludWU7Rj0hMH16W2VdPU8mJk9bZV18fGQuc3R5bGUoYSxlKX1pZigoYj0hZC5pc0VtcHR5T2JqZWN0KGIpKXx8CiFkLmlzRW1wdHlPYmplY3QoeikpZm9yKGUgaW4gdyYmMT09PWEubm9kZVR5cGUmJihjLm92ZXJmbG93PVtELm92ZXJmbG93LEQub3ZlcmZsb3dYLEQub3ZlcmZsb3dZXSxudWxsPT0obD1PJiZPLmRpc3BsYXkpJiYobD1HLmdldChhLCJkaXNwbGF5IikpLCJub25lIj09PSh0PWQuY3NzKGEsImRpc3BsYXkiKSkmJihsP3Q9bDooJGEoW2FdLCEwKSxsPWEuc3R5bGUuZGlzcGxheXx8bCx0PWQuY3NzKGEsImRpc3BsYXkiKSwkYShbYV0pKSksKCJpbmxpbmUiPT09dHx8ImlubGluZS1ibG9jayI9PT10JiZudWxsIT1sKSYmIm5vbmUiPT09ZC5jc3MoYSwiZmxvYXQiKSYmKGJ8fChyLmRvbmUoZnVuY3Rpb24oKXtELmRpc3BsYXk9bH0pLG51bGw9PWwmJih0PUQuZGlzcGxheSxsPSJub25lIj09PXQ\/IiI6dCkpLEQuZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLGMub3ZlcmZsb3cmJihELm92ZXJmbG93PSJoaWRkZW4iLHIuYWx3YXlzKGZ1bmN0aW9uKCl7RC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdOwpELm92ZXJmbG93WD1jLm92ZXJmbG93WzFdO0Qub3ZlcmZsb3dZPWMub3ZlcmZsb3dbMl19KSksYj0hMSx6KWJ8fChPPyJoaWRkZW4iaW4gTyYmKEY9Ty5oaWRkZW4pOk89Ry5hY2Nlc3MoYSwiZnhzaG93Iix7ZGlzcGxheTpsfSksZyYmKE8uaGlkZGVuPSFGKSxGJiYkYShbYV0sITApLHIuZG9uZShmdW5jdGlvbigpe2ZvcihlIGluIEZ8fCRhKFthXSksRy5yZW1vdmUoYSwiZnhzaG93IikseilkLnN0eWxlKGEsZSx6W2VdKX0pKSxiPXUoRj9PW2VdOjAsZSxyKSxlIGluIE98fChPW2VdPWIuc3RhcnQsRiYmKGIuZW5kPWIuc3RhcnQsYi5zdGFydD0wKSl9XSxwcmVmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtiP3gucHJlZmlsdGVycy51bnNoaWZ0KGEpOngucHJlZmlsdGVycy5wdXNoKGEpfX0pO2Quc3BlZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPWEmJiJvYmplY3QiPT10eXBlb2YgYT9kLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6Y3x8IWMmJmJ8fE0oYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6YyYmCmJ8fGImJiFNKGIpJiZifTtyZXR1cm4gZC5meC5vZmY\/ZS5kdXJhdGlvbj0wOiJudW1iZXIiIT10eXBlb2YgZS5kdXJhdGlvbiYmKGUuZHVyYXRpb24gaW4gZC5meC5zcGVlZHM\/ZS5kdXJhdGlvbj1kLmZ4LnNwZWVkc1tlLmR1cmF0aW9uXTplLmR1cmF0aW9uPWQuZnguc3BlZWRzLl9kZWZhdWx0KSxudWxsIT1lLnF1ZXVlJiYhMCE9PWUucXVldWV8fChlLnF1ZXVlPSJmeCIpLGUub2xkPWUuY29tcGxldGUsZS5jb21wbGV0ZT1mdW5jdGlvbigpe00oZS5vbGQpJiZlLm9sZC5jYWxsKHRoaXMpO2UucXVldWUmJmQuZGVxdWV1ZSh0aGlzLGUucXVldWUpfSxlfTtkLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiB0aGlzLmZpbHRlcihRYikuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZSl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGY9ZC5pc0VtcHR5T2JqZWN0KGEpLGc9ZC5zcGVlZChiLGMsZSk7CmI9ZnVuY3Rpb24oKXt2YXIgaD14KHRoaXMsZC5leHRlbmQoe30sYSksZyk7KGZ8fEcuZ2V0KHRoaXMsImZpbmlzaCIpKSYmaC5zdG9wKCEwKX07cmV0dXJuIGIuZmluaXNoPWIsZnx8ITE9PT1nLnF1ZXVlP3RoaXMuZWFjaChiKTp0aGlzLnF1ZXVlKGcucXVldWUsYil9LHN0b3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPWZ1bmN0aW9uKGYpe3ZhciBnPWYuc3RvcDtkZWxldGUgZi5zdG9wO2coYyl9O3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGM9YixiPWEsYT12b2lkIDApLGImJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9ITAsZz1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixoPWQudGltZXJzLG09Ry5nZXQodGhpcyk7aWYoZyltW2ddJiZtW2ddLnN0b3AmJmUobVtnXSk7ZWxzZSBmb3IoZyBpbiBtKW1bZ10mJm1bZ10uc3RvcCYmcmQudGVzdChnKSYmZShtW2ddKTtmb3IoZz1oLmxlbmd0aDtnLS07KWhbZ10uZWxlbSE9PXRoaXN8fG51bGwhPQphJiZoW2ddLnF1ZXVlIT09YXx8KGhbZ10uYW5pbS5zdG9wKGMpLGY9ITEsaC5zcGxpY2UoZywxKSk7IWYmJmN8fGQuZGVxdWV1ZSh0aGlzLGEpfSl9LGZpbmlzaDpmdW5jdGlvbihhKXtyZXR1cm4hMSE9PWEmJihhPWF8fCJmeCIpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPUcuZ2V0KHRoaXMpLGM9YlthKyJxdWV1ZSJdLGU9YlthKyJxdWV1ZUhvb2tzIl0sZj1kLnRpbWVycyxnPWM\/Yy5sZW5ndGg6MDtiLmZpbmlzaD0hMDtkLnF1ZXVlKHRoaXMsYSxbXSk7ZSYmZS5zdG9wJiZlLnN0b3AuY2FsbCh0aGlzLCEwKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbT09PXRoaXMmJmZbZV0ucXVldWU9PT1hJiYoZltlXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxnO2UrKyljW2VdJiZjW2VdLmZpbmlzaCYmY1tlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYi5maW5pc2h9KX19KTtkLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsCmIpe3ZhciBjPWQuZm5bYl07ZC5mbltiXT1mdW5jdGlvbihlLGYsZyl7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09dHlwZW9mIGU\/Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKHRiKGIsITApLGUsZixnKX19KTtkLmVhY2goe3NsaWRlRG93bjp0Yigic2hvdyIpLHNsaWRlVXA6dGIoImhpZGUiKSxzbGlkZVRvZ2dsZTp0YigidG9nZ2xlIiksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihhLGIpe2QuZm5bYV09ZnVuY3Rpb24oYyxlLGYpe3JldHVybiB0aGlzLmFuaW1hdGUoYixjLGUsZil9fSk7ZC50aW1lcnM9W107ZC5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIGEsYj0wLGM9ZC50aW1lcnM7Zm9yKHNiPURhdGUubm93KCk7YjxjLmxlbmd0aDtiKyspKGE9Y1tiXSkoKXx8Y1tiXSE9PWF8fGMuc3BsaWNlKGItLSwxKTtjLmxlbmd0aHx8ZC5meC5zdG9wKCk7CnNiPXZvaWQgMH07ZC5meC50aW1lcj1mdW5jdGlvbihhKXtkLnRpbWVycy5wdXNoKGEpO2QuZnguc3RhcnQoKX07ZC5meC5pbnRlcnZhbD0xMztkLmZ4LnN0YXJ0PWZ1bmN0aW9uKCl7WGJ8fChYYj0hMCxDYigpKX07ZC5meC5zdG9wPWZ1bmN0aW9uKCl7WGI9bnVsbH07ZC5meC5zcGVlZHM9e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH07ZC5mbi5kZWxheT1mdW5jdGlvbihhLGIpe3JldHVybiBhPWQuZngmJmQuZnguc3BlZWRzW2FdfHxhLGI9Ynx8ImZ4Iix0aGlzLnF1ZXVlKGIsZnVuY3Rpb24oYyxlKXt2YXIgZj1uLnNldFRpbWVvdXQoYyxhKTtlLnN0b3A9ZnVuY3Rpb24oKXtuLmNsZWFyVGltZW91dChmKX19KX07dmFyIEliPUwuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxzZD1MLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEwuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpO0liLnR5cGU9ImNoZWNrYm94IjtOLmNoZWNrT249IiIhPT1JYi52YWx1ZTtOLm9wdFNlbGVjdGVkPQpzZC5zZWxlY3RlZDsoSWI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS52YWx1ZT0idCI7SWIudHlwZT0icmFkaW8iO04ucmFkaW9WYWx1ZT0idCI9PT1JYi52YWx1ZTt2YXIgSmI9ZC5leHByLmF0dHJIYW5kbGU7ZC5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWGEodGhpcyxkLmF0dHIsYSxiLDE8YXJndW1lbnRzLmxlbmd0aCl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2QucmVtb3ZlQXR0cih0aGlzLGEpfSl9fSk7ZC5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz1hLm5vZGVUeXBlO2lmKDMhPT1nJiY4IT09ZyYmMiE9PWcpcmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhLmdldEF0dHJpYnV0ZT9kLnByb3AoYSxiLGMpOigxPT09ZyYmZC5pc1hNTERvYyhhKXx8KGY9ZC5hdHRySG9va3NbYi50b0xvd2VyQ2FzZSgpXXx8KGQuZXhwci5tYXRjaC5ib29sLnRlc3QoYik\/dGQ6dm9pZCAwKSksCnZvaWQgMCE9PWM\/bnVsbD09PWM\/dm9pZCBkLnJlbW92ZUF0dHIoYSxiKTpmJiYic2V0ImluIGYmJnZvaWQgMCE9PShlPWYuc2V0KGEsYyxiKSk\/ZTooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTpmJiYiZ2V0ImluIGYmJm51bGwhPT0oZT1mLmdldChhLGIpKT9lOm51bGw9PShlPWQuZmluZC5hdHRyKGEsYikpP3ZvaWQgMDplKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oYSxiKXtpZighTi5yYWRpb1ZhbHVlJiYicmFkaW8iPT09YiYmWChhLCJpbnB1dCIpKXt2YXIgYz1hLnZhbHVlO3JldHVybiBhLnNldEF0dHJpYnV0ZSgidHlwZSIsYiksYyYmKGEudmFsdWU9YyksYn19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhLGIpe3ZhciBjPTAsZT1iJiZiLm1hdGNoKExhKTtpZihlJiYxPT09YS5ub2RlVHlwZSlmb3IoO2I9ZVtjKytdOylhLnJlbW92ZUF0dHJpYnV0ZShiKX19KTt2YXIgdGQ9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuITE9PT1iP2QucmVtb3ZlQXR0cihhLApjKTphLnNldEF0dHJpYnV0ZShjLGMpLGN9fTtkLmVhY2goZC5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKC9cdysvZyksZnVuY3Rpb24oYSxiKXt2YXIgYz1KYltiXXx8ZC5maW5kLmF0dHI7SmJbYl09ZnVuY3Rpb24oZSxmLGcpe3ZhciBoLG0sbD1mLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGd8fChtPUpiW2xdLEpiW2xdPWgsaD1udWxsIT1jKGUsZixnKT9sOm51bGwsSmJbbF09bSksaH19KTt2YXIgdWQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSx2ZD0vXig\/OmF8YXJlYSkkL2k7ZC5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWGEodGhpcyxkLnByb3AsYSxiLDE8YXJndW1lbnRzLmxlbmd0aCl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW2QucHJvcEZpeFthXXx8YV19KX19KTtkLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPWEubm9kZVR5cGU7CmlmKDMhPT1nJiY4IT09ZyYmMiE9PWcpcmV0dXJuIDE9PT1nJiZkLmlzWE1MRG9jKGEpfHwoYj1kLnByb3BGaXhbYl18fGIsZj1kLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9mJiYic2V0ImluIGYmJnZvaWQgMCE9PShlPWYuc2V0KGEsYyxiKSk\/ZTphW2JdPWM6ZiYmImdldCJpbiBmJiZudWxsIT09KGU9Zi5nZXQoYSxiKSk\/ZTphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9ZC5maW5kLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTp1ZC50ZXN0KGEubm9kZU5hbWUpfHx2ZC50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY\/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KTtOLm9wdFNlbGVjdGVkfHwoZC5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXthPWEucGFyZW50Tm9kZTtyZXR1cm4gYSYmYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwKbnVsbH0sc2V0OmZ1bmN0aW9uKGEpe2E9YS5wYXJlbnROb2RlO2EmJihhLnNlbGVjdGVkSW5kZXgsYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCl9fSk7ZC5lYWNoKCJ0YWJJbmRleCByZWFkT25seSBtYXhMZW5ndGggY2VsbFNwYWNpbmcgY2VsbFBhZGRpbmcgcm93U3BhbiBjb2xTcGFuIHVzZU1hcCBmcmFtZUJvcmRlciBjb250ZW50RWRpdGFibGUiLnNwbGl0KCIgIiksZnVuY3Rpb24oKXtkLnByb3BGaXhbdGhpcy50b0xvd2VyQ2FzZSgpXT10aGlzfSk7ZC5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGcsaDtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obSl7ZCh0aGlzKS5hZGRDbGFzcyhhLmNhbGwodGhpcyxtLEgodGhpcykpKX0pOihiPVAoYSkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihlPUgodGhpcyksYz0xPT09dGhpcy5ub2RlVHlwZSYmIiAiK0MoZSkrIiAiKXtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKWY9CmJbZ10sMD5jLmluZGV4T2YoIiAiK2YrIiAiKSYmKGMrPWYrIiAiKTtoPUMoYyk7ZSE9PWgmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsaCl9fSk6dGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihtKXtkKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLG0sSCh0aGlzKSkpfSk6YXJndW1lbnRzLmxlbmd0aD8oYj1QKGEpKS5sZW5ndGg\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZT1IKHRoaXMpLGM9MT09PXRoaXMubm9kZVR5cGUmJiIgIitDKGUpKyIgIil7Zm9yKGc9MDtnPGIubGVuZ3RoO2crKylmb3IoZj1iW2ddOy0xPGMuaW5kZXhPZigiICIrZisiICIpOyljPWMucmVwbGFjZSgiICIrZisiICIsIiAiKTtoPUMoYyk7ZSE9PWgmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsaCl9fSk6dGhpczp0aGlzLmF0dHIoImNsYXNzIiwiIil9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGEsYil7dmFyIGMsCmUsZixnLGg9dHlwZW9mIGEsbT0ic3RyaW5nIj09PWh8fEFycmF5LmlzQXJyYXkoYSk7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKGwpe2QodGhpcykudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMsbCxIKHRoaXMpLGIpLGIpfSk6ImJvb2xlYW4iPT10eXBlb2YgYiYmbT9iP3RoaXMuYWRkQ2xhc3MoYSk6dGhpcy5yZW1vdmVDbGFzcyhhKTooYz1QKGEpLHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKG0pZm9yKGc9ZCh0aGlzKSxmPTA7ZjxjLmxlbmd0aDtmKyspZT1jW2ZdLGcuaGFzQ2xhc3MoZSk\/Zy5yZW1vdmVDbGFzcyhlKTpnLmFkZENsYXNzKGUpO2Vsc2Ugdm9pZCAwIT09YSYmImJvb2xlYW4iIT09aHx8KChlPUgodGhpcykpJiZHLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWE\/IiI6Ry5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSkpfSxoYXNDbGFzczpmdW5jdGlvbihhKXt2YXIgYiwKYz0wO2ZvcihhPSIgIithKyIgIjtiPXRoaXNbYysrXTspaWYoMT09PWIubm9kZVR5cGUmJi0xPCgiICIrQyhIKGIpKSsiICIpLmluZGV4T2YoYSkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHdkPS9cci9nO2QuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGY9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1NKGEpLHRoaXMuZWFjaChmdW5jdGlvbihnKXt2YXIgaDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PShoPWU\/YS5jYWxsKHRoaXMsZyxkKHRoaXMpLnZhbCgpKTphKT9oPSIiOiJudW1iZXIiPT10eXBlb2YgaD9oKz0iIjpBcnJheS5pc0FycmF5KGgpJiYoaD1kLm1hcChoLGZ1bmN0aW9uKG0pe3JldHVybiBudWxsPT1tPyIiOm0rIiJ9KSksKGI9ZC52YWxIb29rc1t0aGlzLnR5cGVdfHxkLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsaCwidmFsdWUiKXx8KHRoaXMudmFsdWU9CmgpKX0pKTpmPyhiPWQudmFsSG9va3NbZi50eXBlXXx8ZC52YWxIb29rc1tmLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmImdldCJpbiBiJiZ2b2lkIDAhPT0oYz1iLmdldChmLCJ2YWx1ZSIpKT9jOiJzdHJpbmciPT10eXBlb2YoYz1mLnZhbHVlKT9jLnJlcGxhY2Uod2QsIiIpOm51bGw9PWM\/IiI6Yzp2b2lkIDB9fSk7ZC5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbihhKXt2YXIgYj1kLmZpbmQuYXR0cihhLCJ2YWx1ZSIpO3JldHVybiBudWxsIT1iP2I6QyhkLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlPWEub3B0aW9ucyxmPWEuc2VsZWN0ZWRJbmRleCxnPSJzZWxlY3Qtb25lIj09PWEudHlwZSxoPWc\/bnVsbDpbXSxtPWc\/ZisxOmUubGVuZ3RoO2ZvcihjPTA+Zj9tOmc\/ZjowO2M8bTtjKyspaWYoISghKGI9ZVtjXSkuc2VsZWN0ZWQmJmMhPT1mfHxiLmRpc2FibGVkfHxiLnBhcmVudE5vZGUuZGlzYWJsZWQmJlgoYi5wYXJlbnROb2RlLAoib3B0Z3JvdXAiKSkpe2lmKGE9ZChiKS52YWwoKSxnKXJldHVybiBhO2gucHVzaChhKX1yZXR1cm4gaH0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmPWEub3B0aW9ucztiPWQubWFrZUFycmF5KGIpO2Zvcih2YXIgZz1mLmxlbmd0aDtnLS07KSgoZT1mW2ddKS5zZWxlY3RlZD0tMTxkLmluQXJyYXkoZC52YWxIb29rcy5vcHRpb24uZ2V0KGUpLGIpKSYmKGM9ITApO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxifX19fSk7ZC5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7ZC52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7aWYoQXJyYXkuaXNBcnJheShiKSlyZXR1cm4gYS5jaGVja2VkPS0xPGQuaW5BcnJheShkKGEpLnZhbCgpLGIpfX07Ti5jaGVja09ufHwoZC52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBLYj1uLmxvY2F0aW9uLApEYz1EYXRlLm5vdygpLGhjPS9cPy87ZC5wYXJzZVhNTD1mdW5jdGlvbihhKXt2YXIgYjtpZighYXx8InN0cmluZyIhPXR5cGVvZiBhKXJldHVybiBudWxsO3RyeXt2YXIgYz0obmV3IG4uRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoYSwidGV4dC94bWwiKX1jYXRjaChlKXt9cmV0dXJuIGI9YyYmYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyc2VyZXJyb3IiKVswXSxjJiYhYnx8ZC5lcnJvcigiSW52YWxpZCBYTUw6ICIrKGI\/ZC5tYXAoYi5jaGlsZE5vZGVzLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRleHRDb250ZW50fSkuam9pbigiXG4iKTphKSksY307dmFyIEVjPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxGYz1mdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpfTtkLmV4dGVuZChkLmV2ZW50LHt0cmlnZ2VyOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmLGcsaCxtLGwsdCx3PVtjfHxMXSxyPUZiLmNhbGwoYSwidHlwZSIpP2EudHlwZTphLHo9RmIuY2FsbChhLAoibmFtZXNwYWNlIik\/YS5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihmPXQ9Zz1jPWN8fEwsMyE9PWMubm9kZVR5cGUmJjghPT1jLm5vZGVUeXBlJiYhRWMudGVzdChyK2QuZXZlbnQudHJpZ2dlcmVkKSYmKC0xPHIuaW5kZXhPZigiLiIpJiYocj0oej1yLnNwbGl0KCIuIikpLnNoaWZ0KCksei5zb3J0KCkpLGg9MD5yLmluZGV4T2YoIjoiKSYmIm9uIityLChhPWFbZC5leHBhbmRvXT9hOm5ldyBkLkV2ZW50KHIsIm9iamVjdCI9PXR5cGVvZiBhJiZhKSkuaXNUcmlnZ2VyPWU\/MjozLGEubmFtZXNwYWNlPXouam9pbigiLiIpLGEucm5hbWVzcGFjZT1hLm5hbWVzcGFjZT9uZXcgUmVnRXhwKCIoXnxcXC4pIit6LmpvaW4oIlxcLig\/Oi4qXFwufCkiKSsiKFxcLnwkKSIpOm51bGwsYS5yZXN1bHQ9dm9pZCAwLGEudGFyZ2V0fHwoYS50YXJnZXQ9YyksYj1udWxsPT1iP1thXTpkLm1ha2VBcnJheShiLFthXSksbD1kLmV2ZW50LnNwZWNpYWxbcl18fHt9LGV8fCFsLnRyaWdnZXJ8fCExIT09CmwudHJpZ2dlci5hcHBseShjLGIpKSl7aWYoIWUmJiFsLm5vQnViYmxlJiYha2IoYykpe3ZhciBEPWwuZGVsZWdhdGVUeXBlfHxyO2ZvcihFYy50ZXN0KEQrcil8fChmPWYucGFyZW50Tm9kZSk7ZjtmPWYucGFyZW50Tm9kZSl3LnB1c2goZiksZz1mO2c9PT0oYy5vd25lckRvY3VtZW50fHxMKSYmdy5wdXNoKGcuZGVmYXVsdFZpZXd8fGcucGFyZW50V2luZG93fHxuKX1mb3Ioej0wOyhmPXdbeisrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KXQ9ZixhLnR5cGU9MTx6P0Q6bC5iaW5kVHlwZXx8ciwobT0oRy5nZXQoZiwiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2EudHlwZV0mJkcuZ2V0KGYsImhhbmRsZSIpKSYmbS5hcHBseShmLGIpLChtPWgmJmZbaF0pJiZtLmFwcGx5JiZHYihmKSYmKGEucmVzdWx0PW0uYXBwbHkoZixiKSwhMT09PWEucmVzdWx0JiZhLnByZXZlbnREZWZhdWx0KCkpO3JldHVybiBhLnR5cGU9cixlfHxhLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwKbC5fZGVmYXVsdCYmITEhPT1sLl9kZWZhdWx0LmFwcGx5KHcucG9wKCksYil8fCFHYihjKXx8aCYmTShjW3JdKSYmIWtiKGMpJiYoKGc9Y1toXSkmJihjW2hdPW51bGwpLGQuZXZlbnQudHJpZ2dlcmVkPXIsYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZ0LmFkZEV2ZW50TGlzdGVuZXIocixGYyksY1tyXSgpLGEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHIsRmMpLGQuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxnJiYoY1toXT1nKSksYS5yZXN1bHR9fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1kLmV4dGVuZChuZXcgZC5FdmVudCxjLHt0eXBlOmEsaXNTaW11bGF0ZWQ6ITB9KTtkLmV2ZW50LnRyaWdnZXIoYSxudWxsLGIpfX0pO2QuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz0KdGhpc1swXTtpZihjKXJldHVybiBkLmV2ZW50LnRyaWdnZXIoYSxiLGMsITApfX0pO3ZhciBVYz0vXFtcXSQvLEdjPS9ccj9cbi9nLHhkPS9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSx5ZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7ZC5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGU9W10sZj1mdW5jdGlvbihnLGgpe2g9TShoKT9oKCk6aDtlW2UubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1oPyIiOmgpfTtpZihudWxsPT1hKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoYSl8fGEuanF1ZXJ5JiYhZC5pc1BsYWluT2JqZWN0KGEpKWQuZWFjaChhLGZ1bmN0aW9uKCl7Zih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihjIGluIGEpZWEoYyxhW2NdLGIsZik7cmV0dXJuIGUuam9pbigiJiIpfTtkLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGQucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sCnNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGE9ZC5wcm9wKHRoaXMsImVsZW1lbnRzIik7cmV0dXJuIGE\/ZC5tYWtlQXJyYXkoYSk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigpe3ZhciBhPXRoaXMudHlwZTtyZXR1cm4gdGhpcy5uYW1lJiYhZCh0aGlzKS5pcygiOmRpc2FibGVkIikmJnlkLnRlc3QodGhpcy5ub2RlTmFtZSkmJiF4ZC50ZXN0KGEpJiYodGhpcy5jaGVja2VkfHwhSGIudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXthPWQodGhpcykudmFsKCk7cmV0dXJuIG51bGw9PWE\/bnVsbDpBcnJheS5pc0FycmF5KGEpP2QubWFwKGEsZnVuY3Rpb24oYyl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmMucmVwbGFjZShHYywiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoR2MsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgemQ9LyUyMC9nLEFkPS8jLiokLyxCZD0vKFs\/Jl0pXz1bXiZdKi8sQ2Q9L14oLio\/KTpbIFx0XSooW15cclxuXSopJC9nbSwKRGQ9L14oPzpHRVR8SEVBRCkkLyxFZD0vXlwvXC8vLEhjPXt9LGNjPXt9LEljPSIqLyIuY29uY2F0KCIqIiksaWM9TC5jcmVhdGVFbGVtZW50KCJhIik7aWMuaHJlZj1LYi5ocmVmO2QuZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4U2V0dGluZ3M6e3VybDpLYi5ocmVmLHR5cGU6IkdFVCIsaXNMb2NhbDovXig\/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLy50ZXN0KEtiLnByb3RvY29sKSxnbG9iYWw6ITAscHJvY2Vzc0RhdGE6ITAsYXN5bmM6ITAsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIsYWNjZXB0czp7IioiOkljLHRleHQ6InRleHQvcGxhaW4iLGh0bWw6InRleHQvaHRtbCIseG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQifSxjb250ZW50czp7eG1sOi9cYnhtbFxiLywKaHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6ZC5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/aGIoaGIoYSxkLmFqYXhTZXR0aW5ncyksYik6aGIoZC5hamF4U2V0dGluZ3MsYSl9LGFqYXhQcmVmaWx0ZXI6UWEoSGMpLGFqYXhUcmFuc3BvcnQ6UWEoY2MpLGFqYXg6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKFMsaGEsaWIsWil7dmFyIHJhLHZhLGthLE1hLHRhLFc9aGE7S3x8KEs9ITAsbSYmbi5jbGVhclRpbWVvdXQobSksZT12b2lkIDAsZz1afHwiIixRLnJlYWR5U3RhdGU9MDxTPzQ6MCxyYT0yMDA8PVMmJjMwMD5TfHwKMzA0PT09UyxpYiYmKE1hPWZ1bmN0aW9uKGZhLERhLGRiKXtmb3IodmFyIFZhLHVhLFksbGEsSWE9ZmEuY29udGVudHMsbWE9ZmEuZGF0YVR5cGVzOyIqIj09PW1hWzBdOyltYS5zaGlmdCgpLHZvaWQgMD09PVZhJiYoVmE9ZmEubWltZVR5cGV8fERhLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYoVmEpZm9yKHVhIGluIElhKWlmKElhW3VhXSYmSWFbdWFdLnRlc3QoVmEpKXttYS51bnNoaWZ0KHVhKTticmVha31pZihtYVswXWluIGRiKVk9bWFbMF07ZWxzZXtmb3IodWEgaW4gZGIpe2lmKCFtYVswXXx8ZmEuY29udmVydGVyc1t1YSsiICIrbWFbMF1dKXtZPXVhO2JyZWFrfWxhfHwobGE9dWEpfVk9WXx8bGF9aWYoWSlyZXR1cm4gWSE9PW1hWzBdJiZtYS51bnNoaWZ0KFkpLGRiW1ldfShyLFEsaWIpKSwhcmEmJi0xPGQuaW5BcnJheSgic2NyaXB0IixyLmRhdGFUeXBlcykmJjA+ZC5pbkFycmF5KCJqc29uIixyLmRhdGFUeXBlcykmJihyLmNvbnZlcnRlcnNbInRleHQgc2NyaXB0Il09CmZ1bmN0aW9uKCl7fSksTWE9ZnVuY3Rpb24oZmEsRGEsZGIsVmEpe3ZhciB1YSxZLGxhLElhLG1hLEhhPXt9LHZiPWZhLmRhdGFUeXBlcy5zbGljZSgpO2lmKHZiWzFdKWZvcihsYSBpbiBmYS5jb252ZXJ0ZXJzKUhhW2xhLnRvTG93ZXJDYXNlKCldPWZhLmNvbnZlcnRlcnNbbGFdO2ZvcihZPXZiLnNoaWZ0KCk7WTspaWYoZmEucmVzcG9uc2VGaWVsZHNbWV0mJihkYltmYS5yZXNwb25zZUZpZWxkc1tZXV09RGEpLCFtYSYmVmEmJmZhLmRhdGFGaWx0ZXImJihEYT1mYS5kYXRhRmlsdGVyKERhLGZhLmRhdGFUeXBlKSksbWE9WSxZPXZiLnNoaWZ0KCkpaWYoIioiPT09WSlZPW1hO2Vsc2UgaWYoIioiIT09bWEmJm1hIT09WSl7aWYoIShsYT1IYVttYSsiICIrWV18fEhhWyIqICIrWV0pKWZvcih1YSBpbiBIYSlpZigoSWE9dWEuc3BsaXQoIiAiKSlbMV09PT1ZJiYobGE9SGFbbWErIiAiK0lhWzBdXXx8SGFbIiogIitJYVswXV0pKXshMD09PWxhP2xhPUhhW3VhXTohMCE9PUhhW3VhXSYmKFk9CklhWzBdLHZiLnVuc2hpZnQoSWFbMV0pKTticmVha31pZighMCE9PWxhKWlmKGxhJiZmYVsidGhyb3dzIl0pRGE9bGEoRGEpO2Vsc2UgdHJ5e0RhPWxhKERhKX1jYXRjaChmYyl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6bGE\/ZmM6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK21hKyIgdG8gIitZfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOkRhfX0ocixNYSxRLHJhKSxyYT8oci5pZk1vZGlmaWVkJiYoKHRhPVEuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSkmJihkLmxhc3RNb2RpZmllZFtmXT10YSksKHRhPVEuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSkmJihkLmV0YWdbZl09dGEpKSwyMDQ9PT1TfHwiSEVBRCI9PT1yLnR5cGU\/Vz0ibm9jb250ZW50IjozMDQ9PT1TP1c9Im5vdG1vZGlmaWVkIjooVz1NYS5zdGF0ZSx2YT1NYS5kYXRhLHJhPSEoa2E9TWEuZXJyb3IpKSk6KGthPVcsIVMmJld8fChXPSJlcnJvciIsMD5TJiYoUz0wKSkpLFEuc3RhdHVzPQpTLFEuc3RhdHVzVGV4dD0oaGF8fFcpKyIiLHJhP0YucmVzb2x2ZVdpdGgoeixbdmEsVyxRXSk6Ri5yZWplY3RXaXRoKHosW1EsVyxrYV0pLFEuc3RhdHVzQ29kZShhYSksYWE9dm9pZCAwLGwmJkQudHJpZ2dlcihyYT8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFtRLHIscmE\/dmE6a2FdKSxPLmZpcmVXaXRoKHosW1EsV10pLGwmJihELnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW1Escl0pLC0tZC5hY3RpdmV8fGQuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfSJvYmplY3QiPT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCk7Yj1ifHx7fTt2YXIgZSxmLGcsaCxtLGwsdCx3LHI9ZC5hamF4U2V0dXAoe30sYiksej1yLmNvbnRleHR8fHIsRD1yLmNvbnRleHQmJih6Lm5vZGVUeXBlfHx6LmpxdWVyeSk\/ZCh6KTpkLmV2ZW50LEY9ZC5EZWZlcnJlZCgpLE89ZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksYWE9ci5zdGF0dXNDb2RlfHx7fSxHYT17fSxxYT17fSxTYT0iY2FuY2VsZWQiLFE9CntyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oUyl7dmFyIGhhO2lmKEspe2lmKCFoKWZvcihoPXt9O2hhPUNkLmV4ZWMoZyk7KWhbaGFbMV0udG9Mb3dlckNhc2UoKSsiICJdPShoW2hhWzFdLnRvTG93ZXJDYXNlKCkrIiAiXXx8W10pLmNvbmNhdChoYVsyXSk7aGE9aFtTLnRvTG93ZXJDYXNlKCkrIiAiXX1yZXR1cm4gbnVsbD09aGE\/bnVsbDpoYS5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gSz9nOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oUyxoYSl7cmV0dXJuIG51bGw9PUsmJihTPXFhW1MudG9Mb3dlckNhc2UoKV09cWFbUy50b0xvd2VyQ2FzZSgpXXx8UyxHYVtTXT1oYSksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihTKXtyZXR1cm4gbnVsbD09SyYmKHIubWltZVR5cGU9UyksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihTKXt2YXIgaGE7aWYoUylpZihLKVEuYWx3YXlzKFNbUS5zdGF0dXNdKTsKZWxzZSBmb3IoaGEgaW4gUylhYVtoYV09W2FhW2hhXSxTW2hhXV07cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKFMpe1M9U3x8U2E7cmV0dXJuIGUmJmUuYWJvcnQoUyksYygwLFMpLHRoaXN9fTtpZihGLnByb21pc2UoUSksci51cmw9KChhfHxyLnVybHx8S2IuaHJlZikrIiIpLnJlcGxhY2UoRWQsS2IucHJvdG9jb2wrIi8vIiksci50eXBlPWIubWV0aG9kfHxiLnR5cGV8fHIubWV0aG9kfHxyLnR5cGUsci5kYXRhVHlwZXM9KHIuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChMYSl8fFsiIl0sbnVsbD09ci5jcm9zc0RvbWFpbil7YT1MLmNyZWF0ZUVsZW1lbnQoImEiKTt0cnl7YS5ocmVmPXIudXJsLGEuaHJlZj1hLmhyZWYsci5jcm9zc0RvbWFpbj1pYy5wcm90b2NvbCsiLy8iK2ljLmhvc3QhPWEucHJvdG9jb2wrIi8vIithLmhvc3R9Y2F0Y2goUyl7ci5jcm9zc0RvbWFpbj0hMH19aWYoci5kYXRhJiZyLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIHIuZGF0YSYmCihyLmRhdGE9ZC5wYXJhbShyLmRhdGEsci50cmFkaXRpb25hbCkpLEViKEhjLHIsYixRKSxLKXJldHVybiBRO2Zvcih0IGluKGw9ZC5ldmVudCYmci5nbG9iYWwpJiYwPT1kLmFjdGl2ZSsrJiZkLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHIudHlwZT1yLnR5cGUudG9VcHBlckNhc2UoKSxyLmhhc0NvbnRlbnQ9IURkLnRlc3Qoci50eXBlKSxmPXIudXJsLnJlcGxhY2UoQWQsIiIpLHIuaGFzQ29udGVudD9yLmRhdGEmJnIucHJvY2Vzc0RhdGEmJjA9PT0oci5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYoci5kYXRhPXIuZGF0YS5yZXBsYWNlKHpkLCIrIikpOih3PXIudXJsLnNsaWNlKGYubGVuZ3RoKSxyLmRhdGEmJihyLnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHIuZGF0YSkmJihmKz0oaGMudGVzdChmKT8iJiI6Ij8iKStyLmRhdGEsZGVsZXRlIHIuZGF0YSksITE9PT1yLmNhY2hlJiYoZj1mLnJlcGxhY2UoQmQsCiIkMSIpLHc9KGhjLnRlc3QoZik\/IiYiOiI\/IikrIl89IitEYysrICt3KSxyLnVybD1mK3cpLHIuaWZNb2RpZmllZCYmKGQubGFzdE1vZGlmaWVkW2ZdJiZRLnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixkLmxhc3RNb2RpZmllZFtmXSksZC5ldGFnW2ZdJiZRLnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLGQuZXRhZ1tmXSkpLChyLmRhdGEmJnIuaGFzQ29udGVudCYmITEhPT1yLmNvbnRlbnRUeXBlfHxiLmNvbnRlbnRUeXBlKSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHIuY29udGVudFR5cGUpLFEuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixyLmRhdGFUeXBlc1swXSYmci5hY2NlcHRzW3IuZGF0YVR5cGVzWzBdXT9yLmFjY2VwdHNbci5kYXRhVHlwZXNbMF1dKygiKiIhPT1yLmRhdGFUeXBlc1swXT8iLCAiK0ljKyI7IHE9MC4wMSI6IiIpOnIuYWNjZXB0c1siKiJdKSxyLmhlYWRlcnMpUS5zZXRSZXF1ZXN0SGVhZGVyKHQsci5oZWFkZXJzW3RdKTsKaWYoci5iZWZvcmVTZW5kJiYoITE9PT1yLmJlZm9yZVNlbmQuY2FsbCh6LFEscil8fEspKXJldHVybiBRLmFib3J0KCk7aWYoU2E9ImFib3J0IixPLmFkZChyLmNvbXBsZXRlKSxRLmRvbmUoci5zdWNjZXNzKSxRLmZhaWwoci5lcnJvciksZT1FYihjYyxyLGIsUSkpe2lmKFEucmVhZHlTdGF0ZT0xLGwmJkQudHJpZ2dlcigiYWpheFNlbmQiLFtRLHJdKSxLKXJldHVybiBRO3IuYXN5bmMmJjA8ci50aW1lb3V0JiYobT1uLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtRLmFib3J0KCJ0aW1lb3V0Iil9LHIudGltZW91dCkpO3RyeXt2YXIgSz0hMTtlLnNlbmQoR2EsYyl9Y2F0Y2goUyl7aWYoSyl0aHJvdyBTO2MoLTEsUyl9fWVsc2UgYygtMSwiTm8gVHJhbnNwb3J0Iik7cmV0dXJuIFF9LGdldEpTT046ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkLmdldChhLGIsYywianNvbiIpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZC5nZXQoYSx2b2lkIDAsYiwic2NyaXB0Iil9fSk7ZC5lYWNoKFsiZ2V0IiwKInBvc3QiXSxmdW5jdGlvbihhLGIpe2RbYl09ZnVuY3Rpb24oYyxlLGYsZyl7cmV0dXJuIE0oZSkmJihnPWd8fGYsZj1lLGU9dm9pZCAwKSxkLmFqYXgoZC5leHRlbmQoe3VybDpjLHR5cGU6YixkYXRhVHlwZTpnLGRhdGE6ZSxzdWNjZXNzOmZ9LGQuaXNQbGFpbk9iamVjdChjKSYmYykpfX0pO2QuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpJiYoYS5jb250ZW50VHlwZT1hLmhlYWRlcnNbYl18fCIiKX0pO2QuX2V2YWxVcmw9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkLmFqYXgoe3VybDphLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe2QuZ2xvYmFsRXZhbChlLGIsYyl9fSl9O2QuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGEpe3ZhciBiOwpyZXR1cm4gdGhpc1swXSYmKE0oYSkmJihhPWEuY2FsbCh0aGlzWzBdKSksYj1kKGEsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSghMCksdGhpc1swXS5wYXJlbnROb2RlJiZiLmluc2VydEJlZm9yZSh0aGlzWzBdKSxiLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYz10aGlzO2MuZmlyc3RFbGVtZW50Q2hpbGQ7KWM9Yy5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gY30pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihiKXtkKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1kKHRoaXMpLGM9Yi5jb250ZW50cygpO2MubGVuZ3RoP2Mud3JhcEFsbChhKTpiLmFwcGVuZChhKX0pfSx3cmFwOmZ1bmN0aW9uKGEpe3ZhciBiPU0oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXtkKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcywKYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnBhcmVudChhKS5ub3QoImJvZHkiKS5lYWNoKGZ1bmN0aW9uKCl7ZCh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSksdGhpc319KTtkLmV4cHIucHNldWRvcy5oaWRkZW49ZnVuY3Rpb24oYSl7cmV0dXJuIWQuZXhwci5wc2V1ZG9zLnZpc2libGUoYSl9O2QuZXhwci5wc2V1ZG9zLnZpc2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuISEoYS5vZmZzZXRXaWR0aHx8YS5vZmZzZXRIZWlnaHR8fGEuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpfTtkLmFqYXhTZXR0aW5ncy54aHI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBuLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGEpe319O3ZhciBGZD17MDoyMDAsMTIyMzoyMDR9LExiPWQuYWpheFNldHRpbmdzLnhocigpO04uY29ycz0hIUxiJiYid2l0aENyZWRlbnRpYWxzImluIExiO04uYWpheD1MYj0hIUxiO2QuYWpheFRyYW5zcG9ydChmdW5jdGlvbihhKXt2YXIgYiwKYztpZihOLmNvcnN8fExiJiYhYS5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe3ZhciBnLGg9YS54aHIoKTtpZihoLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZyBpbiBhLnhockZpZWxkcyloW2ddPWEueGhyRmllbGRzW2ddO2ZvcihnIGluIGEubWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGVbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGVbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKSxlKWguc2V0UmVxdWVzdEhlYWRlcihnLGVbZ10pO2I9ZnVuY3Rpb24obSl7cmV0dXJuIGZ1bmN0aW9uKCl7YiYmKGI9Yz1oLm9ubG9hZD1oLm9uZXJyb3I9aC5vbmFib3J0PWgub250aW1lb3V0PWgub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsImFib3J0Ij09PW0\/aC5hYm9ydCgpOiJlcnJvciI9PT1tPwoibnVtYmVyIiE9dHlwZW9mIGguc3RhdHVzP2YoMCwiZXJyb3IiKTpmKGguc3RhdHVzLGguc3RhdHVzVGV4dCk6ZihGZFtoLnN0YXR1c118fGguc3RhdHVzLGguc3RhdHVzVGV4dCwidGV4dCIhPT0oaC5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2YgaC5yZXNwb25zZVRleHQ\/e2JpbmFyeTpoLnJlc3BvbnNlfTp7dGV4dDpoLnJlc3BvbnNlVGV4dH0saC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX07aC5vbmxvYWQ9YigpO2M9aC5vbmVycm9yPWgub250aW1lb3V0PWIoImVycm9yIik7dm9pZCAwIT09aC5vbmFib3J0P2gub25hYm9ydD1jOmgub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWgucmVhZHlTdGF0ZSYmbi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YiYmYygpfSl9O2I9YigiYWJvcnQiKTt0cnl7aC5zZW5kKGEuaGFzQ29udGVudCYmYS5kYXRhfHxudWxsKX1jYXRjaChtKXtpZihiKXRocm93IG07fX0sYWJvcnQ6ZnVuY3Rpb24oKXtiJiYKYigpfX19KTtkLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oYSl7YS5jcm9zc0RvbWFpbiYmKGEuY29udGVudHMuc2NyaXB0PSExKX0pO2QuYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBkLmdsb2JhbEV2YWwoYSksYX19fSk7ZC5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKTthLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiKX0pO2QuYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXt2YXIgYixjO2lmKGEuY3Jvc3NEb21haW58fGEuc2NyaXB0QXR0cnMpcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSwKZil7Yj1kKCI8c2NyaXB0PiIpLmF0dHIoYS5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6YS5zY3JpcHRDaGFyc2V0LHNyYzphLnVybH0pLm9uKCJsb2FkIGVycm9yIixjPWZ1bmN0aW9uKGcpe2IucmVtb3ZlKCk7Yz1udWxsO2cmJmYoImVycm9yIj09PWcudHlwZT80MDQ6MjAwLGcudHlwZSl9KTtMLmhlYWQuYXBwZW5kQ2hpbGQoYlswXSl9LGFib3J0OmZ1bmN0aW9uKCl7YyYmYygpfX19KTt2YXIgSmMsS2M9W10samM9Lyg9KVw\/KD89JnwkKXxcP1w\/LztkLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9S2MucG9wKCl8fGQuZXhwYW5kbysiXyIrRGMrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pO2QuYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPSExIT09YS5qc29ucCYmKGpjLnRlc3QoYS51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYS5kYXRhJiYwPT09KGEuY29udGVudFR5cGV8fAoiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJmpjLnRlc3QoYS5kYXRhKSYmImRhdGEiKTtpZihofHwianNvbnAiPT09YS5kYXRhVHlwZXNbMF0pcmV0dXJuIGU9YS5qc29ucENhbGxiYWNrPU0oYS5qc29ucENhbGxiYWNrKT9hLmpzb25wQ2FsbGJhY2soKTphLmpzb25wQ2FsbGJhY2ssaD9hW2hdPWFbaF0ucmVwbGFjZShqYywiJDEiK2UpOiExIT09YS5qc29ucCYmKGEudXJsKz0oaGMudGVzdChhLnVybCk\/IiYiOiI\/IikrYS5qc29ucCsiPSIrZSksYS5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdPWZ1bmN0aW9uKCl7cmV0dXJuIGd8fGQuZXJyb3IoZSsiIHdhcyBub3QgY2FsbGVkIiksZ1swXX0sYS5kYXRhVHlwZXNbMF09Impzb24iLGY9bltlXSxuW2VdPWZ1bmN0aW9uKCl7Zz1hcmd1bWVudHN9LGMuYWx3YXlzKGZ1bmN0aW9uKCl7dm9pZCAwPT09Zj9kKG4pLnJlbW92ZVByb3AoZSk6bltlXT1mO2FbZV0mJihhLmpzb25wQ2FsbGJhY2s9Yi5qc29ucENhbGxiYWNrLApLYy5wdXNoKGUpKTtnJiZNKGYpJiZmKGdbMF0pO2c9Zj12b2lkIDB9KSwic2NyaXB0In0pO04uY3JlYXRlSFRNTERvY3VtZW50PSgoSmM9TC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1KYy5jaGlsZE5vZGVzLmxlbmd0aCk7ZC5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiJzdHJpbmciIT10eXBlb2YgYT9bXTooImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxifHwoTi5jcmVhdGVIVE1MRG9jdW1lbnQ\/KChlPShiPUwuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUwubG9jYXRpb24uaHJlZixiLmhlYWQuYXBwZW5kQ2hpbGQoZSkpOmI9TCksZz0hYyYmW10sKGY9eWMuZXhlYyhhKSk\/W2IuY3JlYXRlRWxlbWVudChmWzFdKV06KGY9UmIoW2FdLGIsZyksZyYmZy5sZW5ndGgmJmQoZykucmVtb3ZlKCksCmQubWVyZ2UoW10sZi5jaGlsZE5vZGVzKSkpO3ZhciBlLGYsZ307ZC5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD10aGlzLG09YS5pbmRleE9mKCIgIik7cmV0dXJuLTE8bSYmKGU9QyhhLnNsaWNlKG0pKSxhPWEuc2xpY2UoMCxtKSksTShiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihmPSJQT1NUIiksMDxoLmxlbmd0aCYmZC5hamF4KHt1cmw6YSx0eXBlOmZ8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGwpe2c9YXJndW1lbnRzO2guaHRtbChlP2QoIjxkaXY+IikuYXBwZW5kKGQucGFyc2VIVE1MKGwpKS5maW5kKGUpOmwpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGwsdCl7aC5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGd8fFtsLnJlc3BvbnNlVGV4dCx0LGxdKX0pfSksdGhpc307ZC5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZ3JlcChkLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PQpiLmVsZW19KS5sZW5ndGh9O2Qub2Zmc2V0PXtzZXRPZmZzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPWQuY3NzKGEsInBvc2l0aW9uIiksbT1kKGEpLGw9e307InN0YXRpYyI9PT1oJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTt2YXIgdD1tLm9mZnNldCgpLHc9ZC5jc3MoYSwidG9wIikscj1kLmNzcyhhLCJsZWZ0Iik7KCJhYnNvbHV0ZSI9PT1ofHwiZml4ZWQiPT09aCkmJi0xPCh3K3IpLmluZGV4T2YoImF1dG8iKT8oZz0oZT1tLnBvc2l0aW9uKCkpLnRvcCxmPWUubGVmdCk6KGc9cGFyc2VGbG9hdCh3KXx8MCxmPXBhcnNlRmxvYXQocil8fDApO00oYikmJihiPWIuY2FsbChhLGMsZC5leHRlbmQoe30sdCkpKTtudWxsIT1iLnRvcCYmKGwudG9wPWIudG9wLXQudG9wK2cpO251bGwhPWIubGVmdCYmKGwubGVmdD1iLmxlZnQtdC5sZWZ0K2YpOyJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLGwpOm0uY3NzKGwpfX07ZC5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT0KYT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihmKXtkLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGYpfSk7dmFyIGIsYyxlPXRoaXNbMF07cmV0dXJuIGU\/ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oYj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGM9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHt0b3A6Yi50b3ArYy5wYWdlWU9mZnNldCxsZWZ0OmIubGVmdCtjLnBhZ2VYT2Zmc2V0fSk6e3RvcDowLGxlZnQ6MH06dm9pZCAwfSxwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciBhLGI9dGhpc1swXSxjPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT1kLmNzcyhiLCJwb3NpdGlvbiIpKXZhciBlPWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZWxzZXtlPXRoaXMub2Zmc2V0KCk7dmFyIGY9Yi5vd25lckRvY3VtZW50O2ZvcihhPWIub2Zmc2V0UGFyZW50fHxmLmRvY3VtZW50RWxlbWVudDthJiYoYT09PWYuYm9keXx8YT09PWYuZG9jdW1lbnRFbGVtZW50KSYmCiJzdGF0aWMiPT09ZC5jc3MoYSwicG9zaXRpb24iKTspYT1hLnBhcmVudE5vZGU7YSYmYSE9PWImJjE9PT1hLm5vZGVUeXBlJiYoKGM9ZChhKS5vZmZzZXQoKSkudG9wKz1kLmNzcyhhLCJib3JkZXJUb3BXaWR0aCIsITApLGMubGVmdCs9ZC5jc3MoYSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpfXJldHVybnt0b3A6ZS50b3AtYy50b3AtZC5jc3MoYiwibWFyZ2luVG9wIiwhMCksbGVmdDplLmxlZnQtYy5sZWZ0LWQuY3NzKGIsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5vZmZzZXRQYXJlbnQ7YSYmInN0YXRpYyI9PT1kLmNzcyhhLCJwb3NpdGlvbiIpOylhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxqYn0pfX0pO2QuZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPSJwYWdlWU9mZnNldCI9PT0KYjtkLmZuW2FdPWZ1bmN0aW9uKGUpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGYsZyxoKXt2YXIgbTtpZihrYihmKT9tPWY6OT09PWYubm9kZVR5cGUmJihtPWYuZGVmYXVsdFZpZXcpLHZvaWQgMD09PWgpcmV0dXJuIG0\/bVtiXTpmW2ddO20\/bS5zY3JvbGxUbyhjP20ucGFnZVhPZmZzZXQ6aCxjP2g6bS5wYWdlWU9mZnNldCk6ZltnXT1ofSxhLGUsYXJndW1lbnRzLmxlbmd0aCl9fSk7ZC5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1tiXT1WYihOLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYyxlKXtpZihlKXJldHVybiBlPUthKGMsYiksYmMudGVzdChlKT9kKGMpLnBvc2l0aW9uKClbYl0rInB4IjplfSl9KTtkLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe2QuZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxlKXtkLmZuW2VdPWZ1bmN0aW9uKGYsCmcpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGgmJihjfHwiYm9vbGVhbiIhPXR5cGVvZiBmKSxtPWN8fCghMD09PWZ8fCEwPT09Zz8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24obCx0LHcpe3ZhciByO3JldHVybiBrYihsKT8wPT09ZS5pbmRleE9mKCJvdXRlciIpP2xbImlubmVyIithXTpsLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09bC5ub2RlVHlwZT8ocj1sLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChsLmJvZHlbInNjcm9sbCIrYV0sclsic2Nyb2xsIithXSxsLmJvZHlbIm9mZnNldCIrYV0sclsib2Zmc2V0IithXSxyWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09dz9kLmNzcyhsLHQsbSk6ZC5zdHlsZShsLHQsdyxtKX0sYixoP2Y6dm9pZCAwLGgpfX0pfSk7ZC5lYWNoKCJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLApiKXtkLmZuW2JdPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLm9uKGIsYyl9fSk7ZC5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm9uKGEsbnVsbCxiLGMpfSx1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5vZmYoYSxudWxsLGIpfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gdGhpcy5vbihiLGEsYyxlKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGEsIioqIik6dGhpcy5vZmYoYixhfHwiKioiLGMpfSxob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX19KTtkLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCByZXNpemUgc2Nyb2xsIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEsYil7ZC5mbltiXT1mdW5jdGlvbihjLGUpe3JldHVybiAwPGFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vbihiLG51bGwsYyxlKTp0aGlzLnRyaWdnZXIoYil9fSk7dmFyIEdkPS9eW1xzXHVGRUZGXHhBMF0rfChbXlxzXHVGRUZGXHhBMF0pW1xzXHVGRUZGXHhBMF0rJC9nO2QucHJveHk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY7aWYoInN0cmluZyI9PXR5cGVvZiBiJiYoYz1hW2JdLGI9YSxhPWMpLE0oYSkpcmV0dXJuIGU9eWEuY2FsbChhcmd1bWVudHMsMiksKGY9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGUuY29uY2F0KHlhLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxkLmd1aWQrKyxmfTtkLmhvbGRSZWFkeT1mdW5jdGlvbihhKXthP2QucmVhZHlXYWl0Kys6ZC5yZWFkeSghMCl9O2QuaXNBcnJheT1BcnJheS5pc0FycmF5O2QucGFyc2VKU09OPUpTT04ucGFyc2U7ZC5ub2RlTmFtZT1YO2QuaXNGdW5jdGlvbj1NO2QuaXNXaW5kb3c9CmtiO2QuY2FtZWxDYXNlPUJhO2QudHlwZT1VO2Qubm93PURhdGUubm93O2QuaXNOdW1lcmljPWZ1bmN0aW9uKGEpe3ZhciBiPWQudHlwZShhKTtyZXR1cm4oIm51bWJlciI9PT1ifHwic3RyaW5nIj09PWIpJiYhaXNOYU4oYS1wYXJzZUZsb2F0KGEpKX07ZC50cmltPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOihhKyIiKS5yZXBsYWNlKEdkLCIkMSIpfTsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gZH0pO3ZhciBIZD1uLmpRdWVyeSxJZD1uLiQ7cmV0dXJuIGQubm9Db25mbGljdD1mdW5jdGlvbihhKXtyZXR1cm4gbi4kPT09ZCYmKG4uJD1JZCksYSYmbi5qUXVlcnk9PT1kJiYobi5qUXVlcnk9SGQpLGR9LCJ1bmRlZmluZWQiPT10eXBlb2YgZGEmJihuLmpRdWVyeT1uLiQ9ZCksZH0pO3ZhciBtYXRjaGVkLGJyb3dzZXI7CmpRdWVyeS51YU1hdGNoPWZ1bmN0aW9uKG4pe249bi50b0xvd2VyQ2FzZSgpO249LyhjaHJvbWUpWyBcL10oW1x3Ll0rKS8uZXhlYyhuKXx8Lyh3ZWJraXQpWyBcL10oW1x3Ll0rKS8uZXhlYyhuKXx8LyhvcGVyYSkoPzouKnZlcnNpb258KVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8obXNpZSkgKFtcdy5dKykvLmV4ZWMobil8fDA+bi5pbmRleE9mKCJjb21wYXRpYmxlIikmJi8obW96aWxsYSkoPzouKj8gcnY6KFtcdy5dKyl8KS8uZXhlYyhuKXx8W107cmV0dXJue2Jyb3dzZXI6blsxXXx8IiIsdmVyc2lvbjpuWzJdfHwiMCJ9fTttYXRjaGVkPWpRdWVyeS51YU1hdGNoKG5hdmlnYXRvci51c2VyQWdlbnQpO2Jyb3dzZXI9e307bWF0Y2hlZC5icm93c2VyJiYoYnJvd3NlclttYXRjaGVkLmJyb3dzZXJdPSEwLGJyb3dzZXIudmVyc2lvbj1tYXRjaGVkLnZlcnNpb24pO2Jyb3dzZXIuY2hyb21lP2Jyb3dzZXIud2Via2l0PSEwOmJyb3dzZXIud2Via2l0JiYoYnJvd3Nlci5zYWZhcmk9ITApOwpqUXVlcnkuYnJvd3Nlcj1icm93c2VyOwooZnVuY3Rpb24obil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsianF1ZXJ5Il0sZnVuY3Rpb24oZGEpe3JldHVybiBuKGRhLHdpbmRvdyl9KToib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPW4ocmVxdWlyZSgianF1ZXJ5Iiksd2luZG93KTpuKGpRdWVyeSx3aW5kb3cpfSkoZnVuY3Rpb24obixkYSl7ZnVuY3Rpb24gd2EodSl7YTp7dmFyIHg9L14oXGQrKVwuKFxkKylcLihcZCspLyxDPXguZXhlYyhuLmZuLmpxdWVyeSl8fFtdO3g9eC5leGVjKHUpfHxbXTtmb3IodT0xOzM+PXU7dSsrKXtpZigrQ1t1XT4reFt1XSl7Qz0xO2JyZWFrIGF9aWYoK0NbdV08K3hbdV0pe0M9LTE7YnJlYWsgYX19Qz0wfXJldHVybiAwPD1DfWZ1bmN0aW9uIFUodSx4KXt2YXIgQz1kYS5jb25zb2xlOyFuLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZCh1KXx8bi5taWdyYXRlRGVkdXBsaWNhdGVXYXJuaW5ncyYmbWJbeF18fAoobWJbeF09ITAsbi5taWdyYXRlV2FybmluZ3MucHVzaCh4KyIgWyIrdSsiXSIpLEMmJkMud2FybiYmIW4ubWlncmF0ZU11dGUmJihDLndhcm4oIkpRTUlHUkFURTogIit4KSxuLm1pZ3JhdGVUcmFjZSYmQy50cmFjZSYmQy50cmFjZSgpKSl9ZnVuY3Rpb24gZWIodSx4LEMsSCxQKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodSx4LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtVKEgsUCk7cmV0dXJuIEN9LHNldDpmdW5jdGlvbihlYSl7VShILFApO0M9ZWF9fSl9ZnVuY3Rpb24gWCh1LHgsQyxILFApe3ZhciBlYSxRYT11W3hdO3VbeF09ZnVuY3Rpb24oKXtQJiZVKEgsUCk7ZWE9bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoSCk\/QzpRYXx8bi5ub29wO3JldHVybiBlYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIGJhKHUseCxDLEgsUCl7aWYoIVApdGhyb3cgRXJyb3IoIk5vIHdhcm5pbmcgbWVzc2FnZSBwcm92aWRlZCIpO3JldHVybiBYKHUsCngsQyxILFApfWZ1bmN0aW9uIGphKHUseCxDLEgpe3JldHVybiBYKHUseCxDLEgpfWZ1bmN0aW9uIGxiKHUpe3JldHVybiB1LnJlcGxhY2UoLy0oW2Etel0pL2csZnVuY3Rpb24oeCxDKXtyZXR1cm4gQy50b1VwcGVyQ2FzZSgpfSl9ZnVuY3Rpb24gWWEodSl7cmV0dXJuIHBiLnRlc3QodSkmJlNiLnRlc3QodVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSkpfW4ubWlncmF0ZVZlcnNpb249IjMuNC4xIjt2YXIgWmE9T2JqZWN0LmNyZWF0ZShudWxsKTtuLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcz1mdW5jdGlvbigpe3ZhciB1O2Zvcih1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKylaYVthcmd1bWVudHNbdV1dPSEwfTtuLm1pZ3JhdGVFbmFibGVQYXRjaGVzPWZ1bmN0aW9uKCl7dmFyIHU7Zm9yKHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKWRlbGV0ZSBaYVthcmd1bWVudHNbdV1dfTtuLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZD1mdW5jdGlvbih1KXtyZXR1cm4hWmFbdV19O2RhLmNvbnNvbGUmJgpkYS5jb25zb2xlLmxvZyYmKG4mJndhKCIzLjAuMCIpJiYhd2EoIjUuMC4wIil8fGRhLmNvbnNvbGUubG9nKCJKUU1JR1JBVEU6IGpRdWVyeSAzLngtNC54IFJFUVVJUkVEIiksbi5taWdyYXRlV2FybmluZ3MmJmRhLmNvbnNvbGUubG9nKCJKUU1JR1JBVEU6IE1pZ3JhdGUgcGx1Z2luIGxvYWRlZCBtdWx0aXBsZSB0aW1lcyIpLGRhLmNvbnNvbGUubG9nKCJKUU1JR1JBVEU6IE1pZ3JhdGUgaXMgaW5zdGFsbGVkIisobi5taWdyYXRlTXV0ZT8iIjoiIHdpdGggbG9nZ2luZyBhY3RpdmUiKSsiLCB2ZXJzaW9uICIrbi5taWdyYXRlVmVyc2lvbikpO3ZhciBtYj17fTtuLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzPSEwO24ubWlncmF0ZVdhcm5pbmdzPVtdO3ZvaWQgMD09PW4ubWlncmF0ZVRyYWNlJiYobi5taWdyYXRlVHJhY2U9ITApO24ubWlncmF0ZVJlc2V0PWZ1bmN0aW9uKCl7bWI9e307bi5taWdyYXRlV2FybmluZ3MubGVuZ3RoPTB9OyJCYWNrQ29tcGF0Ij09PWRhLmRvY3VtZW50LmNvbXBhdE1vZGUmJgpVKCJxdWlya3MiLCJqUXVlcnkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBRdWlya3MgTW9kZSIpO3ZhciBPYSxOYj17fSxCYT1uLmZuLmluaXQsSmE9bi5maW5kLE9iPS9cWyhccypbLVx3XStccyopKFt+fF4kKl0\/PSlccyooWy1cdyNdKj8jWy1cdyNdKilccypcXS8sUGI9L1xbKFxzKlstXHddK1xzKikoW358XiQqXT89KVxzKihbLVx3I10qPyNbLVx3I10qKVxzKlxdL2csJGE9L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7amEobi5mbiwiaW5pdCIsZnVuY3Rpb24odSl7dmFyIHg9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtuLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZCgic2VsZWN0b3ItZW1wdHktaWQiKSYmInN0cmluZyI9PT10eXBlb2YgdSYmIiMiPT09dSYmKFUoInNlbGVjdG9yLWVtcHR5LWlkIiwialF1ZXJ5KCAnIycgKSBpcyBub3QgYSB2YWxpZCBzZWxlY3RvciIpLHhbMF09W10pO3JldHVybiBCYS5hcHBseSh0aGlzLAp4KX0sInNlbGVjdG9yLWVtcHR5LWlkIik7bi5mbi5pbml0LnByb3RvdHlwZT1uLmZuO2phKG4sImZpbmQiLGZ1bmN0aW9uKHUpe3ZhciB4PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoInN0cmluZyI9PT10eXBlb2YgdSYmT2IudGVzdCh1KSl0cnl7ZGEuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1KX1jYXRjaChDKXt1PXUucmVwbGFjZShQYixmdW5jdGlvbihILFAsZWEsUWEpe3JldHVybiJbIitQK2VhKyciJytRYSsnIl0nfSk7dHJ5e2RhLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodSksVSgic2VsZWN0b3ItaGFzaCIsIkF0dHJpYnV0ZSBzZWxlY3RvciB3aXRoICcjJyBtdXN0IGJlIHF1b3RlZDogIit4WzBdKSx4WzBdPXV9Y2F0Y2goSCl7VSgic2VsZWN0b3ItaGFzaCIsIkF0dHJpYnV0ZSBzZWxlY3RvciB3aXRoICcjJyB3YXMgbm90IGZpeGVkOiAiK3hbMF0pfX1yZXR1cm4gSmEuYXBwbHkodGhpcyx4KX0sInNlbGVjdG9yLWhhc2giKTtmb3IoT2EgaW4gSmEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEphLApPYSkmJihuLmZpbmRbT2FdPUphW09hXSk7YmEobi5mbiwic2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LCJzaXplIiwialF1ZXJ5LmZuLnNpemUoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkOyB1c2UgdGhlIC5sZW5ndGggcHJvcGVydHkiKTtiYShuLCJwYXJzZUpTT04iLGZ1bmN0aW9uKCl7cmV0dXJuIEpTT04ucGFyc2UuYXBwbHkobnVsbCxhcmd1bWVudHMpfSwicGFyc2VKU09OIiwialF1ZXJ5LnBhcnNlSlNPTiBpcyBkZXByZWNhdGVkOyB1c2UgSlNPTi5wYXJzZSIpO2JhKG4sImhvbGRSZWFkeSIsbi5ob2xkUmVhZHksImhvbGRSZWFkeSIsImpRdWVyeS5ob2xkUmVhZHkgaXMgZGVwcmVjYXRlZCIpO2JhKG4sInVuaXF1ZSIsbi51bmlxdWVTb3J0LCJ1bmlxdWUiLCJqUXVlcnkudW5pcXVlIGlzIGRlcHJlY2F0ZWQ7IHVzZSBqUXVlcnkudW5pcXVlU29ydCIpO2ViKG4uZXhwciwiZmlsdGVycyIsbi5leHByLnBzZXVkb3MsImV4cHItcHJlLXBzZXVkb3MiLCJqUXVlcnkuZXhwci5maWx0ZXJzIGlzIGRlcHJlY2F0ZWQ7IHVzZSBqUXVlcnkuZXhwci5wc2V1ZG9zIik7CmViKG4uZXhwciwiOiIsbi5leHByLnBzZXVkb3MsImV4cHItcHJlLXBzZXVkb3MiLCJqUXVlcnkuZXhwclsnOiddIGlzIGRlcHJlY2F0ZWQ7IHVzZSBqUXVlcnkuZXhwci5wc2V1ZG9zIik7d2EoIjMuMS4xIikmJmJhKG4sInRyaW0iLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsPT11PyIiOih1KyIiKS5yZXBsYWNlKCRhLCIkMSIpfSwidHJpbSIsImpRdWVyeS50cmltIGlzIGRlcHJlY2F0ZWQ7IHVzZSBTdHJpbmcucHJvdG90eXBlLnRyaW0iKTt3YSgiMy4yLjAiKSYmKGJhKG4sIm5vZGVOYW1lIixmdW5jdGlvbih1LHgpe3JldHVybiB1Lm5vZGVOYW1lJiZ1Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT14LnRvTG93ZXJDYXNlKCl9LCJub2RlTmFtZSIsImpRdWVyeS5ub2RlTmFtZSBpcyBkZXByZWNhdGVkIiksYmEobiwiaXNBcnJheSIsQXJyYXkuaXNBcnJheSwiaXNBcnJheSIsImpRdWVyeS5pc0FycmF5IGlzIGRlcHJlY2F0ZWQ7IHVzZSBBcnJheS5pc0FycmF5IikpO3dhKCIzLjMuMCIpJiYKKGJhKG4sImlzTnVtZXJpYyIsZnVuY3Rpb24odSl7dmFyIHg9dHlwZW9mIHU7cmV0dXJuKCJudW1iZXIiPT09eHx8InN0cmluZyI9PT14KSYmIWlzTmFOKHUtcGFyc2VGbG9hdCh1KSl9LCJpc051bWVyaWMiLCJqUXVlcnkuaXNOdW1lcmljKCkgaXMgZGVwcmVjYXRlZCIpLG4uZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24odSx4KXtOYlsiW29iamVjdCAiK3grIl0iXT14LnRvTG93ZXJDYXNlKCl9KSxiYShuLCJ0eXBlIixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbD09dT91KyIiOiJvYmplY3QiPT09dHlwZW9mIHV8fCJmdW5jdGlvbiI9PT10eXBlb2YgdT9OYltPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodSldfHwib2JqZWN0Ijp0eXBlb2YgdX0sInR5cGUiLCJqUXVlcnkudHlwZSBpcyBkZXByZWNhdGVkIiksYmEobiwiaXNGdW5jdGlvbiIsZnVuY3Rpb24odSl7cmV0dXJuImZ1bmN0aW9uIj09PQp0eXBlb2YgdX0sImlzRnVuY3Rpb24iLCJqUXVlcnkuaXNGdW5jdGlvbigpIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc1dpbmRvdyIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGwhPXUmJnU9PT11LndpbmRvd30sImlzV2luZG93IiwialF1ZXJ5LmlzV2luZG93KCkgaXMgZGVwcmVjYXRlZCIpKTtpZihuLmFqYXgpe3ZhciBzYT1uLmFqYXgsbmI9Lyg9KVw\/KD89JnwkKXxcP1w\/LztqYShuLCJhamF4IixmdW5jdGlvbigpe3ZhciB1PXNhLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt1LnByb21pc2UmJihiYSh1LCJzdWNjZXNzIix1LmRvbmUsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5zdWNjZXNzIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKSxiYSh1LCJlcnJvciIsdS5mYWlsLCJqcVhIUi1tZXRob2RzIiwialFYSFIuZXJyb3IgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpLGJhKHUsImNvbXBsZXRlIix1LmFsd2F5cywianFYSFItbWV0aG9kcyIsImpRWEhSLmNvbXBsZXRlIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKSk7CnJldHVybiB1fSwianFYSFItbWV0aG9kcyIpO3dhKCI0LjAuMCIpfHxuLmFqYXhQcmVmaWx0ZXIoIitqc29uIixmdW5jdGlvbih1KXshMSE9PXUuanNvbnAmJihuYi50ZXN0KHUudXJsKXx8InN0cmluZyI9PT10eXBlb2YgdS5kYXRhJiYwPT09KHUuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmbmIudGVzdCh1LmRhdGEpKSYmVSgianNvbnAtcHJvbW90aW9uIiwiSlNPTi10by1KU09OUCBhdXRvLXByb21vdGlvbiBpcyBkZXByZWNhdGVkIil9KX12YXIgUmI9bi5mbi5yZW1vdmVBdHRyLGFiPW4uZm4udG9nZ2xlQ2xhc3MsYmI9L1xTKy9nO2phKG4uZm4sInJlbW92ZUF0dHIiLGZ1bmN0aW9uKHUpe3ZhciB4PXRoaXMsQz0hMTtuLmVhY2godS5tYXRjaChiYiksZnVuY3Rpb24oSCxQKXtuLmV4cHIubWF0Y2guYm9vbC50ZXN0KFApJiZ4LmVhY2goZnVuY3Rpb24oKXtpZighMSE9PW4odGhpcykucHJvcChQKSlyZXR1cm4gQz0KITAsITF9KTtDJiYoVSgicmVtb3ZlQXR0ci1ib29sIiwialF1ZXJ5LmZuLnJlbW92ZUF0dHIgbm8gbG9uZ2VyIHNldHMgYm9vbGVhbiBwcm9wZXJ0aWVzOiAiK1ApLHgucHJvcChQLCExKSl9KTtyZXR1cm4gUmIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwicmVtb3ZlQXR0ci1ib29sIik7amEobi5mbiwidG9nZ2xlQ2xhc3MiLGZ1bmN0aW9uKHUpe2lmKHZvaWQgMCE9PXUmJiJib29sZWFuIiE9PXR5cGVvZiB1KXJldHVybiBhYi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7VSgidG9nZ2xlQ2xhc3MtYm9vbCIsImpRdWVyeS5mbi50b2dnbGVDbGFzcyggYm9vbGVhbiApIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5nZXRBdHRyaWJ1dGUmJnRoaXMuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIjt4JiZuLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIseCk7dGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIseHx8CiExPT09dT8iIjpuLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIil9KX0sInRvZ2dsZUNsYXNzLWJvb2wiKTt2YXIgZmI9ITEscGI9L15bYS16XS8sU2I9L14oPzpCb3JkZXIoPzpUb3B8UmlnaHR8Qm90dG9tfExlZnQpPyg\/OldpZHRofCl8KD86TWFyZ2lufFBhZGRpbmcpPyg\/OlRvcHxSaWdodHxCb3R0b218TGVmdCk\/fCg\/Ok1pbnxNYXgpPyg\/OldpZHRofEhlaWdodCkpJC87bi5zd2FwJiZuLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCIsInJlbGlhYmxlTWFyZ2luUmlnaHQiXSxmdW5jdGlvbih1LHgpe3ZhciBDPW4uY3NzSG9va3NbeF0mJm4uY3NzSG9va3NbeF0uZ2V0O0MmJihuLmNzc0hvb2tzW3hdLmdldD1mdW5jdGlvbigpe2ZiPSEwO3ZhciBIPUMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2ZiPSExO3JldHVybiBIfSl9KTtqYShuLCJzd2FwIixmdW5jdGlvbih1LHgsQyxIKXt2YXIgUCxlYT17fTtmYnx8VSgic3dhcCIsImpRdWVyeS5zd2FwKCkgaXMgdW5kb2N1bWVudGVkIGFuZCBkZXByZWNhdGVkIik7CmZvcihQIGluIHgpZWFbUF09dS5zdHlsZVtQXSx1LnN0eWxlW1BdPXhbUF07Qz1DLmFwcGx5KHUsSHx8W10pO2ZvcihQIGluIHgpdS5zdHlsZVtQXT1lYVtQXTtyZXR1cm4gQ30sInN3YXAiKTt3YSgiMy40LjAiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgUHJveHkmJihuLmNzc1Byb3BzPW5ldyBQcm94eShuLmNzc1Byb3BzfHx7fSx7c2V0OmZ1bmN0aW9uKCl7VSgiY3NzUHJvcHMiLCJqUXVlcnkuY3NzUHJvcHMgaXMgZGVwcmVjYXRlZCIpO3JldHVybiBSZWZsZWN0LnNldC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSkpO2lmKHdhKCI0LjAuMCIpKXt2YXIgcWI9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGNvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCwKZ3JpZFJvd1N0YXJ0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH07bi5jc3NOdW1iZXI9InVuZGVmaW5lZCIhPT10eXBlb2YgUHJveHk\/bmV3IFByb3h5KHFiLHtnZXQ6ZnVuY3Rpb24oKXtVKCJjc3MtbnVtYmVyIiwialF1ZXJ5LmNzc051bWJlciBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3QuZ2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sc2V0OmZ1bmN0aW9uKCl7VSgiY3NzLW51bWJlciIsImpRdWVyeS5jc3NOdW1iZXIgaXMgZGVwcmVjYXRlZCIpO3JldHVybiBSZWZsZWN0LnNldC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk6cWJ9ZWxzZSBxYj1uLmNzc051bWJlcjt2YXIgJGI9bi5mbi5jc3M7amEobi5mbiwiY3NzIixmdW5jdGlvbih1LHgpe3ZhciBDPXRoaXM7aWYodSYmIm9iamVjdCI9PT10eXBlb2YgdSYmIUFycmF5LmlzQXJyYXkodSkpcmV0dXJuIG4uZWFjaCh1LGZ1bmN0aW9uKFAsCmVhKXtuLmZuLmNzcy5jYWxsKEMsUCxlYSl9KSx0aGlzO2lmKCJudW1iZXIiPT09dHlwZW9mIHgpe3ZhciBIPWxiKHUpO1lhKEgpfHxxYltIXXx8VSgiY3NzLW51bWJlciIsJ051bWJlci10eXBlZCB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgZm9yIGpRdWVyeS5mbi5jc3MoICInK3UrJyIsIHZhbHVlICknKX1yZXR1cm4gJGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiY3NzLW51bWJlciIpO3ZhciBnYj1uLmRhdGE7amEobiwiZGF0YSIsZnVuY3Rpb24odSx4LEMpe3ZhciBIO2lmKHgmJiJvYmplY3QiPT09dHlwZW9mIHgmJjI9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgUD1uLmhhc0RhdGEodSkmJmdiLmNhbGwodGhpcyx1KSxlYT17fTtmb3IoSCBpbiB4KUghPT1sYihIKT8oVSgiZGF0YS1jYW1lbENhc2UiLCJqUXVlcnkuZGF0YSgpIGFsd2F5cyBzZXRzL2dldHMgY2FtZWxDYXNlZCBuYW1lczogIitIKSxQW0hdPXhbSF0pOmVhW0hdPXhbSF07Z2IuY2FsbCh0aGlzLHUsZWEpO3JldHVybiB4fXJldHVybiB4JiYKInN0cmluZyI9PT10eXBlb2YgeCYmeCE9PWxiKHgpJiYoUD1uLmhhc0RhdGEodSkmJmdiLmNhbGwodGhpcyx1KSkmJnggaW4gUD8oVSgiZGF0YS1jYW1lbENhc2UiLCJqUXVlcnkuZGF0YSgpIGFsd2F5cyBzZXRzL2dldHMgY2FtZWxDYXNlZCBuYW1lczogIit4KSwyPGFyZ3VtZW50cy5sZW5ndGgmJihQW3hdPUMpLFBbeF0pOmdiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImRhdGEtY2FtZWxDYXNlIik7aWYobi5meCl7dmFyIGNiPW4uVHdlZW4ucHJvdG90eXBlLnJ1bixUYj1mdW5jdGlvbih1KXtyZXR1cm4gdX07amEobi5Ud2Vlbi5wcm90b3R5cGUsInJ1biIsZnVuY3Rpb24oKXsxPG4uZWFzaW5nW3RoaXMuZWFzaW5nXS5sZW5ndGgmJihVKCJlYXNpbmctb25lLWFyZyIsIidqUXVlcnkuZWFzaW5nLiIrdGhpcy5lYXNpbmcudG9TdHJpbmcoKSsiJyBzaG91bGQgdXNlIG9ubHkgb25lIGFyZ3VtZW50Iiksbi5lYXNpbmdbdGhpcy5lYXNpbmddPVRiKTtjYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LAoiZWFzaW5nLW9uZS1hcmciKTt2YXIgS2E9bi5meC5pbnRlcnZhbDtkYS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmZ4LCJpbnRlcnZhbCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2RhLmRvY3VtZW50LmhpZGRlbnx8VSgiZngtaW50ZXJ2YWwiLCJqUXVlcnkuZnguaW50ZXJ2YWwgaXMgZGVwcmVjYXRlZCIpO3JldHVybiBuLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZCgiZngtaW50ZXJ2YWwiKT92b2lkIDA9PT1LYT8xMzpLYTpLYX0sc2V0OmZ1bmN0aW9uKHUpe1UoImZ4LWludGVydmFsIiwialF1ZXJ5LmZ4LmludGVydmFsIGlzIGRlcHJlY2F0ZWQiKTtLYT11fX0pfXZhciBWYj1uLmZuLmxvYWQsQWI9bi5ldmVudC5hZGQsV2I9bi5ldmVudC5maXg7bi5ldmVudC5wcm9wcz1bXTtuLmV2ZW50LmZpeEhvb2tzPXt9O2ViKG4uZXZlbnQucHJvcHMsImNvbmNhdCIsbi5ldmVudC5wcm9wcy5jb25jYXQsImV2ZW50LW9sZC1wYXRjaCIsCiJqUXVlcnkuZXZlbnQucHJvcHMuY29uY2F0KCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpO2phKG4uZXZlbnQsImZpeCIsZnVuY3Rpb24odSl7dmFyIHg9dS50eXBlLEM9dGhpcy5maXhIb29rc1t4XSxIPW4uZXZlbnQucHJvcHM7aWYoSC5sZW5ndGgpZm9yKFUoImV2ZW50LW9sZC1wYXRjaCIsImpRdWVyeS5ldmVudC5wcm9wcyBhcmUgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZDogIitILmpvaW4oKSk7SC5sZW5ndGg7KW4uZXZlbnQuYWRkUHJvcChILnBvcCgpKTtpZihDJiYhQy5fbWlncmF0ZWRfJiYoQy5fbWlncmF0ZWRfPSEwLFUoImV2ZW50LW9sZC1wYXRjaCIsImpRdWVyeS5ldmVudC5maXhIb29rcyBhcmUgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZDogIit4KSwoSD1DLnByb3BzKSYmSC5sZW5ndGgpKWZvcig7SC5sZW5ndGg7KW4uZXZlbnQuYWRkUHJvcChILnBvcCgpKTt4PVdiLmNhbGwodGhpcyx1KTtyZXR1cm4gQyYmQy5maWx0ZXI\/Qy5maWx0ZXIoeCx1KTp4fSwiZXZlbnQtb2xkLXBhdGNoIik7CmphKG4uZXZlbnQsImFkZCIsZnVuY3Rpb24odSx4KXt1PT09ZGEmJiJsb2FkIj09PXgmJiJjb21wbGV0ZSI9PT1kYS5kb2N1bWVudC5yZWFkeVN0YXRlJiZVKCJsb2FkLWFmdGVyLWV2ZW50IiwialF1ZXJ5KHdpbmRvdykub24oJ2xvYWQnLi4uKSBjYWxsZWQgYWZ0ZXIgbG9hZCBldmVudCBvY2N1cnJlZCIpO3JldHVybiBBYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJsb2FkLWFmdGVyLWV2ZW50Iik7bi5lYWNoKFsibG9hZCIsInVubG9hZCIsImVycm9yIl0sZnVuY3Rpb24odSx4KXtqYShuLmZuLHgsZnVuY3Rpb24oKXt2YXIgQz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7aWYoImxvYWQiPT09eCYmInN0cmluZyI9PT10eXBlb2YgQ1swXSlyZXR1cm4gVmIuYXBwbHkodGhpcyxDKTtVKCJzaG9ydGhhbmQtcmVtb3ZlZC12MyIsImpRdWVyeS5mbi4iK3grIigpIGlzIGRlcHJlY2F0ZWQiKTtDLnNwbGljZSgwLDAseCk7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5vbi5hcHBseSh0aGlzLApDKTt0aGlzLnRyaWdnZXJIYW5kbGVyLmFwcGx5KHRoaXMsQyk7cmV0dXJuIHRoaXN9LCJzaG9ydGhhbmQtcmVtb3ZlZC12MyIpfSk7bi5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKHUseCl7YmEobi5mbix4LGZ1bmN0aW9uKEMsSCl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKHgsbnVsbCxDLEgpOnRoaXMudHJpZ2dlcih4KX0sInNob3J0aGFuZC1kZXByZWNhdGVkLXYzIiwialF1ZXJ5LmZuLiIreCsiKCkgZXZlbnQgc2hvcnRoYW5kIGlzIGRlcHJlY2F0ZWQiKX0pO24oZnVuY3Rpb24oKXtuKGRhLmRvY3VtZW50KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKX0pOwpuLmV2ZW50LnNwZWNpYWwucmVhZHk9e3NldHVwOmZ1bmN0aW9uKCl7dGhpcz09PWRhLmRvY3VtZW50JiZVKCJyZWFkeS1ldmVudCIsIidyZWFkeScgZXZlbnQgaXMgZGVwcmVjYXRlZCIpfX07YmEobi5mbiwiYmluZCIsZnVuY3Rpb24odSx4LEMpe3JldHVybiB0aGlzLm9uKHUsbnVsbCx4LEMpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uYmluZCgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJ1bmJpbmQiLGZ1bmN0aW9uKHUseCl7cmV0dXJuIHRoaXMub2ZmKHUsbnVsbCx4KX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLnVuYmluZCgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJkZWxlZ2F0ZSIsZnVuY3Rpb24odSx4LEMsSCl7cmV0dXJuIHRoaXMub24oeCx1LEMsSCl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5kZWxlZ2F0ZSgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJ1bmRlbGVnYXRlIixmdW5jdGlvbih1LHgsQyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoPwp0aGlzLm9mZih1LCIqKiIpOnRoaXMub2ZmKHgsdXx8IioqIixDKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLnVuZGVsZWdhdGUoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwiaG92ZXIiLGZ1bmN0aW9uKHUseCl7cmV0dXJuIHRoaXMub24oIm1vdXNlZW50ZXIiLHUpLm9uKCJtb3VzZWxlYXZlIix4fHx1KX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmhvdmVyKCkgaXMgZGVwcmVjYXRlZCIpO3ZhciByYj0vPCg\/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW0pKChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKilbXj5dKilcLz4vZ2ksQmI9ZnVuY3Rpb24odSl7dmFyIHg9ZGEuZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTt4LmJvZHkuaW5uZXJIVE1MPXU7cmV0dXJuIHguYm9keSYmeC5ib2R5LmlubmVySFRNTH07bi5VTlNBRkVfcmVzdG9yZUxlZ2FjeUh0bWxQcmVmaWx0ZXI9ZnVuY3Rpb24oKXtuLm1pZ3JhdGVFbmFibGVQYXRjaGVzKCJzZWxmLWNsb3NlZC10YWdzIil9OwpqYShuLCJodG1sUHJlZmlsdGVyIixmdW5jdGlvbih1KXt2YXIgeD11LnJlcGxhY2UocmIsIjwkMT48LyQyPiIpO3ghPT11JiZCYih1KSE9PUJiKHgpJiZVKCJzZWxmLWNsb3NlZC10YWdzIiwiSFRNTCB0YWdzIG11c3QgYmUgcHJvcGVybHkgbmVzdGVkIGFuZCBjbG9zZWQ6ICIrdSk7cmV0dXJuIHUucmVwbGFjZShyYiwiPCQxPjwvJDI+Iil9LCJzZWxmLWNsb3NlZC10YWdzIik7bi5taWdyYXRlRGlzYWJsZVBhdGNoZXMoInNlbGYtY2xvc2VkLXRhZ3MiKTt2YXIgemE9bi5mbi5vZmZzZXQ7amEobi5mbiwib2Zmc2V0IixmdW5jdGlvbigpe3ZhciB1PXRoaXNbMF07cmV0dXJuIXV8fHUubm9kZVR5cGUmJnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0P3phLmFwcGx5KHRoaXMsYXJndW1lbnRzKTooVSgib2Zmc2V0LXZhbGlkLWVsZW0iLCJqUXVlcnkuZm4ub2Zmc2V0KCkgcmVxdWlyZXMgYSB2YWxpZCBET00gZWxlbWVudCIpLGFyZ3VtZW50cy5sZW5ndGg\/dGhpczp2b2lkIDApfSwib2Zmc2V0LXZhbGlkLWVsZW0iKTsKaWYobi5hamF4KXt2YXIgQ2I9bi5wYXJhbTtqYShuLCJwYXJhbSIsZnVuY3Rpb24odSx4KXt2YXIgQz1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWw7dm9pZCAwPT09eCYmQyYmKFUoInBhcmFtLWFqYXgtdHJhZGl0aW9uYWwiLCJqUXVlcnkucGFyYW0oKSBubyBsb25nZXIgdXNlcyBqUXVlcnkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsIikseD1DKTtyZXR1cm4gQ2IuY2FsbCh0aGlzLHUseCl9LCJwYXJhbS1hamF4LXRyYWRpdGlvbmFsIil9YmEobi5mbiwiYW5kU2VsZiIsbi5mbi5hZGRCYWNrLCJhbmRTZWxmIiwialF1ZXJ5LmZuLmFuZFNlbGYoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkLCB1c2UgalF1ZXJ5LmZuLmFkZEJhY2soKSIpO2lmKG4uRGVmZXJyZWQpe3ZhciBEYj1uLkRlZmVycmVkLHRiPVtbInJlc29sdmUiLCJkb25lIixuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSwKWyJyZWplY3QiLCJmYWlsIixuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVqZWN0ZWQiXSxbIm5vdGlmeSIsInByb2dyZXNzIixuLkNhbGxiYWNrcygibWVtb3J5Iiksbi5DYWxsYmFja3MoIm1lbW9yeSIpXV07amEobiwiRGVmZXJyZWQiLGZ1bmN0aW9uKHUpe2Z1bmN0aW9uIHgoKXt2YXIgUD1hcmd1bWVudHM7cmV0dXJuIG4uRGVmZXJyZWQoZnVuY3Rpb24oZWEpe24uZWFjaCh0YixmdW5jdGlvbihRYSxFYil7dmFyIGhiPSJmdW5jdGlvbiI9PT10eXBlb2YgUFtRYV0mJlBbUWFdO0NbRWJbMV1dKGZ1bmN0aW9uKCl7dmFyIG9hPWhiJiZoYi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYob2EmJiJmdW5jdGlvbiI9PT10eXBlb2Ygb2EucHJvbWlzZSlvYS5wcm9taXNlKCkuZG9uZShlYS5yZXNvbHZlKS5mYWlsKGVhLnJlamVjdCkucHJvZ3Jlc3MoZWEubm90aWZ5KTtlbHNlIGVhW0ViWzBdKyJXaXRoIl0odGhpcz09PUg\/ZWEucHJvbWlzZSgpOgp0aGlzLGhiP1tvYV06YXJndW1lbnRzKX0pfSk7UD1udWxsfSkucHJvbWlzZSgpfXZhciBDPURiKCksSD1DLnByb21pc2UoKTtiYShDLCJwaXBlIix4LCJkZWZlcnJlZC1waXBlIiwiZGVmZXJyZWQucGlwZSgpIGlzIGRlcHJlY2F0ZWQiKTtiYShILCJwaXBlIix4LCJkZWZlcnJlZC1waXBlIiwiZGVmZXJyZWQucGlwZSgpIGlzIGRlcHJlY2F0ZWQiKTt1JiZ1LmNhbGwoQyxDKTtyZXR1cm4gQ30sImRlZmVycmVkLXBpcGUiKTtuLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9RGIuZXhjZXB0aW9uSG9va31yZXR1cm4gbn0pOwovKiogL2pzL2pxdWVyeS5jb29raWUuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOToyOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjowOSI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb29raWVqc19jX29uPSIyMDIzLTA5LTA2IDE0OjMwOjA2IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihoLGwscil7ZnVuY3Rpb24gdChiKXtyZXR1cm4gYn1mdW5jdGlvbiB1KGIpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGIucmVwbGFjZShtLCIgIikpfWNhdGNoKGMpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlKGIpLnJlcGxhY2UobSwiICIpKX1jYXRjaChhKXtyZXR1cm4gY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKGEubWVzc2FnZSksYn19fWZ1bmN0aW9uIG4oYixjLGEsZSxrLGYpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZiYmc2V0VGltZW91dChmdW5jdGlvbigpe24oYixjLGEsZSxrLGYtMSl9LDFFMyk6d2luZG93LkNvb2tpZUxvZ2dlci5sb2coYixjLGEsZSxrKX12YXIgbT0vXCsvZyxnPWguY29va2llPWZ1bmN0aW9uKGIsYyxhKXtpZihjIT09cilyZXR1cm4gQ29va2llcy5pc0Nvb2tpZUFsbG93ZWQoYixmdW5jdGlvbihkKXtkZWJ1ZygiQ29va2llOiAiLApiLGQpO2E9aC5leHRlbmQoe30sZy5kZWZhdWx0cyxhKTtpZighZClyZXR1cm4gQ29va2llcy5yZW1vdmUoYixhLnBhdGgsYS5kb21haW4pLCExO251bGw9PT1jJiYoYS5leHBpcmVzPS0xKTsibnVtYmVyIj09PXR5cGVvZiBhLmV4cGlyZXNJbk1pbnV0ZXMmJihhLmV4cGlyZXM9YS5leHBpcmVzSW5NaW51dGVzLzE0NDApO2lmKCJudW1iZXIiPT09dHlwZW9mIGEuZXhwaXJlcyl7ZD1hLmV4cGlyZXM7dmFyIHA9YS5leHBpcmVzPW5ldyBEYXRlO3Auc2V0VGltZSgrcCs4NjRFNSpkKX1kPW5ldyBEYXRlO2Quc2V0RnVsbFllYXIoZC5nZXRGdWxsWWVhcigpKzEpO2EuZXhwaXJlcz5kJiYoYS5leHBpcmVzPWQpO2M9Zy5qc29uP0pTT04uc3RyaW5naWZ5KGMpOlN0cmluZyhjKTtuKGIsYyxhLmV4cGlyZXMsYS5wYXRoLGEuZG9tYWluKTtyZXR1cm4gbC5jb29raWU9W2VuY29kZVVSSUNvbXBvbmVudChiKSwiPSIsZy5yYXc\/YzplbmNvZGVVUklDb21wb25lbnQoYyksYS5leHBpcmVzPyI7IGV4cGlyZXM9IisKYS5leHBpcmVzLnRvVVRDU3RyaW5nKCk6IiIsYS5wYXRoPyI7IHBhdGg9IithLnBhdGg6IiIsYS5kb21haW4\/IjsgZG9tYWluPSIrYS5kb21haW46IiIsYS5zZWN1cmU\/Ijsgc2VjdXJlIjoiIl0uam9pbigiIil9KTtmb3IodmFyIGU9Zy5yYXc\/dDp1LGs9bC5jb29raWUuc3BsaXQoIjsgIiksZj0wLHY9ay5sZW5ndGg7Zjx2O2YrKyl7dmFyIHE9a1tmXS5zcGxpdCgiPSIpO2lmKGUocS5zaGlmdCgpKT09PWIpcmV0dXJuIGU9ZShxLmpvaW4oIj0iKSksZy5qc29uP0pTT04ucGFyc2UoZSk6ZX1yZXR1cm4gbnVsbH07Zy5kZWZhdWx0cz17fTtoLnJlbW92ZUNvb2tpZT1mdW5jdGlvbihiLGMpe3JldHVybiBudWxsIT09aC5jb29raWUoYik\/KGguY29va2llKGIsbnVsbCxjKSwhMCk6ITF9fSkoalF1ZXJ5LGRvY3VtZW50KTsKLyoqIC9qcy92YW5pbGxhanMvY29udGVudExvYWRlci5qcyAqKi8KdmFyIF9fX2QyY19jb250ZW50TG9hZGVyanNfY19vbj0iMjAyNi0wNS0wNSAxMzozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/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\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSksYS5pcygiOnJhZGlvIikmJmEuaXMoIi5qcVRyYW5zZm9ybUhpZGRlbiIpJiZhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX19fSgpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5jc3NPbmx5PXtzdGFydDpmdW5jdGlvbigpe2EoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYil7YShiKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpOwovKiogL2pzL21haW4uanMgKiovCnZhciBfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDQtMjcgMDk6MzA6MDYiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgaz0wO2s8ZS5sZW5ndGgtMTtrKyspe3ZhciBoPWVba107aWYoIShoIGluIGQpKXJldHVybjtkPWRbaF19ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChrKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGspLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBrKGgpe2guZG9uZT9kKGgudmFsdWUpOlByb21pc2UucmVzb2x2ZShoLnZhbHVlKS50aGVuKGIsYykudGhlbihrLGUpfWsoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpqUXVlcnkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBqUXVlcnl9O2pRdWVyeS5ldmVudC5zcGVjaWFsLnRvdWNoc3RhcnQ9e3NldHVwOmZ1bmN0aW9uKGEsYixjKXtiLmluY2x1ZGVzKCJub1ByZXZlbnREZWZhdWx0Iik\/dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixjLHtwYXNzaXZlOiExfSk6dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixjLHtwYXNzaXZlOiEwfSl9fTtqUXVlcnkuZXhwci5wc2V1ZG9zLnJlYWxseVZpc2libGU9ZnVuY3Rpb24oYSl7dHJ5e2lmKGE9PWRvY3VtZW50LmJvZHkpcmV0dXJuITA7dmFyIGI9alF1ZXJ5KGEpO3JldHVybiBiLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PWIuY3NzKCJ2aXNpYmlsaXR5IikmJjA8Yi5wYXJlbnQoIjpyZWFsbHlWaXNpYmxlIikubGVuZ3RofWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmxvZyhjLm1lc3NhZ2UsYyksITF9fTsKQXJyYXkucHJvdG90eXBlLmZpbmR8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsImZpbmQiLHt2YWx1ZTpmdW5jdGlvbihhLGIpe2lmKG51bGw9PXRoaXMpdGhyb3cgVHlwZUVycm9yKCcidGhpcyIgaXMgbnVsbCBvciBub3QgZGVmaW5lZCcpO3ZhciBjPU9iamVjdCh0aGlzKSxkPWMubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgVHlwZUVycm9yKCJwcmVkaWNhdGUgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Zm9yKHZhciBlPTA7ZTxkOyl7dmFyIGs9Y1tlXTtpZihhLmNhbGwoYixrLGUsYykpcmV0dXJuIGs7ZSsrfX0sY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk7CnZhciBpc0Z1bmN0aW9uPWE9PiJmdW5jdGlvbiI9PT10eXBlb2YgYSx0cmltPWE9PmEucmVwbGFjZSgvXlxzK3xccyskL2csIiIpLGRlYnVnPWZ1bmN0aW9uKCl7aWYoZGVidWdFbmFibGVkKCkpe3ZhciBhPWNvbnNvbGUsYj1hcmd1bWVudHM7ImZ1bmN0aW9uIj09dHlwZW9mIGEubG9nJiZhLmxvZy5hcHBseShhLGIpfX0sZGVidWdFbmFibGVkPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQubG9jYXRpb24uaG9zdDt2YXIgYj1kb2N1bWVudC5jb29raWUubWF0Y2goL3Rlc3Rpbmc9KFteO10rKS9pKTtiPW51bGw9PWI\/ITE6YlsxXTtyZXR1cm4gYnx8L14oZGVhbGVyfGRlbW8pfGQyY21lZGlhXC5jYSQvLnRlc3QoYSkmJiJvZmYiIT1ifSxlbmFibGVEZWJ1Zz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJ0ZXN0aW5nIiwib24iKX0sZGlzYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvZmYiKX0sQWxlcnRCYXI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zZWN0aW9ucy50b0xvd2VyQ2FzZSgpLApjPWEuY3VycmVudC50b0xvd2VyQ2FzZSgpLGQ9JCgiLmhlYWRlci13cmFwcGVyIikubGVuZ3RoPyQoIi5oZWFkZXItd3JhcHBlciIpOiQoIiNtYWluRGl2IiksZT0kKCIjYWxlcnRNc2dDb250YWluZXIiKSxrPSQoImJvZHkiKSxoPSQoIi5BZGRlZFRvcExpbmtEaXYiKSxuPW5ldyBEYXRlO24uc2V0VGltZShuLmdldFRpbWUoKSszNkU1KTt2YXIgeD1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiLDEsbiwiLyIpO2UuaGlkZSgpO2QuY3NzKHttYXJnaW5Ub3A6MH0pO2suY3NzKCJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiLCIiKTswPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsIiIpfTstMTxiLmluZGV4T2YoYykmJiFDb29raWVzLmdldCgiYWxlcnRNZXNzYWdlQ2xvc2VkIikmJihlLmNzcyh7YmFja2dyb3VuZENvbG9yOmEuY29sb3J9KSwkKCIuY2xvc2UiLGUpLm9uKCJjbGljayIseCksZC5jc3MoIm1hcmdpbi10b3AiLGUuaGVpZ2h0KCkrInB4IiksCmsuY3NzKHsiYmFja2dyb3VuZC1wb3NpdGlvbi15IjplLmhlaWdodCgpKyJweCJ9KSwwPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSxlLnNob3coKSl9O2Z1bmN0aW9uIExlYWRHZW5BREYoYSxiLGMsZCxlLGssaCxuKXtpZih0eXBlb2YgY2FycHJvb2ZIYW5kbGVyKXJldHVybiBjYXJwcm9vZkhhbmRsZXIubGVhZEdlbi5hcHBseShjYXJwcm9vZkhhbmRsZXIsYXJndW1lbnRzKX0KZnVuY3Rpb24gcnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpeyJ1bmRlZmluZWQiIT10eXBlb2YgRmlyZXdvcmtUaW1lciYmKGltYWdlRmlyZXdvcmtzPSEwLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRkZGRkYiLDIwMCwyMDApLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRjAwMDAiLDM4MCwyNTAsMUUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiMDBmZjExIiw5MCwxNzAsMkUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiNDRjZGZmIiwzMjAsMjUwLDNFMywwLC44KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpfSwxRTQpKX0KZnVuY3Rpb24gaGFuZGxlQWN0aW9uQ2xpY2soYSl7YT1hfHx3aW5kb3cuZXZlbnQ7YT1hLmN1cnJlbnRUYXJnZXR8fGEuc3JjRWxlbWVudDt2YXIgYj13aW5kb3cubG9jYXRpb24uaHJlZi5zdWJzdHJpbmcod2luZG93LmxvY2F0aW9uLmhyZWYubGFzdEluZGV4T2YoIi8iKSsxKSxjPSJ1c2VkIjt2YXIgZD0iIjtpZigtMT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiLWlkIikpe2Q9Yi5yZXBsYWNlKCIuaHRtbCIsIiIpLnNwbGl0KCItIik7aWYoMz5kLmxlbmd0aHx8LTE8Yi5pbmRleE9mKCJzZWFyY2giKXx8LTE8Yi5pbmRleE9mKCJmaW5kLSIpfHwtMTxiLmluZGV4T2YoInJlY2hlcmNoZSIpfHwtMTxiLmluZGV4T2YoInByaXgtIil8fC0xPGIuaW5kZXhPZigicHJpY2UtIil8fC0xPGIuaW5kZXhPZigiZXNzYWlzLXJvdXRpZXItIil8fC0xPGIuaW5kZXhPZigidGVzdC1kcml2ZS0iKXx8LTE8Yi5pbmRleE9mKCJ2ZWhpY3VsZS1lY2hhbmdlLSIpfHwtMTxiLmluZGV4T2YoInRyYWRlLWluLSIpfHwKLTE8Yi5pbmRleE9mKCJwbmV1cy1waWVjZXMtIil8fC0xPGIuaW5kZXhPZigiY2FyLXBhcnRzLSIpfHwtMTxiLmluZGV4T2YoInJlbmRlei12b3VzLSIpfHwtMTxiLmluZGV4T2YoIi1hcHBvaW50bWVudCIpfHwtMTxiLmluZGV4T2YoImNyZWRpdCIpfHwtMTxiLmluZGV4T2YoImZpbmFuY2VtZW50Iil8fC0xPGIuaW5kZXhPZigicHJlLWFwcHJvIil8fC0xPGIuaW5kZXhPZigibmV3LXdlc3QiKXx8LTE8Yi5pbmRleE9mKCJjb25maWRlbnRpYWxpdGUiKXx8LTE8Yi5pbmRleE9mKCJwcml2YWN5LXBvbGljeSIpfHwtMTxiLmluZGV4T2YoInRlcm1lcy1ldC1jb25kaXRpb25zIil8fC0xPGIuaW5kZXhPZigidGVybXMtYW5kLWNvbmRpdGlvbnMiKSlkPSIuaHRtbCI7ZWxzZXt2YXIgZT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7InVuZGVmaW5lZCI9PXR5cGVvZiBkWzJdfHxlIT1kWzJdJiZlKzEhPWRbMl18fChjPSJuZXciKTtkPSIvIitifWQ9YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLnJlcGxhY2UoIi5odG1sIiwKZCl9ZWxzZXtzd2l0Y2goYS5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpKXtjYXNlICJUZXN0RHJpdmVBY3Rpb25Cb3giOmQ9JCgiI3Rlc3REcml2ZUZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiUHJpY2VBY3Rpb25Cb3giOmQ9JCgiI3ByaWNlUmVxdWVzdEZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiRXZhbEFjdGlvbkJveCI6ZD0kKCIjZXZhbENhckZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiRmluYW5jZUFjdGlvbkJveCI6ZD0kKCIjRmluYW5jZUZvbGRlciIpLnZhbCgpK2I7YnJlYWs7ZGVmYXVsdDoidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigiZm9sZGVyIik\/ZD0kKGEpLmF0dHIoImZvbGRlciIpOiJ1bmRlZmluZWQiIT10eXBlb2YgJChhKS5hdHRyKCJ0YXJnZXR1cmkiKSYmKGQ9JChhKS5hdHRyKCJ0YXJnZXR1cmkiKSl9Q29va2llcy5zZXQoImZyb21kZXRhaWxzcGFnZSIsIjEiLG51bGwsIi8iKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGQmJm51bGwhPQpkJiYwPGQubGVuZ3RoKXtiPWQyY21lZGlhLmh0bWxGaWxlKCExLCEwKTtlPWIuc3BsaXQoIi0iKTt2YXIgaz0iIixoPSIiLG49IiI7MDxlLmxlbmd0aCYmKGs9ZVswXSk7MTxlLmxlbmd0aCYmKGg9ZVsxXSk7MjxlLmxlbmd0aCYmKG49ZVsyXSk7MDxrLmxlbmd0aCYmMDxoLmxlbmd0aCYmMDxuLmxlbmd0aCYmIWlzTmFOKG4pJiY0PT1uLnRvU3RyaW5nKCkubGVuZ3RoJiYtMTxkLmluZGV4T2YoIi5odG0iKSYmKGU9YS5nZXRBdHRyaWJ1dGUoImZvbGRlciIpLGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lP2U6ZC5zdWJzdHJpbmcoMCxkLmxhc3RJbmRleE9mKCIvIikrMSksZD1kLnJlcGxhY2UoIi5odG1sIiwiLyIpK2IrIi5odG1sIik7JChhKS5oYXNDbGFzcygidHJhZGVpbkxpbmsiKSYmKDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoInRyYWRlaW52YWx1ZXMiKXx8MDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIikpPwpzaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6KCJuZXciPT1jJiYoZD1kLnJlcGxhY2UoIm9jY2FzaW9uIiwibmV1ZiIpLnJlcGxhY2UoInVzZWQiLCJuZXciKSksd2luZG93LmxvY2F0aW9uLmhyZWY9ZCl9fQpmdW5jdGlvbiBvcGVuRmluYW5jZU11bHRpc3RlcEZvcm1PbkN1cnJlbnRQYWdlKGEsYixjLGQsZSxrLGgpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2I\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoYik6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIuYnJhbmRlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW1ha2UiKS52YWwoKSk7Yz8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoYyk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoJCgiLm1vZGVsZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYKJCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW1vZGVsIikudmFsKCkpO2Q\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoZCk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIueWVhcmVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbXllYXIiKS52YWwoKSk7ZT8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoZSk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoIiIpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCkpOwprPyQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoayk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKSYmJCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbCgiIik7aCYmKGguc2VuZFRvJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT19FTUFJTCIpLnZhbChoLnNlbmRUbyksaC5zZW5kVG9BZGYmJiQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPQURGX0VNQUlMIikudmFsKGguc2VuZFRvQWRmKSxoLmRlYWxlck5hbWUmJiQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIpLnZhbChoLmRlYWxlck5hbWUpKTthPSJmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiOyQoIiNGaW5hbmNlX0Zvcm1UeXBlIikubGVuZ3RoJiYibXVsdGlzdGVwSW5zdGFudCI9PSQoIiNGaW5hbmNlX0Zvcm1UeXBlIikudmFsKCkmJiQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYT0iZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpOwokKCIjIithKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigxKX1mdW5jdGlvbiBvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoYSxiLGMsZCl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCk7ZW1haWxIYW5kbGVyLm1ha2U9YjskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoYik7ZW1haWxIYW5kbGVyLm1vZGVsPWM7JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbChjKTtlbWFpbEhhbmRsZXIueWVhcj1kOyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbChkKTskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX12YXIgZDJjbWVkaWE9ZDJjbWVkaWF8fHt9OwpkMmNtZWRpYS5zY3JvbGxUbz1mdW5jdGlvbihhLGIsYyl7InVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0xRTMpOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9MCk7JCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKGEpLm9mZnNldCgpLnRvcC1ifSxjKTtyZXR1cm4hMX07CmQyY21lZGlhLnVybD17X3Nhbml0aXplOiEwLGRlc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC9fL2csIi0iKTtpZigib2JqZWN0Ij09PXR5cGVvZiBhKXtmb3IodmFyIGIgaW4gYSlhW2JdPXRoaXMuZGVzYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LGdlbmVyYXRlOmZ1bmN0aW9uKCl7dmFyIGE9IiI7dGhpcy5fc2FuaXRpemUmJihhcmd1bWVudHM9dGhpcy5zYW5pdGl6ZShhcmd1bWVudHMpKTtmb3IoaT0wO2k8YXJndW1lbnRzLmxlbmd0aC0xO2krKylhKz1hcmd1bWVudHNbaV0rIi0iO3JldHVybiBhK2FyZ3VtZW50c1tpXSsiLmh0bWwifSxwYXJzZTpmdW5jdGlvbigpe3VybD1kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuVVJMKTtzdHJQYXJhbT11cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZigiLyIpKTtvYmpQYXJhbT17bWFrZTpudWxsLG1vZGVsOm51bGwseWVhcjpudWxsLGlkOm51bGx9O2ZvdW5kPSExOwp2YXIgYTtudWxsIT0oYT1zdHJQYXJhbS5tYXRjaCgvXlwvKDIwWzAtOV17Mn18MTlbMC05XXsyfSktKFteLV0rLVteLVwuXSspKC4qXC5odG1sKS8pKSYmKHN0clBhcmFtPSIvIithWzJdKyItIithWzFdK2FbM10pO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oLiopLShcZHs0fSkoLWlkKFxkKikpPy5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sb2JqUGFyYW0ueWVhcj1hWzNdLG9ialBhcmFtLmlkPWFbNV0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oLiopLShcZHs0fSkoLWNcZCopPy5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sb2JqUGFyYW0ueWVhcj1hWzNdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFxkezR9KS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT0KYVsxXSxvYmpQYXJhbS55ZWFyPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oW14uXSopLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sZm91bmQ9ITApO3RoaXMuX3Nhbml0aXplJiYob2JqUGFyYW09dGhpcy5kZXNhbml0aXplKG9ialBhcmFtKSk7cmV0dXJuIG9ialBhcmFtfSxzYW5pdGl6ZTpmdW5jdGlvbihhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXJldHVybiBhLnJlcGxhY2UoLy0vZywiXyIpLnJlcGxhY2UoL1snIl0vZywiIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLnNhbml0aXplKGFbYl0pO3JldHVybiBhfX0sc2FuaXRpemVSZWZlcmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csCiIiKX19O2QyY21lZGlhLmdldEh0dHBUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOiI9PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sJiYkKCIjdG9wZGVwbG95bWVudHR5cGUiKS5sZW5ndGgmJiJsaXZlIj09JCgiI3RvcGRlcGxveW1lbnR0eXBlIikudmFsKCk\/Imh0dHBzIjoiaHR0cCJ9O2QyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcj1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGE\/IiI6YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnNsaWNlKDEpfTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZD1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGE\/IiI6YS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihiLGMpe2M9ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGMpO3JldHVybiBiP2IrIiAiK2M6Y30sIiIpfTsKZDJjbWVkaWEuc2FmZVN0cmluZz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLnRleHRDb250ZW50PWE7cmV0dXJuIGIuaW5uZXJUZXh0fTsKZDJjbWVkaWEuaHRtbEZpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz13aW5kb3cubG9jYXRpb24uc2VhcmNoLmxlbmd0aCYmLTE8d2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJwYXRoPSIpP3dpbmRvdy5sb2NhdGlvbi5zZWFyY2g6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO2M9Yy5zdWJzdHJpbmcoYy5sYXN0SW5kZXhPZigiLyIpKzEpO2M9ZDJjbWVkaWEuc2FmZVN0cmluZyhjKTt0cnl7dmFyIGQ9ZGVjb2RlVVJJQ29tcG9uZW50KGMpfWNhdGNoKGspe3ZhciBlPXsiJUMwIjoiJkFncmF2ZTsiLCIlQzEiOiImQWFjdXRlOyIsIiVDMiI6IiZBY2lyYzsiLCIlQzMiOiImQXRpbGRlOyIsIiVDNCI6IiZBdW1sOyIsIiVDNSI6IiZBcmluZzsiLCIlQzYiOiImQUVsaWc7IiwiJUM3IjoiJkNjZWRpbDsiLCIlQzgiOiImRWdyYXZlOyIsIiVDOSI6IiZFYWN1dGU7IiwiJUNBIjoiJkVjaXJjOyIsIiVDQiI6IiZFdW1sOyIsIiVDQyI6IiZJZ3JhdmU7IiwiJUNEIjoiJklhY3V0ZTsiLCIlQ0UiOiImSWNpcmM7IiwKIiVDRiI6IiZJdW1sOyIsIiVEMCI6IiZFVEg7IiwiJUQxIjoiJk50aWxkZTsiLCIlRDIiOiImT2dyYXZlOyIsIiVEMyI6IiZPYWN1dGU7IiwiJUQ0IjoiJk9jaXJjOyIsIiVENSI6IiZPdGlsZGU7IiwiJUQ2IjoiJk91bWw7IiwiJUQ4IjoiJk9zbGFzaDsiLCIlRDkiOiImVWdyYXZlOyIsIiVEQSI6IiZVYWN1dGU7IiwiJURCIjoiJlVjaXJjOyIsIiVEQyI6IiZVdW1sOyIsIiVERCI6IiZZYWN1dGU7IiwiJURFIjoiJlRIT1JOOyIsIiVERiI6IiZzemxpZzsiLCIlRTAiOiImYWdyYXZlOyIsIiVFMSI6IiZhYWN1dGU7IiwiJUUyIjoiJmFjaXJjOyIsIiVFMyI6IiZhdGlsZGU7IiwiJUU0IjoiJmF1bWw7IiwiJUU1IjoiJmFyaW5nOyIsIiVFNiI6IiZhZWxpZzsiLCIlRTciOiImY2NlZGlsOyIsIiVFOCI6IiZlZ3JhdmU7IiwiJUU5IjoiJmVhY3V0ZTsiLCIlRUEiOiImZWNpcmM7IiwiJUVCIjoiJmV1bWw7IiwiJUVDIjoiJmlncmF2ZTsiLCIlRUQiOiImaWFjdXRlOyIsIiVFRSI6IiZpY2lyYzsiLAoiJUVGIjoiJml1bWw7IiwiJUYwIjoiJmV0aDsiLCIlRjEiOiImbnRpbGRlOyIsIiVGMiI6IiZvZ3JhdmU7IiwiJUYzIjoiJm9hY3V0ZTsiLCIlRjQiOiImb2NpcmM7IiwiJUY1IjoiJm90aWxkZTsiLCIlRjYiOiImb3VtbDsiLCIlRjciOiImZGl2aWRlOyIsIiVGOCI6IiZvc2xhc2g7IiwiJUY5IjoiJnVncmF2ZTsiLCIlRkEiOiImdWFjdXRlOyIsIiVGQiI6IiZ1Y2lyYzsiLCIlRkMiOiImdXVtbDsiLCIlRkQiOiImeWFjdXRlOyIsIiVGRSI6IiZ0aG9ybjsiLCIlRkYiOiImeXVtbDsifTtkPWMucmVwbGFjZSgvJVswLTlBLUZdezJ9L2lnLGZ1bmN0aW9uKGgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtoXSlyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGgpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtuLnRleHRDb250ZW50PWVbaF07cmV0dXJuIG4uaW5uZXJUZXh0fSl9ZD1kLnN1YnN0cmluZygwLGQuaW5kZXhPZigiLmh0bSIpKTthJiYoZD1kLnJlcGxhY2UoLyAvZywKIl8iKS5yZXBsYWNlKC8nL2csIiIpLnJlcGxhY2UoIi5odG1sIiwiIikpO251bGwhPShhPWQubWF0Y2goL14oMTlbMC05XXsyfXwyMFswLTldezJ9KS0oW14tXSstW14tXSspKC4qKSQvKSkmJihkPWFbMl0rIi0iK2FbMV0rYVszXSwiRU5HTElTSCI9PSgiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRU5HTElTSCI6IkZSRU5DSCIpJiZiJiYoZD1hWzFdKyItIithWzJdK2FbM10pKTtyZXR1cm4gZH07ZDJjbWVkaWEuaXNIb21lcGFnZT1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4iLyI9PWF8fCIvZW5nLyI9PWF8fCIvZnIvIj09YX07ZDJjbWVkaWEucGFnZURlcGFydG1lbnQ9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTtyZXR1cm4iT1RIRVIiPT1hJiZkMmNtZWRpYS5pc0hvbWVwYWdlKCk\/IkhPTUVQQUdFIjphfTsKdmFyIGpzX2QyY19nZXRfdmFsPWpzX2QyY19nZXRfdmFsfHxmdW5jdGlvbihhKXt0cnl7cmV0dXJuKGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKT9lbC52YWx1ZToiIn1jYXRjaChiKXtyZXR1cm4gY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIrYi5tZXNzYWdlLGIpLGF9fTtTdHJpbmcucHJvdG90eXBlLm5vRDJDUmVwbGFjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlT2YoKX07CmQyY0JHQ2xpY2s9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczskLmV4dGVuZChiLGEpO3RoaXMuc2V0PWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9ITEpO3ZhciBkPWIuYmdJbWdVcmwsZT1iLmJnSW1nUGF0aCxrPWIuYmdJbWdGaXhlZCxoPWIuYmdJbWdSZXNwb25zaXZlLG49Yi5tYWtlLHg9ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvLS9nLCIiKSx2PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkudG9Mb3dlckNhc2UoKToiZnJlbmNoIixmPSIiLGc9ITE7MCE9YyYmKG49Yy50b0xvd2VyQ2FzZSgpKTt2YXIgbT1jPSIiO24\/ZS5oYXNPd25Qcm9wZXJ0eShuKT8oYz1lW25dLG09a1tuXStoW25dLGc9ITApOmUuaGFzT3duUHJvcGVydHkoImFsbCIpPyhjPWUuYWxsLG09ay5hbGwraC5hbGwsZz0hMCk6ZS5oYXNPd25Qcm9wZXJ0eSh2KSYmKGM9ZVt2XSxtPWtbdl0raFt2XSk6ZS5oYXNPd25Qcm9wZXJ0eSh2KSYmCjA9PWcmJihjPWVbdl0sbT1rW3ZdK2hbdl0pO2MmJihiLmJnSW1nPWMuc3BsaXQoIi8iKS5wb3AoKSwkKCJib2R5IikuYXR0cigic3R5bGUiLCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrYysiJyk7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IittKSk7Zm9yKHZhciBsIGluIGQpe2lmKC0xIT14LmluZGV4T2YobCx4KSl7Zj1kW2xdO2JyZWFrfWlmKGw9PXYpe2Y9ZFtsXTticmVha319MD09Zi5sZW5ndGgmJihkLmhhc093blByb3BlcnR5KG4pP2Y9ZFtuXTpkLmhhc093blByb3BlcnR5KCJhbGwiKSYmKGY9ZC5hbGwpKTswPGYubGVuZ3RoJiYoZD0kKHdpbmRvdykud2lkdGgoKS8yLSQoIi53cmFwcGVyIikud2lkdGgoKS8yLGU9JCh3aW5kb3cpLndpZHRoKCkvMiskKCIud3JhcHBlciIpLndpZHRoKCkvMiwkKCIjYmdDbGljazEiKS5yZW1vdmUoKSwkKCIjYmdDbGljazIiKS5yZW1vdmUoKSwkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdiZ0NsaWNrMScgc3R5bGU9J3otaW5kZXg6MTAwO2N1cnNvcjpwb2ludGVyO3dpZHRoOiIrCmQrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MHB4O3RvcDowcHg7Jz48L2Rpdj4iKSwkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdiZ0NsaWNrMicgc3R5bGU9J3otaW5kZXg6MTAwO2N1cnNvcjpwb2ludGVyO3dpZHRoOiIrZCsicHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7bGVmdDoiK2UrInB4O3RvcDowcHg7Jz48L2Rpdj4iKSwkKCIjYmdDbGljazEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pLCQoIiNiZ0NsaWNrMiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnJlZGlyZWN0KGYpfSkpfTt0aGlzLnJlc2V0PWZ1bmN0aW9uKGMpe2Iuc2V0KCl9O3RoaXMucmVkaXJlY3Q9ZnVuY3Rpb24oYyl7ImxpdmUiPT1iLmRlcGxveW1lbnRUeXBlJiYoZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJDbGlxdWVzIiwiSW1hZ2UtZGUtZm9uZCIsYi5iZ0ltZywxKSwiZnVuY3Rpb24iPT10eXBlb2YgYi5kMmNFdmVudCYmYi5kMmNFdmVudC5jYWxsKGIsCmIuYmdJbWcpKTt3aW5kb3cub3BlbihjKX07JCh3aW5kb3cpLm9uKCJyZXNpemUiLGIucmVzZXQpO3JldHVybiB0aGlzfTt2YXIgaW5qZWN0R29vZ2xlTWFwc0tleT1mdW5jdGlvbihhKXtsZXQgYj1udWxsO3JldHVybiBmdW5jdGlvbihjKXtpZihiKXJldHVybiBjKGIpO2EuYWpheCgiL2FqYXgvZ2V0R29vZ2xlTWFwc0tleSIpLmRvbmUoZnVuY3Rpb24oZCl7Yj0oZC5rZXk\/ZC5rZXk6IiIpLnJlcGxhY2UoL1teQS16MC05Xy1dL2csIiIpO2MoYil9KX19KGpRdWVyeSk7CmZ1bmN0aW9uIHJoc1Byb21vSW1hZ2UoYSl7dmFyIGI9dGhpcztiLmRhdGE9YTt2YXIgYz1bXSxkPS0xO2E9d2luZG93LmxvY2F0aW9uO2E9ZGVjb2RlVVJJQ29tcG9uZW50KGEucGF0aG5hbWUrYS5zZWFyY2gpLnRvTG93ZXJDYXNlKCk7Zm9yKHNlYXJjaCBpbiBiLmRhdGEpaWYoImRlZmF1bHQiPT1zZWFyY2h8fC0xIT1hLmluZGV4T2YoZGVjb2RlVVJJQ29tcG9uZW50KChzZWFyY2grIiIpLnRvTG93ZXJDYXNlKCkpKSlmb3IoaT0wO2k8Yi5kYXRhW3NlYXJjaF0ubGVuZ3RoO2krKyljLnB1c2goYi5kYXRhW3NlYXJjaF1baV0pO2Iucm90YXRlPWZ1bmN0aW9uKCl7KytkPmMubGVuZ3RoLTEmJihkPTApO3ZhciBlPWNbZF0saz0kKCI8aW1nIC8+IikuYXR0cih7c3JjOmUuaSxzdHlsZToid2lkdGg6MTAwJTsgbWF4LXdpZHRoOjI4MHB4OyBib3JkZXItcmFkaXVzOiA1cHg7IGN1cnNvcjpwb2ludGVyOyIsYWx0OiIifSk7JCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmh0bWwoayk7bnVsbCE9CmUudSYmMDxlLnUubGVuZ3RoJiYkKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5sb2NhdGlvbiA9ICciK2UudSsiJyIpOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5zaG93KCk7MSE9Yy5sZW5ndGgmJnNldFRpbWVvdXQoYi5yb3RhdGUsZS5kZWxheSl9OzA8Yy5sZW5ndGgmJmIucm90YXRlKCl9ZnVuY3Rpb24gY2xlYW5UZXh0KGEpe2E9YS5yZXBsYWNlKC9bXHg2MF0vZywiJyIpO2E9YS5yZXBsYWNlKC\/igJkvZywiJyIpO2E9YS5yZXBsYWNlKC9gL2csIiciKTtyZXR1cm4gYT1hLnJlcGxhY2UoL1tcdTIwMTld4oCZL2csIiciKX0KZnVuY3Rpb24gZW5jb2RlVGV4dChhKXt2YXIgYj1hO3RyeXtiPSQuYmFzZTY0LmVuY29kZShhKX1jYXRjaChrKXtjb25zb2xlLmxvZyhrLm1lc3NhZ2Usayk7YT0iIjtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9Yi5jaGFyQXQoYyksZT1kLmNoYXJDb2RlQXQoMCk7aWYoNDc8ZSYmNTg+ZXx8NjQ8ZSYmOTE+ZXx8OTY8ZSYmMTIzPmUpYSs9ZDtlbHNlIHRyeXskLmJhc2U2NC5lbmNvZGUoZCksYSs9ZH1jYXRjaChoKXt9fWI9JC5iYXNlNjQuZW5jb2RlKGEpfXJldHVybiBifWZ1bmN0aW9uIGNsZWFuQW5kRW5jb2RlVGV4dChhKXt0cnl7dmFyIGI9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXJldHVybiIiO2I9InN0cmluZyIhPXR5cGVvZiBhP2EudG9TdHJpbmcoKTphO2I9Y2xlYW5UZXh0KGIpO3JldHVybiBiPWVuY29kZVRleHQoYil9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSxhfX0KZnVuY3Rpb24gRXhQaG9uZShhKXtzd2l0Y2goYS50eXBlKXtjYXNlICJtb3VzZWVudGVyIjokKCIuZXh0ZW5kZWRQaG9uZSIpLnNob3coKTticmVhaztjYXNlICJtb3VzZWxlYXZlIjokKCIuZXh0ZW5kZWRQaG9uZSIpLmhpZGUoKX19ZnVuY3Rpb24gZ2V0UmVzaXplZEltYWdlcygpe2RlYnVnRW5hYmxlZCgpO3JldHVybiExfWZ1bmN0aW9uIGNoYW5nZUhvbWVBY3Rpb25CYWNrSW1hZ2UoYSxiKXskKGEpLmNzcyh7YmFja2dyb3VuZDoidXJsKCIrYisiKSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kU2l6ZToiMjQwcHggMTIxcHgifSl9dmFyIF9fY3VycmVudFRocmVhc2hvbGQ7CmZ1bmN0aW9uIHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCl7X19jdXJyZW50VGhyZWFzaG9sZHx8KF9fY3VycmVudFRocmVhc2hvbGQ9KCQod2luZG93KS5oZWlnaHQoKSskKGRvY3VtZW50KS5zY3JvbGxUb3AoKSkvJChkb2N1bWVudCkuaGVpZ2h0KCksc2V0VGltZW91dCgiX19jdXJyZW50VGhyZWFzaG9sZCA9IG51bGwiLDMzMykpO3JldHVybiBfX2N1cnJlbnRUaHJlYXNob2xkfQpmdW5jdGlvbiB0aHJlc2hvbGRFeGVjKGEsYixjKXt2YXIgZD1udWxsO2M9Yz9jOltdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhKXt2YXIgZT1NYXRoLnJvdW5kKDFFNCphKS8xRTQ7MTxlJiYoZS89MTAwKTthPWZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBrPWZ1bmN0aW9uKCl7aWYodGhyZWFkaG9sZFNjcm9sbFBlcmNlbnQoKT5hKCkpe3RyeXtiLmFwcGx5KG51bGwsYyl9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9ZD1jbGVhckludGVydmFsKGQpfX07JChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkPXNldEludGVydmFsKGssMzMzKX0sMkUzKX0pfQpmdW5jdGlvbiBzY3JvbGx1cEV4ZWMoYSl7dmFyIGI9bnVsbCxjPTAsZD1mdW5jdGlvbigpeyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbihlKXtlPSQodGhpcykuc2Nyb2xsVG9wKCk7ZTxjJiYoYS5jYWxsKG51bGwpLGI9Y2xlYXJJbnRlcnZhbChiKSk7Yz1lfSl9OyQoZnVuY3Rpb24oKXtiPXNldEludGVydmFsKGQsMzMzKX0pfWZ1bmN0aW9uIGluVmlld0V4ZWMoYSxiKXt0aHJlc2hvbGRFeGVjKGZ1bmN0aW9uKCl7dmFyIGM9JChhKTt0cnl7cmV0dXJuIWMubGVuZ3RofHxjLmlzKCI6aGlkZGVuIil8fDA9PWMub2Zmc2V0KCkudG9wPy45NTpjLm9mZnNldCgpLnRvcC8kKGRvY3VtZW50KS5oZWlnaHQoKX1jYXRjaChkKXtyZXR1cm4uOTV9fSxiLFthXSl9dmFyIGx0X0lFOT0iZnVuY3Rpb24iIT10eXBlb2YgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj8hMDohMSxsdF9JRTExPTA9PSFkb2N1bWVudC5hbGw7CmZ1bmN0aW9uIGlzSUUoKXt2YXIgYT1kb2N1bWVudC5kb2N1bWVudE1vZGU7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT0iIn1jYXRjaChjKXt9dmFyIGI9Im51bWJlciI9PXR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGV8fChuZXcgRnVuY3Rpb24oInJldHVybi8qQGNjX29uIUAqLyExIikpKCk7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT1hfWNhdGNoKGMpe31yZXR1cm4gYn12YXIgdD0wO19fc3RhcnQ9ZnVuY3Rpb24oKXt0PShuZXcgRGF0ZSkuZ2V0VGltZSgpfTtfX3N0b3A9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zb2xlLmxvZygidG9vayIsKGEtdCkvMUUzKX07dmFyIGFsZXJ0RmFsbGJhY2s9ITA7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZS5sb2cpY29uc29sZT17fSxjb25zb2xlLmxvZz1hbGVydEZhbGxiYWNrP2Z1bmN0aW9uKGEpe306ZnVuY3Rpb24oKXt9OwpBcnJheS5wcm90b3R5cGUubWFwfHwoQXJyYXkucHJvdG90eXBlLm1hcD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCIgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGU9T2JqZWN0KHRoaXMpLGs9ZS5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGM9Yik7dmFyIGg9QXJyYXkoayk7Zm9yKGQ9MDtkPGs7KXtpZihkIGluIGUpe3ZhciBuPWVbZF07bj1hLmNhbGwoYyxuLGQsZSk7aFtkXT1ufWQrK31yZXR1cm4gaH0pO0FycmF5LnByb3RvdHlwZS5pbmRleE9mfHwoQXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oYSxiKXtiPWJ8fDA7Zm9yKHZhciBjPXRoaXMubGVuZ3RoO2I8YztiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9KTsKQXJyYXkucHJvdG90eXBlLnJlZHVjZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwicmVkdWNlIix7dmFsdWU6ZnVuY3Rpb24oYSl7aWYobnVsbD09PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnJlZHVjZSBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgYj1PYmplY3QodGhpcyksYz1iLmxlbmd0aD4+PjAsZD0wO2lmKDI8PWFyZ3VtZW50cy5sZW5ndGgpdmFyIGU9YXJndW1lbnRzWzFdO2Vsc2V7Zm9yKDtkPGMmJiEoZCBpbiBiKTspZCsrO2lmKGQ+PWMpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO2U9YltkKytdfWZvcig7ZDxjOylkIGluIGImJihlPWEoZSxiW2RdLGQsYikpLGQrKztyZXR1cm4gZX19KTsKQXJyYXkucHJvdG90eXBlLmZvckVhY2h8fChBcnJheS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihhKXt2YXIgYixjO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigidGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGQ9T2JqZWN0KHRoaXMpLGU9ZC5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGI9YXJndW1lbnRzWzFdKTtmb3IoYz0wO2M8ZTspe2lmKGMgaW4gZCl7dmFyIGs9ZFtjXTthLmNhbGwoYixrLGMsZCl9YysrfX0pO2Z1bmN0aW9uIGdldERhdGFBdHRyaWJ1dGVzKGEpe3JldHVybiBhLmRhdGFzZXR8fFtdLnNsaWNlLmNhbGwoYS5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtyZXR1cm4vXmRhdGEtLy50ZXN0KGMubmFtZSkmJihiW2MubmFtZS5zdWJzdHIoNSldPWMudmFsdWUpLGJ9LHt9KX0KZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKGEpe2E9YS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2E9KG5ldyBSZWdFeHAoIltcXD8mXSIrYSsiPShbXiYjXSopIikpLmV4ZWMobG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gbnVsbD09YT8iIjpkZWNvZGVVUklDb21wb25lbnQoYVsxXS5yZXBsYWNlKC9cKy9nLCIgIikpfQpmdW5jdGlvbiBzaG93VHJhZGVJblBvcHVwKGEpe2lmKDA9PSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXt2YXIgYj0iNzUwcHgiLGM9IjU3MHB4IjsxPT0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmKGI9IjMwMHB4IixjPSI2MDBweCIpOyQoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJytiKyI7IGhlaWdodDogIitjKyciPjxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9kaXY+PGlmcmFtZSBzcmM9IicrYSsnIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgIGNsYXNzPSItdDAgLWwwIC13MTAwcCAtaDEwMHAiIGlkPSJ0cmFkZWluTGlua1BvcHVwSWZyYW1lIj48L2lmcmFtZT48L2Rpdj4nKX0kKCIjdHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGN1cnJlbnRQcm9tb1JlZGlyZWN0KCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtzd2l0Y2goITApe2Nhc2UgImZ1bmN0aW9uIj09dHlwZW9mIHNob3dQb3B1cFdpZGdldDpzaG93UG9wdXBXaWRnZXQoKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpLmF0dHIoImhyZWYiKTokKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIikuYXR0cigiaHJlZiIpOiQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIilbMF0uY2xpY2soKX19CmZ1bmN0aW9uIHNob3dOZXdSZWJhdGVDb2RlUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI0ltYWdlUG9wdXBDb250YWluZXJfbmV3cmViYXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93TmV3QmVzdFByaWNlVmRwUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gcHJpbnRfcHJvbW9fcHJldihhKXt2YXIgYj0hMSxjPSQoYSkucGFyZW50cygiLnByb21vcyIpO2E9Yy5maW5kKCIucHJvbW8tdGl0bGUiKS5odG1sKCk7dmFyIGQ9Yy5maW5kKCIucHJvbW8tZGVzYyIpLmh0bWwoKTtjPWMuZmluZCgiLnByb21vLWltYWdlIGltZyIpLmF0dHIoImRhdGEtcHJpbnQtc3JjIik7JCgiI3Byb21vVG9QcmludCIpLnJlbW92ZSgpOyQoIiNwcm9tb1RvUHJpbnRXcmFwIikucmVtb3ZlKCk7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBjbGFzcz0idG9wcmludCIgaWQ9InByb21vVG9QcmludCI+PGltZyBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlOyIgc3JjPSInK2MrJyIgYWx0PSIiIGlkPSJwcm9tb0ltZyI+PGJyPjxicj48Yj4nK2ErIjwvYj48YnI+IitkKyI8L2Rpdj4iKTskKCIjcHJvbW9JbWciKS5vbigibG9hZCIsZnVuY3Rpb24oKXtifHwkKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtifHwKJCgiI3Byb21vVG9QcmludCIpLnByaW50RWxlbWVudCgpO2I9ITB9LDFFMyk7cmV0dXJuITF9ZnVuY3Rpb24gZ2V0TXVsdGlwbGVBZGRyZXNzUGhvbmUoYSl7JCgiLm11bHRpQWRkcmVzc1Bob25lIikuc2xpZGVVcCgpO2E9JCgiLm11bHRpQWRkcmVzc1Bob25lIiwkKCQoYSkucGFyZW50KCkpKTskKGEpLmlzKCI6aGlkZGVuIik\/JChhKS5zbGlkZURvd24oKTokKGEpLnNsaWRlVXAoKX0KZnVuY3Rpb24gYWRkR2VuZXJhbFN0eWxlKCl7dmFyIGE9JCgiI0FETUlOX0dFTkVSQUxfQkdfQ09MT1IiKS52YWwoKSxiPSQoIiNkZWZhdWx0X2JsYWNrX3RleHQiKS52YWwoKTtpZigiIzAwMDAwMCIhPWJ8fCIjMDAwIiE9YikkKCIuVXNlZFZkcDJNb2JpbGUgI2JyZWFkY3J1bWJzIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoImkuZmEtZmFjZWJvb2stc3F1YXJlIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoIi51c2VkLWRldGFpbHMgLmRlZmF1bHQgZGl2OmZpcnN0IikuYWRkQ2xhc3MoInRleHRDb2xvciIpOyIjZmZmZmZmIiE9YiYmIiNmZmYiIT1ifHwkKCIuVXNlZFNycDJNb2JpbGUgLmRlZmF1bHQgLm1ha2VNb2RlbFllYXIiKS5hZGRDbGFzcygidGV4dENvbG9yVXNlZFNSUE1vYmlsZSIpOyIjZmZmZmZmIiE9YSYmKCQoIi5vbGQtZGV0YWlscy10ciIpLmFkZENsYXNzKCJiZ05vbmUiKSwkKCIjc3BlY1RpdGxlIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIi5Vc2VkVmRwMk1vYmlsZSIpLmFkZENsYXNzKCJvdGhlckJHIikpfQpmdW5jdGlvbiBhcHBlbmRUcmFkZUJvb3N0QmFubmVyKCl7fWRvY1JlYWR5QXJyLnB1c2goKCk9PnthcHBlbmRUcmFkZUJvb3N0QmFubmVyKCk7YWRkR2VuZXJhbFN0eWxlKCl9KTsKalF1ZXJ5KGZ1bmN0aW9uKGEpe2EoIiNuYXYiKS5hZGRDbGFzcygibmF2Iik7KGZ1bmN0aW9uKCl7TENfQVBJPXdpbmRvdy5MQ19BUEl8fHt9O0xDX0FQSS5vbl90aWNrZXRfY3JlYXRlZD1mdW5jdGlvbihtKXt0cnl7KGZ1bmN0aW9uKGwpe251bGwhPWwmJihsPSc8aW1nIHNyYz0iaHR0cHM6Ly9zdGF0cy5kMmNtZWRpYS5jYS9zZXJ2aWNlL2NvbnRhY3QuZ2lmP3RjPScrKG0udGlja2V0X2lkKyImdT0iK2wpKyciIHN0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDtyaWdodDoxMHB4O3RvcDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlOyIgLz4nLGEoImJvZHkiKS5hcHBlbmQobCkpfSkoZnVuY3Rpb24oKXt2YXIgbD0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6bnVsbDtyZXR1cm4gbnVsbD09bD9Db29raWVzLmdldCgidXVpZCIpOmx9KCkpfWNhdGNoKGwpe319fSkoKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygb25Db25maXJtU3VibWl0KWEoIi5jb25maXJtX2h0bWwiKS5vbigic3VibWl0IiwKb25Db25maXJtU3VibWl0KTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5hdHRyKCJpZCIpKXt2YXIgYj0hMSxjPSExLGQ9ITEsZT0hMSxrPSExLGg9ITEsbj0xMDAseD0xPGEoIiNzbGlkZXIubml2b1NsaWRlciBhIikubGVuZ3RoPyEwOiExO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihoPWs9ZT1kPWM9Yj0hMCxuPWEoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikubGVuZ3RoP2EoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikudmFsKCk6MTAwKTtkb2NSZWFkeUFyci5wdXNoKCgpPT57c2V0VGltZW91dChmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLm5pdm9TbGlkZXIoe2VmZmVjdDoiZmFkZSIsYmVmb3JlQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpfSxhZnRlckNoYW5nZTpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJDaGFuZ2VkIil9LAphZnRlckxvYWQ6ZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS50cmlnZ2VyKCJuaXZvU2xpZGVyTG9hZGVkIik7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5zdG9wLGEoIi5uaXZvLWNvbnRyb2xOYXYiKS5oaWRlKCksYSgiLm5pdm8tZGlyZWN0aW9uTmF2IikuaGlkZSgpLHRoaXMuc3RhcnRZb3V0dWJlKCkpfSxtYW51YWxBZHZhbmNlOmIsdmlkZW9Pbkxvb3A6YyxoaWRlQ29udHJvbDpkLGhpZGVJbmZvOmUsZnVsbFdpZHRoOmssbXV0ZVZpZGVvOmgsdmlkZW9CcmlnaHRuZXNzOm4sY29udHJvbE5hdjp4LGRpcmVjdGlvbk5hdjp4LHNob3dEaXNjbGFpbWVyOiEwfSl9LDVFMyl9KX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIi5leHRlbmRlZFBob25lVHJpZ2dlciIpLmF0dHIoImlkIikpYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikub24oIm1vdXNlZW50ZXIiLApFeFBob25lKS5vbigibW91c2VsZWF2ZSIsRXhQaG9uZSk7dmFyIHY9ZnVuY3Rpb24oKXt9O2EoIi50cmFkZWluTGluayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZihhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpJiY2PGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikubGVuZ3RoKXJldHVybiBzaG93VHJhZGVJblBvcHVwKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikpLCExfSk7YSgiLnVwX21lbnUiKS5vbmUoIm1vdXNlb3ZlciIsdik7c2V0VGltZW91dCh2LDFFNCk7KGZ1bmN0aW9uKCl7aWYoMCE9YSgiI01haW5NZW51X05FVyIpLmxlbmd0aCl7dmFyIHE9YSgiLmltZ19tZW51LnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkuZmlyc3RJdGVtIikscj0hMTswIT1xLmxlbmd0aCYmKGEoIiNNYWluTWVudV9ORVciKS5maW5kKCIucHJpY2UiKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHA9YSh0aGlzKS5zaWJsaW5ncygpLmZpcnN0KCk7CndpbmRvdy5sb2NhdGlvbj1wLmF0dHIoImhyZWYiKX0pLGEoIiNNYWluTWVudV9ORVciKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5hZGRDbGFzcygiaG92ZXIiKX0pLHEuc2libGluZ3MoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5yZW1vdmVDbGFzcygiaG92ZXIiKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3I9c2V0VGltZW91dChmdW5jdGlvbigpe3EuYWRkQ2xhc3MoImhvdmVyIil9LDMwMCl9KSl9fSkoKTthKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3ZhciBxPWEodGhpcyk7cS5hdHRyKCJzcmMiLHEuYXR0cigiZXJyb3JpbWciKSl9KTtjb25zdCBtPWEod2luZG93KSxsPWEoIi51cF9tZW51Iik7aWYobC5sZW5ndGgmJiFsLmhhc0NsYXNzKCJub2xvY2siKSl7bGV0IHE9bC5vZmZzZXQoKS50b3Ascj0hMTthKGRvY3VtZW50KS5vbigic2Nyb2xsIiwoKT0+e3J8fAood2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3ZhciBwPW0uc2Nyb2xsVG9wKCksdz1sLmhhc0NsYXNzKCJmaXhlZCIpO3cmJnA8cT9sLnJlbW92ZUNsYXNzKCJmaXhlZCIpOiF3JiZwPnEmJmwuYWRkQ2xhc3MoImZpeGVkIik7KHA9bC5oYXNDbGFzcygiZml4ZWQiKSkmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpP2wuY3NzKHt0b3A6YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSsicHgifSk6bC5hdHRyKCJzdHlsZSIsIiIpO3c9YSgiLnB1bGxvdXRzLnNpZGVfdG9wOnZpc2libGUiKTtwJiYwPHcubGVuZ3RoPyh3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6bC5oZWlnaHQoKSsicHgifSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgej1hKHRoaXMpLEQ9Z2V0X3Bvdyh6LmF0dHIoImlkIikpOyF6LmRhdGEoInBvc1kiKSYmei5kYXRhKCJwb3NZIiwtRC5wb3NpdGlvbik7CkQ9ei5kYXRhKCJwb3NZIikrbC5oZWlnaHQoKTt6LmNzcyh7dG9wOkQrInB4In0pfSkpOih3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6MH0pLHcuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5kYXRhKCJwb3NZIikmJncuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5jc3Moe3RvcDphKHRoaXMpLmRhdGEoInBvc1kiKSsicHgifSl9KSk7cj0hMX0pLHI9ITApfSl9dj1mdW5jdGlvbigpe2lmKDA9PWEoIiN0cmFkZWluQmFyRmxvYXQiKS5sZW5ndGgpe2EoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5CYXJGbG9hdCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOiBmaXhlZDt3aWR0aDogMTAwJTt6LWluZGV4OiAxMDA7ZGlzcGxheTpub25lOyI+PC9kaXY+Jyk7YSgiI3RyYWRlSW5CYXIiKS5jbG9uZSghMCwhMCkuYXBwZW5kVG8oIiN0cmFkZWluQmFyRmxvYXQiKS50cmlnZ2VyKCJ0cmFkZUluQmFyLmNsb25lZCIpOwppZihhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiPT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpKXthKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJib3R0b20iLCItMnB4Iik7dmFyIHE9YSgiLmNlcnRpZmllZC1mb290ZXIiKS5oZWlnaHQoKSxyPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5oZWlnaHQoKTthKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodChxK3IpfWVsc2V7cT1hKCIjdHJhZGVpbkJhckZsb2F0Iik7cj1xLmNzczt2YXIgcD0iMSI9PWEoIiNtZW51TG9jayIpLnZhbCgpPzQ4OjA7MDxhKCIjYWxlcnRNc2dDb250YWluZXIiKS5sZW5ndGgmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpJiYocCs9YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSk7ci5jYWxsKHEsInRvcCIscCl9YSgiI3RyYWRlaW5CYXJGbG9hdCAuLXBiMTAiKS5jc3Moe2Rpc3BsYXk6ImlubGluZS10YWJsZSIsd2lkdGg6YSgiI21haW5EaXYiKS53aWR0aCgpfSl9cT0KIm5ld2NhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk7cj0ibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk\/ITA6ITE7cD0wPGEoIi5tYWluRGl2QWRqdXN0SGVhZGVyIikubGVuZ3RoPyEwOiExO2EoIiN0cmFkZUluQmFyIikuaXNJblZpZXdwb3J0KCl8fHE\/cT8ocj9hKCIubmV3VmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApOmEoIi51c2VkVmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApKT9hKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOmEoIiN0cmFkZWluQmFyRmxvYXQiKS5zaG93KCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhpZGUoKToocCYmIWEoIiN0cmFkZUluQmFyIikuaXNBYm92ZVZpZXdwb3J0KDIwMCl8fCFwKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjpoaWRkZW4iKSYmCjQ4IT1hKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiKSYmYSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS5sZW5ndGgmJiIxIiE9YSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS52YWwoKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygidG9wIiw0OCl9O2Z1bmN0aW9uIHUocSxyKXt2YXIgcD0wO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChwKTtwPXNldFRpbWVvdXQocSxyKX19aWYoYSgiI3RyYWRlSW5CYXIiKS5sZW5ndGgpYShkb2N1bWVudCkub24oInNjcm9sbCIsdSh2LDEwMCkpO3ZhciBmPWEoInVsLm5hdiA+IGxpID4gdWwgPiBsaSA+IHVsIik7Zi5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5wYXJlbnQoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24ocSl7YSgidWwiLHRoaXMpLnNjcm9sbFRvcCgwKX0pfSk7Zi5vbigiRE9NTW91c2VTY3JvbGwgbW91c2V3aGVlbCIsZnVuY3Rpb24ocSl7dmFyIHI9YSh0aGlzKSxwPXRoaXMuc2Nyb2xsVG9wLHc9dGhpcy5zY3JvbGxIZWlnaHQsCno9dz50aGlzLmNsaWVudEhlaWdodCxEPXIuaGVpZ2h0KCksQz1xLm9yaWdpbmFsRXZlbnQ7Qz0iRE9NTW91c2VTY3JvbGwiPT1xLnR5cGU\/LTQwKkMuZGV0YWlsOkMud2hlZWxEZWx0YTt2YXIgRT0wPEM7aWYoIXopcmV0dXJuITA7ej1mdW5jdGlvbihHKXtyLnNjcm9sbFRvcChHKTtxLnN0b3BQcm9wYWdhdGlvbigpO3EucHJldmVudERlZmF1bHQoKTtxLnJldHVyblZhbHVlPSExO3JldHVybiEwfTtyZXR1cm4hKCFFJiYtQz53LUQtcCYmeih3KXx8RSYmQz5wJiZ6KDApKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKCJFcnJvciIsbSl9aWYoYSgiLnVwX21lbnUuaW1nX21lbnUiKS5sZW5ndGgpe2Y9YSgiLmltZ19zdHlsZV8xICNNYWluTWVudV9ORVciKS5jaGlsZHJlbigiLnN1YiIpO3ZhciBnPWYuZmluZCgiLmZpcnN0SXRlbSIpLmZpbmQoIi5zdWIiKTtmLmNoaWxkcmVuKCJsaSIpLm9uKHttb3VzZWVudGVyOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5oaWRlKCl9LAptb3VzZWxlYXZlOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5zaG93KCl9fSl9YSgiLm51bWVyaWMiKS5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKG0pe2lmKDQ4Pm0ua2V5Q29kZXx8NTc8bS5rZXlDb2RlKW0ucmV0dXJuVmFsdWU9ITF9KTtpZigib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LkRvY3VtZW50VG91Y2gmJmRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaClhKCIubGVmdF9ib3ggYSIpLm9uKCJ0YXAiLGZ1bmN0aW9uKG0pe209YSh0aGlzKTtpZigicmFkaW8iIT1tLmF0dHIoInR5cGUiKSYmbS5hdHRyKCJvbmNsaWNrIikpcmV0dXJuIG0udHJpZ2dlcigiY2xpY2siKSwhMX0pLGEoIi5oYXNJdGVtcyA+IGEsIC5oYXNTdWIgPiBhIikub24oImNsaWNrIixmdW5jdGlvbihtKXtpZigiY2xpY2siIT1tLnR5cGUpcmV0dXJuITA7dmFyIGw9YSh0aGlzKS5kYXRhKCJjbGlja0NvdW50Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBsfHwiMCI9PQpsKWEoIi5uYXYgbGkuaGFzSXRlbXMgYSwgLm5hdiBsaS5oYXNTdWIgYSIpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksYSh0aGlzKS5kYXRhKCJjbGlja0NvdW50IiwiMSIpLG0ucHJldmVudERlZmF1bHQoKTtlbHNlIHJldHVybiBkb2N1bWVudC5sb2NhdGlvbj1hKHRoaXMpLmF0dHIoImhyZWYiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksITB9KTthKCJkaXYuZ21hcC1wbGFjZWhvbGRlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1hKHRoaXMpLGw9bS5kYXRhKCk7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbih1KXt1PSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IitbInE9IitlbmNvZGVVUklDb21wb25lbnQobC5wbGFjZUlkKSwiem9vbT0iK2wuem9vbSwibGFuZ3VhZ2U9IitsLmxhbmd1YWdlLCJyZWdpb249Q0EiLCJrZXk9Iit1XS5qb2luKCImIik7bS5odG1sKCc8aWZyYW1lIHNyYz0iJyt1KyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTsKdHJ5e2EoIi5hZGR0dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1bIm9uQ2xvc2UiLCJvblllcyIsIm9uTm8iXSxsPWEodGhpcyksdT1sLmRhdGEoKSxxPXt9LHI7Zm9yKHIgaW4gdSlxW3JdPWZ1bmN0aW9uKHAsdyl7cmV0dXJuLTEhPW0uaW5kZXhPZihwKT9mdW5jdGlvbigpe2V2YWwodyl9Ond9KHIsdVtyXSk7bC5kYXJrVG9vbHRpcChxKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKG0ubWVzc2FnZSxtKX19KTtmdW5jdGlvbiBjaGlsZE9mKGEsYil7Zm9yKDsidW5kZWZpbmVkIiE9PXR5cGVvZiBhJiZudWxsIT09YSYmKGE9YS5wYXJlbnROb2RlKSYmYSE9PWI7KTtyZXR1cm4hIWF9dmFyIE1lbnVIYW5kbGVyOwooZnVuY3Rpb24oKXt2YXIgYTtNZW51SGFuZGxlcj1mdW5jdGlvbiBjKCl7ZnVuY3Rpb24gZChmLGcpe2xldCBtPShnLm1vZGVsfHwiIikudHJpbSgpLGw9KGcudHJpbXx8IiIpLnRyaW0oKTtmPWYucmVwbGFjZSgiIyNNRU5VWUVBUiMjIixnLnllYXIpO20mJmwmJihtLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobC50b0xvd2VyQ2FzZSgpKT9sPSIiOmwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtLnRvTG93ZXJDYXNlKCkpJiYobT0iIikpO3JldHVybiBmPWYucmVwbGFjZSgiIyNNRU5VTU9ERUwjIyIsbSkucmVwbGFjZSgiIyNNRU5VVFJJTSMjIixsKS5yZXBsYWNlKC8gKy9nLCIgIil9aWYoYSlyZXR1cm4gYTthPXRoaXM7dGhpcy5nZXRTcGVjVXJsPWZ1bmN0aW9uKCl7dmFyIGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCIwIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKT8iZW4iOiJmciI7IjAiPT0kKCIjbXVsdGktbGFuZ3VhZ2UiKS52YWwoKSYmCihmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIik7cmV0dXJuIi9qc29uL25ld2NhcnNkZXRhaWxzXyIrZisiLmpzb24ifTt0aGlzLm1lbnU9JCgiLm1lbnU1LCAubWVudTYsIC5tZW51NywgLm1lbnU4LCAubWVudTksIC5tZW51MTAiKTt0aGlzLnNwZWNzQWpheD0kLmdldCh0aGlzLmdldFNwZWNVcmwoKSk7dGhpcy5jYXJzPXtkZXRhaWxzOnt9LGZpbmRCeUlkOmZ1bmN0aW9uKGYpe3ZhciBnPXt9OyQuZWFjaCh0aGlzLmRldGFpbHMubWFrZXMsZnVuY3Rpb24obSxsKXskLmVhY2gobC5tb2RlbHMsZnVuY3Rpb24odSxxKXsxPT1xLmlzc2VyaWVzfHwxPT1xLmlzQ2xhc3M\/JC5lYWNoKHEuc3R5bGVzLGZ1bmN0aW9uKHIscCl7cC5pZD09ZiYmKGc9cCl9KTpxLmlkPT1mJiYoZz1xKX0pOyQuaXNFbXB0eU9iamVjdChnKX0pO3JldHVybiBnfX07dGhpcy5zcGVjc0FqYXguZG9uZShmdW5jdGlvbihmKXtjKCkuY2Fycy5kZXRhaWxzPWZ9KTt0aGlzLnBvc2l0aW9ucz0KZnVuY3Rpb24oZixnLG0pe3JldHVybnt0YXJnZXQ6JChnLmN1cnJlbnRUYXJnZXQpLHNlY29uZExldmVsTWVudTpudWxsLHdpbmRvd0hlaWdodDpudWxsLHNlY29uZExldmVsTWVudVRvcDpudWxsLHNlY29uZExldmVsTWVudUJvdHRvbTpudWxsLHN1Yk1lbnVJdGVtVG9wOm51bGwsc3ViTWVudUl0ZW1IZWlnaHQ6bnVsbCxzdWJNZW51SXRlbUJvdHRvbTpudWxsLGJvdHRvbUFsaWduOm51bGwsc3BlY3M6bnVsbCxzcGVjc1RvcDpudWxsLHNwZWNzSGVpZ2h0Om51bGwsc3BlY3NCb3R0b206bnVsbCxjdXN0b21TZWNvbmRMZXZlbE1lbnU6bnVsbCxyb3VuZDpmdW5jdGlvbihsKXtyZXR1cm4rKE1hdGgucm91bmQobCsiZSsyIikrImUtMiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnU\/dGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKTp0aGlzLnRhcmdldC5maW5kKCJ1bC5zdWI6Zmlyc3QiKTsKdHJ5e3RoaXMud2luZG93SGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudVRvcD10aGlzLnNlY29uZExldmVsTWVudS5wb3NpdGlvbigpLnRvcCx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodD10aGlzLnNlY29uZExldmVsTWVudS5vdXRlckhlaWdodCgpLHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPXRoaXMucm91bmQodGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpfWNhdGNoKGwpe310cnl7dGhpcy5zdWJNZW51SXRlbVRvcD0kKGYpLnBvc2l0aW9uKCkudG9wLHRoaXMuc3ViTWVudUl0ZW1IZWlnaHQ9JChmKS5vdXRlckhlaWdodCgpLHRoaXMuc3ViTWVudUl0ZW1Cb3R0b209dGhpcy5yb3VuZCh0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0K3RoaXMuc3ViTWVudUl0ZW1Ub3ApLHRoaXMuYm90dG9tQWxpZ249dGhpcy5yb3VuZCgkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKyQoZikucGFyZW50KCJ1bCIpLm9mZnNldCgpLnRvcC0KdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pfWNhdGNoKGwpe310cnl7dGhpcy5zcGVjcz1tLHRoaXMuc3BlY3NUb3A9dGhpcy5zcGVjcy5wb3NpdGlvbigpLnRvcCx0aGlzLnNwZWNzSGVpZ2h0PXRoaXMuc3BlY3Mub3V0ZXJIZWlnaHQoKSx0aGlzLnNwZWNzQm90dG9tPXRoaXMucm91bmQodGhpcy5zcGVjc1RvcCt0aGlzLnNwZWNzSGVpZ2h0KX1jYXRjaChsKXt9fSxhZGp1c3RTZWNvbmRMZXZlbDpmdW5jdGlvbigpe2lmKC42NSp0aGlzLndpbmRvd0hlaWdodDx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodCl7aWYodGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoImxvY2F0aW9uLWRldGFpbHMiKSlyZXR1cm47dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQXR0cigic3R5bGUiKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImhlaWdodCIsLjY1KnRoaXMud2luZG93SGVpZ2h0KTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoeyJvdmVyZmxvdy15IjoiYXV0byIsd2lkdGg6IjQwMHB4IiwKcG9zaXRpb246InN0YXRpYyIsZGlyZWN0aW9uOiJydGwifSk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuZmluZCgiPiBsaSIpLmNzcyh7ZGlyZWN0aW9uOiJsdHIifSk7aWYoMD09JChmKS5jaGlsZHJlbigiLm1haW5tZW51LXN1Ym1lbnUiKS5sZW5ndGgpe3ZhciBsPSQoIjxkaXYvPiIpO2wuYWRkQ2xhc3MoIm1haW5tZW51LXN1Ym1lbnUiKTtsLmRldGFjaCgpLmFwcGVuZCh0aGlzLnNlY29uZExldmVsTWVudSk7dGhpcy50YXJnZXQuYXBwZW5kKGwpfXRoaXMudXBkYXRlKCl9aWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208dGhpcy5zdWJNZW51SXRlbVRvcCkkKGYpLmFkZENsYXNzKCJhbGlnbi1sZXZlbCIpLHRoaXMudXBkYXRlKCksbD10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbTwkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpPyQoZikub3V0ZXJIZWlnaHQoKSskKGYpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0OiQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCkrCiQoZikucGFyZW50KCJ1bCIpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygidHJhbnNmb3JtIiwidHJhbnNsYXRlWSgiK2wrInB4KSIpO2Vsc2UgaWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20+dGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zdWJNZW51SXRlbUJvdHRvbT50aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSl7bD0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO3ZhciB1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoIitNYXRoLmFicyh0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbS10aGlzLnN1Yk1lbnVJdGVtQm90dG9tKSt0aGlzLnNlY29uZExldmVsTWVudVRvcCsicHgpIn07InJpZ2h0IiE9bCYmKHVbbF09dGhpcy50YXJnZXQucG9zaXRpb24oKS5sZWZ0K3RoaXMudGFyZ2V0LndpZHRoKCkpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyh1KX1lbHNlIHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wPgp0aGlzLnN1Yk1lbnVJdGVtVG9wJiZ0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIit0aGlzLnN1Yk1lbnVJdGVtVG9wKyJweCkiKX0sYWRqdXN0SG9yaXpvbnRhbDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJpbnZpc2libGUiKXx8dGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoImludmlzaWJsZSIpO3ZhciBsPXRoaXMuaXNJblZpZXdwb3J0KHRoaXMuc2Vjb25kTGV2ZWxNZW51WzBdKSx1PTA+cGFyc2VJbnQodGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJsZWZ0IikucmVwbGFjZSgicHgiLCIiKSk\/InJpZ2h0IjoibGVmdCI7bHx8ImxlZnQiIT09dXx8KHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJMMTAwIikmJnRoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJMMTAwIiksdGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoIlIxMDAiKSk7bD17fTtsW3VdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCsKdGhpcy50YXJnZXQud2lkdGgoKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MobCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoImludmlzaWJsZSIpfSxpc0luVmlld3BvcnQ6ZnVuY3Rpb24obCl7bD1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiAwPD1sLnRvcCYmMDw9bC5sZWZ0JiZsLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJmwucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX19fTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsInVsLm5hdiA+IGxpIixmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpO2cudXBkYXRlKCk7Zy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tJCh3aW5kb3cpLnNjcm9sbFRvcCgpPmcud2luZG93SGVpZ2h0P2cuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJzbGltLXN1Ym1lbnUiKToKZy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoInNsaW0tc3VibWVudSIpOyJtb3VzZWxlYXZlIiE9PWYudHlwZSYmKGY9JCh0aGlzKS5maW5kKCI+IHVsIiksZi5sZW5ndGgmJiFmLmRhdGEoImNhbGN1bGF0ZWQiKSYmKGc9JCh0aGlzKS5vdXRlcldpZHRoKCksZi5vdXRlcldpZHRoKCk8ZyYmZi5jc3MoIndpZHRoIixnKzEpLGYuZGF0YSgiY2FsY3VsYXRlZCIsITApKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTswIT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgidWwuc3ViID4gbGkiKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9Zi50eXBlJiYoZy51cGRhdGUoKSxnLmFkanVzdFNlY29uZExldmVsKCkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgbGkubG9jYXRpb24tbmFtZXMiLApmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpLG09JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIik7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnU9ZnVuY3Rpb24oKXtyZXR1cm4gbX07MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKCQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLm9uKCJsYXp5bG9hZGVkIixmdW5jdGlvbihsKXtnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKTtnLnVwZGF0ZSgpO2cuYWRqdXN0SG9yaXpvbnRhbCgpO2cuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pLGcuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCkuYXR0cigic3R5bGUiLG51bGwpLGcudXBkYXRlKCksZy5hZGp1c3RIb3Jpem9udGFsKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwKJyNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IFtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl0nLGZ1bmN0aW9uKGYpe2Y9YS5wb3NpdGlvbnModGhpcyxmKTtmLnVwZGF0ZSgpO2YuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjREVBTEVSUEFSVFJFRElSRUNUVFlQRSIpLnZhbCgpJiYwPCQoIiNERUFMRVJCUkFORCIpLmxlbmd0aCYmJCgiI0RFQUxFUkJSQU5EIikudmFsKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiZm9yZCIpJiYiIiE9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpKXt2YXIgZT0kKCJodG1sIikuYXR0cigibGFuZyIpLGs9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGg9ImVuIj09ZT8iL3JlcXVlc3RzL2Nhci1wYXJ0cy1hbmQtYWNjZXNzb3JpZXMuaHRtbCI6Ii9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIsbj0iaHR0cHM6Ly9mb3JkYWNjZXNzLmNvbS9Gb3JkLmFzcHg\/bG9jYXRpb249IisKazt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9TRVJWSUNFIHVsLnN1YiBsaVtkYXRhLWlkPSdQSUVDRVMnXSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2Y9JCgiPiBhIixmKTtmLmF0dHIoImhyZWYiKT09aCYmKGYuYXR0cigiaHJlZiIsbiksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KX10aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9GSU5BTkNFID4gYSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpLGc9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxtPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxsPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTsiZm9yZF9saW5jb2xuX2V4dGVybmFsIiE9JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpfHwiZm9yZCIhPWwmJiJsaW5jb2xuIiE9bHx8IiI9PW18fChmLmF0dHIoImhyZWYiLCJmb3JkIj09bD8oImVuIj09Zz8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6CiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSttOigiZW4iPT1nPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKSttKSxmLmF0dHIoInRhcmdldCIsIl9ibGFuayIpKX0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY3RhLXRwbCIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpe2lmKCExPT09KCJjb21tZXJjaWFsIj09bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zZWN0aW9uPyEwOiExKSlyZXR1cm47ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwgYSIpLmZvckVhY2goKGYsZyk9PntnPWYuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2xhc3Njb21tZXJjaWFsX2NvbnRhaW5lciIpLmxlbmd0aCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRpdkNhclNpbmdsZU91dGVyQm94IGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwppZihnLmluY2x1ZGVzKCJzaG9wLmZvcmQuY2EiKSl7bGV0IG09ITE7Zy5pbmNsdWRlcygic3VwZXJkdXR5IikmJihtPWcucmVwbGFjZSgiL3N1cGVyZHV0eS8iLCIvc3VwZXJkdXR5LWNvbW1lcmNpYWwvIikpOyExIT09bSYmZi5zZXRBdHRyaWJ1dGUoImhyZWYiLG0pfX0pfX0sMkUzKTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe2lmKCJtb3VzZWxlYXZlIiE9CmYudHlwZSl7dmFyIGc9JCh0aGlzKS5maW5kKCIubWVudS10ZWNoLXNwZWNzIik7MD09Zy5sZW5ndGgmJihnPSQoIiNtZW51LXNwZWNzLXRlbXBsYXRlIikuY2xvbmUoKSk7dmFyIG09dGhpcztpZigwPT0kKG0pLmNoaWxkcmVuKCIubWVudS10ZWNoLXNwZWNzIikubGVuZ3RoKXt2YXIgbD0kKG0pLmZpbmQoImE6bnRoLW9mLXR5cGUoMikiKS50ZXh0KCksdT0kKG0pLmZpbmQoImE6Zmlyc3QtY2hpbGQiKS5hdHRyKCJocmVmIikscT11Lmxhc3RJbmRleE9mKCIvIikrMTtjYXJMaW5rVHJpbW1lZD11LnN1YnN0cmluZyhxLHUubGVuZ3RoKTt2YXIgcj0kKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKStjYXJMaW5rVHJpbW1lZDsoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXt2YXIgeT0KMDwkKG0pLmNsb3Nlc3QoImxpW2RhdGEtaWRePSdORVdfQ09NTUVSQ0lBTCddIikubGVuZ3RoPyEwOiExLEE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCk7QT1KU09OLnBhcnNlKEEpO3ZhciBJPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksQj1yLm1hdGNoKCJlbiI9PUk\/L1wvYnVpbGQtYW5kLXByaWNlXC8oXGR7NH0tKFx3KyktKFx3KykuKlwuaHRtbCkuKi86L1wvY29uZmlndXJhdGlvbi1ldC1wcml4XC8oKFx3KyktKFx3KyktXGR7NH0pLipcLmh0bWwvKSxKPUJbMF0sRj1CWzJdLnRvTG93ZXJDYXNlKCk7Qj1CWzNdLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgiXyIsIiAiKTt5JiZCLmluY2x1ZGVzKCJzdXBlciBkdXR5IikmJihCPSJzdXBlciBkdXR5IGNvbW1lcmNpYWwiKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIj09PXR5cGVvZiBBW0ZdW0JdKWZvcih2YXIgSyBpbiBBW0ZdKWlmKHk9SyxCLmluY2x1ZGVzKHkpKXtCPXk7CmJyZWFrfSJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl1bQl0mJigkKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikscj1yLnJlcGxhY2UoSixBW0ZdW0JdW0ldKSl9fSkoKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigiaHJlZiIscik7JChnKS5maW5kKCIubWVudS1zcGVjLWxpbmsiKS5hdHRyKCJocmVmIix1KTskKGcpLnJlbW92ZUF0dHIoImlkIik7JChnKS5jaGlsZHJlbigiLm1lbnUtc3BlY3MtdGl0bGUiKS5hcHBlbmQobCk7dmFyIHA9e307JC5pc0VtcHR5T2JqZWN0KGMoKS5jYXJzLmRldGFpbHMpPyQud2hlbihjKCkuc3BlY3NBamF4KS5kb25lKGZ1bmN0aW9uKHkpe3A9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpfSk6cD1jKCkuY2Fycy5maW5kQnlJZCgkKG0pLmRhdGEoIm1vZGVsaWQiKSk7aWYoISQuaXNFbXB0eU9iamVjdChwKSl7dmFyIHc9YS5zaG91bGRVc2VGcmVuY2hOYW1lcygpPwpwLm5hbWU6cC5tb2RlbDtwLmhhc093blByb3BlcnR5KCJiYXNlX3N0eWxlIikmJihwPXAuYmFzZV9zdHlsZSx3PXAubW9kZWwpO3E9IkZSRU5DSCI9PSQoIiN0ZXh0TGFuZ3VhZ2UiKS52YWwoKT8iTi9EIjoiTi9BIjtsPSIiPT1wLmRpc3BsYWNlbWVudD9xOnAuZGlzcGxhY2VtZW50O3U9IiI9PXAuY2l0eUZ1ZWw\/cTpwLmNpdHlGdWVsO3E9IiI9PXAuaHd5RnVlbD9xOnAuaHd5RnVlbDt2YXIgej1wLm1zcnBBbGxJbixEPSQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS50ZXh0KCkudHJpbSgpO0Q9RC5yZXBsYWNlKCIkTU9ERUwiLHcpO3c9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7ei50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj5gO3o9JCgiI0FETUlOX05FV19ET05UX1NIT1dfUFJJQ0VfTU9ERUxTIikudmFsKCkuaW5jbHVkZXMocC5tb2RlbGlkKTtpZigwPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmxlbmd0aCl7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikudGV4dCgiIik7CnZhciBDPSQoJzxkaXYgY2xhc3M9InByaWNlIi8+JyksRT0kKCc8c3BhbiBjbGFzcz0icHJpY2VfYW10Ii8+JyksRz0kKCc8c3BhbiBjbGFzcz0icHJpY2Vfc2NyYXRjaGVkIi8+JyksSD0kKCc8c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iLz4nKTswPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2Utc2NyYXRjaCIpLmxlbmd0aD8oRy5odG1sKHcpLEUuYXBwZW5kKEcpLEUuY3NzKHsidGV4dC1kZWNvcmF0aW9uIjoibGluZS10aHJvdWdoIixjb2xvcjoicmVkIn0pKTpFLmh0bWwodyk7Qy5hcHBlbmQoRSk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikubGVuZ3RoJiYoSC50ZXh0KCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2VfcHJvbW8iKS50ZXh0KCkpLEguY3NzKHtjb2xvcjoicmVkIn0pLEMuYXBwZW5kKEgpKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5hcHBlbmQoQyl9ZWxzZSAkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5odG1sKHcpOwokKGcpLmZpbmQoIi5tZW51LXNwZWMtaHAiKS50ZXh0KHAuaHBBdFJQTSk7JChnKS5maW5kKCIubWVudS1zcGVjLXBvd2VyIikudGV4dChsKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1jaXR5IikudGV4dCh1KTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1oaWdod2F5IikudGV4dChxKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZHJpdmV0cmFpbiIpLnRleHQocC5kcml2ZVRyYWluKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmxhc3QoKS5yZXBsYWNlV2l0aChEKTt6JiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLnJlbW92ZSgpLCQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoJCgiI05FV19QUklDRV9URVhUIikudmFsKCkpKTskKGcpLmZpbmQoIi5tZW51LXByaWNlLXRleHQiKS50ZXh0KGQoJChnKS5maW5kKCIubWVudS1wcmljZS10ZXh0IikudGV4dCgpLApwKSk7NUU4PnAuaWQmJiQobSkuYXBwZW5kKGcuZmFkZUluKDIwMCkpO2w9bmV3IEN1c3RvbUV2ZW50KCJ0b3BuYXYtdGVjaC1zcGVjLWxvYWRlZCIse2RldGFpbDp7dGVtcGxhdGU6Z319KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGwpfX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9YS5wb3NpdGlvbnMobSxmLCQoZykpO3kudXBkYXRlKCk7dmFyIEE9JChtKS5wYXJlbnQoInVsLnN1YiIpLnBhcmVudCgpLnBhcmVudCgpO0Eub2Zmc2V0KCk7QS5vdXRlckhlaWdodCgpO3kuc3BlY3NCb3R0b208eS5zdWJNZW51SXRlbVRvcCYmJChnKS5jc3MoInRvcCIseS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKTt5LnN1Yk1lbnVJdGVtVG9wPHkuc3BlY3NCb3R0b20mJnkuc3ViTWVudUl0ZW1Cb3R0b20+eS5zcGVjc0JvdHRvbSYmJChnKS5jc3MoInRvcCIsJChnKS5wb3NpdGlvbigpLnRvcCsoeS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKSl9LDApO2RlbGV0ZSBwfX0pOwokKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3A6bm90KC5pc09wZW4pJykub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGYpeyQoZi5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygiaXNPcGVuIil8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LCQoIi51cF9tZW51IilbMF0pfHwkKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3AnKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9KTskKCIjTWFpbk1lbnVfQ09OVEFDVCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGYpe3ZhciBnPSQoIiNtZW51LW1hcC1saW5rIik7MD09Zy5sZW5ndGh8fDA8Zy5maW5kKCJpZnJhbWUiKS5sZW5ndGh8fGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24obSl7bT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlPyIrClsicT0iK2VuY29kZVVSSUNvbXBvbmVudChnLmRhdGEoInBsYWNlSWQiKSksInpvb209IitnLmRhdGEoInpvb20iKSwibGFuZ3VhZ2U9IitnLmRhdGEoImxhbmd1YWdlIiksInJlZ2lvbj1DQSIsImtleT0iK21dLmpvaW4oIiYiKTtnLmFwcGVuZCgnPGlmcmFtZSBzcmM9IicrbSsnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI0MDAiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKX0pfSk7JCgiI01haW5NZW51X0ZJTkFOQ0UsICNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9Zi5jdXJyZW50VGFyZ2V0LmlkLG09JCgiIyIrZyk7MD09PSQoIiMiK2crIi5pc09wZW4iKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9PWYudHlwZSYmbS5hZGRDbGFzcygiaXNPcGVuIik7aWYoIm1vdXNlbGVhdmUiPT09Zi50eXBlKXt2YXIgbD0kKCIuY3JlZGl0U2NvcmVQb3B1cEZvcm0iKVswXTsKZz0kKCIjIitnKyIgPiBhLnRvcF9saW5rIilbMF07KGwmJmYuZnJvbUVsZW1lbnQ9PT1sfHxnJiZmLmZyb21FbGVtZW50PT09ZykmJm0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpO2w9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmNoaWxkcmVuKCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJuZWJDYWwiKXx8JChmLnRvRWxlbWVudCkuY2xvc2VzdCgiLm5lYkNhbCIpLmxlbmd0aDtnPSQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJwYWMtY29udGFpbmVyIik7aWYoIShudWxsPT09Zi50b0VsZW1lbnR8fGNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSl8fGNoaWxkT2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxtWzBdKXx8bHx8Zyl8fGNoaWxkT2YoZi50b0VsZW1lbnQsJCgiLnVwX21lbnUiKVswXSkmJiFjaGlsZE9mKGYudG9FbGVtZW50LG1bMF0pKSQoIi5uZWJDYWwiKS5pcygiOnZpc2libGUiKSYmCihmPSQoIi5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5kYXRhKCJuZWJDYWwiKSkmJmYuaGlkZSgpLG0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfX0pO2lmKCQoITApKXtlPSQoIi5tZW51NSAubmF2ID4gbGkiKTtrPWUubGVuZ3RoO3ZhciB4PSQoIiNNYWluTWVudV9DT05UQUNUIiksdj0tMTtlLmVhY2goZnVuY3Rpb24oZixnKXskKGcpLmlzKHgpJiYodj1mKX0pOy0xPHYmJi41PD12L2smJnguZmluZCgiLmNvbnRhY3R1cy1mb3JtLmNvbnRhY3Qtc2hvcnQiKS5jc3Moe3JpZ2h0OiJpbmhlcml0In0pfXRoaXMuc2hvdWxkVXNlRnJlbmNoTmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4iRlJFTkNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYiMSI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCl9O3RoaXMuc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb249ZnVuY3Rpb24oKXt2YXIgZj13aW5kb3cubG9jYXRpb24uaHJlZiwKZz0vdXNlZHxvY2Nhc2lvbi8udGVzdChmKSxtPS9uZXd8bmV1ZnMvLnRlc3QoZiksbD0vZmluYW5jZW1lbnR8Y3JlZGl0Ly50ZXN0KGYpLHU9L3NlcnZpY2V8YWNjZXNzb3JpZXN8dGlyZXxwbmV1c3xib2R5c2hvcHxib2R5LXNob3B8Y2Fyb3NzZXJpZS8udGVzdChmKTtmPSIiO20\/Zj0ibmV3IjpnP2Y9InVzZWQiOmw\/Zj0iZmluYW5jZSI6dSYmKGY9InNlcnZpY2UiKTsiIiE9ZiYmKGc9JCgiLm1lbnUgI3F1aWNrRW1haWxEZXBhcnRtZW50IiksJCgnIG9wdGlvblt2YWx1ZT0iJytmKyciXScsZykucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpLG09JCgib3B0aW9uOnNlbGVjdGVkIixnKS5pbmRleCgpLGcucHJldigidWwiKS5maW5kKCJsaSIpLmVxKG0pLmZpbmQoImEiKS50cmlnZ2VyKCJjbGljayIpKX07c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb24oKX0sMTApO2NvbnNvbGUubG9nKCJNZW51SGFuZGxlciBpbml0IC0tIHRlc3QgcmVtb3ZlIGxhdGVyIik7CnRoaXMudHJhbnNsYXRlVGl0bGVzPWZ1bmN0aW9uKCl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXt2YXIgZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1tZW51LXRyYW5zbGF0ZV0iKTtpZihmKXt2YXIgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikuY2xhc3NOYW1lLm1hdGNoKCJGUkVOQ0giKT8iZnIiOiJlbiIsbT0obmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2d9Lmpzb25gLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKS5ocmVmO3Jlc3BvbnNlPXlpZWxkIGZldGNoKG0pO2lmKHRleHQ9eWllbGQgcmVzcG9uc2UudGV4dCgpKWlmKGRhdGE9SlNPTi5wYXJzZSh0ZXh0KSxmJiYwIT09ZGF0YS5sZW5ndGgpZm9yKGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGw9ZltnXS5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudS10cmFuc2xhdGUiKTtkYXRhW2xdJiZCYXNlNjQuaXNCYXNlNjQoZGF0YVtsXS50ZXh0KSYmCihmW2ddLnRleHRDb250ZW50PUJhc2U2NC5kZWNvZGUoZGF0YVtsXS50ZXh0KSl9fX1jYXRjaCh1KXtjb25zb2xlLmxvZyh1KX19KX07dGhpcy50cmFuc2xhdGVUaXRsZXMoKX19KSgpOyQoZnVuY3Rpb24oKXt3aW5kb3cubWVudUhhbmRsZXI9bmV3IE1lbnVIYW5kbGVyfSk7CnZhciBnZXRBY3RpdmVQYWdlPWZ1bmN0aW9uKCl7dmFyIGE9IiI7InVuZGVmaW5lZCI9PT10eXBlb2YgYWN0aXZlUGFnZSYmKGFjdGl2ZVBhZ2U9IiIpO3N3aXRjaChhY3RpdmVQYWdlKXtjYXNlICJIT01FUEFHRSI6YT0iQWNjdWVpbCI7YnJlYWs7Y2FzZSAiQ0FSREVUQUlMUyI6YT0iT2NjYXNpb24tVkRQIjticmVhaztjYXNlICJVU0VEQ0FSUyI6YT0iT2NjYXNpb24tU1JQIjticmVhaztjYXNlICJORVdDQVJTIjphPSJOZXVmLVNSUCI7YnJlYWs7Y2FzZSAiTkVXQ0FSREVUQUlMUyI6YT0iTmV1Zi1WRFAifXJldHVybiBhfSxzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQ9ZnVuY3Rpb24oYSxiKXtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNsaXF1ZXMgQmFubmllcmUiLGEsYiwxKX07CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpe2lmKGE9Z2V0QWN0aXZlUGFnZSgpKXt2YXIgYj0iIiE9JCh0aGlzKS5hdHRyKCJocmVmIik\/JCh0aGlzKS5hdHRyKCJocmVmIik6IlBvcHVwIjtzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSxiKX19KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjdG9wQmFubmVySW1hZ2UiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJnNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLCJQb3B1cCIpfSk7dmFyIGhvbWVQYWdlQmFubmVyVmlldz1bXTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHw1MDA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSwwPiQuaW5BcnJheShhLGhvbWVQYWdlQmFubmVyVmlldykmJihob21lUGFnZUJhbm5lclZpZXcucHVzaChhKSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtdmlldyIsYSwxKSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiIsZnVuY3Rpb24oYSl7IShhPWdldEFjdGl2ZVBhZ2UoKSl8fCJBY2N1ZWlsIiE9YXx8MzUwPCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpfHwoYT0kKCIjbW9iaWxlU2xpZGVyMiIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiTW9iaWxlLXZpZXciLGEsMSkpKX0pOwpmdW5jdGlvbiB0aHJlc2hvbGRQb3B1cCgpe3ZhciBhPWdldFVybFZhcnMoKTtpZihudWxsPT1Db29raWVzLmdldCgicG9wdXBTaG93biIpfHwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZGVidWcpc2hvd1BvcHVwV2lkZ2V0KHtkb05vdFJlZGlyZWN0OiEwfSksQ29va2llcy5zZXQoInBvcHVwU2hvd24iLCIxIiw5MCwiLyIpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VTZXQoYSxiLGMpe2M9ODY0RTUqKGN8fDEpO2I9e3ZhbHVlOmIsZXhwaXJ5OihuZXcgRGF0ZSkuZ2V0VGltZSgpK2N9O2xvY2FsU3RvcmFnZS5zZXRJdGVtKGEsSlNPTi5zdHJpbmdpZnkoYikpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VHZXQoYSl7dmFyIGI9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYSk7aWYoIWIpcmV0dXJuIG51bGw7Yj1KU09OLnBhcnNlKGIpO3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpPmIuZXhwaXJ5Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKSxudWxsKTpiLnZhbHVlfQpmdW5jdGlvbiBfbG9jYWxTdG9yYWdlUmVtb3ZlKGEpe2lmKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKSlyZXR1cm4gbnVsbDtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKCl7cmV0dXJuImlkLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9Y29uc3QgaW5pdFRvb2x0aXBzPSgpPT57dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXBvcHBlcl0iKS5mb3JFYWNoKGE9PntUb29sdGlwKGEpLmNyZWF0ZSgpfSl9Y2F0Y2goYSl7Y29uc29sZS5sb2coIlRvb2x0aXAgb2JqZWN0IG5vdCBmb3VuZCIpfX07CmZ1bmN0aW9uIGhhbmRsZUNvb2tpZUNvbnRlbnQoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jb29raWVoaWRlXSIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC5jb29raWVoaWRlO2IubGVuZ3RoJiZDb29raWVzLmdldChiKSYmKGEuaGlkZGVuPSEwKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZXNob3ddIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZXNob3c7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITEpfSl9dmFyIHNpdGVQYWdlPXt9Owpjb25zdCBkb2NSZWFkeT1mdW5jdGlvbigpe19sb2NhbFN0b3JhZ2VHZXQoImQyYy11aWQiKXx8X2xvY2FsU3RvcmFnZVNldCgiZDJjLXVpZCIsZ2VuZXJhdGVVbmlxdWVJZCgpLDIpO2lmKCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXtsZXQgYTtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIENPTVBMRVRFOiIrKERhdGUubm93KCktKG51bGwhPShhPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YTowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChiPT57Yi5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMDtzaXRlUGFnZT17bmFtZToidW5kZWZpbmVkIiE9dHlwZW9mIHBhZ2U\/CnBhZ2U6IiIsaXNNb2JpbGU6IjEiPT0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzbW9iaWxlIil8fCIiKS52YWx1ZSxsYW5nOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlc2l0ZWxhbmd1YWdlIil8fCIiKS52YWx1ZXx8IkZSRU5DSCJ9O2hhbmRsZUNvb2tpZUNvbnRlbnQoKTtpbml0VG9vbHRpcHMoKTtkb2NSZWFkeUFyci5mb3JFYWNoKGI9PmIoKSk7ZG9jUmVhZHlBcnI9W119ZWxzZXtsZXQgYTtpZigiaW50ZXJhY3RpdmUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmd2luZG93LmdSZXNvdXJjZUxvYWRlckFuZEpxdWVyeUlzUmVhZHkmJiExPT09KG51bGwhPShhPXdpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQpP2E6ITEpKXtsZXQgYjtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIElOVEVSQUNUSVZFOiIrKERhdGUubm93KCktKG51bGwhPShiPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YjowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChjPT4Ke2MuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tdHh0IiwhMSl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tc2xpZGVyIikuZm9yRWFjaChjPT57Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi1zbGlkZXIiLCExKX0pO3dpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQ9ITB9c2V0VGltZW91dChkb2NSZWFkeSw1MCl9fTtkb2NSZWFkeSgpOwokKGZ1bmN0aW9uKCl7dmFyIGE9ITA7JCh3aW5kb3cpLm9uKCJzY3JvbGwiLGZ1bmN0aW9uKCl7dmFyIGQ9JChkb2N1bWVudCkuaGVpZ2h0KCksZT0kKHdpbmRvdykuaGVpZ2h0KCkrJCh3aW5kb3cpLnNjcm9sbFRvcCgpOy4wNT4oZC1lKS9kJiZhJiYoYT0hMSwidW5kZWZpbmVkIiE9PXR5cGVvZiBnYVRyYWNrJiZnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkJvdHRvbSBvZiBwYWdlIHJlYWNoZWQiLCQoJ2lucHV0W25hbWU9InRhcmdldFBhZ2UiXScpLnZhbCgpLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpKX0pOyQoIi5lbWJlZC1jb250YWluZXIteW91dHViZSIpLnBhcmVudCgiLndyYXBwZXIiKS5yZW1vdmVDbGFzcygid3JhcHBlciIpO2lmKCQoIiNpc0JyYW5kUGFnZSIpLmxlbmd0aCl7dmFyIGI9Z2V0VXJsVmFycygpO2lmKGIua3cmJi0xIT1iLmt3LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2FuYWRhIikpe3ZhciBjPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSYmIkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjtiPSJlbiI9PWM\/IkhlcmUgd2Ugb2ZmZXIgdGhlIGJlc3QgcHJpY2VzIjoiSWNpIG9uIG9mZnJlIGxlcyBtZWlsbGV1cnMgcHJpeCI7Yz0iZW4iPT1jPyJvbiAiKyQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIncyBpbiBDYW5hZGEiOiQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIgYXUgQ2FuYWRhIjskKCIjZGVmYXVsdFRvcEJhbm5lclRpdGxlIikudGV4dChiKTskKCIjZGVmYXVsdFRvcEJhbm5lclRleHQiKS50ZXh0KGMpfX0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYj1nZXRVcmxWYXJzKCksYi5maW5hbmNlcG9wJiYieWVzIj09Yi5maW5hbmNlcG9wJiZzZXRUaW1lb3V0KCgpPT57JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkub3BlbigpfSwxRTMpKTswPCQoIi50cmFkZXNpaS1yb290IikudGV4dCgpLmxlbmd0aD8kKCIudHJhZGVzaWktcm9vdCIpLmNzcygiei1pbmRleCIsCjFFMyk6c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwxRTMpfSwxRTMpfSk7ZnVuY3Rpb24gYWRkTWF4TGVuZ3RoKCl7JCgiOmlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigidHlwZSIpLGI9JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKTtpZih2b2lkIDA9PWJ8fG51bGw9PWJ8fCIiPT1iKSJ0ZXh0Ij09YXx8InRlbCI9PWF8fCJlbWFpbCI9PWF8fCJ1cmwiPT1hPyQodGhpcykucHJvcCgibWF4bGVuZ3RoIiwyNTYpOiJudW1iZXIiPT1hJiYoJCh0aGlzKS5wcm9wKCJvbmlucHV0IiwidGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5tYXhsZW5ndGgpIiksJCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1NikpfSl9ZG9jUmVhZHlBcnIucHVzaCgoKT0+eyQoIi5yZXZlYWwtbW9kYWwiKS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oKXthZGRNYXhMZW5ndGgoKX0pO2FkZE1heExlbmd0aCgpfSk7CihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQsZSl7dGhpcy5lbD1kO3RoaXMuJGVsPWEoZCk7aWYodm9pZCAwPT09ZXx8Im9iamVjdCI9PT10eXBlb2YgZSl0aGlzLnNldHRpbmdzPWEuZXh0ZW5kKGMsZSk7dGhpcy5pbml0KCl9dmFyIGM9e2xhdDoiIixsb25nOiIiLHBvc3RhbDoiIixyYXRpbzouNjg4NSx3aWR0aDoiYXV0byJ9O2IucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy4kZWwuaXMoIi5sYXp5bG9hZCIpPyJkYXRhLWltZ3NyYyI6InNyYyI7dGhpcy4kZWwuYXR0cihkLHRoaXMuZ2V0VXJsKCkpfSxpc1Zpc2libGU6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3JldHVybiEoIjBweCI9PT10aGlzLiRlbC5hdHRyKCJoZWlnaHQiKXx8IjBweCI9PT1kKX0sZ2V0V2lkdGg6ZnVuY3Rpb24oKXt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3ZhciBkPTA7ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT8KZD10aGlzLiRlbC5wYXJlbnQoKS5jc3MoIndpZHRoIik6aXNOYU4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy53aWR0aCkpP3ZvaWQgMCE9PXRoaXMuJGVsLmF0dHIoIndpZHRoIikmJihkPXRoaXMuJGVsLmF0dHIoIndpZHRoIikpOmQ9dGhpcy5zZXR0aW5ncy53aWR0aDt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldEhlaWdodDpmdW5jdGlvbigpe3ZhciBkPSJhdXRvIj09PXRoaXMuc2V0dGluZ3Mud2lkdGh8fCJhdXRvIj09PXRoaXMuJGVsLmRhdGEoIndpZHRoIik\/TWF0aC5yb3VuZCh0aGlzLmdldFdpZHRoKCkqdGhpcy5zZXR0aW5ncy5yYXRpbykrInB4Ijp0aGlzLiRlbC5wYXJlbnQoKS5jc3MoImhlaWdodCIpO3RoaXMuJGVsLmF0dHIoImhlaWdodCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldFVybDpmdW5jdGlvbigpe3ZhciBkPWdldERhdGFBdHRyaWJ1dGVzKHRoaXMuZWwpLAplPXRoaXMuZ2V0V2lkdGgoKSxrPXRoaXMuZ2V0SGVpZ2h0KCksaD1kLmxhdCsiLCIrZC5sb25nLG49ZC5oYXNPd25Qcm9wZXJ0eSgibWFya2VySWNvbiIpPyJpY29uOiIrZC5tYXJrZXJJY29uKyJ8IjoiIjtkPWEuZXh0ZW5kKHtzaXplOmUrIngiK2ssY2VudGVyOmgsem9vbToiMTIiLG1hcmtlcnM6bitofSxkKTtyZXR1cm4iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD8iK2EucGFyYW0oZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRlbC5yZW1vdmVEYXRhKCl9fTthLmZuLmdvb2dsZVN0YXRpY01hcD1mdW5jdGlvbihkKXt2YXIgZT1hcmd1bWVudHM7aWYoMT50aGlzLmxlbmd0aClyZXR1cm4gdGhpczt0aGlzLmVhY2goZnVuY3Rpb24oKXtpZighYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiKSlyZXR1cm4gYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiLG5ldyBiKHRoaXMsZCkpLHRoaXN9KTtpZigic3RyaW5nIj09PXR5cGVvZiBkJiYKIl8iIT09ZFswXSYmImluaXQiIT09ZCl7MTx0aGlzLmxlbmd0aCYmY29uc29sZS5sb2coImdvb2dsZVN0YXRpY01hcCB3YXJuaW5nIGNvZGUgMSIpO3ZhciBrPWEuZGF0YSh0aGlzLmZpcnN0KClbMF0sInBsdWdpbl9zdGF0aWNNYXAiKTtyZXR1cm4ga1tkXS5hcHBseShrLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMSkpfXJldHVybiB0aGlzfX0pKGpRdWVyeSk7ZnVuY3Rpb24gcGFyc2VRdWVyeShhKXtpZigxPmEubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgYj17fSxjPWEuc3BsaXQoIiYiKSxkPTA7ZDxjLmxlbmd0aDtkKyspYT1leHBsb2RlKGNbZF0sIj0iLDEpLGJbYVswXV09YVsxXTtyZXR1cm4gYn1mdW5jdGlvbiBkZWNvZGVTdHJpbmcoYSxiKXtpZigiIj09Ynx8InVuZGVmaW5lZCI9PWIpYj0xO2ZvcihpPTA7aTxiO2krKylhPWRlY29kZVVSSUNvbXBvbmVudChhKTtyZXR1cm4gYX0KZnVuY3Rpb24gZXhwbG9kZShhLGIsYyl7YT1hLnNwbGl0KGIpO2lmKGEubGVuZ3RoPD1jKXJldHVybiBhO2M9YS5zcGxpY2UoMCxjKTtjLnB1c2goYS5qb2luKGIpKTtyZXR1cm4gY31mdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkoYSl9ZnVuY3Rpb24gZ2V0Q29va2llKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWUoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gZ2V0Q29va2llRDJjKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWVEMmMoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gaXNTU0woKXtyZXR1cm4iaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH1mdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGEsYil7Q29va2llcy5zZXQoYSxiLDAsIi8iKX0KZnVuY3Rpb24gaW5pdExDSShhLGIpe2lmKDIwPGIpcmV0dXJuIGI7Yj1iP2I6MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIExDX0FQSXx8InVuZGVmaW5lZCI9PXR5cGVvZiBMQ19JbnZpdGUpc2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0koYSwrK2IpfSw1MDApO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19BUEkmJiJ1bmRlZmluZWQiIT10eXBlb2YgTENfSW52aXRlJiZhKXJldHVybiBMQ19BUEkuc2V0X2N1c3RvbV92YXJpYWJsZXMoYSl9ZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXsiIj09YSYmKGE9ZG9jdW1lbnQucmVmZXJyZXIpO3ZhciBiPWEuaW5kZXhPZigiPyIpKzE7cmV0dXJuIDA8Yj8oYj1hLnNsaWNlKGIpLHBhcnNlUXVlcnkoYikpOnt9fX0KKGZ1bmN0aW9uKGEpe3ZhciBiPXtjYWxsYmFja3M6W10saGFzU2NyaXB0OmZ1bmN0aW9uKCl7dmFyIGU9YSgnaGVhZCBzY3JpcHRbc3JjKj0ibWFwcy5qcy5waHAiXScpO3JldHVybiAwPT1lLmxlbmd0aD8hMTovbWFwc1wuanMvLnRlc3QoZS5hdHRyKCJzcmMiKSl9LGxvYWQ6ZnVuY3Rpb24oZSl7aWYoYi5oYXNTY3JpcHQoKSkidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGU\/Yi5jYWxsYmFja3MucHVzaChlKTplKCk7ZWxzZXtiLmNhbGxiYWNrcy5wdXNoKGUpO3RyeXt2YXIgaz0iRU5HTElTSCI9PWEoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciI7KGZ1bmN0aW9uKGgsbix4LHYsZil7aFtmXSYmaFtmXS5tYXBzfHwoaD1uLmNyZWF0ZUVsZW1lbnQoeCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKHgpWzBdLGguc3JjPXYsaC5hc3luYz0hMSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImdvb2dsZU1hcHNMb2FkZWQiLGc9Pntmb3IoZz0wO2c8Yi5jYWxsYmFja3MubGVuZ3RoO2crKyliLmNhbGxiYWNrc1tnXS5jYWxsKCl9KSwKbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShoLG4pKX0pKHdpbmRvdyxkb2N1bWVudCwic2NyaXB0IiwiL2pzL21hcHMuanMucGhwP2xhbmc9IitrLCJnb29nbGUiKX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX19fX0sYz17YXV0b0NvbXBsZXRlOntjb21wb25lbnRSZXN0cmljdGlvbnM6e2NvdW50cnk6ImNhIn19LHJhZGl1czoxRTV9LGQ9ZnVuY3Rpb24oZSxrKXt2YXIgaD10aGlzO2guZWw9ZTtoLiRlbD1hKGUpO2guc2V0dGluZ3M9YS5leHRlbmQoYyxrKTtoLmFkZHJlc3M9e2NpdHk6IiIsc3RyZWV0X251bWJlcjoiIixzdHJlZXQ6IiIsc3VibG9jYWxpdHk6IiIscHJvdmluY2U6IiIsY291bnRyeToiIixwb3N0YWw6IiJ9O2guJGVsLm9uZSgiZm9jdXMiLGZ1bmN0aW9uKCl7aC5pbml0KCl9KX07ZC5wcm90b3R5cGU9e19jaGVja0Zvckdvb2dsZU1hcHM6ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlfHwidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGUubWFwcz8KYi5sb2FkKGUpOiJmdW5jdGlvbiI9PT10eXBlb2YgZSYmZS5jYWxsKCl9LGdldEFkZHJlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGRyZXNzfSxfc2V0QWRkcmVzczpmdW5jdGlvbihlKXt2YXIgaz10aGlzO2EuZWFjaChlLGZ1bmN0aW9uKGgsbil7c3dpdGNoKCEwKXtjYXNlIC0xPGEuaW5BcnJheSgic3RyZWV0X251bWJlciIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldF9udW1iZXI9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgicm91dGUiLG4udHlwZXMpOmsuYWRkcmVzcy5zdHJlZXQ9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgic3VibG9jYWxpdHkiLG4udHlwZXMpOmsuYWRkcmVzcy5zdWJsb2NhbGl0eT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJsb2NhbGl0eSIsbi50eXBlcyk6Y2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMyIsbi50eXBlcyk6IiI9PWsuYWRkcmVzcy5jaXR5JiYoay5hZGRyZXNzLmNpdHk9bik7YnJlYWs7CmNhc2UgLTE8YS5pbkFycmF5KCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEiLG4udHlwZXMpOmsuYWRkcmVzcy5wcm92aW5jZT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJjb3VudHJ5IixuLnR5cGVzKTprLmFkZHJlc3MuY291bnRyeT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJwb3N0YWxfY29kZSIsbi50eXBlcyk6ay5hZGRyZXNzLnBvc3RhbD1ufX0pfSxfc2V0U2VhcmNoQm91bmRzOmZ1bmN0aW9uKGUsayxoKXtrPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoayxoKTtrPW5ldyBnb29nbGUubWFwcy5DaXJjbGUoe2NlbnRlcjprLHJhZGl1czp0aGlzLnNldHRpbmdzLnJhZGl1c30pO2Uuc2V0Qm91bmRzKGsuZ2V0Qm91bmRzKCkpfSxpbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9jaGVja0Zvckdvb2dsZU1hcHMoZnVuY3Rpb24oKXt2YXIgaz1uZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIsaD1uZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZShlLmVsLAplLnNldHRpbmdzLmF1dG9Db21wbGV0ZSk7ZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibGF0IikmJmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImxvbmciKT8iIiE9PWUuc2V0dGluZ3MubGF0JiYiIiE9PWUuc2V0dGluZ3MubG9uZyYmZS5fc2V0U2VhcmNoQm91bmRzKGgsZS5zZXR0aW5ncy5sYXQsZS5zZXR0aW5ncy5sb25nKTplLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJhZGRyZXNzIik\/ZS5zZXR0aW5ncy5hZGRyZXNzJiZrLmdlb2NvZGUoe2FkZHJlc3M6ZS5zZXR0aW5ncy5hZGRyZXNzfSxmdW5jdGlvbihuLHgpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KToidW5kZWZpbmVkIiE9PXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzJiYwPGZvb3Rlck1hcEFkZHJlc3MubGVuZ3RoJiZrLmdlb2NvZGUoe2FkZHJlc3M6Zm9vdGVyTWFwQWRkcmVzc1swXS5hZGRyZXNzfSxmdW5jdGlvbihuLAp4KXtlLl9zZXRTZWFyY2hCb3VuZHMoaCxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoaCwicGxhY2VfY2hhbmdlZCIsZnVuY3Rpb24oKXt2YXIgbj1oLmdldFBsYWNlKCk7ZS5fc2V0QWRkcmVzcyhuLmFkZHJlc3NfY29tcG9uZW50cyk7ZS4kZWwudmFsKG4uZm9ybWF0dGVkX2FkZHJlc3MpO249bmV3IEV2ZW50KCJpbnB1dCIpO2UuZWwuZGlzcGF0Y2hFdmVudChuKTtlLiRlbC50cmlnZ2VyKCJmb2N1cyIpfSl9KX19O2EuZm4uZ29vZ2xlUGxhY2VzPWZ1bmN0aW9uKGUpe3ZhciBrPWFyZ3VtZW50cztpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXthLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIpfHxhLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIsbmV3IGQodGhpcyxlKSl9KTtpZigic3RyaW5nIj09PXR5cGVvZiBlJiYKIl8iIT09ZVswXSYmImluaXQiIT09ZSl7dmFyIGg9YS5kYXRhKHRoaXNbMF0sInBsdWdpbl9wbGFjZXMiKTtyZXR1cm4gaFtlXS5hcHBseShoLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGssMSkpfX19KShqUXVlcnkpOwpmdW5jdGlvbiBzaG93QmFubmVyUG9wdXAoYSl7dHJ5eyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT9zaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6MDwkKCIjYmFubmVyUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gZGlzcGxheSB0cmFkZWludmFsdWVzIGlmcmFtZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19CiQoZnVuY3Rpb24oKXswPCQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpLmdvb2dsZVBsYWNlcygpOyJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZGFya1Rvb2x0aXAmJigkKCIjc29jaWFsX21lZGlhX2ljb25zX2RpdiBhLCAuZ1JhdGluZy1pY29uIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Im5vcnRoIixvcGFjaXR5OjF9KSwkKCIuc29jaWFsLW1lZGlhLWljb25zIFtkYXRhLXRvb2x0aXBdIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6InNvdXRoIixvcGFjaXR5OjF9KSwkKCIjbWl0c3ViaXNoaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiwgI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgYS5zb2NpYWwtbWVkaWFfX2ljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pKTt2YXIgYT0kKCIuZ3JheWJveC51c2VkRGV0YWlsc1Bob25lLCAuZ3JheWJveC5uZXdEZXRhaWxzUGhvbmUiKTsKMD09PWEuY2hpbGRyZW4oKS5sZW5ndGgmJjA9PT1hLnRleHQoKS50cmltKCkubGVuZ3RoJiZhLmhpZGUoKX0pOyQoIiNmaW5hbmNlQWx0RGlzcGxheSAuc3RlcDEgYmlnLnRleHQgYmlnIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOyQoIi5jcmVkaXRfbV9jYWxsdXNfd3JhcHBlciBhIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5sZW5ndGgmJihlbGVtZW50VG9PYnNlcnZlPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIikuY2hpbGRyZW5bMF0sb2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSxiKXtiPSQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKTtsZXQgYz0kKCJzcGFuW2RhdGEtY2ctZXJyb3JdIixiKTtjb25zb2xlLmxvZygiRDJDRyIsYixjLGEpO2MubGVuZ3RoJiZiLnJlbW92ZSgpfSksb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50VG9PYnNlcnZlLHtjaGFyYWN0ZXJEYXRhOiExLGNoaWxkTGlzdDohMCxhdHRyaWJ1dGVzOiExfSkpfSk7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXstMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvbmV3LyIpfHwkKCIjbmV3LXZkcC1zcGVjLWJyb2NodXJlIikuaGlkZSgpfSk7CiQoZnVuY3Rpb24oKXskKCIjRm9vdGVyX0ZJTkFOQ0UgPiBhLCBhI0ZpbmFuY2VBY3Rpb25Cb3gsIGEjRmluYW5jZUFjdGlvbkJveExpbmsiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbigpe3ZhciBhPSQodGhpcyksYj0kKCJodG1sIikuYXR0cigibGFuZyIpO2lmKDA8JCgiI0RFQUxFUlBBQ09ERSIpLmxlbmd0aCl7dmFyIGM9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGQ9JCgiI0RFQUxFUkJSQU5EX1BSSU1BUlkiKS52YWwoKS50b0xvd2VyQ2FzZSgpO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjRklOQU5DRUZPUk1UWVBFIikudmFsKCkmJigiZm9yZCI9PWR8fCJsaW5jb2xuIj09ZCkmJiIiIT1jKXt2YXIgZT0oImVuIj09Yj8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSIpKwpjO2I9KCJlbiI9PWI\/Imh0dHBzOi8vd3d3LmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSIpK2M7YS5vZmYoImNsaWNrIik7YS5hdHRyKCJocmVmIiwiZm9yZCI9PWQ\/ZTpiKTthLmF0dHIoInRhcmdldCIsIl9ibGFuayIpfX19KX0pOwokKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7dHJ5e2lmKGdldFBhcmFtZXRlckJ5TmFtZSgicHJvbW8iKSl7dmFyIGE9MDxhY3RpdmF0ZWRQb3B1cERpdklELmxlbmd0aD9hY3RpdmF0ZWRQb3B1cERpdklEOiExO2lmKGEmJjA8YS5sZW5ndGgpe3ZhciBiPSQoIiMiK2EpLnBvcHVwaXplKHtwcmlvcml0eToxMDAsZW5kUG9wdXBRdWV1ZTohMH0pO3BvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihiKX19Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnNob3csNTAwKX1jYXRjaChjKXtjb25zb2xlLmxvZyhjKX19KTsKJChmdW5jdGlvbigpeyQoIi5uYXYgYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oYSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYoKGE9JCh0aGlzKS5hdHRyKCJocmVmIikpJiYhUmVnRXhwKCJqYXZhc2NyaXB0OiIsImdpIikudGVzdChhKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfVVJMIiksKGE9Ii8iPT1hPyJIb21lIjokKHRoaXMpLnRleHQoKSkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSwiTUVOVV9jbGlja2VkX0lORk8iKSl9KX0pOwp2YXIgRDJDVXRpbHM9e0xhbmc6e2lzRU46ZnVuY3Rpb24oKXtyZXR1cm4hKCJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKSl9LGdldFNob3J0TGFuZzpmdW5jdGlvbihhKXtyZXR1cm4gRDJDVXRpbHMuTGFuZy5pc0VOKCk\/YT8iRU4iOiJlbiI6YT8iRlIiOiJmciJ9fSxGb3JtYXQ6e3RvTnVtYmVyOmZ1bmN0aW9uKGEpe2E9YS50b1N0cmluZygpLnNwbGl0KCIuIik7Zm9yKHZhciBiPS8oXGQrKShcZHszfSkvO2IudGVzdChhWzBdKTspYVswXT1hWzBdLnJlcGxhY2UoYiwiJDEsJDIiKTtyZXR1cm4gYVswXX0sdG9QcmljZTpmdW5jdGlvbihhLGIpe3JldHVybiBiPyhiPUQyQ1V0aWxzLkxhbmcuaXNFTigpPyIiOiIgJCIsYCR7RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiQiOiIifSR7RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGEpfSR7Yn1gKTpgPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9PC9zcGFuPmB9fSwKTnVtYmVyOntyb3VuZERvd246ZnVuY3Rpb24oYSl7dmFyIGI9Mj09PWFyZ3VtZW50cy5sZW5ndGg\/cGFyc2VJbnQoYXJndW1lbnRzWzFdKToxO3JldHVybiBNYXRoLmZsb29yKGEvYikqYn0scm91bmRVcDpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguY2VpbChhL2IpKmJ9fSxBcnJheXM6e2ZpbmQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubGVuZ3RoO2lmKDA8ZClmb3IodmFyIGU9MDtlPGQ7ZSsrKWlmKGFbZV1bYl09PWMpcmV0dXJuIGFbZV07cmV0dXJuLTF9fSxTdHJpbmc6e2NhcGl0YWxpemVGaXJzdExldHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1N0cmluZyhhKS5zbGljZSgxKX19LE1vYmlsZTp7aXNNb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gMDwkKCIjaXNNb2JpbGUiKS5sZW5ndGh9fX07CmZ1bmN0aW9uIHNldHVwRmluYW5jaW5nTGluayhhLGIpezQ4NT09KCQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSYmYi5jbGVhcmFuY2UmJjA8YS5sZW5ndGgmJihiPSQoIiNNYWluTWVudV9mNDgyYmFhYi1hYWM0LWVkYTYtNmI1Mi0zID4gYSIpLDA9PWIubGVuZ3RoJiYoYj0kKCIuQ0xFQVJBTkNFIikucGFyZW50KCkuZmluZCgiLnN1Ym1lbnVJdGVtOmZpcnN0LWNoaWxkIikpLDA8Yi5sZW5ndGgmJihiPWIuYXR0cigiaHJlZiIpLCIiIT09YiYmYS5hdHRyKCJocmVmIixiKSkpfXZhciBvcGVuV2luZG93cz1bXSx3aW5kb3dPcGVuT0c9d2luZG93Lm9wZW47CndpbmRvdy5vcGVuPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93T3Blbk9HLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxiPXt3aW5kb3c6YSxhcmdzOmFyZ3VtZW50c307b3BlbldpbmRvd3MucHVzaChiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBqUXVlcnkmJmpRdWVyeShkb2N1bWVudCkudHJpZ2dlcigid2luZG93Lm9wZW4iLGIpO3JldHVybiBhfTsKJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJ3aW5kb3cub3BlbiIsZnVuY3Rpb24oYSxiKXthPWIuYXJncztmb3IodmFyIGM9ITEsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKC0xPGFbZF0uaW5kZXhPZigiY2FyZmF4Iil8fGFbZF0uaW5kZXhPZigiY2FycHJvb2YiKSl7Yz0hMDticmVha31pZihjKXthPXdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHR8fHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7dHJ5e2Iud2luZG93LnJlc2l6ZVRvKGIud2luZG93Lm91dGVyV2lkdGgsTWF0aC5yb3VuZCguOTUqYSkpfWNhdGNoKGUpe319fSl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIi51cF9tZW51IiksYj0kKCIucHJvbW90aW9uU2lkZVZCdXR0b24iKSxjPSQoJyNzbGlkZWl0ID4gbGFiZWxbZm9yPSJvcGVuLWl0ZW0iXTpub3QoLnRleHQtdXMtYnRuKScpO2lmKGEubGVuZ3RoJiZiLmxlbmd0aCl7dmFyIGQ9ITEsZT1mdW5jdGlvbigpe3ZhciBrPSQod2luZG93KS5zY3JvbGxUb3AoKSxoPSQod2luZG93KS5oZWlnaHQoKTtrPWEub2Zmc2V0KCkudG9wK2Eub3V0ZXJIZWlnaHQoKSsxMDAtaztoPU1hdGgubWF4KGgvMixrKTtiLnBhcmVudCgpLmhhc0NsYXNzKCJzcGVjaWFsU2NoZWR1bGVDb250ZW50Iil8fCJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij09Yi5wYXJlbnQoKS5hdHRyKCJpZCIpfHxiLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6aCsicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjoibm9uZSJ9KTtjLmxlbmd0aCYmKGg9YlswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sCmMuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpoKzUrInB4In0pKTtkPSExfTskKHdpbmRvdykub24oInNjcm9sbCByZXNpemUiLGZ1bmN0aW9uKCl7ZHx8KHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSksZD0hMCl9KTtzZXRUaW1lb3V0KGUsMTAwKX19KTtmdW5jdGlvbiByZXBsYWNlVXNlZFZlaGljbGVNb2RlbERpc3BsYXkoYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYXx8YSBpbnN0YW5jZW9mIFN0cmluZykiZnVuY3Rpb24iPT09dHlwZW9mICQmJiQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIil8fC0xIT09YS5pbmRleE9mKCJIeWJyaWRlIikmJihhPWEucmVwbGFjZSgiSHlicmlkZSIsIkh5YnJpZCIpKTtyZXR1cm4gYX0KJChmdW5jdGlvbigpe2lmKCQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5sZW5ndGgpe3ZhciBhPSQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIik\/ImZyIjoiZW4iLGI9JCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iUsOpc2VydmV6LWxlIGF2ZWMgUGF5UGFsICEiOiJSZXNlcnZlIGl0ICB3aXRoIFBheVBhbCAhIjskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgnaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXScpLmF0dHIoInNyYyIsIi9pbWFnZXMvY29udGludWVfd2l0aF9wYXlwYWxfIithKyIucG5nIik7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoImZvcm0iKS5hdHRyKCJ0YXJnZXQiLCJwYXlwYWxJZnJhbWUiKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgidGFibGUgdHI6Zmlyc3QgdGQiKS5jb250ZW50cygpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAzPT10aGlzLm5vZGVUeXBlfSkuZmlyc3QoKS5yZXBsYWNlV2l0aChiKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5maW5kKCdbbmFtZT0iaXRlbV9uYW1lIl0nKS5yZW1vdmUoKTsKJCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuZmluZCgnW25hbWU9Iml0ZW1fbnVtYmVyIl0nKS5yZW1vdmUoKTthPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpdGVtX25hbWUiIHZhbHVlPSInKyQoIiNwaG9uZW1ha2UiKS52YWwoKSsiICIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsiICIrJCgiI3Bob25lbXllYXIiKS52YWwoKSsiIFN0b2NrKCMiKyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCkrJykiPic7JCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuYXBwZW5kKGEpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCdpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdJykub24oImNsaWNrIixmdW5jdGlvbigpe2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJDbGlxdWVzIFBheVBhbCIsIk9jY2FzaW9uIiwkKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpKyItIiskKCIjcGhvbmVtYWtlIikudmFsKCkrIi0iKyQoIiNwaG9uZW1vZGVsIikudmFsKCkrCiItIiskKCIjcGhvbmVteWVhciIpLnZhbCgpKyItIiskKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpLDEpfSk7JCgiI3BheXBhbFBvcHVwIikuZGV0YWNoKCkuYXBwZW5kVG8oImJvZHkiKTskKCcucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W25hbWU9InN1Ym1pdCJdJykub24oImNsaWNrIixmdW5jdGlvbigpeyQoIiNwYXlwYWxQb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9KTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuc2hvdygpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoIlZpcnR1YWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpfHwiVmlydHVlbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCkpJiYkKCIucHJlZmVyZWRWaXJ0dWFsVG9vbCIpLnNob3coKX0pOwpmdW5jdGlvbiBwcmljZVJlcXVlc3RDb21tZW50VGV4dCgpe3ZhciBhPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSxiPSQoIiNpc21vYmlsZSIpLGM9JCgiI3F1ZXN0aW9uc0NvbW1lbnRzIik7YT0iRU5HTElTSCI9PWEudmFsKCk\/IkhpLCBJJ2QgbGlrZSB0byBnZXQgeW91ciBiZXN0IHByaWNlIG9uIGEgMCAgIjoiQm9uam91ciwgaidhaW1lcmFpcyBhdm9pciB2b3RyZSBtZWlsbGV1cnMgcHJpeCBwb3VyIHVuICAgMCI7MDxiLmxlbmd0aCYmIjEiPT1iLnZhbCgpJiYwPGMubGVuZ3RoJiZjLnZhbCgpPT1hJiZjLnZhbCgiIil9JChmdW5jdGlvbigpe3ByaWNlUmVxdWVzdENvbW1lbnRUZXh0KCl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIiNmb290ZXIgLmljb24tdGV4dCBzcGFuW2l0ZW1wcm9wPSd0ZWxlcGhvbmUnXSBhLnBob25lLWxpbmsiKSxiPSQoIiNmb290ZXIgLmljb24tdGV4dCAuZmEtcGhvbmUiKTswPGEubGVuZ3RoJiYwPGIubGVuZ3RoJiYiIj09YS5odG1sKCkudHJpbSgpJiZiLmhpZGUoKX0pOwpmdW5jdGlvbiBwYWdlVmlld0NvdW50R29vZ2xlRXZlbnQoKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsYj0wLGM9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX1ZEUE1WIik7bnVsbCE9Yz8oYz1KU09OLnBhcnNlKGMpLGI9bnVsbCE9Y1thXT9jW2FdOjAsY1thXT1wYXJzZUludChiKSsxKTooYz17fSxjW2FdPTEpO2E9IjEiPT0kKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk\/Ik5FVyI6JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7MD09Yj9nYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIxeCIsMSk6MT09Yj9nYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIyeCIsMSk6Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiM3grIiwxKTtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfVkRQTVYiLEpTT04uc3RyaW5naWZ5KGMpKX0KJC5mbi5pc0luVmlld3BvcnQ9ZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLm9mZnNldCgpLnRvcCxiPWErJCh0aGlzKS5vdXRlckhlaWdodCgpLGM9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGQ9YyskKHdpbmRvdykuaGVpZ2h0KCk7cmV0dXJuIGI+YyYmYTxkfTskLmZuLmlzQWJvdmVWaWV3cG9ydD1mdW5jdGlvbihhKXthPWF8fDA7dmFyIGI9JCh0aGlzKS5vZmZzZXQoKS50b3ArJCh0aGlzKS5vdXRlckhlaWdodCgpLGM9JCh3aW5kb3cpLnNjcm9sbFRvcCgpO3JldHVybiBiPmMrYX07ZnVuY3Rpb24gc2V0UG9wdXBPcGVuT25DbGljaygpeyQoIltkYXRhLXBvcHVwaWRdIikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigiZGF0YS1wb3B1cGlkIik7JCh0aGlzKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7JCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0pfSl9CmZ1bmN0aW9uIGFkZERlYWxlckluc2lkZVNjcmlwdCgpe2lmKCQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikubGVuZ3RoKXt2YXIgYT0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtaWREZWFsZXIiKSxiPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1sYW5nIiksYz0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtYnV0dG9uLXR5cGUiKSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Quc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iik7ZC5zZXRBdHRyaWJ1dGUoInNyYyIsImh0dHBzOi8vZGVhbGVyaW5zaWRlYXBwLmNvbS93aWRnZXRzL2RlYWxlcl9pbnNpZGVfY2FsbC5qcz9kZWFsZXJJZD0iK2ErIiZsYW5nPSIrYisiJmJ1dHRvblR5cGU9IitjKTtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGQpfX0KJChmdW5jdGlvbigpe3NldFBvcHVwT3Blbk9uQ2xpY2soKTthZGREZWFsZXJJbnNpZGVTY3JpcHQoKX0pO2Z1bmN0aW9uIG1vdG9pbnNpZ2h0U2hvcEdvb2dsZU9wdGltaXplKCl7JCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikubGVuZ3RoJiYkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmF0dHIoImRhdGEtbW90b2luc2lnaHRzaG9waWZyYW1ldXJsIiwkKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS52YWwoKSl9ZnVuY3Rpb24gaHRtbFRvTm9kZShhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmlubmVySFRNTD1hLnRyaW0oKTtyZXR1cm4gYi5maXJzdEVsZW1lbnRDaGlsZH0KZnVuY3Rpb24gaHRtbFRvRG9jdW1lbnRGcmFnKGEpe3JldHVybiBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChhKX1mdW5jdGlvbiBodG1sVG9FbGVtZW50cyhhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2IuaW5uZXJIVE1MPWE7cmV0dXJuIGIuY29udGVudC5jaGlsZE5vZGVzfQpjb25zdCB2aWV3UG9ydE9ic2VydmVyPWZ1bmN0aW9uKGEpe2xldCBiPSExLGM9ITEsZD01MDtjb25zdCBlPWs9PntrPWtbMF07bGV0IGg9LjAxPj1rLmludGVyc2VjdGlvblJhdGlvJiZrLmJvdW5kaW5nQ2xpZW50UmVjdC50b3A8ZDtjLmNsYXNzTGlzdC50b2dnbGUoInRvcC1maXhlZCIsaCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNtc0N0YUJ0biIpLmZvckVhY2gobj0+bi5oaWRkZW49IWgpO251bGwhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9hc3QtY29udGFpbmVyIikmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9hc3QtY29udGFpbmVyIikuaGlkZGVuPSFoKX07cmV0dXJue29ic2VydmU6KCk9PntpZihhKXtkKz1hLm9mZnNldEhlaWdodCsxNjt2YXIgaz1hLmNsb3Nlc3QoIi5vYnNlcnZlZC13cmFwcGVyIil8fCExO2lmKCFrKXtsZXQgaD1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJmaXhlZC13cmFwcGVyIj48L2Rpdj4nKTtrPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9Im9ic2VydmVkLXdyYXBwZXIiPjwvZGl2PicpOwphLmFmdGVyKGspO2suYXBwZW5kQ2hpbGQoaCk7aC5hcHBlbmRDaGlsZChhKTtrLnN0eWxlLmhlaWdodD1gJHtoLm9mZnNldEhlaWdodH1weGB9Yj1rO2M9Yi5xdWVyeVNlbGVjdG9yKCIuZml4ZWQtd3JhcHBlciIpOyhuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZSx7cm9vdE1hcmdpbjpgLSR7ZH1weCAwcHggMHB4IDBweGAsdGhyZXNob2xkOlswLC4wMV19KSkub2JzZXJ2ZShiKX19fX07CmZ1bmN0aW9uIGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXMoYSl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImQyZmF2RGF0YSIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmb3JtRmlsbERhdGEiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKTt2YXIgYj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYz1iO2I9Yi5yZXBsYWNlKCJ3d3cuIiwiIik7dmFyIGQ9Yj1iLnJlcGxhY2UoIm0uIiwiIik7Yi5pbmNsdWRlcygiZDJjbWVkaWEuY2EiKSYmKGI9ImQyY21lZGlhLmNhIik7Zm9yKHZhciBlPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpLGs9MDtrPGUubGVuZ3RoO2srKyl7dmFyIGg9ZVtrXSxuPWguaW5kZXhPZigiPSIpO2g9LTE8bj9oLnN1YnN0cigwLG4pOmg7ImQyY19jb29raWVfY29uc2VudCIhPWgudHJpbSgpJiYiT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkIiE9CmgudHJpbSgpJiYiT3B0YW5vbkNvbnNlbnQiIT1oLnRyaW0oKSYmKGg9aC50cmltKCksZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uIitiKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2IrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrYysiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LiIrZCsiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitkKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uZDJjbWVkaWEuY2E7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsCmRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49ZDJjbWVkaWEuY2E7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGNvbnNvbGUubG9nKCJEMkRDIixoLGIpLGs9PXBhcnNlRmxvYXQoZS5sZW5ndGgpLTEmJigidW5kZWZpbmVkIj09PXR5cGVvZiBhJiYkKCIjZDJjRm9vdGVyQ29va2llRGVsZXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKSxzZXRUaW1lb3V0KGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXNSZWZyZXNoLDJFMykpKX1yZXR1cm4hMH0KZnVuY3Rpb24gZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llc1JlZnJlc2goKXt3aW5kb3cudG9wPT09d2luZG93LnNlbGYmJmxvY2F0aW9uLnJlbG9hZCgpfQp3aW5kb3cuZ29vZ2xlUmVjYXB0Y2hhPWZ1bmN0aW9uKCl7dmFyIGE9e3BvbGljeVNpdGVLZXk6IjZMY3gyOFFzQUFBQUFIcGJUYndTTmNRZm1oM2o5cFkwenRGMW9CVVIiLGNoZWNrYm94U2l0ZUtleTpqc19kMmNfZ2V0X3ZhbCgiSVNWTSIpPyI2TGRBWk1Zc0FBQUFBRE4wck8zeVozNG9zTEJ1TTVHSkdXWUJfT2c5IjoiNkxlS2VjWXNBQUFBQUEwWWE3SFVNZUQxNzdkNl9Qc2JjbWowOVZuRiIsZGVmYXVsdEFjdGlvbjoibGVhZF9zdWJtaXQiLGxvYWRlZDohMSxjaGVja2JveGVzOnt9LGFjdGl2ZUZvcm1JZDpudWxsLGlzUmVhZHk6ZnVuY3Rpb24oKXtyZXR1cm4gYS5sb2FkZWQmJndpbmRvdy5ncmVjYXB0Y2hhJiZ3aW5kb3cuZ3JlY2FwdGNoYS5lbnRlcnByaXNlfSxpbml0OmZ1bmN0aW9uKCl7aWYoIWEubG9hZGVkKXRyeXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtiLnNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvZW50ZXJwcmlzZS5qcz9yZW5kZXI9IisKYS5wb2xpY3lTaXRlS2V5O2IuYXN5bmM9ITA7Yi5kZWZlcj0hMDtiLm9ubG9hZD1mdW5jdGlvbigpe2EubG9hZGVkPSEwO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJncmVjYXB0Y2hhLmQyY2xvYWRlZCIpKX07dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYixjKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKX19LHVzZUNoZWNrYm94OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9e3dpZGdldElkOi0xLHRva2VuOiIiLGFjdGlvbjpjfHxhLmRlZmF1bHRBY3Rpb259O2EuY2hlY2tib3hlc1tiXT1kO2EubG9hZGVkfHxhLmluaXQoKTtjPWZ1bmN0aW9uKCl7aWYoISgtMTxkLndpZGdldElkKSlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSl0cnl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLnJlYWR5KGZ1bmN0aW9uKCl7ZC53aWRnZXRJZD1ncmVjYXB0Y2hhLmVudGVycHJpc2UucmVuZGVyKGIsCntzaXRla2V5OmEuY2hlY2tib3hTaXRlS2V5LGFjdGlvbjpkLmFjdGlvbixjYWxsYmFjazpmdW5jdGlvbihlKXtkLnRva2VuPWV9LCJleHBpcmVkLWNhbGxiYWNrIjpmdW5jdGlvbigpe2QudG9rZW49IiJ9LCJlcnJvci1jYWxsYmFjayI6ZnVuY3Rpb24oKXtkLnRva2VuPSIifX0pfSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9ZWxzZSBjb25zb2xlLmxvZygiR1JDIGNoZWNrYm94IGNvbnRhaW5lciBub3QgZm91bmQ6IixiKX07YS5pc1JlYWR5KCk\/YygpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdyZWNhcHRjaGEuZDJjbG9hZGVkIixjLHtvbmNlOiEwfSl9LHJlc2V0Q2hlY2tib3g6ZnVuY3Rpb24oYil7KGI\/W2JdOk9iamVjdC5rZXlzKGEuY2hlY2tib3hlcykpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoYz1hLmNoZWNrYm94ZXNbY10pe2lmKC0xPGMud2lkZ2V0SWQmJmEuaXNSZWFkeSgpKXRyeXtncmVjYXB0Y2hhLmVudGVycHJpc2UucmVzZXQoYy53aWRnZXRJZCl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCl9Yy50b2tlbj0KIiJ9fSl9LGlzQ2hlY2tib3hTb2x2ZWQ6ZnVuY3Rpb24oYil7Yj1hLmNoZWNrYm94ZXNbYl07cmV0dXJuISghYnx8IWIudG9rZW4pfSxjdXJyZW50Q29udGV4dDpmdW5jdGlvbigpe3ZhciBiPWEuYWN0aXZlRm9ybUlkO3JldHVybihiPWI\/YS5jaGVja2JveGVzW2JdOm51bGwpP3ttb2RlOiJjaGVja2JveCIsYWN0aW9uOmIuYWN0aW9uLHRva2VuOmIudG9rZW59Onttb2RlOiJwb2xpY3kiLGFjdGlvbjphLmRlZmF1bHRBY3Rpb24sdG9rZW46IiJ9fSxnZXRSZXNwb25zZTpmdW5jdGlvbihiKXt2YXIgYz0kLkRlZmVycmVkKCksZD1hLmN1cnJlbnRDb250ZXh0KCk7aWYoImNoZWNrYm94Ij09PWQubW9kZSlyZXR1cm4gYy5yZXNvbHZlKGQudG9rZW58fCIiKS5wcm9taXNlKCk7aWYoIWEuaXNSZWFkeSgpKXJldHVybiBjLnJlc29sdmUoIiIpLnByb21pc2UoKTt2YXIgZT1ifHxkLmFjdGlvbjt0cnl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLnJlYWR5KGZ1bmN0aW9uKCl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLmV4ZWN1dGUoYS5wb2xpY3lTaXRlS2V5LAp7YWN0aW9uOmV9KS50aGVuKGZ1bmN0aW9uKGspe2MucmVzb2x2ZShrKX0pLmNhdGNoKGZ1bmN0aW9uKGspe2NvbnNvbGUubG9nKCJHUkMgRmFpbCIsayk7Yy5yZXNvbHZlKCIiKX0pfSl9Y2F0Y2goayl7Y29uc29sZS5sb2coayksYy5yZXNvbHZlKCIiKX1yZXR1cm4gY319O3JldHVybiBhfSgpO3RyeXtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZ29vZ2xlUmVjYXB0Y2hhLnJlYWR5IikpfWNhdGNoKGEpe31mdW5jdGlvbiBnZXRMdXh1cnlUYXhBbW91bnQoYSl7dmFyIGI9MDsxRTU8YSYmKGI9LjEqYSxhPS4yKihhLTFFNSksYj1iPGE\/YjphKTtyZXR1cm4gTWF0aC5yb3VuZChiKX0KdmFyIHdvcmRzPVtdLHBhcnQsd29yZEluZGV4PTAsb2Zmc2V0PTAsbGVuPTEsZm9yd2FyZHM9ITAsc2tpcF9jb3VudD0wLHNraXBfZGVsYXk9MTUsc3BlZWQ9NzAsd29yZGZsaWNrPWZ1bmN0aW9uKGEsYil7d29yZHM9YTtsZW49d29yZHMubGVuZ3RoO3NldEludGVydmFsKGZ1bmN0aW9uKCl7Zm9yd2FyZHM\/b2Zmc2V0Pj13b3Jkc1t3b3JkSW5kZXhdLmxlbmd0aCYmKCsrc2tpcF9jb3VudCxza2lwX2NvdW50PT1za2lwX2RlbGF5JiYoZm9yd2FyZHM9ITEsc2tpcF9jb3VudD0wKSk6MD09b2Zmc2V0JiYoZm9yd2FyZHM9ITAsd29yZEluZGV4Kyssb2Zmc2V0PTAsd29yZEluZGV4Pj1sZW4mJih3b3JkSW5kZXg9MCkpO3BhcnQ9d29yZHNbd29yZEluZGV4XS5zdWJzdHIoMCxvZmZzZXQpOzA9PXNraXBfY291bnQmJihmb3J3YXJkcz9vZmZzZXQrKzpvZmZzZXQtLSk7Yi50ZXh0KHBhcnQpfSxzcGVlZCl9OwpmdW5jdGlvbiBpc0luVmlld3BvcnQoYSxiKXtiPXZvaWQgMD09PWI\/e306YjthPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IGM9aXNOdW1lcmljKGIudG9wKT9iLnRvcDowO2I9aXNOdW1lcmljKGIubGVmdCk\/Yi5sZWZ0OjA7cmV0dXJuIE1hdGguZmxvb3IoYS50b3ApPj1jJiZNYXRoLmZsb29yKGEubGVmdCk+PWImJk1hdGguZmxvb3IoYS5ib3R0b20pPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSYmTWF0aC5mbG9vcihhLnJpZ2h0KTw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfWZ1bmN0aW9uIGlzTnVtZXJpYyhhKXtyZXR1cm4vXi0\/XGQrJC9nLnRlc3QoYSl9CmRvY1JlYWR5QXJyLnB1c2goKCk9Pntkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0iYnV0dG9uIl0nKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGI9Pntjb25zdCBjPXZvaWQgMCE9PWIua2V5P2Iua2V5OmIua2V5Q29kZTtpZigiRW50ZXIiPT09Y3x8MTM9PT1jKWIucHJldmVudERlZmF1bHQoKSxhLmNsaWNrKCl9KX0pfSk7CigoKT0+e2xldCBhPWRvY3VtZW50LmNvb2tpZSxiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRG9jdW1lbnQucHJvdG90eXBlLCJjb29raWUiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRG9jdW1lbnQucHJvdG90eXBlLCJfY29va2llIixiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRG9jdW1lbnQucHJvdG90eXBlLCJjb29raWUiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQoKXtyZXR1cm4gdGhpcy5fY29va2llfSxzZXQoYyl7dmFyIGQ9Yy50cmltKCkuc3BsaXQoIjsiKTtsZXQgZT17fTt2YXIgaz0wO2Zvcih2YXIgaCBvZiBkKWQ9aC50cmltKCkuc3BsaXQoIj0iKSwwPT1rPyhlLm5hbWU9ZFswXSxlLnZhbHVlPWRbMV18fDApOiIiIT1kWzBdJiYoZVtkWzBdXT1kWzFdfHwwKSxrKys7az1lLm5hbWU7aD1lLmV4cGlyZXN8fDA7ZD1lLnBhdGh8fCIvIjtsZXQgbj1lLmRvbWFpbnx8IiI7ZS52YWx1ZSYmIiIhPWUudmFsdWUmJm51bGwhPWUudmFsdWUmJgp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhrLGUudmFsdWUsaCxkLG4pO2M9dGhpcy5fY29va2llPWM7aWYoYyE9PWEpdHJ5e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvb2tpZWNoYW5nZSIse2RldGFpbDp7b2xkVmFsdWU6YSxuZXdWYWx1ZTpjfX0pKX1maW5hbGx5e2E9Y319fSl9KSgpO2RvY1JlYWR5QXJyLnB1c2goKCk9Pnt2YXIgYT1udWxsO2lmKHdpbmRvdy5sb2NhdGlvbi5oYXNoKXt0cnl7YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24uaGFzaCkpfWNhdGNoKGIpe3JldHVybn1hJiYoYT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cuc2Nyb2xsWSx3aW5kb3cuc2Nyb2xsVG8oe3RvcDphLTIwLGJlaGF2aW9yOiJzbW9vdGgifSkpfX0pOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGMpe2RlYnVnKHtjb2xsZWN0OmN9KTtjPWMubmV3VVJMP25ldyBVUkwoYy5uZXdVUkwpOndpbmRvdy5sb2NhdGlvbjsiIiE9PWMuaGFzaCYmYy5oYXNoLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLm1hcChmdW5jdGlvbihkLGUsayl7dHJ5e3ZhciBbaCxuXT1kLnNwbGl0KCI9Iik7c3dpdGNoKGgpe2Nhc2UgInV0bV9lIjp2YXIgeD1hdG9iKG4pLnNwbGl0KCI6OiIpLHY9bnVsbCE9Z2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb29raWUoInV0bV9jYW1wYWlnbiIpP2dldENvb2tpZSgidXRtX2NhbXBhaWduIik6eFsyXTt2JiZzZXRDb29raWUoInV0bV9jYW1wYWlnbiIsdiwxODApO3ZhciBmPW51bGwhPWdldENvb2tpZSgidXRtX3NvdXJjZSIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvb2tpZSgidXRtX3NvdXJjZSIpP2dldENvb2tpZSgidXRtX3NvdXJjZSIpOnhbM107ZiYmc2V0Q29va2llKCJ1dG1fc291cmNlIiwKZiwxODApO2JyZWFrO2Nhc2UgInV0bV9leCI6eD1hdG9iKG4pO3ZhciBnPW5ldyBVUkwoImh0dHBzOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt4KTswPGcuc2VhcmNoUGFyYW1zLnNpemUmJmcuc2VhcmNoUGFyYW1zLmZvckVhY2goYil9cmV0dXJue2tleTpoLHZhbHVlOm59fWNhdGNoKG0pe2RlYnVnKG0pfX0pfWZ1bmN0aW9uIGIoYyxkKXt0cnl7c3dpdGNoKGQpe2Nhc2UgIkRpc3BsYXlTb3VyY2UiOmNhc2UgImdjbGlkIjpkZWJ1Zyh7a2V5OmQsY29va2llOmdldENvb2tpZShkKSx2YWx1ZTpjfSksbnVsbCE9Z2V0Q29va2llKGQpJiYiIiE9Z2V0Q29va2llKGQpfHxzZXRDb29raWUoZCxjLDE4MCl9fWNhdGNoKGUpe2RlYnVnKGUpfX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYSwhMSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGEsITEpfSkoKTswPj0kKCIjc2hhcmVPbkZhY2Vib29rIikubGVuZ3RoJiYkKCJmb290ZXIiKS5wcmVwZW5kKCc8ZGl2IGlkPSJzaGFyZU9uRmFjZWJvb2siIGRhdGEtZXhwbGFpbj0iaG9uZGEvYWN1cmEgY2VydCB1c2VzIGd0bSwgaXQgaGFzIGEgYmluZCB0aGF0IHRocm93cyBhbiBlcnJvciBpZiB0aGlzIGlkIGRvZXMgbm90IGV4aXN0LiBjb2RlIGlzIGZyb20gZ3RtIHNpZGUuIj48L2Rpdj4nKTsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuY29va2llKXtsZXQgYzt2YXIgYj1udWxsIT0oYz0kLmNvb2tpZSgiVGVydGlhcnlTb3VyY2UiKSk\/YzoiIjsiIiE9PWImJigkKCcqW2hyZWYqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigiaHJlZiIsJCh0aGlzKS5hdHRyKCJocmVmIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLGIpKX0pLCQoJypbb25jbGljayo9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJvbmNsaWNrIiwkKHRoaXMpLmF0dHIoIm9uY2xpY2siKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsYikpfSksJCgnKlt2YWx1ZSo9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJ2YWx1ZSIsJCh0aGlzKS5hdHRyKCJ2YWx1ZSIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIiwKYikpfSkpfX1hKCk7c2V0VGltZW91dChhLDFFMyk7c2V0VGltZW91dChhLDVFMyk7MDw9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWMiKSYmKCQoIi5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYS5idG4gPiBzcGFuIikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0IikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0IikuY3NzKCJ0b3AiLCI1MiUiKSl9KSgpOwpmdW5jdGlvbiBhZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkKj0iZW1haWxCb2R5RGVmIl0sIFtpZCo9ImVtYWlsU3ViamVjdERlZiJdLCBbY2xhc3MqPSJlbWFpbFN1YmplY3QiXSwgW2NsYXNzKj0iZW1haWxCb2R5Il0sIFtjbGFzcyo9ImxlYWRFbWFpbCJdLCBbY2xhc3MqPSJlbWFpbC1kZWZpbml0aW9uIl0nKS5mb3JFYWNoKGE9PnthLnNldEF0dHJpYnV0ZSgidHJhbnNsYXRlIiwibm8iKX0pfWFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtmdW5jdGlvbiB2d3MoKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdndzIixgJHt3aW5kb3cuaW5uZXJXaWR0aC8xMDAtKHdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkvMTAwLzJ9cHhgKX12d3MoKTtsZXQgcm9fdndzPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3Z3cygpfSk7cm9fdndzLm9ic2VydmUoZG9jdW1lbnQuYm9keSk7Ci8qKiAvanMvbGF6eXNpemVzLm1pbi5qcyAqKi8KLyohIGxhenlzaXplcyAtIHY0LjEuNSAqLwovKiEgbW9kaWZpZWQ6IG9saXZpZXJAZDJjbWVkaWEuY2EgdG8gc3VwcG9ydCBkYXRhLWltZ3NyYyBiZWNhdXNlIG9mIG9uZVRydXN0IGJyZWFrcyBsYXp5bG9hZCBvbiBkYXRhLXNyYyAqLwohZnVuY3Rpb24oYSxiKXt2YXIgYz1iKGEsYS5kb2N1bWVudCk7YS5sYXp5U2l6ZXM9Yywib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMmJihtb2R1bGUuZXhwb3J0cz1jKX0od2luZG93LGZ1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2lmKGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSl7dmFyIGMsZCxlPWIuZG9jdW1lbnRFbGVtZW50LGY9YS5EYXRlLGc9YS5IVE1MUGljdHVyZUVsZW1lbnQsaD0iYWRkRXZlbnRMaXN0ZW5lciIsaT0iZ2V0QXR0cmlidXRlIixqPWFbaF0saz1hLnNldFRpbWVvdXQsbD1hLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8ayxtPWEucmVxdWVzdElkbGVDYWxsYmFjayxuPS9ecGljdHVyZSQvaSxvPVsibG9hZCIsImVycm9yIiwibGF6eWluY2x1ZGVkIiwiX2xhenlsb2FkZWQiXSxwPXt9LHE9QXJyYXkucHJvdG90eXBlLmZvckVhY2gscj1mdW5jdGlvbihhLGIpe3JldHVybiBwW2JdfHwocFtiXT1uZXcgUmVnRXhwKCIoXFxzfF4pIitiKyIoXFxzfCQpIikpLHBbYl0udGVzdChhW2ldKCJjbGFzcyIpfHwiIikmJnBbYl19LHM9ZnVuY3Rpb24oYSxiKXtyKGEsYil8fGEuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGFbaV0oImNsYXNzIil8fCIiKS50cmltKCkrIiAiK2IpfSx0PWZ1bmN0aW9uKGEsYil7dmFyIGM7KGM9cihhLGIpKSYmYS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwoYVtpXSgiY2xhc3MiKXx8IiIpLnJlcGxhY2UoYywiICIpKX0sdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yz9oOiJyZW1vdmVFdmVudExpc3RlbmVyIjtjJiZ1KGEsYiksby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2FbZF0oYyxiKX0pfSx2PWZ1bmN0aW9uKGEsZCxlLGYsZyl7dmFyIGg9Yi5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gZXx8KGU9e30pLGUuaW5zdGFuY2U9YyxoLmluaXRFdmVudChkLCFmLCFnKSxoLmRldGFpbD1lLGEuZGlzcGF0Y2hFdmVudChoKSxofSx3PWZ1bmN0aW9uKGIsYyl7dmFyIGU7IWcmJihlPWEucGljdHVyZWZpbGx8fGQucGYpPyhjJiZjLnNyYyYmIWJbaV0oInNyY3NldCIpJiZiLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixjLnNyYyksZSh7cmVldmFsdWF0ZTohMCxlbGVtZW50czpbYl19KSk6YyYmYy5zcmMmJihiLnNyYz1jLnNyYyl9LHg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpfHx7fSlbYl19LHk9ZnVuY3Rpb24oYSxiLGMpe2ZvcihjPWN8fGEub2Zmc2V0V2lkdGg7YzxkLm1pblNpemUmJmImJiFhLl9sYXp5c2l6ZXNXaWR0aDspYz1iLm9mZnNldFdpZHRoLGI9Yi5wYXJlbnROb2RlO3JldHVybiBjfSx6PWZ1bmN0aW9uKCl7dmFyIGEsYyxkPVtdLGU9W10sZj1kLGc9ZnVuY3Rpb24oKXt2YXIgYj1mO2ZvcihmPWQubGVuZ3RoP2U6ZCxhPSEwLGM9ITE7Yi5sZW5ndGg7KWIuc2hpZnQoKSgpO2E9ITF9LGg9ZnVuY3Rpb24oZCxlKXthJiYhZT9kLmFwcGx5KHRoaXMsYXJndW1lbnRzKTooZi5wdXNoKGQpLGN8fChjPSEwLChiLmhpZGRlbj9rOmwpKGcpKSl9O3JldHVybiBoLl9sc0ZsdXNoPWcsaH0oKSxBPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/ZnVuY3Rpb24oKXt6KGEpfTpmdW5jdGlvbigpe3ZhciBiPXRoaXMsYz1hcmd1bWVudHM7eihmdW5jdGlvbigpe2EuYXBwbHkoYixjKX0pfX0sQj1mdW5jdGlvbihhKXt2YXIgYixjPTAsZT1kLnRocm90dGxlRGVsYXksZz1kLnJpY1RpbWVvdXQsaD1mdW5jdGlvbigpe2I9ITEsYz1mLm5vdygpLGEoKX0saT1tJiZnPjQ5P2Z1bmN0aW9uKCl7bShoLHt0aW1lb3V0Omd9KSxnIT09ZC5yaWNUaW1lb3V0JiYoZz1kLnJpY1RpbWVvdXQpfTpBKGZ1bmN0aW9uKCl7ayhoKX0sITApO3JldHVybiBmdW5jdGlvbihhKXt2YXIgZDsoYT0hMD09PWEpJiYoZz0zMyksYnx8KGI9ITAsZD1lLShmLm5vdygpLWMpLGQ8MCYmKGQ9MCksYXx8ZDw5P2koKTprKGksZCkpfX0sQz1mdW5jdGlvbihhKXt2YXIgYixjLGQ9OTksZT1mdW5jdGlvbigpe2I9bnVsbCxhKCl9LGc9ZnVuY3Rpb24oKXt2YXIgYT1mLm5vdygpLWM7YTxkP2soZyxkLWEpOihtfHxlKShlKX07cmV0dXJuIGZ1bmN0aW9uKCl7Yz1mLm5vdygpLGJ8fChiPWsoZyxkKSl9fTshZnVuY3Rpb24oKXt2YXIgYixjPXtsYXp5Q2xhc3M6Imxhenlsb2FkIixsb2FkZWRDbGFzczoibGF6eWxvYWRlZCIsbG9hZGluZ0NsYXNzOiJsYXp5bG9hZGluZyIscHJlbG9hZENsYXNzOiJsYXp5cHJlbG9hZCIsZXJyb3JDbGFzczoibGF6eWVycm9yIixhdXRvc2l6ZXNDbGFzczoibGF6eWF1dG9zaXplcyIsc3JjQXR0cjoiZGF0YS1pbWdzcmMiLHNyY3NldEF0dHI6ImRhdGEtc3Jjc2V0IixzaXplc0F0dHI6ImRhdGEtc2l6ZXMiLG1pblNpemU6NDAsY3VzdG9tTWVkaWE6e30saW5pdDohMCxleHBGYWN0b3I6MS41LGhGYWM6LjgsbG9hZE1vZGU6Mixsb2FkSGlkZGVuOiEwLHJpY1RpbWVvdXQ6MCx0aHJvdHRsZURlbGF5OjEyNX07ZD1hLmxhenlTaXplc0NvbmZpZ3x8YS5sYXp5c2l6ZXNDb25maWd8fHt9O2ZvcihiIGluIGMpYiBpbiBkfHwoZFtiXT1jW2JdKTthLmxhenlTaXplc0NvbmZpZz1kLGsoZnVuY3Rpb24oKXtkLmluaXQmJkYoKX0pfSgpO3ZhciBEPWZ1bmN0aW9uKCl7dmFyIGcsbCxtLG8scCx5LEQsRixHLEgsSSxKLEssTCxNPS9eaW1nJC9pLE49L15pZnJhbWUkL2ksTz0ib25zY3JvbGwiaW4gYSYmIS8oZ2xlfGluZylib3QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksUD0wLFE9MCxSPTAsUz0tMSxUPWZ1bmN0aW9uKGEpe1ItLSxhJiZhLnRhcmdldCYmdShhLnRhcmdldCxUKSwoIWF8fFI8MHx8IWEudGFyZ2V0KSYmKFI9MCl9LFU9ZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWEsZz0iaGlkZGVuIj09eChiLmJvZHksInZpc2liaWxpdHkiKXx8ImhpZGRlbiIhPXgoYS5wYXJlbnROb2RlLCJ2aXNpYmlsaXR5IikmJiJoaWRkZW4iIT14KGEsInZpc2liaWxpdHkiKTtmb3IoRi09YyxJKz1jLEctPWMsSCs9YztnJiYoZj1mLm9mZnNldFBhcmVudCkmJmYhPWIuYm9keSYmZiE9ZTspKGc9KHgoZiwib3BhY2l0eSIpfHwxKT4wKSYmInZpc2libGUiIT14KGYsIm92ZXJmbG93IikmJihkPWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZz1IPmQubGVmdCYmRzxkLnJpZ2h0JiZJPmQudG9wLTEmJkY8ZC5ib3R0b20rMSk7cmV0dXJuIGd9LFY9ZnVuY3Rpb24oKXt2YXIgYSxmLGgsaixrLG0sbixwLHEscj1jLmVsZW1lbnRzO2lmKChvPWQubG9hZE1vZGUpJiZSPDgmJihhPXIubGVuZ3RoKSl7Zj0wLFMrKyxudWxsPT1LJiYoImV4cGFuZCJpbiBkfHwoZC5leHBhbmQ9ZS5jbGllbnRIZWlnaHQ+NTAwJiZlLmNsaWVudFdpZHRoPjUwMD81MDA6MzcwKSxKPWQuZXhwYW5kLEs9SipkLmV4cEZhY3RvciksUTxLJiZSPDEmJlM+MiYmbz4yJiYhYi5oaWRkZW4\/KFE9SyxTPTApOlE9bz4xJiZTPjEmJlI8Nj9KOlA7Zm9yKDtmPGE7ZisrKWlmKHJbZl0mJiFyW2ZdLl9sYXp5UmFjZSlpZihPKWlmKChwPXJbZl1baV0oImRhdGEtZXhwYW5kIikpJiYobT0xKnApfHwobT1RKSxxIT09bSYmKHk9aW5uZXJXaWR0aCttKkwsRD1pbm5lckhlaWdodCttLG49LTEqbSxxPW0pLGg9cltmXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwoST1oLmJvdHRvbSk+PW4mJihGPWgudG9wKTw9RCYmKEg9aC5yaWdodCk+PW4qTCYmKEc9aC5sZWZ0KTw9eSYmKEl8fEh8fEd8fEYpJiYoZC5sb2FkSGlkZGVufHwiaGlkZGVuIiE9eChyW2ZdLCJ2aXNpYmlsaXR5IikpJiYobCYmUjwzJiYhcCYmKG88M3x8Uzw0KXx8VShyW2ZdLG0pKSl7aWYoYmEocltmXSksaz0hMCxSPjkpYnJlYWt9ZWxzZSFrJiZsJiYhaiYmUjw0JiZTPDQmJm8+MiYmKGdbMF18fGQucHJlbG9hZEFmdGVyTG9hZCkmJihnWzBdfHwhcCYmKEl8fEh8fEd8fEZ8fCJhdXRvIiE9cltmXVtpXShkLnNpemVzQXR0cikpKSYmKGo9Z1swXXx8cltmXSk7ZWxzZSBiYShyW2ZdKTtqJiYhayYmYmEoail9fSxXPUIoViksWD1mdW5jdGlvbihhKXtzKGEudGFyZ2V0LGQubG9hZGVkQ2xhc3MpLHQoYS50YXJnZXQsZC5sb2FkaW5nQ2xhc3MpLHUoYS50YXJnZXQsWiksdihhLnRhcmdldCwibGF6eWxvYWRlZCIpfSxZPUEoWCksWj1mdW5jdGlvbihhKXtZKHt0YXJnZXQ6YS50YXJnZXR9KX0sJD1mdW5jdGlvbihhLGIpe3RyeXthLmNvbnRlbnRXaW5kb3cubG9jYXRpb24ucmVwbGFjZShiKX1jYXRjaChjKXthLnNyYz1ifX0sXz1mdW5jdGlvbihhKXt2YXIgYixjPWFbaV0oZC5zcmNzZXRBdHRyKTsoYj1kLmN1c3RvbU1lZGlhW2FbaV0oImRhdGEtbWVkaWEiKXx8YVtpXSgibWVkaWEiKV0pJiZhLnNldEF0dHJpYnV0ZSgibWVkaWEiLGIpLGMmJmEuc2V0QXR0cmlidXRlKCJzcmNzZXQiLGMpfSxhYT1BKGZ1bmN0aW9uKGEsYixjLGUsZil7dmFyIGcsaCxqLGwsbyxwOyhvPXYoYSwibGF6eWJlZm9yZXVudmVpbCIsYikpLmRlZmF1bHRQcmV2ZW50ZWR8fChlJiYoYz9zKGEsZC5hdXRvc2l6ZXNDbGFzcyk6YS5zZXRBdHRyaWJ1dGUoInNpemVzIixlKSksaD1hW2ldKGQuc3Jjc2V0QXR0ciksZz1hW2ldKGQuc3JjQXR0ciksZiYmKGo9YS5wYXJlbnROb2RlLGw9aiYmbi50ZXN0KGoubm9kZU5hbWV8fCIiKSkscD1iLmZpcmVzTG9hZHx8InNyYyJpbiBhJiYoaHx8Z3x8bCksbz17dGFyZ2V0OmF9LHAmJih1KGEsVCwhMCksY2xlYXJUaW1lb3V0KG0pLG09ayhULDI1MDApLHMoYSxkLmxvYWRpbmdDbGFzcyksdShhLFosITApKSxsJiZxLmNhbGwoai5nZXRFbGVtZW50c0J5VGFnTmFtZSgic291cmNlIiksXyksaD9hLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixoKTpnJiYhbCYmKE4udGVzdChhLm5vZGVOYW1lKT8kKGEsZyk6YS5zcmM9ZyksZiYmKGh8fGwpJiZ3KGEse3NyYzpnfSkpLGEuX2xhenlSYWNlJiZkZWxldGUgYS5fbGF6eVJhY2UsdChhLGQubGF6eUNsYXNzKSx6KGZ1bmN0aW9uKCl7KCFwfHxhLmNvbXBsZXRlJiZhLm5hdHVyYWxXaWR0aD4xKSYmKHA\/VChvKTpSLS0sWChvKSl9LCEwKX0pLGJhPWZ1bmN0aW9uKGEpe3ZhciBiLGM9TS50ZXN0KGEubm9kZU5hbWUpLGU9YyYmKGFbaV0oZC5zaXplc0F0dHIpfHxhW2ldKCJzaXplcyIpKSxmPSJhdXRvIj09ZTsoIWYmJmx8fCFjfHwhYVtpXSgic3JjIikmJiFhLnNyY3NldHx8YS5jb21wbGV0ZXx8cihhLGQuZXJyb3JDbGFzcyl8fCFyKGEsZC5sYXp5Q2xhc3MpKSYmKGI9dihhLCJsYXp5dW52ZWlscmVhZCIpLmRldGFpbCxmJiZFLnVwZGF0ZUVsZW0oYSwhMCxhLm9mZnNldFdpZHRoKSxhLl9sYXp5UmFjZT0hMCxSKyssYWEoYSxiLGYsZSxjKSl9LGNhPWZ1bmN0aW9uKCl7aWYoIWwpe2lmKGYubm93KCktcDw5OTkpcmV0dXJuIHZvaWQgayhjYSw5OTkpO3ZhciBhPUMoZnVuY3Rpb24oKXtkLmxvYWRNb2RlPTMsVygpfSk7bD0hMCxkLmxvYWRNb2RlPTMsVygpLGooInNjcm9sbCIsZnVuY3Rpb24oKXszPT1kLmxvYWRNb2RlJiYoZC5sb2FkTW9kZT0yKSxhKCl9LCEwKX19O3JldHVybntfOmZ1bmN0aW9uKCl7cD1mLm5vdygpLGMuZWxlbWVudHM9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQubGF6eUNsYXNzKSxnPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmxhenlDbGFzcysiICIrZC5wcmVsb2FkQ2xhc3MpLEw9ZC5oRmFjLGooInNjcm9sbCIsVywhMCksaigicmVzaXplIixXLCEwKSxhLk11dGF0aW9uT2JzZXJ2ZXI\/bmV3IE11dGF0aW9uT2JzZXJ2ZXIoVykub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwfSk6KGVbaF0oIkRPTU5vZGVJbnNlcnRlZCIsVywhMCksZVtoXSgiRE9NQXR0ck1vZGlmaWVkIixXLCEwKSxzZXRJbnRlcnZhbChXLDk5OSkpLGooImhhc2hjaGFuZ2UiLFcsITApLFsiZm9jdXMiLCJtb3VzZW92ZXIiLCJjbGljayIsImxvYWQiLCJ0cmFuc2l0aW9uZW5kIiwiYW5pbWF0aW9uZW5kIiwid2Via2l0QW5pbWF0aW9uRW5kIl0uZm9yRWFjaChmdW5jdGlvbihhKXtiW2hdKGEsVywhMCl9KSwvZCR8XmMvLnRlc3QoYi5yZWFkeVN0YXRlKT9jYSgpOihqKCJsb2FkIixjYSksYltoXSgiRE9NQ29udGVudExvYWRlZCIsVyksayhjYSwyZTQpKSxjLmVsZW1lbnRzLmxlbmd0aD8oVigpLHouX2xzRmx1c2goKSk6VygpfSxjaGVja0VsZW1zOlcsdW52ZWlsOmJhfX0oKSxFPWZ1bmN0aW9uKCl7dmFyIGEsYz1BKGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZztpZihhLl9sYXp5c2l6ZXNXaWR0aD1kLGQrPSJweCIsYS5zZXRBdHRyaWJ1dGUoInNpemVzIixkKSxuLnRlc3QoYi5ub2RlTmFtZXx8IiIpKWZvcihlPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpLGY9MCxnPWUubGVuZ3RoO2Y8ZztmKyspZVtmXS5zZXRBdHRyaWJ1dGUoInNpemVzIixkKTtjLmRldGFpbC5kYXRhQXR0cnx8dyhhLGMuZGV0YWlsKX0pLGU9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY9YS5wYXJlbnROb2RlO2YmJihkPXkoYSxmLGQpLGU9dihhLCJsYXp5YmVmb3Jlc2l6ZXMiLHt3aWR0aDpkLGRhdGFBdHRyOiEhYn0pLGUuZGVmYXVsdFByZXZlbnRlZHx8KGQ9ZS5kZXRhaWwud2lkdGgpJiZkIT09YS5fbGF6eXNpemVzV2lkdGgmJmMoYSxmLGUsZCkpfSxmPWZ1bmN0aW9uKCl7dmFyIGIsYz1hLmxlbmd0aDtpZihjKWZvcihiPTA7YjxjO2IrKyllKGFbYl0pfSxnPUMoZik7cmV0dXJue186ZnVuY3Rpb24oKXthPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmF1dG9zaXplc0NsYXNzKSxqKCJyZXNpemUiLGcpfSxjaGVja0VsZW1zOmcsdXBkYXRlRWxlbTplfX0oKSxGPWZ1bmN0aW9uKCl7Ri5pfHwoRi5pPSEwLEUuXygpLEQuXygpKX07cmV0dXJuIGM9e2NmZzpkLGF1dG9TaXplcjpFLGxvYWRlcjpELGluaXQ6Rix1UDp3LGFDOnMsckM6dCxoQzpyLGZpcmU6dixnVzp5LHJBRjp6fX19KTsKLypFT0YqLzsKLyoqIC9qcy92YW5pbGxhanMvZHJEaXNjbGFpbWVySlMuanMgKiovCnZhciBfX19kMmNfZHJEaXNjbGFpbWVySlNqc19jX29uPSIyMDI2LTA1LTA1IDEzOjMwOjA4IjsndXNlIHN0cmljdCc7ZHJEaXNjbGFpbWVySlM9e21hbmFnZURpc2NsYWltZXJEaXZzKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGE9PnsoYT1hLnRhcmdldC5jbG9zZXN0KCIuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMsIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciwgI2RyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpKSYmKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCJjbG9zZURSRGlzY2xhaW1lckRyYXdlciIpP2RyRGlzY2xhaW1lckpTLmNsb3NlQ3VycmVudE9wZW5lZERpc2NsYWltZXJEaXYoYS5kYXRhc2V0LmRpc2NsYWltZXJEaXZpZCk6YS5jbGFzc0xpc3QuY29udGFpbnMoImRyVmlld0Rpc2NsYWltZXJMaW5rIik\/ZHJEaXNjbGFpbWVySlMub3BlbkRpc2NsYWltZXJEaXYoImRyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKTpkckRpc2NsYWltZXJKUy5vcGVuRGlzY2xhaW1lckRpdihhLmRhdGFzZXQuZGlzY2xhaW1lckRpdmlkKSl9KX0sb3BlbkRpc2NsYWltZXJEaXY6ZnVuY3Rpb24oYSl7ZHJEaXNjbGFpbWVySlMuY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnMoKTsKZHJEaXNjbGFpbWVySlMuY2xvc2VGaW5hbmNlRGlzY2xhbWVyRGl2KCk7aWYoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSlhLmNsYXNzTGlzdC5hZGQoIm9wZW4iKSxhLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0sY2xvc2VDdXJyZW50T3BlbmVkRGlzY2xhaW1lckRpdjpmdW5jdGlvbihhKXtpZihhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2F9YCkpYS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiksYS5zdHlsZS5kaXNwbGF5PSJub25lIn0sY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnM6ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXZbZGF0YS1kaXNjbGFpbWVyLWlkXS5vcGVuIikuZm9yRWFjaChhPT57ZHJEaXNjbGFpbWVySlMuY2xvc2VDdXJyZW50T3BlbmVkRGlzY2xhaW1lckRpdihhLmlkKX0pfSxjbG9zZUZpbmFuY2VEaXNjbGFtZXJEaXY6ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4iKS5mb3JFYWNoKGE9Pgp7YS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7YS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfX07ZG9jUmVhZHlBcnIucHVzaCgoKT0+e2RyRGlzY2xhaW1lckpTLm1hbmFnZURpc2NsYWltZXJEaXZzKCl9KTsKLyoqIC9qcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5qcyAqKi8KLyohIGpRdWVyeSBVSSAtIHYxLjEzLjIgLSAyMDI0LTAzLTEyCiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiB3aWRnZXQuanMsIGpxdWVyeS1wYXRjaC5qcywga2V5Y29kZS5qcywgdW5pcXVlLWlkLmpzLCB3aWRnZXRzL2FjY29yZGlvbi5qcywgd2lkZ2V0cy9tb3VzZS5qcywgd2lkZ2V0cy9zbGlkZXIuanMsIGVmZmVjdC5qcwoqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzOyBMaWNlbnNlZCBNSVQgKi8KCiFmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxlKTplKGpRdWVyeSl9KGZ1bmN0aW9uKHUpeyJ1c2Ugc3RyaWN0Ijt1LnVpPXUudWl8fHt9O3UudWkudmVyc2lvbj0iMS4xMy4yIjt2YXIgbixpPTAsbz1BcnJheS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dS5jbGVhbkRhdGE9KG49dS5jbGVhbkRhdGEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGkscz0wO251bGwhPShpPWVbc10pO3MrKykodD11Ll9kYXRhKGksImV2ZW50cyIpKSYmdC5yZW1vdmUmJnUoaSkudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpO24oZSl9KSx1LndpZGdldD1mdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89e30scj1lLnNwbGl0KCIuIilbMF0saD1yKyItIisoZT1lLnNwbGl0KCIuIilbMV0pO3JldHVybiB0fHwodD1pLGk9dS5XaWRnZXQpLEFycmF5LmlzQXJyYXkodCkmJih0PXUuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQodCkpKSx1LmV4cHIucHNldWRvc1toLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdS5kYXRhKGUsaCl9LHVbcl09dVtyXXx8e30scz11W3JdW2VdLG49dVtyXVtlXT1mdW5jdGlvbihlLHQpe2lmKCF0aGlzfHwhdGhpcy5fY3JlYXRlV2lkZ2V0KXJldHVybiBuZXcgbihlLHQpO2FyZ3VtZW50cy5sZW5ndGgmJnRoaXMuX2NyZWF0ZVdpZGdldChlLHQpfSx1LmV4dGVuZChuLHMse3ZlcnNpb246dC52ZXJzaW9uLF9wcm90bzp1LmV4dGVuZCh7fSx0KSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSwoYT1uZXcgaSkub3B0aW9ucz11LndpZGdldC5leHRlbmQoe30sYS5vcHRpb25zKSx1LmVhY2godCxmdW5jdGlvbih0LHMpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9b1t0XT0iZnVuY3Rpb24iPT10eXBlb2Ygcz9mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fc3VwZXIsaT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1uLHRoaXMuX3N1cGVyQXBwbHk9YSxlPXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPXQsdGhpcy5fc3VwZXJBcHBseT1pLGV9OnN9KSxuLnByb3RvdHlwZT11LndpZGdldC5leHRlbmQoYSx7d2lkZ2V0RXZlbnRQcmVmaXg6cyYmYS53aWRnZXRFdmVudFByZWZpeHx8ZX0sbyx7Y29uc3RydWN0b3I6bixuYW1lc3BhY2U6cix3aWRnZXROYW1lOmUsd2lkZ2V0RnVsbE5hbWU6aH0pLHM\/KHUuZWFjaChzLl9jaGlsZENvbnN0cnVjdG9ycyxmdW5jdGlvbihlLHQpe3ZhciBpPXQucHJvdG90eXBlO3Uud2lkZ2V0KGkubmFtZXNwYWNlKyIuIitpLndpZGdldE5hbWUsbix0Ll9wcm90byl9KSxkZWxldGUgcy5fY2hpbGRDb25zdHJ1Y3RvcnMpOmkuX2NoaWxkQ29uc3RydWN0b3JzLnB1c2gobiksdS53aWRnZXQuYnJpZGdlKGUsbiksbn0sdS53aWRnZXQuZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpLHM9ci5jYWxsKGFyZ3VtZW50cywxKSxuPTAsYT1zLmxlbmd0aDtuPGE7bisrKWZvcih0IGluIHNbbl0paT1zW25dW3RdLG8uY2FsbChzW25dLHQpJiZ2b2lkIDAhPT1pJiYodS5pc1BsYWluT2JqZWN0KGkpP2VbdF09dS5pc1BsYWluT2JqZWN0KGVbdF0pP3Uud2lkZ2V0LmV4dGVuZCh7fSxlW3RdLGkpOnUud2lkZ2V0LmV4dGVuZCh7fSxpKTplW3RdPWkpO3JldHVybiBlfSx1LndpZGdldC5icmlkZ2U9ZnVuY3Rpb24oYSx0KXt2YXIgbz10LnByb3RvdHlwZS53aWRnZXRGdWxsTmFtZXx8YTt1LmZuW2FdPWZ1bmN0aW9uKGkpe3ZhciBlPSJzdHJpbmciPT10eXBlb2YgaSxzPXIuY2FsbChhcmd1bWVudHMsMSksbj10aGlzO3JldHVybiBlP3RoaXMubGVuZ3RofHwiaW5zdGFuY2UiIT09aT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PXUuZGF0YSh0aGlzLG8pO3JldHVybiJpbnN0YW5jZSI9PT1pPyhuPXQsITEpOnQ\/ImZ1bmN0aW9uIiE9dHlwZW9mIHRbaV18fCJfIj09PWkuY2hhckF0KDApP3UuZXJyb3IoIm5vIHN1Y2ggbWV0aG9kICciK2krIicgZm9yICIrYSsiIHdpZGdldCBpbnN0YW5jZSIpOihlPXRbaV0uYXBwbHkodCxzKSkhPT10JiZ2b2lkIDAhPT1lPyhuPWUmJmUuanF1ZXJ5P24ucHVzaFN0YWNrKGUuZ2V0KCkpOmUsITEpOnZvaWQgMDp1LmVycm9yKCJjYW5ub3QgY2FsbCBtZXRob2RzIG9uICIrYSsiIHByaW9yIHRvIGluaXRpYWxpemF0aW9uOyBhdHRlbXB0ZWQgdG8gY2FsbCBtZXRob2QgJyIraSsiJyIpfSk6bj12b2lkIDA6KHMubGVuZ3RoJiYoaT11LndpZGdldC5leHRlbmQuYXBwbHkobnVsbCxbaV0uY29uY2F0KHMpKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dS5kYXRhKHRoaXMsbyk7ZT8oZS5vcHRpb24oaXx8e30pLGUuX2luaXQmJmUuX2luaXQoKSk6dS5kYXRhKHRoaXMsbyxuZXcgdChpLHRoaXMpKX0pKSxufX0sdS5XaWRnZXQ9ZnVuY3Rpb24oKXt9LHUuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycz1bXSx1LldpZGdldC5wcm90b3R5cGU9e3dpZGdldE5hbWU6IndpZGdldCIsd2lkZ2V0RXZlbnRQcmVmaXg6IiIsZGVmYXVsdEVsZW1lbnQ6IjxkaXY+IixvcHRpb25zOntjbGFzc2VzOnt9LGRpc2FibGVkOiExLGNyZWF0ZTpudWxsfSxfY3JlYXRlV2lkZ2V0OmZ1bmN0aW9uKGUsdCl7dD11KHR8fHRoaXMuZGVmYXVsdEVsZW1lbnR8fHRoaXMpWzBdLHRoaXMuZWxlbWVudD11KHQpLHRoaXMudXVpZD1pKyssdGhpcy5ldmVudE5hbWVzcGFjZT0iLiIrdGhpcy53aWRnZXROYW1lK3RoaXMudXVpZCx0aGlzLmJpbmRpbmdzPXUoKSx0aGlzLmhvdmVyYWJsZT11KCksdGhpcy5mb2N1c2FibGU9dSgpLHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXA9e30sdCE9PXRoaXMmJih1LmRhdGEodCx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09dCYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD11KHQuc3R5bGU\/dC5vd25lckRvY3VtZW50OnQuZG9jdW1lbnR8fHQpLHRoaXMud2luZG93PXUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9dS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksZSksdGhpcy5fY3JlYXRlKCksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCh0aGlzLm9wdGlvbnMuZGlzYWJsZWQpLHRoaXMuX3RyaWdnZXIoImNyZWF0ZSIsbnVsbCx0aGlzLl9nZXRDcmVhdGVFdmVudERhdGEoKSksdGhpcy5faW5pdCgpfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3JldHVybnt9fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOnUubm9vcCxfY3JlYXRlOnUubm9vcCxfaW5pdDp1Lm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5fZGVzdHJveSgpLHUuZWFjaCh0aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwLGZ1bmN0aW9uKGUsdCl7aS5fcmVtb3ZlQ2xhc3ModCxlKX0pLHRoaXMuZWxlbWVudC5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlRGF0YSh0aGlzLndpZGdldEZ1bGxOYW1lKSx0aGlzLndpZGdldCgpLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIiksdGhpcy5iaW5kaW5ncy5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSl9LF9kZXN0cm95OnUubm9vcCx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fSxvcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG4sYT1lO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB1LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zKTtpZigic3RyaW5nIj09dHlwZW9mIGUpaWYoYT17fSxlPShpPWUuc3BsaXQoIi4iKSkuc2hpZnQoKSxpLmxlbmd0aCl7Zm9yKHM9YVtlXT11LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zW2VdKSxuPTA7bjxpLmxlbmd0aC0xO24rKylzW2lbbl1dPXNbaVtuXV18fHt9LHM9c1tpW25dXTtpZihlPWkucG9wKCksMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXNbZV0\/bnVsbDpzW2VdO3NbZV09dH1lbHNle2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbZV0\/bnVsbDp0aGlzLm9wdGlvbnNbZV07YVtlXT10fXJldHVybiB0aGlzLl9zZXRPcHRpb25zKGEpLHRoaXN9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImNsYXNzZXMiPT09ZSYmdGhpcy5fc2V0T3B0aW9uQ2xhc3Nlcyh0KSx0aGlzLm9wdGlvbnNbZV09dCwiZGlzYWJsZWQiPT09ZSYmdGhpcy5fc2V0T3B0aW9uRGlzYWJsZWQodCksdGhpc30sX3NldE9wdGlvbkNsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2Zvcih0IGluIGUpcz10aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwW3RdLGVbdF0hPT10aGlzLm9wdGlvbnMuY2xhc3Nlc1t0XSYmcyYmcy5sZW5ndGgmJihpPXUocy5nZXQoKSksdGhpcy5fcmVtb3ZlQ2xhc3Mocyx0KSxpLmFkZENsYXNzKHRoaXMuX2NsYXNzZXMoe2VsZW1lbnQ6aSxrZXlzOnQsY2xhc3NlczplLGFkZDohMH0pKSl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl90b2dnbGVDbGFzcyh0aGlzLndpZGdldCgpLHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCIsbnVsbCwhIWUpLGUmJih0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhvdmVyYWJsZSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuZm9jdXNhYmxlLG51bGwsInVpLXN0YXRlLWZvY3VzIikpfSxlbmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITF9KX0sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMH0pfSxfY2xhc3NlczpmdW5jdGlvbihuKXt2YXIgYT1bXSxvPXRoaXM7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgaSxzPTA7czxlLmxlbmd0aDtzKyspaT1vLmNsYXNzZXNFbGVtZW50TG9va3VwW2Vbc11dfHx1KCksaT1uLmFkZD8oZnVuY3Rpb24oKXt2YXIgaT1bXTtuLmVsZW1lbnQuZWFjaChmdW5jdGlvbihlLHQpe3UubWFwKG8uY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSl7cmV0dXJuIGV9KS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHQpfSl8fGkucHVzaCh0KX0pLG8uX29uKHUoaSkse3JlbW92ZToiX3VudHJhY2tDbGFzc2VzRWxlbWVudCJ9KX0oKSx1KHUudW5pcXVlU29ydChpLmdldCgpLmNvbmNhdChuLmVsZW1lbnQuZ2V0KCkpKSkpOnUoaS5ub3Qobi5lbGVtZW50KS5nZXQoKSksby5jbGFzc2VzRWxlbWVudExvb2t1cFtlW3NdXT1pLGEucHVzaChlW3NdKSx0JiZuLmNsYXNzZXNbZVtzXV0mJmEucHVzaChuLmNsYXNzZXNbZVtzXV0pfXJldHVybihuPXUuZXh0ZW5kKHtlbGVtZW50OnRoaXMuZWxlbWVudCxjbGFzc2VzOnRoaXMub3B0aW9ucy5jbGFzc2VzfHx7fX0sbikpLmtleXMmJmUobi5rZXlzLm1hdGNoKC9cUysvZyl8fFtdLCEwKSxuLmV4dHJhJiZlKG4uZXh0cmEubWF0Y2goL1xTKy9nKXx8W10pLGEuam9pbigiICIpfSxfdW50cmFja0NsYXNzZXNFbGVtZW50OmZ1bmN0aW9uKGkpe3ZhciBzPXRoaXM7dS5lYWNoKHMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSx0KXstMSE9PXUuaW5BcnJheShpLnRhcmdldCx0KSYmKHMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbZV09dSh0Lm5vdChpLnRhcmdldCkuZ2V0KCkpKX0pLHRoaXMuX29mZih1KGkudGFyZ2V0KSl9LF9yZW1vdmVDbGFzczpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKGUsdCxpLCExKX0sX2FkZENsYXNzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3MoZSx0LGksITApfSxfdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG49InN0cmluZyI9PXR5cGVvZiBlfHxudWxsPT09ZSxpPXtleHRyYTpuP3Q6aSxrZXlzOm4\/ZTp0LGVsZW1lbnQ6bj90aGlzLmVsZW1lbnQ6ZSxhZGQ6cz0iYm9vbGVhbiI9PXR5cGVvZiBzP3M6aX07cmV0dXJuIGkuZWxlbWVudC50b2dnbGVDbGFzcyh0aGlzLl9jbGFzc2VzKGkpLHMpLHRoaXN9LF9vbjpmdW5jdGlvbihuLGEsZSl7dmFyIG8scj10aGlzOyJib29sZWFuIiE9dHlwZW9mIG4mJihlPWEsYT1uLG49ITEpLGU\/KGE9bz11KGEpLHRoaXMuYmluZGluZ3M9dGhpcy5iaW5kaW5ncy5hZGQoYSkpOihlPWEsYT10aGlzLmVsZW1lbnQsbz10aGlzLndpZGdldCgpKSx1LmVhY2goZSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXtpZihufHwhMCE9PXIub3B0aW9ucy5kaXNhYmxlZCYmIXUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikpcmV0dXJuKCJzdHJpbmciPT10eXBlb2YgdD9yW3RdOnQpLmFwcGx5KHIsYXJndW1lbnRzKX0ic3RyaW5nIiE9dHlwZW9mIHQmJihpLmd1aWQ9dC5ndWlkPXQuZ3VpZHx8aS5ndWlkfHx1Lmd1aWQrKyk7dmFyIHM9ZS5tYXRjaCgvXihbXHc6LV0qKVxzKiguKikkLyksZT1zWzFdK3IuZXZlbnROYW1lc3BhY2Uscz1zWzJdO3M\/by5vbihlLHMsaSk6YS5vbihlLGkpfSl9LF9vZmY6ZnVuY3Rpb24oZSx0KXt0PSh0fHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLGUub2ZmKHQpLHRoaXMuYmluZGluZ3M9dSh0aGlzLmJpbmRpbmdzLm5vdChlKS5nZXQoKSksdGhpcy5mb2N1c2FibGU9dSh0aGlzLmZvY3VzYWJsZS5ub3QoZSkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPXUodGhpcy5ob3ZlcmFibGUubm90KGUpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybigic3RyaW5nIj09dHlwZW9mIGU\/aVtlXTplKS5hcHBseShpLGFyZ3VtZW50cyl9LHR8fDApfSxfaG92ZXJhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuaG92ZXJhYmxlPXRoaXMuaG92ZXJhYmxlLmFkZChlKSx0aGlzLl9vbihlLHttb3VzZWVudGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZChlKSx0aGlzLl9vbihlLHtmb2N1c2luOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfSxmb2N1c291dDpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh1KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzLG4sYT10aGlzLm9wdGlvbnNbZV07aWYoaT1pfHx7fSwodD11LkV2ZW50KHQpKS50eXBlPShlPT09dGhpcy53aWRnZXRFdmVudFByZWZpeD9lOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrZSkudG9Mb3dlckNhc2UoKSx0LnRhcmdldD10aGlzLmVsZW1lbnRbMF0sbj10Lm9yaWdpbmFsRXZlbnQpZm9yKHMgaW4gbilzIGluIHR8fCh0W3NdPW5bc10pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcih0LGkpLCEoImZ1bmN0aW9uIj09dHlwZW9mIGEmJiExPT09YS5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3RdLmNvbmNhdChpKSl8fHQuaXNEZWZhdWx0UHJldmVudGVkKCkpfX0sdS5lYWNoKHtzaG93OiJmYWRlSW4iLGhpZGU6ImZhZGVPdXQifSxmdW5jdGlvbihhLG8pe3UuV2lkZ2V0LnByb3RvdHlwZVsiXyIrYV09ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG49KGU9InN0cmluZyI9PXR5cGVvZiBlP3tlZmZlY3Q6ZX06ZSk\/ITAhPT1lJiYibnVtYmVyIiE9dHlwZW9mIGUmJmUuZWZmZWN0fHxvOmE7Im51bWJlciI9PXR5cGVvZihlPWV8fHt9KT9lPXtkdXJhdGlvbjplfTohMD09PWUmJihlPXt9KSxzPSF1LmlzRW1wdHlPYmplY3QoZSksZS5jb21wbGV0ZT1pLGUuZGVsYXkmJnQuZGVsYXkoZS5kZWxheSkscyYmdS5lZmZlY3RzJiZ1LmVmZmVjdHMuZWZmZWN0W25dP3RbYV0oZSk6biE9PWEmJnRbbl0\/dFtuXShlLmR1cmF0aW9uLGUuZWFzaW5nLGkpOnQucXVldWUoZnVuY3Rpb24oZSl7dSh0aGlzKVthXSgpLGkmJmkuY2FsbCh0WzBdKSxlKCl9KX19KTt2YXIgdCxzO3Uud2lkZ2V0O3UuZXhwci5wc2V1ZG9zfHwodS5leHByLnBzZXVkb3M9dS5leHByWyI6Il0pLHUudW5pcXVlU29ydHx8KHUudW5pcXVlU29ydD11LnVuaXF1ZSksdS5lc2NhcGVTZWxlY3Rvcnx8KHQ9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZyxzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/IlwwIj09PWU\/Iu+\/vSI6ZS5zbGljZSgwLC0xKSsiXFwiK2UuY2hhckNvZGVBdChlLmxlbmd0aC0xKS50b1N0cmluZygxNikrIiAiOiJcXCIrZX0sdS5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZSh0LHMpfSksdS5mbi5ldmVuJiZ1LmZuLm9kZHx8dS5mbi5leHRlbmQoe2V2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUlMj09MH0pfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUlMj09MX0pfX0pO3UudWkua2V5Q29kZT17QkFDS1NQQUNFOjgsQ09NTUE6MTg4LERFTEVURTo0NixET1dOOjQwLEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsSE9NRTozNixMRUZUOjM3LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU1BBQ0U6MzIsVEFCOjksVVA6Mzh9LHUuZm4uZXh0ZW5kKHt1bmlxdWVJZDooZT0wLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RoaXMuaWR8fCh0aGlzLmlkPSJ1aS1pZC0iKyArK2UpfSl9KSxyZW1vdmVVbmlxdWVJZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsvXnVpLWlkLVxkKyQvLnRlc3QodGhpcy5pZCkmJnUodGhpcykucmVtb3ZlQXR0cigiaWQiKX0pfX0pLHUud2lkZ2V0KCJ1aS5hY2NvcmRpb24iLHt2ZXJzaW9uOiIxLjEzLjIiLG9wdGlvbnM6e2FjdGl2ZTowLGFuaW1hdGU6e30sY2xhc3Nlczp7InVpLWFjY29yZGlvbi1oZWFkZXIiOiJ1aS1jb3JuZXItdG9wIiwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiOiJ1aS1jb3JuZXItYWxsIiwidWktYWNjb3JkaW9uLWNvbnRlbnQiOiJ1aS1jb3JuZXItYm90dG9tIn0sY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmluZCgiPiBsaSA+IDpmaXJzdC1jaGlsZCIpLmFkZChlLmZpbmQoIj4gOm5vdChsaSkiKS5ldmVuKCkpfSxoZWlnaHRTdHlsZToiYXV0byIsaWNvbnM6e2FjdGl2ZUhlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLXMiLGhlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLWUifSxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGx9LGhpZGVQcm9wczp7Ym9yZGVyVG9wV2lkdGg6ImhpZGUiLGJvcmRlckJvdHRvbVdpZHRoOiJoaWRlIixwYWRkaW5nVG9wOiJoaWRlIixwYWRkaW5nQm90dG9tOiJoaWRlIixoZWlnaHQ6ImhpZGUifSxzaG93UHJvcHM6e2JvcmRlclRvcFdpZHRoOiJzaG93Iixib3JkZXJCb3R0b21XaWR0aDoic2hvdyIscGFkZGluZ1RvcDoic2hvdyIscGFkZGluZ0JvdHRvbToic2hvdyIsaGVpZ2h0OiJzaG93In0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9uczt0aGlzLnByZXZTaG93PXRoaXMucHJldkhpZGU9dSgpLHRoaXMuX2FkZENsYXNzKCJ1aS1hY2NvcmRpb24iLCJ1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IiksdGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJ0YWJsaXN0IiksZS5jb2xsYXBzaWJsZXx8ITEhPT1lLmFjdGl2ZSYmbnVsbCE9ZS5hY3RpdmV8fChlLmFjdGl2ZT0wKSx0aGlzLl9wcm9jZXNzUGFuZWxzKCksZS5hY3RpdmU8MCYmKGUuYWN0aXZlKz10aGlzLmhlYWRlcnMubGVuZ3RoKSx0aGlzLl9yZWZyZXNoKCl9LF9nZXRDcmVhdGVFdmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aGVhZGVyOnRoaXMuYWN0aXZlLHBhbmVsOnRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5uZXh0KCk6dSgpfX0sX2NyZWF0ZUljb25zOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGU9dSgiPHNwYW4+IiksdGhpcy5fYWRkQ2xhc3MoZSwidWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiwidWktaWNvbiAiK3QuaGVhZGVyKSxlLnByZXBlbmRUbyh0aGlzLmhlYWRlcnMpLGU9dGhpcy5hY3RpdmUuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhlLHQuaGVhZGVyKS5fYWRkQ2xhc3MoZSxudWxsLHQuYWN0aXZlSGVhZGVyKS5fYWRkQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1pY29ucyIpLHRoaXMuaGVhZGVycy5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3ZhciBlO3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJyb2xlIiksdGhpcy5oZWFkZXJzLnJlbW92ZUF0dHIoInJvbGUgYXJpYS1leHBhbmRlZCBhcmlhLXNlbGVjdGVkIGFyaWEtY29udHJvbHMgdGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMuX2Rlc3Ryb3lJY29ucygpLGU9dGhpcy5oZWFkZXJzLm5leHQoKS5jc3MoImRpc3BsYXkiLCIiKS5yZW1vdmVBdHRyKCJyb2xlIGFyaWEtaGlkZGVuIGFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiYWN0aXZlIiE9PWU\/KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fCExIT09dGhpcy5vcHRpb25zLmFjdGl2ZXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSk6dGhpcy5fYWN0aXZhdGUodCl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSx0aGlzLmVsZW1lbnQuYXR0cigiYXJpYS1kaXNhYmxlZCIsZSksdGhpcy5fdG9nZ2xlQ2xhc3MobnVsbCwidWktc3RhdGUtZGlzYWJsZWQiLCEhZSksdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSxudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFlKX0sX2tleWRvd246ZnVuY3Rpb24oZSl7aWYoIWUuYWx0S2V5JiYhZS5jdHJsS2V5KXt2YXIgdD11LnVpLmtleUNvZGUsaT10aGlzLmhlYWRlcnMubGVuZ3RoLHM9dGhpcy5oZWFkZXJzLmluZGV4KGUudGFyZ2V0KSxuPSExO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgdC5SSUdIVDpjYXNlIHQuRE9XTjpuPXRoaXMuaGVhZGVyc1socysxKSVpXTticmVhaztjYXNlIHQuTEVGVDpjYXNlIHQuVVA6bj10aGlzLmhlYWRlcnNbKHMtMStpKSVpXTticmVhaztjYXNlIHQuU1BBQ0U6Y2FzZSB0LkVOVEVSOnRoaXMuX2V2ZW50SGFuZGxlcihlKTticmVhaztjYXNlIHQuSE9NRTpuPXRoaXMuaGVhZGVyc1swXTticmVhaztjYXNlIHQuRU5EOm49dGhpcy5oZWFkZXJzW2ktMV19biYmKHUoZS50YXJnZXQpLmF0dHIoInRhYkluZGV4IiwtMSksdShuKS5hdHRyKCJ0YWJJbmRleCIsMCksdShuKS50cmlnZ2VyKCJmb2N1cyIpLGUucHJldmVudERlZmF1bHQoKSl9fSxfcGFuZWxLZXlEb3duOmZ1bmN0aW9uKGUpe2Uua2V5Q29kZT09PXUudWkua2V5Q29kZS5VUCYmZS5jdHJsS2V5JiZ1KGUuY3VycmVudFRhcmdldCkucHJldigpLnRyaWdnZXIoImZvY3VzIil9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7dGhpcy5fcHJvY2Vzc1BhbmVscygpLCExPT09ZS5hY3RpdmUmJiEwPT09ZS5jb2xsYXBzaWJsZXx8IXRoaXMuaGVhZGVycy5sZW5ndGg\/KGUuYWN0aXZlPSExLHRoaXMuYWN0aXZlPXUoKSk6ITE9PT1lLmFjdGl2ZT90aGlzLl9hY3RpdmF0ZSgwKTp0aGlzLmFjdGl2ZS5sZW5ndGgmJiF1LmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSx0aGlzLmFjdGl2ZVswXSk\/dGhpcy5oZWFkZXJzLmxlbmd0aD09PXRoaXMuaGVhZGVycy5maW5kKCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGg\/KGUuYWN0aXZlPSExLHRoaXMuYWN0aXZlPXUoKSk6dGhpcy5fYWN0aXZhdGUoTWF0aC5tYXgoMCxlLmFjdGl2ZS0xKSk6ZS5hY3RpdmU9dGhpcy5oZWFkZXJzLmluZGV4KHRoaXMuYWN0aXZlKSx0aGlzLl9kZXN0cm95SWNvbnMoKSx0aGlzLl9yZWZyZXNoKCl9LF9wcm9jZXNzUGFuZWxzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oZWFkZXJzLHQ9dGhpcy5wYW5lbHM7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5oZWFkZXI\/dGhpcy5oZWFkZXJzPXRoaXMub3B0aW9ucy5oZWFkZXIodGhpcy5lbGVtZW50KTp0aGlzLmhlYWRlcnM9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhlYWRlciksdGhpcy5fYWRkQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiwidWktc3RhdGUtZGVmYXVsdCIpLHRoaXMucGFuZWxzPXRoaXMuaGVhZGVycy5uZXh0KCkuZmlsdGVyKCI6bm90KC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUpIikuaGlkZSgpLHRoaXMuX2FkZENsYXNzKHRoaXMucGFuZWxzLCJ1aS1hY2NvcmRpb24tY29udGVudCIsInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCIpLHQmJih0aGlzLl9vZmYoZS5ub3QodGhpcy5oZWFkZXJzKSksdGhpcy5fb2ZmKHQubm90KHRoaXMucGFuZWxzKSkpfSxfcmVmcmVzaDpmdW5jdGlvbigpe3ZhciBpLGU9dGhpcy5vcHRpb25zLHQ9ZS5oZWlnaHRTdHlsZSxzPXRoaXMuZWxlbWVudC5wYXJlbnQoKTt0aGlzLmFjdGl2ZT10aGlzLl9maW5kQWN0aXZlKGUuYWN0aXZlKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmFjdGl2ZSwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKS5fcmVtb3ZlQ2xhc3ModGhpcy5hY3RpdmUsInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiksdGhpcy5fYWRkQ2xhc3ModGhpcy5hY3RpdmUubmV4dCgpLCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuc2hvdygpLHRoaXMuaGVhZGVycy5hdHRyKCJyb2xlIiwidGFiIikuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcyksdD1lLnVuaXF1ZUlkKCkuYXR0cigiaWQiKSxpPWUubmV4dCgpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7ZS5hdHRyKCJhcmlhLWNvbnRyb2xzIixzKSxpLmF0dHIoImFyaWEtbGFiZWxsZWRieSIsdCl9KS5uZXh0KCkuYXR0cigicm9sZSIsInRhYnBhbmVsIiksdGhpcy5oZWFkZXJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KS5uZXh0KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KS5oaWRlKCksdGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6ImZhbHNlIn0pOnRoaXMuaGVhZGVycy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCksdGhpcy5fY3JlYXRlSWNvbnMoKSx0aGlzLl9zZXR1cEV2ZW50cyhlLmV2ZW50KSwiZmlsbCI9PT10PyhpPXMuaGVpZ2h0KCksdGhpcy5lbGVtZW50LnNpYmxpbmdzKCI6dmlzaWJsZSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLHQ9ZS5jc3MoInBvc2l0aW9uIik7ImFic29sdXRlIiE9PXQmJiJmaXhlZCIhPT10JiYoaS09ZS5vdXRlckhlaWdodCghMCkpfSksdGhpcy5oZWFkZXJzLmVhY2goZnVuY3Rpb24oKXtpLT11KHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMuaGVhZGVycy5uZXh0KCkuZWFjaChmdW5jdGlvbigpe3UodGhpcykuaGVpZ2h0KE1hdGgubWF4KDAsaS11KHRoaXMpLmlubmVySGVpZ2h0KCkrdSh0aGlzKS5oZWlnaHQoKSkpfSkuY3NzKCJvdmVyZmxvdyIsImF1dG8iKSk6ImF1dG8iPT09dCYmKGk9MCx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLmlzKCI6dmlzaWJsZSIpO2V8fHUodGhpcykuc2hvdygpLGk9TWF0aC5tYXgoaSx1KHRoaXMpLmNzcygiaGVpZ2h0IiwiIikuaGVpZ2h0KCkpLGV8fHUodGhpcykuaGlkZSgpfSkuaGVpZ2h0KGkpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKGUpe2U9dGhpcy5fZmluZEFjdGl2ZShlKVswXTtlIT09dGhpcy5hY3RpdmVbMF0mJihlPWV8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmUsY3VycmVudFRhcmdldDplLHByZXZlbnREZWZhdWx0OnUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuaGVhZGVycy5lcShlKTp1KCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbihlKXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTtlJiZ1LmVhY2goZS5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9dGhpcy5hY3RpdmUscz11KGUuY3VycmVudFRhcmdldCksbj1zWzBdPT09aVswXSxhPW4mJnQuY29sbGFwc2libGUsbz1hP3UoKTpzLm5leHQoKSxyPWkubmV4dCgpLG89e29sZEhlYWRlcjppLG9sZFBhbmVsOnIsbmV3SGVhZGVyOmE\/dSgpOnMsbmV3UGFuZWw6b307ZS5wcmV2ZW50RGVmYXVsdCgpLG4mJiF0LmNvbGxhcHNpYmxlfHwhMT09PXRoaXMuX3RyaWdnZXIoImJlZm9yZUFjdGl2YXRlIixlLG8pfHwodC5hY3RpdmU9IWEmJnRoaXMuaGVhZGVycy5pbmRleChzKSx0aGlzLmFjdGl2ZT1uP3UoKTpzLHRoaXMuX3RvZ2dsZShvKSx0aGlzLl9yZW1vdmVDbGFzcyhpLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLHQuaWNvbnMmJihpPWkuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsdC5pY29ucy5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyhpLG51bGwsdC5pY29ucy5oZWFkZXIpKSxufHwodGhpcy5fcmVtb3ZlQ2xhc3MocywidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKS5fYWRkQ2xhc3MocywidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKSx0Lmljb25zJiYobj1zLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiksdGhpcy5fcmVtb3ZlQ2xhc3MobixudWxsLHQuaWNvbnMuaGVhZGVyKS5fYWRkQ2xhc3MobixudWxsLHQuaWNvbnMuYWN0aXZlSGVhZGVyKSksdGhpcy5fYWRkQ2xhc3Mocy5uZXh0KCksInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uZXdQYW5lbCxpPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6ZS5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PXQsdGhpcy5wcmV2SGlkZT1pLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUodCxpLGUpOihpLmhpZGUoKSx0LnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZShlKSksaS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGkucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksdC5sZW5ndGgmJmkubGVuZ3RoP2kucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6dC5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KHUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLHQuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighaS5sZW5ndGh8fGUuaW5kZXgoKTxpLmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGM9bCYmdS5kb3dufHx1LGw9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZSh0KX07cmV0dXJuIG49KG49InN0cmluZyI9PXR5cGVvZiBjP2M6bil8fGMuZWFzaW5nfHx1LmVhc2luZyxhPShhPSJudW1iZXIiPT10eXBlb2YgYz9jOmEpfHxjLmR1cmF0aW9ufHx1LmR1cmF0aW9uLGkubGVuZ3RoP2UubGVuZ3RoPyhzPWUuc2hvdygpLm91dGVySGVpZ2h0KCksaS5hbmltYXRlKHRoaXMuaGlkZVByb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpfX0pLHZvaWQgZS5oaWRlKCkuYW5pbWF0ZSh0aGlzLnNob3dQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixjb21wbGV0ZTpsLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpLCJoZWlnaHQiIT09dC5wcm9wPyJjb250ZW50LWJveCI9PT1oJiYocis9dC5ub3cpOiJjb250ZW50IiE9PW8ub3B0aW9ucy5oZWlnaHRTdHlsZSYmKHQubm93PU1hdGgucm91bmQocy1pLm91dGVySGVpZ2h0KCktcikscj0wKX19KSk6aS5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixsKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGwpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbCxpPXQucHJldigpO3RoaXMuX3JlbW92ZUNsYXNzKHQsInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLHRoaXMuX3JlbW92ZUNsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIikuX2FkZENsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiksdC5sZW5ndGgmJih0LnBhcmVudCgpWzBdLmNsYXNzTmFtZT10LnBhcmVudCgpWzBdLmNsYXNzTmFtZSksdGhpcy5fdHJpZ2dlcigiYWN0aXZhdGUiLG51bGwsZSl9fSksdS51aS5pZT0hIS9tc2llIFtcdy5dKy8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpO3ZhciBlLGE9ITE7dShkb2N1bWVudCkub24oIm1vdXNldXAiLGZ1bmN0aW9uKCl7YT0hMX0pO3Uud2lkZ2V0KCJ1aS5tb3VzZSIse3ZlcnNpb246IjEuMTMuMiIsb3B0aW9uczp7Y2FuY2VsOiJpbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiwgc2VsZWN0LCBvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50Lm9uKCJtb3VzZWRvd24uIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oZSl7cmV0dXJuIHQuX21vdXNlRG93bihlKX0pLm9uKCJjbGljay4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtpZighMD09PXUuZGF0YShlLnRhcmdldCx0LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpKXJldHVybiB1LnJlbW92ZURhdGEoZS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLCExfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Lm9mZigiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24oZSl7aWYoIWEpe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKGUpLHRoaXMuX21vdXNlRG93bkV2ZW50PWU7dmFyIHQ9dGhpcyxpPTE9PT1lLndoaWNoLHM9ISgic3RyaW5nIiE9dHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWx8fCFlLnRhcmdldC5ub2RlTmFtZSkmJnUoZS50YXJnZXQpLmNsb3Nlc3QodGhpcy5vcHRpb25zLmNhbmNlbCkubGVuZ3RoO3JldHVybiBpJiYhcyYmdGhpcy5fbW91c2VDYXB0dXJlKGUpPyh0aGlzLm1vdXNlRGVsYXlNZXQ9IXRoaXMub3B0aW9ucy5kZWxheSx0aGlzLm1vdXNlRGVsYXlNZXR8fCh0aGlzLl9tb3VzZURlbGF5VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3QubW91c2VEZWxheU1ldD0hMH0sdGhpcy5vcHRpb25zLmRlbGF5KSksdGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQoZSksIXRoaXMuX21vdXNlU3RhcnRlZCk\/KGUucHJldmVudERlZmF1bHQoKSwhMCk6KCEwPT09dS5kYXRhKGUudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJnUucmVtb3ZlRGF0YShlLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZU1vdmUoZSl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VVcChlKX0sdGhpcy5kb2N1bWVudC5vbigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vbigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLGUucHJldmVudERlZmF1bHQoKSxhPSEwKSk6ITB9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlTW92ZWQpe2lmKHUudWkuaWUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OSkmJiFlLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VVcChlKTtpZighZS53aGljaClpZihlLm9yaWdpbmFsRXZlbnQuYWx0S2V5fHxlLm9yaWdpbmFsRXZlbnQuY3RybEtleXx8ZS5vcmlnaW5hbEV2ZW50Lm1ldGFLZXl8fGUub3JpZ2luYWxFdmVudC5zaGlmdEtleSl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMDtlbHNlIGlmKCF0aGlzLmlnbm9yZU1pc3NpbmdXaGljaClyZXR1cm4gdGhpcy5fbW91c2VVcChlKX1yZXR1cm4oZS53aGljaHx8ZS5idXR0b24pJiYodGhpcy5fbW91c2VNb3ZlZD0hMCksdGhpcy5fbW91c2VTdGFydGVkPyh0aGlzLl9tb3VzZURyYWcoZSksZS5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsZSksdGhpcy5fbW91c2VTdGFydGVkP3RoaXMuX21vdXNlRHJhZyhlKTp0aGlzLl9tb3VzZVVwKGUpKSwhdGhpcy5fbW91c2VTdGFydGVkKX0sX21vdXNlVXA6ZnVuY3Rpb24oZSl7dGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLGUudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZ1LmRhdGEoZS50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AoZSkpLHRoaXMuX21vdXNlRGVsYXlUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9tb3VzZURlbGF5VGltZXIpLGRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXIpLHRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSExLGE9ITEsZS5wcmV2ZW50RGVmYXVsdCgpfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtZS5wYWdlWCksTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktZS5wYWdlWSkpPj10aGlzLm9wdGlvbnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSx1LndpZGdldCgidWkuc2xpZGVyIix1LnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjEzLjIiLHdpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7YW5pbWF0ZTohMSxjbGFzc2VzOnsidWktc2xpZGVyIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1oYW5kbGUiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLXJhbmdlIjoidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIn0sZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24sInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm9wdGlvbnMsaT10aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNsaWRlci1oYW5kbGUiKSxzPVtdLG49dC52YWx1ZXMmJnQudmFsdWVzLmxlbmd0aHx8MTtmb3IoaS5sZW5ndGg+biYmKGkuc2xpY2UobikucmVtb3ZlKCksaT1pLnNsaWNlKDAsbikpLGU9aS5sZW5ndGg7ZTxuO2UrKylzLnB1c2goIjxzcGFuIHRhYmluZGV4PScwJz48L3NwYW4+Iik7dGhpcy5oYW5kbGVzPWkuYWRkKHUocy5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5fYWRkQ2xhc3ModGhpcy5oYW5kbGVzLCJ1aS1zbGlkZXItaGFuZGxlIiwidWktc3RhdGUtZGVmYXVsdCIpLHRoaXMuaGFuZGxlPXRoaXMuaGFuZGxlcy5lcSgwKSx0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXt1KHRoaXMpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiLGUpLmF0dHIoInRhYkluZGV4IiwwKX0pfSxfY3JlYXRlUmFuZ2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7ZS5yYW5nZT8oITA9PT1lLnJhbmdlJiYoZS52YWx1ZXM\/ZS52YWx1ZXMubGVuZ3RoJiYyIT09ZS52YWx1ZXMubGVuZ3RoP2UudmFsdWVzPVtlLnZhbHVlc1swXSxlLnZhbHVlc1swXV06QXJyYXkuaXNBcnJheShlLnZhbHVlcykmJihlLnZhbHVlcz1lLnZhbHVlcy5zbGljZSgwKSk6ZS52YWx1ZXM9W3RoaXMuX3ZhbHVlTWluKCksdGhpcy5fdmFsdWVNaW4oKV0pLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UubGVuZ3RoPyh0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UtbWluIHVpLXNsaWRlci1yYW5nZS1tYXgiKSx0aGlzLnJhbmdlLmNzcyh7bGVmdDoiIixib3R0b206IiJ9KSk6KHRoaXMucmFuZ2U9dSgiPGRpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZSIpKSwibWluIiE9PWUucmFuZ2UmJiJtYXgiIT09ZS5yYW5nZXx8dGhpcy5fYWRkQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLSIrZS5yYW5nZSkpOih0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLnJlbW92ZSgpLHRoaXMucmFuZ2U9bnVsbCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbigpe3RoaXMuX29mZih0aGlzLmhhbmRsZXMpLHRoaXMuX29uKHRoaXMuaGFuZGxlcyx0aGlzLl9oYW5kbGVFdmVudHMpLHRoaXMuX2hvdmVyYWJsZSh0aGlzLmhhbmRsZXMpLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmhhbmRsZXMpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlcy5yZW1vdmUoKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLnJlbW92ZSgpLHRoaXMuX21vdXNlRGVzdHJveSgpfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKGUpe3ZhciBpLHMsbixhLHQsbyxyPXRoaXMsaD10aGlzLm9wdGlvbnM7cmV0dXJuIWguZGlzYWJsZWQmJih0aGlzLmVsZW1lbnRTaXplPXt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKX0sdGhpcy5lbGVtZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSxvPXt4OmUucGFnZVgseTplLnBhZ2VZfSxpPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShvKSxzPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PU1hdGguYWJzKGktci52YWx1ZXMoZSkpOyh0PHN8fHM9PT10JiYoZT09PXIuX2xhc3RDaGFuZ2VkVmFsdWV8fHIudmFsdWVzKGUpPT09aC5taW4pKSYmKHM9dCxuPXUodGhpcyksYT1lKX0pLCExIT09dGhpcy5fc3RhcnQoZSxhKSYmKHRoaXMuX21vdXNlU2xpZGluZz0hMCx0aGlzLl9oYW5kbGVJbmRleD1hLHRoaXMuX2FkZENsYXNzKG4sbnVsbCwidWktc3RhdGUtYWN0aXZlIiksbi50cmlnZ2VyKCJmb2N1cyIpLHQ9bi5vZmZzZXQoKSxvPSF1KGUudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCIudWktc2xpZGVyLWhhbmRsZSIpLHRoaXMuX2NsaWNrT2Zmc2V0PW8\/e2xlZnQ6MCx0b3A6MH06e2xlZnQ6ZS5wYWdlWC10LmxlZnQtbi53aWR0aCgpLzIsdG9wOmUucGFnZVktdC50b3Atbi5oZWlnaHQoKS8yLShwYXJzZUludChuLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChuLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChuLmNzcygibWFyZ2luVG9wIiksMTApfHwwKX0sdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfHx0aGlzLl9zbGlkZShlLGEsaSksdGhpcy5fYW5pbWF0ZU9mZj0hMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGUpe3ZhciB0PXt4OmUucGFnZVgseTplLnBhZ2VZfSx0PXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZSh0KTtyZXR1cm4gdGhpcy5fc2xpZGUoZSx0aGlzLl9oYW5kbGVJbmRleCx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9zdG9wKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2NoYW5nZShlLHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2NsaWNrT2Zmc2V0PW51bGwsdGhpcy5fYW5pbWF0ZU9mZj0hMX0sX2RldGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiPT09dGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZhbHVlRnJvbU1vdXNlOmZ1bmN0aW9uKGUpe3ZhciB0LGU9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8odD10aGlzLmVsZW1lbnRTaXplLndpZHRoLGUueC10aGlzLmVsZW1lbnRPZmZzZXQubGVmdC0odGhpcy5fY2xpY2tPZmZzZXQ\/dGhpcy5fY2xpY2tPZmZzZXQubGVmdDowKSk6KHQ9dGhpcy5lbGVtZW50U2l6ZS5oZWlnaHQsZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSksZT1lL3Q7cmV0dXJuKGU9MTxlPzE6ZSk8MCYmKGU9MCksInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJihlPTEtZSksdD10aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCksdD10aGlzLl92YWx1ZU1pbigpK2UqdCx0aGlzLl90cmltQWxpZ25WYWx1ZSh0KX0sX3VpSGFzaDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9e2hhbmRsZTp0aGlzLmhhbmRsZXNbZV0saGFuZGxlSW5kZXg6ZSx2YWx1ZTp2b2lkIDAhPT10P3Q6dGhpcy52YWx1ZSgpfTtyZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKHMudmFsdWU9dm9pZCAwIT09dD90OnRoaXMudmFsdWVzKGUpLHMudmFsdWVzPWl8fHRoaXMudmFsdWVzKCkpLHN9LF9oYXNNdWx0aXBsZVZhbHVlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aH0sX3N0YXJ0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3RyaWdnZXIoInN0YXJ0IixlLHRoaXMuX3VpSGFzaCh0KSl9LF9zbGlkZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbj10aGlzLnZhbHVlKCksYT10aGlzLnZhbHVlcygpO3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkmJihzPXRoaXMudmFsdWVzKHQ\/MDoxKSxuPXRoaXMudmFsdWVzKHQpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmITA9PT10aGlzLm9wdGlvbnMucmFuZ2UmJihpPTA9PT10P01hdGgubWluKHMsaSk6TWF0aC5tYXgocyxpKSksYVt0XT1pKSxpIT09biYmITEhPT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx0aGlzLl91aUhhc2godCxpLGEpKSYmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy52YWx1ZXModCxpKTp0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt0aGlzLl90cmlnZ2VyKCJzdG9wIixlLHRoaXMuX3VpSGFzaCh0KSl9LF9jaGFuZ2U6ZnVuY3Rpb24oZSx0KXt0aGlzLl9rZXlTbGlkaW5nfHx0aGlzLl9tb3VzZVNsaWRpbmd8fCh0aGlzLl9sYXN0Q2hhbmdlZFZhbHVlPXQsdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHRoaXMuX3VpSGFzaCh0KSkpfSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHZvaWQgdGhpcy5fY2hhbmdlKG51bGwsMCkpOnRoaXMuX3ZhbHVlKCl9LHZhbHVlczpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbjtpZigxPGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXNbZV09dGhpcy5fdHJpbUFsaWduVmFsdWUodCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCxlKTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5fdmFsdWVzKCk7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy5fdmFsdWVzKGUpOnRoaXMudmFsdWUoKTtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLHM9ZSxuPTA7bjxpLmxlbmd0aDtuKz0xKWlbbl09dGhpcy5fdHJpbUFsaWduVmFsdWUoc1tuXSksdGhpcy5fY2hhbmdlKG51bGwsbik7dGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPTA7c3dpdGNoKCJyYW5nZSI9PT1lJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKCJtaW4iPT09dD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcygwKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpOiJtYXgiPT09dCYmKHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl92YWx1ZXModGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgtMSksdGhpcy5vcHRpb25zLnZhbHVlcz1udWxsKSksQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMudmFsdWVzKSYmKHM9dGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpLHRoaXMuX3N1cGVyKGUsdCksZSl7Y2FzZSJvcmllbnRhdGlvbiI6dGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9yZW1vdmVDbGFzcygidWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIikuX2FkZENsYXNzKCJ1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLm9wdGlvbnMucmFuZ2UmJnRoaXMuX3JlZnJlc2hSYW5nZSh0KSx0aGlzLmhhbmRsZXMuY3NzKCJob3Jpem9udGFsIj09PXQ\/ImJvdHRvbSI6ImxlZnQiLCIiKTticmVhaztjYXNlInZhbHVlIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJ2YWx1ZXMiOmZvcih0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLGk9cy0xOzA8PWk7aS0tKXRoaXMuX2NoYW5nZShudWxsLGkpO3RoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJzdGVwIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fY2FsY3VsYXRlTmV3TWF4KCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInJhbmdlIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyKGUpLHRoaXMuX3RvZ2dsZUNsYXNzKG51bGwsInVpLXN0YXRlLWRpc2FibGVkIiwhIWUpfSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPXRoaXMub3B0aW9ucy52YWx1ZXNbZV0sZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKTtpZih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpKXtmb3IodD10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCksaT0wO2k8dC5sZW5ndGg7aSs9MSl0W2ldPXRoaXMuX3RyaW1BbGlnblZhbHVlKHRbaV0pO3JldHVybiB0fXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYoZTw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PTA8dGhpcy5vcHRpb25zLnN0ZXA\/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQsZT1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihlKz0wPGk\/dDotdCkscGFyc2VGbG9hdChlLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcDsoZT1NYXRoLnJvdW5kKChlLXQpL2kpKmkrdCk+dGhpcy5vcHRpb25zLm1heCYmKGUtPWkpLHRoaXMubWF4PXBhcnNlRmxvYXQoZS50b0ZpeGVkKHRoaXMuX3ByZWNpc2lvbigpKSl9LF9wcmVjaXNpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMuc3RlcCk7cmV0dXJuIGU9bnVsbCE9PXRoaXMub3B0aW9ucy5taW4\/TWF0aC5tYXgoZSx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSk6ZX0sX3ByZWNpc2lvbk9mOmZ1bmN0aW9uKGUpe3ZhciB0PWUudG9TdHJpbmcoKSxlPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09ZT8wOnQubGVuZ3RoLWUtMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hSYW5nZTpmdW5jdGlvbihlKXsidmVydGljYWwiPT09ZSYmdGhpcy5yYW5nZS5jc3Moe3dpZHRoOiIiLGxlZnQ6IiJ9KSwiaG9yaXpvbnRhbCI9PT1lJiZ0aGlzLnJhbmdlLmNzcyh7aGVpZ2h0OiIiLGJvdHRvbToiIn0pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsaSxlLHMsbixhPXRoaXMub3B0aW9ucy5yYW5nZSxvPXRoaXMub3B0aW9ucyxyPXRoaXMsaD0hdGhpcy5fYW5pbWF0ZU9mZiYmby5hbmltYXRlLGw9e307dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXtpPShyLnZhbHVlcyhlKS1yLl92YWx1ZU1pbigpKS8oci5fdmFsdWVNYXgoKS1yLl92YWx1ZU1pbigpKSoxMDAsbFsiaG9yaXpvbnRhbCI9PT1yLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdSh0aGlzKS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKGwsby5hbmltYXRlKSwhMD09PXIub3B0aW9ucy5yYW5nZSYmKCJob3Jpem9udGFsIj09PXIub3JpZW50YXRpb24\/KDA9PT1lJiZyLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2xlZnQ6aSsiJSJ9LG8uYW5pbWF0ZSksMT09PWUmJnIucmFuZ2VbaD8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246by5hbmltYXRlfSkpOigwPT09ZSYmci5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHtib3R0b206aSsiJSJ9LG8uYW5pbWF0ZSksMT09PWUmJnIucmFuZ2VbaD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6aS10KyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOm8uYW5pbWF0ZX0pKSksdD1pfSk6KGU9dGhpcy52YWx1ZSgpLHM9dGhpcy5fdmFsdWVNaW4oKSxuPXRoaXMuX3ZhbHVlTWF4KCksaT1uIT09cz8oZS1zKS8obi1zKSoxMDA6MCxsWyJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24\/ImxlZnQiOiJib3R0b20iXT1pKyIlIix0aGlzLmhhbmRsZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKGwsby5hbmltYXRlKSwibWluIj09PWEmJiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6aSsiJSJ9LG8uYW5pbWF0ZSksIm1heCI9PT1hJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0sby5hbmltYXRlKSwibWluIj09PWEmJiJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppKyIlIn0sby5hbmltYXRlKSwibWF4Ij09PWEmJiJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDoxMDAtaSsiJSJ9LG8uYW5pbWF0ZSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKGUpe3ZhciB0LGkscyxuPXUoZS50YXJnZXQpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiKTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIHUudWkua2V5Q29kZS5IT01FOmNhc2UgdS51aS5rZXlDb2RlLkVORDpjYXNlIHUudWkua2V5Q29kZS5QQUdFX1VQOmNhc2UgdS51aS5rZXlDb2RlLlBBR0VfRE9XTjpjYXNlIHUudWkua2V5Q29kZS5VUDpjYXNlIHUudWkua2V5Q29kZS5SSUdIVDpjYXNlIHUudWkua2V5Q29kZS5ET1dOOmNhc2UgdS51aS5rZXlDb2RlLkxFRlQ6aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMCx0aGlzLl9hZGRDbGFzcyh1KGUudGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSwhMT09PXRoaXMuX3N0YXJ0KGUsbikpKXJldHVybn1zd2l0Y2gocz10aGlzLm9wdGlvbnMuc3RlcCx0PWk9dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyhuKTp0aGlzLnZhbHVlKCksZS5rZXlDb2RlKXtjYXNlIHUudWkua2V5Q29kZS5IT01FOmk9dGhpcy5fdmFsdWVNaW4oKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5FTkQ6aT10aGlzLl92YWx1ZU1heCgpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlBBR0VfVVA6aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0Kyh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlBBR0VfRE9XTjppPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQtKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuVVA6Y2FzZSB1LnVpLmtleUNvZGUuUklHSFQ6aWYodD09PXRoaXMuX3ZhbHVlTWF4KCkpcmV0dXJuO2k9dGhpcy5fdHJpbUFsaWduVmFsdWUodCtzKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5ET1dOOmNhc2UgdS51aS5rZXlDb2RlLkxFRlQ6aWYodD09PXRoaXMuX3ZhbHVlTWluKCkpcmV0dXJuO2k9dGhpcy5fdHJpbUFsaWduVmFsdWUodC1zKX10aGlzLl9zbGlkZShlLG4saSl9LGtleXVwOmZ1bmN0aW9uKGUpe3ZhciB0PXUoZS50YXJnZXQpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiKTt0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMSx0aGlzLl9zdG9wKGUsdCksdGhpcy5fY2hhbmdlKGUsdCksdGhpcy5fcmVtb3ZlQ2xhc3ModShlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIikpfX19KTt2YXIgaD11LGw9e30sYz1sLnRvU3RyaW5nLGQ9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxmPVt7cmU6L3JnYmE\/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE\/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pPy8scGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW3BhcnNlSW50KGVbMV0sMTYpLHBhcnNlSW50KGVbMl0sMTYpLHBhcnNlSW50KGVbM10sMTYpLGVbNF0\/KHBhcnNlSW50KGVbNF0sMTYpLzI1NSkudG9GaXhlZCgyKToxXX19LHtyZTovIyhbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSk\/LyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bcGFyc2VJbnQoZVsxXStlWzFdLDE2KSxwYXJzZUludChlWzJdK2VbMl0sMTYpLHBhcnNlSW50KGVbM10rZVszXSwxNiksZVs0XT8ocGFyc2VJbnQoZVs0XStlWzRdLDE2KS8yNTUpLnRvRml4ZWQoMik6MV19fSx7cmU6L2hzbGE\/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg\/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLHA9aC5Db2xvcj1mdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gbmV3IGguQ29sb3IuZm4ucGFyc2UoZSx0LGkscyl9LGc9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sbT17Ynl0ZTp7Zmxvb3I6ITAsbWF4OjI1NX0scGVyY2VudDp7bWF4OjF9LGRlZ3JlZXM6e21vZDozNjAsZmxvb3I6ITB9fSx2PXAuc3VwcG9ydD17fSxfPWgoIjxwPiIpWzBdLHk9aC5lYWNoO2Z1bmN0aW9uIGIoZSl7cmV0dXJuIG51bGw9PWU\/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGU\/bFtjLmNhbGwoZSldfHwib2JqZWN0Ijp0eXBlb2YgZX1mdW5jdGlvbiB4KGUsdCxpKXt2YXIgcz1tW3QudHlwZV18fHt9O3JldHVybiBudWxsPT1lP2l8fCF0LmRlZj9udWxsOnQuZGVmOihlPXMuZmxvb3I\/fn5lOnBhcnNlRmxvYXQoZSksaXNOYU4oZSk\/dC5kZWY6cy5tb2Q\/KGUrcy5tb2QpJXMubW9kOk1hdGgubWluKHMubWF4LE1hdGgubWF4KDAsZSkpKX1mdW5jdGlvbiB3KHMpe3ZhciBuPXAoKSxhPW4uX3JnYmE9W107cmV0dXJuIHM9cy50b0xvd2VyQ2FzZSgpLHkoZixmdW5jdGlvbihlLHQpe3ZhciBpPXQucmUuZXhlYyhzKSxpPWkmJnQucGFyc2UoaSksdD10LnNwYWNlfHwicmdiYSI7aWYoaSlyZXR1cm4gaT1uW3RdKGkpLG5bZ1t0XS5jYWNoZV09aVtnW3RdLmNhY2hlXSxhPW4uX3JnYmE9aS5fcmdiYSwhMX0pLGEubGVuZ3RoPygiMCwwLDAsMCI9PT1hLmpvaW4oKSYmaC5leHRlbmQoYSxILnRyYW5zcGFyZW50KSxuKTpIW3NdfWZ1bmN0aW9uIEMoZSx0LGkpe3JldHVybiA2KihpPShpKzEpJTEpPDE\/ZSsodC1lKSppKjY6MippPDE\/dDozKmk8Mj9lKyh0LWUpKigyLzMtaSkqNjplfV8uc3R5bGUuY3NzVGV4dD0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEsMSwxLC41KSIsdi5yZ2JhPS0xPF8uc3R5bGUuYmFja2dyb3VuZENvbG9yLmluZGV4T2YoInJnYmEiKSx5KGcsZnVuY3Rpb24oZSx0KXt0LmNhY2hlPSJfIitlLHQucHJvcHMuYWxwaGE9e2lkeDozLHR5cGU6InBlcmNlbnQiLGRlZjoxfX0pLGguZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtsWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pLChwLmZuPWguZXh0ZW5kKHAucHJvdG90eXBlLHtwYXJzZTpmdW5jdGlvbihuLGUsdCxpKXtpZih2b2lkIDA9PT1uKXJldHVybiB0aGlzLl9yZ2JhPVtudWxsLG51bGwsbnVsbCxudWxsXSx0aGlzOyhuLmpxdWVyeXx8bi5ub2RlVHlwZSkmJihuPWgobikuY3NzKGUpLGU9dm9pZCAwKTt2YXIgYT10aGlzLHM9YihuKSxvPXRoaXMuX3JnYmE9W107cmV0dXJuIHZvaWQgMCE9PWUmJihuPVtuLGUsdCxpXSxzPSJhcnJheSIpLCJzdHJpbmciPT09cz90aGlzLnBhcnNlKHcobil8fEguX2RlZmF1bHQpOiJhcnJheSI9PT1zPyh5KGcucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe29bdC5pZHhdPXgoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PXM\/KHkoZyxuIGluc3RhbmNlb2YgcD9mdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihhW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9OmZ1bmN0aW9uKGUsaSl7dmFyIHM9aS5jYWNoZTt5KGkucHJvcHMsZnVuY3Rpb24oZSx0KXtpZighYVtzXSYmaS50byl7aWYoImFscGhhIj09PWV8fG51bGw9PW5bZV0pcmV0dXJuO2Fbc109aS50byhhLl9yZ2JhKX1hW3NdW3QuaWR4XT14KG5bZV0sdCwhMCl9KSxhW3NdJiZoLmluQXJyYXkobnVsbCxhW3NdLnNsaWNlKDAsMykpPDAmJihudWxsPT1hW3NdWzNdJiYoYVtzXVszXT0xKSxpLmZyb20mJihhLl9yZ2JhPWkuZnJvbShhW3NdKSkpfSksdGhpcyk6dm9pZCAwfSxpczpmdW5jdGlvbihlKXt2YXIgbj1wKGUpLGE9ITAsbz10aGlzO3JldHVybiB5KGcsZnVuY3Rpb24oZSx0KXt2YXIgaSxzPW5bdC5jYWNoZV07cmV0dXJuIHMmJihpPW9bdC5jYWNoZV18fHQudG8mJnQudG8oby5fcmdiYSl8fFtdLHkodC5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKG51bGwhPXNbdC5pZHhdKXJldHVybiBhPXNbdC5pZHhdPT09aVt0LmlkeF19KSksYX0pLGF9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBpPVtdLHM9dGhpcztyZXR1cm4geShnLGZ1bmN0aW9uKGUsdCl7c1t0LmNhY2hlXSYmaS5wdXNoKGUpfSksaS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciB0PShsPXAoZSkpLl9zcGFjZSgpLGk9Z1t0XSxlPTA9PT10aGlzLmFscGhhKCk\/cCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9ZVtpLmNhY2hlXXx8aS50byhlLl9yZ2JhKSxoPXIuc2xpY2UoKSxsPWxbaS5jYWNoZV07cmV0dXJuIHkoaS5wcm9wcyxmdW5jdGlvbihlLHQpe3ZhciBpPXQuaWR4LHM9cltpXSxuPWxbaV0sYT1tW3QudHlwZV18fHt9O251bGwhPT1uJiYobnVsbD09PXM\/aFtpXT1uOihhLm1vZCYmKG4tcz5hLm1vZC8yP3MrPWEubW9kOnMtbj5hLm1vZC8yJiYocy09YS5tb2QpKSxoW2ldPXgoKG4tcykqbytzLHQpKSl9KSx0aGlzW3RdKGgpfSxibGVuZDpmdW5jdGlvbihlKXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgdD10aGlzLl9yZ2JhLnNsaWNlKCksaT10LnBvcCgpLHM9cChlKS5fcmdiYTtyZXR1cm4gcChoLm1hcCh0LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtaSkqc1t0XStpKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciBlPSJyZ2JhKCIsdD1oLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGwhPWU\/ZToyPHQ\/MTowfSk7cmV0dXJuIDE9PT10WzNdJiYodC5wb3AoKSxlPSJyZ2IoIiksZSt0LmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciBlPSJoc2xhKCIsdD1oLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT0yPHQ\/MTowKSxlPXQmJnQ8Mz9NYXRoLnJvdW5kKDEwMCplKSsiJSI6ZX0pO3JldHVybiAxPT09dFszXSYmKHQucG9wKCksZT0iaHNsKCIpLGUrdC5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9yZ2JhLnNsaWNlKCksaT10LnBvcCgpO3JldHVybiBlJiZ0LnB1c2gofn4oMjU1KmkpKSwiIyIraC5tYXAodCxmdW5jdGlvbihlKXtyZXR1cm4gMT09PShlPShlfHwwKS50b1N0cmluZygxNikpLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSkucGFyc2UucHJvdG90eXBlPXAuZm4sZy5oc2xhLnRvPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMjU1LGk9ZVsxXS8yNTUscz1lWzJdLzI1NSxuPWVbM10sYT1NYXRoLm1heCh0LGkscyksbz1NYXRoLm1pbih0LGkscykscj1hLW8saD1hK28sZT0uNSpoLGk9bz09PWE\/MDp0PT09YT82MCooaS1zKS9yKzM2MDppPT09YT82MCoocy10KS9yKzEyMDo2MCoodC1pKS9yKzI0MCxoPTA9PXI\/MDplPD0uNT9yL2g6ci8oMi1oKTtyZXR1cm5bTWF0aC5yb3VuZChpKSUzNjAsaCxlLG51bGw9PW4\/MTpuXX0sZy5oc2xhLmZyb209ZnVuY3Rpb24oZSl7aWYobnVsbD09ZVswXXx8bnVsbD09ZVsxXXx8bnVsbD09ZVsyXSlyZXR1cm5bbnVsbCxudWxsLG51bGwsZVszXV07dmFyIHQ9ZVswXS8zNjAsaT1lWzFdLHM9ZVsyXSxlPWVbM10saT1zPD0uNT9zKigxK2kpOnMraS1zKmkscz0yKnMtaTtyZXR1cm5bTWF0aC5yb3VuZCgyNTUqQyhzLGksdCsxLzMpKSxNYXRoLnJvdW5kKDI1NSpDKHMsaSx0KSksTWF0aC5yb3VuZCgyNTUqQyhzLGksdC0xLzMpKSxlXX0seShnLGZ1bmN0aW9uKGgsZSl7dmFyIHQ9ZS5wcm9wcyxhPWUuY2FjaGUsbz1lLnRvLHI9ZS5mcm9tO3AuZm5baF09ZnVuY3Rpb24oZSl7aWYobyYmIXRoaXNbYV0mJih0aGlzW2FdPW8odGhpcy5fcmdiYSkpLHZvaWQgMD09PWUpcmV0dXJuIHRoaXNbYV0uc2xpY2UoKTt2YXIgaT1iKGUpLHM9ImFycmF5Ij09PWl8fCJvYmplY3QiPT09aT9lOmFyZ3VtZW50cyxuPXRoaXNbYV0uc2xpY2UoKTtyZXR1cm4geSh0LGZ1bmN0aW9uKGUsdCl7ZT1zWyJvYmplY3QiPT09aT9lOnQuaWR4XTtudWxsPT1lJiYoZT1uW3QuaWR4XSksblt0LmlkeF09eChlLHQpfSkscj8oKGU9cChyKG4pKSlbYV09bixlKTpwKG4pfSx5KHQsZnVuY3Rpb24obyxyKXtwLmZuW29dfHwocC5mbltvXT1mdW5jdGlvbihlKXt2YXIgdCxpPWIoZSkscz0iYWxwaGEiPT09bz90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6aCxuPXRoaXNbc10oKSxhPW5bci5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09aT9hOigiZnVuY3Rpb24iPT09aSYmKGk9YihlPWUuY2FsbCh0aGlzLGEpKSksbnVsbD09ZSYmci5lbXB0eT90aGlzOigic3RyaW5nIj09PWkmJih0PWQuZXhlYyhlKSkmJihlPWErcGFyc2VGbG9hdCh0WzJdKSooIisiPT09dFsxXT8xOi0xKSksbltyLmlkeF09ZSx0aGlzW3NdKG4pKSl9KX0pfSksKHAuaG9vaz1mdW5jdGlvbihlKXtlPWUuc3BsaXQoIiAiKTt5KGUsZnVuY3Rpb24oZSxhKXtoLmNzc0hvb2tzW2FdPXtzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49IiI7aWYoInRyYW5zcGFyZW50IiE9PXQmJigic3RyaW5nIiE9PWIodCl8fChpPXcodCkpKSl7aWYodD1wKGl8fHQpLCF2LnJnYmEmJjEhPT10Ll9yZ2JhWzNdKXtmb3Iocz0iYmFja2dyb3VuZENvbG9yIj09PWE\/ZS5wYXJlbnROb2RlOmU7KCIiPT09bnx8InRyYW5zcGFyZW50Ij09PW4pJiZzJiZzLnN0eWxlOyl0cnl7bj1oLmNzcyhzLCJiYWNrZ3JvdW5kQ29sb3IiKSxzPXMucGFyZW50Tm9kZX1jYXRjaChlKXt9dD10LmJsZW5kKG4mJiJ0cmFuc3BhcmVudCIhPT1uP246Il9kZWZhdWx0Iil9dD10LnRvUmdiYVN0cmluZygpfXRyeXtlLnN0eWxlW2FdPXR9Y2F0Y2goZSl7fX19LGguZnguc3RlcFthXT1mdW5jdGlvbihlKXtlLmNvbG9ySW5pdHx8KGUuc3RhcnQ9cChlLmVsZW0sYSksZS5lbmQ9cChlLmVuZCksZS5jb2xvckluaXQ9ITApLGguY3NzSG9va3NbYV0uc2V0KGUuZWxlbSxlLnN0YXJ0LnRyYW5zaXRpb24oZS5lbmQsZS5wb3MpKX19KX0pKCJiYWNrZ3JvdW5kQ29sb3IgYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyTGVmdENvbG9yIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyVG9wQ29sb3IgY29sb3IgY29sdW1uUnVsZUNvbG9yIG91dGxpbmVDb2xvciB0ZXh0RGVjb3JhdGlvbkNvbG9yIHRleHRFbXBoYXNpc0NvbG9yIiksaC5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGkpe3ZhciBzPXt9O3JldHVybiB5KFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oZSx0KXtzWyJib3JkZXIiK3QrIkNvbG9yIl09aX0pLHN9fTt2YXIgTSxrLEQsRSxTLE8sSSxOLEEsUCxIPWguQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn0sVD0idWktZWZmZWN0cy0iLFc9InVpLWVmZmVjdHMtc3R5bGUiLFY9InVpLWVmZmVjdHMtYW5pbWF0ZWQiO2Z1bmN0aW9uIEYoZSl7dmFyIHQsaSxzPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldz9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpOmUuY3VycmVudFN0eWxlLG49e307aWYocyYmcy5sZW5ndGgmJnNbMF0mJnNbc1swXV0pZm9yKGk9cy5sZW5ndGg7aS0tOykic3RyaW5nIj09dHlwZW9mIHNbdD1zW2ldXSYmKG5bdC5yZXBsYWNlKC8tKFtcZGEtel0pL2dpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pXT1zW3RdKTtlbHNlIGZvcih0IGluIHMpInN0cmluZyI9PXR5cGVvZiBzW3RdJiYoblt0XT1zW3RdKTtyZXR1cm4gbn1mdW5jdGlvbiBxKGUsdCxpLHMpe3JldHVybiBlPXtlZmZlY3Q6ZT11LmlzUGxhaW5PYmplY3QoZSk\/KHQ9ZSkuZWZmZWN0OmV9LCJmdW5jdGlvbiI9PXR5cGVvZih0PW51bGw9PXQ\/e306dCkmJihzPXQsaT1udWxsLHQ9e30pLCJudW1iZXIiIT10eXBlb2YgdCYmIXUuZnguc3BlZWRzW3RdfHwocz1pLGk9dCx0PXt9KSwiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHM9aSxpPW51bGwpLHQmJnUuZXh0ZW5kKGUsdCksaT1pfHx0LmR1cmF0aW9uLGUuZHVyYXRpb249dS5meC5vZmY\/MDoibnVtYmVyIj09dHlwZW9mIGk\/aTppIGluIHUuZnguc3BlZWRzP3UuZnguc3BlZWRzW2ldOnUuZnguc3BlZWRzLl9kZWZhdWx0LGUuY29tcGxldGU9c3x8dC5jb21wbGV0ZSxlfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIWV8fCJudW1iZXIiPT10eXBlb2YgZXx8dS5meC5zcGVlZHNbZV18fCgic3RyaW5nIj09dHlwZW9mIGUmJiF1LmVmZmVjdHMuZWZmZWN0W2VdfHwoImZ1bmN0aW9uIj09dHlwZW9mIGV8fCJvYmplY3QiPT10eXBlb2YgZSYmIWUuZWZmZWN0KSl9ZnVuY3Rpb24gQihlLHQpe3ZhciBpPXQub3V0ZXJXaWR0aCgpLHQ9dC5vdXRlckhlaWdodCgpLGU9L15yZWN0XCgoLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKSw\/XHMqKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0bylcKSQvLmV4ZWMoZSl8fFsiIiwwLGksdCwwXTtyZXR1cm57dG9wOnBhcnNlRmxvYXQoZVsxXSl8fDAscmlnaHQ6ImF1dG8iPT09ZVsyXT9pOnBhcnNlRmxvYXQoZVsyXSksYm90dG9tOiJhdXRvIj09PWVbM10\/dDpwYXJzZUZsb2F0KGVbM10pLGxlZnQ6cGFyc2VGbG9hdChlWzRdKXx8MH19dS5lZmZlY3RzPXtlZmZlY3Q6e319LEU9WyJhZGQiLCJyZW1vdmUiLCJ0b2dnbGUiXSxTPXtib3JkZXI6MSxib3JkZXJCb3R0b206MSxib3JkZXJDb2xvcjoxLGJvcmRlckxlZnQ6MSxib3JkZXJSaWdodDoxLGJvcmRlclRvcDoxLGJvcmRlcldpZHRoOjEsbWFyZ2luOjEscGFkZGluZzoxfSx1LmVhY2goWyJib3JkZXJMZWZ0U3R5bGUiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJUb3BTdHlsZSJdLGZ1bmN0aW9uKGUsdCl7dS5meC5zdGVwW3RdPWZ1bmN0aW9uKGUpeygibm9uZSIhPT1lLmVuZCYmIWUuc2V0QXR0cnx8MT09PWUucG9zJiYhZS5zZXRBdHRyKSYmKGguc3R5bGUoZS5lbGVtLHQsZS5lbmQpLGUuc2V0QXR0cj0hMCl9fSksdS5mbi5hZGRCYWNrfHwodS5mbi5hZGRCYWNrPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChudWxsPT1lP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGUpKX0pLHUuZWZmZWN0cy5hbmltYXRlQ2xhc3M9ZnVuY3Rpb24obixlLHQsaSl7dmFyIGE9dS5zcGVlZChlLHQsaSk7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgaT11KHRoaXMpLGU9aS5hdHRyKCJjbGFzcyIpfHwiIix0PSh0PWEuY2hpbGRyZW4\/aS5maW5kKCIqIikuYWRkQmFjaygpOmkpLm1hcChmdW5jdGlvbigpe3JldHVybntlbDp1KHRoaXMpLHN0YXJ0OkYodGhpcyl9fSkscz1mdW5jdGlvbigpe3UuZWFjaChFLGZ1bmN0aW9uKGUsdCl7blt0XSYmaVt0KyJDbGFzcyJdKG5bdF0pfSl9O3MoKSx0PXQubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kPUYodGhpcy5lbFswXSksdGhpcy5kaWZmPWZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXt9O2ZvcihpIGluIHQpcz10W2ldLGVbaV0hPT1zJiYoU1tpXXx8IXUuZnguc3RlcFtpXSYmaXNOYU4ocGFyc2VGbG9hdChzKSl8fChuW2ldPXMpKTtyZXR1cm4gbn0odGhpcy5zdGFydCx0aGlzLmVuZCksdGhpc30pLGkuYXR0cigiY2xhc3MiLGUpLHQ9dC5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dS5EZWZlcnJlZCgpLGk9dS5leHRlbmQoe30sYSx7cXVldWU6ITEsY29tcGxldGU6ZnVuY3Rpb24oKXt0LnJlc29sdmUoZSl9fSk7cmV0dXJuIHRoaXMuZWwuYW5pbWF0ZSh0aGlzLmRpZmYsaSksdC5wcm9taXNlKCl9KSx1LndoZW4uYXBwbHkodSx0LmdldCgpKS5kb25lKGZ1bmN0aW9uKCl7cygpLHUuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsO3UuZWFjaCh0aGlzLmRpZmYsZnVuY3Rpb24oZSl7dC5jc3MoZSwiIil9KX0pLGEuY29tcGxldGUuY2FsbChpWzBdKX0pfSl9LHUuZm4uZXh0ZW5kKHthZGRDbGFzczooRD11LmZuLmFkZENsYXNzLGZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiB0P3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6ZX0sdCxpLHMpOkQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscmVtb3ZlQ2xhc3M6KGs9dS5mbi5yZW1vdmVDbGFzcyxmdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gMTxhcmd1bWVudHMubGVuZ3RoP3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6ZX0sdCxpLHMpOmsuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksdG9nZ2xlQ2xhc3M6KE09dS5mbi50b2dnbGVDbGFzcyxmdW5jdGlvbihlLHQsaSxzLG4pe3JldHVybiJib29sZWFuIj09dHlwZW9mIHR8fHZvaWQgMD09PXQ\/aT91LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx0P3thZGQ6ZX06e3JlbW92ZTplfSxpLHMsbik6TS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse3RvZ2dsZTplfSx0LGkscyl9KSxzd2l0Y2hDbGFzczpmdW5jdGlvbihlLHQsaSxzLG4pe3JldHVybiB1LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOnQscmVtb3ZlOmV9LGkscyxuKX19KSx1LmV4cHImJnUuZXhwci5wc2V1ZG9zJiZ1LmV4cHIucHNldWRvcy5hbmltYXRlZCYmKHUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPShPPXUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkLGZ1bmN0aW9uKGUpe3JldHVybiEhdShlKS5kYXRhKFYpfHxPKGUpfSkpLCExIT09dS51aUJhY2tDb21wYXQmJnUuZXh0ZW5kKHUuZWZmZWN0cyx7c2F2ZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgaT0wLHM9dC5sZW5ndGg7aTxzO2krKyludWxsIT09dFtpXSYmZS5kYXRhKFQrdFtpXSxlWzBdLnN0eWxlW3RbaV1dKX0scmVzdG9yZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSxzPTAsbj10Lmxlbmd0aDtzPG47cysrKW51bGwhPT10W3NdJiYoaT1lLmRhdGEoVCt0W3NdKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiB0PSJ0b2dnbGUiPT09dD9lLmlzKCI6aGlkZGVuIik\/InNob3ciOiJoaWRlIjp0fSxjcmVhdGVXcmFwcGVyOmZ1bmN0aW9uKGkpe2lmKGkucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSlyZXR1cm4gaS5wYXJlbnQoKTt2YXIgcz17d2lkdGg6aS5vdXRlcldpZHRoKCEwKSxoZWlnaHQ6aS5vdXRlckhlaWdodCghMCksZmxvYXQ6aS5jc3MoImZsb2F0Iil9LGU9dSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygidWktZWZmZWN0cy13cmFwcGVyIikuY3NzKHtmb250U2l6ZToiMTAwJSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsbWFyZ2luOjAscGFkZGluZzowfSksdD17d2lkdGg6aS53aWR0aCgpLGhlaWdodDppLmhlaWdodCgpfSxuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7dHJ5e24uaWR9Y2F0Y2goZSl7bj1kb2N1bWVudC5ib2R5fXJldHVybiBpLndyYXAoZSksaVswXSE9PW4mJiF1LmNvbnRhaW5zKGlbMF0sbil8fHUobikudHJpZ2dlcigiZm9jdXMiKSxlPWkucGFyZW50KCksInN0YXRpYyI9PT1pLmNzcygicG9zaXRpb24iKT8oZS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KSxpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pKToodS5leHRlbmQocyx7cG9zaXRpb246aS5jc3MoInBvc2l0aW9uIiksekluZGV4OmkuY3NzKCJ6LWluZGV4Iil9KSx1LmVhY2goWyJ0b3AiLCJsZWZ0IiwiYm90dG9tIiwicmlnaHQiXSxmdW5jdGlvbihlLHQpe3NbdF09aS5jc3ModCksaXNOYU4ocGFyc2VJbnQoc1t0XSwxMCkpJiYoc1t0XT0iYXV0byIpfSksaS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdG9wOjAsbGVmdDowLHJpZ2h0OiJhdXRvIixib3R0b206ImF1dG8ifSkpLGkuY3NzKHQpLGUuY3NzKHMpLnNob3coKX0scmVtb3ZlV3JhcHBlcjpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3JldHVybiBlLnBhcmVudCgpLmlzKCIudWktZWZmZWN0cy13cmFwcGVyIikmJihlLnBhcmVudCgpLnJlcGxhY2VXaXRoKGUpLGVbMF0hPT10JiYhdS5jb250YWlucyhlWzBdLHQpfHx1KHQpLnRyaWdnZXIoImZvY3VzIikpLGV9fSksdS5leHRlbmQodS5lZmZlY3RzLHt2ZXJzaW9uOiIxLjEzLjIiLGRlZmluZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGl8fChpPXQsdD0iZWZmZWN0IiksdS5lZmZlY3RzLmVmZmVjdFtlXT1pLHUuZWZmZWN0cy5lZmZlY3RbZV0ubW9kZT10LGl9LHNjYWxlZERpbWVuc2lvbnM6ZnVuY3Rpb24oZSx0LGkpe2lmKDA9PT10KXJldHVybntoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTt2YXIgcz0iaG9yaXpvbnRhbCIhPT1pPyh0fHwxMDApLzEwMDoxLHQ9InZlcnRpY2FsIiE9PWk\/KHR8fDEwMCkvMTAwOjE7cmV0dXJue2hlaWdodDplLmhlaWdodCgpKnQsd2lkdGg6ZS53aWR0aCgpKnMsb3V0ZXJIZWlnaHQ6ZS5vdXRlckhlaWdodCgpKnQsb3V0ZXJXaWR0aDplLm91dGVyV2lkdGgoKSpzfX0sY2xpcFRvQm94OmZ1bmN0aW9uKGUpe3JldHVybnt3aWR0aDplLmNsaXAucmlnaHQtZS5jbGlwLmxlZnQsaGVpZ2h0OmUuY2xpcC5ib3R0b20tZS5jbGlwLnRvcCxsZWZ0OmUuY2xpcC5sZWZ0LHRvcDplLmNsaXAudG9wfX0sdW5zaGlmdDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9ZS5xdWV1ZSgpOzE8dCYmcy5zcGxpY2UuYXBwbHkocyxbMSwwXS5jb25jYXQocy5zcGxpY2UodCxpKSkpLGUuZGVxdWV1ZSgpfSxzYXZlU3R5bGU6ZnVuY3Rpb24oZSl7ZS5kYXRhKFcsZVswXS5zdHlsZS5jc3NUZXh0KX0scmVzdG9yZVN0eWxlOmZ1bmN0aW9uKGUpe2VbMF0uc3R5bGUuY3NzVGV4dD1lLmRhdGEoVyl8fCIiLGUucmVtb3ZlRGF0YShXKX0sbW9kZTpmdW5jdGlvbihlLHQpe2U9ZS5pcygiOmhpZGRlbiIpO3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZT8ic2hvdyI6ImhpZGUiKSx0PShlPyJoaWRlIj09PXQ6InNob3ciPT09dCk\/Im5vbmUiOnR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3ZhciB0LGk9ZS5jc3MoInBvc2l0aW9uIikscz1lLnBvc2l0aW9uKCk7cmV0dXJuIGUuY3NzKHttYXJnaW5Ub3A6ZS5jc3MoIm1hcmdpblRvcCIpLG1hcmdpbkJvdHRvbTplLmNzcygibWFyZ2luQm90dG9tIiksbWFyZ2luTGVmdDplLmNzcygibWFyZ2luTGVmdCIpLG1hcmdpblJpZ2h0OmUuY3NzKCJtYXJnaW5SaWdodCIpfSkub3V0ZXJXaWR0aChlLm91dGVyV2lkdGgoKSkub3V0ZXJIZWlnaHQoZS5vdXRlckhlaWdodCgpKSwvXihzdGF0aWN8cmVsYXRpdmUpLy50ZXN0KGkpJiYoaT0iYWJzb2x1dGUiLHQ9dSgiPCIrZVswXS5ub2RlTmFtZSsiPiIpLmluc2VydEFmdGVyKGUpLmNzcyh7ZGlzcGxheTovXihpbmxpbmV8cnVieSkvLnRlc3QoZS5jc3MoImRpc3BsYXkiKSk\/ImlubGluZS1ibG9jayI6ImJsb2NrIix2aXNpYmlsaXR5OiJoaWRkZW4iLG1hcmdpblRvcDplLmNzcygibWFyZ2luVG9wIiksbWFyZ2luQm90dG9tOmUuY3NzKCJtYXJnaW5Cb3R0b20iKSxtYXJnaW5MZWZ0OmUuY3NzKCJtYXJnaW5MZWZ0IiksbWFyZ2luUmlnaHQ6ZS5jc3MoIm1hcmdpblJpZ2h0IiksZmxvYXQ6ZS5jc3MoImZsb2F0Iil9KS5vdXRlcldpZHRoKGUub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodChlLm91dGVySGVpZ2h0KCkpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLXBsYWNlaG9sZGVyIiksZS5kYXRhKFQrInBsYWNlaG9sZGVyIix0KSksZS5jc3Moe3Bvc2l0aW9uOmksbGVmdDpzLmxlZnQsdG9wOnMudG9wfSksdH0scmVtb3ZlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9VCsicGxhY2Vob2xkZXIiLGk9ZS5kYXRhKHQpO2kmJihpLnJlbW92ZSgpLGUucmVtb3ZlRGF0YSh0KSl9LGNsZWFuVXA6ZnVuY3Rpb24oZSl7dS5lZmZlY3RzLnJlc3RvcmVTdHlsZShlKSx1LmVmZmVjdHMucmVtb3ZlUGxhY2Vob2xkZXIoZSl9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24ocyxlLG4sYSl7cmV0dXJuIGE9YXx8e30sdS5lYWNoKGUsZnVuY3Rpb24oZSx0KXt2YXIgaT1zLmNzc1VuaXQodCk7MDxpWzBdJiYoYVt0XT1pWzBdKm4raVsxXSl9KSxhfX0pLHUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXUodGhpcyksaT11LmVmZmVjdHMubW9kZSh0LHIpfHxhO3QuZGF0YShWLCEwKSxoLnB1c2goaSksYSYmKCJzaG93Ij09PWl8fGk9PT1hJiYiaGlkZSI9PT1pKSYmdC5zaG93KCksYSYmIm5vbmUiPT09aXx8dS5lZmZlY3RzLnNhdmVTdHlsZSh0KSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfXZhciBzPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF0sYT1uLm1vZGUsdD1zLnF1ZXVlLGk9dHx8ImZ4IixvPXMuY29tcGxldGUscj1zLm1vZGUsaD1bXTtyZXR1cm4gdS5meC5vZmZ8fCFuP3I\/dGhpc1tyXShzLmR1cmF0aW9uLG8pOnRoaXMuZWFjaChmdW5jdGlvbigpe28mJm8uY2FsbCh0aGlzKX0pOiExPT09dD90aGlzLmVhY2goZSkuZWFjaChsKTp0aGlzLnF1ZXVlKGksZSkucXVldWUoaSxsKTtmdW5jdGlvbiBsKGUpe3ZhciB0PXUodGhpcyk7ZnVuY3Rpb24gaSgpeyJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvLmNhbGwodFswXSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX1zLm1vZGU9aC5zaGlmdCgpLCExPT09dS51aUJhY2tDb21wYXR8fGE\/Im5vbmUiPT09cy5tb2RlPyh0W3JdKCksaSgpKTpuLmNhbGwodFswXSxzLGZ1bmN0aW9uKCl7dC5yZW1vdmVEYXRhKFYpLHUuZWZmZWN0cy5jbGVhblVwKHQpLCJoaWRlIj09PXMubW9kZSYmdC5oaWRlKCksaSgpfSk6KHQuaXMoIjpoaWRkZW4iKT8iaGlkZSI9PT1yOiJzaG93Ij09PXIpPyh0W3JdKCksaSgpKTpuLmNhbGwodFswXSxzLGkpfX0sc2hvdzooQT11LmZuLnNob3csZnVuY3Rpb24oZSl7aWYoTChlKSlyZXR1cm4gQS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZT1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5tb2RlPSJzaG93Iix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsZSl9KSxoaWRlOihOPXUuZm4uaGlkZSxmdW5jdGlvbihlKXtpZihMKGUpKXJldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9ImhpZGUiLHRoaXMuZWZmZWN0LmNhbGwodGhpcyxlKX0pLHRvZ2dsZTooST11LmZuLnRvZ2dsZSxmdW5jdGlvbihlKXtpZihMKGUpfHwiYm9vbGVhbiI9PXR5cGVvZiBlKXJldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9InRvZ2dsZSIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLGUpfSksY3NzVW5pdDpmdW5jdGlvbihlKXt2YXIgaT10aGlzLmNzcyhlKSxzPVtdO3JldHVybiB1LmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXswPGkuaW5kZXhPZih0KSYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc30sY3NzQ2xpcDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLmNzcygiY2xpcCIsInJlY3QoIitlLnRvcCsicHggIitlLnJpZ2h0KyJweCAiK2UuYm90dG9tKyJweCAiK2UubGVmdCsicHgpIik6Qih0aGlzLmNzcygiY2xpcCIpLHRoaXMpfSx0cmFuc2ZlcjpmdW5jdGlvbihlLHQpe3ZhciBpPXUodGhpcykscz11KGUudG8pLG49ImZpeGVkIj09PXMuY3NzKCJwb3NpdGlvbiIpLGE9dSgiYm9keSIpLG89bj9hLnNjcm9sbFRvcCgpOjAscj1uP2Euc2Nyb2xsTGVmdCgpOjAsYT1zLm9mZnNldCgpLGE9e3RvcDphLnRvcC1vLGxlZnQ6YS5sZWZ0LXIsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKX0scz1pLm9mZnNldCgpLGg9dSgiPGRpdiBjbGFzcz0ndWktZWZmZWN0cy10cmFuc2Zlcic+PC9kaXY+Iik7aC5hcHBlbmRUbygiYm9keSIpLmFkZENsYXNzKGUuY2xhc3NOYW1lKS5jc3Moe3RvcDpzLnRvcC1vLGxlZnQ6cy5sZWZ0LXIsaGVpZ2h0OmkuaW5uZXJIZWlnaHQoKSx3aWR0aDppLmlubmVyV2lkdGgoKSxwb3NpdGlvbjpuPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUoYSxlLmR1cmF0aW9uLGUuZWFzaW5nLGZ1bmN0aW9uKCl7aC5yZW1vdmUoKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmdCgpfSl9fSksdS5meC5zdGVwLmNsaXA9ZnVuY3Rpb24oZSl7ZS5jbGlwSW5pdHx8KGUuc3RhcnQ9dShlLmVsZW0pLmNzc0NsaXAoKSwic3RyaW5nIj09dHlwZW9mIGUuZW5kJiYoZS5lbmQ9QihlLmVuZCxlLmVsZW0pKSxlLmNsaXBJbml0PSEwKSx1KGUuZWxlbSkuY3NzQ2xpcCh7dG9wOmUucG9zKihlLmVuZC50b3AtZS5zdGFydC50b3ApK2Uuc3RhcnQudG9wLHJpZ2h0OmUucG9zKihlLmVuZC5yaWdodC1lLnN0YXJ0LnJpZ2h0KStlLnN0YXJ0LnJpZ2h0LGJvdHRvbTplLnBvcyooZS5lbmQuYm90dG9tLWUuc3RhcnQuYm90dG9tKStlLnN0YXJ0LmJvdHRvbSxsZWZ0OmUucG9zKihlLmVuZC5sZWZ0LWUuc3RhcnQubGVmdCkrZS5zdGFydC5sZWZ0fSl9LFA9e30sdS5lYWNoKFsiUXVhZCIsIkN1YmljIiwiUXVhcnQiLCJRdWludCIsIkV4cG8iXSxmdW5jdGlvbih0LGUpe1BbZV09ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KGUsdCsyKX19KSx1LmV4dGVuZChQLHtTaW5lOmZ1bmN0aW9uKGUpe3JldHVybiAxLU1hdGguY29zKGUqTWF0aC5QSS8yKX0sQ2lyYzpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLnNxcnQoMS1lKmUpfSxFbGFzdGljOmZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZXx8MT09PWU\/ZTotTWF0aC5wb3coMiw4KihlLTEpKSpNYXRoLnNpbigoODAqKGUtMSktNy41KSpNYXRoLlBJLzE1KX0sQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gZSplKigzKmUtMil9LEJvdW5jZTpmdW5jdGlvbihlKXtmb3IodmFyIHQsaT00O2U8KCh0PU1hdGgucG93KDIsLS1pKSktMSkvMTE7KTtyZXR1cm4gMS9NYXRoLnBvdyg0LDMtaSktNy41NjI1Kk1hdGgucG93KCgzKnQtMikvMjItZSwyKX19KSx1LmVhY2goUCxmdW5jdGlvbihlLHQpe3UuZWFzaW5nWyJlYXNlSW4iK2VdPXQsdS5lYXNpbmdbImVhc2VPdXQiK2VdPWZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX0sdS5lYXNpbmdbImVhc2VJbk91dCIrZV09ZnVuY3Rpb24oZSl7cmV0dXJuIGU8LjU\/dCgyKmUpLzI6MS10KC0yKmUrMikvMn19KTt1LmVmZmVjdHN9KTsKLyoqIC9qcy92YW5pbGxhanMvc3RvcmUuanMgKiovCnZhciBfX19kMmNfc3RvcmVqc19jX29uPSIyMDI2LTAyLTIwIDExOjMwOjEwIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGMsZCl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixjLGQpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixjLGQpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGY9MDtmPGUubGVuZ3RoLTE7ZisrKXt2YXIgZz1lW2ZdO2lmKCEoZyBpbiBkKSlyZXR1cm47ZD1kW2ddfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goZil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhmKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gZihnKXtnLmRvbmU\/ZChnLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZy52YWx1ZSkudGhlbihiLGMpLnRoZW4oZixlKX1mKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKY2xpZW50U3RvcmFnZT17c2V0OmZ1bmN0aW9uKGEsYixjLGQpe2M9dm9pZCAwPT09Yz8xOmM7ZD12b2lkIDA9PT1kPyJsb2NhbCI6ZDtjb25zdCBlPSJzZXNzaW9uIj09PWQ\/d2luZG93LnNlc3Npb25TdG9yYWdlOndpbmRvdy5sb2NhbFN0b3JhZ2U7dHJ5e2I9e3ZhbHVlOmJ9LCJsb2NhbCI9PT1kJiYoYyo9ODY0RTUsYi5leHBpcnk9KG5ldyBEYXRlKS5nZXRUaW1lKCkrYyksZS5zZXRJdGVtKGEsSlNPTi5zdHJpbmdpZnkoYikpfWNhdGNoKGYpe2NvbnNvbGUuZXJyb3IoYEVycm9yIHNhdmluZyB0byAke2R9IHN0b3JhZ2VgLGYpfX0sZ2V0OmZ1bmN0aW9uKGEsYil7Yj12b2lkIDA9PT1iP251bGw6Yjtjb25zdCBjPShkLGUpPT57dHJ5e2NvbnN0IGY9ZC5nZXRJdGVtKGEpO2lmKCFmKXJldHVybiBudWxsO2NvbnN0IGc9SlNPTi5wYXJzZShmKTtpZihlJiZnLmV4cGlyeSYmKG5ldyBEYXRlKS5nZXRUaW1lKCk+Zy5leHBpcnkpcmV0dXJuIGQucmVtb3ZlSXRlbShhKSxudWxsO2xldCBoOwpyZXR1cm4gbnVsbCE9KGg9Zy52YWx1ZSk\/aDpnfWNhdGNoKGYpe3JldHVybiBudWxsfX07cmV0dXJuImxvY2FsIj09PWI\/Yyh3aW5kb3cubG9jYWxTdG9yYWdlLCEwKToic2Vzc2lvbiI9PT1iP2Mod2luZG93LnNlc3Npb25TdG9yYWdlLCExKTpjKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApfHxjKHdpbmRvdy5zZXNzaW9uU3RvcmFnZSwhMSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj9udWxsOmI7ImxvY2FsIiE9PWImJm51bGwhPT1ifHx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSk7InNlc3Npb24iIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGEpfX07CmNyZWF0ZURhdGFTdG9yZT1hPT57YT1hfHx7fTtpbml0PWM9Pk9iamVjdC5hc3NpZ24oe30sYyk7Y29uc3QgYj1pbml0KGEpO3JldHVybntzZXQ6ZnVuY3Rpb24oYyxkKXtiW2NdPU9iamVjdC5hc3NpZ24oe30sYltjXSxkKTtyZXR1cm4gYltjXX0sZ2V0OmZ1bmN0aW9uKGMsZCl7ZD12b2lkIDA9PT1kP251bGw6ZDtjPWMuc3BsaXQoIi4iKTtsZXQgZT1iO2Zvcihjb25zdCBmIG9mIGMpe2lmKHZvaWQgMD09PWVbZl0pcmV0dXJuIGQ7ZT1lW2ZdfXJldHVybiB2b2lkIDAhPT1lP2U6ZH0sZmV0Y2g6ZnVuY3Rpb24oYyl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBkPXlpZWxkIGZldGNoKGBodHRwczovLyR7Yi5kZWFsZXJJbmZvLmRvbWFpbn0vYWpheENvbnRyb2xsZXIvJHtjfWApO2lmKCFkLm9rKXRocm93IEVycm9yKCJOZXR3b3JrIHJlc3BvbnNlIHdhcyBub3Qgb2siKTtjb25zdCBlPXlpZWxkIGQuanNvbigpOwpiW2NdPWU7cmV0dXJuIGJbY119Y2F0Y2goZCl7dGhyb3cgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBmcm9tIHNlcnZlcjogJHtkLm1lc3NhZ2V9YCk7fX0pfSxkZWxldGU6ZnVuY3Rpb24oYyl7aWYoIWJbY10pdGhyb3cgRXJyb3IoIklEIG5vdCBmb3VuZCIpO2RlbGV0ZSBiW2NdO3JldHVybiEwfSxnZXRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxiKX19fTsKLyoqIC9qcy9lbWFpbEhhbmRsZXIuanMgKiovCnZhciBfX19kMmNfZW1haWxIYW5kbGVyanNfY19vbj0iMjAyNi0wNC0zMCAxOTozMDowNCI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihlLGcsYSl7aWYoZT09QXJyYXkucHJvdG90eXBlfHxlPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBlO2VbZ109YS52YWx1ZTtyZXR1cm4gZX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGUpe2U9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxlLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgZz0wO2c8ZS5sZW5ndGg7KytnKXt2YXIgYT1lW2ddO2lmKGEmJmEuTWF0aD09TWF0aClyZXR1cm4gYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGUsZyl7dmFyIGE9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZ107aWYobnVsbD09YSlyZXR1cm4gZVtnXTthPWVbYV07cmV0dXJuIHZvaWQgMCE9PWE\/YTplW2ddfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGUsZyxhLGIpe2cmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChlLGcsYSxiKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChlLGcsYSxiKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihlLGcsYSxiKXthPSRqc2NvbXAuZ2xvYmFsO2U9ZS5zcGxpdCgiLiIpO2ZvcihiPTA7YjxlLmxlbmd0aC0xO2IrKyl7dmFyIGQ9ZVtiXTtpZighKGQgaW4gYSkpcmV0dXJuO2E9YVtkXX1lPWVbZS5sZW5ndGgtMV07Yj1hW2VdO2c9ZyhiKTtnIT1iJiZudWxsIT1nJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGEsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihlLGcsYSxiKXt2YXIgZD1lLnNwbGl0KCIuIik7ZT0xPT09ZC5sZW5ndGg7Yj1kWzBdO2I9IWUmJmIgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBjPTA7YzxkLmxlbmd0aC0xO2MrKyl7dmFyIGY9ZFtjXTtpZighKGYgaW4gYikpcmV0dXJuO2I9YltmXX1kPWRbZC5sZW5ndGgtMV07YT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09YT9iW2RdOm51bGw7Zz1nKGEpO251bGwhPWcmJihlPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KTpnIT09YSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdJiYoYT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYSsiJCIrZCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShiLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgZT17YTohMH0sZz17fTt0cnl7cmV0dXJuIGcuX19wcm90b19fPWUsZy5hfWNhdGNoKGEpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oZSxnKXtlLl9fcHJvdG9fXz1nO2lmKGUuX19wcm90b19fIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKGUrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBlfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oZSl7dmFyIGc9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZzxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW2crK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihlKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGUpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3ZhciBnPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmVbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZz9nLmNhbGwoZSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGUpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2UrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMueWllbGRSZXN1bHQ9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjplLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihlLGcpe3RoaXMubmV4dEFkZHJlc3M9ZztyZXR1cm57dmFsdWU6ZX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGUsZyl7ZT0kanNjb21wLm1ha2VJdGVyYXRvcihlKTt2YXIgYT1lLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhhKTtpZihhLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1hLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9ZztlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWUsdGhpcy55aWVsZChhLnZhbHVlLGcpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGUpe3RoaXMubmV4dEFkZHJlc3M9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oZSxnKXt0aGlzLmNhdGNoQWRkcmVzc189ZTt2b2lkIDAhPWcmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1nKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWV8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWU7dGhpcy5jYXRjaEFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oZSl7dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7ZT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyxhKXthP3RoaXMuZmluYWxseUNvbnRleHRzX1thXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Z3x8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyl7Zz10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGd8fDApWzBdO2lmKGc9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxnKXtpZihnLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWcuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxnLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1nLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGUpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3RoaXMub2JqZWN0Xz1lO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBnIGluIGUpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGcpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgZT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGUgaW4gdGhpcy5vYmplY3RfKXJldHVybiBlfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1lfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgZz10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGcpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGc\/Z1sicmV0dXJuIl06ZnVuY3Rpb24oYSl7cmV0dXJue3ZhbHVlOmEsZG9uZTohMH19LGUsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sZSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oZSxnLGEpe3RyeXt2YXIgYj1lLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxnKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhiKTtpZighYi5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksYjt2YXIgZD1iLnZhbHVlfWNhdGNoKGMpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oYyksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7YS5jYWxsKHRoaXMuY29udGV4dF8sZCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgZT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6ZS52YWx1ZSxkb25lOiExfX1jYXRjaChnKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhnKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7ZT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihlLmlzRXhjZXB0aW9uKXRocm93IGUuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTplLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihlKXt0aGlzLm5leHQ9ZnVuY3Rpb24oZyl7cmV0dXJuIGUubmV4dF8oZyl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhyb3dfKGcpfTt0aGlzLnJldHVybj1mdW5jdGlvbihnKXtyZXR1cm4gZS5yZXR1cm5fKGcpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihlLGcpe2c9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZykpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmUucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGcsZS5wcm90b3R5cGUpO3JldHVybiBnfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGcoYil7cmV0dXJuIGUubmV4dChiKX1mdW5jdGlvbiBhKGIpe3JldHVybiBlLnRocm93KGIpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLGQpe2Z1bmN0aW9uIGMoZil7Zi5kb25lP2IoZi52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGYudmFsdWUpLnRoZW4oZyxhKS50aGVuKGMsZCl9YyhlLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihlKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZSkpKX07CnZhciBlbWFpbEhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbihiKXt0cnl7cmV0dXJuIHdpbmRvdy50b3AubG9jYXRpb25bYl19Y2F0Y2goZCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbltiXX19LGc9ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbj1mdW5jdGlvbigpe307dGhpcy5uZXh0PW51bGw7dGhpcy5fbmV4dENhbGxlZD0hMX07Zy5wcm90b3R5cGU9e2V4ZXV0ZTpmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5hY3Rpb24mJnRoaXMuYWN0aW9uLmNhbGwodGhpcyl9LGdvdG9OZXh0OmZ1bmN0aW9uKCl7dGhpcy5faGFzTmV4dCgpJiZ0aGlzLm5leHQuZXhldXRlKCk7dGhpcy5fbmV4dENhbGxlZD0hMDtyZXR1cm4gdGhpc30sc2V0TmV4dDpmdW5jdGlvbihiKXt0aGlzLm5leHQ9YjtyZXR1cm4gdGhpc30sc2V0QWN0aW9uOmZ1bmN0aW9uKGIpe3RoaXMuYWN0aW9uPWI7cmV0dXJuIHRoaXN9LF9oYXNOZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLm5leHQmJgohdGhpcy5fbmV4dENhbGxlZH19O3ZhciBhPXtzdWJqZWN0OiIiLGJvZHk6IiIsc2VuZFRvOiIiLHNlbmRUb0FERkZvcm1hdDoiIixzZWxlY3RlZFNlbmRUbzoiIixzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDoiIixzZW5kRnJvbToiIix1c2VyRW1haWw6IiIsdHJhZGVpbjoiIixwb3B1cGRpdjoiIix1c2VyRmlyc3ROYW1lOiIiLHVzZXJMYXN0TmFtZToiIix1c2VyUGhvbmU6IiIscGhvbmVNYW5kYXRvcnk6MCxwaG9uZVZhbGlkYXRpb25BdHRlbXB0czoxLHVzZXJQb3N0YWw6IiIsdXNlckFkZHJlc3M6IiIsYmlydGhkYXRlOiIiLHVzZXJBdHRhY2htZW50UGF0aDoiIixtYWlsSUQ6ImdlbmVyaWNNYWlsIixsZWFkSW52b2tlcjoiZ2VuZXJpYyIsbGVhZEludm9rZXJTSUQ6IiIsaXNDVEE6ITEsYnV0dG9uVGV4dDoiIixyZXNldENhbGxiYWNrczpmdW5jdGlvbigpeyQuZXh0ZW5kKGEse2NhbGxiYWNrOm51bGwsb25EdXBsaWNhdGVTZW5kOiExLG9uQWZ0ZXJDb25zZW50OiExLG9uQmVmb3JlU2hvd0NvbnNlbnQ6ITF9KX0sCm1ha2U6IiIsbW9kZWw6IiIsdHJpbToiIix2aW46IiIscHJpY2U6MCx5ZWFyOjAsdmVoaWNsZVR5cGU6IiIsc3RvY2tOdW1iZXI6IiIscHVyY2hhc2VfaW50ZW50OiIiLHB1cmNoYXNlX2ludGVudF9zZWN0aW9uOiIiLGFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE6IiIscHJlZmVycmVkX2NvbnRhY3Q6IiIsY2FyaWQ6MCxjb25kaXRpb246IlVzZWQiLGxhbmd1YWdlOiIiLGlzbW9iaWxlc2l0ZToiTk8iLGlzQW1wOiJOTyIscmVmZXJlcjoiIixwb3B1cE9mZmVyVHlwZToiIixwYXJ0aWFsOiExLGZyb21GYWNlYm9vazohMSxza2lwU2VuZGluZzohMSxmcm9tT25Mb2FkOiExLHBvc3RTdWJtaXRDYWxsYmFjazoiIixyZXN1bWVBY3Rpdml0eTohMCxzdWJtaXREYXRhOiIiLHN1Ym1pdFR5cGU6Im5vcm1hbCIsbGFzdENoZWNrc3VtOiIiLGNvbnNlbnREZWFsZXI6ITEsY29uc2VudE9FTTohMSxjb25zZW50VHlwZToiSW1wbGljaXQiLGNvbnNlbnRFeHBpcmF0aW9uOiIiLGNvbnNlbnREYXRlOiIiLApjb25zZW50RnJlcXVlbmN5Oi0xLGNvbnNlbnREZXRhaWxzRlI6IiIsY29uc2VudERldGFpbHNFTjoiIixkZXRhaWxzRGVmYXVsdHM6IiIsZnJvbUFBOjAsb3duZXJJRDowLGRlcGFydG1lbnQ6IiIsc2tpcEdldERlcDohMSxkZXBhcnRtZW50QnlTdG9jazohMSxhc2tQdXJjaGFzZUludGVudDohMSxsZWFkVGl0bGVVSVRleHQ6IiIsbGVhZFRpdGxlVGV4dDoiIixnZW9sb2Nfc3RhdHVzOiIiLGdlb2xvY19sYXQ6IiIsZ2VvbG9jX2xvbmc6IiIsZ2VvbG9jX2FjY3VyYWN5Oi0xLGdlb2xvY190cmFja19zdHI6IiIsZ2VvbG9jX2VtYWlsX3N0cjoiIix0cmFuc3BvcnRPcHRpb246IiIsY2FyMl9tYWtlOiIiLGNhcjJfbW9kZWw6IiIsY2FyMl90cmltOiIiLGNhcjJfeWVhcjoiIixjYXIyX2NvbG9yOiIiLGNhcjJfb2RvbWV0ZXI6IiIsY2FyMl92aW46IiIsY2FyMl90cmFuc21pc3NvbjoiIixjYXIyX2RyaXZldHJhaW46IiIsY2FyMl9mdWVsdHlwZToiIixjb21tZW50czoiIixncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjoiIiwKaWdub3JlQ2FwdGNoYTohMSxjb250YWN0SUQ6MCxjb250YWN0QWRkcmVzczoiIixjb250YWN0Q2l0eToiIixjb250YWN0UHJvdmluY2U6IiIsY29udGFjdFppcDoiIixjb250YWN0TkFTOiIiLGNvbnRhY3RCaXJ0aDoiIixkZWFsZXJOYW1lOiIiLGdldE5ld1NlcXVlbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnfSxjcmVhdGVDaGVja3N1bTpmdW5jdGlvbigpe2Zvcih2YXIgYj0iIixkPVsibWFrZSIsIm1vZGVsIiwieWVhciIsIm1haWxJRCJdLGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIGY9ZFtjXSxrPWFbZl0sbT10eXBlb2YgaztpZigic3RyaW5nIj09bXx8Im51bWJlciI9PW0pYis9ZisiOiIraysiOyJ9ZD0iMDAwMDAwMDAgNzcwNzMwOTYgRUUwRTYxMkMgOTkwOTUxQkEgMDc2REM0MTkgNzA2QUY0OEYgRTk2M0E1MzUgOUU2NDk1QTMgMEVEQjg4MzIgNzlEQ0I4QTQgRTBENUU5MUUgOTdEMkQ5ODggMDlCNjRDMkIgN0VCMTdDQkQgRTdCODJEMDcgOTBCRjFEOTEgMURCNzEwNjQgNkFCMDIwRjIgRjNCOTcxNDggODRCRTQxREUgMUFEQUQ0N0QgNkREREU0RUIgRjRENEI1NTEgODNEMzg1QzcgMTM2Qzk4NTYgNjQ2QkE4QzAgRkQ2MkY5N0EgOEE2NUM5RUMgMTQwMTVDNEYgNjMwNjZDRDkgRkEwRjNENjMgOEQwODBERjUgM0I2RTIwQzggNEM2OTEwNUUgRDU2MDQxRTQgQTI2NzcxNzIgM0MwM0U0RDEgNEIwNEQ0NDcgRDIwRDg1RkQgQTUwQUI1NkIgMzVCNUE4RkEgNDJCMjk4NkMgREJCQkM5RDYgQUNCQ0Y5NDAgMzJEODZDRTMgNDVERjVDNzUgRENENjBEQ0YgQUJEMTNENTkgMjZEOTMwQUMgNTFERTAwM0EgQzhENzUxODAgQkZEMDYxMTYgMjFCNEY0QjUgNTZCM0M0MjMgQ0ZCQTk1OTkgQjhCREE1MEYgMjgwMkI4OUUgNUYwNTg4MDggQzYwQ0Q5QjIgQjEwQkU5MjQgMkY2RjdDODcgNTg2ODRDMTEgQzE2MTFEQUIgQjY2NjJEM0QgNzZEQzQxOTAgMDFEQjcxMDYgOThEMjIwQkMgRUZENTEwMkEgNzFCMTg1ODkgMDZCNkI1MUYgOUZCRkU0QTUgRThCOEQ0MzMgNzgwN0M5QTIgMEYwMEY5MzQgOTYwOUE4OEUgRTEwRTk4MTggN0Y2QTBEQkIgMDg2RDNEMkQgOTE2NDZDOTcgRTY2MzVDMDEgNkI2QjUxRjQgMUM2QzYxNjIgODU2NTMwRDggRjI2MjAwNEUgNkMwNjk1RUQgMUIwMUE1N0IgODIwOEY0QzEgRjUwRkM0NTcgNjVCMEQ5QzYgMTJCN0U5NTAgOEJCRUI4RUEgRkNCOTg4N0MgNjJERDFEREYgMTVEQTJENDkgOENEMzdDRjMgRkJENDRDNjUgNERCMjYxNTggM0FCNTUxQ0UgQTNCQzAwNzQgRDRCQjMwRTIgNEFERkE1NDEgM0REODk1RDcgQTREMUM0NkQgRDNENkY0RkIgNDM2OUU5NkEgMzQ2RUQ5RkMgQUQ2Nzg4NDYgREE2MEI4RDAgNDQwNDJENzMgMzMwMzFERTUgQUEwQTRDNUYgREQwRDdDQzkgNTAwNTcxM0MgMjcwMjQxQUEgQkUwQjEwMTAgQzkwQzIwODYgNTc2OEI1MjUgMjA2Rjg1QjMgQjk2NkQ0MDkgQ0U2MUU0OUYgNUVERUY5MEUgMjlEOUM5OTggQjBEMDk4MjIgQzdEN0E4QjQgNTlCMzNEMTcgMkVCNDBEODEgQjdCRDVDM0IgQzBCQTZDQUQgRURCODgzMjAgOUFCRkIzQjYgMDNCNkUyMEMgNzRCMUQyOUEgRUFENTQ3MzkgOUREMjc3QUYgMDREQjI2MTUgNzNEQzE2ODMgRTM2MzBCMTIgOTQ2NDNCODQgMEQ2RDZBM0UgN0E2QTVBQTggRTQwRUNGMEIgOTMwOUZGOUQgMEEwMEFFMjcgN0QwNzlFQjEgRjAwRjkzNDQgODcwOEEzRDIgMUUwMUYyNjggNjkwNkMyRkUgRjc2MjU3NUQgODA2NTY3Q0IgMTk2QzM2NzEgNkU2QjA2RTcgRkVENDFCNzYgODlEMzJCRTAgMTBEQTdBNUEgNjdERDRBQ0MgRjlCOURGNkYgOEVCRUVGRjkgMTdCN0JFNDMgNjBCMDhFRDUgRDZENkEzRTggQTFEMTkzN0UgMzhEOEMyQzQgNEZERkYyNTIgRDFCQjY3RjEgQTZCQzU3NjcgM0ZCNTA2REQgNDhCMjM2NEIgRDgwRDJCREEgQUYwQTFCNEMgMzYwMzRBRjYgNDEwNDdBNjAgREY2MEVGQzMgQTg2N0RGNTUgMzE2RThFRUYgNDY2OUJFNzkgQ0I2MUIzOEMgQkM2NjgzMUEgMjU2RkQyQTAgNTI2OEUyMzYgQ0MwQzc3OTUgQkIwQjQ3MDMgMjIwMjE2QjkgNTUwNTI2MkYgQzVCQTNCQkUgQjJCRDBCMjggMkJCNDVBOTIgNUNCMzZBMDQgQzJEN0ZGQTcgQjVEMENGMzEgMkNEOTlFOEIgNUJERUFFMUQgOUI2NEMyQjAgRUM2M0YyMjYgNzU2QUEzOUMgMDI2RDkzMEEgOUMwOTA2QTkgRUIwRTM2M0YgNzIwNzY3ODUgMDUwMDU3MTMgOTVCRjRBODIgRTJCODdBMTQgN0JCMTJCQUUgMENCNjFCMzggOTJEMjhFOUIgRTVENUJFMEQgN0NEQ0VGQjcgMEJEQkRGMjEgODZEM0QyRDQgRjFENEUyNDIgNjhEREIzRjggMUZEQTgzNkUgODFCRTE2Q0QgRjZCOTI2NUIgNkZCMDc3RTEgMThCNzQ3NzcgODgwODVBRTYgRkYwRjZBNzAgNjYwNjNCQ0EgMTEwMTBCNUMgOEY2NTlFRkYgRjg2MkFFNjkgNjE2QkZGRDMgMTY2Q0NGNDUgQTAwQUUyNzggRDcwREQyRUUgNEUwNDgzNTQgMzkwM0IzQzIgQTc2NzI2NjEgRDA2MDE2RjcgNDk2OTQ3NEQgM0U2RTc3REIgQUVEMTZBNEEgRDlENjVBREMgNDBERjBCNjYgMzdEODNCRjAgQTlCQ0FFNTMgREVCQjlFQzUgNDdCMkNGN0YgMzBCNUZGRTkgQkRCREYyMUMgQ0FCQUMyOEEgNTNCMzkzMzAgMjRCNEEzQTYgQkFEMDM2MDUgQ0RENzA2OTMgNTRERTU3MjkgMjNEOTY3QkYgQjM2NjdBMkUgQzQ2MTRBQjggNUQ2ODFCMDIgMkE2RjJCOTQgQjQwQkJFMzcgQzMwQzhFQTEgNUEwNURGMUIgMkQwMkVGOEQiLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0LAoxNil9KTt2YXIgbj1uXi0xO2M9MDtmb3IoZj1iLmxlbmd0aDtjPGY7YysrKW49bj4+PjheZFsobl5iLmNoYXJDb2RlQXQoYykpJjI1NV07cmV0dXJuKG5eLTEpPj4+MH0sc2V0TXVsdGlEZWFsZXJCb2R5OmZ1bmN0aW9uKGIsZCl7dmFyIGM9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBjPyhjPWMucmVwbGFjZSgieyRNVUxUSURFQUxFUk5BTUV9IixiKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IixkKSxhLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGMpLGEuZGVhbGVyTmFtZT1iKTphLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKX0sc2hvd0NvbnNlbnQ6ZnVuY3Rpb24oYixkKXthLmdldEVtYWlsQ29uc2VudChmdW5jdGlvbihjKXt2YXIgZj1hLmdldE5ld1NlcXVlbmNlKCksaz1hLmdldE5ld1NlcXVlbmNlKCk7CmYuc2V0QWN0aW9uKGZ1bmN0aW9uKCl7dmFyIG09dGhpcyxuPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKSx0PW4uZmluZCgic2VsZWN0Iikscj0kKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIiksdj0xMTEyO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITE7aWYoKCQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLmxlbmd0aCYmIiIhPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpfHwkKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS5sZW5ndGgmJiIiIT0kKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS52YWwoKSkmJjA8PSQoIiNQQUdFSUQiKS52YWwoKS5pbmRleE9mKCJnZW5lcmljXyIpfHwwPT1uLmxlbmd0aHx8MCE9PWEuc2VsZWN0ZWRTZW5kVG8ubGVuZ3RofHwwIT09YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdC5sZW5ndGh8fCJKb2JPZmZlciI9PWEubWFpbElEJiYiIiE9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSlyZXR1cm4gbS5nb3RvTmV4dCgpOwp2YXIgcT0kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikubGVuZ3RoPyQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS52YWwoKToibG9jYXRpb24iO2lmKDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCkmJiJsb2NhdGlvbiI9PT1xfHwoIiIhPT1hLnN0b2NrTnVtYmVyfHxhLmNhcmlkfHxhLmdldFN0b2NrTnVtYmVyKCkpJiYibG9jYXRpb24iPT09cSlyZXR1cm4gbS5nb3RvTmV4dCgpOyQoIiNtdWx0aS1kZWFsZXItbWFwIikubGVuZ3RoJiYoR29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCkscT0kKCIjZm9vdGVyR29vZ2xlTWFwWm9vbSIpLnZhbCgpLHE9MTxwYXJzZUludChxKSYmMTg+PXBhcnNlSW50KHEpP3BhcnNlSW50KHEpOjkscT1uZXcgR29vZ2xlTWFwc1dyYXBwZXIoe2VsZW1lbnQ6Im11bHRpLWRlYWxlci1tYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9CnR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXM\/Zm9vdGVyTWFwQWRkcmVzc2VzOltdLHpvb206cSxvbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbihoLGwpe3ZhciB1PSQoYC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uW2RhdGEtZGVhbGVyaWQ9IiR7aC5kZWFsZXJJZH0iXWApO3Uub24oImNsaWNrIixmdW5jdGlvbigpe2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIobCwiY2xpY2siKX0pO2wuYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyQoIi5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uIikucmVtb3ZlQ2xhc3MoImZvY3VzZWQiKTt2YXIgdz0kKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKTt1Lmxlbmd0aCYmKHUuYWRkQ2xhc3MoImZvY3VzZWQiKSx1WzBdLmZvY3VzKCksbXVsdGlEZWFsZXJTZWxlY3Quc2V0U2VsZWN0KHVbMF0sITEpKTtpZih3Lmxlbmd0aCl7dmFyIHg9dy5maW5kKGBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJHtoLmRlYWxlcklkfSJdYCk7CngubGVuZ3RoJiZ3LnZhbCh4LnZhbCgpKX19KTskKGAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIG9wdGlvbltkYXRhLWRlYWxlcmlkPSIke2guZGVhbGVySWR9Il1gKS5kYXRhKCJtYXJrZXIiLGwpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzJiYwIT1mb290ZXJNYXBBZGRyZXNzZXMubGVuZ3RofHwkKCIjbXVsdGktZGVhbGVyLW1hcCIpLmhpZGUoKTskKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBoPSQodGhpcykuZmluZCgiOnNlbGVjdGVkIik7aC5sZW5ndGgmJmdvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoaC5kYXRhKCJtYXJrZXIiKSwiY2xpY2siKX0pfX0pLCQoIiNtdWx0aS1kZWFsZXItbWFwIikuc2hvdygpLHEuaW5pdCgpKTt0Lm9mZigiZm9jdXMiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7dC5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9KTsKdmFyIHA9ZnVuY3Rpb24oaCl7dmFyIGw9YS5nZXREZXAoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRClzd2l0Y2goJCgiI2pvYm9mZmVyX2RlcGFydG1lbnQiKS52YWwoKSl7Y2FzZSAiU2FsZXNuZXciOmw9Ik5FVyI7YnJlYWs7Y2FzZSAiU2FsZXN1c2VkIjpsPSJVU0VEIjticmVhaztjYXNlICJTZXJ2aWNlIjpsPSJTRVJWSUNFIjticmVhaztjYXNlICJQYXJ0cyI6bD0iUEFSVFMiO2JyZWFrO2RlZmF1bHQ6bD0iTkVXIn12YXIgdT0iIix3PSIiO3N3aXRjaChsKXtjYXNlICJVU0VEIjp1PWguZGF0YSgiZW1haWx1c2VkIik7dz1oLmRhdGEoImVtYWlsYWRmdXNlZCIpO2JyZWFrO2Nhc2UgIlNFUlZJQ0UiOnU9aC5kYXRhKCJlbWFpbHNlcnZpY2UiKTt3PWguZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiUEFSVFMiOnU9aC5kYXRhKCJlbWFpbHBhcnRzIil8fGguZGF0YSgiZW1haWxzZXJ2aWNlIik7dz1oLmRhdGEoImVtYWlsYWRmcGFydHMiKXx8aC5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTsKYnJlYWs7Y2FzZSAiRklOQU5DRSI6dT1oLmRhdGEoImVtYWlsZmluYW5jZSIpLHc9aC5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKX1hLnNlbmRUbz11fHxoLmRhdGEoImVtYWlsIil8fGguZGF0YSgiZW1haWx1c2VkIik7YS5zZWxlY3RlZFNlbmRUbz11fHxoLmRhdGEoImVtYWlsIil8fGguZGF0YSgiZW1haWx1c2VkIik7YS5zZW5kVG9BREZGb3JtYXQ9d3x8aC5kYXRhKCJlbWFpbGFkZiIpfHxoLmRhdGEoImVtYWlsYWRmdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9d3x8aC5kYXRhKCJlbWFpbGFkZiIpfHxoLmRhdGEoImVtYWlsYWRmdXNlZCIpO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITA7YS5kZWFsZXJpZD1oLmRhdGEoImRlYWxlcmlkIik7YS5zZXRNdWx0aURlYWxlckJvZHkoaC50ZXh0KCkudHJpbSgpLGEuc2VuZFRvKX07JCgiI211dGxpQWRkcmVzc1N1Ym1pdCIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoIiI9PT10LnZhbCgpKXQuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLApyLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKTtlbHNle3ZhciBoPXQuZmluZCgiOnNlbGVjdGVkIik7cChoKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4Iix2KTtuLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO20uZ290b05leHQoKX19KTtpZigkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikubGVuZ3RoKSQoIi5tdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24tY2xvc2UiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe0xlYWRzJiZPYmplY3Qua2V5cyhMZWFkcykuZm9yRWFjaChmdW5jdGlvbihoKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBMZWFkc1toXS5sZWFkSWQmJkxlYWRIYW5kbGVyKCkuZ2V0TGVhZChMZWFkc1toXS5sZWFkSWQpLmNsb3NlKCl9KTtwb3B1cFN1cGVydmlzb3ImJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMmJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMuZm9yRWFjaChmdW5jdGlvbihoKXtoJiZ0eXBlb2YgaC5pc0FjdGl2ZSgpJiYKaC5jYW5jZWwoKX0pOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHYpO24udHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTtpZigiIiE9PWEubWFrZSYmbXVsdGlEZWFsZXJTZWxlY3QmJihxPW11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcih0KSxxLmJ5TWFrZShhLm1ha2UpLHE9cS5oYXNPbmx5T25lKCkpKXJldHVybiBwKHEpLG0uZ290b05leHQoKTtyLmxlbmd0aCYmKHE9ci5maW5kKCJidXR0b24iKS50b0FycmF5KCkscS5sZW5ndGgmJihxPWZ1bmN0aW9uKGgpe2ZvcihsZXQgbD1oLmxlbmd0aC0xOzA8bDtsLS0pe2NvbnN0IHU9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihsKzEpKTtbaFtsXSxoW3VdXT1baFt1XSxoW2xdXX1yZXR1cm4gaH0ocSksci5maW5kKCJidXR0b24iKS5yZW1vdmUoKSxyLmFwcGVuZChxKSkpO24ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwyIiwKY2xvc2VvbmVzY2FwZTohMX0pO3Y9JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIpOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHBhcnNlSW50KG4uY3NzKCJ6LWluZGV4IikpLTEpfSk7ay5zZXRBY3Rpb24oZnVuY3Rpb24oKXt2b2lkIDA9PWImJihiPSExKTt2b2lkIDA9PWQmJihkPSExKTt2YXIgbT0kKCIjYXNQb3BVcCIpLG49ITE7KGEuYXNrUHVyY2hhc2VJbnRlbnR8fGEuc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdCgpKSYmMDwkKCIjYXNQdXJjaGFzZUludGVudCIpLmxlbmd0aCYmKG09JCgiI2FzUHVyY2hhc2VJbnRlbnQiKSxuPSEwKTtpZigwPG0ubGVuZ3RoKXtnZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiKTt2YXIgdD1wYXJzZUludChnZXRDb29raWUoInZpc2l0b3JfaGFzX3NlZW5fcG9wdXAiKSwxMCk7aXNOYU4odCkmJih0PTApO2Euc2tpcFNlbmRpbmc9YjthLmZyb21PbkxvYWQ9ZDtpZihjLmhhc0NvbnNlbnQpe3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgImluc3RhbnRSZWJhdGUiOmNhc2UgInNjcmF0Y2giOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTsKYnJlYWs7ZGVmYXVsdDoiIiE9YS5wb3N0U3VibWl0Q2FsbGJhY2smJmV2YWwoYS5wb3N0U3VibWl0Q2FsbGJhY2spfWEucmVhZHlUb1NlbmQoKX1lbHNle3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOmNsb3NlUG9wdXBXaWRnZXQoKX0iZnVuY3Rpb24iPT10eXBlb2YgYS5vbkJlZm9yZVNob3dDb25zZW50JiZhLm9uQmVmb3JlU2hvd0NvbnNlbnQuY2FsbCgpO2lmKG4pYS5zaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0KCk\/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksJCgiI2VtYWlsQ29uc2VudFN1Ym1pdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcj17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChwPT4Ke3JbcC5uYW1lXT1wLnZhbHVlfSk7JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8sIC5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pOyQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiKS5oaWRlKCk7aWYoMT09JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5pcygiOnZpc2libGUiKSYmKCFyLnNoYXJlX3BlcnNvbmFsfHwibm8iPT1yLnNoYXJlX3BlcnNvbmFsKSlyZXR1cm4gJCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSwkKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIikuc2hvdygpLCExO2lmKCFyLmhhc093blByb3BlcnR5KCJjb25zZW50IikpcmV0dXJuICQoIi5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLCExO3ZhciB2PXtwdXJjaGFzZV9pbnRlbnQ6LTEsc2hhcmVfcGVyc29uYWw6Im5vIixwcmVmZXJyZWRfY29udGFjdDoiIn07CmZvcih2YXIgcSBpbiB2KXYuaGFzT3duUHJvcGVydHkocSkmJihyLmhhc093blByb3BlcnR5KHEpP3NldENvb2tpZShxLHJbcV0pOnJbcV09dltxXSk7YS5wdXJjaGFzZV9pbnRlbnQ9ci5wdXJjaGFzZV9pbnRlbnQ7YS5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPXIuc2hhcmVfcGVyc29uYWw7YS5wcmVmZXJyZWRfY29udGFjdD1yLnByZWZlcnJlZF9jb250YWN0O3Y9Ii0xIiE9ci5jb25zZW50O3E9ci5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmIjEiPT1yLmNvbnNlbnRfb2VtO2Euc3VibWl0Q29uc2VudCh2LHEsImNvbXBsZXgiKTtyZXR1cm4hMX0pO2Vsc2UgJCgiI2NvbnNlbnRTdWJtaXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKHIpe3IucHJldmVudERlZmF1bHQoKTtyPSExOyQoIi5kZWFsZXJDb25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7JCgiLm9lbUNvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTt2YXIgdj17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChwPT4Ke3ZbcC5uYW1lXT1wLnZhbHVlfSk7di5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudCIpfHwoJCgiLmRlYWxlckNvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSxyPSEwKTttLmZpbmQoImZvcm0gLm9lbUNvbnNlbnQiKS5sZW5ndGgmJiF2Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYkKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpJiYobS5maW5kKCJmb3JtIC5vZW1Db25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSkscj0hMCk7aWYocilyZXR1cm4hMTtyPSItMSIhPXYuY29uc2VudDt2YXIgcT12Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYiMSI9PXYuY29uc2VudF9vZW07YS5zdWJtaXRDb25zZW50KHIscSl9KTthLnByZVNlbmRJbXBsaWNpdCgpO20ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLApjbG9zZW9uZXNjYXBlOiExfSl9fWVsc2UiIj09YS5jb25zZW50RGV0YWlsc0VOJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0gmJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIJiYoYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMl0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsyXSksYj9yZWFsU2hvd1BvcHVwV2lkZ2V0KGQpOmEucmVhZHlUb1NlbmQoKX0pO2Yuc2V0TmV4dChrKS5leGV1dGUoKX0pfSxoaWRlQ29uc2VudDpmdW5jdGlvbigpe3ZhciBiPSQoIiNhc1BvcFVwOnZpc2libGUiKTskKCIjYXNQdXJjaGFzZUludGVudCIpLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PSQoIiNhc1B1cmNoYXNlSW50ZW50IikuY3NzKCJ2aXNpYmlsaXR5IikmJihiPSQoIiNhc1B1cmNoYXNlSW50ZW50OnZpc2libGUiKSxjb21wbGV4PSEwKTswPGIubGVuZ3RoJiZiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSwKc2F2ZUNvbnNlbnQ6ZnVuY3Rpb24oYixkLGMsZil7JCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIik7YS5oaWRlQ29uc2VudCgpO3ZvaWQgMD09YyYmKGM9IiIpO3ZhciBrPWI\/NzMwOjE4MDtkPXtlbWFpbDphLnVzZXJFbWFpbCxmaXJzdDphLnVzZXJGaXJzdE5hbWUsbGFzdDphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLGZyZXF1ZW5jeTpiPzE6LTEsZXhwbGljaXQ6Yj8xOjAsZXhwbGljaXRPRU06ZD8xOjAsaW1nOmMscmVmZXJlcjp2b2lkIDAhPWRvY3VtZW50LnJlZmVycmVyP2RvY3VtZW50LnJlZmVycmVyOiIiLGZyb206IkVIIn07aWYodm9pZCAwIT09YS5wcmVmZXJyZWRfY29udGFjdCYmIiIhPT1hLnByZWZlcnJlZF9jb250YWN0fHx2b2lkIDAhPT1nZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IikmJiIiIT09Z2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpKWM9YS5wcmVmZXJyZWRfY29udGFjdHx8CmdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSxjPXsiVMOpbMOpcGhvbmUiOiJQSE9ORSIsQ291cnJpZWw6IkVNQUlMIn1bY118fGMsbnVsbCE9PWMmJihkLmNvbnRhY3RQcmVmZXJlbmNlPWMudG9VcHBlckNhc2UoKSk7c2V0Q29va2llKCJ2aXNpdG9yX2ZyZXF1ZW5jeV9wcmVmZXJlbmNlIiwtMSxrKTtzZXRDb29raWUoInZpc2l0b3JfY29uc2VudF9wcmVmZXJlbmNlIixiPyJFeHBsaWNpdCI6IkltcGxpY2l0IixrKTtzZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiLGI\/InllcyI6Im5vIixrKTtzZXRDb29raWUoInZpc2l0b3JfZW1haWxfcHJlZmVyZW5jZSIsZC5lbWFpbCw5MCk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9hamF4L3RyYWNrRW1haWxQcmVmZXJlbmNlP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOmQsY29tcGxldGU6ZnVuY3Rpb24obSl7dHJ5e3ZhciBuPUpTT04ucGFyc2UobS5yZXNwb25zZVRleHQpO2EuY29uc2VudERldGFpbHNFTj1idG9hKG4uZGV0YWlsQ29uc2VudC5FTkdMSVNIKTthLmNvbnNlbnREZXRhaWxzRlI9YnRvYShuLmRldGFpbENvbnNlbnQuRlJFTkNIKX1jYXRjaCh0KXt9YS5wb3N0U2F2ZUNvbnNlbnQoYixmKX19KX0scG9zdFNhdmVDb25zZW50OmZ1bmN0aW9uKGIsZCl7dm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSCYmKGI\/KGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzFdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMV0pOihhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsyXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzJdKSk7CmlmKGQpe2lmKGEuaWdub3JlQ2FwdGNoYT9hLnJlYWR5VG9TZW5kKCk6YS5yZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKS5kb25lKGZ1bmN0aW9uKGMpe2EuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49YzthLnJlYWR5VG9TZW5kKCl9KSwiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkFmdGVyQ29uc2VudClhLm9uQWZ0ZXJDb25zZW50KGIpfWVsc2UgYS5oaWRlQ29uc2VudCgpfSxzdWJtaXRDb25zZW50OmZ1bmN0aW9uKGIsZCxjKXthLmNvbnNlbnREZWFsZXI9YjthLmNvbnNlbnRPRU09ZDtpZihjJiYiY29tcGxleCI9PWMpe3ZhciBmPSIiOy0xPT1hLnB1cmNoYXNlX2ludGVudD8oYz0iUGFzIGRlIHJlcG9uc2UiLGY9Ik5PX0FOU1dFUiIpOmM9YS5wdXJjaGFzZV9pbnRlbnQ7bnVsbCE9Yy5tYXRjaCgvMzAvKT8oYz0iTW9pbnMgZGUgMzAgam91cnMiLGY9IkxUXzMwX0RBWVMiKTpudWxsIT1jLm1hdGNoKC8zLyk\/KGM9Ik1vaW5zIGRlIDMgbW9pcyIsZj0iTFRfM19NT05USFMiKTpudWxsIT1jLm1hdGNoKC82LykmJgoobnVsbCE9Yy5tYXRjaCgvcGx1c3xvdmVyfG1vcmUvKT8oYz0iUGx1cyBkZSA2IG1vaXMiLGY9IkdUXzZfTU9OVEhTIik6KGM9Ik1vaW5zIGRlIDYgbW9pcyIsZj0iTFRfNl9NT05USFMiKSk7dmFyIGs9IlJlcG9uc2UgLSAiK2EucHVyY2hhc2VfaW50ZW50X3NlY3Rpb24udG9VcHBlckNhc2UoKTthLmxvZ0V2ZW50KCJJbnRlbnRpb25zIGFjaGF0OiAiK2MsIlBVUkNIQVNFX0lOVEVOVF8iK2YpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhbImIuX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGFjaGF0IixrLGMsMV0pfXN3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTticmVhaztkZWZhdWx0OiIiIT1hLnBvc3RTdWJtaXRDYWxsYmFjayYmZXZhbChhLnBvc3RTdWJtaXRDYWxsYmFjayl9InNjcmF0Y2giPT1hLnN1Ym1pdFR5cGUmJnNob3dQb3B1cFdpZGdldCgpOyQoIiNsYXN0Q29uc2VudFBvcCIpLnZhbChiPwoiRXhwbGljaXQiOiJJbXBsaWNpdCIpO2Euc2F2ZUNvbnNlbnQoYixkLCIiLCEwKX0scHJlU2VuZENoZWNrczpmdW5jdGlvbihiKXtiP2EucmVhZHlUb1NlbmQoKTphLnNob3dDb25zZW50KCl9LHNlbmRNYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXthLnN1Ym1pdFR5cGU9Im5vcm1hbCI7Yj0idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjohMTthLmlnbm9yZUNhcHRjaGF8fChhLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPXlpZWxkIGEucmVjYXB0Y2hhLmdldFJlc3BvbnNlKCkpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI29uTGVhZFN1Ym1pdEdlb2xvYyIpLnZhbCgpfHwxIT0kKCIjb25MZWFkU3VibWl0R2VvbG9jIikudmFsKCl8fCJ1bmRlZmluZWQiPT10eXBlb2YgZ2VvTG9jYXRvcnx8YS5za2lwR2VvTG9jKWEucHJlU2VuZENoZWNrcyhiKTtlbHNle3ZhciBkPW5ldyBnZW9Mb2NhdG9yKGZ1bmN0aW9uKGMpe2EuZ2VvbG9jX3N0YXR1cz0KYy5nZW9sb2Nfc3RhdHVzOzE9PWMucmVzdWx0JiYoYS5nZW9sb2NfbGF0PWMubGF0aXR1ZGUsYS5nZW9sb2NfbG9uZz1jLmxvbmdpdHVkZSxhLmdlb2xvY19hY2N1cmFjeT1jLmFjY3VyYWN5LGEuZ2VvbG9jX3RyYWNrX3N0cj1jLmdlb2NvZGVfYWRkcmVzcyxhLmdlb2xvY19lbWFpbF9zdHI9Yy5nZW9jb2RlX2FkZHJlc3Nfc3RyLC0xPT1hLmJvZHkuaW5kZXhPZigiIyNHRU9MT0NBVElPTiMjIikmJihhLmJvZHk9dHJpbShhLmJvZHkpLnJlcGxhY2UoLzxicj4mbmJzcDsvZywiPGJyPiIpKyIjI0dFT0xPQ0FUSU9OIyMiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoIlBPU1RBTF9DT0RFIixjLmdlb2NvZGVfYWRkcmVzc19zdHIpKTsidW5kZWZpbmVkIj09dHlwZW9mICQoIiNsZWFkU2VudCIpLnZhbCgpJiYKKGM9JCgiPGlucHV0PiIpLmF0dHIoe2lkOiJsZWFkU2VudCIsdHlwZToiaGlkZGVuIn0pLnZhbCgxKSwkKCIjZm9vdGVyRGl2IikuYXBwZW5kKGMpLGEucHJlU2VuZENoZWNrcyhiKSl9KTtkLnRyYWNrTG9jYXRpb25HQT0hMDtkLmdldExvY2F0aW9uKCl9fSl9LHNlbmRVc2VyRW1haWw6ZnVuY3Rpb24oYixkKXtzZW5kVG9EYXRhPXt9O3ZhciBjPWI9IiIsZj0iIixrPSIiO2ZvcihpIGluIGQpaWYoInN0cmluZyI9PXR5cGVvZiBpKXN3aXRjaChpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgImVtYWlsdG8iOmM9ZFtpXTticmVhaztjYXNlICJlbWFpbGlkIjpiPWRbaV07YnJlYWs7Y2FzZSAiZGVhbGVyZW1haWwiOmY9ZFtpXTticmVhaztjYXNlICJkZWFsZXJwaG9uZSI6az1kW2ldO2JyZWFrO2RlZmF1bHQ6c2VuZFRvRGF0YVtpXT1kW2ldfWQ9e3ZhcnM6SlNPTi5zdHJpbmdpZnkoc2VuZFRvRGF0YSksc2l0ZWlkOiQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5ndWFnZTokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksCmVtYWlsaWQ6YixlbWFpbHRvOmMsZGVhbGVyRW1haWw6ZixkZWFsZXJQaG9uZTprLHNvdXJjZVVSSTp3aW5kb3cubG9jYXRpb24uaHJlZn07JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9hamF4L2FkZE1haWxUb1NlbmQ\/d3N3aWR0aD0wIixkYXRhOmR9KX0sZ2V0U3RvY2tOdW1iZXI6ZnVuY3Rpb24oKXtpZihhLnN0b2NrTnVtYmVyKXJldHVybiBhLnN0b2NrTnVtYmVyO2lmKDA8JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLmxlbmd0aCYmMDwkKCIjdGFyZ2V0UGFnZSIpLmxlbmd0aCYmWyJORVdDQVJERVRBSUxTIiwiQ0FSREVUQUlMUyIsIlBST01PIiwiVkVISUNMRUVWQUwiXS5pbmNsdWRlcygkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpKSl7dmFyIGI9JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO2lmKDI8Yi5sZW5ndGgpe3ZhciBkPWIuaW5kZXhPZigiKFN0b2NrIik7LTE8ZCYmKGI9Yi5zdWJzdHIoZCs3KSxkPWIuaW5kZXhPZigiKSIpLAotMTxkJiYoYj1iLnN1YnN0cigwLGQpLnRyaW0oKSkpO2IrPSIifWVsc2UgYj0iIn1lbHNlIGI9Z2V0UGFyYW1ldGVyQnlOYW1lKCJzdG9ja25vIil8fCIiO3JldHVybiBiLnRyaW0oKX0sZ2V0VlBEVXJsRnJvbVN0b2NrOmZ1bmN0aW9uKCl7dmFyIGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO3RyeXt2YXIgZD1hLmdldFN0b2NrTnVtYmVyKCksYz0iIixmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPwoidXNlZCI6Im9jY2FzaW9uIixrPWUoImhyZWYiKSxtPWUoInByb3RvY29sIiksbj1rLnJlcGxhY2UobSsiLy8iLCIiKS5zcGxpdCgiLyIpLHQ9blswXSxyPWsuaW5kZXhPZigiLWlkIik7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgcGFnZXx8IkJVSUxEQU5EUFJJQ0UiIT1wYWdlJiYiTkVXQ0FSREVUQUlMUyIhPXBhZ2UpaWYoLTE8cil7dmFyIHY9cGFyc2VJbnQoay5zdWJzdHIociszKS5yZXBsYWNlKCIuaHRtbCIsIiIpLDEwKTtpZighaXNOYU4odikmJjA8dil7dmFyIHE9bltuLmxlbmd0aC0xXTstMTxxLmluZGV4T2YodikmJihjPSc8YSBocmVmPSInK20rIi8vIit0KyIvIitmKyIvIitxKyJcIiB0YXJnZXQ9J19ibGFuayc+IitiKyI8L2E+Iil9fWVsc2UiIiE9PWEudHJpbSYmKGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrCiIgIithLnRyaW06JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSk7ZWxzZSIiIT09YS50cmltJiYoYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkpLGM9JzxhIGhyZWY9IicraysiXCIgdGFyZ2V0PSdfYmxhbmsnPiIrYisiPC9hPiI7aWYoIiI9PWMmJjI8ZC5sZW5ndGgpe3ZhciBwPSQoIiN0b3BzaXRlaWQiKS52YWwoKSxoPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPwoiZW4iOiJmciI7JC5hamF4KHt0eXBlOiJHRVQiLGFzeW5jOiExLGRhdGFUeXBlOiJqc29uIix1cmw6Ii8iK2grIi9waHAvZ2V0VVJMRnJvbVN0b2NrLnBocD9zaXRlSUQ9IitwKyImc3RvY2s9IitkLHN1Y2Nlc3M6ZnVuY3Rpb24obCl7Im9iamVjdCI9PXR5cGVvZiBsJiZudWxsIT1sJiZ2b2lkIDAhPWwubWFrZSYmKGM9JzxhIGhyZWY9IicrbSsiLy8iK3QrIi8iK2YrIi8iKyhsLm1ha2UrIi0iK2wubW9kZWwrIi0iK2wueWVhcisiLWlkIitsLmlkKyIuaHRtbFwiIHRhcmdldD0nX2JsYW5rJz4iKStsLmZ1bGwrIjwvYT4iKX19KX0iIiE9YyYmKGI9Yyl9Y2F0Y2gobCl7Y29uc29sZS5sb2cobCl9cmV0dXJuIGJ9LHNldFNlbmRBbmREZXBhcnRtZW50T3ZlcnJpZGU6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCh2LHEpezA8di5sZW5ndGgmJiIiIT09di52YWwoKSYmKGIuc2VuZFRvPXYudmFsKCkpOzA8cS5sZW5ndGgmJiIiIT09cS52YWwoKSYmKGIuc2VuZFRvQURGRm9ybWF0PXEudmFsKCkpfQppZigwIT0kKCIjaXNHZW5lcmljU2VhcmNoUGFnZSIpLmxlbmd0aCYmInRydWUiPT09JCgiI2lzR2VuZXJpY1NlYXJjaFBhZ2UiKS52YWwoKSl7c3dpdGNoKGEubWFpbElEKXtjYXNlICJtZW51U2VydmljZSI6Y2FzZSAibWVudUNvbnRhY3RVcyI6Y2FzZSAiaGVhZGVyU2VydmljZSI6cmV0dXJufXZhciBjPSQoIiNDVVNUT01fU0VORF9MRUFEIik7aWYoMCE9PWMubGVuZ3RoJiYwIT09Yy52YWwoKSYmIm51bGwiIT09Yy52YWwoKSl7Yi5kZXBhcnRtZW50PWMudmFsKCkudG9VcHBlckNhc2UoKTt2YXIgZj0kKCIjbmV3RW1haWwiKSxrPSQoIiNuZXdBZGZFbWFpbCIpLG09JCgiI3RleHRTZW5kVG9FbWFpbCIpLG49JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLHQ9JCgiI2ZpbmFuY2VFbWFpbCIpLHI9JCgiI2ZpbmFuY2VBZGZFbWFpbCIpO3N3aXRjaChjLnZhbCgpKXtjYXNlICJuZXciOmQoZixrKTticmVhaztjYXNlICJ1c2VkIjpkKG0sbik7YnJlYWs7Y2FzZSAiZmluYW5jZSI6ZCh0LHIpfX19fSwKZ2V0SnNvbk9iamVjdDpmdW5jdGlvbigpeyIiPT1hLnRyaW0mJiQoIiNwb3B1cHRyaW0iKS5sZW5ndGgmJiJ7JFBPUFVQVFJJTX0iIT0kKCIjcG9wdXB0cmltIikudmFsKCkmJihhLnRyaW09JCgiI3BvcHVwdHJpbSIpLnZhbCgpKTt2YXIgYj17fSxkPWZ1bmN0aW9uKHope3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KChudWxsIT1Db29raWVzLmdldCh6KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCh6KT9lc2NhcGUoQ29va2llcy5nZXQoeikpOiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9Y2F0Y2goQyl7cmV0dXJuKG51bGwhPUNvb2tpZXMuZ2V0KHopJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KHopP2VzY2FwZShDb29raWVzLmdldCh6KSk6IiIpKyIiLnJlcGxhY2UoL1wrL2csIiUyMCIpfX0sYz1kKCJyZWxhbmNlSUQiKSxmPWQoInV0bV9zb3VyY2UiKSxrPWQoInV0bV9jYW1wYWlnbiIpLG09YS5kZWNvZGVVUkxSZWN1cnNpdmVseShkKCJ1dG1fa2V5d29yZCIpKSwKbj1kKCJ1dG1fbGFuZGluZ19mb290ZXIiKSx0PWQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSxyPWQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLHY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IktleXdvcmQiOiJNb3QtY2wmIzIzMzsiLHE9MDxtLmxlbmd0aD8iWyAiK3YrIjogIittKyJdIjoiIixwPTA8bi5sZW5ndGg\/IltEZXN0aW5hdGlvbjogIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K24rIl0iOiJbRGVzdGluYXRpb246ICIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtuKyIgLl0iO3Y9ZCgibG9jX2ludGVyZXN0Iik7ZD1kKCJsb2NfcGh5c2ljYWwiKTt2YXIgaD12P2Bsb2NfaW50ZXJlc3Q9JHt2fWA6IiIsbD1kP2Bsb2NfcGh5c2ljYWw9JHtkfWA6IiIsdT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iT3JnYW5pYyI6Ik9yZ2FuaXF1ZSI7CnE9MDxmLmxlbmd0aD9gJHtmfSAtICR7a30gJHtxfSAke2h9ICR7bH1gOnU7cD1kMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChxKSsiICIrcDtsPSIiO2g9YS5nZXRTdG9ja051bWJlcigpOyIiIT1oJiYobD0iKFN0b2NrOiIrYS5nZXRTdG9ja051bWJlcigpKyIpIik7dT17bmV3OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsbmV3aW52OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsdXNlZDoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/InVzZWQiOiJkJ29jY2FzaW9uIn07YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLHApO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUk5BTUV9L2csYS51c2VyRmlyc3ROYW1lKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVTRVJQT1NUQUx9L2csYS51c2VyUG9zdGFsLnRvVXBwZXJDYXNlKCkpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVRNREVUQUlMU30vZywKIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkRk9PVEVSfS9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxhLmJhbmRwTGluaygpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSTEFCRUx9L2csbCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxsKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFZFSElDTEVfQ09ORElUSU9OfS9nLHVbYS5jb25kaXRpb24udG9Mb3dlckNhc2UoKV0pO2lmKCIiIT09YS5ib2R5KXt2YXIgdz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpOiIiO2w9IiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGg\/CiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOiQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCk7dz13IT1sJiYiIiE9dz93Omw7YS5kZWFsZXJOYW1lPWEuZGVhbGVyTmFtZT9hLmRlYWxlck5hbWU6d31hLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSTkFNRX0iLGEuZGVhbGVyTmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JENVU1RPTVZFSElDTEVJTlRFUkVTVH0iLGEubWFrZSsiICIrYS5tb2RlbCsiICIrYS55ZWFyKTthLmxlYWRSZXF1ZXN0VHlwZSYmKGEuYm9keT1hLmJvZHkucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsYS5sZWFkUmVxdWVzdFR5cGUpLGEuc3ViamVjdD1hLnN1YmplY3QucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsYS5sZWFkUmVxdWVzdFR5cGUpLGEubGVhZFJlcXVlc3RUeXBlPSIiKTtib2R5TG93ZXI9YS5ib2R5LnRvTG93ZXJDYXNlKCk7Zm9yKHU9MDstMTxib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTspe2w9Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7CmlmKC0xPT1sKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIsbCk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+IixsKTtpZigtMT09cnBsRW5kfHwtMT09cnBsU3RhcnQpYnJlYWs7cnBsU3RyaW5nPWEuYm9keS5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UocnBsU3RyaW5nLCIiKTtib2R5TG93ZXI9YS5ib2R5LnRvTG93ZXJDYXNlKCk7dSsrO2lmKDUwPHUpYnJlYWt9dT1hLmdldFZQRFVybEZyb21TdG9jaygpOzA9PXUudHJpbSgpLmxlbmd0aCYmKGw9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjp2aXNpYmxlOmZpcnN0IiksdT1sLmxlbmd0aD9sLnZhbCgpOiIiKTthLnBheW1lbnRWZWhpY2xlJiYwPGEucGF5bWVudFZlaGljbGUubGVuZ3RoJiYodT1hLnBheW1lbnRWZWhpY2xlKTsiIj09YS5jYXJpZCYmJCgiI3RvcGNhcmlkIikubGVuZ3RoJiYoYS5jYXJpZD0kKCIjdG9wY2FyaWQiKS52YWwoKSk7CiIiPT1hLnZpbiYmJCgiI3Bob25ldmluIikubGVuZ3RoJiYoYS52aW49JCgiI3Bob25ldmluIikudmFsKCkpO2w9YS5ib2R5LmluZGV4T2YoIjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIpO2lmKC0xPGwpe3ZhciB4PWEuYm9keS5zdWJzdHIobCsyNykuaW5kZXhPZigiPC9zcGFuPiIpOy0xPHgmJihhLmJvZHk9YS5ib2R5LnN1YnN0cigwLGwpK3UrYS5ib2R5LnN1YnN0cihsK3grMjcrNykpfWEuYm9keT1hLmJvZHkucmVwbGFjZSgvPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgvPFwvc3Bhbj4vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTRUFSQ0hFRFZFSElDTEV9L2csdSk7aWYoIjEiPT0kKCIjaGFzVkJEQ0VuYWJsZWQiKS52YWwoKSl7bD0iIjt1PTA7eD0iIjtDb29raWVzLmdldCgiRDJDVVVJRCIpO2Zvcih2YXIgeSBpbiBzZXNzaW9uU3RvcmFnZSlpZigwPT15LmluZGV4T2YoIlZEUE1WQk5QLSIpKXt2YXIgQj0Kc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh5KTtCPj14JiYoeD1CLGw9eS5yZXBsYWNlKCJWRFBNVkJOUC0iLCIiKSl9aWYoIiI9PWwmJih4PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19WRFBNViIpLG51bGwhPXgpKWZvcih5IGluIHg9SlNPTi5wYXJzZSh4KSx4KUI9eFt5XSwyPD1CJiZCPnUmJih1PUIsbD15KTsiIiE9bCYmLTE9PWEuYm9keS5pbmRleE9mKCJbVkJEQy1IT1RdIikmJi0xPT1hLmJvZHkuaW5kZXhPZigiW1ZCREMtTVlTXSIpJiYoeT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtsLGEuYm9keSs9J1tWQkRDLUhPVF0gPGEgaHJlZj0iJyt5KyciPicreSsiPC9hPiIpfXk9JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKTt5PSJ1bmRlZmluZWQiPT10eXBlb2YgeT8idXNlZCI6eS50b0xvd2VyQ2FzZSgpO2w9JCgiI3NlbmRFbWFpbFRvQWxsRGVhbGVycyIpO2w9bC5sZW5ndGgmJjE9PWwudmFsKCk7bD0kKCIjaGFzTXVsdGlwbGVEZWFsZXJzIik7Cmw9bC5sZW5ndGgmJjE9PWwudmFsKCk7bD0kKCIjdG9wY2FyaWQiKTtsPTA8bC5sZW5ndGg\/JCgiI3RvcGNhcmlkIikudmFsKCk6IiI7bD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7dT0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25FbWFpbCIpLnZhbCgpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25BZGZFbWFpbCIpLnZhbCgpJiYkKCIjbmV3U2VjdGlvbkFkZkVtYWlsIikudmFsKCk7CnN3aXRjaCghMCl7Y2FzZSA1PGwubGVuZ3RoJiYibmV3Ij09eSYmIWEuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M6YS5zZW5kVG89bCxhLnNlbmRUb0FERkZvcm1hdD01PHUubGVuZ3RoP3U6bH1iLmxhbmd1YWdlPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKTsiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLnN1YmplY3Q9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuc3ViamVjdCksYi5ib2R5PWNsZWFuQW5kRW5jb2RlVGV4dChhLmJvZHkpKTooYi5zdWJqZWN0PSQuYmFzZTY0LmVuY29kZShhLnN1YmplY3QpLGIuYm9keT0kLmJhc2U2NC5lbmNvZGUoYS5ib2R5KSk7Y2xlYW5FbWFpbERlbGltaXRlcj1mdW5jdGlvbih6KXt2YXIgQz0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIHomJm51bGwhPXomJnoubGVuZ3RoJiYoQz16LnNwbGl0KCI7Iikuam9pbigiLCIpKTtyZXR1cm4gQ307InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiJORVciPT1hLmdldERlcCgpJiYKYS5zZW5kVG89PSQoIiNTSVRFVVNFREVNQUlMIikudmFsKCkmJmEuc2VuZFRvQURGRm9ybWF0PT0kKCIjU0lURVVTRURFTUFJTEFERiIpLnZhbCgpJiYoYS5zZW5kVG89JCgiI1NJVEVORVdFTUFJTCIpLnZhbCgpLGEuc2VuZFRvQURGRm9ybWF0PSQoIiNTSVRFTkVXRU1BSUxBREYiKS52YWwoKSk7Yi5zZW5kVG89YS5zZW5kVG87Yi5zZW5kVG9BREZGb3JtYXQ9Y2xlYW5FbWFpbERlbGltaXRlcihhLnNlbmRUb0FERkZvcm1hdCk7Yi5zZWxlY3RlZFNlbmRUbz1hLnNlbGVjdGVkU2VuZFRvO2Iuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtiLmVtYWlsTGlzdFN1ZmZpeD0iIjskKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aCYmKGIuZW1haWxMaXN0U3VmZml4PSQoIiNzaXRlY29tcGlsZWlkIikudmFsKCkpO2IubGVhZEludm9rZXI9YS5sZWFkSW52b2tlcnx8ImdlbmVyaWMiO2IuZGlnaXRhbFJldGFpbFNJRD1hLmRpZ2l0YWxSZXRhaWxTSUR8fAoiIjtiLmNvbnNlbnREZWFsZXI9YS5jb25zZW50RGVhbGVyO2IuY29uc2VudE9FTT1hLmNvbnNlbnRPRU07Yi51c2VyRW1haWw9YS51c2VyRW1haWw7Yi50cmFkZWluPWEudHJhZGVpbjtiLnBvcHVwZGl2PWEucG9wdXBkaXY7Yi51c2VyQXR0YWNobWVudFBhdGg9YS51c2VyQXR0YWNobWVudFBhdGg7Yi51c2VyRmlyc3ROYW1lPWEudXNlckZpcnN0TmFtZTtiLnVzZXJMYXN0TmFtZT1hLnVzZXJMYXN0TmFtZTtiLmxpY2Vuc2VudW09YS5saWNlbnNlbnVtO2IudXNlclBob25lPWEudXNlclBob25lO2IucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM9YS5waG9uZVZhbGlkYXRpb25BdHRlbXB0cztiLnBob25lTWFuZGF0b3J5PWEucGhvbmVNYW5kYXRvcnk7Yi51c2VyUG9zdGFsPWEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpfHxhLmNvbnRhY3RaaXAudG9VcHBlckNhc2UoKTtiLnVzZXJBZGRyZXNzPWEudXNlckFkZHJlc3N8fGEuY29udGFjdEFkZHJlc3M7Yi5wcm92aW5jZT1hLmNvbnRhY3RQcm92aW5jZTsKYi5iaXJ0aGRhdGU9YS5iaXJ0aGRhdGU7Yi5zZW5kRnJvbT1hLnNlbmRGcm9tO2IubWFpbElEPWEubWFpbElEO2IuaXNDVEE9YS5pc0NUQTtiLmJ1dHRvblRleHQ9YS5idXR0b25UZXh0O2IuZnJvbVVSTD13aW5kb3cubG9jYXRpb24uaHJlZjtiLm1ha2U9YS5tYWtlfHwiIjtiLm1vZGVsPWEubW9kZWx8fCIiO2IudHJpbT1hLnRyaW18fCIiO2IudmluPWEudmlufHwiIjtiLnByaWNlPWEucHJpY2V8fCIiO2IueWVhcj1hLnllYXJ8fCIiO2IudmVoaWNsZVR5cGU9YS52ZWhpY2xlVHlwZXx8IiI7Yi5zdG9ja051bWJlcj1oO2IuY2FyaWQ9YS5jYXJpZHx8IiI7Yi5jb25kaXRpb249YS5jb25kaXRpb247Yi5pc21vYmlsZXNpdGU9YS5pc21vYmlsZXNpdGU7Yi5pc0FtcD0iTk8iO2IucmVmZXJlcj0kKCIjdG9wcmVmZXJlciIpLnZhbCgpO2Iuc2l0ZWlkPSQoIiN0b3BzaXRlaWQiKS52YWwoKTtiLmRlYWxlcmlkPWEuZGVhbGVyaWR8fCIiO2Iub2VtQ2VydGlmaWNhdGlvbj0kKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpfHwKbnVsbDtiLnV0bV9zb3VyY2U9ZjtiLnJlbGFuY2VJRD1jO2IudXRtX2NhbXBhaWduPWs7Yi51dG1fa2V5d29yZD1tO2IudXRtX2xhbmRpbmc9bjtiLnV0bV9kZXRhaWxzPXE7Yi51dG1fc291cmNlX3JldGFyZ2V0aW5nPXQ7Yi51dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmc9cjtiLmxvY19pbnRlcmVzdD12O2IubG9jX3BoeXNpY2FsPWQ7Yi5wb3B1cE9mZmVyVHlwZT1hLnBvcHVwT2ZmZXJUeXBlO2IuZnJvbUZhY2Vib29rPWEuZnJvbUZhY2Vib29rO2IuZGV0YWlsc0ZSPWEuY29uc2VudERldGFpbHNGUjtiLmRldGFpbHNFTj1hLmNvbnNlbnREZXRhaWxzRU47Yi5mcm9tQUE9YS5mcm9tQUE7Yi5vd25lcklEPWEub3duZXJJRDtiLmxlYWRUaXRsZVVJVGV4dD1hLmxlYWRUaXRsZVVJVGV4dDtiLnNtcz1hLnNtcztiLm9uQWZ0ZXJMZWFkQ3JlYXRlZD1hLm9uQWZ0ZXJMZWFkQ3JlYXRlZDtiLnRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRD1hLnRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRHx8CiIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9YS51c2VyRmlyc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgiZmlyc3RuYW1lIixhLnVzZXJGaXJzdE5hbWUpLCIiIT1hLnVzZXJMYXN0TmFtZSYmY2xpZW50U3RvcmFnZS5zZXQoImxhc3RuYW1lIixhLnVzZXJMYXN0TmFtZSksIiIhPWEudXNlckVtYWlsJiZjbGllbnRTdG9yYWdlLnNldCgiZW1haWwiLGEudXNlckVtYWlsKSwiIiE9YS51c2VyUGhvbmUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJwaG9uZSIsYS51c2VyUGhvbmUpKTtiLmNoYXRib3RCb29zdElkPWdldENvb2tpZUQyYygiZDJjY2hhdGJvdGlkIik7Yi5zdHlsZWlkPSQoIiNzdHlsZUlkSW5Vc2UiKS5sZW5ndGg\/JCgiI3N0eWxlSWRJblVzZSIpLnZhbCgpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoPyQoIiNhY3RpdmVTdHlsZUlEIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmFkcF9mb3VyZXllc19pZCYmd2luZG93LmFkcF9mb3VyZXllc19pZD8KKGIuVW5pdGVXZWJzaXRlQ3VzdG9tZXJJZD13aW5kb3cuYWRwX2ZvdXJleWVzX2lkLGNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIHBhc3NlZCIsd2luZG93LmFkcF9mb3VyZXllc19pZCkpOmNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIC0gd2luZG93LmFkcF9mb3VyZXllc19pZCBpZiB3YXMgdHJpZ2dlcmVkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKTthLm9uQWZ0ZXJMZWFkQ3JlYXRlZCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209IiIsYS5zZW5kVG89YS5zZW5kVG98fCIiLGM9YS5zZW5kVG8uc3BsaXQoIjsiKSxjWzBdLnRyaW0oKS5sZW5ndGg\/Yi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT1jWzBdLnRyaW0oKTooYz1hLnNlbmRUb0FERkZvcm1hdC5zcGxpdCgiLCIpLGNbMF0udHJpbSgpLmxlbmd0aCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209Y1swXS50cmltKCkpKSk7Yi51c2VyQWdlbnQ9JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpOwpiLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWEuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW47Yz1hLnJlY2FwdGNoYS5jdXJyZW50Q29udGV4dCgpO2IuZ3JlY2FwdGNoYUFjdGlvbj1jLmFjdGlvbjtiLmdyZWNhcHRjaGFNb2RlPWMubW9kZTtiLmNvbnRhY3RJRD1hLmNvbnRhY3RJRDtiLmNvbnRhY3ROQVM9YS5jb250YWN0TkFTO2IuY29udGFjdEJpcnRoPWEuY29udGFjdEJpcnRoO2IuZGVhbGVyTmFtZT1hLmRlYWxlck5hbWU\/YS5kZWFsZXJOYW1lOnc7Yi5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPWEuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YTtiLnByZWZlcnJlZF9jb250YWN0PWEucHJlZmVycmVkX2NvbnRhY3Q7Yi51dG1kZXRhaWxzVG9SZXBsYWNlPXA7IiIhPWEuZ2VvbG9jX3N0YXR1cyYmKGIuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY19zdGF0dXMsYi5nZW9sb2NfbGF0PWEuZ2VvbG9jX2xhdCxiLmdlb2xvY19sb25nPWEuZ2VvbG9jX2xvbmcsYi5nZW9sb2NfYWNjdXJhY3k9CmEuZ2VvbG9jX2FjY3VyYWN5LCJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhbkFuZEVuY29kZVRleHQ\/KGIuZ2VvbG9jX3RyYWNrX3N0cj1jbGVhbkFuZEVuY29kZVRleHQoYS5nZW9sb2NfdHJhY2tfc3RyKSxiLmdlb2xvY19lbWFpbF9zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX2VtYWlsX3N0cikpOihiLmdlb2xvY190cmFja19zdHI9JC5iYXNlNjQuZW5jb2RlKGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY19lbWFpbF9zdHIpKSk7IiIhPWEuY2FyMl9tYWtlJiYoYi5jYXIyX21ha2U9YS5jYXIyX21ha2UsYi5jYXIyX21vZGVsPWEuY2FyMl9tb2RlbCxiLmNhcjJfdHJpbT1hLmNhcjJfdHJpbSxiLmNhcjJfeWVhcj1hLmNhcjJfeWVhcixiLmNhcjJfY29sb3I9YS5jYXIyX2NvbG9yLGIuY2FyMl9vZG9tZXRlcj1hLmNhcjJfb2RvbWV0ZXIsYi5jYXIyX3Zpbj1hLmNhcjJfdmluLGIuY2FyMl90cmFuc21pc3Nvbj0KYS5jYXIyX3RyYW5zbWlzc29uLGIuY2FyMl9kcml2ZXRyYWluPWEuY2FyMl9kcml2ZXRyYWluLGIuY2FyMl9mdWVsdHlwZT1hLmNhcjJfZnVlbHR5cGUpO2Iuc2VydmljZURhdGUxPWEuc2VydmljZURhdGUxfHwiIjtiLnNlcnZpY2VEYXRlMj1hLnNlcnZpY2VEYXRlMnx8IiI7Yi53YWl0aW5nT25TaXRlPWEud2FpdGluZ09uU2l0ZXx8IiI7Yi5jb21tZW50cz1hLmNvbW1lbnRzO2Euc2tpcEdldERlcD9iLmRlcGFydG1lbnQ9YS5kZXBhcnRtZW50OihiLmRlcGFydG1lbnQ9YS5nZXREZXAoKSxhLmRlcGFydG1lbnQ9YS5nZXREZXAoKSk7aWYoIlVTRUQiPT1iLmRlcGFydG1lbnQmJjA9PWEuZGVwYXJ0bWVudEJ5U3RvY2spe3ZhciBBPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6dmlzaWJsZTpmaXJzdCIpLnZhbCgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQSYmKEE9QS5zcGxpdCgiKFN0b2NrIiksQVsxXSkpe3ZhciBFPSJVU0VEIjtBPUFbMV0ucmVwbGFjZSgiKSIsCiIiKS5yZXBsYWNlKCI6IiwiIikucmVwbGFjZSgiIyIsIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvanMvanNvbi91c2VkQnlQcmljZUFzYy5qc29uIixzdWNjZXNzOmZ1bmN0aW9uKHopeyQuZWFjaCh6LGZ1bmN0aW9uKEMsRCl7aWYoRC5zbi50b0xvd2VyQ2FzZSgpPT1BKXJldHVybiBFPSIxIj09RC5pc25ld3x8IjEiPT1ELmlzZGVtbz8iTkVXIjoiVVNFRCIsITF9KTthLmRlcGFydG1lbnRCeVN0b2NrPUV9fSl9fSIiIT09YS5kZXBhcnRtZW50QnlTdG9jayYmITEhPT1hLmRlcGFydG1lbnRCeVN0b2NrJiYoYi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudEJ5U3RvY2spOyFiLmRlcGFydG1lbnR8fCJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSYmInVzZWQiPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT9iLmNvbmRpdGlvbj1iLmRlcGFydG1lbnQmJiJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT8KIk5ldyI6IlVzZWQiOmIuY29uZGl0aW9uPSQoIiNjdXJyZW50U3RhdHVzIikubGVuZ3RoPyQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk6InVua25vd24iO2IuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpIT1iLmNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpJiYoYi5jb25kaXRpb249Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkpO251bGwhPWEuY3JlZGl0RGF0YSYmKGIuY3JlZGl0RGF0YT1hLmNyZWRpdERhdGEpO251bGwhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhJiYoYi5kZWFsZXJBcHBvaW50bWVudERhdGE9YS5kZWFsZXJBcHBvaW50bWVudERhdGEpOzA8JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS5sZW5ndGgmJihiLnB1cmNoYXNlX2ludGVudD1hLnB1cmNoYXNlX2ludGVudCxiLnB1cmNoYXNlX2ludGVudF9hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS52YWwoKSxiLnB1cmNoYXNlX2ludGVudF9ub19hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9ub19hbnN3ZXIiKS52YWwoKSk7CmIucHVyY2hhc2VfaW50ZW50PWEuYXNrUHVyY2hhc2VJbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ6LTE6ITE7JCgiI2N1cnJlbnRJdGVtVHlwZSIpLmxlbmd0aD9iLml0ZW1UeXBlPSQoIiNjdXJyZW50SXRlbVR5cGUiKS52YWwoKTpiLml0ZW1UeXBlPSIiO2EuYm9keSs9Ilx4M2MhLS0gSlMgVW5pcXVlIGlkOiIrTWF0aC5yb3VuZCg1RTMqTWF0aC5yYW5kb20oKSkrIi0tXHgzZSI7cmV0dXJuIGJ9LGdldERlcDpmdW5jdGlvbigpe3ZhciBiPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxkPS9cYihuZXd8bmV1ZnxuZXVmc3xjb25maWd1cmF0aW9uLWV0LXByaXh8YnVpbGQtYW5kLXByaWNlfGRlbW9zfGRlbW9uc3RyYXRldXJzfGNsZWFyYW5jZSlcYi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGM9L1xiKHVzZWR8b2NjYXNpb24pXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6JiYKInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UmJiJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKXt2YXIgZj13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRDdXJyZW50RmlsdGVyU3RhdGUoImNhdGVnb3J5Iik7aWYoITEhPT1mJiZmLmxlbmd0aClpZigxPT09Zi5sZW5ndGgmJjM9PT1mWzBdLnZhbHVlKWQ9ITAsYz0hMTtlbHNle3ZhciBrLG09MCxuPTA7Zm9yKGs9MDtrIT09Zi5sZW5ndGg7aysrKWZba10ubnVtPm0mJihtPWZba10ubnVtLG49ZltrXS52YWx1ZSk7MT09PW58fDI9PT1uPyhkPSExLGM9ITApOjM9PT1uJiYoZD0hMCxjPSExKX19Zj0wO2s9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjpyZWFsbHlWaXNpYmxlOmZpcnN0Iik7MDxrLmxlbmd0aCYmKGs9ay52YWwoKS5tYXRjaCgvMTlbMC05XXsyfXwyMFswLTldezJ9L2cpLApudWxsIT1rJiYoZj1wYXJzZUludChrWzBdKSkpO2Z8fChmPWEueWVhcik7c3dpdGNoKGEubWFpbElEKXtjYXNlICJUaXJlc1JlcXVlc3QiOmNhc2UgIlBhcnRzUmVxdWVzdCI6cmV0dXJuIlBBUlRTIjtjYXNlICJTZXJ2aWNlUmVxdWVzdCI6Y2FzZSAiUmVjYWxscyI6Y2FzZSAiQm9keVNob3AiOmNhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpjYXNlICJFc3RoZXRpY1JlcXVlc3QiOnJldHVybiJTRVJWSUNFIjtjYXNlICJDcmVkaXRSZXF1ZXN0IjpjYXNlICJDcmVkaXRSZXF1ZXN0TW9iaWxlIjpjYXNlICJEZWFsZXJUcmFjayI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOmNhc2UgIkNyZWRpdFNjb3JlIjpjYXNlICJDcmVkaXRBcHBDYXJkIjpyZXR1cm4iRklOQU5DRSI7Y2FzZSAiSm9iT2ZmZXIiOnJldHVybiJIUiI7CmNhc2UgIm1lbnVDb250YWN0VXMiOmlmKCIiIT09YS5kZXBhcnRtZW50KXJldHVybiBhLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50JiYiIiE9PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpcmV0dXJuIG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKX1pZigwPGYpe2lmKGMmJmY+PWIrMSlyZXR1cm4iTkVXIjtpZighZCYmIWMpe2lmKGY+PWItMSlyZXR1cm4iTkVXIjtpZihmPGItMSlyZXR1cm4iVVNFRCJ9fXJldHVybiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKT8kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTpjPyJVU0VEIjpkPyJORVciOiIiIT09YS5kZXBhcnRtZW50P2EuZGVwYXJ0bWVudDoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwb3B1cERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPwokKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCk6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZGVmYXVsdERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKS5sZW5ndGg\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6IlVTRUQifSxyZWFkeVRvU2VuZDpmdW5jdGlvbigpe3ZhciBiPWEuY3JlYXRlQ2hlY2tzdW0oKTtpZihhLmxhc3RDaGVja3N1bT09YikiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkR1cGxpY2F0ZVNlbmQ\/YS5vbkR1cGxpY2F0ZVNlbmQuY2FsbCgpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiQ1JDIE1hdGNoIixhLmxhc3RDaGVja3N1bSxiKTtlbHNle2EubGFzdENoZWNrc3VtPWI7JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJgokKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmKGI9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iQ29uY2Vzc2lvbiBv77+9IGVzdCBzaXR177+9IGxlIHbvv71oaWN1bGU6ICI6IkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGIrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixiKSk7MDwkKCIjaXNtb2JpbGUiKS5sZW5ndGgmJihhLmlzbW9iaWxlc2l0ZT0iWUVTIik7aWYoMD09YS5zdWJqZWN0Lmxlbmd0aHx8MD09YS5ib2R5Lmxlbmd0aClyZXR1cm4hMTthLmluamVjdEN0YUNvbXBsZXRlZERhdGEoKTtqc29uT2JqZWN0PWEuZ2V0SnNvbk9iamVjdCgpO2I9bnVsbDtiPUpTT04uc3RyaW5naWZ5KGpzb25PYmplY3QpO3ZhciBkPQphLnBvcHVwT2ZmZXJUeXBlO2I9e2pzb246Yn07aWYoYS5wYXJ0aWFsKWIucGFydGlhbD0hMDtlbHNleyJ1bmRlZmluZWQiIT10eXBlb2YgZ3RhZyYmd2luZG93LmQyY19hd2NJZCYmd2luZG93LmQyY19hd2NMYWJlbCYmKCJsaXZlIj09ZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKT9ndGFnKCJldmVudCIsImNvbnZlcnNpb24iLHtzZW5kX3RvOmQyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsfSk6Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsKyIgfSk7IikpO3ZhciBjPXttYWlsSUQ6YS5tYWlsSUQsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCx5ZWFyOmEueWVhcix2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLGRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHBvcHVwT2ZmZXJUeXBlOmEucG9wdXBPZmZlclR5cGUsYm9keVR5cGU6YS52ZWhpY2xlVHlwZSwKc2FsZXNEZXB0OmEuc2FsZXNEZXB0LHBvcHVwRGl2OmEucG9wdXBkaXYsaXNDVEE6YS5pc0NUQSxidXR0b25UZXh0OmEuYnV0dG9uVGV4dH07alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLnN1Ym1pdCIsYyl9JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTsiIiE9YS5sZWFkVGl0bGVUZXh0JiYoJCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLmxlYWRUaXRsZVRleHQucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYS5sZWFkVGl0bGVUZXh0PSIiKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOwokKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpOyQoJ2lucHV0W25hbWU9ImlzRnVsbFdpZHRoIl0nKS52YWwoJCgiI2lzRnVsbFdpZHRoUGFnZU5ld1ZEUCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNNb2JpbGVOZXdWRFAiXScpLnZhbCgkKCIjaXNtb2JpbGUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgwKTsiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiPT1hLnBvcHVwZGl2JiYkKCdpbnB1dFtuYW1lPSJpc0NvbmZpcm1Qb3B1cCJdJykudmFsKDEpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZW1haWwiXScpLnZhbChhLnVzZXJFbWFpbCk7CiQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSJdJykudmFsKGEudXNlckZpcnN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9sYXN0X25hbWUiXScpLnZhbChhLnVzZXJMYXN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiXScpLnZhbChhLnVzZXJQaG9uZSk7Zm9ybUZpbGwuc2F2ZSh7ZW1haWw6YS51c2VyRW1haWwsZmlyc3ROYW1lOmEudXNlckZpcnN0TmFtZSxsYXN0TmFtZTphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxwb3N0YWw6YS51c2VyUG9zdGFsfSk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihmKXtmJiZmLm92ZXJyaWRlTWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBrPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2subGVuZ3RoJiYKZi5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsay5hdHRyKCJjb250ZW50IikpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoZil9fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWQiLGEubWFpbElELGQpO2EucGFydGlhbD0hMTthLmxhc3RDaGVja3N1bT0hMTt2YXIgaz0iIjtrPSJzdHJpbmciPT10eXBlb2YgZj9KU09OLnBhcnNlKGYpOmY7YS5fX2xhc3RSZXR1cm49aztpZigib2JqZWN0Ij09dHlwZW9mIGt8fCJ1bmRlZmluZWQiIT10eXBlb2Ygay5sZWFkaWQpYS5fX2xlYWRpZD1rLmxlYWRpZDsiZnVuY3Rpb24iIT10eXBlb2YgYS5jYWxsYmFjayYmKGEuY2FsbGJhY2s9ZnVuY3Rpb24oKXt9KTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50Iix7bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbiwKZGVwYXJ0bWVudDphLmRlcGFydG1lbnQsdHJhZGVpbjphLnRyYWRlaW4sc3VjY2VzczoiU1VDQ0VTUyI9PT1rLnN0YXR1cyxkZXRhaWw6e2NvbmZpcm1fZmlyc3RfbmFtZTphLnVzZXJGaXJzdE5hbWUsY29uZmlybV9sYXN0X25hbWU6YS51c2VyTGFzdE5hbWUsY29uZmlybV9lbWFpbDphLnVzZXJFbWFpbCxjb25maXJtX3Bob25lX251bWJlcjphLnVzZXJQaG9uZSx5ZWFyOmEueWVhcixtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLGlkOmsubGVhZGlkLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sdmVyc2lvbjphLnZlcnNpb258fCIiLE5JVjphLnZpbix0cmltOmEudHJpbSxsZWFkVHlwZTphLmxlYWRUeXBlfHwiIixtYWlsSWQ6YS5tYWlsSUR9fSk7IlNVQ0NFU1MiPT1rLnN0YXR1cz8oYS5jYWxsYmFjayghMCksYS5tYWluUHJvbW8mJihmPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6Ik1haW5Qcm9tb0J0biJ9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChmKSkpOgphLmNhbGxiYWNrKCExKTthLmNhbGxiYWNrPW51bGx9LGZhaWx1cmU6ZnVuY3Rpb24oZil7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZEVtYWlsTm90U2VudCIsYS5tYWlsSUQsZCk7YWxlcnQoc2F2ZUhhbmRsZXIuZmFpbE1lc3NhZ2UrIlxuIitmKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YWxlcnQoInBhZ2Ugbm90IGZvdW5kIil9fX0pO2EucG9wdXBPZmZlclR5cGU9IiJ9fSxpbmplY3RDdGFDb21wbGV0ZWREYXRhOmZ1bmN0aW9uKCl7bGV0IGI9IiIsZD0iIjt2YXIgYz0iIixmPWdldENvb2tpZUQyYygiYmFuZHBfY29uZmlnIiksaz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZudWxsIT09Zj9KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmKSk6SlNPTi5wYXJzZSgie30iKTtmPShtLG4pPT57bj1ufHwhMTtsZXQgdD1tLm9wdGlvbnMucmVkdWNlKCh3LHgpPT53K2Ake3h9PGJyPmAsIiIpLHI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJWZWhpY2xlIGRldGFpbHMiOiJWw6loaWN1bGUgY29uZmlndXLDqSIsdj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRmluYW5jaW5nIGRldGFpbHMiOiJEw6l0YWlscyBkdSBmaW5hbmNlbWVudCIscSxwLGg7bj1uPyIiOmAKCQkJCQkJPHU+JHt2fTo8L3U+PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShxPW0ucGF5bWVudCk\/dm9pZCAwOnEudG90YWx9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShwPW0ucGF5bWVudCk\/dm9pZCAwOnAucmF0ZX08YnI+CgkJCQkJCSR7bnVsbD09bT92b2lkIDA6bnVsbD09KGg9bS5wYXltZW50KT92b2lkIDA6aC5hbW91bnR9PGJyPjxicj4KCQkJCQlgO2xldCBsLHU7cmV0dXJuYAoJCQkJCTx1PiR7cn06PC91Pjxicj4KCQkJCQkke251bGw9PW0\/dm9pZCAwOm0ubW9kZWx9PGJyPgoJCQkJCUV4dDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KGw9bS5jb2xvcnMpP3ZvaWQgMDpsLmV4dCl8fCIifSwgSW50OiAkeyhudWxsPT1tP3ZvaWQgMDpudWxsPT0odT1tLmNvbG9ycyk\/dm9pZCAwOnUuaW50KXx8IiJ9PGJyPgoJCQkJCSR7KG51bGw9PW0\/dm9pZCAwOm0uZHJpdmVUcmFpbil8fCIifTxicj4KCQkJCQkke3R9PGJyPgoJCQkJCSR7bn0KCQkJCWB9O2suYmFuZHAmJihiPWYoay5iYW5kcCkucmVwbGFjZSgvKFx0fFxuKSovZywiIikpO2lmKENvb2tpZXMuZ2V0KCJjdGFfZGF0YV92YWxpZCIpKXtjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKXx8Int9Iik7az0hIWMucGF5bWVudDtjLmJhbmRwJiYoYy5iYW5kcC5vcHRpb25zPWMuYmFuZHAub3B0aW9uc3x8W10sYj1mKGMuYmFuZHAsaykpO2lmKGspe2xldCBtLG4sdDtkPWAKCQkJCQkJPHU+JHsiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iVmVoaWNsZSBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQifTo8L3U+PGJyPgoJCQkJCQkke251bGw9PWM\/dm9pZCAwOm51bGw9PShtPWMucGF5bWVudCk\/dm9pZCAwOm0ubGlzdFByaWNlfTxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0obj1jLnBheW1lbnQpP3ZvaWQgMDpuLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PWM\/dm9pZCAwOm51bGw9PSh0PWMucGF5bWVudCk\/dm9pZCAwOnQucGF5bWVudH08YnI+CgkJCQkJYH1jPSJcblx0XHRcdFx0XHQ8YnI+XG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDx1PjxzdHJvbmc+VHJhbnNhY3Rpb24gQnVpbGRlcjo8L3N0cm9uZz48L3U+XG5cblx0XHRcdFx0In1pZihifHxkKWEuYm9keSs9KGMrYAoJCQkJCTxicj4KCQkJCQk8YnI+CgkJCQkJJHtifQoJCQkJCSR7ZH0KCQkJCWApLnJlcGxhY2UoL1xyP1xufFxyL2csIiIpfSxkZWNvZGVVUkxSZWN1cnNpdmVseTpmdW5jdGlvbihiKXtyZXR1cm4tMSE9Yi5pbmRleE9mKCIlIik\/YS5kZWNvZGVVUkxSZWN1cnNpdmVseShkZWNvZGVVUklDb21wb25lbnQodW5lc2NhcGUoYikpKTpifSx2YWxpZGF0ZUVtYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExfSl9LGdldFVVSUQ6ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJm51bGwhPXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDoidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOgoidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMmJiJ1bmRlZmluZWQiIT1Db29raWVzLmdldCgidXVpZCIpJiZudWxsIT1Db29raWVzLmdldCgidXVpZCIpP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6IiJ9LHNldENvbnRhY3RJbmZvOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5nb29nbGVQbGFjZXMpe3ZhciBiPSQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJyk7MCE9Yi5sZW5ndGgmJihiPWIuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWIuY2l0eSYmIiI9PWEuY29udGFjdENpdHkmJihhLmNvbnRhY3RDaXR5PWIuY2l0eS5sb25nX25hbWUpLCIiIT1iLnN0cmVldCYmIiIhPWIuc3RyZWV0X251bWJlciYmIiI9PWEuY29udGFjdEFkZHJlc3MmJihhLmNvbnRhY3RBZGRyZXNzPWIuc3RyZWV0X251bWJlci5sb25nX25hbWUrIiAiK2Iuc3RyZWV0LmxvbmdfbmFtZSksIiIhPWIucHJvdmluY2UmJiIiPT1hLmNvbnRhY3RQcm92aW5jZSYmKGEuY29udGFjdFByb3ZpbmNlPQpiLnByb3ZpbmNlLnNob3J0X25hbWUpLCIiIT1iLnBvc3RhbCYmIiI9PWEuY29udGFjdFppcCYmKGEuY29udGFjdFppcD1iLnBvc3RhbC5sb25nX25hbWUpKX19LGdldExvbmdEYXRlVG9TaG9ydEZvcm1hdDpmdW5jdGlvbihiKXtpZigiIj09YilyZXR1cm4gYjtiPWIudG9Mb3dlckNhc2UoKTt2YXIgZD17amFudmllcjoiamFudWFyeSIsImbDqXZyaWVyIjoiZmVicnVhcnkiLG1hcnM6Im1hcmNoIixhdnJpbDoiYXByaWwiLG1haToibWF5IixqdWluOiJqdW5lIixqdWlsbGV0OiJqdWx5IiwiYW\/Du3QiOiJhdWd1c3QiLHNlcHRlbWJyZToic2VwdGVtYmVyIixvY3RvYnJlOiJvY3RvYmVyIixub3ZlbWJyZToibm92ZW1iZXIiLCJkw6ljZW1icmUiOiJkZWNlbWJlciJ9O2I9Yi5yZXBsYWNlKC9cYlxTK1xiL2lnLGZ1bmN0aW9uKGMpe3ZhciBmPWMudG9Mb3dlckNhc2UoKTtyZXR1cm4gZFtmXT9kW2ZdOmN9KTtyZXR1cm4obmV3IERhdGUoYikpLmZvcm1hdCgieXl5eS1NTS1kZCIpfSxnZXRFbWFpbENvbnNlbnQ6ZnVuY3Rpb24oYil7dmFyIGQ9Cm5ldyBEYXRlO2Euc2V0Q29udGFjdEluZm8oKTt2YXIgYz1hLmNvbnRhY3RCaXJ0aD9hLmNvbnRhY3RCaXJ0aDphLmdldExvbmdEYXRlVG9TaG9ydEZvcm1hdChhLmJpcnRoZGF0ZSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO2dldERhdGE9e2VtYWlsOmEudXNlckVtYWlsLHBob25lOmEudXNlclBob25lLG5hbWU6YS51c2VyRmlyc3ROYW1lKyIgIithLnVzZXJMYXN0TmFtZSxhZGRyOmEuY29udGFjdEFkZHJlc3M\/YS5jb250YWN0QWRkcmVzczphLnVzZXJBZGRyZXNzLGNpdHk6YS5jb250YWN0Q2l0eSxwcm92aW5jZTphLmNvbnRhY3RQcm92aW5jZSx6aXA6YS5jb250YWN0WmlwP2EuY29udGFjdFppcDphLnVzZXJQb3N0YWwsbmFzOmEuY29udGFjdE5BUyxiaXJ0aDpjLHNpdGVJRDokKCIjc2l0ZUlEIikudmFsKCksVVVJRDphLmdldFVVSUQoKSx0czpkLmdldFRpbWUoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSx1cGRhdGVJbXBsaWNpdDohMH07CiQuYWpheCh7dHlwZToiR0VUIix1cmw6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIixkYXRhOmdldERhdGEsZGF0YVR5cGU6Impzb24ifSkuYWx3YXlzKGZ1bmN0aW9uKGYsayxtKXtmPWY\/Zjp7aGFzQ29uc2VudDohMX07JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpO3RyeXsidW5kZWZpbmVkIj09dHlwZW9mIGYmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiKioqKiBlcnJvciAqKioqIix7ZXJyb3I6Ik5vIERhdGEiLHRleHRTdGF0dXM6ayxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSksW1siY29uc2VudFR5cGUiLCJjb25zZW50VHlwZSJdLFsiY29uc2VudEV4cGlyYXRpb24iLCJleHBpcmF0aW9uIl0sWyJjb25zZW50RGF0ZSIsImRhdGUiXSxbImNvbnNlbnRGcmVxdWVuY3kiLCJmcmVxdWVuY3kiXSwKWyJjb25zZW50RGV0YWlsc0ZSIiwiZGV0YWlsc0ZSRU5DSCJdLFsiY29uc2VudERldGFpbHNFTiIsImRldGFpbHNFTkdMSVNIIl0sWyJkZXRhaWxzRGVmYXVsdHMiLCJkZXRhaWxzRGVmYXVsdHMiXSxbImNvbnRhY3RJRCIsInVpZCJdXS5tYXAoZnVuY3Rpb24obil7dmFyIHQ9blswXTtuPW5bMV07ZGVsZXRlIHZvaWQgMDthW3RdPXZvaWQgMCE9ZltuXT9mW25dOmFbdF19KX1jYXRjaChuKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOm4sdGV4dFN0YXR1czprLHJ2YWx1ZTpmLHY6Z2V0RGF0YSx0OiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCJ9KX1iKGYpfSl9LGJhbmRwTGluazpmdW5jdGlvbihiKXtiPWZ1bmN0aW9uKHIpe3JldHVybiByLnJlcGxhY2UoLy0vZywiXyIpLnJlcGxhY2UoLycvZywiIil9O2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ29va2llcy5nZXQoImJhbmRwbGluayIpfHwKbnVsbD09Q29va2llcy5nZXQoImJhbmRwbGluayIpfHwidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJzZXNzaWQiKXx8bnVsbD09Q29va2llcy5nZXQoInNlc3NpZCIpKXJldHVybiIiO3ZhciBkPUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKSxjPUNvb2tpZXMuZ2V0KCJzZXNzaWQiKTtpZigwPmQuaW5kZXhPZigifHx8IikpcmV0dXJuIiI7dmFyIGY9ZC5zcGxpdCgifHx8Iik7aWYoND5mLmxlbmd0aClyZXR1cm4iIjtkPShuZXcgU3RyaW5nKGZbMF0pKS5zcGxpdCgiLyIpO3ZhciBrPW5ldyBTdHJpbmcoZlsxXSksbT1uZXcgU3RyaW5nKGZbMl0pO2Y9bmV3IFN0cmluZyhmWzNdKTt2YXIgbj0kKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpPyQoIiNwb3B1cHRyaW0iKS52YWwoKToiIix0PSI8YSBocmVmPSciK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKyQoIiN0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIpLnZhbCgpOwoiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8ocGFyc2VJbnQoZFsyXSksJCgiI1RYVE1PTlRIIitwYXJzZUludChkWzFdKS50b1N0cmluZygpKS52YWwoKSx0Kz1mKyItIitiKGspKyItIitiKG0pKyIuaHRtbD9zaWQ9IitjKyInIHRhcmdldD0nX2JsYW5rJz4iK2YrIiAiK2srIiAiK20rIiAiK24rIjwvYT4iKTooJCgiI1RYVE1PTlRIIitwYXJzZUludChkWzFdKS50b1N0cmluZygpKS52YWwoKSx0Kz1iKGspKyItIitiKG0pKyItIitmKyIuaHRtbD9zaWQ9IitjKyInIHRhcmdldD0nX2JsYW5rJz4iK2srIiAiK20rIiAiK24rIiAiK2YrIjwvYT4iKTtyZXR1cm4gdH0sbG9nRm9ybVJlcXVlc3Q6ZnVuY3Rpb24oYixkLGMpe3ZhciBmPU1hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKSxrPSQoIiN0b3BzaXRlaWQiKS5sZW5ndGg\/JCgiI3RvcHNpdGVpZCIpLnZhbCgpOiIwIixtPSQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmMDwkKCIjdG9wY2FyaWQiKS52YWwoKS5sZW5ndGg\/CiQoIiN0b3BjYXJpZCIpLnZhbCgpOiIwIixuPUNvb2tpZXMuZ2V0KCJ1aWQiKT9Db29raWVzLmdldCgidWlkIik6IjAiLHQ9Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKT9Db29raWVzLmdldCgidXRtX3NvdXJjZSIpOiIwIixyPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ24iKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik6IjAiLHY9Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpOiIwIixxPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik6IjAiLHA9JCgiI3RvcGlzbW9iaWxlIikubGVuZ3RoJiYxPT0kKCIjdG9waXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iLGg9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLmxlbmd0aD8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk6IkZSRU5DSCIsbD12b2lkIDAhPT0KYSYmdm9pZCAwIT09YS5waG9uZU1hbmRhdG9yeT9hLnBob25lTWFuZGF0b3J5OjA7InVuZGVmaW5lZCIhPXR5cGVvZiBjJiZjfHwoYz0iMCIpO3I9ci5yZXBsYWNlKC9cdC9nLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC9cci9nLCIiKS5yZXBsYWNlQWxsKCIlMEEiLCIiKS5yZXBsYWNlQWxsKCIlMDkiLCIiKS5yZXBsYWNlQWxsKCIlMEIiLCIiKS5yZXBsYWNlQWxsKCIlMDAiLCIiKS5yZXBsYWNlQWxsKCIlNUMiLCIiKS5yZXBsYWNlQWxsKCIlMEQiLCIiKTt0PXQucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7Yj0iL3Byb3h5X3NhdWIvbG9nRm9ybVJlcXVlc3QvIitlbmNvZGVVUklDb21wb25lbnQoaykrCiIvIitlbmNvZGVVUklDb21wb25lbnQobSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChuKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyIvIitlbmNvZGVVUklDb21wb25lbnQocikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChwKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyIvIitlbmNvZGVVUklDb21wb25lbnQodikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChxKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGQpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChjKSsiLyIrISFsKyIvIitlbmNvZGVVUklDb21wb25lbnQoZikrIi5naWYiOyQoImJvZHkiKS5hcHBlbmQoIjxpbWcgc3R5bGU9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JyBzcmM9JyIrYisiJyBhbHQ9JycgLz4iKX0sZ2V0VXNlZEVtYWlsRm9yTXVsdGlwbGVEZWFsZXJzOmZ1bmN0aW9uKCl7dmFyIGI9ImZyIjsiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJihiPSJlbiIpO3VyaT0iLyIrYisiL3BocC9nZXREZWFsZXJzRW1haWxUby5waHA\/bWFrZT0iK2EubWFrZSsiJm1vZGVsPSIrYS5tb2RlbCsiJnllYXI9IithLnllYXIrIiZjYj0iK01hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKTskLmFqYXgoe3VybDp1cmksYXN5bmM6ITEsc3VjY2VzczpmdW5jdGlvbihkKXtkPWQuc3BsaXQoInx8fCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgZFswXSYmMDxkWzBdLmxlbmd0aCYmKGEuc2VuZFRvPWRbMF0pOyJ1bmRlZmluZWQiIT10eXBlb2YgZFsxXSYmMDxkWzFdLmxlbmd0aCYmKGEuc2VuZFRvQURGRm9ybWF0PWRbMV0pfX0pfSxwcmVTZW5kSW1wbGljaXQ6ZnVuY3Rpb24oKXtpZihhLnBhcnRpYWwpcmV0dXJuITE7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTt2YXIgYj17anNvbjpKU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KSxwYXJ0aWFsOiEwfTskLmFqYXgoe3R5cGU6IlBPU1QiLAp1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihkKXskKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbChqc29uT2JqZWN0LmRlcGFydG1lbnQpOyQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5zdWJqZWN0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpOyQoJ2lucHV0W25hbWU9InBhZ2VJRCJdJykudmFsKCQoIiNQQUdFSUQiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTskKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOwpkJiZkLm92ZXJyaWRlTWltZVR5cGUmJmQub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBjPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2MubGVuZ3RoJiZkLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixjLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcihkKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGQpfSxmYWlsdXJlOmZ1bmN0aW9uKGQpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGEucG9wdXBPZmZlclR5cGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhzYXZlSGFuZGxlci5mYWlsTWVzc2FnZSxkKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YWxlcnQoInBhZ2Ugbm90IGZvdW5kIil9fX0pfSxsb2dFdmVudDpmdW5jdGlvbihiLApkKXtkPWQ\/ZDphLm1haWxJRDtpZighYnx8IWQpcmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpLCExOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD9hY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpfSxidWlsZENSTUtleTpmdW5jdGlvbigpe3ZhciBiPXBhcnNlSW50KCQoIiN0b3BzaXRlaWQiKS52YWwoKSwxMCksZD1hLmdldFVVSUQoKSxjPWdldENvb2tpZSgiZW1haWxGcm9tQXV0b0Fuc3dlciIpO2lmKCFpc05hTihiKSYmKCIiIT1jfHwiIiE9ZCkmJiJudW1iZXIiPT10eXBlb2YgYiYmMDxiKXt2YXIgZj1uZXcgRGF0ZSxrPWYuZ2V0TW9udGgoKSsxO2s9JC5iYXNlNjQuZW5jb2RlKGYuZ2V0RnVsbFllYXIoKSsKIi0iKygxMD5rPyIwIitrOmspKyItIisoMTA+Zi5nZXREYXRlKCk\/IjAiK2YuZ2V0RGF0ZSgpOmYuZ2V0RGF0ZSgpKSk7Zj1rLnN1YnN0cigwLDgpO2s9ay5zdWJzdHIoOCk7cmV0dXJuICQuYmFzZTY0LmVuY29kZShmKyQuYmFzZTY0LmVuY29kZShiKyI7IitkKyI7IitjKStrKX1yZXR1cm4iIn0sc2V0TWFrZU1vZGVsWWVhckZyb21MYXN0Vmlld2VkOmZ1bmN0aW9uKCl7dmFyIGI9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCksZD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksYz0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBiJiYiIj09PWEubWFrZSYmKGEubWFrZT1iKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkJiYiIj09PWEubW9kZWwmJihhLm1vZGVsPWQpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGN8fCIiIT09YS55ZWFyJiYwIT09YS55ZWFyfHwoYS55ZWFyPWMpfSxnZXQgcmVjYXB0Y2hhKCl7cmV0dXJuIHdpbmRvdy5nb29nbGVSZWNhcHRjaGF9LApzYW5pdGl6ZUhUTUw6ZnVuY3Rpb24oYil7cmV0dXJuIGVuY29kZVVSSShiKX0sc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdDooKT0+e2lmKG51bGw9PT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiExO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmRhdGFzZXQuZGVwYXJ0bWVudHM7Yj1iLnNwbGl0KCI7Iik7aWYoLTE8Yi5pbmRleE9mKGEuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKSlyZXR1cm4hMDt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lP2RvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lOmRvY3VtZW50LmxvY2F0aW9uLmhyZWYubWF0Y2goL1tBLXpdOlwvXC9bXlwvXStcLyhbXlw\/XSspXD8\/LiovKVsxXTsKZD1hLnNhbml0aXplSFRNTChkKTtsZXQgYz1PYmplY3QudmFsdWVzKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7bmV3OlsibmV1ZiIsIm5ldyJdLHVzZWQ6WyJvY2Nhc2lvbiIsInVzZWQiXSxzZXJ2aWNlOlsic2VydmljZSIsImVudHJldGllbiIsIm1haW50ZW5hbmNlIiwicmVwYWlyIl0sZmluYW5jZTpbImZpbmFuY2VtZW50IiwiZmluYW5jZSIsImNyZWRpdCIsImxvYW4iXX0pLmZpbHRlcihmPT57W2ZdPWY7cmV0dXJuLTE8Yi5pbmRleE9mKGYpfSkpKS5mbGF0KCk7cmV0dXJuKG5ldyBSZWdFeHAoIigiK2Muam9pbigifCIpKyIpIikpLnRlc3QoZC50b0xvd2VyQ2FzZSgpKX19O2pRdWVyeShmdW5jdGlvbihiKXtiPWpzX2QyY19nZXRfdmFsKCJJU1ZNIik7dmFyIGQ9anNfZDJjX2dldF92YWwoImZmZEwxIiksYz1qc19kMmNfZ2V0X3ZhbCgiR1JXTCIpLnNwbGl0KCI7Iik7YS5pZ25vcmVDYXB0Y2hhPWJ8fC0xIT1jLmluZGV4T2YoZCk7YS5pZ25vcmVDYXB0Y2hhfHwKKHdpbmRvdy5nb29nbGVSZWNhcHRjaGE\/YS5yZWNhcHRjaGEuaW5pdCgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdvb2dsZVJlY2FwdGNoYS5yZWFkeSIsZnVuY3Rpb24oKXthLnJlY2FwdGNoYS5pbml0KCl9LHtvbmNlOiEwfSkpfSk7YS5yZXNldENhbGxiYWNrcygpO2EuYXNrUHVyY2hhc2VJbnRlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9InVuZGVpbmZlZCIhPXR5cGVvZiBiLnBhdGhuYW1lP2IucGF0aG5hbWU6Yi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07dmFyIGM9UmVnRXhwKCIoZGVtb25zdHJhdGV1cnN8ZGVtb3xsaXF1aWRhdGlvbnxjbGVhcmFuY2V8cHJvbW90aW9uc3xuZXVmfG5ld3xvY2Nhc2lvbnx1c2VkfGNyZWRpdHxmaW5hbmNlbWVudCkiKTtiPXtkZW1vbnN0cmF0ZXVyczoiZGVtbyIsY2xlYXJhbmNlOiJsaXF1aWRhdGlvbiIsIm5ldyI6Im5ldWYiLHByb21vdGlvbnM6InByb21vIix1c2VkOiJvY2Nhc2lvbiIsY3JlZGl0OiJmaW5hbmNlbWVudCJ9OwpyZXR1cm4gYy50ZXN0KGQudG9Mb3dlckNhc2UoKSk\/KGQ9ZC5tYXRjaChjKSxudWxsIT1kJiYoYS5wdXJjaGFzZV9pbnRlbnRfc2VjdGlvbj0idW5kZWZpbmVkIiE9dHlwZW9mIGJbZFsxXV0\/YltkWzFdXTpkWzFdKSwhMCk6ITF9KGRvY3VtZW50LmxvY2F0aW9uKTtyZXR1cm4gYX0oKSxlbWFpbFRyYWNraW5nPWZ1bmN0aW9uKCl7dmFyIGU9e2JyYW5kOiIiLG1vZGVsOiIiLHllYXI6IiIsaXNwcm9tbzohMSxpc2V4cHJlc3M6ITEsaXNob21lcGFnZTohMSxzZWN0aW9uOiIiLHRleHRDYXJTZWN0aW9uVHlwZToiVVNFRCIsaXNNb2JpbGVOZXdWRFA6ITEsaXNGdWxsV2lkdGg6ITEsYnV0dG9uUG9zaXRpb246IiIsZGVhbGVyTmFtZToiIn0sZz1mdW5jdGlvbihjKXt2YXIgZj1bXSxrPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yz1jLnllYXI\/Yy55ZWFyOmVtYWlsSGFuZGxlci55ZWFyO2subGVuZ3RoJiYKZi5wdXNoKGspO20ubGVuZ3RoJiZmLnB1c2gobSk7Yy5sZW5ndGgmJmYucHVzaChjKTtyZXR1cm4gZi5qb2luKCItIil9LGE9ZnVuY3Rpb24oYyl7dmFyIGY9eyJob21lcGFnZS5odG1sIjoiSG9tZS1QYWdlIiwiY29udGFjdHVzLmh0bWwiOiJDb250YWN0VXMiLCJuZXdjYXJkZXRhaWwuaHRtbCI6Ik5ldy1WRFAiLCJuZXdjYXJzLmh0bWwiOiJOZXctU1JQIiwiYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUCIsInJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiOiJOZXctQiZQLVJlc3VtZSIsImNvbXBhcmVOZXdWZWhpY2xlcy5odG1sIjoiTmV3LUNvbXBhcmUiLCJ1c2VkY2Fycy5odG1sIjoiVXNlZC1TUlAiLCJjYXJkZXRhaWwuaHRtbCI6IlVzZWQtVkRQIiwiY3JlZGl0Lmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwiZGVhbGVydHJhY2suaHRtbCI6IkRlbWFuZGVzIC0gRmluYW5jZW1lbnQiLCJwcm9tb3Rpb24uaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zYWxlcy5odG1sIjoiUHJvbW90aW9ucyIsCiJwcm9tb3Rpb25zZXJ2aWNlLmh0bWwiOiJQcm9tb3Rpb25zIiwicGFydHNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBp77+9Y2VzIiwic2VydmljZXMuaHRtbCI6IlNlcnZpY2UiLCJzZXJ2aWNlUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgU2VydmljZSIsImJvZHlTaG9wLmh0bWwiOiJEZW1hbmRlcyAtIFJEViBDYXJvc3NlcmllIiwidGlyZXNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBuZXVzIiwib3VydGVhbS5odG1sIjoiVGVhbSIsInRlc3Rkcml2ZS5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1PY2Nhc2lvbiIsInRlc3Rkcml2ZW5ldy5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1OZXVmIiwiYnJvY2h1cmVzLmh0bWwiOiJEZW1hbmRlcyAtIEJyb2NodXJlcyIsImpvYm9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIEVtcGxvaXMiLCJtYWtlb2ZmZXJuZXcuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBOZXVmIiwibWFrZW9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIE9mZnJlIC0gT2NjYXNpb24iLAoicHJpY2VyZXF1ZXN0bmV3Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBOZXVmIiwicHJpY2VyZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBPY2Nhc2lvbiIsImZpbmRjYXIuaHRtbCI6IkRlbWFuZGVzIC0gUmVjaGVyY2hlIE9jY2FzaW9uIiwidHJhZGVpbm5ldy5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE5ldWYiLCJ0cmFkZWluLmh0bWwiOiJEZW1hbmRlcyAtIEVjaGFuZ2UgT2NjYXNpb24ifSxrPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1yZXN1bWUiKSxtPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1vcHRpb25zIik7ImJ1aWxkYW5kcHJpY2UuaHRtbCI9PWMucGFnZUlEJiYoa3x8bSkmJihjLnBhZ2VJRD0icmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCIpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZltjLnBhZ2VJRF0\/ZltjLnBhZ2VJRF06Ik90aGVyIn0sYj1mdW5jdGlvbihjKXt2YXIgZj0iRGVtYW5kZXMiLGs9CmMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yy5pc3Byb21vJiYoZis9Ii1Qcm9tb3Rpb24iKTswPGsubGVuZ3RoJiYwPG0ubGVuZ3RoJiYhYy5pc2hvbWVwYWdlP2Y9Yy5pc3Byb21vP2YrKCItIitnKGMpKTpmK1siIixrLG0sYy5zZWN0aW9uXS5qb2luKCItIik6Yy5pc3Byb21vJiZjLmlzaG9tZXBhZ2UmJihmKz0iLUluZGV4Iik7IjEiPT1jLmlzZXhwcmVzcyYmKGMudGV4dENhclNlY3Rpb25UeXBlJiYoZj0iRGVtYW5kZXMtRXhwcmVzcyIpLGYrPSItIitnKGMpLGYrPSItIitjLnNlY3Rpb24pO3JldHVybiBmfSxkPWZ1bmN0aW9uKGMpe3ZhciBmPTEyMDA8d2luZG93LnNjcmVlbi5hdmFpbFdpZHRoPyI+MTIwMHB4IC0gIi5pc0Z1bGxXaWR0aDoiPDEyMDBweCAtIE5vcm1hbCBWRFAiO1tmLGMuYnV0dG9uUG9zaXRpb25dLmpvaW4oIi0iKTtjPVtjLmRlYWxlck5hbWUsZiwiTGVhZCJdLmpvaW4oIi0iKTsKZ2FUcmFjaygiYyIsIk5ldy1WRFAtRGVza3RvcC1MYXlvdXQtQ1IiLGFjdGlvbixjLDEpfTt0aGlzLnRyYWNrPWZ1bmN0aW9uKGMpe2lmKGdldENvb2tpZSgibGVhZFNlbmQiKSlyZXR1cm4gZGVidWcoImxlYWQgc2VudCIpO3NldENvb2tpZSgibGVhZFNlbmQiLCEwLDEpO2M9JC5leHRlbmQoe30sZSxjKTtjLmN1cnJlbnRVUkw9Yy5jdXJyZW50VVJMP2MuY3VycmVudFVSTDp3aW5kb3cubG9jYXRpb24uaHJlZjtjLmlzcHJvbW89IjEiPT1jLmlzcHJvbW87Yy5pc2hvbWVwYWdlPSIxIj09Yy5pc2hvbWVwYWdlO3ZhciBmPWEoYyk7Z2FUcmFjaygiIiwiQ291cnJpZWxzIixjLmxhYmVsLGIoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1kZXB0IixjLmRlcGFydG1lbnQsZyhjKSwxKTtnYVRyYWNrKCJjIiwiQ291cnJpZWxzLXBhZ2UiLGYsYy5sZWFkVHlwZSwxKTtjLmlzTW9iaWxlTmV3VkRQJiYiTmV3LVZEUCI9PWYmJmQoYyk7dHJ5e2QyY19nYUFjY291bnRzLmFsbC5tYXAoZnVuY3Rpb24oayl7Z3RhZygiY29uZmlnIiwKayx7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9KSxndGFnKCJjb25maWciLCJHLVo1UThaNUM3S0YiLHtwYWdlX3BhdGg6Ii9jb25maXJtYXRpb24uaHRtbCJ9KX1jYXRjaChrKXtkZWJ1ZyhrKX19O3JldHVybiB0aGlzfSgpLGdldE1haWxTZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgZz17dGltZW91dENhbGxiYWNrOm51bGwsdGltZW91dDpudWxsfTtnLmlkVG9BZGQ9ZT9lOiIiOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLmRlZmF1bHRTdWNjZXNzIikuc2hvdygpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuaGlkZSgpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5sZW5ndGh8fChlPSIiLGcuaWRUb0FkZD0iIiwiU0VSVklDRSIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYiUEFSVFMiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCl8fCgkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5kZWZhdWx0U3VjY2VzcyIpLmhpZGUoKSwKJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuc2VydmljZVN1Y2Nlc3MiKS5zaG93KCkpO2cuc2hvd1N1Y2Nlc3M9ZnVuY3Rpb24oKXtnZXRDb29raWUoInByZXZlbnREdXBsaWNhdGVDcmVkaXRTY29yZSIpfHxnZXRDb29raWUoImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwU2hvd24iKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkIil8fCIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYiIiE9ZW1haWxIYW5kbGVyLnVzZXJBZGRyZXNzJiYiIiE9ZW1haWxIYW5kbGVyLmJpcnRoZGF0ZXx8Im5ldyIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8ISQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLmxlbmd0aHx8IlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciI9PWVtYWlsSGFuZGxlci5wb3B1cGRpdj8oJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKwplKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkuYXBwZW5kVG8oImJvZHkiKSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UrIiAuY29uZmlybV9zdWNjZXNzQ29udGludWUiKS5vbigiY2xpY2siLGcuY2xvc2VTdWNjZXNzKSk6JCgiI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpOyQoIiNlbWFpbG1zZ2ZybSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJzdWJtaXQiKX07Zy5jbG9zZVN1Y2Nlc3M9ZnVuY3Rpb24oKXskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrCmcuaWRUb0FkZCkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7bnVsbCE9Zy50aW1lb3V0Q2FsbGJhY2smJmcudGltZW91dENhbGxiYWNrKCk7cmV0dXJuITF9O2cuc2hvd0ZhaWw9ZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZy5pZFRvQWRkKS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9KTskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSsiIC5jb25maXJtX2ZhaWxDb250aW51ZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9O3JldHVybiBnfSxtYWlsU2VudEhhbmRsZXI9bmV3IGdldE1haWxTZW50SGFuZGxlcigiIik7CmZ1bmN0aW9uIHN0b3JhZ2VBdmFpbGFibGUoZSl7dHJ5e3ZhciBnPXdpbmRvd1tlXTtnLnNldEl0ZW0oIl9fc3RvcmFnZV90ZXN0X18iLCJfX3N0b3JhZ2VfdGVzdF9fIik7Zy5yZW1vdmVJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIik7cmV0dXJuITB9Y2F0Y2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJigyMj09PWEuY29kZXx8MTAxND09PWEuY29kZXx8IlF1b3RhRXhjZWVkZWRFcnJvciI9PT1hLm5hbWV8fCJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCI9PT1hLm5hbWUpJiZnJiYwIT09Zy5sZW5ndGh9fQp2YXIgZm9ybUZpbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLGc9c3RvcmFnZUF2YWlsYWJsZSgibG9jYWxTdG9yYWdlIiksYT1udWxsLGI9ITAsZD1bXSxjPXtuYW1lOlsiaW5wdXQubmFtZSIsJ2lucHV0W25hbWU9Im5hbWUiXSddLHBvc3RhbDpbImlucHV0LnBvc3RhbCIsJ2lucHV0W25hbWU9InBvc3RhbCJdJ10sZmlyc3ROYW1lOidpbnB1dC5maXJzdE5hbWUgaW5wdXQuZmlyc3RuYW1lIGlucHV0W25hbWU9ImZpcnN0bmFtZSJdIGlucHV0W25hbWU9ImZpcnN0TmFtZSJdIGlucHV0I2ZpcnN0bmFtZSBpbnB1dCNmaXJzdE5hbWUgaW5wdXQjbWluaV9mbmFtZScuc3BsaXQoIiAiKSxsYXN0TmFtZTonaW5wdXQubGFzdE5hbWUgaW5wdXQubGFzdG5hbWUgaW5wdXRbbmFtZT0ibGFzdG5hbWUiXSBpbnB1dFtuYW1lPSJsYXN0TmFtZSJdIGlucHV0I2xhc3RuYW1lIGlucHV0I2xhc3ROYW1lIGlucHV0I21pbmlfbG5hbWUnLnNwbGl0KCIgIikscGhvbmU6WyJpbnB1dC5waG9uZSIsJ2lucHV0W25hbWU9InBob25lIl0nLAonaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScsImlucHV0I21pbmlfcGhvbmUiLCdbdHlwZT0idGVsIl0nXSxlbWFpbDpbImlucHV0LmVtYWlsIiwnaW5wdXRbbmFtZT0iZW1haWwiXScsJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJywiaW5wdXQjbWluaV9lbWFpbCJdfSxmPWZ1bmN0aW9uKHApe2lmKCFnKXJldHVybiExO3ZhciBoPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmb3JtRmlsbERhdGEiKTtpZihudWxsPT09aClyZXR1cm4hMTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5nZXQiLGRhdGE6e2RhdGE6aH19KS5kb25lKGZ1bmN0aW9uKGwpe2lmKGwmJiJmdW5jdGlvbiI9PT10eXBlb2YgcCl0cnl7cChKU09OLnBhcnNlKGwuZGF0YSkpfWNhdGNoKHUpe2NvbnNvbGUubG9nKHUpfX0pfSxrPWZ1bmN0aW9uKCl7Yj0hMDthPW51bGw7ZC5mb3JFYWNoKGZ1bmN0aW9uKHApe3AuZmlsbGVkPSExfSl9LG09ZnVuY3Rpb24ocCl7cSgidXNlci5sb2FkZWQiLApmdW5jdGlvbigpe2lmKCFuKHApKXtkLnB1c2goe3Njb3BlOnAsZmlsbGVkOiEwfSk7Zm9yKHZhciBoIGluIGMpYS5oYXNPd25Qcm9wZXJ0eShoKSYmcC5maW5kKCQoY1toXS5qb2luKCIsIikpKS52YWwoYVtoXSk7cigiZm9ybS5maWxsZWQiKX19KTtudWxsPT09YSYmYj8oYj0hMSxmKGZ1bmN0aW9uKGgpe2gucG9zdGFsPWgucG9zdGFsLnRvVXBwZXJDYXNlKCk7aC5maXJzdE5hbWU9aC5maXJzdE5hbWUudHJpbSgpO2gubGFzdE5hbWU9aC5sYXN0TmFtZS50cmltKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9aC5wb3N0YWw7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1oLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWguZmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9aC5sYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPWgucGhvbmU7aC5uYW1lPShoLmZpcnN0TmFtZSsiICIraC5sYXN0TmFtZSkudHJpbSgpO2E9aDtyKCJ1c2VyLmxvYWRlZCIpfSkpOgphJiZyKCJ1c2VyLmxvYWRlZCIpfSxuPWZ1bmN0aW9uKHApe3JldHVybihfc2NvcGU9ZC5maW5kKGZ1bmN0aW9uKGgpe2lmKGguc2NvcGUuaXMocCkpcmV0dXJuIGh9KSk\/X3Njb3BlLmZpbGxlZDohMX0sdD1bXSxyPWZ1bmN0aW9uKHApe3ZhciBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2lmKHRbcF0pe3ZhciBsPXRbcF0uc2xpY2UoKTt2YXIgdT1sLmxlbmd0aDtmb3IoaT0wO2k8dTtpKyspbFtpXS5hcHBseSh0aGlzLGgpfX0sdj1mdW5jdGlvbihwLGgpe3RbcF18fCh0W3BdPVtdKTt0W3BdLnB1c2goaCl9LHE9ZnVuY3Rpb24ocCxoKXt2KHAsZnVuY3Rpb24gdSgpe3RbcF0uc3BsaWNlKHRbcF0uaW5kZXhPZih1KSwxKTtoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfTskKGZ1bmN0aW9uKCl7ZyYmKCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihwLGgpe3A9aC50YXJnZXQ\/aC50YXJnZXQ6JChoKTttKHApfSksJChkb2N1bWVudCkub24oInBvcHVwaXplci5vbkNsb3NlIiwKZnVuY3Rpb24ocCxoKXt9KSwkKCJmb3JtIikuZWFjaChmdW5jdGlvbihwLGgpe20oJChoKSl9KSl9KTtyZXR1cm4gZT17c2F2ZTpmdW5jdGlvbihwKXtpZighZylyZXR1cm4hMTthJiYiIj09PXAucG9zdGFsJiYocC5wb3N0YWw9YS5wb3N0YWwpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvcHJveHlfc2QyYy9zZXJ2aWNlL2QyYy5lbmNyeXB0aW9uLnNldCIsZGF0YTp7ZGF0YTpKU09OLnN0cmluZ2lmeShwKX19KS5kb25lKGZ1bmN0aW9uKGgpe2gmJihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9ybUZpbGxEYXRhIixoLmRhdGEpLGsoKSl9KX19fSgpOwovKiogL2pzL2poYXNodGFibGUuanMgKiovCnZhciBfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDc6MDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM1OjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDExOjMzOjQ5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQzOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQwOjEzIjsidXNlIHN0cmljdCI7CnZhciBIYXNodGFibGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KGEpe2lmKCJzdHJpbmciPT10eXBlb2YgYSlyZXR1cm4gYTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5oYXNoQ29kZSlyZXR1cm4gYT1hLmhhc2hDb2RlKCksInN0cmluZyI9PXR5cGVvZiBhP2E6dShhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS50b1N0cmluZylyZXR1cm4gYS50b1N0cmluZygpO3RyeXtyZXR1cm4gU3RyaW5nKGEpfWNhdGNoKGMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9fWZ1bmN0aW9uIEIoYSxjKXtyZXR1cm4gYS5lcXVhbHMoYyl9ZnVuY3Rpb24gQyhhLGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjLmVxdWFscz9jLmVxdWFscyhhKTphPT09Y31mdW5jdGlvbiB2KGEpe3JldHVybiBmdW5jdGlvbihjKXtpZihudWxsPT09Yyl0aHJvdyBFcnJvcigibnVsbCBpcyBub3QgYSB2YWxpZCAiK2EpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYyl0aHJvdyBFcnJvcihhKwoiIG11c3Qgbm90IGJlIHVuZGVmaW5lZCIpO319ZnVuY3Rpb24gcShhLGMsaCxkKXt0aGlzWzBdPWE7dGhpcy5lbnRyaWVzPVtdO3RoaXMuYWRkRW50cnkoYyxoKTtudWxsIT09ZCYmKHRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbj1mdW5jdGlvbigpe3JldHVybiBkfSl9ZnVuY3Rpb24gcihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Zm9yKHZhciBoPXRoaXMuZW50cmllcy5sZW5ndGgsZCxrPXRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbihjKTtoLS07KWlmKGQ9dGhpcy5lbnRyaWVzW2hdLGsoYyxkWzBdKSlzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiEwO2Nhc2UgMTpyZXR1cm4gZDtjYXNlIDI6cmV0dXJuW2gsZFsxXV19cmV0dXJuITF9fWZ1bmN0aW9uIHcoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD1jLmxlbmd0aCxkPTAsaz10aGlzLmVudHJpZXMubGVuZ3RoO2Q8azsrK2QpY1toK2RdPXRoaXMuZW50cmllc1tkXVthXX19ZnVuY3Rpb24gbShhLGMpe3JldHVybihhPWFbY10pJiYKYSBpbnN0YW5jZW9mIHE\/YTpudWxsfWZ1bmN0aW9uIHgoYSxjKXt2YXIgaD10aGlzLGQ9W10saz17fSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2E6dSxEPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6bnVsbDt0aGlzLnB1dD1mdW5jdGlvbihiLGUpe3AoYik7eShlKTt2YXIgZj1uKGIpLGcsbD1udWxsOyhnPW0oayxmKSk\/KGY9Zy5nZXRFbnRyeUZvcktleShiKSk\/KGw9ZlsxXSxmWzFdPWUpOmcuYWRkRW50cnkoYixlKTooZz1uZXcgcShmLGIsZSxEKSxkW2QubGVuZ3RoXT1nLGtbZl09Zyk7cmV0dXJuIGx9O3RoaXMuZ2V0PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtpZihlPW0oayxlKSlpZihiPWUuZ2V0RW50cnlGb3JLZXkoYikpcmV0dXJuIGJbMV07cmV0dXJuIG51bGx9O3RoaXMuY29udGFpbnNLZXk9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpO3JldHVybihlPW0oayxlKSk\/ZS5jb250YWluc0tleShiKTohMX07dGhpcy5jb250YWluc1ZhbHVlPWZ1bmN0aW9uKGIpe3koYik7CmZvcih2YXIgZT1kLmxlbmd0aDtlLS07KWlmKGRbZV0uY29udGFpbnNWYWx1ZShiKSlyZXR1cm4hMDtyZXR1cm4hMX07dGhpcy5jbGVhcj1mdW5jdGlvbigpe2QubGVuZ3RoPTA7az17fX07dGhpcy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWQubGVuZ3RofTt2YXIgdD1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sZj1kLmxlbmd0aDtmLS07KWRbZl1bYl0oZSk7cmV0dXJuIGV9fTt0aGlzLmtleXM9dCgia2V5cyIpO3RoaXMudmFsdWVzPXQoInZhbHVlcyIpO3RoaXMuZW50cmllcz10KCJnZXRFbnRyaWVzIik7dGhpcy5yZW1vdmU9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpLGY9bnVsbCxnPW0oayxlKTtpZihnJiYoZj1nLnJlbW92ZUVudHJ5Rm9yS2V5KGIpLG51bGwhPT1mJiYhZy5lbnRyaWVzLmxlbmd0aCkpe2E6e2ZvcihiPWQubGVuZ3RoO2ItLTspaWYoZz1kW2JdLGU9PT1nWzBdKWJyZWFrIGE7Yj1udWxsfXooZCxiKTtkZWxldGUga1tlXX1yZXR1cm4gZn07CnRoaXMuc2l6ZT1mdW5jdGlvbigpe2Zvcih2YXIgYj0wLGU9ZC5sZW5ndGg7ZS0tOyliKz1kW2VdLmVudHJpZXMubGVuZ3RoO3JldHVybiBifTt0aGlzLmVhY2g9ZnVuY3Rpb24oYil7Zm9yKHZhciBlPWguZW50cmllcygpLGY9ZS5sZW5ndGgsZztmLS07KWc9ZVtmXSxiKGdbMF0sZ1sxXSl9O3RoaXMucHV0QWxsPWZ1bmN0aW9uKGIsZSl7Yj1iLmVudHJpZXMoKTtmb3IodmFyIGYsZyxsLEE9Yi5sZW5ndGgsRT0iZnVuY3Rpb24iPT10eXBlb2YgZTtBLS07KWY9YltBXSxnPWZbMF0sZj1mWzFdLEUmJihsPWguZ2V0KGcpKSYmKGY9ZShnLGwsZikpLGgucHV0KGcsZil9O3RoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgeChhLGMpO2IucHV0QWxsKGgpO3JldHVybiBifX12YXIgej0iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkucHJvdG90eXBlLnNwbGljZT9mdW5jdGlvbihhLGMpe2Euc3BsaWNlKGMsMSl9OmZ1bmN0aW9uKGEsYyl7dmFyIGg7aWYoYz09PWEubGVuZ3RoLTEpYS5sZW5ndGg9CmM7ZWxzZXt2YXIgZD1hLnNsaWNlKGMrMSk7YS5sZW5ndGg9Yzt2YXIgaz0wO2ZvcihoPWQubGVuZ3RoO2s8aDsrK2spYVtjK2tdPWRba119fSxwPXYoImtleSIpLHk9digidmFsdWUiKTtxLnByb3RvdHlwZT17Z2V0RXF1YWxpdHlGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYS5lcXVhbHM\/QjpDfSxnZXRFbnRyeUZvcktleTpyKDEpLGdldEVudHJ5QW5kSW5kZXhGb3JLZXk6cigyKSxyZW1vdmVFbnRyeUZvcktleTpmdW5jdGlvbihhKXtyZXR1cm4oYT10aGlzLmdldEVudHJ5QW5kSW5kZXhGb3JLZXkoYSkpPyh6KHRoaXMuZW50cmllcyxhWzBdKSxhWzFdKTpudWxsfSxhZGRFbnRyeTpmdW5jdGlvbihhLGMpe3RoaXMuZW50cmllc1t0aGlzLmVudHJpZXMubGVuZ3RoXT1bYSxjXX0sa2V5czp3KDApLHZhbHVlczp3KDEpLGdldEVudHJpZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWEubGVuZ3RoLGg9MCxkPXRoaXMuZW50cmllcy5sZW5ndGg7aDxkOysraClhW2MrCmhdPXRoaXMuZW50cmllc1toXS5zbGljZSgwKX0sY29udGFpbnNLZXk6cigwKSxjb250YWluc1ZhbHVlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz10aGlzLmVudHJpZXMubGVuZ3RoO2MtLTspaWYoYT09PXRoaXMuZW50cmllc1tjXVsxXSlyZXR1cm4hMDtyZXR1cm4hMX19O3JldHVybiB4fSgpOwovKiogL2pzL25ld2NhcnMuanMgKiovCnZhciBfX19kMmNfbmV3Y2Fyc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6MTIiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGUpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWUudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGU9YVtiXTtpZihlJiZlLk1hdGg9PU1hdGgpcmV0dXJuIGV9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBlPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWUpcmV0dXJuIGFbYl07ZT1hW2VdO3JldHVybiB2b2lkIDAhPT1lP2U6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsZSxnKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGUsZyk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGUsZykpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7ZT0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZz0wO2c8YS5sZW5ndGgtMTtnKyspe3ZhciBoPWFbZ107aWYoIShoIGluIGUpKXJldHVybjtlPWVbaF19YT1hW2EubGVuZ3RoLTFdO2c9ZVthXTtiPWIoZyk7YiE9ZyYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7dmFyIGg9YS5zcGxpdCgiLiIpO2E9MT09PWgubGVuZ3RoO2c9aFswXTtnPSFhJiZnIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgbj0wO248aC5sZW5ndGgtMTtuKyspe3ZhciB0PWhbbl07aWYoISh0IGluIGcpKXJldHVybjtnPWdbdF19aD1oW2gubGVuZ3RoLTFdO2U9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWU\/Z1toXTpudWxsO2I9YihlKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWUmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGU9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2UrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZywkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChlKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGU9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoZS5kb25lKXRoaXMueWllbGRSZXN1bHQ9ZS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoZS52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsZSl7ZT90aGlzLmZpbmFsbHlDb250ZXh0c19bZV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGUpe3JldHVybnt2YWx1ZTplLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixlKXt0cnl7dmFyIGc9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZyk7aWYoIWcuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGc7dmFyIGg9Zy52YWx1ZX1jYXRjaChuKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKG4pLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2UuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGcpe3JldHVybiBhLm5leHQoZyl9ZnVuY3Rpb24gZShnKXtyZXR1cm4gYS50aHJvdyhnKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZyxoKXtmdW5jdGlvbiBuKHQpe3QuZG9uZT9nKHQudmFsdWUpOlByb21pc2UucmVzb2x2ZSh0LnZhbHVlKS50aGVuKGIsZSkudGhlbihuLGgpfW4oYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpsZXQgJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA7Cm5ld0NhcnM9e2lzTW9iaWxlOiIxIj09PShudWxsPT0oJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzTW9iaWxlIikpP3ZvaWQgMDokanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMC52YWx1ZSksY29udGFpbmVyOmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXdjYXJDb250YWluZXIiKSxyZXNpemVNYWluV2luZG93OmZ1bmN0aW9uKCl7aWYoIW5ld0NhcnMuaXNNb2JpbGUpe3ZhciBhPSQoIiNyaWdodFNpZGUiKS5oZWlnaHQoKS0zNSxiPSQoIiNuZXdjYXJDb250YWluZXIiKS5oZWlnaHQoKTshaXNOYU4oYSkmJiFpc05hTihiKSYmYT5iJiYoJCgiI25ld2NhckNvbnRhaW5lciIpLmhlaWdodChhKSwkKCIjZm9vdGVyRGl2IikuY3NzKCJwYWRkaW5nIiwiMHB4IikpfX0sc2V0UGF5bWVudFRvb2x0aXBzOigpPT57bmV3Q2Fycy5pc01vYmlsZT8kKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRJbmZvQnViYmxlIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDphLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KX0pOiQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpe3RyeXtpZigkKHRoaXMpLmRhdGEoInRvb2x0aXBDcmVhdGVkIikpcmV0dXJuITE7JCh0aGlzKS5kYXRhKCJ0b29sdGlwQ3JlYXRlZCIsMSk7JCh0aGlzKS5maW5kKCIuZGl2Q2FyUGF5bWVudENvbnRhaW5lclRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYil7fX0pfSl9LG5ld0NhcnNGaWx0ZXI6KCk9PntmdW5jdGlvbiBhKCl7dmFyIGM9JCgiLmRpdkNhdGVnb3J5Qm94V3JhcHBlciIpLm1hcChmdW5jdGlvbihkLApmKXtyZXR1cm4gcGFyc2VJbnQoJChmKS5hdHRyKCJuYlZpc2libGUiKSl9KS5nZXQoKS5yZWR1Y2UoZnVuY3Rpb24oZCxmKXtyZXR1cm4gZCtmfSwwKTtyZXR1cm57ZmlsdGVyczp7c3RhdHVzOiJOZXciLGJvZHlTdHlsZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmNhdGVnb3J5IikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikudmFsKCl9KS5nZXQoKSxmdWVsVHlwZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmZ1ZWx0eXBlIikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikuZGF0YSgiZXNzZW5jZSIpfSkuZ2V0KCksZHJpdmVUcmFpbjokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmRyaXZldHJhaW4iKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS5kYXRhKCJkcml2ZXRyYWluIil9KS5nZXQoKSxtYXhQcmljZTpwLm1heCxtaW5QcmljZTpwLm1pbn0sdmVoaWNsZUNvdW50OmN9fXZhciBiPSExO3RyeXsidW5kZWZpbmVkIj09alF1ZXJ5LmJyb3dzZXIubXNpZT8KYj0hMDo5PD1wYXJzZUludChqUXVlcnkuYnJvd3Nlci52ZXJzaW9uLDEwKSYmKGI9ITApfWNhdGNoKGMpe31pZigidW5kZWZpbmVkIj09dHlwZW9mIGJveEJsb2Nrc3x8MT5ib3hCbG9ja3MubGVuZ3RoKWI9ITE7LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY2FtaW9ucy1jb21tZXJjaWF1eCIpJiYoYj0hMSk7aWYoYil7dmFyIGU9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtiPWdldFVybFZhcnMoKTt2YXIgZz1iLmhhc093blByb3BlcnR5KCJib2R5IiksaD1iLmhhc093blByb3BlcnR5KCJmdWVsIik7bmV3Q2Fycy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiLmZpbHRlckNoZWNrIikuZm9yRWFjaChjPT57ZyYmYy5jbGFzc0xpc3QuY29udGFpbnMoImNhdGVnb3J5Iil8fGgmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmdWVsdHlwZSIpfHwoYy5jaGVja2VkPSFlLmhhc093blByb3BlcnR5KGMuaWQpfHwhMD09PWVbYy5pZF0pfSk7JCgiI2ZpbHRlck1haW5Cb3giKS5zaG93KCk7CmZvcih2YXIgbiBpbiBib3hCbG9ja3Mpe2I9MDtmb3IodmFyIHQgaW4gYm94QmxvY2tzW25dKWIrKzskKCIjY2xhc3MiK24rIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLGIpfSQoIi5maWx0ZXJDaGVjayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpO25ld0NhcnMuc2V0RmlsdGVyKGMuYXR0cigiaWQiKSxjLmlzKCI6Y2hlY2tlZCIpKTtzZXRUaW1lb3V0KHgsMTAwKTtpZihjLmhhc0NsYXNzKCJjYXRlZ29yeSIpKXt2YXIgZD1jLnZhbCgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtCKGQpfSwxMDApfX0pOyQoIi5yYWRpb1NvcnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7QygkKHRoaXMpLnZhbCgpKX0pOyQoIi5maWx0ZXJTcGFuIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcyk7bmV3Q2Fycy5zZXRGaWx0ZXIoImZpbHRlclNwYW4iLGMuYXR0cigicmVsIikpO2M9IiMiK2MuYXR0cigicmVsIik7JChjKS50cmlnZ2VyKCJjbGljayIpfSk7CnZhciB5PSIiLHc9IiIsRz1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNvbnNvPT1kLmNvbnNvPzA6Yy5jb25zbz5kLmNvbnNvPzE6LTF9LEg9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jb25zbz09ZC5jb25zbz8wOmMuY29uc28+ZC5jb25zbz8tMToxfSxJPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucHJpY2U9PWQucHJpY2U\/MDpjLnByaWNlPmQucHJpY2U\/MTotMX0sSj1mdW5jdGlvbihjLGQpe3JldHVybiBjLnByaWNlPT1kLnByaWNlPzA6Yy5wcmljZT5kLnByaWNlPy0xOjF9LEs9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jYXJNb2RlbD09ZC5jYXJNb2RlbD9jLnllYXI+ZC55ZWFyPy0xOmMueWVhcjxkLnllYXI\/MTowOmMuY2FyTW9kZWw+ZC5jYXJNb2RlbD8xOi0xfSxDPWZ1bmN0aW9uKGMsZCl7dz0idW5kZWZpbmVkIiE9PXR5cGVvZiBkP2Q6eT09Yz8iQXNjIj09dz8iRGVzYyI6IkFzYyI6IkFzYyI7eT1jO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0QnkiLHkpO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0RGlyIiwKdyk7Zm9yKHZhciBmIGluIGJveEJsb2Nrcyl7Yz0xO2Q9W107Zm9yKHZhciBtIGluIGJveEJsb2Nrc1tmXSl7dmFyIGw9Ym94QmxvY2tzW2ZdW21dO2wudmlzaWJsZSYmKGRbZC5sZW5ndGhdPWwpfXN3aXRjaCh5KXtjYXNlICJwcmljZSI6IkFzYyI9PXc\/ZC5zb3J0KEkpOmQuc29ydChKKTticmVhaztjYXNlICJtb2RlbCI6ZC5zb3J0KEspO2JyZWFrO2Nhc2UgImNvbnNvIjoiQXNjIj09dz9kLnNvcnQoRyk6ZC5zb3J0KEgpfWQuc29ydChmdW5jdGlvbihrLHUpe3JldHVybiBrLnNwZWNpYWxPcmRlcj09dS5zcGVjaWFsT3JkZXI\/MDprLnNwZWNpYWxPcmRlcj51LnNwZWNpYWxPcmRlcj8xOi0xfSk7Zm9yKGw9MDtsPGQubGVuZ3RoO2wrKylkW2xdLnZpc2libGUmJihkW2xdLnBvc2l0aW9uIT1sKzEmJihkW2xdLnBvc2l0aW9uPWwrMSxBKGYsImZieF8iK2YrIl8iK2RbbF0uaWQsIm1vdmUiLGwrMSkpLGMrKyl9fSxMPWZ1bmN0aW9uKCl7Zm9yKHZhciBjIGluIGJveEJsb2Nrcyl7dmFyIGQ9CjEsZjtmb3IoZiBpbiBib3hCbG9ja3NbY10pe3ZhciBtPWJveEJsb2Nrc1tjXVtmXTttLnZpc2libGUmJm0ucG9zaXRpb24hPWQmJihtLnBvc2l0aW9uPWQsQShjLGYsIm1vdmUiLGQpKTtBKGMsZixtLnZpc2libGU\/InNob3ciOiJoaWRlIik7bS52aXNpYmxlJiZkKyt9JCgiI2NsYXNzIitjKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIixkLTEpfX0sRD1mdW5jdGlvbihjLGQpe2Zvcih2YXIgZj0wLG09MTttPGQ7bSsrKXt2YXIgbD0kKCIjIitjK20pOzA8bC5sZW5ndGgmJmwucHJvcCgiY2hlY2tlZCIpJiYoZis9TWF0aC5wb3coMixtLTEpKX1yZXR1cm4gZn0seD1mdW5jdGlvbigpe3ZhciBjPUQoImZpbHRlckVzc2VuY2VDaGVjayIsNiksZD1EKCJmaWx0ZXJEcml2ZVRyYWluQ2hlY2siLDQpLGY9W10sbT1bXTskKCIuZmlsdGVyQ2hlY2suY2F0ZWdvcnkiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKSYmZi5wdXNoKCQodGhpcykudmFsKCkpfSk7dmFyIGw9CiExOzA8JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5sZW5ndGgmJigkKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpJiZtLnB1c2goJCh0aGlzKS52YWwoKSl9KSxsPSEwKTtmb3IodmFyIGsgaW4gYm94QmxvY2tzKXt2YXIgdT0wLHE7Zm9yKHEgaW4gYm94QmxvY2tzW2tdKXt2YXIgTT1wYXJzZUludChib3hCbG9ja3Nba11bcV0uZnVlbCwxMCksdj0hMTt2PSh2PSh2PSh2PSh2PSEocGFyc2VJbnQoYm94QmxvY2tzW2tdW3FdLmRyaXZldHJhaW4sMTApJmQpKXx8IShNJmMpKXx8ISghYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5fHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5LGYpKSl8fCEoITE9PT1sfHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhck1ha2UsbSkmJmwpKXx8ISgwPT1ib3hCbG9ja3Nba11bcV0ucHJpY2V8fGJveEJsb2Nrc1trXVtxXS5wcmljZTw9cC5tYXgmJgpib3hCbG9ja3Nba11bcV0ucHJpY2U+PXAubWluKTtib3hCbG9ja3Nba11bcV0udmlzaWJsZT0hdjtib3hCbG9ja3Nba11bcV0udmlzaWJsZSYmdSsrfSQoIiNjbGFzcyIraysiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsdSk7QihrKX1MKCk7IjEiPT09JCgiYm9keSIpLmRhdGEoImZpbHRlcnM6bG9hZCIpJiYkKCJib2R5IikudHJpZ2dlcigkLmV4dGVuZCh7dHlwZToiZmlsdGVyczpjaGFuZ2UifSxhKCkpKX0sQj1mdW5jdGlvbihjKXt2YXIgZD0kKCIjY2xhc3MiK2MrIl9jb250YWluZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj0kKCIjc2hvd0NsYXNzXyIrYyk7MD09PWYubGVuZ3RoJiYoZj0kKCdpbnB1dFtkYXRhLWVzc2VuY2U9IicrYysnIl0nKSk7Zj1mLmlzKCI6Y2hlY2tlZCIpOzA8cGFyc2VJbnQoZC5hdHRyKCJuYlZpc2libGUiKSwxMCk\/KGYmJihkLmF0dHIoInN0YXRlIiwib3BlbiIpLGQuZmFkZUluKDYwMCksbmV3Q2Fycy5pc01vYmlsZXx8KGY9TWF0aC5jZWlsKHBhcnNlSW50KGQuYXR0cigibmJWaXNpYmxlIiksCjEwKS8zKSwkKCIuQ0xBU1NfIitjKS5hbmltYXRlKHtoZWlnaHQ6ci5oZWlnaHQqZisicHgifSw2MDApKSxmPSEwKSxmfHxFKGQpKTpFKGQpfX0sRT1mdW5jdGlvbihjKXtjLmF0dHIoInN0YXRlIiwiY2xvc2UiKTtjLmZhZGVPdXQoNjAwKTtyZXR1cm4hMH0sQT1mdW5jdGlvbihjLGQsZixtLGwpe2lmKCJoaWRlIj09ZikkKCIjIitkKS5hbmltYXRlKHtvcGFjaXR5OjB9LDYwMCxmdW5jdGlvbigpeyQodGhpcykuYXR0cigiaXMtYm94LXZpc2libGUiLDApLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpfSksYm94QmxvY2tzW2NdW2RdLnZpc2libGU9ITEsc2l0ZVBhZ2UuaXNNb2JpbGUmJihuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtkfWApLmhpZGRlbj0hMCk7ZWxzZSBpZigic2hvdyI9PWYpJCgiIyIrZCkuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpLmFuaW1hdGUoe29wYWNpdHk6MX0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsCjEpfSksYm94QmxvY2tzW2NdW2RdLnZpc2libGU9ITAsc2l0ZVBhZ2UuaXNNb2JpbGUmJihuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtkfWApLmhpZGRlbj0hMSk7ZWxzZSBpZighc2l0ZVBhZ2UuaXNNb2JpbGUpe3ZhciBrPSQoIi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciIpLndpZHRoKCk7Yz1NYXRoLmZsb29yKGsvci53aWR0aCk7Zj1ib3hQb3NpdGlvbnNbZF07az1NYXRoLmZsb29yKGsvYyk7Yz17bGVmdDoiKz0iKygobS0xKSVjKmstKGYtMSklYyprKSsicHgiLHRvcDoiKz0iKyhNYXRoLmZsb29yKChtLTEpL2MpKnIuaGVpZ2h0LU1hdGguZmxvb3IoKGYtMSkvYykqci5oZWlnaHQpKyJweCJ9O3ZvaWQgMD09bD8kKCIjIitkKS5hZGRDbGFzcygiTW92aW5nQm94IikuYW5pbWF0ZShjLDYwMCxmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoIk1vdmluZ0JveCIpfSk6JCgiIyIrZCkuYWRkQ2xhc3MoIk1vdmluZ0JveCIpLmFuaW1hdGUoYyw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJNb3ZpbmdCb3giKTsKZXZhbChsKX0pO2JveFBvc2l0aW9uc1tkXT1tfX0sRj1mdW5jdGlvbigpe3ZhciBjPXt3aWR0aDowLGhlaWdodDowfTskKCcuZGl2Q2FyU2luZ2xlT3V0ZXJCb3hbaXMtYm94LXZpc2libGU9IjEiXTpmaXJzdCcpLmVhY2goZnVuY3Rpb24oKXtjLndpZHRoPSQodGhpcykub3V0ZXJXaWR0aCghMCk7Yy5oZWlnaHQ9JCh0aGlzKS5vdXRlckhlaWdodCghMCl9KTtyZXR1cm4gY30sej05NjA7JCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuYXR0cigiaXMtYm94LXZpc2libGUiLDEpO3ZhciByPUYoKTswPCQoIkJPRFkuaXNGdWxsV2lkdGhQYWdlIikubGVuZ3RoJiYwPCQoIkJPRFkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCIpLmxlbmd0aCYmKDEzMDA8d2luZG93LmlubmVyV2lkdGgmJih6PTEyMDApLCQod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3ZhciBjPXo7ej0xMzAwPHdpbmRvdy5pbm5lcldpZHRoPzEyMDA6OTYwO2MhPXomJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKCl9KX0pKTsKdmFyIE49ZnVuY3Rpb24oKXt2YXIgYz1yO3I9RigpOyQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZD0wOyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPXBhcnNlSW50KCQodGhpcykuY3NzKCJ0b3AiKSksbT1wYXJzZUludCgkKHRoaXMpLmNzcygibGVmdCIpKTswPT09ZiYmMD09PW18fCQodGhpcykuY3NzKHt0b3A6ci5oZWlnaHQqKGYvcGFyc2VJbnQoYy5oZWlnaHQpKSsicHgifSkuY3NzKHtsZWZ0OnIud2lkdGgqKG0vcGFyc2VJbnQoYy53aWR0aCkpKyJweCJ9KTsxPT09cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIpKSYmZCsrfSk7ZCYmJCh0aGlzKS5jc3Moe2hlaWdodDpNYXRoLmZsb29yKGQvMykqci5oZWlnaHQrKGQlMz9yLmhlaWdodDowKSsicHgifSl9KX0scD17bWluOjAsbWF4OjFFNn07KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3ByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiKTsKaWYoMDxjLmxlbmd0aCl7dmFyIGQ9Yy5maW5kKCJkaXYucmFuZ2Utc2xpZGVyIik7aWYoMDxkLmxlbmd0aCl7dmFyIGY9bnVsbCxtPWZ1bmN0aW9uKGwsayl7cD17bWluOkQyQ1V0aWxzLk51bWJlci5yb3VuZERvd24oay52YWx1ZXNbMF0sMUUzKSxtYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kVXAoay52YWx1ZXNbMV0sMUUzKX07bnVsbCE9PWwmJm5ld0NhcnMuc2V0RmlsdGVyKCJzZXRTaG93ZWRWYWx1ZXMiLHAubWluKyI6IitwLm1heCk7Yy5maW5kKCJzcGFuLnByaWNlLW1pbiIpLnRleHQocC5taW4udG9Mb2NhbGVTdHJpbmcoKSk7Yy5maW5kKCJzcGFuLnByaWNlLW1heCIpLnRleHQocC5tYXgudG9Mb2NhbGVTdHJpbmcoKSk7Y2xlYXJUaW1lb3V0KGYpO2Y9c2V0VGltZW91dChmdW5jdGlvbigpe3goKX0sNTAwKX07cD17bWluOkQyQ1V0aWxzLk51bWJlci5yb3VuZERvd24oZC5hdHRyKCJhdHRyLXByaWNlLW1pbiIpKSxtYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWF4IikpfTsKZC5zbGlkZXIoe3JhbmdlOiEwLG1pbjpwLm1pbixtYXg6cC5tYXgsc2xpZGU6bSxjaGFuZ2U6bSxjcmVhdGU6ZnVuY3Rpb24obCxrKXtsPW5ld0NhcnMuZ2V0RmlsdGVyKCk7az1bcC5taW4scC5tYXhdOyJzdHJpbmciPT09dHlwZW9mIGwuc2V0U2hvd2VkVmFsdWVzJiYoaz1sLnNldFNob3dlZFZhbHVlcy5zcGxpdCgiOiIpKTtkLnNsaWRlcigidmFsdWVzIixrKTttKG51bGwse3ZhbHVlczprfSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoImJvZHkiKS50cmlnZ2VyKCQuZXh0ZW5kKHt0eXBlOiJmaWx0ZXJzOmxvYWQifSxhKCkpKX0sM0UzKX19KX19fSkoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3NvcnRCeSIpO3ZhciBkPSQoIiNzb3J0RGlyIiksZj0ibW9kZWwiO3ZhciBtPSJBc2MiO3ZhciBsPXttb2RlbDoicmFkaW9Nb2RsZSIscHJpY2U6InJhZGlvUHJpY2UiLGNvbnNvOiJyYWRpb0NvbnNvIn07Yy5sZW5ndGgmJmQubGVuZ3RoJiYoZj1jLnZhbCgpLG09ZC52YWwoKSk7CmUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGxbZS5zb3J0QnldPyhjPWUuc29ydEJ5LG09ZS5zb3J0RGlyKTpjPWY7dHJ5e3ZhciBrPSQoIiMiK2xbY10pO2subGVuZ3RoJiZrLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIik7QyhjLG0pfWNhdGNoKHUpe319LDUwMCk7aWYoJCgiI3RvZ2dsZUZpbHRlckJ0biIpLmxlbmd0aCkkKCIjdG9nZ2xlRmlsdGVyQnRuIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5sZW5ndGgmJigkKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5oYXNDbGFzcygib3BlbiIpPyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLnJlbW92ZUNsYXNzKCJvcGVuIik6JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuYWRkQ2xhc3MoIm9wZW4iKSl9KTtpZigkKCIjY2xvc2VTaWRlYmFyQnRuIikubGVuZ3RoKSQoIiNjbG9zZVNpZGViYXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmCiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIikmJiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLnJlbW92ZUNsYXNzKCJvcGVuIil9KTskKCIuc2VsZWN0VG9nZ2xlV3JhcHBlckNhck1ha2UiKS5sZW5ndGgmJigkKCIjc2VsZWN0QWxsQnRuQ2FyTWFrZSIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5wcm9wKCJjaGVja2VkIiwhMCk7c2V0VGltZW91dCh4LDEwMCl9KSwkKCIjdW5zZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCExKTtzZXRUaW1lb3V0KHgsMTAwKX0pKX19LHNldEZpbHRlcjooYSxiKT0+e3ZhciBlPXt9LGc9X2xvY2FsU3RvcmFnZUdldCgibmV3U3ZwRmlsdGVyIik7bnVsbCE9ZyYmIm9iamVjdCIhPXR5cGVvZiBnJiYoZT1KU09OLnBhcnNlKGcpKTtnPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKdm9pZCAwPT1lW2ddJiYoZVtnXT17fSk7ZVtnXVthXT1iO19sb2NhbFN0b3JhZ2VTZXQoIm5ld1N2cEZpbHRlciIsSlNPTi5zdHJpbmdpZnkoZSkpfSxnZXRGaWx0ZXI6KCk9PntsZXQgYT0hMTt2YXIgYj1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtsZXQgZT17fTtudWxsIT1iJiYib2JqZWN0IiE9dHlwZW9mIGImJihlPUpTT04ucGFyc2UoYikpO2I9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO3ZvaWQgMCE9ZVtiXSYmKGE9ZVtiXSk7cmV0dXJuIGF9LHNldFByaWNlVG9vbFRpcHM6KCk9PntuZXdDYXJzLmlzTW9iaWxlfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQudG9vbHRpcDskKGEpLmRhcmtUb29sdGlwKHtjb250ZW50OmIsZ3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9KX0sc2V0RXZlbnRzOigpPT4Ke25ld0NhcnMuaXNNb2JpbGV8fCgkKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3RoaXMuc3JjPSQodGhpcykuYXR0cigiZXJyb3JpbWciKX0pLCQoImltZ1ttdWx0aWltZz10cnVlXSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJzcmMiLCQodGhpcykuYXR0cigiY29sb3JpbWciKSl9KTskKHRoaXMpLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJibGFja2ltZyIpKX0pfSkpfSxnZXRJbnZlbnRvcnlEYXRhOigpPT57Y29uc3QgYT0oYixlKT0+e2xldCBnPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2ZldGNoKGAvJHtnfS9hamF4L2dldEludmVudG9yeURhdGFgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsCiJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pLnRoZW4oaD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaCYmITA9PT1oLm9rJiYyMDA9PWguc3RhdHVzKXJldHVybiBoLmpzb24oKX0pLnRoZW4oaD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5zdGF0dXMmJiJzdWNjZXNzIj09aC5zdGF0dXMpe2xldCBuPWguY291bnQ7aD1oLnVybDtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW5TdG9ja0xhYmVsIikudmFsdWU7MDxuJiYoZS5wYXJlbnROb2RlLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixgPGEgaHJlZj0iJHtofSI+JHtufSAke3R9PC9hPmApLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX0pLmNhdGNoKGZ1bmN0aW9uKGgpe30pfTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtkYXRhLXR5cGU9ImludmRhdGEiXScpLmZvckVhY2goYj0+CnthKHttYWtlOmIuZGF0YXNldC5tYWtlLG1vZGVsOmIuZGF0YXNldC5tb2RlbCx5ZWFyOmIuZGF0YXNldC55ZWFyLHN0eWxlaWRzOmIuZGF0YXNldC5zdHlsZWlkcyxoeWJyaWQ6Yi5kYXRhc2V0Lmh5YnJpZH0sYil9KX0sZ2V0UGF5bWVudERhdGE6KCk9Pntjb25zdCBhPShiLGUsZyk9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBoPXlpZWxkKHlpZWxkIGZldGNoKGAvJHtlbmNvZGVVUklDb21wb25lbnQoZyl9L2FqYXgvZ2V0U2hvd3Jvb21QYXltZW50SHRtbGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYil9KSkuanNvbigpO2UucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24tYmxvY2siKS5oaWRkZW49CiEwO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5zdGF0dXMmJiJzdWNjZXNzIj09aC5zdGF0dXMpe2xldCBuPWguY29udGVudDswPG4ubGVuZ3RoJiYoZS5wYXJlbnROb2RlLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixuKSxlLnBhcmVudE5vZGUuaGlkZGVuPSExKX19Y2F0Y2goaCl7fX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0icGF5bWVudGRhdGEiXScpLmZvckVhY2goYj0+e2xldCBlPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2Eoe3N0eWxlaWQ6Yi5kYXRhc2V0LnN0eWxlaWQsdGl0bGU6Yi5kYXRhc2V0LnRpdGxlLGhyZWY6Yi5kYXRhc2V0LmhyZWYsbGlua1N0eWxlOmIuZGF0YXNldC5saW5rc3R5bGUsbGlua0NsYXNzOmIuZGF0YXNldC5saW5rY2xhc3MsY29udGFpbmVyQ2xhc3M6Yi5kYXRhc2V0LmNvbnRhaW5lcmNsYXNzLHByb21vVGV4dDpiLmRhdGFzZXQucHJvbW90ZXh0LApsYW5nOmV9LGIsZSl9KX19OyQod2luZG93KS5vbigibG9hZCIsZnVuY3Rpb24oKXtuZXdDYXJzLnJlc2l6ZU1haW5XaW5kb3coKX0pO2RvY1JlYWR5QXJyLnB1c2goKCk9PntuZXdDYXJzLmdldFBheW1lbnREYXRhKCk7bmV3Q2Fycy5zZXRQYXltZW50VG9vbHRpcHMoKTtuZXdDYXJzLnNldEV2ZW50cygpO25ld0NhcnMubmV3Q2Fyc0ZpbHRlcigpO25ld0NhcnMuc2V0UHJpY2VUb29sVGlwcygpO25ld0NhcnMuZ2V0SW52ZW50b3J5RGF0YSgpfSk7Ci8qKiAvanMvZDJjX2ZvcmRfdGFnZ2luZy5qcyAqKi8KdmFyIF9fX2QyY19kMmNmb3JkdGFnZ2luZ2pzX2Nfb249IjIwMjYtMDMtMzEgMTc6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgZGVidWdfZDJmdD1uZXcgZnVuY3Rpb24oKXt0aGlzLmxvZz1mdW5jdGlvbigpe3ZhciB6PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZWJ1Z19kMmZ0Iik7bnVsbD09eiYmKHo9ImxpdmUiIT1kZXBsb3ltZW50VHlwZSk7MDx6JiZjb25zb2xlLmxvZy5hcHBseShudWxsLGFyZ3VtZW50cyl9O3RoaXMuZW5hYmxlPWZ1bmN0aW9uKHope2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJkZWJ1Z19kMmZ0Iix6KX07cmV0dXJuIHRoaXN9OwpmdW5jdGlvbiBEMkZUKHosSSl7ZnVuY3Rpb24gTygpe3ZhciBkPXQ7aWYoL3NpOnZscy8udGVzdCh0LnBhZ2VJZCkpe3ZhciBiPXQ7dHJ5e2Zvcih2YXIgaD13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRGaWx0ZXJDb250cm9sbGVyKCkuZ2V0Q3VycmVudEZpbHRlcnNWYWx1ZXMoKSxjPSIiLGE9MDthPGgubGVuZ3RoO2ErKyl7dmFyIGU9aFthXSxsPWUudmFsdWVzO3N3aXRjaChlLmZpZCl7Y2FzZSAiZmx0Q2F0ZWdvcmllSWQiOjE9PWwubGVuZ3RoJiYoImNwbyIhPWMmJjE9PWxbMF0mJihjPSJ1c2VkIiksMz09bFswXSYmKGM9Im5ldyIpKTticmVhaztjYXNlICJmbHRDZXJ0aWZpZWRJZCI6MDxsLmxlbmd0aCYmKGM9ImNwbyIpfX12YXIgZj1jfWNhdGNoKGcpe2Y9IiJ9Yi5pbnZlbnRvcnlGbGFnPWZ9Yj12b2lkIDAhPT10LmludmVudG9yeUZsYWcmJiIiIT10LmludmVudG9yeUZsYWc\/dC5pbnZlbnRvcnlGbGFnOi9jZXJ0aWZpZVtkc10vLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpPwoiY3BvIjovdXNlZHxvY2Nhc3Rpb24vLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpPyJ1c2VkIjovbmUod3x1ZnMpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKT8ibmV3Ijoib3RoZXIiO2Quc2lUeXBlPWJ9ZnVuY3Rpb24gUyhkKXtpZigidmVoaWNsZTo8bmFtZXBsYXRlPiI9PWQpcmV0dXJuIjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI7aWYoL14oVU5LTk9XTnxjdXN0b20pLy50ZXN0KGQpKXtjb25zdCBiPVt7cGF0dGVybjovbWFpbnRlbmFuY2UtcGxhbnxmb3JkLXByb3RlY3R8bGluY29sbi1wcm90ZWN0LyxyZXN1bHQ6InNlcnZpY2U6Zm9yZCBwcm90ZWN0In0se3BhdHRlcm46L2V2LWNoYXJnaW5nLyxyZXN1bHQ6ImV2IGNoYXJnaW5nIn0se3BhdHRlcm46L2V2LShsaWZlc3R5bGV8b3ZlcnZpZXcpLyxyZXN1bHQ6ImV2IGxpZmVzdHlsZSJ9LHtwYXR0ZXJuOi9ldi1vd25lcnNoaXAvLHJlc3VsdDoiZXYgb3duZXJzaGlwIn0se3BhdHRlcm46L2V2LShsaWdodG5pbmd8bWFjaC1lKS8sCnJlc3VsdDoiZXYgdmhwOjxuYW1lcGxhdGU+In1dO2Zvcihjb25zdCBoIG9mIGIpe2NvbnN0IHtwYXR0ZXJuOmMscmVzdWx0OmF9PWg7aWYoYy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuIGF9fXJldHVybiBkfWZ1bmN0aW9uIFQoZCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJvc3RpZ3V5bGluY29sbiIpfHx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygidGF5bG9ybGluY29sbiIpPyJsaW5jb2xuIjpkfXZhciB0PUk7dC5zaVR5cGU9IjxzaS10eXBlPiI7dmFyIEo7aWYoIm9iamVjdCI9PT10eXBlb2YgeiYmIXpbd2luZG93LmRlcGxveW1lbnRUeXBlXSlyZXR1cm4gZGVidWdfZDJmdC5sb2coIk5vIGFkb2JlIHRyYWNraW5nIGZvcjogIit3aW5kb3cuZGVwbG95bWVudFR5cGUpLHRoaXM7dD1mdW5jdGlvbihkKXtkLnBhZ2VJZD1TKGQucGFnZUlkKTtkLmNsaWVudD1UKGQuY2xpZW50KTskLmV4dGVuZCghMCxkLGZ1bmN0aW9uKCl7dmFyIGI9Cnt9OyQuZWFjaCgkKCIjZGlnaXRhbF9kYXRhX2luZm8iKS5maW5kKCJpbnB1dCIpLnNlcmlhbGl6ZUFycmF5KCksZnVuY3Rpb24oKXtiW3RoaXMubmFtZV09dGhpcy52YWx1ZX0pO3JldHVybiBifSgpKTsvZXYtbGlnaHRuaW5nKC1mcik\/XC5odG1sLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkmJihkLm1ha2U9IkZvcmQiLGQubW9kZWw9IkYxNTAgTGlnaHRuaW5nIik7L2V2LW1hY2gtZSgtZnIpP1wuaHRtbC8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpJiYoZC5tYWtlPSJGb3JkIixkLm1vZGVsPSJNdXN0YW5nIE1hY2ggRSIpO3JldHVybiBkfSh0KTtjb25zb2xlLmxvZygiRDJGVCBwYWdlRGF0YSIsdCk7dmFyIFU9e3BhZ2U6e3VzZXJMYW5ndWFnZTpudWxsLGNsaWVudDpudWxsLHNpdGU6bnVsbCxwYWdlTmFtZToiPHBhZ2VOYW1lPiIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4iLGhpZXJhcmNoeToiPGhpZXJhcmNoeT4iLHBhZ2VOYW1lTm9WZWhpY2xlOiI8cGFnZW5hbWUtbm8tdmVoaWNsZT4iLApyYWRVSVZlcnNpb246IjxyYWRVSVZlcnNpb24+Iix2YXJpYW50TmFtZToiPHZhcmlhbnROYW1lPiIsdG9vbDoiPHRvb2w+Iix0b29sRGVzY3JpcHRvcjoiPHRvb2xEZXNjcmlwdG9yPiIsc2VhcmNoRGVwdGg6IjxzZWFyY2hEZXB0aD4iLHZpbnJlYWw6Ijx2aW5SZWFsPiJ9LHZlaGljbGU6e21vZGVsWWVhcjoiPG1vZGVsWWVhcj4iLG5hbWVwbGF0ZToiPG5hbWVwbGF0ZT4iLGJvZHlNb2RlbFRyaW06Ijx2ZWhpY2xlVHJpbT4iLGV4dEludENvbG9yQ29kZToiPHZlaGljbGVFeHRJbnRDb2xvckNvZGU+IixlbmdpbmVUcmFuczoiPHZlaGljbGVUYW5zbWlzc2lvbj4iLHByaWNlOiI8dmVoaWNsZVByaWNlPiJ9LHVzZXI6e3BhQ29kZTpudWxsLGxlYWRUeXBlOiI8cGFnZUxvYWRMZWFkVHlwZT4iLGNrc1Zpc2l0SWQ6Ijxja3NWaXNpdElkPiJ9fSxLPTAsRz0hMSxCPXsiKiI6eyIubWFwX29wZW5faG91cnNfZXhwYW5kIjp7b25jbGljazp7b25jbGljazoiPG9wZW5faG91cnNfb25jbGljaz4ifX0sCidhW2hyZWYqPSJnb29nbGUiXVtocmVmKj0ibWFwcyJdJzp7b25jbGljazp7b25jbGljazoiaGVscDpkaXJlY3Rpb25zIixvbmNsaWNrTGlua05hbWU6ImRjOmhlbHA6ZGlyZWN0aW9ucyJ9fX0saG9tZTp7Ii50cmFkZUluQmFyX2J0biI6e30sIi5zZWFyY2gtYm94LXRhYnMgYnV0dG9uLnNlYXJjaC1ib3gtdGFiIjp7b25jbGljazp7b25jbGljazpmdW5jdGlvbigpe3ZhciBkPSIiO3RyeXtkPXRoaXMuZXZlbnREYXRhLmVsZW1lbnQuYXR0cigiZGF0YS10eXBlIil9Y2F0Y2goYil7ZGVidWdfZDJmdC5sb2coYil9Im5ld2ludiI9PWQmJihkPSJuZXciKTtyZXR1cm4iPHBhZ2VpZD46Y29udGVudDppbnZlbnRvcnkgc2VhcmNoOiIrZH19fSwiLmNhcm91c3NlbCAuYXJyb3dzIC5hcnJvdy1sZWZ0IC5hcnJvdyI6e29uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6c2hvd3Jvb20gaW52ZW50b3J5IHNjcm9sbDpsZWZ0In19LCIuY2Fyb3Vzc2VsIC5hcnJvd3MgLmFycm93LXJpZ2h0IC5hcnJvdyI6e29uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6c2hvd3Jvb20gaW52ZW50b3J5IHNjcm9sbDpyaWdodCJ9fSwKIi5jdGE0X3NwbGl0X2ltYWdlX2J1dHRvbiI6e29uY2xpY2s6e29uY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZD0iIixiPSIiLGg9IiI7dHJ5e2Q9dGhpcy5ldmVudERhdGEuZWxlbWVudC5maW5kKCJzcGFuIikuaHRtbCgpLGI9dGhpcy5ldmVudERhdGEuZWxlbWVudC5hdHRyKCJocmVmIil9Y2F0Y2goYyl7ZGVidWdfZDJmdC5sb2coYyl9L14oY29uZmlnfGJ1aWxkKS9pLnRlc3QoZCkmJihoPSJidWlsZCBhbmQgcHJpY2UiKTsvXmZpbmFuY3xjcmVkaXQvaS50ZXN0KGQrIjo6IitiKSYmKGg9ImFwcGx5IGZvciBmaW5hbmNpbmciKTsvb2ZmW3JlXVtyZV0vaS50ZXN0KGQpJiYoaD0iY3VycmVudCBvZmZlcnMiKTsvKHJlcXVlc3RzfGRlbWFuZGVzKS4qXGJwYXJ0c1xiL2kudGVzdChiKSYmKGg9Im9yZGVyIHBhcnRzIik7LyhyZXF1ZXN0c3xkZW1hbmRlcykuKlxiKGVzc2FpfHRlc3QpXGIvaS50ZXN0KGIpJiYoaD0idGVzdCBkcml2ZSIpO2g9aD9oOmQudG9Mb3dlckNhc2UoKTtyZXR1cm4iaG9tZTpjb250ZW50OiIrCmh9fX0sIiNiYW5uZXJfc2VhcmNoX2Jhcl9mb3JtX2J1dHRvbiI6e29uY2xpY2s6e29uY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZD0kKCIjYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X21ha2UiKS52YWwoKSxiPSQoIiNiYW5uZXJfc2VhcmNoX2Jhcl9zZWxlY3RfbW9kZWwgb3B0aW9uOnNlbGVjdGVkIikudGV4dCgpLGg9JCgiI2Jhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9tb2RlbCIpLnZhbCgpO2I9Yi5yZXBsYWNlKC9cKFxkK1wpL2csIiIpO3JldHVybiJob21lOmNvbnRlbnQ6aW52ZW50b3J5IHNlYXJjaCIrKCJhbGwiIT1kJiYiYWxsIiE9aD8iOiIrZCsiICIrYjoiIikudG9Mb3dlckNhc2UoKX19fX0sIjxzaS10eXBlPjpzaTp2bHM8c2ktc3VmZml4PiI6eyIuY2FyQm94V3JhcHBlciBhIjp7b25jbGljazp7b25jbGljazoiPHNpLXR5cGU+OnNpOnZsczxzaS1zdWZmaXg+IixvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2bHM6Y29udGVudDphY3Rpb248c2ktc3VmZml4PiJ9fSwKIiNmbHRTb3J0SWQgYnV0dG9uIjp7aWdub3JlOiEwfSwiLmRpdlNwYW5GaWx0ZXJzIC5mbHRXcmFwcGVyIGJ1dHRvbiI6e2lnbm9yZTohMH0sIi5idXlfbm93X2NhcmRfY3RhIjp7aXNHbG9iYWw6ITEsb25jbGljazp7b25jbGljazoiPHNpLXR5cGU+OnNpOnZsczpidXkgbm93IixvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2bHM6Y29udGVudDphY3Rpb24ifX19LCI8c2ktdHlwZT46c2k6dmVoaWNsZSBkZXRhaWxzPHNpLXN1ZmZpeD4iOnsiLndpbmRvdy1zdGlja2VyLWFjdGlvbi1ib3ggYSI6e3BhZ2U6e3ZhcmlhbnROYW1lOiJ3aW5kb3ctc3RpY2tlciIsdG9vbDoiZXZlbnQ6d2luZG93IHN0aWNrZXIiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6d2luZG93IHN0aWNrZXIifSxvbmNsaWNrOntvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6dmlldyB3aW5kb3cgc3RpY2tlcjxzaS1zdWZmaXg+IixvbmNsaWNrOiI8c2ktdHlwZT46c2k6dmVoaWNsZSBkZXRhaWxzOnZpZXcgd2luZG93IHN0aWNrZXI8c2ktc3VmZml4PiJ9fSwKIi5zbGlkZXMgLnNsaWRlIGEiOntjb250ZW50QWN0aW9uOiJwaG90byBjbGljayJ9LCIjcG9wdXBTcGVjc1JlcXVlc3QiOntjb250ZW50QWN0aW9uOiJwcmludCJ9LCIjc2hhcmVPbkZhY2Vib29rIjp7Y29udGVudEFjdGlvbjoiZmFjZWJvb2sgbGlrZSJ9LCIjYnV5Tm93T0VNTW9kZWxfbGluayI6e29uY2xpY2s6e29uY2xpY2s6IjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6YnV5IG5vdyIsb25jbGlja0xpbmtOYW1lOiJkYzo8c2ktdHlwZT46c2k6dmxzOmNvbnRlbnQ6YWN0aW9uOjxuYW1lcGxhdGU+In19fSxzaG93cm9vbTp7Ii5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIjp7b25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDp2ZWhpY2xlIGNsaWNrOjxuYW1lcGxhdGU+In19fSwiY29tbWVyY2lhbDpob21lIjp7Ii5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIjp7cGFnZTp7aGllcmFyY2h5OiJjb21tZXJjaWFsOmhvbWUifSxvbmNsaWNrOntvbmNsaWNrOiI8cGFnZWlkPjpjb250ZW50OnZlaGljbGUgY2xpY2s6PG5hbWVwbGF0ZT4ifX0sCiIjY29tbWVyY2lhbGZvcm1fZm9ybSBidXR0b24iOntwYWdlOntoaWVyYXJjaHk6ImNvbW1lcmNpYWw6aG9tZTpjb250YWN0OnRoYW5rIHlvdTo8bmFtZXBsYXRlPiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOmNvbW1lcmNpYWw6aG9tZTpjb250YWN0OnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoiY29tbWVyY2lhbDpjb250YWN0In0sdXNlcjp7bGVhZFR5cGU6ImNvbW1lcmNpYWw6Y29udGFjdCJ9fSwiLmRpdkNhckltYWdlQ29udGFpbmVyIGEiOntwYWdlOntoaWVyYXJjaHk6ImNvbW1lcmNpYWw6aG9tZSJ9LG9uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6dmVoaWNsZSBjbGljazo8bmFtZXBsYXRlPiJ9LHVzZXI6e2xlYWRUeXBlOiIiLHRvb2w6IiIsdG9vbERlc2NyaXB0b3I6IiJ9fSwiLmRpdkNhclBheW1lbnRDb250YWluZXIgYSI6e3BhZ2U6e3ZhcmlhbnROYW1lOiJwYXltZW50LWVzdGltYXRvci1vbmNsaWNrIixoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnBheW1lbnQgZXN0aW1hdG9yOmNvbW1lcmNpYWw6PG5hbWVwbGF0ZT4ifSwKb25jbGljazp7b25jbGljazoidmVoaWNsZSBjbGljazo8bmFtZXBsYXRlPiJ9LHVzZXI6e2xlYWRUeXBlOiJzaG93cm9vbTpwYXltZW50IGVzdGltYXRvciIsdG9vbDoiZXZlbnQ6cGF5bWVudCBlc3RpbWF0b3IiLHRvb2xEZXNjcmlwdG9yOiJzaG93cm9vbTpwYXltZW50IGVzdGltYXRvciJ9fX0scG9wdXA6eyIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIjpmdW5jdGlvbigpe3ZhciBkPXtwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnZhbHVlIHlvdXIgdHJhZGU8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZhbHVlIHlvdXIgdHJhZGU8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZSJ9LHVzZXI6e2xlYWRUeXBlOiI8c2VjdGlvbj46dmFsdWUgeW91ciB0cmFkZSJ9fTt0cnl7L2Jhbm5lcnx0cmFkZWluYmFyLy50ZXN0KHRoaXMubGFzdEV2ZW50LmRhdGEuc2V0dGluZ3MucG9wdXBFdmVudFNvdXJjZSkmJgokLmV4dGVuZCghMCxkLHtwYWdlOntzaXRlU2VjdGlvbjoiZ2xvYmFsIixwYWdlTmFtZToiZGM6Z2xvYmFsOnZhbHVlIHlvdXIgdHJhZGU8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOmdsb2JhbDp2YWx1ZSB5b3VyIHRyYWRlIn19KX1jYXRjaChiKXt9cmV0dXJuIGR9LCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIiOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmdldCBxdW90ZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dnJmcTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxIixzaXRlU2VjdGlvbjoiZ2V0IHF1b3RlIn19LCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciI6ZnVuY3Rpb24oKXtyZXR1cm4vOnNpOnZscy8udGVzdCh0aGlzLnN0YXRpY0RhdGEucGFnZUlkKT97Y29udGVudEFjdGlvbjoicGF5bWVudCBlc3RpbWF0b3IiLApwYWdlOnt2YXJpYW50TmFtZToicGF5bWVudC1lc3RpbWF0b3Itb25jbGljayIsaGllcmFyY2h5OiI8cGF5bWVudC1lc3RpbWF0b3ItaGllcmFyY2h5PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I6Y29udGVudCBhY3Rpb248cGF5bWVudC1lc3RpbWF0b3Itc2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I6Y29udGVudCBhY3Rpb24iLHRvb2w6ImV2ZW50OnBheW1lbnQgZXN0aW1hdG9yIix0b29sRGVzY3JpcHRvcjoidmxzOnBheW1lbnQgZXN0aW1hdG9yIixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiJ9LG9uY2xpY2s6e29uY2xpY2tMaW5rTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbjxwYXltZW50LWVzdGltYXRvci1zaS1zdWZmaXg+IixvbmNsaWNrOiI8cGFnZUlkTm9TdWZmaXg+OnBheW1lbnQgZXN0aW1hdG9yOmVzdGltYXRlIn0sCnVzZXI6e2xlYWRUeXBlOiJ2bHM6cGF5bWVudCBlc3RpbWF0b3IifX06L3ZlaGljbGU6fHZlaGljbGUgZGV0YWlscy8udGVzdCh0aGlzLnN0YXRpY0RhdGEucGFnZUlkKT97cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpwYXltZW50IGVzdGltYXRvcjxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3IiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+Iix2YXJpYW50TmFtZToiZ2xvYmFsLW92ZXJsYXkiLHRvb2w6ImV2ZW50OnBheW1lbnQgZXN0aW1hdG9yIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOnBheW1lbnQgZXN0aW1hdG9yIn0sb25jbGljazp7b25jbGljazoiPHNpdGVTZWN0aW9uPjpzaTp2ZWhpY2xlIGRldGFpbHM6cGF5bWVudCBlc3RpbWF0b3I6ZGlzY292ZXIgb2ZmZXIifSwKdXNlcjp7bGVhZFR5cGU6InZkcDpwYXltZW50IGVzdGltYXRvciJ9fTohMX0sIi5zbnNfcG9wdXAiOntwYWdlOntwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpzY3JhdGNoIG9mZmVyPHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnNjcmF0Y2ggb2ZmZXIiLGhpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6c2NyYXRjaCBvZmZlcjxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiJ9fSwiI3BvcHVwQ29udGFpbmVyX2F2YWlsYWJpbGl0eXVzZWQiOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmNvbmZpcm0gYXZhaWxhYmlsaXR5PHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eSIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4ifX19fSwKUD1mdW5jdGlvbigpe3ZhciBkPXt9O2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBweilyZXR1cm4gZDt0cnl7dmFyIGI9d2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0SHVtYW5GaWx0ZXJTdGF0ZSgpOzE9PWIuZmx0TW9kZWxJZC5sZW5ndGgmJjE9PWIuZmx0TWFrZUlkLmxlbmd0aCYmKGQubWFrZT1iLmZsdE1ha2VJZFswXSxkLm1vZGVsPWIuZmx0TW9kZWxJZFswXSk7MT09Yi5mbHRDYXJvc3NlcmllSWQubGVuZ3RoJiYoZC52ZWhpY2xlQ2F0ZWdvcnk9Yi5mbHRDYXJvc3NlcmllSWRbMF0pfWNhdGNoKGgpe2RlYnVnX2QyZnQubG9nKCJEMkZUIFNlYXJjaCBGaWx0ZXIgRXJyb3IiLGgpfXJldHVybiBkfSxWPXsiI2hvbWVwYWdlLWJhbm5lciAubml2by1pbWFnZUxpbmsiOiJiYW5uZXIgY2xpY2siLCIubmV3Q2FyQ2FyZCBhIjoic2hvd3Jvb20gc2VhcmNoOjxuYW1lcGxhdGU+IiwiLnNsaWRlLWFycm93cyBhIjoicGhvdG8gc2Nyb2xsIiwKIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMiI6InNwZWNpYWwgb2ZmZXIiLCIuc2NoZWR1bGVUZXN0RHJpdmVEZWFsZXIiOiJ0ZXN0IGRyaXZlOmRlYWxlcnNoaXAiLCIuc2NoZWR1bGVUZXN0RHJpdmVIb21lIjoidGVzdCBkcml2ZTpob21lIiwiLnNjaGVkdWxlVGVzdERyaXZlVmlydHVhbCI6InRlc3QgZHJpdmU6dmlydHVhbCIsIiNGaW5hbmNlQWN0aW9uQm94X3BvcHVwIjoiZmluYW5jZSBpdCIsIiNDcmVkaXRTY29yZUJ0biI6ImNyZWRpdCBzY29yZSIsIi5zcGVjcy10b2dnbGUgYSI6IjxzcGVjcy10b2dnbGUtdHlwZT4iLCIjc3R5bGVzLWNvbnRhaW5lciBsaSBhIjoidHJpbSBzZWxlY3Q8dmRwLXRyaW0+IiwiI0J1aWxkQW5kUHJpY2VBY3Rpb25Cb3hMaW5rIjoiYnVpbGQgYW5kIHByaWNlIiwiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8xIjoiZGlzY292ZXIgb2ZmZXIiLCIjY29tcGFyZV90YWJsZSBhIjoidmVoaWNsZSBjb21wYXJlPGNvbXBhcmlzb24tbmFtZXBsYXRlPiIsCiIuX192aWV3X21hcCI6InZpZXcgb24gbWFwIiwiLnBheW1lbnRDYWxjdWxhdG9yVkRQIjoicGF5bWVudCBlc3RpbWF0b3IiLCIuX19wYXltZW50Q2FsY3VsYXRvciI6InBheW1lbnQgZXN0aW1hdG9yIiwidWwudHJpbVRhYnMgbGkiOiJjb21wYXJlOnRyaW0gc2VsZWN0PGNvbXBhcmlzb24tdHJpbT4iLCIjRXZhbEFjdGlvbkJveExpbmsiOiJ2YWx1ZSB5b3VyIHRyYWRlIiwiI0J1aWxkQW5kUHJpY2VBY3Rpb25Cb3hMaW5rIjoiYnVpbGQgYW5kIHByaWNlIiwiI2NvbXBhcmVTZWxlY3QiOiJjb21wYXJlOnRyaW0gc2VsZWN0OjxzZWxlY3RlZC1vcHRpb24tdGV4dD4iLCIjc2VlX29wdGlvbnMgYSI6InNlZSBvcHRpb25zIiwiI0ZpbmFuY2VNdWx0aXN0ZXBBY3Rpb25Cb3hMaW5rIjoiZ2V0IGFwcHJvdmVkIiwiLnByb21vcy1jb250YWluZXIgLnByb21vcyBhIjoib2ZmZXIgY2xpY2s8cHJvbW8tbmFtZT4iLCdbZGF0YS10YWdnaW5nPSJicm9jaHVyZS1kb3dubG9hZCJdJzoiYnJvY2h1cmUgZG93bmxvYWQ6PGJyb2NodXJlTmFtZT4iLAonW2RhdGEtdGFnZ2luZz0iaW5jZW50aXZlcyJdJzoiZXhwbG9yZSBpbmNlbnRpdmVzIiwnW2RhdGEtdGFnZ2luZz0iY2hhcmdpbmciXSc6ImV4cGxvcmUgY2hhcmdpbmciLCdbZGF0YS10YWdnaW5nPSJvd25lcnNoaXAiXSc6Im93bmVyc2hpcCBpbmZvIiwnW2RhdGEtdGFnZ2luZz0ibWFjaGUiXSc6ImV4cGxvcmUgbWFjaCBlIiwnW2RhdGEtdGFnZ2luZz0iZjE1MCJdJzoiZXhwbG9yZSBmMTUwIiwnW2RhdGEtdGFnZ2luZz0ic2NoZWR1bGUtc2VydmljZSJdJzoic2NoZWR1bGUgc2VydmljZSIsJ1tkYXRhLXRhZ2dpbmc9InZpZXctaW52ZW50b3J5Il0nOiJ2aWV3IGludmVudG9yeSIsJ1tkYXRhLXRhZ2dpbmc9ImNoYXJnaW5nLXVwZGF0ZXMiXSc6ImNoYXJnaW5nIHVwZGF0ZXMifSxXPXsiQ29tbWVyY2lhbFJlcXVlc3RfKEZSfEVOKSI6e3BhZ2U6e2hpZXJhcmNoeToiY29tbWVyY2lhbDpob21lOmNyZWRpdCBjaGVjazp0aGFuayB5b3U6PG5hbWVwbGF0ZT4iLHBhZ2VOYW1lOiJkYzpjb21tZXJjaWFsOmhvbWU6Y29udGFjdDp0aGFuayB5b3UiLApwYWdlTmFtZU5vVmVoaWNsZToiZGM6Y29tbWVyY2lhbDpob21lOmNvbnRhY3Q6dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJjb21tZXJjaWFsOmNvbnRhY3QifSx1c2VyOntsZWFkVHlwZToiY29tbWVyY2lhbDpjb250YWN0In19LENyZWRpdE11bHRpc3RlcFJlcXVlc3Q6e3BhZ2U6e3ZhcmlhbnROYW1lOiJnZXQtcHJlLWFwcHJvdmVkLXN1Ym1pdCIsaGllcmFyY2h5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJoaWVyYXJjaHkiKX0scGFnZU5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lIil9LHBhZ2VOYW1lTm9WZWhpY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJwYWdlTmFtZU5vVmVoaWNsZSIpfSx0b29sOiJnZXQgcHJlLWFwcHJvdmVkIiwKdG9vbERlc2NyaXB0b3I6ImdldCBwcmUtYXBwcm92ZWQ6c3VibWl0dGVkIn0sZXZlbnQ6e2FjdGlvbjoiZ2V0IHByZWFwcHJvdmVkfHRvb2wifX0sRmluYW5jZU11bHRpc3RlcEFjdGlvbkJveExpbms6e3BhZ2U6e3ZhcmlhbnROYW1lOiJnZXQtcHJlLWFwcHJvdmVkLXN1Ym1pdCIsaGllcmFyY2h5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJoaWVyYXJjaHkiKX0scGFnZU5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lIil9LHBhZ2VOYW1lTm9WZWhpY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJwYWdlTmFtZU5vVmVoaWNsZSIpfSx0b29sOiJnZXQgcHJlLWFwcHJvdmVkIix0b29sRGVzY3JpcHRvcjoiZ2V0IHByZS1hcHByb3ZlZDpzdWJtaXR0ZWQifSxldmVudDp7YWN0aW9uOiJnZXQgcHJlYXBwcm92ZWR8dG9vbCJ9fSwKUmViYXRlQ291cG9uOmZ1bmN0aW9uKGQpe3ZhciBiPSJ2ZWhpY2xlIGRldGFpbHMiLGg9InZkcCI7JCgiYm9keSIpLmlzKCIjTkVXQ0FSREVUQUlMUyIpJiYoYj1oPSJ2ZWhpY2xlIik7Yj17cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczo8Zm9ybS1sYWJlbD48c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+Ojxmb3JtLWxhYmVsPjp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46PGZvcm0tbGFiZWw+OnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjpiKyI6c2NyYXRjaCBvZmZlciJ9LHVzZXI6e2xlYWRUeXBlOmgrIjpzY3JhdGNoIG9mZmVyIn19O2QuZGF0YS5mb3JtTGFiZWw9KCIiK2VtYWlsSGFuZGxlci5wb3B1cE9mZmVyVHlwZSkucmVwbGFjZSgvKFxTPykoW0EtWl0pL2csZnVuY3Rpb24oYyxhLGUpe2M9YTswPGEubGVuZ3RoJiYKKGMrPSItIik7cmV0dXJuIGMrZS50b0xvd2VyQ2FzZSgpfSk7L3NjcmF0Y2gvaS50ZXN0KGVtYWlsSGFuZGxlci5wb3B1cE9mZmVyVHlwZSkmJihkLmRhdGEuZm9ybUxhYmVsPSJzY3JhdGNoIG9mZmVyIik7L2NvdXBvbnxyZWJhdGUvaS50ZXN0KGVtYWlsSGFuZGxlci5wb3B1cE9mZmVyVHlwZSkmJihkLmRhdGEuZm9ybUxhYmVsPSJ2b3VjaGVyIik7IiI9PWQuZGF0YS5mb3JtTGFiZWwmJihkLmRhdGEuZm9ybUxhYmVsPSJzY3JhdGNoIG9mZmVyIik7cmV0dXJuIGJ9LCJwcmljZXZlaGljbGUobmV3KT8iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVZhbHVlWW91clRyYWRlVGhhbmtZb3UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxQYXJ0c1JlcXVlc3Q6e3BhZ2U6e2hpZXJhcmNoeToic2VydmljZSBhbmQgcGFydHM6b3JkZXIgcGFydHMiLHBhZ2VOYW1lOiJkYzpzZXJ2aWNlOm9yZGVyIHBhcnRzOmNvbnRhY3QgdXM6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpvcmRlciBwYXJ0czpjb250YWN0IHVzOnRoYW5rIHlvdSIsCnRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6Im9yZGVyIHBhcnRzOmNvbnRhY3QiLHNpdGVTZWN0aW9uOiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9LHVzZXI6e2xlYWRUeXBlOiJvcmRlciBwYXJ0czpjb250YWN0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxTZXJ2aWNlUmVxdWVzdDp7cGFnZTp7aGllcmFyY2h5OiJzZXJ2aWNlIGFuZCBwYXJ0czpyZXF1ZXN0IGFwcG9pbnRtZW50IixwYWdlTmFtZToiZGM6c2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50OnRoYW5rIHlvdSIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudDp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6InJlcXVlc3QgYXBwb2ludG1lbnQiLHNpdGVTZWN0aW9uOiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9LHVzZXI6e2xlYWRUeXBlOiJyZXF1ZXN0IGFwcG9pbnRtZW50In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSwKVGlyZXNSZXF1ZXN0OntwYWdlOntoaWVyYXJjaHk6InNlcnZpY2UgYW5kIHRpcmVzOm9yZGVyIHRpcmVzIixwYWdlTmFtZToiZGM6c2VydmljZTpvcmRlciB0aXJlczpjb250YWN0IHVzOnRoYW5rIHlvdSIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnNlcnZpY2U6b3JkZXIgdGlyZXM6Y29udGFjdCB1czp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6Im9yZGVyIHRpcmVzOmNvbnRhY3QiLHNpdGVTZWN0aW9uOiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9LHVzZXI6e2xlYWRUeXBlOiJvcmRlciB0aXJlczpjb250YWN0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxCb2R5U2hvcDp7cGFnZTp7aGllcmFyY2h5OiJzZXJ2aWNlIGFuZCBwYXJ0czpyZXF1ZXN0IGJvZHkgc2hvcCIscGFnZU5hbWU6ImRjOnNlcnZpY2U6cmVxdWVzdCBib2R5IHNob3A6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpyZXF1ZXN0IGJvZHkgc2hvcDp0aGFuayB5b3UiLAp0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJyZXF1ZXN0IGJvZHkgc2hvcCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6InJlcXVlc3QgYm9keSBzaG9wIn0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxDb250YWN0UmVxdWVzdDp7cGFnZTp7cGFnZU5hbWU6ImRjOmFib3V0IHVzOmNvbnRhY3QgdXM6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6YWJvdXQgdXM6Y29udGFjdCB1czp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ImNvbnRhY3QgdXM6Y29udGFjdCJ9LHVzZXI6e2xlYWRUeXBlOiJjb250YWN0IHVzOmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LG1lbnVDb250YWN0VXM6e3BhZ2U6e2hpZXJhcmNoeToiYWJvdXQgdXM6ZXhwcmVzcyByZXF1ZXN0IixwYWdlTmFtZToiZGM6YWJvdXQgdXM6ZXhwcmVzcyByZXF1ZXN0OnRoYW5rIHlvdSIsCnBhZ2VOYW1lTm9WZWhpY2xlOiJkYzphYm91dCB1czpleHByZXNzIHJlcXVlc3Q6dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJleHByZXNzIHJlcXVlc3Q6Y29udGFjdCIsc2l0ZVNlY3Rpb246ImFib3V0IHVzIn0sdXNlcjp7bGVhZFR5cGU6ImV4cHJlc3MgcmVxdWVzdDpjb250YWN0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxDcmVkaXRTY29yZTpmdW5jdGlvbigpe3ZhciBkPSJ2ZWhpY2xlIGRldGFpbHMiLGI9InZkcCI7JCgiYm9keSIpLmlzKCIjTkVXQ0FSREVUQUlMUyIpJiYoZD1iPSJ2ZWhpY2xlIik7cmV0dXJue3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Y3JlZGl0IGNoZWNrPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpjcmVkaXQgY2hlY2s6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNyZWRpdCBjaGVjazp0aGFuayB5b3UiLAp0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOmQrIjpjcmVkaXQiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+In0sdXNlcjp7bGVhZFR5cGU6YisiOmNyZWRpdCJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX19LE1vbnRobHlQYXltZW50czp7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpnZXQgcXVvdGU8c2ktY2F0ZWdvcnk+OjxuYW1lcGxhdGU+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxOnRoYW5rIHlvdSIsdG9vbDoiZXZlbnQ6Z2V0IHF1b3RlIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOmdldCBxdW90ZSIsc2l0ZVNlY3Rpb246ImdldCBxdW90ZSIsdmFyaWFudE5hbWU6InZyZnEtY29tcGxldGUifSx1c2VyOntsZWFkVHlwZToidmRwOnZyZnEifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LApBdmFpbGFiaWxpdHk6ZnVuY3Rpb24oKXt2YXIgZD0idmVoaWNsZSBkZXRhaWxzIixiPSJ2ZHAiOyQoImJvZHkiKS5pcygiI05FV0NBUkRFVEFJTFMiKSYmKGQ9Yj0idmVoaWNsZSIpO3JldHVybntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmNvbmZpcm0gYXZhaWxhYmlsaXR5PHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46Y29uZmlybSBhdmFpbGFiaWxpdHk6dGhhbmsgeW91Iix0b29sOiJldmVudDpjb25maXJtIGF2YWlsYWJpbGl0eSIsdG9vbERlc2NyaXB0b3I6ZCsiOmNvbmZpcm0gYXZhaWxhYmlsaXR5IixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiJ9LHVzZXI6e2xlYWRUeXBlOmIrIjpjb25maXJtIGF2YWlsYWJpbGl0eSJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX19LAoiVGVzdERyaXZlKD86TmV3KT8iOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnRlc3QgZHJpdmU8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzp0ZXN0IGRyaXZlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dGVzdCBkcml2ZTp0aGFuayB5b3UiLHRvb2w6ImV2ZW50OmxlYWQgc3VibWl0dGVkIix0b29sRGVzY3JpcHRvcjoidGVzdCBkcml2ZSIsc2l0ZVNlY3Rpb246InRlc3QgZHJpdmUifSx1c2VyOntsZWFkVHlwZToidGVzdCBkcml2ZSJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sQ29udGFjdFVzUmVxdWVzdDp7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpjb250YWN0PHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6dmVoaWNsZTo8dmRwLWN0YS1idG4tdGl0bGU+OnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dmVoaWNsZTo8dmRwLWN0YS1idG4tdGl0bGU+OnRoYW5rIHlvdSIsCnRvb2w6ImV2ZW50OmxlYWQgc3VibWl0dGVkIix0b29sRGVzY3JpcHRvcjoiPHZkcC1jdGEtYnRuLXRpdGxlPiIsc2l0ZVNlY3Rpb246Ijx2ZHAtY3RhLWJ0bi10aXRsZT4ifSx1c2VyOntsZWFkVHlwZToiPHZkcC1jdGEtYnRuLXRpdGxlPiJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sTXVsdGlGb3JtX1NNUzp7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpnZW5lcmFsIG9mZmVyPHNpLWNhdGVnb3J5Pjo8bmFtZXBsYXRlPiIscGFnZU5hbWU6ImRjOjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6Z2VuZXJhbCBvZmZlcjp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6Z2VuZXJhbCBvZmZlcjp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6InZlaGljbGUgZGV0YWlsczpnZW5lcmFsIG9mZmVyIixzaXRlU2VjdGlvbjoic2VhcmNoIGludmVudG9yeSJ9LAp1c2VyOntsZWFkVHlwZToidmRwOmdlbmVyYWwgb2ZmZXIifX19LEw9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVidWdfZDJmdC5sb2coZCxhcmd1bWVudHMpfX0sWD1mdW5jdGlvbigpe3dpbmRvdy5fc2F0ZWxsaXRlPXdpbmRvdy5fc2F0ZWxsaXRlfHx7fTt3aW5kb3cuX3NhdGVsbGl0ZS50cmFjaz13aW5kb3cuX3NhdGVsbGl0ZS50cmFja3x8ZnVuY3Rpb24oKXt9O3dpbmRvdy5fc2F0ZWxsaXRlLl9tb25pdG9ycz13aW5kb3cuX3NhdGVsbGl0ZS5fbW9uaXRvcnN8fFtdO3dpbmRvdy5fc2F0ZWxsaXRlLl9tb25pdG9ycy5wdXNoKHtydWxlVHJpZ2dlcmVkOkwoInJ1bGUgdHJpZ2dlcmVkIikscnVsZUNvbXBsZXRlZDpMKCJydWxlIGNvbXBsZXRlZCIpLHJ1bGVDb25kaXRpb25GYWlsZWQ6TCgicnVsZSBjb25kaXRpb24gZmFpbGVkIil9KTswPCQoIiNhZG9iZV9sYXVuY2giKS5sZW5ndGg\/Y29uc29sZS5kZWJ1ZygiRDJGVCA6OiBBZG9iZSBMYXVuY2ggYWxyZWFkeSBsb2FkZWQiKToKKCJvYmplY3QiPT09dHlwZW9mIHomJih6PXpbd2luZG93LmRlcGxveW1lbnRUeXBlXSksZnVuY3Rpb24oZCxiLGgpe3ZhciBjPWQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yy50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2MuYXN5bmM9ITA7Yy5pZD1oO2Muc3JjPWI7Yy5zZXRBdHRyaWJ1dGUoImRhdGEtb3QtaWdub3JlIiwiIik7ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGMpfShkb2N1bWVudCx6LCJhZG9iZV9sYXVuY2giKSwvZDJjbWVkaWFcLmNhJC8udGVzdCh3aW5kb3cubG9jYXRpb24uaG9zdCkmJihlbmFibGVEZWJ1Zz1mdW5jdGlvbigpe3RyeXt3aW5kb3cuX3NhdGVsbGl0ZS5zZXREZWJ1ZyghMCl9Y2F0Y2goZCl7cmV0dXJuIGRlYnVnX2QyZnQubG9nKGQpLHNldFRpbWVvdXQoZW5hYmxlRGVidWcsMzAwKX19KSl9LFk9ZnVuY3Rpb24oZCl7dmFyIGI9e307ZC5yZXBsYWNlKC8oKD86Rm9yZHxMaW5jb2xuKXwoPzoyMFswLTldezJ9KSkrLShbXi1dKyktKCg\/OlteLVwuXSspfCg\/OjIwWzAtOV17Mn0pXC5odG1sKS8sCmZ1bmN0aW9uKGgsYyxhLGUpey9eMjBbMC05XXsyfSQvLnRlc3QoYyk\/KGMmJihiLnllYXI9YyksYSYmKGIubWFrZT1hKSxlJiYoYi5tb2RlbD1lLnJlcGxhY2UoL18vZywiICIpLnJlcGxhY2UoL1xiKFtBLVpdKVxzLywiJDEtIikpKTovXjIwWzAtOV17Mn0kLy50ZXN0KGUpJiYoYyYmKGIueWVhcj1lKSxhJiYoYi5tYWtlPWMpLGUmJihiLm1vZGVsPWEpKX0pO3JldHVybiBifSx4PW5ldyBmdW5jdGlvbigpe2Z1bmN0aW9uIGQoYyxhKXtyZXR1cm4gZnVuY3Rpb24oKXtjLmFwcGx5KG51bGwsYSl9fXZhciBiPXRoaXM7JC5leHRlbmQoITAsYix7bGFzdEV2ZW50Om51bGwsc3RhdGljRGF0YTpJLGV2ZW50RGF0YTpudWxsfSk7dmFyIGg9ZnVuY3Rpb24oYyl7dmFyIGE9JC5leHRlbmQoITAse30sdCxiLmV2ZW50RGF0YSxQKCkpO2EucGFnZUlkTm9TdWZmaXg9YS5wYWdlSWQucmVwbGFjZSgvOj8oPChzaS1zdWZmaXh8bmFtZXBsYXRlfCk+fGZpbmFuY2UgZGVwYXJ0bWVudCkkLywiIik7Yz0KYy5yZXBsYWNlKC88KFtePl0rKT4vaWcsZnVuY3Rpb24oZSxsKXt0cnl7c3dpdGNoKGwpe2Nhc2UgInBhZ2VOYW1lIjpyZXR1cm4iZGM6IithLnBhZ2VJZDtjYXNlICJwYWdlSWROb1N1ZmZpeCI6cmV0dXJuIGEucGFnZUlkTm9TdWZmaXg7Y2FzZSAic2VjdGlvbiI6dmFyIGY9YS5wYWdlSWQ7aWYoL15zZXJ2aWNlOi8udGVzdChmKSlyZXR1cm4vdGlyZXMvLnRlc3QoZik\/InNlcnZpY2UgYW5kIHRpcmVzIjoic2VydmljZSBhbmQgcGFydHMiOzA8Zi5pbmRleE9mKCI6IikmJihmPWYuc3BsaXQoIjoiKVswXSk7cmV0dXJuIGY7Y2FzZSAicGFnZUlkIjpjYXNlICJwYWdlaWQiOnJldHVybiBhLnBhZ2VJZDtjYXNlICJja3NWaXNpdElkIjp2YXIgZz1uZXcgRGF0ZSxyPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSxnLmdldE1vbnRoKCksZy5nZXREYXRlKCksMCwwLDApLG49TWF0aC5yb3VuZCgxMDAqTWF0aC5yYW5kb20oKSksaz1nLnRvSVNPU3RyaW5nKCkubWF0Y2goL1xkezJ9KFxkezJ9KS0oXGR7Mn0pLShcZHsyfSkvKSwKcD1uKzFFOSsxMDAqKGcuZ2V0VGltZSgpLXIuZ2V0VGltZSgpKSx2PWsuc2xpY2UoMSw0KS5qb2luKCIiKTtyZXR1cm4gdisiX2RjXyIrcDtjYXNlICJ2aW5SZWFsIjpyZXR1cm4oIiIrYS52aW4pLnRvTG93ZXJDYXNlKCk7Y2FzZSAibW9kZWxZZWFyIjp2YXIgQz1wYXJzZUludChhLnllYXIpO3JldHVybiAwPEM\/QzoiISFVTkRFRiEhIjtjYXNlICJuYW1lcGxhdGUiOnZhciB1PWEubWFrZSx3PWEubW9kZWw7dz0oIiIrYS5tb2RlbCkucmVwbGFjZSgiXyIsIiAiLHcpO3JldHVybiB1JiZ3JiYiYnJhbmQiIT11LnRvTG93ZXJDYXNlKCk\/KHUrIiAiK3cpLnRvTG93ZXJDYXNlKCk6IiEhVU5ERUYhISI7Y2FzZSAib25jbGlja0xpbmtOYW1lIjppZihhLmlzQ2xpY2tUb0NhbGwpcmV0dXJuYGRjOiR7YS5wYWdlSWR9OmNsaWNrLXRvLWNhbGxgO2lmKGEucGFnZUlkLm1hdGNoKC86c2k6dmVoaWNsZSBkZXRhaWxzLykmJiJwYXltZW50IGVzdGltYXRvciI9PT1hLmNvbnRlbnRGbGFnKXJldHVybiJkYzoiKwphLnNpVHlwZSsiOnNpOnZlaGljbGUgZGV0YWlsczpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbjo8bmFtZXBsYXRlPiI7aWYoYS5wYWdlSWQubWF0Y2goL2ZpbmFuY2U6ZmluYW5jZSBkZXBhcnRtZW50LykmJiJnZXQgYXBwcm92ZWQiPT09YS5jb250ZW50RmxhZylyZXR1cm4iZGM6ZmluYW5jZTpmaW5hbmNlIGRlcGFydG1lbnQ6Y29udGVudDphY3Rpb24iO2lmKGEucGFnZUlkLm1hdGNoKC9zcGVjaWFsczpvZmZlcnMvKSYmYS5jb250ZW50RmxhZy5tYXRjaCgvb2ZmZXIgY2xpY2svKSlyZXR1cm4iZGM6c3BlY2lhbHM6b2ZmZXJzOmNvbnRlbnQ6YWN0aW9uIjtpZihhLmhhc093blByb3BlcnR5KCJjb250ZW50RmxhZyIpJiZhLmNvbnRlbnRGbGFnLm1hdGNoKC9icm9jaHVyZSBkb3dubG9hZC8pKXJldHVybmBkYzoke2EucGFnZUlkTm9TdWZmaXh9OmRvd25sb2FkYDtwPSIiO2EucGFnZUlkLm1hdGNoKC86c2k6LykmJihwPSI8c2ktc3VmZml4PiIpO3JldHVybiJkYzoiK2EucGFnZUlkTm9TdWZmaXgrCiI6Y29udGVudDphY3Rpb24iK3A7Y2FzZSAib25jbGljayI6Y29uc29sZS5sb2coIkQyRlQgdHJhY2tQcm9wNSBBIixsLGEucGFnZUlkLGEpO2lmKGEuaXNDbGlja1RvQ2FsbCl7dmFyIG09InNhbGVzIjtzd2l0Y2goYS5kZXB0KXtjYXNlICJVU0VEIjpjYXNlICJORVciOm09InNhbGVzIjticmVhaztjYXNlICJQQVJUUyI6Y2FzZSAiU0VSVklDRSI6bT1hLmRlcHQudG9Mb3dlckNhc2UoKX1yZXR1cm4gYS5wYWdlSWQrIjpjbGljay10by1jYWxsOiIrbX1yZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eSgiY29udGVudEZsYWciKT8obT0iY29udGVudDoiLC9zaTp2bHN8dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKSYmKG09IiIpLC86ZmluYW5jZSBkZXBhcnRtZW50Ly50ZXN0KGEucGFnZUlkKT8iZGM6ZmluYW5jZTogZmluYW5jZSBkZXBhcnRtZW50OmNvbnRlbnQ6Z2V0IGFwcHJvdmVkIjphLnBhZ2VJZC5tYXRjaCgvZXYgKGNoYXJnaW5nfGxpZmVzdHlsZXxvd25lcnNoaXB8dmhwKS8pPwphLmNvbnRlbnRGbGFnLm1hdGNoKC9icm9jaHVyZSBkb3dubG9hZC8pP2EucGFnZUlkKyI6YnJvY2h1cmUgZG93bmxvYWQ6PGJyb2NodXJlTmFtZT4iOmEuY29udGVudEZsYWcubWF0Y2goL2NoYXJnaW5nIHVwZGF0ZXMvKT8iPHByZWZpeD4iK2EucGFnZUlkKyI6Z2V0IHVwZGF0ZXMiOmEucGFnZUlkLm1hdGNoKC9ldiBsaWZlc3R5bGUvKXx8YS5wYWdlSWQubWF0Y2goL2V2IGNoYXJnaW5nLyk\/YS5jb250ZW50RmxhZy5tYXRjaCgvZXhwbG9yZSAoZjE1MHxtYWNoKS8pPyI8cHJlZml4PjpldiBsaWZlc3R5bGU6dGVzdCBkcml2ZSI6YS5wYWdlSWQrIjpjb250ZW50OiIrYS5jb250ZW50RmxhZzphLnBhZ2VJZCsiOmNvbnRlbnQ6cmVhZCBhcnRpY2xlIjphLnBhZ2VJZE5vU3VmZml4KyI6IittK2goYS5jb250ZW50RmxhZykpOmEuaXNHbG9iYWw\/YS5wYWdlSWROb1N1ZmZpeCsiOjxjb250ZW50LWFjdGlvbj4iOiIhIVVOREVGISEiO2Nhc2UgInBhZ2VuYW1lLW5vLXZlaGljbGUiOnZhciB5PQpJLnBhZ2VJZDt5PXkucmVwbGFjZSgvOj88KG5hbWVwbGF0ZXxzaS1zdWZmaXgpPiQvLCIiKTtyZXR1cm4iZGM6IitoKHkpO2Nhc2UgInRvb2wiOnJldHVybiBhLmlzQ2xpY2tUb0NhbGw\/ImV2ZW50OmNsaWNrIHRvIGNhbGwiOiJzcGVjaWFsczpvZmZlcnMiPT1hLnBhZ2VJZD8iZXZlbnQ6aW5jZW50aXZlIHZpZXdzIjoidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnN0ZXAmJjE9PWEuc3RlcD8iZ2V0IHByZS1hcHByb3ZlZCI6IiEhVU5ERUYhISI7Y2FzZSAidG9vbERlc2NyaXB0b3IiOnJldHVybiBhLmlzQ2xpY2tUb0NhbGw\/KG09Imdsb2JhbCIsL3NpOnZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCkmJihtPSJ2ZWhpY2xlIGRldGFpbHMiKSwiY2xpY2sgdG8gY2FsbDoiK20pOiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc3RlcCYmMT09YS5zdGVwPyJnZXQgcHJlLWFwcHJvdmVkOnN0YXJ0ZWQiOiJzcGVjaWFsczpvZmZlcnMiPT1hLnBhZ2VJZD8iaW5jZW50aXZlIHZpZXdzOm9mZmVycyI6CiIhIVVOREVGISEiO2Nhc2UgImhvdXJzLWRlcGFydG1lbnQiOnN3aXRjaCgoIiIrYS5kZXB0KS50b0xvd2VyQ2FzZSgpKXtjYXNlICJ1c2VkIjpjYXNlICJuZXciOnJldHVybiJzYWxlcyI7Y2FzZSAicGFydHMiOmNhc2UgInNlcnZpY2UiOnJldHVybiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9YnJlYWs7Y2FzZSAib2ZmZXItbmFtZSI6cmV0dXJuIGEuaXNPRU1SZWJhdGU\/InJlYmF0ZSI6InVua25vd24iO2Nhc2UgInByb21vLW5hbWUiOm09JChhLmVsZW1lbnQpLmNsb3Nlc3QoIi5wcm9tb3MiKTt2YXIgcT0iIjttLmxlbmd0aCYmKHE9JCgiLnByb21vLXRpdGxlIixtKS50ZXh0KCkpO3JldHVybiIiIT1xPyI6IitxOiIiO2Nhc2UgInNpLWZpbHRlci10eXBlIjpjYXNlICJzaS10eXBlIjpyZXR1cm4gYS5zYWxlc0RlcHQmJiEvc2k6dmxzLy50ZXN0KGEucGFnZUlkKSYmIm90aGVyIiE9YS5zYWxlc0RlcHQ\/YS5zYWxlc0RlcHQ6dC5zaVR5cGU7Y2FzZSAic3RlcC1udW1iZXIiOnZhciBNPWEuc3RlcD8KcGFyc2VJbnQoYS5zdGVwKTowO3JldHVybi9maW5hbmNlLy50ZXN0KGEucGFnZUlkKSYmMT09TT8iMTpjdXN0b21lciBpbmZvIjpNO2Nhc2UgInNpLWZpbHRlci1kZXRhaWwiOnJldHVybiB2PSJmaWx0ZXIiLHA9IiIsInVuZGVmaW5lZCIhPXR5cGVvZiBhLmZpbHRlclR5cGUmJigiU29ydCI9PWEuZmlsdGVyVHlwZT8odj0ic29ydCBieSIscD0oIiIrYS5maWx0ZXJEZXRhaWwpLnJlcGxhY2UoL1xXKy9nLCIgIikpOihwPSgiIithLmZpbHRlclR5cGUpLnJlcGxhY2UoL1xXKy9nLCIgIiksIkNhcmJ1cmFudCI9PXAmJihwPSJmdWVsIikpKSwidW5kZWZpbmVkIiE9cCYmKHA9IjoiK3ApLCh2K3ApLnRvTG93ZXJDYXNlKCk7Y2FzZSAic2ktc29ydC10eXBlIjppZigidW5kZWZpbmVkIj09dHlwZW9mIGEuYnRuVmFsdWUpcmV0dXJuIiI7c3dpdGNoKGEuYnRuVmFsdWUpe2Nhc2UgMTpyZXR1cm4icHJpY2UtYXNjIjtjYXNlIDI6cmV0dXJuInByaWNlLWRlc2MiO2Nhc2UgMzpyZXR1cm4ibWlsZWFnZS1hc2MiOwpjYXNlIDQ6cmV0dXJuIm1pbGVhZ2UtZGVzYyI7Y2FzZSA1OnJldHVybiJ5ZWFyLWFzYyI7Y2FzZSA2OnJldHVybiJ5ZWFyLWRlc2MiO2Nhc2UgNzpyZXR1cm4iYnJhbmQiO2Nhc2UgODpyZXR1cm4iaG91c2UtYnJhbmQiO2Nhc2UgOTpyZXR1cm4iYXJyaXZhbC1hc2MiO2Nhc2UgMTA6cmV0dXJuImFycml2YWwtZGVzYyJ9YnJlYWs7Y2FzZSAidmRwLWN0YS1idG4tdGl0bGUiOnZhciBOPWEuYnV0dG9uVGV4dDtyZXR1cm4gTj9OPU4ucmVwbGFjZSgvW15hLXowLTlccy1dL2lnLCIiKS50cmltKCkucmVwbGFjZSgvXHMrL2csIi0iKS50b0xvd2VyQ2FzZSgpOiIiO2Nhc2UgInNpLXN1ZmZpeCI6cmV0dXJuIHU9YS5tYWtlLHc9YS5tb2RlbCx1JiZ3PyI6IisodSsiICIrdykudG9Mb3dlckNhc2UoKToiIjtjYXNlICJzaS1jYXRlZ29yeSI6dmFyIEQ9YS52ZWhpY2xlQ2F0ZWdvcnk7cmV0dXJuIEQmJiIwIiE9RD8oIjoiK0QpLnRvTG93ZXJDYXNlKCk6IiI7Y2FzZSAic2VhcmNoRGVwdGgiOnJldHVybiBudWxsOwpjYXNlICJwYWdlTG9hZExlYWRUeXBlIjpyZXR1cm4vOnNpOnZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCk\/InNpOnZscyI6IiEhVU5ERUYhISI7Y2FzZSAicGFnZUxvYWRFdmVudCI6cmV0dXJuLzpzaTovLnRlc3QoYS5wYWdlSWQpPyJzZWFyY2ggaW52ZW50b3J5Ijovc3BlY2lhbHMvLnRlc3QoYS5wYWdlSWQpPyJpbmNlbnRpdmUgdmlld3MiOi92eXQvLnRlc3QoYS5wYWdlSWQpPyJ2YWx1ZSB5b3VyIHRyYWRlIjoiISFVTkRFRiEhIjtjYXNlICJzaXRlU2VjdGlvbiI6cmV0dXJuLzpzaTovLnRlc3QoYS5wYWdlSWQpfHwiY29tbWVyY2lhbDpob21lIj09YS5wYWdlSWQ\/InNlYXJjaCBpbnZlbnRvcnkiOi9zZXJ2aWNlLy50ZXN0KGEucGFnZUlkKT8ic2VydmljZSBhbmQgcGFydHMiOi9zcGVjaWFsczpvZmZlcnMvLnRlc3QoYS5wYWdlSWQpPyJzcGVjaWFscyI6L3Z5dC1wYWdlaWQvLnRlc3QoYS5wYWdlSWQpPyJ2YWx1ZSB5b3VyIHRyYWRlIjowPGEucGFnZUlkTm9TdWZmaXguaW5kZXhPZigiOiIpPwphLnBhZ2VJZE5vU3VmZml4LnNwbGl0KCI6IilbMF06YS5wYWdlSWROb1N1ZmZpeDtjYXNlICJoaWVyYXJjaHkiOi86c2k6dmxzLy50ZXN0KGEucGFnZUlkKSYmMT09YS5pc0dsb2JhbCYmJChhLmVsZW1lbnRbMF0pLmhhc0NsYXNzKCJkaXZDYXJQYXltZW50Q2FsY3VsYXRvciIpJiYoSj1hLmVsZW1lbnQpO2lmKC86c2k6Ly50ZXN0KGEucGFnZUlkKSlpZigwPCQoIiNmbHRDYXJvc3NlcmllSWQgLmZsdEZpbHRlciAuZGl2QWxsV3JhcHBlciB1bC5kaXZCdXR0b25Cb3hlcyA+IGxpLnNlbGVjdGVkIikubGVuZ3RoKXE9InNob3BwaW5nIHRvb2xzOnNlYXJjaCBpbnZlbnRvcnktdmxzPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IjtlbHNlIHJldHVybiJzaG9wcGluZyB0b29sczpzZWFyY2ggaW52ZW50b3J5LXZscyI7aWYoInZlaGljbGUiPT1hLnBhZ2VJZE5vU3VmZml4KXJldHVybiJ2ZWhpY2xlOjxtb2RlbFllYXI+PHNpLWNhdGVnb3J5Pjo8bmFtZXBsYXRlPiI7L2NvbW1lcmNpYWwvLnRlc3QoYS5wYWdlSWQpJiYKKHE9ImNvbW1lcmNpYWw6aG9tZSIpO2lmKC9zcGVjaWFsczpvZmZlcnMvLnRlc3QoYS5wYWdlSWQpKXJldHVybiJzcGVjaWFscyI7aWYoL3Rlc3QgZHJpdmUvLnRlc3QoYS5wYWdlSWQpKXJldHVybiJzaG9wcGluZyB0b29sczo8cGFnZUlkTm9TdWZmaXg+IjtpZigvXmZpbmFuY2U6Ly50ZXN0KGEucGFnZUlkKSlyZXR1cm4gYS5wYWdlSWROb1N1ZmZpeDtpZigvXmN1c3RvbTovLnRlc3QoYS5wYWdlSWQpKXJldHVybiJjdXN0b20iO209L15zZXJ2aWNlOi87cmV0dXJuIG0udGVzdChhLnBhZ2VJZCk\/YS5wYWdlSWQucmVwbGFjZShtLCI8c2VjdGlvbj46Iik6cT9xOmEucGFnZUlkO2Nhc2UgInBheW1lbnQtZXN0aW1hdG9yLWhpZXJhcmNoeSI6dmFyIEU9JChKWzBdKTtEPUUuYXR0cigiZGF0YS1ib2R5VHlwZSIpO3U9RS5hdHRyKCJkYXRhLW1ha2UiKTt3PUUuYXR0cigiZGF0YS1tb2RlbCIpO3ZhciBGPSJzaG9wcGluZyB0b29sczpwYXltZW50IGVzdGltYXRvciI7RCYmKEYrPSI6IitEKTsKdSYmKEYrPSI6Iit1KyIgIit3KTtyZXR1cm4gRi50b0xvd2VyQ2FzZSgpO2Nhc2UgInBheW1lbnQtZXN0aW1hdG9yLXNpLXN1ZmZpeCI6cmV0dXJuIEU9JChKWzBdKSx1PUUuYXR0cigiZGF0YS1tYWtlIiksdz1FLmF0dHIoImRhdGEtbW9kZWwiKSxGPSIiLHUmJihGKz0iOiIrdSsiICIrdyksRi50b0xvd2VyQ2FzZSgpO2Nhc2UgInJhZFVJVmVyc2lvbiI6bT0icGMiO2NvbnN0IEg9ZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDs3Njg+SD9tPSJtb2JpbGUiOjk5Mj5IJiYobT0idGFibGV0Iik7cmV0dXJuInVpOnJhZDoiK207Y2FzZSAidmFyaWFudE5hbWUiOnN3aXRjaChhLnBhZ2VJZCl7Y2FzZSAiaG9tZSI6cmV0dXJuImhvbWUtbG9hZCJ9cmV0dXJuL3NpOnZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCk\/InNpLWRldGFpbHMtbG9hZCI6L3NpOnZscy8udGVzdChhLnBhZ2VJZCk\/InNpLXJlc3VsdHMtbG9hZCI6L3NwZWNpYWxzOm9mZmVycy8udGVzdChhLnBhZ2VJZCk\/ImluY2VudGl2ZS12aWV3cyI6CiJnbG9iYWwtbG9hZCI7Y2FzZSAiZ2V0LXByZS1hcHByb3ZlZC12YXJpYW50TmFtZSI6cmV0dXJuL2ZpbmFuY2U6Ly50ZXN0KGEucGFnZUlkKSYmMT09YS5zdGVwPyJnZXQtcHJlLWFwcHJvdmVkLWxvYWQiOiJnbG9iYWwtb3ZlcmxheSI7Y2FzZSAiY29udGVudC1hY3Rpb24iOnJldHVybiBhLmNvbnRlbnRBY3Rpb24\/YS5jb250ZW50QWN0aW9uOiIiO2Nhc2UgImN1c3RvbS10aXRsZSI6dmFyIFE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKC9cLyhbXi9dKylcLmh0bWwkLyk7cmV0dXJuIFFbMV0\/UVsxXToiY3VzdG9tIjtjYXNlICJzcGVjcy10b2dnbGUtdHlwZSI6cmV0dXJuIGEuc3BlY3NUeXBlfHwiIjtjYXNlICJ2YWx1ZS10cmFkZS1wcmVmaXgiOnJldHVybi92ZWhpY2xlIGRldGFpbHMvLnRlc3QoYS5wYWdlSWQpPyJ2ZHAiOi9edmVoaWNsZS8udGVzdChhLnBhZ2VJZCk\/InZlaGljbGUiOiJnbG9iYWwiO2Nhc2UgImZvcm0tbGFiZWwiOnJldHVybiBkZWJ1Z19kMmZ0LmxvZyhhKSwKYS5mb3JtTGFiZWw7Y2FzZSAiZXhpdC10eXBlIjpyZXR1cm4vZmluYW5jZS8udGVzdChhLmhyZWYpPyJkZDpmaW5hbmNlIjovKGNvbmZpZ3VyZXxidWlsZCkvLnRlc3QoYS5ocmVmKT8iZGQ6Y29uZmlndXJlIjovZm9yZGFjY2Vzcy8udGVzdChhLmhyZWYpPyJkZDpwYXJ0cyI6YS5wYWdlSWQubWF0Y2goL2V2IChjaGFyZ2luZ3xsaWZlc3R5bGV8b3duZXJzaGlwfHZocCkvKT8vYWZmb3JkYWJpbGl0eS8udGVzdChhLmhyZWYpPyJmdjpscDpmdWVsIGVmZmljaWVudDp0ZWNobm9sb2dpZXM6YWZmb3JkYWJpbGl0eSI6L2NoYXJnaW5nLy50ZXN0KGEuaHJlZik\/ImZ2OmxwOmZ1ZWwgZWZmaWNpZW50OnRlY2hub2xvZ2llczpob21lIGNoYXJnaW5nIjoiZXhpdCI6ImRkOiIrYS5ocmVmO2Nhc2UgImhvbWVwYWdlLWJhbm5lci1uYW1lcGxhdGUiOnZhciBBPWEuZWxlbWVudC5hdHRyKCJocmVmIik7cmV0dXJuIiIhPUEmJnZvaWQgMCE9PUE\/KEE9QS5yZXBsYWNlKCIvIiwiIiksQT1BLnJlcGxhY2UoIi1lbi5odG1sIiwKIiIpLEE9QS5yZXBsYWNlKCItZnIuaHRtbCIsIiIpLEE9QS5yZXBsYWNlKCItIiwiICIpLCI6IitBKToiIjtjYXNlICJjb21wYXJpc29uLW5hbWVwbGF0ZSI6cmV0dXJuIGEuY29tcGFyZUNhcj8oIjoiK2EuY29tcGFyZUNhcikudG9Mb3dlckNhc2UoKTphLmVsZW1lbnQ\/KCI6IithLmVsZW1lbnQudGV4dCgpKS50b0xvd2VyQ2FzZSgpOiIiO2Nhc2UgImNvbXBhcmlzb24tdHJpbSI6cmV0dXJuIG09IiIsMDwkKCIudHJpbS1sYWJlbCIsYS5lbGVtZW50KS5sZW5ndGgmJihtPSQoIi50cmltLWxhYmVsIixhLmVsZW1lbnQpLmh0bWwoKS50b0xvd2VyQ2FzZSgpKSwiOiIrbTtjYXNlICJzZWxlY3RlZC1vcHRpb24tdmFsdWUiOnJldHVybiAwPGEuZWxlbWVudC5sZW5ndGgmJmEuZWxlbWVudC5pcygic2VsZWN0Iik\/YS5lbGVtZW50LnZhbCgpOiIiO2Nhc2UgInNlbGVjdGVkLW9wdGlvbi10ZXh0IjppZigwPGEuZWxlbWVudC5sZW5ndGgmJmEuZWxlbWVudC5pcygic2VsZWN0Iikpe3ZhciBSPQphLmVsZW1lbnQuZ2V0KDApO3JldHVybiAkKFIub3B0aW9uc1tSLnNlbGVjdGVkSW5kZXhdKS50ZXh0KCkudG9Mb3dlckNhc2UoKX1yZXR1cm4iIjtjYXNlICJ2ZHAtdHJpbSI6cmV0dXJuIGEuZWxlbWVudD8oIjoiK2EuZWxlbWVudC50ZXh0KCkpLnRvTG93ZXJDYXNlKCk6InVua25vd24gdHJpbSI7Y2FzZSAib3Blbl9ob3Vyc19vbmNsaWNrIjpyZXR1cm4iYWJvdXQgdXM6Y29udGFjdCB1cyI9PWEucGFnZUlkJiYwPCQoYS5lbGVtZW50KS5wYXJlbnRzKCIubWFpbl9ib3giKS5sZW5ndGg\/YS5wYWdlSWQrIjpjb250ZW50OmFjY29yZGlvbiBleHBhbmQiOiI8cGFnZWlkPjpjb250ZW50Ojxob3Vycy1kZXBhcnRtZW50PiBob3VycyI7Y2FzZSAidnl0LXBhZ2VpZCI6cmV0dXJuIHA9InZhbHVlIHlvdXIgdHJhZGUiLHY9IiIsZDJjbWVkaWEucGFnZURlcGFydG1lbnQoKSxkMmNtZWRpYS51cmwucGFyc2UoKSx2K3A7Y2FzZSAidmVoaWNsZVRyaW0iOmNhc2UgInZlaGljbGVDb2xvciI6Y2FzZSAidmVoaWNsZVRhbnNtaXNzaW9uIjpjYXNlICJ2ZWhpY2xlUHJpY2UiOnJldHVybiJ1bmRlZmluZWQiIT09CnR5cGVvZiBhW2xdJiYwPGFbbF0ubGVuZ3RoP2FbbF0udG9Mb3dlckNhc2UoKToiISFVTkRFRiEhIjtjYXNlICJicm9jaHVyZU5hbWUiOnJldHVybiBhLmhyZWYucmVwbGFjZSgvXi4qW1xcL10vLCIiKS5yZXBsYWNlKC9cLnBkZiQvLCIiKX19Y2F0Y2goSCl7ZGVidWdfZDJmdC5sb2coIlJlcGxhY2VyRXJyb3IiLEgpfXJldHVybiIhIVVOREVGOjoiK2wrIiEhIn0pO3JldHVybi88W14+XSs+Ly50ZXN0KGMpP2goYyk6Y307Yi5hc3luY2lmeT1mdW5jdGlvbihjKXtzZXRUaW1lb3V0KGMsMCl9O2IuaGl0PWZ1bmN0aW9uKGMpe2RlYnVnX2QyZnQubG9nKCJkMmMgdHJhY2siLGMpOyJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93Ll9zYXRlbGxpdGUudHJhY2smJndpbmRvdy5fc2F0ZWxsaXRlLnRyYWNrKGMpfTtiLmNsZWFyVmFycz1mdW5jdGlvbigpe2RlYnVnX2QyZnQubG9nKCJDbGVhciBfc2F0ZWxsaXRlIHZhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpO3RyeXtzLmNsZWFyVmFycygpfWNhdGNoKGMpe319OwpiLnNldERpZ2l0YWxEYXRhPWZ1bmN0aW9uKGMpe2Z1bmN0aW9uIGEoZyxyKXtyZXR1cm4gZnVuY3Rpb24obixrKXsiZnVuY3Rpb24iPT10eXBlb2YgayYmKGs9ay5jYWxsKGIpKTtnW25dPWUobixyLGspOy9eISFVTkRFRi8udGVzdChnW25dKSYmZGVsZXRlIGdbbl07bnVsbD09Z1tuXSYmZGVsZXRlIGdbbl07L3N0ZXAtbnVtYmVyLy50ZXN0KGspJiYoRz0hMCl9fWZ1bmN0aW9uIGUoZyxyLG4pe3JldHVybiBudWxsIT1uJiYwPG4ubGVuZ3RoPyJzdHJpbmciIT10eXBlb2Ygbj8oZGVidWdfZDJmdC5sb2cobiksbik6aChuKToidW5kZWZpbmVkIj09dHlwZW9mIGZbZ10\/bnVsbDoiZnVuY3Rpb24iPT09dHlwZW9mIGZbZ10\/KGc9ZltnXS5jYWxsKGIsbiksInN0cmluZyIhPXR5cGVvZiBnP2c6aChnKSk6InN0cmluZyIhPXR5cGVvZiBmW2ddP2ZbZ106aChmW2ddKX1iLmNsZWFyVmFycygpO3ZhciBsPXt9O2N8fChjPXt9KTskLmV4dGVuZCghMCxsLFUsYyk7dmFyIGY9e307JC5leHRlbmQoITAsCmYsYi5zdGF0aWNEYXRhKTtiLnBhcnNlRXZlbnREYXRhKGwpOyQuZWFjaChsLGZ1bmN0aW9uKCl7JC5lYWNoKHRoaXMsYSh0aGlzKSl9KTshMD09PUcmJihLPXBhcnNlRmxvYXQoSykrMSxHPSExKTt3aW5kb3cuZGlnaXRhbGRhdGE9bDtkZWJ1Z19kMmZ0LmxvZygiRDJGVCBGaW5hbCBkaWdpdGFsIGRhdGEiLHdpbmRvdy5kaWdpdGFsZGF0YSk7TygpfTtiLmxvY2tlZD0hMTtiLnBsckZhY3Rvcnk9ZnVuY3Rpb24oYyxhKXt2YXIgZT17ZGF0YTpjLHR5cGU6YSxoYW5kbGVyOmZ1bmN0aW9uKGwsZil7Zj1mP2Y6e307dmFyIGc9JCh0aGlzKTtiLmFzeW5jaWZ5KGZ1bmN0aW9uKCl7aWYoYi5sb2NrZWQpcmV0dXJuIHNldFRpbWVvdXQoZChlLmhhbmRsZXIsYXJndW1lbnRzKSw1MDApO2IubGFzdEV2ZW50PSQuZXh0ZW5kKHt9LGwpO2IubGFzdEV2ZW50LmRhdGE9ZjtiLmxvY2tlZD0hMDt2YXIgcj17cGFnZTp7fSx2ZWhpY2xlOnt9LGV2ZW50Ont9fTskLmV4dGVuZCghMCxyLGUuZGF0YSk7dmFyIG49CiQuZXh0ZW5kKCEwLHt9LEJbIioiXSxCLnBvcHVwLEJbdC5wYWdlSWRdKTtpZigicGFnZWxvYWQiPT1lLnR5cGUpci5ldmVudC5hY3Rpb249IjxwYWdlTG9hZEV2ZW50PiI7ZWxzZXt2YXIgaz0hMTskLmVhY2gobixmdW5jdGlvbihwLHYpe2cuaXMocCkmJihrPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB2JiYodj12LmNhbGwoYiksMD09diYmKGs9ITEpKSxrJiYocj0kLmV4dGVuZCghMCx7fSxyLHYpKSl9KTtpZigicG9wdXAiPT1lLnR5cGUmJiExPT09ayl7Yi5jbGVhclZhcnMoKTtiLmxvY2tlZD0hMTtyZXR1cm59fVgoKTtiLnNldERpZ2l0YWxEYXRhKHIpOyJwYWdlbG9hZCIhPWUudHlwZSYmd2luZG93LmRpZ2l0YWxkYXRhLnBhZ2UudmFyaWFudE5hbWUmJmIuaGl0KHdpbmRvdy5kaWdpdGFsZGF0YS5wYWdlLnZhcmlhbnROYW1lKTtiLmNsZWFyVmFycygpO2IubG9ja2VkPSExfSl9fTtyZXR1cm4gZS5oYW5kbGVyfTtiLmRjckZhY3Rvcnk9ZnVuY3Rpb24oYyxhKXt2YXIgZT17ZGF0YTpjLApoYW5kbGVyOmZ1bmN0aW9uKGwsZil7Zj1mP2Y6e307dmFyIGc9JCh0aGlzKSxyPWZ1bmN0aW9uKCl7aWYoYi5sb2NrZWQpcmV0dXJuIHNldFRpbWVvdXQoZChlLmhhbmRsZXIsYXJndW1lbnRzKSw1MDApO2IubG9ja2VkPSEwO3ZhciBuPSExLGs9ZS5kYXRhLHA9bnVsbCE9ay52YXJpYW50TmFtZT9rLnZhcmlhbnROYW1lOiJnbG9iYWwtb25jbGljayIsdj0kLmV4dGVuZCghMCx7fSxCWyIqIl0sQlt0LnBhZ2VJZF0pOyQuZWFjaCh2LGZ1bmN0aW9uKHkscSl7bj1nLmlzKHkpPyEwOm59KTtpZihuJiYxPT1rLmlzR2xvYmFsKXJldHVybiBiLmxvY2tlZD0hMSwhMDtrLmlzT0VNUmViYXRlJiYoay5jb250ZW50QWN0aW9uPSEwLGYuY29udGVudEZsYWc9Im9mZmVyIGNsaWNrOjxvZmZlci1uYW1lPiIsZi5pc09FTVJlYmF0ZT0hMCk7aWYoay5pc0dsb2JhbHx8ay5jb250ZW50QWN0aW9uKWYuY29udGVudEFjdGlvbj1rLmNvbnRlbnRBY3Rpb24sZi5pc0dsb2JhbD0hMCwkLmVhY2goVixmdW5jdGlvbih5LApxKXtnLmlzKHkpJiYoZi5jb250ZW50RmxhZz1xLGYuY29udGVudEFjdGlvbj0hMCl9KTtiLmxhc3RFdmVudD0kLmV4dGVuZCh7fSxsKTtiLmxhc3RFdmVudC5kYXRhPWY7Yi5sYXN0RXZlbnQudGFyZ2V0RWxlbWVudD1nO2IubGFzdEV2ZW50LmNvbnRlbnRGbGFnPWsuY29udGVudEZsYWc7ay5pc0NsaWNrVG9DYWxsPWIuaXNDbGlja1RvQ2FsbCgpO2suaXNDbGlja1RvQ2FsbCYmKGIubGFzdEV2ZW50LmRhdGEuaXNDbGlja1RvQ2FsbD1rLmlzQ2xpY2tUb0NhbGwscD0iY2xpY2stdG8tY2FsbCIpO3ZhciBDPXtvbmNsaWNrOntvbmNsaWNrTGlua05hbWU6IjxvbmNsaWNrTGlua05hbWU+IixvbmNsaWNrOiI8b25jbGljaz4ifSxwYWdlOnt2YXJpYW50TmFtZTpwfX07aWYoay5pc0V4aXQpcmV0dXJuIGIubG9ja2VkPSExLCEwO3ZhciB1PSExO2suaXNTZWFyY2hGaWx0ZXImJiQuZXh0ZW5kKCEwLEMse29uY2xpY2s6e29uY2xpY2s6IjxzaS1maWx0ZXItdHlwZT46c2k6dmxzOjxzaS1maWx0ZXItZGV0YWlsPiIsCm9uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZsczpjb250ZW50OmFjdGlvbjxzaS1zdWZmaXg+In19KTtpZihrLmlzRm9ybVN1Ym1pdCl7dmFyIHc9ITEsbT17dXNlcjp7Y2tzVmlzaXRJZDoiPGNrc1Zpc2l0SWQ+In0sb25jbGljazp7b25jbGlja0xpbmtOYW1lOm51bGwsb25jbGljazpudWxsfSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZCJ9fTskLmVhY2goVyxmdW5jdGlvbih5LHEpe3RyeXsobmV3IFJlZ0V4cCh5LCJpIikpLnRlc3QoZi5tYWlsSUQpJiYodz0hMCwiZnVuY3Rpb24iPT10eXBlb2YgcT8kLmV4dGVuZCghMCxtLHEuY2FsbChiLGIubGFzdEV2ZW50LGssZixnKSk6JC5leHRlbmQoITAsbSxxKSl9Y2F0Y2goTSl7ZGVidWdfZDJmdC5sb2coIkludmFsaWQgcnVsZSAiK3kpfX0pOyQuZXh0ZW5kKCEwLEMsbSk7dT0hdztLPTA7Rz0hMX0kLmVhY2godixmdW5jdGlvbih5LHEpe2cuaXMoeSk\/KHEucGFnZSYmcS5wYWdlLnZhcmlhbnROYW1lJiYocD1xLnBhZ2UudmFyaWFudE5hbWUpLApxLmlnbm9yZSYmKHU9ITApLEM9JC5leHRlbmQoITAse30sQyxxKSk6Ii5idXlfbm93X2NhcmRfY3RhIj09eSYmKGYuY29udGVudEFjdGlvbj0iYnV5IG5vdyIpfSk7aWYodSlyZXR1cm4gYi5sb2NrZWQ9ITEsITA7Yi5zZXREaWdpdGFsRGF0YShDKTtpZihrLmlzR2xvYmFsJiYhay5pc0NsaWNrVG9DYWxsJiYhZi5jb250ZW50QWN0aW9uKXJldHVybiBiLmxvY2tlZD0hMSwhMDtiLmhpdCh3aW5kb3cuZGlnaXRhbGRhdGEucGFnZS52YXJpYW50TmFtZSk7Yi5sb2NrZWQ9ITE7cmV0dXJuITB9O2E\/Yi5hc3luY2lmeShyKTpyKCl9fTtyZXR1cm4gZS5oYW5kbGVyfTtiLmV4aXRGYWN0b3J5PWZ1bmN0aW9uKGMpe3ZhciBhPXtkYXRhOmMsaGFuZGxlcjpmdW5jdGlvbihlLGwpe3ZhciBmPSQodGhpcyk7bD17fTt2YXIgZz1hLmRhdGEscj1yP3I6e307Yi5sYXN0RXZlbnQ9ZTtiLmxhc3RFdmVudC5kYXRhPXI7Yi5sYXN0RXZlbnQudGFyZ2V0RWxlbWVudD1mO2IubGFzdEV2ZW50LmNvbnRlbnRGbGFnPQpnLmNvbnRlbnRGbGFnO2U9Zi5hdHRyKCJocmVmIik7cj0vaHR0cCg\/OnM\/KTpcL1wvW14vXSpmb3JkKD86YWNjZXNzKT9cLig\/OmNhfGNvbSkvO2UmJnIudGVzdChlKSYmKGIubGFzdEV2ZW50LmRhdGEuaHJlZj1lLGw9JC5leHRlbmQoITAse30sbCx7cGFnZTp7dmFyaWFudE5hbWU6InJlZmVycmFsLWV4aXQifSxvbmNsaWNrOntvbmNsaWNrOiJyZWZlcnJhbDo8ZXhpdC10eXBlPiIsb25jbGlja0xpbmtOYW1lOiJyZWZlcnJhbDpleGl0In0sdmVoaWNsZTp7bW9kZWxZZWFyOiI8bW9kZWxZZWFyPiIsbmFtZXBsYXRlOiI8bmFtZXBsYXRlPiJ9LHVzZXI6e2Nrc1Zpc2l0SWQ6Ijxja3NWaXNpdElkPiJ9LGV2ZW50OnthY3Rpb246ImJyYW5kIHJlZmVycmFsIn19KSxiLnNldERpZ2l0YWxEYXRhKGwpLGIuaGl0KHdpbmRvdy5kaWdpdGFsZGF0YS5wYWdlLnZhcmlhbnROYW1lKSl9fTtyZXR1cm4gYS5oYW5kbGVyfTtiLmlzQ2xpY2tUb0NhbGw9ZnVuY3Rpb24oKXt2YXIgYz0iIitiLmxhc3RFdmVudC50YXJnZXRFbGVtZW50LmF0dHIoImhyZWYiKTsKcmV0dXJuL3RlbDovLnRlc3QoYyk\/ITA6ITF9O2IucGFyc2VFdmVudERhdGE9ZnVuY3Rpb24oYyl7Yz1iLmxhc3RFdmVudC50YXJnZXRFbGVtZW50O2IuZXZlbnREYXRhPXt9O2lmKCFiLmxhc3RFdmVudClyZXR1cm4hMTtpZihudWxsIT1jKXtiLmV2ZW50RGF0YS5lbGVtZW50PWM7dmFyIGE9Yy5kYXRhKCk7YSYmKGEuYm9keXR5cGUmJihhLmJvZHlUeXBlfHwoYS5ib2R5VHlwZT1hLmJvZHl0eXBlKSxhLnZlaGljbGVDYXRlZ29yeXx8KGEudmVoaWNsZUNhdGVnb3J5PWEuYm9keXR5cGUpLGRlbGV0ZSBhLmJvZHl0eXBlKSwkLmV4dGVuZCghMCxiLmV2ZW50RGF0YSxhKSk7YT0iIitjLmF0dHIoImhyZWYiKTtiLmV2ZW50RGF0YS5ocmVmPWE7JC5leHRlbmQoITAsYi5ldmVudERhdGEsWShhKSk7JHA9Yy5wYXJlbnRzKCIuZmx0Qm94Iik7MDwkcC5sZW5ndGgmJihiLmV2ZW50RGF0YS5maWx0ZXJUeXBlPWIucmVzb2x2ZUZpbHRlclR5cGUoJHBbMF0pKX0kLmV4dGVuZCghMCxiLmV2ZW50RGF0YSwKUCgpKTtiLmxhc3RFdmVudC5kYXRhJiYoJC5leHRlbmQoITAsYi5ldmVudERhdGEsYi5sYXN0RXZlbnQuZGF0YSksInVuZGVmaW5lZCIhPXR5cGVvZiBiLmV2ZW50RGF0YS5ib2R5VHlwZSYmKGM9IiIrYi5ldmVudERhdGEuYm9keVR5cGUsL15CT0RZVFlQRV8vLnRlc3QoYykmJihiLmV2ZW50RGF0YS52ZWhpY2xlQ2F0ZWdvcnk9Yy5zdWJzdHJpbmcoOSkudG9Mb3dlckNhc2UoKSwidmFuIj09Yi5ldmVudERhdGEudmVoaWNsZUNhdGVnb3J5JiYoYi5ldmVudERhdGEudmVoaWNsZUNhdGVnb3J5PSJtaW5pdmFuIikpKSk7Yi5sYXN0RXZlbnQ9ITF9O2IucmVzb2x2ZUZpbHRlclR5cGU9ZnVuY3Rpb24oYyl7c3dpdGNoKCQoYykucHJvcCgiaWQiKSl7Y2FzZSAiZmx0VGV4dFNlYXJjaElkIjpyZXR1cm4ic2VhcmNoIjtjYXNlICJmbHRDYXRlZ29yaWVJZCI6cmV0dXJuImNhdGVnb3J5IjtjYXNlICJmbHRDZXJ0aWZpZWRJZCI6cmV0dXJuImNlcnRpZmllZCI7Y2FzZSAiZmx0Q2Fyb3NzZXJpZUlkIjpyZXR1cm4iYm9keSB0eXBlIjsKY2FzZSAiZmx0Q2FyYnVyYW50SWQiOnJldHVybiJmdWVsIjtjYXNlICJmbHRQcmljZUlkIjpyZXR1cm4icHJpY2UiO2Nhc2UgImZsdE1ha2VJZCI6cmV0dXJuIm1ha2UiO2Nhc2UgImZsdE1vZGVsSWQiOnJldHVybiJtb2RlbCI7Y2FzZSAiZmx0VHJpbXNJZCI6cmV0dXJuInRyaW0iO2Nhc2UgImZsdFllYXJJZCI6cmV0dXJuInllYXIiO2Nhc2UgImZsdEttSWQiOnJldHVybiJtaWxlYWdlIjtjYXNlICJmbHRDb2xvcklkIjpyZXR1cm4iY29sb3IiO2Nhc2UgImZsdFRyYW5zbWlzc2lvbklkIjpyZXR1cm4idHJhbnNtaXNzaW9uIjtjYXNlICJmbHRPcHRpb25JZCI6cmV0dXJuIm9wdGlvbnMiO2Nhc2UgImZsdEFycml2YWxzSWQiOnJldHVybiJ0aW1lIn1yZXR1cm4ib3RoZXIifTtiLnJlc29sdmVWYWx1ZVlvdXJUcmFkZVRoYW5rWW91PWZ1bmN0aW9uKGMsYSxlLGwpe2E9ITE7dmFyIGY9bD0iZ2xvYmFsIjtjPXRoaXMuc3RhdGljRGF0YS5wYWdlSWQ7dmFyIGc9ITE7ZS5wb3B1cERpdiYmCihlPSQoIiMiK2UucG9wdXBEaXYpLDA8ZS5sZW5ndGgmJmUuaXMoIi5yZXZlYWwtbW9kYWwiKSYmKGc9ZSkpO2cmJihlPWcucG9wdXBpemUoKS5zZXR0aW5ncy5wb3B1cEV2ZW50U291cmNlLGE9L2Jhbm5lcnx0cmFkZWluYmFyLy50ZXN0KGUpKTthfHwoLzp2ZWhpY2xlIGRldGFpbHMvLnRlc3QoYyk\/KGw9InZlaGljbGUgZGV0YWlscyIsZj0idmRwIik6Zj1sPSJ2ZWhpY2xlIik7ZT17cGFnZTp7c2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4iLGhpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dmFsdWUgeW91ciB0cmFkZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UiLHZhcmlhbnROYW1lOiJ2YWx1ZS15b3VyLXRyYWRlLXN1Ym1pdCIsdG9vbDoiZXZlbnQ6dmFsdWUgeW91ciB0cmFkZSIsCnRvb2xEZXNjcmlwdG9yOmwrIjp2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6ZisiOnZhbHVlIHlvdXIgdHJhZGUifX07IjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI9PWMmJiQuZXh0ZW5kKCEwLGUse3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dmFsdWUgeW91ciB0cmFkZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UiLHRvb2w6ImV2ZW50OnZhbHVlIHlvdXIgdHJhZGUiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6dmFsdWUgeW91ciB0cmFkZSJ9LHVzZXI6e2xlYWRUeXBlOiJ2ZHA6dmFsdWUgeW91ciB0cmFkZSJ9fSk7Ijx2eXQtcGFnZWlkPiI9PWMmJiQuZXh0ZW5kKCEwLAplLHtwYWdlOntwYWdlTmFtZToiZGM6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91IixzaXRlU2VjdGlvbjoidmFsdWUgeW91ciB0cmFkZSIsaGllcmFyY2h5OiJ2YWx1ZSB5b3VyIHRyYWRlIix0b29sOiJldmVudDp2YWx1ZSB5b3VyIHRyYWRlIix0b29sRGVzY3JpcHRvcjoidmFsdWUgeW91ciB0cmFkZSJ9LHVzZXI6e2xlYWRUeXBlOiJ2YWx1ZSB5b3VyIHRyYWRlIn19KTsidmFsdWUgeW91ciB0cmFkZSI9PWMmJiQuZXh0ZW5kKCEwLGUse3BhZ2U6e3BhZ2VOYW1lOiJkYzp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UifX0pO2EmJiQuZXh0ZW5kKCEwLGUse3BhZ2U6e3NpdGVTZWN0aW9uOiJnbG9iYWwiLHBhZ2VOYW1lOiJkYzpnbG9iYWw6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3U8c2ktc3VmZml4PiIsCnBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpnbG9iYWw6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UifSx1c2VyOntsZWFkVHlwZToiZ2xvYmFsOnZhbHVlIHlvdXIgdHJhZGUifX0pO3JldHVybiBlfTtiLnJlc29sdmVQcmVBcHByb3ZhbFZhcnM9ZnVuY3Rpb24oYyxhKXt2YXIgZT0iaG9tZSI7c3dpdGNoKHQucGFnZUlkKXtjYXNlICI8c2ktdHlwZT46c2k6dmxzPHNpLXN1ZmZpeD4iOmU9InNlYXJjaCI7YnJlYWs7Y2FzZSAidmVoaWNsZTo8bmFtZXBsYXRlPiI6ZT0idmRwX25ldyI7YnJlYWs7Y2FzZSAiPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczxzaS1zdWZmaXg+IjplPSJ2ZHBfdXNlZCI7YnJlYWs7Y2FzZSAiZmluYW5jZTpmaW5hbmNlIGRlcGFydG1lbnQiOmU9ImZpbmFuY2UifXN3aXRjaChhKXtjYXNlICJoaWVyYXJjaHkiOnN3aXRjaChlKXtjYXNlICJmaW5hbmNlIjpyZXR1cm4iZmluYW5jZSI7Y2FzZSAiaG9tZSI6cmV0dXJuIjxzZWN0aW9uPjpnZXQgcHJlYXBwcm92ZWQiOwpjYXNlICJzZWFyY2giOmNhc2UgInZkcF9uZXciOmNhc2UgInZkcF91c2VkIjpyZXR1cm4ic2hvcHBpbmcgdG9vbHM6Z2V0IHByZWFwcHJvdmVkPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IjtkZWZhdWx0OnJldHVybiI8c2VjdGlvbj4ifWNhc2UgInBhZ2VOYW1lIjpjYXNlICJwYWdlTmFtZU5vVmVoaWNsZSI6c3dpdGNoKGMpe2Nhc2UgImZvcm0tc3RlcCI6cmV0dXJuImRjOjxwYWdlSWROb1N1ZmZpeD46Z2V0IHByZS1hcHByb3ZlZDo8c3RlcC1udW1iZXI+IjtjYXNlICJmb3JtLXN1Ym1pdCI6cmV0dXJuImRjOjxwYWdlSWROb1N1ZmZpeD46Z2V0IHByZS1hcHByb3ZlZDp0aGFuayB5b3UifX19O3JldHVybiBifTtPKCk7JCh4LnBsckZhY3Rvcnkoe30sInBhZ2Vsb2FkIikpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKCl7dmFyIGQ9JC5leHRlbmQoITAsQlsiKiJdLEJbdC5wYWdlSWRdP0JbdC5wYWdlSWRdOnt9KTskLmVhY2goZCxmdW5jdGlvbihiLGgpeyQoYikub24oImNsaWNrIiwKeC5kY3JGYWN0b3J5KGgpKX0sITEpOyQoImJvZHkiKS5vbigiY2xpY2siLCJhIix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwhMSkpOyQoImJvZHkiKS5vbigiY2xpY2siLCJhIix4LmV4aXRGYWN0b3J5KHt9LCExKSk7JCgiYm9keSIpLm9uKCJjbGljayIsImJ1dHRvbiIseC5kY3JGYWN0b3J5KHtpc0dsb2JhbDohMH0sITEpKTskKCJib2R5Iikub24oImNoYW5nZSIsInNlbGVjdCIseC5kY3JGYWN0b3J5KHtpc0dsb2JhbDohMCxpc1NlbGVjdENoYW5nZTohMH0sITEpKTskKCJib2R5Iikub24oImVtYWlsSGFuZGxlci5zdWJtaXQiLHguZGNyRmFjdG9yeSh7aXNGb3JtU3VibWl0OiEwLHZhcmlhbnROYW1lOiJmb3JtLXN1Ym1pdCJ9LCEwKSk7JChkb2N1bWVudCkub24oImludmVudG9yeVNlYXJjaC5maWx0ZXIiLCJib2R5Iix4LmRjckZhY3Rvcnkoe2lzU2VhcmNoRmlsdGVyOiEwfSwhMCkpOyQoZG9jdW1lbnQpLm9uKCJwYXltZW50Q2FsY3VsYXRvci5jbGljayIsImRpdiIseC5kY3JGYWN0b3J5KHtpc0dsb2JhbDohMH0sCiExKSk7JChkb2N1bWVudCkub24oIm9lbV9yZWJhdGUuY2xpY2siLCIucHJvbW8tY2FyZC1vZW0iLHguZGNyRmFjdG9yeSh7aXNPRU1SZWJhdGU6ITB9LCExKSk7JCgiYm9keSIpLm9uKCJjbGljayIsImxpIix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwhMSkpOyQoZG9jdW1lbnQpLm9uKCJmb3JtLnN0ZXAiLCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIseC5wbHJGYWN0b3J5KHtwYWdlOntoaWVyYXJjaHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN0ZXAiLCJoaWVyYXJjaHkiKX0scGFnZU5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN0ZXAiLCJwYWdlTmFtZSIpfSxwYWdlTmFtZU5vVmVoaWNsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3RlcCIsInBhZ2VOYW1lTm9WZWhpY2xlIil9LHZhcmlhbnROYW1lOiI8Z2V0LXByZS1hcHByb3ZlZC12YXJpYW50TmFtZT4iLAp0b29sOiI8dG9vbD4iLHRvb2xEZXNjcmlwdG9yOiI8dG9vbERlc2NyaXB0b3I+In19LCJmb3JtLXN0ZXAiKSk7JCgiLnJldmVhbC1tb2RhbCIpLm9uZSgicG9wdXBpemVyLm9uT3BlbiIseC5wbHJGYWN0b3J5KHtwYWdlOnt2YXJpYW50TmFtZToiZ2xvYmFsLW92ZXJsYXkifX0sInBvcHVwIikpfSl9LDI1MCk7d2luZG93LmQyZnQ9eH07Ci8qKiAvanMvZDJjX2FzY19nYTQuanMgKiovCnZhciBfX19kMmNfZDJjYXNjZ2E0anNfY19vbj0iMjAyNi0wNS0wNSAxMzozMDoxNSI7J3VzZSBzdHJpY3QnO3ZhciBhc2NUb3BDYXJEZXRhaWxzPSExLGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PSExLGFzY0xhc3RGaWx0ZXJDbGljaz0hMSxhc2NMYXN0Q3RhQ2xpY2s9ITEsYXNjQ29tbVN0YXJ0RmlyZWQ9ITE7ZnVuY3Rpb24gZDJhc2NQdWJsaWNhdGlvbkRhdGUoZCl7aWYoIiI9PWQpcmV0dXJuIiI7dmFyIGg9bmV3IERhdGUoZCk7ZD0iIisoaC5nZXRNb250aCgpKzEpO3ZhciBrPSIiK2guZ2V0RGF0ZSgpO2g9aC5nZXRGdWxsWWVhcigpOzEwPnBhcnNlRmxvYXQoZCkmJihkPSIwIitkKTsxMD5wYXJzZUZsb2F0KGspJiYoaz0iMCIrayk7cmV0dXJuW2QsayxoXS5qb2luKCIvIil9ZnVuY3Rpb24gZW5zdXJlVHJ1dGh5KGQpe3JldHVybiBkP2Q6IiJ9CmZ1bmN0aW9uIGFzY1VwZGF0ZVRvcENhckRhdGEoZCl7aWYoITEhPT1kKXtsZXQgaD1kMmFzY1B1YmxpY2F0aW9uRGF0ZShlbnN1cmVUcnV0aHkoZC5kYXRlX2xpc3RpbmcpKSxrPWQubWFrZWNlcnQrIiI7YXNjVG9wQ2FyRGV0YWlscz17aXRlbV9pZDplbnN1cmVUcnV0aHkoZC5OSVYpLGl0ZW1fbnVtYmVyOmVuc3VyZVRydXRoeShkLmlkKSxpdGVtX3ByaWNlOmVuc3VyZVRydXRoeShkLnByaWNlKSxpdGVtX2NvbmRpdGlvbjplbnN1cmVUcnV0aHkoZC52Y2F0ZWdvcnkpLnRvTG93ZXJDYXNlKCksaXRlbV95ZWFyOmVuc3VyZVRydXRoeShkLnllYXIpLnRvTG93ZXJDYXNlKCksaXRlbV9tYWtlOmVuc3VyZVRydXRoeShkLm1ha2UpLnRvTG93ZXJDYXNlKCksaXRlbV9tb2RlbDplbnN1cmVUcnV0aHkoZC5tb2RlbCkudG9Mb3dlckNhc2UoKSxpdGVtX3ZhcmlhbnQ6ZW5zdXJlVHJ1dGh5KGQudmVyc2lvbikudG9Mb3dlckNhc2UoKSxpdGVtX2NvbG9yOmVuc3VyZVRydXRoeShkLmNvbG9yKS50b0xvd2VyQ2FzZSgpLAppdGVtX3R5cGU6ZW5zdXJlVHJ1dGh5KGQuYm9keVR5cGVJRCkudG9Mb3dlckNhc2UoKSxpdGVtX2NhdGVnb3J5OmVuc3VyZVRydXRoeSgiIiksaXRlbV9mdWVsX3R5cGU6ZW5zdXJlVHJ1dGh5KGQudmNhcmJ1cmFudCkudG9Mb3dlckNhc2UoKSxpdGVtX2ludmVudG9yeV9kYXRlOmVuc3VyZVRydXRoeShoKX07IjIxIiE9ayYmIjAiIT1rJiZkMmFzYy5zZXRWZWhpY2xlU3RhdHVzKCJDUE8iKX1lbHNlIGQ9JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyIpLGFzY1RvcENhckRldGFpbHM9e2l0ZW1fY29uZGl0aW9uOiJuZXciLGl0ZW1feWVhcjokKCJpbnB1dFtuYW1lPSd5ZWFyJ10iLGQpLnZhbCgpLGl0ZW1fbWFrZTokKCJpbnB1dFtuYW1lPSdtYWtlJ10iLGQpLnZhbCgpLGl0ZW1fbW9kZWw6JCgiaW5wdXRbbmFtZT0nbW9kZWwnXSIsZCkudmFsKCksaXRlbV90eXBlOiQoImlucHV0W25hbWU9J3ZlaGljbGVDYXRlZ29yeSddIixkKS52YWwoKX07Y29uc29sZS5sb2coIkdBNCBhc2NUb3BDYXJEZXRhaWxzIiwKYXNjVG9wQ2FyRGV0YWlscyl9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZVBhZ2VJZChkKXtkPWQucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIik7aWYoZC5pbmNsdWRlcygic2k6dmxzIikpcmV0dXJuInNlYXJjaCBpbnZlbnRvcnkiO2lmKGQuaW5jbHVkZXMoIjpzaTp2ZWhpY2xlIGRldGFpbHMiKXx8ZC5pbmNsdWRlcygidmVoaWNsZSIpKXJldHVybiJ2ZHAiO2lmKGQuaW5jbHVkZXMoImN1c3RvbToiKSlyZXR1cm4iYmxvZyI7aWYoZC5pbmNsdWRlcygiZmluYW5jZSIpKXJldHVybiJjcmVkaXQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudCIpKXJldHVybiJyZXF1ZXN0IGFwcG9pbnRtZW50IjtpZihkLmluY2x1ZGVzKCJzZXJ2aWNlOm9yZGVyIHBhcnRzIikpcmV0dXJuIm9yZGVyIHBhcnRzIjtpZihkLmluY2x1ZGVzKCJhYm91dCB1czpjb250YWN0IHVzIikpcmV0dXJuImNvbnRhY3QgdXMiO2lmKGQuaW5jbHVkZXMoIlVOS05PV04iKSl7aWYoL2J1aWxkLWFuZC1wcmljZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvY29uZmlndXJhdGlvbi1ldC1wcml4Ly50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJ1aWxkIGFuZCBwcmljZSI7CmlmKC9wcmljZS1uZXcvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L3ByaXgtbmV1Zi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJwcmljZSByZXF1ZXN0IjtpZigvYnJvY2h1cmVzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJyb2NodXJlIjtpZigvYXV0by1qb2JzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9lbXBsb2lzLWF1dG9tb2JpbGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iam9icyI7aWYoL291cnRlYW0vLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VxdWlwZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJvdXIgdGVhbSJ9cmV0dXJuIGR9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQsaCl7aD1oLnRvTG93ZXJDYXNlKCk7bGV0IGs9e307Zm9yKHZhciBsIGluIGQpa1tsLnRvTG93ZXJDYXNlKCldPWRbbF07bD0kKCJodG1sIikuYXR0cigibGFuZyIpO2Q9IiI7bD0iZW4iPT1sLnRvTG93ZXJDYXNlKCl8fCJlbmciPT1sLnRvTG93ZXJDYXNlKCk\/IkVOR0xJU0giOiJGUkVOQ0giO3ZvaWQgMCE9PWtbaF0mJnZvaWQgMCE9PWtbaF1bbF0mJihkPWtbaF1bbF0pO3JldHVybiBkfQpmdW5jdGlvbiBEMkFTQyhkKXtkLnBhZ2VJZE9yZz1kLnBhZ2VJZDtkLnBhZ2VJZD1kMmFzY1Jlc29sdmVQYWdlSWQoZC5wYWdlSWQpO2QuZGVhbGVyX25hbWU9JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTt2YXIgaD17c3RvcmVfbmFtZTpkLmRlYWxlcl9uYW1lLnRvTG93ZXJDYXNlKCksb2VtX2NvZGU6ZC5wYUNvZGUsb2VtX2JyYW5kOmQuY2xpZW50LGFmZmlsaWF0aW9uOiIiLGxhbmd1YWdlOmQudXNlckxhbmd1YWdlLGN1cnJlbmN5OiJjYWQiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxpdGVtczpbXSxldmVudHM6W10sbWVhc3VyZW1lbnRfaWRzOlsiRy02R0VaMldXVDNMIl0scGxhdGZvcm1fY3VzdG9tOiIifSxrPXthc2NfY2xpY2tfdG9fY2FsbDpbImEucGhvbmUtbGluayIsImEucGhvbmUtYWN0aW9uIl0sYXNjX2N0YV9pbnRlcmFjdGlvbjoiLnYtY2FyZCBhOm5vdCgucGhvbmUtbGluayk7LmxlZnRfYm94IGE7I2Zvb3RlciBhOyNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMTsjUHVsbG91dF9CdWlsZC1hbmQtUHJpY2U7I25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIi5zcGxpdCgiOyIpLAphc2NfY3RhX2ludGVyYWN0aW9uOiIjcHJvbW9EaXNjb3ZlckJ1dHRvbiAuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IgI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIC5sb2FuQ2FsY3VsYXRvclRyaWdnZXIgLm9mZmVyLWJ0biAuY3RQcm9tbyAudHJhZGVJbkJhcl9idG4iLnNwbGl0KCIgIiksYXNjX2N0YV9pbnRlcmFjdGlvbjpbIi5uZXdWZHBBY3Rpb25zIGEiLCIuY3RhLXRwbCBhIl0sYXNjX2NvbW1fZW5nYWdlbWVudDpbIi50ZXh0LXVzLWJ0biJdLGFzY19mb3JtX2VuZ2FnZW1lbnQ6WyJpbnB1dCIsInNlbGVjdCIsInRleHRhcmVhIl0sYXNjX21lZGlhX2ludGVyYWN0aW9uOlsiI25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIiwiaW1nIl0sYXNjX21lbnVfaW50ZXJhY3Rpb246WyIudXBfbWVudSBhIl0sYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbjpbIi5sYW5ndWFnZUJhciBhIl19LGw9ITE7Y29uc29sZS5sb2coIkQyQVNDIExvYWRpbmcuLi4iLGQpO3ZhciBnPW5ldyBmdW5jdGlvbigpe3ZhciBlPQp0aGlzO2Uuc2V0VmVoaWNsZVN0YXR1cz1mdW5jdGlvbihiKXtsZXQgYT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKTtpZigiIiE9JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPSdtYWtlJ10iKS52YWwoKSl7bGV0IGM9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7YS52YWwoL3VzZWQvLnRlc3QoYyl8fC9vY2Nhc2lvbi8udGVzdChjKT8iVXNlZCI6Ik5ldyIpfSExIT09YiYmYS52YWwoYil9O2Uuc2V0RGlnaXRhbERhdGE9ZnVuY3Rpb24oYixhKXtsZXQgYz1lLmFkZEV2ZW50KGIsYSk7aWYoITE9PT1jKXJldHVybiExO3ZvaWQgMCE9PWMuZm9ybV9uYW1lJiYoYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgibWVuc3VhbGl0P3MiLCJtZW5zdWFsaXRlcyIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoInY\/aGljdWxlIiwidmVoaWN1bGUiKSxjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCI\/dGFwZXMiLAoiZXRhcGVzIiksYy5mb3JtX25hbWU9IkQyQyAiK2MuZm9ybV9uYW1lKTt2b2lkIDAhPT1jLmZvcm1fbGFuZyYmKGMuZm9ybV9sYW5nPWUuc3RhbmRhcmRpemVGb3JtTGFuZyhjLmZvcm1fbGFuZykpO2guZXZlbnRzLnVuc2hpZnQoSlNPTi5zdHJpbmdpZnkoe25hbWU6YixwYXJhbXM6Y30pKTsidmRwIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzaG93cm9vbSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW0iKTsic2VhcmNoIGludmVudG9yeSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW1saXN0Iik7bGV0IGY9ZS5nZXRFdmVudFR5cGUoYik7ZS5yZXBvcnQoZixiLGMsaCk7ImFzY19mb3JtX3N1Ym1pc3Npb24iPT1iJiYoZS5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0xlYWRzIiwKYSksc2V0VGltZW91dChmdW5jdGlvbigpe2FzY0xhc3RDdGFDbGljaz0hMX0sMTI1MCkpOyJhc2NfY29tbV9zdWJtaXNzaW9uIj09YiYmZS5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyIsYSk7ImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1iJiYhMT09PWFzY0NvbW1TdGFydEZpcmVkJiZhIGluc3RhbmNlb2YgalF1ZXJ5JiYwPGEuY2xvc2VzdCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmxlbmd0aCYmKGFzY0NvbW1TdGFydEZpcmVkPSEwLGUuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N0YXJ0IixhKSl9O2UuZ2V0RXZlbnRUeXBlPWZ1bmN0aW9uKGIpe2xldCBhPSJlbmdhZ2VtZW50Ijtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmE9CiJjb252ZXJzaW9uIn1yZXR1cm4gYX07ZS5iaW5kRWxlbWVudHM9ZnVuY3Rpb24oYixhKXskLmVhY2goYSxmdW5jdGlvbihjLGYpeyQoZikuZWFjaChmdW5jdGlvbigpe2NvbnN0IG09JCh0aGlzKSxuPSJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09Yj8iYmx1ciI6ImNsaWNrIjskKHRoaXMpLm9uKG4sZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKGIsbSl9KX0pfSl9O2UuYWRkRXZlbnQ9ZnVuY3Rpb24oYixhKXt2YXIgYz17ZXZlbnRfb3duZXI6ImQyYyIscGFnZV90eXBlOmQucGFnZUlkLHBhZ2VfdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGV2ZW50X2xhYmVsOmIsZXZlbnRfY2F0ZWdvcnk6JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXZlaGljbGVTdGF0dXNdIikudmFsKCl9LGY9ITEhPT1hc2NMYXN0Q3RhQ2xpY2s\/ZS5DdGFUZXh0UGFyc2VyKGFzY0xhc3RDdGFDbGljayk6IiI7c3dpdGNoKGIpe2Nhc2UgImFzY19wYWdldmlldyI6YnJlYWs7Y2FzZSAiYXNjX2NsaWNrX3RvX2NhbGwiOmY9CmEuaGFzQ2xhc3MoInBob25lLWxpbmsiKT9hLnRleHQoKTphLmF0dHIoImhyZWYiKTtmPWYucmVwbGFjZSgvW14wLTlcK10vZywiIik7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fcGhvbmVfbnVtYmVyOmYsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb246IiJ9KTticmVhaztjYXNlICJhc2NfY3RhX2ludGVyYWN0aW9uIjpmPWUuQ3RhVGV4dFBhcnNlcihhKTtlLmlzQ3RhQ2xpY2soYSkmJihhc2NMYXN0Q3RhQ2xpY2s9YSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDpmLGVsZW1lbnRfb3JkZXI6IiIsZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3R5cGU6ZS5nZXRFbGVtZW50VHlwZShhKSxldmVudF9hY3Rpb246IiIsZXZlbl9hY3Rpb25fcmVzdWx0OmEuYXR0cigiaHJlZiIpPyJyZWRpcmVjdCI6InBvcHVwIixsaW5rX3VybDphLmF0dHIoImhyZWYiKT9hLmF0dHIoImhyZWYiKToiIn0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX2VuZ2FnZW1lbnQiOmY9CmUuZ2V0TGVhZFR5cGVGb3JtTmFtZShhKTtpZighMT09PWYpcmV0dXJuITE7bGV0IG09ZS5hc2NUZXh0UmVwbGFjZXIoYS52YWwoKSksbj1lLmdldEQyY0RlcGFydG1lbnQoYSk7Y29uc29sZS5sb2coIkQyQVNDIEZvcm0gRW5nYWdlbWVudCBEZXRlY3RlZCIsZixuLGEpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6bSxjb21tX3R5cGU6ImZvcm0iLGNvbW1fc3RhdHVzOiJzdGFydCIsZGVwYXJ0bWVudDpuLGZvcm1fbmFtZTpmLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6bn0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImZvcm0iLGNvbW1fb3V0Y29tZToiY2xvc2UiLHN1Ym1pc3Npb25faWQ6IiIsZWxlbWVudF90ZXh0OiJzdWJtaXQiLGN0YV90ZXh0OmYsY3VzdG9tZXJfcGhvbmU6YS5jb25maXJtX3Bob25lX251bWJlciwKY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpjYXNlICJEMkNfTGVhZHMiOmNvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IC0gRGF0YSAyIixhKTthLmNvbmZpcm1fcGhvbmVfbnVtYmVyPXZvaWQgMD09PWEuY29uZmlybV9waG9uZV9udW1iZXI\/IiI6YS5jb25maXJtX3Bob25lX251bWJlcjsKYS5jb25maXJtX2VtYWlsPXZvaWQgMD09PWEuY29uZmlybV9lbWFpbD8iIjphLmNvbmZpcm1fZW1haWw7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOmUuZ2V0Rm9ybU91dGNvbWUoYiksc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6ZS5hc2NUZXh0UmVwbGFjZXIoInN1Ym1pdCIpLGN0YV90ZXh0OmYsY3VzdG9tZXJfcGhvbmU6YS5jb25maXJtX3Bob25lX251bWJlcixjdXN0b21lcl9lbWFpbDphLmNvbmZpcm1fZW1haWwsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJEMkNfRm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjPXtmb3JtX2ZpbGxlZDoiWWVzIn07YnJlYWs7Y2FzZSAiYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbiI6Yz0Kdm9pZCAwIT09YS5ldmVudF9hY3Rpb24\/T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OmEuZXZlbnRfYWN0aW9uX3Jlc3VsdCxldmVudF9hY3Rpb246YS5ldmVudF9hY3Rpb24scHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfc3RhdGU6YS5maWx0ZXJJbmZvLnN0YXRlLGVsZW1lbnRfdHlwZToic2VhcmNoIj09YS5ldmVudF9hY3Rpb24\/ImZpbHRlciI6InNvcnQiLGVsZW1lbnRfc3VidHlwZTphLmZpbHRlckluZm8udHlwZSxlbGVtZW50X3RpdGxlOmEuZmlsdGVySW5mby5sYWJlbCxlbGVtZW50X3RleHQ6YS5maWx0ZXJJbmZvLnRpdGxlLGVsZW1lbnRfdmFsdWU6YS5maWx0ZXJJbmZvLnZhbHVlLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF9wb3NpdGlvbjoiIixlbGVtZW50X29yZGVyOiIifSk6T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OiJsYW5ndWFnZSIsZXZlbnRfYWN0aW9uOiJjbGljayIscHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfc3RhdGU6MCwKZWxlbWVudF90eXBlOiJsYW5ndWFnZSB0b2dnbGUsIixlbGVtZW50X3N1YnR5cGU6ImJ1dHRvbiIsZWxlbWVudF90aXRsZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3ZhbHVlOmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pO2JyZWFrO2Nhc2UgImFzY19tZWRpYV9pbnRlcmFjdGlvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6IiIsYWZmaWxpYXRpb246IiIsbWVkaWFfdHlwZToiIixsaW5rX3VybDoiIixjcmVhdGl2ZV9uYW1lOiIifSk7YnJlYWs7Y2FzZSAiYXNjX21lbnVfaW50ZXJhY3Rpb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6ZS5hc2NUZXh0UmVwbGFjZXIoYS50ZXh0KCkpLGVsZW1lbnRfc3VidHlwZToibWVnYV9tZW51IiwKZWxlbWVudF90eXBlOmEuY2xvc2VzdCgibGkiKS5hdHRyKCJkYXRhLWlkIiksZXZlbnRfYWN0aW9uOiJjbGljayJ9KTticmVhaztjYXNlICJhc2NfcmV0YWlsX3Byb2Nlc3MiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtmbG93X25hbWU6ImZpbmFuY2UiLGVsZW1lbnRfdGl0bGU6IiIsZmxvd19vdXRjb21lOiJwcm9jZWVkIixpdGVtX3BheW1lbnQ6ImZpbmFuY2UiLGZsb3dfc3RhZ2U6IiJ9KTticmVhaztjYXNlICJhc2Nfc3BlY2lhbF9vZmZlciI6Yz1PYmplY3QuYXNzaWduKHt9LGMse3Byb21vdGlvbl9uYW1lOiQoImgyOmZpcnN0LWNoaWxkIixhKS5sZW5ndGg\/ZS5hc2NUZXh0UmVwbGFjZXIoJCgiaDI6Zmlyc3QtY2hpbGQiLGEpLnRleHQoKSk6IkRlYWxlciBQcm9tbyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSkscHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfcG9zaXRpb246ImZsb2F0aW5nIixmbG93X291dGNvbWU6InN0YXJ0In0pO2JyZWFrO2Nhc2UgImFzY19jb21tX2VuZ2FnZW1lbnQiOmM9Ck9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6InN0YXJ0Iixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyJ9KTticmVhaztjYXNlICJhc2NfY29tbV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6ImNybV91cGRhdGUiLGNvbW1fdHlwZToic21zIixwcm9kdWN0X25hbWU6ImQyY190ZXh0IixldmVudF9vd25lcjoiZDJjIixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKX0pO2JyZWFrO2Nhc2UgImFzY19jb21tX3N0YXJ0IjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6ImVuZ2FnZSIsY29tbV90eXBlOiJzbXMiLHByb2R1Y3RfbmFtZToiZDJjX3RleHQiLGV2ZW50X293bmVyOiJkMmMifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiY2hhdCIsYWZmaWxpYXRpb246Im5hdGl2ZSIsCmRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uX2lkOiJtdWx0aS11c2VyIixjb21tX3N0YXR1czoiY3JtX3VwZGF0ZSIsZWxlbWVudF9wb3NpdGlvbjoicG9wLXVwIn0pO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIGNvbnNvbGUubG9nKCJEMkFTQyBFUlJPUihDT0RFOjAwMSkiLGIsYSksITF9ITEhPT1hc2NUb3BDYXJEZXRhaWxzJiYiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIhPWImJihjPU9iamVjdC5hc3NpZ24oe30sYyxhc2NUb3BDYXJEZXRhaWxzKSk7Y29uc29sZS5sb2coIkdBNCBGaW5hbCBEaWdpdGFsIERhdGEiLGMpO3JldHVybiBjfTtlLmlzQ3RhQ2xpY2s9ZnVuY3Rpb24oYil7bGV0IGE9ITE7YiBpbnN0YW5jZW9mIGpRdWVyeSYmKDA8Yi5jbG9zZXN0KCIubmV3VmRwQWN0aW9ucyIpLmxlbmd0aCYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuY3RhLXRwbCIpLmxlbmd0aCYmKGE9ITApLCJwcm9tb0Rpc2NvdmVyQnV0dG9uIj09Yi5hdHRyKCJpZCIpJiYKKGE9ITApLGIuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikubGVuZ3RoJiYoYT0hMCksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCIpLmxlbmd0aCYmKGE9ITApLCJzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCI9PWIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImxvYW5DYWxjdWxhdG9yVHJpZ2dlciIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5sb2FuQ2FsY3VsYXRvclRyaWdnZXIiKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJjdFByb21vIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0UHJvbW8iKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJvZmZlci1idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIub2ZmZXItYnRuIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygidHJhZGVJbkJhcl9idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIudHJhZGVJbkJhcl9idG4iKS5sZW5ndGgmJgooYT0hMCksIlRSQURFSU4iPT1iLmF0dHIoImRhdGEtaWQiKSYmKGE9ITApKTtyZXR1cm4gYX07ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nPWZ1bmN0aW9uKGIpe3ZvaWQgMD09PWImJiQoImh0bWwiKS5hdHRyKCJsYW5nIik7Yj1iLnRvTG93ZXJDYXNlKCk7ImVuZyI9PWImJihiPSJlbiIpOyJlbmdsaXNoIj09YiYmKGI9ImVuIik7ImZybiI9PWImJihiPSJmciIpOyJmcmVuY2giPT1iJiYoYj0iZnIiKTsiZW4iIT1iJiYiZnIiIT1iJiYoYj0iZW4iKTtyZXR1cm4gYn07ZS5DdGFUZXh0UGFyc2VyPWZ1bmN0aW9uKGIpe2QucGFnZUlkLnRvTG93ZXJDYXNlKCk7bGV0IGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCksYz0iIjtpZigvbmV3XC9pbnZlbnRvcnlcL3NlYXJjaC8udGVzdChhKXx8L25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBTUlA6ICI7ZWxzZSBpZigvbmV3XC9pbnZlbnRvcnkvLnRlc3QoYSl8fAovbmV1ZnNcL2ludmVudGFpcmUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBWRFA6ICI7ZWxzZSBpZigvbmV3Ly50ZXN0KGEpfHwvbmV1ZnMvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IFNob3dSb29tIFZEUDogIjtlbHNlIGlmKC91c2VkLy50ZXN0KGEpfHwvb2NjYXNpb24vLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gVXNlZCBJbnZlbnRvcnkgVkRQOiAiO3JldHVybiBjK2UuYXNjVGV4dFJlcGxhY2VyKGIudGV4dCgpKX07ZS5nZXRMZWFkVHlwZUZvcm1OYW1lPWZ1bmN0aW9uKGIpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpLGM9ITE7ZC5wYWdlSWQuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIikmJihjPSJQYXJ0c1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygidGVzdCBkcml2ZSIpJiYoYz0iVGVzdERyaXZlIik7ZC5wYWdlSWQuaW5jbHVkZXMoInByaWNlIHJlcXVlc3QiKSYmCihjPSJQcmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYnJvY2h1cmUiKSYmKGM9IkJyb2NodXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoYz0iU2VydmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygidGlyZXMiKSYmKGM9IlRpcmVzUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGM9IkJvZHlTaG9wIik7ZC5wYWdlSWQuaW5jbHVkZXMoInJlY2FsbCIpJiYoYz0iUmVjYWxscyIpO2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLmRpdlNwYW5GaWx0ZXJzIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCkpcmV0dXJuITE7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtTmFtZTohMSE9PWM\/ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGMpOiJVTktOT1dOOiAiK2F9O2UuZm9ybURhdGFCeUlkPQpmdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgalF1ZXJ5KXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKTt2b2lkIDA9PT1hJiYoMDxiLmNsb3Nlc3QoIiNjb250YWN0cG9wdXAiKS5sZW5ndGgmJihhPSJSZXF1ZXN0IGZvciBjb250YWN0IiksMDxiLmNsb3Nlc3QoIi5jcmVkaXRTY29yZUlucHV0IikubGVuZ3RoJiYoYT0iY3JlZGl0U2NvcmUiKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hBbmRTYXZlUG9wdXBDb250YWluZXJfYm5wIikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uTmV3Qk5QIiksMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYW5kc2F2ZV90ZXh0IikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uIikpO2lmKGQucGFnZUlkLmluY2x1ZGVzKCJzaG93cm9vbTpjb21wYXJlIikmJnZvaWQgMCE9PWEmJmEuaW5jbHVkZXMoImZlYXR1cmVkUHJvZHVjdF8iKSlyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIiwKZm9ybU5hbWU6IkNvbXBhcmVGb3JtIn07aWYoMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5sZW5ndGgmJjA8Yi5jbG9zZXN0KCIjbXVsdGlmb3JtX2VtYmVkZGVkIikuZmluZCgiLm11bHRpZm9ybV9lbWJlZGRlZF9zdGVwMSIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJEaXNjb3Zlck9mZmVyIn07c3dpdGNoKGEpe2Nhc2UgIm1pbmlmb3JtIjpjYXNlICJmaW5hbmNlX211bHRpc3RlcF9mb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCJ9O2Nhc2UgImxvYW4tZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IlByaWNlUmVxdWVzdCJ9O2Nhc2UgImZvcm1EZWFsZXJBcHBvaW50bWVudCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiRGVhbGVyQXBwb2ludG1lbnQifTtjYXNlICJTbGlkZVdpZGdldEZvcm0iOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJTbGlkZVdpZGdldEZvcm0ifTtjYXNlICJjcmVkaXRTY29yZSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdFJlcXVlc3RfU2hvcnQifTtjYXNlICJSZWJhdGVDb3Vwb25OZXdCTlAiOnJldHVybntmb3JtVHlwZToicHJlLW9yZGVyIixmb3JtTmFtZToiUmViYXRlQ291cG9uTmV3Qk5QIn07Y2FzZSAiYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X2JvZHkiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkJhbm5lckZvcm0ifTtjYXNlICJwYXltZW50Q2FsY3VsYXRvckludGVydmFsIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifTtjYXNlICJjb250YWN0X2Zvcm0iOmNhc2UgImNvbnRhY3RfZm9ybTIiOmNhc2UgImNvbnRhY3RfZm9ybTMiOmNhc2UgIlJlcXVlc3QgZm9yIGNvbnRhY3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJDb250YWN0UmVxdWVzdCJ9O2Nhc2UgInF1aWNrRW1haWxGb3JtIjpjYXNlICJtYWlsRXhwcmVzc1JlcXVlc3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlF1aWNrRW1haWwifTtjYXNlICJ0cmFkaW5NYWtlIjpjYXNlICJ0cmFkaW5ZZWFyIjpjYXNlICJ0cmFkaW5Nb2RlbCI6Y2FzZSAidHJhZGluVHJpbSI6Y2FzZSAidHJhZGVJbkJhclBvcHVwRm9ybSI6Y2FzZSAiU2VsbENhckZvcm0iOnJldHVybntmb3JtVHlwZToicmVzZWFyY2giLGZvcm1OYW1lOiJQcmljZVZlaGljbGUifX1pZigwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5IikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTIiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkzIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ldyJ9OwppZigwPGIuY2xvc2VzdCgiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifX1yZXR1cm4hMX07ZS5jb21tU3ViRGF0YVBhcnNlcj1mdW5jdGlvbihiLGEpe2xldCBjPXtmb3JtX25hbWU6IiIsZm9ybV90eXBlOiIiLGZvcm1fZGVwdDoiIixmb3JtX2xhbmc6IiJ9Oy9hc2NfY29tbV9zdWJtaXNzaW9uLy50ZXN0KGIpJiYiU2xpZGVXaWRnZXRGb3JtIj09YS5jbG9zZXN0KCJmb3JtIikuYXR0cigiaWQiKSYmKGMuZm9ybV9uYW1lPSJMZWFkOiBDaGF0IFN1Ym1pc3Npb24iKTtyZXR1cm4gY307ZS5hc2NUZXh0UmVwbGFjZXI9ZnVuY3Rpb24oYil7Yj1iLnJlcGxhY2UoLyhcclxufFxufFxyfFx0KS9nbSwiIik7Yj1iLnJlcGxhY2UoLzxcLz9bXj5dKyg+fCQpL2csIiIpO3JldHVybiBiPWIudHJpbSgpfTtlLmhhc2hUZXh0PWZ1bmN0aW9uKGIpe2I9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGIudHJpbSgpLnRvTG93ZXJDYXNlKCkpOwpyZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGIpLnRoZW4oYT0+QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGM9PmMudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiIikpfTtlLmdldEZvcm1PdXRjb21lPWZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgIkQyQ19MZWFkcyI6cmV0dXJuImNybV91cGRhdGUiO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOnJldHVybiJhcHB0X2Jvb2tlZCJ9fTtlLmdldEQyY0RlcGFydG1lbnQ9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKSxjPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLApmPSJPVEhFUiI7L25ldWZzLy50ZXN0KGMpJiYoZj0iTkVXIik7L25ldy8udGVzdChjKSYmKGY9Ik5FVyIpOy9vY2Nhc2lvbi8udGVzdChjKSYmKGY9IlVTRUQiKTsvdXNlZC8udGVzdChjKSYmKGY9IlVTRUQiKTthLmluY2x1ZGVzKCJmaW5hbmNlIikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInBhcnRzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygidGlyZXMiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjcmVkaXQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjb250YWN0IHVzIikmJihmPSJTQUxFUyIpO2EuaW5jbHVkZXMoInJlY2FsbCIpJiYoZj0iU0VSVklDRSIpO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmCihmPSJGSU5BTkNFIiksImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI9PWIuYXR0cigiaWQiKSYmKGY9IkZJTkFOQ0UiKSwwPGIuY2xvc2VzdCgiI1NlbGxDYXJGb3JtIikubGVuZ3RoJiYoZj0iRklOQU5DRSIpLHZvaWQgMCE9PWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikmJihmPWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikpKTtyZXR1cm4gZn07ZS5nZXRGb3JtVHlwZT1mdW5jdGlvbihiKXtsZXQgYT1kLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2lmKGEuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSlyZXR1cm4ic2VydmljZV9hcHBvaW50bWVudCI7aWYoYS5pbmNsdWRlcygib3JkZXIgcGFydHMiKXx8YS5pbmNsdWRlcygib3JkZXIgdGlyZXMiKSlyZXR1cm4icGFydHMiO2lmKGEuaW5jbHVkZXMoImJvZHkgc2hvcCIpKXJldHVybiJib2R5X3Nob3AiO2lmKGEuaW5jbHVkZXMoImZpbmFuY2UgZGVwYXJ0bWVudCIpfHxhLmluY2x1ZGVzKCJjcmVkaXQiKSlyZXR1cm4iY3JlZGl0IjsKYj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCJ9O2UuZ2V0RWxlbWVudFR5cGU9ZnVuY3Rpb24oYil7cmV0dXJuInRvcEJhbm5lckltYWdlIj09Yi5hdHRyKCJpZCIpfHwwPGIuY2xvc2VzdCgiI3RvcEJhbm5lckltYWdlIikubGVuZ3RoPyJiYW5uZXIiOjA8Yi5jbG9zZXN0KCIuaGVhZGVyLWltYWdlLXdyYXBwZXIiKS5sZW5ndGg\/ImhlYWRlciI6MDxiLmNsb3Nlc3QoIi5sYW5ndWFnZUJhciIpLmxlbmd0aD8iYWNjZXNzaWJpbGl0eV90b29sIjowPGIuaGFzKCIuZGVhbGVyTWFwTGluayIpLmxlbmd0aD8ibWFwIjowPGIuY2xvc2VzdCgiLnNsaWRlcyIpLmxlbmd0aD8iZ2FsbGVyeSI6MDxiLmNsb3Nlc3QoIi51c2VkVmRwQWN0aW9ucyIpLmxlbmd0aD8iZGlnaXRhbF9yZXRhaWxpbmdfdG9vbCI6IlB1bGxvdXRfQnVpbGQtYW5kLVByaWNlIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8iYmFubmVyIjoibmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiPT0KYi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8idmlkZW8iOiJkaWdpdGFsX3JldGFpbGluZyJ9O2UuZ2V0VmVoaWNsZUpTT049ZnVuY3Rpb24oYixhKXskLmdldCgiL2pzL2pzb24vIitiKyIuanNvbiIpLmRvbmUoZnVuY3Rpb24oYyl7Yy5pdGVtX251bWJlcj1iO2lmKCIiIT1hJiZ2b2lkIDAhPT1hKXdpbmRvd1thXShjKTtyZXR1cm4gY30pfTtlLnJlcG9ydD1mdW5jdGlvbihiLGEsYyxmKXtpZih2b2lkIDA9PT1kLnN1Yl9nYTR8fCJOIj09ZC5zdWJfZ2E0KWM9T2JqZWN0LmFzc2lnbih7fSxjLHtzZW5kX3RvOiJHLVo1UThaNUM3S0YifSk7aWYoITA9PT1sJiYiYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWEpcmV0dXJuITE7Z3RhZygiZXZlbnQiLGEsYyk7bD0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD0hMX0sMUUzKX07cmV0dXJuIGV9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldFZlaGljbGVTdGF0dXMoITEpOyJ2ZHAiPT1kLnBhZ2VJZCYmKDA8JCgiI3RvcGNhcmlkIikubGVuZ3RoJiYKIiIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpJiYiMCIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpP2cuZ2V0VmVoaWNsZUpTT04oJCgiI3RvcGNhcmlkIikudmFsKCksImFzY1VwZGF0ZVRvcENhckRhdGEiKTphc2NVcGRhdGVUb3BDYXJEYXRhKCExKSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3BhZ2V2aWV3Iix7fSl9KX0sMUUzKTskLmVhY2goayxmdW5jdGlvbihiLGEpe2cuYmluZEVsZW1lbnRzKGIsYSl9LCExKTskKCIucmV2ZWFsLW1vZGFsIikub25lKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihiKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJChiLnRhcmdldCkpO2cuYmluZEVsZW1lbnRzKCJhc2NfZm9ybV9lbmdhZ2VtZW50IixbJChiLnRhcmdldCkuZmluZCgiZm9ybSBpbnB1dCwgZm9ybSBzZWxlY3QsIGZvcm0gdGV4dGFyZWEiKV0pfSk7c2V0VGltZW91dCgoKT0+eyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J0RlYWxlckFwcG9pbnRtZW50J10iKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19zcGVjaWFsX29mZmVyIiwkKCIjbW9kYWxEZWFsZXJBcHBvaW50bWVudCIpKX0pOyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J1BheXBhbFBheW1lbnQnXSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsUGF5cGFsUGF5bWVudCIpKX0pfSwxRTMpOzA8JCgiI2ZsdFNvcnRJZCIpLmxlbmd0aCYmKGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PSQoIiNmbHRTb3J0SWQgLmRpdkFjdGlvbldyYXBwZXIgLmRpdkxhYmVsIikuaHRtbCgpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuQWJzdHJhY3RVc2VkU3JwT2JqZWN0KXt2YXIgZT1uZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJkMmNfaG9uZGFfZ3RtIn0pO2UuYWRkVXNlZFNycEV2ZW50T2JzZXJ2ZXIoInByb3h5IixmdW5jdGlvbihiKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBiLmNtZCYmCiJyZXF1ZXN0Ij09PWIuY21kJiYhMSE9PWIuZGF0YSl7bGV0IGE9Yi5kYXRhLmZpbHRlclN0YXRlLmZpbHRlclNlYXJjaDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5yZXN1bHRzPWIuZGF0YS5maWx0ZXJTdGF0ZS5jb3VudFNlYXJjaFJlc3VsdHM7YS50eXBlZFNlYXJjaD1iLmRhdGEuZmlsdGVyU3RhdGUudHlwZWRTZWFyY2g7YS5ldmVudF9hY3Rpb25fcmVzdWx0PSJzZWFyY2giO2EuZXZlbnRfYWN0aW9uPSJzZWFyY2giO2EuZmlsdGVySW5mbz1hc2NMYXN0RmlsdGVyQ2xpY2s7YXNjTGFzdEZpbHRlckNsaWNrPSExO09iamVjdC5rZXlzKGEpLmluY2x1ZGVzKCJzb3J0IikmJmFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0IT1hLnNvcnRbMF0mJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD1hLnNvcnRbMF0sYS5ldmVudF9hY3Rpb249InNvcnQiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uIixhKX0sMTAwKX19KTtlLmluaXRVc2VkU3JwT2JzZXJ2ZXIoKX0kKGRvY3VtZW50KS5vbigidXNlZFNycEZpbHRlcnMub25DaGFuZ2UiLAoiYm9keSIsKGIsYSk9PntiPSQoIiMiK2EuaWQpO2I9JCgiLmZsdFRpdGxlIixiKS50ZXh0KCk7bGV0IGM9YS52YWx1ZTt2YXIgZj0iIjtsZXQgbT0idGV4dF9zZWFyY2giO2EudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiOjoiKT8obT0iYnV0dG9uIixmPWEudmFsdWUuc3BsaXQoIjo6IiksYS52YWx1ZT1mWzBdLGY9ZlsxXSk6YS52YWx1ZSYmYS52YWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKCIsIikmJihtPSJyYW5nZV9zbGlkZXIiKTthc2NMYXN0RmlsdGVyQ2xpY2s9e2lkOmEuaWQsdGl0bGU6YS5sYWJlbCx2YWx1ZTphLnZhbHVlLG9yZ192YWx1ZTpjLHN0YXRlOmYsdHlwZTptLGxhYmVsOmJ9fSk7JCgiYm9keSIpLm9uKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50IixmdW5jdGlvbihiLGEpe2NvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IFRyaWdnZXIiLGIsYSk7aWYodm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUpe2I9YS5kZXRhaWwubGVhZFR5cGU7aWYoYi5pbmNsdWRlcygiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIil8fApiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1cyIpfHwoYS5kZXRhaWwubWFpbElkfHwiIikuc3RhcnRzV2l0aCgiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIpKXJldHVybiExO2IuaW5jbHVkZXMoIkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciIpJiYoYj0iTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIpO2IudHJpbSgpO2EuZGV0YWlsLmxlYWRUeXBlPWJ9dm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUmJiIiIT1hLmRldGFpbC5sZWFkVHlwZXx8dm9pZCAwPT09YS5kZXRhaWwubWFpbElkfHwoYS5kZXRhaWwubGVhZFR5cGU9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGEuZGV0YWlsLm1haWxJZCkpO2EuZGV0YWlsLmxlYWROYW1lQXJyPWQuZm9ybU1hcDt2b2lkIDA9PT1hLmRldGFpbC5jb25maXJtX2VtYWlsJiYoYS5kZXRhaWwuY29uZmlybV9lbWFpbD0iIik7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXImJgooYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXI9IiIpO1Byb21pc2UuYWxsKFtnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fZW1haWwpLGcuaGFzaFRleHQoYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXIpXSkudGhlbihjPT57dmFyIFtmLG1dPWM7YS5kZXRhaWwuY29uZmlybV9lbWFpbD1mO2EuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPW19KTt2b2lkIDAhPT1hc2NUb3BDYXJEZXRhaWxzLm1ha2UmJiIiIT1hc2NUb3BDYXJEZXRhaWxzLm1ha2V8fHZvaWQgMD09PWEuZGV0YWlsLm1ha2V8fCIiPT1hLmRldGFpbC5tYWtlfHwoYS5kZXRhaWwudmNhdGVnb3J5PWEuZGV0YWlsLmNvbmRpdGlvbixhLmRldGFpbC52ZXJzaW9uPWEuZGV0YWlsLnRyaW0sYS5kZXRhaWwuYm9keVR5cGVJRD1hLmRldGFpbC50cmltLGEuZGV0YWlsLmNvbG9yPSIiLGEuZGV0YWlsLnZjYXJidXJhbnQ9IiIsYS5kZXRhaWwuZGF0ZV9saXN0aW5nPSIiLGFzY1VwZGF0ZVRvcENhckRhdGEoYS5kZXRhaWwpKTsKc2V0VGltZW91dChmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLGEuZGV0YWlsKX0sMjUwKTsiU01TSW5mb0xlYWQiIT1hLmRldGFpbC5tYWlsSWQmJiJTTVNMZWFkIiE9YS5kZXRhaWwubWFpbElkfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3VibWlzc2lvbiIsYS5kZXRhaWwpfSwyNTApfSk7JCgiI1NsaWRlV2lkZ2V0Rm9ybSBhLmJ0bi1kZWZhdWx0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2xldCBiPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCwiU2xpZGVXaWRnZXRGb3JtIik7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbiIse2RlcGFydG1lbnQ6InNhbGVzIixsZWFkVHlwZTpiLGN1cnJlbnRVUkw6IiJ9KX0pOyQoZG9jdW1lbnQpLm9uKCJmb3JtLnN0ZXAiLCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3JldGFpbF9wcm9jZXNzIiwKYil9KTskKGRvY3VtZW50KS5vbigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIsZG9jdW1lbnQuYm9keSxmdW5jdGlvbihiKXtiPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJmaW5hbmNlIixsZWFkVHlwZTpiLGN1cnJlbnRVUkw6IiJ9KX0pfSwxRTMpO3dpbmRvdy5kMmFzYz1nO3dpbmRvdy5kMmFzY0RhdGFNYXA9aH07Ci8qKiAvanMvcHJpbnRUaGlzLmpzICoqLwp2YXIgX19fZDJjX3ByaW50VGhpc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6NDAiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3ByaW50VGhpc2pzX2Nfb249IjIwMjQtMDctMzAgMTA6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGMpe2Z1bmN0aW9uIHIoZCxlKXtlJiZkLmFwcGVuZChlLmpxdWVyeT9lLmNsb25lKCk6ZSl9ZnVuY3Rpb24gdChkLGUsayl7dmFyIGY9ZS5jbG9uZShrLmZvcm1WYWx1ZXMpO2suZm9ybVZhbHVlcyYmdShlLGYsInNlbGVjdCwgdGV4dGFyZWEiKTtrLnJlbW92ZVNjcmlwdHMmJmYuZmluZCgic2NyaXB0IikucmVtb3ZlKCk7ay5wcmludENvbnRhaW5lcj9mLmFwcGVuZFRvKGQpOmYuZWFjaChmdW5jdGlvbigpe2ModGhpcykuY2hpbGRyZW4oKS5hcHBlbmRUbyhkKX0pfWZ1bmN0aW9uIHUoZCxlLGspe3ZhciBmPWQuZmluZChrKTtlLmZpbmQoaykuZWFjaChmdW5jdGlvbihnLHEpe2MocSkudmFsKGYuZXEoZykudmFsKCkpfSl9dmFyIGE7Yy5mbi5wcmludFRoaXM9ZnVuY3Rpb24oZCl7YT1jLmV4dGVuZCh7fSxjLmZuLnByaW50VGhpcy5kZWZhdWx0cyxkKTt2YXIgZT10aGlzIGluc3RhbmNlb2YgalF1ZXJ5P3RoaXM6Yyh0aGlzKTtkPSJwcmludFRoaXMtIisobmV3IERhdGUpLmdldFRpbWUoKTsKaWYod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIT09ZG9jdW1lbnQuZG9tYWluJiZuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9tc2llL2kpKXt2YXIgaz0namF2YXNjcmlwdDpkb2N1bWVudC53cml0ZSgiPGhlYWQ+PHNjcmlwdD5kb2N1bWVudC5kb21haW49XFwiJytkb2N1bWVudC5kb21haW4rJ1xcIjtceDNjL3NjcmlwdD48L2hlYWQ+PGJvZHk+PC9ib2R5PiIpJyxmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2YubmFtZT0icHJpbnRJZnJhbWUiO2YuaWQ9ZDtmLmNsYXNzTmFtZT0iTVNJRSI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTtmLnNyYz1rfWVsc2UgYygiPGlmcmFtZSBpZD0nIitkKyInIG5hbWU9J3ByaW50SWZyYW1lJyAvPiIpLmFwcGVuZFRvKCJib2R5Iik7dmFyIGc9YygiIyIrZCk7YS5kZWJ1Z3x8Zy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6IjBweCIsaGVpZ2h0OiIwcHgiLGxlZnQ6Ii02MDBweCIsdG9wOiItNjAwcHgifSk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtmdW5jdGlvbiBxKGIscCl7Yj1iLmdldCgwKTtiPWIuY29udGVudFdpbmRvd3x8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yj1iLmRvY3VtZW50fHxiLmNvbnRlbnREb2N1bWVudHx8YjtiLm9wZW4oKTtiLndyaXRlKHApO2IuY2xvc2UoKX1hLmRvY3R5cGVTdHJpbmcmJnEoZyxhLmRvY3R5cGVTdHJpbmcpO3ZhciBtPWcuY29udGVudHMoKSxsPW0uZmluZCgiaGVhZCIpLG49bS5maW5kKCJib2R5IiksaD1jKCJiYXNlIik7aD0hMD09PWEuYmFzZSYmMDxoLmxlbmd0aD9oLmF0dHIoImhyZWYiKToic3RyaW5nIj09PXR5cGVvZiBhLmJhc2U\/YS5iYXNlOmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKyIvLyIrZG9jdW1lbnQubG9jYXRpb24uaG9zdDtsLmFwcGVuZCgnPGJhc2UgaHJlZj0iJytoKyciPicpO2EuaW1wb3J0Q1NTJiZjKCJsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1jKHRoaXMpLmF0dHIoImhyZWYiKTtpZihiKXt2YXIgcD0KYyh0aGlzKS5hdHRyKCJtZWRpYSIpfHwiYWxsIjtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIitiKyInIG1lZGlhPSciK3ArIicvPiIpfX0pO2EuaW1wb3J0U3R5bGUmJmMoInN0eWxlIikuZWFjaChmdW5jdGlvbigpe2wuYXBwZW5kKHRoaXMub3V0ZXJIVE1MKX0pO2EucGFnZVRpdGxlJiZsLmFwcGVuZCgiPHRpdGxlPiIrYS5wYWdlVGl0bGUrIjwvdGl0bGU+Iik7YS5sb2FkQ1NTJiYoQXJyYXkuaXNBcnJheShhLmxvYWRDU1MpP2pRdWVyeS5lYWNoKGEubG9hZENTUyxmdW5jdGlvbihiLHApe2wuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK3RoaXMrIicvPiIpfSk6bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYS5sb2FkQ1NTKyInLz4iKSk7aWYoaD1hLmNvcHlUYWdDbGFzc2VzKWg9ITA9PT1oPyJiaCI6aCwtMSE9PWguaW5kZXhPZigiYiIpJiYKbi5hZGRDbGFzcyhjKCJib2R5IilbMF0uY2xhc3NOYW1lKSwtMSE9PWguaW5kZXhPZigiaCIpJiZtLmZpbmQoImh0bWwiKS5hZGRDbGFzcyhjKCJodG1sIilbMF0uY2xhc3NOYW1lKTtyKG4sYS5oZWFkZXIpO2lmKGEuY2FudmFzKXt2YXIgdj0wO2UuZmluZCgiY2FudmFzIikuYWRkQmFjaygiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe2ModGhpcykuYXR0cigiZGF0YS1wcmludHRoaXMiLHYrKyl9KX10KG4sZSxhKTthLmNhbnZhcyYmbi5maW5kKCJjYW52YXMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5kYXRhKCJwcmludHRoaXMiKTtiPWMoJ1tkYXRhLXByaW50dGhpcz0iJytiKyciXScpO3RoaXMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYlswXSwwLDApO2IucmVtb3ZlRGF0YSgicHJpbnR0aGlzIil9KTthLnJlbW92ZUlubGluZSYmKGlzRnVuY3Rpb24oYy5yZW1vdmVBdHRyKT9tLmZpbmQoImJvZHkgKiIpLnJlbW92ZUF0dHIoInN0eWxlIik6bS5maW5kKCJib2R5ICoiKS5hdHRyKCJzdHlsZSIsCiIiKSk7cihuLGEuZm9vdGVyKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5oYXNDbGFzcygiTVNJRSIpPyh3aW5kb3cuZnJhbWVzLnByaW50SWZyYW1lLnRyaWdnZXIoImZvY3VzIiksbC5hcHBlbmQoIjxzY3JpcHQ+ICB3aW5kb3cucHJpbnQoKTsgXHgzYy9zY3JpcHQ+IikpOmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgicHJpbnQiKT9nWzBdLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZXhlY0NvbW1hbmQoInByaW50IiwhMSxudWxsKTooZ1swXS5jb250ZW50V2luZG93LnRyaWdnZXIoImZvY3VzIiksZ1swXS5jb250ZW50V2luZG93LnByaW50KCkpO2EuZGVidWd8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnJlbW92ZSgpfSwxRTMpfSxhLnByaW50RGVsYXkpfSwzMzMpfTtjLmZuLnByaW50VGhpcy5kZWZhdWx0cz17ZGVidWc6ITEsaW1wb3J0Q1NTOiEwLGltcG9ydFN0eWxlOiExLHByaW50Q29udGFpbmVyOiEwLGxvYWRDU1M6IiIscGFnZVRpdGxlOiIiLHJlbW92ZUlubGluZTohMSwKcHJpbnREZWxheTozMzMsaGVhZGVyOm51bGwsZm9vdGVyOm51bGwsZm9ybVZhbHVlczohMCxjYW52YXM6ITEsYmFzZTohMSxkb2N0eXBlU3RyaW5nOiI8IURPQ1RZUEUgaHRtbD4iLHJlbW92ZVNjcmlwdHM6ITEsY29weVRhZ0NsYXNzZXM6ITF9fSkoalF1ZXJ5KTsKLyoqIC9qcy9iYXNlNjQuanMgKiovCnZhciBfX19kMmNfYmFzZTY0anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNjowOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfYmFzZTY0anNfY19vbj0iMjAyNC0wNy0wOCAxMDozMDowNSI7InVzZSBzdHJpY3QiOwp2YXIgQmFzZTY0PXtfa2V5U3RyOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIsX2I2NFRlc3Q6UmVnRXhwKCJeKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kIiksZW5jb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPSIiLGM9MDtmb3IoYT1CYXNlNjQuX3V0ZjhfZW5jb2RlKGEpO2M8YS5sZW5ndGg7KXt2YXIgYj1hLmNoYXJDb2RlQXQoYysrKSxlPWEuY2hhckNvZGVBdChjKyspLGY9YS5jaGFyQ29kZUF0KGMrKyksZz1iPj4yO2I9KGImMyk8PDR8ZT4+NDt2YXIgaD0oZSYxNSk8PDJ8Zj4+NixrPWYmNjM7aXNOYU4oZSk\/aD1rPTY0OmlzTmFOKGYpJiYoaz02NCk7ZD1kK3RoaXMuX2tleVN0ci5jaGFyQXQoZykrdGhpcy5fa2V5U3RyLmNoYXJBdChiKSt0aGlzLl9rZXlTdHIuY2hhckF0KGgpK3RoaXMuX2tleVN0ci5jaGFyQXQoayl9cmV0dXJuIGR9LGRlY29kZTpmdW5jdGlvbihhKXt2YXIgZD0KIiIsYz0wO2ZvcihhPWEucmVwbGFjZSgvW15BLVphLXowLTlcK1wvPV0vZywiIik7YzxhLmxlbmd0aDspe3ZhciBiPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGU9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxnPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpO2I9Yjw8MnxlPj40O2U9KGUmMTUpPDw0fGY+PjI7dmFyIGg9KGYmMyk8PDZ8ZztkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpOzY0IT1mJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7NjQhPWcmJihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGgpKX1yZXR1cm4gQmFzZTY0Ll91dGY4X2RlY29kZShkKX0sX3V0ZjhfZW5jb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPSIiO2E9YS5yZXBsYWNlKC9cclxuL2csIlxuIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBiPWEuY2hhckNvZGVBdChjKTsxMjg+CmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTooMTI3PGImJjIwNDg+Yj9kKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjZ8MTkyKTooZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj4xMnwyMjQpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+NiY2M3wxMjgpKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGImNjN8MTI4KSl9cmV0dXJuIGR9LF91dGY4X2RlY29kZTpmdW5jdGlvbihhKXtmb3IodmFyIGQ9IiIsYz0wLGIsZSxmO2M8YS5sZW5ndGg7KWI9YS5jaGFyQ29kZUF0KGMpLDEyOD5iPyhkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpLGMrKyk6MTkxPGImJjIyND5iPyhlPWEuY2hhckNvZGVBdChjKzEpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMzEpPDw2fGUmNjMpLGMrPTIpOihlPWEuY2hhckNvZGVBdChjKzEpLGY9YS5jaGFyQ29kZUF0KGMrMiksZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoYiYxNSk8PDEyfChlJjYzKTw8NnxmJjYzKSxjKz0zKTtyZXR1cm4gZH0sd2hpdGVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuWyJ0cmFpbGVycyJdfSwKaXNCYXNlNjQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEJhc2U2NC53aGl0ZUxpc3QoKS5pbmNsdWRlcyhhLnRvTG93ZXJDYXNlKCkpfHwidW5kZWZpbmVkIj09PXR5cGVvZiBhfHwiIj09PWF8fCIiPT09YS50cmltKCl8fDQ+PWEubGVuZ3RoPyExOkJhc2U2NC5lbmNvZGUoQmFzZTY0LmRlY29kZShhKSk9PWF9fTsKLyoqIC9qcy9GaXJld29yay5taW4uanMgKiovCi8qIEphdmFTY3JpcHQgRmlyZXdvcmtzIEFuaW1hdGlvbiBieSBBbmRlc0NvZGUgKGh0dHA6Ly9jb2RlY2FueW9uLm5ldC91c2VyL2FuZGVzY29kZS9wb3J0Zm9saW8pICovInVzZSBzdHJpY3QiO2Z1bmN0aW9uIENGaXJld29yayhuLHQsaSxyLHUpe2Z3VG90YWwrKzt0aGlzLm51bT1md1RvdGFsO3RoaXMuaHRtbENvbnRhaW5lcklkPW4udG9Mb3dlckNhc2UoKTt0aGlzLmh0bWxDb250YWluZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobik7dGhpcy5maXJlQ29sb3I9dDt0aGlzLnN0YXJ0WD1pO3RoaXMuc3RhcnRZPXI7dGhpcy5md1NjYWxlPXR5cGVvZiB1IT0idW5kZWZpbmVkIj91OjE7dGhpcy5TVkdjYW52YXM9bnVsbDt0aGlzLmZ3Q29udGFpbmVyPW51bGw7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbD1udWxsO3RoaXMuc3BhcmtzPW51bGw7dGhpcy5mYXN0RXhwbG9zaW9uPW51bGw7dGhpcy5wYXJ0aWNsZXM9bnVsbDt0aGlzLnNoaW5lQ29sb3I9bnVsbDt0aGlzLnZlbFg9MDt0aGlzLnZlbFk9LTEwMDt0aGlzLmdyYXZpdHk9NDA7dGhpcy50aW1lQmVmb3JlRXhwbG9zaW9uPTE1MDA7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cz0xNDt0aGlzLmZpcnN0RXhwbG9zaW9uUmFkaXVzPTQ1O3RoaXMubnVtRXhwbG9zaW9uUGFydGljbGVzPTIwMDt0aGlzLmV4cGxvc2lvblBhcnRpY2xlUmFkaXVzPTIuNTt0aGlzLmV4cGxvc2lvblZlbG9jaXR5PTE4MDt0aGlzLmV4cGxvc2lvbkRlY2VsZXJhdGlvbj0uOTY7dGhpcy5leHBsb3Npb25QYXJ0aWNsZXNNYXhMaWZlc3Bhbj0yZTM7dGhpcy5zaGluZVJhZGl1cz02MDt0aGlzLnNoaW5lRXhwYW5zaW9uVGltZT04MDA7dGhpcy5zaGluZUZhZGVPdXRUaW1lPTExMDA7dGhpcy51c2VBdWRpbz0hMTt0aGlzLmF1ZGlvVVJMPSJFeHBsb3Npb24ubXAzIjt0aGlzLnNlcGFyYXRpb249MTE4O3RoaXMuZndDZW50ZXI9MTMyfWZ1bmN0aW9uIEZpcmV3b3JrVGltZXIobix0LGkscix1LGYsZSxvKXt2YXIgcz10eXBlb2YgZiE9InVuZGVmaW5lZCI\/ZjohMSxoPXR5cGVvZiBlIT0idW5kZWZpbmVkIj9lOjEsYz10eXBlb2YgbyE9InVuZGVmaW5lZCI\/bzowO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdT1uZXcgQ0ZpcmV3b3JrKG4sdCxpLHIsaCk7dS51c2VBdWRpbz1zO3UudmVsWD1jO3Uuc3RhcnQoKX0sdSl9dmFyIGZ3U1ZHbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmd1RvdGFsPTAsZndBY3RpdmVzPXt9LGV4cGxvc2lvblNvdW5kQ3JlYXRlZD0hMSxleHBsb3Npb25NUDM9bnVsbDtDRmlyZXdvcmsucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaCgpe3N8fChuLnNldFNWR3NjYWxlKG4uYXNjZW5kaW5nRmlyZUJhbGwsb1t0XVswXSxuLmZ3Q2VudGVyLG4uZndDZW50ZXIpLHNldFRpbWVvdXQoaCxvW3RdWzFdKSx0PXQ9PW8ubGVuZ3RoLTE\/MDp0KzEpfWZ1bmN0aW9uIGEoKXtzPSEwO24uZndDb250YWluZXIucmVtb3ZlQ2hpbGQobi5hc2NlbmRpbmdGaXJlQmFsbCk7Y2xlYXJJbnRlcnZhbChjKTtuLmV4cGxvc2lvbigpfWZ1bmN0aW9uIHYoKXtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4ucGFydGljbGVzKTtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uc2hpbmVDb2xvcik7bi5TVkdjYW52YXMucmVtb3ZlQ2hpbGQobi5md0NvbnRhaW5lcik7ZndBY3RpdmVzW24uaHRtbENvbnRhaW5lcklkXT1NYXRoLm1heCgwLGZ3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF0tMSk7ZndBY3RpdmVzW24uaHRtbENvbnRhaW5lcklkXT09MCYmbi5odG1sQ29udGFpbmVyLnJlbW92ZUNoaWxkKG4uU1ZHY2FudmFzKX12YXIgcixpLHUsZixlLGM7ZndBY3RpdmVzW3RoaXMuaHRtbENvbnRhaW5lcklkXT1md0FjdGl2ZXMuaGFzT3duUHJvcGVydHkodGhpcy5odG1sQ29udGFpbmVySWQpP2Z3QWN0aXZlc1t0aGlzLmh0bWxDb250YWluZXJJZF0rMToxO3RoaXMuc2VwYXJhdGlvbj1NYXRoLnJvdW5kKDEuNioodGhpcy5zaGluZVJhZGl1cyt0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzKSk7dGhpcy5md0NlbnRlcj10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK3RoaXMuc2VwYXJhdGlvbjtyPXRoaXMuaHRtbENvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJmd1NWR2NhbnZhcyIpO3IubGVuZ3RoPjA\/dGhpcy5TVkdjYW52YXM9clswXToodGhpcy5TVkdjYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsInN2ZyIpLHRoaXMuU1ZHY2FudmFzLnNldEF0dHJpYnV0ZU5TKG51bGwsImNsYXNzIiwiZndTVkdjYW52YXMiKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsdGhpcy5odG1sQ29udGFpbmVyLm9mZnNldFdpZHRoKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiLHRoaXMuaHRtbENvbnRhaW5lci5vZmZzZXRIZWlnaHQpLHRoaXMuU1ZHY2FudmFzLnNldEF0dHJpYnV0ZU5TKG51bGwsInN0eWxlIiwiZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGUiKSxpPWdldENvbXB1dGVkU3R5bGUodGhpcy5odG1sQ29udGFpbmVyLG51bGwpLnBvc2l0aW9uLnRvTG93ZXJDYXNlKCksaT09ImFic29sdXRlInx8aT09ImZpeGVkInx8aT09InJlbGF0aXZlIj8odGhpcy5TVkdjYW52YXMuc3R5bGUudG9wPSIwcHgiLHRoaXMuU1ZHY2FudmFzLnN0eWxlLmxlZnQ9IjBweCIpOih1PXRoaXMuaHRtbENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLlNWR2NhbnZhcy5zdHlsZS50b3A9dS50b3ArInB4Iix0aGlzLlNWR2NhbnZhcy5zdHlsZS5sZWZ0PXUubGVmdCsicHgiKSx0aGlzLmh0bWxDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5TVkdjYW52YXMpKTt0aGlzLmZ3Q29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKTtmPSh0aGlzLnNlcGFyYXRpb24rdGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cykqdGhpcy5md1NjYWxlO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwieCIsdGhpcy5zdGFydFgtZik7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ5Iix0aGlzLnN0YXJ0WS1mKTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIix0aGlzLnNlcGFyYXRpb24qMip0aGlzLmZ3U2NhbGUpO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0Iix0aGlzLnNlcGFyYXRpb24qMip0aGlzLmZ3U2NhbGUpO2U9dGhpcy5zZXBhcmF0aW9uKjI7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ2aWV3Qm94IiwiMCAwICIrZSsiICIrZSk7dGhpcy5TVkdjYW52YXMuYXBwZW5kQ2hpbGQodGhpcy5md0NvbnRhaW5lcik7dGhpcy51c2VBdWRpbyYmIWV4cGxvc2lvblNvdW5kQ3JlYXRlZCYmKGV4cGxvc2lvbk1QMz1uZXcgQXVkaW8odGhpcy5hdWRpb1VSTCksZXhwbG9zaW9uU291bmRDcmVhdGVkPSEwKTt0aGlzLmNyZWF0ZUdyYWRpZW50KHRoaXMuZndDb250YWluZXIsImJpZ0ZpcmVHcmFkIit0aGlzLm51bSxbe29mZnNldDoiMjAlIixzdHlsZToic3RvcC1jb2xvcjojZmZmO3N0b3Atb3BhY2l0eToxIn0se29mZnNldDoiNDUlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowLjYifSx7b2Zmc2V0OiIxMDAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowIn1dKTt0aGlzLmNyZWF0ZUZpbHRlcih0aGlzLmZ3Q29udGFpbmVyLCJzcGFya2xlc0dsb3ciK3RoaXMubnVtLCJGRkZGRkYiLDIpO3RoaXMuY3JlYXRlR3JhZGllbnQodGhpcy5md0NvbnRhaW5lciwiZXhwbG9zaW9uR3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjAlIixzdHlsZToic3RvcC1jb2xvcjojZmZmO3N0b3Atb3BhY2l0eToxIn0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5jcmVhdGVGaWx0ZXIodGhpcy5md0NvbnRhaW5lciwicGFydGljbGVzR2xvdyIrdGhpcy5udW0sdGhpcy5maXJlQ29sb3IsNCk7dGhpcy5jcmVhdGVHcmFkaWVudCh0aGlzLmZ3Q29udGFpbmVyLCJiYWNrbGlnaHRHcmFkIit0aGlzLm51bSxbe29mZnNldDoiMjAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowLjMifSx7b2Zmc2V0OiIxMDAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowIn1dKTt0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsPXRoaXMuY3JlYXRlU1ZHKCJjaXJjbGUiLCJiaWdGaXJlIix7Y3g6dGhpcy5md0NlbnRlcixjeTp0aGlzLmZ3Q2VudGVyLHI6dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cyxzdHJva2U6Im5vbmUiLGZpbGw6InVybCgjYmlnRmlyZUdyYWQiK3RoaXMubnVtKyIpIn0pO3RoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5hc2NlbmRpbmdGaXJlQmFsbCk7dmFyIGw9dGhpcy50aW1lQmVmb3JlRXhwbG9zaW9uK01hdGgubWF4KHRoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW4sdGhpcy5zaGluZUV4cGFuc2lvblRpbWUrdGhpcy5zaGluZUZhZGVPdXRUaW1lKSsxMDAseT10aGlzLnByb2plY3RpbGVUd2Vlbih0aGlzLmZ3Q29udGFpbmVyLGwsdix0aGlzLmdyYXZpdHksdGhpcy52ZWxYLHRoaXMudmVsWSksbj10aGlzLHM9ITEsbz1bWy44NSw4NV0sWy42LDMwXSxbLjg1LDEyMF0sWzEsMzBdXSx0PTA7aCgpO3RoaXMuc3BhcmtzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWx0ZXIiLCJ1cmwoI3NwYXJrbGVzR2xvdyIrdGhpcy5udW0rIikiKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ4Iix0aGlzLnNlcGFyYXRpb24pO3RoaXMuc3BhcmtzLnNldEF0dHJpYnV0ZU5TKG51bGwsInkiLHRoaXMuc2VwYXJhdGlvbik7dGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNwYXJrcyk7Yz1zZXRJbnRlcnZhbChmdW5jdGlvbigpe0NGaXJld29yay5wcm90b3R5cGUuYWRkU3BhcmsuY2FsbChuKX0sNSk7c2V0VGltZW91dChhLHRoaXMudGltZUJlZm9yZUV4cGxvc2lvbil9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlU1ZHPWZ1bmN0aW9uKG4sdCxpKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducyxuKSx1O3QhPW51bGwmJnIuc2V0QXR0cmlidXRlTlMobnVsbCwiaWQiLHQpO2Zvcih1IGluIGkpci5zZXRBdHRyaWJ1dGVOUyhudWxsLHUsaVt1XSk7cmV0dXJuIHJ9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlR3JhZGllbnQ9ZnVuY3Rpb24obix0LGkpe2Zvcih2YXIgZSxyLHUsbz10aGlzLmNyZWF0ZVNWRygicmFkaWFsR3JhZGllbnQiLHQse2N4OiI1MCUiLGN5OiI1MCUiLHI6IjUwJSIsZng6IjUwJSIsZnk6IjUwJSJ9KSxmPTA7ZjxpLmxlbmd0aDtmKyspe2U9aVtmXTtyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdG9wIik7Zm9yKHUgaW4gZSlyLmhhc0F0dHJpYnV0ZSh1KXx8ci5zZXRBdHRyaWJ1dGUodSxlW3VdKTtvLmFwcGVuZENoaWxkKHIpfXRoaXMuaW5zZXJ0RGVmKG4sbyl9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlRmlsdGVyPWZ1bmN0aW9uKG4sdCxpLHIpe3ZhciBmPXBhcnNlSW50KGksMTYpLG89KGY+PjE2JjI1NSkvMjU1LHM9KGY+PjgmMjU1KS8yNTUsaD0oZiYyNTUpLzI1NSx1PXRoaXMuY3JlYXRlU1ZHKCJmaWx0ZXIiLHQse30pLGw9dGhpcy5jcmVhdGVTVkcoImZlQ29sb3JNYXRyaXgiLG51bGwse3R5cGU6Im1hdHJpeCIsdmFsdWVzOiIwIDAgMCAiK28rIiAiK28rIiAgMCAwIDAgIitzKyIgIitzKyIgIDAgMCAwICIraCsiICIraCsiICAwIDAgMCAxIDAifSksYzt1LmFwcGVuZENoaWxkKGwpO2M9dGhpcy5jcmVhdGVTVkcoImZlR2F1c3NpYW5CbHVyIixudWxsLHtzdGREZXZpYXRpb246cixyZXN1bHQ6ImNvbG9yZWRCbHVyIn0pO3UuYXBwZW5kQ2hpbGQoYyk7dmFyIGU9dGhpcy5jcmVhdGVTVkcoImZlTWVyZ2UiLG51bGwse30pLGE9dGhpcy5jcmVhdGVTVkcoImZlTWVyZ2VOb2RlIixudWxsLHsiaW4iOiJjb2xvcmVkQmx1ciJ9KSx2PXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlTm9kZSIsbnVsbCx7ImluIjoiU291cmNlR3JhcGhpYyJ9KTtlLmFwcGVuZENoaWxkKGEpO2UuYXBwZW5kQ2hpbGQodik7dS5hcHBlbmRDaGlsZChlKTt0aGlzLmluc2VydERlZihuLHUpfTtDRmlyZXdvcmsucHJvdG90eXBlLmluc2VydERlZj1mdW5jdGlvbihuLHQpe3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiZGVmcyIpfHxuLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywiZGVmcyIpLG4uZmlyc3RDaGlsZCk7aS5hcHBlbmRDaGlsZCh0KX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5hZGRTcGFyaz1mdW5jdGlvbigpe2Z1bmN0aW9uIG8oKXtuLnJlbW92ZUNoaWxkKHQpfXZhciBpPTQwMCtNYXRoLnJhbmRvbSgpKjgwMCxyPXRoaXMudmVsWCtNYXRoLnJhbmRvbSgpKjIwLTEwLHU9TWF0aC5yYW5kb20oKSo4MCs0MCxmPXRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMrTWF0aC5yYW5kb20oKSozLTEuNSxlPXRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMrTWF0aC5yYW5kb20oKSo0LG49dGhpcy5zcGFya3MsdD1DRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUNpcmNsZS5jYWxsKHRoaXMsbixmLGUsMSwiRkZFRUI4Iik7dGhpcy5wcm9qZWN0aWxlVHdlZW4odCxpLG8sMCwtcix1LDEsMCl9O0NGaXJld29yay5wcm90b3R5cGUuZXhwbG9zaW9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZih0KXsxNTx0JiZ0PDQwJiZuLnNldFNWR3NjYWxlKG4uZmFzdEV4cGxvc2lvbiwxLjY3LG4uZndDZW50ZXIsbi5md0NlbnRlcik7NDA8PXQmJnQ8NjUmJm4uc2V0U1ZHc2NhbGUobi5mYXN0RXhwbG9zaW9uLDEsbi5md0NlbnRlcixuLmZ3Q2VudGVyKX1mdW5jdGlvbiBhKHQpe3ZhciBpPU1hdGgubWluKHQvbi5zaGluZUV4cGFuc2lvblRpbWUsMSkscj0uOSsuNyppKigyLWkpO24uc2hpbmVDb2xvci5zZXRBdHRyaWJ1dGUoInIiLHIqbi5zaGluZVJhZGl1cyl9ZnVuY3Rpb24gdigpe3ZhciB0PW4uYW5pbWF0aW9uKG4uc2hpbmVGYWRlT3V0VGltZSx5LG51bGwpfWZ1bmN0aW9uIHkodCl7dmFyIGk9TWF0aC5taW4odC9uLnNoaW5lRmFkZU91dFRpbWUsMSkscj0xLWkqaTtuLnNoaW5lQ29sb3Iuc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLHIpfXZhciBuPXRoaXMsdSxlLHQsbDtmb3IodGhpcy5zaGluZUNvbG9yPXRoaXMuY3JlYXRlU1ZHKCJjaXJjbGUiLCJzaGluZUNvbG9yIix7Y3g6dGhpcy5md0NlbnRlcixjeTp0aGlzLmZ3Q2VudGVyLHI6dGhpcy5zaGluZVJhZGl1cyxzdHJva2U6Im5vbmUiLGZpbGw6InVybCgjYmFja2xpZ2h0R3JhZCIrdGhpcy5udW0rIikifSksdGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNoaW5lQ29sb3IpLHRoaXMuZmFzdEV4cGxvc2lvbj10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwiZXhwbG9zaW9uIix7Y3g6dGhpcy5md0NlbnRlcixjeTp0aGlzLmZ3Q2VudGVyLHI6dGhpcy5maXJzdEV4cGxvc2lvblJhZGl1cyxzdHJva2U6Im5vbmUiLGZpbGw6InVybCgjZXhwbG9zaW9uR3JhZCIrdGhpcy5udW0rIikifSksdGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmZhc3RFeHBsb3Npb24pLHU9dGhpcy5hbmltYXRpb24oNjUsZixmdW5jdGlvbigpe24uZndDb250YWluZXIucmVtb3ZlQ2hpbGQobi5mYXN0RXhwbG9zaW9uKX0pLHRoaXMucGFydGljbGVzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKSx0aGlzLnBhcnRpY2xlcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWx0ZXIiLCJ1cmwoI3BhcnRpY2xlc0dsb3ciK3RoaXMubnVtKyIpIiksZT10aGlzLnBhcnRpY2xlcyx0PTA7dDx0aGlzLm51bUV4cGxvc2lvblBhcnRpY2xlczt0KyspdmFyIGk9TWF0aC5wb3coTWF0aC5yYW5kb20oKSwuMykqdGhpcy5leHBsb3Npb25WZWxvY2l0eSxyPU1hdGgucmFuZG9tKCkqMipNYXRoLlBJLG89aSpNYXRoLnNpbihyKSxzPWkqTWF0aC5jb3MociksaD01MCtNYXRoLnJhbmRvbSgpKnRoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW4sYz10aGlzLmNyZWF0ZUNpcmNsZSh0aGlzLnBhcnRpY2xlcyx0aGlzLmZ3Q2VudGVyLHRoaXMuZndDZW50ZXIsdGhpcy5leHBsb3Npb25QYXJ0aWNsZVJhZGl1cywiRkZGRkZGIix0aGlzLmZpcmVDb2xvcikscD10aGlzLmV4cGxvc2lvblBhcnRpY2xlVHdlZW4oYyxoLHRoaXMuZXhwbG9zaW9uUGFydGljbGVSYWRpdXMsdGhpcy5leHBsb3Npb25EZWNlbGVyYXRpb24sbyxzKTt0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMucGFydGljbGVzKTtsPXRoaXMuYW5pbWF0aW9uKHRoaXMuc2hpbmVFeHBhbnNpb25UaW1lLGEsdik7dGhpcy51c2VBdWRpbyYmKGV4cGxvc2lvbk1QMy5jdXJyZW50VGltZT0wLGV4cGxvc2lvbk1QMy5wbGF5KCkpfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUNpcmNsZT1mdW5jdGlvbihuLHQsaSxyLHUsZil7Zj10eXBlb2YgZiE9InVuZGVmaW5lZCI\/IiMiK2Y6Im5vbmUiO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJjaXJjbGUiKTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeCIsdCksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeSIsaSksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyIixyKSxlLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjIit1KSxlLnNldEF0dHJpYnV0ZU5TKG51bGwsInN0cm9rZSIsZiksZiE9Im5vbmUiJiZlLnNldEF0dHJpYnV0ZU5TKG51bGwsInN0cm9rZS13aWR0aCIsLjUpLG4uYXBwZW5kQ2hpbGQoZSksZX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5wcm9qZWN0aWxlVHdlZW49ZnVuY3Rpb24obix0LGkscix1LGYsZSxvKXtmdW5jdGlvbiBwKGkpe3ZhciBvLHAsdyx5O2w9aS1hO2E9aTtvPWwvMWUzO2YrPXIqbztwPXM\/ImN4IjoieCI7dz1zPyJjeSI6InkiO2guaW5jcmVhc2VQYXJhbWV0ZXIobixwLHUqbyk7aC5pbmNyZWFzZVBhcmFtZXRlcihuLHcsZipvKTtjJiYoeT1lK3YqKGkvdCkscz9uLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5Iix5KTpuLnN0eWxlLm9wYWNpdHk9eSl9dmFyIGgseTtlPXR5cGVvZiBlIT0idW5kZWZpbmVkIj9lOjE7bz10eXBlb2YgbyE9InVuZGVmaW5lZCI\/bzoxO3ZhciBjPWUhPW8sdj1vLWUsbD0wLGE9MCxzPW4ubm9kZU5hbWUhPSJzdmciO2MmJihzP24uc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLGUrIiIpOm4uc3R5bGUub3BhY2l0eT1lKTtoPXRoaXM7eT10aGlzLmFuaW1hdGlvbih0LHAsaSl9O0NGaXJld29yay5wcm90b3R5cGUuZXhwbG9zaW9uUGFydGljbGVUd2Vlbj1mdW5jdGlvbihuLHQsaSxyLHUsZil7ZnVuY3Rpb24gaChoKXt2YXIgbCxhLGM7ZT1oLXM7cz1oO2w9TWF0aC5wb3cocixlLzE3KTt1Kj1sO2YqPWw7YT1lLzFlMztvLmluY3JlYXNlUGFyYW1ldGVyKG4sImN4Iix1KmEpO28uaW5jcmVhc2VQYXJhbWV0ZXIobiwiY3kiLGYqYSk7Yz0xLS45KihoL3QpO2M9TWF0aC5tYXgoYywuMDEpO24uc2V0QXR0cmlidXRlKCJyIixjKmkpO24uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLC41KmMpfXZhciBvPXRoaXMsZT0wLHM9MCxjPXRoaXMuYW5pbWF0aW9uKHQsaCxudWxsKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5hbmltYXRpb249ZnVuY3Rpb24obix0LGkpe2Z1bmN0aW9uIHUoKXt2YXIgZT0obmV3IERhdGUpLmdldFRpbWUoKSxmO3I9PT1udWxsJiYocj1lKTtmPWUtcjt0KGYpO2Y8bj9zZXRUaW1lb3V0KHUsMTUpOmkhPW51bGwmJmkoKX1pPXR5cGVvZiBpIT0idW5kZWZpbmVkIj9pOm51bGw7dmFyIHI9bnVsbDt1KCl9O0NGaXJld29yay5wcm90b3R5cGUuaW5jcmVhc2VQYXJhbWV0ZXI9ZnVuY3Rpb24obix0LGkpe24uc2V0QXR0cmlidXRlKHQscGFyc2VGbG9hdChuLmdldEF0dHJpYnV0ZSh0KSkraSl9O0NGaXJld29yay5wcm90b3R5cGUuc2V0U1ZHc2NhbGU9ZnVuY3Rpb24obix0LGkscil7bi5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInNjYWxlKCIrdCsiKSIpO24uc2V0QXR0cmlidXRlKCJjeCIsaSsoMS10KSppL3QpO24uc2V0QXR0cmlidXRlKCJjeSIscisoMS10KSpyL3QpfTsvKkVPRiovOwovKiogL2pzL3ZhbmlsbGFqcy9pbWFzay5taW4uanMgKiovCiFmdW5jdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/ZShleHBvcnRzKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImV4cG9ydHMiXSxlKTplKCh0PSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOnR8fHNlbGYpLklNYXNrPXt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fSxpPW4oIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8bigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8bigib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxuKCJvYmplY3QiPT10eXBlb2YgZSYmZSl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkscj17fSx1PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIXQoKX1jYXRjaCh0KXtyZXR1cm4hMH19LHM9IXUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKSxhPSF1KChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpLG89YSxsPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLGg9bz9sLmJpbmQobCk6ZnVuY3Rpb24oKXtyZXR1cm4gbC5hcHBseShsLGFyZ3VtZW50cyl9LGM9e30sZj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZD1wJiYhZi5jYWxsKHsxOjJ9LDEpO2MuZj1kP2Z1bmN0aW9uKHQpe3ZhciBlPXAodGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06Zjt2YXIgdixnLGs9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmdCksY29uZmlndXJhYmxlOiEoMiZ0KSx3cml0YWJsZTohKDQmdCksdmFsdWU6ZX19LHk9YSxtPUZ1bmN0aW9uLnByb3RvdHlwZSxiPW0uYmluZCxfPW0uY2FsbCxBPXkmJmIuYmluZChfLF8pLEM9eT9mdW5jdGlvbih0KXtyZXR1cm4gdCYmQSh0KX06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJmZ1bmN0aW9uKCl7cmV0dXJuIF8uYXBwbHkodCxhcmd1bWVudHMpfX0sRT1DLEY9RSh7fS50b1N0cmluZyksUz1FKCIiLnNsaWNlKSx3PWZ1bmN0aW9uKHQpe3JldHVybiBTKEYodCksOCwtMSl9LEI9QyxEPXUseD13LE09aS5PYmplY3QsTz1CKCIiLnNwbGl0KSxQPUQoKGZ1bmN0aW9uKCl7cmV0dXJuIU0oInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09eCh0KT9PKHQsIiIpOk0odCl9Ok0sVD1pLlR5cGVFcnJvcixJPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpdGhyb3cgVCgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH0saj1QLFI9SSxWPWZ1bmN0aW9uKHQpe3JldHVybiBqKFIodCkpfSxMPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fSxOPUwsVT1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ\/bnVsbCE9PXQ6Tih0KX0sej1pLHE9TCxIPWZ1bmN0aW9uKHQpe3JldHVybiBxKHQpP3Q6dm9pZCAwfSxZPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9IKHpbdF0pOnpbdF0mJnpbdF1bZV19LFo9Qyh7fS5pc1Byb3RvdHlwZU9mKSxHPVkoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIixLPWksJD1HLFc9Sy5wcm9jZXNzLFg9Sy5EZW5vLEo9VyYmVy52ZXJzaW9uc3x8WCYmWC52ZXJzaW9uLFE9SiYmSi52ODtRJiYoZz0odj1RLnNwbGl0KCIuIikpWzBdPjAmJnZbMF08ND8xOisodlswXSt2WzFdKSksIWcmJiQmJighKHY9JC5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fHZbMV0+PTc0KSYmKHY9JC5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKGc9K3ZbMV0pO3ZhciB0dD1nLGV0PXUsbnQ9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhZXQoKGZ1bmN0aW9uKCl7dmFyIHQ9U3ltYm9sKCk7cmV0dXJuIVN0cmluZyh0KXx8IShPYmplY3QodClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmdHQmJnR0PDQxfSkpLGl0PW50JiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yLHJ0PVksdXQ9TCxzdD1aLGF0PWl0LG90PWkuT2JqZWN0LGx0PWF0P2Z1bmN0aW9uKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdH06ZnVuY3Rpb24odCl7dmFyIGU9cnQoIlN5bWJvbCIpO3JldHVybiB1dChlKSYmc3QoZS5wcm90b3R5cGUsb3QodCkpfSxodD1pLlN0cmluZyxjdD1MLGZ0PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gaHQodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fSxwdD1pLlR5cGVFcnJvcixkdD1mdW5jdGlvbih0KXtpZihjdCh0KSlyZXR1cm4gdDt0aHJvdyBwdChmdCh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9LHZ0PWgsZ3Q9TCxrdD1VLHl0PWkuVHlwZUVycm9yLG10PXtleHBvcnRzOnt9fSxidD1pLF90PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxBdD1mdW5jdGlvbih0LGUpe3RyeXtfdChidCx0LHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKG4pe2J0W3RdPWV9cmV0dXJuIGV9LEN0PUF0LEV0PSJfX2NvcmUtanNfc2hhcmVkX18iLEZ0PWlbRXRdfHxDdChFdCx7fSksU3Q9RnQ7KG10LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gU3RbdF18fChTdFt0XT12b2lkIDAhPT1lP2U6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4yMS4wIixtb2RlOiJnbG9iYWwiLGNvcHlyaWdodDoiqSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMjEuMC9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pO3ZhciB3dD1JLEJ0PWkuT2JqZWN0LER0PWZ1bmN0aW9uKHQpe3JldHVybiBCdCh3dCh0KSl9LHh0PUR0LE10PUMoe30uaGFzT3duUHJvcGVydHkpLE90PU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE10KHh0KHQpLGUpfSxQdD1DLFR0PTAsSXQ9TWF0aC5yYW5kb20oKSxqdD1QdCgxLi50b1N0cmluZyksUnQ9ZnVuY3Rpb24odCl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT10PyIiOnQpKyIpXyIranQoKytUdCtJdCwzNil9LFZ0PWksTHQ9bXQuZXhwb3J0cyxOdD1PdCxVdD1SdCx6dD1udCxxdD1pdCxIdD1MdCgid2tzIiksWXQ9VnQuU3ltYm9sLFp0PVl0JiZZdC5mb3IsR3Q9cXQ\/WXQ6WXQmJll0LndpdGhvdXRTZXR0ZXJ8fFV0LEt0PWZ1bmN0aW9uKHQpe2lmKCFOdChIdCx0KXx8IXp0JiYic3RyaW5nIiE9dHlwZW9mIEh0W3RdKXt2YXIgZT0iU3ltYm9sLiIrdDt6dCYmTnQoWXQsdCk\/SHRbdF09WXRbdF06SHRbdF09cXQmJlp0P1p0KGUpOkd0KGUpfXJldHVybiBIdFt0XX0sJHQ9aCxXdD1VLFh0PWx0LEp0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dFtlXTtyZXR1cm4gbnVsbD09bj92b2lkIDA6ZHQobil9LFF0PWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtpZigic3RyaW5nIj09PWUmJmd0KG49dC50b1N0cmluZykmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO2lmKGd0KG49dC52YWx1ZU9mKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7aWYoInN0cmluZyIhPT1lJiZndChuPXQudG9TdHJpbmcpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTt0aHJvdyB5dCgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9LHRlPUt0LGVlPWkuVHlwZUVycm9yLG5lPXRlKCJ0b1ByaW1pdGl2ZSIpLGllPWZ1bmN0aW9uKHQsZSl7aWYoIVd0KHQpfHxYdCh0KSlyZXR1cm4gdDt2YXIgbixpPUp0KHQsbmUpO2lmKGkpe2lmKHZvaWQgMD09PWUmJihlPSJkZWZhdWx0Iiksbj0kdChpLHQsZSksIVd0KG4pfHxYdChuKSlyZXR1cm4gbjt0aHJvdyBlZSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxRdCh0LGUpfSxyZT1sdCx1ZT1mdW5jdGlvbih0KXt2YXIgZT1pZSh0LCJzdHJpbmciKTtyZXR1cm4gcmUoZSk\/ZTplKyIifSxzZT1VLGFlPWkuZG9jdW1lbnQsb2U9c2UoYWUpJiZzZShhZS5jcmVhdGVFbGVtZW50KSxsZT1mdW5jdGlvbih0KXtyZXR1cm4gb2U\/YWUuY3JlYXRlRWxlbWVudCh0KTp7fX0saGU9IXMmJiF1KChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkobGUoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKSxjZT1zLGZlPWgscGU9YyxkZT1rLHZlPVYsZ2U9dWUsa2U9T3QseWU9aGUsbWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtyLmY9Y2U\/bWU6ZnVuY3Rpb24odCxlKXtpZih0PXZlKHQpLGU9Z2UoZSkseWUpdHJ5e3JldHVybiBtZSh0LGUpfWNhdGNoKHQpe31pZihrZSh0LGUpKXJldHVybiBkZSghZmUocGUuZix0LGUpLHRbZV0pfTt2YXIgYmU9e30sX2U9cyYmdSgoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSksQWU9aSxDZT1VLEVlPUFlLlN0cmluZyxGZT1BZS5UeXBlRXJyb3IsU2U9ZnVuY3Rpb24odCl7aWYoQ2UodCkpcmV0dXJuIHQ7dGhyb3cgRmUoRWUodCkrIiBpcyBub3QgYW4gb2JqZWN0Iil9LHdlPXMsQmU9aGUsRGU9X2UseGU9U2UsTWU9dWUsT2U9aS5UeXBlRXJyb3IsUGU9T2JqZWN0LmRlZmluZVByb3BlcnR5LFRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsSWU9ImVudW1lcmFibGUiLGplPSJjb25maWd1cmFibGUiLFJlPSJ3cml0YWJsZSI7YmUuZj13ZT9EZT9mdW5jdGlvbih0LGUsbil7aWYoeGUodCksZT1NZShlKSx4ZShuKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gbiYmUmUgaW4gbiYmIW4ud3JpdGFibGUpe3ZhciBpPVRlKHQsZSk7aSYmaS53cml0YWJsZSYmKHRbZV09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6amUgaW4gbj9uLmNvbmZpZ3VyYWJsZTppLmNvbmZpZ3VyYWJsZSxlbnVtZXJhYmxlOkllIGluIG4\/bi5lbnVtZXJhYmxlOmkuZW51bWVyYWJsZSx3cml0YWJsZTohMX0pfXJldHVybiBQZSh0LGUsbil9OlBlOmZ1bmN0aW9uKHQsZSxuKXtpZih4ZSh0KSxlPU1lKGUpLHhlKG4pLEJlKXRyeXtyZXR1cm4gUGUodCxlLG4pfWNhdGNoKHQpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBPZSgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKHRbZV09bi52YWx1ZSksdH07dmFyIFZlPWJlLExlPWssTmU9cz9mdW5jdGlvbih0LGUsbil7cmV0dXJuIFZlLmYodCxlLExlKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fSxVZT17ZXhwb3J0czp7fX0semU9TCxxZT1GdCxIZT1DKEZ1bmN0aW9uLnRvU3RyaW5nKTt6ZShxZS5pbnNwZWN0U291cmNlKXx8KHFlLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIEhlKHQpfSk7dmFyIFllLFplLEdlLEtlPXFlLmluc3BlY3RTb3VyY2UsJGU9TCxXZT1LZSxYZT1pLldlYWtNYXAsSmU9JGUoWGUpJiYvbmF0aXZlIGNvZGUvLnRlc3QoV2UoWGUpKSxRZT1tdC5leHBvcnRzLHRuPVJ0LGVuPVFlKCJrZXlzIiksbm49e30scm49SmUsdW49aSxzbj1DLGFuPVUsb249TmUsbG49T3QsaG49RnQsY249ZnVuY3Rpb24odCl7cmV0dXJuIGVuW3RdfHwoZW5bdF09dG4odCkpfSxmbj1ubixwbj0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLGRuPXVuLlR5cGVFcnJvcix2bj11bi5XZWFrTWFwO2lmKHJufHxobi5zdGF0ZSl7dmFyIGduPWhuLnN0YXRlfHwoaG4uc3RhdGU9bmV3IHZuKSxrbj1zbihnbi5nZXQpLHluPXNuKGduLmhhcyksbW49c24oZ24uc2V0KTtZZT1mdW5jdGlvbih0LGUpe2lmKHluKGduLHQpKXRocm93IG5ldyBkbihwbik7cmV0dXJuIGUuZmFjYWRlPXQsbW4oZ24sdCxlKSxlfSxaZT1mdW5jdGlvbih0KXtyZXR1cm4ga24oZ24sdCl8fHt9fSxHZT1mdW5jdGlvbih0KXtyZXR1cm4geW4oZ24sdCl9fWVsc2V7dmFyIGJuPWNuKCJzdGF0ZSIpO2ZuW2JuXT0hMCxZZT1mdW5jdGlvbih0LGUpe2lmKGxuKHQsYm4pKXRocm93IG5ldyBkbihwbik7cmV0dXJuIGUuZmFjYWRlPXQsb24odCxibixlKSxlfSxaZT1mdW5jdGlvbih0KXtyZXR1cm4gbG4odCxibik\/dFtibl06e319LEdlPWZ1bmN0aW9uKHQpe3JldHVybiBsbih0LGJuKX19dmFyIF9uPXtzZXQ6WWUsZ2V0OlplLGhhczpHZSxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBHZSh0KT9aZSh0KTpZZSh0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbjtpZighYW4oZSl8fChuPVplKGUpKS50eXBlIT09dCl0aHJvdyBkbigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBufX19LEFuPXMsQ249T3QsRW49RnVuY3Rpb24ucHJvdG90eXBlLEZuPUFuJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFNuPUNuKEVuLCJuYW1lIiksd249U24mJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsQm49U24mJighQW58fEFuJiZGbihFbiwibmFtZSIpLmNvbmZpZ3VyYWJsZSksRG49aSx4bj1MLE1uPU90LE9uPU5lLFBuPUF0LFRuPUtlLEluPXtFWElTVFM6U24sUFJPUEVSOnduLENPTkZJR1VSQUJMRTpCbn0uQ09ORklHVVJBQkxFLGpuPV9uLmdldCxSbj1fbi5lbmZvcmNlLFZuPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKTsoVWUuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PSEhaSYmISFpLnVuc2FmZSxzPSEhaSYmISFpLmVudW1lcmFibGUsYT0hIWkmJiEhaS5ub1RhcmdldEdldCxvPWkmJnZvaWQgMCE9PWkubmFtZT9pLm5hbWU6ZTt4bihuKSYmKCJTeW1ib2woIj09PVN0cmluZyhvKS5zbGljZSgwLDcpJiYobz0iWyIrU3RyaW5nKG8pLnJlcGxhY2UoL15TeW1ib2xcKChbXildKilcKS8sIiQxIikrIl0iKSwoIU1uKG4sIm5hbWUiKXx8SW4mJm4ubmFtZSE9PW8pJiZPbihuLCJuYW1lIixvKSwocj1SbihuKSkuc291cmNlfHwoci5zb3VyY2U9Vm4uam9pbigic3RyaW5nIj09dHlwZW9mIG8\/bzoiIikpKSx0IT09RG4\/KHU\/IWEmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09bjpPbih0LGUsbikpOnM\/dFtlXT1uOlBuKGUsbil9KShGdW5jdGlvbi5wcm90b3R5cGUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4geG4odGhpcykmJmpuKHRoaXMpLnNvdXJjZXx8VG4odGhpcyl9KSk7dmFyIExuPXt9LE5uPU1hdGguY2VpbCxVbj1NYXRoLmZsb29yLHpuPWZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybiBlIT1lfHwwPT09ZT8wOihlPjA\/VW46Tm4pKGUpfSxxbj16bixIbj1NYXRoLm1heCxZbj1NYXRoLm1pbixabj16bixHbj1NYXRoLm1pbixLbj1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP0duKFpuKHQpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9LCRuPUtuLFduPVYsWG49ZnVuY3Rpb24odCxlKXt2YXIgbj1xbih0KTtyZXR1cm4gbjwwP0huKG4rZSwwKTpZbihuLGUpfSxKbj1mdW5jdGlvbih0KXtyZXR1cm4gJG4odC5sZW5ndGgpfSxRbj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByLHU9V24oZSkscz1Kbih1KSxhPVhuKGkscyk7aWYodCYmbiE9bil7Zm9yKDtzPmE7KWlmKChyPXVbYSsrXSkhPXIpcmV0dXJuITB9ZWxzZSBmb3IoO3M+YTthKyspaWYoKHR8fGEgaW4gdSkmJnVbYV09PT1uKXJldHVybiB0fHxhfHwwO3JldHVybiF0JiYtMX19LHRpPXtpbmNsdWRlczpRbighMCksaW5kZXhPZjpRbighMSl9LGVpPU90LG5pPVYsaWk9dGkuaW5kZXhPZixyaT1ubix1aT1DKFtdLnB1c2gpLHNpPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1uaSh0KSxyPTAsdT1bXTtmb3IobiBpbiBpKSFlaShyaSxuKSYmZWkoaSxuKSYmdWkodSxuKTtmb3IoO2UubGVuZ3RoPnI7KWVpKGksbj1lW3IrK10pJiYofmlpKHUsbil8fHVpKHUsbikpO3JldHVybiB1fSxhaT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLG9pPXNpLGxpPWFpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7TG4uZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7cmV0dXJuIG9pKHQsbGkpfTt2YXIgaGk9e307aGkuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO3ZhciBjaT1ZLGZpPUxuLHBpPWhpLGRpPVNlLHZpPUMoW10uY29uY2F0KSxnaT1jaSgiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9ZmkuZihkaSh0KSksbj1waS5mO3JldHVybiBuP3ZpKGUsbih0KSk6ZX0sa2k9T3QseWk9Z2ksbWk9cixiaT1iZSxfaT11LEFpPUwsQ2k9LyN8XC5wcm90b3R5cGVcLi8sRWk9ZnVuY3Rpb24odCxlKXt2YXIgbj1TaVtGaSh0KV07cmV0dXJuIG49PUJpfHxuIT13aSYmKEFpKGUpP19pKGUpOiEhZSl9LEZpPUVpLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UoQ2ksIi4iKS50b0xvd2VyQ2FzZSgpfSxTaT1FaS5kYXRhPXt9LHdpPUVpLk5BVElWRT0iTiIsQmk9RWkuUE9MWUZJTEw9IlAiLERpPUVpLHhpPWksTWk9ci5mLE9pPU5lLFBpPVVlLmV4cG9ydHMsVGk9QXQsSWk9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT15aShlKSxyPWJpLmYsdT1taS5mLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGE9aVtzXTtraSh0LGEpfHxuJiZraShuLGEpfHxyKHQsYSx1KGUsYSkpfX0samk9RGksUmk9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsdSxzLGE9dC50YXJnZXQsbz10Lmdsb2JhbCxsPXQuc3RhdDtpZihuPW8\/eGk6bD94aVthXXx8VGkoYSx7fSk6KHhpW2FdfHx7fSkucHJvdG90eXBlKWZvcihpIGluIGUpe2lmKHU9ZVtpXSxyPXQubm9UYXJnZXRHZXQ\/KHM9TWkobixpKSkmJnMudmFsdWU6bltpXSwhamkobz9pOmErKGw\/Ii4iOiIjIikraSx0LmZvcmNlZCkmJnZvaWQgMCE9PXIpe2lmKHR5cGVvZiB1PT10eXBlb2Ygciljb250aW51ZTtJaSh1LHIpfSh0LnNoYW18fHImJnIuc2hhbSkmJk9pKHUsInNoYW0iLCEwKSxQaShuLGksdSx0KX19LFZpPXNpLExpPWFpLE5pPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gVmkodCxMaSl9LFVpPXMsemk9QyxxaT1oLEhpPXUsWWk9TmksWmk9aGksR2k9YyxLaT1EdCwkaT1QLFdpPU9iamVjdC5hc3NpZ24sWGk9T2JqZWN0LmRlZmluZVByb3BlcnR5LEppPXppKFtdLmNvbmNhdCksUWk9IVdpfHxIaSgoZnVuY3Rpb24oKXtpZihVaSYmMSE9PVdpKHtiOjF9LFdpKFhpKHt9LCJhIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtYaSh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciB0PXt9LGU9e30sbj1TeW1ib2woKSxpPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHRbbl09NyxpLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9V2koe30sdClbbl18fFlpKFdpKHt9LGUpKS5qb2luKCIiKSE9aX0pKT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1LaSh0KSxpPWFyZ3VtZW50cy5sZW5ndGgscj0xLHU9WmkuZixzPUdpLmY7aT5yOylmb3IodmFyIGEsbz0kaShhcmd1bWVudHNbcisrXSksbD11P0ppKFlpKG8pLHUobykpOllpKG8pLGg9bC5sZW5ndGgsYz0wO2g+YzspYT1sW2MrK10sVWkmJiFxaShzLG8sYSl8fChuW2FdPW9bYV0pO3JldHVybiBufTpXaSx0cj1RaTtSaSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT10cn0se2Fzc2lnbjp0cn0pO3ZhciBlcj17fTtlcltLdCgidG9TdHJpbmdUYWciKV09InoiO3ZhciBucj1pLGlyPSJbb2JqZWN0IHpdIj09PVN0cmluZyhlcikscnI9TCx1cj13LHNyPUt0KCJ0b1N0cmluZ1RhZyIpLGFyPW5yLk9iamVjdCxvcj0iQXJndW1lbnRzIj09dXIoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxscj1pcj91cjpmdW5jdGlvbih0KXt2YXIgZSxuLGk7cmV0dXJuIHZvaWQgMD09PXQ\/IlVuZGVmaW5lZCI6bnVsbD09PXQ\/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaCh0KXt9fShlPWFyKHQpLHNyKSk\/bjpvcj91cihlKToiT2JqZWN0Ij09KGk9dXIoZSkpJiZycihlLmNhbGxlZSk\/IkFyZ3VtZW50cyI6aX0saHI9aS5TdHJpbmcsY3I9ZnVuY3Rpb24odCl7aWYoIlN5bWJvbCI9PT1scih0KSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIGhyKHQpfSxmcj16bixwcj1jcixkcj1JLHZyPWkuUmFuZ2VFcnJvcixncj1mdW5jdGlvbih0KXt2YXIgZT1wcihkcih0aGlzKSksbj0iIixpPWZyKHQpO2lmKGk8MHx8aT09MS8wKXRocm93IHZyKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufTtSaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7cmVwZWF0OmdyfSk7dmFyIGtyPUMseXI9S24sbXI9Y3IsYnI9SSxfcj1rcihnciksQXI9a3IoIiIuc2xpY2UpLENyPU1hdGguY2VpbCxFcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByLHUscz1tcihicihlKSksYT15cihuKSxvPXMubGVuZ3RoLGw9dm9pZCAwPT09aT8iICI6bXIoaSk7cmV0dXJuIGE8PW98fCIiPT1sP3M6KCh1PV9yKGwsQ3IoKHI9YS1vKS9sLmxlbmd0aCkpKS5sZW5ndGg+ciYmKHU9QXIodSwwLHIpKSx0P3MrdTp1K3MpfX0sRnI9e3N0YXJ0OkVyKCExKSxlbmQ6RXIoITApfSxTcj0vVmVyc2lvblwvMTAoPzpcLlxkKyl7MSwyfSg\/OiBbXHcuL10rKT8oPzogTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChHKSx3cj1Gci5zdGFydDtSaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpTcn0se3BhZFN0YXJ0OmZ1bmN0aW9uKHQpe3JldHVybiB3cih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pO3ZhciBCcj1Gci5lbmQ7ZnVuY3Rpb24gRHIodCl7cmV0dXJuIERyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxEcih0KX1mdW5jdGlvbiB4cih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE1yKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19ZnVuY3Rpb24gT3IodCxlLG4pe3JldHVybiBlJiZNcih0LnByb3RvdHlwZSxlKSxuJiZNcih0LG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHR9ZnVuY3Rpb24gUHIodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmSXIodCxlKX1mdW5jdGlvbiBUcih0KXtyZXR1cm4gVHI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sVHIodCl9ZnVuY3Rpb24gSXIodCxlKXtyZXR1cm4gSXI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LElyKHQsZSl9ZnVuY3Rpb24ganIodCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLGkscj1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG4saSxyPXt9LHU9T2JqZWN0LmtleXModCk7Zm9yKGk9MDtpPHUubGVuZ3RoO2krKyluPXVbaV0sZS5pbmRleE9mKG4pPj0wfHwocltuXT10W25dKTtyZXR1cm4gcn0odCxlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspbj11W2ldLGUuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsbikmJihyW25dPXRbbl0pfXJldHVybiByfWZ1bmN0aW9uIFJyKHQsZSl7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fSh0KX1mdW5jdGlvbiBWcih0KXt2YXIgZT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4saT1Ucih0KTtpZihlKXt2YXIgcj1Ucih0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KGksYXJndW1lbnRzLHIpfWVsc2Ugbj1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gUnIodGhpcyxuKX19ZnVuY3Rpb24gTHIodCxlKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmbnVsbCE9PSh0PVRyKHQpKTspO3JldHVybiB0fWZ1bmN0aW9uIE5yKCl7cmV0dXJuIE5yPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ\/UmVmbGVjdC5nZXQ6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPUxyKHQsZSk7aWYoaSl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpO3JldHVybiByLmdldD9yLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz90Om4pOnIudmFsdWV9fSxOci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVXIodCxlLG4saSl7cmV0dXJuIFVyPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5zZXQ\/UmVmbGVjdC5zZXQ6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT1Mcih0LGUpO2lmKHUpe2lmKChyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSxlKSkuc2V0KXJldHVybiByLnNldC5jYWxsKGksbiksITA7aWYoIXIud3JpdGFibGUpcmV0dXJuITF9aWYocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSkpe2lmKCFyLndyaXRhYmxlKXJldHVybiExO3IudmFsdWU9bixPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHIpfWVsc2UhZnVuY3Rpb24odCxlLG4pe2UgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1ufShpLGUsbik7cmV0dXJuITB9LFVyKHQsZSxuLGkpfWZ1bmN0aW9uIHpyKHQsZSxuLGkscil7aWYoIVVyKHQsZSxuLGl8fHQpJiZyKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIHNldCBwcm9wZXJ0eSIpO3JldHVybiBufWZ1bmN0aW9uIHFyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciBuPW51bGw9PXQ\/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobnVsbD09bilyZXR1cm47dmFyIGkscix1PVtdLHM9ITAsYT0hMTt0cnl7Zm9yKG49bi5jYWxsKHQpOyEocz0oaT1uLm5leHQoKSkuZG9uZSkmJih1LnB1c2goaS52YWx1ZSksIWV8fHUubGVuZ3RoIT09ZSk7cz0hMCk7fWNhdGNoKHQpe2E9ITAscj10fWZpbmFsbHl7dHJ5e3N8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyByfX1yZXR1cm4gdX0odCxlKXx8ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm47aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBIcih0LGUpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20odCk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig\/OlVpfEkpbnQoPzo4fDE2fDMyKSg\/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gSHIodCxlKX0odCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEhyKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAsaT1uZXcgQXJyYXkoZSk7bjxlO24rKylpW25dPXRbbl07cmV0dXJuIGl9Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6U3J9LHtwYWRFbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIEJyKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE\/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUmkoe2dsb2JhbDohMH0se2dsb2JhbFRoaXM6aX0pO3ZhciBZcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSxPYmplY3QuYXNzaWduKHRoaXMse2luc2VydGVkOiIiLHJhd0luc2VydGVkOiIiLHNraXA6ITEsdGFpbFNoaWZ0OjB9LGUpfXJldHVybiBPcih0LFt7a2V5OiJhZ2dyZWdhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJhd0luc2VydGVkKz10LnJhd0luc2VydGVkLHRoaXMuc2tpcD10aGlzLnNraXB8fHQuc2tpcCx0aGlzLmluc2VydGVkKz10Lmluc2VydGVkLHRoaXMudGFpbFNoaWZ0Kz10LnRhaWxTaGlmdCx0aGlzfX0se2tleToib2Zmc2V0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWlsU2hpZnQrdGhpcy5pbnNlcnRlZC5sZW5ndGh9fV0pLHR9KCk7ZnVuY3Rpb24gWnIodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nfXZhciBHcj0iTk9ORSIsS3I9IkxFRlQiLCRyPSJGT1JDRV9MRUZUIixXcj0iUklHSFQiLFhyPSJGT1JDRV9SSUdIVCI7ZnVuY3Rpb24gSnIodCl7cmV0dXJuIHQucmVwbGFjZSgvKFsuKis\/Xj0hOiR7fSgpfFtcXVwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gUXIodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk\/dDpbdCxuZXcgWXJdfWZ1bmN0aW9uIHR1KHQsZSl7aWYoZT09PXQpcmV0dXJuITA7dmFyIG4saT1BcnJheS5pc0FycmF5KGUpLHI9QXJyYXkuaXNBcnJheSh0KTtpZihpJiZyKXtpZihlLmxlbmd0aCE9dC5sZW5ndGgpcmV0dXJuITE7Zm9yKG49MDtuPGUubGVuZ3RoO24rKylpZighdHUoZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihpIT1yKXJldHVybiExO2lmKGUmJnQmJiJvYmplY3QiPT09RHIoZSkmJiJvYmplY3QiPT09RHIodCkpe3ZhciB1PWUgaW5zdGFuY2VvZiBEYXRlLHM9dCBpbnN0YW5jZW9mIERhdGU7aWYodSYmcylyZXR1cm4gZS5nZXRUaW1lKCk9PXQuZ2V0VGltZSgpO2lmKHUhPXMpcmV0dXJuITE7dmFyIGE9ZSBpbnN0YW5jZW9mIFJlZ0V4cCxvPXQgaW5zdGFuY2VvZiBSZWdFeHA7aWYoYSYmbylyZXR1cm4gZS50b1N0cmluZygpPT10LnRvU3RyaW5nKCk7aWYoYSE9bylyZXR1cm4hMTt2YXIgbD1PYmplY3Qua2V5cyhlKTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsW25dKSlyZXR1cm4hMTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWlmKCF0dSh0W2xbbl1dLGVbbFtuXV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiEoIWV8fCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQpJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCl9dmFyIGV1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4saSxyKXtmb3IoeHIodGhpcyx0KSx0aGlzLnZhbHVlPWUsdGhpcy5jdXJzb3JQb3M9bix0aGlzLm9sZFZhbHVlPWksdGhpcy5vbGRTZWxlY3Rpb249cjt0aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5zdGFydENoYW5nZVBvcykhPT10aGlzLm9sZFZhbHVlLnNsaWNlKDAsdGhpcy5zdGFydENoYW5nZVBvcyk7KS0tdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnR9cmV0dXJuIE9yKHQsW3trZXk6InN0YXJ0Q2hhbmdlUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5jdXJzb3JQb3MsdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQpfX0se2tleToiaW5zZXJ0ZWRDb3VudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3Vyc29yUG9zLXRoaXMuc3RhcnRDaGFuZ2VQb3N9fSx7a2V5OiJpbnNlcnRlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyKHRoaXMuc3RhcnRDaGFuZ2VQb3MsdGhpcy5pbnNlcnRlZENvdW50KX19LHtrZXk6InJlbW92ZWRDb3VudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMub2xkU2VsZWN0aW9uLmVuZC10aGlzLnN0YXJ0Q2hhbmdlUG9zfHx0aGlzLm9sZFZhbHVlLmxlbmd0aC10aGlzLnZhbHVlLmxlbmd0aCwwKX19LHtrZXk6InJlbW92ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9sZFZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMucmVtb3ZlZENvdW50KX19LHtrZXk6ImhlYWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZygwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpfX0se2tleToidGFpbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyaW5nKHRoaXMuc3RhcnRDaGFuZ2VQb3MrdGhpcy5pbnNlcnRlZENvdW50KX19LHtrZXk6InJlbW92ZURpcmVjdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVtb3ZlZENvdW50fHx0aGlzLmluc2VydGVkQ291bnQ\/R3I6dGhpcy5vbGRTZWxlY3Rpb24uZW5kIT09dGhpcy5jdXJzb3JQb3MmJnRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0IT09dGhpcy5jdXJzb3JQb3N8fHRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0P0tyOldyfX1dKSx0fSgpLG51PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7eHIodGhpcyx0KSx0aGlzLnZhbHVlPWUsdGhpcy5mcm9tPW4sdGhpcy5zdG9wPWl9cmV0dXJuIE9yKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfX0se2tleToiZXh0ZW5kIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLnZhbHVlKz1TdHJpbmcodCl9fSx7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwZW5kKHRoaXMudG9TdHJpbmcoKSx7dGFpbDohMH0pLmFnZ3JlZ2F0ZSh0Ll9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6dGhpcy52YWx1ZSxmcm9tOnRoaXMuZnJvbSxzdG9wOnRoaXMuc3RvcH19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZighdGhpcy52YWx1ZS5sZW5ndGh8fG51bGwhPXQmJnRoaXMuZnJvbT49dClyZXR1cm4iIjt2YXIgZT10aGlzLnZhbHVlWzBdO3JldHVybiB0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMSksZX19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLnZhbHVlLmxlbmd0aClyZXR1cm4iIjt2YXIgdD10aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoLTFdO3JldHVybiB0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCwtMSksdH19XSksdH0oKTtmdW5jdGlvbiBpdSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBpdS5JbnB1dE1hc2sodCxlKX12YXIgcnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksdGhpcy5fdmFsdWU9IiIsdGhpcy5fdXBkYXRlKE9iamVjdC5hc3NpZ24oe30sdC5ERUZBVUxUUyxlKSksdGhpcy5pc0luaXRpYWxpemVkPSEwfXJldHVybiBPcih0LFt7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXtPYmplY3Qua2V5cyh0KS5sZW5ndGgmJnRoaXMud2l0aFZhbHVlUmVmcmVzaCh0aGlzLl91cGRhdGUuYmluZCh0aGlzLHQpKX19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMudmFsdWV9fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fdmFsdWU9dC5fdmFsdWV9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl92YWx1ZT0iIn19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc29sdmUodCl9fSx7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse2lucHV0OiEwfSwiIiksdGhpcy5kb0NvbW1pdCgpLHRoaXMudmFsdWV9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHt9LCIiKSx0aGlzLmRvQ29tbWl0KCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb1BhcnNlKHRoaXMudmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZT10aGlzLmRvRm9ybWF0KHQpfX0se2tleToicmF3SW5wdXRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXh0cmFjdElucHV0KDAsdGhpcy52YWx1ZS5sZW5ndGgse3JhdzohMH0pfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse3JhdzohMH0sIiIpLHRoaXMuZG9Db21taXQoKX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQ29tcGxldGV9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMudmFsdWUuc2xpY2UodCxlKX19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiBuZXcgbnUodGhpcy5leHRyYWN0SW5wdXQodCxlKSx0KX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBacih0KSYmKHQ9bmV3IG51KFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ\/KHRoaXMuX3ZhbHVlKz10LG5ldyBZcih7aW5zZXJ0ZWQ6dCxyYXdJbnNlcnRlZDp0fSkpOm5ldyBZcn19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9dGhpcy5zdGF0ZSx1PVFyKHRoaXMuZG9QcmVwYXJlKHQsbikpLHM9cXIodSwyKTtpZih0PXNbMF0sKGU9KGU9c1sxXSkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXJSYXcodCxuKSkpLmluc2VydGVkKXt2YXIgYSxvPSExIT09dGhpcy5kb1ZhbGlkYXRlKG4pO2lmKG8mJm51bGwhPWkpe3ZhciBsPXRoaXMuc3RhdGU7ITA9PT10aGlzLm92ZXJ3cml0ZSYmKGE9aS5zdGF0ZSxpLnVuc2hpZnQodGhpcy52YWx1ZS5sZW5ndGgpKTt2YXIgaD10aGlzLmFwcGVuZFRhaWwoaSk7KG89aC5yYXdJbnNlcnRlZD09PWkudG9TdHJpbmcoKSkmJmguaW5zZXJ0ZWR8fCJzaGlmdCIhPT10aGlzLm92ZXJ3cml0ZXx8KHRoaXMuc3RhdGU9bCxhPWkuc3RhdGUsaS5zaGlmdCgpLG89KGg9dGhpcy5hcHBlbmRUYWlsKGkpKS5yYXdJbnNlcnRlZD09PWkudG9TdHJpbmcoKSksbyYmaC5pbnNlcnRlZCYmKHRoaXMuc3RhdGU9bCl9b3x8KGU9bmV3IFlyLHRoaXMuc3RhdGU9cixpJiZhJiYoaS5zdGF0ZT1hKSl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7aWYoIVpyKHQpKXRocm93IG5ldyBFcnJvcigidmFsdWUgc2hvdWxkIGJlIHN0cmluZyIpO3ZhciBpPW5ldyBZcixyPVpyKG4pP25ldyBudShTdHJpbmcobikpOm47ZSYmZS50YWlsJiYoZS5fYmVmb3JlVGFpbFN0YXRlPXRoaXMuc3RhdGUpO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7Kyt1KWkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXIodFt1XSxlLHIpKTtyZXR1cm4gbnVsbCE9ciYmKGkudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwocikudGFpbFNoaWZ0KSx0aGlzLmVhZ2VyJiZudWxsIT1lJiZlLmlucHV0JiZ0JiZpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRFYWdlcigpKSxpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdCkrdGhpcy52YWx1ZS5zbGljZShlKSxuZXcgWXJ9fSx7a2V5OiJ3aXRoVmFsdWVSZWZyZXNoIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9yZWZyZXNoaW5nfHwhdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0KCk7dGhpcy5fcmVmcmVzaGluZz0hMDt2YXIgZT10aGlzLnJhd0lucHV0VmFsdWUsbj10aGlzLnZhbHVlLGk9dCgpO3JldHVybiB0aGlzLnJhd0lucHV0VmFsdWU9ZSx0aGlzLnZhbHVlJiZ0aGlzLnZhbHVlIT09biYmMD09PW4uaW5kZXhPZih0aGlzLnZhbHVlKSYmdGhpcy5hcHBlbmQobi5zbGljZSh0aGlzLnZhbHVlLmxlbmd0aCkse30sIiIpLGRlbGV0ZSB0aGlzLl9yZWZyZXNoaW5nLGl9fSx7a2V5OiJydW5Jc29sYXRlZCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5faXNvbGF0ZWR8fCF0aGlzLmlzSW5pdGlhbGl6ZWQpcmV0dXJuIHQodGhpcyk7dGhpcy5faXNvbGF0ZWQ9ITA7dmFyIGU9dGhpcy5zdGF0ZSxuPXQodGhpcyk7cmV0dXJuIHRoaXMuc3RhdGU9ZSxkZWxldGUgdGhpcy5faXNvbGF0ZWQsbn19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLnByZXBhcmU\/dGhpcy5wcmVwYXJlKHQsdGhpcyxlKTp0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKCF0aGlzLnZhbGlkYXRlfHx0aGlzLnZhbGlkYXRlKHRoaXMudmFsdWUsdGhpcyx0KSkmJighdGhpcy5wYXJlbnR8fHRoaXMucGFyZW50LmRvVmFsaWRhdGUodCkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb21taXQmJnRoaXMuY29tbWl0KHRoaXMudmFsdWUsdGhpcyl9fSx7a2V5OiJkb0Zvcm1hdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZm9ybWF0P3RoaXMuZm9ybWF0KHQsdGhpcyk6dH19LHtrZXk6ImRvUGFyc2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBhcnNlP3RoaXMucGFyc2UodCx0aGlzKTp0fX0se2tleToic3BsaWNlIix2YWx1ZTpmdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PXQrZSxzPXRoaXMuZXh0cmFjdFRhaWwodSk7dGhpcy5lYWdlciYmKGk9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgS3I6cmV0dXJuICRyO2Nhc2UgV3I6cmV0dXJuIFhyO2RlZmF1bHQ6cmV0dXJuIHR9fShpKSxyPXRoaXMuZXh0cmFjdElucHV0KDAsdSx7cmF3OiEwfSkpO3ZhciBhPXRoaXMubmVhcmVzdElucHV0UG9zKHQsZT4xJiYwIT09dCYmIXRoaXMuZWFnZXI\/R3I6aSksbz1uZXcgWXIoe3RhaWxTaGlmdDphLXR9KS5hZ2dyZWdhdGUodGhpcy5yZW1vdmUoYSkpO2lmKHRoaXMuZWFnZXImJmkhPT1HciYmcj09PXRoaXMucmF3SW5wdXRWYWx1ZSlpZihpPT09JHIpZm9yKHZhciBsO3I9PT10aGlzLnJhd0lucHV0VmFsdWUmJihsPXRoaXMudmFsdWUubGVuZ3RoKTspby5hZ2dyZWdhdGUobmV3IFlyKHt0YWlsU2hpZnQ6LTF9KSkuYWdncmVnYXRlKHRoaXMucmVtb3ZlKGwtMSkpO2Vsc2UgaT09PVhyJiZzLnVuc2hpZnQoKTtyZXR1cm4gby5hZ2dyZWdhdGUodGhpcy5hcHBlbmQobix7aW5wdXQ6ITB9LHMpKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2s9PT10fX1dKSx0fSgpO2Z1bmN0aW9uIHV1KHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKCJtYXNrIHByb3BlcnR5IHNob3VsZCBiZSBkZWZpbmVkIik7cmV0dXJuIHQgaW5zdGFuY2VvZiBSZWdFeHA\/aXUuTWFza2VkUmVnRXhwOlpyKHQpP2l1Lk1hc2tlZFBhdHRlcm46dCBpbnN0YW5jZW9mIERhdGV8fHQ9PT1EYXRlP2l1Lk1hc2tlZERhdGU6dCBpbnN0YW5jZW9mIE51bWJlcnx8Im51bWJlciI9PXR5cGVvZiB0fHx0PT09TnVtYmVyP2l1Lk1hc2tlZE51bWJlcjpBcnJheS5pc0FycmF5KHQpfHx0PT09QXJyYXk\/aXUuTWFza2VkRHluYW1pYzppdS5NYXNrZWQmJnQucHJvdG90eXBlIGluc3RhbmNlb2YgaXUuTWFza2VkP3Q6dCBpbnN0YW5jZW9mIGl1Lk1hc2tlZD90LmNvbnN0cnVjdG9yOnQgaW5zdGFuY2VvZiBGdW5jdGlvbj9pdS5NYXNrZWRGdW5jdGlvbjooY29uc29sZS53YXJuKCJNYXNrIG5vdCBmb3VuZCBmb3IgbWFzayIsdCksaXUuTWFza2VkKX1mdW5jdGlvbiBzdSh0KXtpZihpdS5NYXNrZWQmJnQgaW5zdGFuY2VvZiBpdS5NYXNrZWQpcmV0dXJuIHQ7dmFyIGU9KHQ9T2JqZWN0LmFzc2lnbih7fSx0KSkubWFzaztpZihpdS5NYXNrZWQmJmUgaW5zdGFuY2VvZiBpdS5NYXNrZWQpcmV0dXJuIGU7dmFyIG49dXUoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJNYXNrZWQgY2xhc3MgaXMgbm90IGZvdW5kIGZvciBwcm92aWRlZCBtYXNrLCBhcHByb3ByaWF0ZSBtb2R1bGUgbmVlZHMgdG8gYmUgaW1wb3J0IG1hbnVhbGx5IGJlZm9yZSBjcmVhdGluZyBtYXNrLiIpO3JldHVybiBuZXcgbih0KX1ydS5ERUZBVUxUUz17Zm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdH19LGl1Lk1hc2tlZD1ydSxpdS5jcmVhdGVNYXNrPXN1O3ZhciBhdT1bIm1hc2siXSxvdT17MDovXGQvLGE6L1tcdTAwNDEtXHUwMDVBXHUwMDYxLVx1MDA3QVx1MDBBQVx1MDBCNVx1MDBCQVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJDMVx1MDJDNi1cdTAyRDFcdTAyRTAtXHUwMkU0XHUwMkVDXHUwMkVFXHUwMzcwLVx1MDM3NFx1MDM3Nlx1MDM3N1x1MDM3QS1cdTAzN0RcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzRjVcdTAzRjctXHUwNDgxXHUwNDhBLVx1MDUyN1x1MDUzMS1cdTA1NTZcdTA1NTlcdTA1NjEtXHUwNTg3XHUwNUQwLVx1MDVFQVx1MDVGMC1cdTA1RjJcdTA2MjAtXHUwNjRBXHUwNjZFXHUwNjZGXHUwNjcxLVx1MDZEM1x1MDZENVx1MDZFNVx1MDZFNlx1MDZFRVx1MDZFRlx1MDZGQS1cdTA2RkNcdTA2RkZcdTA3MTBcdTA3MTItXHUwNzJGXHUwNzRELVx1MDdBNVx1MDdCMVx1MDdDQS1cdTA3RUFcdTA3RjRcdTA3RjVcdTA3RkFcdTA4MDAtXHUwODE1XHUwODFBXHUwODI0XHUwODI4XHUwODQwLVx1MDg1OFx1MDhBMFx1MDhBMi1cdTA4QUNcdTA5MDQtXHUwOTM5XHUwOTNEXHUwOTUwXHUwOTU4LVx1MDk2MVx1MDk3MS1cdTA5NzdcdTA5NzktXHUwOTdGXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RjBcdTA5RjFcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQjA1LVx1MEIwQ1x1MEIwRlx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyXHUwQjMzXHUwQjM1LVx1MEIzOVx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNzFcdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNEXHUwQzU4XHUwQzU5XHUwQzYwXHUwQzYxXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDREVcdTBDRTBcdTBDRTFcdTBDRjFcdTBDRjJcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEM0FcdTBEM0RcdTBENEVcdTBENjBcdTBENjFcdTBEN0EtXHUwRDdGXHUwRDg1LVx1MEQ5Nlx1MEQ5QS1cdTBEQjFcdTBEQjMtXHUwREJCXHUwREJEXHUwREMwLVx1MERDNlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2XHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg3XHUwRTg4XHUwRThBXHUwRThEXHUwRTk0LVx1MEU5N1x1MEU5OS1cdTBFOUZcdTBFQTEtXHUwRUEzXHUwRUE1XHUwRUE3XHUwRUFBXHUwRUFCXHUwRUFELVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFREMtXHUwRURGXHUwRjAwXHUwRjQwLVx1MEY0N1x1MEY0OS1cdTBGNkNcdTBGODgtXHUwRjhDXHUxMDAwLVx1MTAyQVx1MTAzRlx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwQTAtXHUxMEM1XHUxMEM3XHUxMENEXHUxMEQwLVx1MTBGQVx1MTBGQy1cdTEyNDhcdTEyNEEtXHUxMjREXHUxMjUwLVx1MTI1Nlx1MTI1OFx1MTI1QS1cdTEyNURcdTEyNjAtXHUxMjg4XHUxMjhBLVx1MTI4RFx1MTI5MC1cdTEyQjBcdTEyQjItXHUxMkI1XHUxMkI4LVx1MTJCRVx1MTJDMFx1MTJDMi1cdTEyQzVcdTEyQzgtXHUxMkQ2XHUxMkQ4LVx1MTMxMFx1MTMxMi1cdTEzMTVcdTEzMTgtXHUxMzVBXHUxMzgwLVx1MTM4Rlx1MTNBMC1cdTEzRjRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNzAwLVx1MTcwQ1x1MTcwRS1cdTE3MTFcdTE3MjAtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTgyMC1cdTE4NzdcdTE4ODAtXHUxOEE4XHUxOEFBXHUxOEIwLVx1MThGNVx1MTkwMC1cdTE5MUNcdTE5NTAtXHUxOTZEXHUxOTcwLVx1MTk3NFx1MTk4MC1cdTE5QUJcdTE5QzEtXHUxOUM3XHUxQTAwLVx1MUExNlx1MUEyMC1cdTFBNTRcdTFBQTdcdTFCMDUtXHUxQjMzXHUxQjQ1LVx1MUI0Qlx1MUI4My1cdTFCQTBcdTFCQUVcdTFCQUZcdTFCQkEtXHUxQkU1XHUxQzAwLVx1MUMyM1x1MUM0RC1cdTFDNEZcdTFDNUEtXHUxQzdEXHUxQ0U5LVx1MUNFQ1x1MUNFRS1cdTFDRjFcdTFDRjVcdTFDRjZcdTFEMDAtXHUxREJGXHUxRTAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzItXHUxRkM0XHUxRkM2LVx1MUZDQ1x1MUZEMC1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkUwLVx1MUZFQ1x1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZDXHUyMDcxXHUyMDdGXHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE4M1x1MjE4NFx1MkMwMC1cdTJDMkVcdTJDMzAtXHUyQzVFXHUyQzYwLVx1MkNFNFx1MkNFQi1cdTJDRUVcdTJDRjJcdTJDRjNcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUyREQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNVx1MzAwNlx1MzAzMS1cdTMwMzVcdTMwM0JcdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRFx1MzEzMS1cdTMxOEVcdTMxQTAtXHUzMUJBXHUzMUYwLVx1MzFGRlx1MzQwMC1cdTREQjVcdTRFMDAtXHU5RkNDXHVBMDAwLVx1QTQ4Q1x1QTREMC1cdUE0RkRcdUE1MDAtXHVBNjBDXHVBNjEwLVx1QTYxRlx1QTYyQVx1QTYyQlx1QTY0MC1cdUE2NkVcdUE2N0YtXHVBNjk3XHVBNkEwLVx1QTZFNVx1QTcxNy1cdUE3MUZcdUE3MjItXHVBNzg4XHVBNzhCLVx1QTc4RVx1QTc5MC1cdUE3OTNcdUE3QTAtXHVBN0FBXHVBN0Y4LVx1QTgwMVx1QTgwMy1cdUE4MDVcdUE4MDctXHVBODBBXHVBODBDLVx1QTgyMlx1QTg0MC1cdUE4NzNcdUE4ODItXHVBOEIzXHVBOEYyLVx1QThGN1x1QThGQlx1QTkwQS1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0ZcdUFBMDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNjAtXHVBQTc2XHVBQTdBXHVBQTgwLVx1QUFBRlx1QUFCMVx1QUFCNVx1QUFCNlx1QUFCOS1cdUFBQkRcdUFBQzBcdUFBQzJcdUFBREItXHVBQUREXHVBQUUwLVx1QUFFQVx1QUFGMi1cdUFBRjRcdUFCMDEtXHVBQjA2XHVBQjA5LVx1QUIwRVx1QUIxMS1cdUFCMTZcdUFCMjAtXHVBQjI2XHVBQjI4LVx1QUIyRVx1QUJDMC1cdUFCRTJcdUFDMDAtXHVEN0EzXHVEN0IwLVx1RDdDNlx1RDdDQi1cdUQ3RkJcdUY5MDAtXHVGQTZEXHVGQTcwLVx1RkFEOVx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIyOFx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFNzAtXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYyMS1cdUZGM0FcdUZGNDEtXHVGRjVBXHVGRjY2LVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENdLywiKiI6Ly4vfSxsdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KTt2YXIgbj1lLm1hc2ssaT1qcihlLGF1KTt0aGlzLm1hc2tlZD1zdSh7bWFzazpufSksT2JqZWN0LmFzc2lnbih0aGlzLGkpfXJldHVybiBPcih0LFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzRmlsbGVkPSExLHRoaXMubWFza2VkLnJlc2V0KCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIDA9PT10JiZlPj0xPyh0aGlzLmlzRmlsbGVkPSExLHRoaXMubWFza2VkLnJlbW92ZSh0LGUpKTpuZXcgWXJ9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnZhbHVlfHwodGhpcy5pc0ZpbGxlZCYmIXRoaXMuaXNPcHRpb25hbD90aGlzLnBsYWNlaG9sZGVyQ2hhcjoiIil9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMubWFza2VkLnZhbHVlKXx8dGhpcy5pc09wdGlvbmFsfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZih0aGlzLmlzRmlsbGVkKXJldHVybiBuZXcgWXI7dmFyIG49dGhpcy5tYXNrZWQuc3RhdGUsaT10aGlzLm1hc2tlZC5fYXBwZW5kQ2hhcih0LGUpO3JldHVybiBpLmluc2VydGVkJiYhMT09PXRoaXMuZG9WYWxpZGF0ZShlKSYmKGkuaW5zZXJ0ZWQ9aS5yYXdJbnNlcnRlZD0iIix0aGlzLm1hc2tlZC5zdGF0ZT1uKSxpLmluc2VydGVkfHx0aGlzLmlzT3B0aW9uYWx8fHRoaXMubGF6eXx8ZS5pbnB1dHx8KGkuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLGkuc2tpcD0haS5pbnNlcnRlZCYmIXRoaXMuaXNPcHRpb25hbCx0aGlzLmlzRmlsbGVkPUJvb2xlYW4oaS5pbnNlcnRlZCksaX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuYXBwZW5kLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWXI7cmV0dXJuIHRoaXMuaXNGaWxsZWR8fHRoaXMuaXNPcHRpb25hbHx8KHRoaXMuaXNGaWxsZWQ9ITAsdC5pbnNlcnRlZD10aGlzLnBsYWNlaG9sZGVyQ2hhciksdH19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmV4dHJhY3RUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmFwcGVuZFRhaWwuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIHRoaXMubWFza2VkLmV4dHJhY3RJbnB1dCh0LGUsbil9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcixuPTAsaT10aGlzLnZhbHVlLmxlbmd0aCxyPU1hdGgubWluKE1hdGgubWF4KHQsbiksaSk7c3dpdGNoKGUpe2Nhc2UgS3I6Y2FzZSAkcjpyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP3I6bjtjYXNlIFdyOmNhc2UgWHI6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9yOmk7ZGVmYXVsdDpyZXR1cm4gcn19fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmRvVmFsaWRhdGUuYXBwbHkodCxhcmd1bWVudHMpJiYoIXRoaXMucGFyZW50fHwoZT10aGlzLnBhcmVudCkuZG9WYWxpZGF0ZS5hcHBseShlLGFyZ3VtZW50cykpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQuZG9Db21taXQoKX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57bWFza2VkOnRoaXMubWFza2VkLnN0YXRlLGlzRmlsbGVkOnRoaXMuaXNGaWxsZWR9fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQuc3RhdGU9dC5tYXNrZWQsdGhpcy5pc0ZpbGxlZD10LmlzRmlsbGVkfX1dKSx0fSgpLGh1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyxlKSx0aGlzLl92YWx1ZT0iIix0aGlzLmlzRml4ZWQ9ITB9cmV0dXJuIE9yKHQsW3trZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1VubWFza2luZz90aGlzLnZhbHVlOiIifX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faXNSYXdJbnB1dD0hMSx0aGlzLl92YWx1ZT0iIn19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLl92YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMuX3ZhbHVlPXRoaXMuX3ZhbHVlLnNsaWNlKDAsdCkrdGhpcy5fdmFsdWUuc2xpY2UoZSksdGhpcy5fdmFsdWV8fCh0aGlzLl9pc1Jhd0lucHV0PSExKSxuZXcgWXJ9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcixuPTAsaT10aGlzLl92YWx1ZS5sZW5ndGg7c3dpdGNoKGUpe2Nhc2UgS3I6Y2FzZSAkcjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiBpfX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLl92YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmF3JiZ0aGlzLl9pc1Jhd0lucHV0JiZ0aGlzLl92YWx1ZS5zbGljZSh0LGUpfHwiIn19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuX3ZhbHVlKX19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1uZXcgWXI7aWYodGhpcy5fdmFsdWUpcmV0dXJuIG47dmFyIGk9dGhpcy5jaGFyPT09dCxyPWkmJih0aGlzLmlzVW5tYXNraW5nfHxlLmlucHV0fHxlLnJhdykmJiF0aGlzLmVhZ2VyJiYhZS50YWlsO3JldHVybiByJiYobi5yYXdJbnNlcnRlZD10aGlzLmNoYXIpLHRoaXMuX3ZhbHVlPW4uaW5zZXJ0ZWQ9dGhpcy5jaGFyLHRoaXMuX2lzUmF3SW5wdXQ9ciYmKGUucmF3fHxlLmlucHV0KSxufX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBlbmRDaGFyKHRoaXMuY2hhcil9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFlyO3JldHVybiB0aGlzLl92YWx1ZXx8KHRoaXMuX3ZhbHVlPXQuaW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0fX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdfHx0aGlzLnZhbHVlLmxlbmd0aCxuZXcgbnUoIiIpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIFpyKHQpJiYodD1uZXcgbnUoU3RyaW5nKHQpKSksdC5hcHBlbmRUbyh0aGlzKX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2FwcGVuZENoYXIodFswXSxlKTtyZXR1cm4gbnVsbCE9biYmKGkudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwobikudGFpbFNoaWZ0KSxpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntfdmFsdWU6dGhpcy5fdmFsdWUsX2lzUmF3SW5wdXQ6dGhpcy5faXNSYXdJbnB1dH19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fV0pLHR9KCksY3U9WyJjaHVua3MiXSxmdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDt4cih0aGlzLHQpLHRoaXMuY2h1bmtzPWUsdGhpcy5mcm9tPW59cmV0dXJuIE9yKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNodW5rcy5tYXAoU3RyaW5nKS5qb2luKCIiKX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoU3RyaW5nKGUpKXtacihlKSYmKGU9bmV3IG51KFN0cmluZyhlKSkpO3ZhciBuPXRoaXMuY2h1bmtzW3RoaXMuY2h1bmtzLmxlbmd0aC0xXSxpPW4mJihuLnN0b3A9PT1lLnN0b3B8fG51bGw9PWUuc3RvcCkmJmUuZnJvbT09PW4uZnJvbStuLnRvU3RyaW5nKCkubGVuZ3RoO2lmKGUgaW5zdGFuY2VvZiBudSlpP24uZXh0ZW5kKGUudG9TdHJpbmcoKSk6dGhpcy5jaHVua3MucHVzaChlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiB0KXtpZihudWxsPT1lLnN0b3ApZm9yKHZhciByO2UuY2h1bmtzLmxlbmd0aCYmbnVsbD09ZS5jaHVua3NbMF0uc3RvcDspKHI9ZS5jaHVua3Muc2hpZnQoKSkuZnJvbSs9ZS5mcm9tLHRoaXMuZXh0ZW5kKHIpO2UudG9TdHJpbmcoKSYmKGUuc3RvcD1lLmJsb2NrSW5kZXgsdGhpcy5jaHVua3MucHVzaChlKSl9fX19LHtrZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBpdS5NYXNrZWRQYXR0ZXJuKSlyZXR1cm4gbmV3IG51KHRoaXMudG9TdHJpbmcoKSkuYXBwZW5kVG8oZSk7Zm9yKHZhciBuPW5ldyBZcixpPTA7aTx0aGlzLmNodW5rcy5sZW5ndGgmJiFuLnNraXA7KytpKXt2YXIgcj10aGlzLmNodW5rc1tpXSx1PWUuX21hcFBvc1RvQmxvY2soZS52YWx1ZS5sZW5ndGgpLHM9ci5zdG9wLGE9dm9pZCAwO2lmKG51bGwhPXMmJighdXx8dS5pbmRleDw9cykmJigociBpbnN0YW5jZW9mIHR8fGUuX3N0b3BzLmluZGV4T2Yocyk+PTApJiZuLmFnZ3JlZ2F0ZShlLl9hcHBlbmRQbGFjZWhvbGRlcihzKSksYT1yIGluc3RhbmNlb2YgdCYmZS5fYmxvY2tzW3NdKSxhKXt2YXIgbz1hLmFwcGVuZFRhaWwocik7by5za2lwPSExLG4uYWdncmVnYXRlKG8pLGUuX3ZhbHVlKz1vLmluc2VydGVkO3ZhciBsPXIudG9TdHJpbmcoKS5zbGljZShvLnJhd0luc2VydGVkLmxlbmd0aCk7bCYmbi5hZ2dyZWdhdGUoZS5hcHBlbmQobCx7dGFpbDohMH0pKX1lbHNlIG4uYWdncmVnYXRlKGUuYXBwZW5kKHIudG9TdHJpbmcoKSx7dGFpbDohMH0pKX1yZXR1cm4gbn19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57Y2h1bmtzOnRoaXMuY2h1bmtzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3AsYmxvY2tJbmRleDp0aGlzLmJsb2NrSW5kZXh9fSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIG49ZS5jaHVua3MsaT1qcihlLGN1KTtPYmplY3QuYXNzaWduKHRoaXMsaSksdGhpcy5jaHVua3M9bi5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPSJjaHVua3MiaW4gZT9uZXcgdDpuZXcgbnU7cmV0dXJuIG4uc3RhdGU9ZSxufSkpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aHx8bnVsbCE9dCYmdGhpcy5mcm9tPj10KXJldHVybiIiO2Zvcih2YXIgZT1udWxsIT10P3QtdGhpcy5mcm9tOnQsbj0wO248dGhpcy5jaHVua3MubGVuZ3RoOyl7dmFyIGk9dGhpcy5jaHVua3Nbbl0scj1pLnVuc2hpZnQoZSk7aWYoaS50b1N0cmluZygpKXtpZighcilicmVhazsrK259ZWxzZSB0aGlzLmNodW5rcy5zcGxpY2UobiwxKTtpZihyKXJldHVybiByfXJldHVybiIifX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHQ9dGhpcy5jaHVua3MubGVuZ3RoLTE7MDw9dDspe3ZhciBlPXRoaXMuY2h1bmtzW3RdLG49ZS5zaGlmdCgpO2lmKGUudG9TdHJpbmcoKSl7aWYoIW4pYnJlYWs7LS10fWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKHQsMSk7aWYobilyZXR1cm4gbn1yZXR1cm4iIn19XSksdH0oKSxwdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt4cih0aGlzLHQpLHRoaXMubWFza2VkPWUsdGhpcy5fbG9nPVtdO3ZhciBpPWUuX21hcFBvc1RvQmxvY2sobil8fChuPDA\/e2luZGV4OjAsb2Zmc2V0OjB9OntpbmRleDp0aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCxvZmZzZXQ6MH0pLHI9aS5vZmZzZXQsdT1pLmluZGV4O3RoaXMub2Zmc2V0PXIsdGhpcy5pbmRleD11LHRoaXMub2s9ITF9cmV0dXJuIE9yKHQsW3trZXk6ImJsb2NrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQuX2Jsb2Nrc1t0aGlzLmluZGV4XX19LHtrZXk6InBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja1N0YXJ0UG9zKHRoaXMuaW5kZXgpK3RoaXMub2Zmc2V0fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntpbmRleDp0aGlzLmluZGV4LG9mZnNldDp0aGlzLm9mZnNldCxvazp0aGlzLm9rfX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InB1c2hTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9sb2cucHVzaCh0aGlzLnN0YXRlKX19LHtrZXk6InBvcFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2xvZy5wb3AoKTtyZXR1cm4gdGhpcy5zdGF0ZT10LHR9fSx7a2V5OiJiaW5kQmxvY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ibG9ja3x8KHRoaXMuaW5kZXg8MCYmKHRoaXMuaW5kZXg9MCx0aGlzLm9mZnNldD0wKSx0aGlzLmluZGV4Pj10aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCYmKHRoaXMuaW5kZXg9dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgtMSx0aGlzLm9mZnNldD10aGlzLmJsb2NrLnZhbHVlLmxlbmd0aCkpfX0se2tleToiX3B1c2hMZWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodGhpcy5wdXNoU3RhdGUoKSx0aGlzLmJpbmRCbG9jaygpOzA8PXRoaXMuaW5kZXg7LS10aGlzLmluZGV4LHRoaXMub2Zmc2V0PShudWxsPT09KGU9dGhpcy5ibG9jayl8fHZvaWQgMD09PWU\/dm9pZCAwOmUudmFsdWUubGVuZ3RoKXx8MCl7dmFyIGU7aWYodCgpKXJldHVybiB0aGlzLm9rPSEwfXJldHVybiB0aGlzLm9rPSExfX0se2tleToiX3B1c2hSaWdodCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTt0aGlzLmluZGV4PHRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoOysrdGhpcy5pbmRleCx0aGlzLm9mZnNldD0wKWlmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMDtyZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlRmlsbGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LCRyKSwwIT09dC5vZmZzZXR8fHZvaWQgMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZClyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsS3IpLCEwfSkpfX0se2tleToicHVzaExlZnRCZWZvcmVSZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighKHQuYmxvY2suaXNGaXhlZHx8dC5ibG9jay5pc09wdGlvbmFsJiYhdC5ibG9jay52YWx1ZSkpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEtyKSwhMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZCYmdC5ibG9jay52YWx1ZSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsWHIpLHQub2Zmc2V0IT09dC5ibG9jay52YWx1ZS5sZW5ndGh8fHZvaWQgMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUlucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxHciksITB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxHciksITB9KSl9fV0pLHR9KCksZHU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzayYmKHQudmFsaWRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VhcmNoKHQubWFzayk+PTB9KSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0ocnUpO2l1Lk1hc2tlZFJlZ0V4cD1kdTt2YXIgdnU9WyJfYmxvY2tzIl0sZ3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnt9O3JldHVybiB4cih0aGlzLG4pLHQuZGVmaW5pdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxvdSx0LmRlZmluaXRpb25zKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTt0LmRlZmluaXRpb25zPU9iamVjdC5hc3NpZ24oe30sdGhpcy5kZWZpbml0aW9ucyx0LmRlZmluaXRpb25zKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl9yZWJ1aWxkTWFzaygpfX0se2tleToiX3JlYnVpbGRNYXNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmRlZmluaXRpb25zO3RoaXMuX2Jsb2Nrcz1bXSx0aGlzLl9zdG9wcz1bXSx0aGlzLl9tYXNrZWRCbG9ja3M9e307dmFyIGk9dGhpcy5tYXNrO2lmKGkmJmUpZm9yKHZhciByPSExLHU9ITEscz0wO3M8aS5sZW5ndGg7KytzKXtpZih0aGlzLmJsb2NrcylpZigiY29udGludWUiPT09ZnVuY3Rpb24oKXt2YXIgZT1pLnNsaWNlKHMpLG49T2JqZWN0LmtleXModC5ibG9ja3MpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1lLmluZGV4T2YodCl9KSk7bi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmxlbmd0aC10Lmxlbmd0aH0pKTt2YXIgcj1uWzBdO2lmKHIpe3ZhciB1PXN1KE9iamVjdC5hc3NpZ24oe3BhcmVudDp0LGxhenk6dC5sYXp5LGVhZ2VyOnQuZWFnZXIscGxhY2Vob2xkZXJDaGFyOnQucGxhY2Vob2xkZXJDaGFyLG92ZXJ3cml0ZTp0Lm92ZXJ3cml0ZX0sdC5ibG9ja3Nbcl0pKTtyZXR1cm4gdSYmKHQuX2Jsb2Nrcy5wdXNoKHUpLHQuX21hc2tlZEJsb2Nrc1tyXXx8KHQuX21hc2tlZEJsb2Nrc1tyXT1bXSksdC5fbWFza2VkQmxvY2tzW3JdLnB1c2godC5fYmxvY2tzLmxlbmd0aC0xKSkscys9ci5sZW5ndGgtMSwiY29udGludWUifX0oKSljb250aW51ZTt2YXIgYT1pW3NdLG89YSBpbiBlO2lmKGEhPT1uLlNUT1BfQ0hBUilpZigieyIhPT1hJiYifSIhPT1hKWlmKCJbIiE9PWEmJiJdIiE9PWEpe2lmKGE9PT1uLkVTQ0FQRV9DSEFSKXtpZigrK3MsIShhPWlbc10pKWJyZWFrO289ITF9dmFyIGw9bz9uZXcgbHUoe3BhcmVudDp0aGlzLGxhenk6dGhpcy5sYXp5LGVhZ2VyOnRoaXMuZWFnZXIscGxhY2Vob2xkZXJDaGFyOnRoaXMucGxhY2Vob2xkZXJDaGFyLG1hc2s6ZVthXSxpc09wdGlvbmFsOnV9KTpuZXcgaHUoe2NoYXI6YSxlYWdlcjp0aGlzLmVhZ2VyLGlzVW5tYXNraW5nOnJ9KTt0aGlzLl9ibG9ja3MucHVzaChsKX1lbHNlIHU9IXU7ZWxzZSByPSFyO2Vsc2UgdGhpcy5fc3RvcHMucHVzaCh0aGlzLl9ibG9ja3MubGVuZ3RoKX19fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTnIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19ibG9ja3M6dGhpcy5fYmxvY2tzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSl9KX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Jsb2NrcyxpPWpyKHQsdnUpO3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnN0YXRlPWVbbl19KSksenIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsaSx0aGlzLCEwKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe05yKFRyKG4ucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc2V0KCl9KSl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0NvbXBsZXRlfSkpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRmlsbGVkfSkpfX0se2tleToiaXNGaXhlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNGaXhlZH0pKX19LHtrZXk6ImlzT3B0aW9uYWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzT3B0aW9uYWx9KSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9Db21taXQoKX0pKSxOcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS51bm1hc2tlZFZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudmFsdWV9KSwiIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiYXBwZW5kVGFpbCIsdGhpcykuY2FsbCh0aGlzLHQpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyBZcixuPW51bGw9PT0odD10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKSl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaW5kZXg7aWYobnVsbD09bilyZXR1cm4gZTt0aGlzLl9ibG9ja3Nbbl0uaXNGaWxsZWQmJisrbjtmb3IodmFyIGk9bjtpPHRoaXMuX2Jsb2Nrcy5sZW5ndGg7KytpKXt2YXIgcj10aGlzLl9ibG9ja3NbaV0uX2FwcGVuZEVhZ2VyKCk7aWYoIXIuaW5zZXJ0ZWQpYnJlYWs7ZS5hZ2dyZWdhdGUocil9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCksaT1uZXcgWXI7aWYoIW4pcmV0dXJuIGk7Zm9yKHZhciByPW4uaW5kZXg7Oysrcil7dmFyIHUscz10aGlzLl9ibG9ja3Nbcl07aWYoIXMpYnJlYWs7dmFyIGE9cy5fYXBwZW5kQ2hhcih0LE9iamVjdC5hc3NpZ24oe30sZSx7X2JlZm9yZVRhaWxTdGF0ZTpudWxsPT09KHU9ZS5fYmVmb3JlVGFpbFN0YXRlKXx8dm9pZCAwPT09dT92b2lkIDA6dS5fYmxvY2tzW3JdfSkpLG89YS5za2lwO2lmKGkuYWdncmVnYXRlKGEpLG98fGEucmF3SW5zZXJ0ZWQpYnJlYWt9cmV0dXJuIGl9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1uZXcgZnU7cmV0dXJuIGU9PT1ufHx0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZShlLG4sKGZ1bmN0aW9uKGUsbixyLHUpe3ZhciBzPWUuZXh0cmFjdFRhaWwocix1KTtzLnN0b3A9dC5fZmluZFN0b3BCZWZvcmUobikscy5mcm9tPXQuX2Jsb2NrU3RhcnRQb3MobikscyBpbnN0YW5jZW9mIGZ1JiYocy5ibG9ja0luZGV4PW4pLGkuZXh0ZW5kKHMpfSkpLGl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYodD09PWUpcmV0dXJuIiI7dmFyIGk9IiI7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLHIsdSl7aSs9dC5leHRyYWN0SW5wdXQocix1LG4pfSkpLGl9fSx7a2V5OiJfZmluZFN0b3BCZWZvcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTA7bjx0aGlzLl9zdG9wcy5sZW5ndGg7KytuKXt2YXIgaT10aGlzLl9zdG9wc1tuXTtpZighKGk8PXQpKWJyZWFrO2U9aX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW5ldyBZcjtpZih0aGlzLmxhenkmJm51bGw9PXQpcmV0dXJuIG47dmFyIGk9dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCk7aWYoIWkpcmV0dXJuIG47dmFyIHI9aS5pbmRleCx1PW51bGwhPXQ\/dDp0aGlzLl9ibG9ja3MubGVuZ3RoO3JldHVybiB0aGlzLl9ibG9ja3Muc2xpY2Uocix1KS5mb3JFYWNoKChmdW5jdGlvbihpKXtpZighaS5sYXp5fHxudWxsIT10KXt2YXIgcj1udWxsIT1pLl9ibG9ja3M\/W2kuX2Jsb2Nrcy5sZW5ndGhdOltdLHU9aS5fYXBwZW5kUGxhY2Vob2xkZXIuYXBwbHkoaSxyKTtlLl92YWx1ZSs9dS5pbnNlcnRlZCxuLmFnZ3JlZ2F0ZSh1KX19KSksbn19LHtrZXk6Il9tYXBQb3NUb0Jsb2NrIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dGhpcy5fYmxvY2tzLmxlbmd0aDsrK24pe3ZhciBpPXRoaXMuX2Jsb2Nrc1tuXSxyPWUubGVuZ3RoO2lmKHQ8PShlKz1pLnZhbHVlKS5sZW5ndGgpcmV0dXJue2luZGV4Om4sb2Zmc2V0OnQtcn19fX0se2tleToiX2Jsb2NrU3RhcnRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ibG9ja3Muc2xpY2UoMCx0KS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS52YWx1ZS5sZW5ndGh9KSwwKX19LHtrZXk6Il9mb3JFYWNoQmxvY2tzSW5SYW5nZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsaT10aGlzLl9tYXBQb3NUb0Jsb2NrKHQpO2lmKGkpe3ZhciByPXRoaXMuX21hcFBvc1RvQmxvY2soZSksdT1yJiZpLmluZGV4PT09ci5pbmRleCxzPWkub2Zmc2V0LGE9ciYmdT9yLm9mZnNldDp0aGlzLl9ibG9ja3NbaS5pbmRleF0udmFsdWUubGVuZ3RoO2lmKG4odGhpcy5fYmxvY2tzW2kuaW5kZXhdLGkuaW5kZXgscyxhKSxyJiYhdSl7Zm9yKHZhciBvPWkuaW5kZXgrMTtvPHIuaW5kZXg7KytvKW4odGhpcy5fYmxvY2tzW29dLG8sMCx0aGlzLl9ibG9ja3Nbb10udmFsdWUubGVuZ3RoKTtuKHRoaXMuX2Jsb2Nrc1tyLmluZGV4XSxyLmluZGV4LDAsci5vZmZzZXQpfX19fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1OcihUcihuLnByb3RvdHlwZSksInJlbW92ZSIsdGhpcykuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLG4scil7aS5hZ2dyZWdhdGUodC5yZW1vdmUobixyKSl9KSksaX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyO2lmKCF0aGlzLl9ibG9ja3MubGVuZ3RoKXJldHVybiAwO3ZhciBuPW5ldyBwdSh0aGlzLHQpO2lmKGU9PT1HcilyZXR1cm4gbi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpP24ucG9zOihuLnBvcFN0YXRlKCksbi5wdXNoTGVmdEJlZm9yZUlucHV0KCk\/bi5wb3M6dGhpcy52YWx1ZS5sZW5ndGgpO2lmKGU9PT1Lcnx8ZT09PSRyKXtpZihlPT09S3Ipe2lmKG4ucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCksbi5vayYmbi5wb3M9PT10KXJldHVybiB0O24ucG9wU3RhdGUoKX1pZihuLnB1c2hMZWZ0QmVmb3JlSW5wdXQoKSxuLnB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQoKSxuLnB1c2hMZWZ0QmVmb3JlRmlsbGVkKCksZT09PUtyKXtpZihuLnB1c2hSaWdodEJlZm9yZUlucHV0KCksbi5wdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCgpLG4ub2smJm4ucG9zPD10KXJldHVybiBuLnBvcztpZihuLnBvcFN0YXRlKCksbi5vayYmbi5wb3M8PXQpcmV0dXJuIG4ucG9zO24ucG9wU3RhdGUoKX1yZXR1cm4gbi5vaz9uLnBvczplPT09JHI\/MDoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOjApKX1yZXR1cm4gZT09PVdyfHxlPT09WHI\/KG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKSxuLnB1c2hSaWdodEJlZm9yZVJlcXVpcmVkKCksbi5wdXNoUmlnaHRCZWZvcmVGaWxsZWQoKT9uLnBvczplPT09WHI\/dGhpcy52YWx1ZS5sZW5ndGg6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczp0aGlzLm5lYXJlc3RJbnB1dFBvcyh0LEtyKSkpKTp0fX0se2tleToibWFza2VkQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2tlZEJsb2Nrcyh0KVswXX19LHtrZXk6Im1hc2tlZEJsb2NrcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX21hc2tlZEJsb2Nrc1t0XTtyZXR1cm4gbj9uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2Jsb2Nrc1t0XX0pKTpbXX19XSksbn0ocnUpO2d1LkRFRkFVTFRTPXtsYXp5OiEwLHBsYWNlaG9sZGVyQ2hhcjoiXyJ9LGd1LlNUT1BfQ0hBUj0iYCIsZ3UuRVNDQVBFX0NIQVI9IlxcIixndS5JbnB1dERlZmluaXRpb249bHUsZ3UuRml4ZWREZWZpbml0aW9uPWh1LGl1Lk1hc2tlZFBhdHRlcm49Z3U7dmFyIGt1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfbWF0Y2hGcm9tIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhMZW5ndGgtU3RyaW5nKHRoaXMuZnJvbSkubGVuZ3RofX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dD1PYmplY3QuYXNzaWduKHt0bzp0aGlzLnRvfHwwLGZyb206dGhpcy5mcm9tfHwwLG1heExlbmd0aDp0aGlzLm1heExlbmd0aHx8MH0sdCk7dmFyIGU9U3RyaW5nKHQudG8pLmxlbmd0aDtudWxsIT10Lm1heExlbmd0aCYmKGU9TWF0aC5tYXgoZSx0Lm1heExlbmd0aCkpLHQubWF4TGVuZ3RoPWU7Zm9yKHZhciBpPVN0cmluZyh0LmZyb20pLnBhZFN0YXJ0KGUsIjAiKSxyPVN0cmluZyh0LnRvKS5wYWRTdGFydChlLCIwIiksdT0wO3U8ci5sZW5ndGgmJnJbdV09PT1pW3VdOykrK3U7dC5tYXNrPXIuc2xpY2UoMCx1KS5yZXBsYWNlKC8wL2csIlxcMCIpKyIwIi5yZXBlYXQoZS11KSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBOcihUcihuLnByb3RvdHlwZSksImlzQ29tcGxldGUiLHRoaXMpJiZCb29sZWFuKHRoaXMudmFsdWUpfX0se2tleToiYm91bmRhcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9IiIsbj0iIixpPXFyKHQubWF0Y2goL14oXEQqKShcZCopKFxEKikvKXx8W10sMykscj1pWzFdLHU9aVsyXTtyZXR1cm4gdSYmKGU9IjAiLnJlcGVhdChyLmxlbmd0aCkrdSxuPSI5Ii5yZXBlYXQoci5sZW5ndGgpK3UpLFtlPWUucGFkRW5kKHRoaXMubWF4TGVuZ3RoLCIwIiksbj1uLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiOSIpXX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scj1RcihOcihUcihuLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykuY2FsbCh0aGlzLHQucmVwbGFjZSgvXEQvZywiIiksaSkpLHU9cXIociwyKTtpZih0PXVbMF0sZT11WzFdLCF0aGlzLmF1dG9maXh8fCF0KXJldHVybiB0O3ZhciBzPVN0cmluZyh0aGlzLmZyb20pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksYT1TdHJpbmcodGhpcy50bykucGFkU3RhcnQodGhpcy5tYXhMZW5ndGgsIjAiKSxvPXRoaXMudmFsdWUrdDtpZihvLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4iIjt2YXIgbD10aGlzLmJvdW5kYXJpZXMobyksaD1xcihsLDIpLGM9aFswXSxmPWhbMV07cmV0dXJuIE51bWJlcihmKTx0aGlzLmZyb20\/c1tvLmxlbmd0aC0xXTpOdW1iZXIoYyk+dGhpcy50bz8icGFkIj09PXRoaXMuYXV0b2ZpeCYmby5sZW5ndGg8dGhpcy5tYXhMZW5ndGg\/WyIiLGUuYWdncmVnYXRlKHRoaXMuYXBwZW5kKHNbby5sZW5ndGgtMV0rdCxpKSldOmFbby5sZW5ndGgtMV06dH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLnZhbHVlLGk9ZS5zZWFyY2goL1teMF0vKTtpZigtMT09PWkmJmUubGVuZ3RoPD10aGlzLl9tYXRjaEZyb20pcmV0dXJuITA7Zm9yKHZhciByPXRoaXMuYm91bmRhcmllcyhlKSx1PXFyKHIsMikscz11WzBdLGE9dVsxXSxvPWFyZ3VtZW50cy5sZW5ndGgsbD1uZXcgQXJyYXkobyksaD0wO2g8bztoKyspbFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHRoaXMuZnJvbTw9TnVtYmVyKGEpJiZOdW1iZXIocyk8PXRoaXMudG8mJih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KGwpKX19XSksbn0oZ3UpO2l1Lk1hc2tlZFJhbmdlPWt1O3ZhciB5dT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHhyKHRoaXMsbiksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrPT09RGF0ZSYmZGVsZXRlIHQubWFzayx0LnBhdHRlcm4mJih0Lm1hc2s9dC5wYXR0ZXJuKTt2YXIgZT10LmJsb2Nrczt0LmJsb2Nrcz1PYmplY3QuYXNzaWduKHt9LG4uR0VUX0RFRkFVTFRfQkxPQ0tTKCkpLHQubWluJiYodC5ibG9ja3MuWS5mcm9tPXQubWluLmdldEZ1bGxZZWFyKCkpLHQubWF4JiYodC5ibG9ja3MuWS50bz10Lm1heC5nZXRGdWxsWWVhcigpKSx0Lm1pbiYmdC5tYXgmJnQuYmxvY2tzLlkuZnJvbT09PXQuYmxvY2tzLlkudG8mJih0LmJsb2Nrcy5tLmZyb209dC5taW4uZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0udG89dC5tYXguZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0uZnJvbT09PXQuYmxvY2tzLm0udG8mJih0LmJsb2Nrcy5kLmZyb209dC5taW4uZ2V0RGF0ZSgpLHQuYmxvY2tzLmQudG89dC5tYXguZ2V0RGF0ZSgpKSksT2JqZWN0LmFzc2lnbih0LmJsb2Nrcyx0aGlzLmJsb2NrcyxlKSxPYmplY3Qua2V5cyh0LmJsb2NrcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49dC5ibG9ja3NbZV07ISgiYXV0b2ZpeCJpbiBuKSYmImF1dG9maXgiaW4gdCYmKG4uYXV0b2ZpeD10LmF1dG9maXgpfSkpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLmRhdGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKSYmKCF0aGlzLmlzQ29tcGxldGV8fHRoaXMuaXNEYXRlRXhpc3QodGhpcy52YWx1ZSkmJm51bGwhPWUmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW48PWUpJiYobnVsbD09dGhpcy5tYXh8fGU8PXRoaXMubWF4KSl9fSx7a2V5OiJpc0RhdGVFeGlzdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZm9ybWF0KHRoaXMucGFyc2UodCx0aGlzKSx0aGlzKS5pbmRleE9mKHQpPj0wfX0se2tleToiZGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudHlwZWRWYWx1ZT10fX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9OcihUcihuLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHRoaXMpOm51bGx9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PURhdGV8fE5yKFRyKG4ucHJvdG90eXBlKSwibWFza0VxdWFscyIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShndSk7eXUuREVGQVVMVFM9e3BhdHRlcm46ImR7Ln1gbXsufWBZIixmb3JtYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ\/W1N0cmluZyh0LmdldERhdGUoKSkucGFkU3RhcnQoMiwiMCIpLFN0cmluZyh0LmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLHQuZ2V0RnVsbFllYXIoKV0uam9pbigiLiIpOiIifSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1xcih0LnNwbGl0KCIuIiksMyksbj1lWzBdLGk9ZVsxXSxyPWVbMl07cmV0dXJuIG5ldyBEYXRlKHIsaS0xLG4pfX0seXUuR0VUX0RFRkFVTFRfQkxPQ0tTPWZ1bmN0aW9uKCl7cmV0dXJue2Q6e21hc2s6a3UsZnJvbToxLHRvOjMxLG1heExlbmd0aDoyfSxtOnttYXNrOmt1LGZyb206MSx0bzoxMixtYXhMZW5ndGg6Mn0sWTp7bWFzazprdSxmcm9tOjE5MDAsdG86OTk5OX19fSxpdS5NYXNrZWREYXRlPXl1O3ZhciBtdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt4cih0aGlzLHQpfXJldHVybiBPcih0LFt7a2V5OiJzZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9dGhpcy5fdW5zYWZlU2VsZWN0aW9uU3RhcnR9Y2F0Y2godCl7fXJldHVybiBudWxsIT10P3Q6dGhpcy52YWx1ZS5sZW5ndGh9fSx7a2V5OiJzZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt0PXRoaXMuX3Vuc2FmZVNlbGVjdGlvbkVuZH1jYXRjaCh0KXt9cmV0dXJuIG51bGwhPXQ\/dDp0aGlzLnZhbHVlLmxlbmd0aH19LHtrZXk6InNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZihudWxsIT10JiZudWxsIT1lJiYodCE9PXRoaXMuc2VsZWN0aW9uU3RhcnR8fGUhPT10aGlzLnNlbGVjdGlvbkVuZCkpdHJ5e3RoaXMuX3Vuc2FmZVNlbGVjdCh0LGUpfWNhdGNoKHQpe319fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe319LHtrZXk6ImlzQWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe319LHtrZXk6InVuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0pLHR9KCk7aXUuTWFza0VsZW1lbnQ9bXU7dmFyIGJ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXt2YXIgaTtyZXR1cm4geHIodGhpcyxuKSwoaT1lLmNhbGwodGhpcykpLmlucHV0PXQsaS5faGFuZGxlcnM9e30saX1yZXR1cm4gT3Iobixbe2tleToicm9vdEVsZW1lbnQiLGdldDpmdW5jdGlvbigpe3ZhciB0LGUsbjtyZXR1cm4gbnVsbCE9PSh0PW51bGw9PT0oZT0obj10aGlzLmlucHV0KS5nZXRSb290Tm9kZSl8fHZvaWQgMD09PWU\/dm9pZCAwOmUuY2FsbChuKSkmJnZvaWQgMCE9PXQ\/dDpkb2N1bWVudH19LHtrZXk6ImlzQWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dD09PXRoaXMucm9vdEVsZW1lbnQuYWN0aXZlRWxlbWVudH19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5zZWxlY3Rpb25FbmR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UodCxlKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQudmFsdWU9dH19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7cmV0dXJuIGUuX3RvZ2dsZUV2ZW50SGFuZGxlcihuLkVWRU5UU19NQVBbaV0sdFtpXSl9KSl9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztPYmplY3Qua2V5cyh0aGlzLl9oYW5kbGVycykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3RvZ2dsZUV2ZW50SGFuZGxlcihlKX0pKX19LHtrZXk6Il90b2dnbGVFdmVudEhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5faGFuZGxlcnNbdF0mJih0aGlzLmlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLl9oYW5kbGVyc1t0XSksZGVsZXRlIHRoaXMuX2hhbmRsZXJzW3RdKSxlJiYodGhpcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKHQsZSksdGhpcy5faGFuZGxlcnNbdF09ZSl9fV0pLG59KG11KTtidS5FVkVOVFNfTUFQPXtzZWxlY3Rpb25DaGFuZ2U6ImtleWRvd24iLGlucHV0OiJpbnB1dCIsZHJvcDoiZHJvcCIsY2xpY2s6ImNsaWNrIixmb2N1czoiZm9jdXMiLGNvbW1pdDoiYmx1ciJ9LGl1LkhUTUxNYXNrRWxlbWVudD1idTt2YXIgX3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91bnNhZmVTZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290RWxlbWVudCxlPXQuZ2V0U2VsZWN0aW9uJiZ0LmdldFNlbGVjdGlvbigpLG49ZSYmZS5hbmNob3JPZmZzZXQsaT1lJiZlLmZvY3VzT2Zmc2V0O3JldHVybiBudWxsPT1pfHxudWxsPT1ufHxuPGk\/bjppfX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290RWxlbWVudCxlPXQuZ2V0U2VsZWN0aW9uJiZ0LmdldFNlbGVjdGlvbigpLG49ZSYmZS5hbmNob3JPZmZzZXQsaT1lJiZlLmZvY3VzT2Zmc2V0O3JldHVybiBudWxsPT1pfHxudWxsPT1ufHxuPmk\/bjppfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZih0aGlzLnJvb3RFbGVtZW50LmNyZWF0ZVJhbmdlKXt2YXIgbj10aGlzLnJvb3RFbGVtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRTdGFydCh0aGlzLmlucHV0LmZpcnN0Q2hpbGR8fHRoaXMuaW5wdXQsdCksbi5zZXRFbmQodGhpcy5pbnB1dC5sYXN0Q2hpbGR8fHRoaXMuaW5wdXQsZSk7dmFyIGk9dGhpcy5yb290RWxlbWVudCxyPWkuZ2V0U2VsZWN0aW9uJiZpLmdldFNlbGVjdGlvbigpO3ImJihyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UobikpfX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC50ZXh0Q29udGVudH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQudGV4dENvbnRlbnQ9dH19XSksbn0oYnUpO2l1LkhUTUxDb250ZW50ZWRpdGFibGVNYXNrRWxlbWVudD1fdTt2YXIgQXU9WyJtYXNrIl0sQ3U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7eHIodGhpcyx0KSx0aGlzLmVsPWUgaW5zdGFuY2VvZiBtdT9lOmUuaXNDb250ZW50RWRpdGFibGUmJiJJTlBVVCIhPT1lLnRhZ05hbWUmJiJURVhUQVJFQSIhPT1lLnRhZ05hbWU\/bmV3IF91KGUpOm5ldyBidShlKSx0aGlzLm1hc2tlZD1zdShuKSx0aGlzLl9saXN0ZW5lcnM9e30sdGhpcy5fdmFsdWU9IiIsdGhpcy5fdW5tYXNrZWRWYWx1ZT0iIix0aGlzLl9zYXZlU2VsZWN0aW9uPXRoaXMuX3NhdmVTZWxlY3Rpb24uYmluZCh0aGlzKSx0aGlzLl9vbklucHV0PXRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSx0aGlzLl9vbkNoYW5nZT10aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpLHRoaXMuX29uRHJvcD10aGlzLl9vbkRyb3AuYmluZCh0aGlzKSx0aGlzLl9vbkZvY3VzPXRoaXMuX29uRm9jdXMuYmluZCh0aGlzKSx0aGlzLl9vbkNsaWNrPXRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yPXRoaXMuYWxpZ25DdXJzb3IuYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHk9dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5LmJpbmQodGhpcyksdGhpcy5fYmluZEV2ZW50cygpLHRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLl9vbkNoYW5nZSgpfXJldHVybiBPcih0LFt7a2V5OiJtYXNrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQubWFza30sc2V0OmZ1bmN0aW9uKHQpe2lmKCF0aGlzLm1hc2tFcXVhbHModCkpaWYodCBpbnN0YW5jZW9mIGl1Lk1hc2tlZHx8dGhpcy5tYXNrZWQuY29uc3RydWN0b3IhPT11dSh0KSl7dmFyIGU9c3Uoe21hc2s6dH0pO2UudW5tYXNrZWRWYWx1ZT10aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlLHRoaXMubWFza2VkPWV9ZWxzZSB0aGlzLm1hc2tlZC51cGRhdGVPcHRpb25zKHttYXNrOnR9KX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT10fHwobnVsbD09PShlPXRoaXMubWFza2VkKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXNrRXF1YWxzKHQpKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC52YWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl91bm1hc2tlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudHlwZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6Il9iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwuYmluZEV2ZW50cyh7c2VsZWN0aW9uQ2hhbmdlOnRoaXMuX3NhdmVTZWxlY3Rpb24saW5wdXQ6dGhpcy5fb25JbnB1dCxkcm9wOnRoaXMuX29uRHJvcCxjbGljazp0aGlzLl9vbkNsaWNrLGZvY3VzOnRoaXMuX29uRm9jdXMsY29tbWl0OnRoaXMuX29uQ2hhbmdlfSl9fSx7a2V5OiJfdW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwmJnRoaXMuZWwudW5iaW5kRXZlbnRzKCl9fSx7a2V5OiJfZmlyZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlPjE\/ZS0xOjApLGk9MTtpPGU7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07dmFyIHI9dGhpcy5fbGlzdGVuZXJzW3RdO3ImJnIuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwbHkodm9pZCAwLG4pfSkpfX0se2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJzb3JDaGFuZ2luZz90aGlzLl9jaGFuZ2luZ0N1cnNvclBvczp0aGlzLmVsLnNlbGVjdGlvblN0YXJ0fX0se2tleToiY3Vyc29yUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc\/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25FbmR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmVsJiZ0aGlzLmVsLmlzQWN0aXZlJiYodGhpcy5lbC5zZWxlY3QodCx0KSx0aGlzLl9zYXZlU2VsZWN0aW9uKCkpfX0se2tleToiX3NhdmVTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJmNvbnNvbGUud2FybigiRWxlbWVudCB2YWx1ZSB3YXMgY2hhbmdlZCBvdXRzaWRlIG9mIG1hc2suIFN5bmNyb25pemUgbWFzayB1c2luZyBgbWFzay51cGRhdGVWYWx1ZSgpYCB0byB3b3JrIHByb3Blcmx5LiIpLHRoaXMuX3NlbGVjdGlvbj17c3RhcnQ6dGhpcy5zZWxlY3Rpb25TdGFydCxlbmQ6dGhpcy5jdXJzb3JQb3N9fX0se2tleToidXBkYXRlVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQudmFsdWU9dGhpcy5lbC52YWx1ZSx0aGlzLl92YWx1ZT10aGlzLm1hc2tlZC52YWx1ZX19LHtrZXk6InVwZGF0ZUNvbnRyb2wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSxlPXRoaXMubWFza2VkLnZhbHVlLG49dGhpcy51bm1hc2tlZFZhbHVlIT09dHx8dGhpcy52YWx1ZSE9PWU7dGhpcy5fdW5tYXNrZWRWYWx1ZT10LHRoaXMuX3ZhbHVlPWUsdGhpcy5lbC52YWx1ZSE9PWUmJih0aGlzLmVsLnZhbHVlPWUpLG4mJnRoaXMuX2ZpcmVDaGFuZ2VFdmVudHMoKX19LHtrZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubWFzayxuPWpyKHQsQXUpLGk9IXRoaXMubWFza0VxdWFscyhlKSxyPSF0dSh0aGlzLm1hc2tlZCxuKTtpJiYodGhpcy5tYXNrPWUpLHImJnRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMobiksKGl8fHIpJiZ0aGlzLnVwZGF0ZUNvbnRyb2woKX19LHtrZXk6InVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7bnVsbCE9dCYmKHRoaXMuY3Vyc29yUG9zPXQsdGhpcy5fZGVsYXlVcGRhdGVDdXJzb3IodCkpfX0se2tleToiX2RlbGF5VXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksdGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M9dCx0aGlzLl9jdXJzb3JDaGFuZ2luZz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuZWwmJihlLmN1cnNvclBvcz1lLl9jaGFuZ2luZ0N1cnNvclBvcyxlLl9hYm9ydFVwZGF0ZUN1cnNvcigpKX0pLDEwKX19LHtrZXk6Il9maXJlQ2hhbmdlRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2ZpcmVFdmVudCgiYWNjZXB0Iix0aGlzLl9pbnB1dEV2ZW50KSx0aGlzLm1hc2tlZC5pc0NvbXBsZXRlJiZ0aGlzLl9maXJlRXZlbnQoImNvbXBsZXRlIix0aGlzLl9pbnB1dEV2ZW50KX19LHtrZXk6Il9hYm9ydFVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JDaGFuZ2luZyYmKGNsZWFyVGltZW91dCh0aGlzLl9jdXJzb3JDaGFuZ2luZyksZGVsZXRlIHRoaXMuX2N1cnNvckNoYW5naW5nKX19LHtrZXk6ImFsaWduQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3Vyc29yUG9zPXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh0aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5jdXJzb3JQb3MsS3IpKX19LHtrZXk6ImFsaWduQ3Vyc29yRnJpZW5kbHkiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25TdGFydD09PXRoaXMuY3Vyc29yUG9zJiZ0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzW3RdfHwodGhpcy5fbGlzdGVuZXJzW3RdPVtdKSx0aGlzLl9saXN0ZW5lcnNbdF0ucHVzaChlKSx0aGlzfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9saXN0ZW5lcnNbdF0pcmV0dXJuIHRoaXM7aWYoIWUpcmV0dXJuIGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdF0sdGhpczt2YXIgbj10aGlzLl9saXN0ZW5lcnNbdF0uaW5kZXhPZihlKTtyZXR1cm4gbj49MCYmdGhpcy5fbGlzdGVuZXJzW3RdLnNwbGljZShuLDEpLHRoaXN9fSx7a2V5OiJfb25JbnB1dCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5faW5wdXRFdmVudD10LHRoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksIXRoaXMuX3NlbGVjdGlvbilyZXR1cm4gdGhpcy51cGRhdGVWYWx1ZSgpO3ZhciBlPW5ldyBldSh0aGlzLmVsLnZhbHVlLHRoaXMuY3Vyc29yUG9zLHRoaXMudmFsdWUsdGhpcy5fc2VsZWN0aW9uKSxuPXRoaXMubWFza2VkLnJhd0lucHV0VmFsdWUsaT10aGlzLm1hc2tlZC5zcGxpY2UoZS5zdGFydENoYW5nZVBvcyxlLnJlbW92ZWQubGVuZ3RoLGUuaW5zZXJ0ZWQsZS5yZW1vdmVEaXJlY3Rpb24pLm9mZnNldCxyPW49PT10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlP2UucmVtb3ZlRGlyZWN0aW9uOkdyLHU9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKGUuc3RhcnRDaGFuZ2VQb3MraSxyKTtyIT09R3ImJih1PXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh1LEdyKSksdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy51cGRhdGVDdXJzb3IodSksZGVsZXRlIHRoaXMuX2lucHV0RXZlbnR9fSx7a2V5OiJfb25DaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJnRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLm1hc2tlZC5kb0NvbW1pdCgpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuX3NhdmVTZWxlY3Rpb24oKX19LHtrZXk6Il9vbkRyb3AiLHZhbHVlOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0se2tleToiX29uRm9jdXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuYWxpZ25DdXJzb3JGcmllbmRseSgpfX0se2tleToiX29uQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuYWxpZ25DdXJzb3JGcmllbmRseSgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl91bmJpbmRFdmVudHMoKSx0aGlzLl9saXN0ZW5lcnMubGVuZ3RoPTAsZGVsZXRlIHRoaXMuZWx9fV0pLHR9KCk7aXUuSW5wdXRNYXNrPUN1O3ZhciBFdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5lbnVtJiYodC5tYXNrPSIqIi5yZXBlYXQodC5lbnVtWzBdLmxlbmd0aCkpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5lbnVtLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4T2YoZS51bm1hc2tlZFZhbHVlKT49MH0pKSYmKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpfX1dKSxufShndSk7aXUuTWFza2VkRW51bT1FdTt2YXIgRnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3JldHVybiB4cih0aGlzLG4pLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe05yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLHRoaXMuX3VwZGF0ZVJlZ0V4cHMoKX19LHtrZXk6Il91cGRhdGVSZWdFeHBzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PSJeIisodGhpcy5hbGxvd05lZ2F0aXZlPyJbK3xcXC1dPyI6IiIpLGU9KHRoaXMuc2NhbGU\/IigiK0pyKHRoaXMucmFkaXgpKyJcXGR7MCwiK3RoaXMuc2NhbGUrIn0pPyI6IiIpKyIkIjt0aGlzLl9udW1iZXJSZWdFeHBJbnB1dD1uZXcgUmVnRXhwKHQrIigwfChbMS05XStcXGQqKSk\/IitlKSx0aGlzLl9udW1iZXJSZWdFeHA9bmV3IFJlZ0V4cCh0KyJcXGQqIitlKSx0aGlzLl9tYXBUb1JhZGl4UmVnRXhwPW5ldyBSZWdFeHAoIlsiK3RoaXMubWFwVG9SYWRpeC5tYXAoSnIpLmpvaW4oIiIpKyJdIiwiZyIpLHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cD1uZXcgUmVnRXhwKEpyKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKSwiZyIpfX0se2tleToiX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UodGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yUmVnRXhwLCIiKX19LHtrZXk6Il9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlWzBdPWVbMF0ucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZyx0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksZS5qb2luKHRoaXMucmFkaXgpfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTt0PXQucmVwbGFjZSh0aGlzLl9tYXBUb1JhZGl4UmVnRXhwLHRoaXMucmFkaXgpO2Zvcih2YXIgaT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLHI9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShyPjE\/ci0xOjApLHM9MTtzPHI7cysrKXVbcy0xXT1hcmd1bWVudHNbc107dmFyIGE9UXIoKGU9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXMsaV0uY29uY2F0KHUpKSksbz1xcihhLDIpLGw9b1swXSxoPW9bMV07cmV0dXJuIHQmJiFpJiYoaC5za2lwPSEwKSxbbCxoXX19LHtrZXk6Il9zZXBhcmF0b3JzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49MCxpPTA7aTx0OysraSl0aGlzLl92YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLGkpPT09aSYmKCsrbixlJiYodCs9dGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSk7cmV0dXJuIG59fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLl92YWx1ZTtyZXR1cm4gdGhpcy5fc2VwYXJhdG9yc0NvdW50KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkubGVuZ3RoLCEwKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLHU9cXIociwyKTtyZXR1cm4gdD11WzBdLGU9dVsxXSx0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKE5yKFRyKG4ucHJvdG90eXBlKSwiZXh0cmFjdElucHV0Iix0aGlzKS5jYWxsKHRoaXMsdCxlLGkpKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiBOcihUcihuLnByb3RvdHlwZSksIl9hcHBlbmRDaGFyUmF3Iix0aGlzKS5jYWxsKHRoaXMsdCxlKTt2YXIgaT1lLnRhaWwmJmUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMuX3ZhbHVlLHI9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKGkpO3RoaXMuX3ZhbHVlPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy52YWx1ZSk7dmFyIHU9TnIoVHIobi5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl92YWx1ZSk7dmFyIHM9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShzKTtyZXR1cm4gdS50YWlsU2hpZnQrPShhLXIpKnRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCx1LnNraXA9IXUucmF3SW5zZXJ0ZWQmJnQ9PT10aGlzLnRob3VzYW5kc1NlcGFyYXRvcix1fX0se2tleToiX2ZpbmRTZXBhcmF0b3JBcm91bmQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXt2YXIgZT10LXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCsxLG49dGhpcy52YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLGUpO2lmKG48PXQpcmV0dXJuIG59cmV0dXJuLTF9fSx7a2V5OiJfYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQpO24+PTAmJih0PW4pO3ZhciBpPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQoZSk7cmV0dXJuIGk+PTAmJihlPWkrdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSxbdCxlXX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPXRoaXMuX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnModCxlKSxpPXFyKG4sMik7dD1pWzBdLGU9aVsxXTt2YXIgcj10aGlzLnZhbHVlLnNsaWNlKDAsdCksdT10aGlzLnZhbHVlLnNsaWNlKGUpLHM9dGhpcy5fc2VwYXJhdG9yc0NvdW50KHIubGVuZ3RoKTt0aGlzLl92YWx1ZT10aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMocit1KSk7dmFyIGE9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKHIpO3JldHVybiBuZXcgWXIoe3RhaWxTaGlmdDooYS1zKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9KX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpcmV0dXJuIHQ7c3dpdGNoKGUpe2Nhc2UgR3I6Y2FzZSBLcjpjYXNlICRyOnZhciBuPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodC0xKTtpZihuPj0wKXt2YXIgaT1uK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aDtpZih0PGl8fHRoaXMudmFsdWUubGVuZ3RoPD1pfHxlPT09JHIpcmV0dXJuIG59YnJlYWs7Y2FzZSBXcjpjYXNlIFhyOnZhciByPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7aWYocj49MClyZXR1cm4gcit0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9cmV0dXJuIHR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0odC5pbnB1dD90aGlzLl9udW1iZXJSZWdFeHBJbnB1dDp0aGlzLl9udW1iZXJSZWdFeHApLnRlc3QodGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLnZhbHVlKSk7aWYoZSl7dmFyIGk9dGhpcy5udW1iZXI7ZT1lJiYhaXNOYU4oaSkmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW4+PTB8fHRoaXMubWluPD10aGlzLm51bWJlcikmJihudWxsPT10aGlzLm1heHx8dGhpcy5tYXg8PTB8fHRoaXMubnVtYmVyPD10aGlzLm1heCl9cmV0dXJuIGUmJk5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy52YWx1ZSl7dmFyIHQ9dGhpcy5udW1iZXIsZT10O251bGwhPXRoaXMubWluJiYoZT1NYXRoLm1heChlLHRoaXMubWluKSksbnVsbCE9dGhpcy5tYXgmJihlPU1hdGgubWluKGUsdGhpcy5tYXgpKSxlIT09dCYmKHRoaXMudW5tYXNrZWRWYWx1ZT1TdHJpbmcoZSkpO3ZhciBpPXRoaXMudmFsdWU7dGhpcy5ub3JtYWxpemVaZXJvcyYmKGk9dGhpcy5fbm9ybWFsaXplWmVyb3MoaSkpLHRoaXMucGFkRnJhY3Rpb25hbFplcm9zJiZ0aGlzLnNjYWxlPjAmJihpPXRoaXMuX3BhZEZyYWN0aW9uYWxaZXJvcyhpKSksdGhpcy5fdmFsdWU9aX1OcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiX25vcm1hbGl6ZVplcm9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlWzBdPWVbMF0ucmVwbGFjZSgvXihcRCopKDAqKShcZCopLywoZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuIGUraX0pKSx0Lmxlbmd0aCYmIS9cZCQvLnRlc3QoZVswXSkmJihlWzBdPWVbMF0rIjAiKSxlLmxlbmd0aD4xJiYoZVsxXT1lWzFdLnJlcGxhY2UoLzAqJC8sIiIpLGVbMV0ubGVuZ3RofHwoZS5sZW5ndGg9MSkpLHRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnMoZS5qb2luKHRoaXMucmFkaXgpKX19LHtrZXk6Il9wYWRGcmFjdGlvbmFsWmVyb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiB0O3ZhciBlPXQuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGUubGVuZ3RoPDImJmUucHVzaCgiIiksZVsxXT1lWzFdLnBhZEVuZCh0aGlzLnNjYWxlLCIwIiksZS5qb2luKHRoaXMucmFkaXgpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fbm9ybWFsaXplWmVyb3ModGhpcy52YWx1ZSkpLnJlcGxhY2UodGhpcy5yYWRpeCwiLiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LnJlcGxhY2UoIi4iLHRoaXMucmFkaXgpLHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlcih0aGlzLnVubWFza2VkVmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIixTdHJpbmcodCksdGhpcywhMCl9fSx7a2V5OiJudW1iZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnR5cGVkVmFsdWU9dH19LHtrZXk6ImFsbG93TmVnYXRpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpZ25lZHx8bnVsbCE9dGhpcy5taW4mJnRoaXMubWluPDB8fG51bGwhPXRoaXMubWF4JiZ0aGlzLm1heDwwfX1dKSxufShydSk7RnUuREVGQVVMVFM9e3JhZGl4OiIsIix0aG91c2FuZHNTZXBhcmF0b3I6IiIsbWFwVG9SYWRpeDpbIi4iXSxzY2FsZToyLHNpZ25lZDohMSxub3JtYWxpemVaZXJvczohMCxwYWRGcmFjdGlvbmFsWmVyb3M6ITF9LGl1Lk1hc2tlZE51bWJlcj1GdTt2YXIgU3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzayYmKHQudmFsaWRhdGU9dC5tYXNrKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0ocnUpO2l1Lk1hc2tlZEZ1bmN0aW9uPVN1O3ZhciB3dT1bImNvbXBpbGVkTWFza3MiLCJjdXJyZW50TWFza1JlZiIsImN1cnJlbnRNYXNrIl0sQnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3ZhciBpO3JldHVybiB4cih0aGlzLG4pLChpPWUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSkpLmN1cnJlbnRNYXNrPW51bGwsaX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7TnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksIm1hc2siaW4gdCYmKHRoaXMuY29tcGlsZWRNYXNrcz1BcnJheS5pc0FycmF5KHQubWFzayk\/dC5tYXNrLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHN1KHQpfSkpOltdKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj10aGlzLl9hcHBseURpc3BhdGNoKHQsZSk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJm4uYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZENoYXIodCxlKSksbn19LHtrZXk6Il9hcHBseURpc3BhdGNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPWUudGFpbCYmbnVsbCE9ZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy52YWx1ZSxpPXRoaXMucmF3SW5wdXRWYWx1ZSxyPWUudGFpbCYmbnVsbCE9ZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fcmF3SW5wdXRWYWx1ZTppLHU9aS5zbGljZShyLmxlbmd0aCkscz10aGlzLmN1cnJlbnRNYXNrLGE9bmV3IFlyLG89cyYmcy5zdGF0ZTtpZih0aGlzLmN1cnJlbnRNYXNrPXRoaXMuZG9EaXNwYXRjaCh0LE9iamVjdC5hc3NpZ24oe30sZSkpLHRoaXMuY3VycmVudE1hc2spaWYodGhpcy5jdXJyZW50TWFzayE9PXMpe2lmKHRoaXMuY3VycmVudE1hc2sucmVzZXQoKSxyKXt2YXIgbD10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZChyLHtyYXc6ITB9KTthLnRhaWxTaGlmdD1sLmluc2VydGVkLmxlbmd0aC1uLmxlbmd0aH11JiYoYS50YWlsU2hpZnQrPXRoaXMuY3VycmVudE1hc2suYXBwZW5kKHUse3JhdzohMCx0YWlsOiEwfSkudGFpbFNoaWZ0KX1lbHNlIHRoaXMuY3VycmVudE1hc2suc3RhdGU9bztyZXR1cm4gYX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hcHBseURpc3BhdGNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmdC5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kUGxhY2Vob2xkZXIoKSksdH19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hcHBseURpc3BhdGNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmdC5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kRWFnZXIoKSksdH19LHtrZXk6ImRvRGlzcGF0Y2giLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5kaXNwYXRjaCh0LHRoaXMsZSl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4odD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSkmJighdGhpcy5jdXJyZW50TWFza3x8KGU9dGhpcy5jdXJyZW50TWFzaykuZG9WYWxpZGF0ZS5hcHBseShlLHIpKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O251bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dHx8dC5yZXNldCgpLHRoaXMuY29tcGlsZWRNYXNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCgpfSkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay51bm1hc2tlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKHQpO3RoaXMuY3VycmVudE1hc2smJih0aGlzLmN1cnJlbnRNYXNrLnR5cGVkVmFsdWU9dCxlPXRoaXMuY3VycmVudE1hc2sudW5tYXNrZWRWYWx1ZSksdGhpcy51bm1hc2tlZFZhbHVlPWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQm9vbGVhbihudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaXNDb21wbGV0ZSl9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzRmlsbGVkKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyBZcjt0aGlzLmN1cnJlbnRNYXNrJiZlLmFnZ3JlZ2F0ZSgodD10aGlzLmN1cnJlbnRNYXNrKS5yZW1vdmUuYXBwbHkodCxhcmd1bWVudHMpKS5hZ2dyZWdhdGUodGhpcy5fYXBwbHlEaXNwYXRjaCgpKTtyZXR1cm4gZX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxOcihUcihuLnByb3RvdHlwZSksInN0YXRlIix0aGlzKSx7X3Jhd0lucHV0VmFsdWU6dGhpcy5yYXdJbnB1dFZhbHVlLGNvbXBpbGVkTWFza3M6dGhpcy5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksY3VycmVudE1hc2tSZWY6dGhpcy5jdXJyZW50TWFzayxjdXJyZW50TWFzazp0aGlzLmN1cnJlbnRNYXNrJiZ0aGlzLmN1cnJlbnRNYXNrLnN0YXRlfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LmNvbXBpbGVkTWFza3MsaT10LmN1cnJlbnRNYXNrUmVmLHI9dC5jdXJyZW50TWFzayx1PWpyKHQsd3UpO3RoaXMuY29tcGlsZWRNYXNrcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnN0YXRlPWVbbl19KSksbnVsbCE9aSYmKHRoaXMuY3VycmVudE1hc2s9aSx0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPXIpLHpyKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHUsdGhpcywhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdElucHV0LmFwcGx5KHQsYXJndW1lbnRzKToiIn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5leHRyYWN0VGFpbC5hcHBseSh0LHIpOihlPU5yKFRyKG4ucHJvdG90eXBlKSwiZXh0cmFjdFRhaWwiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRNYXNrJiZ0aGlzLmN1cnJlbnRNYXNrLmRvQ29tbWl0KCksTnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykubmVhcmVzdElucHV0UG9zLmFwcGx5KHQscik6KGU9TnIoVHIobi5wcm90b3R5cGUpLCJuZWFyZXN0SW5wdXRQb3MiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl9fSx7a2V5OiJvdmVyd3JpdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sub3ZlcndyaXRlOk5yKFRyKG4ucHJvdG90eXBlKSwib3ZlcndyaXRlIix0aGlzKX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybignIm92ZXJ3cml0ZSIgb3B0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gZHluYW1pYyBtYXNrLCB1c2UgdGhpcyBvcHRpb24gaW4gc2libGluZ3MnKX19LHtrZXk6ImVhZ2VyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLmVhZ2VyOk5yKFRyKG4ucHJvdG90eXBlKSwiZWFnZXIiLHRoaXMpfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCciZWFnZXIiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmdGhpcy5jb21waWxlZE1hc2tzLmV2ZXJ5KChmdW5jdGlvbihlLG4pe3ZhciBpO3JldHVybiBlLm1hc2tFcXVhbHMobnVsbD09PShpPXRbbl0pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLm1hc2spfSkpfX1dKSxufShydSk7QnUuREVGQVVMVFM9e2Rpc3BhdGNoOmZ1bmN0aW9uKHQsZSxuKXtpZihlLmNvbXBpbGVkTWFza3MubGVuZ3RoKXt2YXIgaT1lLnJhd0lucHV0VmFsdWUscj1lLmNvbXBpbGVkTWFza3MubWFwKChmdW5jdGlvbihlLHIpe3JldHVybiBlLnJlc2V0KCksZS5hcHBlbmQoaSx7cmF3OiEwfSksZS5hcHBlbmQodCxuKSx7d2VpZ2h0OmUucmF3SW5wdXRWYWx1ZS5sZW5ndGgsaW5kZXg6cn19KSk7cmV0dXJuIHIuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS53ZWlnaHQtdC53ZWlnaHR9KSksZS5jb21waWxlZE1hc2tzW3JbMF0uaW5kZXhdfX19LGl1Lk1hc2tlZER5bmFtaWM9QnU7dmFyIER1PXtNQVNLRUQ6InZhbHVlIixVTk1BU0tFRDoidW5tYXNrZWRWYWx1ZSIsVFlQRUQ6InR5cGVkVmFsdWUifTtmdW5jdGlvbiB4dSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06RHUuTUFTS0VELG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOkR1Lk1BU0tFRCxpPXN1KHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5ydW5Jc29sYXRlZCgoZnVuY3Rpb24oaSl7cmV0dXJuIGlbZV09dCxpW25dfSkpfX1mdW5jdGlvbiBNdSh0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlPjE\/ZS0xOjApLGk9MTtpPGU7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07cmV0dXJuIHh1LmFwcGx5KHZvaWQgMCxuKSh0KX1pdS5QSVBFX1RZUEU9RHUsaXUuY3JlYXRlUGlwZT14dSxpdS5waXBlPU11O3RyeXtnbG9iYWxUaGlzLklNYXNrPWl1fWNhdGNoKHQpe310LkhUTUxDb250ZW50ZWRpdGFibGVNYXNrRWxlbWVudD1fdSx0LkhUTUxNYXNrRWxlbWVudD1idSx0LklucHV0TWFzaz1DdSx0Lk1hc2tFbGVtZW50PW11LHQuTWFza2VkPXJ1LHQuTWFza2VkRGF0ZT15dSx0Lk1hc2tlZER5bmFtaWM9QnUsdC5NYXNrZWRFbnVtPUV1LHQuTWFza2VkRnVuY3Rpb249U3UsdC5NYXNrZWROdW1iZXI9RnUsdC5NYXNrZWRQYXR0ZXJuPWd1LHQuTWFza2VkUmFuZ2U9a3UsdC5NYXNrZWRSZWdFeHA9ZHUsdC5QSVBFX1RZUEU9RHUsdC5jcmVhdGVNYXNrPXN1LHQuY3JlYXRlUGlwZT14dSx0LmRlZmF1bHQ9aXUsdC5waXBlPU11LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYXNrLm1pbi5qcy5tYXA7Ci8qKiAvanMvdmFuaWxsYWpzL2Zvcm0uanMgKiovCnZhciBfX19kMmNfZm9ybWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MjAiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI0LTAxLTMxIDE0OjMzOjA5IjsidXNlIHN0cmljdCI7X19fZDJjX2Zvcm1qc19jX29uPSIyMDIzLTA0LTI3IDEwOjMwOjQ5IjsidXNlIHN0cmljdCI7CmNvbnN0IEZvcm09ZnVuY3Rpb24oKXt0aGlzLk1BU0tTPXtwaG9uZToiMDAwIDAwMC0wMDAwIixzaW46IjAwMCAwMDAgMDAwIixwb3N0YWxDb2RlOiJhMGEgMGEwIn07dGhpcy5tYXNrPShhLGIpPT57YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGEpO2EubGVuZ3RoJiZhLmZvckVhY2goYz0+e0lNYXNrKGMsYil9KX07dGhpcy5tYXNrTnVtYmVyPShhLGIpPT57bGV0IGM9e21hc2s6TnVtYmVyLG1pbjowfTtiJiYoYy5tYXg9Yik7dGhpcy5tYXNrKGEsYyl9O3RoaXMubWFza1Bob25lPWE9Pnt0aGlzLm1hc2soYSx7bWFzazpbe21hc2s6dGhpcy5NQVNLUy5waG9uZX0se21hc2s6YDEgJHt0aGlzLk1BU0tTLnBob25lfWB9XX0pfTt0aGlzLm1hc2tQb3N0YWxDb2RlPWE9Pnt0aGlzLm1hc2soYSx7bWFzazp0aGlzLk1BU0tTLnBvc3RhbENvZGUscHJlcGFyZTpiPT5iLnRvVXBwZXJDYXNlKCl9KX19OwovKiogL2pzL21haWxRdWlja0VtYWlsV2lkZ2V0LmpzICoqLwp2YXIgX19fZDJjX21haWxRdWlja0VtYWlsV2lkZ2V0anNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjo1MiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbWFpbFF1aWNrRW1haWxXaWRnZXRqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjQyIjsidXNlIHN0cmljdCI7CnZhciBtYWlsUXVpY2tFbWFpbD1mdW5jdGlvbigpe3ZhciBhPXtuYW1lOiIiLGVtYWlsOiIiLG1lc3NhZ2U6IiIscGhvbmU6IiIsbWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHN0b2NrTnVtYmVyOiIiLGRlcGFydG1lbnQ6IiIsc2VsZWN0b3I6Ii5kZWZhdWx0IixzY29wZTpudWxsLGFzc2lnblZhbHVlczpmdW5jdGlvbigpe2EubmFtZT0kKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnZhbCgpO2EuZW1haWw9JCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS52YWwoKTthLnBob25lPSQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS52YWwoKTthLm1lc3NhZ2U9JCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgpO2EuZGVwYXJ0bWVudD0kKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5uYW1lfHxudWxsPT1hLm5hbWUpYS5uYW1lPSIiO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5lbWFpbHx8bnVsbD09YS5lbWFpbClhLmVtYWlsPQoiIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEucGhvbmV8fG51bGw9PWEucGhvbmUpYS5waG9uZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEubWVzc2FnZXx8bnVsbD09YS5tZXNzYWdlKWEubWVzc2FnZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEuZGVwYXJ0bWVudHx8bnVsbD09YS5kZXBhcnRtZW50KWEuZGVwYXJ0bWVudD0iIjt2YXIgYj1kMmNtZWRpYS5odG1sRmlsZSgpOzA8bG9jYXRpb24uaHJlZi5pbmRleE9mKCItIikmJihiPWIuc3BsaXQoIi0iKSwwPGIubGVuZ3RoJiYoYS5tYWtlPWJbMF0ucmVwbGFjZSgiXyIsIi0iKSksMTxiLmxlbmd0aCYmKGEubW9kZWw9YlsxXS5yZXBsYWNlKCJfIiwiLSIpKSwyPGIubGVuZ3RoJiYoYS55ZWFyPWJbMl0pLDM8Yi5sZW5ndGgmJihhLnN0b2NrTnVtYmVyPWJbM10ucmVwbGFjZSgiaWQiLCIiKSksMDwkKCIjZXhwcmVzc3N0b2NrbnVtYmVyIixhLnNjb3BlKS5sZW5ndGgmJjI8JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkudmFsKCkubGVuZ3RoJiYKKGEuc3RvY2tOdW1iZXI9JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkudmFsKCkpLDA8YS5tb2RlbC5sZW5ndGgmJjA9PWEueWVhci5sZW5ndGgmJiFpc05hTihhLm1vZGVsKSYmMTk4MDxhLm1vZGVsJiYyMTAwPmEubW9kZWwmJihhLnllYXI9c2VhcmNoQ3JpdGVyaWEubW9kZWwsYS5tb2RlbD0iIikpOyJ1bmRlZmluZWQiPT10eXBlb2YgYS5tYWtlJiYoYS5tYWtlPSIiKTsidW5kZWZpbmVkIj09dHlwZW9mIGEubW9kZWwmJihhLm1vZGVsPSIiKTsidW5kZWZpbmVkIj09dHlwZW9mIGEueWVhciYmKGEueWVhcj0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLm1lc3NhZ2UmJihhLm1lc3NhZ2U9IiIpfSxhcHBseVBob25lV006ZnVuY3Rpb24oKXsiKCAgICkgICAgLSAgICAiIT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCkmJiIiIT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCl8fCQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS52YWwoIiIpfSxpbml0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPQp0eXBlb2YgJCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKSYmMDwkKCIjY291cG9uRGVmYXVsdE1zZyIpLnZhbCgpLmxlbmd0aCYmKCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5jc3MoImhlaWdodCIsIjUwcHgiKSwkKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkuYXR0cigicm93cyIsMiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgkKCIjY291cG9uRGVmYXVsdE1zZyIpLnZhbCgpKSk7JCgiLnNlbmRRdWlja0VtYWlsIixhLnNjb3BlKS5vbigiY2xpY2siLGEuc2F2ZSk7KG5ldyBGb3JtKS5tYXNrUGhvbmUoIiNxdWlja0VtYWlsVGVsIik7JCgiI3F1aWNrRW1haWxUZWwiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXthLnNldFNlbGVjdG9yKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLmFwcGx5UGhvbmVXTSgpfSwyNTApfSl9LHJlc2V0V2F0ZXJtYXJrc0NvbG9yczpmdW5jdGlvbigpezA9PWEubmFtZS5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLmNzcygiY29sb3IiLAoiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsTmFtZSIsYS5zY29wZSkudmFsKCIiKSk7MD09YS5lbWFpbC5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbEFkZHIiLGEuc2NvcGUpLmNzcygiY29sb3IiLCIjNTc1NzU3IiksJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS52YWwoIiIpKTswPT1hLm1lc3NhZ2UubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLmNzcygiY29sb3IiLCIjNTc1NzU3IiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgiIikpfSxzZXRTZWxlY3RvcjpmdW5jdGlvbigpe2Euc2NvcGU9JCh0aGlzKS5jbG9zZXN0KCJmb3JtIik7cmV0dXJuIGEuc2NvcGV9LHNhdmU6ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpO2Euc2V0U2VsZWN0b3IuY2FsbCh0aGlzKTswPCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikubGVuZ3RoJiYoJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmFwcGVuZFRvKCJib2R5IikpOwowPCQoIiNlbWFpbEZhaWxNZXNzYWdlIikubGVuZ3RoJiYoJCgiI2VtYWlsRmFpbE1lc3NhZ2UiKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxGYWlsTWVzc2FnZSIpLmFwcGVuZFRvKCJib2R5IikpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmIlJlYmF0ZUNvdXBvblByb21vIj09JCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmKCQudmFsaWRpdHkuc3RhcnQoKSwkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCksJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKSxiPSQudmFsaWRpdHkuZW5kKCksIWIudmFsaWQpKXJldHVybiAkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDo2MCwKdG9wOjIxNCx3aWR0aDozMDF9KSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJChkb2N1bWVudCkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7JC52YWxpZGl0eS5jbGVhcigpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmhpZGUoKTskKHRoaXMpLm9mZihjKX0pLCExO2EuYXNzaWduVmFsdWVzKCk7Yj0hMDskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpOyQoYS5zY29wZSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTswPCQoIiNleHByZXNzU2VsZWN0UmVxdWlyZWQiLGEuc2NvcGUpLmxlbmd0aCYmIjEiPT0kKCIjZXhwcmVzc1NlbGVjdFJlcXVpcmVkIixhLnNjb3BlKS52YWwoKSYmJCgiI3F1aWNrRW1haWxEZXBhcnRtZW50IixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpOzA8JCgiI2V4cHJlc3NQaG9uZVJlcXVpcmVkIixhLnNjb3BlKS5sZW5ndGgmJiIxIj09CiQoIiNleHByZXNzUGhvbmVSZXF1aXJlZCIsYS5zY29wZSkudmFsKCkmJigkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkuaGFzQ2xhc3MoInJlcXVpcmVkIil8fCQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS5hZGRDbGFzcygicmVxdWlyZWQiKSwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkucmVxdWlyZSgpKTskKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCk7JCgiI3F1aWNrRW1haWxUZWwiKS52YWxpZGF0ZVBob25lKCk7JCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKTskKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkucmVxdWlyZSgpLm5vbkh0bWwoKTtiPSQudmFsaWRpdHkuZW5kKCk7KGI9Yi52YWxpZCk\/KCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmIiIhPSQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCk\/bWFpbFBhZ2UubWFpbElEPQokKCIjdGV4dFNhdmVNYWlsSUQiLGEuc2NvcGUpLnZhbCgpOm1haWxQYWdlLm1haWxJRD0iUXVpY2tFbWFpbCIsInVuZGVmaWVuZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYtMT09YS5zY29wZS5oYXNDbGFzcygibWVudSIpJiYobWFpbFBhZ2UubWFpbElEPSJRdWlja0VtYWlsTmV3SW52ZW50b3J5IiksInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJpbnRGbGFnIixhLnNjb3BlKS52YWwoKSYmIjEiPT0kKCIjcHJpbnRGbGFnIixhLnNjb3BlKS52YWwoKSYmInVuZGVmaW5lZCIhPSQoIiNjb3Vwb25QcmludFVSTCIpLnZhbCgpJiYtMTwkKCIjY291cG9uUHJpbnRVUkwiKS52YWwoKS5pbmRleE9mKCIuaHRtbCIpJiYocHJpbnRDb3Vwb25Vcmw9JCgiI2NvdXBvblByaW50VVJMIikudmFsKCksd2luZG93Lm9wZW4ocHJpbnRDb3Vwb25VcmwsIl9ibGFuayIpKSxtYWlsUGFnZS5qcVNjb3BlPWEuc2NvcGUsCm1haWxQYWdlLnNhdmUoKSk6KCQoIiNxdWlja0VtYWlsRm9ybSAuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGEuc2NvcGUpLnNob3coKSwkKCIjcXVpY2tFbWFpbEZvcm0iLGEuc2NvcGUpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7JCh0aGlzKS5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCh0aGlzKS5vZmYoYyl9KSk7cmV0dXJuITF9LGlzRW1haWw6ZnVuY3Rpb24oYil7cmV0dXJuL14oW2EtekEtWjAtOV8uKy1dKStAKChbYS16QS1aMC05LV0pK1wuKSsoW2EtekEtWjAtOV17Miw0fSkrJC8udGVzdChiKX0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXt2YXIgYz0hMTskLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oZCxlLGYpezE9PWQmJihjPSEwKX19KTtyZXR1cm4gY30sZ2V0U2VuZFRvOmZ1bmN0aW9uKCl7dmFyIGI9CiQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkudmFsKCk7cmV0dXJuICQoIiNleHByZXNzRGVwYXJ0bWVudEVtYWlsXyIrYikudmFsKCl9LGdldFNlbmRUb0FkZjpmdW5jdGlvbigpe3ZhciBiPSQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkudmFsKCk7cmV0dXJuICQoIiNleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmXyIrYikudmFsKCl9fTtyZXR1cm4gYX0oKTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe21haWxRdWlja0VtYWlsLnNldFNlbGVjdG9yLmNhbGwoJCgiI3F1aWNrRW1haWxGb3JtLmRlZmF1bHQiKSk7bWFpbFF1aWNrRW1haWwuaW5pdCgpOzA8JCgiI3F1aWNrRW1haWxGb3JtLm1lbnUiKS5sZW5ndGgmJihtYWlsUXVpY2tFbWFpbC5zZXRTZWxlY3Rvci5jYWxsKCQoIiNxdWlja0VtYWlsRm9ybS5tZW51IikpLG1haWxRdWlja0VtYWlsLmluaXQoKSl9KTsKLyoqIC9qcy9nZW5lcmljTWFpbC5qcyAqKi8KdmFyIF9fX2QyY19nZW5lcmljTWFpbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MTUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNC0xMS0yOCAxMDozMDoxMSI7InVzZSBzdHJpY3QiOwpHZW5lcmljTWFpbD1mdW5jdGlvbih2KXtmdW5jdGlvbiBtKGMpe2M9Yy50b1N0cmluZygpO3JldHVybiBjLnJlcGxhY2UoLzxcLz9bXj5dKz4vZ2ksIiIpfXZhciBiPXRoaXM7Yi5tYWlsSUQ9djtiLmVtYWlsU2VudD1mdW5jdGlvbihjKXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKGIubWFpbElEKTtjPygidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93U3VjY2VzcygpKSxiLmNsZWFyRm9ybSgpKToidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93RmFpbCgpKX07Yi5jbGVhckZvcm09ZnVuY3Rpb24oKXt2YXIgYz1iLmpxU2NvcGU7aWYoInVuZGVmaW5lZCI9PT0KdHlwZW9mIGN8fCIiPT1jKWlmKCQoIi5Jbm5lckJveExheWVyIikubGVuZ3RoKWM9Ii5Jbm5lckJveExheWVyIjtlbHNlIHJldHVybjskKCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQsIC5qcVRyYW5zZm9ybVRleHRhcmVhIHRleHRhcmVhIixjKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoIiIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7JCgiI2Zvb3RlckRpdiAjbGVhZFNlbnQiKS5yZW1vdmUoKX07Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTtiLmJhbmRwTGluaz1mdW5jdGlvbihjKXtyZXR1cm4gZW1haWxIYW5kbGVyLmJhbmRwTGluayhjKX07Yi5zYXZlPWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtpZighYi5fdmFsaWRhdGVGaWVsZHMoKSlyZXR1cm4gJCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKCIudmFsaWRpdHktZXJyb25lb3VzOmZpcnN0Iikub2Zmc2V0KCkudG9wLQoxMDB9LDJFMyksITE7Yi5wcmVwYXJlKCk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCl9O2IucHJlcGFyZT1mdW5jdGlvbigpe3ZhciBjPWZ1bmN0aW9uKGgpe3g9KGgrIiIpLnNwbGl0KCIuIik7eDE9eFswXTt4Mj0xPHgubGVuZ3RoPyIuIit4WzFdOiIiO2ZvcihoPS8oXGQrKShcZHszfSkvO2gudGVzdCh4MSk7KXgxPXgxLnJlcGxhY2UoaCwiJDEsJDIiKTtyZXR1cm4geDEreDJ9LGc9Yi5qcVNjb3BlP2IuanFTY29wZToiLklubmVyQm94TGF5ZXIiLGs9IiIsYT0iIixlPSIiLGQ9IiIsZj0iIjtrPTA8JCgiI2VtYWlsU3ViamVjdERlZl8iK2IubWFpbElELGcpLmxlbmd0aD8kKCIjZW1haWxTdWJqZWN0RGVmXyIrYi5tYWlsSUQsZykudGV4dCgpOjA8JCgiI2VtYWlsU3ViamVjdERlZiIsZykubGVuZ3RoPyQoIiNlbWFpbFN1YmplY3REZWYiLGcpLnRleHQoKTokKCIjZW1haWxTdWJqZWN0RGVmIikudGV4dCgpO2E9MDwkKCIjZW1haWxCb2R5RGVmXyIrYi5tYWlsSUQsZykubGVuZ3RoPyQoIiNlbWFpbEJvZHlEZWZfIisKYi5tYWlsSUQsZykuaHRtbCgpOiQoIiNlbWFpbEJvZHlEZWYiLGcpLmxlbmd0aD8kKCIjZW1haWxCb2R5RGVmIixnKS5odG1sKCk6JCgiI2VtYWlsQm9keURlZiIpLmh0bWwoKTt2YXIgbD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0SXNEZW1vIikuYXR0cigiaWQiKSYmIjEiPT0kKCIjdGV4dElzRGVtbyIpLnZhbCgpPyEwOiExOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFF1aWNrRW1haWwmJm51bGwhPW1haWxRdWlja0VtYWlsJiYic3RyaW5nIj09PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5tZXNzYWdlJiYoZW1haWxIYW5kbGVyLmNvbW1lbnRzPW1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO3N3aXRjaChiLm1haWxJRCl7Y2FzZSAiUXVpY2tFbWFpbCI6Y2FzZSAiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6Y2FzZSAibWVudUNvbnRhY3RVcyI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJxdWlja0VtYWlsRm9ybSI7bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csCmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUXVpY2tFbWFpbC5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFF1aWNrRW1haWwucGhvbmUpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csbWFpbFF1aWNrRW1haWwubWVzc2FnZSk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxtYWlsUXVpY2tFbWFpbC5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLG1haWxRdWlja0VtYWlsLm1vZGVsKTthPWEucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLG1haWxRdWlja0VtYWlsLnllYXIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLG1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyKTthPWEucmVwbGFjZSgve1wkREVQQVJUTUVOVDJ9L2csbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCk7YT1hLnJlcGxhY2UoL0NpdHk6L2csIiIpOyJ1bmRlZmluZWQiIT0KdHlwZW9mIG1haWxRdWlja0VtYWlsLnJvYWRUZXN0JiZudWxsIT1tYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCYmKGE9YS5yZXBsYWNlKC97XCRFTUFJTFJPQURURVNUfS9nLG1haWxRdWlja0VtYWlsLnJvYWRUZXN0KS5yZXBsYWNlKC97XCRFTUFJTENBUkR9L2csbWFpbFF1aWNrRW1haWwuZ2lmdENhcmQpKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxRdWlja0VtYWlsLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxRdWlja0VtYWlsLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUXVpY2tFbWFpbC5waG9uZTtlPW1haWxRdWlja0VtYWlsLm1lc3NhZ2U7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2V4cHJlc3NjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjZXhwcmVzc2NhcnZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2V4cHJlc3NjYXJtYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjZXhwcmVzc2Nhcm1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2V4cHJlc3NjYXJ5ZWFyIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPW1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJpZCIpLmF0dHIoImlkIik\/ZW1haWxIYW5kbGVyLmNhcmlkPSIiOmVtYWlsSGFuZGxlci5jYXJpZD0kKCIjZXhwcmVzc2NhcmlkIikudmFsKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiRGVtYW5kZXMtRXhwcmVzcyIpOyQoImlucHV0LmlzZXhwcmVzcyIpLnZhbCgiMSIpOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRW5naW5lJiYoJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwueWVhcikpOwoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzY2FyaWQiKS5hdHRyKCJpZCIpPzA8JCgiI2V4cHJlc3NjYXJpZCIpLnZhbCgpLmxlbmd0aD9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFF1aWNrRW1haWwubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iOmVtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iOyIiIT09bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpO2Q9bWFpbFF1aWNrRW1haWwuZ2V0U2VuZFRvKCk7Zj1tYWlsUXVpY2tFbWFpbC5nZXRTZW5kVG9BZGYoKTticmVhaztjYXNlICJSZWJhdGVDb3Vwb25Qcm9tbyI6bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7ZT1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZywKbWFpbFF1aWNrRW1haWwuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxRdWlja0VtYWlsLnBob25lKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLG1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05NQUtFfS9nLCQoIiNjb3Vwb25tYWtlIikudmFsKCkpLnJlcGxhY2UoL3tcJENPVVBPTk1PREVMfS9nLCQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkQ09VUE9OWUVBUn0vZywkKCIjY291cG9ueWVhciIpLnZhbCgpKS5yZXBsYWNlKC97XCRDT1VQT05TVE9DS05VTUJFUn0vZywkKCIjY291cG9uc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTlZBTFVFfS9nLCQoIiNjb3Vwb25WYWx1ZSIpLnZhbCgpKyIkIikucmVwbGFjZSgve1wkUFJJQ0V9L2csJCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKSsiJCIpO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNjb3Vwb25tYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjY291cG9ubW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjY291cG9ueWVhciIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFF1aWNrRW1haWwuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFF1aWNrRW1haWwubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxRdWlja0VtYWlsLnBob25lO2VtYWlsSGFuZGxlci50cmltPSQoIiNjb3Vwb252ZWhpY2xldHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2NvdXBvbnZlaGljbGV2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9JCgiI2NvdXBvbnN0b2NrbnVtYmVyIikudmFsKCk7ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjb3Vwb252ZWhpY2xlaWQiKS52YWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJSZWJhdGVDb3Vwb25Qcm9tbyIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaEVuZ2luZSYmKCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoJCgiI2NvdXBvbm1ha2UiKS52YWwoKSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgkKCIjY291cG9ubW9kZWwiKS52YWwoKSksJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCQoIiNjb3Vwb255ZWFyIikudmFsKCkpKTtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjtiLmVtYWlsU2VudD1mdW5jdGlvbihoKXskKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikudHJpZ2dlcigiY2xpY2siKX07YnJlYWs7Y2FzZSAiQ2FycHJvb2ZNYWlsIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9ImNhcnByb29mTWFpbkRpdiI7az0kKCIjZW1haWxTdWJqZWN0RGVmMiIpLnRleHQoKTthPSQoIiNlbWFpbEJvZHlEZWYyIikuaHRtbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIkRlbWFuZGVzLUNhclByb29mIik7JCgiaW5wdXQuaXNleHByZXNzIikudmFsKCIwIik7JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIubWFrZSk7CiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLm1vZGVsKTskKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLnllYXIpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKGNhcnByb29mSGFuZGxlci5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csY2FycHJvb2ZIYW5kbGVyLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLGNhcnByb29mSGFuZGxlci5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLGNhcnByb29mSGFuZGxlci5tb2RlbCkucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLGNhcnByb29mSGFuZGxlci55ZWFyKTthPWEucmVwbGFjZSgve1wkQ09MT1J9L2csY2FycHJvb2ZIYW5kbGVyLmNvbG9yKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxjYXJwcm9vZkhhbmRsZXIuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csCmNhcnByb29mSGFuZGxlci5waG9uZSk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1jYXJwcm9vZkhhbmRsZXIuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Y2FycHJvb2ZIYW5kbGVyLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1jYXJwcm9vZkhhbmRsZXIucGhvbmU7ZW1haWxIYW5kbGVyLm1ha2U9Y2FycHJvb2ZIYW5kbGVyLm1ha2U7ZW1haWxIYW5kbGVyLm1vZGVsPWNhcnByb29mSGFuZGxlci5tb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1jYXJwcm9vZkhhbmRsZXIueWVhcjtlbWFpbEhhbmRsZXIudHJpbT0kKCIjY2FycHJvb2ZjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjY2FycHJvb2ZjYXJ2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9Y2FycHJvb2ZIYW5kbGVyLnN0b2NrTnVtYmVyO2VtYWlsSGFuZGxlci5jYXJpZD0kKCIjY2FycHJvb2ZjYXJpZCIpLnZhbCgpOwpkPWNhcnByb29mSGFuZGxlci5zZW5kVG8ubGVuZ3RoJiYiIiE9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUbz9jYXJwcm9vZkhhbmRsZXIuc2VuZFRvOiQoIiN0ZXh0U2VuZFRvRW1haWwiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpOiIiO2Y9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZi5sZW5ndGgmJiIiIT1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmP2NhcnByb29mSGFuZGxlci5zZW5kVG9BZGY6JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCk6IiI7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9Y2FycHJvb2ZIYW5kbGVyLmRlYWxlck5hbWU7YnJlYWs7Y2FzZSAiQ3VzdG9tZXJSYXRpbmciOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0iQ3VzdG9tZXJSYXRpbmciO21haWxSYXRpbmcuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJFJBVElOR01FU1NBR0V9L2csbWFpbFJhdGluZy5tZXNzYWdlKS5yZXBsYWNlKC97XCRMTkFNRX0vZywKZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFJhdGluZy51c2VyTGFzdE5hbWUpKS5yZXBsYWNlKC97XCRGTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUmF0aW5nLnVzZXJFbWFpbCkucmVwbGFjZSgve1wkUEhPTkV9L2csbWFpbFJhdGluZy51c2VyUGhvbmUpLnJlcGxhY2UoL3tcJFJBVElOR1NUQVJTfS9nLG1haWxSYXRpbmcucmF0aW5nKS5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2s9ay5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2VtYWlsSGFuZGxlci52aW49IiI7ZW1haWxIYW5kbGVyLnByaWNlPTA7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPQoiIjtlbWFpbEhhbmRsZXIuY2FyaWQ9IiI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFJhdGluZy51c2VyRmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9bWFpbFJhdGluZy51c2VyTGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUmF0aW5nLnVzZXJQaG9uZTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxSYXRpbmcudXNlckVtYWlsO2Q9bWFpbFJhdGluZy5zZW5kVG87Zj0iICAiO2JyZWFrO2Nhc2UgImhlYWRlclNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxTZW50Q2FsbGJhY2soKTthPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxIYW5kbGVyVmFsdWVzQW5kQm9keShhKTtkPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjsKYnJlYWs7Y2FzZSAibWVudVNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLnNldEVtYWlsU2VudENhbGxiYWNrKCk7YT1zZXJ2aWNlRm9ybV9tZW51U2VydmljZS5zZXRFbWFpbEhhbmRsZXJWYWx1ZXNBbmRCb2R5KGEpO2Q9c2VydmljZUZvcm1fbWVudVNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjticmVhaztkZWZhdWx0OiIiPT1kJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWwiKS5hdHRyKCJpZCIpJiYoZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCkpOyIiPT1mJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5hdHRyKCJpZCIpJiYzPCQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKS5sZW5ndGgmJihmPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVmVoaWNsZVdpZGdldCYmCihtYWlsVmVoaWNsZVdpZGdldC5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csbWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC55ZWFyKS5yZXBsYWNlKC97XCRDT0xPUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5jb2xvcikucmVwbGFjZSgve1wkRU1BSUxTVE9DS05VTUJFUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEZST01ZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmZyb21ZZWFyKS5yZXBsYWNlKC97XCRUT1lFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQudG9ZZWFyKS5yZXBsYWNlKC97XCRJTlRFTlRJT059L2csbWFpbFZlaGljbGVXaWRnZXQuaW50ZW50aW9uKS5yZXBsYWNlKC97XCRQTEFURVN9L2csCm1haWxWZWhpY2xlV2lkZ2V0LnBsYXRlcykucmVwbGFjZSgve1wkVklOfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnZpbiksbWFpbFZlaGljbGVXaWRnZXQub2RvbW90ZXImJihhPWEucmVwbGFjZSgve1wkS019L2csYyhtYWlsVmVoaWNsZVdpZGdldC5vZG9tb3RlcikpKSwkKCJpbnB1dC5icmFuZGVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0LnllYXIsCmVtYWlsSGFuZGxlci50cmltPSQoIiNjYXJ0cmltIikudmFsKCksZW1haWxIYW5kbGVyLnZpbj1tYWlsVmVoaWNsZVdpZGdldC52aW4sZW1haWxIYW5kbGVyLnByaWNlPSQoIiNjYXJwcmljZSIpLnZhbCgpLGVtYWlsSGFuZGxlci5zdG9ja051bWJlcj1tYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcixlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NhcmlkIikudmFsKCksMDwkKCIjY2FyaWQiKS52YWwoKS5sZW5ndGh8fGVtYWlsSGFuZGxlci55ZWFyPChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKT9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFZlaGljbGVXaWRnZXQubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iKTthPWEucmVwbGFjZSgve1wkUExBVEVTfS9nLCIiKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxWZWhpY2xlV2lkZ2V0RXgmJiQoIiN2ZWhpY2xlU2VsZWN0Rm9ybUV4IikubGVuZ3RoJiYobWFpbFZlaGljbGVXaWRnZXRFeC5hc3NpZ25WYWx1ZXMoKSwKYT1hLnJlcGxhY2UoL3tcJE1BS0VFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLnJlcGxhY2UoL3tcJE1PREVMRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCkucmVwbGFjZSgve1wkWUVBUkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcikucmVwbGFjZSgve1wkQ09MT1JFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmNvbG9yKS5yZXBsYWNlKC97XCRUUklNRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmltKS5yZXBsYWNlKC97XCRUUkFOU01JU1NJT059L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmFuc21pc3Npb24pLnJlcGxhY2UoL3tcJEtNfS9nLGMobWFpbFZlaGljbGVXaWRnZXRFeC5vZG9tb3RlcikpLnJlcGxhY2UoL3tcJFZJTkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudmluKS5yZXBsYWNlKC97XCREUklWRVRSQUlOfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbikucmVwbGFjZSgve1wkR0FTfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZnVlbCksCiQoImlucHV0LmJyYW5kZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aCYmJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbC5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGgmJiQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLnRyaW09bWFpbFZlaGljbGVXaWRnZXRFeC50cmltLAoidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlci5pc1RyYWRlSW5CYXJ8fCJQcmljZVZlaGljbGUiIT1iLm1haWxJRCYmIlByaWNlVmVoaWNsZU5ldyIhPWIubWFpbElEJiYiRXN0aGV0aWNSZXF1ZXN0IiE9Yi5tYWlsSUR8fChlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldC55ZWFyLGVtYWlsSGFuZGxlci50cmltPW1haWxWZWhpY2xlV2lkZ2V0LnRyaW0sIlByaWNlVmVoaWNsZSIhPWIubWFpbElEJiYiUHJpY2VWZWhpY2xlTmV3IiE9Yi5tYWlsSUQpfHwoZW1haWxIYW5kbGVyLmNhcjJfbWFrZT1tYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UsZW1haWxIYW5kbGVyLmNhcjJfbW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIuY2FyMl90cmltPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSwKZW1haWxIYW5kbGVyLmNhcjJfeWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLmNhcjJfY29sb3I9bWFpbFZlaGljbGVXaWRnZXRFeC5jb2xvcixlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj1jKG1haWxWZWhpY2xlV2lkZ2V0RXgub2RvbW90ZXIpLGVtYWlsSGFuZGxlci5jYXIyX3Zpbj1tYWlsVmVoaWNsZVdpZGdldEV4LnZpbixlbWFpbEhhbmRsZXIuY2FyMl90cmFuc21pc3Nvbj1tYWlsVmVoaWNsZVdpZGdldEV4LnRyYW5zbWlzc2lvbixlbWFpbEhhbmRsZXIuY2FyMl9kcml2ZXRyYWluPW1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbixlbWFpbEhhbmRsZXIuY2FyMl9mdWVsdHlwZT1tYWlsVmVoaWNsZVdpZGdldEV4LmZ1ZWwsYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5MT1d9L2csIk4vQSIpLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOSElHSH0vZywiTi9BIiksYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5BVkd9L2csIk4vQSIpKSxlbWFpbEhhbmRsZXIudmluPQoiIixlbWFpbEhhbmRsZXIucHJpY2U9MCxlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9IiIsZW1haWxIYW5kbGVyLmNhcmlkPSIiLDA8JCgiI2NhcmlkIikudmFsKCkubGVuZ3RoP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjc2VydmljZVBhY2thZ2VzIikucHJvcCgiaWQiKSl7dmFyIG49ITEscj0iIjskKCJpbnB1dC5zZWxlY3RlZFNlcnZpY2UiKS5lYWNoKGZ1bmN0aW9uKGgscCl7aD0kKHApO2guaXMoIjpjaGVja2VkIikmJihyKz0iPGJyPiIraC52YWwoKSxuPSEwKX0pO24mJihyPSI8YnI+PGJyPjx1PiIrJCgiI3NlbGVjdGVkU2VydmljZXNUaXRsZSIpLnZhbCgpKyI8L3U+IityKTthPWEucmVwbGFjZSgve1wkU0VMRUNURURTRVJWSUNFU30vZyxyKX0idW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmCihtYWlsVXNlckluZm8uYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJEZOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxVc2VySW5mby5maXJzdE5hbWUpKS5yZXBsYWNlKC97XCRMTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsVXNlckluZm8ubGFzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxVc2VySW5mby5waG9uZSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFVzZXJJbmZvLmVtYWlsKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsSm9iT2ZmZXImJihtYWlsSm9iT2ZmZXIuYXNzaWduVmFsdWVzKCksZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCksZj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCksYT1hLnJlcGxhY2UoL3tcJEpPQlBPU1R9L2csbShkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsSm9iT2ZmZXIuam9iUG9zaXRvbikpKS5yZXBsYWNlKC97XCRKT0JERVBBUlRNRU5UfS9nLAptKGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxKb2JPZmZlci5qb2JEZXBhcnRtZW50KSkpLnJlcGxhY2UoL3tcJEpPQk1TR30vZyxtKG1haWxKb2JPZmZlci5qb2JNZXNzYWdlKSkpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJBZGRyZXNzKXttYWlsVXNlckFkZHJlc3MuYXNzaWduVmFsdWVzKCk7dmFyIHE9dHJpbShtYWlsVXNlckFkZHJlc3MuYWRkcmVzc0FwcCsiICIrbWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NOdW1iZXIrIiAiK21haWxVc2VyQWRkcmVzcy5hZGRyZXNzU3RyZWV0KTthPWEucmVwbGFjZSgve1wkQ1VSUkVOVEFERFJFU1N9L2csbShxKSkucmVwbGFjZSgve1wkQ1VSUkVOVENJVFl9L2csbShtYWlsVXNlckFkZHJlc3MuY2l0eSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQUk9WSU5DRX0vZyxtKG1haWxVc2VyQWRkcmVzcy5wcm92aW5jZSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQT1NUQUxDT0RFfS9nLG0obWFpbFVzZXJBZGRyZXNzLnBvc3RhbENvZGUpKX0idW5kZWZpbmVkIiE9CnR5cGVvZiBtYWlsU2NoZWR1bGUmJihtYWlsU2NoZWR1bGUuYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJERBVEUxfS9nLG1haWxTY2hlZHVsZS5maXJzdENob2ljZSkucmVwbGFjZSgve1wkREFURTJ9L2csbWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSkucmVwbGFjZSgve1wkV0FJVElOR09OU0lURX0vZyxtYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSkucmVwbGFjZSgve1wkVFJBTlNQT1JUT1BUSU9OfS9nLG1haWxTY2hlZHVsZS5nZXRUcmFuc3BvcnRPcHRpb25UZXh0KCkpLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTE9bWFpbFNjaGVkdWxlLmZpcnN0Q2hvaWNlLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTI9bWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSxlbWFpbEhhbmRsZXIud2FpdGluZ09uU2l0ZT1tYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSxlbWFpbEhhbmRsZXIudHJhbnNwb3J0T3B0aW9uPW1haWxTY2hlZHVsZS50cmFuc3BvcnRPcHRpb24pO3ZhciB0PXE9IiIsCnU9IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZmluYW5jZU9wdGlvbkRpdiIpLmF0dHIoImlkIikmJigiY2hlY2tlZCI9PSQoIiNmaW5hbmNlT3B0aW9uRGl2IGlucHV0IikuYXR0cigiY2hlY2tlZCIpP3E9JCgiI3RleHRDYXNoIikudmFsKCk6KHE9ImNoZWNrZWQiPT0kKCIjZmluYW5jZU9wdGlvbkRpdjIgaW5wdXQiKS5hdHRyKCJjaGVja2VkIik\/JCgiI3RleHRGaW5hbmNlIikudmFsKCk6JCgiI3RleHRMZWFzZSIpLnZhbCgpLHU9JCgiI2ZpbmFuY2VUZXJtU2VsZWN0IikudmFsKCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3ZlaGljbGVPZmZlciIpLmF0dHIoImlkIikmJih0PSIkIitjKCQoIiN2ZWhpY2xlT2ZmZXIiKS52YWwoKSkpLGE9YS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLHEpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLHUpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLHQpKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNxdWVzdGlvbnNDb21tZW50cyIpLmF0dHIoImlkIikmJgooZT1tKCQoIiNxdWVzdGlvbnNDb21tZW50cyIpLnZhbCgpKSxhPWEucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLGUpLGVtYWlsSGFuZGxlci5jb21tZW50cz1lKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNyZXF1ZXN0VHlwZSIpLmF0dHIoImlkIikmJihhPWEucmVwbGFjZSgve1wkREVNQU5ERX0vZywkKCIjcmVxdWVzdFR5cGUiKS52YWwoKSkpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoYT1hLnJlcGxhY2UoL3tcJFRFU1REUklWRVRZUEV9L2csJCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSksYT0iVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKT9hLnJlcGxhY2UoL3tcJFRFU1REUklWRVZJUlRVQUx9L2csJCgiI3ByZWZlcmVkVmlydHVhbFRvb2wiKS52YWwoKSk6YS5yZXBsYWNlKC97XCRURVNURFJJVkVWSVJUVUFMfS9nLCJOL0EiKSk7JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aD8KZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmZpbmQoIjpzZWxlY3RlZCIpLmh0bWwoKToiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYkKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIikuaHRtbCgpKTtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSYmKGE9YS5yZXBsYWNlKCJ7JERFQUxFUk5BTUV9IixlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSkpO2E9YS5yZXBsYWNlKC97XCQoREFURVsxMl0pfS9nLGZ1bmN0aW9uKGgscCl7aD0kKCdpbnB1dFtuYW1lPSInK3AudG9Mb3dlckNhc2UoKSsnIl0nLGcpO3JldHVybiAwPGgubGVuZ3RoPyhuZXcgRGF0ZShoLnZhbCgpKSkuZGF0ZUZvcm1hdCgiWS1tLWQgSDppIik6IiJ9KTtjPSIiOzA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoJiYoYz0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsKIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoInskTEFTVFZFSElDTEVWSUVXRUR9IixjKTthPWEucmVwbGFjZShSZWdFeHAoIntcXCQoUVVFU1RJT05TfE1FU1NBR0V8UkFUSU5HTUVTU0FHRXxFTUFJTFBIT05FfEVNQUlMTUFLRXxFTUFJTE1PREVMfEVNQUlMWUVBUnxQQVlNRU5UfFBBWU1FTlRURVJNfE9GRkVSfFNUT0NLTlVNQkVSfENPTE9SfEZOQU1FfExOQU1FfEVNQUlMfEtNfFZJTkVYfFNFTEVDVEVEU0VSVklDRVN8RU1BSUxDSVRZfFBMQVRFU3xEQVRFMXxEQVRFMnxUUkFOU1BPUlRPUFRJT04pfSIsImciKSwiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxiLmJhbmRwTGluaygpKTsiIj09ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsIikuYXR0cigiaWQiKSYmCihkPWwmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLmF0dHIoImlkIikmJjA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpLmxlbmd0aD8kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCk6JCgiI2V4cHJlc3NTZW5kVG9FbWFpbCIpLnZhbCgpKTtpZigiIj09ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGIikuYXR0cigiaWQiKSlpZihsJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS5hdHRyKCJpZCIpJiYwPCQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS52YWwoKS5sZW5ndGgpZj0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikudmFsKCk7ZWxzZSBpZigic2VydmljZSI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fGImJigibWVudVNlcnZpY2UiPT1iLm1haWxJRHx8ImhlYWRlclNlcnZpY2UiPT0KYi5tYWlsSUQpKWY9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERlNFUlZJQ0UiKS52YWwoKTsiIj09ZCYmJCgiI2V4cHJlc3NJbkRlbW8iKS5sZW5ndGgmJiIxIj09JCgiI2V4cHJlc3NJbkRlbW8iKS52YWwoKSYmKGVtYWlsSGFuZGxlci5jb25kaXRpb249Ik5ldyIsMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkubGVuZ3RoJiYoZD0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkpKTsiUXVpY2tFbWFpbCI9PWIubWFpbElEJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiYwPGUubGVuZ3RoJiYwPCQoIiNzZXJ2aWNlRW1haWwiKS5sZW5ndGgmJjA8JCgiI3NlcnZpY2VBZGZFbWFpbCIpLmxlbmd0aCYmKHRlcm1zPSJyYXBwZWw7c2VydmljZTtodWlsZTtwaWVjZXM7cGnvv71jZXM7cG5ldXM7dHJhbnNtaXNzaW9uO2FjY2Vzc29pcmVzO2FsdGVybmF0ZXVyO2FudGlyb3VpbGxlO2FudGktcm91aWxsZTtiYXR0ZXJpZTtiYXRlcmllO3Lvv71wYXJhdGlvbjtwZWludHVyZTtmcmVpbnM7ZGlzcXVlcztjYXJyb3NzZXJpZTtjYXRhbHlzZXVyO2Nob2M7ZGVtYXJyZXVyO++\/vWNoYXBwZW1lbnQ7bW90ZXVyO2Vzc3VpZS1nbGFjZTtlc3N1aS1nbGFjZTsgZmV1eDtjbGlnbm90YW50O2tsYXhvbjtmaWx0cmU7aG9ybG9nZTtyYWRpbzt0b2l0LW91dnJhbnQ7IG1hZzsgbWFncztt77+9Y2FuaXF1ZTttdWZmbGVyO25hdmlnYXRpb247b3JkaW5hdGV1cjsgcGhhcmVzO2x1bWnvv71yZXM7bHVtaWVyZTtwcm9ibO+\/vW1lO3Byb2JsZW1lO3JlY2FsbDtwYXJ0czt0aXJlO2FjY2Vzc29yaWVzO2FsdGVybmF0b3I7cnVzdHByb29maW5nO2JhdHRlcnk7cmVwYWlyO3BhaW50O2JyYWtlO2Rpc2tzOyBib2R5O3N0YXJ0ZXI7ZXhoYXVzdDtlbmdpbmU7d2lwZXI7d2lwZXJzOyBmbGFzaDsgbGlnaHQ7Zmxhc2hlcjtmbGFzaGVyczsgaG9ybjtmaWx0ZXI7Y2xvY2s7cm9vZjttZWNhbmljO2NvbXB1dGVyO2VjdTtwcm9ibGVtIi5zcGxpdCgiOyIpLAptYXRjaGVkVGVybXM9W10sJC5lYWNoKHRlcm1zLGZ1bmN0aW9uKGgscCl7aWYoLTE8ZS5pbmRleE9mKHApKXJldHVybiBkPSQoIiNzZXJ2aWNlRW1haWwiKS52YWwoKSxmPSQoIiNzZXJ2aWNlQWRmRW1haWwiKS52YWwoKSwhMX0pKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1rO2VtYWlsSGFuZGxlci5ib2R5PWE7ZW1haWxIYW5kbGVyLnNlbmRUbz1kO2VtYWlsSGFuZGxlci5zZW5kRnJvbT0iIjtlbWFpbEhhbmRsZXIubWFpbElEPWIubWFpbElEO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1iLmVtYWlsU2VudDsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmIm1lbnVDb250YWN0VXMiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYibWVudVNlcnZpY2UiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYoZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsVXNlckluZm8uZW1haWwsZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFVzZXJJbmZvLmZpcnN0TmFtZSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPQptYWlsVXNlckluZm8ubGFzdE5hbWUsZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsVXNlckluZm8ucGhvbmUpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbEpvYk9mZmVyJiYoZW1haWxIYW5kbGVyLnVzZXJBdHRhY2htZW50UGF0aD1tYWlsSm9iT2ZmZXIuam9iRmlsZSk7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1mOy0xIT1lbWFpbEhhbmRsZXIuYm9keS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInRlc3RAZDJjbWVkaWEuY2EiKSYmJCgiaW5wdXQudGVzdG1vZGUiKS52YWwoIjEiKTskKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoP2VtYWlsSGFuZGxlci5zZW5kVG89JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpOiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoJiYoZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpKX07Yi5fdmFsaWRhdGVGaWVsZHM9CmZ1bmN0aW9uKGMpe3ZhciBnPSExLGs9JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbCgpLGE9dGhpcy5qcVNjb3BlO2lmKCIjcXVpY2tFbWFpbEZvcm0iPT1hKXJldHVybiEwOyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgZT0iLklubmVyQm94TGF5ZXIiOzA8JCgiLm1haW5fbGVmdF9ib3giKS5sZW5ndGgmJihlPSIubWFpbl9sZWZ0X2JveCIpO2E9Yi5qcVNjb3BlP2IuanFTY29wZTplOzE+JChhKS5sZW5ndGgmJihhPSIjbmV3ZGV0YWlscyIpOzE+JChhKS5sZW5ndGgmJihhPSIubmV3LWRldGFpbHMiKTsxPiQoYSkubGVuZ3RoJiYoYT0iYm9keSIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtjPSQoYSkuZmluZCgiLnJlcXVpcmVkLC52YWxpZGF0ZSIpOyQoYSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtjLmZpbHRlcigiLnJlcXVpcmVkIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLm5vbkh0bWwoKX0pOwpjLmZpbHRlcigiLnJlcXVpcmVkLXBob25lIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLnZhbGlkYXRlUGhvbmUoKX0pO2MuZmlsdGVyKCIucGhvbmU6bm90KC5yZXF1aXJlZC1waG9uZSkiKS5lYWNoKChsLG4pPT57JChuKS52YWxpZGF0ZVBob25lKCl9KTtlPSQoIiNwaG9uZTEsI3Bob25lMiwjcGhvbmUzIixhKS5maWx0ZXIoIjp2aXNpYmxlIik7aWYoMDxlLmxlbmd0aCl7dmFyIGQsZjtsZXQgbCxuOzA8KGVbMF0udmFsdWUrKG51bGwhPShsPW51bGw9PShkPWVbMV0pP3ZvaWQgMDpkLnZhbHVlKT9sOiIiKSsobnVsbCE9KG49bnVsbD09KGY9ZVsyXSk\/dm9pZCAwOmYudmFsdWUpP246IiIpKS5sZW5ndGgmJiQoZSkudmFsaWRhdGVQaG9uZSgpfWMuZmlsdGVyKCIuemlwIikuZWFjaChmdW5jdGlvbigpeygkKHRoaXMpLmlzKCIucmVxdWlyZWQiKXx8MCE9JCh0aGlzKS52YWwoKS5sZW5ndGgpJiYkKHRoaXMpLnJlcXVpcmVQb3N0YWxDb2RlKCl9KTsxPT0kKCIudmluIikubGVuZ3RoJiYKKCQoIi52aW4iKS5pcygiLnJlcXVpcmVkIikmJiQoIi52aW4iKS5yZXF1aXJlKCkubm9uSHRtbCgpLDA8JCgiLnZpbiIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbiIpLm1pbkxlbmd0aCgxNykpOzE9PSQoIi52aW5FeCIpLmxlbmd0aCYmKCQoIi52aW5FeCIpLmlzKCIucmVxdWlyZWQiKSYmJCgiLnZpbkV4IikucmVxdWlyZSgpLm5vbkh0bWwoKSwwPCQoIi52aW5FeCIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbkV4IikubWluTGVuZ3RoKDE3KSk7Yy5maWx0ZXIoIi5lbWFpbCIpLmVhY2goZnVuY3Rpb24oKXsoJCh0aGlzKS5pcygiLnJlcXVpcmVkIil8fDAhPSQodGhpcykudmFsKCkubGVuZ3RoKSYmJCh0aGlzKS52YWxpZEVtYWlsQWRkcmVzcygpfSk7JChhKS5maW5kKCIudmFsaWRhdGUtZ3JvdXAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGw9JCh0aGlzKS52YWwoKTskKGwsYSkudmFsaWRBbGxvck5vbmUoKX0pO2MuZmlsdGVyKCIudXBsb2FkIikuZWFjaChmdW5jdGlvbigpeyEkKHRoaXMpLmlzKCIucmVxdWlyZWQiKSYmCjA9PSQodGhpcykudmFsKCkubGVuZ3RofHwiIiE9JCh0aGlzKS52YWwoKXx8KCQoIiN1cGxvYWRTdGF0dXMiKS5jc3MoImNvbG9yIiwicmVkIiksJCgiI3VwbG9hZFN0YXR1cyIpLmh0bWwoJCgiI2ZpbGVVcGxvYWRSZXF1ZXN0IikudmFsKCkpLCQoIiN1cGxvYWRTdGF0dXMiKS5zaG93KCkpfSk7ZD0kLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnM7JCgiI2VtYWlsIikubWF0Y2goImVtYWlsIik7JC52YWxpZGl0eS5yZXBvcnQuZXJyb3JzPmQmJihmPSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnRleHQoKSsiLjxici8+IiskKCIjZW1haWxFcnJvck1zZyIsIiN1c2VySW5mb0Zvcm0iKS52YWwoKSsiLiIsMD09ZCYmKGY9JCgiI2VtYWlsRXJyb3JNc2ciLCIjdXNlckluZm9Gb3JtIikudmFsKCkpLCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoZikpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYiZnVuY3Rpb24iPT10eXBlb2YgbWFpbFVzZXJJbmZvLmFkZGVkVmFsaWRhdGlvbiYmCm1haWxVc2VySW5mby5hZGRlZFZhbGlkYXRpb24oYSk7JC52YWxpZGl0eS5lbmQoKS52YWxpZD9nPSEwOigkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuY2VudGVyKCksJChkb2N1bWVudCkub25lKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGwpeyQudmFsaWRpdHkuY2xlYXIoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbChrKX0pKTtyZXR1cm4gZ319O3ZhciBtYWlsUGFnZT1uZXcgR2VuZXJpY01haWw7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7MDwkKCIjdG9waXNtb2JpbGUiKS5sZW5ndGgmJjE8JCgiI3RvcGlzbW9iaWxlIikudmFsKCkmJihtYWlsUGFnZS5qcVNjb3BlPSIubmV3LWRldGFpbHMiKTskKCIjc2VuZEVtYWlsRm9ybSBidXR0b24iKS5vbigiY2xpY2sgdGFwIixtYWlsUGFnZS5zYXZlKTskKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLm9uKCJjbGljayB0YXAiLG1haWxQYWdlLnNhdmUpO21haWxQYWdlLm1haWxJRD0kKCIjdGV4dFNhdmVNYWlsSUQiKS52YWwoKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJzdW1tYXJ5IixzY3JvbGxUbzohMX0pO2pRdWVyeS5mbi5jZW50ZXI9ZnVuY3Rpb24oKXskKCJpc21vYmlsZSIpJiYwPCQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikubGVuZ3RoP3RoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLm91dGVyV2lkdGgoKSkvMiwKdG9wOiQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikucG9zaXRpb24oKS50b3AtMTB9KTp0aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OigkKHdpbmRvdykud2lkdGgoKS0kKCIjY29udGFpbmVyIikub3V0ZXJXaWR0aCgpKS8yLHRvcDooJCh3aW5kb3cpLmhlaWdodCgpLSQoIiNjb250YWluZXIiKS5vdXRlckhlaWdodCgpKS8yfSk7cmV0dXJuIHRoaXN9OyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFBhZ2UubWFpbElEJiZlbWFpbEhhbmRsZXIubG9nRm9ybVJlcXVlc3QoIkZvcm1Mb2FkZWQiLG1haWxQYWdlLm1haWxJRCl9KTsKLyoqIC9qcy9qcXVlcnkucHJldHR5UGhvdG8yLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeXByZXR0eVBob3RvMmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6NDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeXByZXR0eVBob3RvMmpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MzMiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIHkoKXt2YXIgZT1sb2NhdGlvbi5ocmVmO3JldHVybiBoYXNodGFnPS0xIT09ZS5pbmRleE9mKCIjcHJldHR5UGhvdG8iKT9kZWNvZGVVUkkoZS5zdWJzdHJpbmcoZS5pbmRleE9mKCIjcHJldHR5UGhvdG8iKSsxLGUubGVuZ3RoKSk6ITF9ZnVuY3Rpb24gbChlLHApe2U9ZS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2U9KG5ldyBSZWdFeHAoIltcXD8mXSIrZSsiPShbXiYjXSopIikpLmV4ZWMocCk7cmV0dXJuIG51bGw9PWU\/IiI6ZVsxXX1hLnByZXR0eVBob3RvPXt2ZXJzaW9uOiIzLjEuNSJ9O2EuZm4ucHJldHR5UGhvdG89ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcCgpe2EoIi5wcF9sb2FkZXJJY29uIikuaGlkZSgpO3Byb2plY3RlZFRvcD1zY3JvbGxfcG9zLnNjcm9sbFRvcCsoay8yLWQuY29udGFpbmVySGVpZ2h0LzIpOzA+cHJvamVjdGVkVG9wJiYocHJvamVjdGVkVG9wPTApOyRwcHQuZmFkZVRvKGIuYW5pbWF0aW9uX3NwZWVkLAoxKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLmFuaW1hdGUoe2hlaWdodDpkLmNvbnRlbnRIZWlnaHQsd2lkdGg6ZC5jb250ZW50V2lkdGh9LGIuYW5pbWF0aW9uX3NwZWVkKTskcHBfcGljX2hvbGRlci5hbmltYXRlKHt0b3A6cHJvamVjdGVkVG9wLGxlZnQ6MD5oLzItZC5jb250YWluZXJXaWR0aC8yPzA6aC8yLWQuY29udGFpbmVyV2lkdGgvMix3aWR0aDpkLmNvbnRhaW5lcldpZHRofSxiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciwjZnVsbFJlc0ltYWdlIikuaGVpZ2h0KGQuaGVpZ2h0KS53aWR0aChkLndpZHRoKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZmFkZSIpLmZhZGVJbihiLmFuaW1hdGlvbl9zcGVlZCk7aXNTZXQmJiJpbWFnZSI9PXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pPyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciIpLnNob3coKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIiKS5oaWRlKCk7CmIuYWxsb3dfZXhwYW5kJiYoZC5yZXNpemVkP2EoImEucHBfZXhwYW5kLGEucHBfY29udHJhY3QiKS5zaG93KCk6YSgiYS5wcF9leHBhbmQiKS5oaWRlKCkpOyFiLmF1dG9wbGF5X3NsaWRlc2hvd3x8cXx8dXx8YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO2IuY2hhbmdlcGljdHVyZWNhbGxiYWNrKCk7dT0hMH0pO2lzU2V0JiZiLm92ZXJsYXlfZ2FsbGVyeSYmImltYWdlIj09dChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk\/KGl0ZW1XaWR0aD01NyxuYXZXaWR0aD0iZmFjZWJvb2siPT1iLnRoZW1lfHwicHBfZGVmYXVsdCI9PWIudGhlbWU\/NTA6MzAsaXRlbXNQZXJQYWdlPU1hdGguZmxvb3IoKGQuY29udGFpbmVyV2lkdGgtMTAwLW5hdldpZHRoKS9pdGVtV2lkdGgpLGl0ZW1zUGVyUGFnZT1pdGVtc1BlclBhZ2U8cHBfaW1hZ2VzLmxlbmd0aD9pdGVtc1BlclBhZ2U6cHBfaW1hZ2VzLmxlbmd0aCx0b3RhbFBhZ2U9TWF0aC5jZWlsKHBwX2ltYWdlcy5sZW5ndGgvaXRlbXNQZXJQYWdlKS0KMSwwPT10b3RhbFBhZ2U\/KG5hdldpZHRoPTAsJHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQsLnBwX2Fycm93X3ByZXZpb3VzIikuaGlkZSgpKTokcHBfZ2FsbGVyeS5maW5kKCIucHBfYXJyb3dfbmV4dCwucHBfYXJyb3dfcHJldmlvdXMiKS5zaG93KCksZ2FsbGVyeVdpZHRoPWl0ZW1zUGVyUGFnZSppdGVtV2lkdGgsZnVsbEdhbGxlcnlXaWR0aD1wcF9pbWFnZXMubGVuZ3RoKml0ZW1XaWR0aCwkcHBfZ2FsbGVyeS5jc3MoIm1hcmdpbi1sZWZ0IiwtKGdhbGxlcnlXaWR0aC8yK25hdldpZHRoLzIpKS5maW5kKCJkaXY6Zmlyc3QiKS53aWR0aChnYWxsZXJ5V2lkdGgrNSkuZmluZCgidWwiKS53aWR0aChmdWxsR2FsbGVyeVdpZHRoKS5maW5kKCJsaS5zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLGdvVG9QYWdlPU1hdGguZmxvb3Ioc2V0X3Bvc2l0aW9uL2l0ZW1zUGVyUGFnZSk8dG90YWxQYWdlP01hdGguZmxvb3Ioc2V0X3Bvc2l0aW9uL2l0ZW1zUGVyUGFnZSk6CnRvdGFsUGFnZSxhLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlKGdvVG9QYWdlKSwkcHBfZ2FsbGVyeV9saS5maWx0ZXIoIjplcSgiK3NldF9wb3NpdGlvbisiKSIpLmFkZENsYXNzKCJzZWxlY3RlZCIpKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLm9mZigibW91c2VlbnRlciBtb3VzZWxlYXZlIik7ZS5hamF4Y2FsbGJhY2soKX1mdW5jdGlvbiB6KGMpeyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyBvYmplY3QsI3BwX2Z1bGxfcmVzIGVtYmVkIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2ZhZGUiKS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7YSgiLnBwX2xvYWRlckljb24iKS5zaG93KCk7YygpfSl9ZnVuY3Rpb24gRyhjKXsxPGM\/YSgiLnBwX25hdiIpLnNob3coKTphKCIucHBfbmF2IikuaGlkZSgpfWZ1bmN0aW9uIGcoYyxmKXtyZXNpemVkPSExO0EoYyxmKTtpbWFnZVdpZHRoPQpjO2ltYWdlSGVpZ2h0PWY7aWYoKG0+aHx8bj5rKSYmZG9yZXNpemUmJmIuYWxsb3dfcmVzaXplJiYhcil7cmVzaXplZD0hMDtmb3IoZml0dGluZz0hMTshZml0dGluZzspbT5oPyhpbWFnZVdpZHRoPWgtNTAsaW1hZ2VIZWlnaHQ9Zi9jKmltYWdlV2lkdGgpOm4+az8oaW1hZ2VIZWlnaHQ9ay01MCxpbWFnZVdpZHRoPWMvZippbWFnZUhlaWdodCk6Zml0dGluZz0hMCxuPWltYWdlSGVpZ2h0LG09aW1hZ2VXaWR0aDsobT5ofHxuPmspJiZnKG0sbik7QShpbWFnZVdpZHRoLGltYWdlSGVpZ2h0KX1yZXR1cm57d2lkdGg6TWF0aC5mbG9vcihpbWFnZVdpZHRoKSxoZWlnaHQ6TWF0aC5mbG9vcihpbWFnZUhlaWdodCksY29udGFpbmVySGVpZ2h0Ok1hdGguZmxvb3IobiksY29udGFpbmVyV2lkdGg6TWF0aC5mbG9vcihtKSsyKmIuaG9yaXpvbnRhbF9wYWRkaW5nLGNvbnRlbnRIZWlnaHQ6TWF0aC5mbG9vcih2KSxjb250ZW50V2lkdGg6TWF0aC5mbG9vcihCKSxyZXNpemVkfX1mdW5jdGlvbiBBKGMsCmYpe2M9cGFyc2VGbG9hdChjKTtmPXBhcnNlRmxvYXQoZik7JHBwX2RldGFpbHM9JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2RldGFpbHMiKTskcHBfZGV0YWlscy53aWR0aChjKTtkZXRhaWxzSGVpZ2h0PXBhcnNlRmxvYXQoJHBwX2RldGFpbHMuY3NzKCJtYXJnaW5Ub3AiKSkrcGFyc2VGbG9hdCgkcHBfZGV0YWlscy5jc3MoIm1hcmdpbkJvdHRvbSIpKTskcHBfZGV0YWlscz0kcHBfZGV0YWlscy5jbG9uZSgpLmFkZENsYXNzKGIudGhlbWUpLndpZHRoKGMpLmFwcGVuZFRvKGEoImJvZHkiKSkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotMUU0fSk7ZGV0YWlsc0hlaWdodCs9JHBwX2RldGFpbHMuaGVpZ2h0KCk7ZGV0YWlsc0hlaWdodD0zND49ZGV0YWlsc0hlaWdodD8zNjpkZXRhaWxzSGVpZ2h0OyRwcF9kZXRhaWxzLnJlbW92ZSgpOyRwcF90aXRsZT0kcHBfcGljX2hvbGRlci5maW5kKCIucHB0Iik7JHBwX3RpdGxlLndpZHRoKGMpO3RpdGxlSGVpZ2h0PXBhcnNlRmxvYXQoJHBwX3RpdGxlLmNzcygibWFyZ2luVG9wIikpKwpwYXJzZUZsb2F0KCRwcF90aXRsZS5jc3MoIm1hcmdpbkJvdHRvbSIpKTskcHBfdGl0bGU9JHBwX3RpdGxlLmNsb25lKCkuYXBwZW5kVG8oYSgiYm9keSIpKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOi0xRTR9KTt0aXRsZUhlaWdodCs9JHBwX3RpdGxlLmhlaWdodCgpOyRwcF90aXRsZS5yZW1vdmUoKTt2PWYrZGV0YWlsc0hlaWdodDtCPWM7bj12K3RpdGxlSGVpZ2h0KyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF90b3AiKS5oZWlnaHQoKSskcHBfcGljX2hvbGRlci5maW5kKCIucHBfYm90dG9tIikuaGVpZ2h0KCk7bT1jfWZ1bmN0aW9uIHQoYyl7cmV0dXJuIGMubWF0Y2goL3lvdXR1YmVcLmNvbVwvd2F0Y2gvaSl8fGMubWF0Y2goL3lvdXR1XC5iZS9pKT8ieW91dHViZSI6Yy5tYXRjaCgvdmltZW9cLmNvbS9pKT8idmltZW8iOmMubWF0Y2goL1wubXA0L2kpPyJtcDQiOmMubWF0Y2goL2F2dTNkL2kpPyJhdnUzZCI6Yy5tYXRjaCgvXGIubW92XGIvaSk\/InF1aWNrdGltZSI6CmMubWF0Y2goL1xiLnN3ZlxiL2kpPyJmbGFzaCI6Yy5tYXRjaCgvXGJpZnJhbWU9dHJ1ZVxiL2kpPyJpZnJhbWUiOmMubWF0Y2goL1xiYWpheD10cnVlXGIvaSk\/ImFqYXgiOmMubWF0Y2goL1xiY3VzdG9tPXRydWVcYi9pKT8iY3VzdG9tIjoiIyI9PWMuc3Vic3RyKDAsMSk\/ImlubGluZSI6ImltYWdlIn1mdW5jdGlvbiB3KCl7ZG9yZXNpemUmJiJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX3BpY19ob2xkZXImJihzY3JvbGxfcG9zPUMoKSxjb250ZW50SGVpZ2h0PSRwcF9waWNfaG9sZGVyLmhlaWdodCgpLGNvbnRlbnR3aWR0aD0kcHBfcGljX2hvbGRlci53aWR0aCgpLHByb2plY3RlZFRvcD1rLzIrc2Nyb2xsX3Bvcy5zY3JvbGxUb3AtY29udGVudEhlaWdodC8yLDA+cHJvamVjdGVkVG9wJiYocHJvamVjdGVkVG9wPTApLGNvbnRlbnRIZWlnaHQ+a3x8JHBwX3BpY19ob2xkZXIuY3NzKHt0b3A6cHJvamVjdGVkVG9wLGxlZnQ6aC8yK3Njcm9sbF9wb3Muc2Nyb2xsTGVmdC1jb250ZW50d2lkdGgvCjJ9KSl9ZnVuY3Rpb24gQygpe2lmKHNlbGYucGFnZVlPZmZzZXQpcmV0dXJue3Njcm9sbFRvcDpzZWxmLnBhZ2VZT2Zmc2V0LHNjcm9sbExlZnQ6c2VsZi5wYWdlWE9mZnNldH07aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKXJldHVybntzY3JvbGxUb3A6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCxzY3JvbGxMZWZ0OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fTtpZihkb2N1bWVudC5ib2R5KXJldHVybntzY3JvbGxUb3A6ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Asc2Nyb2xsTGVmdDpkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR9fWZ1bmN0aW9uIEQoYyl7Yi5zb2NpYWxfdG9vbHMmJihmYWNlYm9va19saWtlX2xpbms9Yi5zb2NpYWxfdG9vbHMucmVwbGFjZSgie2xvY2F0aW9uX2hyZWZ9IixlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpKTtiLm1hcmt1cD1iLm1hcmt1cC5yZXBsYWNlKCJ7cHBfc29jaWFsfSIsCiIiKTthKCJib2R5IikuYXBwZW5kKGIubWFya3VwKTskcHBfcGljX2hvbGRlcj1hKCIucHBfcGljX2hvbGRlciIpOyRwcHQ9YSgiLnBwdCIpOyRwcF9vdmVybGF5PWEoImRpdi5wcF9vdmVybGF5Iik7aWYoaXNTZXQmJmIub3ZlcmxheV9nYWxsZXJ5KXtjdXJyZW50R2FsbGVyeVBhZ2U9MDt0b0luamVjdD0iIjtmb3IoYz0wO2M8cHBfaW1hZ2VzLmxlbmd0aDtjKyspcHBfaW1hZ2VzW2NdLm1hdGNoKC9cYihqcGd8anBlZ3xwbmd8Z2lmKVxiL2dpKT8oY2xhc3NuYW1lPSIiLGltZ19zcmM9cHBfaW1hZ2VzW2NdKTooY2xhc3NuYW1lPSJkZWZhdWx0IixpbWdfc3JjPSIiKSx0b0luamVjdCs9IjxsaSBjbGFzcz0nIitjbGFzc25hbWUrIic+PGEgaHJlZj0nIyc+PGltZyBzcmM9JyIraW1nX3NyYysiJyB3aWR0aD0nNTAnIGFsdD0nJyAvPjwvYT48L2xpPiI7dG9JbmplY3Q9Yi5nYWxsZXJ5X21hcmt1cC5yZXBsYWNlKC97Z2FsbGVyeX0vZyx0b0luamVjdCk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIikuYWZ0ZXIodG9JbmplY3QpOwokcHBfZ2FsbGVyeT1hKCIucHBfcGljX2hvbGRlciAucHBfZ2FsbGVyeSIpOyRwcF9nYWxsZXJ5X2xpPSRwcF9nYWxsZXJ5LmZpbmQoImxpIik7JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZSgibmV4dCIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X3ByZXZpb3VzIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2UoInByZXZpb3VzIik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLm9uKCJob3ZlciIsZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZ2FsbGVyeTpub3QoLmRpc2FibGVkKSIpLmZhZGVJbigpfSxmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9nYWxsZXJ5Om5vdCguZGlzYWJsZWQpIikuZmFkZU91dCgpfSk7Cml0ZW1XaWR0aD01NzskcHBfZ2FsbGVyeV9saS5lYWNoKGZ1bmN0aW9uKGYpe2EodGhpcykuZmluZCgiYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoZik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KX0pfWIuc2xpZGVzaG93JiYoJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25hdiIpLnByZXBlbmQoJzxhIGhyZWY9IiMiIGNsYXNzPSJwcF9wbGF5Ij5QbGF5PC9hPicpLCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uYXYgLnBwX3BsYXkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO3JldHVybiExfSkpOyRwcF9waWNfaG9sZGVyLmF0dHIoImNsYXNzIiwicHBfcGljX2hvbGRlciAiK2IudGhlbWUpOyRwcF9vdmVybGF5LmNzcyh7b3BhY2l0eTowLGhlaWdodDphKGRvY3VtZW50KS5oZWlnaHQoKSx3aWR0aDphKHdpbmRvdykud2lkdGgoKX0pLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLm1vZGFsfHwKYS5wcmV0dHlQaG90by5jbG9zZSgpfSk7YSgiYS5wcF9jbG9zZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNsb3NlKCk7cmV0dXJuITF9KTtpZihiLmFsbG93X2V4cGFuZClhKCJhLnBwX2V4cGFuZCIpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7YSh0aGlzKS5oYXNDbGFzcygicHBfZXhwYW5kIik\/KGEodGhpcykucmVtb3ZlQ2xhc3MoInBwX2V4cGFuZCIpLmFkZENsYXNzKCJwcF9jb250cmFjdCIpLGRvcmVzaXplPSExKTooYSh0aGlzKS5yZW1vdmVDbGFzcygicHBfY29udHJhY3QiKS5hZGRDbGFzcygicHBfZXhwYW5kIiksZG9yZXNpemU9ITApO3ooZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLm9wZW4oKX0pO3JldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3ByZXZpb3VzLCAucHBfbmF2IC5wcF9hcnJvd19wcmV2aW91cyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoInByZXZpb3VzIik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7CnJldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25leHQsIC5wcF9uYXYgLnBwX2Fycm93X25leHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTt3KCl9ZT1qUXVlcnkuZXh0ZW5kKHtob29rOiJyZWwiLGFuaW1hdGlvbl9zcGVlZDoiZmFzdCIsYWpheGNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxzbGlkZXNob3c6NUUzLGF1dG9wbGF5X3NsaWRlc2hvdzohMSxvcGFjaXR5Oi44LHNob3dfdGl0bGU6ITAsYWxsb3dfcmVzaXplOiEwLGFsbG93X2V4cGFuZDohMCxkZWZhdWx0X3dpZHRoOjUwMCxkZWZhdWx0X2hlaWdodDozNDQsY291bnRlcl9zZXBhcmF0b3JfbGFiZWw6Ii8iLHRoZW1lOiJwcF9kZWZhdWx0Iixob3Jpem9udGFsX3BhZGRpbmc6MjAsaGlkZWZsYXNoOiExLHdtb2RlOiJvcGFxdWUiLGF1dG9wbGF5OiEwLG1vZGFsOiExLGRlZXBsaW5raW5nOiEwLApvdmVybGF5X2dhbGxlcnk6ITAsb3ZlcmxheV9nYWxsZXJ5X21heDozMCxrZXlib2FyZF9zaG9ydGN1dHM6ITAsY2hhbmdlcGljdHVyZWNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxjYWxsYmFjazpmdW5jdGlvbigpe30saWU2X2ZhbGxiYWNrOiEwLG1hcmt1cDonPGRpdiBjbGFzcz0icHBfcGljX2hvbGRlciI+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwdCI+Jm5ic3A7PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3RvcCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX21pZGRsZSI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9jb250ZW50X2NvbnRhaW5lciI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcF9leHBhbmQiIHRpdGxlPSJFeHBhbmQgdGhlIGltYWdlIj5FeHBhbmQ8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfY29udGVudCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xvYWRlckljb24iPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9mYWRlIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9jbG9zZSIgaHJlZj0iIyI+Q2xvc2U8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9ob3ZlckNvbnRhaW5lciBqcXVlcnlwcDIiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9uZXh0IiBocmVmPSIjIj5uZXh0PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9wcmV2aW91cyIgaHJlZj0iIyI+cHJldmlvdXM8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBwX2Z1bGxfcmVzIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2RldGFpbHMiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcF9kZXNjcmlwdGlvbiI+PC9wPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3NvY2lhbCI+e3BwX3NvY2lhbH08L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9ib3R0b20iPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9taWRkbGUiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9vdmVybGF5Ij48L2Rpdj4nLApnYWxsZXJ5X21hcmt1cDonPGRpdiBjbGFzcz0icHBfZ2FsbGVyeSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InBwX2Fycm93X3ByZXZpb3VzIj5QcmV2aW91czwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FsbGVyeX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHBfYXJyb3dfbmV4dCI+TmV4dDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PicsaW1hZ2VfbWFya3VwOic8aW1nIGlkPSJmdWxsUmVzSW1hZ2UiIHNyYz0ie3BhdGh9IiAvPicsZmxhc2hfbWFya3VwOic8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9Int3bW9kZX0iIC8+PHBhcmFtIG5hbWU9ImFsbG93ZnVsbHNjcmVlbiIgdmFsdWU9InRydWUiIC8+PHBhcmFtIG5hbWU9ImFsbG93c2NyaXB0YWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9IntwYXRofSIgLz48ZW1iZWQgc3JjPSJ7cGF0aH0iIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd2Z1bGxzY3JlZW49InRydWUiIGFsbG93c2NyaXB0YWNjZXNzPSJhbHdheXMiIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiB3bW9kZT0ie3dtb2RlfSI+PC9lbWJlZD48L29iamVjdD4nLApxdWlja3RpbWVfbWFya3VwOic8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOjAyQkYyNUQ1LThDMTctNEIyMy1CQzgwLUQzNDg4QUJEREM2QiIgY29kZWJhc2U9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3F0YWN0aXZleC9xdHBsdWdpbi5jYWIiIGhlaWdodD0ie2hlaWdodH0iIHdpZHRoPSJ7d2lkdGh9Ij48cGFyYW0gbmFtZT0ic3JjIiB2YWx1ZT0ie3BhdGh9Ij48cGFyYW0gbmFtZT0iYXV0b3BsYXkiIHZhbHVlPSJ7YXV0b3BsYXl9Ij48cGFyYW0gbmFtZT0idHlwZSIgdmFsdWU9InZpZGVvL3F1aWNrdGltZSI+PGVtYmVkIHNyYz0ie3BhdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiB3aWR0aD0ie3dpZHRofSIgYXV0b3BsYXk9InthdXRvcGxheX0iIHR5cGU9InZpZGVvL3F1aWNrdGltZSIgcGx1Z2luc3BhZ2U9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3F1aWNrdGltZS9kb3dubG9hZC8iPjwvZW1iZWQ+PC9vYmplY3Q+JyxpZnJhbWVfbWFya3VwOic8aWZyYW1lIHNyYyA9IntwYXRofSIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iIGZyYW1lYm9yZGVyPSJubyI+PC9pZnJhbWU+JywKaW5saW5lX21hcmt1cDonPGRpdiBjbGFzcz0icHBfaW5saW5lIj57Y29udGVudH08L2Rpdj4nLG1wNF9tYXJrdXA6Jzx2aWRlbyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIiIHByZWxvYWQ9ImF1dG8iIGF1dG9wbGF5IGNvbnRyb2xzPSIiIGlkPSJwbGF5ZXIiIHN0eWxlPSJ3aWR0aDogMTAwJTsiPjxzb3VyY2UgdHlwZT0idmlkZW8vbXA0IiBzcmM9IntwYXRofSI+PC9zb3VyY2U+PC92aWRlbz4nLGN1c3RvbV9tYXJrdXA6IiIsc29jaWFsX3Rvb2xzOic8ZGl2IGNsYXNzPSJ0d2l0dGVyIj48YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vc2hhcmUiIGNsYXNzPSJ0d2l0dGVyLXNoYXJlLWJ1dHRvbiIgZGF0YS1jb3VudD0ibm9uZSI+VHdlZXQ8L2E+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3BsYXRmb3JtLnR3aXR0ZXIuY29tL3dpZGdldHMuanMiPlx4M2Mvc2NyaXB0PjwvZGl2PjxkaXYgY2xhc3M9ImZhY2Vib29rIj48aWZyYW1lIHNyYz0iLy93d3cuZmFjZWJvb2suY29tL3BsdWdpbnMvbGlrZS5waHA\/bG9jYWxlPWVuX1VTJmhyZWY9e2xvY2F0aW9uX2hyZWZ9JmFtcDtsYXlvdXQ9YnV0dG9uX2NvdW50JmFtcDtzaG93X2ZhY2VzPXRydWUmYW1wO3dpZHRoPTUwMCZhbXA7YWN0aW9uPWxpa2UmYW1wO2ZvbnQmYW1wO2NvbG9yc2NoZW1lPWxpZ2h0JmFtcDtoZWlnaHQ9MjMiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6NTAwcHg7IGhlaWdodDoyM3B4OyIgYWxsb3dUcmFuc3BhcmVuY3k9InRydWUiPjwvaWZyYW1lPjwvZGl2Pid9LAplKTt2YXIgYj17fSx4PXRoaXMscj0hMSxkLHUsdixCLG4sbSxrPWEod2luZG93KS5oZWlnaHQoKSxoPWEod2luZG93KS53aWR0aCgpLHE7ZG9yZXNpemU9ITA7c2Nyb2xsX3Bvcz1DKCk7YSh3aW5kb3cpLm9mZigicmVzaXplLnByZXR0eXBob3RvIikub24oInJlc2l6ZS5wcmV0dHlwaG90byIsZnVuY3Rpb24oKXt3KCk7az1hKHdpbmRvdykuaGVpZ2h0KCk7aD1hKHdpbmRvdykud2lkdGgoKTsidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9vdmVybGF5JiYkcHBfb3ZlcmxheS5oZWlnaHQoYShkb2N1bWVudCkuaGVpZ2h0KCkpLndpZHRoKGgpfSk7aWYoZS5rZXlib2FyZF9zaG9ydGN1dHMpYShkb2N1bWVudCkub2ZmKCJrZXlkb3duLnByZXR0eXBob3RvIikub24oImtleWRvd24ucHJldHR5cGhvdG8iLGZ1bmN0aW9uKGMpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX3BpY19ob2xkZXImJiRwcF9waWNfaG9sZGVyLmlzKCI6dmlzaWJsZSIpKXN3aXRjaChjLmtleUNvZGUpe2Nhc2UgMzc6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJwcmV2aW91cyIpOwpjLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSAzOTphLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoIm5leHQiKTtjLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSAyNzpiLm1vZGFsfHxhLnByZXR0eVBob3RvLmNsb3NlKCksYy5wcmV2ZW50RGVmYXVsdCgpfX0pO2EucHJldHR5UGhvdG8uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2I9ZTsicHBfZGVmYXVsdCI9PWIudGhlbWUmJihiLmhvcml6b250YWxfcGFkZGluZz0xNik7dGhlUmVsPWEodGhpcykuYXR0cihiLmhvb2spO2dhbGxlcnlSZWdFeHA9L1xbKD86LiopXF0vO3BwX2ltYWdlcz0oaXNTZXQ9Z2FsbGVyeVJlZ0V4cC5leGVjKHRoZVJlbCk\/ITA6ITEpP2pRdWVyeS5tYXAoeCxmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuYXR0cigiaHJlZiIpfSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5hdHRyKCJocmVmIikpO3BwX3RpdGxlcz1pc1NldD9qUXVlcnkubWFwKHgsCmZ1bmN0aW9uKGMsZil7aWYoLTEhPWEoYykuYXR0cihiLmhvb2spLmluZGV4T2YodGhlUmVsKSlyZXR1cm4gYShjKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKT9hKGMpLmZpbmQoImltZyIpLmF0dHIoImFsdCIpOiIifSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKSk7cHBfZGVzY3JpcHRpb25zPWlzU2V0P2pRdWVyeS5tYXAoeCxmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuYXR0cigidGl0bGUiKT9hKGMpLmF0dHIoInRpdGxlIik6IiJ9KTphLm1ha2VBcnJheShhKHRoaXMpLmF0dHIoInRpdGxlIikpO3BwX2ltYWdlcy5sZW5ndGg+Yi5vdmVybGF5X2dhbGxlcnlfbWF4JiYoYi5vdmVybGF5X2dhbGxlcnk9ITEpO3NldF9wb3NpdGlvbj1qUXVlcnkuaW5BcnJheShhKHRoaXMpLmF0dHIoImhyZWYiKSxwcF9pbWFnZXMpO3JlbF9pbmRleD1pc1NldD9zZXRfcG9zaXRpb246YSgiYVsiKwpiLmhvb2srIl49JyIrdGhlUmVsKyInXSIpLmluZGV4KGEodGhpcykpO0QodGhpcyk7aWYoYi5hbGxvd19yZXNpemUpYSh3aW5kb3cpLm9uKCJzY3JvbGwucHJldHR5cGhvdG8iLGZ1bmN0aW9uKCl7dygpfSk7YS5wcmV0dHlQaG90by5vcGVuKCk7cmV0dXJuITF9O2EucHJldHR5UGhvdG8ub3Blbj1mdW5jdGlvbihjLGYsRSxGKXsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWUscHBfaW1hZ2VzPWEubWFrZUFycmF5KGMpLHBwX3RpdGxlcz1mP2EubWFrZUFycmF5KGYpOmEubWFrZUFycmF5KCIiKSxwcF9kZXNjcmlwdGlvbnM9RT9hLm1ha2VBcnJheShFKTphLm1ha2VBcnJheSgiIiksaXNTZXQ9MTxwcF9pbWFnZXMubGVuZ3RoPyEwOiExLHNldF9wb3NpdGlvbj1GP0Y6MCxEKGMudGFyZ2V0KSk7Yi5oaWRlZmxhc2gmJmEoIm9iamVjdCxlbWJlZCxpZnJhbWVbc3JjKj15b3V0dWJlXSxpZnJhbWVbc3JjKj12aW1lb10iKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKTtHKGEocHBfaW1hZ2VzKS5sZW5ndGgpOwphKCIucHBfbG9hZGVySWNvbiIpLnNob3coKTtiLmRlZXBsaW5raW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIHRoZVJlbCYmKGxvY2F0aW9uLmhhc2g9dGhlUmVsKyIvIityZWxfaW5kZXgrIi8iKTtiLnNvY2lhbF90b29scyYmKGZhY2Vib29rX2xpa2VfbGluaz1iLnNvY2lhbF90b29scy5yZXBsYWNlKCJ7bG9jYXRpb25faHJlZn0iLGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKSksJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3NvY2lhbCIpLmh0bWwoZmFjZWJvb2tfbGlrZV9saW5rKSk7JHBwdC5pcygiOmhpZGRlbiIpJiYkcHB0LmNzcygib3BhY2l0eSIsMCkuc2hvdygpOyRwcF9vdmVybGF5LnNob3coKS5mYWRlVG8oYi5hbmltYXRpb25fc3BlZWQsYi5vcGFjaXR5KTskcHBfcGljX2hvbGRlci5maW5kKCIuY3VycmVudFRleHRIb2xkZXIiKS50ZXh0KHNldF9wb3NpdGlvbisxK2IuY291bnRlcl9zZXBhcmF0b3JfbGFiZWwrYShwcF9pbWFnZXMpLmxlbmd0aCk7InVuZGVmaW5lZCIhPQp0eXBlb2YgcHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0mJiIiIT1wcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXT8kcHBfcGljX2hvbGRlci5maW5kKCIucHBfZGVzY3JpcHRpb24iKS5zaG93KCkuaHRtbCh1bmVzY2FwZShwcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXSkpOiRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9kZXNjcmlwdGlvbiIpLmhpZGUoKTttb3ZpZV93aWR0aD1wYXJzZUZsb2F0KGwoIndpZHRoIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpP2woIndpZHRoIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk6Yi5kZWZhdWx0X3dpZHRoLnRvU3RyaW5nKCk7bW92aWVfaGVpZ2h0PXBhcnNlRmxvYXQobCgiaGVpZ2h0IixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpP2woImhlaWdodCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOmIuZGVmYXVsdF9oZWlnaHQudG9TdHJpbmcoKTtyPSExOy0xIT1tb3ZpZV9oZWlnaHQuaW5kZXhPZigiJSIpJiYobW92aWVfaGVpZ2h0PQpwYXJzZUZsb2F0KGEod2luZG93KS5oZWlnaHQoKSpwYXJzZUZsb2F0KG1vdmllX2hlaWdodCkvMTAwLTE1MCkscj0hMCk7LTEhPW1vdmllX3dpZHRoLmluZGV4T2YoIiUiKSYmKG1vdmllX3dpZHRoPXBhcnNlRmxvYXQoYSh3aW5kb3cpLndpZHRoKCkqcGFyc2VGbG9hdChtb3ZpZV93aWR0aCkvMTAwLTE1MCkscj0hMCk7JHBwX3BpY19ob2xkZXIuZmFkZUluKGZ1bmN0aW9uKCl7Yi5zaG93X3RpdGxlJiYiIiE9cHBfdGl0bGVzW3NldF9wb3NpdGlvbl0mJiJ1bmRlZmluZWQiIT10eXBlb2YgcHBfdGl0bGVzW3NldF9wb3NpdGlvbl0\/JHBwdC5odG1sKHVuZXNjYXBlKHBwX3RpdGxlc1tzZXRfcG9zaXRpb25dKSk6JHBwdC5odG1sKCImbmJzcDsiKTtpbWdQcmVsb2FkZXI9IiI7c2tpcEluamVjdGlvbj0hMTtzd2l0Y2godChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpe2Nhc2UgImltYWdlIjppbWdQcmVsb2FkZXI9bmV3IEltYWdlO25leHRJbWFnZT1uZXcgSW1hZ2U7aXNTZXQmJnNldF9wb3NpdGlvbjwKYShwcF9pbWFnZXMpLmxlbmd0aC0xJiYobmV4dEltYWdlLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uKzFdKTtwcmV2SW1hZ2U9bmV3IEltYWdlO2lzU2V0JiZwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uLTFdJiYocHJldkltYWdlLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uLTFdKTskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMiKVswXS5pbm5lckhUTUw9Yi5pbWFnZV9tYXJrdXAucmVwbGFjZSgve3BhdGh9L2cscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pO2ltZ1ByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXtkPWcoaW1nUHJlbG9hZGVyLndpZHRoLGltZ1ByZWxvYWRlci5oZWlnaHQpO3AoKX07aW1nUHJlbG9hZGVyLm9uZXJyb3I9ZnVuY3Rpb24oKXthbGVydCgiSW1hZ2UgY2Fubm90IGJlIGxvYWRlZC4gTWFrZSBzdXJlIHRoZSBwYXRoIGlzIGNvcnJlY3QgYW5kIGltYWdlIGV4aXN0LiIpO2EucHJldHR5UGhvdG8uY2xvc2UoKX07aW1nUHJlbG9hZGVyLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTsKYnJlYWs7Y2FzZSAieW91dHViZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfaWQ9bCgidiIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOyIiPT1tb3ZpZV9pZCYmKG1vdmllX2lkPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLnNwbGl0KCJ5b3V0dS5iZS8iKSxtb3ZpZV9pZD1tb3ZpZV9pZFsxXSwwPG1vdmllX2lkLmluZGV4T2YoIj8iKSYmKG1vdmllX2lkPW1vdmllX2lkLnN1YnN0cigwLG1vdmllX2lkLmluZGV4T2YoIj8iKSkpLDA8bW92aWVfaWQuaW5kZXhPZigiJiIpJiYobW92aWVfaWQ9bW92aWVfaWQuc3Vic3RyKDAsbW92aWVfaWQuaW5kZXhPZigiJiIpKSkpO21vdmllPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8iK21vdmllX2lkO2woInJlbCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pP21vdmllKz0iP3JlbD0iK2woInJlbCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOm1vdmllKz0iP3JlbD0xIjtiLmF1dG9wbGF5JiYobW92aWUrPSImYXV0b3BsYXk9MSIpOwp0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3t3bW9kZX0vZyxiLndtb2RlKS5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZSk7YnJlYWs7Y2FzZSAidmltZW8iOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX2lkPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO21vdmllPSJodHRwOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8iK21vdmllX2lkLm1hdGNoKC9odHRwKHM\/KTpcL1wvKHd3d1wuKT92aW1lby5jb21cLyhcZCspLylbM10rIj90aXRsZT0wJmFtcDtieWxpbmU9MCZhbXA7cG9ydHJhaXQ9MCI7Yi5hdXRvcGxheSYmKG1vdmllKz0iJmF1dG9wbGF5PTE7Iik7dmltZW9fd2lkdGg9ZC53aWR0aCsiL2VtYmVkLz9tb29nX3dpZHRoPSIrZC53aWR0aDt0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLHZpbWVvX3dpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLApkLmhlaWdodCkucmVwbGFjZSgve3BhdGh9L2csbW92aWUpO2JyZWFrO2Nhc2UgIm1wNCI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfdXJsPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO3RvSW5qZWN0PWIubXA0X21hcmt1cC5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZV91cmwpO2JyZWFrO2Nhc2UgInF1aWNrdGltZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7ZC5oZWlnaHQrPTE1O2QuY29udGVudEhlaWdodCs9MTU7ZC5jb250YWluZXJIZWlnaHQrPTE1O3RvSW5qZWN0PWIucXVpY2t0aW1lX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3dtb2RlfS9nLGIud21vZGUpLnJlcGxhY2UoL3twYXRofS9nLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5yZXBsYWNlKC97YXV0b3BsYXl9L2csYi5hdXRvcGxheSk7YnJlYWs7Y2FzZSAiZmxhc2giOmQ9Zyhtb3ZpZV93aWR0aCwKbW92aWVfaGVpZ2h0KTtmbGFzaF92YXJzPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZsYXNoX3ZhcnM9Zmxhc2hfdmFycy5zdWJzdHJpbmcocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0uaW5kZXhPZigiZmxhc2h2YXJzIikrMTAscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0ubGVuZ3RoKTtmaWxlbmFtZT1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmaWxlbmFtZT1maWxlbmFtZS5zdWJzdHJpbmcoMCxmaWxlbmFtZS5pbmRleE9mKCI\/IikpO3RvSW5qZWN0PWIuZmxhc2hfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97d21vZGV9L2csYi53bW9kZSkucmVwbGFjZSgve3BhdGh9L2csZmlsZW5hbWUrIj8iK2ZsYXNoX3ZhcnMpO2JyZWFrO2Nhc2UgImlmcmFtZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7ZnJhbWVfdXJsPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZyYW1lX3VybD1mcmFtZV91cmwuc3Vic3RyKDAsCmZyYW1lX3VybC5pbmRleE9mKCJpZnJhbWUiKS0xKTt0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3twYXRofS9nLGZyYW1lX3VybCk7YnJlYWs7Y2FzZSAiYWpheCI6ZG9yZXNpemU9ITE7ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7c2tpcEluamVjdGlvbj1kb3Jlc2l6ZT0hMDthLmdldChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSxmdW5jdGlvbihIKXt0b0luamVjdD1iLmlubGluZV9tYXJrdXAucmVwbGFjZSgve2NvbnRlbnR9L2csSCk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPXRvSW5qZWN0O3AoKX0pO2JyZWFrO2Nhc2UgImN1c3RvbSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7dG9JbmplY3Q9Yi5jdXN0b21fbWFya3VwO2JyZWFrO2Nhc2UgImlubGluZSI6bXlDbG9uZT1hKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5jbG9uZSgpLmFwcGVuZCgnPGJyIGNsZWFyPSJhbGwiIC8+JykuY3NzKHt3aWR0aDpiLmRlZmF1bHRfd2lkdGh9KS53cmFwSW5uZXIoJzxkaXYgaWQ9InBwX2Z1bGxfcmVzIj48ZGl2IGNsYXNzPSJwcF9pbmxpbmUiPjwvZGl2PjwvZGl2PicpLmFwcGVuZFRvKGEoImJvZHkiKSkuc2hvdygpLApkb3Jlc2l6ZT0hMSxkPWcoYShteUNsb25lKS53aWR0aCgpLGEobXlDbG9uZSkuaGVpZ2h0KCkpLGRvcmVzaXplPSEwLGEobXlDbG9uZSkucmVtb3ZlKCksdG9JbmplY3Q9Yi5pbmxpbmVfbWFya3VwLnJlcGxhY2UoL3tjb250ZW50fS9nLGEocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pLmh0bWwoKSl9aW1nUHJlbG9hZGVyfHxza2lwSW5qZWN0aW9ufHwoJHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPXRvSW5qZWN0LHAoKSl9KTtyZXR1cm4hMX07YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlPWZ1bmN0aW9uKGMpe2N1cnJlbnRHYWxsZXJ5UGFnZT0wOyJwcmV2aW91cyI9PWM\/KHNldF9wb3NpdGlvbi0tLDA+c2V0X3Bvc2l0aW9uJiYoc2V0X3Bvc2l0aW9uPWEocHBfaW1hZ2VzKS5sZW5ndGgtMSkpOiJuZXh0Ij09Yz8oc2V0X3Bvc2l0aW9uKyssc2V0X3Bvc2l0aW9uPmEocHBfaW1hZ2VzKS5sZW5ndGgtMSYmKHNldF9wb3NpdGlvbj0wKSk6c2V0X3Bvc2l0aW9uPQpjO3JlbF9pbmRleD1zZXRfcG9zaXRpb247ZG9yZXNpemV8fChkb3Jlc2l6ZT0hMCk7Yi5hbGxvd19leHBhbmQmJmEoIi5wcF9jb250cmFjdCIpLnJlbW92ZUNsYXNzKCJwcF9jb250cmFjdCIpLmFkZENsYXNzKCJwcF9leHBhbmQiKTt6KGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5vcGVuKCl9KX07YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZT1mdW5jdGlvbihjKXsibmV4dCI9PWM\/KGN1cnJlbnRHYWxsZXJ5UGFnZSsrLGN1cnJlbnRHYWxsZXJ5UGFnZT50b3RhbFBhZ2UmJihjdXJyZW50R2FsbGVyeVBhZ2U9MCkpOiJwcmV2aW91cyI9PWM\/KGN1cnJlbnRHYWxsZXJ5UGFnZS0tLDA+Y3VycmVudEdhbGxlcnlQYWdlJiYoY3VycmVudEdhbGxlcnlQYWdlPXRvdGFsUGFnZSkpOmN1cnJlbnRHYWxsZXJ5UGFnZT1jO3NsaWRlX3NwZWVkPSJuZXh0Ij09Y3x8InByZXZpb3VzIj09Yz9iLmFuaW1hdGlvbl9zcGVlZDowO3NsaWRlX3RvPWN1cnJlbnRHYWxsZXJ5UGFnZSppdGVtc1BlclBhZ2UqCml0ZW1XaWR0aDskcHBfZ2FsbGVyeS5maW5kKCJ1bCIpLmFuaW1hdGUoe2xlZnQ6LXNsaWRlX3RvfSxzbGlkZV9zcGVlZCl9O2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3c9ZnVuY3Rpb24oKXsidW5kZWZpbmVkIj09dHlwZW9mIHE\/KCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wbGF5Iikub2ZmKCJjbGljayIpLnJlbW92ZUNsYXNzKCJwcF9wbGF5IikuYWRkQ2xhc3MoInBwX3BhdXNlIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSkscT1zZXRJbnRlcnZhbChhLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93LGIuc2xpZGVzaG93KSk6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iil9O2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdz1mdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wYXVzZSIpLm9mZigiY2xpY2siKS5yZW1vdmVDbGFzcygicHBfcGF1c2UiKS5hZGRDbGFzcygicHBfcGxheSIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO3JldHVybiExfSk7Y2xlYXJJbnRlcnZhbChxKTtxPXZvaWQgMH07YS5wcmV0dHlQaG90by5jbG9zZT1mdW5jdGlvbigpeyRwcF9vdmVybGF5LmlzKCI6YW5pbWF0ZWQiKXx8KGEucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpLCRwcF9waWNfaG9sZGVyLnN0b3AoKS5maW5kKCJvYmplY3QsZW1iZWQiKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKSxhKCJkaXYucHBfcGljX2hvbGRlcixkaXYucHB0LC5wcF9mYWRlIikuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2EodGhpcykucmVtb3ZlKCl9KSwkcHBfb3ZlcmxheS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7Yi5oaWRlZmxhc2gmJmEoIm9iamVjdCxlbWJlZCxpZnJhbWVbc3JjKj15b3V0dWJlXSxpZnJhbWVbc3JjKj12aW1lb10iKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YSh0aGlzKS5yZW1vdmUoKTsKYSh3aW5kb3cpLm9mZigic2Nyb2xsLnByZXR0eXBob3RvIik7LTEhPT1sb2NhdGlvbi5ocmVmLmluZGV4T2YoIiNwcmV0dHlQaG90byIpJiYobG9jYXRpb24uaGFzaD0icHJldHR5UGhvdG8iKTtiLmNhbGxiYWNrKCk7ZG9yZXNpemU9ITA7dT0hMTtkZWxldGUgYn0pKX07IXBwX2FscmVhZHlJbml0aWFsaXplZCYmeSgpJiYocHBfYWxyZWFkeUluaXRpYWxpemVkPSEwLGhhc2hSZWw9aGFzaEluZGV4PXkoKSxoYXNoSW5kZXg9aGFzaEluZGV4LnN1YnN0cmluZyhoYXNoSW5kZXguaW5kZXhPZigiLyIpKzEsaGFzaEluZGV4Lmxlbmd0aC0xKSxoYXNoUmVsPWhhc2hSZWwuc3Vic3RyaW5nKDAsaGFzaFJlbC5pbmRleE9mKCIvIikpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthKCJhWyIrZS5ob29rKyJePSciK2hhc2hSZWwrIiddOmVxKCIraGFzaEluZGV4KyIpIikudHJpZ2dlcigiY2xpY2siKX0sNTApKTtyZXR1cm4gdGhpcy5vZmYoImNsaWNrLnByZXR0eXBob3RvIikub24oImNsaWNrLnByZXR0eXBob3RvIiwKYS5wcmV0dHlQaG90by5pbml0aWFsaXplKX19KShqUXVlcnkpO3ZhciBwcF9hbHJlYWR5SW5pdGlhbGl6ZWQ9ITE7Ci8qKiAvanMvanF1ZXJ5LnRyYW5zaXRpb24ubWluLmpzICoqLwovKiEKICogalF1ZXJ5IFRyYW5zaXQgLSBDU1MzIHRyYW5zaXRpb25zIGFuZCB0cmFuc2Zvcm1hdGlvbnMKICogQ29weXJpZ2h0KGMpIDIwMTEgUmljbyBTdGEuIENydXogPHJpY29Acmljb3N0YWNydXouY29tPgogKiBNSVQgTGljZW5zZWQuCiAqCiAqIGh0dHA6Ly9yaWNvc3RhY3J1ei5jb20vanF1ZXJ5LnRyYW5zaXQKICogaHR0cDovL2dpdGh1Yi5jb20vcnN0YWNydXovanF1ZXJ5LnRyYW5zaXQKICovCihmdW5jdGlvbihkKXtmdW5jdGlvbiBrKGEpe3ZhciBiPVsiTW96IiwiV2Via2l0IiwiTyIsIm1zIl0sYz1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyKDEpO2lmKGEgaW4gaS5zdHlsZSlyZXR1cm4gYTtmb3IoYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgZD1iW2FdK2M7aWYoZCBpbiBpLnN0eWxlKXJldHVybiBkfX1mdW5jdGlvbiBqKGEpeyJzdHJpbmciPT09dHlwZW9mIGEmJnRoaXMucGFyc2UoYSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gcChhLGIsYyl7ITA9PT1iP2EucXVldWUoYyk6Yj9hLnF1ZXVlKGIsYyk6YygpfWZ1bmN0aW9uIG0oYSl7dmFyIGI9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSl7YT1kLmNhbWVsQ2FzZShhKTthPWQudHJhbnNpdC5wcm9wZXJ0eU1hcFthXXx8YTthPXIoYSk7LTE9PT1kLmluQXJyYXkoYSxiKSYmYi5wdXNoKGEpfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyxlKXthPW0oYSk7ZC5jc3NFYXNlW2NdJiYoYz1kLmNzc0Vhc2VbY10pOwp2YXIgaD0iIituKGIpKyIgIitjOzA8cGFyc2VJbnQoZSwxMCkmJihoKz0iICIrbihlKSk7dmFyIGY9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSxiKXtmLnB1c2goYisiICIraCl9KTtyZXR1cm4gZi5qb2luKCIsICIpfWZ1bmN0aW9uIGYoYSxiKXtifHwoZC5jc3NOdW1iZXJbYV09ITApO2QudHJhbnNpdC5wcm9wZXJ0eU1hcFthXT1lLnRyYW5zZm9ybTtkLmNzc0hvb2tzW2FdPXtnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuKGQoYikuY3NzKCJ0cmFuc2Zvcm0iKXx8bmV3IGopLmdldChhKX0sc2V0OmZ1bmN0aW9uKGIsZSl7dmFyIGg9ZChiKS5jc3MoInRyYW5zZm9ybSIpfHxuZXcgajtoLnNldEZyb21TdHJpbmcoYSxlKTtkKGIpLmNzcyh7dHJhbnNmb3JtOmh9KX19fWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGEucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKGEpe3JldHVybiItIithLnRvTG93ZXJDYXNlKCl9KX1mdW5jdGlvbiBnKGEsYil7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmIWEubWF0Y2goL15bXC0wLTlcLl0rJC8pPwphOiIiK2ErYn1mdW5jdGlvbiBuKGEpe2QuZnguc3BlZWRzW2FdJiYoYT1kLmZ4LnNwZWVkc1thXSk7cmV0dXJuIGcoYSwibXMiKX1kLnRyYW5zaXQ9e3ZlcnNpb246IjAuMS4zIixwcm9wZXJ0eU1hcDp7bWFyZ2luTGVmdDoibWFyZ2luIixtYXJnaW5SaWdodDoibWFyZ2luIixtYXJnaW5Cb3R0b206Im1hcmdpbiIsbWFyZ2luVG9wOiJtYXJnaW4iLHBhZGRpbmdMZWZ0OiJwYWRkaW5nIixwYWRkaW5nUmlnaHQ6InBhZGRpbmciLHBhZGRpbmdCb3R0b206InBhZGRpbmciLHBhZGRpbmdUb3A6InBhZGRpbmcifSxlbmFibGVkOiEwLHVzZVRyYW5zaXRpb25FbmQ6ITF9O3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9e30scz0tMTxuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2hyb21lIik7ZS50cmFuc2l0aW9uPWsoInRyYW5zaXRpb24iKTtlLnRyYW5zaXRpb25EZWxheT1rKCJ0cmFuc2l0aW9uRGVsYXkiKTtlLnRyYW5zZm9ybT1rKCJ0cmFuc2Zvcm0iKTsKZS50cmFuc2Zvcm1PcmlnaW49aygidHJhbnNmb3JtT3JpZ2luIik7aS5zdHlsZVtlLnRyYW5zZm9ybV09IiI7aS5zdHlsZVtlLnRyYW5zZm9ybV09InJvdGF0ZVkoOTBkZWcpIjtlLnRyYW5zZm9ybTNkPSIiIT09aS5zdHlsZVtlLnRyYW5zZm9ybV07ZC5leHRlbmQoZC5zdXBwb3J0LGUpO3ZhciBvPWUudHJhbnNpdGlvbkVuZD17TW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIixXZWJraXRUcmFuc2l0aW9uOiJ3ZWJraXRUcmFuc2l0aW9uRW5kIixtc1RyYW5zaXRpb246Ik1TVHJhbnNpdGlvbkVuZCJ9W2UudHJhbnNpdGlvbl18fG51bGwsaT1udWxsO2QuY3NzRWFzZT17X2RlZmF1bHQ6ImVhc2UiLCJpbiI6ImVhc2UtaW4iLG91dDoiZWFzZS1vdXQiLCJpbi1vdXQiOiJlYXNlLWluLW91dCIsc25hcDoiY3ViaWMtYmV6aWVyKDAsMSwuNSwxKSJ9O2QuY3NzSG9va3MudHJhbnNmb3JtPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSkuZGF0YSgidHJhbnNmb3JtIil9LApzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2MgaW5zdGFuY2VvZiBqfHwoYz1uZXcgaihjKSk7YS5zdHlsZVtlLnRyYW5zZm9ybV09IldlYmtpdFRyYW5zZm9ybSI9PT1lLnRyYW5zZm9ybSYmIXM\/Yy50b1N0cmluZyghMCk6Yy50b1N0cmluZygpO2QoYSkuZGF0YSgidHJhbnNmb3JtIixjKX19O2QuY3NzSG9va3MudHJhbnNmb3JtT3JpZ2luPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2Zvcm1PcmlnaW5dfSxzZXQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlW2UudHJhbnNmb3JtT3JpZ2luXT1ifX07ZC5jc3NIb29rcy50cmFuc2l0aW9uPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2l0aW9uXX0sc2V0OmZ1bmN0aW9uKGEsYil7YS5zdHlsZVtlLnRyYW5zaXRpb25dPWJ9fTtmKCJzY2FsZSIpO2YoInRyYW5zbGF0ZSIpO2YoInJvdGF0ZSIpO2YoInJvdGF0ZVgiKTtmKCJyb3RhdGVZIik7Zigicm90YXRlM2QiKTtmKCJwZXJzcGVjdGl2ZSIpOwpmKCJza2V3WCIpO2YoInNrZXdZIik7ZigieCIsITApO2YoInkiLCEwKTtqLnByb3RvdHlwZT17c2V0RnJvbVN0cmluZzpmdW5jdGlvbihhLGIpe3ZhciBjPSJzdHJpbmciPT09dHlwZW9mIGI\/Yi5zcGxpdCgiLCIpOmIuY29uc3RydWN0b3I9PT1BcnJheT9iOltiXTtjLnVuc2hpZnQoYSk7ai5wcm90b3R5cGUuc2V0LmFwcGx5KHRoaXMsYyl9LHNldDpmdW5jdGlvbihhKXt2YXIgYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzLFsxXSk7dGhpcy5zZXR0ZXJbYV0\/dGhpcy5zZXR0ZXJbYV0uYXBwbHkodGhpcyxiKTp0aGlzW2FdPWIuam9pbigiLCIpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0dGVyW2FdP3RoaXMuZ2V0dGVyW2FdLmFwcGx5KHRoaXMpOnRoaXNbYV18fDB9LHNldHRlcjp7cm90YXRlOmZ1bmN0aW9uKGEpe3RoaXMucm90YXRlPWcoYSwiZGVnIil9LHJvdGF0ZVg6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVYPWcoYSwiZGVnIil9LHJvdGF0ZVk6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVZPQpnKGEsImRlZyIpfSxzY2FsZTpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPWEpO3RoaXMuc2NhbGU9YSsiLCIrYn0sc2tld1g6ZnVuY3Rpb24oYSl7dGhpcy5za2V3WD1nKGEsImRlZyIpfSxza2V3WTpmdW5jdGlvbihhKXt0aGlzLnNrZXdZPWcoYSwiZGVnIil9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKGEpe3RoaXMucGVyc3BlY3RpdmU9ZyhhLCJweCIpfSx4OmZ1bmN0aW9uKGEpe3RoaXMuc2V0KCJ0cmFuc2xhdGUiLGEsbnVsbCl9LHk6ZnVuY3Rpb24oYSl7dGhpcy5zZXQoInRyYW5zbGF0ZSIsbnVsbCxhKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGEsYil7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWCYmKHRoaXMuX3RyYW5zbGF0ZVg9MCk7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWSYmKHRoaXMuX3RyYW5zbGF0ZVk9MCk7bnVsbCE9PWEmJih0aGlzLl90cmFuc2xhdGVYPWcoYSwicHgiKSk7bnVsbCE9PWImJih0aGlzLl90cmFuc2xhdGVZPWcoYiwicHgiKSk7dGhpcy50cmFuc2xhdGU9CnRoaXMuX3RyYW5zbGF0ZVgrIiwiK3RoaXMuX3RyYW5zbGF0ZVl9fSxnZXR0ZXI6e3g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNsYXRlWHx8MH0seTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVZfHwwfSxzY2FsZTpmdW5jdGlvbigpe3ZhciBhPSh0aGlzLnNjYWxlfHwiMSwxIikuc3BsaXQoIiwiKTthWzBdJiYoYVswXT1wYXJzZUZsb2F0KGFbMF0pKTthWzFdJiYoYVsxXT1wYXJzZUZsb2F0KGFbMV0pKTtyZXR1cm4gYVswXT09PWFbMV0\/YVswXTphfSxyb3RhdGUzZDpmdW5jdGlvbigpe2Zvcih2YXIgYT0odGhpcy5yb3RhdGUzZHx8IjAsMCwwLDBkZWciKS5zcGxpdCgiLCIpLGI9MDszPj1iOysrYilhW2JdJiYoYVtiXT1wYXJzZUZsb2F0KGFbYl0pKTthWzNdJiYoYVszXT1nKGFbM10sImRlZyIpKTtyZXR1cm4gYX19LHBhcnNlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7YS5yZXBsYWNlKC8oW2EtekEtWjAtOV0rKVwoKC4qPylcKS9nLGZ1bmN0aW9uKGEsZCwKZSl7Yi5zZXRGcm9tU3RyaW5nKGQsZSl9KX0sdG9TdHJpbmc6ZnVuY3Rpb24oYSl7dmFyIGI9W10sYztmb3IoYyBpbiB0aGlzKWlmKHRoaXMuaGFzT3duUHJvcGVydHkoYykmJihlLnRyYW5zZm9ybTNkfHwhKCJyb3RhdGVYIj09PWN8fCJyb3RhdGVZIj09PWN8fCJwZXJzcGVjdGl2ZSI9PT1jfHwidHJhbnNmb3JtT3JpZ2luIj09PWMpKSkiXyIhPT1jWzBdJiYoYSYmInNjYWxlIj09PWM\/Yi5wdXNoKGMrIjNkKCIrdGhpc1tjXSsiLDEpIik6YSYmInRyYW5zbGF0ZSI9PT1jP2IucHVzaChjKyIzZCgiK3RoaXNbY10rIiwwKSIpOmIucHVzaChjKyIoIit0aGlzW2NdKyIpIikpO3JldHVybiBiLmpvaW4oIiAiKX19O2QuZm4udHJhbnNpdGlvbj1kLmZuLnRyYW5zaXQ9ZnVuY3Rpb24oYSxiLGMsZil7dmFyIGg9dGhpcyxnPTAsaT0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGImJihmPWIsYj12b2lkIDApOyJmdW5jdGlvbiI9PT10eXBlb2YgYyYmKGY9YyxjPXZvaWQgMCk7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGEuZWFzaW5nJiYoYz1hLmVhc2luZyxkZWxldGUgYS5lYXNpbmcpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZHVyYXRpb24mJihiPWEuZHVyYXRpb24sZGVsZXRlIGEuZHVyYXRpb24pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY29tcGxldGUmJihmPWEuY29tcGxldGUsZGVsZXRlIGEuY29tcGxldGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEucXVldWUmJihpPWEucXVldWUsZGVsZXRlIGEucXVldWUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZGVsYXkmJihnPWEuZGVsYXksZGVsZXRlIGEuZGVsYXkpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGImJihiPWQuZnguc3BlZWRzLl9kZWZhdWx0KTsidW5kZWZpbmVkIj09PXR5cGVvZiBjJiYoYz1kLmNzc0Vhc2UuX2RlZmF1bHQpO3ZhciBiPW4oYiksaj1xKGEsYixjLGcpLGw9ZC50cmFuc2l0LmVuYWJsZWQmJmUudHJhbnNpdGlvbj9wYXJzZUludChiLDEwKStwYXJzZUludChnLDEwKTowO2lmKDA9PT1sKXJldHVybiBwKGgsaSxmdW5jdGlvbihiKXtoLmNzcyhhKTsKZiYmZi5hcHBseShoKTtiJiZiKCl9KSxoO3ZhciBrPXt9LG09ZnVuY3Rpb24oYil7dmFyIGM9ZmFsc2UsZz1mdW5jdGlvbigpe2MmJmgub2ZmKG8sZyk7bD4wJiZoLmVhY2goZnVuY3Rpb24oKXt0aGlzLnN0eWxlW2UudHJhbnNpdGlvbl09a1t0aGlzXXx8bnVsbH0pO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmZi5hcHBseShoKTt0eXBlb2YgYj09PSJmdW5jdGlvbiImJmIoKX07aWYobD4wJiZvJiZkLnRyYW5zaXQudXNlVHJhbnNpdGlvbkVuZCl7Yz10cnVlO2gub24obyxnKX1lbHNlIHdpbmRvdy5zZXRUaW1lb3V0KGcsbCk7aC5lYWNoKGZ1bmN0aW9uKCl7bD4wJiYodGhpcy5zdHlsZVtlLnRyYW5zaXRpb25dPWopO2QodGhpcykuY3NzKGEpfSl9O3AoaCxpLGZ1bmN0aW9uKGEpe3ZhciBiPTA7ZS50cmFuc2l0aW9uPT09Ik1velRyYW5zaXRpb24iJiZiPDI1JiYoYj0yNSk7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXttKGEpfSxiKX0pO3JldHVybiB0aGlzfTtkLnRyYW5zaXQuZ2V0VHJhbnNpdGlvblZhbHVlPQpxfSkoalF1ZXJ5KTsvKkVPRiovOwovKiogL2pzL2pxdWVyeS50b3VjaFN3aXBlLm1pbi5qcyAqKi8KKGZ1bmN0aW9uKGcpe2cuZm4uc3dpcGU9ZnVuY3Rpb24obSl7aWYoIXRoaXMpcmV0dXJuIGZhbHNlO3ZhciBiPXtmaW5nZXJzOjEsdGhyZXNob2xkOjc1LHN3aXBlOm51bGwsc3dpcGVMZWZ0Om51bGwsc3dpcGVSaWdodDpudWxsLHN3aXBlVXA6bnVsbCxzd2lwZURvd246bnVsbCxzd2lwZVN0YXR1czpudWxsLGNsaWNrOm51bGwsdHJpZ2dlck9uVG91Y2hFbmQ6dHJ1ZSxhbGxvd1BhZ2VTY3JvbGw6ImF1dG8ifSxwPSJsZWZ0Iix2PSJyaWdodCIsdz0idXAiLHg9ImRvd24iLHk9Im5vbmUiLHo9Imhvcml6b250YWwiLEE9InZlcnRpY2FsIixHPSJhdXRvIixIPSJzdGFydCIsQj0ibW92ZSIscT0iZW5kIixuPSJjYW5jZWwiLGQ9Im9udG91Y2hzdGFydCJpbiB3aW5kb3csQz1kPyJ0b3VjaHN0YXJ0IjoibW91c2Vkb3duIixyPWQ\/InRvdWNobW92ZSI6Im1vdXNlbW92ZSIscz1kPyJ0b3VjaGVuZCI6Im1vdXNldXAiLGM9InN0YXJ0IjtpZihtLmFsbG93UGFnZVNjcm9sbD09dW5kZWZpbmVkJiYNCihtLnN3aXBlIT11bmRlZmluZWR8fG0uc3dpcGVTdGF0dXMhPXVuZGVmaW5lZCkpbS5hbGxvd1BhZ2VTY3JvbGw9eTttJiZnLmV4dGVuZChiLG0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBEKGEpe3ZhciBlPWQ\/YS50b3VjaGVzWzBdOmE7Yz1IO2lmKGQpaz1hLnRvdWNoZXMubGVuZ3RoO2Rpc3RhbmNlPTA7ZGlyZWN0aW9uPW51bGw7aWYoaz09Yi5maW5nZXJzfHwhZCl7aC54PWYueD1lLnBhZ2VYO2gueT1mLnk9ZS5wYWdlWTtiLnN3aXBlU3RhdHVzJiZvKGEsYyl9ZWxzZSBsKGEpO2lmKGQpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIocix0KTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHMsdSl9ZWxzZXtnKGRvY3VtZW50KS5vbihyLHQpO2coZG9jdW1lbnQpLm9uKHMsdSl9fWZ1bmN0aW9uIHQoYSl7aWYoIShjPT1xfHxjPT1uKSl7dmFyIGU9ZD9hLnRvdWNoZXNbMF06YTtmLng9ZS5wYWdlWDtmLnk9ZS5wYWdlWTtkaXJlY3Rpb249RSgpO2lmKGQpaz0NCmEudG91Y2hlcy5sZW5ndGg7Yz1CO2U9ZGlyZWN0aW9uO2lmKGIuYWxsb3dQYWdlU2Nyb2xsPT15KWEucHJldmVudERlZmF1bHQoKTtlbHNle3ZhciBpPWIuYWxsb3dQYWdlU2Nyb2xsPT1HO3N3aXRjaChlKXtjYXNlIHA6aWYoYi5zd2lwZUxlZnQmJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9eilhLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSB2OmlmKGIuc3dpcGVSaWdodCYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT16KWEucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIHc6aWYoYi5zd2lwZVVwJiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPUEpYS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgeDppZihiLnN3aXBlRG93biYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT1BKWEucHJldmVudERlZmF1bHQoKX19aWYoaz09Yi5maW5nZXJzfHwhZCl7ZGlzdGFuY2U9RigpO2Iuc3dpcGVTdGF0dXMmJm8oYSxjLGRpcmVjdGlvbixkaXN0YW5jZSk7aWYoIWIudHJpZ2dlck9uVG91Y2hFbmQpaWYoZGlzdGFuY2U+PQ0KYi50aHJlc2hvbGQpe2M9cTtvKGEsYyk7bChhKX19ZWxzZXtjPW47byhhLGMpO2woYSl9fX1mdW5jdGlvbiB1KGEpe2EucHJldmVudERlZmF1bHQoKTtkaXN0YW5jZT1GKCk7ZGlyZWN0aW9uPUUoKTtpZihiLnRyaWdnZXJPblRvdWNoRW5kKXtjPXE7aWYoKGs9PWIuZmluZ2Vyc3x8IWQpJiZmLnghPTApZGlzdGFuY2U+PWIudGhyZXNob2xkfHwoYz1uKTtlbHNlIGM9bjtvKGEsYyk7bChhKX1lbHNlIGlmKGM9PUIpe2M9bjtvKGEsYyk7bChhKX1pZihkKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHIsdCk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLHUpfWVsc2V7Zyhkb2N1bWVudCkub2ZmKHIsdCk7Zyhkb2N1bWVudCkub2ZmKHMsdSl9fWZ1bmN0aW9uIGwoKXtrPTA7aC54PTA7aC55PTA7Zi54PTA7Zi55PTB9ZnVuY3Rpb24gbyhhLGUpe2lmKGIuc3dpcGVTdGF0dXMpYi5zd2lwZVN0YXR1cy5jYWxsKGosYSxlLGRpcmVjdGlvbnx8bnVsbCxkaXN0YW5jZXx8DQowKTtpZihlPT1uKWlmKGIuY2xpY2smJihrPT0xfHwhZCkmJihpc05hTihkaXN0YW5jZSl8fGRpc3RhbmNlPT0wKSliLmNsaWNrLmNhbGwoaixhLGEudGFyZ2V0KTtpZihlPT1xKXtiLnN3aXBlJiZiLnN3aXBlLmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7c3dpdGNoKGRpcmVjdGlvbil7Y2FzZSBwOmIuc3dpcGVMZWZ0JiZiLnN3aXBlTGVmdC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgdjpiLnN3aXBlUmlnaHQmJmIuc3dpcGVSaWdodC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgdzpiLnN3aXBlVXAmJmIuc3dpcGVVcC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgeDpiLnN3aXBlRG93biYmYi5zd2lwZURvd24uY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKX19fWZ1bmN0aW9uIEYoKXtyZXR1cm4gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3coZi54LWgueCwyKStNYXRoLnBvdyhmLnktDQpoLnksMikpKX1mdW5jdGlvbiBFKCl7dmFyIGE7YT1NYXRoLnJvdW5kKE1hdGguYXRhbjIoZi55LWgueSxoLngtZi54KSoxODAvTWF0aC5QSSk7aWYoYTwwKWE9MzYwLU1hdGguYWJzKGEpO2E9YTtyZXR1cm4gYTw9NDUmJmE+PTA\/cDphPD0zNjAmJmE+PTMxNT9wOmE+PTEzNSYmYTw9MjI1P3Y6YT40NSYmYTwxMzU\/eDp3fXZhciBqPWcodGhpcyksaz0wLGg9e3g6MCx5OjB9LGY9e3g6MCx5OjB9O2lmKGQpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihDLEQpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixsKX1lbHNle2oub24oQyxEKTtnKGRvY3VtZW50KS5vbigidG91Y2hjYW5jZWwiLGwpfX0pfX0pKGpRdWVyeSk7LypFT0YqLzsKLyoqIC9qcy9wYWdlYmFubmVyLmpzICoqLwp2YXIgX19fZDJjX3BhZ2ViYW5uZXJqc19jX29uPSIyMDI2LTAxLTEzIDEzOjMwOjAzIjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gUGFnZUJhbm5lcihhKXtuZXcgUGFnZUJhbm5lcnNDYXJvdXNlbChhKX0KZnVuY3Rpb24gbW90b2luc2lnaHRCYW5uZXJWYXJpYWJsZVJlcGxhY2VtZW50KCl7aWYoJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoKWlmKCQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS5sZW5ndGgmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpKWlmKCQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfU0VMRUNUIikubGVuZ3RoJiYidGFiIj09JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9TRUxFQ1QiKS52YWwoKSl7dmFyIGE9JCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikudmFsKCk7JCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpLmF0dHIoIm9udGFwIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIil9ZWxzZSAkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLAoiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik7ZWxzZSAkKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1VTRURfU0VMRUNUIikubGVuZ3RoJiYidGFiIj09JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9VU0VEX1NFTEVDVCIpLnZhbCgpPyhhPSQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLnZhbCgpLCQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKS5hdHRyKCJvbnRhcCIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpKTokKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLAoiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik7ZWxzZSAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikubGVuZ3RoJiYiMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKT8kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1NFTEVDVCIpLmxlbmd0aCYmInRhYiI9PSQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfU0VMRUNUIikudmFsKCk\/KGE9JCgiI21vdG9pbnNpZ2h0c2hvcHNjcmlwdHVybCIpLnZhbCgpLGE9YS5yZXBsYWNlKCJpbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5qcyIsInNlYXJjaC8iKSwkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikuYXR0cigib250YXAiLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKSk6JCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsCiIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOiQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfVVNFRF9TRUxFQ1QiKS5sZW5ndGgmJiJ0YWIiPT0kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1VTRURfU0VMRUNUIikudmFsKCk\/KGE9JCgiI21vdG9pbnNpZ2h0c2hvcHNjcmlwdHVybCIpLnZhbCgpLGE9YS5yZXBsYWNlKCJpbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5qcyIsInNlYXJjaC8\/Y29uZGl0aW9uPVVzZWQiKSwkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikuYXR0cigib250YXAiLCJ3aW5kb3cub3BlbignIisKYSsiJywgJ19ibGFuaycpIikpOiQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpfQpjbGFzcyBQYWdlQmFubmVyc0Nhcm91c2Vse2NvbnN0cnVjdG9yKGEpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGEpe3RoaXMuaXNJbnZlbnRvcnlQYWdlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLm5ld0ludmVudG9yeSYmKGE9YS5uZXdJbnZlbnRvcnkpO3ZhciBlLGI7dGhpcy5kYXRhPW51bGwhPShiPW51bGw9PShlPWEpP3ZvaWQgMDplLmJhbm5lcnMpP2I6YTt2YXIgYyxkO3RoaXMuY29uZmlnPW51bGwhPShkPW51bGw9PShjPWEpP3ZvaWQgMDpjLmNvbmZpZyk\/ZDphO3RoaXMuYmFubmVycz1bXTt0aGlzLmluZGV4PS0xO3RoaXMuaW5pdGlhbGl6ZWQ9ITE7dGhpcy50aW1lb3V0SUQ9bnVsbDt0aGlzLmluaXQoKX19Z2V0IGlzSW52ZW50b3J5UGFnZSgpe3JldHVybiJVU0VEIj09c3RvcmUuZ2V0KCJjb250ZXh0Iikuc2VjdGlvbiYmIm5ld2ludiI9PXN0b3JlLmdldCgiY29udGV4dCIpLmNhdGVnb3J5fHwtMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvbmV1ZnMvaW52ZW50YWlyZS8iKXx8Ci0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9pbnZlbnRhaXJlLmh0bWwiKXx8LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL25ldy9pbnZlbnRvcnkvIil8fC0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9pbnZlbnRvcnkuaHRtbCIpfWdldCBjdXJyZW50UGF0aCgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lK3dpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLnRvTG93ZXJDYXNlKCl9Z2V0ICR0b3BCYW5uZXJJbWFnZSgpe3JldHVybiAkKCJkaXYjdG9wQmFubmVySW1hZ2UiKX1pbml0KCl7aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe3ZhciBhPXt9LGU9e30sYj1bXSxjPTA7Zm9yKHZhciBkIGluIHRoaXMuZGF0YSkiaHRtbDUiPT09ZHx8dGhpcy5faXNLZXl3b3JkSW5QYXRoKGQpfHx0aGlzLl9pc0tleXdvcmRJbkNvb2tpZShkKXx8JCgiYm9keSIpLmhhc0NsYXNzKCJ0ZW1wbGF0ZTUiKSYmKCJuZXVmcyI9PT0KZHx8Im5ldyI9PT1kKT8iaHRtbDUiPT09ZCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscy5zbGlkZXJPYmplY3QmJm51bGwhPW5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0JiYzPm5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0LnRvdGFsU2xpZGVzKCl8fCQuZWFjaCh0aGlzLmRhdGFbZF0sKGcsZik9PntjPXBhcnNlSW50KGcpOy0xPT09Yi5pbmRleE9mKGMpPyhiLnB1c2goYyksYVtjXT1mKTphW2MrNTBdPWZ9KToiZGVmYXVsdCI9PT1kfHx0aGlzLl9pc0tleXdvcmRJblBhdGgoZCl8fHRoaXMuX2lzS2V5d29yZEluQ29va2llKGQpPyQuZWFjaCh0aGlzLmRhdGFbZF0sKGcsZik9PnthWzBdPWY7Yi5wdXNoKDApfSk6InN0YXRpY2Jhbm5lcnMiPT09ZCYmJC5lYWNoKHRoaXMuZGF0YVtkXSwoZyxmKT0+e2M9cGFyc2VJbnQoZyk7LTE9PT1iLmluZGV4T2YoYykmJihiLnB1c2goYyksYVtjXT1mKTtlW2ddPQpmfSk7dmFyIGg9ITA7JC5lYWNoKGEsKGcsZik9PnsiZGVmYXVsdCIhPWYuaSYmKGg9ITEpfSk7dGhpcy5iYW5uZXJzPVtdOyQuZWFjaChhLChnLGYpPT57InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmKCJkZWZhdWx0Ij09PWYuaSYmITA9PT1ofHwiZGVmYXVsdCIhPT1mLmkpJiZ0aGlzLmJhbm5lcnMucHVzaChmKX0pOzA9PT10aGlzLmJhbm5lcnMubGVuZ3RoJiYwPE9iamVjdC5rZXlzKGUpLmxlbmd0aCYmJC5lYWNoKGUsKGcsZik9PnsidW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZ0aGlzLmJhbm5lcnMucHVzaChmKX0pO2Q9JCgiI2lzTW9iaWxlIik7MDxkLmxlbmd0aCYmMT09PWQudmFsKCkmJigkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hZGRDbGFzcygiLW10MTAiKSwkKCdbaWQqPSJoZWFkZXJQcm9tb0Zsb2F0QnV0dG9uSW5Cb2R5Il0nKS5oaWRlKCkpO3RoaXMuaW5pdGlhbGl6ZWQ9ITA7MDxPYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aD90aGlzLnJvdGF0ZSgpOnRoaXMuY2xlYXJBc3BlY3RSYXRpbygpfX1jbGVhckFzcGVjdFJhdGlvKCl7bGV0IGE9CiQoImRpdiN0b3BCYW5uZXJJbWFnZSIpO2EubGVuZ3RoJiZhLmNzcygiYXNwZWN0LXJhdGlvIiwiIil9c3RvcCgpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCl9c3RhcnQoYSl7dGhpcy5pbml0aWFsaXplZCYmKHRoaXMudGltZW91dElEPXNldFRpbWVvdXQoKCk9PnRoaXMucm90YXRlKCksYSkpfXJvdGF0ZSgpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgcG9wdXBpemVyQWN0aXZlJiZwb3B1cGl6ZXJBY3RpdmUoKSlzZXRUaW1lb3V0KCgpPT50aGlzLnJvdGF0ZSgpLDNFMyk7ZWxzZXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZGFyay10b29sdGlwIik7aWYoYS5sZW5ndGgpe2xldCBjPSExO2EuZm9yRWFjaChkPT57Im5vbmUiIT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSYmKGM9ITApfSk7aWYoITA9PT1jKXtzZXRUaW1lb3V0KCgpPT50aGlzLnJvdGF0ZSgpLDJFMyk7cmV0dXJufX1hPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BCYW5uZXJJbWFnZSIpOwppZighMT09PWlzSW5WaWV3cG9ydChhLHt0b3A6LTM1MH0pKXRoaXMuc3RhcnQoM0UzKTtlbHNle3RoaXMuaW5kZXgrKzt0aGlzLmluZGV4Pj1PYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aCYmKHRoaXMuaW5kZXg9MCk7dmFyIGU9JCgiZGl2I3RvcEJhbm5lckltYWdlIiksYj10aGlzLmJhbm5lcnNbdGhpcy5pbmRleF07aWYoYiYmImh0bWw1Ij09PWIuaSl7YT0wO2xldCBjPTE9PT1iLnU\/dGhpcy5jb25maWcuYzE6dGhpcy5jb25maWcuYzJfMSxkPTI9PT1iLnU\/dGhpcy5jb25maWcuYzI6dGhpcy5jb25maWcuYzJfMjtlLmh0bWwoIiIpLmhpZGUoKTtsZXQgaD0kKCIjcHJvbW9fYnRuX3R5cGUiKS52YWwoKTt2b2lkIDA9PT1oJiYoaD0iYmVzdG9mZmVyX2FuaW1hdGUiKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtnLmlkPSJnd2RiYW5uZXIiO2cuc3R5bGUud2lkdGg9IjkzMHB4IjtnLnN0eWxlLmhlaWdodD0iMjAwcHgiO2cuc2V0QXR0cmlidXRlKCJzY3JvbGxpbmciLAoibm8iKTtnLnNldEF0dHJpYnV0ZSgiZnJhbWVib3JkZXIiLCIwIik7ImludmVudG9yeSI9PT1iLm8mJjEwPCQoIiN1c2VkSW52ZW50b3J5TmV3UGFnZSIpLmh0bWwoKS5sZW5ndGgmJiFDb29raWVzLmdldCgiaW52ZW50b3J5TmV3UG9wdXBTaG93biIpJiYoYT0xKTtsZXQgZj0kKCIjcG9wdXBtYWtlIikudmFsKCkucmVwbGFjZSgvLXxccy9nLCJfIiksaz0kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKTtrPShrP2s6JCgiI3BvcHVwbW9kZWwiKS52YWwoKSkucmVwbGFjZSgvLXxccy9nLCJfIik7bGV0IG09JCgiI3BvcHVweWVhciIpLnZhbCgpLGw9JCgiI3N0eWxlaWQiKS52YWwoKTtsPTA8cGFyc2VJbnQobCk\/Ii1pZCIrbDoiIjskKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9nLnNyYz1gL2d3ZGJhbm5lci8ke219LSR7Zn0tJHtrfSR7bH0uaHRtbD9wdHlwZT0ke2h9JmMxPSR7Y30mYzI9JHtkfSZ0PSR7Yi51fSZvPSR7YX1gOmcuc3JjPWAvZ3dkYmFubmVyLyR7Zn0tJHtrfS0ke219JHtsfS5odG1sP3B0eXBlPSR7aH0mYzE9JHtjfSZjMj0ke2R9JnQ9JHtiLnV9Jm89JHthfWA7CmUuaHRtbChnKS5mYWRlSW4oInNsb3ciKX1lbHNlIGlmKGImJiJkZWZhdWx0Ij09PWIuaSllLmh0bWwoIiIpLmhpZGUoKS5odG1sKGIuaCkuZmFkZUluKCJzbG93IikuYXR0cigib25jbGljayIsZS5maW5kKCJ0YWJsZSIpLmF0dHIoIm9uY2xpY2siKSkuYXR0cigib250YXAiLGUuZmluZCgidGFibGUiKS5hdHRyKCJvbmNsaWNrIikpO2Vsc2UgJCgnPGltZyBmZXRjaHByaW9yaXR5PSJoaWdoIiBhbHQ9IiIgc3R5bGU9IndpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7IiBzcmM9IicrYi5pKyciPicpLm9uKCJsb2FkIixjPT57ZS5odG1sKCIiKS5oaWRlKCk7JChjLmN1cnJlbnRUYXJnZXQpLmFwcGVuZFRvKCJkaXYjdG9wQmFubmVySW1hZ2UiKTt0aGlzLl9wcm9jZXNzRGlzY2xhaW1lcihiKTtudWxsIT1iLnUmJjA8Yi51Lmxlbmd0aD8tMTxiLnUuaW5kZXhPZigidHJhZGVpbnZhbHVlcy5jYSIpfHwtMTxiLnUuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLAoic2hvd1RyYWRlSW5Qb3B1cCgnIitiLnUrIicpIikuYXR0cigib250YXAiLCJzaG93VHJhZGVJblBvcHVwKCciK2IudSsiJykiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkdHJhZGVib29zdCIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwicmV0dXJuIGxhdW5jaFRyYWRlSW5Qb3B1cCgnYmFubmVyJyk7IikuYXR0cigib250YXAiLCJyZXR1cm4gbGF1bmNoVHJhZGVJblBvcHVwKCdiYW5uZXInKTsiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkY3JlZGl0c2NvcmUiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIiQoJyNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLCIkKCcjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOgotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkbXVsdGlzdGVwZmluYW5jZSIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwiJCgnI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOi0xPGIudS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIiRjcmVkaXRib29zdCIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwiJCgnI2NyZWRpdEJvb3N0TXVsdGlQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI2NyZWRpdEJvb3N0TXVsdGlQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOgotMTxiLnUuaW5kZXhPZigiJG1vdG9pbnNpZ2h0c2hvcCIpPyQoIiNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmbW90b2luc2lnaHRCYW5uZXJWYXJpYWJsZVJlcGxhY2VtZW50KCk6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJHNlcnZpY2VhcHQiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIkxlYWRIYW5kbGVyKCkuZ2V0TGVhZCgnRGVhbGVyQXBwb2ludG1lbnQnKS5kaXNwbGF5KCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiTGVhZEhhbmRsZXIoKS5nZXRMZWFkKCdEZWFsZXJBcHBvaW50bWVudCcpLmRpc3BsYXkoKTtyZXR1cm4gZmFsc2U7Iik6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiamF2YXNjcmlwdDp2b2lkIik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLGIudSkuYXR0cigib250YXAiLGIudSk6MD09PWIudS5pbmRleE9mKCIvIil8fC0xPGIudS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0KT8KJChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitiLnUrIiciKTokKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2IudSsiJywgJ19ibGFuaycpIik6JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJzaG93UG9wdXBXaWRnZXQoKSIpLmF0dHIoIm9udGFwIiwic2hvd1BvcHVwV2lkZ2V0KCkiKTtlLmZhZGVJbigic2xvdyIpfSk7Mj5PYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aHx8dGhpcy5zdGFydChiLnQpfX19X2lzS2V5d29yZEluUGF0aChhKXtyZXR1cm4tMSE9PXRoaXMuY3VycmVudFBhdGguaW5kZXhPZihkZWNvZGVVUklDb21wb25lbnQoYSsiIikudG9Mb3dlckNhc2UoKSl9X2lzS2V5d29yZEluQ29va2llKGEpe2xldCBlPUNvb2tpZXMuZ2V0KCJkMmNvZmZlciIpO3JldHVybiBlJiYoZT1lLnRvTG93ZXJDYXNlKCksLTEhPT1lLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKSk\/CiEwOiExfV9wcm9jZXNzRGlzY2xhaW1lcihhKXtpZihhLmhhc093blByb3BlcnR5KCJkIikmJjAhPT1hLmQubGVuZ3RoKXt2YXIgZT17ZnI6e3Nob3c6IkFmZmljaGVyIGxlcyBtb2RhbGl0w6lzIGV0IGNvbmRpdGlvbnMgZ8OpbsOpcmFsZXMiLGhpZGU6Ik1hc3F1ZXIgbGVzIG1vZGFsaXTDqXMgZXQgY29uZGl0aW9ucyBnw6luw6lyYWxlcyJ9LGVuOntzaG93OiJWaWV3IFRlcm1zIGFuZCBDb25kaXRpb25zIixoaWRlOiJIaWRlIFRlcm1zIGFuZCBDb25kaXRpb25zIn19LGI9IjEiPT09JCgiI2lzbW9iaWxlIikudmFsKCksYz0kKCc8ZGl2IGNsYXNzPSJ0b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250YWluZXIiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgZmEtMngiPjwvaT48ZGl2PjwvZGl2PjwvZGl2PicpLGQ9JChgPGRpdiBjbGFzcz0idG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udHJvbCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iPiR7ZVtEMkNVdGlscy5MYW5nLmdldFNob3J0TGFuZyghMSldLnNob3d9PC9idXR0b24+PC9kaXY+YCk7CmMuZmluZCgiZGl2IikuYXBwZW5kKGEuZCk7dGhpcy4kdG9wQmFubmVySW1hZ2UuYXBwZW5kKGMpO3RoaXMuJHRvcEJhbm5lckltYWdlLmFwcGVuZChkKTtpZihiKWQub24oImNsaWNrIiwoKT0+e2MuaXMoIjp2aXNpYmxlIik\/KGQuZmluZCgiYnV0dG9uIikudGV4dChlW0QyQ1V0aWxzLkxhbmcuZ2V0U2hvcnRMYW5nKCExKV0uc2hvdyksYy5mYWRlT3V0KCksdGhpcy5zdGFydChhLnQpKTooZC5maW5kKCJidXR0b24iKS50ZXh0KGVbRDJDVXRpbHMuTGFuZy5nZXRTaG9ydExhbmcoITEpXS5oaWRlKSxjLmZhZGVJbigpLHRoaXMuc3RvcCgpKX0pO2Vsc2UgZC5vbigiY2xpY2siLCgpPT57Yy5zaG93KCk7dGhpcy5zdG9wKCl9KSxjLmZpbmQoImkiKS5vbigiY2xpY2siLCgpPT57Yy5oaWRlKCk7dGhpcy5zdGFydChhLnQpfSl9fX07Ci8qKiAvanMvZ29vZ2xlbWFwcy5qcyAqKi8KdmFyIF9fX2QyY19nb29nbGVtYXBzanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDo1NCI7J3VzZSBzdHJpY3QnO2NsYXNzIEdvb2dsZU1hcHNXcmFwcGVye2NvbnN0cnVjdG9yKGEpe3RoaXMucHJldmlvdXNJbmZvV2luZG93PSExO3RoaXMub3B0aW9ucz17ZWxlbWVudDphJiZhLmVsZW1lbnQ\/YS5lbGVtZW50OiIiLGNlbnRlcjphJiZhLmNlbnRlcj9hLmNlbnRlcjp7bGF0OjQ1LjQ2NzI3Nyxsbmc6LTczLjgzNDUyNn0sY2VudGVyT2Zmc2V0OmEmJmEuY2VudGVyT2Zmc2V0P2EuY2VudGVyT2Zmc2V0Ont4OjAseTowfSx6b29tOmEmJmEuem9vbT9hLnpvb206OSxhZGRyZXNzZXM6YSYmYS5hZGRyZXNzZXM\/YS5hZGRyZXNzZXM6W10sb25CZWZvcmVJbml0OmEmJmEub25CZWZvcmVJbml0P2Eub25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7fSxvbkFmdGVySW5pdDphJiZhLm9uQWZ0ZXJJbml0P2Eub25BZnRlckluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmEmJmEub25BZnRlck1hcmtlckNyZWF0ZWQ\/YS5vbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbigpe319fXN0YXRpYyBzZXRHb29nbGVNYXAoKXt2YXIgYT0KMCxlPWZ1bmN0aW9uKCl7Z29vZ2xlLm1hcHMuTWFwLnByb3RvdHlwZS5zZXRDZW50ZXJXaXRoT2Zmc2V0PWZ1bmN0aW9uKGssZyxsKXt2YXIgYz10aGlzLGI9bmV3IGdvb2dsZS5tYXBzLk92ZXJsYXlWaWV3O2Iub25BZGQ9ZnVuY3Rpb24oKXt2YXIgZj10aGlzLmdldFByb2plY3Rpb24oKSxkPWYuZnJvbUxhdExuZ1RvQ29udGFpbmVyUGl4ZWwoayk7ZC54Kz1nO2QueSs9bDtjLnNldENlbnRlcihmLmZyb21Db250YWluZXJQaXhlbFRvTGF0TG5nKGQpKX07Yi5kcmF3PWZ1bmN0aW9uKCl7fTtiLnNldE1hcCh0aGlzKX19O2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZSllKCk7ZWxzZSB2YXIgaD1zZXRJbnRlcnZhbChmdW5jdGlvbigpezQ+YT8idW5kZWZpbmVkIiE9PXR5cGVvZiBnb29nbGU\/KGNsZWFySW50ZXJ2YWwoaCksZSgpKTphKys6Y2xlYXJJbnRlcnZhbChoKX0sMUUzKX1pbml0KCl7dmFyIGE9dGhpcyxlPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueD9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lng6CjAsaD1hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk\/YS5vcHRpb25zLmNlbnRlck9mZnNldC55OjAsaz1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzO2Eub3B0aW9ucy5vbkJlZm9yZUluaXQoKTtpZihhLm9wdGlvbnMuYWRkcmVzc2VzLmxlbmd0aCl7dmFyIGc9YS5vcHRpb25zLmNlbnRlcixsPW5ldyBnb29nbGUubWFwcy5HZW9jb2RlcixjPW5ldyBnb29nbGUubWFwcy5NYXAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5vcHRpb25zLmVsZW1lbnQpLHt6b29tOmEub3B0aW9ucy56b29tLGNlbnRlcjphLm9wdGlvbnMuY2VudGVyLG1hcFR5cGVJZDpnb29nbGUubWFwcy5NYXBUeXBlSWQuUk9BRE1BUCxnZXN0dXJlSGFuZGxpbmc6ImdyZWVkeSIsc2Nyb2xsd2hlZWw6ITEsbWFwVHlwZUNvbnRyb2w6ITF9KTtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lck9uY2UoYywiaWRsZSIsZnVuY3Rpb24oKXthLm9wdGlvbnMuYWRkcmVzc2VzLm1hcChmdW5jdGlvbihiLGYsZCl7Zj1mdW5jdGlvbihuLApxKXt0cnl7aWYocT09Z29vZ2xlLm1hcHMuR2VvY29kZXJTdGF0dXMuT0spe2suZXh0ZW5kKG5bMF0uZ2VvbWV0cnkubG9jYXRpb24pO2MuZml0Qm91bmRzKGspO2Muc2V0Wm9vbShhLm9wdGlvbnMuem9vbSk7Zz1jLmdldEJvdW5kcygpLmdldENlbnRlcigpO2Muc2V0Q2VudGVyV2l0aE9mZnNldChnLGUsaCk7dmFyIHA9bmV3IGdvb2dsZS5tYXBzLkluZm9XaW5kb3coe2NvbnRlbnQ6Yi5pbmZvd2luZG93fSksbT1uZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHttYXA6Yyxwb3NpdGlvbjpuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLHRpdGxlOmIudGl0bGUsaWNvbjpiLmljb259KTttLmFkZExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXZpb3VzSW5mb1dpbmRvdyYmYS5wcmV2aW91c0luZm9XaW5kb3cuY2xvc2UoKTthLnByZXZpb3VzSW5mb1dpbmRvdz1wO3Aub3BlbihjLG0pfSk7YS5vcHRpb25zLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkKGIsbSl9fWNhdGNoKHIpe2NvbnNvbGUubG9nKHIpfX07CmEuaGFzTGF0KGIpJiZhLmhhc0xuZyhiKT8oZD1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKE51bWJlcihiLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCksTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubG5nKSksZihbe2dlb21ldHJ5Ontsb2NhdGlvbjpkfX1dLCJPSyIpKTpsLmdlb2NvZGUoe2FkZHJlc3M6Yi5hZGRyZXNzfSxmKX0pfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkRG9tTGlzdGVuZXIod2luZG93LCJyZXNpemUiLGZ1bmN0aW9uKCl7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKX0pfWEub3B0aW9ucy5vbkFmdGVySW5pdCgpfV9oYXNMYXRMbmdQcm9wKGEsZSl7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoImdlb21ldHJ5IikmJmEuZ2VvbWV0cnkuaGFzT3duUHJvcGVydHkoImxvY2F0aW9uIikmJmEuZ2VvbWV0cnkubG9jYXRpb24uaGFzT3duUHJvcGVydHkoZSkmJiJmYWxzZSIhPWEuZ2VvbWV0cnkubG9jYXRpb25bZV0\/ITA6ITF9aGFzTGF0KGEpe3JldHVybiB0aGlzLl9oYXNMYXRMbmdQcm9wKGEsCiJsYXQiKX1oYXNMbmcoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwibG5nIil9fTsKLyoqIC9qcy9mb290ZXJXaWRnZXQuanMgKiovCnZhciBfX19kMmNfZm9vdGVyV2lkZ2V0anNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDowNyI7J3VzZSBzdHJpY3QnO2luVmlld0V4ZWMoIiNmb290ZXJXcmFwcGVyIixmdW5jdGlvbigpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGE9JCgiI3RhcmdldFBhZ2UiKS52YWwoKTsidW5kZWZpbmVkIj09YSYmKGE9IlVOS05PV04iKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiRm9vdGVyLU1hcC1Mb2FkIiwiRGVza3RvcCIsYSwxKX07dHJ5e0dvb2dsZU1hcHNXcmFwcGVyLnNldEdvb2dsZU1hcCgpO3ZhciBjPSQoIiNmb290ZXJHb29nbGVNYXBab29tIikudmFsKCksZj0xPHBhcnNlSW50KGMpJiYxOD49cGFyc2VJbnQoYyk\/cGFyc2VJbnQoYyk6OSxlPW5ldyBHb29nbGVNYXBzV3JhcHBlcih7ZWxlbWVudDoiZm9vdGVyR29vZ2xlTWFwIixhZGRyZXNzZXM6InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXM\/Zm9vdGVyTWFwQWRkcmVzc2VzOltdLGNlbnRlck9mZnNldDp7eDotMzUwLHk6MH0sem9vbTpmLG9uQmVmb3JlSW5pdDpmdW5jdGlvbigpe2IoKX0sb25BZnRlckluaXQ6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9CnR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXMmJmZvb3Rlck1hcEFkZHJlc3Nlcy5sZW5ndGgpJChkb2N1bWVudCkub24oImNsaWNrIiwiLm1hcF9kZWFsZXJfbGlzdF9pdGVtIixmdW5jdGlvbigpeyQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5zbGlkZVRvZ2dsZSgic2xvdyIpOyQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5yZW1vdmVDbGFzcygiZmEtYW5nbGUtdXAiKTskKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikuYWRkQ2xhc3MoImZhLWFuZ2xlLWRvd24iKTt2YXIgYT0kKHRoaXMpLmZpbmQoIi5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiIpLmVxKDApLmhhc0NsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTskKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikucmVtb3ZlQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpO2F8fCgkKHRoaXMpLmZpbmQoIi5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiIpLmVxKDApLnNsaWRlVG9nZ2xlKCJzbG93IiksCiQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLCQodGhpcykuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnJlbW92ZUNsYXNzKCJmYS1hbmdsZS1kb3duIiksJCh0aGlzKS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikuYWRkQ2xhc3MoImZhLWFuZ2xlLXVwIikpfSk7ZWxzZSAkKCIjZm9vdGVyR29vZ2xlTWFwQ29udGFpbmVyIikuaGlkZSgpfSxvbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbihhLGcpe3ZhciBkPWEub3BlbmluZ0hvdXJzP2Eub3BlbmluZ0hvdXJzOiIiO2Q9JzxkaXYgY2xhc3M9Im1hcF9kZWFsZXJfbGlzdF9pdGVtIiBkYXRhLXRzPSInK2Euc2FmZVRpdGxlKyciICBkYXRhLW5hbWU9IicrYS50aXRsZSsnIj48c3BhbiBjbGFzcz0ibWFya2VyU3BhbiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIj4nKwphLnRpdGxlKyI8L3NwYW4+IisoZD8nPHNwYW4gY2xhc3M9Im1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyBmYSBmYS1hbmdsZS1kb3duIj48L3NwYW4+JzoiIikrJCgiPGRpdj4iKS5odG1sKGQpLnRleHQoKSsiPC9kaXY+IjskKCIjbWFwX2RlYWxlcl9saXN0IikuYXBwZW5kKGQpOyQoJ1tkYXRhLXRzPSInK2Euc2FmZVRpdGxlKyciXScpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSIpLnJlbW92ZUNsYXNzKCJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSIpOyQodGhpcykuZmluZCgiLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUiKS5hZGRDbGFzcygibWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUiKTtnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKGcsImNsaWNrIil9KX19KTskKCIjZm9vdGVyR29vZ2xlTWFwIikubGVuZ3RoPyJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZT9lLmluaXQoKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5pbml0KCl9LAoxRTMpOiQoIiNmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lciIpLmxlbmd0aCYmYigpfWNhdGNoKGEpe2NvbnNvbGUubG9nKGEpfX0pOyQoZnVuY3Rpb24oKXskKCIuY0V4cGVuZExpc3QgQlVUVE9OIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBiPSQodGhpcykuY2xvc2VzdCgiZGl2LmNGb290ZXJDYXJMaW5rcyIpO2IubGVuZ3RoJiYoYi5oYXNDbGFzcygiY0xpc3RFeHBlbmRlZCIpfHxiLmFkZENsYXNzKCJjTGlzdEV4cGVuZGVkIikuZmluZCgiLmNFeHBlbmRMaXN0IikuaGlkZSgpKX0pO2lmKCQoIiNmYmxpa2UtY29udGFpbmVyIikubGVuZ3RoKXtiKC0xKTtmdW5jdGlvbiBiKGMpeyQoIiNmYmxpa2UtY29udGFpbmVyIikuZmluZCgiaWZyYW1lIikuYXR0cigidGFiaW5kZXgiLGMpOyQoIiNmYmxpa2UtY29udGFpbmVyIikuZmluZCgiaWZyYW1lIikuYXR0cigidGFiaW5kZXgiKSE9YyYmc2V0VGltZW91dChmdW5jdGlvbigpe2IoYyl9LDFFMyl9fX0pOwovKiogL2pzL29wZW5ob3Vycy5qcyAqKi8KdmFyIF9fX2QyY19vcGVuaG91cnNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjAzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19vcGVuaG91cnNqc19jX29uPSIyMDI1LTAzLTE4IDE0OjMwOjA4IjsidXNlIHN0cmljdCI7CnZhciBPcGVuSG91cnM9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhkKXt2YXIgZT0kKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuaGFzQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpOyQoZC5jdXJyZW50VGFyZ2V0KS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikudG9nZ2xlQ2xhc3MoImV4cGFuZGVkIik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5zbGlkZVRvZ2dsZSgic2xvdyIpOyQodGhpcykucGFyZW50cyhhLm9wdGlvbnMuY29udGFpbmVyKS5maW5kKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikucmVtb3ZlQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpO2V8fCgkKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuc2xpZGVUb2dnbGUoInNsb3ciKSwkKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpKX0KdmFyIGE9dGhpczthLm9wdGlvbnM9YjthLiRjb250YWluZXI9JChhLm9wdGlvbnMuY29udGFpbmVyKTthLmluaXQ9ZnVuY3Rpb24oKXthLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLm9uKCJjbGljayBhdXRvX29wZW4iLGMpOzA8YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQuZGVmYXVsdF9vcGVuZWQiKS5sZW5ndGg\/YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQuZGVmYXVsdF9vcGVuZWQiKS50cmlnZ2VyKCJhdXRvX29wZW4iKToyIT0kKCIuZXhwYW5kYWJsZV9jb250ZW50IikubGVuZ3RofHwwPCQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5maW5kKCIudmlzaXRDb250YWN0SGVhZGVyIikubGVuZ3RoP2Eub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgiYXV0b09wZW4iKSYmIWEub3B0aW9ucy5hdXRvT3Blbnx8YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQiKS5maXJzdCgpLnRyaWdnZXIoImF1dG9fb3BlbiIpOgokKCIuZXhwYW5kYWJsZV9jb250ZW50Iikuc2xpZGVUb2dnbGUoInNsb3ciKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIil9O3JldHVybiBhfTsKLyoqIC9qcy9nZW9Mb2NhdGlvbi5qcyAqKi8KdmFyIF9fX2QyY19nZW9Mb2NhdGlvbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wMi0yNiAwOTozMDoxMSI7InVzZSBzdHJpY3QiOwp2YXIgZ2VvTG9jYXRvcj1mdW5jdGlvbihmKXt2YXIgYT10aGlzO2EubWFwc0FQSUtleT1udWxsO2EudXNlSFRNTDU9ITA7YS5nZW9jb2RlTG9jYXRpb249ITA7YS5hdHRlbXB0UGFnZU51bT0wO2EudHJhY2tMb2NhdGlvbkdBPSExO2EuZm9yY2VHZW9sb2NBdHRlbXB0PSExO2Euc2hvd1BvaW50ZXJNZXNzYWdlPSEwO2EudGltZW91dHM9W107YS5icm93c2VyPSIiO2EuaXNNb2JpbGU9IjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKTthLmdlb2xvY1N0YXR1c2VzPXtPSzoiU1VDQ0VTUyIsUkVGVVNFRDoiUkVGVVNFRCIsQ09PS0lFX0FDQ0VQVEVEOiJQUkVfQUNDRVBURUQiLENPT0tJRV9SRUZVU0VEOiJQUkVfUkVGVVNFRCIsQ0FOQ0VMRUQ6IkNBTkNFTEVEIixGQUlMOiJGQUlMRUQifTthLmdlb2xvY0Vycm9ycz17SU5WQUxJRF9SRVNQT05TRToiSU5WQUxJRF9SRVNQT05TRSIsQ09OTkVDVElPTl9GQUlMRUQ6IkNPTk5FQ1RJT05fRkFJTEVEIixHRU9MT0NfRkFJTEVEOiJHRU9MT0NfRkFJTEVEIiwKR0VPTE9DX1JFRlVTRUQ6IkdFT0xPQ19SRUZVU0VEIixHRU9DT0RFX0ZBSUxFRDoiR0VPQ09ERV9GQUlMRUQifTthLmdlb2xvY1Jlc3VsdD17cmVzdWx0OjAsZ2VvbG9jX2RhdGU6IiIsZ2VvbG9jX3N0YXR1czphLmdlb2xvY1N0YXR1c2VzLkZBSUwsZ2VvY29kZV9zdGF0dXM6MCxsYXRpdHVkZTowLGxvbmdpdHVkZTowLGFjY3VyYWN5OjAscG9zdGFsX2NvZGU6IiIsZ2VvY29kZV9hZGRyZXNzOiIiLGdlb2NvZGVfYWRkcmVzc19zdHI6IiJ9O2EuZ2VvbG9jQ2FsbGJhY2s9ZnVuY3Rpb24oKXtmKGEuZ2VvbG9jUmVzdWx0KTtmPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdlbyBjYWxsYmFjayBhbHJlYWR5IGZpcmVkLiIpfX07YS5faW5pdD1mdW5jdGlvbigpe2EuaXNNb2JpbGUmJihhLnNob3dQb2ludGVyTWVzc2FnZT0hMSk7aWYoMDxhLmF0dGVtcHRQYWdlTnVtKXt2YXIgYj1udWxsIT1Db29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIik\/cGFyc2VJbnQoQ29va2llcy5nZXQoImdlb2xvY1BhZ2VWaWV3cyIpKSsKMToxO0Nvb2tpZXMuc2V0KCJnZW9sb2NQYWdlVmlld3MiLGI8YS5hdHRlbXB0UGFnZU51bT9iOjAsbnVsbCwiLyIpO2lmKGI8YS5hdHRlbXB0UGFnZU51bSlyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExfWlmKCFhLmZvcmNlR2VvbG9jQXR0ZW1wdCYmQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKXJldHVybiBiPUpTT04ucGFyc2UoQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKSwiMSI9PWIuYWNjZXB0ZWQ\/KGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0xLGEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPWIuZ2VvbG9jX2RhdGUsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNPT0tJRV9BQ0NFUFRFRCxhLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZT1iLmxhdGl0aXVkZSxhLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU9CmIubG9uZ2l0dWRlLGEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcz1iLmFkZHJlc3MsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj1iLmFkZHJlc3Nfc3RyKTooYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX1JFRlVTRUQpLGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZigiaHR0cHM6IiE9bG9jYXRpb24ucHJvdG9jb2wpcmV0dXJuIGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNBTkNFTEVELGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZihsdF9JRTl8fCFuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pYS51c2VIVE1MNT0hMTtuYXZpZ2F0b3IuYnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBjPW5hdmlnYXRvci51c2VyQWdlbnQsZD1jLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg\/PVwvKSlcLz9ccyooXGQrKS9pKXx8CltdO2lmKC90cmlkZW50L2kudGVzdChkWzFdKSl7dmFyIGU9L1xicnZbIDpdKyhcZCspL2cuZXhlYyhjKXx8W107cmV0dXJuIklFeHBsb3JlciAiKyhlWzFdfHwiIil9aWYoIkNocm9tZSI9PT1kWzFdJiYoZT1jLm1hdGNoKC9cYk9QUlwvKFxkKykvKSxudWxsIT1lKSlyZXR1cm4iT3BlcmEgIitlWzFdO2Q9ZFsyXT9bZFsxXSxkWzJdXTpbbmF2aWdhdG9yLmFwcE5hbWUsbmF2aWdhdG9yLmFwcFZlcnNpb24sIi0\/Il07bnVsbCE9KGU9Yy5tYXRjaCgvdmVyc2lvblwvKFxkKykvaSkpJiZkLnNwbGljZSgxLDEsZVsxXSk7cmV0dXJuIGQuam9pbigiICIpfSgpO2EuYnJvd3Nlcj1uYXZpZ2F0b3IuYnJvd3NlcjtyZXR1cm4hMH07YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYj0iTGF0aXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUrIjsgTG9uZ2l0dWRlOiAiK2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZTszPD1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZS5sZW5ndGgmJgooYj1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSk7YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkFjY2VwdGVkIixiKTthLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT0obmV3IERhdGUpLmdldFRpbWUoKTtiPW5ldyBEYXRlO2Iuc2V0SG91cnMoMjMsNTksNTksMCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjEsZ2VvbG9jX2RhdGU6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGUsbGF0aXR1ZGU6YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUsbG9uZ2l0dWRlOmEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZSxwb3N0YWxfY29kZTphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSxhY2N1cmFjeTphLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeSxhZGRyZXNzOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcyxhZGRyZXNzX3N0cjphLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyfSksYiwiLyIpO2EuZ2VvbG9jQ2FsbGJhY2soKX07CmEuaGFuZGxlTG9jYXRpb25FcnJvcj1mdW5jdGlvbihiLGMpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSIiO2EuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5GQUlMO3N3aXRjaChiKXtjYXNlIGEuZ2VvbG9jRXJyb3JzLklOVkFMSURfUkVTUE9OU0U6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkNPTk5FQ1RJT05fRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IENvbmVjdGlvbiBmYWlsZWQiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuR0VPTE9DX1JFRlVTRUQ6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLlJFRlVTRUQ7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEOmJyZWFrOwpjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0NPREVfRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IEludmFsaWQgcmVzcG9uc2UgZGF0YSI7YnJlYWs7ZGVmYXVsdDpjPSJVbmtub3duIGVycm9yIG9jdXJyZWQifWEudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJGYWlsZWQiLGMpO2EuZ2VvbG9jQ2FsbGJhY2soKX07YS5nZXRMb2NhdGlvbj1mdW5jdGlvbigpe2EuX2luaXQoKSYmKDA9PWEudXNlSFRNTDU\/YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb24oKTphLmdldEhUTUw1TG9jYXRpb24oKSl9O2EuZ2V0R29vZ2xlU2VydmljZUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKTtyZXR1cm4hMX07YS5nZXRIVE1MNUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5zaG93R2VvbG9jTXNnKCk7bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihiKXthLmhpZGVHZW9sb2NNc2coKTthLmNsZWFyU2V0VGltZW91dHMoKTsKYS5nZW9sb2NSZXN1bHQucmVzdWx0PTE7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLk9LO2EuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIuY29vcmRzLmxhdGl0dWRlO2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT1iLmNvb3Jkcy5sb25naXR1ZGU7YS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k9Yi5jb29yZHMuYWNjdXJhY3k7aWYoMSE9YS5nZW9jb2RlTG9jYXRpb24pcmV0dXJuIGEuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCksITE7YS5sYXRMb25nR2VvY29kZShiLmNvb3Jkcy5sYXRpdHVkZSxiLmNvb3Jkcy5sb25naXR1ZGUpfSxmdW5jdGlvbihiKXtjb25zb2xlLmxvZyhiKTt2YXIgYz0iR2VvbG9jIGVycm9yIGNvZGU6ICIrYi5jb2RlKyIsIGdlb2xvYyBlcnJvciBtZXNhZ2U6ICIrYi5tZXNzYWdlO2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpO0Nvb2tpZXMuc2V0KCJnZW9sb2NQcm9jZXNzZWQiLEpTT04uc3RyaW5naWZ5KHthY2NlcHRlZDowfSksCjEsIi8iKTt2YXIgZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDsxIT1wYXJzZUludChiLmNvZGUpJiYoZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEKTthLmhhbmRsZUxvY2F0aW9uRXJyb3IoZCxjKX0se3RpbWVvdXQ6MjVFM30pfTthLmxhdExvbmdHZW9jb2RlPWZ1bmN0aW9uKGIsYyl7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIrInwiK2M7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj0iTGF0aXR1ZGU6ICIrYisiOyBMb25naXR1ZGU6ICIrYzthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpfTthLnRyYWNrUG9zdGFsPWZ1bmN0aW9uKCl7aWYoJGNvb2tpZT1Db29raWVzLmdldCgiSFRNTDVHZW8iKSlpZigkY29va2llPUpTT04ucGFyc2UoJGNvb2tpZSksJGNvb2tpZS5wb3N0YWxfY29kZSlyZXR1cm47aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUmJiIiIT09YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUpe3ZhciBiPQphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSsifCIrYS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYiwiSFRNTDVHZW8ucG9zdGFsIikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiSFRNTDVHZW8iLEpTT04uc3RyaW5naWZ5KHtwb3N0YWxfY29kZToxfSksYiwiLyIpfX07CmEuZ2V0QWRkcmVzc0Nvb3JkPWZ1bmN0aW9uKGIsYyl7cmV0dXJuITF9O2EudHJhY2tMb2NhdGlvbj1mdW5jdGlvbihiLGMsZCl7aWYoIWEudHJhY2tMb2NhdGlvbkdBKXJldHVybiExfTthLmNsZWFyU2V0VGltZW91dHM9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPGEudGltZW91dHMubGVuZ3RoO2IrKyljbGVhclRpbWVvdXQoYS50aW1lb3V0c1tiXSk7YS50aW1lb3V0cz1bXX07YS5zaG93R2VvbG9jTXNnPWZ1bmN0aW9uKCl7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2EuY2xlYXJTZXRUaW1lb3V0cygpO3ZhciBiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCl9LDNFNCk7YS50aW1lb3V0cy5wdXNoKGIpO2lmKC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iil8fC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpKSQoIi5nZW9sb2MtbW9kYWwtYmciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwKJCgiI2dlb2xvY2F0aW9uTXNnIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSksJCgiI2dlb2xvY2F0aW9uTXNnSUUiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KTt2YXIgYz0iZ2VvbG9jYXRpb25Nc2ciLGQ9ITAsZT17dG9wOiIwIixsZWZ0OiIwIn07c3dpdGNoKCEwKXtjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpOmU9e2JvdHRvbToiMHB4IixsZWZ0OiI0MyUifTtjPSJnZW9sb2NhdGlvbk1zZ0lFIjticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iik6ZT17dG9wOiI5MHB4IixsZWZ0OiI1cHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCI3NXB4Iik7JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJ0b3AiLCIzNXB4Iik7LTE9PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKS5pbmRleE9mKCJXaW5kb3dzIikmJgokKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIxNzVweCIpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkNocm9tZSIpOmU9e3RvcDoiNjVweCIsbGVmdDoiMHB4In07JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjEwcHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmKGU9e3RvcDoiNzVweCIsbGVmdDoiNTBweCJ9LCQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjI0MHB4IikpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIlNhZmFyaSIpOmU9e3RvcDoiNTE1cHgiLGxlZnQ6IjM1JSJ9O2Q9ITA7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiT3BlcmEiKTplPXt0b3A6IjAiLGxlZnQ6IjAifTtkPSExO2JyZWFrO2RlZmF1bHQ6ZT17dG9wOiIwIixsZWZ0OiIwIn0sZD0hMX1kJiYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIucmV2ZWFsLW1vZGFsLWJnIikudmFsKCkmJgoiYmxvY2siPT0kKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJkaXNwbGF5IikmJiQoIi5yZXZlYWwtbW9kYWwtYmciKS5oaWRlKCksJCgiLmdlb2xvYy1tb2RhbC1iZyIpLnNob3coKSwkKCIjIitjKS5jc3MoZSksJCgiIyIrYykuc2hvdygpLCJ1bmRlZmluZWQiPT10eXBlb2Ygc2l0ZVNlY3Rpb24mJihzaXRlU2VjdGlvbj0iVU5ERUZJTkVEIiksYS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIlNlY3Rpb24tIitzaXRlU2VjdGlvbiwiIikpfTthLmhpZGVHZW9sb2NNc2c9ZnVuY3Rpb24oYil7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YiliPSExOyQoIi5nZW9sb2MtbW9kYWwtYmciKS5oaWRlKCk7Ynx8KCQoIiNnZW9sb2NhdGlvbk1zZyIpLmhpZGUoKSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLmhpZGUoKSl9O2EuZ2VvbG9jRmFpbD1mdW5jdGlvbigpey0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpJiYKbG9jYXRpb24ucmVsb2FkKCk7b3ZlcmxheU9ubHk9ITA7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpb3ZlcmxheU9ubHk9ITE7YS5oaWRlR2VvbG9jTXNnKG92ZXJsYXlPbmx5KTtyZXR1cm4hMX07YS5nZXREaXN0YW5jZT1mdW5jdGlvbihiLGMsZCl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX07YS5nZXREaXN0YW5jZUhhdmVyc2luZT1mdW5jdGlvbihiLGMpe3ZhciBkPShjLmxhdC1iLmxhdCkqTWF0aC5QSS8xODAsZT0oYy5sb25nLWIubG9uZykqTWF0aC5QSS8xODA7Yj1NYXRoLnNpbihkLzIpKk1hdGguc2luKGQvMikrTWF0aC5jb3MoYi5sYXQqTWF0aC5QSS8xODApKk1hdGguY29zKGMubGF0Kk1hdGguUEkvMTgwKSpNYXRoLnNpbihlLzIpKk1hdGguc2luKGUvMik7cmV0dXJuKDEyNzU2Mjc0Kk1hdGguYXRhbjIoTWF0aC5zcXJ0KGIpLE1hdGguc3FydCgxLWIpKSkudG9GaXhlZCgyKX07YS5nZXREaXN0YW5jZUdtYXBzPQpmdW5jdGlvbihiLGMpe3JldHVybiBhLmdldERpc3RhbmNlSGF2ZXJzaW5lKGIsYyl9fTsKLyoqIC9qcy90b2FzdHIuanMgKiovCnZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjowOSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNC0wMy0yNiAxMjozMDoxNSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oeil7eihbImpxdWVyeSJdLGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIG4oYSxjKXthfHwoYT1sKCkpO2Y9ZCgiIyIrYS5jb250YWluZXJJZCk7aWYoZi5sZW5ndGgpcmV0dXJuIGY7YyYmKGY9ZCgiPGRpdi8+IikuYXR0cigiaWQiLGEuY29udGFpbmVySWQpLmFkZENsYXNzKGEucG9zaXRpb25DbGFzcykuYXR0cigiYXJpYS1saXZlIiwicG9saXRlIikuYXR0cigicm9sZSIsImFsZXJ0IikuY3NzKCJjb2xvciIsYS5jb2xvciksZi5hcHBlbmRUbyhkKGEudGFyZ2V0KSkpO3JldHVybiBmfWZ1bmN0aW9uIEEoYSxjLGUpe2U9ZSYmZS5mb3JjZT9lLmZvcmNlOiExO3JldHVybiBhJiYoZXx8MD09PWQoIjpmb2N1cyIsYSkubGVuZ3RoKT8oYVtjLmhpZGVNZXRob2RdKHtkdXJhdGlvbjpjLmhpZGVEdXJhdGlvbixlYXNpbmc6Yy5oaWRlRWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dShhKX19KSwhMCk6ITF9ZnVuY3Rpb24gRSgpe3JldHVybnt0YXBUb0Rpc21pc3M6ITAsCnRvYXN0Q2xhc3M6InRvYXN0Iixjb250YWluZXJJZDoidG9hc3QtY29udGFpbmVyIixkZWJ1ZzohMSxzaG93TWV0aG9kOiJmYWRlSW4iLHNob3dEdXJhdGlvbjozMDAsc2hvd0Vhc2luZzoic3dpbmciLG9uU2hvd246ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpO2QoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpfSxoaWRlTWV0aG9kOiJmYWRlT3V0IixoaWRlRHVyYXRpb246MUUzLGhpZGVFYXNpbmc6InN3aW5nIixvbkhpZGRlbjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIil9LG9uQ2xvc2U6ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpOwpkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sZXh0ZW5kZWRUaW1lT3V0OjFFMyxpY29uQ2xhc3Nlczp7ZXJyb3I6InRvYXN0LWVycm9yIixpbmZvOiJ0b2FzdC1pbmZvIixzdWNjZXNzOiJ0b2FzdC1zdWNjZXNzIix3YXJuaW5nOiJ0b2FzdC13YXJuaW5nIn0saWNvbkNsYXNzOiJ0b2FzdC1pbmZvIixjb2xvcjoiI0ZGRiIsYmdDb2xvcjoiIixwb3NpdGlvbkNsYXNzOiJ0b2FzdC10b3AtcmlnaHQiLHRpbWVPdXQ6NUUzLHRpdGxlQ2xhc3M6InRvYXN0LXRpdGxlIixtZXNzYWdlQ2xhc3M6InRvYXN0LW1lc3NhZ2UiLHRhcmdldDoiYm9keSIsY2xvc2VIdG1sOic8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPicsbmV3ZXN0T25Ub3A6ITAscHJldmVudER1cGxpY2F0ZXM6ITEscHJvZ3Jlc3NCYXI6ITF9fWZ1bmN0aW9uIHIoYSl7ZnVuY3Rpb24gYyhrKXtpZighZCgiOmZvY3VzIixnKS5sZW5ndGh8fGspcmV0dXJuIGNsZWFyVGltZW91dChoLmludGVydmFsSWQpLApnW2IuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmIuaGlkZUR1cmF0aW9uLGVhc2luZzpiLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGcpO2lmKGIub25IaWRkZW4mJiJoaWRkZW4iIT09bS5zdGF0ZSliLm9uSGlkZGVuKCk7bS5zdGF0ZT0iaGlkZGVuIjttLmVuZFRpbWU9bmV3IERhdGU7cCYmcChtKX19KX1mdW5jdGlvbiBlKCl7aWYoMDxiLnRpbWVPdXR8fDA8Yi5leHRlbmRlZFRpbWVPdXQpdj1zZXRUaW1lb3V0KGMsYi5leHRlbmRlZFRpbWVPdXQpLGgubWF4SGlkZVRpbWU9cGFyc2VGbG9hdChiLmV4dGVuZGVkVGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWV9ZnVuY3Rpb24gRigpe2NsZWFyVGltZW91dCh2KTtoLmhpZGVFdGE9MDtnLnN0b3AoITAsITApW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmd9KX1mdW5jdGlvbiBHKCl7dmFyIGs9KGguaGlkZUV0YS0obmV3IERhdGUpLmdldFRpbWUoKSkvCmgubWF4SGlkZVRpbWUqMTAwO3cud2lkdGgoaysiJSIpfXZhciBiPWwoKSx4PWEuaWNvbkNsYXNzfHxiLmljb25DbGFzczsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLm9wdGlvbnNPdmVycmlkZSYmKGI9ZC5leHRlbmQoYixhLm9wdGlvbnNPdmVycmlkZSkseD1hLm9wdGlvbnNPdmVycmlkZS5pY29uQ2xhc3N8fHgpO2E6e2lmKGIucHJldmVudER1cGxpY2F0ZXMpaWYoYS5tZXNzYWdlPT09eSl7dmFyIHE9ITA7YnJlYWsgYX1lbHNlIHk9YS5tZXNzYWdlO3E9ITF9aWYoIXEpe0IrKztmPW4oYiwhMCk7dmFyIHY9bnVsbCxnPWQoIjxkaXYvPiIpO3E9ZCgiPGRpdi8+Iik7dmFyIEM9ZCgiPGRpdi8+Iiksdz1kKCI8ZGl2Lz4iKSx0PWQoYi5jbG9zZUh0bWwpLGg9e2ludGVydmFsSWQ6bnVsbCxoaWRlRXRhOm51bGwsbWF4SGlkZVRpbWU6bnVsbH0sbT17dG9hc3RJZDpCLHN0YXRlOiJ2aXNpYmxlIixzdGFydFRpbWU6bmV3IERhdGUsb3B0aW9uczpiLG1hcDphfTs2PGIuYmdDb2xvci5sZW5ndGgmJgpnLmNzcygiYmFja2dyb3VuZC1jb2xvciIsYi5iZ0NvbG9yKTthLmljb25DbGFzcyYmZy5hZGRDbGFzcyhiLnRvYXN0Q2xhc3MpLmFkZENsYXNzKHgpO2EudGl0bGUmJihxLmFwcGVuZChhLnRpdGxlKS5hZGRDbGFzcyhiLnRpdGxlQ2xhc3MpLGcuYXBwZW5kKHEpKTthLm1lc3NhZ2UmJihDLmFwcGVuZChhLm1lc3NhZ2UpLmFkZENsYXNzKGIubWVzc2FnZUNsYXNzKSxnLmFwcGVuZChDKSk7Yi5jbG9zZUJ1dHRvbiYmKHQuYWRkQ2xhc3MoInRvYXN0LWNsb3NlLWJ1dHRvbiIpLmF0dHIoInJvbGUiLCJidXR0b24iKSxnLnByZXBlbmQodCkpO2IucHJvZ3Jlc3NCYXImJih3LmFkZENsYXNzKCJ0b2FzdC1wcm9ncmVzcyIpLGcucHJlcGVuZCh3KSk7Yi5uZXdlc3RPblRvcD9mLnByZXBlbmQoZyk6Zi5hcHBlbmQoZyk7Zy5oaWRlKCk7Z1tiLnNob3dNZXRob2RdKHtkdXJhdGlvbjpiLnNob3dEdXJhdGlvbixlYXNpbmc6Yi5zaG93RWFzaW5nLGNvbXBsZXRlOmIub25TaG93bn0pOzA8Yi50aW1lT3V0JiYKKHY9c2V0VGltZW91dChjLGIudGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIudGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWUsYi5wcm9ncmVzc0JhciYmKGguaW50ZXJ2YWxJZD1zZXRJbnRlcnZhbChHLDEwKSkpOyhmdW5jdGlvbigpe2cub24oIm1vdXNlZW50ZXIiLEYpLm9uKCJtb3VzZWxlYXZlIixlKTtpZighYi5vbmNsaWNrJiZiLnRhcFRvRGlzbWlzcylnLm9uKCJjbGljayIsYyk7aWYoYi5jbG9zZUJ1dHRvbiYmdCl0Lm9uKCJjbGljayIsZnVuY3Rpb24oayl7ay5zdG9wUHJvcGFnYXRpb24\/ay5zdG9wUHJvcGFnYXRpb24oKTp2b2lkIDAhPT1rLmNhbmNlbEJ1YmJsZSYmITAhPT1rLmNhbmNlbEJ1YmJsZSYmKGsuY2FuY2VsQnViYmxlPSEwKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkNsb3NlKWIub25DbG9zZSgpO2MoITApfSk7aWYoYi5vbmNsaWNrKWcub24oImNsaWNrIixmdW5jdGlvbigpe2Iub25jbGljaygpOwpjKCl9KX0pKCk7cCYmcChtKTtiLmRlYnVnJiZjb25zb2xlJiZjb25zb2xlLmxvZyhtKTtyZXR1cm4gZ319ZnVuY3Rpb24gbCgpe3JldHVybiBkLmV4dGVuZCh7fSxFKCksRC5vcHRpb25zKX1mdW5jdGlvbiB1KGEpe2Z8fChmPW4oKSk7YS5pcygiOnZpc2libGUiKXx8KGEucmVtb3ZlKCksMD09PWYuY2hpbGRyZW4oKS5sZW5ndGgmJihmLnJlbW92ZSgpLHk9dm9pZCAwKSl9dmFyIGYscCxCPTAsRD17Y2xlYXI6ZnVuY3Rpb24oYSxjKXt2YXIgZT1sKCk7Znx8bihlKTtpZighQShhLGUsYykpZm9yKGE9Zi5jaGlsZHJlbigpLGM9YS5sZW5ndGgtMTswPD1jO2MtLSlBKGQoYVtjXSksZSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYz1sKCk7Znx8bihjKTthJiYwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGg\/dShhKTpmLmNoaWxkcmVuKCkubGVuZ3RoJiZmLnJlbW92ZSgpfSxlcnJvcjpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6ImVycm9yIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmVycm9yLAptZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSxnZXRDb250YWluZXI6bixpbmZvOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiaW5mbyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5pbmZvLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LG9wdGlvbnM6e30sc3Vic2NyaWJlOmZ1bmN0aW9uKGEpe3A9YX0sc3VjY2VzczpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6InN1Y2Nlc3MiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuc3VjY2VzcyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSx2ZXJzaW9uOiIyLjEuMSIsd2FybmluZzpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6Indhcm5pbmciLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMud2FybmluZyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfX0seTtyZXR1cm4gRH0oKX0pfSkoImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJgpkZWZpbmUuYW1kP2RlZmluZTpmdW5jdGlvbih6LGQpeyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZChyZXF1aXJlKCJqcXVlcnkiKSk6d2luZG93LnRvYXN0cj1kKHdpbmRvdy5qUXVlcnkpfSk7Ci8qKiAvanMvaHRtbDJjYW52YXMuanMgKiovCnZhciBfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjI2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzQ6NTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDIzLTAxLTEyIDExOjM2OjM3IjsidXNlIHN0cmljdCI7X19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NjoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjItMDItMDcgMjI6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKE4sUixRKXtmdW5jdGlvbiBxYShkLHAscSl7dmFyIGs9ZC5ydW50aW1lU3R5bGUmJmQucnVudGltZVN0eWxlW3BdLGM9ZC5zdHlsZTtpZighL14tP1swLTldK1wuP1swLTldKig\/OnB4KT8kL2kudGVzdChxKSYmL14tP1xkLy50ZXN0KHEpKXt2YXIgbj1jLmxlZnQ7ayYmKGQucnVudGltZVN0eWxlLmxlZnQ9ZC5jdXJyZW50U3R5bGUubGVmdCk7Yy5sZWZ0PSJmb250U2l6ZSI9PT1wPyIxZW0iOnF8fDA7cT1jLnBpeGVsTGVmdCsicHgiO2MubGVmdD1uO2smJihkLnJ1bnRpbWVTdHlsZS5sZWZ0PWspfXJldHVybi9eKHRoaW58bWVkaXVtfHRoaWNrKSQvaS50ZXN0KHEpP3E6TWF0aC5yb3VuZChwYXJzZUZsb2F0KHEpKSsicHgifWZ1bmN0aW9uIHhhKGQpe3JldHVybiBwYXJzZUludChkLDEwKX1mdW5jdGlvbiBqYShkKXtyZXR1cm4tMSE9PWQudG9TdHJpbmcoKS5pbmRleE9mKCIlIil9ZnVuY3Rpb24geWEoZCxwKXt2YXIgcT1bXTtyZXR1cm57c3RvcmFnZTpxLHdpZHRoOmQsCmhlaWdodDpwLGNsaXA6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJjbGlwIixhcmd1bWVudHN9KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToidHJhbnNsYXRlIixhcmd1bWVudHN9KX0sZmlsbDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImZpbGwiLGFyZ3VtZW50c30pfSxzYXZlOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToic2F2ZSIsYXJndW1lbnRzfSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJyZXN0b3JlIixhcmd1bWVudHN9KX0sZmlsbFJlY3Q6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJmaWxsUmVjdCIsYXJndW1lbnRzfSl9LGNyZWF0ZVBhdHRlcm46ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJjcmVhdGVQYXR0ZXJuIixhcmd1bWVudHN9KX0sCmRyYXdTaGFwZTpmdW5jdGlvbigpe3ZhciBrPVtdO3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImRyYXdTaGFwZSIsYXJndW1lbnRzOmt9KTtyZXR1cm57bW92ZVRvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJtb3ZlVG8iLGFyZ3VtZW50c30pfSxsaW5lVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImxpbmVUbyIsYXJndW1lbnRzfSl9LGFyY1RvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJhcmNUbyIsYXJndW1lbnRzfSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImJlemllckN1cnZlVG8iLGFyZ3VtZW50c30pfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJxdWFkcmF0aWNDdXJ2ZVRvIixhcmd1bWVudHN9KX19fSxkcmF3SW1hZ2U6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJkcmF3SW1hZ2UiLGFyZ3VtZW50c30pfSxmaWxsVGV4dDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLApuYW1lOiJmaWxsVGV4dCIsYXJndW1lbnRzfSl9LHNldFZhcmlhYmxlOmZ1bmN0aW9uKGssYyl7cS5wdXNoKHt0eXBlOiJ2YXJpYWJsZSIsbmFtZTprLGFyZ3VtZW50czpjfSk7cmV0dXJuIGN9fX12YXIgeD17fSxyYTt4LlV0aWw9e307eC5VdGlsLmxvZz1mdW5jdGlvbihkKXt4LmxvZ2dpbmcmJk4uY29uc29sZSYmTi5jb25zb2xlLmxvZyYmTi5jb25zb2xlLmxvZyhkKX07eC5VdGlsLnRyaW1UZXh0PWZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZD9kLmFwcGx5KHApOigocHx8IiIpKyIiKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9fShTdHJpbmcucHJvdG90eXBlLnRyaW0pO3guVXRpbC5hc0Zsb2F0PWZ1bmN0aW9uKGQpe3JldHVybiBwYXJzZUZsb2F0KGQpfTsoZnVuY3Rpb24oKXt2YXIgZD0vKChyZ2JhfHJnYilcKFteXCldK1wpKFxzLT9cZCtweCl7MCx9KS9nLHA9LygtP1xkK3B4KXwoIy4rKXwocmdiXCguK1wpKXwocmdiYVwoLitcKSkvZzt4LlV0aWwucGFyc2VUZXh0U2hhZG93cz0KZnVuY3Rpb24ocSl7aWYoIXF8fCJub25lIj09PXEpcmV0dXJuW107cT1xLm1hdGNoKGQpO2Zvcih2YXIgaz1bXSxjPTA7cSYmYzxxLmxlbmd0aDtjKyspe3ZhciBuPXFbY10ubWF0Y2gocCk7ay5wdXNoKHtjb2xvcjpuWzBdLG9mZnNldFg6blsxXT9uWzFdLnJlcGxhY2UoInB4IiwiIik6MCxvZmZzZXRZOm5bMl0\/blsyXS5yZXBsYWNlKCJweCIsIiIpOjAsYmx1cjpuWzNdP25bM10ucmVwbGFjZSgicHgiLCIiKTowfSl9cmV0dXJuIGt9fSkoKTt4LlV0aWwucGFyc2VCYWNrZ3JvdW5kSW1hZ2U9ZnVuY3Rpb24oZCl7dmFyIHAscSxrLGMsbj1bXSx0PTAsdj0wLGwsZSxJPWZ1bmN0aW9uKCl7cCYmKCciJz09PUouc3Vic3RyKDAsMSkmJihKPUouc3Vic3RyKDEsSi5sZW5ndGgtMikpLEomJmUucHVzaChKKSwiLSI9PT1wLnN1YnN0cigwLDEpJiYwPChrPXAuaW5kZXhPZigiLSIsMSkrMSkmJihxPXAuc3Vic3RyKDAsaykscD1wLnN1YnN0cihrKSksbi5wdXNoKHtwcmVmaXg6cSxtZXRob2Q6cC50b0xvd2VyQ2FzZSgpLAp2YWx1ZTpjLGFyZ3M6ZX0pKTtlPVtdO3A9cT1KPWM9IiJ9O0koKTtmb3IodmFyIHo9MCxFPWQubGVuZ3RoO3o8RTt6Kyspe3ZhciBLPWRbel07aWYoISgwPT09dCYmLTE8IiBcclxuXHQiLmluZGV4T2YoSykpKXtzd2l0Y2goSyl7Y2FzZSAnIic6bD9sPT09SyYmKGw9bnVsbCk6bD1LO2JyZWFrO2Nhc2UgIigiOmlmKCFsKWlmKDA9PT10KXt0PTE7Yys9Sztjb250aW51ZX1lbHNlIHYrKzticmVhaztjYXNlICIpIjppZighbCYmMT09PXQpaWYoMD09PXYpe3Q9MDtjKz1LO0koKTtjb250aW51ZX1lbHNlIHYtLTticmVhaztjYXNlICIsIjppZighbClpZigwPT09dCl7SSgpO2NvbnRpbnVlfWVsc2UgaWYoMT09PXQmJjA9PT12JiYhcC5tYXRjaCgvXnVybCQvaSkpe2UucHVzaChKKTt2YXIgSj0iIjtjKz1LO2NvbnRpbnVlfX1jKz1LOzA9PT10P3ArPUs6Sis9S319SSgpO3JldHVybiBufTt4LlV0aWwuQm91bmRzPWZ1bmN0aW9uKGQpe3ZhciBwPXt9O2lmKGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgcT0KZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtwLnRvcD1xLnRvcDtwLmJvdHRvbT1xLmJvdHRvbXx8cS50b3ArcS5oZWlnaHQ7cC5sZWZ0PXEubGVmdDtwLndpZHRoPWQub2Zmc2V0V2lkdGg7cC5oZWlnaHQ9ZC5vZmZzZXRIZWlnaHR9cmV0dXJuIHB9O3guVXRpbC5PZmZzZXRCb3VuZHM9ZnVuY3Rpb24oZCl7dmFyIHA9ZC5vZmZzZXRQYXJlbnQ\/eC5VdGlsLk9mZnNldEJvdW5kcyhkLm9mZnNldFBhcmVudCk6e3RvcDowLGxlZnQ6MH07cmV0dXJue3RvcDpkLm9mZnNldFRvcCtwLnRvcCxib3R0b206ZC5vZmZzZXRUb3ArZC5vZmZzZXRIZWlnaHQrcC50b3AsbGVmdDpkLm9mZnNldExlZnQrcC5sZWZ0LHdpZHRoOmQub2Zmc2V0V2lkdGgsaGVpZ2h0OmQub2Zmc2V0SGVpZ2h0fX07eC5VdGlsLmdldENTUz1mdW5jdGlvbihkLHAscSl7dm9pZCAwIT09ZCYmKHJhPVIuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpKTt2YXIgaz1yYVtwXTtpZigvXmJhY2tncm91bmQoU2l6ZXxQb3NpdGlvbikkLy50ZXN0KHApKXthOntrPQooa3x8IiIpLnNwbGl0KCIsIik7az1rW3F8fDBdfHxrWzBdfHwiYXV0byI7az14LlV0aWwudHJpbVRleHQoaykuc3BsaXQoIiAiKTtpZigiYmFja2dyb3VuZFNpemUiIT09cHx8IWtbMF18fCFrWzBdLm1hdGNoKC9eKGNvdmVyfGNvbnRhaW58YXV0bykkLykpe2tbMF09LTE9PT1rWzBdLmluZGV4T2YoIiUiKT9xYShkLHArIlgiLGtbMF0pOmtbMF07aWYoa1sxXT09PVEpaWYoImJhY2tncm91bmRTaXplIj09PXApe2tbMV09ImF1dG8iO2Q9azticmVhayBhfWVsc2Uga1sxXT1rWzBdO2tbMV09LTE9PT1rWzFdLmluZGV4T2YoIiUiKT9xYShkLHArIlkiLGtbMV0pOmtbMV19ZD1rfXJldHVybiBkfXJldHVybi9ib3JkZXIoVG9wfEJvdHRvbSkoTGVmdHxSaWdodClSYWRpdXMvLnRlc3QocCk\/KGQ9ay5zcGxpdCgiICIpLDE+PWQubGVuZ3RoJiYoZFsxXT1kWzBdKSxkLm1hcCh4YSkpOmt9O3guVXRpbC5yZXNpemVCb3VuZHM9ZnVuY3Rpb24oZCxwLHEsayxjKXtkLz1wO2MmJiJhdXRvIiE9PWM\/CnEvazxkXiJjb250YWluIj09PWM\/KHE9ayxjPWsqZCk6KGM9cSxxLz1kKTooYz1xLHE9ayk7cmV0dXJue3dpZHRoOmMsaGVpZ2h0OnF9fTt4LlV0aWwuQmFja2dyb3VuZFBvc2l0aW9uPWZ1bmN0aW9uKGQscCxxLGssYyl7ZD14LlV0aWwuZ2V0Q1NTKGQsImJhY2tncm91bmRQb3NpdGlvbiIsayk7MT09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzBdXSk7az1qYShkWzBdKT8ocC53aWR0aC0oY3x8cSkud2lkdGgpKihwYXJzZUZsb2F0KGRbMF0pLzEwMCk6cGFyc2VJbnQoZFswXSwxMCk7cD0iYXV0byI9PT1kWzFdP2svcS53aWR0aCpxLmhlaWdodDpqYShkWzFdKT8ocC5oZWlnaHQtKGN8fHEpLmhlaWdodCkqcGFyc2VGbG9hdChkWzFdKS8xMDA6cGFyc2VJbnQoZFsxXSwxMCk7ImF1dG8iPT09ZFswXSYmKGs9cC9xLmhlaWdodCpxLndpZHRoKTtyZXR1cm57bGVmdDprLHRvcDpwfX07eC5VdGlsLkJhY2tncm91bmRTaXplPWZ1bmN0aW9uKGQscCxxLGspe2Q9eC5VdGlsLmdldENTUyhkLCJiYWNrZ3JvdW5kU2l6ZSIsCmspOzE9PT1kLmxlbmd0aCYmKGQ9W2RbMF0sZFswXV0pO2lmKGphKGRbMF0pKWs9cC53aWR0aCpwYXJzZUZsb2F0KGRbMF0pLzEwMDtlbHNle2lmKC9jb250YWlufGNvdmVyLy50ZXN0KGRbMF0pKXJldHVybiB4LlV0aWwucmVzaXplQm91bmRzKHEud2lkdGgscS5oZWlnaHQscC53aWR0aCxwLmhlaWdodCxkWzBdKTtrPXBhcnNlSW50KGRbMF0sMTApfXA9ImF1dG8iPT09ZFswXSYmImF1dG8iPT09ZFsxXT9xLmhlaWdodDoiYXV0byI9PT1kWzFdP2svcS53aWR0aCpxLmhlaWdodDpqYShkWzFdKT9wLmhlaWdodCpwYXJzZUZsb2F0KGRbMV0pLzEwMDpwYXJzZUludChkWzFdLDEwKTsiYXV0byI9PT1kWzBdJiYoaz1wL3EuaGVpZ2h0KnEud2lkdGgpO3JldHVybnt3aWR0aDprLGhlaWdodDpwfX07eC5VdGlsLkJhY2tncm91bmRSZXBlYXQ9ZnVuY3Rpb24oZCxwKXtkPXguVXRpbC5nZXRDU1MoZCwiYmFja2dyb3VuZFJlcGVhdCIpLnNwbGl0KCIsIikubWFwKHguVXRpbC50cmltVGV4dCk7cmV0dXJuIGRbcF18fApkWzBdfTt4LlV0aWwuRXh0ZW5kPWZ1bmN0aW9uKGQscCl7Zm9yKHZhciBxIGluIGQpZC5oYXNPd25Qcm9wZXJ0eShxKSYmKHBbcV09ZFtxXSk7cmV0dXJuIHB9O3guVXRpbC5DaGlsZHJlbj1mdW5jdGlvbihkKXt0cnl7aWYoZC5ub2RlTmFtZSYmIklGUkFNRSI9PT1kLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkpdmFyIHA9ZC5jb250ZW50RG9jdW1lbnR8fGQuY29udGVudFdpbmRvdy5kb2N1bWVudDtlbHNle3ZhciBxPWQuY2hpbGROb2RlcztkPVtdO2lmKG51bGwhPT1xKXt2YXIgaz1kLmxlbmd0aCxjPTA7aWYoIm51bWJlciI9PT10eXBlb2YgcS5sZW5ndGgpZm9yKHZhciBuPXEubGVuZ3RoO2M8bjtjKyspZFtrKytdPXFbY107ZWxzZSBmb3IoO3FbY10hPT1ROylkW2srK109cVtjKytdO2QubGVuZ3RoPWt9cD1kfWQ9cH1jYXRjaCh0KXt4LlV0aWwubG9nKCJodG1sMmNhbnZhcy5VdGlsLkNoaWxkcmVuIGZhaWxlZCB3aXRoIGV4Y2VwdGlvbjogIit0Lm1lc3NhZ2UpLGQ9W119cmV0dXJuIGR9Owp4LlV0aWwuaXNUcmFuc3BhcmVudD1mdW5jdGlvbihkKXtyZXR1cm4hZHx8InRyYW5zcGFyZW50Ij09PWR8fCJyZ2JhKDAsIDAsIDAsIDApIj09PWR9O3guVXRpbC5Gb250PWZ1bmN0aW9uKCl7dmFyIGQ9e307cmV0dXJuIGZ1bmN0aW9uKHAscSxrKXtpZihkW3ArIi0iK3FdIT09USlyZXR1cm4gZFtwKyItIitxXTt2YXIgYz1rLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ay5jcmVhdGVFbGVtZW50KCJpbWciKSx0PWsuY3JlYXRlRWxlbWVudCgic3BhbiIpO2Muc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtjLnN0eWxlLmZvbnRGYW1pbHk9cDtjLnN0eWxlLmZvbnRTaXplPXE7Yy5zdHlsZS5tYXJnaW49MDtjLnN0eWxlLnBhZGRpbmc9MDtrLmJvZHkuYXBwZW5kQ2hpbGQoYyk7bi5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFCQVAvLy93QUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iO24ud2lkdGg9MTtuLmhlaWdodD0xO24uc3R5bGUubWFyZ2luPTA7bi5zdHlsZS5wYWRkaW5nPQowO24uc3R5bGUudmVydGljYWxBbGlnbj0iYmFzZWxpbmUiO3Quc3R5bGUuZm9udEZhbWlseT1wO3Quc3R5bGUuZm9udFNpemU9cTt0LnN0eWxlLm1hcmdpbj0wO3Quc3R5bGUucGFkZGluZz0wO3QuYXBwZW5kQ2hpbGQoay5jcmVhdGVUZXh0Tm9kZSgiSGlkZGVuIFRleHQiKSk7Yy5hcHBlbmRDaGlsZCh0KTtjLmFwcGVuZENoaWxkKG4pO3ZhciB2PW4ub2Zmc2V0VG9wLXQub2Zmc2V0VG9wKzE7Yy5yZW1vdmVDaGlsZCh0KTtjLmFwcGVuZENoaWxkKGsuY3JlYXRlVGV4dE5vZGUoIkhpZGRlbiBUZXh0IikpO2Muc3R5bGUubGluZUhlaWdodD0ibm9ybWFsIjtuLnN0eWxlLnZlcnRpY2FsQWxpZ249InN1cGVyIjtuPXtiYXNlbGluZTp2LGxpbmVXaWR0aDoxLG1pZGRsZTpuLm9mZnNldFRvcC1jLm9mZnNldFRvcCsxfTtkW3ArIi0iK3FdPW47ay5ib2R5LnJlbW92ZUNoaWxkKGMpO3JldHVybiBufX0oKTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGMpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7Yy5hZGRDb2xvclN0b3Aobi5zdG9wLApuLmNvbG9yKX1jYXRjaCh0KXtwLmxvZyhbImZhaWxlZCB0byBhZGQgY29sb3Igc3RvcDogIix0LCI7IHRyaWVkIHRvIGFkZDogIixuXSl9fX12YXIgcD14LlV0aWwscT17fTt4LkdlbmVyYXRlPXE7dmFyIGs9Wy9eKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KVwoKFthLXpcc10rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC1vLWxpbmVhci1ncmFkaWVudClcKChbYS16XHNdKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtd2Via2l0LWdyYWRpZW50KVwoKGxpbmVhcnxyYWRpYWwpLFxzKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPyksXHMoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKShbXHdcZFwuXHMsJVwoXClcLV0rKVwpJC8sL14oLW1vei1saW5lYXItZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSkoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtd2Via2l0LXJhZGlhbC1ncmFkaWVudClcKCgoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKSxccyhcdyspXHMoW2EtelwtXSspKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sCi9eKC1tb3otcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3Kylccz8oW2EtelwtXSopKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sL14oLW8tcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3KylccyhbYS16XC1dKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkL107cS5wYXJzZUdyYWRpZW50PWZ1bmN0aW9uKGMsbil7dmFyIHQsdj1rLmxlbmd0aCxsO2Zvcih0PTA7dDx2JiYhKGw9Yy5tYXRjaChrW3RdKSk7dCs9MSk7aWYobClzd2l0Y2gobFsxXSl7Y2FzZSAiLXdlYmtpdC1saW5lYXItZ3JhZGllbnQiOmNhc2UgIi1vLWxpbmVhci1ncmFkaWVudCI6dmFyIGU9e3R5cGU6ImxpbmVhciIseDA6bnVsbCx5MDpudWxsLHgxOm51bGwseTE6bnVsbCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goL1x3Ky9nKSlmb3Iodj1jLmxlbmd0aCx0PTA7dDx2O3QrPTEpc3dpdGNoKGNbdF0pe2Nhc2UgInRvcCI6ZS55MD0KMDtlLnkxPW4uaGVpZ2h0O2JyZWFrO2Nhc2UgInJpZ2h0IjplLngwPW4ud2lkdGg7ZS54MT0wO2JyZWFrO2Nhc2UgImJvdHRvbSI6ZS55MD1uLmhlaWdodDtlLnkxPTA7YnJlYWs7Y2FzZSAibGVmdCI6ZS54MD0wLGUueDE9bi53aWR0aH1udWxsPT09ZS54MCYmbnVsbD09PWUueDEmJihlLngwPWUueDE9bi53aWR0aC8yKTtudWxsPT09ZS55MCYmbnVsbD09PWUueTEmJihlLnkwPWUueTE9bi5oZWlnaHQvMik7aWYoYz1sWzNdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkoPzpcc1xkezEsM30oPzolfHB4KSk\/KSsvZykpe3Y9Yy5sZW5ndGg7dmFyIEk9MS9NYXRoLm1heCh2LTEsMSk7Zm9yKHQ9MDt0PHY7dCs9MSl7dmFyIHo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJXxweCk\/Lyk7elsyXT8obD1wYXJzZUZsb2F0KHpbMl0pLApsPSIlIj09PXpbM10\/bC8xMDA6bC9uLndpZHRoKTpsPXQqSTtlLmNvbG9yU3RvcHMucHVzaCh7Y29sb3I6elsxXSxzdG9wOmx9KX19YnJlYWs7Y2FzZSAiLXdlYmtpdC1ncmFkaWVudCI6ZT17dHlwZToicmFkaWFsIj09PWxbMl0\/ImNpcmNsZSI6bFsyXSx4MDowLHkwOjAseDE6MCx5MTowLGNvbG9yU3RvcHM6W119O2lmKGM9bFszXS5tYXRjaCgvKFxkezEsM30pJT9ccyhcZHsxLDN9KSU\/LFxzKFxkezEsM30pJT9ccyhcZHsxLDN9KSU\/LykpZS54MD1jWzFdKm4ud2lkdGgvMTAwLGUueTA9Y1syXSpuLmhlaWdodC8xMDAsZS54MT1jWzNdKm4ud2lkdGgvMTAwLGUueTE9Y1s0XSpuLmhlaWdodC8xMDA7aWYoYz1sWzRdLm1hdGNoKC8oKD86ZnJvbXx0b3xjb2xvci1zdG9wKVwoKD86WzAtOVwuXSssXHMpPyg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpXCkpKy9nKSlmb3Iodj1jLmxlbmd0aCx0PTA7dDx2O3QrPTEpej1jW3RdLm1hdGNoKC8oZnJvbXx0b3xjb2xvci1zdG9wKVwoKFswLTlcLl0rKT8oPzosXHMpPygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlcKS8pLApsPXBhcnNlRmxvYXQoelsyXSksImZyb20iPT09elsxXSYmKGw9MCksInRvIj09PXpbMV0mJihsPTEpLGUuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzNdLHN0b3A6bH0pO2JyZWFrO2Nhc2UgIi1tb3otbGluZWFyLWdyYWRpZW50IjplPXt0eXBlOiJsaW5lYXIiLHgwOjAseTA6MCx4MTowLHkxOjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzJdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLngwPWNbMV0qbi53aWR0aC8xMDAsZS55MD1jWzJdKm4uaGVpZ2h0LzEwMCxlLngxPW4ud2lkdGgtZS54MCxlLnkxPW4uaGVpZ2h0LWUueTA7aWYoYz1sWzNdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkoPzpcc1xkezEsM30lKT8pKy9nKSlmb3Iodj1jLmxlbmd0aCxJPTEvTWF0aC5tYXgodi0xLDEpLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlccyooXGR7MSwzfSk\/KCUpPy8pLAp6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSkselszXSYmKGwvPTEwMCkpOmw9dCpJLGUuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzFdLHN0b3A6bH0pO2JyZWFrO2Nhc2UgIi13ZWJraXQtcmFkaWFsLWdyYWRpZW50IjpjYXNlICItbW96LXJhZGlhbC1ncmFkaWVudCI6Y2FzZSAiLW8tcmFkaWFsLWdyYWRpZW50IjplPXt0eXBlOiJjaXJjbGUiLHgwOjAseTA6MCx4MTpuLndpZHRoLHkxOm4uaGVpZ2h0LGN4OjAsY3k6MCxyeDowLHJ5OjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzJdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLmN4PWNbMV0qbi53aWR0aC8xMDAsZS5jeT1jWzJdKm4uaGVpZ2h0LzEwMDtjPWxbM10ubWF0Y2goL1x3Ky8pO3o9bFs0XS5tYXRjaCgvW2EtelwtXSovKTtpZihjJiZ6KXN3aXRjaCh6WzBdKXtjYXNlICJmYXJ0aGVzdC1jb3JuZXIiOmNhc2UgImNvdmVyIjpjYXNlICIiOnQ9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS5jeSwKMikpO2M9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt2PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt6PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7ZS5yeD1lLnJ5PU1hdGgubWF4KHQsYyx2LHopO2JyZWFrO2Nhc2UgImNsb3Nlc3QtY29ybmVyIjp0PU1hdGguc3FydChNYXRoLnBvdyhlLmN4LDIpK01hdGgucG93KGUuY3ksMikpO2M9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt2PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt6PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7ZS5yeD1lLnJ5PU1hdGgubWluKHQsYyx2LHopO2JyZWFrO2Nhc2UgImZhcnRoZXN0LXNpZGUiOiJjaXJjbGUiPT09Y1swXT9lLnJ4PQplLnJ5PU1hdGgubWF4KGUuY3gsZS5jeSxlLngxLWUuY3gsZS55MS1lLmN5KTooZS50eXBlPWNbMF0sZS5yeD1NYXRoLm1heChlLmN4LGUueDEtZS5jeCksZS5yeT1NYXRoLm1heChlLmN5LGUueTEtZS5jeSkpO2JyZWFrO2Nhc2UgImNsb3Nlc3Qtc2lkZSI6Y2FzZSAiY29udGFpbiI6ImNpcmNsZSI9PT1jWzBdP2Uucng9ZS5yeT1NYXRoLm1pbihlLmN4LGUuY3ksZS54MS1lLmN4LGUueTEtZS5jeSk6KGUudHlwZT1jWzBdLGUucng9TWF0aC5taW4oZS5jeCxlLngxLWUuY3gpLGUucnk9TWF0aC5taW4oZS5jeSxlLnkxLWUuY3kpKX1pZihjPWxbNV0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSg\/OiV8cHgpKT8pKy9nKSlmb3Iodj1jLmxlbmd0aCxJPTEvTWF0aC5tYXgodi0xLDEpLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlccyooXGR7MSwzfSk\/KCV8cHgpPy8pLAp6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSksbD0iJSI9PT16WzNdP2wvMTAwOmwvbi53aWR0aCk6bD10KkksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbMV0sc3RvcDpsfSl9cmV0dXJuIGV9O3EuR3JhZGllbnQ9ZnVuY3Rpb24oYyxuKXtpZigwIT09bi53aWR0aCYmMCE9PW4uaGVpZ2h0KXt2YXIgdD1SLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHY9dC5nZXRDb250ZXh0KCIyZCIpO3Qud2lkdGg9bi53aWR0aDt0LmhlaWdodD1uLmhlaWdodDtpZihjPXguR2VuZXJhdGUucGFyc2VHcmFkaWVudChjLG4pKXN3aXRjaChjLnR5cGUpe2Nhc2UgImxpbmVhciI6dmFyIGw9di5jcmVhdGVMaW5lYXJHcmFkaWVudChjLngwLGMueTAsYy54MSxjLnkxKTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTt2LmZpbGxTdHlsZT1sO3YuZmlsbFJlY3QoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2JyZWFrO2Nhc2UgImNpcmNsZSI6bD12LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGMuY3gsYy5jeSwwLGMuY3gsCmMuY3ksYy5yeCk7Yy5jb2xvclN0b3BzLmZvckVhY2goZChsKSk7di5maWxsU3R5bGU9bDt2LmZpbGxSZWN0KDAsMCxuLndpZHRoLG4uaGVpZ2h0KTticmVhaztjYXNlICJlbGxpcHNlIjpuPVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dmFyIGU9bi5nZXRDb250ZXh0KCIyZCIpO2w9TWF0aC5tYXgoYy5yeCxjLnJ5KTt2YXIgST0yKmw7bi53aWR0aD1uLmhlaWdodD1JO2w9ZS5jcmVhdGVSYWRpYWxHcmFkaWVudChjLnJ4LGMucnksMCxjLnJ4LGMucnksbCk7Yy5jb2xvclN0b3BzLmZvckVhY2goZChsKSk7ZS5maWxsU3R5bGU9bDtlLmZpbGxSZWN0KDAsMCxJLEkpO3YuZmlsbFN0eWxlPWMuY29sb3JTdG9wc1tjLmNvbG9yU3RvcHMubGVuZ3RoLTFdLmNvbG9yO3YuZmlsbFJlY3QoMCwwLHQud2lkdGgsdC5oZWlnaHQpO3YuZHJhd0ltYWdlKG4sYy5jeC1jLnJ4LGMuY3ktYy5yeSwyKmMucngsMipjLnJ5KX1yZXR1cm4gdH19O3EuTGlzdEFscGhhPWZ1bmN0aW9uKGMpe3ZhciBuPSIiOwpkbyBuPVN0cmluZy5mcm9tQ2hhckNvZGUoYyUyNis2NCkrbixjLz0yNjt3aGlsZSgyNjwyNipjKTtyZXR1cm4gbn07cS5MaXN0Um9tYW49ZnVuY3Rpb24oYyl7dmFyIG49Ik0gQ00gRCBDRCBDIFhDIEwgWEwgWCBJWCBWIElWIEkiLnNwbGl0KCIgIiksdD1bMUUzLDkwMCw1MDAsNDAwLDEwMCw5MCw1MCw0MCwxMCw5LDUsNCwxXSx2PSIiLGwsZT1uLmxlbmd0aDtpZigwPj1jfHw0RTM8PWMpcmV0dXJuIGM7Zm9yKGw9MDtsPGU7bCs9MSlmb3IoO2M+PXRbbF07KWMtPXRbbF0sdis9bltsXTtyZXR1cm4gdn19KSgpO3guUGFyc2U9ZnVuY3Rpb24oZCxwLHEpe2Z1bmN0aW9uIGsoYSl7ZnVuY3Rpb24gYihoKXt2YXIgcj1hYShoLCI6YmVmb3JlIiksdz1hYShoLCI6YWZ0ZXIiKTtyJiZmLnB1c2goe3R5cGU6ImJlZm9yZSIscHNldWRvOnIsZWw6aH0pO3cmJmYucHVzaCh7dHlwZToiYWZ0ZXIiLHBzZXVkbzp3LGVsOmh9KX12YXIgZj1bXSxnPVtdOyhmdW5jdGlvbigpe2Zvcih2YXIgaD0vOmJlZm9yZXw6YWZ0ZXIvLApyPVIuc3R5bGVTaGVldHMsdz0wLG09ci5sZW5ndGg7dzxtO3crKyl0cnl7Zm9yKHZhciBEPXJbd10uY3NzUnVsZXMsdT0wLEg9RC5sZW5ndGg7dTxIO3UrKyloLnRlc3QoRFt1XS5zZWxlY3RvclRleHQpJiZnLnB1c2goRFt1XS5zZWxlY3RvclRleHQpfWNhdGNoKEwpe313PTA7Zm9yKG09Zy5sZW5ndGg7dzxtO3crKylnW3ddPWdbd10ubWF0Y2goLyheW146XSopLylbMV19KSgpOyhmdW5jdGlvbihoKXtoPVIucXVlcnlTZWxlY3RvckFsbChnLmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gbT8hMDohMX0pLmpvaW4oIiwiKSk7Zm9yKHZhciByPTAsdz1oLmxlbmd0aDtyPHc7cisrKWIoaFtyXSl9KShhKTsoZnVuY3Rpb24oKXtmLmZvckVhY2goZnVuY3Rpb24oaCl7aD1oLmVsO2guY2xhc3NMaXN0P2guY2xhc3NMaXN0LmFkZCgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIpOmguY2xhc3NOYW1lKz0iIF9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQifSk7CmYuZm9yRWFjaChmdW5jdGlvbihoKXsiYmVmb3JlIj09PWgudHlwZT9oLmVsLmluc2VydEJlZm9yZShoLnBzZXVkbyxoLmVsLmZpcnN0Q2hpbGQpOmguZWwuYXBwZW5kQ2hpbGQoaC5wc2V1ZG8pfSl9KSgpfWZ1bmN0aW9uIGMoYSxiKXthPXBhcnNlSW50KEMoYSxiKSwxMCk7cmV0dXJuIGlzTmFOKGEpPzA6YX1mdW5jdGlvbiBuKGEsYixmLGcsaCxyKXsidHJhbnNwYXJlbnQiIT09ciYmKGEuc2V0VmFyaWFibGUoImZpbGxTdHlsZSIsciksYS5maWxsUmVjdChiLGYsZyxoKSl9ZnVuY3Rpb24gdChhLGIsZil7aWYoMDxhLmxlbmd0aClyZXR1cm4gYitmLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gdihhLGIpe3N3aXRjaChiKXtjYXNlICJsb3dlcmNhc2UiOnJldHVybiBhLnRvTG93ZXJDYXNlKCk7Y2FzZSAiY2FwaXRhbGl6ZSI6cmV0dXJuIGEucmVwbGFjZSgvKF58XHN8OnwtfFwofFwpKShbYS16XSkvZyx0KTtjYXNlICJ1cHBlcmNhc2UiOnJldHVybiBhLnRvVXBwZXJDYXNlKCk7ZGVmYXVsdDpyZXR1cm4gYX19CmZ1bmN0aW9uIGwoYSxiLGYsZyl7dmFyIGg9QyhiLCJmb250V2VpZ2h0Iikscj1DKGIsImZvbnRGYW1pbHkiKSx3PUMoYiwiZm9udFNpemUiKSxtPU0ucGFyc2VUZXh0U2hhZG93cyhDKGIsInRleHRTaGFkb3ciKSk7c3dpdGNoKHBhcnNlSW50KGgsMTApKXtjYXNlIDQwMTpoPSJib2xkIjticmVhaztjYXNlIDQwMDpoPSJub3JtYWwifWEuc2V0VmFyaWFibGUoImZpbGxTdHlsZSIsZyk7YS5zZXRWYXJpYWJsZSgiZm9udCIsW0MoYiwiZm9udFN0eWxlIiksQyhiLCJmb250VmFyaWFudCIpLGgsdyxyXS5qb2luKCIgIikpO2Euc2V0VmFyaWFibGUoInRleHRBbGlnbiIsImxlZnQiKTttLmxlbmd0aCYmKGEuc2V0VmFyaWFibGUoInNoYWRvd0NvbG9yIixtWzBdLmNvbG9yKSxhLnNldFZhcmlhYmxlKCJzaGFkb3dPZmZzZXRYIixtWzBdLm9mZnNldFgpLGEuc2V0VmFyaWFibGUoInNoYWRvd09mZnNldFkiLG1bMF0ub2Zmc2V0WSksYS5zZXRWYXJpYWJsZSgic2hhZG93Qmx1ciIsbVswXS5ibHVyKSk7CmlmKCJub25lIiE9PWYpcmV0dXJuIE0uRm9udChyLHcsUCl9ZnVuY3Rpb24gZShhLGIsZil7dmFyIGc9Zi5jdHgsaD1DKGEsImNvbG9yIikscj1DKGEsInRleHREZWNvcmF0aW9uIiksdz1DKGEsInRleHRBbGlnbiIpLG09YixEPTA7aWYoMDxNLnRyaW1UZXh0KGIubm9kZVZhbHVlKS5sZW5ndGgpe2Iubm9kZVZhbHVlPXYoYi5ub2RlVmFsdWUsQyhhLCJ0ZXh0VHJhbnNmb3JtIikpO3c9dy5yZXBsYWNlKFsiLXdlYmtpdC1hdXRvIl0sWyJhdXRvIl0pO3ZhciB1PSFwLmxldHRlclJlbmRlcmluZyYmL14obGVmdHxyaWdodHxqdXN0aWZ5fGF1dG8pJC8udGVzdCh3KSYmL14obm9ybWFsfG5vbmV8MHB4KSQvLnRlc3QoQyhhLCJsZXR0ZXJTcGFjaW5nIikpP2Iubm9kZVZhbHVlLnNwbGl0KC8oXGJ8ICkvKTpiLm5vZGVWYWx1ZS5zcGxpdCgiIiksSD1sKGcsYSxyLGgpO3AuY2hpbmVzZSYmdS5mb3JFYWNoKGZ1bmN0aW9uKEwsRil7Ly4qW1x1NEUwMC1cdTlGQTVdLiokLy50ZXN0KEwpJiYoTD0KTC5zcGxpdCgiIiksTC51bnNoaWZ0KEYsMSksdS5zcGxpY2UuYXBwbHkodSxMKSl9KTt1LmZvckVhY2goZnVuY3Rpb24oTCxGKXt2YXIgVj1GPHUubGVuZ3RoLTE7Rj1mLnRyYW5zZm9ybS5tYXRyaXg7aWYoemEucmFuZ2VCb3VuZHMmJiFGKXtpZigibm9uZSIhPT1yfHwwIT09TS50cmltVGV4dChMKS5sZW5ndGgpe0Y9bTtWPUQ7dmFyIFM9UC5jcmVhdGVSYW5nZSgpO1Muc2V0U3RhcnQoRixWKTtTLnNldEVuZChGLFYrTC5sZW5ndGgpO1M9Uy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1EKz1MLmxlbmd0aH1lbHNlIGlmKG0mJiJzdHJpbmciPT09dHlwZW9mIG0ubm9kZVZhbHVlKXtWPVY\/bS5zcGxpdFRleHQoTC5sZW5ndGgpOm51bGw7dmFyIFo9bTtTPVoucGFyZW50Tm9kZTt2YXIgY2E9UC5jcmVhdGVFbGVtZW50KCJ3cmFwcGVyIiksZWE9Wi5jbG9uZU5vZGUoITApO2NhLmFwcGVuZENoaWxkKFouY2xvbmVOb2RlKCEwKSk7Uy5yZXBsYWNlQ2hpbGQoY2EsWik7Rj1GP00uT2Zmc2V0Qm91bmRzKGNhKToKTS5Cb3VuZHMoY2EpO1MucmVwbGFjZUNoaWxkKGVhLGNhKTtTPUY7bT1WfWlmKEY9Uylzd2l0Y2goVj1GLmxlZnQsUz1GLmJvdHRvbSxudWxsIT09TCYmMDxNLnRyaW1UZXh0KEwpLmxlbmd0aCYmZy5maWxsVGV4dChMLFYsUykscil7Y2FzZSAidW5kZXJsaW5lIjpuKGcsRi5sZWZ0LE1hdGgucm91bmQoRi50b3ArSC5iYXNlbGluZStILmxpbmVXaWR0aCksRi53aWR0aCwxLGgpO2JyZWFrO2Nhc2UgIm92ZXJsaW5lIjpuKGcsRi5sZWZ0LE1hdGgucm91bmQoRi50b3ApLEYud2lkdGgsMSxoKTticmVhaztjYXNlICJsaW5lLXRocm91Z2giOm4oZyxGLmxlZnQsTWF0aC5jZWlsKEYudG9wK0gubWlkZGxlK0gubGluZVdpZHRoKSxGLndpZHRoLDEsaCl9fSl9fWZ1bmN0aW9uIEkoYSxiLGYpe2I9Yi5jdHg7dmFyIGc9QyhhLCJsaXN0U3R5bGVUeXBlIik7aWYoL14oZGVjaW1hbHxkZWNpbWFsLWxlYWRpbmctemVyb3x1cHBlci1hbHBoYXx1cHBlci1sYXRpbnx1cHBlci1yb21hbnxsb3dlci1hbHBoYXxsb3dlci1ncmVla3xsb3dlci1sYXRpbnxsb3dlci1yb21hbikkL2kudGVzdChnKSl7dmFyIGg9Ci0xLHI9MSx3PWEucGFyZW50Tm9kZS5jaGlsZE5vZGVzO2lmKGEucGFyZW50Tm9kZSl7Zm9yKDt3WysraF0hPT1hOykxPT09d1toXS5ub2RlVHlwZSYmcisrO2g9cn1lbHNlIGg9LTE7c3dpdGNoKGcpe2Nhc2UgImRlY2ltYWwiOnZhciBtPWg7YnJlYWs7Y2FzZSAiZGVjaW1hbC1sZWFkaW5nLXplcm8iOm09MT09PWgudG9TdHJpbmcoKS5sZW5ndGg\/IjAiK2gudG9TdHJpbmcoKTpoLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSAidXBwZXItcm9tYW4iOm09eC5HZW5lcmF0ZS5MaXN0Um9tYW4oaCk7YnJlYWs7Y2FzZSAibG93ZXItcm9tYW4iOm09eC5HZW5lcmF0ZS5MaXN0Um9tYW4oaCkudG9Mb3dlckNhc2UoKTticmVhaztjYXNlICJsb3dlci1hbHBoYSI6bT14LkdlbmVyYXRlLkxpc3RBbHBoYShoKS50b0xvd2VyQ2FzZSgpO2JyZWFrO2Nhc2UgInVwcGVyLWFscGhhIjptPXguR2VuZXJhdGUuTGlzdEFscGhhKGgpfW0rPSIuICI7aD1QLmNyZWF0ZUVsZW1lbnQoImJvdW5kZWxlbWVudCIpOwpoLnN0eWxlLmRpc3BsYXk9ImlubGluZSI7cj1hLnN0eWxlLmxpc3RTdHlsZVR5cGU7YS5zdHlsZS5saXN0U3R5bGVUeXBlPSJub25lIjtoLmFwcGVuZENoaWxkKFAuY3JlYXRlVGV4dE5vZGUobSkpO2EuaW5zZXJ0QmVmb3JlKGgsYS5maXJzdENoaWxkKTtnPU0uQm91bmRzKGgpO2EucmVtb3ZlQ2hpbGQoaCk7YS5zdHlsZS5saXN0U3R5bGVUeXBlPXI7bChiLGEsIm5vbmUiLEMoYSwiY29sb3IiKSk7Imluc2lkZSI9PT1DKGEsImxpc3RTdHlsZVBvc2l0aW9uIikmJihiLnNldFZhcmlhYmxlKCJ0ZXh0QWxpZ24iLCJsZWZ0IiksYT1mLmxlZnQsZj1nLmJvdHRvbSxudWxsIT09bSYmMDxNLnRyaW1UZXh0KG0pLmxlbmd0aCYmYi5maWxsVGV4dChtLGEsZikpfX1mdW5jdGlvbiB6KGEpe3JldHVybihhPWRbYV0pJiYhMD09PWEuc3VjY2VlZGVkP2EuaW1nOiExfWZ1bmN0aW9uIEUoYSxiKXt2YXIgZj1NYXRoLm1heChhLmxlZnQsYi5sZWZ0KSxnPU1hdGgubWF4KGEudG9wLGIudG9wKTtyZXR1cm57bGVmdDpmLAp0b3A6Zyx3aWR0aDpNYXRoLm1pbihhLmxlZnQrYS53aWR0aCxiLmxlZnQrYi53aWR0aCktZixoZWlnaHQ6TWF0aC5taW4oYS50b3ArYS5oZWlnaHQsYi50b3ArYi5oZWlnaHQpLWd9fWZ1bmN0aW9uIEsoYSxiLGYsZyxoKXt2YXIgcj1jKGIsInBhZGRpbmdMZWZ0Iiksdz1jKGIsInBhZGRpbmdUb3AiKSxtPWMoYiwicGFkZGluZ1JpZ2h0Iik7Yj1jKGIsInBhZGRpbmdCb3R0b20iKTtVKGEsZiwwLDAsZi53aWR0aCxmLmhlaWdodCxnLmxlZnQrcitoWzNdLndpZHRoLGcudG9wK3craFswXS53aWR0aCxnLndpZHRoLShoWzFdLndpZHRoK2hbM10ud2lkdGgrcittKSxnLmhlaWdodC0oaFswXS53aWR0aCtoWzJdLndpZHRoK3crYikpfWZ1bmN0aW9uIEooYSl7cmV0dXJuWyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXS5tYXAoZnVuY3Rpb24oYil7cmV0dXJue3dpZHRoOmMoYSwiYm9yZGVyIitiKyJXaWR0aCIpLGNvbG9yOkMoYSwiYm9yZGVyIitiKyJDb2xvciIpfX0pfWZ1bmN0aW9uIEcoYSl7cmV0dXJuWyJUb3BMZWZ0IiwKIlRvcFJpZ2h0IiwiQm90dG9tUmlnaHQiLCJCb3R0b21MZWZ0Il0ubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBDKGEsImJvcmRlciIrYisiUmFkaXVzIil9KX1mdW5jdGlvbiBPKGEsYixmLGcpe3ZhciBoPShNYXRoLnNxcnQoMiktMSkvMyo0LHI9ZipoO2gqPWc7Zj1hK2Y7Zz1iK2c7cmV0dXJue3RvcExlZnQ6VCh7eDphLHk6Z30se3g6YSx5OmctaH0se3g6Zi1yLHk6Yn0se3g6Zix5OmJ9KSx0b3BSaWdodDpUKHt4OmEseTpifSx7eDphK3IseTpifSx7eDpmLHk6Zy1ofSx7eDpmLHk6Z30pLGJvdHRvbVJpZ2h0OlQoe3g6Zix5OmJ9LHt4OmYseTpiK2h9LHt4OmErcix5Omd9LHt4OmEseTpnfSksYm90dG9tTGVmdDpUKHt4OmYseTpnfSx7eDpmLXIseTpnfSx7eDphLHk6YitofSx7eDphLHk6Yn0pfX1mdW5jdGlvbiBUKGEsYixmLGcpe3ZhciBoPWZ1bmN0aW9uKHIsdyxtKXtyZXR1cm57eDpyLngrKHcueC1yLngpKm0seTpyLnkrKHcueS1yLnkpKm19fTtyZXR1cm57c3RhcnQ6YSxzdGFydENvbnRyb2w6YiwKZW5kQ29udHJvbDpmLGVuZDpnLHN1YmRpdmlkZTpmdW5jdGlvbihyKXt2YXIgdz1oKGEsYixyKSxtPWgoYixmLHIpLEQ9aChmLGcsciksdT1oKHcsbSxyKTttPWgobSxELHIpO3I9aCh1LG0scik7cmV0dXJuW1QoYSx3LHUsciksVChyLG0sRCxnKV19LGN1cnZlVG86ZnVuY3Rpb24ocil7ci5wdXNoKFsiYmV6aWVyQ3VydmUiLGIueCxiLnksZi54LGYueSxnLngsZy55XSl9LGN1cnZlVG9SZXZlcnNlZDpmdW5jdGlvbihyKXtyLnB1c2goWyJiZXppZXJDdXJ2ZSIsZi54LGYueSxiLngsYi55LGEueCxhLnldKX19fWZ1bmN0aW9uIFcoYSxiLGYsZyxoLHIsdyl7MDxiWzBdfHwwPGJbMV0\/KGEucHVzaChbImxpbmUiLGdbMF0uc3RhcnQueCxnWzBdLnN0YXJ0LnldKSxnWzBdLmN1cnZlVG8oYSksZ1sxXS5jdXJ2ZVRvKGEpKTphLnB1c2goWyJsaW5lIixyLHddKTsoMDxmWzBdfHwwPGZbMV0pJiZhLnB1c2goWyJsaW5lIixoWzBdLnN0YXJ0LngsaFswXS5zdGFydC55XSl9ZnVuY3Rpb24gYmEoYSwKYixmLGcsaCxyLHcpe3ZhciBtPVtdOzA8YlswXXx8MDxiWzFdPyhtLnB1c2goWyJsaW5lIixnWzFdLnN0YXJ0LngsZ1sxXS5zdGFydC55XSksZ1sxXS5jdXJ2ZVRvKG0pKTptLnB1c2goWyJsaW5lIixhLmMxWzBdLGEuYzFbMV1dKTswPGZbMF18fDA8ZlsxXT8obS5wdXNoKFsibGluZSIsclswXS5zdGFydC54LHJbMF0uc3RhcnQueV0pLHJbMF0uY3VydmVUbyhtKSxtLnB1c2goWyJsaW5lIix3WzBdLmVuZC54LHdbMF0uZW5kLnldKSx3WzBdLmN1cnZlVG9SZXZlcnNlZChtKSk6KG0ucHVzaChbImxpbmUiLGEuYzJbMF0sYS5jMlsxXV0pLG0ucHVzaChbImxpbmUiLGEuYzNbMF0sYS5jM1sxXV0pKTswPGJbMF18fDA8YlsxXT8obS5wdXNoKFsibGluZSIsaFsxXS5lbmQueCxoWzFdLmVuZC55XSksaFsxXS5jdXJ2ZVRvUmV2ZXJzZWQobSkpOm0ucHVzaChbImxpbmUiLGEuYzRbMF0sYS5jNFsxXV0pO3JldHVybiBtfWZ1bmN0aW9uIHkoYSxiLGYpe3ZhciBnPWIubGVmdCxoPWIudG9wLHI9CmIud2lkdGgsdz1iLmhlaWdodCxtPUcoYSksRD1iLmxlZnQsdT1iLnRvcCxIPWIud2lkdGgsTD1iLmhlaWdodCxGPW1bMF1bMF0sVj1tWzBdWzFdLFM9bVsxXVswXSxaPW1bMV1bMV0sY2E9bVsyXVswXSxlYT1tWzJdWzFdLFk9bVszXVswXSxYPW1bM11bMV0sb2E9SC1TLHNhPUwtZWEsdGE9SC1jYSxmYT1MLVgsa2E9TyhELHUsRixWKS50b3BMZWZ0LnN1YmRpdmlkZSguNSk7Rj1PKEQrZlszXS53aWR0aCx1K2ZbMF0ud2lkdGgsTWF0aC5tYXgoMCxGLWZbM10ud2lkdGgpLE1hdGgubWF4KDAsVi1mWzBdLndpZHRoKSkudG9wTGVmdC5zdWJkaXZpZGUoLjUpO1Y9TyhEK29hLHUsUyxaKS50b3BSaWdodC5zdWJkaXZpZGUoLjUpO1M9TyhEK01hdGgubWluKG9hLEgrZlszXS53aWR0aCksdStmWzBdLndpZHRoLG9hPkgrZlszXS53aWR0aD8wOlMtZlszXS53aWR0aCxaLWZbMF0ud2lkdGgpLnRvcFJpZ2h0LnN1YmRpdmlkZSguNSk7Wj1PKEQrdGEsdStzYSxjYSxlYSkuYm90dG9tUmlnaHQuc3ViZGl2aWRlKC41KTsKSD1PKEQrTWF0aC5taW4odGEsSCtmWzNdLndpZHRoKSx1K01hdGgubWluKHNhLEwrZlswXS53aWR0aCksTWF0aC5tYXgoMCxjYS1mWzFdLndpZHRoKSxNYXRoLm1heCgwLGVhLWZbMl0ud2lkdGgpKS5ib3R0b21SaWdodC5zdWJkaXZpZGUoLjUpO0w9TyhELHUrZmEsWSxYKS5ib3R0b21MZWZ0LnN1YmRpdmlkZSguNSk7RD1PKEQrZlszXS53aWR0aCx1K2ZhLE1hdGgubWF4KDAsWS1mWzNdLndpZHRoKSxNYXRoLm1heCgwLFgtZlsyXS53aWR0aCkpLmJvdHRvbUxlZnQuc3ViZGl2aWRlKC41KTt1PVtdO3N3aXRjaChDKGEsImJhY2tncm91bmRDbGlwIikpe2Nhc2UgImNvbnRlbnQtYm94IjpjYXNlICJwYWRkaW5nLWJveCI6Vyh1LG1bMF0sbVsxXSxGLFMsYi5sZWZ0K2ZbM10ud2lkdGgsYi50b3ArZlswXS53aWR0aCk7Vyh1LG1bMV0sbVsyXSxTLEgsYi5sZWZ0K2Iud2lkdGgtZlsxXS53aWR0aCxiLnRvcCtmWzBdLndpZHRoKTtXKHUsbVsyXSxtWzNdLEgsRCxiLmxlZnQrYi53aWR0aC1mWzFdLndpZHRoLApiLnRvcCtiLmhlaWdodC1mWzJdLndpZHRoKTtXKHUsbVszXSxtWzBdLEQsRixiLmxlZnQrZlszXS53aWR0aCxiLnRvcCtiLmhlaWdodC1mWzJdLndpZHRoKTticmVhaztkZWZhdWx0OlcodSxtWzBdLG1bMV0sa2EsVixiLmxlZnQsYi50b3ApLFcodSxtWzFdLG1bMl0sVixaLGIubGVmdCtiLndpZHRoLGIudG9wKSxXKHUsbVsyXSxtWzNdLFosTCxiLmxlZnQrYi53aWR0aCxiLnRvcCtiLmhlaWdodCksVyh1LG1bM10sbVswXSxMLGthLGIubGVmdCxiLnRvcCtiLmhlaWdodCl9ZmE9e2NsaXA6dSxib3JkZXJzOltdfTtmb3IoYT0wOzQ+YTthKyspaWYoMDxmW2FdLndpZHRoKXtiPWc7dT1oO1k9cjtYPXctZlsyXS53aWR0aDtzd2l0Y2goYSl7Y2FzZSAwOlg9ZlswXS53aWR0aDt2YXIgbGE9YmEoe2MxOltiLHVdLGMyOltiK1ksdV0sYzM6W2IrWS1mWzFdLndpZHRoLHUrWF0sYzQ6W2IrZlszXS53aWR0aCx1K1hdfSxtWzBdLG1bMV0sa2EsRixWLFMpO2JyZWFrO2Nhc2UgMTpiPWcrci1mWzFdLndpZHRoOwpZPWZbMV0ud2lkdGg7bGE9YmEoe2MxOltiK1ksdV0sYzI6W2IrWSx1K1grZlsyXS53aWR0aF0sYzM6W2IsdStYXSxjNDpbYix1K2ZbMF0ud2lkdGhdfSxtWzFdLG1bMl0sVixTLFosSCk7YnJlYWs7Y2FzZSAyOnU9dSt3LWZbMl0ud2lkdGg7WD1mWzJdLndpZHRoO2xhPWJhKHtjMTpbYitZLHUrWF0sYzI6W2IsdStYXSxjMzpbYitmWzNdLndpZHRoLHVdLGM0OltiK1ktZlszXS53aWR0aCx1XX0sbVsyXSxtWzNdLFosSCxMLEQpO2JyZWFrO2Nhc2UgMzpZPWZbM10ud2lkdGgsbGE9YmEoe2MxOltiLHUrWCtmWzJdLndpZHRoXSxjMjpbYix1XSxjMzpbYitZLHUrZlswXS53aWR0aF0sYzQ6W2IrWSx1K1hdfSxtWzNdLG1bMF0sTCxELGthLEYpfWZhLmJvcmRlcnMucHVzaCh7YXJnczpsYSxjb2xvcjpmW2FdLmNvbG9yfSl9cmV0dXJuIGZhfWZ1bmN0aW9uIEEoYSxiKXt2YXIgZj1hLmRyYXdTaGFwZSgpO2IuZm9yRWFjaChmdW5jdGlvbihnLGgpe2ZbMD09PWg\/Im1vdmVUbyI6Z1swXSsiVG8iXS5hcHBseShudWxsLApnLnNsaWNlKDEpKX0pO3JldHVybiBmfWZ1bmN0aW9uIEIoYSxiLGYpe3ZhciBnPVAuY3JlYXRlRWxlbWVudCgidmFsdWV3cmFwIik7ImxpbmVIZWlnaHQgdGV4dEFsaWduIGZvbnRGYW1pbHkgY29sb3IgZm9udFNpemUgcGFkZGluZ0xlZnQgcGFkZGluZ1RvcCB3aWR0aCBoZWlnaHQgYm9yZGVyIGJvcmRlckxlZnRXaWR0aCBib3JkZXJUb3BXaWR0aCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3RyeXtnLnN0eWxlW2hdPUMoYSxoKX1jYXRjaChyKXtNLmxvZygiaHRtbDJjYW52YXM6IFBhcnNlOiBFeGNlcHRpb24gY2F1Z2h0IGluIHJlbmRlckZvcm1WYWx1ZTogIityLm1lc3NhZ2UpfX0pO2cuc3R5bGUuYm9yZGVyQ29sb3I9ImJsYWNrIjtnLnN0eWxlLmJvcmRlclN0eWxlPSJzb2xpZCI7Zy5zdHlsZS5kaXNwbGF5PSJibG9jayI7Zy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2lmKC9eKHN1Ym1pdHxyZXNldHxidXR0b258dGV4dHxwYXNzd29yZCkkLy50ZXN0KGEudHlwZSl8fAoiU0VMRUNUIj09PWEubm9kZU5hbWUpZy5zdHlsZS5saW5lSGVpZ2h0PUMoYSwiaGVpZ2h0Iik7Zy5zdHlsZS50b3A9Yi50b3ArInB4IjtnLnN0eWxlLmxlZnQ9Yi5sZWZ0KyJweCI7KGI9IlNFTEVDVCI9PT1hLm5vZGVOYW1lPyhhLm9wdGlvbnNbYS5zZWxlY3RlZEluZGV4XXx8MCkudGV4dDphLnZhbHVlKXx8KGI9YS5wbGFjZWhvbGRlcik7Yj1QLmNyZWF0ZVRleHROb2RlKGIpO2cuYXBwZW5kQ2hpbGQoYik7bWEuYXBwZW5kQ2hpbGQoZyk7ZShhLGIsZik7bWEucmVtb3ZlQ2hpbGQoZyl9ZnVuY3Rpb24gVShhKXthLmRyYXdJbWFnZS5hcHBseShhLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9ZnVuY3Rpb24gYWEoYSxiKXt2YXIgZj1OLmdldENvbXB1dGVkU3R5bGUoYSxiKTthPU4uZ2V0Q29tcHV0ZWRTdHlsZShhKTtpZihmJiZmLmNvbnRlbnQmJiJub25lIiE9PWYuY29udGVudCYmIi1tb3otYWx0LWNvbnRlbnQiIT09Zi5jb250ZW50JiYibm9uZSIhPT0KZi5kaXNwbGF5JiZhLmNvbnRlbnQhPT1mLmNvbnRlbnQpe2E9Zi5jb250ZW50KyIiO2lmKCInIj09PWFbMF18fCciJz09PWFbMF0pYT1hLnJlcGxhY2UoLyheWyciXSl8KFsnIl0kKS9nLCIiKTtiPSJ1cmwiPT09YS5zdWJzdHIoMCwzKTt2YXIgZz1SLmNyZWF0ZUVsZW1lbnQoYj8iaW1nIjoic3BhbiIpO2cuY2xhc3NOYW1lPSJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtZWxlbWVudCAiO09iamVjdC5rZXlzKGYpLmZpbHRlcihkYSkuZm9yRWFjaChmdW5jdGlvbihoKXt0cnl7Zy5zdHlsZVtoXT1mW2hdfWNhdGNoKHIpe00ubG9nKFsiVHJpZWQgdG8gYXNzaWduIHJlYWRvbmx5IHByb3BlcnR5ICIsaCwiRXJyb3I6IixyXSl9fSk7Yj9nLnNyYz1NLnBhcnNlQmFja2dyb3VuZEltYWdlKGEpWzBdLmFyZ3NbMF06Zy5pbm5lckhUTUw9YTtyZXR1cm4gZ319ZnVuY3Rpb24gZGEoYSl7cmV0dXJuIGlzTmFOKE4ucGFyc2VJbnQoYSwxMCkpfWZ1bmN0aW9uIGhhKGEsYixmLGcpe3ZhciBoPQpNYXRoLnJvdW5kKGcubGVmdCtmLmxlZnQpO2Y9TWF0aC5yb3VuZChnLnRvcCtmLnRvcCk7YS5jcmVhdGVQYXR0ZXJuKGIpO2EudHJhbnNsYXRlKGgsZik7YS5maWxsKCk7YS50cmFuc2xhdGUoLWgsLWYpfWZ1bmN0aW9uIG5hKGEsYixmLGcsaCxyLHcsbSl7dmFyIEQ9W107RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoKSxNYXRoLnJvdW5kKHIpXSk7RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoK3cpLE1hdGgucm91bmQocildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgrdyksTWF0aC5yb3VuZChtK3IpXSk7RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoKSxNYXRoLnJvdW5kKG0rcildKTtBKGEsRCk7YS5zYXZlKCk7YS5jbGlwKCk7aGEoYSxiLGYsZyk7YS5yZXN0b3JlKCl9ZnVuY3Rpb24gQWEoYSxiLGYpe2Zvcih2YXIgZz1DKGEsImJhY2tncm91bmRJbWFnZSIpLGg9TS5wYXJzZUJhY2tncm91bmRJbWFnZShnKSxyLHc9aC5sZW5ndGg7dy0tOylpZihnPWhbd10sZy5hcmdzJiYKMCE9PWcuYXJncy5sZW5ndGgpaWYocj16KCJ1cmwiPT09Zy5tZXRob2Q\/Zy5hcmdzWzBdOmcudmFsdWUpKXt2YXIgbT1hO2c9Yjt2YXIgRD1mLHU9cixIPXcsTD1NLkJhY2tncm91bmRTaXplKG0sZyx1LEgpO3I9TS5CYWNrZ3JvdW5kUG9zaXRpb24obSxnLHUsSCxMKTttPU0uQmFja2dyb3VuZFJlcGVhdChtLEgpO0g9TDtpZih1LndpZHRoIT09SC53aWR0aHx8dS5oZWlnaHQhPT1ILmhlaWdodCl7dmFyIEY9UC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtGLndpZHRoPUgud2lkdGg7Ri5oZWlnaHQ9SC5oZWlnaHQ7TD1GLmdldENvbnRleHQoIjJkIik7VShMLHUsMCwwLHUud2lkdGgsdS5oZWlnaHQsMCwwLEgud2lkdGgsSC5oZWlnaHQpO3U9Rn1zd2l0Y2gobSl7Y2FzZSAicmVwZWF0LXgiOmNhc2UgInJlcGVhdCBuby1yZXBlYXQiOm5hKEQsdSxyLGcsZy5sZWZ0LGcudG9wK3IudG9wLDk5OTk5LHUuaGVpZ2h0KTticmVhaztjYXNlICJyZXBlYXQteSI6Y2FzZSAibm8tcmVwZWF0IHJlcGVhdCI6bmEoRCwKdSxyLGcsZy5sZWZ0K3IubGVmdCxnLnRvcCx1LndpZHRoLDk5OTk5KTticmVhaztjYXNlICJuby1yZXBlYXQiOm5hKEQsdSxyLGcsZy5sZWZ0K3IubGVmdCxnLnRvcCtyLnRvcCx1LndpZHRoLHUuaGVpZ2h0KTticmVhaztkZWZhdWx0OmhhKEQsdSxyLHt0b3A6Zy50b3AsbGVmdDpnLmxlZnQsd2lkdGg6dS53aWR0aCxoZWlnaHQ6dS5oZWlnaHR9KX19ZWxzZSBNLmxvZygiaHRtbDJjYW52YXM6IEVycm9yIGxvYWRpbmcgYmFja2dyb3VuZDoiLGcpfWZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoInB4IiwiIil9ZnVuY3Rpb24gQ2EoYSxiKXtiPS8obWF0cml4KVwoKC4rKVwpLzt2YXIgZj1DKGEsInRyYW5zZm9ybSIpfHxDKGEsIi13ZWJraXQtdHJhbnNmb3JtIil8fEMoYSwiLW1vei10cmFuc2Zvcm0iKXx8QyhhLCItbXMtdHJhbnNmb3JtIil8fEMoYSwiLW8tdHJhbnNmb3JtIik7YT1DKGEsInRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iKXx8CkMoYSwiLW1vei10cmFuc2Zvcm0tb3JpZ2luIil8fEMoYSwiLW1zLXRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItby10cmFuc2Zvcm0tb3JpZ2luIil8fCIwcHggMHB4IjthPWEuc3BsaXQoIiAiKS5tYXAoQmEpLm1hcChNLmFzRmxvYXQpO2lmKGYmJiJub25lIiE9PWYmJihiPWYubWF0Y2goYikpKXN3aXRjaChiWzFdKXtjYXNlICJtYXRyaXgiOnZhciBnPWJbMl0uc3BsaXQoIiwiKS5tYXAoTS50cmltVGV4dCkubWFwKE0uYXNGbG9hdCl9cmV0dXJue29yaWdpbjphLG1hdHJpeDpnfX1mdW5jdGlvbiBEYShhLGIsZixnKXt2YXIgaD15YShiP2Yud2lkdGg6TWF0aC5tYXgoTWF0aC5tYXgoUC5ib2R5LnNjcm9sbFdpZHRoLFAuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoKSxNYXRoLm1heChQLmJvZHkub2Zmc2V0V2lkdGgsUC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgpLE1hdGgubWF4KFAuYm9keS5jbGllbnRXaWR0aCxQLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkpLApiP2YuaGVpZ2h0Ok1hdGgubWF4KE1hdGgubWF4KFAuYm9keS5zY3JvbGxIZWlnaHQsUC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KSxNYXRoLm1heChQLmJvZHkub2Zmc2V0SGVpZ2h0LFAuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCksTWF0aC5tYXgoUC5ib2R5LmNsaWVudEhlaWdodCxQLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKSkscj1oLnNldFZhcmlhYmxlKCJnbG9iYWxBbHBoYSIsQyhhLCJvcGFjaXR5IikqKGI\/Yi5vcGFjaXR5OjEpKTtnPXtjdHg6aCxvcGFjaXR5OnIsY3NzUG9zaXRpb246QyhhLCJwb3NpdGlvbiIpLGJvcmRlcnM6SihhKSx0cmFuc2Zvcm06ZyxjbGlwOmImJmIuY2xpcD9NLkV4dGVuZCh7fSxiLmNsaXApOm51bGx9O3ZhciB3PShyPSJzdGF0aWMiIT09Zy5jc3NQb3NpdGlvbik\/QyhhLCJ6SW5kZXgiKToiYXV0byIsbT1DKGEsIm9wYWNpdHkiKSxEPSJub25lIiE9PUMoYSwiY3NzRmxvYXQiKTtnLnpJbmRleD1oPXtkZXB0aDowLHppbmRleDp3LApjaGlsZHJlbjpbXX07aC5pc1Bvc2l0aW9uZWQ9cjtoLmlzRmxvYXRlZD1EO2gub3BhY2l0eT1tO2gub3duU3RhY2tpbmc9ImF1dG8iIT09d3x8MT5tO2guZGVwdGg9Yj9iLnpJbmRleC5kZXB0aCsxOjA7YiYmYi56SW5kZXguY2hpbGRyZW4ucHVzaChnKTshMD09PXAudXNlT3ZlcmZsb3cmJiEwPT09LyhoaWRkZW58c2Nyb2xsfGF1dG8pLy50ZXN0KEMoYSwib3ZlcmZsb3ciKSkmJiExPT09LyhCT0RZKS9pLnRlc3QoYS5ub2RlTmFtZSkmJihnLmNsaXA9Zy5jbGlwP0UoZy5jbGlwLGYpOmYpO3JldHVybiBnfWZ1bmN0aW9uIEVhKGEsYixmKXthPXtsZWZ0OmIubGVmdCthWzNdLndpZHRoLHRvcDpiLnRvcCthWzBdLndpZHRoLHdpZHRoOmIud2lkdGgtKGFbMV0ud2lkdGgrYVszXS53aWR0aCksaGVpZ2h0OmIuaGVpZ2h0LShhWzBdLndpZHRoK2FbMl0ud2lkdGgpfTtmJiYoYT1FKGEsZikpO3JldHVybiBhfWZ1bmN0aW9uIEZhKGEsYil7YT1iLm1hdHJpeD9NLk9mZnNldEJvdW5kcyhhKToKTS5Cb3VuZHMoYSk7Yi5vcmlnaW5bMF0rPWEubGVmdDtiLm9yaWdpblsxXSs9YS50b3A7cmV0dXJuIGF9ZnVuY3Rpb24gdWEoYSxiLGYpe3ZhciBnPUNhKGEsYiksaD1GYShhLGcpLHI7Yj1EYShhLGIsaCxnKTtnPWIuYm9yZGVyczt2YXIgdz1iLmN0eCxtPUVhKGcsaCxiLmNsaXApLEQ9eShhLGgsZyksdT12YS50ZXN0KGEubm9kZU5hbWUpPyIjZWZlZmVmIjpDKGEsImJhY2tncm91bmRDb2xvciIpO0EodyxELmNsaXApO3cuc2F2ZSgpO3cuY2xpcCgpOzA8bS5oZWlnaHQmJjA8bS53aWR0aCYmIWY\/KG4odyxoLmxlZnQsaC50b3AsaC53aWR0aCxoLmhlaWdodCx1KSxBYShhLG0sdykpOmYmJihiLmJhY2tncm91bmRDb2xvcj11KTt3LnJlc3RvcmUoKTtELmJvcmRlcnMuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgTD1ILmFyZ3M7SD1ILmNvbG9yOyJ0cmFuc3BhcmVudCIhPT1IJiYody5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixIKSxBKHcsTCksdy5maWxsKCkpfSk7c3dpdGNoKGEubm9kZU5hbWUpe2Nhc2UgIklNRyI6KHI9CnooYS5nZXRBdHRyaWJ1dGUoInNyYyIpKSk\/Syh3LGEscixoLGcpOk0ubG9nKCJodG1sMmNhbnZhczogRXJyb3IgbG9hZGluZyA8aW1nPjoiK2EuZ2V0QXR0cmlidXRlKCJzcmMiKSk7YnJlYWs7Y2FzZSAiSU5QVVQiOi9eKHRleHR8dXJsfGVtYWlsfHN1Ym1pdHxidXR0b258cmVzZXQpJC8udGVzdChhLnR5cGUpJiYwPChhLnZhbHVlfHxhLnBsYWNlaG9sZGVyfHwiIikubGVuZ3RoJiZCKGEsaCxiKTticmVhaztjYXNlICJURVhUQVJFQSI6MDwoYS52YWx1ZXx8YS5wbGFjZWhvbGRlcnx8IiIpLmxlbmd0aCYmQihhLGgsYik7YnJlYWs7Y2FzZSAiU0VMRUNUIjowPChhLm9wdGlvbnN8fGEucGxhY2Vob2xkZXJ8fCIiKS5sZW5ndGgmJkIoYSxoLGIpO2JyZWFrO2Nhc2UgIkxJIjpJKGEsYixtKTticmVhaztjYXNlICJDQU5WQVMiOksodyxhLGEsaCxnKX1yZXR1cm4gYn1mdW5jdGlvbiBHYShhKXtyZXR1cm4ibm9uZSIhPT1DKGEsImRpc3BsYXkiKSYmImhpZGRlbiIhPT1DKGEsInZpc2liaWxpdHkiKSYmCiFhLmhhc0F0dHJpYnV0ZSgiZGF0YS1odG1sMmNhbnZhcy1pZ25vcmUiKX1mdW5jdGlvbiBIYShhLGIsZil7Znx8KGY9ZnVuY3Rpb24oKXt9KTtpZihHYShhKSYmKGI9dWEoYSxiLCExKXx8YiwhdmEudGVzdChhLm5vZGVOYW1lKSkpcmV0dXJuIHdhKGEsYixmKTtmKCl9ZnVuY3Rpb24gd2EoYSxiLGYpe2Z1bmN0aW9uIGcobSl7bS5ub2RlVHlwZT09PW0uRUxFTUVOVF9OT0RFP0hhKG0sYixoKToobS5ub2RlVHlwZT09PW0uVEVYVF9OT0RFJiZlKGEsbSxiKSxoKCkpfWZ1bmN0aW9uIGgobSl7MD49LS13JiYoTS5sb2coImZpbmlzaGVkIHJlbmRlcmluZyAiK3IubGVuZ3RoKyIgY2hpbGRyZW4uIiksZigpKX12YXIgcj1NLkNoaWxkcmVuKGEpLHc9ci5sZW5ndGgrMTtoKCk7cC5hc3luYz9yLmZvckVhY2goZnVuY3Rpb24obSl7c2V0VGltZW91dChmdW5jdGlvbigpe2cobSl9LDApfSk6ci5mb3JFYWNoKGcpfU4uc2Nyb2xsKDAsMCk7dmFyIGlhPXAuZWxlbWVudHM9PT1RP1IuYm9keTpwLmVsZW1lbnRzWzBdLApQPWlhLm93bmVyRG9jdW1lbnQsTT14LlV0aWwsemE9TS5TdXBwb3J0KHAsUCksdmE9bmV3IFJlZ0V4cCgiKCIrcC5pZ25vcmVFbGVtZW50cysiKSIpLG1hPVAuYm9keSxDPU0uZ2V0Q1NTLHBhPVAuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtwYS5pbm5lckhUTUw9Jy5fX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICIiICFpbXBvcnRhbnQ7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfS5fX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50OmFmdGVyIHsgY29udGVudDogIiIgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9JzttYS5hcHBlbmRDaGlsZChwYSk7ZD1kfHx7fTsoZnVuY3Rpb24oKXt2YXIgYT1DKFIuZG9jdW1lbnRFbGVtZW50LCJiYWNrZ3JvdW5kQ29sb3IiKSxiPU0uaXNUcmFuc3BhcmVudChhKSYmaWE9PT1SLmJvZHksZj11YShpYSxudWxsLCExLGIpO2soaWEpO3dhKGlhLGYsZnVuY3Rpb24oKXtiJiYKKGE9Zi5iYWNrZ3JvdW5kQ29sb3IpO21hLnJlbW92ZUNoaWxkKHBhKTtmb3IodmFyIGc9Ui5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtZWxlbWVudCIpO2cubGVuZ3RoOylnWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZ1swXSk7Zm9yKGc9Ui5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik7Zy5sZW5ndGg7KXt2YXIgaD1nWzBdO2guY2xhc3NMaXN0P2guY2xhc3NMaXN0LnJlbW92ZSgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIpOmguY2xhc3NOYW1lPWguY2xhc3NOYW1lLnJlcGxhY2UoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQiLCIiKS50cmltKCl9TS5sb2coIkRvbmUgcGFyc2luZywgbW92aW5nIHRvIFJlbmRlci4iKTtxKHtiYWNrZ3JvdW5kQ29sb3I6YSxzdGFjazpmfSl9KX0pKCl9O3guUHJlbG9hZD1mdW5jdGlvbihkKXtmdW5jdGlvbiBwKCl7ZS5sb2coImh0bWwyY2FudmFzOiBzdGFydDogaW1hZ2VzOiAiKwpsLm51bUxvYWRlZCsiIC8gIitsLm51bVRvdGFsKyIgKGZhaWxlZDogIitsLm51bUZhaWxlZCsiKSIpOyFsLmZpcnN0UnVuJiZsLm51bUxvYWRlZD49bC5udW1Ub3RhbCYmKGUubG9nKCJGaW5pc2hlZCBsb2FkaW5nIGltYWdlczogIyAiK2wubnVtVG90YWwrIiAoZmFpbGVkOiAiK2wubnVtRmFpbGVkKyIpIiksImZ1bmN0aW9uIj09PXR5cGVvZiBkLmNvbXBsZXRlJiZkLmNvbXBsZXRlKGwpKX1mdW5jdGlvbiBxKHksQSxCKXt2YXIgVT1kLnByb3h5O0cuaHJlZj15O3k9Ry5ocmVmO3ZhciBhYT0iaHRtbDJjYW52YXNfIitJKys7Qi5jYWxsYmFja25hbWU9YWE7VT0tMTxVLmluZGV4T2YoIj8iKT9VKyImIjpVKyI\/IjtVKz0idXJsPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKyImY2FsbGJhY2s9IithYTt2YXIgZGE9RS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtOW2FhXT1mdW5jdGlvbihoYSl7ImVycm9yOiI9PT1oYS5zdWJzdHJpbmcoMCw2KT8oQi5zdWNjZWVkZWQ9ITEsbC5udW1Mb2FkZWQrKywKbC5udW1GYWlsZWQrKyxwKCkpOih2KEEsQiksQS5zcmM9aGEpO05bYWFdPVE7dHJ5e2RlbGV0ZSBOW2FhXX1jYXRjaChuYSl7fWRhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGEpO2RhPW51bGw7ZGVsZXRlIEIuc2NyaXB0O2RlbGV0ZSBCLmNhbGxiYWNrbmFtZX07ZGEuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iik7ZGEuc2V0QXR0cmlidXRlKCJzcmMiLFUpO0Iuc2NyaXB0PWRhO04uZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkYSl9ZnVuY3Rpb24gayh5LEEpe0E9Ti5nZXRDb21wdXRlZFN0eWxlKHksQSk7dmFyIEI9QS5jb250ZW50OyJ1cmwiPT09Qi5zdWJzdHIoMCwzKSYmYmEubG9hZEltYWdlKHguVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZShCKVswXS5hcmdzWzBdKTtuKEEuYmFja2dyb3VuZEltYWdlLHkpfWZ1bmN0aW9uIGMoeSl7cmV0dXJuIHkmJnkubWV0aG9kJiZ5LmFyZ3MmJjA8eS5hcmdzLmxlbmd0aH1mdW5jdGlvbiBuKHksQSl7dmFyIEI7CnguVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZSh5KS5maWx0ZXIoYykuZm9yRWFjaChmdW5jdGlvbihVKXtpZigidXJsIj09PVUubWV0aG9kKWJhLmxvYWRJbWFnZShVLmFyZ3NbMF0pO2Vsc2UgaWYoVS5tZXRob2QubWF0Y2goL1wtP2dyYWRpZW50JC8pKXtCPT09USYmKEI9eC5VdGlsLkJvdW5kcyhBKSk7VT1VLnZhbHVlO3ZhciBhYT14LkdlbmVyYXRlLkdyYWRpZW50KFUsQik7YWEhPT1RJiYobFtVXT17aW1nOmFhLHN1Y2NlZWRlZDohMH0sbC5udW1Ub3RhbCsrLGwubnVtTG9hZGVkKysscCgpKX19KX1mdW5jdGlvbiB0KHkpe3ZhciBBPSExO3RyeXtpZihudWxsIT09eS5nZXRBdHRyaWJ1dGUoImhpZGRlbiIpfHwibm9uZSI9PT1nZXRDb21wdXRlZFN0eWxlKHkpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSlyZXR1cm47ZS5DaGlsZHJlbih5KS5mb3JFYWNoKHQpfWNhdGNoKEIpe310cnl7QT15Lm5vZGVUeXBlfWNhdGNoKEIpe0E9ITEsZS5sb2coImh0bWwyY2FudmFzOiBmYWlsZWQgdG8gYWNjZXNzIHNvbWUgZWxlbWVudCdzIG5vZGVUeXBlIC0gRXhjZXB0aW9uOiAiKwpCLm1lc3NhZ2UpfWlmKDE9PT1BfHxBPT09USl7ayh5LCI6YmVmb3JlIik7ayh5LCI6YWZ0ZXIiKTt0cnl7bihlLmdldENTUyh5LCJiYWNrZ3JvdW5kSW1hZ2UiKSx5KX1jYXRjaChCKXtlLmxvZygiaHRtbDJjYW52YXM6IGZhaWxlZCB0byBnZXQgYmFja2dyb3VuZC1pbWFnZSAtIEV4Y2VwdGlvbjogIitCLm1lc3NhZ2UpfW4oeSl9fWZ1bmN0aW9uIHYoeSxBKXt5Lm9ubG9hZD1mdW5jdGlvbigpe0EudGltZXIhPT1RJiZOLmNsZWFyVGltZW91dChBLnRpbWVyKTtsLm51bUxvYWRlZCsrO0Euc3VjY2VlZGVkPSEwO3kub25lcnJvcj15Lm9ubG9hZD1udWxsO3AoKX07eS5vbmVycm9yPWZ1bmN0aW9uKCl7aWYoImFub255bW91cyI9PT15LmNyb3NzT3JpZ2luJiYoTi5jbGVhclRpbWVvdXQoQS50aW1lciksZC5wcm94eSkpe3ZhciBCPXkuc3JjO3k9bmV3IEltYWdlO0EuaW1nPXk7eS5zcmM9QjtxKHkuc3JjLHksQSl9ZWxzZSBsLm51bUxvYWRlZCsrLGwubnVtRmFpbGVkKyssQS5zdWNjZWVkZWQ9CiExLHkub25lcnJvcj15Lm9ubG9hZD1udWxsLHAoKX19dmFyIGw9e251bUxvYWRlZDowLG51bUZhaWxlZDowLG51bVRvdGFsOjAsY2xlYW51cERvbmU6ITF9LGU9eC5VdGlsLEk9MCx6PWQuZWxlbWVudHNbMF18fFIuYm9keSxFPXoub3duZXJEb2N1bWVudCxLPXouZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpLEo9Sy5sZW5ndGgsRz1FLmNyZWF0ZUVsZW1lbnQoImEiKSxPPShuZXcgSW1hZ2UpLmNyb3NzT3JpZ2luIT09USxUO0cuaHJlZj1OLmxvY2F0aW9uLmhyZWY7dmFyIFc9Ry5wcm90b2NvbCtHLmhvc3QsYmE9e2xvYWRJbWFnZTpmdW5jdGlvbih5KXtpZih5JiZsW3ldPT09USl7dmFyIEE9bmV3IEltYWdlO2lmKHkubWF0Y2goL2RhdGE6aW1hZ2VcLy4qO2Jhc2U2NCwvaSkpe0Euc3JjPXkucmVwbGFjZSgvdXJsXChbJyJdezAsfXxbJyJdezAsfVwpJC9pZywiIik7dmFyIEI9bFt5XT17aW1nOkF9O2wubnVtVG90YWwrKzt2KEEsQil9ZWxzZSBHLmhyZWY9eSxHLmhyZWY9Ry5ocmVmLApHLnByb3RvY29sK0cuaG9zdD09PVd8fCEwPT09ZC5hbGxvd1RhaW50PyhCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKyssdihBLEIpLEEuc3JjPXkpOk8mJiFkLmFsbG93VGFpbnQmJmQudXNlQ09SUz8oQS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKyssdihBLEIpLEEuc3JjPXkpOmQucHJveHkmJihCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKysscSh5LEEsQikpfX0sY2xlYW51cERPTTpmdW5jdGlvbih5KXt2YXIgQTtpZighbC5jbGVhbnVwRG9uZSl7eSYmInN0cmluZyI9PT10eXBlb2YgeT9lLmxvZygiaHRtbDJjYW52YXM6IENsZWFudXAgYmVjYXVzZTogIit5KTplLmxvZygiaHRtbDJjYW52YXM6IENsZWFudXAgYWZ0ZXIgdGltZW91dDogIitkLnRpbWVvdXQrIiBtcy4iKTtmb3IoQSBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkoQSkpe3ZhciBCPWxbQV07aWYoIm9iamVjdCI9PT10eXBlb2YgQiYmQi5jYWxsYmFja25hbWUmJkIuc3VjY2VlZGVkPT09ClEpe05bQi5jYWxsYmFja25hbWVdPVE7dHJ5e2RlbGV0ZSBOW0IuY2FsbGJhY2tuYW1lXX1jYXRjaChVKXt9Qi5zY3JpcHQmJkIuc2NyaXB0LnBhcmVudE5vZGUmJihCLnNjcmlwdC5zZXRBdHRyaWJ1dGUoInNyYyIsImFib3V0OmJsYW5rIiksQi5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChCLnNjcmlwdCkpO2wubnVtTG9hZGVkKys7bC5udW1GYWlsZWQrKztlLmxvZygiaHRtbDJjYW52YXM6IENsZWFuZWQgdXAgZmFpbGVkIGltZzogJyIrQSsiJyBTdGVwczogIitsLm51bUxvYWRlZCsiIC8gIitsLm51bVRvdGFsKX19Ti5zdG9wIT09UT9OLnN0b3AoKTpSLmV4ZWNDb21tYW5kIT09USYmUi5leGVjQ29tbWFuZCgiU3RvcCIsITEpO1IuY2xvc2UhPT1RJiZSLmNsb3NlKCk7bC5jbGVhbnVwRG9uZT0hMDt5JiYic3RyaW5nIj09PXR5cGVvZiB5fHxwKCl9fSxyZW5kZXJpbmdEb25lOmZ1bmN0aW9uKCl7VCYmTi5jbGVhclRpbWVvdXQoVCl9fTswPGQudGltZW91dCYmKFQ9Ti5zZXRUaW1lb3V0KGJhLmNsZWFudXBET00sCmQudGltZW91dCkpO2UubG9nKCJodG1sMmNhbnZhczogUHJlbG9hZCBzdGFydHM6IGZpbmRpbmcgYmFja2dyb3VuZC1pbWFnZXMiKTtsLmZpcnN0UnVuPSEwO3Qoeik7ZS5sb2coImh0bWwyY2FudmFzOiBQcmVsb2FkOiBGaW5kaW5nIGltYWdlcyIpO2Zvcih6PTA7ejxKO3orPTEpYmEubG9hZEltYWdlKEtbel0uZ2V0QXR0cmlidXRlKCJzcmMiKSk7bC5maXJzdFJ1bj0hMTtlLmxvZygiaHRtbDJjYW52YXM6IFByZWxvYWQ6IERvbmUuIik7bC5udW1Ub3RhbD09PWwubnVtTG9hZGVkJiZwKCk7cmV0dXJuIGJhfTt4LlJlbmRlcmVyPWZ1bmN0aW9uKGQscCl7ZnVuY3Rpb24gcShrLGMpe3JldHVybiJjaGlsZHJlbiI9PT1rPy0xOiJjaGlsZHJlbiI9PT1jPzE6ay1jfXJldHVybiBmdW5jdGlvbihrKXtpZigic3RyaW5nIj09PXR5cGVvZiBwLnJlbmRlcmVyJiZ4LlJlbmRlcmVyW2tdIT09USlrPXguUmVuZGVyZXJba10ocCk7ZWxzZSBpZigiZnVuY3Rpb24iPT09dHlwZW9mIGspaz1rKHApOwplbHNlIHRocm93IEVycm9yKCJVbmtub3duIHJlbmRlcmVyIik7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrKXRocm93IEVycm9yKCJJbnZhbGlkIHJlbmRlcmVyIGRlZmluZWQiKTtyZXR1cm4ga30ocC5yZW5kZXJlcikoZCxwLFIsZnVuY3Rpb24oayl7ZnVuY3Rpb24gYyh0KXtPYmplY3Qua2V5cyh0KS5zb3J0KHEpLmZvckVhY2goZnVuY3Rpb24odil7dmFyIGw9W10sZT1bXSxJPVtdLHo9W107dFt2XS5mb3JFYWNoKGZ1bmN0aW9uKEUpe0Uubm9kZS56SW5kZXguaXNQb3NpdGlvbmVkfHwxPkUubm9kZS56SW5kZXgub3BhY2l0eT9JLnB1c2goRSk6RS5ub2RlLnpJbmRleC5pc0Zsb2F0ZWQ\/ZS5wdXNoKEUpOmwucHVzaChFKX0pOyhmdW5jdGlvbiBKKEspe0suZm9yRWFjaChmdW5jdGlvbihHKXt6LnB1c2goRyk7Ry5jaGlsZHJlbiYmSihHLmNoaWxkcmVuKX0pfSkobC5jb25jYXQoZSxJKSk7ei5mb3JFYWNoKGZ1bmN0aW9uKEspe0suY29udGV4dD9jKEsuY29udGV4dCk6bi5wdXNoKEsubm9kZSl9KX0pfQp2YXIgbj1bXTtrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHYoZSxJLHope3ZhciBFPSJhdXRvIj09PUkuekluZGV4LnppbmRleD8wOk51bWJlcihJLnpJbmRleC56aW5kZXgpLEs9ZSxKPUkuekluZGV4LmlzUG9zaXRpb25lZCxHPUkuekluZGV4LmlzRmxvYXRlZCxPPXtub2RlOkl9LFQ9ejtpZihJLnpJbmRleC5vd25TdGFja2luZylLPU8uY29udGV4dD17Y2hpbGRyZW46W3tub2RlOkksY2hpbGRyZW46W119XX0sVD1RO2Vsc2UgaWYoSnx8RylUPU8uY2hpbGRyZW49W107MD09PUUmJno\/ei5wdXNoKE8pOihlW0VdfHwoZVtFXT1bXSksZVtFXS5wdXNoKE8pKTtJLnpJbmRleC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKFcpe3YoSyxXLFQpfSl9dmFyIGw9e307dihsLHQpO3JldHVybiBsfShrKTtjKGspO3JldHVybiBufShkLnN0YWNrKSx4KX07eC5VdGlsLlN1cHBvcnQ9ZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiBxKCl7dmFyIGs9bmV3IEltYWdlLGM9cC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwKbj1jLmdldENvbnRleHQ9PT1RPyExOmMuZ2V0Q29udGV4dCgiMmQiKTtpZighMT09PW4pcmV0dXJuITE7Yy53aWR0aD1jLmhlaWdodD0xMDtrLnNyYz0iZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTAnIGhlaWdodD0nMTAnPjxmb3JlaWduT2JqZWN0IHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGRpdiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgc3R5bGU9J3dpZHRoOjEwO2hlaWdodDoxMDsnPnN1cDwvZGl2PjwvZm9yZWlnbk9iamVjdD48L3N2Zz4iO3RyeXtuLmRyYXdJbWFnZShrLDAsMCksYy50b0RhdGFVUkwoKX1jYXRjaCh0KXtyZXR1cm4hMX14LlV0aWwubG9nKCJodG1sMmNhbnZhczogUGFyc2U6IFNWRyBwb3dlcmVkIHJlbmRlcmluZyBhdmFpbGFibGUiKTtyZXR1cm4hMH1yZXR1cm57cmFuZ2VCb3VuZHM6ZnVuY3Rpb24oKXt2YXIgaz0hMTtpZihwLmNyZWF0ZVJhbmdlKXt2YXIgYz0KcC5jcmVhdGVSYW5nZSgpO2lmKGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgbj1wLmNyZWF0ZUVsZW1lbnQoImJvdW5kdGVzdCIpO24uc3R5bGUuaGVpZ2h0PSIxMjNweCI7bi5zdHlsZS5kaXNwbGF5PSJibG9jayI7cC5ib2R5LmFwcGVuZENoaWxkKG4pO2Muc2VsZWN0Tm9kZShuKTtjPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yz1jLmhlaWdodDsxMjM9PT1jJiYoaz0hMCk7cC5ib2R5LnJlbW92ZUNoaWxkKG4pfX1yZXR1cm4ga30oKSxzdmdSZW5kZXJpbmc6ZC5zdmdSZW5kZXJpbmcmJnEoKX19O04uaHRtbDJjYW52YXM9ZnVuY3Rpb24oZCxwKXtkPWQubGVuZ3RoP2Q6W2RdO3ZhciBxLGs9e2xvZ2dpbmc6ITEsZWxlbWVudHM6ZCxiYWNrZ3JvdW5kOiIjZmZmIixwcm94eTpudWxsLHRpbWVvdXQ6MCx1c2VDT1JTOiExLGFsbG93VGFpbnQ6ITEsc3ZnUmVuZGVyaW5nOiExLGlnbm9yZUVsZW1lbnRzOiJJRlJBTUV8T0JKRUNUfFBBUkFNIix1c2VPdmVyZmxvdzohMCxsZXR0ZXJSZW5kZXJpbmc6ITEsCmNoaW5lc2U6ITEsYXN5bmM6ITEsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCx0YWludFRlc3Q6ITAscmVuZGVyZXI6IkNhbnZhcyJ9O2s9eC5VdGlsLkV4dGVuZChwLGspO3gubG9nZ2luZz1rLmxvZ2dpbmc7ay5jb21wbGV0ZT1mdW5jdGlvbihjKXsiZnVuY3Rpb24iPT09dHlwZW9mIGsub25wcmVsb2FkZWQmJiExPT09ay5vbnByZWxvYWRlZChjKXx8eC5QYXJzZShjLGssZnVuY3Rpb24obil7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrLm9ucGFyc2VkfHwhMSE9PWsub25wYXJzZWQobikpaWYocT14LlJlbmRlcmVyKG4sayksImZ1bmN0aW9uIj09PXR5cGVvZiBrLm9ucmVuZGVyZWQpay5vbnJlbmRlcmVkKHEpfSl9O04uc2V0VGltZW91dChmdW5jdGlvbigpe3guUHJlbG9hZChrKX0sMCk7cmV0dXJue3JlbmRlcjpmdW5jdGlvbihjLG4pe3JldHVybiB4LlJlbmRlcmVyKGMseC5VdGlsLkV4dGVuZChuLGspKX0scGFyc2U6ZnVuY3Rpb24oYyxuKXtyZXR1cm4geC5QYXJzZShjLHguVXRpbC5FeHRlbmQobiwKaykpfSxwcmVsb2FkOmZ1bmN0aW9uKGMpe3JldHVybiB4LlByZWxvYWQoeC5VdGlsLkV4dGVuZChjLGspKX0sbG9nOnguVXRpbC5sb2d9fTtOLmh0bWwyY2FudmFzLmxvZz14LlV0aWwubG9nO04uaHRtbDJjYW52YXMuUmVuZGVyZXI9e0NhbnZhczpRfTt4LlJlbmRlcmVyLkNhbnZhcz1mdW5jdGlvbihkKXtmdW5jdGlvbiBwKHYsbCl7di5iZWdpblBhdGgoKTtsLmZvckVhY2goZnVuY3Rpb24oZSl7dltlLm5hbWVdLmFwcGx5KHYsZS5hcmd1bWVudHMpfSk7di5jbG9zZVBhdGgoKX1kPWR8fHt9O3ZhciBxPVtdLGs9Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxjPWsuZ2V0Q29udGV4dCgiMmQiKSxuPXguVXRpbCx0PWQuY2FudmFzfHxSLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiBmdW5jdGlvbih2LGwsZSxJLHope3ZhciBFPXQuZ2V0Q29udGV4dCgiMmQiKSxLPXYuc3RhY2s7dC53aWR0aD10LnN0eWxlLndpZHRoPWwud2lkdGh8fEsuY3R4LndpZHRoO3QuaGVpZ2h0PXQuc3R5bGUuaGVpZ2h0PQpsLmhlaWdodHx8Sy5jdHguaGVpZ2h0O0s9RS5maWxsU3R5bGU7RS5maWxsU3R5bGU9bi5pc1RyYW5zcGFyZW50KHYuYmFja2dyb3VuZENvbG9yKSYmbC5iYWNrZ3JvdW5kIT09UT9sLmJhY2tncm91bmQ6di5iYWNrZ3JvdW5kQ29sb3I7RS5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCk7RS5maWxsU3R5bGU9SztJLmZvckVhY2goZnVuY3Rpb24oSil7RS50ZXh0QmFzZWxpbmU9ImJvdHRvbSI7RS5zYXZlKCk7Si50cmFuc2Zvcm0ubWF0cml4JiYoRS50cmFuc2xhdGUoSi50cmFuc2Zvcm0ub3JpZ2luWzBdLEoudHJhbnNmb3JtLm9yaWdpblsxXSksRS50cmFuc2Zvcm0uYXBwbHkoRSxKLnRyYW5zZm9ybS5tYXRyaXgpLEUudHJhbnNsYXRlKC1KLnRyYW5zZm9ybS5vcmlnaW5bMF0sLUoudHJhbnNmb3JtLm9yaWdpblsxXSkpO0ouY2xpcCYmKEUuYmVnaW5QYXRoKCksRS5yZWN0KEouY2xpcC5sZWZ0LEouY2xpcC50b3AsSi5jbGlwLndpZHRoLEouY2xpcC5oZWlnaHQpLEUuY2xpcCgpKTsKSi5jdHguc3RvcmFnZSYmSi5jdHguc3RvcmFnZS5mb3JFYWNoKGZ1bmN0aW9uKEcpe3ZhciBPPUU7c3dpdGNoKEcudHlwZSl7Y2FzZSAidmFyaWFibGUiOk9bRy5uYW1lXT1HLmFyZ3VtZW50czticmVhaztjYXNlICJmdW5jdGlvbiI6c3dpdGNoKEcubmFtZSl7Y2FzZSAiY3JlYXRlUGF0dGVybiI6aWYoMDxHLmFyZ3VtZW50c1swXS53aWR0aCYmMDxHLmFyZ3VtZW50c1swXS5oZWlnaHQpdHJ5e08uZmlsbFN0eWxlPU8uY3JlYXRlUGF0dGVybihHLmFyZ3VtZW50c1swXSwicmVwZWF0Iil9Y2F0Y2goVyl7bi5sb2coImh0bWwyY2FudmFzOiBSZW5kZXJlcjogRXJyb3IgY3JlYXRpbmcgcGF0dGVybiIsVy5tZXNzYWdlKX1icmVhaztjYXNlICJkcmF3U2hhcGUiOnAoTyxHLmFyZ3VtZW50cyk7YnJlYWs7Y2FzZSAiZHJhd0ltYWdlIjppZigwPEcuYXJndW1lbnRzWzhdJiYwPEcuYXJndW1lbnRzWzddKXt2YXIgVDtpZighKFQ9IWQudGFpbnRUZXN0KSYmKFQ9ZC50YWludFRlc3QpKWE6e2lmKC0xPT09CnEuaW5kZXhPZihHLmFyZ3VtZW50c1swXS5zcmMpKXtjLmRyYXdJbWFnZShHLmFyZ3VtZW50c1swXSwwLDApO3RyeXtjLmdldEltYWdlRGF0YSgwLDAsMSwxKX1jYXRjaChXKXtrPVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Yz1rLmdldENvbnRleHQoIjJkIik7VD0hMTticmVhayBhfXEucHVzaChHLmFyZ3VtZW50c1swXS5zcmMpfVQ9ITB9VCYmTy5kcmF3SW1hZ2UuYXBwbHkoTyxHLmFyZ3VtZW50cyl9YnJlYWs7ZGVmYXVsdDpPW0cubmFtZV0uYXBwbHkoTyxHLmFyZ3VtZW50cyl9fX0pO0UucmVzdG9yZSgpfSk7bi5sb2coImh0bWwyY2FudmFzOiBSZW5kZXJlcjogQ2FudmFzIHJlbmRlcmVyIGRvbmUgLSByZXR1cm5pbmcgY2FudmFzIG9iaiIpO3JldHVybiAxPT09bC5lbGVtZW50cy5sZW5ndGgmJiJvYmplY3QiPT09dHlwZW9mIGwuZWxlbWVudHNbMF0mJiJCT0RZIiE9PWwuZWxlbWVudHNbMF0ubm9kZU5hbWU\/KHY9ei5VdGlsLkJvdW5kcyhsLmVsZW1lbnRzWzBdKSxlPWUuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksCmUud2lkdGg9TWF0aC5jZWlsKHYud2lkdGgpLGUuaGVpZ2h0PU1hdGguY2VpbCh2LmhlaWdodCksRT1lLmdldENvbnRleHQoIjJkIiksRS5kcmF3SW1hZ2UodCx2LmxlZnQsdi50b3Asdi53aWR0aCx2LmhlaWdodCwwLDAsdi53aWR0aCx2LmhlaWdodCksdD1udWxsLGUpOnR9fX0pKHdpbmRvdyxkb2N1bWVudCk7Ci8qKiAvanMvZDJjdGNrL3Vwcm9maWxlLmZpbmFsLm1pbi5qcyAqKi8KYWN0aXZlVXNlclByb2ZpbGVNbmc9e29ucmVhZHk6bnVsbCxvbm5vdGZvdW5kOm51bGwsZGlzYWJsZWQ6ITEsdWlkOm51bGwsYWN0aXZlU3RlcDowLHN3ZlN0b3JlOiExLHJlZ2lzdGVyZWRQYWdlVmlld3M6bnVsbCxyZWdpc3RlcmVkRXZlbnRzOm51bGwsc2Vzc2lvbmlkOm51bGwscmVnaXN0ZXJlZENhbGxiYWNrczpudWxsLHJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzOm51bGwscGFnZVZpZXdDb3VudDpudWxsLF9fcHJvcGVydGllczpudWxsLGpxdWVyeUFjdGl2ZTohMCxpc0QyQ1NpdGU6ITAsX19yZXNldFY6OSxyZXNldFNlY29uZFBhc3M6ITEsX19vdXRwdXREaXZNc2c6ITEsX19vdXRwdXRDb25zb2xlTXNnOiExLGFqYXhNbmc6e2FzeW5jOiEwLF9sYXN0WDpudWxsLHg6ZnVuY3Rpb24oKXt0cnl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgWE1MSHR0cFJlcXVlc3QpcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtmb3IodmFyIGE9WyJNU1hNTDIuWG1sSHR0cC41LjAiLAoJCQkiTVNYTUwyLlhtbEh0dHAuNC4wIiwiTVNYTUwyLlhtbEh0dHAuMy4wIiwiTVNYTUwyLlhtbEh0dHAuMi4wIiwiTWljcm9zb2Z0LlhtbEh0dHAiXSxiLGQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7Yj1uZXcgQWN0aXZlWE9iamVjdChhW2RdKTticmVha31jYXRjaChjKXt9fWNhdGNoKGMpe31yZXR1cm4gYn0sX3NlbmQ6ZnVuY3Rpb24oYSxiLGQsYyxlLGgpe3RyeXt2YXIgZj10aGlzLngoKTt0aGlzLl9sYXN0WD1mO2Yub3BlbihkLGEsZSk7dHJ5e2YuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfSl9Y2F0Y2gocSl7fWYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09Zi5yZWFkeVN0YXRlP2IoZi5yZXNwb25zZVRleHQpOiJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfTsKCQkJIlBPU1QiPT1kJiZmLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2Yuc2VuZChjKX1jYXRjaChxKXsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJm51bGwhPWgmJmgoZiwidW5rbm93biIscSl9fSxhamF4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS50eXBlJiYoYS50eXBlPSJHRVQiKSwidW5kZWZpbmVkIj09dHlwZW9mIGEuZGF0YSYmKGEuZGF0YT17fSksd2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmFqYXgpJC5hamF4KGEpLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRvbmUmJmEuZG9uZShjKX0pLmZhaWwoZnVuY3Rpb24oYyxlLGgpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mYWlsJiZhLmZhaWwoYyxlLGgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0pLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPQoJCXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKX0pLmFsd2F5cyhmdW5jdGlvbihjLGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wbGV0ZSYmYS5jb21wbGV0ZShiLl9sYXN0WCwidW5kZWZpbmVkIiE9dHlwZW9mIGIuX2xhc3RYLnN0YXR1c1RleHQ\/Yi5fbGFzdFguc3RhdHVzVGV4dDoiIil9KTtlbHNle3ZhciBkPWIuX2dldDsicG9zdCI9PWEudHlwZS50b0xvd2VyQ2FzZSgpJiYoZD1iLl9wb3N0KTtkKGEudXJsLGEuZGF0YSxmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zdWNjZXNzJiZhLnN1Y2Nlc3MoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0sYi5hc3luYyxmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KX19Y2F0Y2goYyl7Y29uc29sZSYmCgkJY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGFjY2Vzc2luZyBhamF4TW5nLmdldDogJXMiLGMubWVzc2FnZSl9fSxfZ2V0OmZ1bmN0aW9uKGEsYixkLGMsZSl7dmFyIGg9W10sZjtmb3IoZiBpbiBiKWgucHVzaChlbmNvZGVVUklDb21wb25lbnQoZikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChiW2ZdKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fc2VuZChhKyI\/IitoLmpvaW4oIiYiKSxkLCJHRVQiLG51bGwsYyxlKX0sX3Bvc3Q6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGEsZCwiUE9TVCIsaC5qb2luKCImIiksCgkJCWMsZSl9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuZ2V0U2NyaXB0KSQuZ2V0U2NyaXB0KGEsYik7ZWxzZXt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtkLmFzeW5jPTE7ZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oZSxoKXtpZihofHwhZC5yZWFkeVN0YXRlfHwvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGQucmVhZHlTdGF0ZSkpZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxkPXZvaWQgMCwhaCYmYiYmc2V0VGltZW91dChiLDApfTtkLnNyYz1hO2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZCxjKX19Y2F0Y2goZSl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcganMgc2NyaXB0LiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW46ICVzIiwKCQkJZS5tZXNzYWdlKX19fSxjb29raWVNbmc6e3JlYWRDb29raWVWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llKWI9JC5jb29raWUoYSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTtlbHNle2ErPSI9Ijtmb3IodmFyIGQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksYz0wO2M8ZC5sZW5ndGg7YysrKXtmb3IodmFyIGU9ZFtjXTsiICI9PWUuY2hhckF0KDApOyllPWUuc3Vic3RyaW5nKDEsZS5sZW5ndGgpO2lmKDA9PWUuaW5kZXhPZihhKSl7Yj1lLnN1YnN0cmluZyhhLmxlbmd0aCxlLmxlbmd0aCk7YnJlYWt9fX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJlYWRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX1yZXR1cm4gYn0sc2V0Q29va2llVmFsdWU6ZnVuY3Rpb24oYSxiLGQsYyl7dHJ5e2lmKCEwIT09dGhpcy5kaXNhYmxlZCl7aWYoInVuZGVmaW5lZCI9PQoJCQl0eXBlb2YgZHx8bnVsbD09ZClkPSIvIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0wOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9bnVsbCk7dmFyIGU9bmV3IERhdGU7ZS5zZXRUaW1lKGUuZ2V0VGltZSgpKzg2NEU1KmMpO3dpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWU\/JC5jb29raWUoYSxiLHtwYXRoOmQsc2VjdXJlOiEwLGV4cGlyZXM6MD09Yz8iIjplfSk6KGV4cGlyZXM9MCE9Yz8iOyBleHBpcmVzPSIrZS50b0dNVFN0cmluZygpOiIiLGRvY3VtZW50LmNvb2tpZT1hKyI9IitiK2V4cGlyZXMrIjsgc2VjdXJlOyBwYXRoPSIrZCxiJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcubG9nQ29va2llKGEsYixjLGQpKX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHNldHRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX19LGRlbGV0ZUNvb2tpZTpmdW5jdGlvbihhKXt0cnl7d2luZG93LmpRdWVyeSYmCgkJInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8oJC5jb29raWUoYSxudWxsKSwkLmNvb2tpZShhLG51bGwse3BhdGg6Ii8ifSkpOnRoaXMuc2V0Q29va2llVmFsdWUoYSxudWxsLC0xKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgZGVsZXRpbmcgY29va2llOiAlcyIsYi5tZXNzYWdlKX19LGxvZ0Nvb2tpZTpmdW5jdGlvbihhLGIsZCxjLGUpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGUmJihlPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZSYmc2V0VGltZW91dChmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGQsYyxlLTEpfSwxMDApOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYixkLGMpfX0sX191c2VQcm94eTpmdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5pc0QyQ1NpdGU\/ITE6ITB9LF9pc0JvdDpmdW5jdGlvbigpe3JldHVybi9ib3R8Z29vZ2xlYm90fGNyYXdsZXJ8c3BpZGVyfHJvYm90fGNyYXdsaW5nL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT8KCQkhMDohMX0sZ2V0U3RhdHNVUkk6ZnVuY3Rpb24oKXt2YXIgYT0iL3Byb3h5X3NkMmMvIjt0cnl7ITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJihhPSJodHRwOi8vc3RhdHMuZDJjbWVkaWEuY2EvIiwiaHR0cHM6Ij09d2luZG93LmxvY2F0aW9uLnByb3RvY29sJiYoYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8iKSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBnZXRTdGF0c1VSSTogJXMiLGIubWVzc2FnZSksYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8ifXJldHVybiBhfSxnZXRGUFVSSTpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4iIjt2YXIgYT0iL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjt0cnl7YT0hMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT9udWxsIT13aW5kb3cubG9jYXRpb24mJiJ1bmRlZmluZWQiIT0KCXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKT8iaHR0cHM6Ly9jcm0yLmQyY21lZGlhLmNhL2Fzc2V0cy9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiaHR0cHM6Ly93d3cuYXV0b2F1YmFpbmUuY29tL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjohMD09PXRoaXMuX19vdXRwdXREaXZNc2c\/Ii9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIn1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldEZQVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifXJldHVybiBhfSxnZXRTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZDsKCQl2YXIgYT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8MD09YSlyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkO2E9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpO3JldHVybiBudWxsIT1hPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpOjB9LHJlZ2lzdGVyQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmCgludWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2EoKTphY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLnB1c2goYSl9LHJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrOmZ1bmN0aW9uKGEpe2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7aWYobnVsbCE9YSl0cnl7YSgpfWNhdGNoKGIpe31yZXR1cm4hMX1udWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiYwIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzLnB1c2goYSl9LAoJX19ub3RpZnlVVUlEOmZ1bmN0aW9uKCl7dHJ5e2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7dHJ5e2IoKX1jYXRjaChkKXt9cmV0dXJuITF9aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyl7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLmxlbmd0aDthKyspe3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3NbYV07YigpfWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9bnVsbH19Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBfX25vdGlmeVVVSUQ6ICVzIixkLm1lc3NhZ2UpfX0sX19ub3RpZnlTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7CgkJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwiMCI9PWF8fDA9PWEpdmFyIGI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0cnl7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M\/Y2xlYXJJbnRlcnZhbChiKTowIT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCkmJihjbGVhckludGVydmFsKGIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiTm90aWZ5IHNlc3Npb25pZCBmYWlsZWQgd2l0aDogJXMiLGQubWVzc2FnZSl9fSw1MDApO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzKXRyeXtmb3IoYT0wO2E8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MubGVuZ3RoO2ErKykoMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrc1thXSkoKTsKCQkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9bnVsbH1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5U2Vzc2lvbklEOiAlcyIsZC5tZXNzYWdlKX19LGxvZ01zZzpmdW5jdGlvbihhKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiExOyEwPT09dGhpcy5fX291dHB1dERpdk1zZyYmJChkb2N1bWVudC5ib2R5KS5hcHBlbmQoIjxkaXY+IithKyI8L2Rpdj4iKTshMD09PXRoaXMuX19vdXRwdXRDb25zb2xlTXNnJiZjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBtZXNzYWdlIGxvZ2dpbmcuIEhvdyBpcm9uaWM6ICVzIixiLm1lc3NhZ2UpfX0sY2hlY2tTY2hlZHVsZWRSZXNldDpmdW5jdGlvbigpe3ZhciBhPQoJCSExO3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfcnN0Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9MDtiIT10aGlzLl9fcmVzZXRWJiYoYT0hMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfcnN0Iix0aGlzLl9fcmVzZXRWLCIvIiw0RTMpKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBpbiBzY2hlZHVsZWQgcmVzZXQgY2hlY2s6ICIrZC5tZXNzYWdlKX1yZXR1cm4gYX0sZ2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy51aWQpcmV0dXJuIG51bGw9PXdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJih3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkKSx0aGlzLnVpZDtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiBudWxsOwoJCXZhciBhPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZCIpO2lmKG51bGwhPWEmJjA8YS5sZW5ndGgpcmV0dXJuIHRoaXMuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkPWEsdGhpcy5fX2ZpcmVSZWFkeUV2ZW50KCksdGhpcy51aWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiKTtpZihudWxsIT1hJiYwIT1hLmxlbmd0aCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkVXNlckRhdGFDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkTG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZyb21Mb2NhbERCKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSgpfWVsc2Ugc2V0VGltZW91dCgiYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMykiLAoJCQk1MDApO3JldHVybiBudWxsfSxlbnN1cmVWYWxpZElEOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZ3x8InN0cmluZyI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJjA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZC5sZW5ndGgpYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGx9LHNldEFjdGl2ZVByb2ZpbGVpZDpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZHx8ITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXREQkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFBOR0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEVUYWdDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldExvY2FsU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEdsb2JhbFN0b3JhZ2VDb29raWUoKTsKCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRTZXNzaW9uU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2NvbnRpbnVlTG9hZDpmdW5jdGlvbihhKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpYWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlUmVhZHlFdmVudCgpO2Vsc2Ugc3dpdGNoKGEpe2Nhc2UgMTphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRFVGFnQ29va2llKCk7YnJlYWs7Y2FzZSAyOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFBOR0Nvb2tpZSgpO2JyZWFrO2RlZmF1bHQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlTm90Rm91bmQoKX19LF9fZmlyZVJlYWR5RXZlbnQ6ZnVuY3Rpb24oKXtpZihudWxsIT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5vbnJlYWR5KWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVVVSUQoKX0sX19maXJlTm90Rm91bmQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5vbm5vdGZvdW5kKWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQoKX0sc2V0RkxWQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYKCQkoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe2Euc2V0KCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXt9fSl9Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fWNhdGNoKGIpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmbnVsbCE9Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIk1BSU46IFVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fSxfX2xvYWRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLAoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe3ZhciBiPWEuZ2V0KCJ1aWQiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9Yik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9LG9uZXJyb3I6ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19KX1jYXRjaChiKXt9fWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9fSxfX2xvYWRGcm9tTG9jYWxEQjpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93Lm9wZW5EYXRhYmFzZSYmCglkYXRhYmFzZS50cmFuc2FjdGlvbihmdW5jdGlvbihhKXthLmV4ZWN1dGVTcWwoIlNFTEVDVCB2YWx1ZSBGUk9NIHVwcm9maWxlIFdIRVJFIG5hbWU9PyIsWyJ1aWQiXSxmdW5jdGlvbihiLGQpezE8PWQucm93cy5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZC5yb3dzLml0ZW0oMCkudmFsdWUpfSxmdW5jdGlvbihiLGQpe30pfSl9Y2F0Y2goYSl7fX19LHNldERCQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lm9wZW5EYXRhYmFzZSl7dmFyIGE9d2luZG93Lm9wZW5EYXRhYmFzZSgic3FsaXRlX3Vwcm9maWxlIiwiIiwidXByb2ZpbGUiLDEwNDg1NzYpOyJ1bmRlZmluZWQiIT10eXBlb2YgdmFsdWUmJmEudHJhbnNhY3Rpb24oZnVuY3Rpb24oYil7Yi5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1cHJvZmlsZShpZCBJTlRFR0VSIE5PVCBOVUxMIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIHVpZCBURVhUIE5PVCBOVUxMLCB2YWx1ZSBURVhUIE5PVCBOVUxMLCBVTklRVUUgKHVpZCkpIiwKCQlbXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KTtiLmV4ZWN1dGVTcWwoIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gdXByb2ZpbGUodWlkLCB2YWx1ZSkgVkFMVUVTKD8sID8pIixbInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KX0pfX1jYXRjaChiKXt9fX0sX19sb2FkUE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Eud2lkdGg9MjAwO2EuaGVpZ2h0PTE7dmFyIGI9YS5nZXRDb250ZXh0KCIyZCIpLGQ9bmV3IEltYWdlOwoJCWQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtkLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZC5zcmM9Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUxLnBuZyI7ZC5vbmVycm9yPWZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9O2Qub25sb2FkPWZ1bmN0aW9uKCl7dHJ5e2IuZHJhd0ltYWdlKGQsMCwwKTtmb3IodmFyIGM9Yi5nZXRJbWFnZURhdGEoMCwwLDIwMCwxKS5kYXRhLGU9IiIsaD0wLGY9Yy5sZW5ndGg7aDxmJiYwIT1jW2hdO2grPTQpe2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toXSk7aWYoMD09Y1toKzFdKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toKzFdKTtpZigwPT1jW2grMl0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMl0pfTA8ZS5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZSl9Y2F0Y2gocSl7fWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDMpfX19Y2F0Y2goYyl7fX19LAoJc2V0UE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dGhpcy5hamF4TW5nLmFqYXgoe3VybDoiL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nIix0eXBlOiJHRVQiLHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWF9LAoJCWNvbXBsZXRlOmZ1bmN0aW9uKGEsYil7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMil9fSl9fSxzZXRFVGFnQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwKCQkxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLmxvYWQoInVpZCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1hLmdldEF0dHJpYnV0ZSgidWlkIil9Y2F0Y2goYil7fX19LHNldFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7dmFyIGE9dGhpcy5jcmVhdGVFbGVtKCJkaXYiLCJ1c2VyZGF0YV9lbCIsMSk7YS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I3VzZXJEYXRhKSI7YS5zZXRBdHRyaWJ1dGUoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthLnNhdmUoInVpZCIpfWNhdGNoKGIpe319fSxfX2xvYWRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0TG9jYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX1jYXRjaChhKXt9fX0sX19sb2FkR2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lmdsb2JhbFN0b3JhZ2UpcmV0dXJuIHRoaXMuZ2V0SG9zdCgpLAoJCWV2YWwoImFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCA9IGdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkIil9Y2F0Y2goYSl7fX19LHNldEdsb2JhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuZ2xvYmFsU3RvcmFnZSYmKHRoaXMuZ2V0SG9zdCgpLGV2YWwoImdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkID0gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIikpfWNhdGNoKGEpe319fSxfX2xvYWRTZXNzaW9uU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPQoJCXdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJ1aWQiKSl9Y2F0Y2goYSl7fX19LHNldFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiZ3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxyZWdpc3RlclBhZ2VWaWV3OmZ1bmN0aW9uKCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cz1bXSk7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLmxlbmd0aDthKyspaWYod2luZG93LmxvY2F0aW9uLmhyZWY9PQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3NbYV0pcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cy5wdXNoKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtyZXR1cm4hMH0scmVnaXN0ZXJQYWdlVmlld0V2ZW50OmZ1bmN0aW9uKGEsYixkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZHx8bnVsbD09ZClkPSIiO2E9YSsifHx8IitiKyJ8fHwiK2Q7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHM9W10pO2ZvcihiPTA7YjxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLmxlbmd0aDtiKyspaWYoYT09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50c1tiXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLnB1c2goYSk7CgkJcmV0dXJuITB9LGxvZ1BhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3RXZlbnQoYSxiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkfHwwPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2soZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsYixkKX0pO2Vsc2V7dmFyIGM9MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5sYXN0Vmlld0lEKXt2YXIgZT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dmlldyIpOwoJCW51bGwhPWUmJihjPWUpfWVsc2UgYz13aW5kb3cubGFzdFBhZ2VWaWV3SUQ7InVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jP2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGlkZW50aWZ5IGxhc3QgdmlldyBpZCIpOihlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYz17c2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLGFjdGlvbjoiZXZlbnQiLHZpZXdpZDpjLGV2ZW50OmEsZWNhdGVnb3J5OmIsYWRkZWRJbmZvOiJ1bmRlZmluZWQiIT10eXBlb2YgZD9kOiIifSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmFqYXgoe3VybDplKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJQT1NUIixkYXRhOmN9KSl9fX19LGxvZ1BhZ2VWaWV3RXg6ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3KCkpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihhPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGssdyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdSBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih1Lm5hbWU9PWspcmV0dXJuIHUudmFsdWV9ZWxzZSByZXR1cm4gd307Z2V0Q0tWYWx1ZT1mdW5jdGlvbihrLHcpe3ZhciB1PWdldEN1c3RvbVZSQihrLG51bGwpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdSYmbnVsbCE9dSlyZXR1cm4gdTt1PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoayk7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB1fHxudWxsPT11P251bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYVtrXT8idW5kZWZpbmVkIj09dHlwZW9mIHc\/CgkJIiI6dzphW2tdOnV9O2dldFVSTFZhbHVlPWZ1bmN0aW9uKGssdyl7az1rLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7az0obmV3IFJlZ0V4cCgiW1xcPyZdIitrKyI9KFteJiNdKikiKSkuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7az1udWxsPT1rP251bGw6a1sxXTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGt8fG51bGw9PWt8fDA9PWsudG9TdHJpbmcoKS5sZW5ndGg\/dzprfTt2YXIgYj0iIixkPTAsYz0iRlJFTkNIIixlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxoPWZ1bmN0aW9uKGspe3ZhciB3PXttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIscHJpY2U6MCxzaXRlaWQ6MCxkZWFsZXJpZDowLGxhbmd1YWdlOiJGUkVOQ0gifTtpZighaylyZXR1cm4gdztrPWsuc3BsaXQoL1s7Jl0vKTtmb3IodmFyIHU9MDt1PGsubGVuZ3RoO3UrKyl7dmFyIEI9a1t1XS5zcGxpdCgiPSIpO2lmKEImJjI9PUIubGVuZ3RoKXt2YXIgRT0KCQl1bmVzY2FwZShCWzBdKTtCPXVuZXNjYXBlKEJbMV0pO0I9Qi5yZXBsYWNlKC9cKy9nLCIgIik7d1tFXT1CfX1yZXR1cm4gd307aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lKWZvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgcT1lW2ZdO2lmKC0xIT1xLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSl7dmFyIHA9cS5zcmMucmVwbGFjZSgvXlteXD9dK1w\/Py8sIiIpLHk9aChwKTt2YXIgbD15Lm1ha2U7dmFyIEM9eS5tb2RlbDtiPXkueWVhcjt2YXIgQT15LnNpdGVpZDt2YXIgej15LmRlYWxlcmlkO2Q9eS5wcmljZTtjPXkubGFuZ3VhZ2U7YnJlYWt9fXZhciBtPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpO2U9MDtpZigidW5kZWZpbmVkIj09bXx8MD09bSl7bT0wO3ZhciByPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWRfdG1wIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXt2YXIgeD0KCQluZXcgRGF0ZTt4LnNldFRpbWUoeC5nZXRUaW1lKCkrNzJFNSk7dmFyIGc9IjsgZXhwaXJlcz0iK3gudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK2crIjsgcGF0aD0vIn1lbHNlIGU9ITB9dmFyIG49d2luZG93LmxvY2F0aW9uLmhyZWY7aWYoLTE8bi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKXt2YXIgdD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJzZXNzaWQiKTtuKz0iJnNlc3NpZD0iKygidW5kZWZpbmVkIiE9dHlwZW9mIHR8fG51bGwhPXQ\/dDoiTlVMTCIpfXZhciB2PXtzaWQ6bSx1dWlkOndpbmRvdy5hY3RpdmVQcm9maWxlSUQsc2l0ZWlkOkEsZGVhbGVyaWQ6eix1dG1Tb3VyY2U6Z2V0VVJMVmFsdWUoInV0bV9zb3VyY2UiLCIiKSx1dG1DYW1wYWlnbjpnZXRVUkxWYWx1ZSgidXRtX2NhbXBhaWduIiwib3JnYW5pYyIpLHV0bUtleXdvcmQ6Z2V0Q0tWYWx1ZSgidXRtX2tleXdvcmQiKSx1dG1MYW5kaW5nOmdldENLVmFsdWUoInV0bV9sYW5kaW5nIiksCgkJdXRtU291cmNlUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHV0bUNhbXBhaWduUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksbWFrZTpsLG1vZGVsOkMseWVhcjppc05hTihiKT8obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk6YixsYW5ndWFnZTpjLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpkLHNsb29rdXA6ZSxocmVmOm59LEQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTt2PUpTT04uc3RyaW5naWZ5KHYpO3Y9di5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3VybDpEKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixkYXRhOnYsZG9uZTpmdW5jdGlvbihrKXt0cnl7aWYoInN0cmluZyI9PXR5cGVvZiBrJiYoaz1KU09OLnBhcnNlKGspKSwidW5kZWZpbmVkIiE9dHlwZW9mIGsmJgoJCW51bGwhPWsmJihrLmNvbnN0cnVjdG9yPT1bXS5jb25zdHJ1Y3Rvcnx8ay5jb25zdHJ1Y3Rvcj09e30uY29uc3RydWN0b3IpKXttPWsuc2Vzc2lvbmlkO2xhc3RWaWV3SUQ9ay52aWV3aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGsucHJvcGVydGllcyk7d2luZG93LmFjdGl2ZVNlc3Npb25JRD1tO3dpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lEO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1tO3ZhciB3PW5ldyBEYXRlO3cuc2V0VGltZSh3LmdldFRpbWUoKSs3MkU1KTt2YXIgdT0iOyBleHBpcmVzPSIrdy50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZD0iK20rdSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT0idXZpZXc9IitsYXN0Vmlld0lEK3UrIjsgcGF0aD0vIjthY3RpdmVVc2VyUHJvZmlsZU1uZy5fZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCl9fWNhdGNoKEIpe310cnl7bnVsbCE9CgkJc2l0ZVdlYnNvY2tldExpc3RlbmVyLnNpdGVpZCYmc2l0ZVdlYnNvY2tldExpc3RlbmVyLmNvbm5lY3QoKX1jYXRjaChCKXt9fX0pfX1jYXRjaChrKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzdGF0IHBhZ2UgZHVlIHRvIGVycm9yOiAiK2subWVzc2FnZSl9fSxsb2dQYWdlVmlldzpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9YSlmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylpZigtMSE9CgkJYVtiXS5zcmMuaW5kZXhPZigiL3VwbGlnaHQuanM\/IikpcmV0dXJuIHRoaXMubG9nUGFnZVZpZXdFeCgpO3ZhciBkPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBnZXRVcmxWYXJzJiYoZD1nZXRVcmxWYXJzKCkpO2dldEN1c3RvbVZSQj1mdW5jdGlvbihnLG4pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3VzdG9tX3ZhcmlhYmxlcyYmbnVsbCE9Y3VzdG9tX3ZhcmlhYmxlcylmb3IodmFyIHQgaW4gY3VzdG9tX3ZhcmlhYmxlcyl7aWYodC5uYW1lPT1nKXJldHVybiB0LnZhbHVlfWVsc2UgcmV0dXJuIG59O2dldENLVmFsdWU9ZnVuY3Rpb24oZyxuKXt2YXIgdD1udWxsO3RyeXt2YXIgdj1nZXRDdXN0b21WUkIoZyxudWxsKTsidW5kZWZpbmVkIiE9dHlwZW9mIHYmJm51bGwhPXYmJih0PXYpO2lmKG51bGw9PXQmJih0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoZyksbnVsbD09dCkpe2lmKG51bGw9PWR8fCJ1bmRlZmluZWQiPT10eXBlb2YgZFtnXSlyZXR1cm4idW5kZWZpbmVkIj09Cgl0eXBlb2Ygbj8iIjpuO3Q9ZFtnXX19Y2F0Y2goRCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcgY2tWYWx1ZSAtLSAlcyIsRC5tZXNzYWdlKX1yZXR1cm4gdH07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oZyxuKXtnPWcucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtnPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2crIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtnPW51bGw9PWc\/bnVsbDpnWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZ3x8bnVsbD09Z3x8MD09Zy50b1N0cmluZygpLmxlbmd0aD9uOmd9O2E9ZnVuY3Rpb24oKXtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm5bXTt2YXIgZz1bXTt0cnl7dmFyIG49W10sdD1mdW5jdGlvbihrLHcpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiIyIraykuYXR0cigiaWQiKSYmCgkoaz0kKCIjIitrKS52YWwoKSwic3RyaW5nIj09dHlwZW9mIGsmJjA8ay5sZW5ndGgmJi0xPT1rLmluZGV4T2YoIiMjIikpP2s6d307bi5wdXNoKCJwb3B1cCIpO24ucHVzaCgicGhvbmUiKTtuLnB1c2goImxhc3R2aWV3ZWQiKTtuLnB1c2goImV4cHJlc3NjYXIiKTtmb3IodmFyIHY9MDt2PG4ubGVuZ3RoO3YrKyl7dmFyIEQ9dChuW3ZdKyJtYWtlIixudWxsKTtpZihudWxsIT1EKXtnLnB1c2goRCk7Zy5wdXNoKHQoblt2XSsibW9kZWwiLG51bGwpKTtnLnB1c2godChuW3ZdKyJ5ZWFyIixudWxsKSk7YnJlYWt9fX1jYXRjaChrKXtnPVtdLGcucHVzaCgiIiksZy5wdXNoKCIiKSxnLnB1c2goIiIpfTA9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzE9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzI9PWcubGVuZ3RoJiZnLnB1c2goIiIpO3JldHVybiBnfTt2YXIgYz1iPSIiLGU9IiI7dHJ5e3ZhciBoPWEoKTtiPTA8aC5sZW5ndGg\/aFswXTpiO2M9MTxoLmxlbmd0aD9oWzFdOmM7ZT0yPGgubGVuZ3RoPwoJCWhbMl06ZX1jYXRjaChnKXtlPWM9Yj0iIn10cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hDcml0ZXJpYSYmbnVsbCE9c2VhcmNoQ3JpdGVyaWEpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09Ynx8MD09Yi5sZW5ndGgpYj0tMT09c2VhcmNoQ3JpdGVyaWEubWFrZT8iIjpzZWFyY2hDcml0ZXJpYS5tYWtlO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09Y3x8MD09Yy5sZW5ndGgpYz0tMT09c2VhcmNoQ3JpdGVyaWEubW9kZWw\/IiI6c2VhcmNoQ3JpdGVyaWEubW9kZWw7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxudWxsPT1lfHwwPT1lLmxlbmd0aCllPS0xPT1zZWFyY2hDcml0ZXJpYS55ZWFyPyIiOnNlYXJjaENyaXRlcmlhLnllYXJ9aWYobnVsbD09Ynx8MD09Yi5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtYWtlJiZudWxsIT1tYWtlJiYwPG1ha2UubGVuZ3RoJiYiMCIhPW1ha2U\/Yj1tYWtlOihiPSQoIiNwb3B1cG1ha2UiKS52YWwoKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgYiYmKGI9JCgiI2FjdGl2ZU1ha2UiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0kKCIjY2FyTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoJ2lucHV0W25hbWU9Im1ha2UiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWdldENLVmFsdWUoIm1ha2UiLCIiKSkpO2lmKG51bGw9PWN8fDA9PWMubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWwmJm51bGwhPW1vZGVsJiYwPG1vZGVsLmxlbmd0aCYmIjAiIT1tb2RlbD9jPW1vZGVsOihjPSQoIiNwb3B1cG1vZGVsIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjYWN0aXZlTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjY2FyTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCdpbnB1dFtuYW1lPSJtb2RlbCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9Z2V0Q0tWYWx1ZSgibW9kZWwiLAoJCSIiKSkpO2lmKG51bGw9PWV8fDA9PWUubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgeWVhciYmbnVsbCE9eWVhciYmIWlzTmFOKHllYXIpJiYwPHllYXIubGVuZ3RoJiYiMCIhPXllYXI\/ZT15ZWFyOihlPSQoIiNwb3B1cHllYXIiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiNhY3RpdmVZZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2NhclllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjeWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltYXhUZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCdpbnB1dFtuYW1lPSJ5bWluVGV4dCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9Z2V0Q0tWYWx1ZSgieWVhciIsKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSkpfWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiYKCWNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGlkZW50aWZ5aW5nIG1ha2UtbW9kZWwteWVhcjogIitnLm1lc3NhZ2UpLG51bGw9PWImJihiPSIiKSxudWxsPT1jJiYoYz0iIiksbnVsbD09ZSYmKGU9IiIpfXZhciBmPTA7aWYoITEhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmUpe2lmKCJVU0VEQ0FSUyI9PXdpbmRvdy5hY3RpdmVQYWdlKXt2YXIgcT0wOyQoImRpdi5ib3gxNzAgZGl2Lm1haW5fcGljYm94IGRpdi5ib3gyX2RldGFpbHNfbWlkIGRpdi5ib3gyX2RldGFpbHNfdGV4dCBzcGFuIikuZWFjaChmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudGV4dCgpOy0xIT1nLmluZGV4T2YoIiQiKSYmKHErKyxmKz1wYXJzZUludChnLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKX0pO2Y9MDxxP2YvcTowO2lzTmFOKGYpJiYoZj0wKX0wIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2N1cnJlbnRDYXJQcmljZSIpLmF0dHIoImlkIil8fAoJKGY9cGFyc2VJbnQoJCgiI2N1cnJlbnRDYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FyUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNleHByZXNzY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PQoJdHlwZW9mICQoIiNjYXJwcm9vZmNhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjc2VhcmNoUmVzdWx0c0F2Z1ByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtYXgiXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtYXgiXScpLnZhbCgpLnJlcGxhY2UoIiQiLAoJCSIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhclByaWNlIikuYXR0cigiaWQiKXx8KGY9JCgiI2NhclByaWNlIikuaGFzQ2xhc3MoImJveDJfZGV0YWlsc190ZXh0MjUiKT9wYXJzZUludCgkKCIjY2FyUHJpY2UiKS5jaGlsZHJlbigiOmZpcnN0IikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpOnBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnRleHQoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7aXNOYU4oZikmJihmPTApO3ZhciBwPTAseT0wOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZVNpdGVJRCYmbnVsbCE9d2luZG93LmFjdGl2ZVNpdGVJRCYmMCE9d2luZG93LmFjdGl2ZVNpdGVJRD9wPXdpbmRvdy5hY3RpdmVTaXRlSUQ6KHA9JCgiI3NpdGVJRCIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgcCYmKHA9JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgcCYmKHA9MCkpOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZURlYWxlcklEJiYoeT13aW5kb3cuYWN0aXZlU2l0ZUlEKTt2YXIgbD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxDPTA7aWYoInVuZGVmaW5lZCI9PWx8fDA9PWx8fCIwIj09bClpZihsPTAsInVuZGVmaW5lZCI9PXR5cGVvZiAkLmNvb2tpZSgidXNpZF90bXAiKSl7dmFyIEE9bmV3IERhdGU7QS5zZXRUaW1lKEEuZ2V0VGltZSgpKzcyRTUpO3ZhciB6PSI7IGV4cGlyZXM9IitBLnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkX3RtcD0xIit6KyI7IHBhdGg9LyJ9ZWxzZSBDPSEwO3ZhciBtPXdpbmRvdy5sb2NhdGlvbi5ocmVmOy0xPG0uaW5kZXhPZigic3RlcD1yZXN1bWUiKSYmKG0rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUoInNlc3NpZCIpPyQuY29va2llKCJzZXNzaWQiKToiTlVMTCIpKX12YXIgcj17c2lkOmwsdXVpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRBY3RpdmVQcm9maWxlaWQoKSwKCQlzaXRlaWQ6cCxkZWFsZXJpZDp5LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSx1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmIsbW9kZWw6Yyx5ZWFyOmlzTmFOKGUpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTplLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxwYWdlOiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVBhZ2U\/IiI6d2luZG93LmFjdGl2ZVBhZ2UscHJpY2U6ZixzbG9va3VwOkMsaHJlZjptfSx4PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7CgkJcj1KU09OLnN0cmluZ2lmeShyKTtyPXIucmVwbGFjZUFsbCgiLyIsIlxcLyIpO3RoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJQT1NUIix1cmw6eCsic2VydmljZS9zZXNzaW9uTW5nLnBocCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiLGRhdGE6cixkb25lOmZ1bmN0aW9uKGcpeyJzdHJpbmciPT10eXBlb2YgZyYmKGc9SlNPTi5wYXJzZShnKSk7InVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHxnLmNvbnN0cnVjdG9yIT1bXS5jb25zdHJ1Y3RvciYmZy5jb25zdHJ1Y3RvciE9e30uY29uc3RydWN0b3J8fChsPWcuc2Vzc2lvbmlkLGxhc3RWaWV3SUQ9Zy52aWV3aWQsYWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGcucHJvcGVydGllcyksd2luZG93LmFjdGl2ZVNlc3Npb25JRD1sLHdpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lELGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1sLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXNpZCIsCgkJCQlsLCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV2aWV3IixsYXN0Vmlld0lELCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfSxmYWlsOmZ1bmN0aW9uKGcsbix0KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBsb2cgcGFnZSB2aWV3LiBFcnJvcjogIit0Lm1lc3NhZ2UpfSxhbHdheXM6ZnVuY3Rpb24oKXt9fSl9fWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIrZy5tZXNzYWdlKX19LF9sb2FkUHJvcGVydGllczpmdW5jdGlvbihhKXt0cnl7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzPWEsYWN0aXZlVXNlclByb2ZpbGVNbmcucGFnZVZpZXdDb3VudD0KCQlhLnBhZ2V2aWV3cyl9Y2F0Y2goYil7fX0sZ2V0UHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc3x8bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzP251bGw6InVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV0\/InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6IiI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzW2FdfSxhZGRQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hLmxlbmd0aHx8InVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQpcmV0dXJuIG51bGw7InVuZGVmaW5lZCI9PXR5cGVvZiBkJiYoZD0iVVBEQVRFIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQl0aGlzLmFqYXhNbmcuYWpheCh7dHlwZToiR0VUIixhY3Rpb246ImFkZHByb3BlcnR5Iix1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLHNpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxwbmFtZTphLHB2YWx1ZTpiLHBtb2RlOmR9KTtyZXR1cm4hMH0sdGFnQnJvd3NlcjpmdW5jdGlvbihhLGIpe3RyeXt2YXIgZD1hLGM9dGhpcztpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YSlkPWZ1bmN0aW9uKGgpe3RyeXt2YXIgZj1uZXcgU3RyaW5nKGgpO2Y9Zi50cmltKCk7aWYoMDxmLmxlbmd0aCl7Yy5sb2dNc2coIlRhZ2dlZCB3aXRoIHV1aWQgPT4gIitmKTt2YXIgcT1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1mLnRyaW0oKTtudWxsIT1xJiYidW5kZWZpbmVkIiE9dHlwZW9mIHEubGVuZ3RoJiYKCTA8cS5sZW5ndGgmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCE9cSYmYy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfdjEiLHEsIi8iLDE4MCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCwiLyIsNUUzKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92bGQzIiwhMCwiLyIsNUUzKTtjLnNldEFjdGl2ZVByb2ZpbGVpZCgpfX1jYXRjaChwKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciByZXR1cm5lZCBmcm9tIHRhZ2dpbmc6ICIrcC5tZXNzYWdlKX19O3RoaXMubG9nTXNnKCJHZW5lcmF0aW5nIGZpbmdlcnByaW50Iik7dmFyIGU9dGhpcy5nZXRGUFVSSSgpO2MuYWpheE1uZy5nZXRTY3JpcHQoZSxmdW5jdGlvbigpe3RyeXt2YXIgaD1mdW5jdGlvbihsKXt0cnl7Yy5sb2dNc2coIkZpbmdlcnByaW50ZWQ6ICIrbCk7dmFyIEM9Yy5nZXRBY3RpdmVQcm9maWxlaWQoKSxBPWVuY29kZVVSSSh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fG51bGw9PWwpcmV0dXJuITE7dmFyIHo9ITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlJiYzPT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYoej0hMCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1ZnAiLGwsIi8iLDVFMyk7dmFyIG09e2Q6QSxmcDE6bC5zdWJzdHJpbmcoMCw4KSxmcDI6bC5zdWJzdHJpbmcoOCwxNiksZnAzOmwuc3Vic3RyaW5nKDE2LDI0KSxmcDQ6bC5zdWJzdHJpbmcoMjQsMzIpLHVpZDpDLGFjdGlvbjoidXBncmFkZWZwIixkYm06eix2OmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcmVzZXRWfSxyPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7Yy5sb2dNc2cocisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIpO2MubG9nTXNnKEpTT04uc3RyaW5naWZ5KG0pKTtjLmFqYXhNbmcuYWpheCh7dXJsOnIrInNlcnZpY2UvZDJjLnVwZ3JhZGUudjYuZnAuanMiLHR5cGU6IkdFVCIsZGF0YTptLAoJCQlkb25lOmZ1bmN0aW9uKHgpe3RyeXtjLmxvZ01zZygiVVVJRCBhZnRlciB1cHJvZmlsZSB1cGRhdGU6ICIreCksInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT1kP2QoeCk6Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLHgsIi8iLDVFMyksInVuZGVmaW5lZCIhPXR5cGVvZiBiJiZudWxsIT1iJiZiKCl9Y2F0Y2goZyl7fX19KX1jYXRjaCh4KXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgdGFnTWUgc3RlcDogIit4Lm1lc3NhZ2UpfX0sZj0hMTt0cnl7bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJXaW4iKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTGludXgiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFuZHJvaWQiKSwtMSE9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJsaWtlIE1hYyIpJiYoZj0hMCksbG9jYXRpb24ucHJvdG9jb2wuaW5kZXhPZigiaHR0cHMiKX1jYXRjaChsKXt9dmFyIHE9CgkJe3ByZXByb2Nlc3NvcjpudWxsLGF1ZGlvOnt0aW1lb3V0OjFFMyxleGNsdWRlSU9TMTE6Zn0sZm9udHM6e3N3ZkNvbnRhaW5lcklkOiJkY3RrZGl2ZnAyIixzd2ZQYXRoOiJmbGFzaC9jb21waWxlZC9Gb250TGlzdC5zd2YiLHVzZXJEZWZpbmVkRm9udHM6W10sZXh0ZW5kZWRKc0ZvbnRzOiExfSxzY3JlZW46e2RldGVjdFNjcmVlbk9yaWVudGF0aW9uOiEwfSxwbHVnaW5zOntzb3J0UGx1Z2luc0ZvcjpbL3BhbGVtb29uL2ldLGV4Y2x1ZGVJRTohMX0sZXh0cmFDb21wb25lbnRzOltdLE5PVF9BVkFJTEFCTEU6Im5vdCBhdmFpbGFibGUiLEVSUk9SOiJlcnJvciIsRVhDTFVERUQ6ImV4Y2x1ZGVkIn0scD0hMTtudWxsIT13aW5kb3cmJm51bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmKC0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImQyY2RlYnVnPTEiKXx8LTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKSkmJgoJKHA9ITApO3ZhciB5PWZ1bmN0aW9uKGwpe3RyeXt2YXIgQz1mdW5jdGlvbih6KXt6PXoubWFwKGZ1bmN0aW9uKG0pe3ZhciByPSIiO3RyeXtzd2l0Y2gocCYmY29uc29sZS5sb2cobS5rZXkudG9Mb3dlckNhc2UoKSksbS5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiY2FudmFzIjpjYXNlICJ3ZWJnbCI6Y2FzZSAiYWRibG9jayI6cj0iIjticmVhaztjYXNlICJ1c2VyYWdlbnQiOmlmKDA8bS52YWx1ZS5sZW5ndGgmJi0xIT1tLnZhbHVlLmluZGV4T2YoIiAiKSlmb3IodmFyIHg9bS52YWx1ZS5zcGxpdCgiICIpLGc9MDtnPHgubGVuZ3RoO2crKyl7dmFyIG49eFtnXTtpZigtMSE9bi5pbmRleE9mKCIvIikpe3ZhciB0PW4uc3BsaXQoIi8iKTtyKz10WzBdfWVsc2UtMT09bi5pbmRleE9mKCIuIikmJihyKz1uKX1wJiZjb25zb2xlLmxvZygiVXNlciBBZ2VudCAtLSAiK3IpO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheS5pc0FycmF5JiZBcnJheS5pc0FycmF5KG0udmFsdWUpfHwKCW0udmFsdWUuY29uc3RydWN0b3I9PT1BcnJheT8obS52YWx1ZS5zb3J0KCkscj1tLnZhbHVlLmpvaW4oKSk6cj1tLnZhbHVlfX1jYXRjaCh2KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIkZQIEZhaWxlZCAtLSAlcyAtICVvIix2Lm1lc3NhZ2UsbSl9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXI9IiI7cmV0dXJuIHJ9KTt6LnNvcnQoKTtyZXR1cm4gen0obCk7cCYmY29uc29sZS5sb2coInRvIGhhc2g6ICVvIixDKTt2YXIgQT1GaW5nZXJwcmludDIueDY0aGFzaDEyOChDLmpvaW4oIiIpLDMxKTtwJiZjb25zb2xlLmxvZygiRlAgPT4gJXMiLEEpO2goQSk7Yy5sb2dNc2coIkZpbmdlcnByaW50OiAiK0EpfWNhdGNoKHope2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAyIEZhaWxlZCAtLSAlcyIsei5tZXNzYWdlKX19O3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrP3JlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKXt0cnl7RmluZ2VycHJpbnQyLmdldChxLAoJCXkpfWNhdGNoKGwpe2MubG9nTXNnKCIxLlVuYWJsZSB0byBpbnN0YW50aWF0ZSBGUDIuIEVycm9yOiAiK2wubWVzc2FnZSl9fSk6c2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEseSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjIuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19LDUwMCl9Y2F0Y2gobCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgZXhlY3V0aW5nIGZpcnN0IHN0ZXA6ICIrbC5tZXNzYWdlKX19KX1jYXRjaChoKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitoLm1lc3NhZ2UpfX0sdXBkYXRlRlA6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmxvZ01zZygiU3RhcnRpbmcgU2FmYXJpIFJ1biIpO2lmKCExPT09dGhpcy5yZXNldFNlY29uZFBhc3Mpe3RoaXMucmVzZXRTZWNvbmRQYXNzPQoJCSEwO3RoaXMubG9nTXNnKCJTdGFydGluZyBmaXJzdCBwYXNzIik7dmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksYj10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfaW9zXzIiKTt0aGlzLmxvZ01zZygiVVVJRC4gIithKyIgLS0gSU9TUkVTRVQuICIrYik7bnVsbD09YXx8bnVsbD09Yj8odGhpcy5sb2dNc2coIkRyb3BwaW5nIHJlc2V0IGNvb2tpZSIpLHRoaXMuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX2lvc18yIiwxLCIvIiw1RTMpLHRoaXMudGFnQnJvd3NlcihudWxsKSk6KHRoaXMubG9nTXNnKCJTZWNvbmQgcGFzcywgbm90aGluZyB0byBkbyIpLHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKSl9ZWxzZSB3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9Y2F0Y2goZCl7dGhpcy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgdXBkYXRpbmcgbW9iaWxlIGNvb2tpZTogIitkLm1lc3NhZ2UpfX19Owp3aW5kb3cuX19fZDJjQ1RLTWV0aG9kPWZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmITAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlPXdpbmRvdy5qUXVlcnk\/ITA6ITE7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcHNpdGVpZCIpO2lmKG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYS52YWx1ZXx8aXNOYU4oYS52YWx1ZSkpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKCJMb2FkaW5nIGZwc3lzdGVtIG9uIG5vbiBkMmMgd2Vic2l0ZSIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT0hMTtlbHNlIHRyeXt3aW5kb3cuYWN0aXZlU2l0ZUlEPXBhcnNlSW50KGEudmFsdWUpfWNhdGNoKHApe3dpbmRvdy5hY3RpdmVTaXRlSUQ9dm9pZCAwfXZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNoZWNrU2NoZWR1bGVkUmVzZXQoKSxkPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWQiKTsKCWlmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVNlc3Npb25JRHx8bnVsbD09d2luZG93LmFjdGl2ZVNlc3Npb25JRCl3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPTA7bnVsbD09ZHx8aXNOYU4oZCl8fCh3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdmxkIik7dmFyIGM9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxlPWZ1bmN0aW9uKCl7dHJ5eyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LnN0YXRFeGVjdXRlZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3PyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlldygpLHdpbmRvdy5zdGF0RXhlY3V0ZWQ9ITApOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrCgkJCSJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJHRVQiLGRhdGE6e2FjdGlvbjoidW5rbm93biIsbXNnOiIxLkVpdGhlciBhY3RpdmVVc2VyUHJvZmlsZU1uZyBpcyBub3QgZGVmaW5lZCBvciBsb2dQYWdlVmlldyBpcyBub3QgZGVmaW5lZCJ9fSkpfWNhdGNoKHApe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ01zZyhwLm1lc3NhZ2UpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6cC5tZXNzYWdlfX0pfX0saD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksZj1udWxsPT1ofHwwPT1oLmxlbmd0aD8hMTohMDtoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO3ZhciBxPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2lmKCFiJiZmJiYKCQlxKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrKGUpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRHx8bnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCl3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW51bGwsd2luZG93LmFjdGl2ZVNlc3Npb25JRD1udWxsLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnRhZ0Jyb3dzZXIobnVsbCxmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSl9KX19Y2F0Y2gocCl7Yz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX2dldChjKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwP2FjdGlvbj11bmtub3duJm1zZz0yLiIrCgllbmNvZGVVUklDb21wb25lbnQocC5tZXNzYWdlKSksY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCIxLiBVbmV4cGVjdGVkIGVycm9yIG9jY3VyZWQgbG9hZGluZyB1cHJvZmlsZS5maW5hbC5qcy4gRXJyb3I6ICIrcC5tZXNzYWdlKX19Owp0cnl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2Rpc2FibGVJbnRlcm5hbFNlc3Npb24iKTtpZihudWxsIT1hJiYiMSI9PWEudmFsdWUpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1udWxsO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BzaXRlaWQiKTtudWxsIT1iJiYoYj1wYXJzZUludChiLnZhbHVlKSk7aXNOYU4oYil8fDIzNSE9Yj8oYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfcnN0IiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV2aWV3IiksCglhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZF90bXAiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3YxIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQzIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVmcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfaW9zXzIiKSk6Y29uc29sZS5sb2coImJ5cGFzc2luZyBjb29raWUgcHVyZ2UiKX1lbHNlImxvYWRpbmciIT1kb2N1bWVudC5yZWFkeVN0YXRlP3dpbmRvdy5fX19kMmNDVEtNZXRob2QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyP2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHdpbmRvdy5fX19kMmNDVEtNZXRob2QpOgoJZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXsiY29tcGxldGUiPT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9KX1jYXRjaChhKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjUuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIithLm1lc3NhZ2UpfTsKLyoqIC9qcy9qcXVlcnkucmV2ZWFsLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeXJldmVhbGpzX2Nfb249IjIwMjYtMDUtMDUgMTY6MzA6MDMiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oYil7YigiYm9keSIpLm9uKCJjbGljayIsImFbZGF0YS1yZXZlYWwtaWRdIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCk7YT1iKHRoaXMpLmF0dHIoImRhdGEtcmV2ZWFsLWlkIik7YigiIyIrYSkucmV2ZWFsKGIodGhpcykuZGF0YSgpKX0pO2IuZm4ucmV2ZWFsPWZ1bmN0aW9uKGEpe2E9Yi5leHRlbmQoe30se2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITAsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCIsY2xvc2VvbmVzY2FwZTohMH0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2Z1bmN0aW9uIGYoKXsib2JqZWN0Ij09dHlwZW9mIHBvcHVwU3VwZXJ2aXNvciYmc2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpO2c9ITF9dmFyIGM9Yih0aGlzKSxoPXBhcnNlSW50KGMuY3NzKCJ0b3AiKSksbT1jLmhlaWdodCgpKwpoLGc9ITEsZD1iKCIucmV2ZWFsLW1vZGFsLWJnIik7MD09ZC5sZW5ndGgmJihkPWIoJzxkaXYgY2xhc3M9InJldmVhbC1tb2RhbC1iZyIgLz4nKS5pbnNlcnRBZnRlcihjKSk7Yy5vbigicmV2ZWFsOm9wZW4iLGZ1bmN0aW9uKCl7dmFyIGs9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuaW5uZXJIZWlnaHQ\/d2luZG93LmlubmVySGVpZ2h0OmIod2luZG93KS5oZWlnaHQoKSxuPWIoYykub3V0ZXJIZWlnaHQoKTtiKGMpLm9mZnNldCgpO2IoZG9jdW1lbnQpLnNjcm9sbFRvcCgpO3ZhciBsPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjAsZT0oay1uKS8yK2w7ZT1lPGx8fGs8bj9sOmU7MDxiKCIjZDJjX2JvZHlDb250ZW50IikubGVuZ3RoJiYoZS09YigiI2QyY19ib2R5Q29udGVudCIpLm9mZnNldCgpLnRvcCk7MDxiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5sZW5ndGgmJmIoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLnNob3coKTtkLm9mZigiY2xpY2subW9kYWxFdmVudCIpOwpiKCIuIithLmRpc21pc3Ntb2RhbGNsYXNzKS5vZmYoImNsaWNrLm1vZGFsRXZlbnQiKTtnfHwoZz0hMCwiZmFkZUFuZFBvcCI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1tLG9wYWNpdHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGQuZmFkZUluKGEuYW5pbWF0aW9uc3BlZWQvMiksYy5kZWxheShhLmFuaW1hdGlvbnNwZWVkLzIpLmFuaW1hdGUoe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlKyJweCIsb3BhY2l0eToxfSxhLmFuaW1hdGlvbnNwZWVkLGYoKSkpLCJmYWRlIj09YS5hbmltYXRpb24mJihjLmNzcyh7b3BhY2l0eTowLHZpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlfSksZC5mYWRlSW4oYS5hbmltYXRpb25zcGVlZC8yKSxjLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQvMikuYW5pbWF0ZSh7b3BhY2l0eToxfSxhLmFuaW1hdGlvbnNwZWVkLGYoKSkpLCJub25lIj09YS5hbmltYXRpb24mJgooYy5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlfSksZC5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLGYoKSksImV4dGVybmFsQW5pbWF0aW9uIj09YS5hbmltYXRpb24mJihjLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2UsZGlzcGxheToibm9uZSJ9KS5zaG93KCksZC5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLGYoKSkpO2Mub2ZmKCJyZXZlYWw6b3BlbiIpfSk7Yy5vbigicmV2ZWFsOmNsb3NlIixmdW5jdGlvbigpe2IoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiIik7YigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikuaGlkZSgpO2lmKCFnJiYoZz0hMCwiZmFkZUFuZFBvcCI9PWEuYW5pbWF0aW9uJiYoZC5kZWxheShhLmFuaW1hdGlvbnNwZWVkKS5mYWRlT3V0KGEuYW5pbWF0aW9uc3BlZWQpLGMuYW5pbWF0ZSh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLW0rInB4IixvcGFjaXR5OjB9LAphLmFuaW1hdGlvbnNwZWVkLzIsZnVuY3Rpb24oKXtjLmNzcyh7dG9wOmgsb3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtmKCl9KSksImZhZGUiPT1hLmFuaW1hdGlvbiYmKGQuZGVsYXkoYS5hbmltYXRpb25zcGVlZCkuZmFkZU91dChhLmFuaW1hdGlvbnNwZWVkKSxjLmFuaW1hdGUoe29wYWNpdHk6MH0sYS5hbmltYXRpb25zcGVlZCxmdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aH0pO2YoKX0pKSwibm9uZSI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmh9KSxkLmNzcyh7ZGlzcGxheToibm9uZSJ9KSksImV4dGVybmFsQW5pbWF0aW9uIj09YS5hbmltYXRpb24pKWMuaGlkZSgpLm9uZSgiYW5pbWF0aW9uRW5kIixmdW5jdGlvbigpe2IodGhpcykuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpoLGRpc3BsYXk6Im5vbmUifSk7ZC5jc3Moe2Rpc3BsYXk6Im5vbmUifSl9KTtjLm9mZigicmV2ZWFsOmNsb3NlIik7CiJ1bmRlZmluZWQiIT10eXBlb2YgYS5jbG9zZWQmJmEuY2xvc2VkKCl9KTtjLnRyaWdnZXIoInJldmVhbDpvcGVuIik7YigiLiIrYS5kaXNtaXNzbW9kYWxjbGFzcykub24oImNsaWNrLm1vZGFsRXZlbnQgdG91Y2hzdGFydCIsZnVuY3Rpb24oKXtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7YS5jbG9zZW9uYmFja2dyb3VuZGNsaWNrJiYoZC5jc3Moe2N1cnNvcjoicG9pbnRlciJ9KSxkLm9uKCJjbGljay5tb2RhbEV2ZW50IixmdW5jdGlvbigpe2MudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KSk7aWYoYS5jbG9zZW9uZXNjYXBlKWIoImJvZHkiKS5vbigia2V5dXAiLGZ1bmN0aW9uKGspezI3PT09ay53aGljaCYmYy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pfSl9fSkoalF1ZXJ5KTsKLyoqIC9qcy9wYXltZW50Q2FsY3VsYXRvci5qcyAqKi8KdmFyIF9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDUtMDggMDk6MzA6MDYiOyd1c2Ugc3RyaWN0JztmdW5jdGlvbiBwb3B1cENhbGN1bGF0b3JJbml0aWFsaXplZCgpe2Z1bmN0aW9uIGEoKXtlJiZlLmFib3J0KCk7Y2FsY1VwZGF0ZVBheW1lbnRYaHImJihjYWxjVXBkYXRlUGF5bWVudFhoci5hYm9ydCgpLGNhbGNVcGRhdGVQYXltZW50WGhyPW51bGwpO3ZhciBjPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksZz1nZXRPcHRpb25zQW1vdW50KGIpLHI9Z2V0QWNjZXNzb3JpZXNBbW91bnQoYik7bGV0IG09Z2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhiKTt2YXIgbj1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYikscD1iLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1iLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fAoiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCksdz1iLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP2Iuc3RvY2tOdW1iZXI6IiIsej1iLmhhc093blByb3BlcnR5KCJ2aW4iKT9iLnZpbjoiIix0PXBhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApO2lmKHAmJiF3KXt2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO3YmJih3PXYudmFsdWV8fCIiKX1wJiYheiYmKHY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoej12LnZhbHVlfHwiIik7cCYmIWIuc3R5bGVpZCYmKHY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihiLnN0eWxlaWQ9di52YWx1ZXx8Yi5zdHlsZWlkKTtpZigiY2FzaCI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKWVuYWJsZUNhc2hPcHRpb24oKTsKZWxzZXt2PXBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwwKSt0O3ZhciBCPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3EuY2hlY2tlZCYmKHE9cS5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZCLnB1c2gocSl9KTt2YXIgeD1udWxsO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoeD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpKTt2YXIgQT0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpOyFBJiZ4JiZ4WzNdJiYoQT14WzNdKTt2YXIgZj0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKTshZiYmeCYmCnhbMF0mJihmPXhbMF0pOyEkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpJiZ4JiZ4WzJdJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCh4WzJdKTtlPSQuYWpheCh7dXJsOmMsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6Yi5zdHlsZWlkLHBheW1lbnRUeXBlOmYsZG93bnBheW1lbnQ6dixvcHRpb25zQW1vdW50OmcscGF5bWVudEZyZXF1ZW5jeTokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLGttQWxsb3dhbmNlOkEsb3B0aW9uczpnLGlzSW52ZW50b3J5OnAsc246dyx2aW46eixjb25kaXRpb25hbFJlYmF0ZUlkczpCLmpvaW4oIiwiKSxhY2Nlc3NvcmllczpyLHNlbGVjdGVkQWNjZXNzb3JpZXM6bSxwcm90ZWN0aW9uUGxhbnM6bn0sc3VjY2VzczpmdW5jdGlvbihxKXtxLmN1cnJlbnRQYXltZW50JiZxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHQpLApmPSJsZWFzZSI9PT1mPyJsZWFzaW5nIjoiZmluYW5jZSI9PT1mPyJmaW5hbmNpbmciOmYsImNhc2giPT09ZiYmKCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkscS5jdXJyZW50UGF5bWVudCYmMCE9PXEuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1mPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsCiExKSxxLmN1cnJlbnRQYXltZW50JiYwPHEuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwocS5jdXJyZW50UGF5bWVudFswXS5pbnRlcnZhbCksZj1mfHwoImxlYXNlIj09PXEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKSxzaG93SGlkZVBheW1lbnRTZWN0aW9uKHEsZiksMD49JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikubGVuZ3RoJiYKcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24ocSksImxlYXNpbmciPT1mPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpLGdldENhc2hQcmljZUJsb2NrKHEpLCJjYXNoIj09PWY\/ZW5hYmxlQ2FzaE9wdGlvbigpOihxLmN1cnJlbnRQYXltZW50JiZxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmc2hvd1BheW1lbnRzKHEuY3VycmVudFBheW1lbnQscS5wYXltZW50RmVlcyxxLm1ha2VpZCxxKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdOmNoZWNrZWQnKTt5Lmxlbmd0aCYmIk5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYoeT17Y3VycmVudFBheW1lbnQ6eS5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksCmN1cnJlbnRSYXRlOnkuYXR0cigiZGF0YS1yYXRlIikscGF5bWVudFRlcm06eS52YWwoKSxwYXltZW50VHlwZTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxwYXltZW50SW50ZXJ2YWw6JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxwYXltZW50RG93blBheW1lbnQ6cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fDApK3BhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApLHRvdGFsSW50ZXJlc3Q6eS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxsdXhlVGF4QW1vdW50OnkuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscmF0ZVR5cGU6eS5hdHRyKCJkYXRhLXJhdGV0eXBlIiksZWZmZWN0aXZlUmF0ZTp5LmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpLHRvdGFsQ29zdDp5LmF0dHIoImRhdGEtdG90YWxDb3N0Iil9LApjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHkpKX0sMjUwKSkpfSxlcnJvcjpmdW5jdGlvbihxLHksRCl7Y29uc29sZS5lcnJvcigibG9hZFBheW1lbnRzOjogUGF5bWVudCBjYWxjdWxhdGlvbiBlcnJvcjoiLHksRCl9fSl9fXZhciBlPW51bGw7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub24oImNsaWNrIixmdW5jdGlvbihjKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKTskKHRoaXMpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3N3aXRjaCghMCl7Y2FzZSAibGVhc2luZyI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmIuaGlkZGVuPQohMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTtzaG93RGlzY2xhaW1lckxpbmsoKTticmVhaztjYXNlICJmaW5hbmNpbmciPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpiLmhpZGRlbj0hMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTtzaG93RGlzY2xhaW1lckxpbmsoKTticmVhaztjYXNlICJjYXNoIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6aGlkZURpc2NsYWltZXJMaW5rKCksYi5oaWRkZW49ITEsJCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLApudWxsIT09Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihiPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksYlswXT0iY2FzaCIsQ29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixiLmpvaW4oIi0iKSxudWxsLCIvIikpLHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCwidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5zZXRCTlBWaWV3JiZtb2RlbENvbmZpZy5zZXRCTlBWaWV3KCEwLCJjYXNoIil9bGV0IGc7MSE9KG51bGw9PWM\/dm9pZCAwOm51bGw9PShnPWMuZGV0YWlsKT92b2lkIDA6Zy5pc0ZpcnN0UnVuKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS50cmlnZ2VyKCJibHVyIil9KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9uKCJjaGFuZ2UiLApmdW5jdGlvbigpe2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGM9cGFyc2VJbnQoJCh0aGlzKS52YWwoKS5yZXBsYWNlKC9bXlxkXS9nLCIiKSl8fDA7aWYoImxlYXNpbmciPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikpe3ZhciBiPXBhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZvclRyaW0iKS52YWwoKSl8fDA7MDxiJiZjPmImJihjPWIpfWVsc2UgYj1wYXJzZUludCgkKCIjbWF4RG93blBheW1lbnRGaW5hbmNlRm9yVHJpbSIpLnZhbCgpKXx8MCwwPGImJmM+YiYmKGM9Yik7JCh0aGlzKS52YWwoYyk7YSgpfSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGM9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsYj1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8CjA7Yj1iPmM\/YzpiOyQodGhpcykudmFsKGIpO19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIsSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmJ9KSwxKTthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwKJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikub24oImNsaWNrIixmdW5jdGlvbigpe2dldFBvcENvbnRhaW5TZXR0aW5ncygpLmFscmVhZHlJbml0PSEwO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITApO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMTt2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJm1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIC5jbG9zZS1yZXZlYWwtbW9kYWwiKS5vbigiY2xpY2siLApmdW5jdGlvbigpe3ZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmKG1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKSwkKCIjZHJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciIpLmxlbmd0aCYmJCgiI2RyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKS5pcygiOnZpc2libGUiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIikuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIikuc3R5bGUuZGlzcGxheT0ibm9uZSIpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBjPWdldFBvcENvbnRhaW5TZXR0aW5ncygpO2Muc3R5bGVpZD0kKHRoaXMpLnZhbCgpOwokKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aCYmJCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoYy5zdHlsZWlkKTtwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpO3VwZGF0ZVVybChjKX0pOyQoImJvZHkiKS5vbigiY2xpY2sgdGFwIiwiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgKiIsZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJyxmdW5jdGlvbigpe3ZhciBjPSQodGhpcykudmFsKCksYj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJysKYysnIl1bZGF0YS1yYXRldHlwZT0iJytiKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytjKyciXVtkYXRhLXJhdGV0eXBlPSInK2IrJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpLnZhbCgpLGI9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrCmMrJyJdW2RhdGEtcmF0ZXR5cGU9IicrYisnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCkudHJpZ2dlcigiY2hhbmdlIil9KTt2YXIgZD0hMTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgYz1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxiPSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpLGc9JCh0aGlzKS52YWwoKSxyPSQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCksbT0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpLG49JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKT8kKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpOjAscD0kKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKT8KJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCk6MDtuPXBhcnNlSW50KG4pK3BhcnNlSW50KHApO249bi50b0ZpeGVkKDApO3A9YisiLSIrZysiLSIrcisiLSIrbSsiLSIrbjtwIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmbnVsbCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJih3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITAsdm9pZCAwIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiZ2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmKGQ9ITAsbW9kZWxDb25maWcuc2V0Qk5QVmlldyhkLGIpKSxudWxsIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmCkNvb2tpZXMuc2V0KCJwcmV2aW91c3BheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSxudWxsLCIvIikpO2R8fCJ1bmRlZmluZWQiPT10eXBlb2YgbW9kZWxDb25maWd8fCJ1bmRlZmluZWQiPT09dHlwZW9mIG1vZGVsQ29uZmlnfHx2b2lkIDA9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKXx8bW9kZWxDb25maWcuc2hvdWxkUmVsb2FkQk5QVmlld09uUGF5bWVudENoYW5nZShkLGIpO0Nvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIscCxudWxsLCIvIik7dmFyIHc9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Im1vbnRocyI6Im1vaXMiLHo9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiQiK24rIiBkb3duIHBheW1lbnQiOm4rIiAkIGNvbXB0YW50IjtwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwoicGVyIHdlZWsgZm9yIjoicGFyIHNlbWFpbmUgcG91ciI7c3dpdGNoKHIpe2Nhc2UgIndlZWtseSI6cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIHdlZWsgZm9yIjoicGFyIHNlbWFpbmUgcG91ciI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOnA9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciAyIHdlZWtzIGZvciI6InBhciAyIHNlbWFpbmVzIHBvdXIiO2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJ0d2ljZSBhIG1vbnRoIGZvciI6IjIgZm9pcyBwYXIgbW9pcyBwb3VyIjticmVhaztjYXNlICJtb250aGx5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgbW9udGggZm9yIjoicGFyIG1vaXMgcG91ciJ9bT0ibGVhc2luZyI9PT1iP20rImttIjoiIjt2YXIgdD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8ibGVhc2luZyI9PT1iPyJMZWFzaW5nIjoiRmluYW5jaW5nIjoKImxlYXNpbmciPT09Yj8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCI7Yy52ZWhpY2xlSW5mbyYmKGVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZT1jLnZlaGljbGVJbmZvLm1ha2UrIiAiKyhjLnZlaGljbGVJbmZvLm1vZGVsfHxjLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lKSsiICIrYy52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSxlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Yy52ZWhpY2xlSW5mby55ZWFyKyIgIitlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU6ZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlKyIgIitjLnZlaGljbGVJbmZvLnllYXIsZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlKz0iKCIrdCsiICIrcCsiICIrZysiICIrdysiLiAiK3orIi4gIittKyIpIixlbWFpbEhhbmRsZXIubWFrZT1jLnZlaGljbGVJbmZvLm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPWMudmVoaWNsZUluZm8ubW9kZWx8fGMudmVoaWNsZUluZm8uQ0ZNb2RlbE5hbWUsCmVtYWlsSGFuZGxlci50cmltPWMudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnllYXI9Yy52ZWhpY2xlSW5mby55ZWFyKTtpZigiTkVXQ0FSUyIhPT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSl7cD0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTtjPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7bT0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpO3c9JCh0aGlzKS5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKTt6PSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIik7dD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTt2YXIgdj0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxDb3N0Iik7Y2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh7Y3VycmVudFBheW1lbnQ6cCxjdXJyZW50UmF0ZTpjLHBheW1lbnRUZXJtOmcscGF5bWVudFR5cGU6YixwYXltZW50SW50ZXJ2YWw6ciwKcGF5bWVudERvd25QYXltZW50Om4sdG90YWxJbnRlcmVzdDptLGx1eGVUYXhBbW91bnQ6dyxyYXRlVHlwZTp0LGVmZmVjdGl2ZVJhdGU6eix0b3RhbENvc3Q6dn0pfXo9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IjtpZigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoKXt3PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCI7cD0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTtjPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7bT0iMSI9PSQoIiNyb3VuZFBheW1lbnQiKS52YWwoKT8wOjI7dD1wYXJzZUZsb2F0KHApLnRvRml4ZWQobSk7dD10LnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEIseCl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3grIjwvc3VwPiJ9KTtwPSQoIiNJTlRFUlZBTF9TSE9SVF9XRUVLTFkiKS52YWwoKTttPTUyO3N3aXRjaChyKXtjYXNlICJ3ZWVrbHkiOnA9CiQoIiNJTlRFUlZBTF9TSE9SVF9XRUVLTFkiKS52YWwoKTttPTUyO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9CSVdFRUtMWSIpLnZhbCgpO209MjY7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOnA9JCgiI0lOVEVSVkFMX1NIT1JUX1NFTUlNT05USExZIikudmFsKCk7bT0yNDticmVhaztjYXNlICJtb250aGx5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9NT05USExZIikudmFsKCksbT0xMn1yPXorIi8iK3A7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiJibHVyIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKSYmKHQ9JzxzcGFuIGNsYXNzPSJibHVyLXByaWNlIj4nK3QrIjwvc3Bhbj4iKTtwPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHQpO249RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobikrKCJFTkdMSVNIIj09PXc\/IiBkb3duIjoiIGNvbXB0YW50Iik7Yj0iZmluYW5jaW5nIj09PQpiPyJFTkdMSVNIIj09PXc\/ZysiIG1vbnRocyBmaW4uIjoiRmluLiAiK2crIiBtb2lzIjoiRU5HTElTSCI9PT13P2crIiBtb250aHMgbGVhc2UiOiJMb2MuICIrZysiIG1vaXMiO2M9cGFyc2VGbG9hdChjKS50b0ZpeGVkKDIpKyIlIjt3PWIrIiAvICIrbisiIEAgIitjKyI6IjtpZigxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkpe2c9cGFyc2VJbnQocGFyc2VJbnQoZykvMTIqbSk7bT1zdG9yZS5nZXQoImkxOG4iKS5QQVlNRU5UUy50b0xvd2VyQ2FzZSgpO2lmKCIxNzcxIj09PSQoIiNzaXRlSUQiKS52YWwoKXx8IjIyMDkiPT09JCgiI3NpdGVJRCIpLnZhbCgpKW4rPSc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTctZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjciPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSI3Ij43PC9zdXA+PC9hPicsCnArPSc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj4zPC9zdXA+PC9hPic7dz1iKyIgLyAiK2crIiAiK20rIiAvICIrbisiIEAgIitjKyI6In0kKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC1wYXltZW50LWRlc2MiKS5odG1sKHcpOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXBheW1lbnQtYW1vdW50IikuaHRtbChwKTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC10YXgtdHh0IikudGV4dChyKTtnPSQodGhpcykuY2xvc2VzdCgiLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKTsiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpJiYoZz0kKHRoaXMpLmNsb3Nlc3QoIi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZmluZCgiLnBheW1lbnRUb29sdGlwIikpOwpnPWcuYXR0cigiZGF0YS10b29sdGlwIik7Zz1TdHJpbmcoZykucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7Iik7Y2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2UoZyk7InVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJihtb2RlbENvbmZpZy5zYXZlQ29uZmlnKCksbW9kZWxDb25maWcuY2FsY3VsYXRlQWNjUGF5bWVudHMoKSl9fSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IixmdW5jdGlvbigpe2lmKCQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIil8fCQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpKSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpP2NhbGNVcGRhdGVQYXltZW50SW5mbygpOgphKCl9KX1mdW5jdGlvbiBlc2NhcGVIVE1MKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpfXZhciBjdGFQYXltZW50VGV4dEZyPVtdLGN0YVBheW1lbnRUZXh0RW49W10sY2FsY0N1clBheW1lbnQ9e30sY3RhUGF5bWVudFZhbHVlcz1bXSxjYXNoUHJpY2VGb3JQYWdlPW51bGwsY2FsY1VwZGF0ZVBheW1lbnRYaHI9bnVsbDsKZnVuY3Rpb24gdXBkYXRlVXJsKGEpe3RyeXtpZighYS52ZWhpY2xlSW5mbylyZXR1cm47dmFyIGU9YS52ZWhpY2xlSW5mbyxkPSJ1bmRlZmluZWQiIT10eXBlb2YgbmV3Y2FyRGV0YWlscz9uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLnN0eWxlczplLm1vZGVsSlNPTi5zdHlsZXMsYz13aW5kb3cucGFyZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoIi8iKS5zbGljZSgwLC0xKS5qb2luKCIvIiksYj1kLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09YS5zdHlsZWlkfSkucG9wKCl9Y2F0Y2goZyl7Y29uc29sZS5lcnJvcihnKTtyZXR1cm59YiYmKGQ9Yi5lbmdsaXNoVHJpbXx8IiIsZT1nZXRDdXJyZW50VmVoaWNsZVBhdGgoZSkrIi0iK2QucmVwbGFjZSgvXHN8LS9nLCIgIiksZC5sZW5ndGgmJndpbmRvdy5wYXJlbnQuaGlzdG9yeS5wdXNoU3RhdGUoe30sIiIsYysiLyIrZSsiLmh0bWwiKSl9CmZ1bmN0aW9uIGNoYW5nZUJuUFRvb2xUaXBNZXNzYWdlKGEpe2E9JzxzcGFuIGNsYXNzPSJwYXltZW50VG9vbHRpcCBmYWwgZmEtaW5mby1jaXJjbGUiIGRhdGEtdG9vbHRpcD0iJythKyciPjwvc3Bhbj4nOyQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCIpLmh0bWwoYSk7dHJ5e3ZhciBlPSQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCAucGF5bWVudFRvb2x0aXAiKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTskKCIucGF5bWVudEluZm9CdWJibGVCblAgLnBheW1lbnRUb29sdGlwIikuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZSxncmF2aXR5OiJzb3V0aCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmYWRlSW4ifSl9Y2F0Y2goZCl7fX0KZnVuY3Rpb24gcG9wdXBpemVyT25DbG9zZShhLGUpeyJwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIiE9PWEuY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50LmlkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITEsd2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkub3BlbigxKSwkKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLHBvcHVwaXplck9uQ2xvc2UpKX0KZnVuY3Rpb24gZ2V0UG9wQ29udGFpblNldHRpbmdzKCl7dmFyIGE9JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5kYXRhKCJwb3B1cFNldHRpbmdzIik7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cz0hMTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHM9ITE7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYSlyZXR1cm4hMTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaERldGFpbHMmJnNlYXJjaERldGFpbHMudmVoaWNsZT8oYS5wYXltZW50VHlwZT0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKT8iZmluYW5jZSI6YS5wYXltZW50VHlwZSxhLnBheW1lbnRUeXBlPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0UGF5bWVudHx8ITEpPyJsZWFzZSI6YS5wYXltZW50VHlwZSxhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8CiExKT8hMDohMSxhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHM9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRQYXltZW50fHwhMSk\/ITA6ITEpOihhLnBheW1lbnRUeXBlPSIxIj09KGEubm9MZWFzZXx8ITEpPyJmaW5hbmNlIjphLnBheW1lbnRUeXBlLGEucGF5bWVudFR5cGU9IjEiPT0oYS5ub0ZpbmFuY2V8fCExKT8ibGVhc2UiOmEucGF5bWVudFR5cGUsYS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cz0iMSI9PShhLm5vTGVhc2V8fCExKT8hMDohMSxhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHM9IjEiPT0oYS5ub0ZpbmFuY2V8fCExKT8hMDohMSk7cmV0dXJuIGF9CmZ1bmN0aW9uIGNoYW5nZVBhZ2VQYXltZW50VmFsdWUoYSl7dmFyIGU9YS5jdXJyZW50UGF5bWVudCxkPWEuY3VycmVudFJhdGUsYz1hLnBheW1lbnRUZXJtLGI9YS5wYXltZW50VHlwZSxnPWEucGF5bWVudEludGVydmFsLHI9YS5wYXltZW50RG93blBheW1lbnQsbT1hLnRvdGFsSW50ZXJlc3Qsbj1hLmx1eGVUYXhBbW91bnQscD1hLnJhdGVUeXBlLHc9YS5lZmZlY3RpdmVSYXRlLHo9YS50b3RhbENvc3QsdD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsdj1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxCPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUm91bmRQYXltZW50IikudmFsKCk\/MDoyLHg9Mj09Qj9NYXRoLmZsb29yKHBhcnNlRmxvYXQoZSkpLnRvRml4ZWQoMCk6cGFyc2VGbG9hdChlKS50b0ZpeGVkKDApO2U9cGFyc2VGbG9hdChlKS50b0ZpeGVkKEIpO0I9ZS5zcGxpdCgiLiIpWzFdfHwiIjtlPWUucmVwbGFjZSgvXC4oWzAtOV0qKS8sCmZ1bmN0aW9uKEMsRSl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0UrIjwvc3VwPiJ9KTsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmImJsdXIiPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpJiYoZT0nPHNwYW4gY2xhc3M9ImJsdXItcHJpY2UiPicrZSsiPC9zcGFuPiIpO3ZhciBBPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGUpLGY9ZSsiJCIscT0iJCIrZSx5PSJsZWFzaW5nIj09PWI\/IkxvY2F0aW9uIjoiRmluYW5jZW1lbnQiLEQ9ImxlYXNpbmciPT09Yj8iTGVhc2luZyI6IkZpbmFuY2luZyIsdT1kKyIlIixoPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6Iit0eCIsaz1oKyIvbW9pcyIsbD1oKyIvbXRoIjtzd2l0Y2goZyl7Y2FzZSAid2Vla2x5IjprPWgrIi9zZW0iO2w9aCsiL3dlZWsiO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjprPQpoKyIvMnNlbSI7bD1oKyIvMndlZWsiO2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjprPWgrIi9iaW1lbnN1ZWwiO2w9aCsiL3NlbWltb250aGx5IjticmVhaztkZWZhdWx0Oms9aCsiL21vaXMiLGw9aCsiL21vbnRoIn1sZXQgRj1oPSIiOzEhPSQoIiNpc0RSU2l0ZSIpLmxlbmd0aHx8IjEiIT0kKCIjaXNEUlNpdGUiKS52YWwoKXx8IjE3NzEiIT09JCgiI3NpdGVJRCIpLnZhbCgpJiYiMjIwOSIhPT0kKCIjc2l0ZUlEIikudmFsKCl8fChGPSc8c3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj4zPC9zdXA+PC9hPjwvc3Bhbj4nLGg9JzxzcGFuPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIiAgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJkaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNy1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iNyI+PHN1cCBkYXRhLWRpc2NsYWltZXItaWQ9IjciPjc8L3N1cD48L2E+PC9zcGFuPicpOwp2YXIgRz0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKT8ic2NyYXRjaCI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCk\/InN0cmlrZS1wcmljZS1ibGFjayI6IiI6IiIsSD1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShyKSsiIGNvbXB0YW50IixMPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHIpKyIgZG93biBwYXltZW50IjtyPXkrIiAiK2MrIiBtb2lzIjtEPUQrIiAiK2MrIiBtb250aHMiO0E9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCAnK0crJyI+JytBKyI8L3NwYW4+ICIrRisnIEAgPHNwYW4gY2xhc3M9InR4dC1wYXltZW50Ij4nK3UrIjwvc3Bhbj4iOzA8dy1kJiYoQSs9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQodywnIGNsYXNzPSJ0eHQtcGF5bWVudCIgJykpO3c9KCJFTkdMSVNIIj09PXQ\/bDprKSsiICIrKCJFTkdMSVNIIj09PXQ\/TDpIKStoKygiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpPyIiOgonIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7Y29sb3I6IzAwMDsiIGNsYXNzPSJ2ZHBJbmZvVG9vbHRpcCBmYXIgZmEtaW5mby1jaXJjbGUiPjwvc3Bhbj4nKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMiwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTEiKS5odG1sKCJFTkdMSVNIIj09PXQ\/RDpyKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMSwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTIiKS5odG1sKEEpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUzLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMyIpLmh0bWwodyk7aD1BPSIiO2NhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50JiZjYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudC5sZW5ndGgmJihoPWNhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50WzBdLnRvdGFsLEE9YEFmZmljaMODwqkgw4PCoCAke2h9JGAsCmg9YExpc3RlZCBhdCAkJHtofWApO2N0YVBheW1lbnRUZXh0RnI9W2Ake2Z9ICR7a31gLGAke3J9IEAgJHt1fWAsYCR7QX1gXTtjdGFQYXltZW50VGV4dEVuPVtgJHtxfSAke2x9YCxgJHtEfSBAICR7dX1gLGAke2h9YF07Y3RhUGF5bWVudFZhbHVlcz1bYS5jdXJyZW50UGF5bWVudCxkLGMsZ107d2luZG93LnBhcmVudC5BTVAmJndpbmRvdy5wYXJlbnQuQU1QLnNldFN0YXRlKHtTU1JfU1RBVEU6e2xlYXNlVGVybVRleHQ6IkVOR0xJU0giPT09dD9EOnIsbGVhc2VQYXltZW50VHh0OngsbGVhc2VQYXltZW50RGVjaW1hbDpCLGxlYXNlUmF0ZTp1LGxlYXNlVGF4VGV4dDp3fX0pO2NhbGNDdXJQYXltZW50LmN1clRlcm09YztjYWxjQ3VyUGF5bWVudC5jdXJSYXRlPWQ7Y2FsY0N1clBheW1lbnQuY3VySW50ZXJ2YWw9ZztjYWxjQ3VyUGF5bWVudC50YXhUZXh0RnI9aztjYWxjQ3VyUGF5bWVudC50YXhUZXh0RW49bDthPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrCiIvYWpheC9nZXRQYXltZW50VG9vbHRpcEJ5U3R5bGVJRD93c3dpZHRoPTAiO2I9ImxlYXNpbmciPT1iPyJsZWFzZSI6ImZpbmFuY2UiO3Q9Z2V0T3B0aW9uc0Ftb3VudCh2KTt4PXYuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PXYubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PT0kKCIjUEFHRUlEIikudmFsKCk7Qj12Lmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3Yuc3RvY2tOdW1iZXI6IiI7Zj12Lmhhc093blByb3BlcnR5KCJ2aW4iKT92LnZpbjoiIjtxPWdldEFjY2Vzc29yaWVzQW1vdW50KHYpO3U9Z2V0U2VsZWN0ZWRBY2Nlc3Nvcmllcyh2KTtrPWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudCh2KTtsZXQgTj1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihDKXtDLmNoZWNrZWQmJgooQz1DLmdldEF0dHJpYnV0ZSgiZGF0YS1jb25kaXRpb25hbC1yZWJhdGUtaWQiKSkmJk4ucHVzaChDKX0pO3gmJiFCJiYobD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpKSYmKEI9bC52YWx1ZXx8IiIpO3gmJiFmJiYobD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJihmPWwudmFsdWV8fCIiKTskLmFqYXgoe3VybDphLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJIVE1MIixkYXRhOntzdHlsZWlkOnYuc3R5bGVpZCx0eXBlOmIscGF5bWVudDpwYXJzZUZsb2F0KGUpLHRlcm06cGFyc2VJbnQoYykscmF0ZTpwYXJzZUZsb2F0KGQpLGludGVydmFsOmcsb3B0aW9uczp0LHRvdGFsSW50ZXJlc3Q6bSxpc0ludmVudG9yeTp4LHNuOkIsdmluOmYsbHV4ZVRheEFtb3VudDpuLHJhdGVfdHlwZTpwLHRvdGFsQ29zdDp6LGNvbmRpdGlvbmFsUmViYXRlSWRzOk4uam9pbigiLCIpLGFjY2Vzc29yaWVzOnEsc2VsZWN0ZWRBY2Nlc3Nvcmllczp1LHByb3RlY3Rpb25QbGFuczprfSwKYmVmb3JlU2VuZDpmdW5jdGlvbihDKXt0cnl7bGV0IEU9JCgibWV0YVtuYW1lPSdjc3JmLWRvbWFpbi1jaGVjayddIik7RS5sZW5ndGgmJkMuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLEUuYXR0cigiY29udGVudCIpKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKEMpfX0sc3VjY2VzczpmdW5jdGlvbihDKXskKCIjZGFya3Rvb2x0aXAtcGF5bWVudFdyYXBwZXIsICNkYXJrdG9vbHRpcC12ZHBQYXltZW50VG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcEluZm9Ub29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwVXNlZEluZm9Ub29sdGlwIikucmVtb3ZlKCk7dmFyIEU9JCgiLm5ld1ZkcEFjdGlvbnMiKS5oYXNDbGFzcygid2VzdCIpPyJ3ZXN0IjokKCIudXNlZFZkcEFjdGlvbnMiKS5oYXNDbGFzcygid2VzdCIpPyJ3ZXN0IjoiZWFzdCI7JCgiLnZkcFBheW1lbnRUb29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcEluZm9Ub29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcFVzZWRJbmZvVG9vbHRpcCIpLmRhcmtUb29sdGlwKHtjb250ZW50OkMsCmdyYXZpdHk6RSx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX19KX1mdW5jdGlvbiBnZXRDdXJyZW50VmVoaWNsZVBhdGgoYSl7dmFyIGU9W2QyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1ha2UpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1vZGVsKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS55ZWFyKV0uam9pbigiLSIpOyJFTkdMSVNIIj09PSgkKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giKSYmKGU9W2QyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1ha2UpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1vZGVsKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS55ZWFyKV0uam9pbigiLSIpKTtyZXR1cm4gZX0KZnVuY3Rpb24gc2hvd1BheW1lbnRzKGEsZSxkLGMpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5odG1sKCIiKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaHRtbCgiIik7dmFyIGI9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjI7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKTt2YXIgZz1bXSxyPSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fDA7ImZpbmFuY2UiPT1hWzBdLnR5cGUmJmFbMF0uZG93bnBheW1lbnQ+Yy5tYXhEb3duRmluYW5jZT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuc2hvdygpLAokKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSk6ImxlYXNlIj09YVswXS50eXBlJiZhWzBdLmRvd25wYXltZW50PmMubWF4RG93bj8oJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLAokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLCQoIiNwYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLmlzKCI6Y2hlY2tlZCIpPygkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCkpKTsKNTxhLmxlbmd0aD9hLmZvckVhY2goZnVuY3Rpb24odSl7KDA9PXUudGVybSUxMnx8NjQ9PXUudGVybXx8NDA9PWQmJjUxPT11LnRlcm18fDIwPT1kJiZbMjcsMzAsMzksNDJdLmluY2x1ZGVzKHUudGVybSl8fFsxNiwyMV0uaW5jbHVkZXMoZCl8fDQyPT11LnRlcm0mJjEwMTQ9PXJ8fFszMCw0Ml0uaW5jbHVkZXModS50ZXJtKSYmWzQ3MTU2Miw0NzE1NjMsNDcxNTY0XS5pbmNsdWRlcyhwYXJzZUludChzZXR0aW5ncy5zdHlsZWlkKSl8fFsxNiwxXS5pbmNsdWRlcyhkKSYmWzI4LDQwXS5pbmNsdWRlcyh1LnRlcm0pfHwyNz09dS50ZXJtJiYyNz09ZHx8NTI9PXUudGVybSYmMzk9PWQpJiZnLnB1c2godSl9KTpnPWE7dmFyIG09e30sbj0hMTtnLmZvckVhY2goZnVuY3Rpb24odSxoKXtPYmplY3QuaGFzT3duKG0sdS50ZXJtKT9uPSEwOm1bdS50ZXJtXT17fTttW3UudGVybV1bdS5yYXRlX3R5cGVdPWh9KTt2YXIgcD1bXSx3PSExLHo9ITE7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJgoodz1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzFdfHwhMSx6PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIilbMF18fCExKTtpZihhWzBdJiYibGVhc2UiPT1hWzBdLnR5cGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGFbMF0ua21fYWxsb3dhbmNlKXt2YXIgdD0wPGMuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2MuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNDskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCh0KX1sZXQgdj1jLnRvdGFsSW5jZW50aXZlLEI9bj8kKCIjTE9XRVNUUEFZTUVOVF9MQUJFTCIpLnZhbCgpOiIiLHg9bj8kKCIjTE9XRVNUUkFURV9MQUJFTCIpLnZhbCgpOiIiOyJkZXNjIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yVGVybU9yZGVyIikudmFsKCkmJihnPWcucmV2ZXJzZSgpKTt2YXIgQT0wOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciAuanMtdGVtcEttQWxsb3dlZCIpLnJlbW92ZSgpOwpsZXQgZj0iIixxPSIiOzEhPSQoIiNpc0RSU2l0ZSIpLmxlbmd0aHx8IjEiIT0kKCIjaXNEUlNpdGUiKS52YWwoKXx8IjE3NzEiIT09JCgiI3NpdGVJRCIpLnZhbCgpJiYiMjIwOSIhPT0kKCIjc2l0ZUlEIikudmFsKCl8fChmPSc8c3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyBjYWxjRGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgIiBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2IiAgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj48c3VwPjM8L3N1cD48L2E+PC9zcGFuPicscT0nPHNwYW4+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJjYWxjdWxhdG9yLWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0yLWRpdiIgIGRhdGEtZGlzY2xhaW1lci1pZD0iMiI+PHN1cD4yPC9zdXA+PC9hPjwvc3Bhbj4nKTsKJC5lYWNoKGcsZnVuY3Rpb24odSxoKXtpZighcC5pbmNsdWRlcyhoLnRlcm0pKXtwLnB1c2goaC50ZXJtKTt2YXIgaz0ic3RhbmRhcmQiPT1oLnJhdGVfdHlwZXx8Mj5PYmplY3Qua2V5cyhtW2gudGVybV0pLmxlbmd0aD9oOmdbbVtoLnRlcm1dLnN0YW5kYXJkXSxsPTI9PU9iamVjdC5rZXlzKG1baC50ZXJtXSkubGVuZ3RoP2dbbVtoLnRlcm1dLnN1YnZlbnRlZF06ITEsRj0yPT1PYmplY3Qua2V5cyhtW2gudGVybV0pLmxlbmd0aD9tW2gudGVybV0uc3VidmVudGVkOiExLEc9aC50ZXJtLEg9aC5kb3ducGF5bWVudC50b0ZpeGVkKDApLEw9ay5wYXltZW50LnRvRml4ZWQoYiksTj1rLnBheW1lbnQudG9GaXhlZChiKTtMPUwucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oUSxNKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrTSsiPC9zdXA+In0pO3ZhciBDPWsucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGIpLEU9ay5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYik7Qz1DLnJlcGxhY2UoL1wuKFswLTldKikvLApmdW5jdGlvbihRLE0pe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytNKyI8L3N1cD4ifSk7dmFyIFY9ay5yYXRlLGZhPSJwYXltZW50Iit1O3U9InBheW1lbnQiK3UrIndpdGhUYXhlcyI7Rz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iPHNwYW4+IitHKyI8L3NwYW4+IG1vbnRoIjoiPHNwYW4+IitHKyI8L3NwYW4+IG1vaXMiO0g9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7SH08L3NwYW4+YCsoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiBkb3duIHBheW1lbnQiOiIgY29tcHRhbnQiKTt2YXIgVz0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8iPGRpdj4iKyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCkrIjwvZGl2PiI6Iit0eCIsTz1rLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2suY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxSPSIiOzA8cGFyc2VGbG9hdChPKS1rLnJhdGUmJihSKz1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChPLAoiIiwnY2xhc3M9Ii1mczEwIicpKTt2YXIgWD1rLnRvdGFsT2JsaWdhdGlvbkFtb3VudD9rLnRvdGFsT2JsaWdhdGlvbkFtb3VudDowLFk9J2RhdGEtdG9vbHRpcD0iJytrLnRvb2x0aXArJyInLFo9J2RhdGEtdG9vbHRpcD0iJytrLnRvb2x0aXBXaXRoVGF4ZXMrJyInLEksaGE9bnVsbCE9KEk9ay5tMmRfZmluYW5jZSk\/STp2O0k9InNpbmdsZS1jb2x1bW4iO2g9dyYmdz09aC50ZXJtJiZ6JiZ6PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKT8iY2hlY2tlZCI6IiI7dmFyIFM9InNtYWxsLWJveCIsSj0iIixLPSIiO2lmKGwpe0k9ImxlZnQtc2VjdGlvbiI7Uz0iIjtKPWwucGF5bWVudC50b0ZpeGVkKGIpO2xldCBRPWwucGF5bWVudC50b0ZpeGVkKGIpO0o9Si5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihpYSxUKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrVCsiPC9zdXA+In0pO0s9bC5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYik7CmxldCBNPWwucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGIpO0s9Sy5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihpYSxUKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrVCsiPC9zdXA+In0pO3ZhciBhYT1sLnJhdGUudG9GaXhlZCgyKSxqYT0icGF5bWVudCIrRjtGPSJwYXltZW50IitGKyJ3aXRoVGF4ZXMiO2xldCBQPWwuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/bC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLFU9IiI7MDxwYXJzZUZsb2F0KFApLWwucmF0ZSYmKFUrPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KFAsIiIsJ2NsYXNzPSItZnMxMCInKSk7bGV0IGJhPWwudG90YWxPYmxpZ2F0aW9uQW1vdW50P2wudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsY2E9J2RhdGEtdG9vbHRpcD0iJytsLnRvb2x0aXArJyInLGRhPSdkYXRhLXRvb2x0aXA9IicrbC50b29sdGlwV2l0aFRheGVzKyciJyxlYT1sLm0yZF9maW5hbmNlO0o9J1x0PGRpdiBpZD0iJytqYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnKwpjYSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JythYSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrY2ErIj48L2k+IitVKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSisiPC9zcGFuPiIrZisnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrVysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2wudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2wucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2wucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2wucmF0ZV90eXBlKwonIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrUSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2wudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrbC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytQKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK2JhKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytsLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrbC5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK2VhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0PGxhYmVsPicreCsiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4iOwpLPSdcdDxkaXYgaWQ9IicrRisnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK2RhKyc+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK2FhKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytkYSsiPjwvaT4iK1UrJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytLKyI8L3NwYW4+IitxKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrbC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrbC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrCmwucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2wucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytNKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrbC5yZXNpZHVhbFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrbC50b3RhbEludGVyZXN0V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytsLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK1ArJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrYmErJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2wucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrZWErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2wuZ3N0KwonIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrbC5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2wucHN0KyciXHRcdFx0XHQ+XHRcdFx0PGxhYmVsPicreCsiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWw9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK1MrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK0crJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0grJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytmYSsnIiBjbGFzcz0iJytJKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytZKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrTCsiPC9zcGFuPiIrZisnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnKwpZKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrVysnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVisiJSAiK1IrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnK2grJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2sudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2sucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2sucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2sucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytOKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9Iicray5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9Iicray50b3RhbEludGVyZXN0KwonIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9Iicray5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytPKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1grJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2sucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytrLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicraGErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK0IrIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSisiXHQ8L2Rpdj48L2Rpdj4iO0M9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK1MrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nKwpHKyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+JytIKyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrdSsnIiBjbGFzcz0iJytJKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytaKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrQysiPC9zcGFuPiIrcSsnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1orJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVisiJSAiK1IrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnK2grJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInKwprLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytrLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytrLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytrLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrRSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2sucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2sudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9Iicray5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytPKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1grJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2sucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytrLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCnYrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2suZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytrLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9Iicray5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK0IrIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSysiXHQ8L2Rpdj48L2Rpdj4iOzA9PWsucGF5bWVudFdpdGhUYXhlcyYmKEM9IiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQobCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChDKTtBKyt9fSk7dD0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKS5sZW5ndGg\/JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW2NoZWNrZWRdJylbMF06JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykubGFzdCgpWzBdOwokKHQpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik7dD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLnRvdGFsLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikudGV4dCh0KTsibGVhc2UiPT1hWzBdLnR5cGU\/KHQ9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYVswXS5rbV9hbGxvd2FuY2UudG9GaXhlZCgwKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlS00iKS50ZXh0KHQpLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLAokKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuc2hvdygpKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5zaG93KCk7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKTswPGU\/KGU9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZS50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VGZWVzIikudGV4dChlKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmVtcHR5KCk7aWYoYy5jdXN0b21GZWVzLmxlbmd0aCl7dmFyIHk9Ijx1bD4iOyQuZWFjaChjLmN1c3RvbUZlZXMsZnVuY3Rpb24odSxoKXt1PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihoLmRlc2NFbiksaz0+ay5jaGFyQ29kZUF0KDApKSk6KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGguZGVzY0ZyKSxrPT5rLmNoYXJDb2RlQXQoMCkpKTtoPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGguYW1vdW50LnRvRml4ZWQoMCkpO2g9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoaCk7IXUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiYWRtaW4iKXx8MSE9JCgiI2lzRFJTaXRlIikubGVuZ3RofHwiMSIhPSQoIiNpc0RSU2l0ZSIpLnZhbCgpfHwKIjE3NzEiIT09JCgiI3NpdGVJRCIpLnZhbCgpJiYiMjIwOSIhPT0kKCIjc2l0ZUlEIikudmFsKCl8fChoKz0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNC1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iNCI+PHN1cD40PC9zdXA+PC9hPicpO3krPSI8bGk+Iit1KyIgOiAiK2grIjwvbGk+In0pO3krPSI8L3VsPiI7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmFwcGVuZCh5KTskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuc2hvdygpfWVsc2UgJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTtlPSJsZWFzZSI9PWFbMF0udHlwZT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yTGVhc2VUZXh0IikudmFsKCl8fAoiIikudG9Mb3dlckNhc2UoKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRmluYW5jZVRleHQiKS52YWwoKXx8IiIpLnRvTG93ZXJDYXNlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlVHlwZSIpLnRleHQoZSk7MDxhWzBdLnJlYmF0ZT8oYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrYVswXS5yZWJhdGU6YVswXS5yZWJhdGUrIiAkIiwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VSZWJhdGUiKS50ZXh0KGEpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLnNob3coKSk6JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuaGlkZSgpO2lmKGMuY29uZGl0aW9uYWxSZWJhdGVzJiYwPGMuY29uZGl0aW9uYWxSZWJhdGVzLmxlbmd0aCl7dmFyIEQ9IiI7Yy5jb25kaXRpb25hbFJlYmF0ZXMuZm9yRWFjaChmdW5jdGlvbih1KXt2YXIgaD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcih1LmFtb3VudC50b1N0cmluZygpKTsKRCs9IjxsaT4iK3UubmFtZSsiOiAtIitEMkNVdGlscy5Gb3JtYXQudG9QcmljZShoKSsiPC9saT4ifSk7RCYmJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuYWZ0ZXIoJzxkaXYgaWQ9InBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29uZGl0aW9uYWxSZWJhdGVzIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JOb3RpY2VTZWN0aW9uIj48c3Ryb25nPicrKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJTZWxlY3RlZCBDb25kaXRpb25hbCBSZWJhdGVzOiI6IlJhYmFpcyBjb25kaXRpb25uZWxzIHPDg8KpbGVjdGlvbm7Dg8KpczoiKSsiPC9zdHJvbmc+PHVsPiIrRCsiPC91bD48L2Rpdj4iKX1lbHNlICQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbmRpdGlvbmFsUmViYXRlcyIpLnJlbW92ZSgpO3NldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl7aWYoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSkkKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbihlKXt0cnl7dmFyIGQ9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKSxjPSQodGhpcykuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Indlc3QiOiJlYXN0IjskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmQsZ3Jhdml0eTpjLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KTtlbHNle2Zvcih2YXIgYT0wOzU+YTthKyspJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2EpLmxlbmd0aCYmKCQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5yZW1vdmUoKSwKJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2ErIndpdGhUYXhlcyIpLnJlbW92ZSgpKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZD0kKHRoaXMpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLGM9ImVhc3QiO2QuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Yz0id2VzdCI6ZC5oYXNDbGFzcygicmlnaHRUb29sdGlwIikmJihjPSJlYXN0Iik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDplLGdyYXZpdHk6Yyx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIn0pfWNhdGNoKGIpe319KX19CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oYSl7dmFyIGU9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7ZS52ZWhpY2xlSW5mbz1hOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvWWVhciIpLnRleHQoYS55ZWFyKTt2YXIgZD1hLkNGTW9kZWxOYW1lfHxhLm1vZGVsLGM9YS5tYWtlLnRvVXBwZXJDYXNlKCkrIiAiK2QudG9VcHBlckNhc2UoKTsiTUVSQ0VERVMtQkVOWiIhPWEubWFrZS50b1VwcGVyQ2FzZSgpfHwvXGJzcHJpbnRlclxiL2kudGVzdChkKXx8KGM9YS5tYWtlLnRvVXBwZXJDYXNlKCkpO2lmKCJidWlsZGFuZHByaWNlLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fGUuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWUubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpKWMrPSIgIithLkNGU3R5bGVOYW1lLnRvVXBwZXJDYXNlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm9NYWtlTW9kZWxUcmltIikudGV4dChjKTtkPWEubWFrZSsifHx8IitkKyJ8fHwiK2EueWVhcjtlLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpJiYoZCs9Inx8fChTdG9jazoiK2Uuc3RvY2tOdW1iZXIrIikiKTtDb29raWVzLnNldCgibGFzdHZpZXdlZHZlaGljbGUiLGQsbnVsbCwiLyIpO2EuaW1hZ2VzWzBdJiYoZD0oYS5pbWFnZXNbMF0rIiIpLnJlcGxhY2UoL2h0dHAocz8pOlwvXC9tZWRpYS4oY2hyb21lZGF0YXxjYXJib29rKS5jb21cL01lZGlhR2FsbGVyeVwvbWVkaWFcLy8sIi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcnMvY2IlQ0IvJU1BS0UvJU1PREVMLyVZRUFSLyIpLnJlcGxhY2UoIiVDQiIsTWF0aC5yb3VuZCg5OSpNYXRoLnJhbmRvbSgpKSsxRTUpLnJlcGxhY2UoIiVNQUtFIixhLm1ha2UucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJU1PREVMIiwKYS5tb2RlbC5yZXBsYWNlKCItIiwiXyIpKS5yZXBsYWNlKCIlWUVBUiIsYS55ZWFyKSwkKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXYiKS5odG1sKCc8aW1nIGlkPSJwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZSIgc3JjPSInK2QucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzAzOTsiKSsnIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiPicpKTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IG9wdGlvbiIpLnJlbW92ZSgpOygidW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHM\/bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXM6YS5tb2RlbEpTT04uc3R5bGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGIpeyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5hcHBlbmQobmV3IE9wdGlvbihiLkNGU3R5bGVOYW1lLApiLmlkKSl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikudmFsKGUuc3R5bGVpZCk7Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCl9CmZ1bmN0aW9uIGNhbGNVcGRhdGVTdHlsZUluZm8oYSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzJiZuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXt2YXIgZT1uZXdjYXJEZXRhaWxzLmFsbFN0eWxlcy5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PWF9KVswXTtlPWV8fG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzWzBdO2UubWFrZT1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1ha2U7ZS5tb2RlbD1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1vZGVsO2UuaW1hZ2VzPW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuaW1hZ2VzO3NldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oZSl9ZWxzZXtlPXNldHRpbmdzLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3NldHRpbmdzLnN0b2NrTnVtYmVyOiIiO3ZhciBkPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFZlaGljbGVKc29uQnlTdHlsZUlEP3dzd2lkdGg9MCI7CiQuYWpheCh7dXJsOmQsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6YSx2ZWhpY2xlaWQ6ZX0sc3VjY2VzczpmdW5jdGlvbihjKXtzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGMpfX0pfX0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk7IiIhPWEucHJvbW9CdXR0b25UZXh0JiYiMSIhPT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIikmJiQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk\/KC0xIT09YS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikmJihhLnByb21vQnV0dG9uVGV4dD1hLnByb21vQnV0dG9uVGV4dC5zdWJzdHIoMCxhLnByb21vQnV0dG9uVGV4dC5pbmRleE9mKCI8YnIiKSkpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikuaHRtbChhLnByb21vQnV0dG9uVGV4dCksJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuc2hvdygpKToKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0ibGVhc2luZyJdJyksZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImZpbmFuY2luZyJdJyksYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImNhc2giXScpO2UuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKTtkLmhpZGRlbj0iMSI9PShhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHN8fCExKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSEwO3NldFRpbWVvdXQoKCk9PntpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJgoiIj09JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl7dmFyIGI9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKGIudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoYj1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIsYi52YWx1ZSkpfWlmKCIiIT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpJiYwPCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe2I9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl8fDA7dmFyIGc9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS5hdHRyKCJkYXRhLWN1cnJlbnQiKSl8fGI7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKGcpOwokKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5hdHRyKCJtYXgiLGIpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuc2hvdygpfWVsc2UgJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCIiKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9uIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS50cmlnZ2VyKCJibHVyIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgcj1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsCm9uQ29tcGxldGU6bj0+e24uZGF0YXNldC5jb21wbF90eHRfZnI9bi5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEZyWzFdKTtuLmRhdGFzZXQuY29tcGxfdHh0X2VuPW4uZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7bj17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKG49SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHA9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO24ucGF5bWVudD17bGlzdFByaWNlOnBbMl18fAoiIixwYXltZW50OnBbMF18fCIiLHJhdGU6cFsxXXx8IiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkobiksMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pO2I9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKTtiLmlubmVyVGV4dD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQ29uZmlybSI6IkNvbmZpcm1lciI7Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24ucHJldmVudERlZmF1bHQoKTtuPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYKIW58fGRvY3VtZW50LmRpc3BhdGNoRXZlbnQocik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9KTtnPW49PntuPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhbnx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChyKX07bGV0IG09YS5wYXltZW50VHlwZTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGI9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxtPSJ1bmRlZmluZWQiIT1iWzBdP2JbMF06bSxtPSJsZWFzaW5nIj09PW0\/ImxlYXNlIjoiZmluYW5jaW5nIj09PW0\/ImZpbmFuY2UiOm0pOyJsZWFzZSI9PW0mJmU\/ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLAp7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKToiZmluYW5jZSI9PW0mJmQ\/ZC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLHtkZXRhaWw6e2lzRmlyc3RSdW46ITB9fSkpOmMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIix7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKTskKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLGcpLm9uKCJwb3B1cGl6ZXIuY2xvc2UiLGcpOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKX19LDEwMCk7Y2FsY1VwZGF0ZVN0eWxlSW5mbyhhLnN0eWxlaWQpfQpmdW5jdGlvbiBjYWxjVXBkYXRlUGF5bWVudEluZm8oKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxlPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGQ9YS5wYXltZW50VHlwZSxjPTAsYj1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCksZz1udWxsLHI9bnVsbCxtPWdldE9wdGlvbnNBbW91bnQoYSksbj1nZXRBY2Nlc3Nvcmllc0Ftb3VudChhKSxwPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYSksdz1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSksej1hLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSwKdD0hMSx2PWEuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/YS5zdG9ja051bWJlcjoiIixCPWEuaGFzT3duUHJvcGVydHkoInZpbiIpP2EudmluOiIiO2lmKHomJiF2KXt2YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO3gmJih2PXgudmFsdWV8fCIiKX16JiYhQiYmKHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoQj14LnZhbHVlfHwiIik7eiYmIWEuc3R5bGVpZCYmKHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihhLnN0eWxlaWQ9eC52YWx1ZXx8YS5zdHlsZWlkKTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHI9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxkPSJ1bmRlZmluZWQiIT1yWzBdP3JbMF06ZCx0PXJbMV0sYz1wYXJzZUludChyWzRdKS1iLGM9MD5jPzA6YyxnPQpyWzJdLHI9clszXSk7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cyYmImxlYXNlIj09ZCYmKGQ9ImZpbmFuY2UiLHQ9ITEsYz0wLHI9Zz1udWxsKTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHMmJlsiZmluYW5jZSIsImZpbmFuY2luZyJdLmluY2x1ZGVzKGQpJiYoZD0ibGVhc2UiLHQ9ITEsYz0wLHI9Zz1udWxsKTtsZXQgQT1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihmKXtmLmNoZWNrZWQmJihmPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmQS5wdXNoKGYpfSk7Y2FsY1VwZGF0ZVBheW1lbnRYaHI9JC5hamF4KHt1cmw6ZSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDphLnN0eWxlaWQscGF5bWVudFR5cGU6ZCxkb3ducGF5bWVudDpiK2Msb3B0aW9uc0Ftb3VudDptLHBheW1lbnRGcmVxdWVuY3k6ZyxrbUFsbG93YW5jZTpyLAppc0ludmVudG9yeTp6LG9wdGlvbnM6bSxzbjp2LHZpbjpCLGNvbmRpdGlvbmFsUmViYXRlSWRzOkEuam9pbigiLCIpLGFjY2Vzc29yaWVzOm4sc2VsZWN0ZWRBY2Nlc3NvcmllczpwLHByb3RlY3Rpb25QbGFuczp3fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2Yuc2VsZWN0ZWRUZXJtPXQ7JCgiI21heERvd25QYXltZW50Rm9yVHJpbSIpLnZhbChmLm1heERvd24pOyQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKGYubWF4RG93bkZpbmFuY2UpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKGMpO2Q9ImxlYXNlIj09PWQ\/ImxlYXNpbmciOiJmaW5hbmNlIj09PWQ\/ImZpbmFuY2luZyI6ZDsiY2FzaCI9PT1kJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKTsKZi5jdXJyZW50UGF5bWVudCYmMCE9PWYuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1kPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLGYuY3VycmVudFBheW1lbnQmJjA8Zi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChmLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKSxkPWR8fCgibGVhc2UiPT09CmYuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKTtzaG93SGlkZVBheW1lbnRTZWN0aW9uKGYsZCk7cG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24oZik7ImxlYXNpbmciPT1kPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2dldENhc2hQcmljZUJsb2NrKGYpOwoiY2FzaCI9PT1kP2VuYWJsZUNhc2hPcHRpb24oKTpmLmN1cnJlbnRQYXltZW50JiZmLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKGNhbGNDdXJQYXltZW50PWYsc2hvd1BheW1lbnRzKGYuY3VycmVudFBheW1lbnQsZi5wYXltZW50RmVlcyxmLm1ha2VpZCxmKSl9LGVycm9yOmZ1bmN0aW9uKGYscSx5KXsiYWJvcnQiIT09cSYmY29uc29sZS5lcnJvcigiY2FsY1VwZGF0ZVBheW1lbnRJbmZvOjogUGF5bWVudCBjYWxjdWxhdGlvbiBlcnJvcjoiLHEseSl9fSl9CmZ1bmN0aW9uIGVuYWJsZUNhc2hPcHRpb24oKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nY2FzaCddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUxlYXNlIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5oaWRlKCk7CiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDYXNoIikucHJvcCgiaGlkZGVuIiwhMSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLnNob3coKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSExOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpOwoxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJigkKCIjZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikuaGlkZSgpLGNoYW5nZVBhZ2VDYXNoVmFsdWUoKSl9CmZ1bmN0aW9uIGNoYW5nZVBhZ2VDYXNoVmFsdWUoKXtpZihudWxsIT09Y2FzaFByaWNlRm9yUGFnZSl7dmFyIGE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giLGU9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoY2FzaFByaWNlRm9yUGFnZS50b1N0cmluZygpKSxkPXN0b3JlLmdldCgiaTE4biIpLkRFRkFVTFRfUEFZTUVOVF9DQVNILGM9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCBmb3JtYXQtcHJpY2UiPicrZSsiPC9zcGFuPiIsYj1zdG9yZS5nZXQoImkxOG4iKS5MQUJFTF9CRUZPUkVfVEFYRVMudG9Mb3dlckNhc2UoKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMiwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTEiKS5odG1sKGQpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUxLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMiIpLmh0bWwoYyk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTMsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUzIikuaHRtbChiKTsKYT0iRU5HTElTSCI9PT1hPyIkIitlOmUrIiAkIjtjdGFQYXltZW50VGV4dEZyPVthLCJDb21wdGFudCIsIiJdO2N0YVBheW1lbnRUZXh0RW49W2EsIkNhc2giLCIiXTtjdGFQYXltZW50VmFsdWVzPVtjYXNoUHJpY2VGb3JQYWdlLDAsMCwiY2FzaCJdOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgmJigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikuaGlkZSgpLCQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCIpLmhpZGUoKSk7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpOyQoIi52ZHBQYXltZW50VG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBJbmZvVG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBVc2VkSW5mb1Rvb2x0aXAiKS5kYXJrVG9vbHRpcCh7b3BhY2l0eTowfSl9fQpmdW5jdGlvbiBnZXRDYXNoUHJpY2VCbG9jayhhKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLGQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksYz1kLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1kLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSxiPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCI7bGV0IGc9cGFyc2VJbnQoYS5vcmlnaW5hbFByaWNlfHxkLnZlaGljbGVJbmZvJiZkLnZlaGljbGVJbmZvLm1zcnBBbGxJbnx8MCk7dmFyIHI9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZy50b1N0cmluZygpKTtsZXQgbT1lLnF1ZXJ5U2VsZWN0b3IoIi5jYWxjLXBheW1lbnQtY2FzaCIpO3ZhciBuPSIxIj09ZS5xdWVyeVNlbGVjdG9yKCIjZGlzcGxheUJyZWFrZG93biIpLnZhbHVlLApwPSIxIj09ZS5xdWVyeVNlbGVjdG9yKCIjaGlkZVJlYmF0ZXMiKS52YWx1ZSx3PSIxIj09ZS5xdWVyeVNlbGVjdG9yKCIjc2NyYXRjaE9yaWdpbmFsUHJpY2UiKS52YWx1ZTtsZXQgej0iRU5HTElTSCI9PWI\/IlN0YXJ0aW5nIGF0Ijoiw4AgcGFydGlyIGRlIjtlPSJFTkdMSVNIIj09Yj8iWW91ciBwcmljZSI6IlZvdHJlIHByaXgiO2MmJih6PSQoIiNORVdJTlZfUFJJQ0VfTEFCRUxfT1JJR0lOQUwiKS52YWwoKSxlPSQoIiNORVdJTlZfUFJJQ0VfTEFCRUxfRklOQUwiKS52YWwoKSxkLnZlaGljbGVJbmZvJiZ6LnJlcGxhY2UoInskTUFLRX0iLGQudmVoaWNsZUluZm8ubWFrZSkucmVwbGFjZSgieyRNT0RFTH0iLGQudmVoaWNsZUluZm8uQ0ZNb2RlbE5hbWUpLnJlcGxhY2UoInskVkVSU0lPTn0iLGQudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUpLnJlcGxhY2UoInskWUVBUn0iLGQudmVoaWNsZUluZm8ueWVhcikpO2xldCB0PSJFTkdMSVNIIj09Yj8iZGVzY0VuIjoiZGVzY0ZyIjskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUb3RhbCIpLmh0bWwoZyk7CmM9dyYmYS5wcmljZUFtZW5kZW1lbnRzJiYwPmEucHJpY2VBbWVuZGVtZW50cy50b3RhbD8ic3RyaWtlLXByaWNlIjoiIjtiPWAKCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7biYmIXA\/ZTp6fTwvc3Bhbj4KCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9ICR7Y30iPiR7cn08L3NwYW4+CgkJPC9kaXY+YDtpZigwPT0oYS5wcmljZUFtZW5kZW1lbnRzfHxbXSkubGVuZ3RoKW0uaW5uZXJIVE1MPWI7ZWxzZXt3PShhLnByaWNlQW1lbmRlbWVudHMuZmVlc0xpc3R8fFtdKS5yZWR1Y2UoKEEsZik9PntpZigwPT1mLmFtb3VudClyZXR1cm4gQTtsZXQgcT0iIjshKG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGYuZGVzY0VuKSxEPT5ELmNoYXJDb2RlQXQoMCkpKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJhZG1pbiIpfHwiMTc3MSIhPT0kKCIjc2l0ZUlEIikudmFsKCkmJiIyMjA5IiE9PSQoIiNzaXRlSUQiKS52YWwoKXx8KHE9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNC1kaXYiICBkYXRhLWRpc2NsYWltZXItaWQ9IjQiPjxzdXA+NDwvc3VwPjwvYT4nKTsKbGV0IHk9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZi5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIEErPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZlt0XSksRD0+RC5jaGFyQ29kZUF0KDApKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlIj48c3BhbiBjbGFzcz0iJHsiZm9ybWF0LXByaWNlIn0iPiR7eX08L3NwYW4+JHtxfTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciB2PShhLnByaWNlQW1lbmRlbWVudHMuaW5jZW50aXZlc0xpc3R8fFtdKS5yZWR1Y2UoKEEsZik9PntpZigwPT1mLmFtb3VudClyZXR1cm4gQTtsZXQgcT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihmLmFtb3VudC50b1N0cmluZygpKTtyZXR1cm4gQSs9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4keyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihmW3RdKSx5PT55LmNoYXJDb2RlQXQoMCkpKX08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0iPi0ke3F9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7cj0oYS5wcmljZUFtZW5kZW1lbnRzLnBvc3RUYXhJbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoQSxmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiBBO2xldCBxPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiBBKz1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGZbdF0pLHk9PnkuY2hhckNvZGVBdCgwKSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7cX08L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTt2YXIgQj1nLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLHg9MDwoYS5wcmljZUFtZW5kZW1lbnRzLmNvbmRpdGlvbmFsUmViYXRlc1RvdGFsfHwwKTtkPXgmJmEucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlP2EucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlOmc7WyJORVdDQVJTIiwiTkVXQ0FSREVUQUlMUyJdLmluY2x1ZGVzKHNpdGVQYWdlLm5hbWUpfHwoQj1nLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLGQ9eCYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6Zyk7Y2FzaFByaWNlRm9yUGFnZT1kO0I9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoQi50b1N0cmluZygpKTtkPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGQudG9TdHJpbmcoKSk7CmE9dy5sZW5ndGh8fHYubGVuZ3RoO249biYmIXAmJmE\/YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHt6fTwvc3Bhbj4KCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9ICR7Y30iPiR7Qn08L3NwYW4+CgkJPC9kaXY+YCt3K3Y6IiI7YSYmKHA9IiIhPW4\/InByaWNlRmluYWwiOiIiLGE9IiIsMSE9JCgiI2lzRFJTaXRlIikubGVuZ3RofHwiMSIhPSQoIiNpc0RSU2l0ZSIpLnZhbCgpfHwiMTc3MSIhPT0kKCIjc2l0ZUlEIikudmFsKCkmJiIyMjA5IiE9PSQoIiNzaXRlSUQiKS52YWwoKXx8KGE9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiICBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTEtZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjEiPjxzdXA+MTwvc3VwPjwvYT4nKSxiPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtlfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSIke3B9Ij48c3BhbiBjbGFzcz0iJHsiZm9ybWF0LXByaWNlIn0iPiR7ZH08L3NwYW4+JHthfTwvc3Bhbj4KCQkJPC9kaXY+YCk7bS5pbm5lckhUTUw9bitiK3J9fQpmdW5jdGlvbiBnZXRPcHRpb25zQW1vdW50KGEpe3ZhciBlPWEucGF5bWVudE9wdGlvbnM\/YS5wYXltZW50T3B0aW9uczowO2EuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWEubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8JCgiI1BBR0VJRCIpLnZhbCgpO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7aWYoZHx8YSYmZCllPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZE9wdGlvbnNUb3RhbCxhPXBhcnNlSW50KG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5kZWZhdWx0T3B0aW9uQW1vdW50KSwwPGEmJihlLT1hLGU9TWF0aC5tYXgoMCxlKSk7cmV0dXJuIGV8fDB9CmZ1bmN0aW9uIGdldEFjY2Vzc29yaWVzQW1vdW50KGEpe3ZhciBlPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBkPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoZHx8YSYmZCkmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwmJihlPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY1RvdGFsKTtyZXR1cm4gZXx8MH0KZnVuY3Rpb24gZ2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhhKXt2YXIgZT0iIjthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhkfHxhJiZkKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NJZHMmJihlPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcy5qb2luKCIsIikpO3JldHVybiBlfHwiIn0KZnVuY3Rpb24gZ2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGEpe3ZhciBlPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBkPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoZHx8YSYmZCkmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCYmKGU9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCk7cmV0dXJuIGV8fDB9CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGEpe3JldHVybiBhLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIiwiKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsZSl7JChhKS50cmlnZ2VyKCJwYXltZW50Q2FsY3VsYXRvci5jbGljayIse29yaWdFdmVudDplfSk7YT1uZXcgRXZlbnQoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIik7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChhKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWROZXdWRFBUcmlnZ2VyKGEsZSl7dmFyIGQ9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLGM9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSxiPSQoIiNwb3B1cHllYXIiKS52YWwoKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIk5ldy1WRFAtT3V0Ym91bmQtY2xpY2tzIiwiQ2FsY3VsYXRyaWNlIixkKyItIitjKyItIitiKTtwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsZSl9CmZ1bmN0aW9uIGZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KGEsZSxkKXtkPXZvaWQgMD09PWQ\/IiI6ZDthPSI8c3BhbiAiK2UrIj4iK2ErIjwvc3Bhbj4lIjthPSJFTkdMSVNIIj09YWN0aXZlTGFuZz9hKyIgQVBSIjoiVGF1eCAiK2E7cmV0dXJuICQoIiNpc21vYmlsZSIpLnZhbCgpPyI8YnIvPjxkaXYgIitkKyI+KCIrYSsiKTwvZGl2PiI6IiA8ZGl2ICIrZCsiPiggIithKyIgKTwvZGl2PiJ9CmZ1bmN0aW9uIHBvcHVsYXRlTGVhc2VLTUFsbG93YW5jZURyb3Bkb3duKGEpe3RyeXtpZihhLmxlYXNlJiYwPGEubGVhc2UubGVuZ3RoKXt2YXIgZT1bXTthLmxlYXNlLmZvckVhY2goZnVuY3Rpb24oYyl7LTE9PSQuaW5BcnJheShjLmttX2FsbG93YW5jZSxlKSYmZS5wdXNoKGMua21fYWxsb3dhbmNlKX0pO2UuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgYj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihjLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikuYXBwZW5kKG5ldyBPcHRpb24oYisiIGttIixjKSl9KTt2YXIgZD0yRTQ7YS5jdXJyZW50UGF5bWVudFswXSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2UmJihkPTA8YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U\/YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U6MkU0KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChkKX19Y2F0Y2goYyl7Y29uc29sZS5lcnJvcigiRXJyb3IgcG9wdWxhdGluZyBsZWFzZSBrbSBhbGxvd2FuY2UgZHJvcGRvd24gaW4gdGhlIGZ1bmN0aW9uIHBvcHVsYXRlTGVhc2VLTUFsbG93YW5jZURyb3Bkb3duOiAiLApjKX19CmZ1bmN0aW9uIHNob3dIaWRlUGF5bWVudFNlY3Rpb24oYSxlKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOzA8JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2UrIiddIikubGVuZ3RoJiYkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrZSsiJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTsiY2FzaCIhPT1lJiYodm9pZCAwIT1hLmZpbmFuY2UmJjA9PT1hLmZpbmFuY2UubGVuZ3RoPyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5zaG93KCksdm9pZCAwIT1hLmxlYXNlJiYwPT09YS5sZWFzZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpKX0KZnVuY3Rpb24gc2hvd0Rpc2NsYWltZXJMaW5rKCl7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBheW1lbnRDYWxjdWxhdG9yVGVybXMiKS5zdHlsZS5kaXNwbGF5PSJibG9jayIsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpLnN0eWxlLmRpc3BsYXk9ImJsb2NrIikpfQpmdW5jdGlvbiBoaWRlRGlzY2xhaW1lckxpbmsoKXsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF5bWVudENhbGN1bGF0b3JUZXJtcyIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKS5zdHlsZS5kaXNwbGF5PSJub25lIikpfTsKLyoqIC9qcy9wb3B1cGl6ZXIuanMgKiovCnZhciBfX19kMmNfcG9wdXBpemVyanNfY19vbj0iMjAyNi0wNS0wNSAxNjozMDowNSI7J3VzZSBzdHJpY3QnO2lzU2NyYXRjaEFuZFNhdmU9InVuZGVmaW5lZCI9PXR5cGVvZiBpc1NjcmF0Y2hBbmRTYXZlPyIiOmlzU2NyYXRjaEFuZFNhdmU7cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ9InVuZGVmaW5lZCI9PXR5cGVvZiBwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZD8iIjpwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZDtzaG93UG9wdXBXaWRnZXQ9ImZ1bmN0aW9uIiE9dHlwZW9mIHNob3dQb3B1cFdpZGdldD9mdW5jdGlvbigpe306c2hvd1BvcHVwV2lkZ2V0O2FjdGl2YXRlUG9wdXBCZWZvcmVMb2FkPSJmdW5jdGlvbiIhPXR5cGVvZiBhY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD9mdW5jdGlvbigpe306YWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ7CnZhciBwb3B1cElzU3VibWl0dGluZz0hMSxDUG9wdXBTdXBlcnZpc29yPWZ1bmN0aW9uKCl7dmFyIGM9dGhpcztjLm9ubG9hZFF1ZXVlPVtdO2MuaW5kZXg9MDtjLmlzQW5pbWF0aW5nPSExO2MucG9wdXBzPVtdO2MucmVnaXN0ZXI9ZnVuY3Rpb24oYSl7dmFyIGs9MDswPE51bWJlcihhLnNldHRpbmdzLnNob3dvbmxvYWQpJiYhMCE9PWEuc2V0dGluZ3Muc2hvd29ubG9hZCYmKGs9YS5zZXR0aW5ncy5zaG93b25sb2FkKTt2YXIgYj0xOzE8YS5zZXR0aW5ncy5wcmlvcml0eSYmKGI9YS5zZXR0aW5ncy5wcmlvcml0eSk7MSE9Q29va2llcy5nZXQoIm5vdXNlZGN0YSIpfHwidXNlZGNhcnMuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSYmImNhcmRldGFpbC5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpP2Mub25sb2FkUXVldWUucHVzaCh7cG9wdXA6YSxkZWxheTprLHByaW9yaXR5OmJ9KTpjb25zb2xlLmxvZygiTm90IHNob3dpbmcgcG9wdXAgb25sb2FkLCBiZWNhdXNlIGl0cyBhIHVzZWQgcGFnZSBhbmQgdGhlIGNvb2tpZSBub3VzZWRjdGEgaXMgc2V0Iil9OwpjLnJlcG9zaXRpb249ZnVuY3Rpb24oKXtpZighKHBvcHVwaXplckFjdGl2ZSgpfHwidW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiZtb2RlbENvbmZpZy5pc0FjdGl2ZSYmbW9kZWxDb25maWcuaXNBY3RpdmUoKSkpcmV0dXJuICQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiIiksITE7aWYoYy5pc0FuaW1hdGluZylyZXR1cm4hMTt2YXIgYT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6JCh3aW5kb3cpLmhlaWdodCgpLGs9JChkb2N1bWVudCkuc2Nyb2xsVG9wKCksYj0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT81OjIwOyQoIi5yZXZlYWwtbW9kYWwiKS5lYWNoKGZ1bmN0aW9uKGQsZil7ZD0kKHRoaXMpO2lmKCJ2aXNpYmxlIj09ZC5jc3MoInZpc2liaWxpdHkiKSl7Zj1kLm9mZnNldCgpLnRvcDt2YXIgaD1kLm91dGVySGVpZ2h0KCksbD1mK2g7aWYoYTxoK2J8fG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUGhvbmV8aVBvZCkvZykpe2lmKCQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwKImF1dG8iKSxrPmx8fGsrYTxmKWY9aytiLGMuaXNBbmltYXRpbmc9ITAsZC5hbmltYXRlKHt0b3A6ZisicHgifSwyMDAsZnVuY3Rpb24oKXtjLmlzQW5pbWF0aW5nPSExfSl9ZWxzZSBmPWsrKGEtaCkvMixmPWY8Yj9iOmYsYy5pc0FuaW1hdGluZz0hMCxkLmFuaW1hdGUoe3RvcDpmKyJweCJ9LDIwMCxmdW5jdGlvbigpe2MuaXNBbmltYXRpbmc9ITF9KX19KX07Yy5zaG93PWZ1bmN0aW9uKCl7aWYoISgwPCQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYiMSI9PSQoIiNkaXNhYmxlUG9wdXBzIikudmFsKCkpJiYoYy5vbmxvYWRRdWV1ZS5zb3J0KGZ1bmN0aW9uKGEsayl7aWYoYS5wcmlvcml0eT5rLnByaW9yaXR5KXJldHVybiAxO2lmKGEucHJpb3JpdHk8ay5wcmlvcml0eSlyZXR1cm4tMTtpZihhLnByaW9yaXR5PT1rLnByaW9yaXR5KXJldHVybiBhLmRlbGF5PGsuZGVsYXk\/MTotMX0pLCgiQlVJTERBTkRQUklDRSIhPXBhZ2V8fCItMSIhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoInN0ZXA9cmVzdW1lIikpJiYKMDxjLm9ubG9hZFF1ZXVlLmxlbmd0aCkpe2ZvcihrZXkgaW4gYy5vbmxvYWRRdWV1ZSlpZigxPT1jLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAuc2V0dGluZ3MuZW5kUG9wdXBRdWV1ZSlyZXR1cm4gYy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLm9wZW4oYy5vbmxvYWRRdWV1ZVtrZXldLmRlbGF5KSwhMTtmb3Ioa2V5IGluIGMub25sb2FkUXVldWUpYy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLm9wZW4oYy5vbmxvYWRRdWV1ZVtrZXldLmRlbGF5KX19O3ZhciBtPWZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQWN0aXZlKCkpcmV0dXJuIHNldFRpbWVvdXQobSw1MDApLCExO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJBY3RpdmUoKSlyZXR1cm4gbSgpOyQucG9zdE1lc3NhZ2UoImNsb3NlUG9wdXAiLCIqIix3aW5kb3cucGFyZW50KX0sMUUzKX07c2V0VGltZW91dChmdW5jdGlvbigpezA8JCgiI2F1dG9hdWJhaW5lX3BvcHVwIikubGVuZ3RoJiYiZmFsc2UiIT0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKS52YWwoKSYmCm0oKX0sNUUzKX0scG9wdXBTdXBlcnZpc29yPW5ldyBDUG9wdXBTdXBlcnZpc29yLHBvcHVwaXplckFjdGl2ZT1mdW5jdGlvbigpe2lmKHBvcHVwaXplckNvbmZpZy5wb3B1cE9wZW4pcmV0dXJuITA7dmFyIGM9ITE7JCgiLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyIpLmVhY2goZnVuY3Rpb24oKXtpZigxIT1jKXt2YXIgbT0kKHRoaXMpO2lmKCFtLmlzKCI6aGlkZGVuIikpc3dpdGNoKG0uY3NzKCJ2aXNpYmlsaXR5Iikpe2Nhc2UgInVuZGVmaW5lZCI6Y2FzZSAidmlzaWJsZSI6Yz0hMH19fSk7aWYoJCgiLnBwX292ZXJsYXkiKS5pcygiOnZpc2libGUiKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1vZGFsLW92ZXJsYXkiKSljPSEwO3JldHVybiBjfSxwb3B1cGl6ZXJDb25maWc9e307JC5leHRlbmQoITAscG9wdXBpemVyQ29uZmlnLHtwb3B1cE9wZW46ITF9KTsKdmFyIHBvcHVwaXplcj1mdW5jdGlvbihjLG0pe3ZhciBhPXRoaXMsaz0iYXV0byI7Yz9hLnRhcmdldD1jOmM9YS50YXJnZXQ7YS5zZXR0aW5ncz1tO2Euc2V0VHJpZ2dlcj1mdW5jdGlvbihiKXtrPSJzdHJpbmciPT10eXBlb2YgYiYmImNsaWNrIj09Yi50b0xvd2VyQ2FzZSgpPyJjbGljayI6ImF1dG8iO2Euc2V0dGluZ3MudHJpZ2dlcj1rO3JldHVybiBhfTthLmluaXQ9ZnVuY3Rpb24oKXt2YXIgYj0iZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUluaXRpYWxpemUsZD0iZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZTtpZihhLmlzQ29udGVudExvYWRlZCgpfHwhYiYmIWQpe2lmKGIpe3ZhciBmPWEuc2V0dGluZ3Mub25CZWZvcmVJbml0aWFsaXplLmNhbGwoYyxhKTtpZigwPT1mKXJldHVybn1iPSExO2lmKGEuc2V0dGluZ3MudGhyZXNob2xkJiZhLnNldHRpbmdzLm1haW5wb3B1cCl7YS5zZXR0aW5ncy5zaG93b25sb2FkPSExOwppZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZSYmKGI9ITAsZj1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1mKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59dGhyZXNob2xkRXhlYyhhLnNldHRpbmdzLnRocmVzaG9sZFZhbHVlLzEwMCxhLmV4ZWNPcGVuKX1pZihhLnNldHRpbmdzLnNjcm9sbHVwJiZhLnNldHRpbmdzLm1haW5wb3B1cCl7YS5zZXR0aW5ncy5zaG93b25sb2FkPSExO2lmKGQmJihiPSEwLGY9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09Zikpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufXNjcm9sbHVwRXhlYyhhLmV4ZWNPcGVuKX1jLmFkZENsYXNzKCJyZXZlYWwtbW9kYWwiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzJiYwPGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzLmxlbmd0aCYmYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFkZGVkQ2xhc3Nlcyk7CiQoImZvcm0iLGMpLm9uKCJzdWJtaXQiLGEuc3VibWl0KTtmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Euc2V0dGluZ3MuYW5pbWF0aW9uJiZmLmdldENvbnRleHQmJigidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYW5pbWF0aW9uLmVmZmVjdCYmKGEuc2V0dGluZ3MucmV2ZWFsLmFuaW1hdGlvbj0iZXh0ZXJuYWxBbmltYXRpb24iLGMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hbmltYXRpb24uZWZmZWN0KSksInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFuaW1hdGlvbi5zcGVlZCYmYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFuaW1hdGlvbi5zcGVlZCkpO2Euc2V0dGluZ3MuaW5pdGlhbGl6ZWQ9ITA7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuaW5pdGlhbGl6ZWQiLGEpO2lmKGQmJiFiJiYoZj1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1mKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59YS5zYXZlU2V0dGluZ3MoKTtkPSQoIiNoaWRkZW5Ta2lwT25sb2FkUHJpbnRzY3JlZW4iKTsKaWYoMDxkLmxlbmd0aCYmIkRPX1NLSVBfUE9QVVAiPT1kLnZhbCgpKXJldHVybiExOyFhLnNldHRpbmdzLnNob3dvbmxvYWR8fG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKXx8MSE9YS5zZXR0aW5ncy5jbG9zZUJ1dHRvbiYmMCE9YS5zZXR0aW5ncy5jbG9zZUJ1dHRvbnx8KC0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvcmVxdWVzdC8iKXx8LTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9kZW1hbmRlcy8iKSkmJi0xPT1hLnNldHRpbmdzLm5hbWUuaW5kZXhPZigiaW1hZ2VQb3B1cCIpfHxwb3B1cFN1cGVydmlzb3IucmVnaXN0ZXIoYSk7JChkb2N1bWVudCkub2ZmKCJjbGljayIsIi4iK20ucmV2ZWFsLmRpc21pc3Ntb2RhbGNsYXNzKS5vbigiY2xpY2siLCIuIittLnJldmVhbC5kaXNtaXNzbW9kYWxjbGFzcyxmdW5jdGlvbihoKXtjLnRyaWdnZXIoInBvcHVwaXplci5jbG9zZSIsCmMpfSk7JChkb2N1bWVudCkub2ZmKCJrZXl1cCIpLm9uKCJrZXl1cCIsZnVuY3Rpb24oaCl7Mjc9PT1oLndoaWNoJiZjLnRyaWdnZXIoInBvcHVwaXplci5jbG9zZSIsYyl9KTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnNldHRpbmdzLmZvcm0uZnJvbUFBJiYoZW1haWxIYW5kbGVyLmZyb21BQT1hLnNldHRpbmdzLmZvcm0uZnJvbUFBKTtyZXR1cm4gYX1hLmxvYWQoYS5pbml0KX07YS5vbk9wZW49ZnVuY3Rpb24oKXthLmlzQ29udGVudExvYWRlZCgpfHxhLmxvYWQoKTtpZigiYXV0byI9PWsmJm51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSkpcmV0dXJuITE7Yy5maW5kKCIucG9wdXBpemVyQm9keSIpLnNob3coKTtpZihudWxsIT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIil8fG51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSkpYy5maW5kKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikucmVtb3ZlQ2xhc3MoIm1vZGFsLWNsb3NlLWhpZGUiKSwKYy5maW5kKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikuc2hvdygpO2EuY3JlYXRlQ29uZmlybUZvcm0oKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZU9wZW4mJjA9PWEuc2V0dGluZ3Mub25CZWZvcmVPcGVuLmNhbGwoYyxhKSlyZXR1cm4hMTt2YXIgYj0iL3BvcHVwLSIrYS50YXJnZXQuZmluZCgiLmVtYWlsU3ViamVjdCIpLnRleHQoKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpO2EudGFyZ2V0LmZpbmQoIiNpbWFnZVBvcHVwTGVhZFR5cGUiKS5sZW5ndGgmJihiPSIvcG9wdXAtIithLnRhcmdldC5maW5kKCIjaW1hZ2VQb3B1cExlYWRUeXBlIikuYXR0cigiZGF0YS10cmFuc2xhdGVkIikucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7YS50YXJnZXQuZmluZCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIikubGVuZ3RoJiYoYj0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyIvbmV1ZnMvY2FsY3VsYXRyaWNlLXByZXQtYXV0by1wb3B1cC5odG1sIjoiL25ldy9jYXItbG9hbi1jYWxjdWxhdG9yLXBvcHVwLmh0bWwiKTsKZ2FQYWdlVmlldyhiKTtnYTRQYWdlVmlldyhiKTthLmxvZ0V2ZW50KCJwb3B1cC5vcGVuIik7ImxpdmUiPT0kKCIjdG9wZGVwbG95bWVudHR5cGUiKS52YWwoKSYmZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlBvcHVwLUxhdW5jaGVkIixhLnNldHRpbmdzLm5hbWUsd2luZG93LmxvY2F0aW9uLmhyZWYsMSk7YS5zZXR0aW5ncy5jb3VudGRvd24mJmEuaW5pdENvdW50ZG93bigpO2MuZGF0YSgib3BlbiIsITApO3BvcHVwaXplckNvbmZpZy5wb3B1cE9wZW49ITA7Im9uT3BlbiI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpO2I9Yy5maW5kKCJmb3JtIikuZmlyc3QoKTtiLmZpbmQoJ2lucHV0IFt0eXBlPSJ0ZXh0Il0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5vZmYoImZvY3VzIGJsdXIgY2hhbmdlIikuY3NzKCJjb2xvciIsIiMwMDAiKTskKHRoaXMpLmF0dHIoInBsYWNlaG9sZGVyIiwkKHRoaXMpLmF0dHIoImFsdCIpKX0pO3ZhciBkPW5ldyBGb3JtO2QubWFza1Bob25lKGMuZmluZCgiZm9ybSIpLnNlbGVjdG9yKwoiIGlucHV0LnBob25lIik7ZC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrIiBpbnB1dC5tb2JpbGUiKTswPGIuZmluZCgiLnBob25lLnJlcXVpcmVkIikubGVuZ3RoP2VtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT0xOmVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT0wO2Euc2V0dGluZ3MuZm9ybS5lbWFpbGlkJiZlbWFpbEhhbmRsZXIubG9nRm9ybVJlcXVlc3QoIkZvcm1Mb2FkZWQiLGEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLGEuc2V0dGluZ3MuZm9ybS5vZmZlcnR5cGUpO2Euc2V0dGluZ3MucmV2ZWFsLmNsb3NlZD1hLm9uQ2xvc2U7Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpOyQoIiNmbG9hdFByb21vVG9wQnRuQ29udGFpbmVyIikuaGlkZSgpOyQoIiNjb250YWluZXJGbEIiKS5oaWRlKCk7JCgiI3RvYXN0LWNvbnRhaW5lciIpLmhpZGUoKTskKCIjYWxlcnRNc2dDb250YWluZXIiKS5oaWRlKCk7YS5zZXR0aW5ncy5mb3JtLk9LQnV0dG9uQ2xhc3MmJihiPQphLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcywiLiI9PWJbMF0mJihiPWIuc3Vic3RyaW5nKDEpKSwkKCIuIitiLGMpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGEuc3VibWl0KSk7YS5zZXR0aW5ncy5mb3JtLkNhbmNlbEJ1dHRvbkNsYXNzJiYoYj1hLnNldHRpbmdzLmZvcm0uQ2FuY2VsQnV0dG9uQ2xhc3MsIi4iPT1iWzBdJiYoYj1iLnN1YnN0cmluZygxKSksJCgiLiIrYixjKS5vZmYoImNsaWNrIikub24oImNsaWNrIixhLmNhbmNlbCkpO2MudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsYSl9O2Eub25DbG9zZT1mdW5jdGlvbigpe2MuZGF0YSgib3BlbiIsITEpO3BvcHVwaXplckNvbmZpZy5wb3B1cE9wZW49ITE7YS5zZXR0aW5ncy5zdWJtaXR0ZWR8fGEubG9nRXZlbnQoInBvcHVwLmNhbmNlbCIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIjdG9hc3QtY29udGFpbmVyIikuc2hvdygpfSw1MDApO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIucmV2ZWFsLW1vZGFsLWJnIikubGVuZ3RoJiYKJCgiLnJldmVhbC1tb2RhbC1iZyIpLnJlbW92ZSgpfSwxRTMpO2MudHJpZ2dlcigicG9wdXBpemVyLm9uQ2xvc2UiLGEpOyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQ2xvc2UmJmEuc2V0dGluZ3Mub25DbG9zZS5jYWxsKGMsYSl9O2Euc3VibWl0PWZ1bmN0aW9uKCl7aWYocG9wdXBJc1N1Ym1pdHRpbmcpcmV0dXJuITE7cG9wdXBJc1N1Ym1pdHRpbmc9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe3BvcHVwSXNTdWJtaXR0aW5nPSExfSwzRTMpO3ZhciBiPWMuZmluZCgiZm9ybSIpLmZpcnN0KCksZD1bXSxmPSIiLGg9IiIsbD1bXSxwPVtdLGc9ITAsdD0iIix6PSIiLEE9IiI7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uKXN3aXRjaChhLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGlvbi5jYWxsKGIsYyxhKSl7Y2FzZSAhMTpjYXNlIDA6cmV0dXJuIHBvcHVwSXNTdWJtaXR0aW5nPSExO2Nhc2UgLTE6Zz0hMX1pZihnKXskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsCnNjcm9sbFRvOiExfSkuc3RhcnQoKTtiLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7Yi5maW5kKCJpbnB1dC5yZXF1aXJlZCwgc2VsZWN0LnJlcXVpcmVkLCB0ZXh0YXJlYS5yZXF1aXJlZCIpLnJlcXVpcmUoKTt2YXIgdj0hMSxCPSExLHc9ITE7Yi5maW5kKCJpbnB1dCIpLmZpbHRlcigiLnJlcVJhZGlvIikucmFkaW9PcHRpb25DaG9zZW4oKTtiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBlPSQodGhpcyk7ZS5oYXNDbGFzcygiZW1haWwiKSYmKGUuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8ZS52YWwoKS5sZW5ndGgpJiYodz0hMCk7aWYoZS5oYXNDbGFzcygicGhvbmUiKXx8ZS5oYXNDbGFzcygibW9iaWxlIikpaWYoQj0hMCxlLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwwPGUudmFsKCkubGVuZ3RoKXY9ITB9KTswPT12JiYwPT13JiYoQj92PSEwOnc9ITApO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTsKZS5oYXNDbGFzcygiZW1haWwiKSYmZS52YWxpZEVtYWlsQWRkcmVzcygpO2UuaGFzQ2xhc3MoInBob25lIikmJmUudmFsaWRhdGVQaG9uZSgpO2UuaGFzQ2xhc3MoIm1vYmlsZSIpJiZlLnZhbGlkYXRlTW9iaWxlKCl9KTsxPmMuZmluZCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIikubGVuZ3RoJiZjLmFwcGVuZCgnPGRpdiBjbGFzcz0iTWlzc2luZ1ZhbGlkYXRpb25Nc2ciPjwvZGl2PicpO2lmKCEkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXJldHVybiAkKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGMpLnNob3coKSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixmdW5jdGlvbihlKXskKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGMpLmhpZGUoKTskKHRoaXMpLm9mZihlKX0pLGEubG9nRXZlbnQoInBvcHVwLnZhbGlkYXRpb25GYWlsZWQiKSxwb3B1cElzU3VibWl0dGluZz0hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZXN1Ym1pdCl7Zz0hMDt0cnl7Zz1hLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0LmNhbGwoYywKYSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coIk9uIGJlZm9yZSBzdWJtaXQgZmFpbGVkLCByZXR1cm5pbmcgdHJ1ZS4iLGUpfWlmKDA9PWcpcmV0dXJuIGEuc2V0dGluZ3MuY2xvc2VPblN1Ym1pdCYmYS5jbG9zZSgpLCExfWEubG9nRXZlbnQoInBvcHVwLnN1Ym1pdCIpO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTsoZS5oYXNDbGFzcygiZW1haWwiKXx8ImVtYWlsIj09PWUuYXR0cigidHlwZSIpKSYmZC5wdXNoKGUudmFsKCkpO2UuaGFzQ2xhc3MoInBvc3RhbCIpJiYoZj1lLnZhbCgpKTtlLmhhc0NsYXNzKCJ0cmFkZWluIikmJihoPWUudmFsKCkpOyhlLmhhc0NsYXNzKCJwaG9uZSIpfHxlLmhhc0NsYXNzKCJtb2JpbGUiKXx8InRlbCI9PT1lLmF0dHIoInR5cGUiKSkmJnAucHVzaChlLnZhbCgpKTsidW5kZWZpbmVkIj09dHlwZW9mIGUuYXR0cigibmFtZSIpJiZlLmF0dHIoIm5hbWUiLCIiKTsoZS5oYXNDbGFzcygibmFtZSIpfHwibmFtZSI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiYKbC5wdXNoKGUudmFsKCkpOyhlLmhhc0NsYXNzKCJmaXJzdG5hbWUiKXx8ImZpcnN0bmFtZSI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnVuc2hpZnQoZS52YWwoKSk7KGUuaGFzQ2xhc3MoImxhc3RuYW1lIil8fCJsYXN0bmFtZSI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnB1c2goZS52YWwoKSk7aWYoZS5oYXNDbGFzcygiY29tbWVudCIpfHwiY29tbWVudCI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpdD1lLnZhbCgpO2lmKGUuaGFzQ2xhc3MoImFkZHJlc3MiKXx8ImFkZHJlc3MiPT1lLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXo9ZS52YWwoKTtpZihlLmhhc0NsYXNzKCJiaXJ0aGRhdGUiKXx8ImJpcnRoZGF0ZSI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpQT1lLnZhbCgpfSk7Zz1iLnNlcmlhbGl6ZUFycmF5KCk7dmFyIHg9JCgiLmVtYWlsQm9keSIsYykuaHRtbCgpKyIiLHU9JCgiLmVtYWlsU3ViamVjdCIsYykuaHRtbCgpKwoiIjsiUHJpY2VWZWhpY2xlIj09YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQmJjA9PWIuZmluZCgiW25hbWU9bm9DQkJdIikudmFsKCkmJiJTTVMiPT1iLmZpbmQoIiN0cmFkZUluQmFyU21zT3JFbWFpbFNtczpjaGVja2VkIikudmFsKCkmJih1Kz0iIChTTVMpIik7dmFyIHE9W107W10ucHVzaC5hcHBseShxLGcpO1tdLnB1c2guYXBwbHkocSxhLmdsb2JhbFJlcGxhY2VtZW50cygpKTskLmVhY2gocSxmdW5jdGlvbigpe3ZhciBlPW5ldyBSZWdFeHAoIntcXCQiK3RoaXMubmFtZS50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpLG49dGhpcy52YWx1ZTsiU0VBUkNIRURWRUhJQ0xFIj09dGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkmJihuPSI8c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4iK24rIjwvc3Bhbj4iKTt4PXgucmVwbGFjZShlLG4pO3U9dS5yZXBsYWNlKGUsdGhpcy52YWx1ZSl9KTtnPXtzZW5kVG86YS5zZXR0aW5ncy5mb3JtLnNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6YS5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERiwKY29uZGl0aW9uOmEuc2V0dGluZ3MudmVoaWNsZVN0YXRlLG1haWxJRDphLnNldHRpbmdzLmZvcm0uZW1haWxpZCxzdWJqZWN0OnUsYm9keTp4LHVzZXJQb3N0YWw6ZixhZGRyZXNzOnosYmlydGhkYXRlOkEsdHJhZGVpbjpoLHBvcHVwZGl2OiIiLHVzZXJFbWFpbDpkLmpvaW4oIjsiKSx1c2VyTmFtZTpsLmpvaW4oIiAiKSx1c2VyUGhvbmU6cC5qb2luKCIsIiksc21zOmEuc2V0dGluZ3MuZm9ybS5zbXMscG9wdXBPZmZlclR5cGU6YS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSxjb21tZW50czp0fTskLmV4dGVuZCghMCxlbWFpbEhhbmRsZXIsZyk7InN0cmluZyI9PXR5cGVvZiBlbWFpbEhhbmRsZXIudXNlck5hbWUmJihnPWVtYWlsSGFuZGxlci51c2VyTmFtZS5zcGxpdCgiICIpLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWcuc2hpZnQoKSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWcuam9pbigiICIpKTtlbWFpbEhhbmRsZXIucG9wdXBkaXY9YS50YXJnZXQuYXR0cigiaWQiKTsKaWYoYS5zZXR0aW5ncy5maWxsZmxhZyl2YXIgQz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJwb3B1cEZvcm1GaWxsZWQiLCIxIiw5MCwiLyIpO2MudHJpZ2dlcigicG9wdXBpemVyLmZvcm1GaWxsZWQiLGEpfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZW1haWxIYW5kbGVyLmNhbGxiYWNrJiYwPGVtYWlsSGFuZGxlci5jYWxsYmFjay5sZW5ndGgpdmFyIEQ9ZW1haWxIYW5kbGVyLmNhbGxiYWNrO3ZhciBFPWZ1bmN0aW9uKCl7cmV0dXJuITB9OyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJzdWJtaXQmJihFPWEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ZnVuY3Rpb24oKXtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PWZ1bmN0aW9uKGUpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdD8KYS5jbG9zZSgpOmMucmV2ZWFsKGEuc2V0dGluZ3MucmV2ZWFsKTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9ZnVuY3Rpb24oKXthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQmJmEuY2xvc2UoKTtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKGUpe3ZhciBuPSExO2Euc2V0dGluZ3MuZm9ybS5zaG93RW1haWxDb25maXJtYXRpb24mJihuPWdldE1haWxTZW50SGFuZGxlcigiXyIrYy5hdHRyKCJpZCIpKSxuLnRpbWVvdXRDYWxsYmFjaz1mdW5jdGlvbigpe2IudHJpZ2dlcigicmVzZXQiKX0pO3ZhciBGPWEuc2V0dGluZ3MuY2xvc2VPblN1Ym1pdDtpZihlKWEubG9nRXZlbnQoInBvcHVwLmxlYWRfc2VudCIpLDA9PUUuY2FsbChjLGEpJiYoRj0hMSksImZ1bmN0aW9uIj09dHlwZW9mIEMmJkMoKSwiZnVuY3Rpb24iPT0KdHlwZW9mIEQmJkQoKSwib25TdWJtaXQiPT1hLnNldHRpbmdzLmNvb2tpZUNyZWF0ZSYmYS5zZXRDb29raWUoKSxGJiYiaGlkZGVuIiE9Yy5jc3MoInZpc2liaWxpdHkiKSYmYS5jbG9zZSgiQ09OU0VOVCIpLGEuc2V0dGluZ3MubWFpbnBvcHVwJiYoZW1haWxIYW5kbGVyLm1haW5Qcm9tbz0hMCksbj9uLnNob3dTdWNjZXNzKCk6MDwkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLmxlbmd0aCYmJCgiZm9ybSMiK2MuYXR0cigiaWQiKSsiX2NvbmZpcm0iKS50cmlnZ2VyKCJzdWJtaXQiKTtlbHNle258fChuPWdldE1haWxTZW50SGFuZGxlcigpKTt0cnl7bi5zaG93RmFpbCgpfWNhdGNoKEcpe319c2V0VGltZW91dChlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKSwxRTMpfTthLnNhdmVTZXR0aW5ncyh7c3VibWl0dGVkOiEwfSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVTZW5kTWFpbCYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsLmNhbGwoYywKYSkpcmV0dXJuITE7YS5zZXREZWZhdWx0QURGKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BREYmJihnPWEuc2V0dGluZ3Mub25BREYuY2FsbChjLGEpLCJvYmplY3QiPT10eXBlb2YgZyYmJC5leHRlbmQoYS5zZXR0aW5ncy5BREYsZykpO2c9Im1ha2UgbW9kZWwgeWVhciBzdG9ja051bWJlciB0cmltIHZpbiBwcmljZSBjYXJpZCIuc3BsaXQoIiAiKTtxPWEuc2V0dGluZ3MuQURGO2Zvcih2YXIgeT0wO3k8Zy5sZW5ndGg7eSsrKXt2YXIgcj1nW3ldO2VtYWlsSGFuZGxlcltyXT0iIiE9ZW1haWxIYW5kbGVyW3JdP2VtYWlsSGFuZGxlcltyXTpxW3JdP3Fbcl06ZW1haWxIYW5kbGVyW3JdfWVtYWlsSGFuZGxlci5ib2R5PWEuY2xlYW5CbGFua1ZhcmlhYmxlcyhlbWFpbEhhbmRsZXIuYm9keSk7YS5zaG93UHVyY2hhc2VJbnRlbnRQb3B1cCgpfHxlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KTtyZXR1cm4hMH07YS5zaG93UHVyY2hhc2VJbnRlbnRQb3B1cD0KZnVuY3Rpb24oKXtpZihhLnNldHRpbmdzLnB1cmNoYXNlSW50ZW50UG9wdXApe3ZhciBiPSQoIiNpbnRlcnN0aXRpYWxWZWhpY2xlSW50ZW50Iik7aWYoMT5iLmxlbmd0aHx8bnVsbCE9Q29va2llcy5nZXQoInB1cmNoYXNlX2ludGVudCIpKXJldHVybiExO2dhVHJhY2soIl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBkJ2FjaGF0IiwiUG9wdXAgdnVzIixhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsLDEpO2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2IuZmluZCgiZm9ybSIpLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7dmFyIGQ9JCh0aGlzKSxmPWQuZmluZCgiaW5wdXQiKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCJ9KS5zdGFydCgpO2QuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtmLmZpbHRlcigiLnJlcXVpcmVkIikucmVxdWlyZSgpLm5vbkh0bWwoKTtmLmZpbHRlcigiLnJlcVJhZGlvIikucmFkaW9PcHRpb25DaG9zZW4oKTsKaWYoJC52YWxpZGl0eS5lbmQoKS52YWxpZCl7Yi50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTt2YXIgaD17cHVyY2hhc2VfaW50ZW50OiEwfTtkLnNlcmlhbGl6ZUFycmF5KCkubWFwKGZ1bmN0aW9uKGwscCxnKXtoW2wubmFtZV09bC52YWx1ZX0pO0Nvb2tpZXMuc2V0KCJwdXJjaGFzZV9pbnRlbnQiLGgucHVyY2hhc2VfaW50ZW50LDMwLCIvIik7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJSZXBvbnNlcyIsaC5wdXJjaGFzZV9pbnRlbnQsMSk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKGEuc2V0dGluZ3MuYnlwYXNzQ29uc2VudCl9cmV0dXJuITF9KTtiLnJldmVhbCh7Y2xvc2Vfb25fYmFja2dyb3VuZF9jbGljazohMSxkaXNtaXNzX21vZGFsX2NsYXNzOiJfX05VTExfXyJ9KTtyZXR1cm4hMH1yZXR1cm4hMX07YS5nbG9iYWxSZXBsYWNlbWVudHM9ZnVuY3Rpb24oKXt2YXIgYj1bXTskKCJpbnB1dFt0eXBlPWhpZGRlbl0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9CiQodGhpcykuYXR0cigibmFtZSIpO2c9InVuZGVmaW5lZCIhPXR5cGVvZiBnP2c6JCh0aGlzKS5hdHRyKCJpZCIpO2lmKCFnKXJldHVybiEwO3ZhciB0PSExOyJlbWFpbGJ1aWxkYW5kcHJpY2UiPT1nLnRvTG93ZXJDYXNlKCkmJiIiPT0kKHRoaXMpLnZhbCgpLnJlcGxhY2UoLyAvZywiIikmJih0PSEwKTt0fHwoImJyYW5kIj09Zy50b0xvd2VyQ2FzZSgpJiZiLnB1c2goe25hbWU6Im1ha2UiLHZhbHVlOiQodGhpcykudmFsKCl9KSxiLnB1c2goe25hbWU6Zyx2YWx1ZTokKHRoaXMpLnZhbCgpfSkpfSk7dmFyIGQ9IiI7aWYoMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS5sZW5ndGgmJjA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoKXt2YXIgZj0kKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7ZD0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKTt2YXIgaD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksbD0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSxwPSQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwKIiI7ZD1kKyIgIitoKyIgIitsKyhwLmxlbmd0aD8iICIrcDoiIik7ZCs9MDxmLmxlbmd0aD8iIChTdG9jayMgIitmKyIpIjoiIn1iLnB1c2goe25hbWU6IkxBU1RWRUhJQ0xFVklFV0VEIix2YWx1ZTpkfSk7cmV0dXJuIGJ9O2EuY2xlYW5CbGFua1ZhcmlhYmxlcz1mdW5jdGlvbihiKXt2YXIgZD1iLnJlcGxhY2UoL3tcJFFVRVNUSU9OU30vZywiIikucmVwbGFjZSgve1wkTUVTU0FHRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csIiIpLnJlcGxhY2UoL3tcJFBBWU1FTlR9L2csIiIpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLCIiKS5yZXBsYWNlKC97XCRPRkZFUn0vZywiIikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csIiIpLnJlcGxhY2UoL3tcJENPTE9SfS9nLCIiKS5yZXBsYWNlKC97XCRGTkFNRX0vZywKIiIpLnJlcGxhY2UoL3tcJExOQU1FfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTH0vZywiIikucmVwbGFjZSgve1wkVVNFUlBIT05FfS9nLCIiKTttYWlsUGFnZSYmYi5yZXBsYWNlKC97XCRFTUFJTEJVSUxEQU5EUFJJQ0V9L2csbWFpbFBhZ2UuYmFuZHBMaW5rKCkpO3JldHVybiBkfTthLmNhbmNlbD1mdW5jdGlvbigpe2EuY2xvc2UoIkNBTkNFTCIpfTthLm9wZW49ZnVuY3Rpb24oYil7aWYoMT09Yy5kYXRhKCJvcGVuIikpcmV0dXJuITE7Im9iamVjdCI9PXR5cGVvZiBiJiYtMSE9ImNsaWNrIHRhcCIuaW5kZXhPZihiLnR5cGUudG9Mb3dlckNhc2UoKSkmJihrPSJjbGljayIpO2lmKCFpc05hTihiKSlyZXR1cm4gc2V0VGltZW91dChhLm9wZW4sMUUzKmIpO2lmKCFhLmlzQ29udGVudExvYWRlZCgpKXJldHVybiBhLmxvYWQoYS5vcGVuKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cubmV3VkRQVmlkZW9Jc1BsYXlpbmcmJjE9PXdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmCiJjbGljayIhPWt8fGEuaXNBY3RpdmUoKSlyZXR1cm4gYS5vcGVuKDUpO2Eub25PcGVuKCk7cmV0dXJuIGF9O2EuZXhlY09wZW49ZnVuY3Rpb24oKXtudWxsPT1Db29raWVzLmdldCgicG9wdXBTaG93bkV4ZWMiKSYmKENvb2tpZXMuc2V0KCJwb3B1cFNob3duRXhlYyIsIjEiLG51bGwsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxhLm9wZW4oMCkpfTthLmluaXRDb3VudGRvd249ZnVuY3Rpb24oKXt0cnl7dmFyIGI9bmV3IERhdGUoMUUzKmEuc2V0dGluZ3MuY291bnRkb3duKTtpZigwPGMuZmluZCgiLmNvdW50ZG93biIpLmxlbmd0aCl7dmFyIGQ9Yy5maW5kKCIuY291bnRkb3duIiksZj1uZXcgRGF0ZSxoPWIuZ2V0VGltZSgpLWYuZ2V0VGltZSgpO2lmKDA8aCl7dmFyIGw9W01hdGguZmxvb3IoaC84NjRFNSksTWF0aC5mbG9vcihoJTg2NEU1LzM2RTUpLE1hdGguZmxvb3IoaCU4NjRFNSUzNkU1LzZFNCksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUlNkU0LzFFMyldO2ZvcihiPTA7YjwKbC5sZW5ndGg7YisrKWxbYl09OTxsW2JdP2xbYl0udG9TdHJpbmcoKToiMCIrbFtiXTt2YXIgcD1sLmpvaW4oIjoiKTtkLmNvdW50ZG93bih7c3RhcnRUaW1lOnAsaW1hZ2U6Ii9pbWFnZXMvZGlnaXRzX3NtYWxsLnBuZyIsZGlnaXRXaWR0aDoyOSxkaWdpdEhlaWdodDo0M30pfWVsc2UgZC5oaWRlKCl9fWNhdGNoKGcpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiYoZGVidWcoZyksZGVidWcoIkludmFsaWQgZGF0ZSAiLGEuc2V0dGluZ3MuY291bnRkb3duKSl9fTthLmNsb3NlPWZ1bmN0aW9uKGIpe2lmKCJDQU5DRUwiPT1iJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUNhbmNlbCl7dmFyIGQ9YS5zZXR0aW5ncy5vbkJlZm9yZUNhbmNlbC5jYWxsKGMsYSk7aWYoMD09ZClyZXR1cm4hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUNsb3NlJiYoZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UuY2FsbChjLGEsYiksMD09ZCkpcmV0dXJuITE7CmMudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9O2EuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gcG9wdXBpemVyQWN0aXZlKCl9O2Euc2V0Q29va2llPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lLCIxIixhLnNldHRpbmdzLmNvb2tpZUR1cmF0aW9uLCIvIik7dmFyIGI9YS5zZXR0aW5ncy5jb29raWVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoInJlYmF0ZXNob3duIj09Ynx8InJlYmF0ZW90aGVyc2hvd24iPT1iJiYidXNlZCI9PSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCkpYj1uZXcgRGF0ZSxiLnNldFRpbWUoYi5nZXRUaW1lKCkrMThFNCksQ29va2llcy5zZXQoInVzZWRTbGlkZXJQb3B1cERpc3BsYXllZCIsIjEiLGIsIi8iKX07YS5zYXZlU2V0dGluZ3M9ZnVuY3Rpb24oYil7Yj0idW5kZWZpbmVkIj09dHlwZW9mIGI\/e306YjtiPSJvYmplY3QiIT10eXBlb2YgYj97dXNlckRlZmluZWROb25PYmplY3Q6Yn06YjtjLmRhdGEoInBvcHVwU2V0dGluZ3MiLAokLmV4dGVuZCghMCxhLnNldHRpbmdzLGIpKX07YS5zZXREZWZhdWx0QURGPWZ1bmN0aW9uKCl7dmFyIGI9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLGQ9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSxmPSQoIiNwb3B1cHllYXIiKS52YWwoKTswPCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKS5sZW5ndGgmJjA8JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpLmxlbmd0aCYmMDwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKS5sZW5ndGgmJihiPSQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKSxkPSQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKSxmPSQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpKTthLnNldHRpbmdzLkFERj17bWFrZTpiLG1vZGVsOmQseWVhcjpmLHN0b2NrTnVtYmVyOiQoIiNwb3B1cHN0b2NrbnVtYmVyIikudmFsKCl9fTthLmxvZ0V2ZW50PWZ1bmN0aW9uKGIpe3ZhciBkPWEuc2V0dGluZ3MuZm9ybTtkPWQub2ZmZXJ0eXBlP2Qub2ZmZXJ0eXBlOiJFTUFJTElEXyIrZC5lbWFpbGlkOwppZighYilyZXR1cm4hMTskKGEudGFyZ2V0KS50cmlnZ2VyKGIpO2lmKCJwb3B1cC5sZWFkX3NlbnQiPT1iKXt2YXIgZj1rLnJlcGxhY2UoLyheW2Etel17MX0pL2csZnVuY3Rpb24obCl7cmV0dXJuIGwudG9VcHBlckNhc2UoKX0pLGg9ZDJjbWVkaWEucGFnZURlcGFydG1lbnQoKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtbGVhZHMiLGYsaCwxKX0idW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixiLGQsYSksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGQpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGIsZCl9O2EuaXNDb250ZW50TG9hZGVkPWZ1bmN0aW9uKCl7aWYoIWEudGFyZ2V0WzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1sYXp5bG9hZGlkIikpcmV0dXJuITA7CnZhciBiPTA9PT1hLnRhcmdldC5odG1sKCkudHJpbSgpLmxlbmd0aCxkPWEuc2V0dGluZ3MuY29udGVudExvYWRlZHx8ITE7cmV0dXJuIWImJmR9O2EubG9hZD1mdW5jdGlvbihiKXthLmlzQ29udGVudExvYWRlZCgpPyhhLnNldHRpbmdzLmNvbnRlbnRMb2FkZWQ9ITAsYigpKTokLmFqYXgoe3R5cGU6IkdFVCIsY2FjaGU6ITAsdXJsOigiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQb3B1cENvbnRlbnQiLGRhdGE6e3dzd2lkdGg6IjAiLF86YS5zZXR0aW5ncy5pZGVudCxpZDphLnRhcmdldC5kYXRhKCJsYXp5bG9hZGlkIiksbWFrZTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKXx8IiIsbW9kZWw6JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpfHwiIix5ZWFyOiQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpfHwiIix0cmltOiQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwiIiwKc3RvY2tOdW1iZXI6JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpfHwiIix2ZWhpY2xlSWQ6JCgiI3RvcGNhcmlkIikudmFsKCl8fDB9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7YS50YXJnZXQuaHRtbChkKTthLnNldHRpbmdzLmNvbnRlbnRMb2FkZWQ9ITA7ImZ1bmN0aW9uIj09PXR5cGVvZiBhZGROb1RyYW5zbGF0ZUVtYWlsRGVmJiZhZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCk7YigpfX0pfTthLmNyZWF0ZUNvbmZpcm1Gb3JtPWZ1bmN0aW9uKCl7dmFyIGI9YS50YXJnZXQuYXR0cigiaWQiKSsiX2NvbmZpcm0iOzE+JCgiI2NvbmZpcm1fZm9ybXMiKS5sZW5ndGgmJiQoImJvZHkiKS5hcHBlbmQoJCgiPGRpdj48L2Rpdj4iKS5hdHRyKCJpZCIsImNvbmZpcm1fZm9ybXMiKSk7aWYoMT4kKCIjIitiKS5sZW5ndGgmJmEuc2V0dGluZ3MuY29uZmlybUZvcm0mJjAhPT1hLnNldHRpbmdzLmNvbmZpcm1Gb3JtLmxlbmd0aCl7Yj0kKCI8Zm9ybT48L2Zvcm0+IikuYXR0cigiaWQiLGIpLmF0dHIoIm1ldGhvZCIsCiJQT1NUIikuYXR0cigiYWN0aW9uIiwiL2NvbmZpcm1hdGlvbi5odG1sIikuYXR0cigidGFyZ2V0IiwiaWZyYW1lZ3RyYWNrIik7dmFyIGQ9JCgiI2F1dG9hdWJhaW5lX3BvcHVwIik7ZD1be25hbWU6Imd0YWdfY29udmVyc2lvbiIsdmFsdWU6Imd0YWcifSx7bmFtZToibGVhZF9kZXBhcnRtZW50Iix2YWx1ZToiIn0se25hbWU6ImxlYWRUeXBlIix2YWx1ZToiIn0se25hbWU6InBhZ2VJRCIsdmFsdWU6IiJ9LHtuYW1lOiJjdXJyZW50VVJMIix2YWx1ZToiIn0se25hbWU6ImJ1dHRvblBvc2l0aW9uIix2YWx1ZToiIn0se25hbWU6ImRlYWxlck5hbWUiLHZhbHVlOiIifSx7bmFtZToiaXNGdWxsV2lkdGgiLHZhbHVlOiIifSx7bmFtZToiaXNNb2JpbGVOZXdWRFAiLHZhbHVlOiIifSx7bmFtZToidGVzdG1vZGUiLHZhbHVlOiIwIixjbGFzczoidGVzdG1vZGUifSx7bmFtZToiZnJvbUF1dG9BdWJhaW5lIix2YWx1ZTowPGQubGVuZ3RoJiYiZmFsc2UiIT1kLnZhbCgpfV07W10ucHVzaC5hcHBseShkLAphLnNldHRpbmdzLmNvbmZpcm1Gb3JtKTtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKykkKCI8aW5wdXQgLz4iKS5hdHRyKCJ0eXBlIiwiaGlkZGVuIikuYXR0cihkW2ZdKS5hcHBlbmRUbyhiKTskKCIjY29uZmlybV9mb3JtcyIpLmFwcGVuZChiKTtiLm9uKCJzdWJtaXQiLG9uQ29uZmlybVN1Ym1pdCl9MT4kKCIjZ3RyYWNrRnJhbWUiKS5sZW5ndGgmJiQoIjxpZnJhbWU+PC9pZnJhbWU+IikuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOiJndHJhY2tGcmFtZSIsbmFtZToiaWZyYW1lZ3RyYWNrIixzdHlsZToid2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7In0pLmFwcGVuZFRvKCIjY29uZmlybV9mb3JtcyIpfTtyZXR1cm4gYX07CmpRdWVyeShmdW5jdGlvbihjKXt2YXIgbT1jKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aD9jKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpOk1hdGgucm91bmQoMUU3Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDE2KTtjLmZuLnBvcHVwaXplPWZ1bmN0aW9uKGEpe2E9YT9hOnt9O3ZhciBrPXtyZXZlYWw6e2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9LGZvcm06e2VtYWlsaWQ6MCxvZmZlcnR5cGU6MCxuYW1lOjAsc2VuZFRvOjAsc2VuZFRvQURGOjAsT0tCdXR0b25DbGFzczoic3VibWl0QnRuIixDYW5jZWxCdXR0b25DbGFzczoiY2FuY2VsQnRuIixzaG93RW1haWxDb25maXJtYXRpb246ITF9LEFERjp7bWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHN0b2NrTnVtYmVyOiIifSxpZGVudDptLGVuZFBvcHVwUXVldWU6ITEscHJpb3JpdHk6MSxhbmltYXRpb246ITEsCm5vdHJhbnNmb3JtOiExLGZpbGxmbGFnOiExLHN1Ym1pdHRlZDohMSxzaG93b25sb2FkOiExLGNvb2tpZU5hbWU6ITEsY29va2llRHVyYXRpb246NjAsY2xvc2VPblN1Ym1pdDohMCxhZGRlZENsYXNzZXM6IiJ9O2lmKDE9PXRoaXMubGVuZ3RoKXt2YXIgYj10aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiKT90aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiKTp7fTtzZXR0aW5ncz17fTtjLmV4dGVuZCghMCxzZXR0aW5ncyxrLGIsYSk7IXNldHRpbmdzLmNvb2tpZU5hbWUmJjA8dGhpcy5hdHRyKCJpZCIpLmxlbmd0aCYmKHNldHRpbmdzLmNvb2tpZU5hbWU9ImNwcF8iK3RoaXMuYXR0cigiaWQiKSk7IXNldHRpbmdzLm5hbWUmJjA8dGhpcy5hdHRyKCJpZCIpLmxlbmd0aCYmKHNldHRpbmdzLm5hbWU9dGhpcy5hdHRyKCJpZCIpLnJlcGxhY2UoL0NvbnRhaW5lclxiLywiIikpO3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIsc2V0dGluZ3MpO2E9bmV3IHBvcHVwaXplcih0aGlzLHNldHRpbmdzKTsKc2V0dGluZ3MuaW5pdGlhbGl6ZWR8fChhLmluaXQoKSxwb3B1cFN1cGVydmlzb3IucG9wdXBzLnB1c2goYSkpO3JldHVybiBhfXBvcHVwcz1bXTt0aGlzLmVhY2goZnVuY3Rpb24oKXtwb3B1cHMucHVzaChjKHRoaXMpLnBvcHVwaXplKCkpfSk7cmV0dXJuIHBvcHVwc307c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPW51bGw7Yyh3aW5kb3cpLm9uKCJ0b3VjaG1vdmUsIG9uc2Nyb2xsLCBzY3JvbGwgbW91c2V3aGVlbCByZXNpemUiLGZ1bmN0aW9uKGspe2NsZWFyVGltZW91dChhKTthPXNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnJlcG9zaXRpb24sMUUzKX0pfSwxRTMpfSk7Ci8qKiAvanMvdnRpcC5qcyAqKi8KdmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDo0NyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdnRpcGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzU6MzkiOyJ1c2Ugc3RyaWN0IjsKdGhpcy52dGlwPWZ1bmN0aW9uKCl7dGhpcy54T2Zmc2V0PS0xMDt0aGlzLnlPZmZzZXQ9MTA7JCgiLnZ0aXAiKS5vZmYoKS5vbigiaG92ZXIiLGZ1bmN0aW9uKGEpe3RoaXMudD10aGlzLnRpdGxlO3RoaXMudGl0bGU9IiI7dGhpcy50b3A9YS5wYWdlWSt5T2Zmc2V0O3RoaXMubGVmdD1hLnBhZ2VYK3hPZmZzZXQ7JCgiYm9keSIpLmFwcGVuZCgnPHAgaWQ9InZ0aXAiIHN0eWxlPSJ6LWluZGV4OjEwMDAwMDsiPjxpbWcgaWQ9InZ0aXBBcnJvdyIgLz4nK3RoaXMudCsiPC9wPiIpOyQoInAjdnRpcCAjdnRpcEFycm93IikuYXR0cigic3JjIiwiL2ltYWdlcy9zY3JhdGNoL3Z0aXBfYXJyb3cucG5nIik7JCgicCN2dGlwIikuY3NzKCJ0b3AiLHRoaXMudG9wKyJweCIpLmNzcygibGVmdCIsdGhpcy5sZWZ0KyJweCIpLmZhZGVJbigic2xvdyIpfSxmdW5jdGlvbigpe3RoaXMudGl0bGU9dGhpcy50OyQoInAjdnRpcCIpLmZhZGVPdXQoInNsb3ciKS5yZW1vdmUoKX0pLm9uKCJtb3VzZW1vdmUiLApmdW5jdGlvbihhKXt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4Iil9KX07alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbihhKXt2dGlwKCl9KTsKLyoqIC9qcy93U2NyYXRjaFBhZC5qcyAqKi8KdmFyIF9fX2QyY193U2NyYXRjaFBhZGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MzciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNC0wNC0xMiAxODozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZCl7ZnVuY3Rpb24gaChiLGEpe3RoaXMuc3A9bnVsbDt0aGlzLnNldHRpbmdzPWI7dGhpcy4kZWxlbT1hO3RoaXMuZW5hYmxlZD0hMDt0aGlzLnNjcmF0Y2g9ITE7dGhpcy5jdHg9dGhpcy5jYW52YXM9bnVsbDtyZXR1cm4gdGhpc31kLmZuLndTY3JhdGNoUGFkPWZ1bmN0aW9uKGIsYSl7aWYoImVuYWJsZSI9PWIpZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKS5lbmFibGUoKTtlbHNle2lmKCJvYmplY3QiPT09dHlwZW9mIGIpYT1iO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBiKXt2YXIgYz1bXSxmPXRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcykuZGF0YSgiX3dTY3JhdGNoUGFkIik7ZSYmKCJyZXNldCI9PT1iP2UucmVzZXQoKToiY2xlYXIiPT09Yj9lLmNsZWFyKCk6ImVuYWJsZWQiPT09Yj9lLmVuYWJsZWQ9ITA9PT1hOnZvaWQgMCE9PWQuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzW2JdJiYodm9pZCAwIT09YT9lLnNldHRpbmdzW2JdPQphOmMucHVzaChlLnNldHRpbmdzW2JdKSkpfSk7cmV0dXJuIDE9PT1jLmxlbmd0aD9jWzBdOjA8Yy5sZW5ndGg\/YzpmfWE9ZC5leHRlbmQoe30sZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3MsYXx8e30pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kKHRoaXMpLGc9alF1ZXJ5LmV4dGVuZCghMCx7fSxhKTtpZighZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCl7dmFyIGs9IkJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNSBjYW52YXMsIHBsZWFzZSB1cGdyYWRlIHRvIGEgbW9yZSBtb2Rlcm4gYnJvd3Nlci4iO2QoIiN0ZXh0RG9lc05vdFN1cHBvcnRIVE1MNSIpLmxlbmd0aCYmKGs9ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikudmFsKCkpO2UuY3NzKCJwYWRkaW5nLXRvcCIsIjYwcHgiKTtlLmNzcygiaGVpZ2h0IiwiNTVweCIpO2UuaHRtbChrKTsidW5kZWZpbmVkIiE9dHlwZW9mIGcuaWRUb0FkZCYmZCgiI2Jsb2NrYWdlIisKZy5pZFRvQWRkKS5sZW5ndGgmJmQoIiNibG9ja2FnZSIrZy5pZFRvQWRkKS5jc3MoInRvcCIscGFyc2VJbnQoZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIikpKzMwKyJweCIpO3JldHVybiExfWc9bmV3IGgoZyxlKTtlLmFwcGVuZChnLmdlbmVyYXRlKCkpO2cucGl4ZWxzPWcuY2FudmFzLndpZHRoKmcuY2FudmFzLmhlaWdodDtlLmRhdGEoIl93U2NyYXRjaFBhZCIsZyk7Zy5pbml0KCl9KX19O2QuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzPXt3aWR0aDo2MDAsaGVpZ2h0OjExNSxpbWFnZToiL2ltYWdlcy9zY3JhdGNoL3NsaWRlMi5wbmciLGltYWdlMjoiL2ltYWdlcy9wb3B1cHMvc3R5bGUyL3NjcmF0Y2gucG5nIixpbWFnZURpc2FibGVkOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaF9kaXNhYmxlZC5wbmciLGNvbG9yOiIjMzM2Njk5IixvdmVybGF5OiJub25lIixzaXplOjMwLHJlYWx0aW1lUGVyY2VudDohMSxzY3JhdGNoRG93bjpudWxsLHNjcmF0Y2hVcDpudWxsLApzY3JhdGNoTW92ZTpudWxsLGN1cnNvcjpudWxsLGlkVG9BZGQ6IiIsYmFja2dyb3VuZENvbG9yOiIjMDEwYTI4IixlbmFibGVkOiEwfTtoLnByb3RvdHlwZT17Z2VuZXJhdGU6ZnVuY3Rpb24oKXt0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpO3RoaXMuc3A9ZCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KS5hcHBlbmQoZCh0aGlzLmNhbnZhcykuYXR0cigid2lkdGgiLHRoaXMuc2V0dGluZ3Mud2lkdGgrInB4IikuYXR0cigiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodCsicHgiKS5hdHRyKCJzdHlsZSIsInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTJweDt0b3A6LTFweDt6LWluZGV4OjE7IikpO3RoaXMuc2V0dGluZ3MuZW5hYmxlZCYmdGhpcy5lbmFibGUoKTtyZXR1cm4gdGhpcy5zcH0sZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIsCiEwKTt0aGlzLmJpbmRCcm93c2VyKCk7dGhpcy5iaW5kTW9iaWxlKHRoaXMuc3ApfSxiaW5kQnJvd3NlcjpmdW5jdGlvbihiKXt2YXIgYT10aGlzO2QodGhpcy5jYW52YXMpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGMpe2lmKCFhLmVuYWJsZWQpcmV0dXJuITA7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5jYW52YXNfb2Zmc2V0PWQoYS5jYW52YXMpLm9mZnNldCgpO2Euc2NyYXRjaD0hMDthLnNjcmF0Y2hGdW5jKGMsYSwiRG93biIpfSkub24oIm1vdXNlbW92ZSIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiZhLnNjcmF0Y2hGdW5jKGMsYSwiTW92ZSIpfSkub24oIm1vdXNldXAiLGZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2Euc2NyYXRjaCYmKGEuc2NyYXRjaD0hMSxhLnNjcmF0Y2hGdW5jKGMsYSwiVXAiKSl9KX0sYmluZE1vYmlsZTpmdW5jdGlvbihiKXtiLm9uKCJ0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCIsCmZ1bmN0aW9uKCl7dmFyIGE9ZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07c3dpdGNoKGV2ZW50LnR5cGUpe2Nhc2UgInRvdWNoc3RhcnQiOnZhciBjPSJtb3VzZWRvd24iO2JyZWFrO2Nhc2UgInRvdWNobW92ZSI6Yz0ibW91c2Vtb3ZlIjticmVhaztjYXNlICJ0b3VjaGVuZCI6Yz0ibW91c2V1cCI7YnJlYWs7ZGVmYXVsdDpyZXR1cm59dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtmLmluaXRNb3VzZUV2ZW50KGMsITAsITAsd2luZG93LDEsYS5zY3JlZW5YLGEuc2NyZWVuWSxhLmNsaWVudFgsYS5jbGllbnRZLCExLCExLCExLCExLDAsbnVsbCk7YS50YXJnZXQuZGlzcGF0Y2hFdmVudChmKTtldmVudC5wcmV2ZW50RGVmYXVsdCgpfSl9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLnNwLmNzcygid2lkdGgiLHRoaXMuc2V0dGluZ3Mud2lkdGgtMik7dGhpcy5zcC5jc3MoImhlaWdodCIsdGhpcy5zZXR0aW5ncy5oZWlnaHQtMik7dGhpcy5zcC5jc3MoImN1cnNvciIsdGhpcy5zZXR0aW5ncy5jdXJzb3I\/Cid1cmwoIicrdGhpcy5zZXR0aW5ncy5jdXJzb3IrJyIpLCBkZWZhdWx0JzoiZGVmYXVsdCIpO2QodGhpcy5jYW52YXMpLmNzcyh7Y3Vyc29yOnRoaXMuc2V0dGluZ3MuY3Vyc29yPyd1cmwoIicrdGhpcy5zZXR0aW5ncy5jdXJzb3IrJyIpLCBkZWZhdWx0JzoiZGVmYXVsdCJ9KTt0aGlzLmNhbnZhcy53aWR0aD10aGlzLnNldHRpbmdzLndpZHRoO3RoaXMuY2FudmFzLmhlaWdodD10aGlzLnNldHRpbmdzLmhlaWdodDt0aGlzLnBpeGVscz10aGlzLmNhbnZhcy53aWR0aCp0aGlzLmNhbnZhcy5oZWlnaHQ7dGhpcy5zZXR0aW5ncy5pbWFnZTI\/KHRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UyKSx0aGlzLnNldHRpbmdzLmVuYWJsZWR8fHRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2VEaXNhYmxlZCwhMCkpOigibm9uZSIhPXRoaXMuc2V0dGluZ3Mub3ZlcmxheT8odGhpcy5zZXR0aW5ncy5pbWFnZSYmdGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZSksCnRoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj10aGlzLnNldHRpbmdzLm92ZXJsYXkpOnRoaXMuc2V0QmdJbWFnZSgpLHRoaXMuY3R4LmZpbGxTdHlsZT10aGlzLnNldHRpbmdzLmNvbG9yLHRoaXMuY3R4LmJlZ2luUGF0aCgpLHRoaXMuY3R4LnJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpLHRoaXMuY3R4LmZpbGwoKSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciI7dGhpcy5pbml0KCl9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLnNldHRpbmdzLndpZHRoLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KX0sc2V0QmdJbWFnZTpmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3MuaW1hZ2UmJih0aGlzLnNwLmFkZENsYXNzKCJzY3JhdGNoRGl2VGV4dCIpLHRoaXMuc3AuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIix0aGlzLnNldHRpbmdzLmJhY2tncm91bmRDb2xvciksCnRoaXMuc3AuYXBwZW5kKCI8ZGl2IGlkPSdzY3JhdGNoRGl2VGV4dCIrdGhpcy5zZXR0aW5ncy5pZFRvQWRkKyInIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MzBweDtjb2xvcjojZmZmO21hcmdpbi1sZWZ0OjBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwcHg7ei1pbmRleDowOyc+IitkKCIjc2NyYXRjaElucHV0VGV4dCIrdGhpcy5zZXR0aW5ncy5pZFRvQWRkKS52YWwoKSsiPC9kaXY+IikpfSxkcmF3SW1hZ2U6ZnVuY3Rpb24oYixhKXt2YXIgYz10aGlzLGY9bmV3IEltYWdlO2Yuc3JjPWI7ZChmKS5vbigibG9hZCIsZnVuY3Rpb24oKXtjLmN0eC5kcmF3SW1hZ2UoZiwwLDApOyJ1bmRlZmluZWQiIT10eXBlb2YgYSYmYXx8Yy5zZXRCZ0ltYWdlKCl9KX0sc2NyYXRjaEZ1bmM6ZnVuY3Rpb24oYixhLGMpe2IucGFnZVg9TWF0aC5mbG9vcihiLnBhZ2VYLWEuY2FudmFzX29mZnNldC5sZWZ0KTtiLnBhZ2VZPQpNYXRoLmZsb29yKGIucGFnZVktYS5jYW52YXNfb2Zmc2V0LnRvcCk7YVsic2NyYXRjaCIrY10oYixhKTsodGhpcy5zZXR0aW5ncy5yZWFsdGltZVBlcmNlbnR8fCJVcCI9PWMpJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXSYmYS5zZXR0aW5nc1sic2NyYXRjaCIrY10uYXBwbHkoYSxbYixhLnNjcmF0Y2hQZXJjZW50YWdlKGEpXSl9LHNjcmF0Y2hQZXJjZW50YWdlOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYT0wLGM9Yi5jdHguZ2V0SW1hZ2VEYXRhKDAsMCxiLmNhbnZhcy53aWR0aCxiLmNhbnZhcy5oZWlnaHQpLGY9MCxlPWMuZGF0YS5sZW5ndGg7ZjxlO2YrPTQpMD09Yy5kYXRhW2ZdJiYwPT1jLmRhdGFbZisxXSYmMD09Yy5kYXRhW2YrMl0mJjA9PWMuZGF0YVtmKzNdJiZhKys7cmV0dXJuIGEvYi5waXhlbHMqMTAwfSxzY3JhdGNoRG93bjpmdW5jdGlvbihiLGEpe2EuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3V0IjthLmN0eC5saW5lSm9pbj0icm91bmQiOwphLmN0eC5saW5lQ2FwPSJyb3VuZCI7YS5jdHguc3Ryb2tlU3R5bGU9YS5zZXR0aW5ncy5jb2xvcjthLmN0eC5saW5lV2lkdGg9YS5zZXR0aW5ncy5zaXplO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4LmFyYyhiLnBhZ2VYLGIucGFnZVksYS5zZXR0aW5ncy5zaXplLzIsMCwyKk1hdGguUEksITApO2EuY3R4LmNsb3NlUGF0aCgpO2EuY3R4LmZpbGwoKTthLmN0eC5iZWdpblBhdGgoKTthLmN0eC5tb3ZlVG8oYi5wYWdlWCxiLnBhZ2VZKX0sc2NyYXRjaE1vdmU6ZnVuY3Rpb24oYixhKXthLmN0eC5saW5lVG8oYi5wYWdlWCxiLnBhZ2VZKTthLmN0eC5zdHJva2UoKX0sc2NyYXRjaFVwOmZ1bmN0aW9uKGIsYSl7YS5jdHguY2xvc2VQYXRoKCl9fX0pKGpRdWVyeSk7Ci8qKiAvanMvc3dmc3RvcmUuanMgKiovCnZhciBfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjIxIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzc6NTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDExOjM1OjE4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDo1OCI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDI6MzEiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhhKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpdGhyb3ciU3dmU3RvcmUgRXJyb3I6IEZ1bmN0aW9ucyBjYW5ub3QgYmUgdXNlZCBhcyBrZXlzIG9yIHZhbHVlcy4iO312YXIgaD0wLG09L1teYS16MC05X10vZ2k7d2luZG93LlN3ZlN0b3JlPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGUoZCl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKTtiLmlkPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKys7ZHx8KGIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixiLnN0eWxlLnRvcD0iLTIwMDBweCIsYi5zdHlsZS5sZWZ0PSItMjAwMHB4Iik7cmV0dXJuIGJ9YT1hfHx7fTt2YXIgZj17c3dmX3VybDoic3RvcmFnZS5zd2YiLG5hbWVzcGFjZToic3dmc3RvcmUiLHBhdGg6bnVsbCxkZWJ1ZzohMSx0aW1lb3V0OjEwLG9ucmVhZHk6bnVsbCxvbmVycm9yOm51bGx9O2ZvcihjIGluIGYpZi5oYXNPd25Qcm9wZXJ0eShjKSYmCihhLmhhc093blByb3BlcnR5KGMpfHwoYVtjXT1mW2NdKSk7YS5uYW1lc3BhY2U9YS5uYW1lc3BhY2UucmVwbGFjZShtLCJfIik7aWYod2luZG93LlN3ZlN0b3JlW2EubmFtZXNwYWNlXSl0aHJvdyJUaGVyZSBpcyBhbHJlYWR5IGFuIGluc3RhbmNlIG9mIFN3ZlN0b3JlIHVzaW5nIHRoZSAnIithLm5hbWVzcGFjZSsiJyBuYW1lc3BhY2UuIFVzZSB0aGF0IGluc3RhbmNlIG9yIHNwZWNpZnkgYW4gYWx0ZXJuYXRlIG5hbWVzcGFjZSBpbiB0aGUgY29uZmlnLiI7dGhpcy5jb25maWc9YTtpZihhLmRlYnVnKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBjb25zb2xlKXt2YXIgbj1lKCEwKTt3aW5kb3cuY29uc29sZT17bG9nOmZ1bmN0aW9uKGQpe3ZhciBiPWUoITApO2IuaW5uZXJIVE1MPWQ7bi5hcHBlbmRDaGlsZChiKX19fXRoaXMubG9nPWZ1bmN0aW9uKGQsYixrKXtiPSJzd2ZTdG9yZSI9PT1iPyJzd2YiOmI7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZVtkXSljb25zb2xlW2RdKCJTd2ZTdG9yZSAtICIrCmEubmFtZXNwYWNlKyIgKCIrYisiKTogIitrKTtlbHNlIGNvbnNvbGUubG9nKCJTd2ZTdG9yZSAtICIrYS5uYW1lc3BhY2UrIjogIitkKyIgKCIrYisiKTogIitrKX19ZWxzZSB0aGlzLmxvZz1mdW5jdGlvbigpe307dGhpcy5sb2coImluZm8iLCJqcyIsIkluaXRpYWxpemluZy4uLiIpO1N3ZlN0b3JlW2EubmFtZXNwYWNlXT10aGlzO2Y9ZShhLmRlYnVnKTt2YXIgYz0iU3dmU3RvcmVfIithLm5hbWVzcGFjZSsiXyIraCsrLGw9ImxvZ2ZuPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5sb2cmYW1wO29ubG9hZD1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIub25sb2FkJmFtcDtvbmVycm9yPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmVycm9yJmFtcDsiKyhhLnBhdGg\/IkxTT1BhdGg9IithLnBhdGgrIiZhbXA7IjoiIikrIkxTT05hbWU9IithLm5hbWVzcGFjZTtmLmlubmVySFRNTD0nPG9iamVjdCBoZWlnaHQ9IjEwMCIgd2lkdGg9IjUwMCIgY29kZWJhc2U9Imh0dHBzOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiIiBpZD0iJysKYysnIiBjbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiPiAgICA8cGFyYW0gdmFsdWU9IicrYS5zd2ZfdXJsKyciIG5hbWU9Im1vdmllIj4gIDxwYXJhbSB2YWx1ZT0iJytsKyciIG5hbWU9IkZsYXNoVmFycyI+ICAgPHBhcmFtIHZhbHVlPSJhbHdheXMiIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIj4gIDxlbWJlZCBoZWlnaHQ9IjM3NSIgYWxpZ249Im1pZGRsZSIgd2lkdGg9IjUwMCIgcGx1Z2luc3BhZ2U9Imh0dHBzOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrbCsnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgYWxsb3dzY3JpcHRhY2Nlc3M9ImFsd2F5cyIgcXVhbGl0eT0iaGlnaCIgbG9vcD0iZmFsc2UiIHBsYXk9InRydWUiIG5hbWU9IicrYysnIiBiZ2NvbG9yPSIjZmZmZmZmIiBzcmM9IicrYS5zd2ZfdXJsKyciPjwvb2JqZWN0Pic7dGhpcy5zd2Y9ZG9jdW1lbnRbY118fAp3aW5kb3dbY107dGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7U3dmU3RvcmVbYS5uYW1lc3BhY2VdLmxvZygiZXJyb3IiLCJqcyIsIlRpbWVvdXQgcmVhY2hlZCwgYXNzdW1pbmcgIithLnN3Zl91cmwrIiBmYWlsZWQgdG8gbG9hZCBhbmQgZmlyaW5nIHRoZSBvbmVycm9yIGNhbGxiYWNrLiIpO2lmKGEub25lcnJvcilhLm9uZXJyb3IoKX0sMUUzKmEudGltZW91dCl9O1N3ZlN0b3JlLnByb3RvdHlwZT17dmVyc2lvbjoiMS45IixyZWFkeTohMSxzZXQ6ZnVuY3Rpb24oYSxlKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtnKGUpO3RoaXMuc3dmLnNldChhLGUpfSxnZXQ6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7cmV0dXJuIHRoaXMuc3dmLmdldChhKX0sZ2V0QWxsOmZ1bmN0aW9uKCl7dGhpcy5fY2hlY2tSZWFkeSgpO3ZhciBhPXRoaXMuc3dmLmdldEFsbCgpO2EuX19mbGFzaEJ1Z0ZpeCYmZGVsZXRlIGEuX19mbGFzaEJ1Z0ZpeDtyZXR1cm4gYX0sCmNsZWFyOmZ1bmN0aW9uKGEpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO3RoaXMuc3dmLmNsZWFyKGEpfSxfY2hlY2tSZWFkeTpmdW5jdGlvbigpe2lmKCF0aGlzLnJlYWR5KXRocm93IlN3ZlN0b3JlIGlzIG5vdCB5ZXQgZmluaXNoZWQgaW5pdGlhbGl6aW5nLiBQYXNzIGEgY29uZmlnLm9ucmVhZHkgY2FsbGJhY2sgb3Igd2FpdCB1bnRpbCB0aGlzLnJlYWR5IGlzIHRydWUgYmVmb3JlIHRyeWluZyB0byB1c2UgYSBTd2ZTdG9yZSBpbnN0YW5jZS4iO30sb25sb2FkOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuX3RpbWVvdXQpO2EucmVhZHk9ITA7YS5zZXQoIl9fZmxhc2hCdWdGaXgiLCIxIik7aWYoYS5jb25maWcub25yZWFkeSlhLmNvbmZpZy5vbnJlYWR5KCl9LDApfSxvbmVycm9yOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpO2lmKHRoaXMuY29uZmlnLm9uZXJyb3IpdGhpcy5jb25maWcub25lcnJvcigpfX19KSgpOwovKiogL2pzL2pxdWVyeS5jb3VudGRvd24uanMgKiovCnZhciBfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTozMiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIzLTAxLTEyIDExOjQwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTA6MTAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMS0xMi0xNSAxMjo1MDozNSI7InVzZSBzdHJpY3QiOwpqUXVlcnkuZm4uY291bnRkb3duPWZ1bmN0aW9uKGgpe2lmKDE8dGhpcy5sZW5ndGgpcmV0dXJuICQodGhpcykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuY291bnRkb3duKGgpfSksdGhpcztpZih0aGlzLmRhdGEoImNvdW50aW5nIikpcmV0dXJuIHRoaXM7dGhpcy5kYXRhKCJjb3VudGluZyIsITApO3ZhciBhPXtzdGVwVGltZTo2MCxmb3JtYXQ6ImRkOmhoOm1tOnNzIixzdGFydFRpbWU6IjAxOjEyOjMyOjU1IixkaWdpdEltYWdlczo2LGRpZ2l0V2lkdGg6NTMsZGlnaXRIZWlnaHQ6NzcsdGltZXJFbmQ6ZnVuY3Rpb24oKXt9LGltYWdlOiJkaWdpdHMucG5nIn0sYz1bXSxmPWZ1bmN0aW9uKGIsZCl7cmV0dXJuIHZvaWQgMCE9PWQ\/Y1tiXS5jc3Moe21hcmdpblRvcDpkKyJweCJ9KTpwYXJzZUludChjW2JdLmNzcygibWFyZ2luVG9wIikucmVwbGFjZSgicHgiLCIiKSl9LGs9ZnVuY3Rpb24oYil7Y1tiXS5fZGlnaXRJbml0aWFsPS0oY1tiXS5fX21heCphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpOwpyZXR1cm4gZnVuY3Rpb24gZSgpe210b3A9ZihiKSthLmRpZ2l0SGVpZ2h0O2lmKG10b3A9PWEuZGlnaXRIZWlnaHQpaWYoZihiLGNbYl0uX2RpZ2l0SW5pdGlhbCksMDxiKWsoYi0xKSgpLDA8YiYmdm9pZCAwIT09Y1tiXS5fX2NvbmRtYXgmJmNbYi0xXS5fZGlnaXRJbml0aWFsPT1mKGItMSkmJmYoYiwtKGNbYl0uX19jb25kbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcykpO2Vsc2V7Y2xlYXJJbnRlcnZhbChsKTtmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylmKGcsMCk7YS50aW1lckVuZCgpfWVsc2UgZihiLG10b3ApLDAhPWYoYikvYS5kaWdpdEhlaWdodCVhLmRpZ2l0SW1hZ2VzJiZzZXRUaW1lb3V0KGUsYS5zdGVwVGltZSksMD09bXRvcCYmKGNbYl0uX19pc21heD0hMCl9fTskLmV4dGVuZChhLGgpO3RoaXMuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCxvdmVyZmxvdzoiaGlkZGVuIn0pOyhmdW5jdGlvbihiKXtmb3IodmFyIGQ9MCxlPTA7ZTxhLnN0YXJ0VGltZS5sZW5ndGg7ZSsrKXtpZigwPD0KcGFyc2VJbnQoYS5zdGFydFRpbWVbZV0pKXtlbGVtPSQoJzxkaXYgaWQ9ImNudF8nK2UrJyIgY2xhc3M9ImNudERpZ2l0IiAvPicpLmNzcyh7aGVpZ2h0OmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyoxMCxmbG9hdDoibGVmdCIsYmFja2dyb3VuZDoidXJsKCciK2EuaW1hZ2UrIicpIix3aWR0aDphLmRpZ2l0V2lkdGh9KTtjLnB1c2goZWxlbSk7ZihkLC0ocGFyc2VJbnQoYS5zdGFydFRpbWVbZV0pKmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcykpO2NbZF0uX19tYXg9OTtzd2l0Y2goYS5mb3JtYXRbZV0pe2Nhc2UgImgiOmNbZF0uX19tYXg9MD09ZCUyPzI6OTswPT1kJTImJihjW2RdLl9fY29uZG1heD00KTticmVhaztjYXNlICJkIjpjW2RdLl9fbWF4PTk7YnJlYWs7Y2FzZSAibSI6Y2FzZSAicyI6Y1tkXS5fX21heD0wPT1kJTI\/NTo5fSsrZH1lbHNlIGVsZW09JCgnPGRpdiBjbGFzcz0iY250U2VwYXJhdG9yIi8+JykuY3NzKHtmbG9hdDoibGVmdCJ9KS50ZXh0KGEuc3RhcnRUaW1lW2VdKTsKYi5hcHBlbmQoZWxlbSl9fSkodGhpcyk7dmFyIGw9c2V0SW50ZXJ2YWwoayhjLmxlbmd0aC0xKSwxRTMpfTsKLyoqIC9qcy9kYXRlVXRpbHMuanMgKiovCnZhciBfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0NiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjowMSI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIzLTAxLTEyIDExOjM0OjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDQ6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MToyMyI7InVzZSBzdHJpY3QiO0RhdGUucHJvdG90eXBlLmFtb3VudEJldHdlZW49ZnVuY3Rpb24oYSxiLGMsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpcmV0dXJuIG51bGw7YT1hLmdldFRpbWUoKTtiPWIuZ2V0VGltZSgpO3JldHVybiBNYXRoLmZsb29yKChiLWEtZCkvYyl9OwovKiogL2pzL3ZhbmlsbGFqcy9tb2RhbC5qcyAqKi8KdmFyIF9fX2QyY19tb2RhbGpzX2Nfb249IjIwMjYtMDItMjcgMTU6MzA6MDMiOyd1c2Ugc3RyaWN0Jztjb25zdCBNb2RhbHM9e30sTW9kYWw9ZnVuY3Rpb24oaCxiKXtsZXQgYz17fTtjb25zdCBuPXt0aXRsZTpoLGNvbnRlbnRUeXBlOiJub2RlIixjb250ZW50U3JjOiIiLGFmdGVySW5pdDooKT0+e319O2xldCBrPSIiO2NvbnN0IGU9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0ibW9kYWwtb3ZlcmxheSI+PC9kaXY+JyksbD1mdW5jdGlvbihhKXthLm9uY2xpY2s9KCk9PmYoImNhbmNlbCIpfSxwPWZ1bmN0aW9uKCl7KGMucXVlcnlTZWxlY3RvcigiLm9rYXkiKXx8ITEpLm9uY2xpY2s9KCk9PmYoIm9rYXkiKTtjb25zdCBhPWMucXVlcnlTZWxlY3RvckFsbCgiLmNhbmNlbCIpfHwhMTsxPGEubGVuZ3RoPyQuZWFjaChhLGZ1bmN0aW9uKGQsZyl7bChnKX0pOmEmJmwoYVswXSl9LG09ZnVuY3Rpb24oYSl7IkVzY2FwZSI9PWEua2V5JiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLAptLHtjYXB0dXJlOiEwfSksZigpKX0sZj1hPT57YT1hfHwiIjtzd2l0Y2goYSl7Y2FzZSAiY2FuY2VsIjoiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZUNhbmNlbCYmYi5vbkJlZm9yZUNhbmNlbC5jYWxsKCk7YnJlYWs7Y2FzZSAib2theSI6ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVTYXZlJiZiLm9uQmVmb3JlU2F2ZS5jYWxsKCl9ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVDbG9zZSYmYi5vbkJlZm9yZUNsb3NlLmNhbGwoYSk7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1k9ImF1dG8iO2MuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtYWN0aXZlIiwhMSk7ZS5wYXJlbnROb2RlJiYoZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpLGsuZm9jdXMoKSl9O2I9T2JqZWN0LmFzc2lnbihuLGIpOyhmdW5jdGlvbigpe2NvbnN0IGE9K25ldyBEYXRlO3ZhciBkPSIiO3N3aXRjaChiLmNvbnRlbnRUeXBlKXtjYXNlICJub2RlIjpkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIuY29udGVudFNyYyk7CmQuaGlkZGVuPSExO2JyZWFrO2Nhc2UgImlmcmFtZSI6ZD1odG1sVG9Ob2RlKGA8ZGl2IGNsYXNzPSJpZnJhbWUtd3JhcHBlciI+CgkJCQkJCQkJPGlmcmFtZQoJCQkJCQkJCQlzcmM9IiR7Yi5jb250ZW50U3JjfSIKCQkJCQkJCQkJZnJhbWVib3JkZXI9IjAiCgkJCQkJCQkJCWFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQkJd2Via2l0YWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCQltb3phbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJPjwvaWZyYW1lPgoJCQkJCQkJPC9kaXY+YCl9bGV0IGc9IiI7Yi5zaG93WWVzTm9CdXR0b25zJiYoZz1gPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIC1wIC0tczUgZmxleC1iZXR3ZWVuIj4KCQkJCTxkaXY+CgkJCQkJPHNwYW4gY2xhc3M9IiAtbXQyIG1haW5UZXh0IC1ib2xkIj4ke2IuYnV0dG9uVGV4dHx8IiJ9PC9zcGFuPgoJCQkJPC9kaXY+CgkJCQk8ZGl2PgoJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGNhbmNlbCIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+JHtiLm5vQnV0dG9ufHwiTm8ifTwvYnV0dG9uPgoJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1tYWluMiBva2F5IiBkYXRhLWRpc21pc3M9Im1vZGFsIj4ke2IueWVzQnV0dG9ufHwiWWVzIn08L2J1dHRvbj4KCQkJCTwvZGl2PmApO2M9aHRtbFRvTm9kZShgCgkJCTxib3gtbGMgY2xhc3M9Im1vZGFsLXdyYXBwZXIgLWJnLXdoaXRlIC0tczAiPgoJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMwIj4KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIgZmxleC1iZXR3ZWVuIC1wIC0tczUiPgoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC10aXRsZSB0eHQtdXBwZXIgLWZzLWwgLWJvbGQiPgoJCQkJCQkJJHtiLnRpdGxlfQoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtY29udHJvbCI+CgkJCQkJCQk8YnV0dG9uIHRpdGxlPSJjbG9zZSIgY2xhc3M9IngtY2xvc2UgY2FuY2VsIj48L2J1dHRvbj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtYm9keSIgaWQ9InEtJHthfSI+CgoJCQkJCTwvZGl2PgoJCQkJCSR7Z30KCQkJCTwvc3RhY2stbGM+CgkJCTwvYm94LWxjPgoJCWApO2MuaWQ9YG1vZGFsJHtofWA7Yy5zZXRBdHRyaWJ1dGUoInJvbGUiLCJkaWFsb2ciKTtjLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixgcS0ke2F9YCk7Yy5xdWVyeVNlbGVjdG9yKCIubW9kYWwtYm9keSIpLmFwcGVuZENoaWxkKGQpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyk7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiI7Yi5hZnRlckluaXQoKTtwKCl9KSgpO3JldHVybntkaXNwbGF5OmZ1bmN0aW9uKCl7az1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG0se2NhcHR1cmU6ITB9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLCEwKX0sMSl9LGNsb3NlOmZ9fTsKLyoqIC9qcy92YW5pbGxhanMvbGVhZC5qcyAqKi8KdmFyIF9fX2QyY19sZWFkanNfY19vbj0iMjAyNi0wNC0wMiAxMzozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihiLGEsYyl7aWYoYj09QXJyYXkucHJvdG90eXBlfHxiPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBiO2JbYV09Yy52YWx1ZTtyZXR1cm4gYn07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGIpe2I9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxiLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgYz1iW2FdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGIsYSl7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYV07aWYobnVsbD09YylyZXR1cm4gYlthXTtjPWJbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzpiW2FdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGIsYSxjLGUpe2EmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChiLGEsYyxlKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChiLGEsYyxlKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihiLGEsYyxlKXtjPSRqc2NvbXAuZ2xvYmFsO2I9Yi5zcGxpdCgiLiIpO2ZvcihlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7dmFyIGg9YltlXTtpZighKGggaW4gYykpcmV0dXJuO2M9Y1toXX1iPWJbYi5sZW5ndGgtMV07ZT1jW2JdO2E9YShlKTthIT1lJiZudWxsIT1hJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihiLGEsYyxlKXt2YXIgaD1iLnNwbGl0KCIuIik7Yj0xPT09aC5sZW5ndGg7ZT1oWzBdO2U9IWImJmUgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBxPTA7cTxoLmxlbmd0aC0xO3ErKyl7dmFyIHI9aFtxXTtpZighKHIgaW4gZSkpcmV0dXJuO2U9ZVtyXX1oPWhbaC5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9lW2hdOm51bGw7YT1hKGMpO251bGwhPWEmJihiPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsaCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KTphIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woaCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIraCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYj17YTohMH0sYT17fTt0cnl7cmV0dXJuIGEuX19wcm90b19fPWIsYS5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYixhKXtiLl9fcHJvdG9fXz1hO2lmKGIuX19wcm90b19fIT09YSl0aHJvdyBuZXcgVHlwZUVycm9yKGIrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBifTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYil7dmFyIGE9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYTxiLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTpiW2ErK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihiKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGIpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYT9hLmNhbGwoYik6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGIpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihiKXtpZighKGIgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2IrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMueWllbGRSZXN1bHQ9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjpiLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihiLGEpe3RoaXMubmV4dEFkZHJlc3M9YTtyZXR1cm57dmFsdWU6Yn19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGIsYSl7Yj0kanNjb21wLm1ha2VJdGVyYXRvcihiKTt2YXIgYz1iLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YTtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWIsdGhpcy55aWVsZChjLnZhbHVlLGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGIpe3RoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYixhKXt0aGlzLmNhdGNoQWRkcmVzc189Yjt2b2lkIDAhPWEmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1hKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWI7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7Yj10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsYSxjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsYSl7YT10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGF8fDApWzBdO2lmKGE9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxhKXtpZihhLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWEuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxhLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1hLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3RoaXMub2JqZWN0Xz1iO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBhIGluIGIpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGEpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYj10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGIgaW4gdGhpcy5vYmplY3RfKXJldHVybiBifXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1ifTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYT10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGEpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGE\/YVsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGIsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYixhLGMpe3RyeXt2YXIgZT1iLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxhKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhlKTtpZighZS5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZTt2YXIgaD1lLnZhbHVlfWNhdGNoKHEpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18ocSksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8saCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYj10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGIpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChhKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhhKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7Yj10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihiLmlzRXhjZXB0aW9uKXRocm93IGIuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihiKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGIubmV4dF8oYSl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGIudGhyb3dfKGEpfTt0aGlzLnJldHVybj1mdW5jdGlvbihhKXtyZXR1cm4gYi5yZXR1cm5fKGEpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihiLGEpe2E9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmIucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGEsYi5wcm90b3R5cGUpO3JldHVybiBhfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGIubmV4dChlKX1mdW5jdGlvbiBjKGUpe3JldHVybiBiLnRocm93KGUpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLGgpe2Z1bmN0aW9uIHEocil7ci5kb25lP2Uoci52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHIudmFsdWUpLnRoZW4oYSxjKS50aGVuKHEsaCl9cShiLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihiKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpKX07CmNvbnN0IExlYWQ9ZnVuY3Rpb24oYil7Y29uc3QgYT1PYmplY3QuYXNzaWduKHt9LGIpLGM9YS5sZWFkSWR8fGEubmFtZTtiPWEubGVhZE5vZGU7Y29uc3QgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybSIrYyk7bGV0IGg9ITEscT1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtc3ViamVjdF0iKS5pbm5lclRleHQscj1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtYm9keV0iKS5pbm5lckhUTUwsej1hLnRyaWdnZXIsaz17fTtjb25zdCBBPSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7c3dpdGNoKCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlICJlbWFpbCI9PQpmLnRvTG93ZXJDYXNlKCk6Y2FzZSAiZGF0YSI9PWY6YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6Y2FzZSAidGVsIj09ZC50eXBlOklNYXNrKGQse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KX19fSk7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7c3dpdGNoKCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6dmFyIGc7Zj1udWxsIT0oZz1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP2c6IiI7dmFyIGw7Zz1udWxsIT0obD1jbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKSk\/bDoiIjtsPWYrKCIiIT1nPyIgIitjbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKToKIiIpO2QudmFsdWU9bDticmVhaztjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbTtkLnZhbHVlPW51bGwhPShtPWNsaWVudFN0b3JhZ2UuZ2V0KCJmaXJzdG5hbWUiKSk\/bToiIjticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmxldCBuO2QudmFsdWU9bnVsbCE9KG49Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP246IiI7YnJlYWs7Y2FzZSAiZW1haWwiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHA7ZC52YWx1ZT1udWxsIT0ocD1jbGllbnRTdG9yYWdlLmdldCgiZW1haWwiKSk\/cDoiIjticmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpsZXQgdTtkLnZhbHVlPW51bGwhPSh1PWNsaWVudFN0b3JhZ2UuZ2V0KCJwaG9uZSIpKT91OiIifX19KX0sRT0oKT0+e2lmKGgpcmV0dXJuITE7aD0hMDtCKCkudGhlbihkPT57aWYoIWQpcmV0dXJuIHYoInBvcHVwLnZhbGlkYXRpb25GYWlsZWQiKSwKaD0hMTthLnZhbGlkYXRlZD0hMDtDKCk7RCgpfSl9LEM9KCk9PntBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtpZihmKXN3aXRjaChrW2ZdPWQudmFsdWUsITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpkPWQudmFsdWUuc3BsaXQoIiAiKTtrLnVzZXJGaXJzdE5hbWUrPWQuc2hpZnQoKTtrLnVzZXJMYXN0TmFtZSs9ZC5qb2luKCIgIik7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6ay51c2VyRmlyc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6ay51c2VyTGFzdE5hbWUrPWQudmFsdWU7YnJlYWs7Y2FzZSAiZW1haWwiPT1mLnRvTG93ZXJDYXNlKCk6ay51c2VyRW1haWw9CmQudmFsdWU7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6Y2FzZSAidGVsIj09ZC50eXBlOklNYXNrKGQse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KTtrLnVzZXJQaG9uZT1kLnZhbHVlO2JyZWFrO2Nhc2UgImRhdGEiPT1mOmZvcihsZXQgZyBpbiBkLmRhdGFzZXQpa1tnLnJlcGxhY2UoLy0uL2csbD0+bFsxXS50b1VwcGVyQ2FzZSgpKV09ZC5kYXRhc2V0W2ddfX19KX0sRD0oKT0+e2lmKCExPT09YS5vbkJlZm9yZVN1Ym1pdChhKSlyZXR1cm4gYS5jbG9zZU9uU3VibWl0JiZ0KCksITE7dmFyIGQ9eCh3aW5kb3cubG9jYXRpb24uaHJlZik7aWYoQ29va2llcy5nZXQoYS5sZWFkSWQrZCkpcmV0dXJuIGg9ITEseSghMCksITE7RigpO3YoInBvcHVwLnN1Ym1pdCIpO2xldCBmO2lmKCJEaWdpdGFsUmV0YWlsIj09KG51bGw9PShmPWspP3ZvaWQgMDpmLmludm9rZXIpKXtkPWNsaWVudFN0b3JhZ2UuZ2V0KCJjbGllbnRTdG9yYWdlIil8fAp7fTtsZXQgbixwO2subGVhZEludm9rZXJTSUQ9RygobnVsbD09ZD92b2lkIDA6bnVsbD09KG49ZC5jb250YWN0KT92b2lkIDA6bi5lbWFpbCkrKG51bGw9PWQ\/dm9pZCAwOm51bGw9PShwPWQuY29udGFjdCk\/dm9pZCAwOnAucGhvbmUpKTtlbWFpbEhhbmRsZXIubGVhZEludm9rZXI9IkRpZ2l0YWxSZXRhaWwiO2VtYWlsSGFuZGxlci5kaWdpdGFsUmV0YWlsU0lEPWsubGVhZEludm9rZXJTSUR9dmFyIGc7cT0obnVsbD09KGc9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLXN1YmplY3RdIikpP3ZvaWQgMDpnLmlubmVyVGV4dCl8fHE7bGV0IGw7cj0obnVsbD09KGw9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLWJvZHldIikpP3ZvaWQgMDpsLmlubmVySFRNTCl8fHI7ZW1haWxIYW5kbGVyLmJvZHk9SCgpO2VtYWlsSGFuZGxlci5zdWJqZWN0PXE7T2JqZWN0LmFzc2lnbihlbWFpbEhhbmRsZXIsayk7InN0cmluZyI9PXR5cGVvZiBlbWFpbEhhbmRsZXIudXNlck5hbWUmJgooZz1lbWFpbEhhbmRsZXIudXNlck5hbWUuc3BsaXQoIiAiKSxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1nLnNoaWZ0KCksZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1nLmpvaW4oIiAiKSk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PWZ1bmN0aW9uKG4pe2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExO2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uRHVwbGljYXRlU2VuZD1mdW5jdGlvbigpe2VtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpfTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24obil7dmFyIHA9ITE7YS5zaG93RW1haWxDb25maXJtYXRpb24mJihwPWdldE1haWxTZW50SGFuZGxlcigiXyIrYS5uYW1lKSxwLnRpbWVvdXRDYWxsYmFjaz1mdW5jdGlvbigpe2UucmVzZXQoKX0pOwppZihuKXYoInBvcHVwLmxlYWRfc2VudCIpLCJmdW5jdGlvbiI9PXR5cGVvZiBvcmlnaW5hbENhbGxiYWNrJiZvcmlnaW5hbENhbGxiYWNrLmNhbGwoKSwib25TdWJtaXQiPT1hLmNvb2tpZUNyZWF0ZSYmQ29va2llcy5zZXQoYS5jb29raWVOYW1lLCIxIixhLmNvb2tpZUR1cmF0aW9uLCIvIiksYS5zdWJtaXRGbGFnJiZDb29raWVzLnNldCgicG9wdXBGb3JtRmlsbGVkIiwiMSIsMSwiLyIpLGEuY2xvc2VPblN1Ym1pdCYmdCgiQ09OU0VOVCIpLHA\/cC5zaG93U3VjY2VzcygpOjA8JChgZm9ybSNmb3JtJHthLm5hbWV9X2NvbmZpcm1gKS5sZW5ndGgmJiQoYGZvcm0jZm9ybSR7YS5uYW1lfV9jb25maXJtYCkudHJpZ2dlcigic3VibWl0Iik7ZWxzZXtwfHwocD1nZXRNYWlsU2VudEhhbmRsZXIoKSk7dHJ5e3Auc2hvd0ZhaWwoKX1jYXRjaCh1KXt9fXkobik7dygpO3NldFRpbWVvdXQoZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCksMUUzKTtuJiYobj14KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSwKQ29va2llcy5zZXQoYS5sZWFkSWQrbiwiMSIsMSwiLyIpKX07YS5zdWJtaXR0ZWQ9ITA7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEub25CZWZvcmVTZW5kTWFpbCYmMD09YS5vbkJlZm9yZVNlbmRNYWlsLmNhbGwoKSlyZXR1cm4hMTtsZXQgbT17fTsiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkFERiYmKG09YS5vbkFERi5jYWxsKCkpOyJtYWtlIG1vZGVsIHllYXIgc3RvY2tOdW1iZXIgdHJpbSB2aW4gcHJpY2UgY2FyaWQiLnNwbGl0KCIgIikuZm9yRWFjaChuPT57ZW1haWxIYW5kbGVyW25dPW1bbl18fGVtYWlsSGFuZGxlcltuXX0pO2EucHVyY2hhc2VJbnRlbnRQb3B1cHx8ZW1haWxIYW5kbGVyLnNlbmRNYWlsKGEuYnlwYXNzQ29uc2VudCk7cmV0dXJuITB9LHc9KCk9PntrPXt1c2VyRmlyc3ROYW1lOiIiLHVzZXJMYXN0TmFtZToiIix1c2VyRW1haWw6IiIsdXNlclBob25lOiIifTtoPSExfSxCPWZ1bmN0aW9uKCl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2lmKGEuc2tpcFZhbGlkYXRpb24pcmV0dXJuITA7CmNvbnN0IGQ9bmV3IFByaXN0aW5lKGUse2NsYXNzVG86ImZvcm0tbGFiZWwiLGVycm9yQ2xhc3M6ImludmFsaWQifSwhMSk7bGV0IGY9ZS5xdWVyeVNlbGVjdG9yKCdbbmFtZT0icGhvbmVudW0iXScpLGc9ITAsbD0hMDtpZihmLnJlcXVpcmVkfHxmLnZhbHVlKWc9bnVsbCxnPXlpZWxkIEkoZi52YWx1ZSk7bnVsbD09PWc\/KGQuYWRkVmFsaWRhdG9yKGYsZnVuY3Rpb24obSl7bT1tLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpOyIxIj09bVswXSYmKG09bS5zdWJzdHJpbmcoMSkpO209cGFyc2VJbnQobS5zdWJzdHJpbmcoMCwzKSk7cmV0dXJuIGc9WzQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LDUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyXS5pbmNsdWRlcyhtKX0sIkVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIiw1LCExKSxsPWQudmFsaWRhdGUoKSk6KGw9ZC52YWxpZGF0ZSgpJiZnLGYucGFyZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbnZhbGlkIiwKIWcpKTtmLnJlcXVpcmVkJiYhZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXImJihlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKyxlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9ITApO3JldHVybiBsfSl9LEk9ZD0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7bGV0IGY9bnVsbDtkPWQucmVwbGFjZSgvW14wLTldKy9naSwiIik7eWllbGQgYXhpb3MuZ2V0KCIvcHJveHlfcmQyYy9zaXRlcy9zdmMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAiLHt0aW1lb3V0OjJFMyxkYXRhVHlwZToianNvbiIscGFyYW1zOntwaG9uZTpkfSxyZXNwb25zZVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbihnKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBnLmRhdGEuaXNPayYmKGY9Zy5kYXRhLnBob25lTnVtYmVySXNWYWxpZCl9KS5jYXRjaChmdW5jdGlvbihnKXt9KTtyZXR1cm4gZn0pLEY9KCk9Pntjb25zdCBkPQpkb2N1bWVudC5mb3Jtcy5lbWFpbG1zZ2ZybXx8ITE7aWYoIWQpcmV0dXJuITE7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ibGFiZWwiJykudmFsdWU9YCR7YS50eXBlfSAoJHtrLmNvbmRpdGlvbn0pYDtkLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJzZWN0aW9uIicpLnZhbHVlPWsuY29uZGl0aW9ufSx4PWQ9PlsuLi5kXS5yZWR1Y2UoKGYsZyk9Pk1hdGguaW11bCgzMSxmKStnLmNoYXJDb2RlQXQoMCl8MCwwKSxIPWZ1bmN0aW9uKCl7bGV0IGQ9cixmPXtuYW1lOlsiTU5BTUUiXSxwaG9uZW51bTpbIk1QSE9ORSIsIlBIT05FIl0sZW1haWw6WyJNTUFJTCJdfTtPYmplY3Qua2V5cyhrKS5mb3JFYWNoKGc9Pnt2YXIgbD1uZXcgUmVnRXhwKCJ7XFwkIitnLnRvVXBwZXJDYXNlKCkrIn0iLCJnIik7ZD1kLnJlcGxhY2UobCxrW2ddKTtmW2ddJiYobD1uZXcgUmVnRXhwKCJ7XFwkKCIrZltnXS5qb2luKCJ8IikrIil9IiwiZyIpLGQ9ZC5yZXBsYWNlKGwsa1tnXSkpfSk7cmV0dXJuIGR9LHY9ZnVuY3Rpb24oZCl7dmFyIGY9CmEudHlwZTtpZighZClyZXR1cm4hMTtpZigicG9wdXAubGVhZF9zZW50Ij09ZCl7dmFyIGc9ImNsaWNrIi5yZXBsYWNlKC8oXlthLXpdezF9KS9nLGZ1bmN0aW9uKG0pe3JldHVybiBtLnRvVXBwZXJDYXNlKCl9KSxsPWQyY21lZGlhLnBhZ2VEZXBhcnRtZW50KCk7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlBvcHVwLWxlYWRzIixnLGwsMSl9InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsZCxmLHNlbGYpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoZCxmKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixkLGYpfSx0PSgpPT57YS5vbkJlZm9yZUNsb3NlKGEpO3coKTtNb2RhbHNbY10mJk1vZGFsc1tjXS5jbG9zZSgpfSwKeT1kPT57YS5vbkFmdGVyU3VibWl0KGEsZCk7YS5jbG9zZU9uU3VibWl0JiZkJiZ0KCk7ZCYmZS5yZXNldCgpfSxHPWQ9PntsZXQgZj0wO2lmKDA9PWQubGVuZ3RoKXJldHVybiBmO2ZvcihsZXQgZz0wLGw9ZC5sZW5ndGg7ZzxsO2crKyl7bGV0IG09ZC5jaGFyQ29kZUF0KGcpO2Y9KGY8PDUpLWYrbTtmfD0wfXJldHVybiBNYXRoLmFicyhmKX07KCgpPT57JChlKS50cmlnZ2VyKCJwb3B1cGl6ZXIub25PcGVuIiwkKGUpKTt3KCk7QSgpO2Uub25zdWJtaXQ9ZD0+e2QucHJldmVudERlZmF1bHQoKTtFKCl9O2Eub25CZWZvcmVPcGVuKGEpfSkoKTtyZXR1cm57bGVhZElkOmMsbGVhZE5vZGU6Yix0cmlnZ2VyOnosZGlzcGxheTooKT0+e2EuZGlzcGxheT9hLmRpc3BsYXkoYSk6KGEuY29udGVudFNyYz1gbGVhZCR7Y31gLE1vZGFsc1tjXXx8KE1vZGFsc1tjXT1uZXcgTW9kYWwoYyxhKSksTW9kYWxzW2NdLmRpc3BsYXkoKSl9LGNsb3NlOnR9fSxMZWFkSGFuZGxlcj1mdW5jdGlvbigpe2NvbnN0IGI9CntvbkJlZm9yZU9wZW46KCk9Pnt9LG9uQmVmb3JlVmFsaWRhdGlvbjooKT0+e30sb25CZWZvcmVTdWJtaXQ6KCk9Pnt9LG9uQWZ0ZXJTdWJtaXQ6KCk9Pnt9LG9uQmVmb3JlQ2FuY2VsOigpPT57fSxvbkJlZm9yZUNsb3NlOigpPT57fSxvbkNsb3NlOigpPT57fSxmb3JtOntlbWFpbGlkOm51bGwsb2ZmZXJ0eXBlOm51bGwsbmFtZTpudWxsLHNlbmRUbzpudWxsLHNlbmRUb0FERjpudWxsLE9LQnV0dG9uQ2xhc3M6InN1Ym1pdEJ0biIsQ2FuY2VsQnV0dG9uQ2xhc3M6ImNhbmNlbEJ0biIsc2hvd0VtYWlsQ29uZmlybWF0aW9uOiExLGZyb21BQTohMX0sZ2V0SWRTdWZmaXg6YT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKkRhdGUubm93KCkpLG1vZGU6InN0YXRpYyIsdHJpZ2dlcjoiYXV0byIsZGVsYXk6ITEsZGlzcGxheTohMSxzdWJtaXR0ZWQ6ITEsY2xvc2VPblN1Ym1pdDohMCxzdWJtaXRGbGFnOiExLGJ5cGFzc0NvbnNlbnQ6ITEsc2hvd0VtYWlsQ29uZmlybWF0aW9uOiEwLHB1cmNoYXNlSW50ZW50UG9wdXA6ITF9Owppbml0PSgpPT57InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCYmKG5ldyBBYnN0cmFjdFVzZWRTcnBPYmplY3Qoe25hbWU6IlZpZXdEaXNjb3ZlckJ0bkhhbmRsZXIifSkpLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJjb250ZW50IixhZGRMZWFkRXZlbnRzKS5pbml0VXNlZFNycE9ic2VydmVyKCk7YWRkTGVhZEV2ZW50cygpfTthZGRMZWFkRXZlbnRzPSgpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtbGVhZC10cmlnZ2VyXSIpLmZvckVhY2goYT0+e3RoaXMuaW5pdExlYWRUcmlnZ2VyKGEpfSl9O3RoaXMuaW5pdExlYWRUcmlnZ2VyPWE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixjPT57Yy5zdG9wUHJvcGFnYXRpb24oKTtjPWEuZGF0YXNldC5sZWFkVHJpZ2dlcjtsZXQgZT1hLmRhdGFzZXQubGVhZGlkfHwhMTtMZWFkQ29uZmlnc1tjXS50cmlnZ2VyPWE7Yz10aGlzLmdldExlYWQoYyxlKTtjLmRpc3BsYXkoKTsKYS5kYXRhc2V0LmxlYWRpZD1jLmxlYWRJZH0pfTt0aGlzLmdldExlYWQ9KGEsYyk9PntpZighKGM9TGVhZHNbY3x8YV0pKXt7Yz1hO2xldCBlPU9iamVjdC5hc3NpZ24oe30sYik7T2JqZWN0LmFzc2lnbihlLExlYWRDb25maWdzW2FdKTtjb25zdCBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBsZWFkJHthfWApO2g\/KGE9aCwic3RhdGljIiE9ZS5tb2RlJiYoYz1gJHtlLm5hbWV9XyR7ZS5nZXRJZFN1ZmZpeChlKX1gLGE9aC5jbG9uZU5vZGUoITApLGEuc2V0QXR0cmlidXRlKCJpZCIsImxlYWQiK2MpLGEucXVlcnlTZWxlY3RvcigiZm9ybSIpLnNldEF0dHJpYnV0ZSgiaWQiLCJmb3JtIitjKSxkb2N1bWVudC5ib2R5LmFwcGVuZChhKSksZS5sZWFkSWQ9YyxlLmxlYWROb2RlPWEsTGVhZHNbY109bmV3IExlYWQoZSksYz1MZWFkc1tjXSk6Yz0hMX19cmV0dXJuIGN9O3JldHVybntpbml0LGluaXRMZWFkVHJpZ2dlcixnZXRMZWFkfX07dmFyIExlYWRzPUxlYWRzfHx7fTtkb2NSZWFkeUFyci5wdXNoKExlYWRIYW5kbGVyKCkuaW5pdCk7Ci8qKiAvanMvdmFuaWxsYWpzL2F4aW9zLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuYXhpb3M9dCgpOmUuYXhpb3M9dCgpfSh0aGlzLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD17fTtmdW5jdGlvbiBuKHIpe2lmKHRbcl0pcmV0dXJuIHRbcl0uZXhwb3J0czt2YXIgbz10W3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxuKSxvLmw9ITAsby5leHBvcnRzfXJldHVybiBuLm09ZSxuLmM9dCxuLmQ9ZnVuY3Rpb24oZSx0LHIpe24ubyhlLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpyfSl9LG4ucj1mdW5jdGlvbihlKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxuLnQ9ZnVuY3Rpb24oZSx0KXtpZigxJnQmJihlPW4oZSkpLDgmdClyZXR1cm4gZTtpZig0JnQmJiJvYmplY3QiPT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciByPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobi5yKHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiYic3RyaW5nIiE9dHlwZW9mIGUpZm9yKHZhciBvIGluIGUpbi5kKHIsbyxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0uYmluZChudWxsLG8pKTtyZXR1cm4gcn0sbi5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBuLmQodCwiYSIsdCksdH0sbi5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxuLnA9IiIsbihuLnM9MTEpfShbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDMpLG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBpKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1vLmNhbGwoZSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gdm9pZCAwPT09ZX1mdW5jdGlvbiBhKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfWZ1bmN0aW9uIHUoZSl7aWYoIltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dD09PU9iamVjdC5wcm90b3R5cGV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09by5jYWxsKGUpfWZ1bmN0aW9uIGYoZSx0KXtpZihudWxsIT1lKWlmKCJvYmplY3QiIT10eXBlb2YgZSYmKGU9W2VdKSxpKGUpKWZvcih2YXIgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0LmNhbGwobnVsbCxlW25dLG4sZSk7ZWxzZSBmb3IodmFyIG8gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmdC5jYWxsKG51bGwsZVtvXSxvLGUpfWUuZXhwb3J0cz17aXNBcnJheTppLGlzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQXJyYXlCdWZmZXJdIj09PW8uY2FsbChlKX0saXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhcyhlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiFzKGUuY29uc3RydWN0b3IpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX0saXNGb3JtRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZlIGluc3RhbmNlb2YgRm9ybURhdGF9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJmUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9LGlzU3RyaW5nOmZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZX0saXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlfSxpc09iamVjdDphLGlzUGxhaW5PYmplY3Q6dSxpc1VuZGVmaW5lZDpzLGlzRGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1vLmNhbGwoZSl9LGlzRmlsZTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBGaWxlXSI9PT1vLmNhbGwoZSl9LGlzQmxvYjpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBCbG9iXSI9PT1vLmNhbGwoZSl9LGlzRnVuY3Rpb246Yyxpc1N0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gYShlKSYmYyhlLnBpcGUpfSxpc1VSTFNlYXJjaFBhcmFtczpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyYmZSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtc30saXNTdGFuZGFyZEJyb3dzZXJFbnY6ZnVuY3Rpb24oKXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fCJSZWFjdE5hdGl2ZSIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmIk5hdGl2ZVNjcmlwdCIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmIk5TIiE9PW5hdmlnYXRvci5wcm9kdWN0KSYmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KX0sZm9yRWFjaDpmLG1lcmdlOmZ1bmN0aW9uIGUoKXt2YXIgdD17fTtmdW5jdGlvbiBuKG4scil7dSh0W3JdKSYmdShuKT90W3JdPWUodFtyXSxuKTp1KG4pP3Rbcl09ZSh7fSxuKTppKG4pP3Rbcl09bi5zbGljZSgpOnRbcl09bn1mb3IodmFyIHI9MCxvPWFyZ3VtZW50cy5sZW5ndGg7cjxvO3IrKylmKGFyZ3VtZW50c1tyXSxuKTtyZXR1cm4gdH0sZXh0ZW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZih0LChmdW5jdGlvbih0LG8pe2Vbb109biYmImZ1bmN0aW9uIj09dHlwZW9mIHQ\/cih0LG4pOnR9KSksZX0sdHJpbTpmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxzdHJpcEJPTTpmdW5jdGlvbihlKXtyZXR1cm4gNjUyNzk9PT1lLmNoYXJDb2RlQXQoMCkmJihlPWUuc2xpY2UoMSkpLGV9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxNyksaT1uKDUpLHM9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiBhKGUsdCl7IXIuaXNVbmRlZmluZWQoZSkmJnIuaXNVbmRlZmluZWQoZVsiQ29udGVudC1UeXBlIl0pJiYoZVsiQ29udGVudC1UeXBlIl09dCl9dmFyIHUsYz17dHJhbnNpdGlvbmFsOntzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxhZGFwdGVyOigoInVuZGVmaW5lZCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdHx8InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocHJvY2VzcykpJiYodT1uKDYpKSx1KSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe3JldHVybiBvKHQsIkFjY2VwdCIpLG8odCwiQ29udGVudC1UeXBlIiksci5pc0Zvcm1EYXRhKGUpfHxyLmlzQXJyYXlCdWZmZXIoZSl8fHIuaXNCdWZmZXIoZSl8fHIuaXNTdHJlYW0oZSl8fHIuaXNGaWxlKGUpfHxyLmlzQmxvYihlKT9lOnIuaXNBcnJheUJ1ZmZlclZpZXcoZSk\/ZS5idWZmZXI6ci5pc1VSTFNlYXJjaFBhcmFtcyhlKT8oYSh0LCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpLGUudG9TdHJpbmcoKSk6ci5pc09iamVjdChlKXx8dCYmImFwcGxpY2F0aW9uL2pzb24iPT09dFsiQ29udGVudC1UeXBlIl0\/KGEodCwiYXBwbGljYXRpb24vanNvbiIpLGZ1bmN0aW9uKGUsdCxuKXtpZihyLmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoZSksci50cmltKGUpfWNhdGNoKGUpe2lmKCJTeW50YXhFcnJvciIhPT1lLm5hbWUpdGhyb3cgZX1yZXR1cm4obnx8SlNPTi5zdHJpbmdpZnkpKGUpfShlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRyYW5zaXRpb25hbHx8Yy50cmFuc2l0aW9uYWwsbj10JiZ0LnNpbGVudEpTT05QYXJzaW5nLG89dCYmdC5mb3JjZWRKU09OUGFyc2luZyxzPSFuJiYianNvbiI9PT10aGlzLnJlc3BvbnNlVHlwZTtpZihzfHxvJiZyLmlzU3RyaW5nKGUpJiZlLmxlbmd0aCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7aWYocyl7aWYoIlN5bnRheEVycm9yIj09PWUubmFtZSl0aHJvdyBpKGUsdGhpcywiRV9KU09OX1BBUlNFIik7dGhyb3cgZX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07ci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCJdLChmdW5jdGlvbihlKXtjLmhlYWRlcnNbZV09e319KSksci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpe2MuaGVhZGVyc1tlXT1yLm1lcmdlKHMpfSkpLGUuZXhwb3J0cz1jfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7dGhpcy5tZXNzYWdlPWV9ci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ2FuY2VsIisodGhpcy5tZXNzYWdlPyI6ICIrdGhpcy5tZXNzYWdlOiIiKX0sci5wcm90b3R5cGUuX19DQU5DRUxfXz0hMCxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS5hcHBseSh0LG4pfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtmdW5jdGlvbiBvKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYoIXQpcmV0dXJuIGU7dmFyIGk7aWYobilpPW4odCk7ZWxzZSBpZihyLmlzVVJMU2VhcmNoUGFyYW1zKHQpKWk9dC50b1N0cmluZygpO2Vsc2V7dmFyIHM9W107ci5mb3JFYWNoKHQsKGZ1bmN0aW9uKGUsdCl7bnVsbCE9ZSYmKHIuaXNBcnJheShlKT90Kz0iW10iOmU9W2VdLHIuZm9yRWFjaChlLChmdW5jdGlvbihlKXtyLmlzRGF0ZShlKT9lPWUudG9JU09TdHJpbmcoKTpyLmlzT2JqZWN0KGUpJiYoZT1KU09OLnN0cmluZ2lmeShlKSkscy5wdXNoKG8odCkrIj0iK28oZSkpfSkpKX0pKSxpPXMuam9pbigiJiIpfWlmKGkpe3ZhciBhPWUuaW5kZXhPZigiIyIpOy0xIT09YSYmKGU9ZS5zbGljZSgwLGEpKSxlKz0oLTE9PT1lLmluZGV4T2YoIj8iKT8iPyI6IiYiKStpfXJldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gZS5jb25maWc9dCxuJiYoZS5jb2RlPW4pLGUucmVxdWVzdD1yLGUucmVzcG9uc2U9byxlLmlzQXhpb3NFcnJvcj0hMCxlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzp0aGlzLmNvbmZpZyxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5yZXNwb25zZSYmdGhpcy5yZXNwb25zZS5zdGF0dXM\/dGhpcy5yZXNwb25zZS5zdGF0dXM6bnVsbH19LGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE4KSxpPW4oMTkpLHM9big0KSxhPW4oMjApLHU9bigyMyksYz1uKDI0KSxmPW4oNyksbD1uKDEpLHA9bigyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe3ZhciBkLGg9ZS5kYXRhLG09ZS5oZWFkZXJzLHY9ZS5yZXNwb25zZVR5cGU7ZnVuY3Rpb24geSgpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZCksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixkKX1yLmlzRm9ybURhdGEoaCkmJmRlbGV0ZSBtWyJDb250ZW50LVR5cGUiXTt2YXIgZz1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXt2YXIgYj1lLmF1dGgudXNlcm5hbWV8fCIiLHg9ZS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKToiIjttLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShiKyI6Iit4KX12YXIgdz1hKGUuYmFzZVVSTCxlLnVybCk7ZnVuY3Rpb24gRSgpe2lmKGcpe3ZhciByPSJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gZz91KGcuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsaT17ZGF0YTp2JiYidGV4dCIhPT12JiYianNvbiIhPT12P2cucmVzcG9uc2U6Zy5yZXNwb25zZVRleHQsc3RhdHVzOmcuc3RhdHVzLHN0YXR1c1RleHQ6Zy5zdGF0dXNUZXh0LGhlYWRlcnM6cixjb25maWc6ZSxyZXF1ZXN0Omd9O28oKGZ1bmN0aW9uKGUpe3QoZSkseSgpfSksKGZ1bmN0aW9uKGUpe24oZSkseSgpfSksaSksZz1udWxsfX1pZihnLm9wZW4oZS5tZXRob2QudG9VcHBlckNhc2UoKSxzKHcsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksZy50aW1lb3V0PWUudGltZW91dCwib25sb2FkZW5kImluIGc\/Zy5vbmxvYWRlbmQ9RTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2cmJjQ9PT1nLnJlYWR5U3RhdGUmJigwIT09Zy5zdGF0dXN8fGcucmVzcG9uc2VVUkwmJjA9PT1nLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KEUpfSxnLm9uYWJvcnQ9ZnVuY3Rpb24oKXtnJiYobihmKCJSZXF1ZXN0IGFib3J0ZWQiLGUsIkVDT05OQUJPUlRFRCIsZykpLGc9bnVsbCl9LGcub25lcnJvcj1mdW5jdGlvbigpe24oZigiTmV0d29yayBFcnJvciIsZSxudWxsLGcpKSxnPW51bGx9LGcub250aW1lb3V0PWZ1bmN0aW9uKCl7dmFyIHQ9ZS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrZS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLHI9ZS50cmFuc2l0aW9uYWx8fGwudHJhbnNpdGlvbmFsO2UudGltZW91dEVycm9yTWVzc2FnZSYmKHQ9ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxuKGYodCxlLHIuY2xhcmlmeVRpbWVvdXRFcnJvcj8iRVRJTUVET1VUIjoiRUNPTk5BQk9SVEVEIixnKSksZz1udWxsfSxyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciBTPShlLndpdGhDcmVkZW50aWFsc3x8Yyh3KSkmJmUueHNyZkNvb2tpZU5hbWU\/aS5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDtTJiYobVtlLnhzcmZIZWFkZXJOYW1lXT1TKX0ic2V0UmVxdWVzdEhlYWRlciJpbiBnJiZyLmZvckVhY2gobSwoZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT1oJiYiY29udGVudC10eXBlIj09PXQudG9Mb3dlckNhc2UoKT9kZWxldGUgbVt0XTpnLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pKSxyLmlzVW5kZWZpbmVkKGUud2l0aENyZWRlbnRpYWxzKXx8KGcud2l0aENyZWRlbnRpYWxzPSEhZS53aXRoQ3JlZGVudGlhbHMpLHYmJiJqc29uIiE9PXYmJihnLnJlc3BvbnNlVHlwZT1lLnJlc3BvbnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzJiZnLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uRG93bmxvYWRQcm9ncmVzcyksImZ1bmN0aW9uIj09dHlwZW9mIGUub25VcGxvYWRQcm9ncmVzcyYmZy51cGxvYWQmJmcudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uVXBsb2FkUHJvZ3Jlc3MpLChlLmNhbmNlbFRva2VufHxlLnNpZ25hbCkmJihkPWZ1bmN0aW9uKGUpe2cmJihuKCFlfHxlJiZlLnR5cGU\/bmV3IHAoImNhbmNlbGVkIik6ZSksZy5hYm9ydCgpLGc9bnVsbCl9LGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGQpLGUuc2lnbmFsJiYoZS5zaWduYWwuYWJvcnRlZD9kKCk6ZS5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGQpKSksaHx8KGg9bnVsbCksZy5zZW5kKGgpfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixvLGkpe3ZhciBzPW5ldyBFcnJvcihlKTtyZXR1cm4gcihzLHQsbixvLGkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuX19DQU5DRUxfXyl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj17fTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIHIuaXNQbGFpbk9iamVjdChlKSYmci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2UoZSx0KTpyLmlzUGxhaW5PYmplY3QodCk\/ci5tZXJnZSh7fSx0KTpyLmlzQXJyYXkodCk\/dC5zbGljZSgpOnR9ZnVuY3Rpb24gaShuKXtyZXR1cm4gci5pc1VuZGVmaW5lZCh0W25dKT9yLmlzVW5kZWZpbmVkKGVbbl0pP3ZvaWQgMDpvKHZvaWQgMCxlW25dKTpvKGVbbl0sdFtuXSl9ZnVuY3Rpb24gcyhlKXtpZighci5pc1VuZGVmaW5lZCh0W2VdKSlyZXR1cm4gbyh2b2lkIDAsdFtlXSl9ZnVuY3Rpb24gYShuKXtyZXR1cm4gci5pc1VuZGVmaW5lZCh0W25dKT9yLmlzVW5kZWZpbmVkKGVbbl0pP3ZvaWQgMDpvKHZvaWQgMCxlW25dKTpvKHZvaWQgMCx0W25dKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuIGluIHQ\/byhlW25dLHRbbl0pOm4gaW4gZT9vKHZvaWQgMCxlW25dKTp2b2lkIDB9dmFyIGM9e3VybDpzLG1ldGhvZDpzLGRhdGE6cyxiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6dX07cmV0dXJuIHIuZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLChmdW5jdGlvbihlKXt2YXIgdD1jW2VdfHxpLG89dChlKTtyLmlzVW5kZWZpbmVkKG8pJiZ0IT09dXx8KG5bZV09byl9KSksbn19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPXt2ZXJzaW9uOiIwLjI0LjAifX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDEyKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigzKSxpPW4oMTMpLHM9big5KTt2YXIgYT1mdW5jdGlvbiBlKHQpe3ZhciBuPW5ldyBpKHQpLGE9byhpLnByb3RvdHlwZS5yZXF1ZXN0LG4pO3JldHVybiByLmV4dGVuZChhLGkucHJvdG90eXBlLG4pLHIuZXh0ZW5kKGEsbiksYS5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGUocyh0LG4pKX0sYX0obigxKSk7YS5BeGlvcz1pLGEuQ2FuY2VsPW4oMiksYS5DYW5jZWxUb2tlbj1uKDI2KSxhLmlzQ2FuY2VsPW4oOCksYS5WRVJTSU9OPW4oMTApLnZlcnNpb24sYS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfSxhLnNwcmVhZD1uKDI3KSxhLmlzQXhpb3NFcnJvcj1uKDI4KSxlLmV4cG9ydHM9YSxlLmV4cG9ydHMuZGVmYXVsdD1hfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDQpLGk9bigxNCkscz1uKDE1KSxhPW4oOSksdT1uKDI1KSxjPXUudmFsaWRhdG9ycztmdW5jdGlvbiBmKGUpe3RoaXMuZGVmYXVsdHM9ZSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgaSxyZXNwb25zZTpuZXcgaX19Zi5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGU\/KGU9YXJndW1lbnRzWzFdfHx7fSkudXJsPWFyZ3VtZW50c1swXTplPWV8fHt9LChlPWEodGhpcy5kZWZhdWx0cyxlKSkubWV0aG9kP2UubWV0aG9kPWUubWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q\/ZS5tZXRob2Q9dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKTplLm1ldGhvZD0iZ2V0Ijt2YXIgdD1lLnRyYW5zaXRpb25hbDt2b2lkIDAhPT10JiZ1LmFzc2VydE9wdGlvbnModCx7c2lsZW50SlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKX0sITEpO3ZhciBuPVtdLHI9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKChmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdC5ydW5XaGVuJiYhMT09PXQucnVuV2hlbihlKXx8KHI9ciYmdC5zeW5jaHJvbm91cyxuLnVuc2hpZnQodC5mdWxmaWxsZWQsdC5yZWplY3RlZCkpfSkpO3ZhciBvLGk9W107aWYodGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5wdXNoKGUuZnVsZmlsbGVkLGUucmVqZWN0ZWQpfSkpLCFyKXt2YXIgZj1bcyx2b2lkIDBdO2ZvcihBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShmLG4pLGY9Zi5jb25jYXQoaSksbz1Qcm9taXNlLnJlc29sdmUoZSk7Zi5sZW5ndGg7KW89by50aGVuKGYuc2hpZnQoKSxmLnNoaWZ0KCkpO3JldHVybiBvfWZvcih2YXIgbD1lO24ubGVuZ3RoOyl7dmFyIHA9bi5zaGlmdCgpLGQ9bi5zaGlmdCgpO3RyeXtsPXAobCl9Y2F0Y2goZSl7ZChlKTticmVha319dHJ5e289cyhsKX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9Zm9yKDtpLmxlbmd0aDspbz1vLnRoZW4oaS5zaGlmdCgpLGkuc2hpZnQoKSk7cmV0dXJuIG99LGYucHJvdG90eXBlLmdldFVyaT1mdW5jdGlvbihlKXtyZXR1cm4gZT1hKHRoaXMuZGVmYXVsdHMsZSksbyhlLnVybCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cPy8sIiIpfSxyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLChmdW5jdGlvbihlKXtmLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLnJlcXVlc3QoYShufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToobnx8e30pLmRhdGF9KSl9fSkpLHIuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtmLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRoaXMucmVxdWVzdChhKHJ8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOm59KSl9fSkpLGUuZXhwb3J0cz1mfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZnVuY3Rpb24gbygpe3RoaXMuaGFuZGxlcnM9W119by5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOiEhbiYmbi5zeW5jaHJvbm91cyxydW5XaGVuOm4\/bi5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxvLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX0sby5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXtyLmZvckVhY2godGhpcy5oYW5kbGVycywoZnVuY3Rpb24odCl7bnVsbCE9PXQmJmUodCl9KSl9LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE2KSxpPW4oOCkscz1uKDEpLGE9bigyKTtmdW5jdGlvbiB1KGUpe2lmKGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLGUuc2lnbmFsJiZlLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBhKCJjYW5jZWxlZCIpfWUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdShlKSxlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmRhdGE9by5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1yLm1lcmdlKGUuaGVhZGVycy5jb21tb258fHt9LGUuaGVhZGVyc1tlLm1ldGhvZF18fHt9LGUuaGVhZGVycyksci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLChmdW5jdGlvbih0KXtkZWxldGUgZS5oZWFkZXJzW3RdfSkpLChlLmFkYXB0ZXJ8fHMuYWRhcHRlcikoZSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHUoZSksdC5kYXRhPW8uY2FsbChlLHQuZGF0YSx0LmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSksdH0pLChmdW5jdGlvbih0KXtyZXR1cm4gaSh0KXx8KHUoZSksdCYmdC5yZXNwb25zZSYmKHQucmVzcG9uc2UuZGF0YT1vLmNhbGwoZSx0LnJlc3BvbnNlLmRhdGEsdC5yZXNwb25zZS5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QodCl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpc3x8bztyZXR1cm4gci5mb3JFYWNoKG4sKGZ1bmN0aW9uKG4pe2U9bi5jYWxsKGksZSx0KX0pKSxlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3IuZm9yRWFjaChlLChmdW5jdGlvbihuLHIpe3IhPT10JiZyLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCkmJihlW3RdPW4sZGVsZXRlIGVbcl0pfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIG89bi5jb25maWcudmFsaWRhdGVTdGF0dXM7bi5zdGF0dXMmJm8mJiFvKG4uc3RhdHVzKT90KHIoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIituLnN0YXR1cyxuLmNvbmZpZyxudWxsLG4ucmVxdWVzdCxuKSk6ZShuKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP3t3cml0ZTpmdW5jdGlvbihlLHQsbixvLGkscyl7dmFyIGE9W107YS5wdXNoKGUrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KSksci5pc051bWJlcihuKSYmYS5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksci5pc1N0cmluZyhvKSYmYS5wdXNoKCJwYXRoPSIrbyksci5pc1N0cmluZyhpKSYmYS5wdXNoKCJkb21haW49IitpKSwhMD09PXMmJmEucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWEuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrZSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dGhpcy53cml0ZShlLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlOmZ1bmN0aW9uKCl7fSxyZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHJlbW92ZTpmdW5jdGlvbigpe319fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMjEpLG89bigyMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiFyKHQpP28oZSx0KTp0fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGRcK1wtXC5dKjopP1wvXC8vaS50ZXN0KGUpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPVsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXt9O3JldHVybiBlPyhyLmZvckVhY2goZS5zcGxpdCgiXG4iKSwoZnVuY3Rpb24oZSl7aWYoaT1lLmluZGV4T2YoIjoiKSx0PXIudHJpbShlLnN1YnN0cigwLGkpKS50b0xvd2VyQ2FzZSgpLG49ci50cmltKGUuc3Vic3RyKGkrMSkpLHQpe2lmKHNbdF0mJm8uaW5kZXhPZih0KT49MClyZXR1cm47c1t0XT0ic2V0LWNvb2tpZSI9PT10PyhzW3RdP3NbdF06W10pLmNvbmNhdChbbl0pOnNbdF0\/c1t0XSsiLCAiK246bn19KSkscyk6c319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGUsdD0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2Z1bmN0aW9uIG8oZSl7dmFyIHI9ZTtyZXR1cm4gdCYmKG4uc2V0QXR0cmlidXRlKCJocmVmIixyKSxyPW4uaHJlZiksbi5zZXRBdHRyaWJ1dGUoImhyZWYiLHIpLHtocmVmOm4uaHJlZixwcm90b2NvbDpuLnByb3RvY29sP24ucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0Om4uaG9zdCxzZWFyY2g6bi5zZWFyY2g\/bi5zZWFyY2gucmVwbGFjZSgvXlw\/LywiIik6IiIsaGFzaDpuLmhhc2g\/bi5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6bi5ob3N0bmFtZSxwb3J0Om4ucG9ydCxwYXRobmFtZToiLyI9PT1uLnBhdGhuYW1lLmNoYXJBdCgwKT9uLnBhdGhuYW1lOiIvIituLnBhdGhuYW1lfX1yZXR1cm4gZT1vKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbih0KXt2YXIgbj1yLmlzU3RyaW5nKHQpP28odCk6dDtyZXR1cm4gbi5wcm90b2NvbD09PWUucHJvdG9jb2wmJm4uaG9zdD09PWUuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMCkudmVyc2lvbixvPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtvW2VdPWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09PWV8fCJhIisodDwxPyJuICI6IiAiKStlfX0pKTt2YXIgaT17fTtvLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiJbQXhpb3MgdiIrcisiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2UrIiciK3QrKG4\/Ii4gIituOiIiKX1yZXR1cm4gZnVuY3Rpb24obixyLHMpe2lmKCExPT09ZSl0aHJvdyBuZXcgRXJyb3IobyhyLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ\/IiBpbiAiK3Q6IiIpKSk7cmV0dXJuIHQmJiFpW3JdJiYoaVtyXT0hMCxjb25zb2xlLndhcm4obyhyLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFlfHxlKG4scixzKX19LGUuZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihlLHQsbil7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksbz1yLmxlbmd0aDtvLS0gPjA7KXt2YXIgaT1yW29dLHM9dFtpXTtpZihzKXt2YXIgYT1lW2ldLHU9dm9pZCAwPT09YXx8cyhhLGksZSk7aWYoITAhPT11KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrdSl9ZWxzZSBpZighMCE9PW4pdGhyb3cgRXJyb3IoIlVua25vd24gb3B0aW9uICIraSl9fSx2YWxpZGF0b3JzOm99fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMik7ZnVuY3Rpb24gbyhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXt0PWV9KSk7dmFyIG49dGhpczt0aGlzLnByb21pc2UudGhlbigoZnVuY3Rpb24oZSl7aWYobi5fbGlzdGVuZXJzKXt2YXIgdCxyPW4uX2xpc3RlbmVycy5sZW5ndGg7Zm9yKHQ9MDt0PHI7dCsrKW4uX2xpc3RlbmVyc1t0XShlKTtuLl9saXN0ZW5lcnM9bnVsbH19KSksdGhpcy5wcm9taXNlLnRoZW49ZnVuY3Rpb24oZSl7dmFyIHQscj1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7bi5zdWJzY3JpYmUoZSksdD1lfSkpLnRoZW4oZSk7cmV0dXJuIHIuY2FuY2VsPWZ1bmN0aW9uKCl7bi51bnN1YnNjcmliZSh0KX0scn0sZSgoZnVuY3Rpb24oZSl7bi5yZWFzb258fChuLnJlYXNvbj1uZXcgcihlKSx0KG4ucmVhc29uKSl9KSl9by5wcm90b3R5cGUudGhyb3dJZlJlcXVlc3RlZD1mdW5jdGlvbigpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufSxvLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dGhpcy5yZWFzb24\/ZSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LG8ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2xpc3RlbmVycyl7dmFyIHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7LTEhPT10JiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9fSxvLnNvdXJjZT1mdW5jdGlvbigpe3ZhciBlO3JldHVybnt0b2tlbjpuZXcgbygoZnVuY3Rpb24odCl7ZT10fSkpLGNhbmNlbDplfX0sZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseShudWxsLHQpfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmITA9PT1lLmlzQXhpb3NFcnJvcn19XSl9KSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWF4aW9zLm1pbi5tYXA7Ci8qKiAvanMvdmFuaWxsYWpzL3ByaXN0aW5lLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKGUscil7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1yKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUocik6KGU9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6ZXx8c2VsZikuUHJpc3RpbmU9cigpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZW46e3JlcXVpcmVkOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIixlbWFpbDoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIHZhbGlkIGUtbWFpbCBhZGRyZXNzIixudW1iZXI6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSBudW1iZXIiLGludGVnZXI6IlRoaXMgZmllbGQgcmVxdWlyZXMgYW4gaW50ZWdlciB2YWx1ZSIsdXJsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgd2Vic2l0ZSBVUkwiLHRlbDoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIHZhbGlkIHRlbGVwaG9uZSBudW1iZXIiLG1heGxlbmd0aDoiVGhpcyBmaWVsZHMgbGVuZ3RoIG11c3QgYmUgPCAkezF9IixtaW5sZW5ndGg6IlRoaXMgZmllbGRzIGxlbmd0aCBtdXN0IGJlID4gJHsxfSIsbWluOiJNaW5pbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzICR7MX0iLG1heDoiTWF4aW11bSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCBpcyAkezF9IixwYXR0ZXJuOiJQbGVhc2UgbWF0Y2ggdGhlIHJlcXVlc3RlZCBmb3JtYXQiLGVxdWFsczoiVGhlIHR3byBmaWVsZHMgZG8gbm90IG1hdGNoIn19O2Z1bmN0aW9uIHIoZSl7dmFyIHI9YXJndW1lbnRzO3JldHVybiB0aGlzLnJlcGxhY2UoL1wkeyhbXnt9XSopfS9nLChmdW5jdGlvbihlLHQpe3JldHVybiByW3RdfSkpfWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJpc3RpbmUuc2VsZi5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9IicrZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSsnIl06Y2hlY2tlZCcpLmxlbmd0aH12YXIgbj17Y2xhc3NUbzoiZm9ybS1ncm91cCIsZXJyb3JDbGFzczoiaGFzLWRhbmdlciIsc3VjY2Vzc0NsYXNzOiJoYXMtc3VjY2VzcyIsZXJyb3JUZXh0UGFyZW50OiJmb3JtLWdyb3VwIixlcnJvclRleHRUYWc6ImRpdiIsZXJyb3JUZXh0Q2xhc3M6InRleHQtaGVscCJ9LGk9WyJyZXF1aXJlZCIsIm1pbiIsIm1heCIsIm1pbmxlbmd0aCIsIm1heGxlbmd0aCIsInBhdHRlcm4iXSxzPS9eKChbXjw+KClcW1xdXFwuLDs6XHNAIl0rKFwuW148PigpXFtcXVxcLiw7OlxzQCJdKykqKXwoIi4rIikpQCgoXFtbMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XSl8KChbYS16QS1aXC0wLTldK1wuKStbYS16QS1aXXsyLH0pKSQvLGE9Ly1tZXNzYWdlKD86LShbYS16XXsyfSg\/Ol9bQS1aXXsyfSk\/KSk\/LyxvPSJlbiIsbD17fSx1PWZ1bmN0aW9uKGUscil7ci5uYW1lPWUsdm9pZCAwPT09ci5wcmlvcml0eSYmKHIucHJpb3JpdHk9MSksbFtlXT1yfTtmdW5jdGlvbiBmKHQscyx1KXt2YXIgZj10aGlzO2Z1bmN0aW9uIGMoZSxyLHQsbil7dmFyIGk9bFt0XTtpZihpJiYoZS5wdXNoKGkpLG4pKXt2YXIgcz0icGF0dGVybiI9PT10P1tuXTpuLnNwbGl0KCIsIik7cy51bnNoaWZ0KG51bGwpLHJbdF09c319ZnVuY3Rpb24gcCh0KXtmb3IodmFyIG49W10saT0hMCxzPTA7dC52YWxpZGF0b3JzW3NdO3MrKyl7dmFyIGE9dC52YWxpZGF0b3JzW3NdLGw9dC5wYXJhbXNbYS5uYW1lXT90LnBhcmFtc1thLm5hbWVdOltdO2lmKGxbMF09dC5pbnB1dC52YWx1ZSwhYS5mbi5hcHBseSh0LmlucHV0LGwpJiYoaT0hMSwiZnVuY3Rpb24iPT10eXBlb2YgYS5tc2c\/bi5wdXNoKGEubXNnKHQuaW5wdXQudmFsdWUsbCkpOiJzdHJpbmciPT10eXBlb2YgYS5tc2c\/bi5wdXNoKHIuYXBwbHkoYS5tc2csbCkpOmEubXNnPT09T2JqZWN0KGEubXNnKSYmYS5tc2dbb10\/bi5wdXNoKHIuYXBwbHkoYS5tc2dbb10sbCkpOnQubWVzc2FnZXNbb10mJnQubWVzc2FnZXNbb11bYS5uYW1lXT9uLnB1c2goci5hcHBseSh0Lm1lc3NhZ2VzW29dW2EubmFtZV0sbCkpOmVbb10mJmVbb11bYS5uYW1lXSYmbi5wdXNoKHIuYXBwbHkoZVtvXVthLm5hbWVdLGwpKSwhMD09PWEuaGFsdCkpYnJlYWt9cmV0dXJuIHQuZXJyb3JzPW4saX1mdW5jdGlvbiBtKGUpe2lmKGUuZXJyb3JFbGVtZW50cylyZXR1cm4gZS5lcnJvckVsZW1lbnRzO3ZhciByPWZ1bmN0aW9uKGUscil7Zm9yKDsoZT1lLnBhcmVudEVsZW1lbnQpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMocik7KTtyZXR1cm4gZX0oZS5pbnB1dCxmLmNvbmZpZy5jbGFzc1RvKSx0PW51bGwsbj1udWxsO3JldHVybih0PWYuY29uZmlnLmNsYXNzVG89PT1mLmNvbmZpZy5lcnJvclRleHRQYXJlbnQ\/cjpyLnF1ZXJ5U2VsZWN0b3IoIi4iK2YuY29uZmlnLmVycm9yVGV4dFBhcmVudCkpJiYoKG49dC5xdWVyeVNlbGVjdG9yKCIucHJpc3RpbmUtZXJyb3IiKSl8fCgobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGYuY29uZmlnLmVycm9yVGV4dFRhZykpLmNsYXNzTmFtZT0icHJpc3RpbmUtZXJyb3IgIitmLmNvbmZpZy5lcnJvclRleHRDbGFzcyx0LmFwcGVuZENoaWxkKG4pLG4ucHJpc3RpbmVEaXNwbGF5PW4uc3R5bGUuZGlzcGxheSkpLGUuZXJyb3JFbGVtZW50cz1bcixuXX1mdW5jdGlvbiBkKGUpe3ZhciByPW0oZSksdD1yWzBdLG49clsxXTt0JiYodC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyksdC5jbGFzc0xpc3QuYWRkKGYuY29uZmlnLmVycm9yQ2xhc3MpKSxuJiYobi5pbm5lckhUTUw9ZS5lcnJvcnMuam9pbigiPGJyLz4iKSxuLnN0eWxlLmRpc3BsYXk9bi5wcmlzdGluZURpc3BsYXl8fCIiKX1mdW5jdGlvbiBoKGUpe3ZhciByPWZ1bmN0aW9uKGUpe3ZhciByPW0oZSksdD1yWzBdLG49clsxXTtyZXR1cm4gdCYmKHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5lcnJvckNsYXNzKSx0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSksbiYmKG4uaW5uZXJIVE1MPSIiLG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHJ9KGUpWzBdO3ImJnIuY2xhc3NMaXN0LmFkZChmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpfXJldHVybiBmdW5jdGlvbihlLHIsdCl7ZS5zZXRBdHRyaWJ1dGUoIm5vdmFsaWRhdGUiLCJ0cnVlIiksZi5mb3JtPWUsZi5jb25maWc9ZnVuY3Rpb24oZSxyKXtmb3IodmFyIHQgaW4gcil0IGluIGV8fChlW3RdPXJbdF0pO3JldHVybiBlfShyfHx7fSxuKSxmLmxpdmU9ISghMT09PXQpLGYuZmllbGRzPUFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dDpub3QoW3R5cGVePWhpZGRlbl0pOm5vdChbdHlwZV49c3VibWl0XSksIHNlbGVjdCwgdGV4dGFyZWEiKSkubWFwKGZ1bmN0aW9uKGUpe3ZhciByPVtdLHQ9e30sbj17fTtyZXR1cm5bXS5mb3JFYWNoLmNhbGwoZS5hdHRyaWJ1dGVzLChmdW5jdGlvbihlKXtpZigvXmRhdGEtcHJpc3RpbmUtLy50ZXN0KGUubmFtZSkpe3ZhciBzPWUubmFtZS5zdWJzdHIoMTQpLG89cy5tYXRjaChhKTtpZihudWxsIT09byl7dmFyIGw9dm9pZCAwPT09b1sxXT8iZW4iOm9bMV07cmV0dXJuIG4uaGFzT3duUHJvcGVydHkobCl8fChuW2xdPXt9KSx2b2lkKG5bbF1bcy5zbGljZSgwLHMubGVuZ3RoLW9bMF0ubGVuZ3RoKV09ZS52YWx1ZSl9InR5cGUiPT09cyYmKHM9ZS52YWx1ZSksYyhyLHQscyxlLnZhbHVlKX1lbHNlfmkuaW5kZXhPZihlLm5hbWUpP2Mocix0LGUubmFtZSxlLnZhbHVlKToidHlwZSI9PT1lLm5hbWUmJmMocix0LGUudmFsdWUpfSkpLHIuc29ydCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gci5wcmlvcml0eS1lLnByaW9yaXR5fSkpLGYubGl2ZSYmZS5hZGRFdmVudExpc3RlbmVyKH5bInJhZGlvIiwiY2hlY2tib3giXS5pbmRleE9mKGUuZ2V0QXR0cmlidXRlKCJ0eXBlIikpPyJjaGFuZ2UiOiJpbnB1dCIsZnVuY3Rpb24oZSl7Zi52YWxpZGF0ZShlLnRhcmdldCl9LmJpbmQoZikpLGUucHJpc3RpbmU9e2lucHV0OmUsdmFsaWRhdG9yczpyLHBhcmFtczp0LG1lc3NhZ2VzOm4sc2VsZjpmfX0uYmluZChmKSl9KHQscyx1KSxmLnZhbGlkYXRlPWZ1bmN0aW9uKGUscil7cj1lJiYhMD09PXJ8fCEwPT09ZTt2YXIgdD1mLmZpZWxkczshMCE9PWUmJiExIT09ZSYmKGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD90PVtlLnByaXN0aW5lXTooZSBpbnN0YW5jZW9mIE5vZGVMaXN0fHxlIGluc3RhbmNlb2Yod2luZG93LiR8fEFycmF5KXx8ZSBpbnN0YW5jZW9mIEFycmF5KSYmKHQ9QXJyYXkuZnJvbShlKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnByaXN0aW5lfSkpKSk7Zm9yKHZhciBuPSEwLGk9MDt0W2ldO2krKyl7dmFyIHM9dFtpXTtwKHMpPyFyJiZoKHMpOihuPSExLCFyJiZkKHMpKX1yZXR1cm4gbn0sZi5nZXRFcnJvcnM9ZnVuY3Rpb24oZSl7aWYoIWUpe2Zvcih2YXIgcj1bXSx0PTA7dDxmLmZpZWxkcy5sZW5ndGg7dCsrKXt2YXIgbj1mLmZpZWxkc1t0XTtuLmVycm9ycy5sZW5ndGgmJnIucHVzaCh7aW5wdXQ6bi5pbnB1dCxlcnJvcnM6bi5lcnJvcnN9KX1yZXR1cm4gcn1yZXR1cm4gZS50YWdOYW1lJiYic2VsZWN0Ij09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpP2UucHJpc3RpbmUuZXJyb3JzOmUubGVuZ3RoP2VbMF0ucHJpc3RpbmUuZXJyb3JzOmUucHJpc3RpbmUuZXJyb3JzfSxmLmFkZFZhbGlkYXRvcj1mdW5jdGlvbihlLHIsdCxuLGkpe2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD8oZS5wcmlzdGluZS52YWxpZGF0b3JzLnB1c2goe2ZuOnIsbXNnOnQscHJpb3JpdHk6bixoYWx0Oml9KSxlLnByaXN0aW5lLnZhbGlkYXRvcnMuc29ydCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gci5wcmlvcml0eS1lLnByaW9yaXR5fSkpKTpjb25zb2xlLndhcm4oIlRoZSBwYXJhbWV0ZXIgZWxlbSBtdXN0IGJlIGEgZG9tIGVsZW1lbnQiKX0sZi5hZGRFcnJvcj1mdW5jdGlvbihlLHIpeyhlPWUubGVuZ3RoP2VbMF06ZSkucHJpc3RpbmUuZXJyb3JzLnB1c2gociksZChlLnByaXN0aW5lKX0sZi5yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2YuZmllbGRzW2VdO2UrKylmLmZpZWxkc1tlXS5lcnJvckVsZW1lbnRzPW51bGw7QXJyYXkuZnJvbShmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLnByaXN0aW5lLWVycm9yIikpLm1hcCgoZnVuY3Rpb24oZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkpLEFycmF5LmZyb20oZi5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK2YuY29uZmlnLmNsYXNzVG8pKS5tYXAoKGZ1bmN0aW9uKGUpe2UuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpLGUuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5lcnJvckNsYXNzKX0pKX0sZi5kZXN0cm95PWZ1bmN0aW9uKCl7Zi5yZXNldCgpLGYuZmllbGRzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RlbGV0ZSBlLmlucHV0LnByaXN0aW5lfSkpLGYuZmllbGRzPVtdfSxmLnNldEdsb2JhbENvbmZpZz1mdW5jdGlvbihlKXtuPWV9LGZ9cmV0dXJuIHUoInRleHQiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hMH0scHJpb3JpdHk6MH0pLHUoInJlcXVpcmVkIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuInJhZGlvIj09PXRoaXMudHlwZXx8ImNoZWNrYm94Ij09PXRoaXMudHlwZT90KHRoaXMpOnZvaWQgMCE9PWUmJiIiIT09ZX0scHJpb3JpdHk6OTksaGFsdDohMH0pLHUoImVtYWlsIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fHMudGVzdChlKX19KSx1KCJudW1iZXIiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8IWlzTmFOKHBhcnNlRmxvYXQoZSkpfSxwcmlvcml0eToyfSksdSgiaW50ZWdlciIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHwvXlxkKyQvLnRlc3QoZSl9fSksdSgibWlubGVuZ3RoIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8ZS5sZW5ndGg+PXBhcnNlSW50KHIpfX0pLHUoIm1heGxlbmd0aCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fGUubGVuZ3RoPD1wYXJzZUludChyKX19KSx1KCJtaW4iLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHwoImNoZWNrYm94Ij09PXRoaXMudHlwZT90KHRoaXMpPj1wYXJzZUludChyKTpwYXJzZUZsb2F0KGUpPj1wYXJzZUZsb2F0KHIpKX19KSx1KCJtYXgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHwoImNoZWNrYm94Ij09PXRoaXMudHlwZT90KHRoaXMpPD1wYXJzZUludChyKTpwYXJzZUZsb2F0KGUpPD1wYXJzZUZsb2F0KHIpKX19KSx1KCJwYXR0ZXJuIix7Zm46ZnVuY3Rpb24oZSxyKXt2YXIgdD1yLm1hdGNoKG5ldyBSZWdFeHAoIl4vKC4qPykvKFtnaW15XSopJCIpKTtyZXR1cm4hZXx8bmV3IFJlZ0V4cCh0WzFdLHRbMl0pLnRlc3QoZSl9fSksdSgiZXF1YWxzIix7Zm46ZnVuY3Rpb24oZSxyKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHIpO3JldHVybiB0JiYoIWUmJiF0LnZhbHVlfHx0LnZhbHVlPT09ZSl9fSksZi5hZGRWYWxpZGF0b3I9ZnVuY3Rpb24oZSxyLHQsbixpKXt1KGUse2ZuOnIsbXNnOnQscHJpb3JpdHk6bixoYWx0Oml9KX0sZi5hZGRNZXNzYWdlcz1mdW5jdGlvbihyLHQpe3ZhciBuPWUuaGFzT3duUHJvcGVydHkocik\/ZVtyXTplW3JdPXt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUscil7bltlXT10W2VdfSkpfSxmLnNldExvY2FsZT1mdW5jdGlvbihlKXtvPWV9LGZ9KSk7CgovL0V4dGVuc2lvbgovLyBBIHZhbGlkYXRvciB0byBjaGVjayBpZiB0aGUgaW5wdXQgdmFsdWUgaXMgd2l0aGluIGEgc3BlY2lmaWVkIHJhbmdlCi8vIFRoZSBnbG9iYWwgdmFsaWRhdG9yIG11c3QgYmUgYWRkZWQgYmVmb3JlIGNyZWF0aW5nIHRoZSBwcmlzdGluZSBpbnN0YW5jZQoKLy8gUHJpc3RpbmUuYWRkVmFsaWRhdG9yKCJwaG9uZSIsIGZ1bmN0aW9uKHBob25lKSB7CgovLyAJdmFyIFZhbGlkQXJlYUNvZGVzID0gWwovLyAJCTQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LAovLyAJCTUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsCi8vIAkJNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyCi8vIAldOwoKLy8gCXBob25lID0gcGhvbmUucmVwbGFjZSgvW14wLTldKy9naSwgJycpOwovLyAJaWYodHlwZW9mIGVtYWlsSGFuZGxlciE9J3VuZGVmaW5lZCcgJiYgdGhpcy5oYXNDbGFzcygncmVxdWlyZWQnKSkgewovLyAJCWVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT10cnVlOwovLyAJfQovLyAJaWYoIHBob25lWzBdID09ICcxJyApewovLyAJCXBob25lID0gcGhvbmUuc3Vic3RyaW5nKCAxICk7Ci8vIAl9CgovLyAJdmFyIGFyZWFDb2RlID0gcGFyc2VJbnQoIHBob25lLnN1YnN0cmluZygwLDMpICk7CgovLyAJYXhpb3MuZ2V0KCdodHRwczovL2F1dG9hdWJhaW5lLmNvbS9zZXJ2aWNlcy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCcsewovLyAJCXRpbWVvdXQ6MjAwMCwKLy8gCQlkYXRhVHlwZTogJ2pzb24nLAovLyAJCXBhcmFtczoge3Bob25lOiBwaG9uZX0sCi8vIAkJcmVzcG9uc2VUeXBlOiAnanNvbicKLy8gCX0pCi8vIAkudGhlbihmdW5jdGlvbihyZXMpIHsKCi8vIAkJaWYgKHR5cGVvZiByZXMuaXNPayAhPT0gJ3VuZGVmaW5lZCcpewovLyAJCQlpZiAocmVzLnBob25lTnVtYmVySXNWYWxpZCA9PT0gZmFsc2UpIHsKLy8gCQkJCS8vY29uc29sZS5sb2coJ3Bob25lICcrcGhvbmUrJyBpcyBpbnZhbGlkJyk7Ci8vIAkJCQlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJyAmJiBlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkgKSB7Ci8vIAkJCQkJZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKys7Ci8vIAkJCQl9Ci8vIAkJCQlyZXR1cm4gdHJ1ZTsKLy8gCQkJfQovLyAJCQl9IGVsc2UgewovLyAJCQkvL3ZhbGlkYXRlIGFyZWFjb2RlIGF0IGxlYXN0Ci8vIAkJCWlmKCB0eXBlb2YgVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiAhPSAndW5kZWZpbmVkJyAmJglWYWxpZEFyZWFDb2Rlcy5pbmRleE9mKCBhcmVhQ29kZSApID09IC0xICl7Ci8vIAkJCQlyZXR1cm4gZmFsc2U7Ci8vIAkJCX0KLy8gCQl9CgovLyAJfSkKLy8gCS5jYXRjaChmdW5jdGlvbihlcnJvcikgewovLyAJCS8vIHZhbGlkYXRlIGFyZWFjb2RlIGF0IGxlYXN0Ci8vIAkJaWYoIHR5cGVvZiBWYWxpZEFyZWFDb2Rlcy5pbmRleE9mICE9ICd1bmRlZmluZWQnICYmCVZhbGlkQXJlYUNvZGVzLmluZGV4T2YoIGFyZWFDb2RlICkgPT0gLTEgKXsKLy8gCQlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJwkmJiBlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkpIGVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrOwovLyAJCQlyZXR1cm4gZmFsc2U7Ci8vIAkJfQovLyAJCS8vY29uc29sZS5sb2coInZhbGlkaXR5IHZhbGlkYXRlUGhvbmVOdW1iZXIgbmV0d29yayBlcnJvciIpOwoKLy8gCQlyZXR1cm4gZmFsc2U7Ci8vIAl9KTsKCgoKLy8gfSwgIlRoZSB2YWx1ZSAoJHswfSkgbXVzdCBiZSBiZXR3ZWVuICR7MX0gYW5kICR7Mn0iLCA1LCBmYWxzZSk7Ci8qKiAvanMvdmFuaWxsYWpzL2ZsYXRwaWNrci5taW4uanMgKiovCi8qIGZsYXRwaWNrciB2NC42LjksLCBAbGljZW5zZSBNSVQgKi8KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGU9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6ZXx8c2VsZikuZmxhdHBpY2tyPXQoKX0odGhpcywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4oZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbj0xLGE9YXJndW1lbnRzLmxlbmd0aDtuPGE7bisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIHQoKXtmb3IodmFyIGU9MCx0PTAsbj1hcmd1bWVudHMubGVuZ3RoO3Q8bjt0KyspZSs9YXJndW1lbnRzW3RdLmxlbmd0aDt2YXIgYT1BcnJheShlKSxpPTA7Zm9yKHQ9MDt0PG47dCsrKWZvcih2YXIgbz1hcmd1bWVudHNbdF0scj0wLGw9by5sZW5ndGg7cjxsO3IrKyxpKyspYVtpXT1vW3JdO3JldHVybiBhfXZhciBuPVsib25DaGFuZ2UiLCJvbkNsb3NlIiwib25EYXlDcmVhdGUiLCJvbkRlc3Ryb3kiLCJvbktleURvd24iLCJvbk1vbnRoQ2hhbmdlIiwib25PcGVuIiwib25QYXJzZUNvbmZpZyIsIm9uUmVhZHkiLCJvblZhbHVlVXBkYXRlIiwib25ZZWFyQ2hhbmdlIiwib25QcmVDYWxlbmRhclBvc2l0aW9uIl0sYT17X2Rpc2FibGU6W10sYWxsb3dJbnB1dDohMSxhbGxvd0ludmFsaWRQcmVsb2FkOiExLGFsdEZvcm1hdDoiRiBqLCBZIixhbHRJbnB1dDohMSxhbHRJbnB1dENsYXNzOiJmb3JtLWNvbnRyb2wgaW5wdXQiLGFuaW1hdGU6Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJi0xPT09d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSIpLGFyaWFEYXRlRm9ybWF0OiJGIGosIFkiLGF1dG9GaWxsRGVmYXVsdFRpbWU6ITAsY2xpY2tPcGVuczohMCxjbG9zZU9uU2VsZWN0OiEwLGNvbmp1bmN0aW9uOiIsICIsZGF0ZUZvcm1hdDoiWS1tLWQiLGRlZmF1bHRIb3VyOjEyLGRlZmF1bHRNaW51dGU6MCxkZWZhdWx0U2Vjb25kczowLGRpc2FibGU6W10sZGlzYWJsZU1vYmlsZTohMSxlbmFibGVTZWNvbmRzOiExLGVuYWJsZVRpbWU6ITEsZXJyb3JIYW5kbGVyOmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKGUpfSxnZXRXZWVrOmZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBEYXRlKGUuZ2V0VGltZSgpKTt0LnNldEhvdXJzKDAsMCwwLDApLHQuc2V0RGF0ZSh0LmdldERhdGUoKSszLSh0LmdldERheSgpKzYpJTcpO3ZhciBuPW5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSwwLDQpO3JldHVybiAxK01hdGgucm91bmQoKCh0LmdldFRpbWUoKS1uLmdldFRpbWUoKSkvODY0ZTUtMysobi5nZXREYXkoKSs2KSU3KS83KX0saG91ckluY3JlbWVudDoxLGlnbm9yZWRGb2N1c0VsZW1lbnRzOltdLGlubGluZTohMSxsb2NhbGU6ImRlZmF1bHQiLG1pbnV0ZUluY3JlbWVudDo1LG1vZGU6InNpbmdsZSIsbW9udGhTZWxlY3RvclR5cGU6ImRyb3Bkb3duIixuZXh0QXJyb3c6IjxzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMTcgMTcnPjxnPjwvZz48cGF0aCBkPSdNMTMuMjA3IDguNDcybC03Ljg1NCA3Ljg1NC0wLjcwNy0wLjcwNyA3LjE0Ni03LjE0Ni03LjE0Ni03LjE0OCAwLjcwNy0wLjcwNyA3Ljg1NCA3Ljg1NHonIC8+PC9zdmc+Iixub0NhbGVuZGFyOiExLG5vdzpuZXcgRGF0ZSxvbkNoYW5nZTpbXSxvbkNsb3NlOltdLG9uRGF5Q3JlYXRlOltdLG9uRGVzdHJveTpbXSxvbktleURvd246W10sb25Nb250aENoYW5nZTpbXSxvbk9wZW46W10sb25QYXJzZUNvbmZpZzpbXSxvblJlYWR5OltdLG9uVmFsdWVVcGRhdGU6W10sb25ZZWFyQ2hhbmdlOltdLG9uUHJlQ2FsZW5kYXJQb3NpdGlvbjpbXSxwbHVnaW5zOltdLHBvc2l0aW9uOiJhdXRvIixwb3NpdGlvbkVsZW1lbnQ6dm9pZCAwLHByZXZBcnJvdzoiPHN2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAxNyAxNyc+PGc+PC9nPjxwYXRoIGQ9J001LjIwNyA4LjQ3MWw3LjE0NiA3LjE0Ny0wLjcwNyAwLjcwNy03Ljg1My03Ljg1NCA3Ljg1NC03Ljg1MyAwLjcwNyAwLjcwNy03LjE0NyA3LjE0NnonIC8+PC9zdmc+IixzaG9ydGhhbmRDdXJyZW50TW9udGg6ITEsc2hvd01vbnRoczoxLHN0YXRpYzohMSx0aW1lXzI0aHI6ITEsd2Vla051bWJlcnM6ITEsd3JhcDohMX0saT17d2Vla2RheXM6e3Nob3J0aGFuZDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGxvbmdoYW5kOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sbW9udGhzOntzaG9ydGhhbmQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxsb25naGFuZDpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LGRheXNJbk1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sZmlyc3REYXlPZldlZWs6MCxvcmRpbmFsOmZ1bmN0aW9uKGUpe3ZhciB0PWUlMTAwO2lmKHQ+MyYmdDwyMSlyZXR1cm4idGgiO3N3aXRjaCh0JTEwKXtjYXNlIDE6cmV0dXJuInN0IjtjYXNlIDI6cmV0dXJuIm5kIjtjYXNlIDM6cmV0dXJuInJkIjtkZWZhdWx0OnJldHVybiJ0aCJ9fSxyYW5nZVNlcGFyYXRvcjoiIHRvICIsd2Vla0FiYnJldmlhdGlvbjoiV2siLHNjcm9sbFRpdGxlOiJTY3JvbGwgdG8gaW5jcmVtZW50Iix0b2dnbGVUaXRsZToiQ2xpY2sgdG8gdG9nZ2xlIixhbVBNOlsiQU0iLCJQTSJdLHllYXJBcmlhTGFiZWw6IlllYXIiLG1vbnRoQXJpYUxhYmVsOiJNb250aCIsaG91ckFyaWFMYWJlbDoiSG91ciIsbWludXRlQXJpYUxhYmVsOiJNaW51dGUiLHRpbWVfMjRocjohMX0sbz1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0yKSwoIjAwMCIrZSkuc2xpY2UoLTEqdCl9LHI9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lPzE6MH07ZnVuY3Rpb24gbChlLHQpe3ZhciBuO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXM7Y2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseShhLGFyZ3VtZW50cyl9KSx0KX19dmFyIGM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBBcnJheT9lOltlXX07ZnVuY3Rpb24gZChlLHQsbil7aWYoITA9PT1uKXJldHVybiBlLmNsYXNzTGlzdC5hZGQodCk7ZS5jbGFzc0xpc3QucmVtb3ZlKHQpfWZ1bmN0aW9uIHMoZSx0LG4pe3ZhciBhPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiB0PXR8fCIiLG49bnx8IiIsYS5jbGFzc05hbWU9dCx2b2lkIDAhPT1uJiYoYS50ZXh0Q29udGVudD1uKSxhfWZ1bmN0aW9uIHUoZSl7Zm9yKDtlLmZpcnN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKX1mdW5jdGlvbiBmKGUsdCl7cmV0dXJuIHQoZSk\/ZTplLnBhcmVudE5vZGU\/ZihlLnBhcmVudE5vZGUsdCk6dm9pZCAwfWZ1bmN0aW9uIG0oZSx0KXt2YXIgbj1zKCJkaXYiLCJudW1JbnB1dFdyYXBwZXIiKSxhPXMoImlucHV0IiwibnVtSW5wdXQgIitlKSxpPXMoInNwYW4iLCJhcnJvd1VwIiksbz1zKCJzcGFuIiwiYXJyb3dEb3duIik7aWYoLTE9PT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUgOS4wIik\/YS50eXBlPSJudW1iZXIiOihhLnR5cGU9InRleHQiLGEucGF0dGVybj0iXFxkKiIpLHZvaWQgMCE9PXQpZm9yKHZhciByIGluIHQpYS5zZXRBdHRyaWJ1dGUocix0W3JdKTtyZXR1cm4gbi5hcHBlbmRDaGlsZChhKSxuLmFwcGVuZENoaWxkKGkpLG4uYXBwZW5kQ2hpbGQobyksbn1mdW5jdGlvbiBnKGUpe3RyeXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZS5jb21wb3NlZFBhdGg\/ZS5jb21wb3NlZFBhdGgoKVswXTplLnRhcmdldH1jYXRjaCh0KXtyZXR1cm4gZS50YXJnZXR9fXZhciBwPWZ1bmN0aW9uKCl7fSxoPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbi5tb250aHNbdD8ic2hvcnRoYW5kIjoibG9uZ2hhbmQiXVtlXX0sdj17RDpwLEY6ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0TW9udGgobi5tb250aHMubG9uZ2hhbmQuaW5kZXhPZih0KSl9LEc6ZnVuY3Rpb24oZSx0KXtlLnNldEhvdXJzKHBhcnNlRmxvYXQodCkpfSxIOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0sSjpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0sSzpmdW5jdGlvbihlLHQsbil7ZS5zZXRIb3VycyhlLmdldEhvdXJzKCklMTIrMTIqcihuZXcgUmVnRXhwKG4uYW1QTVsxXSwiaSIpLnRlc3QodCkpKX0sTTpmdW5jdGlvbihlLHQsbil7ZS5zZXRNb250aChuLm1vbnRocy5zaG9ydGhhbmQuaW5kZXhPZih0KSl9LFM6ZnVuY3Rpb24oZSx0KXtlLnNldFNlY29uZHMocGFyc2VGbG9hdCh0KSl9LFU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IERhdGUoMWUzKnBhcnNlRmxvYXQodCkpfSxXOmZ1bmN0aW9uKGUsdCxuKXt2YXIgYT1wYXJzZUludCh0KSxpPW5ldyBEYXRlKGUuZ2V0RnVsbFllYXIoKSwwLDIrNyooYS0xKSwwLDAsMCwwKTtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLWkuZ2V0RGF5KCkrbi5maXJzdERheU9mV2VlayksaX0sWTpmdW5jdGlvbihlLHQpe2Uuc2V0RnVsbFllYXIocGFyc2VGbG9hdCh0KSl9LFo6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IERhdGUodCl9LGQ6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LGg6ZnVuY3Rpb24oZSx0KXtlLnNldEhvdXJzKHBhcnNlRmxvYXQodCkpfSxpOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNaW51dGVzKHBhcnNlRmxvYXQodCkpfSxqOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxsOnAsbTpmdW5jdGlvbihlLHQpe2Uuc2V0TW9udGgocGFyc2VGbG9hdCh0KS0xKX0sbjpmdW5jdGlvbihlLHQpe2Uuc2V0TW9udGgocGFyc2VGbG9hdCh0KS0xKX0sczpmdW5jdGlvbihlLHQpe2Uuc2V0U2Vjb25kcyhwYXJzZUZsb2F0KHQpKX0sdTpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZShwYXJzZUZsb2F0KHQpKX0sdzpwLHk6ZnVuY3Rpb24oZSx0KXtlLnNldEZ1bGxZZWFyKDJlMytwYXJzZUZsb2F0KHQpKX19LEQ9e0Q6IihcXHcrKSIsRjoiKFxcdyspIixHOiIoXFxkXFxkfFxcZCkiLEg6IihcXGRcXGR8XFxkKSIsSjoiKFxcZFxcZHxcXGQpXFx3KyIsSzoiIixNOiIoXFx3KykiLFM6IihcXGRcXGR8XFxkKSIsVToiKC4rKSIsVzoiKFxcZFxcZHxcXGQpIixZOiIoXFxkezR9KSIsWjoiKC4rKSIsZDoiKFxcZFxcZHxcXGQpIixoOiIoXFxkXFxkfFxcZCkiLGk6IihcXGRcXGR8XFxkKSIsajoiKFxcZFxcZHxcXGQpIixsOiIoXFx3KykiLG06IihcXGRcXGR8XFxkKSIsbjoiKFxcZFxcZHxcXGQpIixzOiIoXFxkXFxkfFxcZCkiLHU6IiguKykiLHc6IihcXGRcXGR8XFxkKSIseToiKFxcZHsyfSkifSx3PXtaOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvSVNPU3RyaW5nKCl9LEQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0LndlZWtkYXlzLnNob3J0aGFuZFt3LncoZSx0LG4pXX0sRjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgody5uKGUsdCxuKS0xLCExLHQpfSxHOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbyh3LmgoZSx0LG4pKX0sSDpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldEhvdXJzKCkpfSxKOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMCE9PXQub3JkaW5hbD9lLmdldERhdGUoKSt0Lm9yZGluYWwoZS5nZXREYXRlKCkpOmUuZ2V0RGF0ZSgpfSxLOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuYW1QTVtyKGUuZ2V0SG91cnMoKT4xMSldfSxNOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGgoZS5nZXRNb250aCgpLCEwLHQpfSxTOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0U2Vjb25kcygpKX0sVTpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRUaW1lKCkvMWUzfSxXOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbi5nZXRXZWVrKGUpfSxZOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0RnVsbFllYXIoKSw0KX0sZDpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldERhdGUoKSl9LGg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0SG91cnMoKSUxMj9lLmdldEhvdXJzKCklMTI6MTJ9LGk6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRNaW51dGVzKCkpfSxqOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldERhdGUoKX0sbDpmdW5jdGlvbihlLHQpe3JldHVybiB0LndlZWtkYXlzLmxvbmdoYW5kW2UuZ2V0RGF5KCldfSxtOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0TW9udGgoKSsxKX0sbjpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRNb250aCgpKzF9LHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0U2Vjb25kcygpfSx1OmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFRpbWUoKX0sdzpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXkoKX0seTpmdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUuZ2V0RnVsbFllYXIoKSkuc3Vic3RyaW5nKDIpfX0sYj1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbmZpZyxuPXZvaWQgMD09PXQ\/YTp0LG89ZS5sMTBuLHI9dm9pZCAwPT09bz9pOm8sbD1lLmlzTW9iaWxlLGM9dm9pZCAwIT09bCYmbDtyZXR1cm4gZnVuY3Rpb24oZSx0LGEpe3ZhciBpPWF8fHI7cmV0dXJuIHZvaWQgMD09PW4uZm9ybWF0RGF0ZXx8Yz90LnNwbGl0KCIiKS5tYXAoKGZ1bmN0aW9uKHQsYSxvKXtyZXR1cm4gd1t0XSYmIlxcIiE9PW9bYS0xXT93W3RdKGUsaSxuKToiXFwiIT09dD90OiIifSkpLmpvaW4oIiIpOm4uZm9ybWF0RGF0ZShlLHQsaSl9fSxDPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29uZmlnLG49dm9pZCAwPT09dD9hOnQsbz1lLmwxMG4scj12b2lkIDA9PT1vP2k6bztyZXR1cm4gZnVuY3Rpb24oZSx0LGksbyl7aWYoMD09PWV8fGUpe3ZhciBsLGM9b3x8cixkPWU7aWYoZSBpbnN0YW5jZW9mIERhdGUpbD1uZXcgRGF0ZShlLmdldFRpbWUoKSk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIGUmJnZvaWQgMCE9PWUudG9GaXhlZClsPW5ldyBEYXRlKGUpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgcz10fHwobnx8YSkuZGF0ZUZvcm1hdCx1PVN0cmluZyhlKS50cmltKCk7aWYoInRvZGF5Ij09PXUpbD1uZXcgRGF0ZSxpPSEwO2Vsc2UgaWYoL1okLy50ZXN0KHUpfHwvR01UJC8udGVzdCh1KSlsPW5ldyBEYXRlKGUpO2Vsc2UgaWYobiYmbi5wYXJzZURhdGUpbD1uLnBhcnNlRGF0ZShlLHMpO2Vsc2V7bD1uJiZuLm5vQ2FsZW5kYXI\/bmV3IERhdGUoKG5ldyBEYXRlKS5zZXRIb3VycygwLDAsMCwwKSk6bmV3IERhdGUoKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLDAsMSwwLDAsMCwwKTtmb3IodmFyIGY9dm9pZCAwLG09W10sZz0wLHA9MCxoPSIiO2c8cy5sZW5ndGg7ZysrKXt2YXIgdz1zW2ddLGI9IlxcIj09PXcsQz0iXFwiPT09c1tnLTFdfHxiO2lmKERbd10mJiFDKXtoKz1EW3ddO3ZhciBNPW5ldyBSZWdFeHAoaCkuZXhlYyhlKTtNJiYoZj0hMCkmJm1bIlkiIT09dz8icHVzaCI6InVuc2hpZnQiXSh7Zm46dlt3XSx2YWw6TVsrK3BdfSl9ZWxzZSBifHwoaCs9Ii4iKTttLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuZm4sbj1lLnZhbDtyZXR1cm4gbD10KGwsbixjKXx8bH0pKX1sPWY\/bDp2b2lkIDB9fWlmKGwgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4obC5nZXRUaW1lKCkpKXJldHVybiEwPT09aSYmbC5zZXRIb3VycygwLDAsMCwwKSxsO24uZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiSW52YWxpZCBkYXRlIHByb3ZpZGVkOiAiK2QpKX19fTtmdW5jdGlvbiBNKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITApLCExIT09bj9uZXcgRGF0ZShlLmdldFRpbWUoKSkuc2V0SG91cnMoMCwwLDAsMCktbmV3IERhdGUodC5nZXRUaW1lKCkpLnNldEhvdXJzKDAsMCwwLDApOmUuZ2V0VGltZSgpLXQuZ2V0VGltZSgpfXZhciB5PTg2NGU1O2Z1bmN0aW9uIHgoZSl7dmFyIHQ9ZS5kZWZhdWx0SG91cixuPWUuZGVmYXVsdE1pbnV0ZSxhPWUuZGVmYXVsdFNlY29uZHM7aWYodm9pZCAwIT09ZS5taW5EYXRlKXt2YXIgaT1lLm1pbkRhdGUuZ2V0SG91cnMoKSxvPWUubWluRGF0ZS5nZXRNaW51dGVzKCkscj1lLm1pbkRhdGUuZ2V0U2Vjb25kcygpO3Q8aSYmKHQ9aSksdD09PWkmJm48byYmKG49byksdD09PWkmJm49PT1vJiZhPHImJihhPWUubWluRGF0ZS5nZXRTZWNvbmRzKCkpfWlmKHZvaWQgMCE9PWUubWF4RGF0ZSl7dmFyIGw9ZS5tYXhEYXRlLmdldEhvdXJzKCksYz1lLm1heERhdGUuZ2V0TWludXRlcygpOyh0PU1hdGgubWluKHQsbCkpPT09bCYmKG49TWF0aC5taW4oYyxuKSksdD09PWwmJm49PT1jJiYoYT1lLm1heERhdGUuZ2V0U2Vjb25kcygpKX1yZXR1cm57aG91cnM6dCxtaW51dGVzOm4sc2Vjb25kczphfX0iZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmFzc2lnbiYmKE9iamVjdC5hc3NpZ249ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbi0xXT1hcmd1bWVudHNbbl07aWYoIWUpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QiKTtmb3IodmFyIGE9ZnVuY3Rpb24odCl7dCYmT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24obil7cmV0dXJuIGVbbl09dFtuXX0pKX0saT0wLG89dDtpPG8ubGVuZ3RoO2krKyl7dmFyIHI9b1tpXTthKHIpfXJldHVybiBlfSk7ZnVuY3Rpb24gRShwLHYpe3ZhciB3PXtjb25maWc6ZShlKHt9LGEpLFQuZGVmYXVsdENvbmZpZyksbDEwbjppfTtmdW5jdGlvbiBFKGUpe3JldHVybiBlLmJpbmQodyl9ZnVuY3Rpb24gaygpe3ZhciBlPXcuY29uZmlnOyExPT09ZS53ZWVrTnVtYmVycyYmMT09PWUuc2hvd01vbnRoc3x8ITAhPT1lLm5vQ2FsZW5kYXImJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7aWYodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lciYmKHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIiksdm9pZCAwIT09dy5kYXlzQ29udGFpbmVyKXt2YXIgdD0ody5kYXlzLm9mZnNldFdpZHRoKzEpKmUuc2hvd01vbnRoczt3LmRheXNDb250YWluZXIuc3R5bGUud2lkdGg9dCsicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUud2lkdGg9dCsodm9pZCAwIT09dy53ZWVrV3JhcHBlcj93LndlZWtXcmFwcGVyLm9mZnNldFdpZHRoOjApKyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidmlzaWJpbGl0eSIpLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoImRpc3BsYXkiKX19KSl9ZnVuY3Rpb24gSShlKXtpZigwPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCl7dmFyIHQ9dm9pZCAwPT09dy5jb25maWcubWluRGF0ZXx8TShuZXcgRGF0ZSx3LmNvbmZpZy5taW5EYXRlKT49MD9uZXcgRGF0ZTpuZXcgRGF0ZSh3LmNvbmZpZy5taW5EYXRlLmdldFRpbWUoKSksbj14KHcuY29uZmlnKTt0LnNldEhvdXJzKG4uaG91cnMsbi5taW51dGVzLG4uc2Vjb25kcyx0LmdldE1pbGxpc2Vjb25kcygpKSx3LnNlbGVjdGVkRGF0ZXM9W3RdLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXR9dm9pZCAwIT09ZSYmImJsdXIiIT09ZS50eXBlJiZmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ImtleWRvd24iPT09ZS50eXBlLG49ZyhlKSxhPW47dm9pZCAwIT09dy5hbVBNJiZuPT09dy5hbVBNJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3Iody5hbVBNLnRleHRDb250ZW50PT09dy5sMTBuLmFtUE1bMF0pXSk7dmFyIGk9cGFyc2VGbG9hdChhLmdldEF0dHJpYnV0ZSgibWluIikpLGw9cGFyc2VGbG9hdChhLmdldEF0dHJpYnV0ZSgibWF4IikpLGM9cGFyc2VGbG9hdChhLmdldEF0dHJpYnV0ZSgic3RlcCIpKSxkPXBhcnNlSW50KGEudmFsdWUsMTApLHM9ZS5kZWx0YXx8KHQ\/Mzg9PT1lLndoaWNoPzE6LTE6MCksdT1kK2MqcztpZih2b2lkIDAhPT1hLnZhbHVlJiYyPT09YS52YWx1ZS5sZW5ndGgpe3ZhciBmPWE9PT13LmhvdXJFbGVtZW50LG09YT09PXcubWludXRlRWxlbWVudDt1PGk\/KHU9bCt1K3IoIWYpKyhyKGYpJiZyKCF3LmFtUE0pKSxtJiZqKHZvaWQgMCwtMSx3LmhvdXJFbGVtZW50KSk6dT5sJiYodT1hPT09dy5ob3VyRWxlbWVudD91LWwtcighdy5hbVBNKTppLG0mJmoodm9pZCAwLDEsdy5ob3VyRWxlbWVudCkpLHcuYW1QTSYmZiYmKDE9PT1jP3UrZD09PTIzOk1hdGguYWJzKHUtZCk+YykmJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcih3LmFtUE0udGV4dENvbnRlbnQ9PT13LmwxMG4uYW1QTVswXSldKSxhLnZhbHVlPW8odSl9fShlKTt2YXIgYT13Ll9pbnB1dC52YWx1ZTtTKCksYmUoKSx3Ll9pbnB1dC52YWx1ZSE9PWEmJncuX2RlYm91bmNlZENoYW5nZSgpfWZ1bmN0aW9uIFMoKXtpZih2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ2b2lkIDAhPT13Lm1pbnV0ZUVsZW1lbnQpe3ZhciBlLHQsbj0ocGFyc2VJbnQody5ob3VyRWxlbWVudC52YWx1ZS5zbGljZSgtMiksMTApfHwwKSUyNCxhPShwYXJzZUludCh3Lm1pbnV0ZUVsZW1lbnQudmFsdWUsMTApfHwwKSU2MCxpPXZvaWQgMCE9PXcuc2Vjb25kRWxlbWVudD8ocGFyc2VJbnQody5zZWNvbmRFbGVtZW50LnZhbHVlLDEwKXx8MCklNjA6MDt2b2lkIDAhPT13LmFtUE0mJihlPW4sdD13LmFtUE0udGV4dENvbnRlbnQsbj1lJTEyKzEyKnIodD09PXcubDEwbi5hbVBNWzFdKSk7dmFyIG89dm9pZCAwIT09dy5jb25maWcubWluVGltZXx8dy5jb25maWcubWluRGF0ZSYmdy5taW5EYXRlSGFzVGltZSYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmomJjA9PT1NKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcuY29uZmlnLm1pbkRhdGUsITApO2lmKHZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWV8fHcuY29uZmlnLm1heERhdGUmJncubWF4RGF0ZUhhc1RpbWUmJncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiYwPT09TSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3LmNvbmZpZy5tYXhEYXRlLCEwKSl7dmFyIGw9dm9pZCAwIT09dy5jb25maWcubWF4VGltZT93LmNvbmZpZy5tYXhUaW1lOncuY29uZmlnLm1heERhdGU7KG49TWF0aC5taW4obixsLmdldEhvdXJzKCkpKT09PWwuZ2V0SG91cnMoKSYmKGE9TWF0aC5taW4oYSxsLmdldE1pbnV0ZXMoKSkpLGE9PT1sLmdldE1pbnV0ZXMoKSYmKGk9TWF0aC5taW4oaSxsLmdldFNlY29uZHMoKSkpfWlmKG8pe3ZhciBjPXZvaWQgMCE9PXcuY29uZmlnLm1pblRpbWU\/dy5jb25maWcubWluVGltZTp3LmNvbmZpZy5taW5EYXRlOyhuPU1hdGgubWF4KG4sYy5nZXRIb3VycygpKSk9PT1jLmdldEhvdXJzKCkmJmE8Yy5nZXRNaW51dGVzKCkmJihhPWMuZ2V0TWludXRlcygpKSxhPT09Yy5nZXRNaW51dGVzKCkmJihpPU1hdGgubWF4KGksYy5nZXRTZWNvbmRzKCkpKX1PKG4sYSxpKX19ZnVuY3Rpb24gXyhlKXt2YXIgdD1lfHx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iajt0JiZPKHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSl9ZnVuY3Rpb24gTyhlLHQsbil7dm9pZCAwIT09dy5sYXRlc3RTZWxlY3RlZERhdGVPYmomJncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLnNldEhvdXJzKGUlMjQsdCxufHwwLDApLHcuaG91ckVsZW1lbnQmJncubWludXRlRWxlbWVudCYmIXcuaXNNb2JpbGUmJih3LmhvdXJFbGVtZW50LnZhbHVlPW8ody5jb25maWcudGltZV8yNGhyP2U6KDEyK2UpJTEyKzEyKnIoZSUxMj09MCkpLHcubWludXRlRWxlbWVudC52YWx1ZT1vKHQpLHZvaWQgMCE9PXcuYW1QTSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKGU+PTEyKV0pLHZvaWQgMCE9PXcuc2Vjb25kRWxlbWVudCYmKHcuc2Vjb25kRWxlbWVudC52YWx1ZT1vKG4pKSl9ZnVuY3Rpb24gRihlKXt2YXIgdD1nKGUpLG49cGFyc2VJbnQodC52YWx1ZSkrKGUuZGVsdGF8fDApOyhuLzFlMz4xfHwiRW50ZXIiPT09ZS5rZXkmJiEvW15cZF0vLnRlc3Qobi50b1N0cmluZygpKSkmJlEobil9ZnVuY3Rpb24gQShlLHQsbixhKXtyZXR1cm4gdCBpbnN0YW5jZW9mIEFycmF5P3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIEEoZSx0LG4sYSl9KSk6ZSBpbnN0YW5jZW9mIEFycmF5P2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIEEoZSx0LG4sYSl9KSk6KGUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sYSksdm9pZCB3Ll9oYW5kbGVycy5wdXNoKHtyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9fSkpfWZ1bmN0aW9uIE4oKXtwZSgib25DaGFuZ2UiKX1mdW5jdGlvbiBQKGUsdCl7dmFyIG49dm9pZCAwIT09ZT93LnBhcnNlRGF0ZShlKTp3LmxhdGVzdFNlbGVjdGVkRGF0ZU9ianx8KHcuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGU+dy5ub3c\/dy5jb25maWcubWluRGF0ZTp3LmNvbmZpZy5tYXhEYXRlJiZ3LmNvbmZpZy5tYXhEYXRlPHcubm93P3cuY29uZmlnLm1heERhdGU6dy5ub3cpLGE9dy5jdXJyZW50WWVhcixpPXcuY3VycmVudE1vbnRoO3RyeXt2b2lkIDAhPT1uJiYody5jdXJyZW50WWVhcj1uLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9bi5nZXRNb250aCgpKX1jYXRjaChlKXtlLm1lc3NhZ2U9IkludmFsaWQgZGF0ZSBzdXBwbGllZDogIituLHcuY29uZmlnLmVycm9ySGFuZGxlcihlKX10JiZ3LmN1cnJlbnRZZWFyIT09YSYmKHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLCF0fHx3LmN1cnJlbnRZZWFyPT09YSYmdy5jdXJyZW50TW9udGg9PT1pfHxwZSgib25Nb250aENoYW5nZSIpLHcucmVkcmF3KCl9ZnVuY3Rpb24gWShlKXt2YXIgdD1nKGUpO350LmNsYXNzTmFtZS5pbmRleE9mKCJhcnJvdyIpJiZqKGUsdC5jbGFzc0xpc3QuY29udGFpbnMoImFycm93VXAiKT8xOi0xKX1mdW5jdGlvbiBqKGUsdCxuKXt2YXIgYT1lJiZnKGUpLGk9bnx8YSYmYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxvPWhlKCJpbmNyZW1lbnQiKTtvLmRlbHRhPXQsaSYmaS5kaXNwYXRjaEV2ZW50KG8pfWZ1bmN0aW9uIEgoZSx0LG4sYSl7dmFyIGk9WCh0LCEwKSxvPXMoInNwYW4iLCJmbGF0cGlja3ItZGF5ICIrZSx0LmdldERhdGUoKS50b1N0cmluZygpKTtyZXR1cm4gby5kYXRlT2JqPXQsby4kaT1hLG8uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix3LmZvcm1hdERhdGUodCx3LmNvbmZpZy5hcmlhRGF0ZUZvcm1hdCkpLC0xPT09ZS5pbmRleE9mKCJoaWRkZW4iKSYmMD09PU0odCx3Lm5vdykmJih3LnRvZGF5RGF0ZUVsZW09byxvLmNsYXNzTGlzdC5hZGQoInRvZGF5Iiksby5zZXRBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIsImRhdGUiKSksaT8oby50YWJJbmRleD0tMSx2ZSh0KSYmKG8uY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKSx3LnNlbGVjdGVkRGF0ZUVsZW09bywicmFuZ2UiPT09dy5jb25maWcubW9kZSYmKGQobywic3RhcnRSYW5nZSIsdy5zZWxlY3RlZERhdGVzWzBdJiYwPT09TSh0LHcuc2VsZWN0ZWREYXRlc1swXSwhMCkpLGQobywiZW5kUmFuZ2UiLHcuc2VsZWN0ZWREYXRlc1sxXSYmMD09PU0odCx3LnNlbGVjdGVkRGF0ZXNbMV0sITApKSwibmV4dE1vbnRoRGF5Ij09PWUmJm8uY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpKSkpOm8uY2xhc3NMaXN0LmFkZCgiZmxhdHBpY2tyLWRpc2FibGVkIiksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmZ1bmN0aW9uKGUpe3JldHVybiEoInJhbmdlIiE9PXcuY29uZmlnLm1vZGV8fHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg8MikmJihNKGUsdy5zZWxlY3RlZERhdGVzWzBdKT49MCYmTShlLHcuc2VsZWN0ZWREYXRlc1sxXSk8PTApfSh0KSYmIXZlKHQpJiZvLmNsYXNzTGlzdC5hZGQoImluUmFuZ2UiKSx3LndlZWtOdW1iZXJzJiYxPT09dy5jb25maWcuc2hvd01vbnRocyYmInByZXZNb250aERheSIhPT1lJiZuJTc9PTEmJncud2Vla051bWJlcnMuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCI8c3BhbiBjbGFzcz0nZmxhdHBpY2tyLWRheSc+Iit3LmNvbmZpZy5nZXRXZWVrKHQpKyI8L3NwYW4+IikscGUoIm9uRGF5Q3JlYXRlIixvKSxvfWZ1bmN0aW9uIEwoZSl7ZS5mb2N1cygpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZhZShlKX1mdW5jdGlvbiBXKGUpe2Zvcih2YXIgdD1lPjA\/MDp3LmNvbmZpZy5zaG93TW9udGhzLTEsbj1lPjA\/dy5jb25maWcuc2hvd01vbnRoczotMSxhPXQ7YSE9bjthKz1lKWZvcih2YXIgaT13LmRheXNDb250YWluZXIuY2hpbGRyZW5bYV0sbz1lPjA\/MDppLmNoaWxkcmVuLmxlbmd0aC0xLHI9ZT4wP2kuY2hpbGRyZW4ubGVuZ3RoOi0xLGw9bztsIT1yO2wrPWUpe3ZhciBjPWkuY2hpbGRyZW5bbF07aWYoLTE9PT1jLmNsYXNzTmFtZS5pbmRleE9mKCJoaWRkZW4iKSYmWChjLmRhdGVPYmopKXJldHVybiBjfX1mdW5jdGlvbiBSKGUsdCl7dmFyIG49ZWUoZG9jdW1lbnQuYWN0aXZlRWxlbWVudHx8ZG9jdW1lbnQuYm9keSksYT12b2lkIDAhPT1lP2U6bj9kb2N1bWVudC5hY3RpdmVFbGVtZW50OnZvaWQgMCE9PXcuc2VsZWN0ZWREYXRlRWxlbSYmZWUody5zZWxlY3RlZERhdGVFbGVtKT93LnNlbGVjdGVkRGF0ZUVsZW06dm9pZCAwIT09dy50b2RheURhdGVFbGVtJiZlZSh3LnRvZGF5RGF0ZUVsZW0pP3cudG9kYXlEYXRlRWxlbTpXKHQ+MD8xOi0xKTt2b2lkIDA9PT1hP3cuX2lucHV0LmZvY3VzKCk6bj9mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0tMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoIk1vbnRoIik\/ZS5kYXRlT2JqLmdldE1vbnRoKCk6dy5jdXJyZW50TW9udGgsYT10PjA\/dy5jb25maWcuc2hvd01vbnRoczotMSxpPXQ+MD8xOi0xLG89bi13LmN1cnJlbnRNb250aDtvIT1hO28rPWkpZm9yKHZhciByPXcuZGF5c0NvbnRhaW5lci5jaGlsZHJlbltvXSxsPW4tdy5jdXJyZW50TW9udGg9PT1vP2UuJGkrdDp0PDA\/ci5jaGlsZHJlbi5sZW5ndGgtMTowLGM9ci5jaGlsZHJlbi5sZW5ndGgsZD1sO2Q+PTAmJmQ8YyYmZCE9KHQ+MD9jOi0xKTtkKz1pKXt2YXIgcz1yLmNoaWxkcmVuW2RdO2lmKC0xPT09cy5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJlgocy5kYXRlT2JqKSYmTWF0aC5hYnMoZS4kaS1kKT49TWF0aC5hYnModCkpcmV0dXJuIEwocyl9dy5jaGFuZ2VNb250aChpKSxSKFcoaSksMCl9KGEsdCk6TChhKX1mdW5jdGlvbiBCKGUsdCl7Zm9yKHZhciBuPShuZXcgRGF0ZShlLHQsMSkuZ2V0RGF5KCktdy5sMTBuLmZpcnN0RGF5T2ZXZWVrKzcpJTcsYT13LnV0aWxzLmdldERheXNJbk1vbnRoKCh0LTErMTIpJTEyLGUpLGk9dy51dGlscy5nZXREYXlzSW5Nb250aCh0LGUpLG89d2luZG93LmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxyPXcuY29uZmlnLnNob3dNb250aHM+MSxsPXI\/InByZXZNb250aERheSBoaWRkZW4iOiJwcmV2TW9udGhEYXkiLGM9cj8ibmV4dE1vbnRoRGF5IGhpZGRlbiI6Im5leHRNb250aERheSIsZD1hKzEtbix1PTA7ZDw9YTtkKyssdSsrKW8uYXBwZW5kQ2hpbGQoSChsLG5ldyBEYXRlKGUsdC0xLGQpLGQsdSkpO2ZvcihkPTE7ZDw9aTtkKyssdSsrKW8uYXBwZW5kQ2hpbGQoSCgiIixuZXcgRGF0ZShlLHQsZCksZCx1KSk7Zm9yKHZhciBmPWkrMTtmPD00Mi1uJiYoMT09PXcuY29uZmlnLnNob3dNb250aHN8fHUlNyE9MCk7ZisrLHUrKylvLmFwcGVuZENoaWxkKEgoYyxuZXcgRGF0ZShlLHQrMSxmJWkpLGYsdSkpO3ZhciBtPXMoImRpdiIsImRheUNvbnRhaW5lciIpO3JldHVybiBtLmFwcGVuZENoaWxkKG8pLG19ZnVuY3Rpb24gSigpe2lmKHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lcil7dSh3LmRheXNDb250YWluZXIpLHcud2Vla051bWJlcnMmJnUody53ZWVrTnVtYmVycyk7Zm9yKHZhciBlPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx0PTA7dDx3LmNvbmZpZy5zaG93TW9udGhzO3QrKyl7dmFyIG49bmV3IERhdGUody5jdXJyZW50WWVhcix3LmN1cnJlbnRNb250aCwxKTtuLnNldE1vbnRoKHcuY3VycmVudE1vbnRoK3QpLGUuYXBwZW5kQ2hpbGQoQihuLmdldEZ1bGxZZWFyKCksbi5nZXRNb250aCgpKSl9dy5kYXlzQ29udGFpbmVyLmFwcGVuZENoaWxkKGUpLHcuZGF5cz13LmRheXNDb250YWluZXIuZmlyc3RDaGlsZCwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJmFlKCl9fWZ1bmN0aW9uIEsoKXtpZighKHcuY29uZmlnLnNob3dNb250aHM+MXx8ImRyb3Bkb3duIiE9PXcuY29uZmlnLm1vbnRoU2VsZWN0b3JUeXBlKSl7dmFyIGU9ZnVuY3Rpb24oZSl7cmV0dXJuISh2b2lkIDAhPT13LmNvbmZpZy5taW5EYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpJiZlPHcuY29uZmlnLm1pbkRhdGUuZ2V0TW9udGgoKSkmJiEodm9pZCAwIT09dy5jb25maWcubWF4RGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSYmZT53LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCkpfTt3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnRhYkluZGV4PS0xLHcubW9udGhzRHJvcGRvd25Db250YWluZXIuaW5uZXJIVE1MPSIiO2Zvcih2YXIgdD0wO3Q8MTI7dCsrKWlmKGUodCkpe3ZhciBuPXMoIm9wdGlvbiIsImZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoIik7bi52YWx1ZT1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHQpLmdldE1vbnRoKCkudG9TdHJpbmcoKSxuLnRleHRDb250ZW50PWgodCx3LmNvbmZpZy5zaG9ydGhhbmRDdXJyZW50TW9udGgsdy5sMTBuKSxuLnRhYkluZGV4PS0xLHcuY3VycmVudE1vbnRoPT09dCYmKG4uc2VsZWN0ZWQ9ITApLHcubW9udGhzRHJvcGRvd25Db250YWluZXIuYXBwZW5kQ2hpbGQobil9fX1mdW5jdGlvbiBVKCl7dmFyIGUsdD1zKCJkaXYiLCJmbGF0cGlja3ItbW9udGgiKSxuPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7dy5jb25maWcuc2hvd01vbnRocz4xfHwic3RhdGljIj09PXcuY29uZmlnLm1vbnRoU2VsZWN0b3JUeXBlP2U9cygic3BhbiIsImN1ci1tb250aCIpOih3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyPXMoInNlbGVjdCIsImZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyIpLHcubW9udGhzRHJvcGRvd25Db250YWluZXIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix3LmwxMG4ubW9udGhBcmlhTGFiZWwpLEEody5tb250aHNEcm9wZG93bkNvbnRhaW5lciwiY2hhbmdlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZyhlKSxuPXBhcnNlSW50KHQudmFsdWUsMTApO3cuY2hhbmdlTW9udGgobi13LmN1cnJlbnRNb250aCkscGUoIm9uTW9udGhDaGFuZ2UiKX0pKSxLKCksZT13Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyKTt2YXIgYT1tKCJjdXIteWVhciIse3RhYmluZGV4OiItMSJ9KSxpPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07aS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcubDEwbi55ZWFyQXJpYUxhYmVsKSx3LmNvbmZpZy5taW5EYXRlJiZpLnNldEF0dHJpYnV0ZSgibWluIix3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSksdy5jb25maWcubWF4RGF0ZSYmKGkuc2V0QXR0cmlidXRlKCJtYXgiLHcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpKSxpLmRpc2FibGVkPSEhdy5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpKTt2YXIgbz1zKCJkaXYiLCJmbGF0cGlja3ItY3VycmVudC1tb250aCIpO3JldHVybiBvLmFwcGVuZENoaWxkKGUpLG8uYXBwZW5kQ2hpbGQoYSksbi5hcHBlbmRDaGlsZChvKSx0LmFwcGVuZENoaWxkKG4pLHtjb250YWluZXI6dCx5ZWFyRWxlbWVudDppLG1vbnRoRWxlbWVudDplfX1mdW5jdGlvbiBxKCl7dSh3Lm1vbnRoTmF2KSx3Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHcucHJldk1vbnRoTmF2KSx3LmNvbmZpZy5zaG93TW9udGhzJiYody55ZWFyRWxlbWVudHM9W10sdy5tb250aEVsZW1lbnRzPVtdKTtmb3IodmFyIGU9dy5jb25maWcuc2hvd01vbnRocztlLS07KXt2YXIgdD1VKCk7dy55ZWFyRWxlbWVudHMucHVzaCh0LnllYXJFbGVtZW50KSx3Lm1vbnRoRWxlbWVudHMucHVzaCh0Lm1vbnRoRWxlbWVudCksdy5tb250aE5hdi5hcHBlbmRDaGlsZCh0LmNvbnRhaW5lcil9dy5tb250aE5hdi5hcHBlbmRDaGlsZCh3Lm5leHRNb250aE5hdil9ZnVuY3Rpb24gJCgpe3cud2Vla2RheUNvbnRhaW5lcj91KHcud2Vla2RheUNvbnRhaW5lcik6dy53ZWVrZGF5Q29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci13ZWVrZGF5cyIpO2Zvcih2YXIgZT13LmNvbmZpZy5zaG93TW9udGhzO2UtLTspe3ZhciB0PXMoImRpdiIsImZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVyIik7dy53ZWVrZGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKHQpfXJldHVybiB6KCksdy53ZWVrZGF5Q29udGFpbmVyfWZ1bmN0aW9uIHooKXtpZih3LndlZWtkYXlDb250YWluZXIpe3ZhciBlPXcubDEwbi5maXJzdERheU9mV2VlayxuPXQody5sMTBuLndlZWtkYXlzLnNob3J0aGFuZCk7ZT4wJiZlPG4ubGVuZ3RoJiYobj10KG4uc3BsaWNlKGUsbi5sZW5ndGgpLG4uc3BsaWNlKDAsZSkpKTtmb3IodmFyIGE9dy5jb25maWcuc2hvd01vbnRoczthLS07KXcud2Vla2RheUNvbnRhaW5lci5jaGlsZHJlblthXS5pbm5lckhUTUw9IlxuICAgICAgPHNwYW4gY2xhc3M9J2ZsYXRwaWNrci13ZWVrZGF5Jz5cbiAgICAgICAgIituLmpvaW4oIjwvc3Bhbj48c3BhbiBjbGFzcz0nZmxhdHBpY2tyLXdlZWtkYXknPiIpKyJcbiAgICAgIDwvc3Bhbj5cbiAgICAgICJ9fWZ1bmN0aW9uIEcoZSx0KXt2b2lkIDA9PT10JiYodD0hMCk7dmFyIG49dD9lOmUtdy5jdXJyZW50TW9udGg7bjwwJiYhMD09PXcuX2hpZGVQcmV2TW9udGhBcnJvd3x8bj4wJiYhMD09PXcuX2hpZGVOZXh0TW9udGhBcnJvd3x8KHcuY3VycmVudE1vbnRoKz1uLCh3LmN1cnJlbnRNb250aDwwfHx3LmN1cnJlbnRNb250aD4xMSkmJih3LmN1cnJlbnRZZWFyKz13LmN1cnJlbnRNb250aD4xMT8xOi0xLHcuY3VycmVudE1vbnRoPSh3LmN1cnJlbnRNb250aCsxMiklMTIscGUoIm9uWWVhckNoYW5nZSIpLEsoKSksSigpLHBlKCJvbk1vbnRoQ2hhbmdlIiksRGUoKSl9ZnVuY3Rpb24gVihlKXtyZXR1cm4hKCF3LmNvbmZpZy5hcHBlbmRUb3x8IXcuY29uZmlnLmFwcGVuZFRvLmNvbnRhaW5zKGUpKXx8dy5jYWxlbmRhckNvbnRhaW5lci5jb250YWlucyhlKX1mdW5jdGlvbiBaKGUpe2lmKHcuaXNPcGVuJiYhdy5jb25maWcuaW5saW5lKXt2YXIgdD1nKGUpLG49Vih0KSxhPXQ9PT13LmlucHV0fHx0PT09dy5hbHRJbnB1dHx8dy5lbGVtZW50LmNvbnRhaW5zKHQpfHxlLnBhdGgmJmUucGF0aC5pbmRleE9mJiYofmUucGF0aC5pbmRleE9mKHcuaW5wdXQpfHx+ZS5wYXRoLmluZGV4T2Yody5hbHRJbnB1dCkpLGk9ImJsdXIiPT09ZS50eXBlP2EmJmUucmVsYXRlZFRhcmdldCYmIVYoZS5yZWxhdGVkVGFyZ2V0KTohYSYmIW4mJiFWKGUucmVsYXRlZFRhcmdldCksbz0hdy5jb25maWcuaWdub3JlZEZvY3VzRWxlbWVudHMuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModCl9KSk7aSYmbyYmKHZvaWQgMCE9PXcudGltZUNvbnRhaW5lciYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50JiYiIiE9PXcuaW5wdXQudmFsdWUmJnZvaWQgMCE9PXcuaW5wdXQudmFsdWUmJkkoKSx3LmNsb3NlKCksdy5jb25maWcmJiJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmKHcuY2xlYXIoITEpLHcucmVkcmF3KCkpKX19ZnVuY3Rpb24gUShlKXtpZighKCFlfHx3LmNvbmZpZy5taW5EYXRlJiZlPHcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKXx8dy5jb25maWcubWF4RGF0ZSYmZT53LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpKXt2YXIgdD1lLG49dy5jdXJyZW50WWVhciE9PXQ7dy5jdXJyZW50WWVhcj10fHx3LmN1cnJlbnRZZWFyLHcuY29uZmlnLm1heERhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk\/dy5jdXJyZW50TW9udGg9TWF0aC5taW4ody5jb25maWcubWF4RGF0ZS5nZXRNb250aCgpLHcuY3VycmVudE1vbnRoKTp3LmNvbmZpZy5taW5EYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpJiYody5jdXJyZW50TW9udGg9TWF0aC5tYXgody5jb25maWcubWluRGF0ZS5nZXRNb250aCgpLHcuY3VycmVudE1vbnRoKSksbiYmKHcucmVkcmF3KCkscGUoIm9uWWVhckNoYW5nZSIpLEsoKSl9fWZ1bmN0aW9uIFgoZSx0KXt2YXIgbjt2b2lkIDA9PT10JiYodD0hMCk7dmFyIGE9dy5wYXJzZURhdGUoZSx2b2lkIDAsdCk7aWYody5jb25maWcubWluRGF0ZSYmYSYmTShhLHcuY29uZmlnLm1pbkRhdGUsdm9pZCAwIT09dD90OiF3Lm1pbkRhdGVIYXNUaW1lKTwwfHx3LmNvbmZpZy5tYXhEYXRlJiZhJiZNKGEsdy5jb25maWcubWF4RGF0ZSx2b2lkIDAhPT10P3Q6IXcubWF4RGF0ZUhhc1RpbWUpPjApcmV0dXJuITE7aWYoIXcuY29uZmlnLmVuYWJsZSYmMD09PXcuY29uZmlnLmRpc2FibGUubGVuZ3RoKXJldHVybiEwO2lmKHZvaWQgMD09PWEpcmV0dXJuITE7Zm9yKHZhciBpPSEhdy5jb25maWcuZW5hYmxlLG89bnVsbCE9PShuPXcuY29uZmlnLmVuYWJsZSkmJnZvaWQgMCE9PW4\/bjp3LmNvbmZpZy5kaXNhYmxlLHI9MCxsPXZvaWQgMDtyPG8ubGVuZ3RoO3IrKyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mKGw9b1tyXSkmJmwoYSkpcmV0dXJuIGk7aWYobCBpbnN0YW5jZW9mIERhdGUmJnZvaWQgMCE9PWEmJmwuZ2V0VGltZSgpPT09YS5nZXRUaW1lKCkpcmV0dXJuIGk7aWYoInN0cmluZyI9PXR5cGVvZiBsKXt2YXIgYz13LnBhcnNlRGF0ZShsLHZvaWQgMCwhMCk7cmV0dXJuIGMmJmMuZ2V0VGltZSgpPT09YS5nZXRUaW1lKCk\/aTohaX1pZigib2JqZWN0Ij09dHlwZW9mIGwmJnZvaWQgMCE9PWEmJmwuZnJvbSYmbC50byYmYS5nZXRUaW1lKCk+PWwuZnJvbS5nZXRUaW1lKCkmJmEuZ2V0VGltZSgpPD1sLnRvLmdldFRpbWUoKSlyZXR1cm4gaX1yZXR1cm4haX1mdW5jdGlvbiBlZShlKXtyZXR1cm4gdm9pZCAwIT09dy5kYXlzQ29udGFpbmVyJiYoLTE9PT1lLmNsYXNzTmFtZS5pbmRleE9mKCJoaWRkZW4iKSYmLTE9PT1lLmNsYXNzTmFtZS5pbmRleE9mKCJmbGF0cGlja3ItZGlzYWJsZWQiKSYmdy5kYXlzQ29udGFpbmVyLmNvbnRhaW5zKGUpKX1mdW5jdGlvbiB0ZShlKXshKGUudGFyZ2V0PT09dy5faW5wdXQpfHwhKHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MHx8dy5faW5wdXQudmFsdWUubGVuZ3RoPjApfHxlLnJlbGF0ZWRUYXJnZXQmJlYoZS5yZWxhdGVkVGFyZ2V0KXx8dy5zZXREYXRlKHcuX2lucHV0LnZhbHVlLCEwLGUudGFyZ2V0PT09dy5hbHRJbnB1dD93LmNvbmZpZy5hbHRGb3JtYXQ6dy5jb25maWcuZGF0ZUZvcm1hdCl9ZnVuY3Rpb24gbmUoZSl7dmFyIHQ9ZyhlKSxuPXcuY29uZmlnLndyYXA\/cC5jb250YWlucyh0KTp0PT09dy5faW5wdXQsYT13LmNvbmZpZy5hbGxvd0lucHV0LGk9dy5pc09wZW4mJighYXx8IW4pLG89dy5jb25maWcuaW5saW5lJiZuJiYhYTtpZigxMz09PWUua2V5Q29kZSYmbil7aWYoYSlyZXR1cm4gdy5zZXREYXRlKHcuX2lucHV0LnZhbHVlLCEwLHQ9PT13LmFsdElucHV0P3cuY29uZmlnLmFsdEZvcm1hdDp3LmNvbmZpZy5kYXRlRm9ybWF0KSx0LmJsdXIoKTt3Lm9wZW4oKX1lbHNlIGlmKFYodCl8fGl8fG8pe3ZhciByPSEhdy50aW1lQ29udGFpbmVyJiZ3LnRpbWVDb250YWluZXIuY29udGFpbnModCk7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSAxMzpyPyhlLnByZXZlbnREZWZhdWx0KCksSSgpLHNlKCkpOnVlKGUpO2JyZWFrO2Nhc2UgMjc6ZS5wcmV2ZW50RGVmYXVsdCgpLHNlKCk7YnJlYWs7Y2FzZSA4OmNhc2UgNDY6biYmIXcuY29uZmlnLmFsbG93SW5wdXQmJihlLnByZXZlbnREZWZhdWx0KCksdy5jbGVhcigpKTticmVhaztjYXNlIDM3OmNhc2UgMzk6aWYocnx8bil3LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCk7ZWxzZSBpZihlLnByZXZlbnREZWZhdWx0KCksdm9pZCAwIT09dy5kYXlzQ29udGFpbmVyJiYoITE9PT1hfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZlZShkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkpe3ZhciBsPTM5PT09ZS5rZXlDb2RlPzE6LTE7ZS5jdHJsS2V5PyhlLnN0b3BQcm9wYWdhdGlvbigpLEcobCksUihXKDEpLDApKTpSKHZvaWQgMCxsKX1icmVhaztjYXNlIDM4OmNhc2UgNDA6ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBjPTQwPT09ZS5rZXlDb2RlPzE6LTE7dy5kYXlzQ29udGFpbmVyJiZ2b2lkIDAhPT10LiRpfHx0PT09dy5pbnB1dHx8dD09PXcuYWx0SW5wdXQ\/ZS5jdHJsS2V5PyhlLnN0b3BQcm9wYWdhdGlvbigpLFEody5jdXJyZW50WWVhci1jKSxSKFcoMSksMCkpOnJ8fFIodm9pZCAwLDcqYyk6dD09PXcuY3VycmVudFllYXJFbGVtZW50P1Eody5jdXJyZW50WWVhci1jKTp3LmNvbmZpZy5lbmFibGVUaW1lJiYoIXImJncuaG91ckVsZW1lbnQmJncuaG91ckVsZW1lbnQuZm9jdXMoKSxJKGUpLHcuX2RlYm91bmNlZENoYW5nZSgpKTticmVhaztjYXNlIDk6aWYocil7dmFyIGQ9W3cuaG91ckVsZW1lbnQsdy5taW51dGVFbGVtZW50LHcuc2Vjb25kRWxlbWVudCx3LmFtUE1dLmNvbmNhdCh3LnBsdWdpbkVsZW1lbnRzKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpLHM9ZC5pbmRleE9mKHQpO2lmKC0xIT09cyl7dmFyIHU9ZFtzKyhlLnNoaWZ0S2V5Py0xOjEpXTtlLnByZXZlbnREZWZhdWx0KCksKHV8fHcuX2lucHV0KS5mb2N1cygpfX1lbHNlIXcuY29uZmlnLm5vQ2FsZW5kYXImJncuZGF5c0NvbnRhaW5lciYmdy5kYXlzQ29udGFpbmVyLmNvbnRhaW5zKHQpJiZlLnNoaWZ0S2V5JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHcuX2lucHV0LmZvY3VzKCkpfX1pZih2b2lkIDAhPT13LmFtUE0mJnQ9PT13LmFtUE0pc3dpdGNoKGUua2V5KXtjYXNlIHcubDEwbi5hbVBNWzBdLmNoYXJBdCgwKTpjYXNlIHcubDEwbi5hbVBNWzBdLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpOncuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVswXSxTKCksYmUoKTticmVhaztjYXNlIHcubDEwbi5hbVBNWzFdLmNoYXJBdCgwKTpjYXNlIHcubDEwbi5hbVBNWzFdLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpOncuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVsxXSxTKCksYmUoKX0obnx8Vih0KSkmJnBlKCJvbktleURvd24iLGUpfWZ1bmN0aW9uIGFlKGUpe2lmKDE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiYoIWV8fGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGF5IikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRpc2FibGVkIikpKXtmb3IodmFyIHQ9ZT9lLmRhdGVPYmouZ2V0VGltZSgpOncuZGF5cy5maXJzdEVsZW1lbnRDaGlsZC5kYXRlT2JqLmdldFRpbWUoKSxuPXcucGFyc2VEYXRlKHcuc2VsZWN0ZWREYXRlc1swXSx2b2lkIDAsITApLmdldFRpbWUoKSxhPU1hdGgubWluKHQsdy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKSksaT1NYXRoLm1heCh0LHcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCkpLG89ITEscj0wLGw9MCxjPWE7YzxpO2MrPXkpWChuZXcgRGF0ZShjKSwhMCl8fChvPW98fGM+YSYmYzxpLGM8biYmKCFyfHxjPnIpP3I9YzpjPm4mJighbHx8YzxsKSYmKGw9YykpO2Zvcih2YXIgZD0wO2Q8dy5jb25maWcuc2hvd01vbnRocztkKyspZm9yKHZhciBzPXcuZGF5c0NvbnRhaW5lci5jaGlsZHJlbltkXSx1PWZ1bmN0aW9uKGEsaSl7dmFyIGMsZCx1LGY9cy5jaGlsZHJlblthXSxtPWYuZGF0ZU9iai5nZXRUaW1lKCksZz1yPjAmJm08cnx8bD4wJiZtPmw7cmV0dXJuIGc\/KGYuY2xhc3NMaXN0LmFkZCgibm90QWxsb3dlZCIpLFsiaW5SYW5nZSIsInN0YXJ0UmFuZ2UiLCJlbmRSYW5nZSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YuY2xhc3NMaXN0LnJlbW92ZShlKX0pKSwiY29udGludWUiKTpvJiYhZz8iY29udGludWUiOihbInN0YXJ0UmFuZ2UiLCJpblJhbmdlIiwiZW5kUmFuZ2UiLCJub3RBbGxvd2VkIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zi5jbGFzc0xpc3QucmVtb3ZlKGUpfSkpLHZvaWQodm9pZCAwIT09ZSYmKGUuY2xhc3NMaXN0LmFkZCh0PD13LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpPyJzdGFydFJhbmdlIjoiZW5kUmFuZ2UiKSxuPHQmJm09PT1uP2YuY2xhc3NMaXN0LmFkZCgic3RhcnRSYW5nZSIpOm4+dCYmbT09PW4mJmYuY2xhc3NMaXN0LmFkZCgiZW5kUmFuZ2UiKSxtPj1yJiYoMD09PWx8fG08PWwpJiYoZD1uLHU9dCwoYz1tKT5NYXRoLm1pbihkLHUpJiZjPE1hdGgubWF4KGQsdSkpJiZmLmNsYXNzTGlzdC5hZGQoImluUmFuZ2UiKSkpKX0sZj0wLG09cy5jaGlsZHJlbi5sZW5ndGg7ZjxtO2YrKyl1KGYpfX1mdW5jdGlvbiBpZSgpeyF3LmlzT3Blbnx8dy5jb25maWcuc3RhdGljfHx3LmNvbmZpZy5pbmxpbmV8fGNlKCl9ZnVuY3Rpb24gb2UoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXcuY29uZmlnWyJfIitlKyJEYXRlIl09dy5wYXJzZURhdGUodCx3LmNvbmZpZy5kYXRlRm9ybWF0KSxhPXcuY29uZmlnWyJfIisoIm1pbiI9PT1lPyJtYXgiOiJtaW4iKSsiRGF0ZSJdO3ZvaWQgMCE9PW4mJih3WyJtaW4iPT09ZT8ibWluRGF0ZUhhc1RpbWUiOiJtYXhEYXRlSGFzVGltZSJdPW4uZ2V0SG91cnMoKT4wfHxuLmdldE1pbnV0ZXMoKT4wfHxuLmdldFNlY29uZHMoKT4wKSx3LnNlbGVjdGVkRGF0ZXMmJih3LnNlbGVjdGVkRGF0ZXM9dy5zZWxlY3RlZERhdGVzLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIFgoZSl9KSksdy5zZWxlY3RlZERhdGVzLmxlbmd0aHx8Im1pbiIhPT1lfHxfKG4pLGJlKCkpLHcuZGF5c0NvbnRhaW5lciYmKGRlKCksdm9pZCAwIT09bj93LmN1cnJlbnRZZWFyRWxlbWVudFtlXT1uLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTp3LmN1cnJlbnRZZWFyRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoZSksdy5jdXJyZW50WWVhckVsZW1lbnQuZGlzYWJsZWQ9ISFhJiZ2b2lkIDAhPT1uJiZhLmdldEZ1bGxZZWFyKCk9PT1uLmdldEZ1bGxZZWFyKCkpfX1mdW5jdGlvbiByZSgpe3JldHVybiB3LmNvbmZpZy53cmFwP3AucXVlcnlTZWxlY3RvcigiW2RhdGEtaW5wdXRdIik6cH1mdW5jdGlvbiBsZSgpeyJvYmplY3QiIT10eXBlb2Ygdy5jb25maWcubG9jYWxlJiZ2b2lkIDA9PT1ULmwxMG5zW3cuY29uZmlnLmxvY2FsZV0mJncuY29uZmlnLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoImZsYXRwaWNrcjogaW52YWxpZCBsb2NhbGUgIit3LmNvbmZpZy5sb2NhbGUpKSx3LmwxMG49ZShlKHt9LFQubDEwbnMuZGVmYXVsdCksIm9iamVjdCI9PXR5cGVvZiB3LmNvbmZpZy5sb2NhbGU\/dy5jb25maWcubG9jYWxlOiJkZWZhdWx0IiE9PXcuY29uZmlnLmxvY2FsZT9ULmwxMG5zW3cuY29uZmlnLmxvY2FsZV06dm9pZCAwKSxELks9IigiK3cubDEwbi5hbVBNWzBdKyJ8Iit3LmwxMG4uYW1QTVsxXSsifCIrdy5sMTBuLmFtUE1bMF0udG9Mb3dlckNhc2UoKSsifCIrdy5sMTBuLmFtUE1bMV0udG9Mb3dlckNhc2UoKSsiKSIsdm9pZCAwPT09ZShlKHt9LHYpLEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocC5kYXRhc2V0fHx7fSkpKS50aW1lXzI0aHImJnZvaWQgMD09PVQuZGVmYXVsdENvbmZpZy50aW1lXzI0aHImJih3LmNvbmZpZy50aW1lXzI0aHI9dy5sMTBuLnRpbWVfMjRociksdy5mb3JtYXREYXRlPWIodyksdy5wYXJzZURhdGU9Qyh7Y29uZmlnOncuY29uZmlnLGwxMG46dy5sMTBufSl9ZnVuY3Rpb24gY2UoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHcuY29uZmlnLnBvc2l0aW9uKXtpZih2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyKXtwZSgib25QcmVDYWxlbmRhclBvc2l0aW9uIik7dmFyIHQ9ZXx8dy5fcG9zaXRpb25FbGVtZW50LG49QXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKHcuY2FsZW5kYXJDb250YWluZXIuY2hpbGRyZW4sKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrdC5vZmZzZXRIZWlnaHR9KSwwKSxhPXcuY2FsZW5kYXJDb250YWluZXIub2Zmc2V0V2lkdGgsaT13LmNvbmZpZy5wb3NpdGlvbi5zcGxpdCgiICIpLG89aVswXSxyPWkubGVuZ3RoPjE\/aVsxXTpudWxsLGw9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPXdpbmRvdy5pbm5lckhlaWdodC1sLmJvdHRvbSxzPSJhYm92ZSI9PT1vfHwiYmVsb3ciIT09byYmYzxuJiZsLnRvcD5uLHU9d2luZG93LnBhZ2VZT2Zmc2V0K2wudG9wKyhzPy1uLTI6dC5vZmZzZXRIZWlnaHQrMik7aWYoZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd1RvcCIsIXMpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dCb3R0b20iLHMpLCF3LmNvbmZpZy5pbmxpbmUpe3ZhciBmPXdpbmRvdy5wYWdlWE9mZnNldCtsLmxlZnQsbT0hMSxnPSExOyJjZW50ZXIiPT09cj8oZi09KGEtbC53aWR0aCkvMixtPSEwKToicmlnaHQiPT09ciYmKGYtPWEtbC53aWR0aCxnPSEwKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93TGVmdCIsIW0mJiFnKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93Q2VudGVyIixtKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93UmlnaHQiLGcpO3ZhciBwPXdpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLSh3aW5kb3cucGFnZVhPZmZzZXQrbC5yaWdodCksaD1mK2E+d2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgsdj1wK2E+d2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7aWYoZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJyaWdodE1vc3QiLGgpLCF3LmNvbmZpZy5zdGF0aWMpaWYody5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS50b3A9dSsicHgiLGgpaWYodil7dmFyIEQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bnVsbCx0PTA7dDxkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7dCsrKXt2YXIgbj1kb2N1bWVudC5zdHlsZVNoZWV0c1t0XTt0cnl7bi5jc3NSdWxlc31jYXRjaChlKXtjb250aW51ZX1lPW47YnJlYWt9cmV0dXJuIG51bGwhPWU\/ZTooYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYSksYS5zaGVldCk7dmFyIGF9KCk7aWYodm9pZCAwPT09RClyZXR1cm47dmFyIGI9d2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgsQz1NYXRoLm1heCgwLGIvMi1hLzIpLE09RC5jc3NSdWxlcy5sZW5ndGgseT0ie2xlZnQ6IitsLmxlZnQrInB4O3JpZ2h0OmF1dG87fSI7ZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJyaWdodE1vc3QiLCExKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImNlbnRlck1vc3QiLCEwKSxELmluc2VydFJ1bGUoIi5mbGF0cGlja3ItY2FsZW5kYXIuY2VudGVyTW9zdDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5jZW50ZXJNb3N0OmFmdGVyIit5LE0pLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD1DKyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD0iYXV0byJ9ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9ImF1dG8iLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9cCsicHgiO2Vsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PWYrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PSJhdXRvIn19fWVsc2Ugdy5jb25maWcucG9zaXRpb24odyxlKX1mdW5jdGlvbiBkZSgpe3cuY29uZmlnLm5vQ2FsZW5kYXJ8fHcuaXNNb2JpbGV8fChLKCksRGUoKSxKKCkpfWZ1bmN0aW9uIHNlKCl7dy5faW5wdXQuZm9jdXMoKSwtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKXx8dm9pZCAwIT09bmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM\/c2V0VGltZW91dCh3LmNsb3NlLDApOncuY2xvc2UoKX1mdW5jdGlvbiB1ZShlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgdD1mKGcoZSksKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNsYXNzTGlzdCYmZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kYXkiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGlzYWJsZWQiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJub3RBbGxvd2VkIil9KSk7aWYodm9pZCAwIT09dCl7dmFyIG49dCxhPXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPW5ldyBEYXRlKG4uZGF0ZU9iai5nZXRUaW1lKCkpLGk9KGEuZ2V0TW9udGgoKTx3LmN1cnJlbnRNb250aHx8YS5nZXRNb250aCgpPncuY3VycmVudE1vbnRoK3cuY29uZmlnLnNob3dNb250aHMtMSkmJiJyYW5nZSIhPT13LmNvbmZpZy5tb2RlO2lmKHcuc2VsZWN0ZWREYXRlRWxlbT1uLCJzaW5nbGUiPT09dy5jb25maWcubW9kZSl3LnNlbGVjdGVkRGF0ZXM9W2FdO2Vsc2UgaWYoIm11bHRpcGxlIj09PXcuY29uZmlnLm1vZGUpe3ZhciBvPXZlKGEpO28\/dy5zZWxlY3RlZERhdGVzLnNwbGljZShwYXJzZUludChvKSwxKTp3LnNlbGVjdGVkRGF0ZXMucHVzaChhKX1lbHNlInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJigyPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmdy5jbGVhcighMSwhMSksdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9YSx3LnNlbGVjdGVkRGF0ZXMucHVzaChhKSwwIT09TShhLHcuc2VsZWN0ZWREYXRlc1swXSwhMCkmJncuc2VsZWN0ZWREYXRlcy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldFRpbWUoKS10LmdldFRpbWUoKX0pKSk7aWYoUygpLGkpe3ZhciByPXcuY3VycmVudFllYXIhPT1hLmdldEZ1bGxZZWFyKCk7dy5jdXJyZW50WWVhcj1hLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9YS5nZXRNb250aCgpLHImJihwZSgib25ZZWFyQ2hhbmdlIiksSygpKSxwZSgib25Nb250aENoYW5nZSIpfWlmKERlKCksSigpLGJlKCksaXx8InJhbmdlIj09PXcuY29uZmlnLm1vZGV8fDEhPT13LmNvbmZpZy5zaG93TW9udGhzP3ZvaWQgMCE9PXcuc2VsZWN0ZWREYXRlRWxlbSYmdm9pZCAwPT09dy5ob3VyRWxlbWVudCYmdy5zZWxlY3RlZERhdGVFbGVtJiZ3LnNlbGVjdGVkRGF0ZUVsZW0uZm9jdXMoKTpMKG4pLHZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJnZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJncuaG91ckVsZW1lbnQuZm9jdXMoKSx3LmNvbmZpZy5jbG9zZU9uU2VsZWN0KXt2YXIgbD0ic2luZ2xlIj09PXcuY29uZmlnLm1vZGUmJiF3LmNvbmZpZy5lbmFibGVUaW1lLGM9InJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjI9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiYhdy5jb25maWcuZW5hYmxlVGltZTsobHx8YykmJnNlKCl9TigpfX13LnBhcnNlRGF0ZT1DKHtjb25maWc6dy5jb25maWcsbDEwbjp3LmwxMG59KSx3Ll9oYW5kbGVycz1bXSx3LnBsdWdpbkVsZW1lbnRzPVtdLHcubG9hZGVkUGx1Z2lucz1bXSx3Ll9iaW5kPUEsdy5fc2V0SG91cnNGcm9tRGF0ZT1fLHcuX3Bvc2l0aW9uQ2FsZW5kYXI9Y2Usdy5jaGFuZ2VNb250aD1HLHcuY2hhbmdlWWVhcj1RLHcuY2xlYXI9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT1lJiYoZT0hMCk7dm9pZCAwPT09dCYmKHQ9ITApO3cuaW5wdXQudmFsdWU9IiIsdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudmFsdWU9IiIpO3ZvaWQgMCE9PXcubW9iaWxlSW5wdXQmJih3Lm1vYmlsZUlucHV0LnZhbHVlPSIiKTt3LnNlbGVjdGVkRGF0ZXM9W10sdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dm9pZCAwLCEwPT09dCYmKHcuY3VycmVudFllYXI9dy5faW5pdGlhbERhdGUuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD13Ll9pbml0aWFsRGF0ZS5nZXRNb250aCgpKTtpZighMD09PXcuY29uZmlnLmVuYWJsZVRpbWUpe3ZhciBuPXgody5jb25maWcpLGE9bi5ob3VycyxpPW4ubWludXRlcyxvPW4uc2Vjb25kcztPKGEsaSxvKX13LnJlZHJhdygpLGUmJnBlKCJvbkNoYW5nZSIpfSx3LmNsb3NlPWZ1bmN0aW9uKCl7dy5pc09wZW49ITEsdy5pc01vYmlsZXx8KHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXImJncuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLHZvaWQgMCE9PXcuX2lucHV0JiZ3Ll9pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSk7cGUoIm9uQ2xvc2UiKX0sdy5fY3JlYXRlRWxlbWVudD1zLHcuZGVzdHJveT1mdW5jdGlvbigpe3ZvaWQgMCE9PXcuY29uZmlnJiZwZSgib25EZXN0cm95Iik7Zm9yKHZhciBlPXcuX2hhbmRsZXJzLmxlbmd0aDtlLS07KXcuX2hhbmRsZXJzW2VdLnJlbW92ZSgpO2lmKHcuX2hhbmRsZXJzPVtdLHcubW9iaWxlSW5wdXQpdy5tb2JpbGVJbnB1dC5wYXJlbnROb2RlJiZ3Lm1vYmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5tb2JpbGVJbnB1dCksdy5tb2JpbGVJbnB1dD12b2lkIDA7ZWxzZSBpZih3LmNhbGVuZGFyQ29udGFpbmVyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGUpaWYody5jb25maWcuc3RhdGljJiZ3LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGUpe3ZhciB0PXcuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZTtpZih0Lmxhc3RDaGlsZCYmdC5yZW1vdmVDaGlsZCh0Lmxhc3RDaGlsZCksdC5wYXJlbnROb2RlKXtmb3IoO3QuZmlyc3RDaGlsZDspdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LmZpcnN0Q2hpbGQsdCk7dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfX1lbHNlIHcuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKTt3LmFsdElucHV0JiYody5pbnB1dC50eXBlPSJ0ZXh0Iix3LmFsdElucHV0LnBhcmVudE5vZGUmJncuYWx0SW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh3LmFsdElucHV0KSxkZWxldGUgdy5hbHRJbnB1dCk7dy5pbnB1dCYmKHcuaW5wdXQudHlwZT13LmlucHV0Ll90eXBlLHcuaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgiZmxhdHBpY2tyLWlucHV0Iiksdy5pbnB1dC5yZW1vdmVBdHRyaWJ1dGUoInJlYWRvbmx5IikpO1siX3Nob3dUaW1lSW5wdXQiLCJsYXRlc3RTZWxlY3RlZERhdGVPYmoiLCJfaGlkZU5leHRNb250aEFycm93IiwiX2hpZGVQcmV2TW9udGhBcnJvdyIsIl9faGlkZU5leHRNb250aEFycm93IiwiX19oaWRlUHJldk1vbnRoQXJyb3ciLCJpc01vYmlsZSIsImlzT3BlbiIsInNlbGVjdGVkRGF0ZUVsZW0iLCJtaW5EYXRlSGFzVGltZSIsIm1heERhdGVIYXNUaW1lIiwiZGF5cyIsImRheXNDb250YWluZXIiLCJfaW5wdXQiLCJfcG9zaXRpb25FbGVtZW50IiwiaW5uZXJDb250YWluZXIiLCJyQ29udGFpbmVyIiwibW9udGhOYXYiLCJ0b2RheURhdGVFbGVtIiwiY2FsZW5kYXJDb250YWluZXIiLCJ3ZWVrZGF5Q29udGFpbmVyIiwicHJldk1vbnRoTmF2IiwibmV4dE1vbnRoTmF2IiwibW9udGhzRHJvcGRvd25Db250YWluZXIiLCJjdXJyZW50TW9udGhFbGVtZW50IiwiY3VycmVudFllYXJFbGVtZW50IiwibmF2aWdhdGlvbkN1cnJlbnRNb250aCIsInNlbGVjdGVkRGF0ZUVsZW0iLCJjb25maWciXS5mb3JFYWNoKChmdW5jdGlvbihlKXt0cnl7ZGVsZXRlIHdbZV19Y2F0Y2goZSl7fX0pKX0sdy5pc0VuYWJsZWQ9WCx3Lmp1bXBUb0RhdGU9UCx3Lm9wZW49ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD13Ll9wb3NpdGlvbkVsZW1lbnQpO2lmKCEwPT09dy5pc01vYmlsZSl7aWYoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPWcoZSk7biYmbi5ibHVyKCl9cmV0dXJuIHZvaWQgMCE9PXcubW9iaWxlSW5wdXQmJih3Lm1vYmlsZUlucHV0LmZvY3VzKCksdy5tb2JpbGVJbnB1dC5jbGljaygpKSx2b2lkIHBlKCJvbk9wZW4iKX1pZih3Ll9pbnB1dC5kaXNhYmxlZHx8dy5jb25maWcuaW5saW5lKXJldHVybjt2YXIgYT13LmlzT3Blbjt3LmlzT3Blbj0hMCxhfHwody5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJvcGVuIiksdy5faW5wdXQuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIikscGUoIm9uT3BlbiIpLGNlKHQpKTshMD09PXcuY29uZmlnLmVuYWJsZVRpbWUmJiEwPT09dy5jb25maWcubm9DYWxlbmRhciYmKCExIT09dy5jb25maWcuYWxsb3dJbnB1dHx8dm9pZCAwIT09ZSYmdy50aW1lQ29udGFpbmVyLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl8fHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIHcuaG91ckVsZW1lbnQuc2VsZWN0KCl9KSw1MCkpfSx3LnJlZHJhdz1kZSx3LnNldD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUpZm9yKHZhciBhIGluIE9iamVjdC5hc3NpZ24ody5jb25maWcsZSksZSl2b2lkIDAhPT1mZVthXSYmZmVbYV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pKTtlbHNlIHcuY29uZmlnW2VdPXQsdm9pZCAwIT09ZmVbZV0\/ZmVbZV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pKTpuLmluZGV4T2YoZSk+LTEmJih3LmNvbmZpZ1tlXT1jKHQpKTt3LnJlZHJhdygpLGJlKCEwKX0sdy5zZXREYXRlPWZ1bmN0aW9uKGUsdCxuKXt2b2lkIDA9PT10JiYodD0hMSk7dm9pZCAwPT09biYmKG49dy5jb25maWcuZGF0ZUZvcm1hdCk7aWYoMCE9PWUmJiFlfHxlIGluc3RhbmNlb2YgQXJyYXkmJjA9PT1lLmxlbmd0aClyZXR1cm4gdy5jbGVhcih0KTttZShlLG4pLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXcuc2VsZWN0ZWREYXRlc1t3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoLTFdLHcucmVkcmF3KCksUCh2b2lkIDAsdCksXygpLDA9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZ3LmNsZWFyKCExKTtiZSh0KSx0JiZwZSgib25DaGFuZ2UiKX0sdy50b2dnbGU9ZnVuY3Rpb24oZSl7aWYoITA9PT13LmlzT3BlbilyZXR1cm4gdy5jbG9zZSgpO3cub3BlbihlKX07dmFyIGZlPXtsb2NhbGU6W2xlLHpdLHNob3dNb250aHM6W3EsaywkXSxtaW5EYXRlOltQXSxtYXhEYXRlOltQXSxjbGlja09wZW5zOltmdW5jdGlvbigpeyEwPT09dy5jb25maWcuY2xpY2tPcGVucz8oQSh3Ll9pbnB1dCwiZm9jdXMiLHcub3BlbiksQSh3Ll9pbnB1dCwiY2xpY2siLHcub3BlbikpOih3Ll9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdy5vcGVuKSx3Ll9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdy5vcGVuKSl9XX07ZnVuY3Rpb24gbWUoZSx0KXt2YXIgbj1bXTtpZihlIGluc3RhbmNlb2YgQXJyYXkpbj1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHcucGFyc2VEYXRlKGUsdCl9KSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgRGF0ZXx8Im51bWJlciI9PXR5cGVvZiBlKW49W3cucGFyc2VEYXRlKGUsdCldO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXN3aXRjaCh3LmNvbmZpZy5tb2RlKXtjYXNlInNpbmdsZSI6Y2FzZSJ0aW1lIjpuPVt3LnBhcnNlRGF0ZShlLHQpXTticmVhaztjYXNlIm11bHRpcGxlIjpuPWUuc3BsaXQody5jb25maWcuY29uanVuY3Rpb24pLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHcucGFyc2VEYXRlKGUsdCl9KSk7YnJlYWs7Y2FzZSJyYW5nZSI6bj1lLnNwbGl0KHcubDEwbi5yYW5nZVNlcGFyYXRvcikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKX1lbHNlIHcuY29uZmlnLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgZGF0ZSBzdXBwbGllZDogIitKU09OLnN0cmluZ2lmeShlKSkpO3cuc2VsZWN0ZWREYXRlcz13LmNvbmZpZy5hbGxvd0ludmFsaWRQcmVsb2FkP246bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZSYmWChlLCExKX0pKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmdy5zZWxlY3RlZERhdGVzLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZ2V0VGltZSgpLXQuZ2V0VGltZSgpfSkpfWZ1bmN0aW9uIGdlKGUpe3JldHVybiBlLnNsaWNlKCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fCJudW1iZXIiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIERhdGU\/dy5wYXJzZURhdGUoZSx2b2lkIDAsITApOmUmJiJvYmplY3QiPT10eXBlb2YgZSYmZS5mcm9tJiZlLnRvP3tmcm9tOncucGFyc2VEYXRlKGUuZnJvbSx2b2lkIDApLHRvOncucGFyc2VEYXRlKGUudG8sdm9pZCAwKX06ZX0pKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfWZ1bmN0aW9uIHBlKGUsdCl7aWYodm9pZCAwIT09dy5jb25maWcpe3ZhciBuPXcuY29uZmlnW2VdO2lmKHZvaWQgMCE9PW4mJm4ubGVuZ3RoPjApZm9yKHZhciBhPTA7blthXSYmYTxuLmxlbmd0aDthKyspblthXSh3LnNlbGVjdGVkRGF0ZXMsdy5pbnB1dC52YWx1ZSx3LHQpOyJvbkNoYW5nZSI9PT1lJiYody5pbnB1dC5kaXNwYXRjaEV2ZW50KGhlKCJjaGFuZ2UiKSksdy5pbnB1dC5kaXNwYXRjaEV2ZW50KGhlKCJpbnB1dCIpKSl9fWZ1bmN0aW9uIGhlKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO3JldHVybiB0LmluaXRFdmVudChlLCEwLCEwKSx0fWZ1bmN0aW9uIHZlKGUpe2Zvcih2YXIgdD0wO3Q8dy5zZWxlY3RlZERhdGVzLmxlbmd0aDt0KyspaWYoMD09PU0ody5zZWxlY3RlZERhdGVzW3RdLGUpKXJldHVybiIiK3Q7cmV0dXJuITF9ZnVuY3Rpb24gRGUoKXt3LmNvbmZpZy5ub0NhbGVuZGFyfHx3LmlzTW9iaWxlfHwhdy5tb250aE5hdnx8KHcueWVhckVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IERhdGUody5jdXJyZW50WWVhcix3LmN1cnJlbnRNb250aCwxKTtuLnNldE1vbnRoKHcuY3VycmVudE1vbnRoK3QpLHcuY29uZmlnLnNob3dNb250aHM+MXx8InN0YXRpYyI9PT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZT93Lm1vbnRoRWxlbWVudHNbdF0udGV4dENvbnRlbnQ9aChuLmdldE1vbnRoKCksdy5jb25maWcuc2hvcnRoYW5kQ3VycmVudE1vbnRoLHcubDEwbikrIiAiOncubW9udGhzRHJvcGRvd25Db250YWluZXIudmFsdWU9bi5nZXRNb250aCgpLnRvU3RyaW5nKCksZS52YWx1ZT1uLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKX0pKSx3Ll9oaWRlUHJldk1vbnRoQXJyb3c9dm9pZCAwIT09dy5jb25maWcubWluRGF0ZSYmKHcuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCk\/dy5jdXJyZW50TW9udGg8PXcuY29uZmlnLm1pbkRhdGUuZ2V0TW9udGgoKTp3LmN1cnJlbnRZZWFyPHcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSksdy5faGlkZU5leHRNb250aEFycm93PXZvaWQgMCE9PXcuY29uZmlnLm1heERhdGUmJih3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoKzE+dy5jb25maWcubWF4RGF0ZS5nZXRNb250aCgpOncuY3VycmVudFllYXI+dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpKSl9ZnVuY3Rpb24gd2UoZSl7cmV0dXJuIHcuc2VsZWN0ZWREYXRlcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB3LmZvcm1hdERhdGUodCxlKX0pKS5maWx0ZXIoKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4icmFuZ2UiIT09dy5jb25maWcubW9kZXx8dy5jb25maWcuZW5hYmxlVGltZXx8bi5pbmRleE9mKGUpPT09dH0pKS5qb2luKCJyYW5nZSIhPT13LmNvbmZpZy5tb2RlP3cuY29uZmlnLmNvbmp1bmN0aW9uOncubDEwbi5yYW5nZVNlcGFyYXRvcil9ZnVuY3Rpb24gYmUoZSl7dm9pZCAwPT09ZSYmKGU9ITApLHZvaWQgMCE9PXcubW9iaWxlSW5wdXQmJncubW9iaWxlRm9ybWF0U3RyJiYody5tb2JpbGVJbnB1dC52YWx1ZT12b2lkIDAhPT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmZvcm1hdERhdGUody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5tb2JpbGVGb3JtYXRTdHIpOiIiKSx3LmlucHV0LnZhbHVlPXdlKHcuY29uZmlnLmRhdGVGb3JtYXQpLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnZhbHVlPXdlKHcuY29uZmlnLmFsdEZvcm1hdCkpLCExIT09ZSYmcGUoIm9uVmFsdWVVcGRhdGUiKX1mdW5jdGlvbiBDZShlKXt2YXIgdD1nKGUpLG49dy5wcmV2TW9udGhOYXYuY29udGFpbnModCksYT13Lm5leHRNb250aE5hdi5jb250YWlucyh0KTtufHxhP0cobj8tMToxKTp3LnllYXJFbGVtZW50cy5pbmRleE9mKHQpPj0wP3Quc2VsZWN0KCk6dC5jbGFzc0xpc3QuY29udGFpbnMoImFycm93VXAiKT93LmNoYW5nZVllYXIody5jdXJyZW50WWVhcisxKTp0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dEb3duIikmJncuY2hhbmdlWWVhcih3LmN1cnJlbnRZZWFyLTEpfXJldHVybiBmdW5jdGlvbigpe3cuZWxlbWVudD13LmlucHV0PXAsdy5pc09wZW49ITEsZnVuY3Rpb24oKXt2YXIgdD1bIndyYXAiLCJ3ZWVrTnVtYmVycyIsImFsbG93SW5wdXQiLCJhbGxvd0ludmFsaWRQcmVsb2FkIiwiY2xpY2tPcGVucyIsInRpbWVfMjRociIsImVuYWJsZVRpbWUiLCJub0NhbGVuZGFyIiwiYWx0SW5wdXQiLCJzaG9ydGhhbmRDdXJyZW50TW9udGgiLCJpbmxpbmUiLCJzdGF0aWMiLCJlbmFibGVTZWNvbmRzIiwiZGlzYWJsZU1vYmlsZSJdLGk9ZShlKHt9LEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocC5kYXRhc2V0fHx7fSkpKSx2KSxvPXt9O3cuY29uZmlnLnBhcnNlRGF0ZT1pLnBhcnNlRGF0ZSx3LmNvbmZpZy5mb3JtYXREYXRlPWkuZm9ybWF0RGF0ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsImVuYWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fZW5hYmxlfSxzZXQ6ZnVuY3Rpb24oZSl7dy5jb25maWcuX2VuYWJsZT1nZShlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsImRpc2FibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX2Rpc2FibGV9LHNldDpmdW5jdGlvbihlKXt3LmNvbmZpZy5fZGlzYWJsZT1nZShlKX19KTt2YXIgcj0idGltZSI9PT1pLm1vZGU7aWYoIWkuZGF0ZUZvcm1hdCYmKGkuZW5hYmxlVGltZXx8cikpe3ZhciBsPVQuZGVmYXVsdENvbmZpZy5kYXRlRm9ybWF0fHxhLmRhdGVGb3JtYXQ7by5kYXRlRm9ybWF0PWkubm9DYWxlbmRhcnx8cj8iSDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpOmwrIiBIOmkiKyhpLmVuYWJsZVNlY29uZHM\/IjpTIjoiIil9aWYoaS5hbHRJbnB1dCYmKGkuZW5hYmxlVGltZXx8cikmJiFpLmFsdEZvcm1hdCl7dmFyIGQ9VC5kZWZhdWx0Q29uZmlnLmFsdEZvcm1hdHx8YS5hbHRGb3JtYXQ7by5hbHRGb3JtYXQ9aS5ub0NhbGVuZGFyfHxyPyJoOmkiKyhpLmVuYWJsZVNlY29uZHM\/IjpTIEsiOiIgSyIpOmQrIiBoOmkiKyhpLmVuYWJsZVNlY29uZHM\/IjpTIjoiIikrIiBLIn1PYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1pbkRhdGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21pbkRhdGV9LHNldDpvZSgibWluIil9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1heERhdGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21heERhdGV9LHNldDpvZSgibWF4Iil9KTt2YXIgcz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dy5jb25maWdbIm1pbiI9PT1lPyJfbWluVGltZSI6Il9tYXhUaW1lIl09dy5wYXJzZURhdGUodCwiSDppOlMiKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWluVGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWluVGltZX0sc2V0OnMoIm1pbiIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtYXhUaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9tYXhUaW1lfSxzZXQ6cygibWF4Iil9KSwidGltZSI9PT1pLm1vZGUmJih3LmNvbmZpZy5ub0NhbGVuZGFyPSEwLHcuY29uZmlnLmVuYWJsZVRpbWU9ITApO09iamVjdC5hc3NpZ24ody5jb25maWcsbyxpKTtmb3IodmFyIHU9MDt1PHQubGVuZ3RoO3UrKyl3LmNvbmZpZ1t0W3VdXT0hMD09PXcuY29uZmlnW3RbdV1dfHwidHJ1ZSI9PT13LmNvbmZpZ1t0W3VdXTtuLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXcuY29uZmlnW2VdfSkpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3cuY29uZmlnW2VdPWMody5jb25maWdbZV18fFtdKS5tYXAoRSl9KSksdy5pc01vYmlsZT0hdy5jb25maWcuZGlzYWJsZU1vYmlsZSYmIXcuY29uZmlnLmlubGluZSYmInNpbmdsZSI9PT13LmNvbmZpZy5tb2RlJiYhdy5jb25maWcuZGlzYWJsZS5sZW5ndGgmJiF3LmNvbmZpZy5lbmFibGUmJiF3LmNvbmZpZy53ZWVrTnVtYmVycyYmL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2Zvcih1PTA7dTx3LmNvbmZpZy5wbHVnaW5zLmxlbmd0aDt1Kyspe3ZhciBmPXcuY29uZmlnLnBsdWdpbnNbdV0odyl8fHt9O2Zvcih2YXIgbSBpbiBmKW4uaW5kZXhPZihtKT4tMT93LmNvbmZpZ1ttXT1jKGZbbV0pLm1hcChFKS5jb25jYXQody5jb25maWdbbV0pOnZvaWQgMD09PWlbbV0mJih3LmNvbmZpZ1ttXT1mW21dKX1pLmFsdElucHV0Q2xhc3N8fCh3LmNvbmZpZy5hbHRJbnB1dENsYXNzPXJlKCkuY2xhc3NOYW1lKyIgIit3LmNvbmZpZy5hbHRJbnB1dENsYXNzKTtwZSgib25QYXJzZUNvbmZpZyIpfSgpLGxlKCksZnVuY3Rpb24oKXtpZih3LmlucHV0PXJlKCksIXcuaW5wdXQpcmV0dXJuIHZvaWQgdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCBlbGVtZW50IHNwZWNpZmllZCIpKTt3LmlucHV0Ll90eXBlPXcuaW5wdXQudHlwZSx3LmlucHV0LnR5cGU9InRleHQiLHcuaW5wdXQuY2xhc3NMaXN0LmFkZCgiZmxhdHBpY2tyLWlucHV0Iiksdy5faW5wdXQ9dy5pbnB1dCx3LmNvbmZpZy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQ9cyh3LmlucHV0Lm5vZGVOYW1lLHcuY29uZmlnLmFsdElucHV0Q2xhc3MpLHcuX2lucHV0PXcuYWx0SW5wdXQsdy5hbHRJbnB1dC5wbGFjZWhvbGRlcj13LmlucHV0LnBsYWNlaG9sZGVyLHcuYWx0SW5wdXQuZGlzYWJsZWQ9dy5pbnB1dC5kaXNhYmxlZCx3LmFsdElucHV0LnJlcXVpcmVkPXcuaW5wdXQucmVxdWlyZWQsdy5hbHRJbnB1dC50YWJJbmRleD13LmlucHV0LnRhYkluZGV4LHcuYWx0SW5wdXQudHlwZT0idGV4dCIsdy5pbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSwhdy5jb25maWcuc3RhdGljJiZ3LmlucHV0LnBhcmVudE5vZGUmJncuaW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5hbHRJbnB1dCx3LmlucHV0Lm5leHRTaWJsaW5nKSk7dy5jb25maWcuYWxsb3dJbnB1dHx8dy5faW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsInJlYWRvbmx5Iik7dy5fcG9zaXRpb25FbGVtZW50PXcuY29uZmlnLnBvc2l0aW9uRWxlbWVudHx8dy5faW5wdXR9KCksZnVuY3Rpb24oKXt3LnNlbGVjdGVkRGF0ZXM9W10sdy5ub3c9dy5wYXJzZURhdGUody5jb25maWcubm93KXx8bmV3IERhdGU7dmFyIGU9dy5jb25maWcuZGVmYXVsdERhdGV8fCgiSU5QVVQiIT09dy5pbnB1dC5ub2RlTmFtZSYmIlRFWFRBUkVBIiE9PXcuaW5wdXQubm9kZU5hbWV8fCF3LmlucHV0LnBsYWNlaG9sZGVyfHx3LmlucHV0LnZhbHVlIT09dy5pbnB1dC5wbGFjZWhvbGRlcj93LmlucHV0LnZhbHVlOm51bGwpO2UmJm1lKGUsdy5jb25maWcuZGF0ZUZvcm1hdCk7dy5faW5pdGlhbERhdGU9dy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wP3cuc2VsZWN0ZWREYXRlc1swXTp3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlLmdldFRpbWUoKT53Lm5vdy5nZXRUaW1lKCk\/dy5jb25maWcubWluRGF0ZTp3LmNvbmZpZy5tYXhEYXRlJiZ3LmNvbmZpZy5tYXhEYXRlLmdldFRpbWUoKTx3Lm5vdy5nZXRUaW1lKCk\/dy5jb25maWcubWF4RGF0ZTp3Lm5vdyx3LmN1cnJlbnRZZWFyPXcuX2luaXRpYWxEYXRlLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9dy5faW5pdGlhbERhdGUuZ2V0TW9udGgoKSx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjAmJih3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj13LnNlbGVjdGVkRGF0ZXNbMF0pO3ZvaWQgMCE9PXcuY29uZmlnLm1pblRpbWUmJih3LmNvbmZpZy5taW5UaW1lPXcucGFyc2VEYXRlKHcuY29uZmlnLm1pblRpbWUsIkg6aSIpKTt2b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lJiYody5jb25maWcubWF4VGltZT13LnBhcnNlRGF0ZSh3LmNvbmZpZy5tYXhUaW1lLCJIOmkiKSk7dy5taW5EYXRlSGFzVGltZT0hIXcuY29uZmlnLm1pbkRhdGUmJih3LmNvbmZpZy5taW5EYXRlLmdldEhvdXJzKCk+MHx8dy5jb25maWcubWluRGF0ZS5nZXRNaW51dGVzKCk+MHx8dy5jb25maWcubWluRGF0ZS5nZXRTZWNvbmRzKCk+MCksdy5tYXhEYXRlSGFzVGltZT0hIXcuY29uZmlnLm1heERhdGUmJih3LmNvbmZpZy5tYXhEYXRlLmdldEhvdXJzKCk+MHx8dy5jb25maWcubWF4RGF0ZS5nZXRNaW51dGVzKCk+MHx8dy5jb25maWcubWF4RGF0ZS5nZXRTZWNvbmRzKCk+MCl9KCksdy51dGlscz17Z2V0RGF5c0luTW9udGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dy5jdXJyZW50TW9udGgpLHZvaWQgMD09PXQmJih0PXcuY3VycmVudFllYXIpLDE9PT1lJiYodCU0PT0wJiZ0JTEwMCE9MHx8dCU0MDA9PTApPzI5OncubDEwbi5kYXlzSW5Nb250aFtlXX19LHcuaXNNb2JpbGV8fGZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZih3LmNhbGVuZGFyQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci1jYWxlbmRhciIpLHcuY2FsZW5kYXJDb250YWluZXIudGFiSW5kZXg9LTEsIXcuY29uZmlnLm5vQ2FsZW5kYXIpe2lmKGUuYXBwZW5kQ2hpbGQoKHcubW9udGhOYXY9cygiZGl2IiwiZmxhdHBpY2tyLW1vbnRocyIpLHcueWVhckVsZW1lbnRzPVtdLHcubW9udGhFbGVtZW50cz1bXSx3LnByZXZNb250aE5hdj1zKCJzcGFuIiwiZmxhdHBpY2tyLXByZXYtbW9udGgiKSx3LnByZXZNb250aE5hdi5pbm5lckhUTUw9dy5jb25maWcucHJldkFycm93LHcubmV4dE1vbnRoTmF2PXMoInNwYW4iLCJmbGF0cGlja3ItbmV4dC1tb250aCIpLHcubmV4dE1vbnRoTmF2LmlubmVySFRNTD13LmNvbmZpZy5uZXh0QXJyb3cscSgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJfaGlkZVByZXZNb250aEFycm93Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuX19oaWRlUHJldk1vbnRoQXJyb3d9LHNldDpmdW5jdGlvbihlKXt3Ll9faGlkZVByZXZNb250aEFycm93IT09ZSYmKGQody5wcmV2TW9udGhOYXYsImZsYXRwaWNrci1kaXNhYmxlZCIsZSksdy5fX2hpZGVQcmV2TW9udGhBcnJvdz1lKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodywiX2hpZGVOZXh0TW9udGhBcnJvdyIse2dldDpmdW5jdGlvbigpe3JldHVybiB3Ll9faGlkZU5leHRNb250aEFycm93fSxzZXQ6ZnVuY3Rpb24oZSl7dy5fX2hpZGVOZXh0TW9udGhBcnJvdyE9PWUmJihkKHcubmV4dE1vbnRoTmF2LCJmbGF0cGlja3ItZGlzYWJsZWQiLGUpLHcuX19oaWRlTmV4dE1vbnRoQXJyb3c9ZSl9fSksdy5jdXJyZW50WWVhckVsZW1lbnQ9dy55ZWFyRWxlbWVudHNbMF0sRGUoKSx3Lm1vbnRoTmF2KSksdy5pbm5lckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItaW5uZXJDb250YWluZXIiKSx3LmNvbmZpZy53ZWVrTnVtYmVycyl7dmFyIHQ9ZnVuY3Rpb24oKXt3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1dlZWtzIik7dmFyIGU9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWt3cmFwcGVyIik7ZS5hcHBlbmRDaGlsZChzKCJzcGFuIiwiZmxhdHBpY2tyLXdlZWtkYXkiLHcubDEwbi53ZWVrQWJicmV2aWF0aW9uKSk7dmFyIHQ9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtzIik7cmV0dXJuIGUuYXBwZW5kQ2hpbGQodCkse3dlZWtXcmFwcGVyOmUsd2Vla051bWJlcnM6dH19KCksbj10LndlZWtXcmFwcGVyLGE9dC53ZWVrTnVtYmVyczt3LmlubmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKG4pLHcud2Vla051bWJlcnM9YSx3LndlZWtXcmFwcGVyPW59dy5yQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci1yQ29udGFpbmVyIiksdy5yQ29udGFpbmVyLmFwcGVuZENoaWxkKCQoKSksdy5kYXlzQ29udGFpbmVyfHwody5kYXlzQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci1kYXlzIiksdy5kYXlzQ29udGFpbmVyLnRhYkluZGV4PS0xKSxKKCksdy5yQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuZGF5c0NvbnRhaW5lciksdy5pbm5lckNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LnJDb250YWluZXIpLGUuYXBwZW5kQ2hpbGQody5pbm5lckNvbnRhaW5lcil9dy5jb25maWcuZW5hYmxlVGltZSYmZS5hcHBlbmRDaGlsZChmdW5jdGlvbigpe3cuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFzVGltZSIpLHcuY29uZmlnLm5vQ2FsZW5kYXImJncuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgibm9DYWxlbmRhciIpO3ZhciBlPXgody5jb25maWcpO3cudGltZUNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItdGltZSIpLHcudGltZUNvbnRhaW5lci50YWJJbmRleD0tMTt2YXIgdD1zKCJzcGFuIiwiZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yIiwiOiIpLG49bSgiZmxhdHBpY2tyLWhvdXIiLHsiYXJpYS1sYWJlbCI6dy5sMTBuLmhvdXJBcmlhTGFiZWx9KTt3LmhvdXJFbGVtZW50PW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07dmFyIGE9bSgiZmxhdHBpY2tyLW1pbnV0ZSIseyJhcmlhLWxhYmVsIjp3LmwxMG4ubWludXRlQXJpYUxhYmVsfSk7dy5taW51dGVFbGVtZW50PWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0sdy5ob3VyRWxlbWVudC50YWJJbmRleD13Lm1pbnV0ZUVsZW1lbnQudGFiSW5kZXg9LTEsdy5ob3VyRWxlbWVudC52YWx1ZT1vKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLmdldEhvdXJzKCk6dy5jb25maWcudGltZV8yNGhyP2UuaG91cnM6ZnVuY3Rpb24oZSl7c3dpdGNoKGUlMjQpe2Nhc2UgMDpjYXNlIDEyOnJldHVybiAxMjtkZWZhdWx0OnJldHVybiBlJTEyfX0oZS5ob3VycykpLHcubWludXRlRWxlbWVudC52YWx1ZT1vKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLmdldE1pbnV0ZXMoKTplLm1pbnV0ZXMpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdGVwIix3LmNvbmZpZy5ob3VySW5jcmVtZW50LnRvU3RyaW5nKCkpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcuY29uZmlnLm1pbnV0ZUluY3JlbWVudC50b1N0cmluZygpKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIix3LmNvbmZpZy50aW1lXzI0aHI\/IjAiOiIxIiksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsdy5jb25maWcudGltZV8yNGhyPyIyMyI6IjEyIiksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIsIjIiKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLCIwIiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4IiwiNTkiKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKG4pLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZCh0KSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoYSksdy5jb25maWcudGltZV8yNGhyJiZ3LnRpbWVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgidGltZTI0aHIiKTtpZih3LmNvbmZpZy5lbmFibGVTZWNvbmRzKXt3LnRpbWVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFzU2Vjb25kcyIpO3ZhciBpPW0oImZsYXRwaWNrci1zZWNvbmQiKTt3LnNlY29uZEVsZW1lbnQ9aS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSx3LnNlY29uZEVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRTZWNvbmRzKCk6ZS5zZWNvbmRzKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdGVwIix3Lm1pbnV0ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJzdGVwIikpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsIjAiKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLCI1OSIpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIsIjIiKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQocygic3BhbiIsImZsYXRwaWNrci10aW1lLXNlcGFyYXRvciIsIjoiKSksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGkpfXcuY29uZmlnLnRpbWVfMjRocnx8KHcuYW1QTT1zKCJzcGFuIiwiZmxhdHBpY2tyLWFtLXBtIix3LmwxMG4uYW1QTVtyKCh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmhvdXJFbGVtZW50LnZhbHVlOncuY29uZmlnLmRlZmF1bHRIb3VyKT4xMSldKSx3LmFtUE0udGl0bGU9dy5sMTBuLnRvZ2dsZVRpdGxlLHcuYW1QTS50YWJJbmRleD0tMSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQody5hbVBNKSk7cmV0dXJuIHcudGltZUNvbnRhaW5lcn0oKSk7ZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJyYW5nZU1vZGUiLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFuaW1hdGUiLCEwPT09dy5jb25maWcuYW5pbWF0ZSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJtdWx0aU1vbnRoIix3LmNvbmZpZy5zaG93TW9udGhzPjEpLHcuY2FsZW5kYXJDb250YWluZXIuYXBwZW5kQ2hpbGQoZSk7dmFyIGk9dm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8mJnZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvLm5vZGVUeXBlO2lmKCh3LmNvbmZpZy5pbmxpbmV8fHcuY29uZmlnLnN0YXRpYykmJih3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQody5jb25maWcuaW5saW5lPyJpbmxpbmUiOiJzdGF0aWMiKSx3LmNvbmZpZy5pbmxpbmUmJighaSYmdy5lbGVtZW50LnBhcmVudE5vZGU\/dy5lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHcuY2FsZW5kYXJDb250YWluZXIsdy5faW5wdXQubmV4dFNpYmxpbmcpOnZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvJiZ3LmNvbmZpZy5hcHBlbmRUby5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKSksdy5jb25maWcuc3RhdGljKSl7dmFyIGw9cygiZGl2IiwiZmxhdHBpY2tyLXdyYXBwZXIiKTt3LmVsZW1lbnQucGFyZW50Tm9kZSYmdy5lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGwsdy5lbGVtZW50KSxsLmFwcGVuZENoaWxkKHcuZWxlbWVudCksdy5hbHRJbnB1dCYmbC5hcHBlbmRDaGlsZCh3LmFsdElucHV0KSxsLmFwcGVuZENoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpfXcuY29uZmlnLnN0YXRpY3x8dy5jb25maWcuaW5saW5lfHwodm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8\/dy5jb25maWcuYXBwZW5kVG86d2luZG93LmRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpfSgpLGZ1bmN0aW9uKCl7dy5jb25maWcud3JhcCYmWyJvcGVuIiwiY2xvc2UiLCJ0b2dnbGUiLCJjbGVhciJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwody5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLSIrZSsiXSIpLChmdW5jdGlvbih0KXtyZXR1cm4gQSh0LCJjbGljayIsd1tlXSl9KSl9KSk7aWYody5pc01vYmlsZSlyZXR1cm4gdm9pZCBmdW5jdGlvbigpe3ZhciBlPXcuY29uZmlnLmVuYWJsZVRpbWU\/dy5jb25maWcubm9DYWxlbmRhcj8idGltZSI6ImRhdGV0aW1lLWxvY2FsIjoiZGF0ZSI7dy5tb2JpbGVJbnB1dD1zKCJpbnB1dCIsdy5pbnB1dC5jbGFzc05hbWUrIiBmbGF0cGlja3ItbW9iaWxlIiksdy5tb2JpbGVJbnB1dC50YWJJbmRleD0xLHcubW9iaWxlSW5wdXQudHlwZT1lLHcubW9iaWxlSW5wdXQuZGlzYWJsZWQ9dy5pbnB1dC5kaXNhYmxlZCx3Lm1vYmlsZUlucHV0LnJlcXVpcmVkPXcuaW5wdXQucmVxdWlyZWQsdy5tb2JpbGVJbnB1dC5wbGFjZWhvbGRlcj13LmlucHV0LnBsYWNlaG9sZGVyLHcubW9iaWxlRm9ybWF0U3RyPSJkYXRldGltZS1sb2NhbCI9PT1lPyJZLW0tZFxcVEg6aTpTIjoiZGF0ZSI9PT1lPyJZLW0tZCI6Ikg6aTpTIix3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjAmJih3Lm1vYmlsZUlucHV0LmRlZmF1bHRWYWx1ZT13Lm1vYmlsZUlucHV0LnZhbHVlPXcuZm9ybWF0RGF0ZSh3LnNlbGVjdGVkRGF0ZXNbMF0sdy5tb2JpbGVGb3JtYXRTdHIpKTt3LmNvbmZpZy5taW5EYXRlJiYody5tb2JpbGVJbnB1dC5taW49dy5mb3JtYXREYXRlKHcuY29uZmlnLm1pbkRhdGUsIlktbS1kIikpO3cuY29uZmlnLm1heERhdGUmJih3Lm1vYmlsZUlucHV0Lm1heD13LmZvcm1hdERhdGUody5jb25maWcubWF4RGF0ZSwiWS1tLWQiKSk7dy5pbnB1dC5nZXRBdHRyaWJ1dGUoInN0ZXAiKSYmKHcubW9iaWxlSW5wdXQuc3RlcD1TdHJpbmcody5pbnB1dC5nZXRBdHRyaWJ1dGUoInN0ZXAiKSkpO3cuaW5wdXQudHlwZT0iaGlkZGVuIix2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC50eXBlPSJoaWRkZW4iKTt0cnl7dy5pbnB1dC5wYXJlbnROb2RlJiZ3LmlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHcubW9iaWxlSW5wdXQsdy5pbnB1dC5uZXh0U2libGluZyl9Y2F0Y2goZSl7fUEody5tb2JpbGVJbnB1dCwiY2hhbmdlIiwoZnVuY3Rpb24oZSl7dy5zZXREYXRlKGcoZSkudmFsdWUsITEsdy5tb2JpbGVGb3JtYXRTdHIpLHBlKCJvbkNoYW5nZSIpLHBlKCJvbkNsb3NlIil9KSl9KCk7dmFyIGU9bChpZSw1MCk7dy5fZGVib3VuY2VkQ2hhbmdlPWwoTiwzMDApLHcuZGF5c0NvbnRhaW5lciYmIS9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmQSh3LmRheXNDb250YWluZXIsIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKGUpeyJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZhZShnKGUpKX0pKTtBKHdpbmRvdy5kb2N1bWVudC5ib2R5LCJrZXlkb3duIixuZSksdy5jb25maWcuaW5saW5lfHx3LmNvbmZpZy5zdGF0aWN8fEEod2luZG93LCJyZXNpemUiLGUpO3ZvaWQgMCE9PXdpbmRvdy5vbnRvdWNoc3RhcnQ\/QSh3aW5kb3cuZG9jdW1lbnQsInRvdWNoc3RhcnQiLFopOkEod2luZG93LmRvY3VtZW50LCJtb3VzZWRvd24iLFopO0Eod2luZG93LmRvY3VtZW50LCJmb2N1cyIsWix7Y2FwdHVyZTohMH0pLCEwPT09dy5jb25maWcuY2xpY2tPcGVucyYmKEEody5faW5wdXQsImZvY3VzIix3Lm9wZW4pLEEody5faW5wdXQsImNsaWNrIix3Lm9wZW4pKTt2b2lkIDAhPT13LmRheXNDb250YWluZXImJihBKHcubW9udGhOYXYsImNsaWNrIixDZSksQSh3Lm1vbnRoTmF2LFsia2V5dXAiLCJpbmNyZW1lbnQiXSxGKSxBKHcuZGF5c0NvbnRhaW5lciwiY2xpY2siLHVlKSk7aWYodm9pZCAwIT09dy50aW1lQ29udGFpbmVyJiZ2b2lkIDAhPT13Lm1pbnV0ZUVsZW1lbnQmJnZvaWQgMCE9PXcuaG91ckVsZW1lbnQpe3ZhciB0PWZ1bmN0aW9uKGUpe3JldHVybiBnKGUpLnNlbGVjdCgpfTtBKHcudGltZUNvbnRhaW5lcixbImluY3JlbWVudCJdLEkpLEEody50aW1lQ29udGFpbmVyLCJibHVyIixJLHtjYXB0dXJlOiEwfSksQSh3LnRpbWVDb250YWluZXIsImNsaWNrIixZKSxBKFt3LmhvdXJFbGVtZW50LHcubWludXRlRWxlbWVudF0sWyJmb2N1cyIsImNsaWNrIl0sdCksdm9pZCAwIT09dy5zZWNvbmRFbGVtZW50JiZBKHcuc2Vjb25kRWxlbWVudCwiZm9jdXMiLChmdW5jdGlvbigpe3JldHVybiB3LnNlY29uZEVsZW1lbnQmJncuc2Vjb25kRWxlbWVudC5zZWxlY3QoKX0pKSx2b2lkIDAhPT13LmFtUE0mJkEody5hbVBNLCJjbGljayIsKGZ1bmN0aW9uKGUpe0koZSksTigpfSkpfXcuY29uZmlnLmFsbG93SW5wdXQmJkEody5faW5wdXQsImJsdXIiLHRlKX0oKSwody5zZWxlY3RlZERhdGVzLmxlbmd0aHx8dy5jb25maWcubm9DYWxlbmRhcikmJih3LmNvbmZpZy5lbmFibGVUaW1lJiZfKHcuY29uZmlnLm5vQ2FsZW5kYXI\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo6dm9pZCAwKSxiZSghMSkpLGsoKTt2YXIgdD0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOyF3LmlzTW9iaWxlJiZ0JiZjZSgpLHBlKCJvblJlYWR5Iil9KCksd31mdW5jdGlvbiBrKGUsdCl7Zm9yKHZhciBuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH0pKSxhPVtdLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIG89bltpXTt0cnl7aWYobnVsbCE9PW8uZ2V0QXR0cmlidXRlKCJkYXRhLWZwLW9taXQiKSljb250aW51ZTt2b2lkIDAhPT1vLl9mbGF0cGlja3ImJihvLl9mbGF0cGlja3IuZGVzdHJveSgpLG8uX2ZsYXRwaWNrcj12b2lkIDApLG8uX2ZsYXRwaWNrcj1FKG8sdHx8e30pLGEucHVzaChvLl9mbGF0cGlja3IpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fXJldHVybiAxPT09YS5sZW5ndGg\/YVswXTphfSJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTEVsZW1lbnQmJiJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTENvbGxlY3Rpb24mJiJ1bmRlZmluZWQiIT10eXBlb2YgTm9kZUxpc3QmJihIVE1MQ29sbGVjdGlvbi5wcm90b3R5cGUuZmxhdHBpY2tyPU5vZGVMaXN0LnByb3RvdHlwZS5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsodGhpcyxlKX0sSFRNTEVsZW1lbnQucHJvdG90eXBlLmZsYXRwaWNrcj1mdW5jdGlvbihlKXtyZXR1cm4gayhbdGhpc10sZSl9KTt2YXIgVD1mdW5jdGlvbihlLHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT9rKHdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGUpLHQpOmUgaW5zdGFuY2VvZiBOb2RlP2soW2VdLHQpOmsoZSx0KX07cmV0dXJuIFQuZGVmYXVsdENvbmZpZz17fSxULmwxMG5zPXtlbjplKHt9LGkpLGRlZmF1bHQ6ZSh7fSxpKX0sVC5sb2NhbGl6ZT1mdW5jdGlvbih0KXtULmwxMG5zLmRlZmF1bHQ9ZShlKHt9LFQubDEwbnMuZGVmYXVsdCksdCl9LFQuc2V0RGVmYXVsdHM9ZnVuY3Rpb24odCl7VC5kZWZhdWx0Q29uZmlnPWUoZSh7fSxULmRlZmF1bHRDb25maWcpLHQpfSxULnBhcnNlRGF0ZT1DKHt9KSxULmZvcm1hdERhdGU9Yih7fSksVC5jb21wYXJlRGF0ZXM9TSwidW5kZWZpbmVkIiE9dHlwZW9mIGpRdWVyeSYmdm9pZCAwIT09alF1ZXJ5LmZuJiYoalF1ZXJ5LmZuLmZsYXRwaWNrcj1mdW5jdGlvbihlKXtyZXR1cm4gayh0aGlzLGUpfSksRGF0ZS5wcm90b3R5cGUuZnBfaW5jcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLHRoaXMuZ2V0TW9udGgoKSx0aGlzLmdldERhdGUoKSsoInN0cmluZyI9PXR5cGVvZiBlP3BhcnNlSW50KGUsMTApOmUpKX0sInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuZmxhdHBpY2tyPVQpLFR9KSk7Ci8qKiAvanMvdmFuaWxsYWpzL2ZsYXRwaWNrci5mci5qcyAqKi8KdmFyIF9fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MTciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMjo0NiI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDE6NDYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUxOjMwIjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMS0xMi0yMSAxMzozMDo1MiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYixhKXsib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2R1bGU\/YShleHBvcnRzKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sYSk6KGI9InVuZGVmaW5lZCIhPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmJ8fHNlbGYsYShiLmZyPXt9KSl9KSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBhPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmZsYXRwaWNrcj93aW5kb3cuZmxhdHBpY2tyOntsMTBuczp7fX0sYz17Zmlyc3REYXlPZldlZWs6MSx3ZWVrZGF5czp7c2hvcnRoYW5kOiJkaW0gbHVuIG1hciBtZXIgamV1IHZlbiBzYW0iLnNwbGl0KCIgIiksbG9uZ2hhbmQ6ImRpbWFuY2hlIGx1bmRpIG1hcmRpIG1lcmNyZWRpIGpldWRpIHZlbmRyZWRpIHNhbWVkaSIuc3BsaXQoIiAiKX0sbW9udGhzOntzaG9ydGhhbmQ6ImphbnYgZsOpdnIgbWFycyBhdnIgbWFpIGp1aW4ganVpbCBhb8O7dCBzZXB0IG9jdCBub3YgZMOpYyIuc3BsaXQoIiAiKSwKbG9uZ2hhbmQ6ImphbnZpZXIgZsOpdnJpZXIgbWFycyBhdnJpbCBtYWkganVpbiBqdWlsbGV0IGFvw7t0IHNlcHRlbWJyZSBvY3RvYnJlIG5vdmVtYnJlIGTDqWNlbWJyZSIuc3BsaXQoIiAiKX0sb3JkaW5hbDpmdW5jdGlvbihkKXtyZXR1cm4gMTxkPyIiOiJlciJ9LHJhbmdlU2VwYXJhdG9yOiIgYXUgIix3ZWVrQWJicmV2aWF0aW9uOiJTZW0iLHNjcm9sbFRpdGxlOiJEw6lmaWxlciBwb3VyIGF1Z21lbnRlciBsYSB2YWxldXIiLHRvZ2dsZVRpdGxlOiJDbGlxdWVyIHBvdXIgYmFzY3VsZXIiLHRpbWVfMjRocjohMH07YS5sMTBucy5mcj1jO2E9YS5sMTBucztiLkZyZW5jaD1jO2IuZGVmYXVsdD1hO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pOwovKiogL2pzL2ZyLm5ld2NhcnMuaW5saW5lLmpzICoqLwp2YXIganNfZDJjX2dldF92YWw9KGpzX2QyY19nZXRfdmFsfHxmdW5jdGlvbihpZCl7dHJ5e3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWU7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiU3lzdGVtIGZhaWxlZCB3aGlsZSByZXRyaWV2aW5nIHJlcGxhY2VtZW50IHZhbHVlOiAiK2lkLGV4KTtyZXR1cm4nJzt9fSk7dmFyIGlkZW50X2EwOGRiOWUwZjRmZTMwNmZlYWY5OGI2ZTM5ZmIwYzI4O3RyeXtEMkZUKHsibGl2ZSI6IlwvXC9hc3NldHMuYWRvYmVkdG0uY29tXC8yNDhkNjNjMmZmNmJcLzE4MWFkZDE1MmQwMFwvbGF1bmNoLWNmNWZlNGViMmI3Mi5taW4uanMiLCJzdGFnaW5nIjoiXC9cL2Fzc2V0cy5hZG9iZWR0bS5jb21cLzI0OGQ2M2MyZmY2YlwvMTgxYWRkMTUyZDAwXC9sYXVuY2gtOThiYTExZDEyNGNkLXN0YWdpbmcubWluLmpzIn0seyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiJBODE3MCIsImNsaWVudCI6ImxpbmNvbG4iLCJzaXRlIjoiZGM6ZDJjOmNhIiwicGFnZUlkIjoic2hvd3Jvb20ifSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82YTdhZjA0ODQxNzM5YmY3MmRlZTQ5YTMyNzU3MzA4Mjt0cnl7RDJBU0MoeyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiJBODE3MCIsImNsaWVudCI6ImxpbmNvbG4iLCJwYWdlSWQiOiJzaG93cm9vbSIsIm9lbUluZm8iOnsib2VtRGVhbGVyQ29kZSI6IkE4MTcwIiwiMCI6IkE4MTcwIiwib2VtIjoiTGluY29sbiIsIjEiOiJMaW5jb2xuIn0sImRlYWxlcl9uYW1lIjoiIiwiZm9ybU1hcCI6eyJBREZCdXJsaW5ndG9uX0NlbnRyZV8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZjYW1wYmVsbHJpdmVyY2Fycy5jYV8oRDJDX01lZGlhKV8tX0xlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfQXBwIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0NhciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X09mZiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfUERGIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1JlcSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfU2VyIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfVHJhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1ZlaCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhXy1fT3JnYW5pYylfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSJ9LCJBREZkYW5pZWxwYXJlZG9kZ2UuY29tXyhwYXJfRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSJ9LCJBREZkZW1vY3JtLmQyY21lZGlhLmNhXyhEMkNfTWVkaWFfLV9PcmdhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGVtb2NybS5kMmNtZWRpYS5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIn0sIkFERk1vbl9zaXRlXy1fRDJDX01lZGlhXy1fTGVhZF86X0RlbWFuZGUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJyZBdGlsZGU7JmNvcHk7Y2hhbmdlIChTTVMpIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gTW9uIHNpdGUgLSBEMkMgTWVkaWEgLSBMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCcmQXRpbGRlOyZjb3B5O2NoYW5nZSAoU01TKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV8tXyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV9fLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY18iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY19wIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19fTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fXyhEMkNfTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIn0sIkFERnBhbGxhZGlub3N1YmFydS5jYV8ocGFyX0QyQ19NZWRpYV8tX08iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9zdWJhcnUuY2EgKHBhciBEMkMgTWVkaWEgLSBPcmdhbmljKSAtIEQyQyBNZWRpYSAtIExlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10ifSwiQURGU2NhcmJvcm91Z2hfVG93bl9DZW50cmVfLV9FVl9Ub3VyXy1fRCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU2hlcndheV9HYXJkZW5zXy1fRVZfVG91cl8tX0RyaXZlZmVzdCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNoZXJ3YXkgR2FyZGVucyAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTcXVhcmVfT25lXy1fRVZfVG91cl8tX0RyaXZlZmVzdF8rX0tpIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9LaWFfU2lnbl9VcF9IbyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gS2lhIFNpZ24gVXAgSG90IExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZVcHBlcl9DYW5hZGFfTWFsbF8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBSUNoYXRib3RMZWFkIjp7IkZSRU5DSCI6IkxlYWQgOiBDaGF0Qm90IElBIiwiRU5HTElTSCI6IkxlYWQ6IENoYXRCb3QgQUkifSwiQXZhaWxhYmlsaXR5VXNlZCI6eyJGUkVOQ0giOiJMZWFkOiBEaXNwb25pYmlsaXRlIGQndW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkifSwiQmFubmVyRm9ybSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGZvcm0gYmFubmVyIiwiRU5HTElTSCI6IkxlYWQ6IEJhbm5lciBGb3JtIFJlcXVlc3QifSwiQmVzdFByaWNlUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSAgbWVpbGxldXIgcHJpeCAodmVoaWN1bGUgbmV1ZikiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSBiZXN0IHByaWNlIChuZXcgdmVoaWNsZSkifSwiQm9keVNob3AiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgZW4gY2Fyb3NzZXJpZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIGJvZHkgc2hvcCBhcHBvaW50bWVudCByZXF1ZXN0In0sIkJyb2NodXJlcyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBicm9jaHVyZSIsIkVOR0xJU0giOiJMZWFkIDogQnJvY2h1cmUgcmVxdWVzdCJ9LCJCcm9jaHVyZXNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGJyb2NodXJlIiwiRU5HTElTSCI6IkxlYWQgOiBCcm9jaHVyZSByZXF1ZXN0In0sIkJ1aWxkQW5kUHJpY2VfU2F2ZSI6eyJGUkVOQ0giOiJMZWFkOiBDb25maWd1cmF0aW9uIGQndW4gdmVoaWN1bGUgbmV1ZiIsIkVOR0xJU0giOiJMZWFkOiBOZXcgVmVoaWNsZSBDb25maWd1cmF0aW9uIChCdWlsZCAmIFByaWNlKSJ9LCJCdWlsZEFuZFByaWNlX1N0b2NrIjp7IkZSRU5DSCI6IkxlYWQ6IERpc3BvbmliaWxpdGUgZCd1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSJ9LCJDYXJwcm9vZk1haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgQ2FyRmF4IiwiRU5HTElTSCI6IkxlYWQ6IENhckZheCByZXF1ZXN0In0sIkNvbnRhY3RSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCJ9LCJDb250YWN0VXNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCJ9LCJDb250YWN0VmlzaXRSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgVmVudGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBTYWxlcyJ9LCJDb250YWN0VmlzaXRSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgVmVudGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBTYWxlcyJ9LCJDcmVkaXRCb29zdE11bHRpIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcHJlcXVhbGlmaWNhdGlvbiBkZSBjcmVkaXQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgQ3JlZGl0IFByZS1RdWFsaWZpY2F0aW9uIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXNpZXVycyBldGFwZXMpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IChQbHVzaWV1cnMgZXRhcGVzIDJlIGNoYW5jZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWxpc3RlcCAybmQgY2hhbmNlKSJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCI6eyJGUkVOQ0giOiJMZWFkOiBBcHByb2JhdGlvbiBkZSBjcmVkaXQgaW5zdGFudGFuZWUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBDcmVkaXQgQXBwcm92YWwifSwiQ3JlZGl0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdE1vYmlsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdE1vYmlsZUZ1bGwiOnsiRlJFTkNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0X1Nob3J0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50ICh2ZXJzaW9uIGNvdXJ0ZSkiLCJFTkdMSVNIIjoiTGVhZCA6IENyZWRpdCBhcHBsaWNhdGlvbiAoc2hvcnQgdmVyc2lvbikifSwiRGVhbGVyQXBwb2ludG1lbnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMiLCJFTkdMSVNIIjoiTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJEaXNjb3Zlck9mZmVyIjp7IkZSRU5DSCI6IkxlYWQgOiBWb2lyIGwnb2ZmcmUgY291cG9uIFNSUCIsIkVOR0xJU0giOiJMZWFkOiBTZWUgT2ZmZXIgQ291cG9uIGluIFNSUCJ9LCJFc3RoZXRpY1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhIGwnZXN0aGV0cXVlIGV0IGxhdmUtYXV0byIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIGVzdGhldGljIGFuZCBjYXIgd2FzaCBhcHBvaW50bWVudCByZXF1ZXN0In0sImZhY2Vib29rQ29ubmVjdCI6eyJGUkVOQ0giOiJMZWFkOiBSYWJhaXMgRmFjZWJvb2siLCJFTkdMSVNIIjoiTGVhZDogRmFjZWJvb2sgUmViYXRlIn0sIkZpbmRWZWhpY2xlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlY2hlcmNoZSBkZSB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IHRvIGZpbmQgYSBwcmUtb3duZWQgdmVoaWNsZSJ9LCJoZWFkZXJTZXJ2aWNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgRXhwcmVzcyJ9LCJNYWtlT2ZmZXIiOnsiRlJFTkNIIjoiTGVhZCA6IE9mZnJlIGQnYWNoYXQgc3VyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSJ9LCJNYWtlT2ZmZXJOZXciOnsiRlJFTkNIIjoiTGVhZCA6IE9mZnJlIGQnYWNoYXQgc3VyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSJ9LCJtZW51U2VydmljZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IEV4cHJlc3MifSwiTW9udGhseVBheW1lbnRzIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyJ9LCJNb250aGx5UGF5bWVudHNfTkVXIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyJ9LCJNb250aGx5UGF5bWVudHNfU01TIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMgLSBTTVMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyAtIFNNUyJ9LCJNb250aGx5UGF5bWVudHNfU01TX05FVyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIC0gU01TIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMgLSBTTVMifSwiUGFydHNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbW1hbmRlIHBpJmVncmF2ZTtjZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciB2ZWhpY2xlIHBhcnRzIn0sIlBob3RvUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHBob3RvcyIsIkVOR0xJU0giOiJMZWFkOiBQaG90byByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlMyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlQUEiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlByaWNlUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwcml4IiwiRU5HTElTSCI6IkxlYWQ6IFByaWNlIHJlcXVlc3QifSwiUHJpY2VSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHByaXgiLCJFTkdMSVNIIjoiTGVhZDogUHJpY2UgcmVxdWVzdCJ9LCJQcmljZVZlaGljbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkOiBUcmFkZS1pbiByZXF1ZXN0In0sIlByaWNlVmVoaWNsZUFjY3V0cmFkZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQgOiBUcmFkZS1pbiByZXF1ZXN0In0sIlByaWNlVmVoaWNsZU5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUXVpY2tFbWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IEV4cHJlc3MgcmVxdWVzdCJ9LCJRdWlja0VtYWlsTmV3SW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIEV4cHJlc3MgKGludmVudGFpcmUgbmV1ZikiLCJFTkdMSVNIIjoiTGVhZDogRXhwcmVzcyByZXF1ZXN0IChuZXcgaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb24iOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAodmVoaWN1bGUgZW4gaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkifSwiUmViYXRlQ291cG9uSW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb25OZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24ifSwiUmViYXRlQ291cG9uTmV3Qk5QIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNvbmZpZ3VyYXRldXIpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoY29uZmlndXJhdG9yKSJ9LCJSZWJhdGVDb3Vwb25OZXdJbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbk5ld1NsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlYmF0ZUNvdXBvblByb21vIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoYm91dG9uICdQcm9tb3Rpb25zJykiLCJFTkdMSVNIIjoiTGVhZDogUmViYXRlIENvdXBvbiByZXF1ZXN0ICgnUHJvbW90aW9ucycgYnV0dG9uKSJ9LCJSZWJhdGVDb3Vwb25TbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWJhdGVDb3Vwb25Vc2VkU2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmVjYWxscyI6eyJGUkVOQ0giOiJEZW1hbmRlIGQnaW5mb3JtYXRpb24gc3VyIGxlcyByYXBwZWxzIiwiRU5HTElTSCI6IlJlY2FsbCBpbmZvcm1hdGlvbiByZXF1ZXN0In0sIlJlc2VydmVJdE5vdyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBwb3VyIHJlc2VydmVyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIHByZS1vcmRlciBhIHZlaGljbGUifSwiUmVzZXJ2ZUl0Tm93TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIHBvdXIgcmVzZXJ2ZXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gcHJlLW9yZGVyIGEgdmVoaWNsZSJ9LCJTZWxsQ2FyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIFZlbmRleiBWZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBidXkgeW91ciBjYXIifSwiU2VsbENhcl9TaG9ydCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBWZW5kZXotbm91cyB2b3RyZSB2ZWhpY3VsZSAodmVyc2lvbiBjb3VydGUpIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIGJ1eSB5b3VyIGNhciAoU2hvcnQgdmVyc2lvbikifSwiU2VydmljZVJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiU01TTGVhZCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIFNNUyAoVGV4dG8pIiwiRU5HTElTSCI6IkxlYWQ6IFNNUyByZXF1ZXN0In0sIlNNU0xlYWRfb2xkIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIFNNUyAoVGV4dG8pIiwiRU5HTElTSCI6IkxlYWQgOiBTTVMgcmVxdWVzdCJ9LCJTcGVjc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBmaWNoZSBQREYgLSBWZWhpY3VsZSBlbiBpbnZlbnRhaXJlIiwiRU5HTElTSCI6IkxlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkifSwiU3BlY3NSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgYnJvY2h1cmUgUERGIiwiRU5HTElTSCI6IkxlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0In0sIlNSUENvbnRhY3RVcyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFNSUCIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCBmb3IgY29udGFjdCBTUlAifSwiVGVzdERyaXZlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnZXNzYWkgcm91dGllciIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHRlc3QgZHJpdmUifSwiVGVzdERyaXZlTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnZXNzYWkgcm91dGllciIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHRlc3QgZHJpdmUifSwiVGlyZXNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHBuZXVzIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIHRpcmVzIn0sIlByb21vTWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2ludml0YXRpb24gYSBsYSB2ZW50ZSBwcml2ZWUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgaW52aXRhdGlvbiB0byBwcml2YXRlIHNhbGUifSwiU2xpZGVXaWRnZXRGb3JtIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiQ29tcGFyZUZvcm0iOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJTZWFyY2hGaWx0ZXJzIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiaGVhZGVyR2xvYmFsU2VhcmNoIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifX0sInN1Yl9nYTQiOiJZIn0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOWZmNTE4OTgxMWE5NzZkMjM4M2JiNTQ0MTdmYTBkZTI7dHJ5eyhmdW5jdGlvbih3LGQsdCxyLHUpe3ZhciBmLG4saTt3W3VdPXdbdV18fFtdLGY9ZnVuY3Rpb24oKXt2YXIgbz17dGk6IjUwNzkzOTEiLGVuYWJsZUF1dG9TcGFUcmFja2luZzp0cnVlfTtvLnE9d1t1XSx3W3VdPW5ldyBVRVQobyksd1t1XS5wdXNoKCJwYWdlTG9hZCIpfSxuPWQuY3JlYXRlRWxlbWVudCh0KSxuLnNyYz1yLG4uYXN5bmM9MSxuLm9ubG9hZD1uLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciBzPXRoaXMucmVhZHlTdGF0ZTtzJiZzIT09ImxvYWRlZCImJnMhPT0iY29tcGxldGUifHwoZigpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPW51bGwpfSxpPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodClbMF0saS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGkpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvL2JhdC5iaW5nLmNvbS9iYXQuanMiLCJ1ZXRxIik7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82MDA1NzEwZDI5Mzk1ODlmMGRjNzBhM2YwNjNmM2E0ODt0cnl7dmFyIGRlcGxveW1lbnRUeXBlPScnK2pzX2QyY19nZXRfdmFsKCIyZWpoYmMweXlvZzB3d3ciKSsnJztpZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ1BhZ2VzIHZ1ZXMnLCdTZWN0aW9uLU5ldWYnLCcnLDEpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzkxYzQ5Zjg0ZjY5ZmNmYmI4M2Y2ZTI3OTUwZDZhZDg4O3RyeXskKGZ1bmN0aW9uKCl7dHJ5eyQoJy5kZWFsZXJNYXBMaW5rJykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6IkRpcmVjdGlvbnMgdmVycyAiK2pzX2QyY19nZXRfdmFsKCIxN2dhOHZobmNodms4Y2drIikrIiIsZ3Jhdml0eTonbm9ydGgnLHRoZW1lOidsaWdodCcsdHJpZ2dlcjonaG92ZXInLH0pO31jYXRjaChlKXt9fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9kNzViNzY4Mjg2ODQ4MDFlMjY2ZGJjYmIzYzgxMjA1NTt0cnl7JChmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlcjpub3QoLm5vdHJpZ2dlciknKS5vbignbW91c2VlbnRlcicsZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgKyAuZXh0ZW5kZWRQaG9uZScpLnNob3coKTt9KS5vbignbW91c2VsZWF2ZScsZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgKyAuZXh0ZW5kZWRQaG9uZScpLmhpZGUoKTt9KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2I3YTRlODgyM2VkNjU4MThkMTI2YWM5YTAwMTIzMmNjO3RyeXtpblZpZXdFeGVjKCcjbWFwX29wZW5faG91cnMnLGZ1bmN0aW9uKCl7bGV0IG1hcFVSTD0naHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKZzViblltU3hMMDBSVHRBOXZwemRBSXMma2V5PV9fS0VZX18mY2VudGVyPTQ2LjU5NTExMzAwMDAlMkMtODAuNjk4MDg1MjI0NjU4Jnpvb209MTAmbGFuZ3VhZ2U9ZnImcmVnaW9uPUNBJztsZXQgbWFwRnJhbWU9JCgnI21hcGZyYW1lJyk7aWYobWFwRnJhbWUubGVuZ3RoPjApe2luamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24oa2V5KXttYXBGcmFtZS5hdHRyKCdzcmMnLG1hcFVSTC5yZXBsYWNlKCdfX0tFWV9fJyxrZXkpKTt9KTt9CihuZXcgT3BlbkhvdXJzKHtjb250YWluZXI6JyNtYXBfb3Blbl9ob3VycycsYXV0b09wZW46dHJ1ZSx9KSkuaW5pdCgpO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTFjNDlmODRmNjlmY2ZiYjgzZjZlMjc5NTBkNmFkODg7dHJ5eyQoZnVuY3Rpb24oKXt0cnl7JCgnLmRlYWxlck1hcExpbmsnKS5kYXJrVG9vbHRpcCh7Y29udGVudDoiRGlyZWN0aW9ucyB2ZXJzICIranNfZDJjX2dldF92YWwoIjE3Z2E4dmhuY2h2azhjZ2siKSsiIixncmF2aXR5Oidub3J0aCcsdGhlbWU6J2xpZ2h0Jyx0cmlnZ2VyOidob3ZlcicsfSk7fWNhdGNoKGUpe319KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q3NWI3NjgyODY4NDgwMWUyNjZkYmNiYjNjODEyMDU1O3RyeXskKGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyOm5vdCgubm90cmlnZ2VyKScpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuc2hvdygpO30pLm9uKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuaGlkZSgpO30pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZjE2MmU0OGYxNDM2ZWJhNzZlZTExYmY4ODIyYzQ4NWM7dHJ5e3ZhciB1dG1fc291cmNlPWdldFBhcmFtZXRlckJ5TmFtZSgndXRtX3NvdXJjZScpO2pRdWVyeShmdW5jdGlvbigkKXtpZih1dG1fc291cmNlIT0iIil7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3RlcicsbnVsbCxudWxsLCIvIik7fQppZihDb29raWVzLmdldCgidXRtX2xhbmRpbmdfZm9vdGVyIik9PW51bGx8fENvb2tpZXMuZ2V0KCJ1dG1fbGFuZGluZ19mb290ZXIiKT09PSdudWxsJyl7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3Rlcicsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLDE4MCwiLyIpO30KaWYoJCgnI2dlbmVyaWNfZm9ybV9jb25maXJtJykubGVuZ3RoPDEpe3ZhciBGb3JtPSQoJzxmb3JtIGlkPSJnZW5lcmljX2Zvcm1fY29uZmlybSIgdGFyZ2V0PSJpZnJhbWVndHJhY2siIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPjwvZm9ybT4nKTt2YXIgbWFrZVZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiO3ZhciBtb2RlbFZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiI7dmFyIHllYXJWYWw9IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiO3ZhciByZWZlcmFsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIjt2YXIgc2VjdGlvblZhbD0nJytqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrJyc7dmFyIGZyb21BdXRvYXViYWluZT0kKCcjYXV0b2F1YmFpbmVfcG9wdXAnKS5sZW5ndGg+MCYmKCQoJyNhdXRvYXViYWluZV9wb3B1cCcpLnZhbCgpIT0nZmFsc2UnKTt2YXIgaW5wdXRzPVt7bmFtZToibGFiZWwiLHZhbHVlOiIiLCdjbGFzcyc6ImxhYmVsZW1haWwifSx7bmFtZToic2VjdGlvbiIsdmFsdWU6IiIsJ2NsYXNzJzoibGFiZWxzZWN0aW9uIn0se25hbWU6ImJyYW5kIix2YWx1ZTptYWtlVmFsLCdjbGFzcyc6ImJyYW5kZW1haWwifSx7bmFtZToibW9kZWwiLHZhbHVlOm1vZGVsVmFsLCdjbGFzcyc6Im1vZGVsZW1haWwifSx7bmFtZToieWVhciIsdmFsdWU6eWVhclZhbCwnY2xhc3MnOiJ5ZWFyZW1haWwifSx7bmFtZToiZ29vZ2xlaWQiLHZhbHVlOiIifSx7bmFtZToiZ29vZ2xlaWRkMmNtZWRpYSIsdmFsdWU6IiJ9LHtuYW1lOiJiaW5nY29uaWQiLHZhbHVlOiIifSx7bmFtZToiYmluZ2FjdGlvbmlkIix2YWx1ZToiIn0se25hbWU6ImJpbmdkb21haW5pZCIsdmFsdWU6IiJ9LHtuYW1lOiJndGFnX2NvbnZlcnNpb24iLHZhbHVlOiJndGFnIn0se25hbWU6ImFkcm9sbEFkdiIsdmFsdWU6IiJ9LHtuYW1lOiJhZHJvbGxQaXgiLHZhbHVlOiIifSx7bmFtZToiZmFjZWJvb2tDb25JZCIsdmFsdWU6IjQwNDIxMjYyMDQ0NjEwOSJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLHZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiZG9tYWluIix2YWx1ZToiYmVsYW5nZXJsaW5jb2xuLmNhIn0se25hbWU6InJlZmVycmVyIix2YWx1ZTpyZWZlcmFsVmFsfSx7bmFtZToiaXNleHByZXNzIix2YWx1ZToiIiwnY2xhc3MnOidpc2V4cHJlc3MnfSx7bmFtZToiaXNwcm9tbyIsdmFsdWU6IiJ9LHtuYW1lOiJpc2hvbWVwYWdlIix2YWx1ZToiIn0se25hbWU6InRlc3Rtb2RlIix2YWx1ZToiMCIsJ2NsYXNzJzoidGVzdG1vZGUifSx7bmFtZTondGV4dENhclNlY3Rpb25UeXBlJyx2YWx1ZTpzZWN0aW9uVmFsfSx7bmFtZToibGFuZyIsdmFsdWU6IkZSRU5DSCJ9LHtuYW1lOiJidXR0b25Qb3NpdGlvbiIsdmFsdWU6IiJ9LHtuYW1lOiJkZWFsZXJOYW1lIix2YWx1ZToiIn0se25hbWU6ImlzRnVsbFdpZHRoIix2YWx1ZToiIn0se25hbWU6ImlzTW9iaWxlTmV3VkRQIix2YWx1ZToiIn0se25hbWU6ImZyb21BdXRvQXViYWluZSIsdmFsdWU6MH1dCmZvcih2YXIgaT0wO2k8aW5wdXRzLmxlbmd0aDtpKyspeyQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIC8+JykuYXR0cihpbnB1dHNbaV0pLmFwcGVuZFRvKEZvcm0pO30KRm9ybS5hcHBlbmRUbygnI2NvbmZpcm1fZm9ybXMnKTtGb3JtLm9uKCdzdWJtaXQnLG9uQ29uZmlybVN1Ym1pdCk7fQppZigkKCcjZ3RyYWNrRnJhbWUnKS5sZW5ndGg8MSl7JCgnPGlmcmFtZT48L2lmcmFtZT4nKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6J2d0cmFja0ZyYW1lJyxuYW1lOidpZnJhbWVndHJhY2snLHJvbGU6J25vbmUnLHN0eWxlOid3aWR0aDoxcHg7aGVpZ2h0OjFweDsnLHRpdGxlOidmcmFtZSd9KS5hcHBlbmRUbygnI2NvbmZpcm1fZm9ybXMnKTt9fSk7dmFyIHNldENoYXRaaW5kZXg9ZnVuY3Rpb24oKXt2YXIgY2hhdEVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZVt0aXRsZT0iY2hhdCB3aWRnZXQiXScpO2lmKGNoYXRFbCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaWZyYW1lW3RpdGxlPSJjaGF0IHdpZGdldCJdJykucGFyZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnei1pbmRleCcsJzEwJywnaW1wb3J0YW50Jyk7fX0Kc2V0VGltZW91dChzZXRDaGF0WmluZGV4LDMwMDApO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfM2EyNDZhNzk4ZDI1ZGNjMzMxNTc2ZWI1ZmQ4MGQ0N2U7dHJ5eyQoJy5jb25zZW50LmRpc2NsYWltZXInKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eTonc291dGgnLHRoZW1lOidsaWdodCcsdHJpZ2dlcjonaG92ZXInLG9wYWNpdHk6MSx9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2NiODBhNWYyZTc2ZjdlYmY3NWJkOTk3MzA2Mzc1OTg0O3RyeXt0cnl7d2luZG93LkQyQ0ZiQ29uc2VudD13aW5kb3cuRDJDRmJDb25zZW50fHx7X3N0YXRlOm51bGwsX3F1ZXVlOltdLF9mbHVzaDpmdW5jdGlvbigpe3ZhciBxPXRoaXMuX3F1ZXVlO3RoaXMuX3F1ZXVlPVtdO3EuZm9yRWFjaChmdW5jdGlvbihjYil7dHJ5e2NiKCk7fWNhdGNoKGUpe319KTt9LGdyYW50OmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9J2dyYW50JztpZih0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsJ2dyYW50Jyk7dGhpcy5fZmx1c2goKTt9fSxyZXZva2U6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0ncmV2b2tlJztpZih0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsJ3Jldm9rZScpO319LG9uR3JhbnRlZDpmdW5jdGlvbihjYil7aWYodHlwZW9mIGNiIT09J2Z1bmN0aW9uJyl7cmV0dXJuO31pZih0aGlzLl9zdGF0ZT09PSdncmFudCcmJnR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7dHJ5e2NiKCk7fWNhdGNoKGUpe319ZWxzZXt0aGlzLl9xdWV1ZS5wdXNoKGNiKTt9fSxzeW5jVG9GYnE6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdGF0ZSYmdHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLHRoaXMuX3N0YXRlKTtpZih0aGlzLl9zdGF0ZT09PSdncmFudCcpe3RoaXMuX2ZsdXNoKCk7fX19fTshZnVuY3Rpb24oZixiLGUsdixuLHQscyl7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q\/bi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKTpuLnF1ZXVlLnB1c2goYXJndW1lbnRzKX07aWYoIWYuX2ZicSlmLl9mYnE9bjtuLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7bi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwO3Quc3JjPXY7cz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpWzBdO3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxzKX0od2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0L2VuX1VTL2ZiZXZlbnRzLmpzJyk7ZmJxKCdpbml0JywnNDA0MjEyNjIwNDQ2MTA5Jyk7d2luZG93LkQyQ0ZiQ29uc2VudC5zeW5jVG9GYnEoKTt3aW5kb3cuRDJDRmJDb25zZW50Lm9uR3JhbnRlZChmdW5jdGlvbigpe2ZicSgndHJhY2snLCJQYWdlVmlldyIpO30pO3dpbmRvdy5EMkNGYkNvbnNlbnQub25HcmFudGVkKGZ1bmN0aW9uKCl7ZmJxKCd0cmFjaycsJ1ZpZXdDb250ZW50Jyk7fSk7fWNhdGNoKGV4KXt9O31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfODNjMjUyOGE3NTM4MGMwNzg3MmU5MmFkMmM5OWFlMmU7dHJ5e2lmKHR5cGVvZiBwYWdlIT09J3VuZGVmaW5lZCcmJnBhZ2U9PSJORVdDQVJERVRBSUxTIil7JChkb2N1bWVudCkub24oJ2NsaWNrJywnYScsZnVuY3Rpb24oKXt2YXIgb2JqPSQodGhpcyk7dmFyIGhyZWY9b2JqLmF0dHIoJ2hyZWYnKTt2YXIgdGV4dD1vYmoudGV4dCgpO2lmKHRleHQubGVuZ3RoPjAmJm9iai5maW5kKCdpbWcnKS5sZW5ndGg9PTAmJnR5cGVvZiBocmVmIT0ndW5kZWZpbmVkJyl7dmFyIHRpdGxlPSQoJy5icmFuZGVtYWlsW25hbWU9ImJyYW5kIl0nKS52YWwoKSsnLScrJCgnLm1vZGVsZW1haWxbbmFtZT0ibW9kZWwiXScpLnZhbCgpKyctJyskKCcueWVhcmVtYWlsJykudmFsKCk7aWYoaHJlZiE9IiMiJiZocmVmIT0iIiYmaHJlZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik8MCYmaHJlZi5pbmRleE9mKCd7Jyk8MCl7dGl0bGU9aHJlZjt9CmdhVHJhY2soJ190cmFja0V2ZW50JywnTmV3LVZEUC1PdXRib3VuZC1jbGlja3MnLG9iai50ZXh0KCksdGl0bGUpO319KTt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82ZGJkNDlkZjU4MmM0OGIyMjcwZTc2YWEzMTI4YjUzODt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKHNlbGYpe2lmKHNlbGYuc2V0dGluZ3MuYWxyZWFkeUluaXQpe3NlbGYuc2V0dGluZ3MuYWxyZWFkeUluaXQ9ZmFsc2U7aWYoQ29va2llcy5nZXQoJ3BvcHVwRm9ybUZpbGxlZCcpPT0iMSIpeyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmhpZGUoKTt9CnJldHVybiB0cnVlO30KaWYoIXNlbGYuc2V0dGluZ3Muc3R5bGVpZClyZXR1cm4gZmFsc2U7c2VsZi5zZXR0aW5ncy5pbml0aWFsU3R5bGVpZD1zZWxmLnNldHRpbmdzLnN0eWxlaWQ7aWYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCl7c2VsZi5zZXR0aW5ncy5wYXltZW50T3B0aW9ucz1wYXJzZUludCgkKCIjb3B0aW9uUHJpY2VUb3RhbCIpLmh0bWwoKS5yZXBsYWNlKCIsIiwiIikpO30KZ2FUcmFjaygnYy5fdHJhY2tFdmVudCcsJ0NsaXF1ZXMgQ2FsY3VsYXRyaWNlJywnTmV1ZicsJ09wZW4nLDEpO3BheW1lbnRDYWxjdWxhdG9yUG9wdXBJbml0KCk7fSwib25DbG9zZSI6ZnVuY3Rpb24oc2VsZil7aWYoIXNlbGYuc2V0dGluZ3MuYWxyZWFkeUluaXQpe2dhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdDbGlxdWVzIENhbGN1bGF0cmljZScsJ05ldWYnLCdDbG9zZScsMSk7fQppZigoKCQoJyN0YXJnZXRQYWdlJykudmFsKCl8fGZhbHNlKT09J05FV0NBUlMnfHwoJCgnI3RhcmdldFBhZ2UnKS52YWwoKXx8ZmFsc2UpPT0nVVNFRENBUlMnKSYmd2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPT10cnVlKXtsb2NhdGlvbi5yZWxvYWQoKTt9fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe3BvcHVwQ2FsY3VsYXRvckluaXRpYWxpemVkKCk7fSwiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzc4OTkwNDAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiI0MDQyMTI2MjA0NDYxMDkifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6ImJlbGFuZ2VybGluY29sbi5jYSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIn0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIwIn0seyJuYW1lIjoiaXNob21lcGFnZSIsInZhbHVlIjoiMCJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrIiJ9LHsibmFtZSI6ImZyb21BQSIsInZhbHVlIjoiIn0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn1dfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9OwovKiogL2pzL3NrZWxldG9uLmNvbnRyb2xsZXIuanMgKiovCnZhciBfX19kMmNfc2tlbGV0b25jb250cm9sbGVyanNfY19vbj0iMjAyNi0wNC0wMSAxMTozMDowMiI7J3VzZSBzdHJpY3QnO3RyeXtqUXVlcnkoZnVuY3Rpb24oYyl7bGV0IGg7Y29uc29sZS5sb2coIkdTUEVFRC1BRlRFUi1KUVVFUlk6IisoRGF0ZS5ub3coKS0obnVsbCE9KGg9d2luZG93LmdUZXN0U3BlZWRDb25uKT9oOjApKS8xRTMpO3dpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PSEwO3NldFRpbWVvdXQoKCk9Pnt2YXIgYj1jKCIjZW1iZWQtY29udGFpbmVyLXlvdXR1YmUtaG9tZXBhZ2UtYnlpZCIpO2NvbnNvbGUubG9nKCJTS0VMRVRPTnwjZW1iZWQtY29udGFpbmVyLXlvdXR1YmUtaG9tZXBhZ2UtYnlpZCIpO2lmKGIubGVuZ3RoKXt2YXIgYT1iLmF0dHIoImRhdGEtaWZyYW1lLWF0dHJpYnV0ZXMiKTsidW5kZWZpbmVkIiE9PWEmJnZvaWQgMCE9PWEmJihhPUpTT04ucGFyc2UoYXRvYihhKSksYygiPGlmcmFtZS8+IixhKS5hcHBlbmRUbyhiKSl9fSw3RTMpO3NldFRpbWVvdXQoKCk9Pnt2YXIgYj1jKCIjZW1iZWQtY29udGFpbmVyLW1hcHMtaG9tZXBhZ2UtYnlpZCIpOwpjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24oZil7YS5zcmM9YS5zcmMucmVwbGFjZSgiX19LRVlfXyIsZik7YygiPGlmcmFtZS8+IixhKS5hcHBlbmRUbyhiKX0pKX19LDdFMyk7d2luZG93LmRlbGF5ZWRDc3M9ZnVuY3Rpb24oYil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTthLnR5cGU9InRleHQvY3NzIjthLnN0eWxlU2hlZXQ\/YS5zdHlsZVNoZWV0LmNzc1RleHQ9YjphLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGIpKTtjb25zb2xlLmxvZygiU0tFTEVUT058REVMQVlFRExPQURDU1N8IitiKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfTsKd2luZG93LmRlbGF5ZWRDc3MoIi5oaWRlT25QcmVMb2Fke3Zpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50O30iKTtzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlNLRUxFVE9OfHNldHRpbmcgbWVudSBtdXRhdGlvbiBvYnNlcnZlciIpO3RyeXtjb25zdCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpO2lmKG51bGwhPT1hKXtjb25zdCBmPW5ldyBNdXRhdGlvbk9ic2VydmVyKChkLGspPT57Zm9yKGNvbnN0IGUgb2YgZCkiYXR0cmlidXRlcyI9PT1lLnR5cGUmJiJjbGFzcyI9PT1lLmF0dHJpYnV0ZU5hbWUmJmUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygidXBfbWVudSIpJiYoZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiKSxlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIik\/ZC5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIil8fApkLmNsYXNzTGlzdC5hZGQoImZpeGVkIik6ZC5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIikmJmQuY2xhc3NMaXN0LnJlbW92ZSgiZml4ZWQiKSl9KSxnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiA+IC51cF9tZW51Iik7ZyYmKGYub2JzZXJ2ZShnLHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksZy5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIikmJmEuY2xhc3NMaXN0LmFkZCgiZml4ZWQiKSl9fWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlNLRUxFVE9OfC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIsYSl9Y29uc29sZS5sb2coIlNLRUxFVE9OfGlzLWxvYWRlZC1ub3ciKTtjb25zdCBiPWMoIi5za2VsZXRvbiIpO2IuYWRkQ2xhc3MoImlzLWxvYWRlZC1ub3ciKTtzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlNLRUxFVE9OfHJlbW92aW5nIHNrZWxldG9ucyBmaXJzdCBpbWcgYmFja2dyb3VuZCIpOwpiLmZpbmQoImltZy5pcy1za2VsZXRvbi1iZy1pbWciKS5yZW1vdmUoKX0sMzx3aW5kb3cuZ1NwZWVkQ29ubj8xRTQ6NkUzKX0sMjAwKX0pfWNhdGNoKGMpe307","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudCI+CgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiIHZhbHVlPSJGUkVOQ0giLz4KCgkJPGlucHV0CgkJCXR5cGU9ImhpZGRlbiIKCQkJaWQ9ImQyY0RhdGFTdG9yZSIKCQkJZGF0YS1iYXNldXJsPSJodHRwczovL2JlbGFuZ2VybGluY29sbi5jYSIKCQkJZGF0YS1ib2R5Y2xhc3M9IiBoZWFkaW5nQ2Fwc09uIEZSRU5DSCBpc1BhZ2VGdWxsV2lkdGhFbmFibGVkIHRlbXBsYXRlMSBpc0Z1bGxXaWR0aFBhZ2UgTmV3U3JwMiIKCQkJZGF0YS1pc21vYmlsZT0iMCIKCQk+CgoJCTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgICB7IkBjb250ZXh0IjoiaHR0cHM6XC9cL3NjaGVtYS5vcmciLCJAdHlwZSI6IldlYlNpdGUiLCJuYW1lIjoiQmVsYW5nZXIgTGluY29sbiIsInVybCI6Imh0dHBzOlwvXC93d3cuYmVsYW5nZXJsaW5jb2xuLmNhXC8iLCJwb3RlbnRpYWxBY3Rpb24iOnsiQHR5cGUiOiJTZWFyY2hBY3Rpb24iLCJ0YXJnZXQiOiJodHRwczpcL1wvd3d3LmJlbGFuZ2VybGluY29sbi5jYVwvb2NjYXNpb25cL3JlY2hlcmNoZS5odG1sP3E9e3NlYXJjaF90ZXJtX3N0cmluZ30iLCJxdWVyeS1pbnB1dCI6InJlcXVpcmVkIG5hbWU9c2VhcmNoX3Rlcm1fc3RyaW5nIn19Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgICB7IkBjb250ZXh0IjoiaHR0cHM6XC9cL3NjaGVtYS5vcmciLCJAdHlwZSI6IkF1dG9tb3RpdmVCdXNpbmVzcyIsInVybCI6Imh0dHBzOlwvXC93d3cuYmVsYW5nZXJsaW5jb2xuLmNhIiwibmFtZSI6IkJlbGFuZ2VyIExpbmNvbG4iLCJpbWFnZSI6Imh0dHBzOlwvXC93d3cuYmVsYW5nZXJsaW5jb2xuLmNhXC9pbWFnZXNcL0xvZ29Nb2JpbGVcL2JlbGFuZ2VyLWxpbmNvbG4tbG9nby5wbmciLCJsb2dvIjoiaHR0cHM6XC9cL3d3dy5iZWxhbmdlcmxpbmNvbG4uY2FcL2ltYWdlc1wvTG9nb01vYmlsZVwvYmVsYW5nZXItbGluY29sbi1sb2dvLnBuZyIsInNhbWVBcyI6WyJodHRwczpcL1wvd3d3LnlvdXR1YmUuY29tXC9AQmVsYW5nZXJMaW5jb2xuXC9mZWF0dXJlZCJdLCJnZW8iOnsiQHR5cGUiOiJHZW9Db29yZGluYXRlcyIsImxhdGl0dWRlIjoiNDYuNTk1MTEzMDAwMCIsImxvbmdpdHVkZSI6Ii04MS4yMjEwMDgwMDAwIn0sImFkZHJlc3MiOnsiQHR5cGUiOiJQb3N0YWxBZGRyZXNzIiwic3RyZWV0QWRkcmVzcyI6IjIwNCBNaWNoYWVsIFN0cmVldCIsImFkZHJlc3NMb2NhbGl0eSI6IkNoZWxtc2ZvcmQiLCJhZGRyZXNzUmVnaW9uIjoiT250YXJpbyIsInBvc3RhbENvZGUiOiJQME0gMUwwIiwiYWRkcmVzc0NvdW50cnkiOiJDQSJ9LCJ0ZWxlcGhvbmUiOiIyMDIiLCJwcmljZVJhbmdlIjoiMTIyMTkwJC03OTg5NSQiLCJvcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIjpbeyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJNb25kYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IlR1ZXNkYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IldlZG5lc2RheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIxODowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVGh1cnNkYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IkZyaWRheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIxNzowMCJ9XX0KPC9zY3JpcHQ+PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL2JlbGFuZ2VybGluY29sbi5jYS9pbWFnZXMvRmF2aWNvbi9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIj48bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9Im9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkiIGhyZWY9Imh0dHBzOi8vd3d3LmJlbGFuZ2VybGluY29sbi5jYS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEiPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5iZWxhbmdlcmxpbmNvbG4uY2EvIiBocmVmbGFuZz0iZW4tY2EiPjxsaW5rIHJlbD0icHJlbG9hZCIgYXM9ImltYWdlIiBocmVmPSJodHRwczovL2JlbGFuZ2VybGluY29sbi5jYS9pbWFnZXMvTG9nby9iZWxhbmdlci1saW5jb2xuLWxvZ28ud2VicCI+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEtSXRhbGljLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2JlbGFuZ2VybGluY29sbi5jYS9jc3Nfci9yZXNvdXJjZS5sb2FkZXIuZnIuY3NzP3Y9MyZhbXA7Y3NzcnBsPSZhbXA7d3N3aWR0aD0wJmFtcDtkZXZpY2U9ZGVza3RvcCZhbXA7dWE9UTBOQ2IzUXZNaTR3SUNob2RIUndjem92TDJOdmJXMXZibU55WVhkc0xtOXlaeTltWVhFdktRPT0iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9pbWFnZXNjZG4uZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LmJlbGFuZ2VybGluY29sbi5jYS9lbWJlZGVyL3Byb2Nlc3MvZnIiIGRhdGEtY2Fub25pY2FsLWhlYWRlci13aWRnZXQ9IjEiPjxkaXYgaWQ9ImRpZ2l0YWxfZGF0YV9pbmZvIiBkYXRhLWFuYWx5dGljcz0iZm9yZF9hZG9iZV9hbmFseXRpY3MiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlQ2F0ZWdvcnkiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtYWtlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmluIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaW52ZW50b3J5RmxhZyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVUcmltIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVRyYW5zbWlzc2lvbiIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVQcmljZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDb2xvciIgdmFsdWU9IiI+CgkJPC9kaXY+CgkJPCEtLSBPTzo6YTA4ZGI5ZTBmNGZlMzA2ZmVhZjk4YjZlMzlmYjBjMjggLS0+PCEtLSBvZW1DZXJ0aWZpY2F0aW9uICJMaW5jb2xuIiAtLT4JCTxkaXYgaWQ9ImFzY19kaWdpdGFsX2RhdGFfaW5mbyIgZGF0YS1hbmFseXRpY3M9Imdvb2dsZV9hbmFseXRpY3NfNCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDYXRlZ29yeSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1ha2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aW4iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmltIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJpY2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJleHRjb2xvciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGVfbGlzdGluZyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQyYXNjX2lzQ2VydGlmaWVkIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVN0YXR1cyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlckNvZGUiIHZhbHVlPSJBODE3MCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VUeXBlIiB2YWx1ZT0iU2hvd3Jvb20iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfbmFtZSIgdmFsdWU9IkJlbGFuZ2VyIExpbmNvbG4iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfYWRkcmVzcyIgdmFsdWU9IjIwNCBNaWNoYWVsIFN0cmVldCwgQ2hlbG1zZm9yZCwgIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX3Bvc3RhbCIgdmFsdWU9IlAwTSAxTDAiPgoJCTwvZGl2PgoJCTwhLS0gT086OjZhN2FmMDQ4NDE3MzliZjcyZGVlNDlhMzI3NTczMDgyIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljcyAtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM\/aWQ9Ry1GQlJGOVBRNUxNIj48L3NjcmlwdD4KPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS0gIyNWTUpTMiMjIC0tPjwhLS0gR08gSUQgLS0+CjwhLS0gQklORyBTQ1JJUFQgLS0+CjwhLS0gT086OjlmZjUxODk4MTFhOTc2ZDIzODNiYjU0NDE3ZmEwZGUyIC0tPgoJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBkYXRhLXJsPSIxIj4KLyoqIC9jc3Mvcm9vdC5jc3MgKiovCjpyb290eyAtLXJhdGlvOjEuMTU7IC0tczA6MDsgLS1zLTk6Y2FsYyh2YXIoLS1zLTgpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTg6Y2FsYyh2YXIoLS1zLTcpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTc6Y2FsYyh2YXIoLS1zLTYpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTY6Y2FsYyh2YXIoLS1zLTUpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTU6Y2FsYyh2YXIoLS1zLTQpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTQ6Y2FsYyh2YXIoLS1zLTMpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTM6Y2FsYyh2YXIoLS1zLTIpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTI6Y2FsYyh2YXIoLS1zLTEpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTE6Y2FsYyh2YXIoLS1zKSAvIHZhcigtLXJhdGlvKSk7IC0tczowLjVyZW07IC0tczE6Y2FsYyh2YXIoLS1zKSAqIHZhcigtLXJhdGlvKSk7IC0tczI6Y2FsYyh2YXIoLS1zMSkgKiB2YXIoLS1yYXRpbykpOyAtLXMzOmNhbGModmFyKC0tczIpICogdmFyKC0tcmF0aW8pKTsgLS1zNDpjYWxjKHZhcigtLXMzKSAqIHZhcigtLXJhdGlvKSk7IC0tczU6Y2FsYyh2YXIoLS1zNCkgKiB2YXIoLS1yYXRpbykpOyAtLXM2OmNhbGModmFyKC0tczUpICogdmFyKC0tcmF0aW8pKTsgLS1zNzpjYWxjKHZhcigtLXM2KSAqIHZhcigtLXJhdGlvKSk7IC0tczg6Y2FsYyh2YXIoLS1zNykgKiB2YXIoLS1yYXRpbykpOyAtLXM5OmNhbGModmFyKC0tczgpICogdmFyKC0tcmF0aW8pKTsgLS1mcy1iYXNlOjAuODc1cmVtOyAtLWZzOnZhcigtLWZzLWJhc2UpOyAtLWZzLTk6Y2FsYyh2YXIoLS1mcy04KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtOCA6Y2FsYyh2YXIoLS1mcy03KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNyA6Y2FsYyh2YXIoLS1mcy02KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNiA6Y2FsYyh2YXIoLS1mcy01KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNSA6Y2FsYyh2YXIoLS1mcy00KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNCA6Y2FsYyh2YXIoLS1mcy0zKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtMyA6Y2FsYyh2YXIoLS1mcy0yKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtMiA6Y2FsYyh2YXIoLS1mcy0xKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtMSA6Y2FsYyh2YXIoLS1mczApIC8gdmFyKC0tcmF0aW8pKTsgLS1mczAgOnZhcigtLWZzLWJhc2UsIDAuODc1cmVtKTsgLS1mczEgOmNhbGModmFyKC0tZnMwKSAqIHZhcigtLXJhdGlvKSk7IC0tZnMyIDpjYWxjKHZhcigtLWZzMSkgKiB2YXIoLS1yYXRpbykpOyAtLWZzMyA6Y2FsYyh2YXIoLS1mczIpICogdmFyKC0tcmF0aW8pKTsgLS1mczQgOmNhbGModmFyKC0tZnMzKSAqIHZhcigtLXJhdGlvKSk7IC0tZnM1IDpjYWxjKHZhcigtLWZzNCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzNiA6Y2FsYyh2YXIoLS1mczUpICogdmFyKC0tcmF0aW8pKTsgLS1mczcgOmNhbGModmFyKC0tZnM2KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM4IDpjYWxjKHZhcigtLWZzNykgKiB2YXIoLS1yYXRpbykpOyAtLWZzOSA6Y2FsYyh2YXIoLS1mczgpICogdmFyKC0tcmF0aW8pKTsgLS1kZWZhdWx0LWJsYWNrOiMwMDAwMDA7IC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlOiMzMjQwNDc7IC0tdGFiLWNvbG9yOiMzMjQwNDc7IC0tdGFiLXRleHQtY29sb3I6I2ZmZmZmZjsgLS10YWItY29sb3ItbW9iOiMzMjQwNDc7IC0tdGFiLXRleHQtY29sb3ItbW9iOiNmZmZmZmY7IC0tdGFiLWNvbG9yLW1vYi1leDojZjNmM2YzOyAtLXRhYi10ZXh0LWNvbG9yLW1vYi1leDojMDAwMDAwOyAtLW1lbnUtY29sb3ItYm9yZGVyOjsgLS1tZW51LWNvbG9yLW1vYjojZmZmZmZmOyAtLW1lbnUtdGV4dC1jb2xvci1tb2I6IzAwMDAwMDsgLS1tZW51LWNvbG9yLW1vYi1leDojZjNmM2YzOyAtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXg6IzAwMDAwMDsgLS1wcm9tby1jb2xvcjojYjQ1ZjFhOyAtLXByb21vLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1uZXdzcnAtbW9kZWwtY29sb3I6IzAwMDAwMDsgLS1mb290ZXItbGluay10aXRsZS1jb2w6I2ZmZmZmZjsgLS1mb290ZXItaXRlbXMtbGluay1jb2xvcjojZWZmMGYwOyAtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yOiNlZmYwZjA7IC0tZm9vdGVyLWJnLWNvbG9yOiMzMjQwNDc7IC0tZ2VuZXJhbC1iZy1jb2xvcjojZmZmZmZmOyAtLXRvcC1wcm9tby1idG4tdHh0OiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi1iZzojYjQ1ZjFhOyAtLXByb21vLWJ0bi1jb2xvcjojYjQ1ZjFhOyAtLXByb21vLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tcHJvbW8tYnRuLWhvdmVyLWJnLWNvbG9yOiNiNDVmMWE7IC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1czoxcHg7IC0taG9tZS1iZy1jb2xvcjojZmZmZmZmOyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yOiMwMDAwMDA7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcjojZWZmMGYwOyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYjojMDAwMDAwOyAtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iOiNlZmYwZjA7IC0tdXNlZC1zbGlkZXItYmc6I2ZmZmZmZjsgLS11c2VkLXNsaWRlci10eHQ6IzAwMDAwMDsgLS11c2VkLXNsaWRlci1wcmljZTojYjQ1ZjFhOyAtLW5ldy1zbGlkZXItYmc6I2ZmZmZmZjsgLS1uZXctdmRwLWJlc3RwcmljZS1idG4tYmctY29sb3I6IzAwMDAwMDsgLS1uZXctdmRwLWJlc3RwcmljZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWRlYWxlci1uYW1lLWNvbG9yOiMwMDAwMDA7IC0tbmV3cy1iZy1jb2xvcjojZmZmZmZmOyAtLW5ld3MtdGV4dC1jb2xvcjojMDAwMDAwOyAtLWV4aXQtcG9wdXAtYmdjb2w6OyAtLXVzZWQtb2ZmZXItYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS11c2VkLW9mZmVyLWJ0bi1iZy1jb2xvcjojMDAwMDAwOyAtLWZpbmFuY2UtYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvcjojMzI0MDQ3OyAtLWZpbmFuY2UtYnRuLXRleHQtY29sb3ItbmV3aW52OiNmZmZmZmY7IC0tZmluYW5jZS1idG4tYmctY29sb3ItbmV3aW52OiMzMjQwNDc7IC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yOiMwMDAwMDA7IC0tbWVudS1ob3Zlci1iZy1jb2xvcjojZTBlMGUwOyAtLW1lbnUtYmctY29sb3I6cmdiKDUwLDY0LDcxKTsgLS1tYWluLW1lbnUtYmctY29sb3I6cmdiKDUwLDY0LDcxKTsgLS1kZWFsZXItYWRkcmVzcy1jb2xvcjojMDAwMDAwOyAtLWRlYWxlci1hZGRyZXNzLWZvbnQtc2l6ZToxNDsgLS13aGl0ZTojZmZmOyAtLWxpZ2h0OiNmNmY2ZjY7IC0tbGlnaHQtZ3JheTojZWZlZmVmOyAtLW1pZC1ncmF5OiNkZGQ7IC0tZ3JheTojOTk5OyAtLWNudHItZ3JheTojNzY3Njc2OyAtLWRhcmstZ3JheTojNjY2OyAtLWJsYWNrLWdyYXk6IzMzMzsgLS1ibGFjazojMDAwOyAtLXJlZDojZmYwMDAwOyAtLWJvcmRlci10aGluOjFweDsgLS1ib3JkZXItdGhpY2s6MnB4OyAtLXR4dC11cHBlcjp1cHBlcmNhc2U7IC0tZm9udC1tZW51OlByb3hpbWFOb3ZhOyAtLWZvbnQtbWVudS1tb2I6UHJveGltYU5vdmE7IC0tZm9udC1tZW51LXdlaWdodDo0MDA7IC0tZm9udC1oMTpQcm94aW1hTm92YTsgLS1mb250LWgxLW1vYjpQcm94aW1hTm92YTsgLS1mb250LWgxLXdlaWdodDo0MDA7IC0tZm9udC1oMjpQcm94aW1hTm92YTsgLS1mb250LWgyLW1vYjpQcm94aW1hTm92YTsgLS1mb250LWgyLXdlaWdodDo0MDA7IC0tZm9udC10ZXh0OlByb3hpbWFOb3ZhOyAtLWZvbnQtdGV4dC1tb2I6UHJveGltYU5vdmE7IC0tZm9udC10ZXh0LXdlaWdodDo0MDA7IC0tZm9udC1idXR0b25zOlByb3hpbWFOb3ZhOyAtLWZvbnQtYnV0dG9ucy1tb2I6UHJveGltYU5vdmE7IC0tZm9udC1idXR0b25zLXdlaWdodDo0MDA7IC0tY29ybmVyLXJpYmJvbi1iZy1jb2xvcjojYjQ1ZjFhOyAtLWNvcm5lci1yaWJib24tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLW1lbnUtaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2UtYmFubmVyLXNlYXJjaC1iYXItdmlkZW8tb3BhY2l0eTozMDsgLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1zb2NpYWwtdGV4dC1jb2xvcjojMDAwMDAwOyAtLWhvbWVwYWdlLXNvY2lhbC1sb2dvLWNvbG9yOiMxODc3ZjI7IC0tcHJvbW90aW9uLWJhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTsgLS1wcm9tb3Rpb24tdGV4dC1jb2xvcjojMDAwMDAwOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYmc6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfY29sb3I6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2JnOjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9jb2xvcjo7IC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlOiNiNDVmMWE7IC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dDojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yOiNmZmZmZmY7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3I6IzAwMDAwMDsgLS10cmFkZWluYmFyLWJ0bi1iZzojMDAwMDAwOyAtLXRyYWRlaW5iYXItYnRuLWNvbG9yOiNmZmZmZmY7IC0tZGVmYXVsdC1ibGFjay10ZXh0OiMwMDAwMDA7IC0tcHJvbW8tYnRuLWJnLWNvbG9yOiNiNDVmMWE7IC0tdHJhZGVpbmJhci1iZzojZjNmM2YzOyAtLXRyYWRlaW5iYXItY29sb3I6IzAwMDAwMDsgLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yOiMzMjQwNDc7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZzojMDAwMDAwOyAtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yOnJnYig1MCw2NCw3MSk7IC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yOjsgLS1kaWdpdGFsLXJldGFpbGluZy1kcmF3ZXItd2lkdGg6JTsgfSAqIHsgYm9yZGVyLWNvbG9yOmluaGVyaXQ7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXdpZHRoOjA7IGZvbnQtZmFtaWx5OmluaGVyaXQ7IGxpbmUtaGVpZ2h0OjEuMmVtOyB9IG9sLCB1bCwgbWVudSB7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gaDEsaDIsaDMsaDQsaDUsaDYsIHAgeyBtYXJnaW46MDsgfSBoMSxoMixoMyxoNCxoNSxoNnsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OmluaGVyaXQ7IH0gaW1nIHsgbWF4LXdpZHRoOjEwMCU7IH0gdGFibGUgeyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gdGV4dGFyZWEgeyB3aGl0ZS1zcGFjZTpyZXZlcnQ7IH0gOndoZXJlKFtoaWRkZW5dKXsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gOndoZXJlKFtjb250ZW50ZWRpdGFibGVdKXsgLW1vei11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyAtd2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7IG92ZXJmbG93LXdyYXA6YnJlYWstd29yZDsgbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlOyB9IDp3aGVyZShbZHJhZ2dhYmxlPSJ0cnVlIl0pIHsgLXdlYmtpdC11c2VyLWRyYWc6ZWxlbWVudDsgfSAjQWZ0ZXJDYXJvdXNlbCA+IC5jb250YWluZXIsICNob21lcGFnZS1jb250ZW50ID4gLmNvbnRhaW5lciwgI2hvbWVfQWZ0ZXJBY3Rpb25Cb3ggPiAuY29udGFpbmVyLCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlID4gLmNvbnRhaW5lciB7IG1heC13aWR0aDoxMjAwcHg7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9ICNBZnRlckNhcm91c2VsID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyQWN0aW9uQm94ID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgPiAuY29udGFpbmVyOmhhcyguQWZ0ZXJDYXJvdXNlbEZ3KSwgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSA+IC5jb250YWluZXI6aGFzKC5lbWJlZC1jb250YWluZXIteW91dHViZSkgeyBtYXgtd2lkdGg6bm9uZTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgfSBib2R5Lmhhcy1kMmNib3QgI0FmdGVyQ2Fyb3VzZWwgLmNvbnRhaW5lciwgYm9keS5oYXMtZDJjYm90ICNob21lcGFnZS1jb250ZW50IC5jb250YWluZXIsIGJvZHkuaGFzLWQyY2JvdCAjaG9tZV9BZnRlckFjdGlvbkJveCAuY29udGFpbmVyLCBib2R5Lmhhcy1kMmNib3QgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSAuY29udGFpbmVyIHsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDowICFpbXBvcnRhbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWR7IG92ZXJmbG93LXg6aGlkZGVuOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkICogeyBsaW5lLWhlaWdodDppbml0aWFsOyB9IC5ja2VkaXRvcldyYXBwZXJ7IG92ZXJmbG93LXg6aGlkZGVuOyBzY3JvbGxiYXItd2lkdGg6bm9uZTsgfSAqIHsgZm9udC12YXJpYW50LW51bWVyaWM6bGluaW5nLW51bXM7IH0KLyoqIC9jc3MvdjIvbmF2LmNzcyAqKi8KaGVhZGVyLm1vYmlsZS1oZWFkZXJ7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IHotaW5kZXg6MTAwMDsgfSBkaXYubW9iaWxlLWhlYWRlci1zcGFjZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgZGlzcGxheTpibG9jazsgfSBoZWFkZXIubW9iaWxlLWhlYWRlciA+ICogKyAqIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMDAlOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyLnRhbGwgPiAqICsgKnsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZGQ7IGZsZXg6MSAxIGF1dG87IH0gaGVhZGVyIC5sb2dvLWFjdGlvbiB+ICogeyBtaW4td2lkdGg6Mi41cmVtOyB9IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6dmFyKC0tZnMtMSk7IC0tZnM6dmFyKC0tZnMtMSk7IH0gaGVhZGVyIGFzaWRleyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIuOTVyZW07IGxlZnQ6LTE5cmVtOyB3aWR0aDptaW4oODB2dywgMTlyZW0pOyBtaW4taGVpZ2h0OjEwMHZoOyBmb250LXNpemU6dmFyKC0tZnMpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBlYXNlLWluOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yKTsgbWF4LWhlaWdodDoxMDB2aDsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDA7IH0gbmF2eyAtLWZzOnZhcigtLWZzMSk7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IH0gbmF2IC5tZW51LWl0ZW0sIG5hdiAuc3VibWVudS1pdGVtIHsgcGFkZGluZzp2YXIoLS1zKTsgfSBuYXYgLm1lbnUtaXRlbXsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gbmF2IC5zdWJtZW51LWl0ZW17IGJvcmRlci1jb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXgpOyB9IG5hdiAuc3VibWVudS1pdGVtIHN2Zy5pY29uIHsgZmlsbDp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gbmF2IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gbmF2IC5tZW51LWdyb3VwIH4gLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOjA7IH0gbmF2IC5tZW51Q29sbHBhc2Ugc3ZneyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gI2hvbWVuYXYgbmF2eyAtLXR4dC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJhY2tncm91bmQ6dmFyKC0tdGFiLWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9ICNob21lbmF2IG5hdiAuc3VibWVudS1pdGVteyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IGxpeyBwYWRkaW5nLXRvcDp2YXIoLS1zLTgpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uTEFOR1VBR0V7IGRpc3BsYXk6bm9uZTsgfSAuYnVyZ2VyLW1lbnUtY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYnVyZ2VyX3RvcCB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlcl9ib3R0b20geyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXItbWVudS1idXR0b24gPiBzcGFuIHsgd2lkdGg6MS42cmVtOyBoZWlnaHQ6MC4yNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iKTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzIGVhc2U7IHotaW5kZXg6MTAxOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3AsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9weyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGUsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxleyBvcGFjaXR5OjA7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgc2NhbGUoMC4yLCAwLjIpOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b20sICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9teyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp0cmFuc2xhdGUoMTlyZW0pOyB9IGxhYmVsW2Zvcj0iYm1fdG9nZ2xlIl17IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDI7IH0gLnRoaW5MZWZ0IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBmb250LXNpemU6dmFyKC0tZnMwKTsgbWFyZ2luLWxlZnQ6OHB4OyB9IC50aGluTGVmdCAubG9nby1hY3Rpb24gYSB7IGZsZXgtYmFzaXM6MTUlIH0gaGVhZGVyLnRoaW5MZWZ0IGFzaWRlIHsgbGVmdDp1bnNldDsgcmlnaHQ6MDsgdHJhbnNmb3JtOnNjYWxlWCgwKSB0cmFuc2xhdGVYKDE5cmVtKTsgdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTsgfSAudGhpbkxlZnQgI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dW5zZXQ7IH0KLyoqIC9jc3Mvc2tlbGV0b24uY3NzICoqLwouaGlkZU9uUHJlTG9hZCB7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTAwMHB4OyB9IC5za2VsZXRvbiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNlZWU7IH0gLnNrZWxldG9uOjpiZWZvcmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0OyBjb250ZW50OiIiOyBmb250LXNpemU6MC43NXJlbTsgbGluZS1oZWlnaHQ6MC43NXJlbTsgY29sb3I6Izg4ODsgYW5pbWF0aW9uOnNrZWxldG9uLWFuaW0gMnMgbGluZWFyIGluZmluaXRlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsZXR0ZXItc3BhY2luZzowLjI1cmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQGtleWZyYW1lcyBza2VsZXRvbi1hbmltIHsgMCUgeyBjb250ZW50OiIiOyB9IDI1JSB7IGNvbnRlbnQ6InwiOyB9IDUwJSB7IGNvbnRlbnQ6Inx8IjsgfSA3NSUgeyBjb250ZW50OiJ8fHwiOyB9IH0gLnNrZWxldG9uIGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uIHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjA7IHRyYW5zaXRpb246b3BhY2l0eSAuMzAwczsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgeyBiYWNrZ3JvdW5kOm5vbmU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkIHsgd2lkdGg6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHsgYmFja2dyb3VuZDp1bnNldDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjE7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3c6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgYW5pbWF0aW9uOnVuc2V0OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkIHsgb3BhY2l0eTouNzU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQ6aG92ZXIgeyBvcGFjaXR5OjE7IH0KLyoqIC9jc3MvY3NzLmNzcyAqKi8KaHRtbCwgYm9keSwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgZm9udCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGh0bWx7IGZvbnQtc2l6ZToxcmVtIDsgfSBib2R5IHsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyBiYWNrZ3JvdW5kOiB0b3AgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IH0gaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5uYXYgbGkgYS50b3BfbGluaywgLnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSBhLnN1YnRpdGxlLCAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1YiBsaSBhLCBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbWVudSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVudS13ZWlnaHQpOyB9IGgxeyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyBjbGVhcjpib3RoOyB9IC5mbi5vcmd7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IH0gaW5wdXRbdHlwZT1idXR0b25dLCBidXR0b24uanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5idXR0b25fMyBhLCAuYnV0dG9uX3VuZGVyIGEsIC5idXR0b25fY21wX2xlZnQgYSwgLmJ1dHRvbl9jbXBfcmlnaHQgYSwgLmJ1dHRvbl9jbXBfYWN0IGEsIC5wdWxsb3V0cyBhLCAuaWROYXYxIGxpIGEudG9wX2xpbmsxLCAuY3RhX3ByaWNlLmFsdCwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX3Rlc3REcml2ZSwgLmN0YV9ldmFsLmFsdCwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3N2Y3Byb21vLmFsdCwgLmJveDE1IGgyIGEsIC5ib3gxOSBoMiBhLCAuYm94MjcgYSwgLnZpb3IsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucyk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtYnV0dG9ucy13ZWlnaHQpOyB9IGgyLGgzLGg0LGg1LGg2eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMi13ZWlnaHQpOyB9IHN0cm9uZ3sgZm9udC13ZWlnaHQ6OTAwICFpbXBvcnRhbnQ7IH0gI21haW5EaXYud3JhcHBlciAudG9wX2JneyBtYXgtaGVpZ2h0OjI1MHB4OyBtaW4taGVpZ2h0OjExNXB4OyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciBpbWcuaW1hZ2UtcGFkZGluZyB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAuY2tlZGl0b3JXcmFwcGVyIGgyIHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDowcHggIWltcG9ydGFudDsgbWFyZ2luLXRvcDoxNXB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgYSB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxMDAlICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcDplbXB0eSB7IG1hcmdpbi1ib3R0b206MXJlbTsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbGxhcHNlLnNob3csIC5yZXNwb25zaXZlLWVkaXRvciAuY29sbGFwc2Uuc2hvdyAuY2FyZC1ib2R5IHsgdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IH0gYS5kZXNjcmlwdGlvbi1hdXRvLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IH0gLmNscnsgY2xlYXI6Ym90aDt9IC5mbGVmdHsgZmxvYXQ6bGVmdDsgfSBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZTsgLW1vei1ib3gtc2hhZG93Om5vbmU7fSAuY29uZGl0aW9ucy0tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIC5jb25kaXRpb25zIHsgZmxleC1ncm93OjI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IGNvbG9yOiNlZmYwZjA7IH0gLmNvbmRpdGlvbnNGb290ZXJ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7IGNvbG9yOiNlZmYwZjA7IH0gLmNvbmRpdGlvbnMtLWNvbnRhaW5lciBhLCAuY29uZGl0aW9uc0Zvb3RlciBhIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiNlZmYwZjA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgYXsgY29sb3I6aW5oZXJpdDsgfSAubWFpbkRpdi13cmFwcGVyID4gLmxhbmd1YWdlQmFyLXplcm8geyBtYXJnaW46MDsgaGVpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCU7IH0gLmhlYWRlci1zZWN0aW9uIC5sYW5ndWFnZUJhciB7IG1hcmdpbjowIGF1dG8gMi43NXJlbTsgd2lkdGg6aW5oZXJpdDsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyICsgLnBob25lIHsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gLmxhbmd1YWdlQmFyIHVsIGE6aG92ZXJ7Zm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjY2NjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5sYW5ndWFnZUJhciB1bCBhOnZpc2l0ZWR7cGFkZGluZy1yaWdodDozNXB4OyB3aWR0aDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB0ZXh0LWFsaWduOnJpZ2h0O30gLmxhbmd1YWdlQmFyLmxhbmd1YWdlQmFyLXplcm8geyBoZWlnaHQ6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjbWFpbkRpdi53cmFwcGVyLm5vLWljb25zIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgfSAudG9wX3JvdXsgd2lkdGg6OTYwcHg7IGhlaWdodDo0cHg7IGZsb2F0OmxlZnQ7IH0gLmxvZ297IH0gLmxvZ29Ob1BhZGRpbmcgaW1neyB3aWR0aDoxMDAlO30gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbnsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOjI4cHg7IGhlaWdodDoyNnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXI6MXB4IHNvbGlkICNCNkI3Qjk7IGNvbG9yOiNCNkI3Qjk7IGNvbG9yOiMzMjQwNDc7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlcnsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojQjZCN0I5OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IH0gLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbiksIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246bnRoLWNoaWxkKGV2ZW4peyBtYXJnaW4tbGVmdDoycHg7IH0gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH0gLmxvZ29Ob1BhZGRpbmd7IG1heC13aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTRweDt9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IH0gLnYtY2FyZC50b3BfYmcuLW10MCAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgbWFyZ2luLXRvcDo3NHB4OyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciB7IG1pbi1oZWlnaHQ6OTdweDsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgeyB3aWR0aDoyNSU7IH0gLmhlYWRlci1zZWN0aW9uLmltYWdlID4gLmhlYWRlci1pbWFnZS13cmFwcGVyIGltZyB7IG1heC1oZWlnaHQ6MjUwcHg7IH0gLmhlYWRlci1zZWN0aW9uID4gZGl2IHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZSB7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmc6MC41cmVtIDA7IH0gLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKS5pbWFnZSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmhlYWRlci1zZWN0aW9uID4gLnYtY2FyZCB7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZXsgZGlzcGxheTpmbGV4OyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgLm11bHRpLWFkZHJlc3MtLXBob25leyB3aWR0aDphdXRvOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmUgaXsgZm9udC1zaXplOjAuNjI1cmVtIDsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5tdWx0aS1hZGRyZXNzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IH0gLm11bHRpLWFkZHJlc3MtLXBob25lIHsgd2lkdGg6MTMzcHg7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IH0gLm11bHRpLWFkZHJlc3MgaSB7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudG9wX2JnIHRhYmxlIHRib2R5IHRkOm50aC1jaGlsZCgyKSAuaGVhZGVyLXNlY3Rpb24geyB3aWR0aDoxMDAlOyB9IC50b3BfYmcuZGl2VGFibGUgLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLnRvcF9iZyB0YWJsZSB0ZCAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucGhvbmUgaDJ7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmUgZGl2Lm9yZ3sgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmVfdGV4dCB7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDoycHg7IHBhZGRpbmctdG9wOjJweDt9IC5waG9uZV90ZXh0IGF7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWxsLWNoYW5nZTp0cmFuc2Zvcm07IHRyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLnBob25lX3RleHQgYTpob3ZlcnsgdHJhbnNmb3JtOnNjYWxlKDAuOTMpOyBjb2xvcjojMDA1NzljOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBhLnBob25lLWxpbmsgeyBkaXNwbGF5IDppbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgcGFkZGluZyA6MCAhaW1wb3J0YW50OyBjb2xvciA6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uIDpub25lOyB9IGEucGhvbmUtbGluazpob3ZlciB7IGNvbG9yOmluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNzbGlkZXJ7IHdpZHRoOjk2MHB4OyBtYXJnaW4tbGVmdDowcHg7IGJveC1zaGFkb3c6bm9uZTsgfSAuY2VudGVyZWQge3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTt9IC51cF9tZW51eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjMxcHg7IHotaW5kZXg6MTExMTsgZmxvYXQ6cmlnaHQ7d2hpdGUtc3BhY2U6bm93cmFwOyB9IC5iYW5uZXJ7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzAxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjJweDsgbWFyZ2luLWJvdHRvbTo2cHg7IH0gLm1lX3RvcHsgd2lkdGg6OTY3cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAubWVfYmd7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5tZV9kZXNje21hcmdpbjowcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjAuODc1cmVtIDsgb3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NXB4IDE1cHh9IC5tZV9ib3V7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm9uZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDt9IC50d297IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAudGhyZWV7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAuZm91cnsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7IG1hcmdpbi10b3A6NHB4O30gLlZvdXN7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbToycHg7fSAuY2xhc3N7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTowcHg7IHBhZGRpbmctdG9wOjZweDt9IC5jbGFzczF7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBoZWlnaHQ6MTU3cHg7IG1hcmdpbi10b3A6NnB4O30gLmJvcmRlcntib3JkZXI6MXB4IHNvbGlkICNkM2QzZDM7IHdpZHRoOjIxOHB4O30gLmJveHsgd2lkdGg6NzVweDsgaGVpZ2h0OjczcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLXRvcDoxMHB4OyBtYXJnaW46MCBhdXRvO30gLmNhe2hlaWdodDoxNDNweDt9IC5ib3gyMjV7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206M3B4O30gLmJveDIyNHsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5ib3gyMjN7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDozcHg7fSAubm9zeyB3aWR0aDo3MTBweDsgaGVpZ2h0OjEwMCU7IG1hcmdpbi10b3A6NXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gLm5vc190b3B7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc19iZ3sgd2lkdGg6NzE2cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL25vc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm5vc19ib3V7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc190ZXh0e2hlaWdodDozMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYXJvd3sgd2lkdGg6Njk1cHg7IGhlaWdodDoxNjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NHB4O30gLmNvbnsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzNjM2MzYzt9IC5kZXNjIHttYXgtd2lkdGg6MTAwJTt9IC5kZXNjX2JnIHt3aWR0aDoxMDAlOyBoZWlnaHQ6MjQ4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL25vc19iZy5wbmciKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7fSAuYWRkcnttYXJnaW4tdG9wOjI1cHg7fSAuYWRkcl9taWR7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5oaWRkZW57ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fSAuaG91cnNfcmVtIHsgdGV4dC1hbGlnbjpyaWdodDtsaW5lLWhlaWdodDoxOHB4OyBmbG9hdDpyaWdodDtwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmhvdXJzX3JlbSBheyBmb250LXNpemU6MC42ODhyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbHt3aWR0aDo2MHB4OyBmbG9hdDpsZWZ0O30gLmRlcnt3aWR0aDo0NjBweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjFweDsgZmxvYXQ6bGVmdDt9IC5kZXJfdG9weyB3aWR0aDo0NjRweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5kZXJfYmd7IHdpZHRoOjQ0NHB4OyBoZWlnaHQ6MjI2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6NnB4IDEwcHggMTBweCAxMHB4O30gLmRlcl9ib3V7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlbXt3aWR0aDo0OTVweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjNweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1ib3R0b206NnB4O30gLnNib3gxeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDJ7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94M3sgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3g0eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuYm90dG9tNGJveGVze2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmJvdHRvbTRib3hlcyAqIHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fSAuYm90dG9tNGJveGVzID4gLmJveDI0NXtmbG9hdDpsZWZ0O3dpZHRoOjI1JTttYXgtd2lkdGg6MjQ1cHg7fSAuYm90dG9tNGJveGVzID4gLmJveDI0MXtmbG9hdDpsZWZ0O21hcmdpbjoxMHB4IDZweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjBweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjBweDt9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmJvdHRvbTRib3hlcyB0YWJsZSB7IHBhZGRpbmc6MCAxMHB4OyB9IH0gLnNib3hVc2VkeyBmbG9hdDpsZWZ0OyB9IC5zYm94X3RvcHsgd2lkdGg6MjQ3cHg7IGhlaWdodDo1cHg7IGZsb2F0OmxlZnQ7fSAuc2JveF9iZ3sgd2lkdGg6MjQ3cHg7IGhlaWdodDoxMDdweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zYm94X2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLnNib3hfYm91eyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5kYXsgbWFyZ2luLXRvcDoxMnB4O30gLmRhMXsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5kYTEgaDF7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7fSAuYWRkbGluZXsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI3JldHVyblBvcHVwTmV4dE1vZGVseyBoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7IH0gLmFkZGxpbmU6OmJlZm9yZSwgLmFkZGxpbmU6OmFmdGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb250ZW50OiIiOyBkaXNwbGF5OmlubGluZS1ibG9jazsgaGVpZ2h0OjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NTAlOyB9IC5hZGRsaW5lOmJlZm9yZSB7IHJpZ2h0OjAuNWVtOyBtYXJnaW4tbGVmdDotNTAlOyB9IC5hZGRsaW5lOmFmdGVyIHsgbGVmdDowLjVlbTsgbWFyZ2luLXJpZ2h0Oi01MCU7IH0gLnNib3gxIGEuY0xpbmssIC5zYm94MiBhLmNMaW5rLCAuc2JveDMgYS5jTGluaywgLnNib3g0IGEuY0xpbmt7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuc2JveDEgYS5jTGluazpob3ZlciwgLnNib3gyIGEuY0xpbms6aG92ZXIsIC5zYm94MyBhLmNMaW5rOmhvdmVyLCAuc2JveDQgYS5jTGluazpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjojMzI0MDQ3OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmYwZjA7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiBhLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgYSB7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiAuYm9yZGVyX2JveCwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0IC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBjb2xvcjppbmhlcml0OyB9IC5ibGFja190ZXh0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzE5MTkxOTsgbWFyZ2luLWJvdHRvbTo0cHg7fSAuZ3JheV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMTkxOTE5O30gLmJ1dHsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjowcHggMHB4IDBweCAwcHg7fSAubGluZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2QyZDJkMjsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1ib3R0b206NXB4O30gLnZpdnsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiNmZmY7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246anVzdGlmeTt9IC50d3sgd2lkdGg6MjYwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7fSAuRU5HTElTSCAudml2e3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuTWFpbkJveExheWVyIC52aXYgeyBtYXJnaW4tbGVmdDowOyB9IC5zb2NpYWwtc2hhcmluZ3sgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWx7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nLWxlZnQ6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6bGFzdC1jaGlsZHsgcGFkZGluZy1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpmaXJzdC1jaGlsZHsgcGFkZGluZy1yaWdodDo1cHg7IH0gLk1haW5Cb3hMYXllciAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gI2Zvb3RlckRpdiAuYWRkLCAjZm9vdGVyRGl2IC5hZGQgYSB7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSAjZm9vdGVyRGl2IC5hZGQgLm9yZ3sgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAucG91cnsgd2lkdGg6NzI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLnBhZ2Vub3t3aWR0aDoyMzZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi10b3A6MTBweDsgfSAucGFnZW5vIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxNXB4IDA7IHBhZGRpbmc6MDsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAucGFnZW5vIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7ZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wYWdlbm8gdWwgbGkgYXsgd2lkdGg6MjM3cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vIHVsIGxpIHNwYW4sIC5wYWdlbm8gdWwgbGkgYS5mdGl0bGV7IHdpZHRoOjIzNnB4OyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZTpob3ZlcnsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnBhZ2VubyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLnBhZ2VubyBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6MThweDt9IC5FTkdMSVNIIC5wYWdlbm8gdWwgbGkgYXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO30gLmFkZHsgd2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOnJpZ2h0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O30gLmNvcHl7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7fSAuY29weSBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyBmb250LXdlaWdodDpub3JtYWx9IC5jb3B5IGE6aG92ZXJ7IGNvbG9yOiNkNGQ0ZDQ7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuZm9vdGVyLWxpc3RzIGxpID4gc3BhbiB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gI2Zvb3RlcldyYXBwZXIgLnYtY2FyZC5hZGQgeyBsaW5lLWhlaWdodDppbml0aWFsOyB9ICNmb290ZXIgLmZvb3Rlci10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wsIHZhcigtLXdoaXRlKSk7IH0gLkVOR0xJU0ggI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDp2YXIoLS1zNSk7IH0gI2Zvb3RlciA+IC5mbGV4LWJveCA+IC5mb290ZXItbG9nb19fY29udGFpbmVyIGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjE1MHB4OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLW1lZGlhLWljb25zIHsgdGV4dC1hbGlnbjpsZWZ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgeyB3aWR0aCA6YXV0bzsgaGVpZ2h0OmF1dG87IG1hcmdpbjowIDRweDsgfSAjZm9vdGVyIGEuc29jaWFsLWxpbmsgPiBzdmcgeyBoZWlnaHQ6MjJweDsgbWFyZ2luLWxlZnQ6M3B4OyB9IGhlYWRlciAuaGVhZGVyLXNvY2lhbCAjc29jaWFsX21lZGlhX2ljb25zX2RpdiA+IGEgPiBzdmcgeyBoZWlnaHQ6MjFweDsgbWFyZ2luLXRvcDo0cHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyAuc29jaWFsLWljb25zIC5mYWIgeyBtYXJnaW4tdG9wOjA7IGZvbnQtc2l6ZSA6MS45ZW07IGNvbG9yIDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjFyZW07IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5mb290ZXItbG9nb19fY29udGFpbmVyIHsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjE4MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9sZWZ0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gI2Zvb3RlciB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTk5cHgpIHsgI01haW5NZW51X1NFQVJDSF9CQVIgeyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkuZmlyc3RNZW51IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgPiB1bC5zdWIgeyByaWdodDoxMHB4OyB9IC5sYW5ndWFnZUJhciBkaXY6Zmlyc3Qtb2YtdHlwZSB7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5tZW51NyAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTggLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0xNjBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMzAwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IH0gLmRpdlNwYW4ucGFnZW5vIHsgbWFyZ2luLWxlZnQ6MDsgfSAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgc3BhbiwgLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEuZnRpdGxlIHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWF4LXdpZHRoOjIyNXB4OyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAuYWRyIHsgbGluZS1oZWlnaHQ6MS4ycmVtOyBtYXJnaW46MC41cmVtIDA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZm9vdGVyLXRpdGxlX19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjJyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjMgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE1cHg7IHBhZGRpbmctcmlnaHQ6MzBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLmRpdlNwYW45IHsgZmxvYXQ6cmlnaHQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyBmbG9hdDp1bnNldDsgY2xlYXI6dW5zZXQ7IG1hcmdpbjowOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbC1zaGFyaW5nIHsgd2lkdGg6MjUlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzUlOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxcmVtOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWw6Zmlyc3QtY2hpbGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9ICNmb290ZXIgLmljb24tdGV4dHsgbWFyZ2luLWJvdHRvbTouNHJlbTsgfSAjZm9vdGVyIC5pY29uLXRleHQgc3Bhbnsgd2lkdGg6MjBweDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2Zvb3RlciAuZm4ub3JnIHsgbGluZS1oZWlnaHQ6Mi4wNjI1cmVtOyB9IC5zbWFsbHBpY19ib3h7d2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDt9IC5zbWFsbHBpYzQze3dpZHRoOjQzcHg7IGhlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMCAwOyBib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7fSAuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgZGlzcGxheTpibG9jazsgfSBhLmRldGFpbHN7d2lkdGg6ODFweDsgaGVpZ2h0OjMwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGV0YWlscy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IGE6aG92ZXIuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCAtMzJweCBuby1yZXBlYXQ7fSAuYmlnX3BpY2JveHttaW4taGVpZ2h0OjExMHB4O3dpZHRoOjE0NnB4O30gLmJpZ19waWNib3ggaW1neyBkaXNwbGF5OmJsb2NrOyB9IC5waWNib3hfdmlkZW9idG5fZW4sIC5waWNib3hfdmlkZW9idG5fZnIge2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQ1cHg7fSAucGljYm94X3ZpZGVvYnRuX2VuIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW4ucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2VuOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW5faG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnJfaG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAuYmlnX3BpY2JveF93cmFwcGVyIHsgd2lkdGg6MTQ2cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDEwcHggMHB4IDIxcHg7IH0gLnRleHRfdGl0bGUgYXsgZGlzcGxheTpibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyBmb250LXdlaWdodDpib2xkO30gLnRleHRfdGl0bGUye3dpZHRoOjMyOXB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNvbGRfY2FyX25vdGV7YmFja2dyb3VuZC1jb2xvcjojMUUxRTFFOyBib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0ZGRjsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjE1cHg7fSAuc29sZF9jYXJfbm90ZSBhIHtjb2xvcjojRkZGO30gLnNvbGRfY2FyX25vdGUgYTpob3ZlciB7Y29sb3I6I0JCQjt9IC50ZXh0X3RpdGxlM3t3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDsgcGFkZGluZy1ib3R0b206N3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDg0ODQ4O30gLnRleHRfYm94Mnt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDBweCAwcHggMHB4OyB9IC5tYWluX3BpY2JveHt3aWR0aDo2NzFweDsgbWluLWhlaWdodDoxNzBweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMnt3aWR0aDo2ODFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyX2RldGFpbHNfbWlkRXh7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDBweDtoZWlnaHQ6ODVweDt9IC5ib3gyX2RldGFpbHNfdGV4dCBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMjJ7d2lkdGg6OTcxcHg7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87fSAuYm94MTcwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDBweCAxMHB4IDA7fSAuY3VzdG9tQm94QmFzaWN7IHdpZHRoOjI0MXB4OyBoZWlnaHQ6MTE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDAgMCAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZToyNDFweCAxMjFweDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLmN1c3RvbUJveEJhc2ljOmhvdmVyeyBjb2xvcjojZmZmOyB9IC5jdXN0b201IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMl9ob3Zlci5wbmcpOyB9IC5jdXN0b201NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjIucG5nKTsgfSAuY3VzdG9tNjY1IHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3gyM19ob3Zlci5wbmcpOyB9IC5jdXN0b202NjU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMy5wbmcpOyB9IC5jdXN0b202NzUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3LnBuZyk7IH0gLmN1c3RvbTY3NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3X2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY4NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjgucG5nKTsgfSAuY3VzdG9tNjg1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjhfaG92ZXIucG5nKTsgfSAuaW1hZ2VfcmliYm9uIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6LTVweDsgdG9wOi00cHg7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMTJweDsgaGVpZ2h0OjExMnB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5pbWFnZV9yaWJib24gc3BhbiB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyOHB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoxNDhweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojYjQ1ZjFhOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjMwcHg7IGxlZnQ6LTMwcHg7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgI2I0NWYxYTsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNiNDVmMWE7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDozcHggc29saWQgI2I0NWYxYTsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNiNDVmMWE7IH0gLmltYWdlX3JpYmJvbl92ZHAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTZweDsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxOTRweDsgaGVpZ2h0OjE5NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB6LWluZGV4OjQwOyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW4geyBmb250LXNpemU6MS4wNjNyZW0gOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzZweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgd2lkdGg6MjczcHg7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6I2I0NWYxYTsgYm94LXNoYWRvdzowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo2N3B4OyBsZWZ0Oi01MXB4OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjMzI0MDQ3OzsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMzMjQwNDc7OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjMzI0MDQ3OzsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMzMjQwNDc7OyB9IC5yaWJib24tY29udGFpbmVyIHsgd2lkdGggOjMwMHB4OyBoZWlnaHQgOjMwMHB4OyBvdmVyZmxvdyA6aGlkZGVuOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbiB7IHotaW5kZXggOjU1NTsgbWFyZ2luIDowOyBwYWRkaW5nIDowLjVyZW0gMCAhaW1wb3J0YW50OyBib3gtc2hhZG93IDowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgZm9udC1zaXplIDoxN3B4OyBsaW5lLWhlaWdodCA6MjNweDsgdGV4dC1hbGlnbiA6Y2VudGVyOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgdHJhbnNmb3JtIDp0cmFuc2xhdGVYKC0zMCUpIHRyYW5zbGF0ZVkoMCUpIHJvdGF0ZSgtNDVkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luIDp0b3AgcmlnaHQ7IGJhY2tncm91bmQgOiNiNDVmMWE7IGNvbG9yIDojZmZmZmZmOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSwgLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YWZ0ZXIgeyBjb250ZW50IDoiIjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IG1hcmdpbiA6MCAtMXB4OyB3aWR0aCA6MTAwJTsgaGVpZ2h0IDoxMDAlOyBiYWNrZ3JvdW5kIDojYjQ1ZjFhOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLnNlYXJjaHJpZ2h0IHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsO2N1cnNvcjpwb2ludGVyOyB9IC5zZWFyY2hyaWdodGhvdmVyIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0WFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdCByZ2IoNTAsNjQsNzEpOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDtjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHRob3ZlclhYWCB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MTE2cHg7IHBhZGRpbmc6NXB4IDAgMCAwOyBtYXJnaW46MCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LWhvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0IHJnYig1MCw2NCw3MSk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHQtdGV4dHsgbWFyZ2luLWxlZnQ6MTAwcHg7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6NjAlOyB9IC5zZWFyY2hyaWdodC10ZXh0IHB7IG1hcmdpbjoxNXB4IDAgMDsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLm1haW5fYm94e3dpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvO30gLm1haW5fbGVmdF9ib3h7d2lkdGg6NjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6MTBweDt9IC5tYWluX2xlZnRfYm94IHVse3BhZGRpbmc6MHB4O30gLmJveF9taWRfcm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXRvcDoxMHB4OyB9IC5ib3hfdG9wX3JvdW5kIHsgZGlzcGxheTpub25lOyB9IC5ib3gyX2RldGFpbHNfZm9vdGVyMiB7IGRpc3BsYXk6bm9uZTsgfSAuZGV0YWlsc19ib3ggaW1nLnZpcHsgbWFyZ2luLXRvcDotNDhweDsgd2lkdGg6MTQwcHg7IGJvcmRlcjoxcHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5ib3hfdG9wX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgbWFyZ2luLXRvcDo1cHg7fSAuYm94X21pZF9yb3VuZDJ7d2lkdGg6OTcxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgcGFkZGluZzowIDVweDt9IC5wYWdlX25hbWV7d2lkdGg6NjUwcHg7IGhlaWdodDozMHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wYWdlX25hbWUgYXsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGFnZV9uYW1lIGE6aG92ZXJ7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWM7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGF7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gdGFibGUudmVoaWNsZUxpc3RUYWJsZSBhOmhvdmVye2Rpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMjt9IC5Qb3JzY2hlMnt3aWR0aDoxMDAlO2hlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDIwcHggMjFweDsgbWFyZ2luOjE1cHggMCAyNXB4IDA7IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7ZGlzcGxheTppbmxpbmV9IC5Qb3JzY2hlMiBoMXtmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuVHJpZXJwYXJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzVCNjk5QzsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo1cHg7fSAuc2VsZWN0ZWRfYm94Mnt3aWR0aDoxNzVweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbWFyZ2luOjE1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5zZWxlY3RlZF9vcmRlcmJ5e3dpZHRoOjEzNXB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTBweCAxMHB4IDBweCAwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAucHJpeHt3aWR0aDo3OXB4OyBoZWlnaHQ6NzhweDsgZmxvYXQ6bGVmdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTE7IG1hcmdpbi10b3A6LTRweDsgbWFyZ2luLWxlZnQ6LTRweDsgdG9wOjBweDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7IGhlaWdodDoyNHB4OyBtYXJnaW46MzBweCAwIDIwcHggMHB4OyBwYWRkaW5nOjA7IGZsb2F0OmxlZnQgfSAucGFnZW5vNnt3aWR0aDoyNTRweDsgaGVpZ2h0OjI0cHg7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246cmlnaHQ7fSAuc3VpdmFudHt3aWR0aDoyODBweDsgaGVpZ2h0OjE5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDt9IC5tYWluX3JpZ2h0X2JveHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94N3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3TGlua3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3X21pZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAycHg7fSAuYm94N19taWRfZnVsbHt3aWR0aDo5NTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6bm9uZSBsZWZ0IHRvcCBuby1yZXBlYXQgMCAwIHRyYW5zcGFyZW50OyBwYWRkaW5nOjAgMnB4IDE1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNCQkI7fSAuc2ltdWxhcl92X2JveHsgd2lkdGg6MjY1cHg7IHBhZGRpbmc6MHB4IDBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveFNlYXJjaE5ld3N7bWFyZ2luLXRvcDotM3B4O21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcF8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94U2VhcmNoTmV3c19taWR7bWFyZ2luLWxlZnQ6LTVweDtwYWRkaW5nOjBweDt3aWR0aDoyODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkXzI4MC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9IC5ib3hTZWFyY2hOZXdzX2Zvb3RlcjE1e21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X2Zvb3Rlcl8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94N0hfbWlke3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWJvdHRvbTo2cHg7fSAuUmVjaGVyY2hlMjJ7aGVpZ2h0OjIwcHg7IHBhZGRpbmc6MTBweCA3cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMDAwMDA7fSAuc2ltVGl0bGV7aGVpZ2h0OmF1dG87IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDh7d2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7fSAuYm94OXt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDExe3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLmJveDEye3dpZHRoOjEzMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLnNlbGVjdF9ib3gxNHtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjNweDt9IC5zZWxlY3RfYm94MTZ7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94MTE1e3dpZHRoOjExNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuc2VsZWN0X2JveDgwe3dpZHRoOjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLmFfdGV4dHt3aWR0aDoyMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzowIDVweDt9IC5ham91dGVye3dpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjojMWYxZjFmO21hcmdpbjo1cHggMCAxMHB4IDBweDt9IC5ham91dGVyX2F7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvc2VhcmNoLWRvd24tYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IDNweCB0cmFuc3BhcmVudDsgcGFkZGluZy1sZWZ0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ham91dGVyX2FfZnVsbHtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtcmlnaHQtYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCAtMXB4IHRyYW5zcGFyZW50OyBwYWRkaW5nLXJpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ib3gxM3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7fSAuaW5wdXRfYm94Mnt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmlucHV0X3RleHR7IHdpZHRoOjE5NXB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzozcHggMHB4IDdweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmJ1dHRvbl9ib3gye3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAuYnV0dG9uX2JveFMyeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjI5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAzcHggMTNweCAzcHg7IH0gLmJveC1mb290ZXIxNXt3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmRpc3sgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjQwcHg7fSAuZGlzX2N1c3RvbXsgd2lkdGg6MjQwcHg7d2lkdGg6MjQwcHg7fSAuZGlzX3RvcHsgd2lkdGg6MjQ2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAuZGlzX3RvcF9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojY2JjYmNiO30gLmRpc19iZ3sgd2lkdGg6MjQ2cHg7IGhlaWdodDoxNTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5fZGlzX2JneyB3aWR0aDoyNDBweDsgaGVpZ2h0OjIwMHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4O30gLmRpc19iZ19jdXN0b217IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5fZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmRpc19ib3V7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLl9kaXNfYm91eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjM4cHg7IGZsb2F0OmxlZnQ7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTRweDsgY29sb3I6IzJkMmQyZDs7IH0gLmRpc19ib3VfY3VzdG9teyB3aWR0aDoyMzhweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZmZmZmZmO30gLl9kaXNfYm91X2N1c3RvbXsgd2lkdGg6MjQwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyBtYXJnaW4tdG9wOjEycHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAuZGlzX2JvdV8yeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91XzIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzX3RleHR7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IHBhZGRpbmc6NHB4IDBweCAwcHggMTVweDt9IC5sdW5kaV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBwYWRkaW5nOjJweCAwcHggMHB4IDIwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7fSAubHVuZGlfdGV4dF9ob21lcGFnZV9oMjQ4e2ZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IHBhZGRpbmc6MTBweCAwIDAgMjBweDsgfSAubHVuZGlfdGV4dCB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsO3dpZHRoOjYwcHg7fSAubHVuZGlfdGV4dCB0ZHt0ZXh0LWFsaWduOmxlZnQ7fSAucHsgaGVpZ2h0OjE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDVweCAwcHggMTBweDsgZm9udC1zaXplOjAuODEzcmVtIDt9IC5leyBoZWlnaHQ6MTZweDsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6N3B4IDBweCAwcHggMHB4OyBmb250LXNpemU6MC44NzVyZW0gO30gLmJveDI4OCwgLmJveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5fYm94Mjg4LCAuX2JveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OFVzZWR7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDowcHg7fSAuYm94Mjg4TmV3e3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyB9IC5ib3gyODhOZXdfY3VzdG9te2Zsb2F0OmxlZnQ7fSAuYm94Mjg4TmV3UU0sIC5ib3gyODhOZXdRTV9tb2JpbGUgeyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyBmbG9hdDpsZWZ0OyB3aWR0aDoyODBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveDI4OE5ld1FNX21vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuUmVjaGVyY2hlMjIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHRhYmxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIGlucHV0IHsgd2lkdGg6OTUlIWltcG9ydGFudDsgfSAuYm94Mjg4UU17IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDtmb250LXdlaWdodDpub3JtYWw7fSAuYm94Mjg4UU1fY3VzdG9te3dpZHRoOjI3OHB4O21hcmdpbjo1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDAgNHB4ICMzMzM7fSAudGV4dEFyZWFRTXsgZm9udC1zaXplOjAuODEzcmVtIDtsaW5lLWhlaWdodDoxNXB4O30gLmJveDI4OF90b3B7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBtYXJnaW4tdG9wOjBweDt9IC5ib3gyODhfdG9wX2N1c3RvbXt3aWR0aDoyNzhweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6I2NiY2JjYjt9IC5fYm94Mjg4UU17IHdpZHRoOjI4MHB4OyB9IC5fYm94Mjg4X3RvcHt9IC5fYm94Mjg4X3RvcF9jdXN0b217IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBXaWR0aDoxMDAlOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7IH0gLl9ib3gyODgwX21pZHt9IC5fYm94Mjg4MF9taWRfY3VzdG9te2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyODhfbWlkeyBib3gtc2hhZG93OjAgMCA1cHggIzMzMzMzMzsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgfSAuYm94Mjg4X21pZF9jdXN0b217IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4ODBfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC5ib3gyODgwX21pZF9jdXN0b217d2lkdGg6MjI4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAyNXB4OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94MjY5X21pZHt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDE1cHggMHB4IDE1cHg7fSAuem9vbTIye3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2VhcmNoX3JpZ2h0IHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3NlYXJjaC5wbmcpIDAgMCBuby1yZXBlYXQ7IHdpZHRoOjI3OHB4OyBoZWlnaHQ6MTExcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggNXB4IDVweCA1cHh9IC5EZW1hbmRlMjJ7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjZweDsgbWFyZ2luLXRvcDo2N3B4O30gLkRlbWFuZGUyMiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBhOmhvdmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5EZW1hbmRlMjIgc3BhbiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI5MjkyOTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBzcGFuIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmJveDI4OF9mb290ZXJ7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXI1NXsgd2lkdGg6MjgwcHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kLWNvbG9yOiNDQkNCQ0I7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLmJveDI4OF9mb290ZXI1NV9jdXN0b217IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MzVweDsgcGFkZGluZy10b3A6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLnAgYXt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5nYXAxMHt3aWR0aDoyMzBweDsgaGVpZ2h0OjEwcHg7IGZsb2F0OmxlZnQ7fSAucGFnZV9uYW1lMnt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwIDIwcHggMDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNjI1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWUzeyB3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5wYWdlX25hbWUzIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjQyNDI0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTR7d2lkdGg6NjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMTRGODA7fSAucGFnZV9uYW1lNCBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOnJnYig1MCw2NCw3MSk7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNXt3aWR0aDoxMDAlO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDA7IG1hcmdpbi1ib3R0b206MTVweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsIH0gI3NlYXJjaENvbnRhaW5lclBhcmVudCAucGFnZV9uYW1lNTpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi10b3A6MzBweDsgfSAuYm94Ml90ZXh0e2hlaWdodDphdXRvOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQgcHsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDtjb2xvcjojMDAwMDAwOyBtYXJnaW4tYm90dG9tOjIwcHg7fSAucG9zaXRpdmVSYXRpbmdUeHQgcHtmb250LXNpemU6MXJlbSA7fSAucG9zaXRpdmVSYXRpbmdUeHQgaDMsIC5wb3NpdGl2ZVJhdGluZ1R4dCBoNHtmb250LXdlaWdodDpub3JtYWw7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e3RleHQtdHJhbnNmb3JtOm5vbmU7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e2ZvbnQtc2l6ZToxLjI1cmVtIDt9IC5ldGFwZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7fSAudGV4dDF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDt9IC50ZXh0MSBhe3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLnRleHQxIGE6aG92ZXJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYS5hY3RpdmV7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAub25lMXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi1sZWZ0OjEwcHg7fSAub25lMSBhe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfcm91bmQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I0ZGRkZGRjsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYTpob3Zlcnt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX2hvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjQ2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5vbmUxIGEuYWN0aXZle3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnNlbGVjdGlvbm5lent3aWR0aDphdXRvOyBoZWlnaHQ6YXV0byA7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6M3B4OyBwYWRkaW5nLXRvcDo0cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxYTFhMWE7IGxpbmUtaGVpZ2h0OjIycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZm9ybXNfYm94MjJ7Ym94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMCAxMHB4IDA7IH0gLndpdGhfYm9yZGVyIHsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MCAxNnB4OyB9IC5QcmVub217d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAxMHB4IDA7fSAuUHJlbm9tIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tMnt3aWR0aDozMjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20yIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tM3t3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub200e3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTV7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzpweCAwIDEwcHggMDt9IC5QcmVub202e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTd7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tOHt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6cHggMCAxMHB4IDA7IGRpc3BsYXk6YmxvY2t9IC5QcmVub205e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLlByZW5vbTEwe3dpZHRoOjEwN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLnRleHQxNXt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNnt3aWR0aDoxNzJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxN3t3aWR0aDoxMTJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxOHt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDNweCAwO30gLnRleHQxNSBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLmJ1dHRvbjV7d2lkdGg6Mjg1cHg7IG1hcmdpbi1ib3R0b206MzBweDsgbWFyZ2luLXRvcDo3MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5ib3hfZGF0ZXt3aWR0aDoxNjdweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDoxcHg7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94X2RhdGUye3dpZHRoOjEwN3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3hfZGF0ZTN7d2lkdGg6ODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gc3Bhbi5hc3RreyBjb2xvcjojRkYwMTAxO2ZvbnQtc2l6ZTowLjY4OHJlbSA7ZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjNweDsgfSAuYm94NjF7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gLmJveDYxNjZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IH0gLlBvbGl0aXF1ZXt3aWR0aDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmc6MCAycHggMHB4IDJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjJweDsgfSAuUG9saXRpcXVlIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDU5YWY7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNmI5MWJkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMy5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTt9IC5Qb2xpdGlxdWUgYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjRweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lNC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMyNDI0MjQ7fSAudGV4dDE1NXt3aWR0aDoyODVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNTVjaGt7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTVweDt0ZXh0LWFsaWduOmxlZnQ7fSAuVmV1aWxsZXp7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5WZXVpbGxleiBzcGFue3RleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjJweDt9IC5WZXVpbGxleiBzcGFuIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OnJpZ2h0OyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDsgZGlzcGxheTpibG9ja30gLlZldWlsbGV6IHNwYW4gYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNDQ2ZjsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDA0NDZmOyBkaXNwbGF5OmJsb2NrO30gLkh5cG90aGVxdWV7d2lkdGg6MTk1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo1MHB4O30gLkh5cG90aGVxdWUyMnt3aWR0aDoyMjRweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLkh5cG90aGVxdWUzM3t3aWR0aDo1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwOyBsaW5lLWhlaWdodDozNXB4O30gLmNpdmlxdWV7d2lkdGg6MTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5SdWV7d2lkdGg6MjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5BcHB7d2lkdGg6MTgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5mb3JtczEwMHt3aWR0aDoxMzBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLmZvcm1zMTAxe3dpZHRoOjI5MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDJ7d2lkdGg6MTgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5WaWxsZXsgd2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuUHJvdmluY2V7IHdpZHRoOjE1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLkNvZGV7IHdpZHRoOjE2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLmZvcm1zMTAzeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDR7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNXsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA2eyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnR9IC5UeXBle3dpZHRoOjIwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuYm94NjAwe3dpZHRoOjYwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLXJpZ2h0OjBweDt9IC5EZW1hbmRlNTV7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTY2e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2FsMi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU3N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL20ucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODh7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTg4N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX3RleHQye3dpZHRoOjY0OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDBweCAxNXB4IDIzcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAuYm94X2JyYW5ke3dpZHRoOjY0OHB4OyBmbG9hdDpsZWZ0O3BhZGRpbmc6MjBweCAwcHggMTVweCAwcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDN7d2lkdGg6NjYxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxNXB4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5jYXJfYm94e3dpZHRoOjIwOHB4OyBoZWlnaHQ6MTMwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDhweCAwIDA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7fSAuY2FyX2ltYWdlc3t3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJvcmRlcjowOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5jYXJfdGV4dHt3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMwMDAwMDA7IHRleHQtYWxpZ246Y2VudGVyfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmNhcl9ib3gyeyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgMTBweCAxMHB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLmNhcl9ib3gyX3RheHR7aGVpZ2h0OmF1dG87IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWFsaWduOmxlZnQ7IGxpbmUtaGVpZ2h0OjIxcHg7fSAucGljX2JveDJ7IGJvcmRlcjoxcHggc29saWQgI0FBQTsgYmFja2dyb3VuZDojRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljX2JveDIgaW1nIHt3aWR0aDoxMDAlO30gLnByaW50e3dpZHRoOjE5MnB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmctdG9wOjdweDt9IC5wcmludCBheyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50LnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucHJpbnQgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9wcmludF9ob3Zlci5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNGE3ODsgcGFkZGluZy1sZWZ0OjM1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWVfY29ue3dpZHRoOjg0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDIxcHggMTBweCAyMHB4OyB9IC5ob21lMnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzM3MzczNzsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWUze3dpZHRoOjUxMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwe3dpZHRoOjMxMHB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgbGluZS1oZWlnaHQ6MzJweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwIHNwYW57IGNvbG9yOiNGRjAwMDA7fSAuaW5wdXQyNXt3aWR0aDozMTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAudmV1eHt3aWR0aDo2MDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyBwYWRkaW5nLXRvcDo1cHg7IGxpbmUtaGVpZ2h0OjE3cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkMGQwZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDt9IC5Ob3N7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiMwMDAwMDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTVweCAwIDE1cHggMTVweDsgbWFyZ2luOjVweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I0ZGRkZGRjt9IC5idXR0b25fam9ib2ZmZXIgeyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9pY29uX2VtcGxveS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDBweCAwcHggcmdiKDIzMSwgMjMyLCAyMzIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDo0MHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhIHsgYmFja2dyb3VuZDojMzI0MDQ3OyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IH0gLmJ1dHRvbl8xIGE6aG92ZXIsIC5idXR0b25fMiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiNlMGUwZTA7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgfSAuYnV0dG9uXzMgYTpub3QoLmRpc2NsYWltZXJzU3VwZXJzY3JpcHRzKXsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gLmJ1dHRvbl8zIGE6bm90KC5kaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyk6aG92ZXJ7IGJhY2tncm91bmQ6I0ZGRjsgY29sb3I6IzAwMDsgfSAuZmJDb25uZWN0QnRuIHsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6IzMwNTg5ODsgY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czozcHg7IGxpbmUtaGVpZ2h0OjM4cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2NoYXQtd2lkZ2V0LWNvbnRhaW5lciwgI2xpdmVfY2hhdF9zdGF0dXMsICNDaGF0RGl2LCAjcG9kaXVtLWJ1YmJsZSwgI2pjb250LCBqZGl2LCAjdHN3X3dyYXBwZXIsIC5mYl9kaWFsb2csIC5mYl9pZnJhbWVfd2lkZ2V0LCAuZmItY3VzdG9tZXJjaGF0LCAuZWstY2hhdCwgLm1hdGFkb3ItbGl2ZWNoYXQtMTIzNzg5LW1haW4td3JhcHBlciwgI21hdGFkb3ItY29ubmVjdC10ZXh0LWxhYmVsLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwtYmFkZ2V7IHotaW5kZXg6MTAwMDAgIWltcG9ydGFudDsgfSBzdmcuY2hhdC1idWJibGV7IHdpZHRoOnJldmVydDsgaGVpZ2h0OnJldmVydDsgfSAuZmJDb25uZWN0QnRuIC5mYS1mYWNlYm9va3sgY29sb3I6IzMwNTg5ODsgfSBhLmZhY2Vib29rQ29ubmVjdEJ0biB7IGNvbG9yOiNmZmY7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1mYW1pbHk6aW5oZXJpdDsgfSAuYnV0dG9uX3ZpZGVvc19mciBhLCAuYnV0dG9uX3ZpZGVvc19lbiBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGRpc3BsYXk6YmxvY2s7IH0gLmJ1dHRvbl92aWRlb3NfZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb3NfZnIgYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb3NfZW4gYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb3NfZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uLWhvdmVyX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19mciBhLCAuYnV0dG9uX3ZpZGVvX2VuIGF7IHdpZHRoOjE5M3B4OyBoZWlnaHQ6NTFweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvX2ZyIGF7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbi1ob3Zlcl9mci5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2VuIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl91bmRlcnt3aWR0aDoyNDlweDsgcGFkZGluZzowcHg7IG1hcmdpbjoxMHB4IDBweDt9IC5idXR0b25fdW5kZXIgYXsgd2lkdGg6MTAwJTttaW4taGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IHRleHQtc2hhZG93Om5vbmU7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uX3VuZGVyIGE6aG92ZXJ7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IH0gLmJ1dHRvbl91bmRlci5wcm9tbyBhe2JhY2tncm91bmQtY29sb3I6I2U4MGQwZDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbzMgYXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgY29sb3I6I0ZGRjsgd2lkdGg6MjM3cHg7IG1hcmdpbi1sZWZ0OjVweDt9IC5idXR0b25fdW5kZXIucHJvbW8gYTpob3ZlciwuYnV0dG9uX3VuZGVyLnByb21vMiBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8zIGE6aG92ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9idXR0b25fMWhvdmVyLnBuZyl9IC5idXR0b25fNHt3aWR0aDoyNDlweDsgaGVpZ2h0OjU3cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuYnV0dG9uXzQgYXsgd2lkdGg6MjQ5cHg7IGhlaWdodDo1MHB4OyBwYWRkaW5nLXRvcDo3cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzQucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgYm9yZGVyLXJhZGl1czozcHg7Zm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyBkaXNwbGF5OmJsb2NrIH0gLmJ1dHRvbl80IGE6aG92ZXJ7d2lkdGg6MjQ5cHg7IGhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl80aG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuY2hlY2tib3gxNTJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjE4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjAgNnB4IDAgMDsgbWFyZ2luLXRvcDowOyBib3JkZXI6MDsgdG9wOjA7IH0gLkJhc2UyMnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjZweDsgcGFkZGluZzo2cHggNnB4IDAgMDsgbWFyZ2luLXRvcDowOyBib3JkZXI6MDsgdG9wOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLmJveDk0MF9saW5le3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMjUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IGJvdHRvbTowO30gLndoaXRlX2JveHt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I0ZGRkZGRjsgb3ZlcmZsb3c6aGlkZGVuOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt9IC5ib3gxMDB7d2lkdGg6MjIwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjEzcHggMCAxNXB4IDEwcHg7fSAuYm94MTAxe3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmJveDEwMnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDt9IC5ib3gxMDN7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTA0e3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveEV2ZW57d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwcHggMHB4IDBweDt9IC5ib3hPZGR7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwcHggMHB4IDBweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5maWxlaW5wdXQtYnV0dG9uLCAuZmlsZWlucHV0LWJ1dHRvbjpob3ZlciB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDozMXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZmlsZWlucHV0LWJ1dHRvbiBpbnB1dCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgbWFyZ2luOjA7IG9wYWNpdHk6MDsgLW1zLWZpbHRlcjonYWxwaGEob3BhY2l0eT0wKSc7IGN1cnNvcjpwb2ludGVyOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuYm94OTQwX21haW57d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDE1cHggMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDIwMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdDsgLW1vei1ib3JkZXItcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyLXJhZGl1czo2cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjZweDt9IC53aGl0ZV9ib3hfdGV4dDJ7d2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHQze2JhY2tncm91bmQtY29sb3I6I0Y2RjZGNjtib3JkZXItbGVmdDoxcHggc29saWQgI0M5QzlDOTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNDOUM5Qzk7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDR7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDV7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC53aGl0ZV9ib3hfdGV4dDZ7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfYmxhbmt7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHRPZGR7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dEV2ZW57YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLmJveF90aXRsZXt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MzBweCAwcHggNXB4IDEwcHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fSAuY3VzdG9tXzIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC5jdXN0b21fMjIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC50b3lvdGFfY2Ftcnl7d2lkdGg6NDMwcHg7IGhlaWdodDoyMjJweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDBweCAwcHggMTBweDsgbWFyZ2luLXJpZ2h0OjhweDsgYmFja2dyb3VuZDojZWJlYmViOy1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7fSAudG95b3RhX2NhbXJ5IGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206NXB4O30gLnRveW90YV9jYW1yeSBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDJfZGV0YWlsc190ZXh0MjV7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjoxNXB4IGF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDRweCAjODI4MjgyO30gLmJveDJfZGV0YWlsc190ZXh0MjUgc3BhbnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuYm94MTV7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDJweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE1IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTUgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNSBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTZ7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTYgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNiBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24zLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE2IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxN3t3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNyBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE3IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjVweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTcgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE4IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTggaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNS5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjVweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOCBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTl7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBwYWRkaW5nLXJpZ2h0OjNweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE5IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTkgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE5IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjYucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0e2N1cnNvcjpwb2ludGVyO3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl8xLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTExNCBoMntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDExMTQgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTExNCBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuU3BlY2lmaWNhdGlvbnN7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNTI1MjU7IHRleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjVweDt9IC5Nb3JiaTJ7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHg7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDtmb250LXdlaWdodDpub3JtYWw7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLk1vcmJpMiBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDI4ODlfbWlke3dpZHRoOjI3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgNXB4IDIwcHggNXB4O30gLk1vcmJpMjJ7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94Mjg4OV9taWQgaDF7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAyMHB4IDEwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjRweH0gLl9ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuYm94Mjg4OV9taWQgaDJ7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjRweCAxMHB4IDIwcHggMTVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjNweH0gI3NpbWlsYXJUaXRsZXsgcGFkZGluZzo0cHggMTBweCA5cHggMTVweDsgZm9udC1zaXplOjEuNDM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC50YWJlNXt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLnRhYmU1IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAudGFiZTUgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC50YWJlNSB1bCBsaSBzcGFue2N1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3RhYl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt9IC50YWJlNSB1bCBsaSBzcGFuOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJlNSB1bCBsaSBzcGFuLmFjdGl2ZXtjdXJzb3I6ZGVmYXVsdDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiAjZWJlYmViOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgfSAudGFiX2RldGFpbHMye3dpZHRoOjYzMXB4OyBwYWRkaW5nOjEwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7fSAuYm94MjV7d2lkdGg6NDg3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbjowIDEzcHggMCAwOyBwYWRkaW5nOjIwcHggMCAyMHB4IDIwcHg7fSAuYm94MjZ7d2lkdGg6MjQzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDI2IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjYgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gyNiB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0O30gLmJveDI2IHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gyNiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI3e3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDMze3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3gzMyB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDMzIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7fSAuYm94MzMgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgdWwgbGkgc3BhbnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgcHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCAwcHggN3B4IDBweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gzMyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYXJyb3c4LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5Nb3RldXJ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjVweDt9IC5Nb3RldXIgaDJ7d2hpdGUtc3BhY2U6bm9ybWFsOyB3aWR0aDoxMzVweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojMjAyMDIwO30gLk1vdGV1ciBoM3t3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjE0MHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM1YTVhNWE7fSAuYm94MjYgdWwgbGkgc3BhbjpiZWZvcmUsLmJveDMzIHVsIGxpIHNwYW46YmVmb3JlLC5Nb3RldXIgaDI6YmVmb3JlIHsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5ib3gyNyBhe3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDoyOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gyNyBhOmhvdmVye3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjhweDsgfSAuYm94Mjh7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiM2ZjZmNmYgdXJsKC9pbWFnZXMvbGl0ZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDt9IC50ZXh0NDR7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpdGVyX2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjB7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IH0gLnRleHRfYm94NjAgaDJ7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC50ZXh0X2JveDYwIGgze3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgcHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC52aW9ye3dpZHRoOmF1dG87IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Zpb3IucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyB9IC5ib3gxMzN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IG1hcmdpbjowO30gLmJveDI1OHt3aWR0aDoyNThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2I5YjliOTsgcGFkZGluZzowIDEwcHggNXB4IDEwcHg7IG1hcmdpbi1ib3R0b206NXB4OyBmbG9hdDpsZWZ0O30gLmJveDExNnt3aWR0aDoxMTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjsgcGFkZGluZzowOyBtYXJnaW4tcmlnaHQ6NXB4O30gLmJveDExNiBpbWd7d2lkdGg6MTIwcHg7IH0gLmJveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NDdweDsgbWFyZ2luLWxlZnQ6MjBweDsgcGFkZGluZzowIDAgMTBweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgO30gLmJveDIgc3Bhbntmb250OmJvbGQgMTJweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwfSAuYm94M3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MyBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3g0e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCA0NXB4IDEwcHggMjBweDsgfSAuYm94NDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ3cHggMTBweCAyMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTt9IC5ib3g1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDt9IC5ib3g2e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjEwcHggMHB4IDBweCAwO30gLmJveDU1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5saW4ye3dpZHRoOjYxN3B4OyBoZWlnaHQ6MnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDAgMTBweCAwOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDt9IC5ib3gxNHtwYWRkaW5nOjBweCAwOyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdH0gLmJveDIwe3BhZGRpbmc6MCAxMHB4OyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoyN3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC50ZXh0MzB7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzI0MjQyNH0gLnRleHQzMCBzcGFue3BhZGRpbmctcmlnaHQ6MTBweDsgZmxvYXQ6cmlnaHQ7IHRleHQtYWxpZ246cmlnaHQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzI0MjQyNDt9IC50ZXh0MzAgc3BhbiBzdHJvbmd7Zm9udDpib2xkIDIwcHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMCB9IC5ib3g2MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLm1haW42MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjE1cHg7fSAuYm94MjBBe3BhZGRpbmc6MCA1cHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLm9uU2l0ZSArIC5wcmVmZXJyZWQsIC5wcmVmZXJyZWQ6aGFzKCsub25TaXRlKSB7IGFsaWduLXNlbGY6ZW5kOyB9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUge2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6OTAlO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7YmFja2dyb3VuZDojZjNmM2YzO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZHtwYWRkaW5nLXRvcDowLjVyZW07IHZlcnRpY2FsLWFsaWduOnRvcDsgbGluZS1oZWlnaHQ6MS41O30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZDpudGgtY2hpbGQoMikge3BhZGRpbmc6MC41cmVtO30gLmRldGFpbENhclRpdGxlLCAuZGV0YWlsQ2FyVGl0bGVXaWRlLCAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3b3JkLXdyYXA6YnJlYWstd29yZDtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtmb250LXdlaWdodDpub3JtYWw7fSAuZGV0YWlsQ2FyVGl0bGUge3dpZHRoOjQ5MHB4O30gLmRldGFpbENhclRpdGxlV2lkZSB7d2lkdGg6Nzc1cHg7fSAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3aWR0aDoxMDAlO30gLm1haW5ib3hfdGV4dGFyZTYxN3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjIwcHggMDsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAwJSk7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjUwJTt9IC50ZXh0Ym94MjJ7d2lkdGg6MzgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDBweCAwIDA7fSAuYnV0dG9uNTF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyB9IC5idXR0b241MSBheyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkYgOyBwYWRkaW5nOjAgMTBweDsgbGluZS1oZWlnaHQ6MzZweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAuYnV0dG9uNTEgYTpob3Zlcnsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uNS5wbmcpIGxlZnQgLTQ0cHggcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkYgOyBwYWRkaW5nOjAgMTBweDsgbGluZS1oZWlnaHQ6MzZweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9IC50ZXh0NTV7d2lkdGg6MzgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDBweCAyMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spIDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnRleHQ1NSBweyBwYWRkaW5nLWxlZnQ6MHB4IDVweCAwIDA7IG1hcmdpbjowcHggMHB4IDBweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBpY2JveF8yMjF7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMTVweCAwIDA7fSAucGljYm94XzIyMSBpbWcgeyB3aWR0aDozMzJweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLmlzRnVsbFdpZHRoUGFnZSAucGljYm94XzIyMSBpbWcgeyB3aWR0aDo0NDJweDsgfSAucGljYm94NjUxe3dpZHRoOjY1MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjVweCAxMHB4IDBweDt9IC5waWNib3g5MzB7d2lkdGg6OTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDVweCAwcHg7fSAucGljYm94NjUxIGltZyB7IHdpZHRoOjY1MXB4OyB9IC5waWNib3g5MzAgaW1nIHsgd2lkdGg6OTMwcHg7IH0gLnBpY2JveDY1MSBpbWcsIC5waWNib3g5MzAgaW1nIHsgZmxvYXQ6bGVmdDsgY3Vyc29yOnBvaW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLnRvcFByb21vSW1hZ2UgaW1nIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luLXRvcDo1cHg7IHdpZHRoOjkzMHB4OyBjdXJzb3I6cG9pbnRlcjsgfSAudG9wUHJvbW9JbWFnZVVzZWQgaW1nIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgd2lkdGg6NjUwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50ZWFtX3RpdGxlX2RlYWxlcnttYXJnaW4tYm90dG9tOjE1cHg7IHRleHQtYWxpZ246Y2VudGVyO30gLmZvcm1zX2JveDY2MXt3aWR0aDo5NjBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjoxMHB4IGF1dG87IH0gLnBpY2JveDkwe3dpZHRoOjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6OHB4OyBib3JkZXI6MXB4IHNvbGlkICNhY2FjYWM7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLnBpY2JveDkwIGltZyB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLnRleHRib3gxOTF7d2lkdGg6NTIlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MS4yOyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0Ym94MTkxIGg0eyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMjQyNDI0OyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLm1haW5ib3gyOTF7d2lkdGg6MjkxcHg7IG1pbi1oZWlnaHQ6MTIzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMTBweCAwOyBiYWNrZ3JvdW5kOiNlNmU2ZTY7IGJvcmRlcjoxcHggc29saWQgI2Q0ZDRkNDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzoxNXB4IDEwcHg7fSAubGF6eXtib3JkZXI6MDtkaXNwbGF5Om5vbmV9IC50ZWNoU3BlY3N7d2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDojZWJlYmViOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGJvdHRvbTsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDowcHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDstd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7fSAuZW1haWxfbGlua3t0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izg4ODt9IC5lbWFpbF9saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojMzMzO30gLnBhZ2VfbmFtZTU1NSB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDozMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDA7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luOjA7IH0gLnBhZ2VfbmFtZTU1NSBheyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWU1NTUgYTpob3ZlcnsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAucGFnZV9uYW1lNTU1IGE6dmlzaXRlZHsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IHsgY29sb3I6IzI0MjQyNDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBoZWlnaHQ6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAucGFnZV9uYW1lTkVXNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWVORVc1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQ0NCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZToxcmVtOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6MThweDsgcGFkZGluZzoxMHB4IDAgMCAwOyB3aWR0aDphdXRvOyB9IC50ZXh0X2JveDExIHsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjAgMjBweCAxMHB4IDA7IHdpZHRoOmF1dG87IGxpbmUtaGVpZ2h0OjIxcHg7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyB9IC50ZXh0X2JveDExIGg0IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjEwcHggMDsgfSAudGV4dF9ib3gxMSBhIHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjAuNzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MDsgcGFkZGluZzoxMHB4IDA7IGZsb2F0OmxlZnQ7IH0gLnRleHRfYm94MTEgYTpob3ZlciB7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRfYm94MTEgYTp2aXNpdGVkIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IH0gLnRleHRfYm94MTEgdWwsIC50ZXh0X2JveDExIHAgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAwIDVweDsgfSAudGV4dF9ib3gxMSB1bCB7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyB9IC50ZXh0X2JveDExIHAgYSB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZsb2F0Om5vbmU7IH0gLnBpY2JveDMzNiB7IGJvcmRlcjoxcHggc29saWQgIzdEN0Q3RDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1yaWdodDo2OHB4OyB9IC5mb250X3NpemUyMSB7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50OyB9IC5wYWdlX25hbWUxOCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDozMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDA7IHdpZHRoOjEwMCU7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnBhZ2VfbmFtZTE4IGF7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWUxOCBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC52aWRlbzUgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6NDFweDsgbWFyZ2luLXRvcDo3MHB4OyBtYXJnaW4tbGVmdDo3MHB4OyB9IC5mbG9hdExvZ297IHdpZHRoOjYyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgcGFkZGluZzoyNXB4IDE1cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvTE9HT19HQV9UUkFOU1BBUkVOVC5wbmcpIHJpZ2h0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbiB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlcjptZWRpdW0gbm9uZTsgY29sb3I6I0ZGRkZGRjsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IG1hcmdpbjowOyBvdmVyZmxvdzp2aXNpYmxlOyBwYWRkaW5nOjA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4geyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9idG5fcmlnaHQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgcmlnaHQgdG9wIHRyYW5zcGFyZW50OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MzVweDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9sZWZ0Mi5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojRkZGRkZGOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDoyNnB4OyBsaW5lLWhlaWdodDoxM3B4OyBwYWRkaW5nOjEycHggMTNweCAwIDE1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2hvdmVyIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4gc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNjZweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9jbGljayBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtNjZweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB7IG1hcmdpbjoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgeyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgIzY2NjY2NjsgaGVpZ2h0OjMwcHg7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYXsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6aG92ZXJ7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBhOnZpc2l0ZWR7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAuZXhwYW5kUm93eyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7IHRleHQtYWxpZ246cmlnaHQ7IGNvbG9yOiM0MTQxNDE7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXJpZ2h0OjJweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgei1pbmRleDo5OTk5OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYudG95b3RJbWFnZSB7IGNvbG9yOiM2NjY2NjY7IGZvbnQtc2l6ZTozLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDoyNTBweDsgbGVmdDowOyBvcGFjaXR5OjAuODsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjVweCAxMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjM4MHB4OyB6LWluZGV4Ojg7IH0gZGl2LnRveW90SW1hZ2UgcCB7IHBhZGRpbmc6NXB4OyBtYXJnaW46MDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6I0E2QTZBNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2Lm5ld0Nhck1haW5Cb3ggeyB3aWR0aDo5NjBweDsgbWFyZ2luOjAgYXV0bzsgfSBkaXYubmV3Q2FyTWFpbkJveDIgeyBtYXJnaW4tdG9wOjVweDsgfSBkaXYubmV3Q2FyTWFpbkJveDMgeyB3aWR0aDo5NjBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94OTcwX3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuc3RvY2tJbWdTdHlsZXsgd2lkdGg6MTAwJTsgaGVpZ2h0OjUwJTsgZm9udC1zaXplOjIuMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MzBweDsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbjowcHg7IGNvbG9yOiMzMDMwMzA7IH0gI2ZpcnN0U2xpZGVySW1nIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxNTsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IG9wYWNpdHk6MTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyBib3JkZXI6MXB4IHNvbGlkICNGRkY7IHdpZHRoOjY0MHB4OyBoZWlnaHQ6NDgwcHg7IH0gI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciAuaW5uZXItcGxhY2Vob2xkZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IHRvcDowOyBib3R0b206MDsgbGVmdDowOyByaWdodDowOyB9ICNmaXJzdFNsaWRlckltZyBJTUd7IGhlaWdodDphdXRvOyBtYXgtd2lkdGg6NjQwcHg7IG1heC1oZWlnaHQ6NDgwcHg7IHdpZHRoOmF1dG87IG1hcmdpbjphdXRvOyB9ICNmaXJzdFNsaWRlckltZy5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyB9ICNzb2NpYWxUaW1lbGluZXsgd2lkdGg6OTYwcHg7IGhlaWdodDphdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94NCB7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MTBweCAxNXB4OyB9IGRpdi5uZXdDYXJUaXRsZUJveCBoMXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuZ3JheWJveCB7IGJhY2tncm91bmQtY29sb3I6I0VGRUZFRjsgYm9yZGVyOjFweCBzb2xpZCAjRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjEwcHggMCAxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXNoYWRvdzowIDFweCAwICNGRkZGRkY7IH0gLmdyYXlib3ggPiBzcGFuIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmdyYXlib3ggLnNtYWxsdGV4dCB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7IGJvcmRlci10b3A6MXB4IHNvbGlkICNDQ0NDQ0M7IGNvbG9yOiMzMzMzMzM7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IG1hcmdpbi10b3A6MTBweDsgcGFkZGluZzoxMHB4OyB9IC5ncmF5Ym94IGgyIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjo1cHggYXV0bzsgfSAuZXh0ZW5kZWRQaG9uZXsgcG9zaXRpb246Zml4ZWQ7IGJhY2tncm91bmQtY29sb3I6IzY3Njc2NzsgY29sb3I6I2RkZDsgcGFkZGluZzowLjZlbTsgYm9yZGVyLXJhZGl1czo1cHg7IHotaW5kZXg6OTk5OTsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5leHRlbmRlZFBob25lIGxhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZXh0ZW5kZWRQaG9uZSBzcGFueyBjb2xvcjojZmZmOyB9IC5waG9uZU5vdGV7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHBhZGRpbmctdG9wOjdweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdkV4IHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjFyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoyMHB4OyBwYWRkaW5nLXRvcDozMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IGRpdnsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctdG9wOjEwcHg7IHdpZHRoOjIwMHB4OyBmbG9hdDpsZWZ0OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVseyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IG1hcmdpbi10b3A6NXB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpeyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDo0MHB4OyB0ZXh0LWluZGVudDotMTBweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBjb2xvcjojMzMzOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGkgYXsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYXJyb3dfcmVkLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgMCAxMHB4IHRyYW5zcGFyZW50OyBjb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MnB4OyBwYWRkaW5nOjZweCAxMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuY29tcGFyZUxpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5jb21wYXJlTGlua3MgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gI2NvbnRhY3R1cyBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNjb250YWN0dXMgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBBY3RpdmUgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy8xX2hvdmVyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiMwMDAwMDA7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6NDZweDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBVbmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfcm91bmQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6I0ZGRkZGRjsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAudGV4dDEgc3BhbiB7IGNvbG9yOiM0MzQzNDM7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNGM0YzRjM7IHdpZHRoOmF1dG87IH0gI1BhZ2VGaW5hbmNlIGRpdi5lbWFpbFNlbnRNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNCOEZGQjg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2FjY2VwdGVkLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQgIzBCOTYwMDsgY29sb3I6IzBCOTYwMDsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gLm90aGVyX2xpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5vdGhlcl9saW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wcm9tb3Rpb25TaWRlQnRuQSB7IGJhY2tncm91bmQ6I2I0NWYxYTsgY29sb3I6I2ZmZmZmZjsgZGlzcGxheTpibG9jaztmb250LXNpemU6MS4yNXJlbSA7d2lkdGg6Zml0LWNvbnRlbnQ7aGVpZ2h0OjUzcHg7cGFkZGluZzoycHggMTVweCAwcHggMTVweDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDo1M3B4O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtc2l6ZToxMDAlOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowcHg7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IH0gLmZvb3Rlck11bHRpQWRkcmVzczMgeyBib3JkZXItcmlnaHQ6MXB4ICM5MTkxOTEgc29saWQ7IHBhZGRpbmctcmlnaHQ6NzBweDsgbWFyZ2luLWxlZnQ6MTRweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMiB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDoxNTBweDsgbWFyZ2luLWxlZnQ6OTNweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMSB7IG1hcmdpbi1sZWZ0OjM0NXB4OyBjb2xvcjojNTc1NzU3OyB9IC5zbWFsbEFjdGlvbldlYnNpdGVDb2xvciB7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9ibF9iZzIucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yOmhvdmVyeyBiYWNrZ3JvdW5kIDp1cmwoIi9pbWFnZXMvbWVudTEwX2JnLnBuZyIpIGxlZnQgdG9wIHJlcGVhdC14OyBjb2xvcjojRkZGOyB9IC5uYXYgbGkgYS50b3BfbGluay5pc0JvbGQsIC5uYXYgbGkgYS5pc0JvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI21haW5IZWFkZXIgZGl2LmJveDE1UGFkZGluZ3sgcGFkZGluZy10b3A6MTVweDsgfSAubmF2IC5ub3RDbGlja2FibGV7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLlMxMDBQZXJjZW50V2lkdGh7IHdpZHRoOjEwMCU7IH0gI2ZpbHRlck1haW5Cb3ggeyBjb2xvcjojMDAwOyB9ICNmaWx0ZXJNYWluQm94IC5maWx0ZXJTcGFuLCAjZmlsdGVyTWFpbkJveCAuZmlsdGVyQ2hlY2ssICNmaWx0ZXJNYWluQm94IC5yYWRpb1NvcnQgeyBjdXJzb3I6cG9pbnRlcjsgfSAuYkNvZGVTdHlsZSB7IGZsb2F0OmxlZnQ7IHdpZHRoOjI1JTsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgfSAuYkNvZGVTb3J0IHsgZmxvYXQ6bGVmdDsgd2lkdGg6MTYlOyBiYWNrZ3JvdW5kLWNvbG9yOjsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyB9IC5iQ29kZVNvcnQgLmJDb2RlSGVhZGluZywgLmJDb2RlU3R5bGUgLmJDb2RlSGVhZGluZyB7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWxlZnQ6MnB4OyB9IC5wYWdlX25hbWU0Mnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDt9IC5wYWdlX25hbWU0MiBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsO2JvcmRlcjpub25lO30gLnBhZ2VfbmFtZTQyIGgyLm5vdGZpcnN0IHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luLXRvcDowcHg7cGFkZGluZy10b3A6NDBweDtib3JkZXItdG9wOjFweCAjY2NjY2NjIHNvbGlkO3dpZHRoOjkyMHB4O30gI2ZpbHRlck1haW5Cb3gubmV3Y2Fyc3N0eWxlMnsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyOm5vbmU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiZWJlYmU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNiZWJlYmU7IHdpZHRoOjk1NXB4OyBsZWZ0OjNweDsgfSBkaXYuaW1kZXYgbGFiZWx7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctdG9wOjEwcHg7IH0gZGl2LmltZGV2IGRpdnsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNEOUQ5RDk7IHBhZGRpbmc6MTBweCAwcHggMTBweCAwcHg7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gZGl2LmltZGV2X2lubmVyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBtYXJnaW4tbGVmdDozMHB4OyB3aWR0aDo5MCUgIWltcG9ydGFudDsgfSB1bC5xdWl6IHtwYWRkaW5nOjEwcHggMCAxMHB4IDIwcHg7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBoZWlnaHQ6MTc1cHg7fSB1bC5xdWl6IGxpIHtwYWRkaW5nOjEwcHg7fSB1bC5xdWl6IGxpIGlucHV0IHttYXJnaW4tcmlnaHQ6MTBweDt9IC5uZXdzLWJvZHkge3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MC44MTNyZW0gO2NvbG9yOiMxOTE5MTk7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi10b3A6LTIwcHg7cGFkZGluZy1ib3R0b206MTBweDt9IC5uZXdzLWFsbC10ZXh0IHtjb2xvcjojMTkxOTE5O30gI25ld3NDb250YWluZXIgLnRleHRfYm94MTEgaW1nIHsgbWF4LXdpZHRoOjY0MHB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IGF1dG87IH0gI25ld3NDb250YWluZXIgLnVzZWR7IGNsZWFyOmJvdGg7IH0gLmhvbWVfYWN0aW9uX2FkaiB7IHdpZHRoOjk2MXB4OyB9IC5ob21lX2FjdGlvbl9hZGoyIHsgd2lkdGg6NzMwcHghaW1wb3J0YW50OyBoZWlnaHQ6NjAwcHghaW1wb3J0YW50OyB9IC5ob21lX2VtYWlseyB3aWR0aDoyMzJweDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAud2lkZ2V0X21lbnVfYWRqMXsgZm9udC1zaXplOjAuOGVtOyB9IC53aWRnZXRfbWVudV9hZGoyeyBmbG9hdDpyaWdodDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTJweDsgfSAud2lkZ2V0X21lbnVfZXh0ZW5kZWRQaG9uZXsgZm9udC1zaXplOjAuOGVtOyBtYXJnaW4tbGVmdDoxMDRweDsgdG9wOjEzMnB4OyB9IC53aWRnZXRfbWVudV9hZGozeyBmb250LXNpemU6MC44ZW07Y29sb3I6IzU3NTc1Nztwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi04cHg7IH0gLndpZGdldF9tZW51X2FkajR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MC44ZW07IGRpc3BsYXk6dGFibGU7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLnBob25lX3RleHQucmlnaHQgeyBmbG9hdDpub25lOyBoZWlnaHQ6aW5pdGlhbDsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5oZXJpdDsgfSAucGhvbmVfdGV4dCAudGVsIHsgbWFyZ2luLWxlZnQ6MTBweDsgfSAucGhvbmVfdGV4dCBsYWJlbCB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206NHB4OyB9IC53aWRnZXRfbWVudV9hZGo0LnJpZ2h0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLndpZGdldF9tZW51X2FkajQubGVmdCB7IHBhZGRpbmctcmlnaHQ6MTBweDsgd2lkdGg6aW5oZXJpdDsgfSAud2lkZ2V0X21lbnVfYWRqNnsgZm9udC1zaXplOjAuOGVtO3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LTNweDtjb2xvcjojNTc1NzU3O2N1cnNvcjpwb2ludGVyOyB9IC53aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxleyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYWFhO3RleHQtYWxpZ246IGNlbnRlcjtmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206OHB4OyBwYWRkaW5nLXRvcDo4cHg7IGNvbG9yOiMwMDAwMDA7IH0gLndpZGdldF9leHByZXNzX21haWxfYWRqMXsgcGFkZGluZzoxNXB4IDEwcHg7IGxpbmUtaGVpZ2h0OjYwcHg7IGZvbnQtc2l6ZToyZW07IHBhZGRpbmc6MTVweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyOyB9IC5iYW5uZXJQb3B1cENsb3NleyBsZWZ0OjcxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTVweDsgdG9wOjIwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5wcmljZU5vdGUgeyBjb2xvcjojNzU3NTc1OyBmb250LXN0eWxlOml0YWxpYzsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTRweDsgfSAuc3RhY2tlZERpc2NsYWltZXJ7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLnN0YWNrZWREaXNjbGFpbWVyOmJlZm9yZXsgY29udGVudDoiKioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gLnRvcHJpbnR7IGRpc3BsYXk6bm9uZTsgfSAucmVmZmVyZW5jZUNvbnRlbnREZW1vLCAucmVmZmVyZW5jZUNvbnRlbnRDbGVhcmFuY2V7IHBhZGRpbmc6MzBweCAyMHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gLmJveDJfZGV0YWlsc190ZXh0MiAuY29tcGFyZUJ1dHRvbiwgLmJveDJfZGV0YWlsc190ZXh0MjIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tdG9wOi0yMHB4OyB6LWluZGV4OjE7IGxlZnQ6LTMwcHg7IH0gLnZkcHsgY2xlYXI6Ym90aDsgd2lkdGg6MTYwcHg7IH0gLmNvbXBhcmVCdXR0b257IHRyYW5zaXRpb246Ym94LXNoYWRvdyAwLjI1cyBlYXNlLW91dCAwczsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQgMHM7IGRpc3BsYXk6bm9uZTsgfSBkaXYjc2xpZGVyLXByby0xMiB7IGJvcmRlcjoxcHggc29saWQgI0VCRUJFQjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6I2ZmZjsgfSAjc2xpZGVyUHJvbW9BbGVydHsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgfSAuc2xpZGUtd3JhcHBlcnsgYm9yZGVyLXJhZGl1czozcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbnsgYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgfSBpbWcuaW1hZ2UgeyBib3JkZXItcmFkaXVzOjNweDsgfSAubmV3VmRwVmlld2VyIC5jb21wYXJlQnV0dG9ueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgcmlnaHQ6MHB4OyB6LWluZGV4OjExMTE7IH0gLmxpdmVBbGVydF9saW5reyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubGl2ZUFsZXJ0X2xpbms6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5idXR0b24tdG9hc3RyeyBiYWNrZ3JvdW5kOiNGRkY7cGFkZGluZzo0cHggMjBweDtib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0JEMzYyRiFpbXBvcnRhbnQ7IH0gLmJ1dHRvbi10b2FzdHI6aG92ZXJ7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAucmV0dXJuUG9wdXBfc3VibWl0IHNwYW4geyBwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7IHRvcDo1MCUhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50OyBsZWZ0OjAhaW1wb3J0YW50OyByaWdodDowIWltcG9ydGFudDsgcGFkZGluZzowIDhweCAwIDhweCFpbXBvcnRhbnQ7IGN1cnNvcjpwb2ludGVyIWltcG9ydGFudDsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgY29sb3I6I0ZGRiFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6LTlweCFpbXBvcnRhbnQ7IH0gcmV0dXJuUG9wdXBfc3VibWl0OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojMGJiMWUwOyBjb2xvcjojZmZmOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgeyBkaXNwbGF5OmJsb2NrOyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1yYWRpdXM6NXB4OyBsZWZ0OjIyOHB4OyB6LWluZGV4OjU7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6NDBweDsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6I2I0NWYxYTsgdGV4dC1zaGFkb3c6MXB4IDFweCAjMDAyYjQ2OyBjb2xvcjojZmZmOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjFyZW0gOyBsaW5lLWhlaWdodDoxOXB4OyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0gI3JldHVyblBvcHVwRm9ybV93cmFwcGVyIHsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDpyZ2JhKDY2LDY2LDY2LDEpOyBib3JkZXItc3R5bGU6bm9uZTsgYm9yZGVyLXJhZGl1czoxMXB4OyBsZWZ0OjI4MHB4OyB0b3A6MTU1cHg7IHotaW5kZXg6Mjsgd2lkdGg6NTMxcHg7IGhlaWdodDozODRweDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI3JldHVyblBvcHVwVGlsdGV7IHdpZHRoOjMzNXB4OyBmbG9hdDpyaWdodDsgbWFyZ2luOjIwcHg7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI3JldHVyblBvcHVwVGlsdGUgLnJwX21jeyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDsgfSAjcmV0dXJuUG9wdXBUaWx0ZTJ7IGNvbG9yOiNGRkY7IG1hcmdpbjoyMHB4IDEwcHggMjBweCAyMHB4OyBwYWRkaW5nOjA7IH0gLnJldHVyblBvcHVwRm9ybV9sYWJlbCB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTRweDsgY29sb3I6I2JmYmZiZjsgbWFyZ2luLWxlZnQ6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnJldHVyblBvcHVwRm9ybV90YWJsZSB0ciB0ZHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAucnBfbWMgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgY29sb3I6I2I0NWYxYSFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgfSAjZXhpdFBvcHVwQ29udGFpbmVyeyBwYWRkaW5nOjA7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfZm9ybXsgaGVpZ2h0OjM0cmVtOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1mci5wbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWV4aXQtcG9wdXAtYmdjb2wsICNlZWUpOyB9IGJvZHkuRU5HTElTSCAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfZm9ybXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvdHJhZGVpbi1leGl0cG9wdXAtZW4ucG5nKTsgfSAuZXhpdF9wb3B1cF9idXR0b25zIGJ1dHRvbiB7IHdpZHRoOjExcmVtOyBmb250LXdlaWdodDpib2xkOyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV8yeyBtYXJnaW4tdG9wOjI3cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV8zeyBmb250LXNpemU6MS42MjVyZW0gOyBtYXJnaW4tYm90dG9tOjNweDsgZm9udC13ZWlnaHQ6Ym9sZGVyOyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV81IHsgbWFyZ2luLWJvdHRvbToyMHB4OyBmb250LXNpemU6MS42MjVyZW0gOyBmb250LXdlaWdodDpib2xkZXI7IG1hcmdpbi10b3A6NjNweDsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGV7IGhlaWdodDo5NXB4OyB3aWR0aDo1NzBweDsgbWFyZ2luLXRvcDoyMHB4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRlJFTkNIeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy9hY2N1LXRyYWRlLWV4aXQtdGl0bGVfZnIucG5nKTsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGUuX0VOR0xJU0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9lbi5wbmcpOyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lcnsgd2lkdGg6NDgwcHg7IGhlaWdodDo1MTBweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxNXB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL3BvcHVwcy9lbi9iZXN0UHJpY2VOZXdWZHAucG5nJyk7IH0gLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IGJhY2tncm91bmQtc2l6ZTo0ODBweCA1MTVweDsgfSAucG9wdXBGb3JtIC5hc3Rlcmlza3sgY29sb3I6I2QwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowOyBmb250LXNpemU6aW5oZXJpdDsgbWFyZ2luOjA7IH0gLnBvcHVwRm9ybXsgei1pbmRleDo1MDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyNDhweDsgaGVpZ2h0OjI0OXB4OyBsZWZ0OjgwcHg7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2NvdXBvbi1mb3JtLWJnLTIucG5nIikgbm8tcmVwZWF0OyB3aWR0aDozMzVweDsgcGFkZGluZzozMHB4OyB9IC5wb3B1cEZvcm1UaXRsZXsgaGVpZ2h0OjQwcHg7IG1hcmdpbjo4cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnBvcHVwRm9ybUlucHV0cyB0ZCB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmctcmlnaHQ6MTBweDsgcGFkZGluZy1ib3R0b206M3B4OyB9IC5wb3B1cEZvcm0gaW5wdXR7IHdpZHRoOjIxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50eyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4IDMwcHg7IGhlaWdodDphdXRvOyBjb2xvcjojMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHotaW5kZXg6MTAwMDAyMTsgfSAjcHJvbW9EaXNjb3ZlckJ1dHRvbnsgfSAubmV3VmRwVmlld2VyIHsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MjBweDsgfSAubG9jYXRpb24tbmFtZXMgeyBwb3NpdGlvbjpzdGF0aWM7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IHBvc2l0aW9uOnN0YXRpYzsgfSAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgdWwuc3ViIGxpIC5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgbGkubG9jYXRpb24tbmFtZXMgeyBtaW4td2lkdGg6MjAwcHg7IH0gLmxvY2F0aW9uLW5hbWVzLCAubG9jYXRpb24tbmFtZXMgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IH0gLkwxMDAgeyBsZWZ0OjEwMCU7IH0gLlIxMDAgeyByaWdodDoxMDAlOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcGFkZGluZzoxNHB4OyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgZGlzcGxheTpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBtaW4td2lkdGg6MjkwcHg7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLnRpdGxlIHsgbWFyZ2luLWJvdHRvbToxZW07IGZvbnQtc2l6ZTppbml0aWFsOyBjb2xvcjojMDAwMDAwOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyA+IC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28gPiBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLmxvY2F0aW9uLWRldGFpbHMgeyBkaXNwbGF5OmJsb2NrOyB9IGxpLmxvY2F0aW9uLW5hbWVzOmhvdmVyIC5tYWlubWVudS1zdWJtZW51IHsgb3BhY2l0eToxOyB2aXNpYmlsaXR5OnZpc2libGU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28geyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBtYXJnaW4tYm90dG9tOjhweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIC5sb2NhdGlvbi1uYW1lcyAubWFpbm1lbnUtc3VibWVudSAubG9jYXRpb24tZGV0YWlscyB7IG1heC1oZWlnaHQ6NjB2aDsgcG9zaXRpb246c3RhdGljOyB9IC51cF9tZW51IHVsLm5hdiAubG9jYXRpb24tZGV0YWlscy1pbmZvIGEgeyBjb2xvcjojMDAwMDAwOyBwYWRkaW5nOjA7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyAubG9jYXRpb24tc3BhY2luZy1tbC0xMyB7IG1hcmdpbi1sZWZ0OjEzLjQ5cHg7IH0gLnVwX21lbnUgdWwubmF2IGxpLmRldGFpbHMtaW5mby1saW5rIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAudXBfbWVudSB1bC5uYXYgLmRldGFpbHMtaW5mby1saW5rOmhvdmVyIGEgeyBjb2xvcjojMDAwMDAwOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyA+IHVsLnN1YiA+IGxpID4gdWwgeyBtYXgtaGVpZ2h0OjYwdmg7IG92ZXJmbG93LXk6YXV0bzsgb3ZlcmZsb3cteDpoaWRkZW47IH0gYm9keSAud3JhcHBlciAudXBfbWVudSAubmF2ID4gbGk6aG92ZXIgdWwuc3ViIGxpOmhvdmVyIC5kZXRhaWxzLWluZm8tbGluayBsaTpob3ZlciBhIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOyB9IGxpLmRldGFpbHMtaW5mby1saW5rOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOyBjb2xvcjojMDAwMDAwOyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gdWwgbGkgeyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctYm90dG9tOjRweDsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6MC44NzVyZW0gOyBtYXJnaW4tYm90dG9tOjVweDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvID4gdWwgPiBsaTpiZWZvcmUgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDo3cHg7IG1hcmdpbi1ib3R0b206MXB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyB1bCB7IHBhZGRpbmc6MDsgfSBAbWVkaWEgcHJpbnR7IC50b3ByaW50eyBkaXNwbGF5OmJsb2NrO30gfSAubXItMTUgeyBtYXJnaW4tcmlnaHQ6MTVweDsgfSAubWwtMTUgeyBtYXJnaW4tbGVmdDoxNXB4OyB9IC5tbC03IHsgbWFyZ2luLWxlZnQ6N3B4OyB9IHNwYW4uYXJyb3cgeyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMnB4OyB9IHNwYW4uYXJyb3cuYXJyb3ctbGFyZ2UgeyBib3JkZXItd2lkdGg6MCAzcHggM3B4IDA7IHBhZGRpbmc6NHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSBzcGFuLmFycm93LmFycm93LXJpZ2h0IHsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWxlZnQgeyB0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctdXAgeyB0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy1kb3duIHsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IH0gLnRvcGJhcjNidG5XcmFweyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyBib3JkZXI6MnB4IHNvbGlkICNENkQ2RDY7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgaGVpZ2h0OjQycHg7IHBhZGRpbmc6MCAyMHB4OyBjb2xvcjojZmZmZmZmOyB9IC50b3BiYXIzYnRueyBmb250LXdlaWdodDpib2xkOyB0cmFuc2l0aW9uOi4yczsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgYm9yZGVyLWNvbG9yOndoaXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9IC50cmFkZUluQmFyX2J0bnsgZm9udC13ZWlnaHQ6Ym9sZDsgYm9yZGVyLXJhZGl1czo1cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IHRyYW5zaXRpb246LjJzOyBib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLWNvbG9yOndoaXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGNvbG9yOiAjZmZmZmZmOyBib3JkZXI6MnB4IHNvbGlkICNENkQ2RDY7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkZUluQmFyX2J0bjpob3ZlciwudG9wYmFyM2J0bldyYXA6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gI2dSYXRpbmdMYXJnZXsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDBweDsgbWFyZ2luLXRvcDo1cHg7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjE1MHB4OyBtYXJnaW4tbGVmdDozMHB4OyB9ICNnUmF0aW5neyBjdXJzb3I6cG9pbnRlcjsgfSAudHJhZGVJblZpbklucHV0eyBoZWlnaHQ6NTBweDsgYm9yZGVyLXJhZGl1czo1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjRDZENkQ2OyB9IC50cmFkZUluVmluSW5wdXQ6OnBsYWNlaG9sZGVyeyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzYzM4MzY7IH0gLnRyYWRlSW5PckxhYmVseyBtYXgtd2lkdGg6MjVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXJ7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTJweDsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MXJlbSA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3R7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdExhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOjAgMTJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3Q6Y2hlY2tlZCtsYWJlbHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgYmxhY2s7IH0gLnRyYWRpblNlbGVjdFd7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5NYWtleyBtaW4td2lkdGg6MTQwcHg7IG1heC13aWR0aDoxNDBweDsgfSAudHJhZGluU2VsZWN0Vy53aXRoVklOWWVhcnsgbWluLXdpZHRoOjgwcHg7IG1heC13aWR0aDo4MHB4OyB9IC50cmFkaW5JbnB1dFd7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkaW5TZWxlY3RBeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC50cmFkaW5TZWxlY3R7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgI0Q2RDZENjsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTBweCAxMHB4OyBmb250LXNpemU6MXJlbSA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoxMDAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgaGVpZ2h0OjUwcHg7IH0gLnRyYWRpblNlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IHdpZHRoOjU2OHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItY29sb3I6I2E5YTlhOSFpbXBvcnRhbnQ7IH0gLnVpLW11bHRpc2VsZWN0LW1lbnUudHJhZGVJbkJhck11bHRpc2VsZWN0eyBtaW4td2lkdGg6MjcycHg7IHotaW5kZXg6MTAwMDAyMDsgbWF4LWhlaWdodDoxMjBweDsgb3ZlcmZsb3c6c2Nyb2xsOyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJEZWFsZXJTdGVwTWFrZU1vZGVsWWVhcnsgZm9udC13ZWlnaHQ6NzAwOyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCBzcGFueyBtYXJnaW46MCFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLnRyYWRpblNlbGVjdFcgeyBtaW4td2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgbWF4LXdpZHRoOmNhbGMoKDIwMHB4IC0gdmFyKC0tcykpIC0gdmFyKC0tcywgMC41cmVtKSk7IH0gfSAjZ29vZ2xlUmV2aWV3c0Zvb3RlcnsgbWFyZ2luOjAgYXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjVweDsgbWF4LXdpZHRoOjk0MHB4OyBoZWlnaHQ6Mjc1cHg7IH0gLnJldmlldy1pdGVtIHsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjE4NXB4OyB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NDYwcHg7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXItdG9wOjRweCBzb2xpZCAjRUJFQkVCOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC5maXJzdGNoYXJ1cDo6Zmlyc3QtbGV0dGVyeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gSS5pY29uLWNvbXBhcmUtMSwgc3Bhbi5pY29uLWNvbXBhcmUtMXsgY29sb3I6I2I0NWYxYTsgfSBJLmljb24tY29tcGFyZS0xOmhvdmVyLCBzcGFuLmljb24tY29tcGFyZS0xOmhvdmVyeyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiNiNDVmMWEgMXB4IDFweCwgI2I0NWYxYSAtMXB4IDFweCwgI2I0NWYxYSAtMXB4IC0xcHgsICNiNDVmMWEgMXB4IC0xcHg7IGJvcmRlci1yYWRpdXM6MjBweDsgYmFja2dyb3VuZC1jb2xvcjojYjQ1ZjFhOyB9IC5nUmF0aW5nLWljb24gaSB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gLmdSYXRpbmctaWNvbiNnUmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHdpZHRoOjkwcHg7IGhlaWdodDoyOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IGNvbG9yOndoaXRlOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBnYXA6N3B4OyB9IC5nUmF0aW5nLWltZyNnUmF0aW5nIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ncmF0aW5nLnBuZyk7IGNvbG9yOiMzNTZDRjI7IHdpZHRoOjk1cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjRweCAzMXB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxcHg7IH0gI2dSYXRpbmd7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjEuMDYzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgfSBJTlBVVFt0eXBlPSJ0ZXh0Il0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InRlbCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJlbWFpbCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJwYXNzd29yZCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MCAwIDI1cHggMDsgfSBIMS5kZWZhdWx0IEF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IEgxLmRlZmF1bHQgSS5pY29uLCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjNweDsgaGVpZ2h0OjI5cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjEwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzMyNDA0NzsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSBIMS5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTBweDsgfSBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDEsIEgxLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDoycHg7IH0gSDEuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MS4xMjVyZW0gOyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgzKXsgZm9udC1zaXplOjAuOHJlbTsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6I2JiYjsgcGFkZGluZy10b3A6NXB4OyB9IGgxLmNrZWRpdG9yLWRlZmF1bHQgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6Mi4xMjVyZW0gOyBwYWRkaW5nOjAgMCAxNXB4IDA7IGNvbG9yOiMwMDAwMDA7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdDo6YmVmb3JlIHsgY29udGVudDoiXGYwNTQiOyBmb250LWZhbWlseTpGb250QXdlc29tZTsgd2lkdGg6MjhweDsgaGVpZ2h0OjM1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyBwYWRkaW5nOjRweCAwIDAgMTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzMyNDA0NzsgfSBIMi5kZWZhdWx0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjEwcHggMDsgbWFyZ2luLXRvcDoxMHB4OyB9IEgyLmRlZmF1bHQgSS5pY29uLCBIMi5kZWZhdWx0IHNwYW4uaWNvbnsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4zNzVyZW0gOyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IH0gSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDIsIEgyLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgyeyBtYXJnaW4tdG9wOjdweDsgfSBIMi5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDIsIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDowcHg7IH0gSDIuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEgyLmRlZmF1bHQuY3JlZHNpaVVzZWRNaW5IZWlnaHQgLlRpdGxlVGV4dCB7IHdpZHRoOjgwJTsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlcnsgd2lkdGg6ODAwcHg7IGhlaWdodDo2MDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkICNmaXJzdFNsaWRlckltZyBJTUd7IG1heC13aWR0aDo4MDBweDsgbWF4LWhlaWdodDo2MDBweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgeyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXNpemU6MS40MzhyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24sIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24geyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgZm9udC1zaXplOjEuOTM4cmVtIDsgcGFkZGluZy1sZWZ0OjExcHg7IGJvcmRlci1yYWRpdXM6NDFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjExcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgeyBmb250LXNpemU6MS44NzVyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXNpemU6MS4xODhyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6OTAlOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDIsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDJ7IG1hcmdpbi10b3A6NHB4OyB9IH0gI2NpdHlUaXRsZSB7Y29sb3I6IzAwMDAwMDt9IC5tYWluX2xlZnRfYm94IHsgY29sb3I6IzAwMDAwMDsgfSAuZGl2VGFibGUgeyBkaXNwbGF5OnRhYmxlOyB9IC5kaXZUYWJsZS5hbGlnbi1jZW50ZXIgeyBtYXJnaW46MCBhdXRvOyB9IC5kaXZUYWJsZSAuZm9ybXNfYm94MjIsIC5kaXZUYWJsZSBmb3JtW25hbWU9InNlbmRFbWFpbEZvcm0iXSB7IHdpZHRoOjk0MHB4OyB9IC5kaXZUYWJsZSAudGV4dDMwIHsgd2lkdGg6MTAwJTsgfSAuc2VydmljZS10aXRsZSB7IG1hcmdpbi10b3A6MjBweDsgfSAuZnVsbFdpZHRoRm9ybSAuZm9ybXNfYm94MjIgeyB3aWR0aDoxMDAlOyBtYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5mdWxsV2lkdGhGb3JtIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5mb3JtLWdyb3VwIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5pbmxpbmUtZm9ybS1ncm91cCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5mb3JtLWdyb3VwIGxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6NzAwOyB9IC5kaXZTZWFyY2hNc2cgeyBmb250LXNpemU6MC45cmVtOyBtYXJnaW46MjBweCAwIDAgMDsgcGFkZGluZzoxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGJvcmRlci1yYWRpdXM6NXB4OyBjbGVhcjpib3RoOyB9IC5jcmVkc2lpTmV3IHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjQ3MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlOZXdWRFAgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzUwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaVVzZWRNaW5IZWlnaHQgeyBtaW4taGVpZ2h0OjEzMHB4OyB9IC5jcmVkc2lpRmluYW5jZSB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDo5NjBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjEyNXB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gLmNyZWRzaWlGaW5hbmNlIC5jcmVkc2lpLXdpZGdldC1jb250YWluZXJ7IG1heC13aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuY3JlZHNpaUZpbmFuY2VNZW51IHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjM0NXB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlEaXYgLmNyZWRzaWlGaW5hbmNlTWVudSB7IG1heC13aWR0aDozNzVweDsgfSAuY3JlZHNpaUZpbmFuY2VNZW51IC5jcmVkc2lpLXdpZGdldHsgYm9yZGVyOjA7IH0gLnByb21vLWNhcmQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjFmMWYxOyBwYWRkaW5nOjIwcHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW8tYm9keSAucGljX2JveDIgeyBtaW4taGVpZ2h0OjEzMHB4OyB9IC5wcm9tby1ob3ZlciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHRvcDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBvcGFjaXR5OjA7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWhvdmVyIHsgb3BhY2l0eToxOyB9IC5wcm9tby1ib2R5OmhvdmVyIC5wcm9tby1pbmZvIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSwxKTsgfSAucHJvbW8tbWFzayB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7IH0gLnByb21vLWluZm8geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyByaWdodDowOyB0b3A6NTAlOyB3aWR0aDozNSU7IG1hcmdpbjphdXRvOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjI1cHg7IGJvcmRlci1yYWRpdXM6MjVweDsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IH0gLmZvcm0tZW5kIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZvcm0tZW5kIC5idG4td3JhcHBlciB7IG1hcmdpbjowIGF1dG87IH0gLmZvcm0tZW5kIC5lbXB0eS1zcGFjZSB7IG1hcmdpbjphdXRvOyB9IC5mb3JtLWVuZCAucHJvbW8tYnRuIHsgcG9zaXRpb246aW5pdGlhbDsgfSAuZm9ybS1lbmQgLnByaW50IHsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5pdGlhbDsgfSAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDEwcHggMTBweCAxMHB4OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyBmb250LXdlaWdodDpub3JtYWw7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKTsgdHJhbnNpdGlvbjowLjI1czsgfSAucHJvbW9zIHsgYmFja2dyb3VuZDojZjFmMWYxOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgY3Vyc29yOmRlZmF1bHQ7IG1hcmdpbjoxMnB4IDEwcHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtcm93OnNwYW4gODsgZ3JpZC1jb2x1bW46c3BhbiAxOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6c3ViZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOnN1YmdyaWQ7IH0gLnByb21vcyAuaGVhZGVyIHsgZ3JpZC1hcmVhOmhlYWRlcjsgfSAjc2VydmljZSAucHJvbW9zIC5wcm9tby1jb250ZW50eyBkaXNwbGF5OmJsb2NrOyBncmlkLXJvdzphdXRvOyB9IC5wcm9tb3MgLnByb21vLWNvbnRlbnQgeyBncmlkLWFyZWE6Y29udGVudDsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgZ3JpZC1yb3c6MiAvIDc7IH0gLnByb21vcyAucHJvbW8tZm9vdGVyIHsgZ3JpZC1hcmVhOmZvb3RlcjsgcGFkZGluZzowIDE1cHggMTVweCAxNXB4OyB9IC5wcm9tb3M6aG92ZXIgLnByb21vLWJ0biwgLnByb21vLWJ0bjpob3ZlciB7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItYmctY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyB9IC5wcm9tb3MgLnByb21vLWJ0biB7IHdpZHRoOmluaGVyaXQ7IHBvc2l0aW9uOmluaXRpYWw7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MTVweCA0NXB4OyB9IC5wcm9tb3MucHJvbW8tc21hbGwgLnByb21vLWJ0biB7IHBhZGRpbmc6MTBweCAyNXB4OyB9IC5wcm9tby1icmVhayB7IGJvcmRlci10b3A6MXB4IHNvbGlkICNhYmFiYWI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjoxNXB4IDA7IH0gLnByb21vLWltYWdlLCAucHJvbW8tZGV0YWlscy1pbWFnZSB7IG92ZXJmbG93OmhpZGRlbjsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYXNwZWN0LXJhdGlvOnZhcigtLXByb21vLWltZy1yYXRpbywgbm9uZSk7IH0gLnByb21vLWRldGFpbHMtaW1hZ2V7IHdpZHRoOjEwMCU7IH0gLnByb21vczpob3ZlciAucHJvbW8taW1hZ2UgaW1nIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW1vei10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW1zLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtby10cmFuc2Zvcm06c2NhbGUoMS4xKTsgdHJhbnNmb3JtOnNjYWxlKDEuMSk7IH0gLnByb21vLWltYWdlIGltZyB7IG1heC13aWR0aDoxMDAlOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAxczsgZGlzcGxheTp0YWJsZS1jZWxsOyBtYXJnaW46MCBhdXRvOyB9IC5wcm9tby1ib2R5IHsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAucHJvbW8tYm9keS5ncmlkIHsgZGlzcGxheTpncmlkOyBoZWlnaHQ6MTAwJTsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciAzZnI7IH0gLnByb21vLWJvZHkuZ3JpZCAucHJvbW8tY2FwdGlvbi5oZWFkZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czoxZnIgYXV0bzsgfSAucHJvbW8tY29udGVudC5wYWRkZWQgeyBwYWRkaW5nOjE1cHg7IH0gLnByb21vLWRlc2MgeyBkaXNwbGF5Om5vbmU7IH0gLnByb21vLXRpdGxlIHsgZm9udC1zaXplOjEuNXJlbSA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6IzMzMzMzMzsgbWluLWhlaWdodDo3OHB4OyB9IC5wcm9tby1tZWRpdW0gLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDo4N3B4OyB9IC5wcm9tby1zbWFsbCAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS4yNXJlbSA7IH0gLnByb21vLWNhcHRpb24geyBjb2xvcjojMzMzMzMzOyB9IC5wcm9tby1jYXB0aW9uOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnByb21vLW9mZmVyIC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6MDsgfSAucHJvbW8tc3ViY2FwdGlvbiB7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW07IH0gLnByb21vLXN1YmNhcHRpb24uc3ViaGVhZGluZy4tbWggeyBtaW4taGVpZ2h0OjMxcHg7IH0gLnByb21vLXN1YmNhcHRpb24uZGVzY3JpcHRpb24uLW1oIHsgbWluLWhlaWdodDo0OHB4OyB9IC5wcm9tby1kaXNsY2FpbWVyIHsgZm9udC1zaXplOjAuNzVyZW07IH0gLnByb21vLWxpbmtzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5wcm9tby1saW5rLWl0ZW0gLnByaW50IHsgd2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpyaWdodDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkIHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6Z3JpZDsgfSAucHJvbW9zLWNvbnRhaW5lciAuZmEtYXJyb3ctZG93bi10by1saW5lIHsgZm9udC1zaXplOjJyZW07IGNvbG9yOiMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTsgYmFja2dyb3VuZDojZmZmZmZmOyBwYWRkaW5nOjZweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgdHJhbnNpdGlvbjphbGwgMC4yNXMgZWFzZS1vdXQ7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5wcm9tby1tZWRpdW0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsIDFmcik7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5wcm9tby1zbWFsbCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlIHsgaGVpZ2h0OjE0MnB4OyBvdmVyZmxvdzpoaWRkZW47IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyBsZWZ0OjEwcHg7IHJpZ2h0OjEwcHg7IHRvcDoxMHB4OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMCAwIDAgLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpIH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTpob3Zlcjo6YmVmb3JlIHsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDEzOCAxMzggMTM4IC8gMzAlKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTsgY3Vyc29yOnBvaW50ZXI7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTpob3ZlciAuZmEtYXJyb3ctZG93bi10by1saW5lIHsgdG9wOjU1JTsgY29sb3I6IzgzODM4MzsgfSAuYmFubmVyLWZvcm0geyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTp0YWJsZTsgbWFyZ2luOjAgYXV0bzsgfSAuYmFubmVyLWZvcm0gLk1haW5Cb3hMYXllciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBkaXNwbGF5OnRhYmxlLWNlbGw7IGhlaWdodDoxMDAlOyB9IC5iYW5uZXItZm9ybS1ib3ggeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IG1heC13aWR0aDozNTBweDsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDozNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgLk1haW5Cb3hMYXllciAuYmFubmVyLWZvcm0tYm94IHsgdG9wOjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IG1hcmdpbi10b3A6MDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMzAxcHgpIHsgLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS1ib3ggeyBwYWRkaW5nOjE1cHg7IG1heC13aWR0aDoyNzBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgfSAuYmFubmVyLWZvcm0gI2Jhbm5lckZvcm0gLmZvcm0tY29udHJvbCB7IHBhZGRpbmc6NHB4IDhweDsgaGVpZ2h0OjMwcHg7IG1hcmdpbi1ib3R0b206MTJweDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXRpdGxlIHsgZm9udC1zaXplOjE1cHQ7IH0gLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMXB0OyB9IC5iYW5uZXItZm9ybSAuYnRuLmJhbm5lci1idG4geyBwYWRkaW5nOjRweCAxMnB4OyB9IH0gLm90aGVyTG9nb01lbnVDb250YWluZXJ7IGZsb2F0OmxlZnQ7IH0gLm90aGVyTG9nb01lbnVDb250YWluZXJSaWdodHsgZmxvYXQ6cmlnaHQ7IH0gLm90aGVyTG9nb01lbnVJbWFnZXsgbWF4LXdpZHRoOjI1MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IC5jdGFib3gtLXdyYXBwZXIgeyBjbGVhcjpib3RoOyBwYWRkaW5nOjAuNzVyZW0gMDsgYmFja2dyb3VuZDojZmZmZmZmOyB9IC5jdGFib3gtLXRhYmxlIHsgd2lkdGg6ODUlIWltcG9ydGFudDsgbWF4LXdpZHRoOjEyMDBweDsgbWFyZ2luOmF1dG87IGJvcmRlci1zcGFjaW5nOjFyZW07IGJvcmRlci1jb2xsYXBzZTp1bnNldDsgfSAuY3RhYm94LS1jZWxsIHsgd2lkdGg6MjUlOyB0cmFuc2l0aW9uOmFsbCAwLjJzIGxpbmVhcjsgfSAuY3RhYm94LS1jZWxsOm5vdChbb25jbGljaz0nJ10pOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzEgeyB3aWR0aDoxMDAlOyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18yIHsgd2lkdGg6NDgwcHg7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzMgeyB3aWR0aDozMyU7IH0gLmN0YWJveC0tY29udGFpbmVyIHsgcGFkZGluZzoxcmVtOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uIHsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX3RvcCB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24uY3RhYm94LS1pY29uX19sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tdGl0bGUsIC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS1kZXNjcmlwdGlvbiwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWJ1dHRvbiB7IG1hcmdpbi1sZWZ0OjM1cHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLXRpdGxlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tZGVzY3JpcHRpb24geyBtYXJnaW4tdG9wOjEwcHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWJ1dHRvbiB7IG1hcmdpbi10b3A6MjBweDsgfSAucGFyYWxsYXgtc2VjdGlvbiB7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IGJhY2tncm91bmQtYXR0YWNobWVudDpsb2NhbDsgcGFkZGluZzoyNXB4IDA7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo2MCU7IHBhZGRpbmctcmlnaHQ6MTVweDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tbGVmdDphdXRvOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIubGFyZ2UgeyB3aWR0aDo4MCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucGFyYWxsYXgtY29udGVudCB7IHdpZHRoOjQ1JTsgcGFkZGluZzo0MHB4IDQwcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpOyBjb2xvcjojZmZmOyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLXRpdGxlIHsgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjIwcHg7IGNvbG9yOmluaGVyaXQ7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtZGVzYyB7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmxlZnQ7IGNvbG9yOmluaGVyaXQ7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtZGVzYyBheyBjb2xvcjppbmhlcml0OyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyIHsgd2lkdGg6ODAlOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIubGFyZ2UgeyB3aWR0aDoxMDAlOyB9IH0gLnNyLW9ubHkgeyBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50OyB3aWR0aDoxcHggIWltcG9ydGFudDsgaGVpZ2h0OjFweCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOi0xcHggIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IGNsaXA6cmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50OyBib3JkZXI6MCAhaW1wb3J0YW50OyB9IC5ibnBfcHVsbG91dF9pbWd7IG1heC13aWR0aDoxMHJlbTsgbWFyZ2luOmF1dG87IH0gLmJucF9wdWxsb3V0X2NvbF9zZXBhcmF0b3J7IHdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojRUJFQkVCOyBoZWlnaHQ6OThweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyMHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29seyB3aWR0aDo3MCU7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9yaWdodHsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjc4cHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2Vfd2l0aF90aXRsZXsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDo0NSU7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2V7IGZvbnQtc2l6ZToycmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBAbWVkaWEgKG1heC13aWR0aDoxMzMwcHgpIHsgLmJucF9wdWxsb3V0X21pZF9jb2wgeyB3aWR0aDo1MCU7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2Vfd2l0aF90aXRsZSB7IHdpZHRoOjEwMCU7IH0gLmJucF9wdWxsb3V0X2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTY0cHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yIHsgaGVpZ2h0OjEwNnB4OyB9IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0SW1neyBoZWlnaHQ6MTEwcHg7IGJhY2tncm91bmQtY29sb3I6IzM4NzYxZDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRCdXR0b257IGJhY2tncm91bmQ6IzQxN0YxQSAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzo3cHggMjBweCA3cHg7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyB0ZXh0LXNoYWRvdzowLjRweCAwOyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnR7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgbWFyZ2luLWJvdHRvbTotMTVweDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50U2NvcmV7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuODc1cmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudEZyZWV7IGNvbG9yOiM0MTdGMUE7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjIuODEzcmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQuaXNGdWxsV2lkdGhQYWdlIC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dE1heFdpZHRoeyBtYXgtd2lkdGg6MTIwMHB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dE1heFdpZHRoeyBtYXgtd2lkdGg6OTYwcHg7IH0gLnNsaWRlci1tYWluIGltZ3sgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC41cyBlYXNlLW91dCB9IC5jb21tdW5pY2F0aW9uUHJlZnsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjUwJSAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgfSAudXBfbWVudS5maXhlZCAuUzEwMFBlcmNlbnRXaWR0aHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoNTAsNjQsNzEpIH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLm9yZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnN0cmVldC1hZGRyZXNzLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAubG9jYWxpdHksIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5yZWdpb24sIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5wb3N0YWwtY29kZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmV4dGVuZGVkUGhvbmVUcmlnZ2VyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucGhvbmUtbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKSAhaW1wb3J0YW50OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5kZWFsZXJNYXBMaW5rIHN2ZyB7IGZpbGw6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1jYXJldC1kb3duOjpiZWZvcmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1waG9uZTo6YmVmb3JlIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoID4gdWwgPiBsaSA+IGEudG9wX2xpbmsgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbi5hY3RpdmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbiB7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciBpLmZhciB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gLmJ0biB7IGJvcmRlci1jb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSwgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgYm9yZGVyLXJhZGl1czp2YXIoLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsaW5lLWhlaWdodDoxOyB9IC5tYXJnaW4tYm90dG9tLS00cHggeyBtYXJnaW4tYm90dG9tOi00cHg7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkLCAubWFpbkRpdkFkanVzdEhlYWRlciAuYmFubmVyLXNlYXJjaC1ib3gtd3JhcHBlciB7IHotaW5kZXg6MjsgcG9zaXRpb246cmVsYXRpdmUgfQovKiogL2Nzcy9wcm9fZHJvcGRvd25fNC5jc3MgKiovCi5pZE5hdjEgeyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgaGVpZ2h0OjI4cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6I0Y5RjlGOTsgfSAuaWROYXYxIGxpLnRvcCB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MDt9IC5pZE5hdjEgbGkudG9wMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgcGFkZGluZzowOyBwYWRkaW5nLXJpZ2h0OjJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDt9IC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiMzMjQwNDc7IGNvbG9yOiNmZmZmZmY7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rOmhvdmVyIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IGZpbHRlcjpicmlnaHRuZXNzKDk1JSk7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7IGNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyBjb2xvcjojZmVmZWZlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uX3BvcHVwLnBuZykgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyB9ICNmcm1SZWJhdGUgLmlkTmF2MSBsaSBhLnRvcF9saW5rOmhvdmVyIHsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyB9IC5pZE5hdjEgbGkgYS5zZXJ2aWNlLWxpbmt7IG1hcmdpbi1ib3R0b206MTJweDsgd2lkdGg6MjAycHg7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuaWROYXYxIGxpIGEuc2VydmljZS1saW5rX19zdWJtaXQgeyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDpub3JtYWw7IH0gLmxhbmd1YWdlQmFyIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGJhY2tncm91bmQ6aW5oZXJpdDsgYmFja2dyb3VuZC1jb2xvcjojOTI5MjkyOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgfQovKiogL2Nzcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5jc3MgKiovCi51aS1oZWxwZXItaGlkZGVue2Rpc3BsYXk6bm9uZX0udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxle2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS51aS1oZWxwZXItcmVzZXR7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO291dGxpbmU6MDtsaW5lLWhlaWdodDoxLjM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEwMCU7bGlzdC1zdHlsZTpub25lfS51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLC51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0udWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NsZWFyOmJvdGh9LnVpLWhlbHBlci16Zml4e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0udWktZnJvbnR7ei1pbmRleDoxMDB9LnVpLXN0YXRlLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfS51aS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tdG9wOi0uMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDotOTk5OTlweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS51aS13aWRnZXQtaWNvbi1ibG9ja3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotOHB4O2Rpc3BsYXk6YmxvY2t9LnVpLXdpZGdldC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXJ7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MnB4IDAgMCAwO3BhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTtmb250LXNpemU6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjFlbSAyLjJlbTtib3JkZXItdG9wOjA7b3ZlcmZsb3c6YXV0b30udWktc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH0udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Y3Vyc29yOnBvaW50ZXI7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfS51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43ZW07ZGlzcGxheTpibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItaGFuZGxlLC51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1yYW5nZXtmaWx0ZXI6aW5oZXJpdH0udWktc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0Oi44ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxle3RvcDotLjNlbTttYXJnaW4tbGVmdDotLjZlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZXt0b3A6MDtoZWlnaHQ6MTAwJX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heHtyaWdodDowfS51aS1zbGlkZXItdmVydGljYWx7d2lkdGg6LjhlbTtoZWlnaHQ6MTAwcHh9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0uM2VtO21hcmdpbi1sZWZ0OjA7bWFyZ2luLWJvdHRvbTotLjZlbX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2V7bGVmdDowO3dpZHRoOjEwMCV9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbntib3R0b206MH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfS51aS13aWRnZXR7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IC51aS13aWRnZXR7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IGlucHV0LC51aS13aWRnZXQgc2VsZWN0LC51aS13aWRnZXQgdGV4dGFyZWEsLnVpLXdpZGdldCBidXR0b257Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2M1YzVjNX0udWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzfS51aS13aWRnZXQtY29udGVudCBhe2NvbG9yOiMzMzN9LnVpLXdpZGdldC1oZWFkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2U5ZTllOTtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXdpZGdldC1oZWFkZXIgYXtjb2xvcjojMzMzfS51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCwudWktYnV0dG9uLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3ZlcixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZle2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTtiYWNrZ3JvdW5kOiNmNmY2ZjY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiM0NTQ1NDV9LnVpLXN0YXRlLWRlZmF1bHQgYSwudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLGEudWktYnV0dG9uLGE6bGluay51aS1idXR0b24sYTp2aXNpdGVkLnVpLWJ1dHRvbiwudWktYnV0dG9ue2NvbG9yOiM0NTQ1NDU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywudWktYnV0dG9uOmhvdmVyLC51aS1idXR0b246Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JhY2tncm91bmQ6I2VkZWRlZDtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzJiMmIyYn0udWktc3RhdGUtaG92ZXIgYSwudWktc3RhdGUtaG92ZXIgYTpob3ZlciwudWktc3RhdGUtaG92ZXIgYTpsaW5rLC51aS1zdGF0ZS1ob3ZlciBhOnZpc2l0ZWQsLnVpLXN0YXRlLWZvY3VzIGEsLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsLnVpLXN0YXRlLWZvY3VzIGE6bGluaywudWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLGEudWktYnV0dG9uOmhvdmVyLGEudWktYnV0dG9uOmZvY3Vze2NvbG9yOiMyYjJiMmI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXZpc3VhbC1mb2N1c3tib3gtc2hhZG93OjAgMCAzcHggMXB4IHJnYig5NCwxNTgsMjE0KX0udWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsYS51aS1idXR0b246YWN0aXZlLC51aS1idXR0b246YWN0aXZlLC51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVye2JvcmRlcjoxcHggc29saWQgIzAwM2VmZjtiYWNrZ3JvdW5kOiMwMDdmZmY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiNmZmZ9LnVpLWljb24tYmFja2dyb3VuZCwudWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmR7Ym9yZGVyOiMwMDNlZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51aS1zdGF0ZS1hY3RpdmUgYSwudWktc3RhdGUtYWN0aXZlIGE6bGluaywudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZHtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwO2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWNoZWNrZWR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MH0udWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGF7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3J7Ym9yZGVyOjFweCBzb2xpZCAjZjFhODk5O2JhY2tncm91bmQ6I2ZkZGZkZjtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYXtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dHtjb2xvcjojNWYzZjNmfS51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeXtmb250LXdlaWdodDpib2xkfS51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeXtvcGFjaXR5Oi43Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NzApIjtmb250LXdlaWdodDpub3JtYWx9LnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjM1Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLXN0YXRlLWRpc2FibGVkIC51aS1pY29uey1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIn0udWktaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS51aS1pY29uLC51aS13aWRnZXQtY29udGVudCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS13aWRnZXQtaGVhZGVyIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiwudWktYnV0dG9uOmhvdmVyIC51aS1pY29uLC51aS1idXR0b246Zm9jdXMgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLC51aS1idXR0b246YWN0aXZlIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbiwudWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2NjMDAwMF8yNTZ4MjQwLnBuZyIpfS51aS1idXR0b24gLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5wbmciKX0udWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmt7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1pY29uLWNhcmV0LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktaWNvbi1jYXJldC0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggMH0udWktaWNvbi1jYXJldC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwfS51aS1pY29uLWNhcmV0LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwfS51aS1pY29uLWNhcmV0LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IDB9LnVpLWljb24tY2FyZXQtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9LnVpLWljb24tY2FyZXQtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggMH0udWktaWNvbi1jYXJldC0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IDB9LnVpLWljb24tY2FyZXQtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggMH0udWktaWNvbi1jYXJldC0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAwfS51aS1pY29uLXRyaWFuZ2xlLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTZweH0udWktaWNvbi1hcnJvdy0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMnB4fS51aS1pY29uLWFycm93LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTMycHh9LnVpLWljb24tYXJyb3d0aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjoxcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtNDhweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS13e2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1le2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTY0cHh9LnVpLWljb24tYXJyb3ctNHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTgwcHh9LnVpLWljb24tYXJyb3ctNC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTgwcHh9LnVpLWljb24tZXh0bGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC04MHB4fS51aS1pY29uLW5ld3dpbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC04MHB4fS51aS1pY29uLXJlZnJlc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtODBweH0udWktaWNvbi1zaHVmZmxle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTgwcHh9LnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTk2cHh9LnVpLWljb24tZm9sZGVyLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtOTZweH0udWktaWNvbi1kb2N1bWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50LWJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtOTZweH0udWktaWNvbi1ub3Rle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTk2cHh9LnVpLWljb24tbWFpbC1jbG9zZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtOTZweH0udWktaWNvbi1tYWlsLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtOTZweH0udWktaWNvbi1zdWl0Y2FzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtOTZweH0udWktaWNvbi1jb21tZW50e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC05NnB4fS51aS1pY29uLXBlcnNvbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtOTZweH0udWktaWNvbi1wcmludHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtOTZweH0udWktaWNvbi10cmFzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtOTZweH0udWktaWNvbi1sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTk2cHh9LnVpLWljb24tdW5sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTk2cHh9LnVpLWljb24tYm9va21hcmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTk2cHh9LnVpLWljb24tdGFne2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC05NnB4fS51aS1pY29uLWhvbWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMTJweH0udWktaWNvbi1mbGFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTExMnB4fS51aS1pY29uLWNhbGVuZGFye2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTExMnB4fS51aS1pY29uLWNhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTEycHh9LnVpLWljb24tcGVuY2lse2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTExMnB4fS51aS1pY29uLWNsb2Nre2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTExMnB4fS51aS1pY29uLWRpc2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTEycHh9LnVpLWljb24tY2FsY3VsYXRvcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTEycHh9LnVpLWljb24tem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMTJweH0udWktaWNvbi16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMTJweH0udWktaWNvbi1zZWFyY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTExMnB4fS51aS1pY29uLXdyZW5jaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTEycHh9LnVpLWljb24tZ2VhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTEycHh9LnVpLWljb24taGVhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTExMnB4fS51aS1pY29uLXN0YXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTExMnB4fS51aS1pY29uLWxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTExMnB4fS51aS1pY29uLWNhbmNlbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4fS51aS1pY29uLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTI4cHh9LnVpLWljb24tcGx1c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTEyOHB4fS51aS1pY29uLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTEyOHB4fS51aS1pY29uLW1pbnVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTI4cHh9LnVpLWljb24tY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTI4cHh9LnVpLWljb24tY2xvc2V0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMjhweH0udWktaWNvbi1rZXl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTEyOHB4fS51aS1pY29uLWxpZ2h0YnVsYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTI4cHh9LnVpLWljb24tc2Npc3NvcnN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTEyOHB4fS51aS1pY29uLWNsaXBib2FyZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTI4cHh9LnVpLWljb24tY29weXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTI4cHh9LnVpLWljb24tY29udGFjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTI4cHh9LnVpLWljb24taW1hZ2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTEyOHB4fS51aS1pY29uLXZpZGVve2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMjhweH0udWktaWNvbi1zY3JpcHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTEyOHB4fS51aS1pY29uLWFsZXJ0e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTQ0cHh9LnVpLWljb24taW5mb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNDRweH0udWktaWNvbi1ub3RpY2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTQ0cHh9LnVpLWljb24taGVscHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNDRweH0udWktaWNvbi1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNDRweH0udWktaWNvbi1idWxsZXR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb257YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNDRweH0udWktaWNvbi1waW4td3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTQ0cHh9LnVpLWljb24tcGluLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE0NHB4fS51aS1pY29uLXBsYXl7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNjBweH0udWktaWNvbi1wYXVzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNjBweH0udWktaWNvbi1zZWVrLW5leHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTYwcHh9LnVpLWljb24tc2Vlay1wcmV2e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2MHB4fS51aS1pY29uLXNlZWstZW5ke2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE2MHB4fS51aS1pY29uLXNlZWstc3RhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc2Vlay1maXJzdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zdG9we2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2MHB4fS51aS1pY29uLWVqZWN0e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2MHB4fS51aS1pY29uLXBvd2Vye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTc2cHh9LnVpLWljb24tc2lnbmFsLWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTc2cHh9LnVpLWljb24tc2lnbmFse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTF7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ye2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktM3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNzZweH0udWktaWNvbi1jaXJjbGUtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE5MnB4fS51aS1pY29uLWNpcmNsZS1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIwOHB4fS51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246MCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMjRweH0udWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMjRweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci10bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItdHJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLWJse2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci1icntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHh9LnVpLXdpZGdldC1vdmVybGF5e2JhY2tncm91bmQ6I2FhYTtvcGFjaXR5Oi4zOy1tcy1maWx0ZXI6QWxwaGEoT3BhY2l0eT0zMCl9LnVpLXdpZGdldC1zaGFkb3d7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1cHggIzY2Njtib3gtc2hhZG93OjAgMCA1cHggIzY2Nn0KLyoqIC9jc3MvZGFya3Rvb2x0aXAuY3NzICoqLwouZGFyay10b29sdGlwe2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6bm9ybWFsO2hlaWdodDphdXRvO3RvcDowO2xlZnQ6MH0uZGFyay10b29sdGlwLnNtYWxse3BhZGRpbmc6NHB4O2ZvbnQtc2l6ZTowLjc1cmVtIDttYXgtd2lkdGg6MTUwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5kYXJrLXRvb2x0aXAubWVkaXVte3BhZGRpbmc6NnB4O2ZvbnQtc2l6ZTowLjY4OHJlbSA7bWF4LXdpZHRoOjIwMHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweH0uZGFyay10b29sdGlwLmxhcmdle3BhZGRpbmc6MTZweDtmb250LXNpemU6MXJlbSA7bWF4LXdpZHRoOjI1MHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7LW1vei1ib3JkZXItcmFkaXVzOjZweDtib3JkZXItcmFkaXVzOjZweH0uZGFyay10b29sdGlwIC50aXB7dHJhbnNmb3JtOnNjYWxlKDEuMDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMDEpO3RyYW5zZm9ybTpzY2FsZSgxLjAxKTtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2xpbmUtaGVpZ2h0OjB9LmRhcmstdG9vbHRpcC5zb3V0aCAudGlwe2xlZnQ6NTAlO3RvcDoxMDAlfS5kYXJrLXRvb2x0aXAud2VzdCAudGlwe2xlZnQ6MDt0b3A6NTAlfS5kYXJrLXRvb2x0aXAubm9ydGggLnRpcHtsZWZ0OjUwJTt0b3A6MH0uZGFyay10b29sdGlwLmVhc3QgLnRpcHtsZWZ0OjEwMCU7dG9wOjUwJX0uZGFyay10b29sdGlwLnNvdXRoLnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjAgNXB4IDAgNXB4O21hcmdpbi1sZWZ0Oi01cHh9LmRhcmstdG9vbHRpcC5zb3V0aC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6MCA2cHggMCA2cHg7bWFyZ2luLWxlZnQ6LTZweH0uZGFyay10b29sdGlwLnNvdXRoLmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjAgMTJweCAwIDEycHg7bWFyZ2luLWxlZnQ6LTEycHh9LmRhcmstdG9vbHRpcC53ZXN0LnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjVweCA3cHggNXB4IDA7bWFyZ2luLWxlZnQ6LTdweDttYXJnaW4tdG9wOi01cHh9LmRhcmstdG9vbHRpcC53ZXN0Lm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDo2cHggOHB4IDZweCAwO21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXRvcDotNnB4fS5kYXJrLXRvb2x0aXAud2VzdC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDoxMnB4IDE0cHggMTJweCAwO21hcmdpbi1sZWZ0Oi0xNHB4O21hcmdpbi10b3A6LTEycHh9LmRhcmstdG9vbHRpcC5ub3J0aC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDowIDVweCA3cHggNXB4O21hcmdpbi1sZWZ0Oi01cHg7bWFyZ2luLXRvcDotN3B4fS5kYXJrLXRvb2x0aXAubm9ydGgubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjAgNnB4IDhweCA2cHg7bWFyZ2luLWxlZnQ6LTZweDttYXJnaW4tdG9wOi04cHh9LmRhcmstdG9vbHRpcC5ub3J0aC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDowIDEycHggMTRweCAxMnB4O21hcmdpbi1sZWZ0Oi0xMnB4O21hcmdpbi10b3A6LTE0cHh9LmRhcmstdG9vbHRpcC5lYXN0LnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjVweCAwIDVweCAwO21hcmdpbi10b3A6LTVweH0uZGFyay10b29sdGlwLmVhc3QubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjZweCAwIDZweCAwO21hcmdpbi10b3A6LTZweH0uZGFyay10b29sdGlwLmVhc3QubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MTJweCAwIDEycHggMDttYXJnaW4tdG9wOi0xMnB4fS5kYXJrLXRvb2x0aXAgdWwuY29uZmlybXtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tdG9wOjVweDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCBhdXRvfS5kYXJrLXRvb2x0aXAgdWwuY29uZmlybSBsaXtwYWRkaW5nOjEwcHg7ZmxvYXQ6bGVmdDttYXJnaW46NXB4O21pbi13aWR0aDoyNXB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDstby1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweH0uZGFyay10b29sdGlwLmRhcmt7YmFja2dyb3VuZC1jb2xvcjojZGFkOWRiO2NvbG9yOiMwMDB9LmRhcmstdG9vbHRpcC5saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Y29sb3I6IzVlNWU1ZTtib3JkZXI6MXB4IHNvbGlkICM1ZTVlNWU7ei1pbmRleDoxMDAwMDMwfS5kYXJrLXRvb2x0aXAuZGFyay5zb3V0aCAudGlwe2JvcmRlci1jb2xvcjojZGFkOWRiIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O19ib3JkZXItY29sb3I6I2RhZDlkYiAjMDAwICMwMDAgIzAwMDtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmRhcmsud2VzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjZGFkOWRiIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O19ib3JkZXItY29sb3I6IzAwMCAjZGFkOWRiICMwMDAgIzAwMDtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmRhcmsubm9ydGggLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2RhZDlkYiB0cmFuc3BhcmVudDtfYm9yZGVyLWNvbG9yOiMwMDAgIzAwMCAjZGFkOWRiICMwMDA7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5kYXJrLmVhc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2RhZDlkYjtfYm9yZGVyLWNvbG9yOiMwMDAgIzAwMCAjMDAwICNkYWQ5ZGI7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5saWdodC5zb3V0aCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwcy5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LmRhcmstdG9vbHRpcC5saWdodC53ZXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXB3LnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjhweDtoZWlnaHQ6MTJweH0uZGFyay10b29sdGlwLmxpZ2h0Lm5vcnRoIC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBuLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEycHg7aGVpZ2h0OjhweH0uZGFyay10b29sdGlwLmxpZ2h0LmVhc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcGUucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGNlbnRlcjt3aWR0aDo4cHg7aGVpZ2h0OjEycHh9LmRhcmstdG9vbHRpcC5kYXJrIHVsLmNvbmZpcm0gbGl7YmFja2dyb3VuZC1jb2xvcjojNDE2ZTg1fS5kYXJrLXRvb2x0aXAuZGFyayB1bC5jb25maXJtIGxpOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzQxN2U4NX0uZGFyay10b29sdGlwLmxpZ2h0IHVsLmNvbmZpcm0gbGl7YmFja2dyb3VuZC1jb2xvcjojYzFkYmRifS5kYXJrLXRvb2x0aXAubGlnaHQgdWwuY29uZmlybSBsaTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkY2U4ZTh9LmFuaW1hdGVkey13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tcy1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW8tYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tcy1hbmltYXRpb24tZHVyYXRpb246LjVzOy1vLWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLWR1cmF0aW9uOi41c31ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX0uZmxpcEluey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDstby1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudH0uZmxpcEluLnNvdXRoLC5mbGlwSW4ubm9ydGh7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDstbW96LWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOy1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwO2FuaW1hdGlvbi1uYW1lOmZsaXBJblVwfS5mbGlwSW4ud2VzdCwuZmxpcEluLmVhc3R7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDstbW96LWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0Oy1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0O2FuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19LmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjstbW96LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjstby1hbmltYXRpb24tbmFtZTpmYWRlSW47YW5pbWF0aW9uLW5hbWU6ZmFkZUlufQovKiogL2Nzcy9kaXZfYmxvY2tzLmNzcyAqKi8KZGl2LmRpdkJsb2NrVmlld3sgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGV7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzozMHB4IDEwcHggMTBweCAxMHB4OyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGUuYmxvY2tUaXRsZVN0eWxlMnsgcGFkZGluZzowIDQwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnR7IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzoxNXB4IDBweDsgbWFyZ2luOjA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbnsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgNDBweDsgbWFyZ2luOjA7IHdpZHRoOjg2MHB4ICFpbXBvcnRhbnQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0eyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCAyMHB4IDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgeyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdHsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdDpub3QoLnNpemVGb3I0Q29sdW1uc0xpc3QpOm50aC1jaGlsZCgzbisxKSwgZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdDpudGgtY2hpbGQoNG4rMSl7IGNsZWFyOmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgZGl2LmRpdkJsb2NrTGlzdFRpdGxleyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MCAwIDEwcHggMDsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGZvbnQtd2VpZ2h0OmJvbGQgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbXsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyBtYXJnaW46MDsgdGV4dC1pbmRlbnQ6MDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYXJyb3dfcmVkLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMCA1cHggdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0gPiBBeyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZTppbml0aWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RUaXRsZTJ7IGZvbnQtc2l6ZToxLjFlbTsgYm9yZGVyOjA7IG1hcmdpbjowOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTJ7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgdGV4dC1pbmRlbnQ6MDsgbGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZTsgZGlzcGxheTpibG9jazsgbWFyZ2luOjAgMCAwIDEycHg7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yIC5vdGhlck9wdGlvbkxhYmVseyBmb250LXdlaWdodDpib2xkICFpbXBvcnRhbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6LTIxcHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMjpiZWZvcmV7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCBMSSB7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5ub1N0eWxlSXRlbXsgcGFkZGluZzowIDAgNXB4IDA7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOm5vbmU7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5vblNhbWVMaW5leyBwYWRkaW5nLXJpZ2h0OjE1cHg7IGRpc3BsYXk6aW5saW5lLXRhYmxlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1yaWdodDowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGVPdXRlcnsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrUm93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NlbGx7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbiB7IHdpZHRoOjExMDBweCAhaW1wb3J0YW50OyB9IH0KLyoqIC9jc3MvbmV3Y2Fycy5jc3MgKiovCi5kaXZGaWx0ZXJPdXRlckJveHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNhYWE7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW46MTVweCAwIDAgMDsgcGFkZGluZzoxNXB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTCB7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowcHggMTBweCAyMHB4IDA7IG1hcmdpbjowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMLnNob3dBc1JvdyB7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGZsZXgtd3JhcDp3cmFwOyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTCBMSXsgbWFyZ2luOjAgMCAzcHggMDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwuc2hvd0FzUm93IExJeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZsZXg6MCAwIDE1MHB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuZGl2RmlsdGVyVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJCb3hUaXRsZXsgbWFyZ2luOjAgMCAxNXB4IDA7IGNvbG9yOiM2NjY7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MCAwIDEwcHggMDsgZm9udC1zaXplOjAuOTM4cmVtIDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXJ7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206MjBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlcjpsYXN0LWNoaWxkeyBtYXJnaW4tYm90dG9tOjA7IH0gSDEuZGVmYXVsdC5pc1NpbmdsZVRpdGxlLmlzQm90dG9tQm9yZGVyZWQsIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIEgyeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhcnNCb3hXcmFwcGVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luOjE1cHggNXB4IDEwcHggNXB4OyBwYWRkaW5nOjEwcHg7IGJvcmRlcjoxcHggI2RkZCBzb2xpZDsgaGVpZ2h0OjMyMHB4OyB0cmFuc2l0aW9uOmJvcmRlciAwLjJzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhcjsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlciAwLjJzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhciA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6Y2FsYygzMy4zMzMzMzMlIC0gMTBweCk7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seXsgaGVpZ2h0OjE1NnB4OyB3aWR0aDphdXRvOyBtYXJnaW4tdG9wOjIwcHg7IHBhZGRpbmc6MjBweDsgYm9yZGVyLWNvbG9yOiNlZWU7IHRleHQtYWxpZ246Y2VudGVyOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5kaXZNYWtlTG9nb09ubHkgSU1HIHsgaGVpZ2h0OjEwMCU7IHdpZHRoOmF1dG87IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94Om50aC1jaGlsZCgzKXsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94OmFjdGl2ZSB7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5Nb3ZpbmdCb3hFZmZlY3QgeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3h7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgZmxvYXQ6bGVmdDsgb3BhY2l0eToxOyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgYm9yZGVyOjA7IGN1cnNvcjpwb2ludGVyOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyeyBmbG9hdDpsZWZ0OyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBIM3sgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS4zMTNyZW0gOyB3aWR0aDphdXRvOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6bm9ybWFsOyBjb2xvcjojMDAwMDAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIGRpdi5kaXZOZXdDYXJTdGFydFByaWNlLCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBkaXYuZGl2TmV3Q2FyUHJvbW9QcmljZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MjBweDsgbGVmdDoxMHB4OyByaWdodDoxMHB4OyBoZWlnaHQ6ODAlOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyIEF7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXIgSU1HeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBoZWlnaHQ6NDA1cHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXNpemU6MS4wNjNyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXNpemU6MS42MjVyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgZGl2LmRpdk5ld0NhclN0YXJ0UHJpY2V7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2RmlsdGVyT3V0ZXJCb3ggZGl2LmRpdkZpbHRlckJveFRpdGxleyB3aWR0aDoxMTAwcHg7IH0gfSAucmViYXRlVGFneyBwYWRkaW5nOjJweCAxMHB4IDRweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTZweDsgcmlnaHQ6MTVweDsgYmFja2dyb3VuZDojYjQ1ZjFhIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IHRleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyB9IC5yZWJhdGVUYWcgc3Bhbi5yZWJhdGVUZXh0eyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZUFtb3VudHsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NzAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5yZWJhdGVCb3JkZXJDb2xvcnsgYm9yZGVyLWNvbG9yOiNkZGQ7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjE1cHggIWltcG9ydGFudDsgfSBkaXYuZGl2Q2FyRm9vdGVyQ29udGFpbmVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgbGVmdDowOyByaWdodDowOyB3aWR0aDoxMDAlOyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW07IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEyOTlweCkgeyBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IGhlaWdodDozODBweCFpbXBvcnRhbnQ7IH0gZGl2LmNhclBheW1lbnRXcmFwcGVyeyBoZWlnaHQ6NnJlbSFpbXBvcnRhbnQ7IH0gfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tY2VydC1jb25jcmV0ZS1ncmF5LCB2YXIoLS1saWdodC1ncmF5KSk7IHBhZGRpbmctYm90dG9tOjVweDsgcGFkZGluZy10b3A6NXB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyeyBmb250LXNpemU6MS4xODhyZW0gOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRMaW5lMiBzcGFueyBjb2xvcjojYjQ1ZjFhOyBmb250LXNpemU6MS4xODhyZW0gOyBmb250LXdlaWdodDo3MDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUzeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2QjZCNkI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUxeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2QjZCNkI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBeyBib3R0b206NTBweCFpbXBvcnRhbnQ7IH0gZGl2LmRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQXsgaGVpZ2h0OjQyNXB4IWltcG9ydGFudDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEF7IGJvdHRvbTo2MHB4IWltcG9ydGFudDsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlweyBkaXNwbGF5OmlubGluZS10YWJsZTsgcGFkZGluZzowIDEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwJTsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAucGF5bWVudEluZm9CdWJibGV7IGRpc3BsYXk6bm9uZTsgfSBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgZGl2LmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gZGl2LmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IHBhZGRpbmc6M3B4IDhweDsgYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOmZpdC1jb250ZW50OyBjb2xvcjojMDAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW5TdG9ja0xpbmsgYXsgY29sb3I6IzAwMDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfQovKiogL2Nzcy9kaXZfcmFuZ2VzbGlkZXIuY3NzICoqLwpkaXYuZGl2UHJpY2VSYW5nZVNsaWRlcnsgbWFyZ2luOjAgMCAxMHB4IDA7IHBhZGRpbmc6MDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXRpdGxleyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjAgMCAxMHB4IDA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXN7IHBhZGRpbmc6MCAwIDE1cHggMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1pbnt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzIHNwYW4ucHJpY2UtbWF4e30gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlcnsgYm9yZGVyLXJhZGl1czo1cHggIWltcG9ydGFudDsgaGVpZ2h0OjEwcHg7IG1hcmdpbjo0cHggNnB4IDAgLTNweDsgcGFkZGluZzowOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1sZWZ0LCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXJpZ2h0eyBmb250LXNpemU6MC43NXJlbSA7IGxpbmUtaGVpZ2h0OjIwcHg7IGNvbG9yOiM3NTc1NzU7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1sZWZ0eyB0ZXh0LWFsaWduOmxlZnQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIGRpdi51aS1zbGlkZXItcmFuZ2V7IGJhY2tncm91bmQ6IzMyNDA0NzsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZSwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGV7IG1hcmdpbjotOHB4IDAgMCAtMTFweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBwYWRkaW5nOjAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1MHB4ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyB0b3A6MDsgaGVpZ2h0OjI1cHg7IHdpZHRoOjI1cHg7IGN1cnNvcjpwb2ludGVyOyBvdXRsaW5lOm5vbmUgIWltcG9ydGFudDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBBLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZleyBib3JkZXItY29sb3I6IzY2NjsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1cywgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtZm9jdXN7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL2Rpdl9hbmltYXRpb25zLm1pbi5jc3MgKiovCi5ib3VuY2luZy1wcmljZS1hcnJvd3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jaW5nLWFycm93Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjVzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tbmFtZTpib3VuY2luZy1hcnJvdzthbmltYXRpb24tZHVyYXRpb246NXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0uZmFkZS1pbi1vdXQsLmZhZGUtaW4tb3V0LWZhc3R7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfUBrZXlmcmFtZXMgYm91bmNpbmctYXJyb3d7MCUsMTAwJSwxNiUsMzIley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfTI0JSw4JXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KX19QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jaW5nLWFycm93ezAlLDEwMCUsMTYlLDMyJXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0yNCUsOCV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSl9fS5mYWRlLWluLW91dHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0O2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO29wYWNpdHk6MX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbi1vdXR7MCUsMTAwJSw1MCV7b3BhY2l0eToxfTI1JXtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGZhZGUtaW4tb3V0ezAlLDEwMCUsNDAle29wYWNpdHk6MX0yMCV7b3BhY2l0eTouNX19LmZhZGUtaW4tb3V0LWZhc3R7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlLWluLW91dC1mYXN0Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tbmFtZTpmYWRlLWluLW91dC1mYXN0O2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTtvcGFjaXR5OjF9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtaW4tb3V0LWZhc3R7MCUsMTAwJXtvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgZmFkZS1pbi1vdXQtZmFzdHswJSwxMDAle29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19Lmljb24tY2lyY2xpbmd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTppY29uLWNpcmNsaW5nOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjFzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42OCwtLjU1LC4yNywxLjU1KTthbmltYXRpb24tbmFtZTppY29uLWNpcmNsaW5nO2FuaW1hdGlvbi1kdXJhdGlvbjoxczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42OCwtLjU1LC4yNywxLjU1KX1ALXdlYmtpdC1rZXlmcmFtZXMgaWNvbi1jaXJjbGluZ3tmcm9tey1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfXRvey1tcy10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGljb24tY2lyY2xpbmd7ZnJvbXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3stbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19Ci8qKiAvY3NzL2ZvbnRzLmNzcyAqKi8KQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FsaWJyaSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXNpemU6MWVtOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhbGlicmknOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWxpYnJpJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LnN2ZyNDYWxpYnJpJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVJlZ3VsYXJJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1TZW1pYm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVNlbWlib2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1SZWcud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLVJlZ0l0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1NZWQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLU1lZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0Lm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhci13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1ib2xkLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtYm9sZC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0b2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLUJvbGRJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZGxpbmVvdC1zZW1pYm9sZF8wLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRsaW5lb3Qtc2VtaWJvbGRfMC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZGxpbmVPVC1TZW1pYm9sZF8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWxpZ2h0LXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtbGlnaHQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtTGlnaHQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWV4dHJhYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWV4dHJhYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1FeHRyYUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1SZWd1bGFySXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1Cb2xkSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHRPZmZpY2UnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHRPZmZpY2UnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFjay53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1JdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LnN2ZyNSb2JvdG8nKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5zdmcjUm9ib3RvQmxhY2tJdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuc3ZnI1JvYm90b0JvbGQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC5zdmcjUm9ib3RvTGlnaHQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LWJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtsLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2wtd2ViZm9udC1saWdodC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmttJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgiZW90IiksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmttJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQtbWVkaXVtLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bWVkaXVtOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX3JlZ3VsYXJfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19yZWd1bGFyX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfbGlnaHRfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19saWdodF93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2JvbGRfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19ib2xkX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVBQ29uZGVuc2VkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYWNvbmRwcm9fcmVndWxhcl93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYWNvbmRwcm9fcmVndWxhcl93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVBUmVndWxhcic7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFwcm9fcmVndWxhcl9sb2dvX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhcHJvX3JlZ3VsYXJfbG9nb193ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5lb3QnKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9yZWd1bGFyIikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3QiKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9ib2xkIikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseToiU291cmNlU2Fuc1BybyI7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LmVvdCIpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9saWdodCIpIGZvcm1hdCgic3ZnIik7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLU5vcm1hbC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLU5vcm1hbC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1Ob3JtYWwub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1Cb2xkIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRCb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRCb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUV4dGVuZGVkQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLU5vcm1hbC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLUl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWQtNC4wMy1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpRXh0ZW5kZWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLUJvbGRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1SZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW4ud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW5JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3N3YWxkJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQuc3ZnJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPc3dhbGRCb2xkJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLnN2ZycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonc2hvd3Jvb20nOyBzcmM6IGxvY2FsKCdzaG93cm9vbScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS5zdmcnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0T2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0T2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFja09ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pclBybyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRQcm8tbm9ybWFsLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pclBybyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0UHJvLWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRMVFByby1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dExUUHJvLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRMVFByby1JdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLVJlZy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtQm9sZEl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBcGV4TmV3Qm9vayc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYXBleC1uZXctYm9vay1yZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LnN2ZyNtb250c2VycmF0cmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC5zdmcjbW9udHNlcnJhdGJvbGQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LnN2ZyNtb250c2VycmF0Ym9sZF9pdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRpdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LnN2ZyNtb250c2VycmF0bWVkaXVtJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC5zdmcjbW9udHNlcnJhdG1lZGl1bV9pdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01NQyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNTUMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLU1lZGl1bS5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTU1DJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtQm9sZC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVcnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdUeXBlTmV4dC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XVHlwZU5leHQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNV0dsb2JhbFBybyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV0dsb2JhbF9Qcm9fcmVnLndvZmYnKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XR2xvYmFsUHJvJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XR2xvYmFsX1Byb19ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW5JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0SXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXJJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFySXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbEJvb2snOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9vay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWxCb29rJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9va0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2tJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xhbmRSb3Zlcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMYW5kUm92ZXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05pc3Nhbic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05pc3Nhbic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05pc3Nhbic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhci1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhck1vZGVybic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhck1vZGVybi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhck1vZGVybic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJNb2Rlcm4tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJHb3RoYW0nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJHb3RoYW0tTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyR290aGFtJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3VhckdvdGhhbS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dvdGhhbSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0luZmluaXRpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW5maW5pdGlCcmFuZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW5maW5pdGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW5maW5pdGlCcmFuZC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVSZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmVMaWdodCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFySXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXJJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkSXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGRJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsYmtfLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxia2ktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGlnLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxpdC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdW1kaS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxtZWQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtNV9QbGFpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtNWlQbGFpbkl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTNfTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy0zaUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtN19Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtN2lCb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtNV9QbGFpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTVpUGxhaW5JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtM19MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC0zaUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTdfQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC03aUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1MaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLVRoaW4ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLUJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMb3Vpcyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTG91aXNHbG9iYWwyLVJlZy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTG91aXMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Mb3Vpc0dsb2JhbDItQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTG91aXMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xvdWlzR2xvYmFsMi1IZWF2eS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNXaWRlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1XaWRlUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNXaWRlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtV2lkZUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljV2lkZSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtV2lkZU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNOYXJyb3cnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU5hcnJvd1JlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljTmFycm93JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTmFycm93Qm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNOYXJyb3cnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU5hcnJvd01lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWwnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbFJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbEJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsQm9vayc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxCb29rLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tUmVndWxhckl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tTWVkaXVtSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVNlbWlCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVNlbWlCb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1UaGluLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVRoaW4td2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtTGlnaHQtd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtbGlnaHQtd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtUmVndWxhci13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1SZWd1bGFyLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LU1lZGl1bS13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1NZWRpdW0td2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtQm9sZC13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1Cb2xkLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0TW9ubyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dE1vbm8tUmVndWxhci13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dE1vbm8tUmVndWxhci13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0LUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnkub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2stSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXItT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnktT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2stT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2UnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2UnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZUJvb2snOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvb2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0xpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNNZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc1JlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc1JlZ3VsYXJJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0JvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0JvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWNMYXJlbkJlc3Bva2UnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL01jTGFyZW5CZXNwb2tlX0x0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01jTGFyZW5CZXNwb2tlJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9NY0xhcmVuQmVzcG9rZV9SZy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNY0xhcmVuQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTWNMYXJlbkJlc3Bva2VfQmQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRElOTmV4dExUUHJvJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9ESU5OZXh0TFRQcm8tTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRElOTmV4dExUUHJvJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9ESU5OZXh0TFRQcm8tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidESU5OZXh0TFRQcm8nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0RJTk5leHRMVFByby1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1R1bmdzdGVuJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9UdW5nc3Rlbi1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVHVuZ3N0ZW4nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL1R1bmdzdGVuLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9Ci8qKiAvY3NzL21haW4uY3NzICoqLwouLWxlZnQge2Zsb2F0OmxlZnQhaW1wb3J0YW50O30gLi1yaWdodCB7ZmxvYXQ6cmlnaHR9IC4tc21hbGwge2ZvbnQtc2l6ZTouOGVtO21hcmdpbi1ib3R0b206MS44NzVlbTtsaW5lLWhlaWdodDoxLjg3NWVtIWltcG9ydGFudDt9IC4tbGFyZ2Uge2ZvbnQtc2l6ZToxLjJlbTtsaW5lLWhlaWdodDoyLjVlbTttYXJnaW4tYm90dG9tOjEuMjVlbSFpbXBvcnRhbnQ7fSAuLWhpZGUge2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fSAuLXF1aWV0IHtjb2xvcjojNjY2IWltcG9ydGFudDt9IC4tbG91ZCB7Y29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7fSAuLWhpZ2hsaWdodCB7YmFja2dyb3VuZDojZmYwIWltcG9ydGFudDt9IC4tYWRkZWQge2JhY2tncm91bmQ6IzA2MDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcmVtb3ZlZCB7YmFja2dyb3VuZDojOTAwO2NvbG9yOiNmZmYhaW1wb3J0YW50O30gLi1wdXNoLWZpcnN0IHttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDowIWltcG9ydGFudDt9IC4tcHVzaC1sYXN0IHttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50O30gLi1wdXNoLWxlZnQge21hcmdpbi10b3A6MDtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHVzaC1ib3R0b20ge21hcmdpbi1ib3R0b206MDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDt9IC4tbm9ib3JkZXIge2JvcmRlcjowIWltcG9ydGFudDt9IC4tbm9kZWNvcmF0aW9uLCAuLW5vLXRleHQtZGVjb3JhdGlvbiwgLi1ub3RleHQtZGVjb3JhdGlvbiB7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50O30gLi10ZXh0LXVwcGVyY2FzZSwgLi11cHBlcmNhc2UsIC50ZXh0LXVwcGVyY2FzZSB7dGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTt9IC4tdGV4dC1sb3dlcmNhc2UsIC4tbG93ZXJjYXNlIHt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2UhaW1wb3J0YW50O30gLi1oaWRkZW4geyBkaXNwbGF5Om5vbmU7IH0gLi10ZXh0LWJvbGQsLmJvbGR7Zm9udC13ZWlnaHQ6Ym9sZCFpbXBvcnRhbnQ7fSAuLXRleHQtbm9ybWFsLC5ub3JtYWx7Zm9udC13ZWlnaHQ6bm9ybWFsIWltcG9ydGFudDt9IC4tYWxpZ24tdG9wIHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50O30gLi1hbGlnbi1taWRkbGUge3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnQ7fSAuLWxpbmUtaDF7IGxpbmUtaGVpZ2h0OjFlbTsgfSAuLWxpbmUtaDJ7IGxpbmUtaGVpZ2h0OjJlbTsgfSAuLWJvdHRvbTB7IGJvdHRvbTowOyB9IC4tYm90dG9tMC1pbXBvcnRhbnR7IGJvdHRvbTowIWltcG9ydGFudDsgfSAuUG9yc2NoZTJ7IGNsZWFyOmJvdGg7IH0gLmJsYWNrLXRleHQgeyBjb2xvcjojMDAwMDAwOyB9IDo6cGxhY2Vob2xkZXIgeyBwYWRkaW5nLXRvcDoxcHg7IGNvbG9yOiNhOWE5YTk7IG9wYWNpdHk6MTsgfSA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI2NhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0LCAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHQgeyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MS4zNzVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzMyNDA0NzsgY29sb3I6I2ZmZmZmZiA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5TcGVjaWZpY2F0aW9ucyAuZmEtY2hldnJvbi1yaWdodHsgbWFyZ2luLXRvcDoxcHg7IH0gI2NhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS41NjNyZW0gOyB9ICNjYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MS4xMjVyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9IC5jYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IGNvbG9yOiNmZmZmZmYgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuY2FyVGl0bGUgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IH0gLmNhclRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGxldHRlci1zcGFjaW5nOi0xcHg7IH0gI1NlYXJjaFRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjMxcHg7IGhlaWdodDo0MXB4OyBwYWRkaW5nLXRvcDo1cHg7IHBhZGRpbmctbGVmdDoxNHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjIuMTg4cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IGNvbG9yOiNmZmZmZmYgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAjU2VhcmNoVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjFyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyBtYXJnaW4tbGVmdDo0NXB4OyBkaXNwbGF5OmJsb2NrOyB9IC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVsIGlucHV0IHsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDoxcHg7IG1hcmdpbi1yaWdodDo4cHg7IGhlaWdodDoxM3B4OyB9IC51aS13aWRnZXQsLnVpLXN0YXRlLWhvdmVyLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhvdmVyLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsIC51aS1zdGF0ZS1mb2N1cywgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1mb2N1cywgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdHsgYmFja2dyb3VuZDojZmZmIWltcG9ydGFudDsgY29sb3I6IzU1NTsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IHBhZGRpbmc6OHB4IDEwcHghaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxpeyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgfSAudWktY29ybmVyLWFsbHsgYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyB9IC4tY29sbGFwc2V7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfSAuLWxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgfSAuLW5vLXNoYWRvdywgLi1zaGFkb3cwLCAuLW5vc2hhZG93eyBib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50OyB9IC4tdW5kZXJsaW5leyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudDsgfSAuLXRvcDB7IHRvcDowOyB9IC4tdGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnQ7fSAuLXRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnQ7fSAuLXRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt9IC4tdGV4dC1yZWQsIC4tcmVkLXRleHR7Y29sb3I6cmVkIWltcG9ydGFudDt9IC4tYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7fSAuLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7fSAuLW5vbmUsIC4taGlkZGVuLCAuLWhpZGRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1pbmxpbmUge2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudDt9IC4tY29sb3IxIHsgY29sb3I6IzU3NTc1NyFpbXBvcnRhbnQ7fSAuLXRpdGxlMSB7IGZvbnQtc2l6ZToxLjQzOHJlbSAhaW1wb3J0YW50OyBmb250LWNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50OyB9IC4taW5wdXQgeyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNXB4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGhlaWdodDozMnB4OyBjb2xvcjojNDA0MDQwOyBwYWRkaW5nOjBweCA2cHghaW1wb3J0YW50OyBtYXJnaW46MHB4OyBvdXRsaW5lOm5vbmU7IG1pbi1oZWlnaHQ6MjBweDsgYm9yZGVyOjFweCBzb2xpZCAjY2VkNGRhOyBib3JkZXItcmFkaXVzOi4yNXJlbTsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLi1pbnB1dDpmb2N1cywgLi1pbnB1dDpob3ZlcnsgYm9yZGVyLWNvbG9yOiM4MGJkZmYgIWltcG9ydGFudDsgYm94LXNoYWRvdzowIDAgMCAwLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KTsgfSAuLXBvc2l0aW9uLXN0YXRpYywgLi1wb3Mtc3RhdGljLCAuLXBvcy1zdGF0IHtwb3NpdGlvbjpzdGF0aWMhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1hYnNvbHV0ZSwgLi1wb3MtYWJzb2x1dGUsIC4tcG9zLWFicyB7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1maXhlZCwgLi1wb3MtZml4ZWQsIC4tcG9zLWZpeCB7cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1yZWxhdGl2ZSwgLi1wb3MtcmVsYXRpdmUsIC4tcG9zLXJlbCB7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1pbmhlcml0LCAuLXBvcy1pbmhlcml0LCAuLXBvcy1pbmgge3Bvc2l0aW9uOmluaGVyaXQhaW1wb3J0YW50O30gLWxoLTEtMywgLWxpbmUtaGVpZ2h0LTEtM3sgbGluZS1oZWlnaHQ6MS4zOyB9IC1saC0yMHsgbGluZS1oZWlnaHQ6MjBweDsgfSAuLWVycm9yLCAuLWFsZXJ0LCAuLW5vdGljZSwgLi1zdWNjZXNzLCAuLWluZm8ge3BhZGRpbmc6MC44ZW07bWFyZ2luLWJvdHRvbToxZW07Ym9yZGVyOjJweCBzb2xpZCAjZGRkIWltcG9ydGFudDt9IC4tZXJyb3IsIC4tYWxlcnQge2JhY2tncm91bmQ6I2ZiZTNlNDtjb2xvcjojOGExZjExO2JvcmRlci1jb2xvcjojZmJjMmM0IWltcG9ydGFudDt9IC4tbm90aWNlIHtiYWNrZ3JvdW5kOiNmZmY2YmY7Y29sb3I6IzUxNDcyMTtib3JkZXItY29sb3I6I2ZmZDMyNCFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3Mge2JhY2tncm91bmQ6I2U2ZWZjMjtjb2xvcjojMjY0NDA5O2JvcmRlci1jb2xvcjojYzZkODgwIWltcG9ydGFudDt9IC4taW5mbyB7YmFja2dyb3VuZDojZDVlZGY4O2NvbG9yOiMyMDU3OTE7Ym9yZGVyLWNvbG9yOiM5MmNhZTQhaW1wb3J0YW50O30gLi1lcnJvciBhLCAuYWxlcnQgYSB7Y29sb3I6IzhhMWYxMSFpbXBvcnRhbnQ7fSAuLW5vdGljZSBhIHtjb2xvcjojNTE0NzIxIWltcG9ydGFudDt9IC4tc3VjY2VzcyBhIHtjb2xvcjojMjY0NDA5IWltcG9ydGFudDt9IC4taW5mbyBhIHtjb2xvcjojMjA1NzkxIWltcG9ydGFudDt9IC4tYm94IHtwYWRkaW5nOjEuNWVtO21hcmdpbi1ib3R0b206MS41ZW07YmFja2dyb3VuZDojZTVlQ2Y5IWltcG9ydGFudDt9IC1ociB7YmFja2dyb3VuZDojZGRkZGRkO2NvbG9yOiNkZGRkZGQ7Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLXNwYWNlIHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6I2ZmZjt2aXNpYmlsaXR5OmhpZGRlbjtjbGVhcjpib3RoO2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MXB4O21hcmdpbjowIDAgMTdweDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7fSAuLWNsZWFyZml4OmFmdGVyIHtjb250ZW50OiJcMDAyMCI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtjbGVhcjpib3RoO3Zpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7fSAuLWNsZWFyZml4e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1jbGVhciB7Y2xlYXI6Ym90aCFpbXBvcnRhbnQ7fSAuaW52aXNpYmxlIHt2aXNpYmlsaXR5OmhpZGRlbjt9IC5jbGVhcmZpeDphZnRlciB7Y29udGVudDoiIjsgZGlzcGxheTp0YWJsZTsgY2xlYXI6Ym90aDt9IC4tb3ZlcmZsb3ctaGlkZGVuIHtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi13NSB7d2lkdGg6NXB4IWltcG9ydGFudDt9IC4tdzEwIHt3aWR0aDoxMHB4IWltcG9ydGFudDt9IC4tdzE1IHt3aWR0aDoxNXB4IWltcG9ydGFudDt9IC4tdzE4IHt3aWR0aDoxOHB4IWltcG9ydGFudDt9IC4tdzIwIHt3aWR0aDoyMHB4IWltcG9ydGFudDt9IC4tdzI1IHt3aWR0aDoyNXB4IWltcG9ydGFudDt9IC4tdzMwIHt3aWR0aDozMHB4IWltcG9ydGFudDt9IC4tdzM1IHt3aWR0aDozNXB4IWltcG9ydGFudDt9IC4tdzQwIHt3aWR0aDo0MHB4IWltcG9ydGFudDt9IC4tdzQ1IHt3aWR0aDo0NXB4IWltcG9ydGFudDt9IC4tdzUwIHt3aWR0aDo1MHB4IWltcG9ydGFudDt9IC4tdzU1IHt3aWR0aDo1NXB4IWltcG9ydGFudDt9IC4tdzYwIHt3aWR0aDo2MHB4IWltcG9ydGFudDt9IC4tdzY1IHt3aWR0aDo2NXB4IWltcG9ydGFudDt9IC4tdzcwIHt3aWR0aDo3MHB4IWltcG9ydGFudDt9IC4tdzczIHt3aWR0aDo3M3B4IWltcG9ydGFudDt9IC4tdzc1IHt3aWR0aDo3NXB4IWltcG9ydGFudDt9IC4tdzgwIHt3aWR0aDo4MHB4IWltcG9ydGFudDt9IC4tdzg1IHt3aWR0aDo4NXB4IWltcG9ydGFudDt9IC4tdzg4IHt3aWR0aDo4OHB4IWltcG9ydGFudDt9IC4tdzkwIHt3aWR0aDo5MHB4IWltcG9ydGFudDt9IC4tdzk1IHt3aWR0aDo5NXB4IWltcG9ydGFudDt9IC4tdzEwMCB7d2lkdGg6MTAwcHghaW1wb3J0YW50O30gLi13MTEwIHt3aWR0aDoxMTBweCFpbXBvcnRhbnQ7fSAuLXcxMjAge3dpZHRoOjEyMHB4IWltcG9ydGFudDt9IC4tdzEyNSB7d2lkdGg6MTI1cHghaW1wb3J0YW50O30gLi13MTMwIHt3aWR0aDoxMzBweCFpbXBvcnRhbnQ7fSAuLXcxMzUge3dpZHRoOjEzNXB4IWltcG9ydGFudDt9IC4tdzE0MCB7d2lkdGg6MTQwcHghaW1wb3J0YW50O30gLi13MTQzIHt3aWR0aDoxNDNweCFpbXBvcnRhbnQ7fSAuLXcxNDUge3dpZHRoOjE0NXB4IWltcG9ydGFudDt9IC4tdzE1MCB7d2lkdGg6MTUwcHghaW1wb3J0YW50O30gLi13MTcwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODAge3dpZHRoOjE4MHB4IWltcG9ydGFudDt9IC4tdzE4NSB7d2lkdGg6MTg1cHghaW1wb3J0YW50O30gLi13MTkwIHt3aWR0aDoxOTBweCFpbXBvcnRhbnQ7fSAuLXcyMDAge3dpZHRoOjIwMHB4IWltcG9ydGFudDt9IC4tdzIxMCB7d2lkdGg6MjEwcHghaW1wb3J0YW50O30gLi13MjE1IHt3aWR0aDoyMTVweCFpbXBvcnRhbnQ7fSAuLXcyMjAge3dpZHRoOjIyMHB4IWltcG9ydGFudDt9IC4tdzIzMCB7d2lkdGg6MjMwcHghaW1wb3J0YW50O30gLi13MjQwIHt3aWR0aDoyNDBweCFpbXBvcnRhbnQ7fSAuLXcyNTAge3dpZHRoOjI1MHB4IWltcG9ydGFudDt9IC4tdzI1NSB7d2lkdGg6MjU1cHghaW1wb3J0YW50O30gLi13MjYwIHt3aWR0aDoyNjBweCFpbXBvcnRhbnQ7fSAuLXcyNzAge3dpZHRoOjI3MHB4IWltcG9ydGFudDt9IC4tdzI3NSB7d2lkdGg6Mjc1cHghaW1wb3J0YW50O30gLi13MjgwIHt3aWR0aDoyODBweCFpbXBvcnRhbnQ7fSAuLXcyOTAge3dpZHRoOjI5MHB4IWltcG9ydGFudDt9IC4tdzMwMCB7d2lkdGg6MzAwcHghaW1wb3J0YW50O30gLi13MzE1IHt3aWR0aDozMTVweCFpbXBvcnRhbnQ7fSAuLXczMjAge3dpZHRoOjMyMHB4IWltcG9ydGFudDt9IC4tdzMyNSB7d2lkdGg6MzI1cHghaW1wb3J0YW50O30gLi13MzUwIHt3aWR0aDozNTBweCFpbXBvcnRhbnQ7fSAuLXc0MDAge3dpZHRoOjQwMHB4IWltcG9ydGFudDt9IC4tdzQ1MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NDYwIHt3aWR0aDo0NTBweCFpbXBvcnRhbnQ7fSAuLXc1MDAge3dpZHRoOjUwMHB4IWltcG9ydGFudDt9IC4tdzYzMCB7d2lkdGg6NjMwcHghaW1wb3J0YW50O30gLi13NjIwIHt3aWR0aDo2MjBweCFpbXBvcnRhbnQ7fSAuLXc2MjUge3dpZHRoOjYyNXB4IWltcG9ydGFudDt9IC4tdzY3NSB7d2lkdGg6Njc1cHghaW1wb3J0YW50O30gLi13NjgwIHt3aWR0aDo2ODBweCFpbXBvcnRhbnQ7fSAuLXc2NzAge3dpZHRoOjY3MHB4IWltcG9ydGFudDt9IC4tdzcwMCB7d2lkdGg6NzAwcHghaW1wb3J0YW50O30gLi13NzIwIHt3aWR0aDo3MjBweCFpbXBvcnRhbnQ7fSAuLXc3MjUge3dpZHRoOjcyNXB4IWltcG9ydGFudDt9IC4tdzczMCB7d2lkdGg6NzMwcHghaW1wb3J0YW50O30gLi13NzUwIHt3aWR0aDo3NTBweCFpbXBvcnRhbnQ7fSAuLXc4MDAge3dpZHRoOjgwMHB4IWltcG9ydGFudDt9IC4tdzkwMCB7d2lkdGg6OTAwcHghaW1wb3J0YW50O30gLi13OTM3IHt3aWR0aDo5MzdweCFpbXBvcnRhbnQ7fSAuLXc5NDAge3dpZHRoOjk0MHB4IWltcG9ydGFudDt9IC4tdzk2MCB7d2lkdGg6OTYwcHghaW1wb3J0YW50O30gLi13OTcwIHt3aWR0aDo5NzBweCFpbXBvcnRhbnQ7fSAuLXcxMDAwIHt3aWR0aDoxMDAwcHghaW1wb3J0YW50O30gLi13NXAge3dpZHRoOjUlIWltcG9ydGFudDt9IC4tdzEwcCB7d2lkdGg6MTAlIWltcG9ydGFudDt9IC4tdzE1cCB7d2lkdGg6MjAlIWltcG9ydGFudDt9IC4tdzIwcCB7d2lkdGg6MjAlIWltcG9ydGFudDt9IC4td3EsIC4tdzI1cCB7d2lkdGg6MjUlIWltcG9ydGFudDt9IC4tdzMwcCB7d2lkdGg6MzAlIWltcG9ydGFudDt9IC4tdzM1cCB7d2lkdGg6MzUlIWltcG9ydGFudDt9IC4tdzQwcCB7d2lkdGg6NDAlIWltcG9ydGFudDt9IC4tdzQ1cCB7d2lkdGg6NDUlIWltcG9ydGFudDt9IC4td2gsLi13NTBwIHt3aWR0aDo1MCUhaW1wb3J0YW50O30gLi13NTVwIHt3aWR0aDo1NSUhaW1wb3J0YW50O30gLi13NjBwIHt3aWR0aDo2MCUhaW1wb3J0YW50O30gLi13NjVwIHt3aWR0aDo2NSUhaW1wb3J0YW50O30gLi13NzBwIHt3aWR0aDo3MCUhaW1wb3J0YW50O30gLi13NzVwIHt3aWR0aDo3NSUhaW1wb3J0YW50O30gLi13ODBwIHt3aWR0aDo4MCUhaW1wb3J0YW50O30gLi13ODVwIHt3aWR0aDo4NSUhaW1wb3J0YW50O30gLi13OTBwIHt3aWR0aDo5MCUhaW1wb3J0YW50O30gLi13OTVwIHt3aWR0aDo5NSUhaW1wb3J0YW50O30gLi13ZiwuLXcxMDBwIHt3aWR0aDoxMDAlIWltcG9ydGFudDt9IC4tbWF4LXctbm9uZSB7bWF4LXdpZHRoOm5vbmUhaW1wb3J0YW50O30gLi1oNSB7aGVpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLWg2IHtoZWlnaHQ6NnB4IWltcG9ydGFudDt9IC4taDcge2hlaWdodDo3cHghaW1wb3J0YW50O30gLi1oOCB7aGVpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLWg5IHtoZWlnaHQ6OXB4IWltcG9ydGFudDt9IC4taDEwIHtoZWlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLWgxMSB7aGVpZ2h0OjExcHghaW1wb3J0YW50O30gLi1oMTIge2hlaWdodDoxMnB4IWltcG9ydGFudDt9IC4taDEzIHtoZWlnaHQ6MTNweCFpbXBvcnRhbnQ7fSAuLWgxNCB7aGVpZ2h0OjE0cHghaW1wb3J0YW50O30gLi1oMTUge2hlaWdodDoxNXB4IWltcG9ydGFudDt9IC4taDIwIHtoZWlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLWgyNSB7aGVpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1oMzAge2hlaWdodDozMHB4IWltcG9ydGFudDt9IC4taDMyIHtoZWlnaHQ6MzJweCFpbXBvcnRhbnQ7fSAuLWgzNSB7aGVpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1oNDAge2hlaWdodDo0MHB4IWltcG9ydGFudDt9IC4taDQ1IHtoZWlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLWg1MCB7aGVpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1oNTUge2hlaWdodDo1NXB4IWltcG9ydGFudDt9IC4taDYwIHtoZWlnaHQ6NjBweCFpbXBvcnRhbnQ7fSAuLWg2NSB7aGVpZ2h0OjY1cHghaW1wb3J0YW50O30gLi1oNzAge2hlaWdodDo3MHB4IWltcG9ydGFudDt9IC4taDc1IHtoZWlnaHQ6NzVweCFpbXBvcnRhbnQ7fSAuLWg4MCB7aGVpZ2h0OjgwcHghaW1wb3J0YW50O30gLi1oODUge2hlaWdodDo4NXB4IWltcG9ydGFudDt9IC4taDkwIHtoZWlnaHQ6OTBweCFpbXBvcnRhbnQ7fSAuLWg5NSB7aGVpZ2h0Ojk1cHghaW1wb3J0YW50O30gLi1oMTAwIHtoZWlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1oMTEwIHtoZWlnaHQ6MTEwcHghaW1wb3J0YW50O30gLi1oMTIwIHtoZWlnaHQ6MTIwcHghaW1wb3J0YW50O30gLi1oMTMwIHtoZWlnaHQ6MTMwcHghaW1wb3J0YW50O30gLi1oMTQwIHtoZWlnaHQ6MTQwcHghaW1wb3J0YW50O30gLi1oMTUwIHtoZWlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1oMTYwIHtoZWlnaHQ6MTYwcHghaW1wb3J0YW50O30gLi1oMTcwIHtoZWlnaHQ6MTcwcHghaW1wb3J0YW50O30gLi1oMTgwIHtoZWlnaHQ6MTgwcHghaW1wb3J0YW50O30gLi1oMTkwIHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50O30gLi1oMjAwIHtoZWlnaHQ6MjAwcHghaW1wb3J0YW50O30gLi1oMjIwIHtoZWlnaHQ6MjIwcHghaW1wb3J0YW50O30gLi1oMjMwIHtoZWlnaHQ6MjMwcHghaW1wb3J0YW50O30gLi1oMjQwIHtoZWlnaHQ6MjQwcHghaW1wb3J0YW50O30gLi1oMjQ1IHtoZWlnaHQ6MjQ1cHghaW1wb3J0YW50O30gLi1oMjQ4IHtoZWlnaHQ6MjQ4cHghaW1wb3J0YW50O30gLi1oMjUwIHtoZWlnaHQ6MjUwcHghaW1wb3J0YW50O30gLi1oMjU1IHtoZWlnaHQ6MjU1cHghaW1wb3J0YW50O30gLi1oMjYwIHtoZWlnaHQ6MjYwcHghaW1wb3J0YW50O30gLi1oMzAwIHtoZWlnaHQ6MzAwcHghaW1wb3J0YW50O30gLi1oMzUwIHtoZWlnaHQ6MzUwcHghaW1wb3J0YW50O30gLi1oNDAwIHtoZWlnaHQ6NDAwcHghaW1wb3J0YW50O30gLi1oNDUwIHtoZWlnaHQ6NDUwcHghaW1wb3J0YW50O30gLi1oNTAwIHtoZWlnaHQ6NTAwcHghaW1wb3J0YW50O30gLi1oNTUwIHtoZWlnaHQ6NTUwcHghaW1wb3J0YW50O30gLi1oNjAwIHtoZWlnaHQ6NjAwcHghaW1wb3J0YW50O30gLi1oNjUwIHtoZWlnaHQ6NjUwcHghaW1wb3J0YW50O30gLi1oNzAwIHtoZWlnaHQ6NzAwcHghaW1wb3J0YW50O30gLi1oNzUwIHtoZWlnaHQ6NzUwcHghaW1wb3J0YW50O30gLi1oODAwIHtoZWlnaHQ6ODAwcHghaW1wb3J0YW50O30gLi1oOTAwIHtoZWlnaHQ6OTAwcHghaW1wb3J0YW50O30gLi1oMTAwMCB7aGVpZ2h0OjEwMDBweCFpbXBvcnRhbnQ7fSAuLWg1cCB7aGVpZ2h0OjUlIWltcG9ydGFudDt9IC4taDEwcCB7aGVpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLWgxNXAge2hlaWdodDoxNSUhaW1wb3J0YW50O30gLi1oMjBwIHtoZWlnaHQ6MjAlIWltcG9ydGFudDt9IC4taHEsIC4taDI1cCB7aGVpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLWhoLC4taDUwcCB7aGVpZ2h0OjUwJSFpbXBvcnRhbnQ7fSAuLWhmLC4taDEwMHAge2hlaWdodDoxMDAlIWltcG9ydGFudDt9IC4tYm94LXMtYnsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLi1ib3gtY29udGVudHsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuLWZsZXh7ZGlzcGxheTpmbGV4O30gLi1mbGV4LWNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30gLi1haS1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyO30gLi1wMCwuLW5vcGFkZGluZywuLW5vcGFkZGluZ3Mge3BhZGRpbmc6MDt9IC4tcDEge3BhZGRpbmc6MXB4IWltcG9ydGFudDt9IC4tcDIge3BhZGRpbmc6MnB4IWltcG9ydGFudDt9IC4tcDMge3BhZGRpbmc6M3B4IWltcG9ydGFudDt9IC4tcDQge3BhZGRpbmc6NHB4IWltcG9ydGFudDt9IC4tcDUge3BhZGRpbmc6NXB4IWltcG9ydGFudDt9IC4tcDYge3BhZGRpbmc6NnB4IWltcG9ydGFudDt9IC4tcDcge3BhZGRpbmc6N3B4IWltcG9ydGFudDt9IC4tcDgge3BhZGRpbmc6OHB4IWltcG9ydGFudDt9IC4tcDkge3BhZGRpbmc6OXB4IWltcG9ydGFudDt9IC4tcDEwIHtwYWRkaW5nOjEwcHghaW1wb3J0YW50O30gLi1wMTUge3BhZGRpbmc6MTVweCFpbXBvcnRhbnQ7fSAuLXAyMCB7cGFkZGluZzoyMHB4IWltcG9ydGFudDt9IC4tcDI1IHtwYWRkaW5nOjI1cHghaW1wb3J0YW50O30gLi1wMzAge3BhZGRpbmc6MzBweCFpbXBvcnRhbnQ7fSAuLXAzNSB7cGFkZGluZzozNXB4IWltcG9ydGFudDt9IC4tcDQwIHtwYWRkaW5nOjQwcHghaW1wb3J0YW50O30gLi1wNDUge3BhZGRpbmc6NDVweCFpbXBvcnRhbnQ7fSAuLXA1MCB7cGFkZGluZzo1MHB4IWltcG9ydGFudDt9IC4tcGwwIHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXBsMSB7cGFkZGluZy1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLXBsMiB7cGFkZGluZy1sZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLXBsMyB7cGFkZGluZy1sZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLXBsNCB7cGFkZGluZy1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLXBsNSB7cGFkZGluZy1sZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLXBsNiB7cGFkZGluZy1sZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLXBsNyB7cGFkZGluZy1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLXBsOCB7cGFkZGluZy1sZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLXBsOSB7cGFkZGluZy1sZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLXBsMTAge3BhZGRpbmctbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tcGwxNSB7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50O30gLi1wbDE2IHtwYWRkaW5nLWxlZnQ6MTZweCFpbXBvcnRhbnQ7fSAuLXBsMTcge3BhZGRpbmctbGVmdDoxN3B4IWltcG9ydGFudDt9IC4tcGwyMCB7cGFkZGluZy1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1wbDI1IHtwYWRkaW5nLWxlZnQ6MjVweCFpbXBvcnRhbnQ7fSAuLXBsMzAge3BhZGRpbmctbGVmdDozMHB4IWltcG9ydGFudDt9IC4tcGwzNSB7cGFkZGluZy1sZWZ0OjM1cHghaW1wb3J0YW50O30gLi1wbDQwIHtwYWRkaW5nLWxlZnQ6NDBweCFpbXBvcnRhbnQ7fSAuLXBsNDUge3BhZGRpbmctbGVmdDo0NXB4IWltcG9ydGFudDt9IC4tcGw1MCB7cGFkZGluZy1sZWZ0OjUwcHghaW1wb3J0YW50O30gLi1wbDU1IHtwYWRkaW5nLWxlZnQ6NTVweCFpbXBvcnRhbnQ7fSAuLXByMCB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHIxIHtwYWRkaW5nLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLXByMiB7cGFkZGluZy1yaWdodDoycHghaW1wb3J0YW50O30gLi1wcjMge3BhZGRpbmctcmlnaHQ6M3B4IWltcG9ydGFudDt9IC4tcHI0IHtwYWRkaW5nLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLXByNSB7cGFkZGluZy1yaWdodDo1cHghaW1wb3J0YW50O30gLi1wcjYge3BhZGRpbmctcmlnaHQ6NnB4IWltcG9ydGFudDt9IC4tcHI3IHtwYWRkaW5nLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLXByOCB7cGFkZGluZy1yaWdodDo4cHghaW1wb3J0YW50O30gLi1wcjkge3BhZGRpbmctcmlnaHQ6OXB4IWltcG9ydGFudDt9IC4tcHIxMCB7cGFkZGluZy1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcHIxNSB7cGFkZGluZy1yaWdodDoxNXB4IWltcG9ydGFudDt9IC4tcHIyMCB7cGFkZGluZy1yaWdodDoyMHB4IWltcG9ydGFudDt9IC4tcHIyNSB7cGFkZGluZy1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcHIzMCB7cGFkZGluZy1yaWdodDozMHB4IWltcG9ydGFudDt9IC4tcHIzNSB7cGFkZGluZy1yaWdodDozNXB4IWltcG9ydGFudDt9IC4tcHI0MCB7cGFkZGluZy1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcHI0NSB7cGFkZGluZy1yaWdodDo0NXB4IWltcG9ydGFudDt9IC4tcHI1MCB7cGFkZGluZy1yaWdodDo1MHB4IWltcG9ydGFudDt9IC4tcHI1NSB7cGFkZGluZy1yaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcHQwe3BhZGRpbmctdG9wOjAhaW1wb3J0YW50O30gLi1wdDEge3BhZGRpbmctdG9wOjFweCFpbXBvcnRhbnQ7fSAuLXB0MiB7cGFkZGluZy10b3A6MnB4IWltcG9ydGFudDt9IC4tcHQzIHtwYWRkaW5nLXRvcDozcHghaW1wb3J0YW50O30gLi1wdDQge3BhZGRpbmctdG9wOjRweCFpbXBvcnRhbnQ7fSAuLXB0NSB7cGFkZGluZy10b3A6NXB4IWltcG9ydGFudDt9IC4tcHQ2IHtwYWRkaW5nLXRvcDo2cHghaW1wb3J0YW50O30gLi1wdDcge3BhZGRpbmctdG9wOjdweCFpbXBvcnRhbnQ7fSAuLXB0OCB7cGFkZGluZy10b3A6OHB4IWltcG9ydGFudDt9IC4tcHQ5IHtwYWRkaW5nLXRvcDo5cHghaW1wb3J0YW50O30gLi1wdDEwIHtwYWRkaW5nLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tcHQxNSB7cGFkZGluZy10b3A6MTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAge3BhZGRpbmctdG9wOjIwcHghaW1wb3J0YW50O30gLi1wdDI1IHtwYWRkaW5nLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tcHQzMCB7cGFkZGluZy10b3A6MzBweCFpbXBvcnRhbnQ7fSAuLXB0MzUge3BhZGRpbmctdG9wOjM1cHghaW1wb3J0YW50O30gLi1wdDQwIHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tcHQ0NSB7cGFkZGluZy10b3A6NDVweCFpbXBvcnRhbnQ7fSAuLXB0NTAge3BhZGRpbmctdG9wOjUwcHghaW1wb3J0YW50O30gLi1wdDU1IHtwYWRkaW5nLXRvcDo1NXB4IWltcG9ydGFudDt9IC4tcHQyMDAge3BhZGRpbmctdG9wOjIwMHB4IWltcG9ydGFudDt9IC4tcGIwIHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDt9IC4tcGIxIHtwYWRkaW5nLWJvdHRvbToxcHghaW1wb3J0YW50O30gLi1wYjIge3BhZGRpbmctYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLXBiMyB7cGFkZGluZy1ib3R0b206M3B4IWltcG9ydGFudDt9IC4tcGI0IHtwYWRkaW5nLWJvdHRvbTo0cHghaW1wb3J0YW50O30gLi1wYjUge3BhZGRpbmctYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLXBiNiB7cGFkZGluZy1ib3R0b206NnB4IWltcG9ydGFudDt9IC4tcGI3IHtwYWRkaW5nLWJvdHRvbTo3cHghaW1wb3J0YW50O30gLi1wYjgge3BhZGRpbmctYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLXBiOSB7cGFkZGluZy1ib3R0b206OXB4IWltcG9ydGFudDt9IC4tcGIxMCB7cGFkZGluZy1ib3R0b206MTBweCFpbXBvcnRhbnQ7fSAuLXBiMTUge3BhZGRpbmctYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1wYjIwIHtwYWRkaW5nLWJvdHRvbToyMHB4IWltcG9ydGFudDt9IC4tcGIyNSB7cGFkZGluZy1ib3R0b206MjVweCFpbXBvcnRhbnQ7fSAuLXBiMzAge3BhZGRpbmctYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1wYjQwIHtwYWRkaW5nLWJvdHRvbTo0MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMCwtcmFkaXVzMCwtcmFkMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMxLC1yYWRpdXMxLC1yYWQxIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czIsLXJhZGl1czIsLXJhZDIge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMywtcmFkaXVzMywtcmFkMyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM0LC1yYWRpdXM0LC1yYWQ0IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czUsLXJhZGl1czUsLXJhZDUge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNiwtcmFkaXVzNiwtcmFkNiB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM3LC1yYWRpdXM3LC1yYWQ3IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czgsLXJhZGl1czgsLXJhZDgge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzOSwtcmFkaXVzOSwtcmFkOSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMxMCwtcmFkaXVzMTAsLXJhZDEwIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAuLW1hdXRvIHttYXJnaW46YXV0byFpbXBvcnRhbnQ7fSAuLW0wIC4tbm9tYXJnaW5zLC4tbm9tYXJnaW57bWFyZ2luOjAhaW1wb3J0YW50O30gLi1tMSB7bWFyZ2luOjFweCFpbXBvcnRhbnQ7fSAuLW0yIHttYXJnaW46MnB4IWltcG9ydGFudDt9IC4tbTMge21hcmdpbjozcHghaW1wb3J0YW50O30gLi1tNCB7bWFyZ2luOjRweCFpbXBvcnRhbnQ7fSAuLW01IHttYXJnaW46NXB4IWltcG9ydGFudDt9IC4tbTYge21hcmdpbjo2cHghaW1wb3J0YW50O30gLi1tNyB7bWFyZ2luOjdweCFpbXBvcnRhbnQ7fSAuLW04IHttYXJnaW46OHB4IWltcG9ydGFudDt9IC4tbTkge21hcmdpbjo5cHghaW1wb3J0YW50O30gLi1tMTAge21hcmdpbjoxMHB4IWltcG9ydGFudDt9IC4tbTE1IHttYXJnaW46MTVweCFpbXBvcnRhbnQ7fSAuLW0yMCB7bWFyZ2luOjIwcHghaW1wb3J0YW50O30gLi1tMjIge21hcmdpbjoyMnB4IWltcG9ydGFudDt9IC4tbTI1IHttYXJnaW46MjVweCFpbXBvcnRhbnQ7fSAuLW01cCB7bWFyZ2luOjUlIWltcG9ydGFudDt9IC4tbTEwcCB7bWFyZ2luOjEwJSFpbXBvcnRhbnQ7fSAuLW0xNXAge21hcmdpbjoxNSUhaW1wb3J0YW50O30gLi1tMjBwIHttYXJnaW46MjAlIWltcG9ydGFudDt9IC4tbTI1cCB7bWFyZ2luOjI1JSFpbXBvcnRhbnQ7fSAuLW1sYXV0byB7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7fSAuLW1sMCB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLW1sMSB7bWFyZ2luLWxlZnQ6MXB4IWltcG9ydGFudDt9IC4tbWwyIHttYXJnaW4tbGVmdDoycHghaW1wb3J0YW50O30gLi1tbDMge21hcmdpbi1sZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLW1sNCB7bWFyZ2luLWxlZnQ6NHB4IWltcG9ydGFudDt9IC4tbWw1IHttYXJnaW4tbGVmdDo1cHghaW1wb3J0YW50O30gLi1tbDYge21hcmdpbi1sZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLW1sNyB7bWFyZ2luLWxlZnQ6N3B4IWltcG9ydGFudDt9IC4tbWw4IHttYXJnaW4tbGVmdDo4cHghaW1wb3J0YW50O30gLi1tbDkge21hcmdpbi1sZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLW1sMTAge21hcmdpbi1sZWZ0OjEwcHghaW1wb3J0YW50O30gLi1tbDE1IHttYXJnaW4tbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tbWwyMCB7bWFyZ2luLWxlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1sMjUge21hcmdpbi1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1tbDI3IHttYXJnaW4tbGVmdDoyN3B4IWltcG9ydGFudDt9IC4tbWwzMCB7bWFyZ2luLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLW1sNTAge21hcmdpbi1sZWZ0OjUwcHghaW1wb3J0YW50O30gLi1tbDgwIHttYXJnaW4tbGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbWwxMDAge21hcmdpbi1sZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbWwxMzAge21hcmdpbi1sZWZ0OjEzMHB4IWltcG9ydGFudDt9IC4tbWwxNTAge21hcmdpbi1sZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbWwycCB7bWFyZ2luLWxlZnQ6MiUhaW1wb3J0YW50O30gLi1tbDNwIHttYXJnaW4tbGVmdDozJSFpbXBvcnRhbnQ7fSAuLW1sNXAge21hcmdpbi1sZWZ0OjUlIWltcG9ydGFudDt9IC4tbWwxMHAge21hcmdpbi1sZWZ0OjEwJSFpbXBvcnRhbnQ7fSAuLW1sMTVwIHttYXJnaW4tbGVmdDoxNSUhaW1wb3J0YW50O30gLi1tbDIwcCB7bWFyZ2luLWxlZnQ6MjAlIWltcG9ydGFudDt9IC4tbWwyNXAge21hcmdpbi1sZWZ0OjI1JSFpbXBvcnRhbnQ7fSAuLW1yYXV0byB7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50O30gLi1tcjAge21hcmdpbi1yaWdodDowIWltcG9ydGFudDt9IC4tbXIxIHttYXJnaW4tcmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tbXIyIHttYXJnaW4tcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tbXIzIHttYXJnaW4tcmlnaHQ6M3B4IWltcG9ydGFudDt9IC4tbXI0IHttYXJnaW4tcmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tbXI1IHttYXJnaW4tcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tbXI2IHttYXJnaW4tcmlnaHQ6NnB4IWltcG9ydGFudDt9IC4tbXI3IHttYXJnaW4tcmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tbXI4IHttYXJnaW4tcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tbXI5IHttYXJnaW4tcmlnaHQ6OXB4IWltcG9ydGFudDt9IC4tbXIxMCB7bWFyZ2luLXJpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1tcjE1IHttYXJnaW4tcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1yMjAge21hcmdpbi1yaWdodDoyMHB4IWltcG9ydGFudDt9IC4tbXIyNSB7bWFyZ2luLXJpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1tcjMwIHttYXJnaW4tcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLW1yMzUge21hcmdpbi1yaWdodDozNXB4IWltcG9ydGFudDt9IC4tbXI0MCB7bWFyZ2luLXJpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1tcjQ1IHttYXJnaW4tcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLW1yNTAge21hcmdpbi1yaWdodDo1MHB4IWltcG9ydGFudDt9IC4tbXIxMDAge21hcmdpbi1yaWdodDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1yMnAge21hcmdpbi1yaWdodDoyJSFpbXBvcnRhbnQ7fSAuLW1yM3Age21hcmdpbi1yaWdodDozJSFpbXBvcnRhbnQ7fSAuLW1yNXAge21hcmdpbi1yaWdodDo1JSFpbXBvcnRhbnQ7fSAuLW1yMTBwIHttYXJnaW4tcmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tbXIxNXAge21hcmdpbi1yaWdodDoxNSUhaW1wb3J0YW50O30gLi1tcjIwcCB7bWFyZ2luLXJpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLW1yMjVwIHttYXJnaW4tcmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tbXRhdXRvIHttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50O30gLi1tdC03e21hcmdpbi10b3A6LTdweCFpbXBvcnRhbnQ7fSAuLW10MHttYXJnaW4tdG9wOjAhaW1wb3J0YW50O30gLi1tdDEge21hcmdpbi10b3A6MXB4IWltcG9ydGFudDt9IC4tbXQyIHttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnQ7fSAuLW10MyB7bWFyZ2luLXRvcDozcHghaW1wb3J0YW50O30gLi1tdDQge21hcmdpbi10b3A6NHB4IWltcG9ydGFudDt9IC4tbXQ1IHttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnQ7fSAuLW10NiB7bWFyZ2luLXRvcDo2cHghaW1wb3J0YW50O30gLi1tdDcge21hcmdpbi10b3A6N3B4IWltcG9ydGFudDt9IC4tbXQ4IHttYXJnaW4tdG9wOjhweCFpbXBvcnRhbnQ7fSAuLW10OSB7bWFyZ2luLXRvcDo5cHghaW1wb3J0YW50O30gLi1tdDEwIHttYXJnaW4tdG9wOjEwcHghaW1wb3J0YW50O30gLi1tdDExIHttYXJnaW4tdG9wOjExcHghaW1wb3J0YW50O30gLi1tdDEyIHttYXJnaW4tdG9wOjEycHghaW1wb3J0YW50O30gLi1tdDEzIHttYXJnaW4tdG9wOjEzcHghaW1wb3J0YW50O30gLi1tdDE0IHttYXJnaW4tdG9wOjE0cHghaW1wb3J0YW50O30gLi1tdDE1IHttYXJnaW4tdG9wOjE1cHghaW1wb3J0YW50O30gLi1tdDIwIHttYXJnaW4tdG9wOjIwcHghaW1wb3J0YW50O30gLi1tdDI1IHttYXJnaW4tdG9wOjI1cHghaW1wb3J0YW50O30gLi1tdDI3IHttYXJnaW4tdG9wOjI3cHghaW1wb3J0YW50O30gLi1tdDMwIHttYXJnaW4tdG9wOjMwcHghaW1wb3J0YW50O30gLi1tdDM1IHttYXJnaW4tdG9wOjM1cHghaW1wb3J0YW50O30gLi1tdDQwIHttYXJnaW4tdG9wOjQwcHghaW1wb3J0YW50O30gLi1tdDUwIHttYXJnaW4tdG9wOjUwcHghaW1wb3J0YW50O30gLi1tdDExNSB7bWFyZ2luLXRvcDoxMTVweCFpbXBvcnRhbnQ7fSAuLW10MjAwIHttYXJnaW4tdG9wOjIwMHB4IWltcG9ydGFudDt9IC4tbWJhdXRvIHttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50O30gLi1tYjAge21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW1iMSB7bWFyZ2luLWJvdHRvbToxcHghaW1wb3J0YW50O30gLi1tYjIge21hcmdpbi1ib3R0b206MnB4IWltcG9ydGFudDt9IC4tbWIzIHttYXJnaW4tYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLW1iNCB7bWFyZ2luLWJvdHRvbTo0cHghaW1wb3J0YW50O30gLi1tYjUge21hcmdpbi1ib3R0b206NXB4IWltcG9ydGFudDt9IC4tbWI2IHttYXJnaW4tYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLW1iNyB7bWFyZ2luLWJvdHRvbTo3cHghaW1wb3J0YW50O30gLi1tYjgge21hcmdpbi1ib3R0b206OHB4IWltcG9ydGFudDt9IC4tbWI5IHttYXJnaW4tYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLW1iMTAge21hcmdpbi1ib3R0b206MTBweCFpbXBvcnRhbnQ7fSAuLW1iMTUge21hcmdpbi1ib3R0b206MTVweCFpbXBvcnRhbnQ7fSAuLW1iMjAge21hcmdpbi1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLW1iMjUge21hcmdpbi1ib3R0b206MjVweCFpbXBvcnRhbnQ7fSAuLW1iMzAge21hcmdpbi1ib3R0b206MzBweCFpbXBvcnRhbnQ7fSAuLW1iNTAge21hcmdpbi1ib3R0b206NTBweCFpbXBvcnRhbnQ7fSAuLXRvcC0xMCwgLi10LTEwIHt0b3A6LTEwcHghaW1wb3J0YW50O30gLi10b3AwLCAuLXQwIHt0b3A6MHB4IWltcG9ydGFudDt9IC4tdG9wMSwgLi10MSB7dG9wOjFweCFpbXBvcnRhbnQ7fSAuLXRvcDIsIC4tdDIge3RvcDoycHghaW1wb3J0YW50O30gLi10b3AzLCAuLXQzIHt0b3A6M3B4IWltcG9ydGFudDt9IC4tdG9wNCwgLi10NCB7dG9wOjRweCFpbXBvcnRhbnQ7fSAuLXRvcDUsIC4tdDUge3RvcDo1cHghaW1wb3J0YW50O30gLi10b3A2LCAuLXQ2IHt0b3A6NnB4IWltcG9ydGFudDt9IC4tdG9wNywgLi10NyB7dG9wOjdweCFpbXBvcnRhbnQ7fSAuLXRvcDgsIC4tdDgge3RvcDo4cHghaW1wb3J0YW50O30gLi10b3A5LCAuLXQ5IHt0b3A6OXB4IWltcG9ydGFudDt9IC4tdG9wMTAsIC4tdDEwIHt0b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXRvcDE1LCAuLXQxNSB7dG9wOjE1cHghaW1wb3J0YW50O30gLi10b3AyMCwgLi10MjAge3RvcDoyMHB4IWltcG9ydGFudDt9IC4tdG9wMjUsIC4tdDI1e3RvcDoyNXB4IWltcG9ydGFudDt9IC4tdG9wMzAsIC4tdDMwIHt0b3A6MzBweCFpbXBvcnRhbnQ7fSAuLXRvcDM1LCAuLXQzNSB7dG9wOjM1cHghaW1wb3J0YW50O30gLi10b3A0MCwgLi10NDAge3RvcDo0MHB4IWltcG9ydGFudDt9IC4tdG9wNDUsIC4tdDQ1IHt0b3A6NDVweCFpbXBvcnRhbnQ7fSAuLXRvcDUwLCAuLXQ1MCB7dG9wOjUwcHghaW1wb3J0YW50O30gLi10b3AxMDAsIC4tdDEwMCB7dG9wOjEwMHB4IWltcG9ydGFudDt9IC4tdG9wMjAwLCAuLXQyMDAge3RvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDVwLCAuLXQ1cCB7dG9wOjUlIWltcG9ydGFudDt9IC4tdG9wMTBwLCAuLXQxMHAge3RvcDoxMCUhaW1wb3J0YW50O30gLi10b3AxNXAsIC4tdDE1cCB7dG9wOjE1JSFpbXBvcnRhbnQ7fSAuLXRvcDIwcCwgLi10MjBwIHt0b3A6MjAlIWltcG9ydGFudDt9IC4tdG9wMjVwLCAuLXQyNXAge3RvcDoyNSUhaW1wb3J0YW50O30gLi10b3A1MHAsIC4tdDUwcCB7dG9wOjUwJSFpbXBvcnRhbnQ7fSAuLXRvcDEwMHAsIC4tdDEwMHAge3RvcDoxMDAlIWltcG9ydGFudDt9IC4tbGVmdDAsIC4tbDAge2xlZnQ6MHB4IWltcG9ydGFudDt9IC4tbGVmdDEsIC4tbDEge2xlZnQ6MXB4IWltcG9ydGFudDt9IC4tbGVmdDIsIC4tbDIge2xlZnQ6MnB4IWltcG9ydGFudDt9IC4tbGVmdDMsIC4tbDMge2xlZnQ6M3B4IWltcG9ydGFudDt9IC4tbGVmdDQsIC4tbDQge2xlZnQ6NHB4IWltcG9ydGFudDt9IC4tbGVmdDUsIC4tbDUge2xlZnQ6NXB4IWltcG9ydGFudDt9IC4tbGVmdDYsIC4tbDYge2xlZnQ6NnB4IWltcG9ydGFudDt9IC4tbGVmdDcsIC4tbDcge2xlZnQ6N3B4IWltcG9ydGFudDt9IC4tbGVmdDgsIC4tbDgge2xlZnQ6OHB4IWltcG9ydGFudDt9IC4tbGVmdDksIC4tbDkge2xlZnQ6OXB4IWltcG9ydGFudDt9IC4tbGVmdDEwLCAuLWwxMCB7bGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1LCAuLWwxNSB7bGVmdDoxNXB4IWltcG9ydGFudDt9IC4tbGVmdDIwLCAuLWwyMCB7bGVmdDoyMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1LCAuLWwyNXtsZWZ0OjI1cHghaW1wb3J0YW50O30gLi1sZWZ0MzAsIC4tbDMwIHtsZWZ0OjMwcHghaW1wb3J0YW50O30gLi1sZWZ0MzUsIC4tbDM1IHtsZWZ0OjM1cHghaW1wb3J0YW50O30gLi1sZWZ0NDAsIC4tbDQwIHtsZWZ0OjQwcHghaW1wb3J0YW50O30gLi1sZWZ0NDUsIC4tbDQ1IHtsZWZ0OjQ1cHghaW1wb3J0YW50O30gLi1sZWZ0NTAsIC4tbDUwIHtsZWZ0OjUwcHghaW1wb3J0YW50O30gLi1sZWZ0NTUsIC4tbDU1IHtsZWZ0OjU1cHghaW1wb3J0YW50O30gLi1sZWZ0NjAsIC4tbDYwIHtsZWZ0OjYwcHghaW1wb3J0YW50O30gLi1sZWZ0NjUsIC4tbDY1IHtsZWZ0OjY1cHghaW1wb3J0YW50O30gLi1sZWZ0NzAsIC4tbDcwIHtsZWZ0OjcwcHghaW1wb3J0YW50O30gLi1sZWZ0NzUsIC4tbDc1IHtsZWZ0Ojc1cHghaW1wb3J0YW50O30gLi1sZWZ0ODAsIC4tbDgwIHtsZWZ0OjgwcHghaW1wb3J0YW50O30gLi1sZWZ0ODUsIC4tbDg1IHtsZWZ0Ojg1cHghaW1wb3J0YW50O30gLi1sZWZ0OTAsIC4tbDkwIHtsZWZ0OjkwcHghaW1wb3J0YW50O30gLi1sZWZ0OTUsIC4tbDk1IHtsZWZ0Ojk1cHghaW1wb3J0YW50O30gLi1sZWZ0MTAwLCAuLWwxMDAge2xlZnQ6MTAwcHghaW1wb3J0YW50O30gLi1sZWZ0MTUwLCAuLWwxNTAge2xlZnQ6MTUwcHghaW1wb3J0YW50O30gLi1sZWZ0MjAwLCAuLWwyMDAge2xlZnQ6MjAwcHghaW1wb3J0YW50O30gLi1sZWZ0MjUwLCAuLWwyNTAge2xlZnQ6MjUwcHghaW1wb3J0YW50O30gLi1sZWZ0MzAwLCAuLWwzMDAge2xlZnQ6MzAwcHghaW1wb3J0YW50O30gLi1sZWZ0NXAsIC4tbDVwIHtsZWZ0OjUlIWltcG9ydGFudDt9IC4tbGVmdDEwcCwgLi1sMTBwIHtsZWZ0OjEwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxNXAsIC4tbDE1cCB7bGVmdDoxNSUhaW1wb3J0YW50O30gLi1sZWZ0MjBwLCAuLWwyMHAge2xlZnQ6MjAlIWltcG9ydGFudDt9IC4tbGVmdDI1cCwgLi1sMjVwIHtsZWZ0OjI1JSFpbXBvcnRhbnQ7fSAuLWxlZnQ0MHAsIC4tbDQwcCB7bGVmdDo0MCUhaW1wb3J0YW50O30gLi1sZWZ0NTBwLCAuLWw1MHAge2xlZnQ6NTAlIWltcG9ydGFudDt9IC4tbGVmdDEwMHAsIC4tbDEwMHAge2xlZnQ6MTAwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MCwgLi1yMCB7cmlnaHQ6MHB4IWltcG9ydGFudDt9IC4tcmlnaHQxLCAuLXIxIHtyaWdodDoxcHghaW1wb3J0YW50O30gLi1yaWdodDIsIC4tcjIge3JpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MywgLi1yMyB7cmlnaHQ6M3B4IWltcG9ydGFudDt9IC4tcmlnaHQ0LCAuLXI0IHtyaWdodDo0cHghaW1wb3J0YW50O30gLi1yaWdodDUsIC4tcjUge3JpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NiwgLi1yNiB7cmlnaHQ6NnB4IWltcG9ydGFudDt9IC4tcmlnaHQ3LCAuLXI3IHtyaWdodDo3cHghaW1wb3J0YW50O30gLi1yaWdodDgsIC4tcjgge3JpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OSwgLi1yOSB7cmlnaHQ6OXB4IWltcG9ydGFudDt9IC4tcmlnaHQxMCwgLi1yMTAge3JpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1yaWdodDE1LCAuLXIxNSB7cmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjAsIC4tcjIwIHtyaWdodDoyMHB4IWltcG9ydGFudDt9IC4tcmlnaHQyNSwgLi1yMjUge3JpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1yaWdodDMwLCAuLXIzMCB7cmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MzUsIC4tcjM1IHtyaWdodDozNXB4IWltcG9ydGFudDt9IC4tcmlnaHQ0MCwgLi1yNDAge3JpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1yaWdodDQ1LCAuLXI0NSB7cmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTAsIC4tcjUwIHtyaWdodDo1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1NSwgLi1yNTUge3JpZ2h0OjU1cHghaW1wb3J0YW50O30gLi1yaWdodDYwLCAuLXI2MCB7cmlnaHQ6NjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NjUsIC4tcjY1IHtyaWdodDo2NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ3MCwgLi1yNzAge3JpZ2h0OjcwcHghaW1wb3J0YW50O30gLi1yaWdodDc1LCAuLXI3NSB7cmlnaHQ6NzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODAsIC4tcjgwIHtyaWdodDo4MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ4NSwgLi1yODUge3JpZ2h0Ojg1cHghaW1wb3J0YW50O30gLi1yaWdodDkwLCAuLXI5MCB7cmlnaHQ6OTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OTUsIC4tcjk1IHtyaWdodDo5NXB4IWltcG9ydGFudDt9IC4tcmlnaHQxMDAsIC4tcjEwMCB7cmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1yaWdodDE1MCwgLi1yMTUwIHtyaWdodDoxNTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjAwLCAuLXIyMDAge3JpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQyNTAsIC4tcjI1MCB7cmlnaHQ6MjUwcHghaW1wb3J0YW50O30gLi1yaWdodDVwLCAuLXI1cCB7cmlnaHQ6NSUhaW1wb3J0YW50O30gLi1yaWdodDEwcCwgLi1yMTBwIHtyaWdodDoxMCUhaW1wb3J0YW50O30gLi1yaWdodDE1cCwgLi1yMTVwIHtyaWdodDoxNSUhaW1wb3J0YW50O30gLi1yaWdodDIwcCwgLi1yMjBwIHtyaWdodDoyMCUhaW1wb3J0YW50O30gLi1yaWdodDI1cCwgLi1yMjVwIHtyaWdodDoyNSUhaW1wb3J0YW50O30gLi1yaWdodDUwcCwgLi1yNTBwIHtyaWdodDo1MCUhaW1wb3J0YW50O30gLi1yaWdodDEwMHAsIC4tcjEwMHAge3JpZ2h0OjEwMCUhaW1wb3J0YW50O30gLi16LWluZGV4OTl7ei1pbmRleDo5OSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDB7ei1pbmRleDoxMDAhaW1wb3J0YW50O30gLi16LWluZGV4MTAxe3otaW5kZXg6MTAxIWltcG9ydGFudDt9IC4tei1pbmRleDEwMDEsIC56aW5kZXgxMDAxeyB6LWluZGV4OjEwMDEhaW1wb3J0YW50OyB9IC4tei1pbmRleDM2MDAxLCAuemluZGV4MzYwMDF7IHotaW5kZXg6MzYwMDEhaW1wb3J0YW50OyB9IC4tbm8tYm9yZGVyLXNwYWNpbmd7IGJvcmRlci1zcGFjaW5nOjAhaW1wb3J0YW50OyB9IC4tdGFibGV7IGNlbGxwYWRkaW5nOjAhaW1wb3J0YW50OyBjZWxsc3BhY2luZzowIWltcG9ydGFudDsgYm9yZGVyOjAhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0aGVhZCB0aCB7IGJhY2tncm91bmQ6I2MzZDlmZiFpbXBvcnRhbnQ7IH0gdGFibGUuLXRhYmxlIHRyIHRoLCB0YWJsZS4tdGFibGUgdHIgdGQgeyBwYWRkaW5nOjRweCAxMHB4IDRweCA1cHghaW1wb3J0YW50OyB9IHRyLi1ib3JkZXItYm90dG9tIHRkLCB0ci4tYm9yZGVyLWJvdHRvbSB0aCB7IGJvcmRlci1ib3R0b206MXB0IHNvbGlkIGJsYWNrIWltcG9ydGFudDsgfSAtd2hpdGUtc3BhY2Utbm93cmFwIHt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O30gLi1jdXJzb3ItYXV0byB7IGN1cnNvcjphdXRvOyB9IC4tY3Vyc29yLWRlZmF1bHQgeyBjdXJzb3I6ZGVmYXVsdDsgfSAuLWN1cnNvci1ub25lIHsgY3Vyc29yOm5vbmU7IH0gLi1jdXJzb3ItY29udGV4dC1tZW51IHsgY3Vyc29yOmNvbnRleHQtbWVudTsgfSAuLWN1cnNvci1oZWxwIHsgY3Vyc29yOmhlbHA7IH0gLi1jdXJzb3ItcG9pbnRlciB7IGN1cnNvcjpwb2ludGVyOyB9IC4tY3Vyc29yLXByb2dyZXNzIHsgY3Vyc29yOnByb2dyZXNzOyB9IC4tY3Vyc29yLXdhaXQgeyBjdXJzb3I6d2FpdDsgfSAuLWN1cnNvci1jZWxsIHsgY3Vyc29yOmNlbGw7IH0gLi1jdXJzb3ItY3Jvc3NoYWlyIHsgY3Vyc29yOmNyb3NzaGFpcjsgfSAuLWN1cnNvci10ZXh0IHsgY3Vyc29yOnRleHQ7IH0gLi1jdXJzb3ItdmVydGljYWwtdGV4dCB7IGN1cnNvcjp2ZXJ0aWNhbC10ZXh0OyB9IC4tY3Vyc29yLWFsaWFzIHsgY3Vyc29yOmFsaWFzOyB9IC4tY3Vyc29yLWNvcHkgeyBjdXJzb3I6Y29weTsgfSAuLWN1cnNvci1tb3ZlIHsgY3Vyc29yOm1vdmU7IH0gLi1jdXJzb3Itbm8tZHJvcCB7IGN1cnNvcjpuby1kcm9wOyB9IC4tY3Vyc29yLW5vdC1hbGxvd2VkIHsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC4tY3Vyc29yLWFsbC1zY3JvbGwgeyBjdXJzb3I6YWxsLXNjcm9sbDsgfSAuLWN1cnNvci1jb2wtcmVzaXplIHsgY3Vyc29yOmNvbC1yZXNpemU7IH0gLi1jdXJzb3Itcm93LXJlc2l6ZSB7IGN1cnNvcjpyb3ctcmVzaXplOyB9IC4tY3Vyc29yLW4tcmVzaXplIHsgY3Vyc29yOm4tcmVzaXplOyB9IC4tY3Vyc29yLWUtcmVzaXplIHsgY3Vyc29yOmUtcmVzaXplOyB9IC4tY3Vyc29yLXMtcmVzaXplIHsgY3Vyc29yOnMtcmVzaXplOyB9IC4tY3Vyc29yLXctcmVzaXplIHsgY3Vyc29yOnctcmVzaXplOyB9IC4tY3Vyc29yLW5zLXJlc2l6ZSB7IGN1cnNvcjpucy1yZXNpemU7IH0gLi1jdXJzb3ItZXctcmVzaXplIHsgY3Vyc29yOmV3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZS1yZXNpemUgeyBjdXJzb3I6bmUtcmVzaXplOyB9IC4tY3Vyc29yLW53LXJlc2l6ZSB7IGN1cnNvcjpudy1yZXNpemU7IH0gLi1jdXJzb3Itc2UtcmVzaXplIHsgY3Vyc29yOnNlLXJlc2l6ZTsgfSAuLWN1cnNvci1zdy1yZXNpemUgeyBjdXJzb3I6c3ctcmVzaXplOyB9IC4tY3Vyc29yLW5lc3ctcmVzaXplIHsgY3Vyc29yOm5lc3ctcmVzaXplOyB9IC4tY3Vyc29yLW53c2UtcmVzaXplIHsgY3Vyc29yOm53c2UtcmVzaXplOyB9IC4tZm9udC1zaXplMCwgLi1mczB7IGZvbnQtc2l6ZTowIWltcG9ydGFudDt9IC4tZm9udC1zaXplMSwgLi1mczF7IGZvbnQtc2l6ZToxcHghaW1wb3J0YW50O30gLi1mb250LXNpemUyLCAuLWZzMnsgZm9udC1zaXplOjJweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMsIC4tZnMzeyBmb250LXNpemU6M3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNCwgLi1mczR7IGZvbnQtc2l6ZTo0cHghaW1wb3J0YW50O30gLi1mb250LXNpemU1LCAuLWZzNXsgZm9udC1zaXplOjVweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTYsIC4tZnM2eyBmb250LXNpemU6NnB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNywgLi1mczd7IGZvbnQtc2l6ZTo3cHghaW1wb3J0YW50O30gLi1mb250LXNpemU4LCAuLWZzOHsgZm9udC1zaXplOjAuNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemU5LCAuLWZzOXsgZm9udC1zaXplOjAuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEwLCAuLWZzMTB7IGZvbnQtc2l6ZTowLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMSwgLi1mczExeyBmb250LXNpemU6MC42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTIsIC4tZnMxMnsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTMsIC4tZnMxM3sgZm9udC1zaXplOjAuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE0LCAuLWZzMTR7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNSwgLi1mczE1eyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTYsIC4tZnMxNnsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTcsIC4tZnMxN3sgZm9udC1zaXplOjEuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE4LCAuLWZzMTh7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOSwgLi1mczE5eyBmb250LXNpemU6MS4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjAsIC4tZnMyMHsgZm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjEsIC4tZnMyMXsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIyLCAuLWZzMjJ7IGZvbnQtc2l6ZToxLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMywgLi1mczIzeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjQsIC4tZnMyNHsgZm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNSwgLi1mczI1eyBmb250LXNpemU6MS41NjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjYsIC4tZnMyNnsgZm9udC1zaXplOjEuNjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI3LCAuLWZzMjd7IGZvbnQtc2l6ZToxLjY4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyOCwgLi1mczI4eyBmb250LXNpemU6MS43NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyOSwgLi1mczI5eyBmb250LXNpemU6MS44MTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzAsIC4tZnMzMHsgZm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMxLCAuLWZzMzF7IGZvbnQtc2l6ZToxLjkzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMiwgLi1mczMyeyBmb250LXNpemU6MnJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMywgLi1mczMzeyBmb250LXNpemU6Mi4wNjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzQsIC4tZnMzNHsgZm9udC1zaXplOjIuMTI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM1LCAuLWZzMzV7IGZvbnQtc2l6ZToyLjE4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNiwgLi1mczM2eyBmb250LXNpemU6Mi4yNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNywgLi1mczM3eyBmb250LXNpemU6Mi4zMTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzgsIC4tZnMzOHsgZm9udC1zaXplOjIuMzc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM5LCAuLWZzMzl7IGZvbnQtc2l6ZToyLjQzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemU0MCwgLi1mczQweyBmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnQ7fSAuLXJlZC1saW5lLWgzNXsgaGVpZ2h0OjM1cHg7IG1hcmdpbi1ib3R0b206LTM1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTI1cHg7IH0gI2JyZWFkY3J1bWJzeyBmb250LXNpemU6MXJlbSA7IG1hcmdpbi1sZWZ0OjEwcHg7IG1hcmdpbi10b3A6OHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGNvbG9yOiM3NTc1NzU7IH0gLlVzZWRWZHAyTW9iaWxlICNicmVhZGNydW1ic3sgZm9udC1zaXplOjAuOXJlbTsgY29sb3I6IzIyMjIyMjsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzoxMHB4OyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6MS4yNXJlbTsgfSAjYnJlYWRjcnVtYnMgYXsgY29sb3I6Izc1NzU3NTsgfSAjY2FycHJvb2ZfbWFpbi5jYXJwcm9vZl9tYWlueyB3aWR0aDozNDBweDsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoyMHB4OyBkaXNwbGF5Om5vbmU7IHotaW5kZXg6OTk5OTsgYm94LXNpemluZzpib3JkZXItYm94OyBib3JkZXItcmFkaXVzOjVweDsgcG9zaXRpb246Zml4ZWQ7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyBsZWZ0OjUwJTsgdG9wOjUwJTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZDbG9zZUJ1dHRvbnsgZmxvYXQ6cmlnaHQ7IHRvcDowOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNmZmY7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IGZsb2F0OmxlZnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTHsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IFVMIExJIHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwIDVweCAwOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9maWVsZHsgbWFyZ2luLWJvdHRvbTo3cHg7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWVzc2FnZXsgZm9udC1zaXplOjFyZW07IGNvbG9yOiMwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZy1ib3R0b206MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjaW5uZXJQYWdlRGl2eyBkaXNwbGF5OnRhYmxlOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9sYWJlbHsgZm9udC1zaXplOjFyZW07IGNvbG9yOiM2NjY2NjY7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyB0ZXh0LWFsaWduOmxlZnQ7IHdpZHRoOjEwMCU7IGxpbmUtaGVpZ2h0OjI1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfaW5wdXR7IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjVweDsgYm9yZGVyOjFweCBzb2xpZCAjYjliZGMxOyB3aWR0aDoxMDAlOyBjb2xvcjojNzk3OTc5OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1ib3R0b206MTBweDsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0OmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjojRjRGNEY0OyBjb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXR7IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjVweDsgYm9yZGVyOjFweCBzb2xpZCAjYjliZGMxOyB3aWR0aDo0N3B4OyBtYXJnaW4tcmlnaHQ6NXB4OyBjb2xvcjojNzk3OTc5OyBib3JkZXItcmFkaXVzOjVweDsgfSAjY2FycHJvb2ZfbWFpbiAucGhvbmVJbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzAwMDAwMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uSUUgeyBib3JkZXI6MXB4IHNvbGlkICNDODNGNDE7IG1hcmdpbjoxMHB4IDEwcHggMTBweCAwOyBwYWRkaW5nOjNweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjYwcHg7IGNvbG9yOiNmZmY7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItdG9wLWNvbG9yOiNDODNGNDE7IGJvcmRlci1yaWdodC1jb2xvcjojQzgzRjQxOyBib3JkZXItYm90dG9tLWNvbG9yOiNDODNGNDE7IGJvcmRlci1sZWZ0LWNvbG9yOiNDODNGNDE7IGJvcmRlci10b3Atd2lkdGg6MXB4OyBib3JkZXItcmlnaHQtd2lkdGg6MXB4OyBib3JkZXItYm90dG9tLXdpZHRoOjFweDsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyBib3JkZXItdG9wLXN0eWxlOnNvbGlkOyBib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7IGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7IGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4OyBib3gtc2hhZG93OjBweCAycHggM3B4ICM2NjY7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgYmFja2dyb3VuZC1hdHRhY2htZW50OnNjcm9sbDsgYmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgYmFja2dyb3VuZC1zaXplOmF1dG87IGJhY2tncm91bmQtb3JpZ2luOnBhZGRpbmctYm94OyBiYWNrZ3JvdW5kLWNsaXA6Ym9yZGVyLWJveDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAwLCA2MywgNjUpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFSG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNDODNGNDE7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbiB7IGZvbnQtc2l6ZToxLjJyZW07IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjVweCAwIDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MXJlbTsgcGFkZGluZzoxMHB4IDE1cHg7IGN1cnNvcjpwb2ludGVyOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1zaGFkb3c6MCAtMXB4IDFweCAjNjQ3OTllOyBiYWNrZ3JvdW5kOiNiYjAwMDM7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjQzgzRjQxIDAlLCAjYmIwMDAzIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwJSAwJSwgMCUgMTAwJSwgZnJvbSgjQzgzRjQxKSwgdG8oI2JiMDAwMykpOyBib3JkZXI6MXB4IHNvbGlkICM1YzZmOTE7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6I0M4M0Y0MTsgY3Vyc29yOnBvaW50ZXI7IH0gI2NhcnByb29mX2RpYWxvZy1vdmVybGF5IHsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyB6LWluZGV4Ojk5OTg7IGRpc3BsYXk6bm9uZTsgfSAuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCB7IG1hcmdpbi1sZWZ0Oi0xNXB4OyBoZWlnaHQ6NTZweDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXJnaW4tdG9wOi0xMHB4OyBmbG9hdDpsZWZ0OyB9IC5wcmVQcm9jZXNzb3JIdG1sQ2FyUG9vZkFQSXJlcG9ydC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29yQ2FyUG9vZkFQSXJlcG9ydFY1LmNhcnByb29mLWJhZGdlLmRlc2t0b3AsIC5wcmVQcm9jZXNzb3JIdG1sQ2FyUHJvb2ZEZWZhdWx0LmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyB3aWR0aDoxMDZweDsgbWFyZ2luOjJweCA1cHggMCAwOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIGltZyB7IHdpZHRoOjUwJTsgZmxvYXQ6bGVmdDsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjowIDAgMTVweCAwOyB9ICNhc1BvcFVweyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHdpZHRoOjYwMHB4OyBwYWRkaW5nOjMwcHg7IGNvbG9yOiMwMDAwMDA7IHotaW5kZXg6MTAwMDAyMTsgfSAjYXNQb3BVcCAucG9wdXAtcG9saWN5IHsgbWluLWhlaWdodDoxMDBweDsgbWF4LWhlaWdodDoxNTBweDsgb3ZlcmZsb3cteTphdXRvOyB9IC5wb3B1cC1wb2xpY3kgYSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IH0gI2FzUG9wVXAgLmFzVGl0bGV7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OjsgbWFyZ2luLWJvdHRvbToyMHB4OyB9ICNhc1BvcFVwIC5idG5FeHBsaWNpdHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjcwcHg7IHdpZHRoOjEwMHB4OyB9ICNhc1BvcFVwIC5idG5JbXBsaWNpdHsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLXJpZ2h0OjcwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQucmV2ZWFsLW1vZGFsIHNwYW4uanFUcmFuc2Zvcm1SYWRpb1dyYXBwZXJ7IHBhZGRpbmc6MDsgbWFyZ2luOjZweCA0cHggMDsgfSAjYXNQdXJjaGFzZUludGVudCAucG9wdXAtcG9saWN5IHsgbWF4LWhlaWdodDoxNzBweDsgb3ZlcmZsb3cteTphdXRvOyBmb250LXdlaWdodDpib2xkOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc1BJVGl0bGV7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuNTYzcmVtIDsgbWFyZ2luLWJvdHRvbTowOyBwYWRkaW5nLWJvdHRvbToxMHB4OyBkaXNwbGF5OmJsb2NrOyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aVRleHR7IGNsZWFyOmJvdGg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9uc3sgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjVweDsgbWFyZ2luLWJvdHRvbTozcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9ucyBsaSB7IHBhZGRpbmc6MnB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGl7IGNsZWFyOmJvdGg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IGxpIGxhYmVseyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCAuYnV0dG9uRGVmYXVsdENvbG9yIHsgbWFyZ2luOjAgYXV0byA1cHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBzIHsgbGlzdC1zdHlsZTppbnNpZGUgbm9uZSBub25lOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyA+IGxpeyBiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2JiYmJiYjsgYm9yZGVyLXdpZHRoOjAgMXB4IDFweCAwOyBwYWRkaW5nOjE1cHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzbm8geyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHdpZHRoOjkwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzeyBwYWRkaW5nLWxlZnQ6OTBweDsgd2lkdGg6NzBweDsgfSAuY29uc2VudC5kaXNjbGFpbWVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6Ymx1ZTsgYWxpZ24tc2VsZjpjZW50ZXI7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgY3Vyc29yOmhlbHA7IH0gLmN1c3RvbTVfbGVmdCwgLmN1c3RvbTI1X2xlZnQsIC5jdXN0b20zNV9sZWZ0LCAuY3VzdG9tNDVfbGVmdCwgLmN0YV9wcmljZSwuY3RhX2NyZWRpdCwuY3RhX3Rlc3REcml2ZSwuY3RhX2V2YWwsLmN0YV9zdmNwcm9tbywuY3RhX3NlcnZpY2UsLmN0YV9wYXJ0cywuY3RhX3RpcmVzIHsgd2lkdGg6MjgwcHg7IGhlaWdodDo2MXB4OyBwYWRkaW5nOjAgMTVweCAwIDYwcHg7IGRpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyBjb2xvcjojMTkxOTE5OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ib3gyNS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wOyBiYWNrZ3JvdW5kLXNpemU6NTg5cHggNTUwcHg7IH0gLmN0YV9wcmljZS5hbHQ6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdDpob3ZlciwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyLCAuY3RhX2V2YWwuYWx0OmhvdmVyLCAuY3RhX3NlcnZpY2UuYWx0OmhvdmVyLCAuY3RhX3BhcnRzLmFsdDpob3ZlciwgLmN0YV90aXJlcy5hbHQ6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgY29sb3I6IzE5MTkxOTsgfSAuY3VzdG9tNTVfbGVmdCwgLmN1c3RvbTI1NV9sZWZ0LCAuY3VzdG9tMzU1X2xlZnQsIC5jdXN0b200NTVfbGVmdCwgLmN0YV9wcmljZS5hbHQsLmN0YV9wcmljZTpob3ZlciwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmUuYWx0LCAuY3RhX3Rlc3REcml2ZTpob3ZlciwgLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyLCAuY3RhX3NlcnZpY2UuYWx0LCAuY3RhX3NlcnZpY2U6aG92ZXIsIC5jdGFfcGFydHMuYWx0LCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzLmFsdCwgLmN0YV90aXJlczpob3ZlciwgLmN0YV9zdmNwcm9tby5hbHQsIC5jdGFfc3ZjcHJvbW86aG92ZXIgeyBjb2xvcjojRkZGRkZGOyB9IC5jdGFfcHJpY2UsIC5jdGFfcHJpY2UuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IH0gLmN0YV9wcmljZS5hbHQsIC5jdGFfcHJpY2U6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAwOyB9IC5jdGFfY3JlZGl0LCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTY3cHg7IH0gLmN0YV9jcmVkaXQuYWx0LCAuY3RhX2NyZWRpdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC02N3B4OyB9IC5jdGFfdGVzdERyaXZlLCAuY3RhX3Rlc3REcml2ZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTEzNXB4OyB9IC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMTM1cHg7IH0gLmN0YV9ldmFsLCAuY3RhX2V2YWwuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yMDRweDsgfSAuY3RhX2V2YWwuYWx0LCAuY3RhX2V2YWw6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMjA0cHg7IH0gLmN0YV9zdmNwcm9tbywgLmN0YV9zdmNwcm9tby5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTI3M3B4OyB9IC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTI3M3B4OyB9IC5jdGFfc2VydmljZSwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMzQxcHg7IH0gLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTM0MXB4OyB9IC5jdGFfcGFydHMsIC5jdGFfcGFydHMuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC00MTBweDsgfSAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC00MTBweDsgfSAuY3RhX3RpcmVzLCAuY3RhX3RpcmVzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDgycHg7IH0gLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDgycHg7IH0gLmN0YV9zZXJ2aWNlLmhpZGVfdGV4dCwgLmN0YV9wYXJ0cy5oaWRlX3RleHQsIC5jdGFfdGlyZXMuaGlkZV90ZXh0LCAuY3RhX3ByaWNlLmhpZGVfdGV4dCwgLmN0YV9jcmVkaXQuaGlkZV90ZXh0LCAuY3RhX3Rlc3REcml2ZS5oaWRlX3RleHQsIC5jdGFfZXZhbC5oaWRlX3RleHQsIC5jdGFfc3ZjcHJvbW8uaGlkZV90ZXh0IHsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8ucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5oZWFkaW5nQ2Fwc09uIGgxLCBib2R5LmhlYWRpbmdDYXBzT24gaDIsIGJvZHkuaGVhZGluZ0NhcHNPbiBoMywgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDItYWx0LCBib2R5LmhlYWRpbmdDYXBzT24gc3Bhbi5oMy1hbHQsIGJvZHkuaGVhZGluZ0NhcHNPbi5Vc2VkU3JwMiAuY2FyQmFzaWNzIC5jYXJUaXRsZSAuZGl2Q2l0eSwgYm9keS5oZWFkaW5nQ2Fwc09uIC52LWNhcmQgLmhlYWRlci1zZWN0aW9uIC5vcmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAjZm9vdGVyIC5vcmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAubG9nb2FyZWEgLmFkZHJlc3MgLmFkciBzcGFuOmZpcnN0LWNoaWxkLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAudml2LCBib2R5LmhlYWRpbmdDYXBzT24gLnNlYXJjaC1saW5rcy13cmFwcGVyIC5zZWFyY2gtbGluay10aXRsZSwgYm9keS5oZWFkaW5nQ2Fwc09uIC5wb3B1cGl6ZXJCb2R5ICN0cmFkZUluQmFyUG9wdXBfbGluZTEsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY2Fyb3Vzc2VsIC5jYXJvdXNlbFRhYnMgLnRhYi1sYWJlbCwgYm9keS5oZWFkaW5nQ2Fwc09uIC5mb3JtSGVhZGluZywgYm9keS5oZWFkaW5nQ2Fwc09uIC5jb21wYXJlLXZlaGljbGVzLWZvcm0tdGFibGUgLnRyaW0tcHJldmlldyAuY29tcGFyZS10aXRsZSB7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSAhaW1wb3J0YW50OyB9IGJvZHkuaGVhZGluZ0NhcHNPbiAuY2Fyb3Vzc2VsIC5jYXJvdXNlbFRhYnMgLnRhYi1sYWJlbCB7IGZvbnQtc2l6ZToxLjI1cmVtOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5oZWFkaW5nQ2Fwc09uIC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgaDIuZGVmYXVsdCB7IGZvbnQtc2l6ZToxLjRyZW0gIWltcG9ydGFudDsgfSB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgaDIgc3Bhbi5pY29uLCAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIHNwYW4uaDItYWx0IHNwYW4uaWNvbiB7IG1pbi13aWR0aDoyMHB4OyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtdGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDoyMHB4OyBmb250LXNpemU6MS4zZW07IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayAuY2VydC1zdWJ0aXRsZSB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjIwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6Izc3NzsgZm9udC1zaXplOjFlbTsgbWFyZ2luLXRvcDo1cHg7IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayAuY2VydC1oaWdobGlnaHRlZC12YWx1ZSB7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBjb2xvcjojRkZGOyBwYWRkaW5nOjExcHggMjBweCA5cHggMjBweDsgYm9yZGVyLXJhZGl1czozcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5Jbm5lckJveExheWVyLmRpdkNlcnRpZmljYXRpb25CbG9jay5pc09uZVJvdyBpbWcgeyBtYXgtd2lkdGg6YXV0byAhaW1wb3J0YW50OyB9IC51c2VkVmRwQWN0aW9ucyAuYWN0aW9uLWJveCBhLmJ0bi1kZWZhdWx0IHsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTBweCAhaW1wb3J0YW50OyB9IC5jdGFfcHJpY2U6aG92ZXIsIC5jdGFfY3JlZGl0OmhvdmVyLCAuY3RhX3Rlc3REcml2ZTpob3ZlciwgLmN0YV9ldmFsOmhvdmVyLCAuY3RhX3NlcnZpY2U6aG92ZXIsIC5jdGFfcGFydHM6aG92ZXIsIC5jdGFfdGlyZXM6aG92ZXIsIC5jdGFfc3ZjcHJvbW86aG92ZXJ7IG9wYWNpdHk6MC43NTsgfSAuc2VhcmNoX2NlcnRfZ2VuZXJpY3sgaGVpZ2h0OjQ0cHg7IG1hcmdpbjoycHggNXB4IDAgMDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDotMHB4OyB9ICNuZXdDYXJJblVzZWRQYWdleyBtYXJnaW4tdG9wOi0ycHg7IG1hcmdpbi1ib3R0b206NXB4OyBkaXNwbGF5Om5vbmU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODhfdG9weyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9yaWdodF9ib3g0X3RvcC5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODgwX21pZHsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nJykgcmVwZWF0LXkgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4OF9mb290ZXJfcXN7IGJhY2tncm91bmQgOnVybCgnL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50IH0gI25ld0NhckluVXNlZFBhZ2Vfc2NyYXRjaFByaWNleyB3aWR0aDoxMTBweDsgaGVpZ2h0OjM1cHg7IGZsb2F0OnJpZ2h0OyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDotODNweDsgZGlzcGxheTpub25lOyB9ICNuZXdDYXJJblVzZWRQYWdlX3RpdGxleyBkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTowLjkzOHJlbSA7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiwgdWwjY3JlZGl0X2Z1ZWx0eXBlLCB1bCNjcmVkaXRfYm9keVR5cGVzIHsgbGlzdC1zdHlsZTpub25lOyBmbG9hdDpsZWZ0OyB3aWR0aDozMyU7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4gbGkgPiBsYWJlbCwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gbGFiZWwsIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBsYWJlbHsgZGlzcGxheTpibG9jazsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0Om5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4gbGkgPiBkaXYsIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGRpdiwgdWwjY3JlZGl0X2JvZHlUeXBlcyBsaSA+IGRpdnsgZGlzcGxheTpibG9jazsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMwMDAwMDA7IGZsb2F0Om5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4gbGkgPiBsYWJlbCA+IHNwYW4sIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGxhYmVsID4gc3BhbiwgdWwjY3JlZGl0X2JvZHlUeXBlcyBsaSA+IGxhYmVsID4gc3BhbnsgbWFyZ2luLXJpZ2h0OjhweDsgbWFyZ2luLXRvcDowcHg7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbHsgZmxvYXQ6bGVmdDsgfSAjY3JlZGl0X3ZpX2FkdmFuY2VkIGxhYmVsIGRpdi5sYWJlbHsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MzJweDsgbWFyZ2luLXJpZ2h0OjZweDsgd2lkdGg6MjAwcHg7IHRleHQtYWxpZ246cmlnaHQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNDsgfSAuZGV0YWlsc19ib3ggLmJveDJfZGV0YWlsc19taWQgLmJveDJfZGV0YWlsc190ZXh0LCAuZGV0YWlsc19ib3ggLmJveDJfZGV0YWlsc19taWQgLmJveDJfZGV0YWlsc190ZXh0MjUgc3BhbiwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dCBzcGFueyBjb2xvcjojYjQ1ZjFhOyB9IC51c3AtY29sb3IgeyBjb2xvcjojYjQ1ZjFhOyB9IC5teWNhcm91c2VsX3RkeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDo1NjBweDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXJnaW4tbGVmdDozMHB4OyBtYXJnaW4tdG9wOjEwcHg7IH0gLnZlaGljbGVDYXJvdXNlbHsgd2lkdGg6MTkwcHg7IH0gLmRldGFpbHNfYm94LCAuZGV0YWlsc19ib3ggLmJveDJfZGV0YWlsc19taWRFeCB7IGJhY2tncm91bmQ6I2I1YjViNDsgfSAjZXh0Q29sb3JTZWxlY3QuZml4ZWRXaWR0aCAsICNpbnRDb2xvclNlbGVjdC5maXhlZFdpZHRoIHsgd2lkdGg6MjMwcHg7IH0gLmNvbG9yQ2hvaWNleyBoZWlnaHQ6MzFweDsgd2lkdGg6MzFweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtaW5kZW50Oi0yMDAwZW07IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgbWFyZ2luOjJweDsgY29sb3I6I2ZmZjsgfSAuY29sb3JDaG9pY2UuY2hvc2VuIHsgdGV4dC1pbmRlbnQ6MDsgfSAuY29sb3JDaG9pY2UudGFuIHsgYmFja2dyb3VuZC1jb2xvcjojZDJiNDhjOyB9IC5jb2xvckNob2ljZS5ibGFjayB7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgfSAuY29sb3JDaG9pY2UuZ29sZCB7IGJhY2tncm91bmQtY29sb3I6I2IyOTYwMDsgfSAuY29sb3JDaG9pY2UuYnJvd24geyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjMzMGU7IH0gLmNvbG9yQ2hvaWNlLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjojMDA5OTAwOyB9IC5jb2xvckNob2ljZS5ncmF5IHsgYmFja2dyb3VuZC1jb2xvcjojOTc5Nzk3OyB9IC5jb2xvckNob2ljZS5ncmV5IHsgYmFja2dyb3VuZC1jb2xvcjojOTc5Nzk3OyB9IC5jb2xvckNob2ljZS5vcmFuZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlNjk0MDA7IH0gLmNvbG9yQ2hvaWNlLnNpbHZlciB7IGJhY2tncm91bmQtY29sb3I6I2MwYzBjMDsgY29sb3I6IzAwMDAwMDsgfSAuY29sb3JDaG9pY2UubWF1dmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiNkNDczZDQ7IH0gLmNvbG9yQ2hvaWNlLnJlZCB7IGJhY2tncm91bmQtY29sb3I6I2NjMDAwMDsgfSAuY29sb3JDaG9pY2Uud2hpdGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6I2YwYzAwMDsgY29sb3I6IzAwMDAwMDsgfSAuY29sb3JDaG9pY2UuYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6IzE5MTljNDsgfSAuY29sb3JDaG9pY2UuY29wcGVyIHsgYmFja2dyb3VuZC1jb2xvcjojQUY0NzQ0OyB9IC5jb2xvckNob2ljZS5wdXJwbGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiM1MzE1QjI7IH0gLmxpZ2h0LWdyYXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM0YjRjNGM7IGNvbG9yOiMwMDAwMDA7fSBhLmNvbG9yQ2hvaWNlIHsgY29sb3I6I2ZmZjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gdHIuYm9yZGVyX2JvdHRvbV9saW5lIHRkLCB0ci5ib3JkZXJfYm90dG9tX2xpbmUgdGggeyBib3JkZXItYm90dG9tOjFwdCBzb2xpZCBibGFjazsgfSAuYm9yZGVyX2JveHsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3gtc2hhZG93Om5vbmU7IGNsZWFyOmJvdGg7IH0gLmhvbWVwYWdlIC5ib3JkZXJfYm94eyBib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50OyB9ICNob21lX3NvY2lhbFRpbWVsaW5leyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvbWVwYWdlLXNvY2lhbC1iZy1jb2xvcik7IH0gI2Zvb3RlcldyYXBwZXJ7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyBjbGVhcjpib3RoOyBwYWRkaW5nLXRvcDoxNXB4OyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IGNvbG9yOiNlZmYwZjA7IGJhY2tncm91bmQtY29sb3I6IzMyNDA0NzsgYmFja2dyb3VuZC1jb2xvcjojMzI0MDQ3OyB9ICNmb290ZXJXcmFwcGVyIHN2ZyB7IGZpbGw6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAuY3VzdG9tZm9ybV9zdWJtaXR7IG1hcmdpbi10b3A6MjBweDsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IC5zZWVPcHRpb25zeyBkaXNwbGF5Om5vbmU7IH0gLnN0cmlrZS1wcmljZSwgLnN0cmlrZS1wcmljZS1ibGFjaywgLnN0cmlrZS1wcmljZS13aGl0ZSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuc3RyaWtlLXByaWNlOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSwgLnN0cmlrZS1wcmljZS13aGl0ZTo6YmVmb3JlIHsgY29udGVudDoiIjsgaGVpZ2h0OjJweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0MCU7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCUgMDsgd2lkdGg6MTAwJTsgfSAuc3RyaWtlLXByaWNlLi10aGluOjpiZWZvcmV7IGhlaWdodDoxcHg7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlIHsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICMwMDA7IH0gLnN0cmlrZS1wcmljZS1ibGFjazo6YmVmb3JlIHsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIGJsYWNrOyB9IC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCB3aGl0ZTsgfSAuYmx1ci1wcmljZSB7IC13ZWJraXQtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1vei1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbXMtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW8tZmlsdGVyOmJsdXIoMC4xNWVtKTsgZmlsdGVyOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyBoZWlnaHQ9JzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGZpbHRlciBpZD0nc3ZnQmx1cicgeD0nLTUlJyB5PSctNSUnIHdpZHRoPScxMTAlJyBoZWlnaHQ9JzExMCUnPjxmZUdhdXNzaWFuQmx1ciBpbj0nU291cmNlR3JhcGhpYycgc3RkRGV2aWF0aW9uPSc1Jy8+I3N2Z0JsdXIiKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CbHVyKFBpeGVsUmFkaXVzPSc1Jyk7IGZpbHRlcjpibHVyKDAuMTVlbSk7IH0gLmxlZnRfYm94eyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBtYXJnaW4tdG9wOjEwcHggOyBwYWRkaW5nOjEwcHggMCAxMHB4OyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQsIC5idG4tc20sIC5idG4tbGcsLmN1c3RvbWZvcm1fc3VibWl0LC5zdWJtaXR7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IH0gLmJ0bi1kZWZhdWx0eyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDc7IH0gLmJ0bi1kZWZhdWx0LCAuc3VibWl0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0IHsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5idG4tc20sIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tc20sIGlucHV0W3R5cGU9c3VibWl0XS5idG4tc20geyBmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnQ7IHBhZGRpbmc6NHB4IDEwcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCFpbXBvcnRhbnQ7IH0gLmJ0bi1sZywgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1sZywgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1sZyB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IHBhZGRpbmc6MTJweCA1MHB4OyBib3JkZXItcmFkaXVzOjZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuYnRuLWRlZmF1bHQ6Zm9jdXMsIC5jdXN0b21mb3JtX3N1Ym1pdDpmb2N1cywgLmJ0bi1zbTpmb2N1cywgLmJ0bi1sZzpmb2N1cywgI2V4aXRfcG9wdXBfeWVzOmZvY3VzLCAjZXhpdF9wb3B1cF9ubzpmb2N1cyB7IG91dGxpbmU6bm9uZTsgfSAuYnRuLWRlZmF1bHQuYXBwbHktY3JlZGl0IHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgd29yZC13cmFwOm5vcm1hbDsgd2lkdGg6MTAwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjNweCA1cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAuYnRuLWRlZmF1bHQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHR7IGZvbnQtc2l6ZTowLjhyZW07IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLC5idG4tbGcsIC5zdWJtaXQsICNzbGlkZWl0IGlucHV0LnNlbmQsIC5jdXN0b21mb3JtX3N1Ym1pdCB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IHRleHQtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LmJ0bi1iZy1zYW1lIHsgYm9yZGVyLWNvbG9yOiMzMjQwNDc7IH0gLmJ0bi1kZWZhdWx0LmJ0bi1iZy1zYW1lOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiNlMGUwZTA7IH0gLmJ0bi1kZWZhdWx0OmhvdmVyLCAuY3VzdG9tZm9ybV9zdWJtaXQ6aG92ZXIsIC5idG4tc206aG92ZXIsIC5idG4tbGc6aG92ZXIsIC5zdWJtaXQ6aG92ZXIsICNzbGlkZWl0IGlucHV0LnNlbmQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5wcm9tb2NvbG9yLCAuYnRuLXNtLnByb21vY29sb3IsIC5idG4tbGcucHJvbW9jb2xvciB7IGJhY2tncm91bmQtY29sb3I6I2I0NWYxYTsgYm9yZGVyOjFweCBzb2xpZCAjYjQ1ZjFhOyBjb2xvcjojZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLXNtLnByb21vY29sb3I6aG92ZXIsIC5idG4tbGcucHJvbW9jb2xvcjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojYjQ1ZjFhOyB9IC5idG4tZGVmYXVsdC5ibGFjaywgLmJ0bi1zbS5ibGFjaywgLmJ0bi1sZy5ibGFjayB7IGJhY2tncm91bmQtY29sb3IgOiMwMDAwMDA7IGJvcmRlciA6MXB4IHNvbGlkICMwMDAwMDA7IGNvbG9yIDojZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjay53aXRoYm9yZGVyLCAuYnRuLXNtLmJsYWNrLndpdGhib3JkZXIsIC5idG4tbGcuYmxhY2sud2l0aGJvcmRlciB7IGJvcmRlciA6MXB4IHNvbGlkICNmZmZmZmY7IH0gLmJ0bi1kZWZhdWx0LmJsYWNrOmhvdmVyLCAuYnRuLXNtLmJsYWNrOmhvdmVyLCAuYnRuLWxnLmJsYWNrOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvciA6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgfSAuYnRuLWRlZmF1bHQubm8sIC5idG4tc20ubm8sIC5idG4tbGcubm8geyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7IGJvcmRlcjoxcHggc29saWQgIzU1NTsgY29sb3I6IzAwMDsgfSAuYnRuLWRlZmF1bHQubm86aG92ZXIsIC5idG4tc20ubm86aG92ZXIsIC5idG4tbGcubm86aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6IzY2NjY2NjsgYm9yZGVyOjFweCBzb2xpZCAjNjY2NjY2OyBjb2xvcjojRkZGRkZGOyB9IC5idG4tZGVmYXVsdC5pbnZlcnQsIC5idG4tc20uaW52ZXJ0LCAuYnRuLWxnLmludmVydCwgLmJ0bi1kZWZhdWx0LmludmVydC5mbGF0LCAuYnRuLXNtLmludmVydC5mbGF0LCAuYnRuLWxnLmludmVydC5mbGF0IHsgYmFja2dyb3VuZDogdmFyKC0tdGFiLXRleHQtY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm94LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5pbnZlcnQ6aG92ZXIsIC5idG4tc20uaW52ZXJ0OmhvdmVyLCAuYnRuLWxnLmludmVydDpob3ZlciwgLmJ0bi1kZWZhdWx0LmludmVydC5mbGF0OmhvdmVyLCAuYnRuLXNtLmludmVydC5mbGF0OmhvdmVyLCAuYnRuLWxnLmludmVydC5mbGF0OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IH0gLmJ0bi1kZWZhdWx0LnJlZCwgLmJ0bi1zbS5yZWQsIC5idG4tbGcucmVkIHsgYmFja2dyb3VuZDojZmYzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmYzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjZjUxYTFhIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LnJlZDpob3ZlciwgLmJ0bi1zbS5yZWQ6aG92ZXIsIC5idG4tbGcucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOiMzMzMzMzMhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMzMzMzMhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMzMzMzMzMhaW1wb3J0YW50OyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgfSAuYnRuLWRlZmF1bHQud2hpdGUsIC5idG4tc20ud2hpdGUsIC5idG4tbGcud2hpdGUgeyBiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6IzAwMDAwMDsgYm94LXNoYWRvdzpub25lOyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyOyBjb2x1bW4tZ2FwOjEuNXJlbTsgcm93LWdhcDowLjVyZW07IGdyaWQtYXV0by1jb2x1bW5zOjAuNWZyOyBtYXJnaW4tYm90dG9tOjEwcHg7IG1hcmdpbi10b3A6MTVweDsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG4geyB0ZXh0LXdyYXA6YXV0bzsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nLWxlZnQ6MTBweDsgdHJhbnNpdGlvbjowLjJzIGVhc2UtaW4tb3V0OyBmb250LXdlaWdodDpub3JtYWw7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuLmZvY3VzZWQsIC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0bjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBjb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KTsgfSAuYXBwbHktY3JlZGl0IHsgLW1vei1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggIzNmNGQ1NDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggIzNmNGQ1NDsgYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICMzZjRkNTQ7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjNjU3MzdhKSwgY29sb3Itc3RvcCgxLCAjMzI0MDQ3KSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjNjU3MzdhIDUlLCAjMzI0MDQ3IDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzY1NzM3YSA1JSwgIzMyNDA0NyAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjNjU3MzdhIDUlLCAjMzI0MDQ3IDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjNjU3MzdhIDUlLCAjMzI0MDQ3IDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM2NTczN2EgNSUsICMzMjQwNDcgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6IzY1NzM3YTsgYm9yZGVyOjFweCBzb2xpZCAjNGM1YTYxOyB9IC5hcHBseS1jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMC4wNSwgIzY1NzM3YSksIGNvbG9yLXN0b3AoMSwgIzMyNDA0NykpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzMyNDA0NyA1JSwgIzY1NzM3YSAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMzMjQwNDcgNSUsICM2NTczN2EgMTAwJSk7IGJhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzMyNDA0NyA1JSwgIzY1NzM3YSAxMDAlKTsgYmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzMyNDA0NyA1JSwgIzY1NzM3YSAxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMzI0MDQ3IDUlLCAjNjU3MzdhIDEwMCUpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzMzMnLCBlbmRDb2xvcnN0cj0nI0RCMDAwMCcsR3JhZGllbnRUeXBlPTApOyBiYWNrZ3JvdW5kLWNvbG9yOiM2NTczN2E7IH0gLm9mZmVyLWJ0bnsgY29sb3I6dmFyKC0tYnRuLXR4dC1jb2wsIHZhcigtLXVzZWQtb2ZmZXItYnRuLXRleHQtY29sb3IsICNmZmYpKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idG4tYmctY29sLCB2YXIoLS11c2VkLW9mZmVyLWJ0bi1iZy1jb2xvciwgdmFyKC0tcHJvbW8tY29sb3IpKSk7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpICp7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLnByb21vQlROeyB0ZXh0LWFsaWduOmxlZnQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5wcm9tb0JUTjo6YWZ0ZXJ7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nLCBzZXJpZjsgZm9udC13ZWlnaHQ6OTAwOyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zLCAudXNlZC1kZXRhaWxzLCAubmV3LWRldGFpbHMpIC5wcm9tb0JUTiA+IHNwYW4uZmF7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MS41ZW07IGhlaWdodDoxLjVlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBjb2xvcjppbmhlcml0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAuY29tcGxldGVkLnByb21vQlROOjphZnRlcnsgY29udGVudDoiXGYwMGMiOyBjb2xvcjppbmhlcml0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAuY29tcGxldGVkLnByb21vQlROIHNwYW4uZmF7IGNvbG9yOiMwMDA7IH0gLmdyYXlib3ggLnByb21vQlROLCAudXNlZFZkcEFjdGlvbnMgLnByb21vQlROeyBib3JkZXItcmFkaXVzOjFweCFpbXBvcnRhbnQ7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHRleHQtYWxpZ246dW5zZXQ7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgfSAuZ3JheWJveCAuYnV0dG9uX3VuZGVyIC5wcm9tb0JUTiBzdGFjay1sYywgLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl91bmRlciAucHJvbW9CVE4gc3RhY2stbGMgeyBmbGV4LWdyb3c6MSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50OyB9IC5tdWx0aWZvcm1fZW1iZWRkZWRfZm9vdGVyIC4tZm9yY2VkLS1hLWNmYTo6YWZ0ZXIgeyBmbGV4OjAgMTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWljb25lZHsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW46YXV0bzsgd2lkdGg6OTUlOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4tZGVmYXVsdCBzcGFuLmZheyBkaXNwbGF5Om5vbmU7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1pY29uZWQgc3Bhbi5mYXsgZGlzcGxheTpmbGV4OyB9IC5ncmF5Ym94IC5wcm9tb0JUTiBzcGFuLCAudXNlZFZkcEFjdGlvbnMgLnByb21vQlROIHNwYW57IG1hcmdpbi1sZWZ0OnVuc2V0OyBsaW5lLWhlaWdodDoxLjVlbTsgfSAucHJvbW9CVE4uY2hldnJvbi1yaWdodCAuY3RhLWxhYmVsIHsgcGFkZGluZy1yaWdodDoxLjVyZW07IH0gLnByb21vQlROLCAucHJvbW9CVE4gYSwgLmJyb2NodXJlQnRueyBiYWNrZ3JvdW5kOiNiNDVmMWE7IGNvbG9yOiNmZmZmZmY7IHRleHQtc2hhZG93Om5vbmU7IGFuaW1hdGlvbjphbGwgM3M7IGJvcmRlci1jb2xvcjojYjQ1ZjFhOyB9IC5wcm9tb0JUTjpob3ZlciwgLnByb21vQlROIGE6aG92ZXJ7IGJhY2tncm91bmQ6I2I0NWYxYTsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYjQ1ZjFhOyB9IC5wcm9tb0JUTjpob3ZlciA+ICogPiAuZmEsIC5wcm9tb0JUTiBhOmhvdmVyID4gKiA+IC5mYSB7IGJhY2tncm91bmQ6I2ZmZmZmZjsgY29sb3I6I2I0NWYxYTsgfSAucHJvbW9CVE4uZ3Jvdzpob3ZlciB7IHRyYW5zZm9ybTpzY2FsZSgxLjEpOyB9IC5wcm9tb0JUTi5ncm93OmhvdmVyLCAucHJvbW9CVE4uZ3Jvdzpob3ZlciA+ICogPiAuZmEsIC5wcm9tb0JUTi5ncm93IGE6aG92ZXIgPiAqID4gLmZhIHsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IG92ZXJmbG93OmhpZGRlbjsgdHJhbnNpdGlvbjoxcyBhbGwgZWFzZTsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmJlZm9yZSB7IGNvbnRlbnQgOiIgIjsgcG9zaXRpb24gOmFic29sdXRlOyB6LWluZGV4IDotMTsgYm9yZGVyLXJhZGl1cyA6MTAwcHg7IHdpZHRoIDowJTsgaGVpZ2h0IDoxMjAlOyB0b3AgOjUwJTsgYm90dG9tIDo1MCU7IGxlZnQgOjUwJTsgcmlnaHQgOjUwJTsgdHJhbnNmb3JtIDp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHRyYW5zaXRpb24gOmFsbCAwLjZzIGVhc2U7IGJvcmRlcjp1bnNldDsgYmFja2dyb3VuZDojYjQ1ZjFhOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiNiNDVmMWE7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTs7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpob3ZlcjpiZWZvcmUgeyB3aWR0aDoxMjAlOyB9IC5wcm9tb0JUTi5yaXBwbGU6aG92ZXIgc3Bhbi5mYXsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyB9IC5wcm9tb0Fycm93LC5wcm9tb0NvbG9yeyBjb2xvcjojYjQ1ZjFhIWltcG9ydGFudDsgfSAuYnJvY2h1cmVCdG57IGJvcmRlcjpub25lOyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHg7IH0gLnZkcC1idG4geyBib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMDYzcmVtIDsgcGFkZGluZzo4cHggNXB4OyB3aWR0aDoyMzdweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDAwcHgpIHsgLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6aW5oZXJpdDsgfSAuYXBwbHktY3JlZGl0IHsgYmFja2dyb3VuZDojNjU3MzdhOyBib3JkZXI6MXB4IHNvbGlkICM0YzVhNjE7IH0gLmFwcGx5LWNyZWRpdDpob3ZlciB7IGJhY2tncm91bmQ6eyRBUFBMWV9DUkVESVRfQlROX0NPTE9SX0VOREhPVkVSQ09MT1J9OyB9IH0gLmJnX2JsdWV7IGJhY2tncm91bmQtY29sb3I6IzA2ODhmYSFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX3JlZHsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfZ3JlZW57IGJhY2tncm91bmQtY29sb3I6IzY4YTU0YiFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2JsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOiM3OTc5NzkhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ibHVlIGEsLmJnX3JlZCBhLC5iZ19ncmVlbiBhLC5iZ19ibGFjayBhLC5iZ19ncmF5IGEgeyBjb2xvcjojZmZmOyB9IC5iZ19kZWZhdWx0eyBiYWNrZ3JvdW5kLWNvbG9yOiMzMjQwNDchaW1wb3J0YW50OyB9IC5ib3gyN3sgd2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuYm94MjcgYXsgd2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXggOyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDoyOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI3IGE6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IC0zMnB4IHJlcGVhdC14OyBjb2xvcjojRkZGRkZGOyB9IC5ib3gyOHsgd2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiM2ZjZmNmYgdXJsKC9pbWFnZXMvbGl0ZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6MTBweCAycHggMTBweCAycHg7IG1hcmdpbjowIDBweCAwIDA7IH0gLnRleHQ0NHsgd2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpdGVyX2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweDsgfSAuY29uc3VtcHRpb24tbm90LWF2YWlsYWJsZSA+IC50ZXh0NDQgPiBzcGFuID4gI2NpdHlGdWVsIHsgZGlzcGxheTpub25lOyB9IC5jb25zdW1wdGlvbi1ub3QtYXZhaWxhYmxlID4gLnRleHQ0NCA+IHNwYW4gPiAjaGlnaHdheUZ1ZWwgeyBkaXNwbGF5Om5vbmU7IH0gLnRleHRfc2xpZGUgYSB7IGhlaWdodDozOHB4OyBtYXJnaW4tcmlnaHQ6MC4zZW07IHBhZGRpbmctdG9wOjFweCAhaW1wb3J0YW50OyB9IC50ZXh0X3NsaWRlIGEgPiBiIHsgZGlzcGxheTpibG9jazsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MjVweDsgd2lkdGg6MTAwJTsgfSAudGV4dF9zbGlkZSBhID4gYiA+IG0xIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IGxpbmUtaGVpZ2h0OjM4cHggIWltcG9ydGFudDsgdG9wOi04cHg7IGxlZnQ6MDsgfSAudGV4dF9zbGlkZS50ZXh0X3NsaWRlXzQgYSA+IGIgPiBtMSB7IGFuaW1hdGlvbjp0ZXh0X3NsaWRlXzQgNHMgZWFzZSA1czsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgfSAudGV4dF9zbGlkZS50ZXh0X3NsaWRlXzMgYSA+IGIgPiBtMSB7IGFuaW1hdGlvbjp0ZXh0X3NsaWRlXzMgM3MgZWFzZSA0czsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgfSAudGV4dF9zbGlkZS50ZXh0X3NsaWRlXzIgYSA+IGIgPiBtMSB7IGFuaW1hdGlvbjp0ZXh0X3NsaWRlXzIgMnMgZWFzZSAyczsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgfSAudGV4dF9zbGlkZS5wcm9tb2NvZGVib3ggeyBwYWRkaW5nOjBweCAwcHg7IG1hcmdpbi1sZWZ0OjBweDsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDo5cHg7IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzQgeyAwJSB7IHRvcDotOHB4OyB9IDI1JSB7IHRvcDotNDZweDsgfSA1MCUgeyB0b3A6LTg0cHg7IH0gNzUlIHsgdG9wOi0xMjJweDsgfSAxMDAlIHsgdG9wOi0xNjBweDsgfSB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV8zIHsgMCUgeyB0b3A6LThweDsgfSAzMyUgeyB0b3A6LTQ2cHg7IH0gNjYlIHsgdG9wOi04NHB4OyB9IDEwMCUgeyB0b3A6LTEyMnB4OyB9IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzIgeyAwJSB7IHRvcDotOHB4OyB9IDUwJSB7IHRvcDotNDZweDsgfSAxMDAlIHsgdG9wOi04NHB4OyB9IH0gLm1hcCB7IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubWFwIC53cmFwcGVyeyBwb3NpdGlvbjpzdGF0aWMgIWltcG9ydGFudDsgfSAubWFwX2RlYWxlcl9saXN0IHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHBhZGRpbmc6MCAzMHB4OyB3aWR0aDozMTVweDsgaGVpZ2h0OjEwMCU7IHRleHQtYWxpZ246bGVmdDsgb3ZlcmZsb3cteTphdXRvOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbSB7IGN1cnNvcjpwb2ludGVyOyBwYWRkaW5nOjEzcHggMDsgZm9udC1zaXplOjAuODEzcmVtIDsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lOmhvdmVyIHsgZm9udC13ZWlnaHQ6NzAwOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSB7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubWFya2VyU3BhbiB7IGhlaWdodDoxOHB4OyB3aWR0aDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5tYXJrZXJTcGFuOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7IGhlaWdodDo0cHg7IHdpZHRoOjRweDsgYm9yZGVyOjJweCBzb2xpZCAjMzMzOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjJweDsgbGVmdDowcHg7IHotaW5kZXg6MTsgYmFja2dyb3VuZDojZmZmOyBsaW5lLWhlaWdodDoyNnB4OyBib3JkZXItcmFkaXVzOjQwcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0MHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NDBweDsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1hcmtlclNwYW46YWZ0ZXIgeyBjb250ZW50OicnOyBoZWlnaHQ6MHB4OyB3aWR0aDowcHg7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MnB4OyBsZWZ0OjJweDsgYm9yZGVyOjEwcHggdHJhbnNwYXJlbnQgc29saWQ7IGJvcmRlci10b3AtY29sb3I6IzMzMzsgYm9yZGVyLXdpZHRoOjdweCAycHggMHB4IDJweDsgfSAubWFwX29wZW5faG91cnMgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgd2lkdGg6NDAwcHg7IGhlaWdodDoxMDAlOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLm9wZW5faG91cnNfY29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLm1hcF9vcGVuX2hvdXJzIC5tYXBfb3Blbl9ob3Vycy0tdGl0bGUsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciBoMiwgLm9wZW5faG91cnNfY29udGFpbmVyIHNwYW4uaDItYWx0IHsgZm9udC1zaXplOjEuNWVtOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWxlZnQ6MTVweDsgbWFyZ2luLXRvcDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOmluaGVyaXQ7IH0gLm1hcF9vcGVuX2hvdXJzIHVsLCAub3Blbl9ob3Vyc19jb250YWluZXIgdWwgeyBwYWRkaW5nOjAgMDsgfSAubWFwX29wZW5faG91cnMgdWwgbGksIC5vcGVuX2hvdXJzX2NvbnRhaW5lciB1bCBsaSB7IGxpc3Qtc3R5bGU6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGN1cnNvcjpoYW5kOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmM2YzOyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmR7IHBhZGRpbmc6NnB4IDMwcHggOHB4IDE1cHg7IGRpc3BsYXk6YmxvY2s7IH0gLmV4cGFuZGFibGVfY29udGVudHsgcGFkZGluZzowcHggMTZweCA1cHggMTZweDsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgfSAuZXhwYW5kYWJsZV9jb250ZW50IGRpdiwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIGRpdiB7IGRpc3BsYXkgOmZsZXg7IGZsZXgtZGlyZWN0aW9uIDpyb3c7IH0gLmV4cGFuZGFibGVfY29udGVudCA+IGRpdiA+IHNwYW46Zmlyc3Qtb2YtdHlwZSwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIGRpdiBzcGFuOmZpcnN0LW9mLXR5cGUgeyB3aWR0aDo0MCU7IH0gLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9ueyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyBtYXJnaW4tdG9wOjE1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDo3NTlweCkgeyAuZXhwYW5kYWJsZV9jb250ZW50LCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24geyBmb250LXNpemU6aW5oZXJpdDsgfSB9IC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiB0YWJsZXsgbWFyZ2luLXRvcDoxNXB4OyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3d7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOjNweDsgfSAubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93LmV4cGFuZGVkeyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZXsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUtLXRpdGxlIHsgZm9udC1zaXplOnZhcigtLWZzNCk7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgdWx7IHBhZGRpbmc6MCAwOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgdWwgbGl7IGxpc3Qtc3R5bGU6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmM2YzZjM7IH0gLm1haW5fbGVmdF9ib3ggI2Zvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyeyB3aWR0aDo5NjBweDsgfSAudmlkZW9CdG5TbGlkZXIsIC5waG90b0J0blNsaWRlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgIzk5OTk5OTsgY29sb3I6Izk5OTk5OTsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgb3BhY2l0eTowLjU7IH0gLnZpZGVvQnRuU2xpZGVyOmhvdmVyLCAucGhvdG9CdG5TbGlkZXI6aG92ZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiM5OTk5OTk7IG9wYWNpdHk6MC41OyB9IC5waG90b0J0blNsaWRlciAuZmEsIC52aWRlb0J0blNsaWRlciAuZmF7IGNvbG9yOiM5OTk5OTk7IH0gLnBob3RvQnRuU2xpZGVyOmhvdmVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyOmhvdmVyIC5mYXsgY29sb3I6I2ZmZmZmZjsgfSAudmlkZW9CdG5TbGlkZXJVc2VkLCAucGhvdG9CdG5TbGlkZXJVc2VkeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjYjNiM2IzOyBjb2xvcjojYjNiM2IzOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBvcGFjaXR5OjAuOTsgfSAudmlkZW9CdG5TbGlkZXJVc2VkOmhvdmVyLCAucGhvdG9CdG5TbGlkZXJVc2VkOmhvdmVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojYjNiM2IzOyBvcGFjaXR5OjAuNTsgfSAucGhvdG9CdG5TbGlkZXJVc2VkIC5mYSwgLnZpZGVvQnRuU2xpZGVyVXNlZCAuZmF7IGNvbG9yOiNiM2IzYjM7IH0gLnBob3RvQnRuU2xpZGVyVXNlZDpob3ZlciAuZmEsIC52aWRlb0J0blNsaWRlclVzZWQ6aG92ZXIgLmZheyBjb2xvcjojZmZmZmZmOyB9IC52aWRlb3NfcGljdHVyZXNfYnV0dG9uc19jb250YWluZXJ7IGxlZnQ6NXB4OyBib3R0b206ODJweDsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6OTk5OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOi04MHB4OyB9IC4tZGlzcGxheS1ub25leyBkaXNwbGF5Om5vbmU7IH0gI2RlZmF1bHRUb3BCYW5uZXJXcmFweyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBwYWRkaW5nOjQwcHggMTVweDsgfSAjZGVmYXVsdFRvcEJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZGVmYXVsdFRvcEJhbm5lclRpdGxlLCAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2RlZmF1bHRUb3BCYW5uZXJXcmFwIGRpdi5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlcnsgbWFyZ2luOjMwcHggMCAyMHB4IDA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IH0gI2RlZmF1bHRUb3BCYW5uZXJCdG57IHBhZGRpbmc6MTBweCAzMHB4OyBiYWNrZ3JvdW5kOmJsYWNrOyBib3JkZXI6MnB4IHdoaXRlIHNvbGlkOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBib3gtc2hhZG93OjBweCAycHggMTNweCAwcHggIzFiMWIxYjsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6My4xMjVyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjIuODEzcmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgZm9udC1zaXplOjMuMTI1cmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6Mi44MTNyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZTplbXB0eXsgbWFyZ2luOjAgIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyV3JhcHsgaGVpZ2h0OjI2NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6NDBweCAxNXB4OyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyV3JhcHsgaGVpZ2h0OjI2NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6NDBweCAxNXB4OyB9ICNnb29nbGVfcmV2aWV3c3sgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjA7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIHsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgd2lkdGg6aW5pdGlhbCAhaW1wb3J0YW50OyBwYWRkaW5nOmluaXRpYWw7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIGkgeyBjb2xvcjojRTRCMjQ4OyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgaS5pbmFjdGl2ZSB7IGNvbG9yOiNjNmM2YzY7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXI6YWZ0ZXIgeyBjb250ZW50OiJcMjYwNSI7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dHsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzo1cHggOHB4OyBoZWlnaHQ6MjdweDsgbGluZS1oZWlnaHQ6MjdweDsgfSAucmV2aWV3LWF1dGhvcnsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LmRlZmF1bHR7IGNvbG9yOiM0NDQ7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI2Y1ZjVmNSwgI2YxZjFmMSk7IGJvcmRlcjoxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQucmVkeyBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICNERDRCMzksICNEMTQ4MzYpOyBib3JkZXI6MXB4IHNvbGlkICNEMTQ4MzY7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5ibHVleyBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiM0RDkwRkU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICM0RDkwRkUsICM0Nzg3RUQpOyBib3JkZXI6MXB4IHNvbGlkICMzMDc5RUQ7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIGlmcmFtZSwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIG9iamVjdCwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIGVtYmVkIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZTJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47IG1heC13aWR0aDoxMDAlOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZTIgaWZyYW1lLCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIG9iamVjdCwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBlbWJlZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAjc2VhcmNoQ3JpdGVyaWFXOjphZnRlciwgI2FjdGlvbkJveEJ0bjo6YWZ0ZXIsICNsaW5rQ29udGFpbmVyOjphZnRlcnsgY29udGVudDonJzsgaGVpZ2h0OjFweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1ib3R0b206JzE1cHgnOyB9ICNzZWFyY2hDcml0ZXJpYVc6OmFmdGVyLCAjYWN0aW9uQm94QnRuOjphZnRlciwgI2xpbmtDb250YWluZXI6OmFmdGVyeyBiYWNrZ3JvdW5kOiNhYWE7IHdpZHRoOjI4MHB4OyB9IC5iYW5uZXJQb3B1cENsb3NleyBjb2xvcjojYWFhOyB9IC5zZWVWaWRlb0J0bjF7IGJhY2tncm91bmQtY29sb3I6IzAwMCAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNmZmYgIWltcG9ydGFudDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50OyB9IC5zZWVWaWRlb0J0bjE6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMwMDAgIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyB9ICNib3R0b21MZWZ0QmFubmVySW1hZ2V7IG1hcmdpbjoxMHB4IDBweCAwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo2cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcldyYXB7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHBhZGRpbmc6MTVweDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjIuMTg4cmVtIDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJUZXh0eyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS45MzhyZW0gOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcldyYXAgZGl2LmRlZmF1bHRCb3R0b21MZWZ0QmFubmVyQnRuV3JhcHBlcnsgbWFyZ2luOjIwcHggMCAxMHB4IDA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyQnRueyBwYWRkaW5nOjdweCAyMXB4OyBiYWNrZ3JvdW5kOmJsYWNrOyBib3JkZXI6MnB4IHdoaXRlIHNvbGlkOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBib3gtc2hhZG93OjBweCAycHggMTNweCAwcHggIzFiMWIxYjsgZm9udC1zaXplOjcwJTsgfSAubWFpbkRpdi13cmFwcGVyIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEgeyBwYWRkaW5nOjAgMTJweDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IGJvcmRlci1yYWRpdXM6MDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEgeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZC1jb2xvcjojMzI0MDQ3OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGNvbG9yOndoaXRlOyBjb2xvcjojZmZmZmZmOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYS5idG4geyBmb250LXdlaWdodDpub3JtYWw7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gLmJ0bi1kZWZhdWx0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOiMzMjQwNDc7IGJvcmRlci1jb2xvcjojMDAwMDAwOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5Om5vbmU7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIC4xNzUpOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzUwcHg7IHJpZ2h0OjA7IHBhZGRpbmc6MTVweDsgei1pbmRleDo5OTk5OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBoZWlnaHQ6YXV0bzsgdG9wOjIzcHg7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIGRpdjpub3QoW2NsYXNzXSkgeyBmbG9hdDppbml0aWFsOyB3aWR0aDoxMDAlOyBtYXJnaW4tcmlnaHQ6MDsgdGV4dC1hbGlnbjppbml0aWFsOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyOmhvdmVyIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5OmJsb2NrOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIuaXNPcGVuIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5OmJsb2NrOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3csIC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgZGl2IHsgbWFyZ2luLXJpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZmxvYXQ6bm9uZTsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93IHRhYmxlIHRleHRhcmVhIHsgd2lkdGg6Y2FsYygxMDAlICsgMnB4KSAhaW1wb3J0YW50OyB9ICN1c2VkXzQwNF9tZXNzYWdlIHsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MzBweDsgYm9yZGVyOjFweCBzb2xpZCAjZjAwOyBtYXJnaW46MCAwIDIwcHggMDsgfSAuYXVkaS10aXRsZSBoMiB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYXVkaS1jb2xvciB7IGNvbG9yOiNiYjBhMzA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gZGl2I3NvY2lhbF9tZWRpYV9pY29uc19kaXYgeyBmb250LXNpemU6aW5oZXJpdDsgfSBhLnNvY2lhbC1saW5rIHsgLS1mczp2YXIoLS1mczYpOyAtLXR4dC1jb2xvcjojMzI0MDQ3OyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IC5zb2NpYWwtbGlua1tkYXRhLXRvb2x0aXA9J1lvdXR1YmUnXSAuc29jaWFsLWljb25zIHsgbWFyZ2luLXJpZ2h0OjNweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxleyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6d2hpdGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MCAwIDEwcHggMDsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZSB0cjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OjQwcHg7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZSBzZWxlY3R7IGJvcmRlci1yYWRpdXM6NXB4OyB3aWR0aDoyMDBweDsgaGVpZ2h0OjM1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheXBhbF9idXR0b25faHRtbCBpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdeyB3aWR0aDoxMDAlOyBib3JkZXI6bm9uZTsgcGFkZGluZzowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MDBweCkgeyAucGF5cGFsX2J1dHRvbl9odG1seyB3aWR0aDo5MCU7IG1hcmdpbjowIGF1dG87IH0gfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHsgei1pbmRleDoxMDAwMDAwMDAyMTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLmRlc2t0b3AgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLmRlc2t0b3Agc2VsZWN0IHsgbWF4LXdpZHRoOjMwMHB4OyBtYXJnaW46MCBhdXRvOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uc21hbGwgeyBwYWRkaW5nOjIwcHggMTBweDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIGxhYmVsIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAjbXV0bGlBZGRyZXNzU3VibWl0IHsgbWFyZ2luOjAgYXV0bzsgbWFyZ2luLXRvcDo4cHg7IGRpc3BsYXk6dGFibGU7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAjbXVsdGktZGVhbGVyLW1hcCB7IGhlaWdodDo1MjBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24ucmV2ZWFsLW1vZGFsIHNwYW4geyBmb250LXNpemU6aW5oZXJpdDsgfSAudmFsaWRpdHktZXJyb25lb3VzIHsgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMhaW1wb3J0YW50OyB9IC5ib3g0LnZhbGlkaXR5LWVycm9uZW91cywgLmJveDUudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6MjYzcHg7IH0gLmZvcm0tY29udHJvbCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IGhlaWdodDozNHB4OyBwYWRkaW5nOjZweCAxMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyBjb2xvcjojNTU1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpOyBib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtby10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IH0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MzBweDsgYmFja2dyb3VuZC1jb2xvcjo7IGNvbG9yOjsgfSAuYmFubmVyLWZvcm0tdGl0bGUgeyBmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZToxOHB0OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYmFubmVyLWZvcm0tc3VidGl0bGUgeyBmb250LXNpemU6MTEuNXB0OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYmFubmVyLWZvcm0tYm9keSB7IG1hcmdpbi1ib3R0b206MjVweDsgfSAuYmFubmVyLWZvcm0tYm9keSAuZm9ybS1jb250cm9sIHsgaGVpZ2h0OjQxcHg7IG1hcmdpbi1ib3R0b206MTVweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmJhbm5lci1mb3JtLWJveC1mb290ZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC5iYW5uZXItZm9ybS1ib3gtaGVhZGVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuYnRuLmJhbm5lci1idG4geyBwYWRkaW5nOjZweCAyNHB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOndoaXRlOyBiYWNrZ3JvdW5kLWNvbG9yOjsgY29sb3I6OyB9IC5idG4uYmFubmVyLWJ0bjpob3ZlciB7IGJveC1zaGFkb3c6aW5zZXQgMCAwIDEwMHB4IDEwMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfSAuYnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6NnB4IDEycHg7IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6NDAwOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2hpdGUtc3BhY2U6bm93cmFwOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IC1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOyB0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOyBjdXJzb3I6cG9pbnRlcjsgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyAtbW96LXVzZXItc2VsZWN0Om5vbmU7IC1tcy11c2VyLXNlbGVjdDpub25lOyB1c2VyLXNlbGVjdDpub25lOyBib3JkZXItcmFkaXVzOjRweDsgfSAubGF6eWxvYWR7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5nYm94IHsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgfSAucGQgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBmb250LXNpemU6MC41ZW07IHZlcnRpY2FsLWFsaWduOnN1cGVyOyB9IC51aS1sb2FkZXItYmFja2dyb3VuZHsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMC4zKTsgZGlzcGxheTpub25lOyBwb3NpdGlvbjpmaXhlZDsgei1pbmRleDoxMDAwMDAwMDA7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5kLWdpZnsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IGxlZnQ6NTAlOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUaXRsZSB7IGZvbnQtc2l6ZToxLjNlbTsgfSAuZDJjRm9vdGVyQ29va2llRGVsZXRlVGV4dCB7IG1hcmdpbi10b3A6MzBweDsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRueyBiYWNrZ3JvdW5kOiNiNDVmMWE7IGNvbG9yOiNmZmZmZmY7IHBhZGRpbmc6MTBweCAyMHB4IDEwcHggMjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLm1vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX2J0biBzcGFueyBiYWNrZ3JvdW5kOiNiNDVmMWE7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3Ntc3sgYmFja2dyb3VuZDojYjQ1ZjFhOyBjb2xvcjojZmZmZmZmOyB9ICNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9zbXMgc3BhbnsgYmFja2dyb3VuZDojYjQ1ZjFhOyBjb2xvcjojZmZmZmZmOyB9IC5ibGFja0NvbG9yQm9sZHsgY29sb3I6IzAwMCFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7IH0gLmZsZXgtY2VudGVyIC5yZXNwb25zaXZlLWVkaXRvciB7IGZsZXgtZ3JvdzoxOyB9IC5yZXZlYWwtbW9kYWx7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLmdtLXN0eWxlLWl3LWQgeyBwYWRkaW5nLXRvcDoxMnB4OyBtYXJnaW4tcmlnaHQ6LTI0cHg7IH0gLmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1jIHsgZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7IH0gLmdyZWNhcHRjaGEtYmFkZ2UgeyBib3R0b206MTAwcHggIWltcG9ydGFudDsgfQovKiogL2Nzcy9iYXNlLmNzcyAqKi8Kc3RhY2stbGMsIC5zdGFjay1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IHN0YWNrLWxjID4gKiwgLnN0YWNrLWxjID4gKiB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowOyB9IHN0YWNrLWxjID4gKiArICosIC5zdGFjay1sYyA+ICogKyAqIHsgbWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IH0gc3RhY2stbGMuLS1zMCA+ICogKyAqLCAuc3RhY2stbGMuLS1zMCA+ICogKyAqIHsgYm9yZGVyLXdpZHRoOjA7IGJvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyBib3JkZXItY29sb3I6aW5oZXJpdDsgfSAuYm94LWxjLCBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6dmFyKC0tc3BhY2UpOyBvdXRsaW5lOnZhcigtLWJvcmRlci10aGluKSB0cmFuc3BhcmVudDsgb3V0bGluZS1vZmZzZXQ6Y2FsYyh2YXIoLS1ib3JkZXItdGhpbikgKiAtMSk7IH0gLmJveC1sYywgYm94LWxjICogeyBjb2xvcjppbmhlcml0OyB9IC5iZy1ib3h7IGNvbG9yOnZhcigtLWJsYWNrKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLmdsYXNzLWJveHsgYm9yZGVyOm5vbmU7IGJhY2tncm91bmQ6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgY29sb3I6aW5oZXJpdDsgfSAuY3RyLWJveCwgLmZsZXgtYm94LCAuZmxleC1jb2x1bW4sIC5mbGV4LWFyb3VuZCwgLmZsZXgtYmV0d2VlbiwgLmZsZXgtZXZlbmx5LCAuZmxleC1jZW50ZXIsIC5mbGV4LXN0YXJ0LCAuZmxleC1lbmQsIC5mbGV4LWF1dG8sIC5mbGV4LWVxdWFseyBkaXNwbGF5OmZsZXg7IH0gLmlubGluZS1ib3h7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5zaGFkb3ctYm94eyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAuZmxleC1ib3g6bm90KDppcyguZmxleC1iZXR3ZWVuLC5mbGV4LWV2ZW5seSwuZmxleC1hcm91bmQpKSA+ICogKyAqeyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgfSAuZ3JvdXAtbGMsIGdyb3VwLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyB9IC5ncm91cC1sYyA+ICosIGdyb3VwLWxjID4gKiB7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIgKiAtMSk7IH0gLmdyb3VwLWxjID4gKiA+ICosIGdyb3VwLWxjID4gKiA+ICogeyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgeyBvdmVyZmxvdzpoaWRkZW47IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyBmbGV4LWdyb3c6MTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqID4gOmZpcnN0LWNoaWxkIHsgZmxleC1iYXNpczowOyBmbGV4LWdyb3c6OTk5OyBtaW4td2lkdGg6Y2FsYyh2YXIoLS1zaWRlYmFyLWJwLCA1MCUpIC0gdmFyKC0tc3BhY2UpKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbjpjYWxjKCh2YXIoLS1zcGFjZSkgLyAyKSAqIC0xKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiAqIHsgZmxleC1ncm93OjE7IGZsZXgtYmFzaXM6Y2FsYygodmFyKC0tc3dpdGNoLWJwLCAzMHJlbSkgLSAoMTAwJSAtIHZhcigtLXNwYWNlKSkpICogOTk5KTsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSksIDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+IDpudGgtbGFzdC1jaGlsZChuKzUpIH4gKiB7IGZsZXgtYmFzaXM6MTAwJTsgfSAuLS1zMHstLXNwYWNlOnZhcigtLXMwKTt9IC4tLXMtOXstLXNwYWNlOnZhcigtLXMtOSk7fSAuLS1zLTh7LS1zcGFjZTp2YXIoLS1zLTgpO30gLi0tcy03ey0tc3BhY2U6dmFyKC0tcy03KTt9IC4tLXMtNnstLXNwYWNlOnZhcigtLXMtNik7fSAuLS1zLTV7LS1zcGFjZTp2YXIoLS1zLTUpO30gLi0tcy00ey0tc3BhY2U6dmFyKC0tcy00KTt9IC4tLXMtM3stLXNwYWNlOnZhcigtLXMtMyk7fSAuLS1zLTJ7LS1zcGFjZTp2YXIoLS1zLTIpO30gLi0tcy0xey0tc3BhY2U6dmFyKC0tcy0xKTt9IC4tLXN7LS1zcGFjZTp2YXIoLS1zKTt9IC4tLXMxey0tc3BhY2U6dmFyKC0tczEpO30gLi0tczJ7LS1zcGFjZTp2YXIoLS1zMik7fSAuLS1zM3stLXNwYWNlOnZhcigtLXMzKTt9IC4tLXM0ey0tc3BhY2U6dmFyKC0tczQpO30gLi0tczV7LS1zcGFjZTp2YXIoLS1zNSk7fSAuLS1zNnstLXNwYWNlOnZhcigtLXM2KTt9IC4tLXM3ey0tc3BhY2U6dmFyKC0tczcpO30gLi0tczh7LS1zcGFjZTp2YXIoLS1zOCk7fSAuLS1zOXstLXNwYWNlOnZhcigtLXM5KTt9IC4tLWZzLTl7Zm9udC1zaXplOnZhcigtLWZzLTkpOy0tZnM6dmFyKC0tZnMtOSk7fSAuLS1mcy04e2ZvbnQtc2l6ZTp2YXIoLS1mcy04KTstLWZzOnZhcigtLWZzLTgpO30gLi0tZnMtN3tmb250LXNpemU6dmFyKC0tZnMtNyk7LS1mczp2YXIoLS1mcy03KTt9IC4tLWZzLTZ7Zm9udC1zaXplOnZhcigtLWZzLTYpOy0tZnM6dmFyKC0tZnMtNik7fSAuLS1mcy01e2ZvbnQtc2l6ZTp2YXIoLS1mcy01KTstLWZzOnZhcigtLWZzLTUpO30gLi0tZnMtNHtmb250LXNpemU6dmFyKC0tZnMtNCk7LS1mczp2YXIoLS1mcy00KTt9IC4tLWZzLTN7Zm9udC1zaXplOnZhcigtLWZzLTMpOy0tZnM6dmFyKC0tZnMtMyk7fSAuLS1mcy0ye2ZvbnQtc2l6ZTp2YXIoLS1mcy0yKTstLWZzOnZhcigtLWZzLTIpO30gLi0tZnMtMXtmb250LXNpemU6dmFyKC0tZnMtMSk7LS1mczp2YXIoLS1mcy0xKTt9IC4tLWZzMHtmb250LXNpemU6dmFyKC0tZnMwKTstLWZzOnZhcigtLWZzMCk7fSAuLS1mczF7Zm9udC1zaXplOnZhcigtLWZzMSk7LS1mczp2YXIoLS1mczEpO30gLi0tZnMye2ZvbnQtc2l6ZTp2YXIoLS1mczIpOy0tZnM6dmFyKC0tZnMyKTt9IC4tLWZzM3tmb250LXNpemU6dmFyKC0tZnMzKTstLWZzOnZhcigtLWZzMyk7fSAuLS1mczR7Zm9udC1zaXplOnZhcigtLWZzNCk7LS1mczp2YXIoLS1mczQpO30gLi0tZnM1e2ZvbnQtc2l6ZTp2YXIoLS1mczUpOy0tZnM6dmFyKC0tZnM1KTt9IC4tLWZzNntmb250LXNpemU6dmFyKC0tZnM2KTstLWZzOnZhcigtLWZzNik7fSAuLS1mczd7Zm9udC1zaXplOnZhcigtLWZzNyk7LS1mczp2YXIoLS1mczcpO30gLi0tZnM4e2ZvbnQtc2l6ZTp2YXIoLS1mczgpOy0tZnM6dmFyKC0tZnM4KTt9IC4tLWZzOXtmb250LXNpemU6dmFyKC0tZnM5KTstLWZzOnZhcigtLWZzOSk7fSAuc2hyaW5rLWdyb3d7ZmxleDoxIDE7fSAuZmxleC13cmFwIHtmbGV4LXdyYXA6d3JhcDt9IC5mbGV4LXJldmVyc2Uge2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30gLmZsZXgtYXV0byA+ICp7ZmxleDoxIDEgYXV0bzt9IC5mbGV4LWVxdWFsID4gKntmbGV4OjEgMTt9IC5hbGlnbi1jZW50ZXIge2FsaWduLWl0ZW1zOmNlbnRlcjt9IC5hbGlnbi1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30gLmFsaWduLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZDt9IC5hbGlnbi1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZTt9IC5mbGV4LWNvbHVtbiB7ZmxleC1mbG93OmNvbHVtbjt9IC5mbGV4LXJvdyB7ZmxleC1mbG93OnJvdzt9IC5mbGV4LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO30gLmZsZXgtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt9IC5mbGV4LWV2ZW5seXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5O30gLmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7fSAuZmxleC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9IC5mbGV4LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fSAuLXAwIHtwYWRkaW5nOjA7fSAuLXB0MCB7cGFkZGluZy10b3A6MDt9IC4tcGIwIHtwYWRkaW5nLWJvdHRvbTowO30gLi1wdjAge3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MH0gLi1waDAge3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0gLi1wIHtwYWRkaW5nOnZhcigtLXNwYWNlKTt9IC4tcHZ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLXBoe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpO30gLi1wdHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7fSAuLXBie3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tbTAge21hcmdpbjowO30gLi1tdDAge21hcmdpbi10b3A6MDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjA7fSAuLW12MCB7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0gLi1taDAge21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9IC4tbSB7bWFyZ2luOnZhcigtLXNwYWNlKTt9IC4tbXZ7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IG1hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1taHttYXJnaW4tbGVmdDp2YXIoLS1zcGFjZSk7IG1hcmdpbi1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLW10e21hcmdpbi10b3A6dmFyKC0tc3BhY2UpO30gLi1tYnttYXJnaW4tYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tYjAge2JvcmRlcjpub25lO30gLi1iMiB7Ym9yZGVyLXdpZHRoOjJweDt9IC4tYntib3JkZXItd2lkdGg6MXB4O30gLi1idHtib3JkZXItdG9wLXdpZHRoOjFweDt9IC4tYmJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJ2e2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1ib3R0b20td2lkdGg6MXB4O30gLi1iaHtib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDt9IC4tdy1mdWxsIHt3aWR0aDoxMDB2dzt9IC4tdy0xMDAge3dpZHRoOjEwMCU7fSAuLXctNTAge3dpZHRoOjUwJTt9IC4tdy0zMyB7d2lkdGg6MzMuMzMlO30gLi13LTI1IHt3aWR0aDoyNSU7fSAuLXctNTB3IHt3aWR0aDo1MHZ3O30gLi1mcy14eHN7Zm9udC1zaXplOjAuMTVyZW07IC0tZnM6MC4xNXJlbTt9IC4tZnMteHN7Zm9udC1zaXplOjAuNXJlbTsgLS1mczowLjVyZW07fSAuLWZzLXN7Zm9udC1zaXplOjAuNzVyZW07IC0tZnM6MC43NXJlbTt9IC4tZnMtc3J7Zm9udC1zaXplOjAuOXJlbTsgLS1mczowLjlyZW07fSAuLWZzLWxye2ZvbnQtc2l6ZToxLjFyZW07IC0tZnM6MS4xcmVtO30gLi1mcy1se2ZvbnQtc2l6ZToxLjI1cmVtOyAtLWZzOjEuMjVyZW07fSAuLWZzLXhse2ZvbnQtc2l6ZToxLjVyZW07IC0tZnM6MS41cmVtO30gLi1mcy14eGx7Zm9udC1zaXplOjJyZW07IC0tZnM6MnJlbTt9IC4tZnMteHh4bHtmb250LXNpemU6Mi4yNXJlbTsgLS1mczoyLjI1cmVtO30gLi1mdzEge2ZvbnQtd2VpZ2h0OjEwMDt9IC4tZncyIHtmb250LXdlaWdodDoyMDA7fSAuLWZ3MyB7Zm9udC13ZWlnaHQ6MzAwO30gLi1mdzQge2ZvbnQtd2VpZ2h0OjQwMDt9IC4tZnc1IHtmb250LXdlaWdodDo1MDA7fSAuLWZ3NiB7Zm9udC13ZWlnaHQ6NjAwO30gLi1mdzcge2ZvbnQtd2VpZ2h0OjcwMDt9IC4tZnc4IHtmb250LXdlaWdodDo4MDA7fSAuLWZ3OSB7Zm9udC13ZWlnaHQ6OTAwO30gLi1ib2xkIHtmb250LXdlaWdodDpib2xkO30gLnR4dC1yZWQge2NvbG9yOiNjYzAwMDA7fSAudHh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcjt9IC50eHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodDt9IC50eHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQ7fSAudHh0LXVwcGVye3RleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpKTt9IC50eHQtbm90ZXtmb250LXN0eWxlOml0YWxpYzt9IC50eHQtcGF5bWVudCB7Y29sb3I6dmFyKC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlKSAhaW1wb3J0YW50O30gLi1wb3NyZWx7cG9zaXRpb246cmVsYXRpdmU7fSAuY2VydC10eHQtdHJhbnNmb3Jte3RleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgbm9uZSk7fSBbaGlkZGVuXSwgLmhpZGRlbiB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi1zbGlkZXIgPiAqeyBkaXNwbGF5Om5vbmU7IH0gLnNrZWxldG9uLXR4dHsgdGV4dC1pbmRlbnQ6MTAwJTsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgfSAuc2tlbGV0b24tYnRueyB3aWR0aDptaW4oMjByZW0sMTAwJSk7IGhlaWdodDoyLjVyZW07IGJvcmRlci1yYWRpdXM6MC41cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgbWFyZ2luOmF1dG87IH0gLnNrZWxldG9uLWJsb2NreyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IH0gLnNrZWxldG9uLXNsaWRlciwgLnNrZWxldG9uLXR4dCwgLnNrZWxldG9uLWJ0biwgLnNrZWxldG9uLWJsb2NrIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgZGlzcGxheTpibG9jazsgfSAuc2tlbGV0b24tc2xpZGVyOjphZnRlciwgLnNrZWxldG9uLXR4dDo6YWZ0ZXIsIC5za2VsZXRvbi1idG46OmFmdGVyLCAuc2tlbGV0b24tYmxvY2s6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBib3R0b206MDsgbGVmdDowOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7IGJhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAyMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSA2MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpOyBhbmltYXRpb246c2hpbW1lciAycyBpbmZpbml0ZTsgfSAuc2tlbGV0b24tc2xpZGVyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNTEyIDUxMiclM0UlM0NwYXRoIGQ9J000NjQgNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMTIgMTIwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6TTY0IDM4NGgzODRWMjcybC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMjA4IDMyMGwtNTUuNTE1LTU1LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDY0IDMzNnY0OHonIGZpbGw9JyUyM2VlZScvJTNFJTNDL3N2ZyUzRSIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG9wYWNpdHk6MC45OyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDEwMCUge3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO30gfSBAc3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lKSB7IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlcnsgYW5pbWF0aW9uOm5vbmU7IH0gfSAuY29udGVudC1za2VsZXRvbiB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyLXJhZGl1czowLjVyZW07IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG1heC13aWR0aDo0MDBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNvbnRlbnQtc2tlbGV0b24ucmVjdGFuZ2xlIHsgYXNwZWN0LXJhdGlvOnZhcigtLXJhdGlvLCAxNi85KTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0IHsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MXJlbTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0OjpiZWZvcmUsIC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjFyZW07IGJhY2tncm91bmQ6I2RkZDsgbWFyZ2luLWJvdHRvbTowLjVyZW07IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0OjphZnRlciB7IHdpZHRoOjcwJTsgfSAuY29udGVudC1za2VsZXRvbi5hY3RpdmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywgI2Y5ZjlmOSAyNSUsICNkZWRlZGUgNTAlLCAjZjlmOWY5IDc1JSk7IGJhY2tncm91bmQtc2l6ZToyMDAlIDEwMCU7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlIGxpbmVhcjsgfSBAa2V5ZnJhbWVzIHNoaW1tZXIgeyAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246MjAwJSAwOyB9IDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDAlIDA7IH0gfSAuY29udGVudC1za2VsZXRvbi5kZWJ1Zzo6YWZ0ZXIgeyBjb250ZW50OmF0dHIoZGF0YS1ibG9jaykgIiB8ICIgYXR0cihkYXRhLXNvdXJjZSkgIiB8ICIgYXR0cihkYXRhLWdlbmVyYXRlZC1hdCk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NHB4OyBsZWZ0OjRweDsgcmlnaHQ6NHB4OyBmb250LXNpemU6MC43cmVtOyBmb250LWZhbWlseTptb25vc3BhY2UsIHNhbnMtc2VyaWY7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpOyBwYWRkaW5nOjJweCA0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB6LWluZGV4OjEwOyBwb2ludGVyLWV2ZW50czpub25lOyB9IGJvZHkgeyB3aWR0aDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0LW1vYik7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgfSB1bCB7IGxpc3Qtc3R5bGU6bm9uZTsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5pdGlhbDsgbGlzdC1zdHlsZS1pbWFnZTppbml0aWFsOyB9IC5yZXNwb25zaXZlLWVkaXRvciB1bCB7IGxpc3Qtc3R5bGU6aW5oZXJpdDsgbGlzdC1zdHlsZS10eXBlOmluaGVyaXQ7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5oZXJpdDsgbGlzdC1zdHlsZS1pbWFnZTppbmhlcml0OyB9IHN2Zywgc3ZnLmljb257IC0taWNvbi1zaXplOmNhbGModmFyKC0tZnMsIHZhcigtLWZzMCkpIC8gdmFyKC0tcmF0aW8pKTsgZmlsbDp2YXIoLS10eHQtY29sb3IsIHZhcigtLWJsYWNrKSk7IHdpZHRoOnZhcigtLWljb24tc2l6ZSk7IGhlaWdodDp2YXIoLS1pY29uLXNpemUpOyB9IHN2Zy5hdXRob3JpemVkLWJsYWNre2ZpbGw6IzI4MjgyOCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC1ibGFjay1raWF7ZmlsbDojMDUxNDFGIWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLXJlZHtmaWxsOiNGRjAwMDAhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IC5hdXRob3JpemVkLXJlZC13aGl0ZS1wbGF5LWJ0bntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gc3ZnLm9nY29sb3ItZmFjZWJvb2t7ZmlsbDojNDI2N0IyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXR3aXR0ZXJ7ZmlsbDojMURBMUYyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXgtdHdpdHRlcntmaWxsOiMxNDE3MUEhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVyLXdoaXRle2ZpbGw6I0ZGRkZGRiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1saW5rZWRpbntmaWxsOiMwMDc3QjUhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItYmxvZ2dlcntmaWxsOiNGRjU3MjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItcGludGVyZXN0e2ZpbGw6I0U2MDAyMyFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci15b3V0dWJle2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1pbnN0YWdyYW17ZmlsbDojODMzQUI0IWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXRpa3Rva3tmaWxsOiNmZjAwNTAhaW1wb3J0YW50O30gLmZhY2Vib29rLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI0cHghaW1wb3J0YW50O21hcmdpbi10b3A6MnB4IWltcG9ydGFudDt9ICNmb290ZXIgLmZhY2Vib29rLW9naWNvbi10d2Vha3N7aGVpZ2h0OjIzcHghaW1wb3J0YW50O21hcmdpbi10b3A6MHB4IWltcG9ydGFudDt9IC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjhweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gI2Zvb3RlciAuaW5zdGFncmFtLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI5cHghaW1wb3J0YW50O21hcmdpbi10b3A6LTRweCFpbXBvcnRhbnQ7fSBzdmcuY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7ZmlsbDp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMjgyODI4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFjay1raWF7YmFja2dyb3VuZC1jb2xvcjojMDUxNDFGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1yZWR7YmFja2dyb3VuZC1jb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWZhY2Vib29re2JhY2tncm91bmQtY29sb3I6IzNhNTk5OCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItdHdpdHRlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjZWQhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXgtdHdpdHRlcntiYWNrZ3JvdW5kLWNvbG9yOiMxNDE3MUEhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWxpbmtlZGlue2JhY2tncm91bmQtY29sb3I6IzAwNzdCNSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItYmxvZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOiNGRjU3MjIhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXBpbnRlcmVzdHtiYWNrZ3JvdW5kLWNvbG9yOiNFNjAwMjMhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXlvdXR1YmV7YmFja2dyb3VuZC1jb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1pbnN0YWdyYW17YmFja2dyb3VuZC1jb2xvcjojZjIzOTk1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10aWt0b2t7YmFja2dyb3VuZC1jb2xvcjojZmYwMDUwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1ibGFja3tjb2xvcjojMjgyODI4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNrLWtpYXtjb2xvcjojMDUxNDFGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLXJlZHtjb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLXdoaXRle2NvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItZmFjZWJvb2t7Y29sb3I6IzNhNTk5OCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci10d2l0dGVye2NvbG9yOiMwMGFjZWQhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteC10d2l0dGVye2NvbG9yOiMxNDE3MUEhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2NvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItbGlua2VkaW57Y29sb3I6IzAwNzdCNSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1ibG9nZ2Vye2NvbG9yOiNGRjU3MjIhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItcGludGVyZXN0e2NvbG9yOiNFNjAwMjMhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteW91dHViZXtjb2xvcjojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWluc3RhZ3JhbXtjb2xvcjojZjIzOTk1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXRpa3Rva3tjb2xvcjojZmYwMDUwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntjb2xvcjp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAubm90ZS1ib3h7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAubm90ZS1zdWNjZXNzeyBjb2xvcjojMTU1NzI0OyBiYWNrZ3JvdW5kLWNvbG9yOiNkNGVkZGE7IGJvcmRlci1jb2xvcjojMTU1NzI0OyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IC5ub3RlLWVycm9yeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IGJvcmRlci1jb2xvcjojZmYwMDAwOyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IHVsLmNoZWNrbGlzdCBsaTpiZWZvcmV7IGNvbnRlbnQ6IiI7IGJvcmRlci1sZWZ0OjAuMnJlbSBzb2xpZDsgYm9yZGVyLWJvdHRvbTowLjJyZW0gc29saWQ7IHdpZHRoOjAuN3JlbTsgaGVpZ2h0OjAuNHJlbTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjFyZW07IH0gdWwuY2hlY2tsaXN0IGxpeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC4tYmctd2hpdGV7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctZGFyay1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRhcmstZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWJsYWNrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctbGlnaHR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQpOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLi1iZy1saWdodC1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLi1iZy1ub25le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7fSAuLXJvdW5keyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAucHVzaC1kb3dueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgfSAucHJpY2UtbWFpbnsgY29sb3I6I2ZmMDAwMDsgfSAucHJpY2Utc3RyaWtleyBjb2xvcjojOTk5OyB0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoOyB9IC5mb3JtYXQtcHJpY2V7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXgtd2lkdGg6Zml0LWNvbnRlbnQ7IG1hcmdpbi1yaWdodDowLjdyZW07IGxpbmUtaGVpZ2h0OjFlbTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNleyBtYXJnaW4tbGVmdDowLjZyZW07IG1hcmdpbi1yaWdodDp1bnNldDsgfSAuZm9ybWF0LXByaWNlOmFmdGVyeyBjb250ZW50OiIkIjsgZm9udC1zaXplOm1heCgwLjVyZW0sMC42ZW0pOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOnZhcigtLWZvcm1hdC1waWNlLXNpZ24tcG9zaXRpb24sMCk7IHJpZ2h0Oi0wLjZlbTsgbGluZS1oZWlnaHQ6aW5oZXJpdDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZTphZnRlcnsgbWFyZ2luLXRvcDotNXB4OyB9IC5maW5hbC1wcmljZSAuZm9ybWF0LXByaWNleyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDoycHg7IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IGxlZnQ6LTAuN2VtOyByaWdodDp1bnNldDsgfSAucHJpY2UtZW46YmVmb3JleyBjb250ZW50OiIkIjsgfSA6aXMoLnByaWNlLWVuKTpiZWZvcmV7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnByaWNlLWZyOmFmdGVyeyBjb250ZW50OiIgJCI7IH0gOmlzKC5wcmljZS1mcik6YWZ0ZXJ7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnNjcmF0Y2gtb3ZlciwgLnNjcmF0Y2gtbGVhc2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zY3JhdGNoLW92ZXI6YmVmb3JlLCAuc2NyYXRjaC1sZWFzZTpiZWZvcmV7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgY29udGVudDoiICI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDUlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgd2lkdGg6OTAlOyB9IC5FTkdMSVNIIDppcyguc2NyYXRjaC1sZWFzZSwuc2NyYXRjaC1vdmVyKTpoYXMoLmZvcm1hdC1wcmljZSk6YmVmb3JleyBtYXJnaW4tbGVmdDowLjVyZW07IH0gLmJsdXItb3ZlciwgLmJsdXItbGVhc2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjpibHVyKDAuMTVlbSk7IH0gLm91dC12aWV3eyBwb3NpdGlvbjpmaXhlZDsgdG9wOi0yMHB4OyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyB6LWluZGV4OjA7IH0gLnRvcC1maXhlZCB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6My4ycmVtOyBsZWZ0OjA7IHotaW5kZXg6MTAwOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1zKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm94LXNpemluZzpib3JkZXItYm94OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkID4gLnByb21vQlROIHsgbWFyZ2luOjA7IHdpZHRoOjkwdnc7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIC5jdGEtbGFiZWx7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYWluLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IH0gLnByb21vLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgfSAuYnRueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCk7IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1idG4tYnJkLWNvbCwgdmFyKC0tYnRuLXR4dC1jb2wpKTsgcGFkZGluZzowLjVyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kYXJrLWdyZXksIC5jYkRhcmtHcmV5eyAtLWJ0bi1iZy1jb2w6IzMzMzsgLS1idG4tdHh0LWNvbDojZmZmOyB9IFtyb2xlPSJidXR0b24iXXsgY3Vyc29yOnBvaW50ZXI7IH0gLmJ0bi1wcm9tb3sgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgY29sb3I6dmFyKC0tdHh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgcG9zaXRpb246cmVsYXRpdmU7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyOm5vbmU7IH0gLmJ0bi1jdGE6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1zdHlsZTpub3JtYWw7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MXJlbTsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLW1haW57IC0tYnRuLWJnLWNvbDp2YXIoLS10YWItY29sb3IpOyAtLWJ0bi10eHQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgLS1idG4tYnJkLWNvbDp2YXIoLS10YWItdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAuYnRuLW1haW4yLCAuYnRuLW1haW46aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmZmY7IC0tdHh0LWNvbG9yOiNmZmY7IH0gLmJ0bi1saWdodHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNhYWE7IGNvbG9yOiM4ODg7IH0gLmJ0bi1zdWNjZXNzeyAtLWJ0bi1iZy1jb2w6IzRjYWY1MDsgLS1idG4tdHh0LWNvbDojZmZmOyB9IC5idG4td2FybmluZ3sgLS1idG4tYmctY29sOiNmZjk4MDA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYm50LWRpc2FibGVkLCAuYnRuW2Rpc2FibGVkXSB7IGNvbG9yOnZhcigtLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXkpOyB9IC5idG4tZW1haWwtbWUsIC5idG4tdGV4dC1tZXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmMGUwIjsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tdGV4dC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmM2NkIjsgZm9udC1zaXplOngtbGFyZ2U7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLWVtYWlsLW1lOmJlZm9yZSwgLmJ0bi10ZXh0LW1lOmJlZm9yZXsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IG1hcmdpbi1yaWdodDo1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTFweDsgfSBidXR0b24ucm91bmQtYnV0dG9ueyBhbGw6aW5oZXJpdDsgYm9yZGVyLXJhZGl1czo1MCU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBmaWxsOnZhcigtLXRhYi1jb2xvcik7IHBhZGRpbmc6MC4zcmVtOyBjdXJzb3I6cG9pbnRlcjsgfSBidXR0b24uaWNvbi1idXR0b257IGNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MC41cmVtOyB3aWR0aDphdXRvOyB9IC54LWNsb3NleyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB2aWV3Qm94PScwIDAgMTAgMTAnJTNFJTNDc3R5bGUlM0UudmVydCU3QmZpbGw6JTIzMDAwOyU3RCUzQy9zdHlsZSUzRSUzQ3JlY3QgY2xhc3M9J3ZlcnQnIGhlaWdodD0nOCcgd2lkdGg9JzInIHk9JzEnIHg9JzQnJTNFJTNDL3JlY3QlM0UlM0NyZWN0IGhlaWdodD0nMicgd2lkdGg9JzgnIHk9JzQnIHg9JzEnJTNFJTNDL3JlY3QlM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlcjpub25lOyB3aWR0aDoxLjVyZW07IGhlaWdodDoxLjVyZW07IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyBjdXJzb3I6cG9pbnRlcjsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IGxlZnQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2IoMCwgMCwgMCkgMTAlLCB0cmFuc3BhcmVudCAxMC4wMSUpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246NTAlOyB0cmFuc2Zvcm06c2NhbGUoMTAsMTApOyBvcGFjaXR5OjA7IHRyYW5zaXRpb246dHJhbnNmb3JtIC41cywgb3BhY2l0eSAxczsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphY3RpdmU6YWZ0ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMCwwKTsgb3BhY2l0eTouMjsgdHJhbnNpdGlvbjowczsgfSAubG9nb2FyZWEgeyBtaW4taGVpZ2h0OjdyZW07IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1oZWFkZXItYmctY29sb3IpOyB9IGEgPiA6d2hlcmUoOmlzKHN2ZywgLmZhLCAuZmFzKTpmaXJzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpKXsgbWFyZ2luLXJpZ2h0OjAuNnJlbTsgfSAucHJvbW9Ub3BCdG4gOmlzKGEsYnV0dG9uKSB7IC0tZnM6dmFyKC0tZnMxKTsgLS10eHQtY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojZjNmM2YzOyBoZWlnaHQ6My4ycmVtOyBmb250LXNpemU6dmFyKC0tZnMxKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQ6dmFyKC0tdG9wLXByb21vLWJ0bi1iZywgdmFyKC0tdG9wLXByb21vLWJ0bi1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS10b3AtcHJvbW8tYnRuLXR4dCwgdmFyKC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3IpKTsgfSAucHJvbW9Ub3BCdG4uZGVhbGVyTGluZUJ1dHRvbiA6aXMoYSxidXR0b24peyAtLXR4dC1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IGJhY2tncm91bmQ6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyB3aWR0aDoxMDAlOyB9IDppcygucHJvbW9Ub3BCdG4sbGFiZWwpLmZsb2F0aW5neyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEuNXJlbTsgcmlnaHQ6MS41cmVtOyB6LWluZGV4OjEwOyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZy53aXRoVG9hc3RlciB7Ym90dG9tOjZyZW07fSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcgOmlzKGEsYnV0dG9uKXsgLS1mczp2YXIoLS1mczUpOyBwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXItd2lkdGg6MXB4OyBoZWlnaHQ6dW5zZXQ7IH0gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbikgc3BhbiB7ZGlzcGxheTpub25lO30gLmljb24taGVhZGluZyBzcGFuLmZheyBmb250LXNpemU6aW5oZXJpdDsgd2lkdGg6MWVtOyBwYWRkaW5nOjAuMmVtOyBoZWlnaHQ6MWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5pY29uLWhlYWRpbmcgLnNlY29uZGFyeVRleHR7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjc1ZW07IH0gLmdyb3VwVGFicyA+ICp7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6Y2FsYygxLjJyZW0gKyAoMjAgLSAxOCkgKiAoKDEwMHZ3IC0gMzIwcHgpIC8gKDExMDAgLSAzMDApKSk7IH0gLmdyb3VwVGFicyA+ICo6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgfSAuZ3JvdXBUYWJzIC50YWItbGFiZWwsIC5uZXdDYXJTbGlkZXIgLmNhcm91c2VsVGl0bGV7IGNvbG9yOnZhcigtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvciwgdmFyKC0tZGVmYXVsdC1ibGFjaykpOyB9IC5ncm91cFRhYnMgLmFjdGl2ZVRhYiAudGFiLWxhYmVseyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgYm9yZGVyLWJvdHRvbTozcHggc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS10YWItY29sb3IpOyB9IC5jYXJTbGlkZXJ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuY2FyU2xpZGVyID4gKnsgd2lkdGg6bWluKDkwcmVtLDEwMCUpOyB9IC5jYXJTbGlkZXIuLWJnLWxpZ2h0LWdyYXkgPiAqeyBtYXgtd2lkdGg6bWluKDc1cmVtLDEwMCUpOyB9IC5uZXdDYXJDYXJkeyBoZWlnaHQ6MTAwJTsgbWluLWhlaWdodDoyN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgfSAubmV3Q2FyQ2FyZCBpbWd7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6LTFyZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jYXJQYXltZW50V3JhcHBlcnsgd2lkdGg6bWluKDEwMCUsMjVyZW0pOyBtaW4taGVpZ2h0OjVyZW07IH0gLmNhclBheW1lbnRXcmFwcGVyIC5wYXltZW50QmxvY2t7IGhlaWdodDoxMDAlOyB9IC5wYXltZW50c0Rpc2FibGVkIC5uZXdDYXJDYXJkeyBtaW4taGVpZ2h0OjIycmVtOyB9IC52ZWhpY2xlQ2Fyb3VzZWwgLm5ld0NhckNhcmR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB3aWR0aDoyMy43cmVtOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IG1hcmdpbjowIDAuNHJlbTsgaGVpZ2h0OjEwMCUgfSAubmV3Q2FyQ2FyZCAucHJvbW8tYmFkZ2V7IGhlaWdodDpmaXQtY29udGVudDsgbWluLXdpZHRoOjZyZW07IH0gLm5ld0NhckNhcmQ6aG92ZXJ7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAubmV3Q2FyQ2FyZDpob3ZlciAuaW5TdG9ja0xpbmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLm5ld0NhckNhcmQgLmNhcmQtYm9keXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMnJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sY3sgbWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWJvdHRvbTowOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sYzpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6MC41cmVtOyBtYXgtaGVpZ2h0OjEwcmVtOyB9IC5uZXdDYXJDYXJkIC5kZXNrdG9wUGF5bWVudHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5ld0NhckNhcmQgc3Bhbi5wYXltZW50Q2FsY0J0bi5kZXNrdG9weyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6NyU7IGZvbnQtc2l6ZToxLjdlbTsgY3Vyc29yOnBvaW50ZXI7IH0gLnVzZWRDYXJTbGlkZXsgZGlzcGxheTpibG9jazsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGhlaWdodDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAuc2xpZGVDb250ZW50eyBoZWlnaHQ6MTAwJSB9IC5hbmltYXRlZC10cmlhbmdsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgY29udGVudDoiXGYwNzEiOyB9IC5hbmltYXRlZC10cmlhbmdsZSBpeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmcsIC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXIgeyBhbmltYXRpb246cmlwcGxlLTEgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjVzOyBhbmltYXRpb246cmlwcGxlLTIgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjc1czsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlcnsgdG9wOjA7IGxlZnQ6MDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmd7IHRvcDoxcHg7IGxlZnQ6LTFyZW07IH0gQGtleWZyYW1lcyByaXBwbGUtMSB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxLjcpOyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHJpcHBsZS0yIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDIpOyBvcGFjaXR5OjA7IH0gfSBzcGFuLmFzdGVyaXg6YWZ0ZXJ7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjJyZW07IH0gZGl2LnByaWNlTm90ZS5hc3Rlcml4OmJlZm9yZXsgY29udGVudDoiKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSBmb290ZXIgeyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZm9vdGVyLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9IGEudmlzaXRDb250YWN0QnV0dG9ueyAtLXR4dC1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyB9IC5jRm9vdGVyQ2FyTGlua3MgbGkuY0l0ZW1FeHBlbmR7IGRpc3BsYXk6bm9uZTsgfSAuY0Zvb3RlckNhckxpbmtzIGgzLCAuZm9vdGVyX2FkZHJlc3MgLmFkciA+IHNwYW57IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcyBzcGFuLmgzLWFsdCB7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcy5jTGlzdEV4cGVuZGVkIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5OmJsb2NrOyB9IC5jRXhwZW5kTGlzdCBidXR0b257IHBhZGRpbmc6dmFyKC0tcykgMDsgYmFja2dyb3VuZDpub25lOyB9IC5jb25kaXRpb25zRm9vdGVyIHsgY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IsICM5MTkxOTEpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItY29uZGl0aW9ucy1jb2xvcik7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24geyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEwcHg7IG1hcmdpbjo1cHggNXB4IDE1cHggMTVweDsgei1pbmRleDo0OyB3aWR0aDoxNDBweCAhaW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlYTAwMjk7IHRleHQtYWxpZ246bGVmdDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10cmFkZWluYmFyLWJ0bi1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWJ0bi1jb2xvcik7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci13aWR0aDoxcHggM3B4IDRweCAxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIGl7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGJvcmRlci1yYWRpdXM6MTAwJTsgd2lkdGg6MmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGJvcmRlcjoycHggc29saWQgI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MS41ZW07IGNvbG9yOiMwMDA7IGZsb2F0OmxlZnQ7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24ud2l0aFRvYXN0ZXIgeyBib3R0b206NXJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IGJvcmRlcjoxcHggc29saWQgZ3JleTsgcGFkZGluZzoyMHB4IDQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5idG4udHJhZGVJbkJhclBvcHVwU3VibWl0eyBwYWRkaW5nOjAuNzVyZW0gMC4zNzVyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMDAwOyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVd7IGhlaWdodDo1ODBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrLXRleHQpOyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IHBhZGRpbmc6MTFweCAxMHB4OyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDoyNTBweDsgbWFyZ2luOjVweCAwIDA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGluU2VsZWN0UG9wdXB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjpwbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IG9wYWNpdHk6MTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9IC50cmFkaW5TZWxlY3QsIC50cmFkaW5TZWxlY3RQb3B1cCB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBtYXJnaW46NXB4IDAgMDsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IH0gLnRyYWRpblNlbGVjdEEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgKjpub3QoLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIDppcyhpbnB1dCwgc2VsZWN0KSl7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgOmlzKGlucHV0W3R5cGU9InRleHQiXTpub3QoLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0KSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdLHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCwgc2VsZWN0LnN0ZXAyNHNlbGVjdCkpeyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXJhZGl1czowLjNyZW07IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojYTlhOWE5OyB9IFtkYXRhLXBhZ2U9IkhPTUVQQUdFIl17IGJhY2tncm91bmQtY29sb3I6dmFyKC0taG9tZS1iZy1jb2xvciwgI0ZGRkZGRik7IH0gLnl0LWJnLWNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYmFubmVyLWJnLWNvbnRhaW5lcnsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IGJhY2tncm91bmQtYmxlbmQtbW9kZTpjb2xvcjsgfSAjeW91dHViZV9fY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZy1ib3R0b206bWluKGNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSksNjd2dyk7IGJhY2tncm91bmQtY29sb3I6Izg4ODsgfSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTQ1JTsgbGVmdDotMTAlOyBoZWlnaHQ6MTkwJTsgd2lkdGg6MTIwJTsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAjeW91dHViZV9fY29udGFpbmVyOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KXsgcGFkZGluZy1ib3R0b206Y2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQsMTByZW0pKTsgfSA6aXMoLmZ1bGxIZWlnaHQsLnZpc2libGVIZWlnaHQpICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEwMCU7IHRvcDowOyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbFdpZHRoeyBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyeyBwYWRkaW5nLWJvdHRvbTptYXgoNjd2dywyNHJlbSk7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyICNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXJ7IGhlaWdodDptYXgoNjd2dywyNHJlbSk7IG1pbi1oZWlnaHQ6MThyZW07IHotaW5kZXg6MTsgfSAuZnVsbFdpZHRoICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEyMCU7IHRvcDotMTAlOyB9IC55dC12aWRlb3sgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC55dC1wbGF5eyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczpDQyBCWSA0LjAsIEZvbnRzOlNJTCBPRkwgMS4xLCBDb2RlOk1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNNTQ5LjY1NSAxMjQuMDgzYy02LjI4MS0yMy42NS0yNC43ODctNDIuMjc2LTQ4LjI4NC00OC41OTdDNDU4Ljc4MSA2NCAyODggNjQgMjg4IDY0UzExNy4yMiA2NCA3NC42MjkgNzUuNDg2Yy0yMy40OTcgNi4zMjItNDIuMDAzIDI0Ljk0Ny00OC4yODQgNDguNTk3LTExLjQxMiA0Mi44NjctMTEuNDEyIDEzMi4zMDUtMTEuNDEyIDEzMi4zMDVzMCA4OS40MzggMTEuNDEyIDEzMi4zMDVjNi4yODEgMjMuNjUgMjQuNzg3IDQxLjUgNDguMjg0IDQ3LjgyMUMxMTcuMjIgNDQ4IDI4OCA0NDggMjg4IDQ0OHMxNzAuNzggMCAyMTMuMzcxLTExLjQ4NmMyMy40OTctNi4zMjEgNDIuMDAzLTI0LjE3MSA0OC4yODQtNDcuODIxIDExLjQxMi00Mi44NjcgMTEuNDEyLTEzMi4zMDUgMTEuNDEyLTEzMi4zMDVzMC04OS40MzgtMTEuNDEyLTEzMi4zMDV6bS0zMTcuNTEgMjEzLjUwOFYxNzUuMTg1bDE0Mi43MzkgODEuMjA1LTE0Mi43MzkgODEuMjAxeiIgZmlsbD0iJTIzYzMzYzJkIiAvJTNFJTNDL3N2ZyUzRScpOyB3aWR0aDo1cmVtOyBoZWlnaHQ6NXJlbTsgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgb3BhY2l0eTowLjc7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIHsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDpjYWxjKDEwMHZ3IC8gKDE2IC8gOSkpOyBvdmVyZmxvdzpoaWRkZW47IG1heC13aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IH0gLm1vYmlsZV9idXNpbmVzc0Rlc2MgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iLCB2YXIoLS1mb290ZXItYmctY29sb3IpKTsgY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iLCB2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpKTsgfSAuYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyAqIHsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC53cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgd2lkdGg6OTYwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5sYW5ndWFnZUJhciB7IG1hcmdpbjoxcmVtIGF1dG8gNXB4OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowIHZhcigtLXMpOyB9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1pbi1oZWlnaHQ6OHJlbTsgcGFkZGluZzowIHZhcigtLXMpOyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBhbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAjdHJhZGVJbkJhck1vYmlsZXsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOjVweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjNweCA1cHggNXB4IDVweDsgfSAjdHJhZGVJbkJhck1vYmlsZSAubWlkZGxleyBjb2xvcjojZmZmZmZmOyB9ICN0cmFkZUluQmFyTW9iaWxlICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IHBhZGRpbmc6NXB4IDIwcHggMHB4IDIwcHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGRpdnsgbWF4LXdpZHRoOjMzMHB4OyBtYXJnaW46MTBweCBhdXRvOyBwYWRkaW5nOjEycHggMDsgYm9yZGVyLXJhZGl1czoycHg7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgfSAjdHJhZGVJbkJhck1vYmlsZSAuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXIgYXsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IGZvbnQtd2VpZ2h0OjcwMDsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lckxvZ28gc3BhbnsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6MzAwOyBjb2xvcjp2YXIoLS1taWQtZ3JheSk7IH0gI3RyYWRlSW5CYXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWNvbG9yKTsgfSAjdHJhZGVJbkJhcldNb2JpbGUsICN0cmFkZUluQmFyVyB7IGRpc3BsYXk6ZmxleDsgbWluLWhlaWdodDo1MHB4OyBtYXJnaW46YXV0bzsgd2lkdGg6bWluKDEwMCUsMTM1MHB4KTsgcG9zaXRpb246cmVsYXRpdmU7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtID4gYXsgcGFkZGluZzo0cHggMTJweDsgaGVpZ2h0OjE4cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGJvcmRlci1yYWRpdXM6MDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmcsIHZhcigtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3IpKTsgY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvciwgd2hpdGUgKTsgfSAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYTpob3ZlciB7IGJvcmRlci1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IH0gI2FsZXJ0TXNnQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB6LWluZGV4Ojk5OTsgd2lkdGg6MTAwJTsgY29sb3I6d2hpdGU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1hbGVydC1iYXItdGV4dC1jb2xvcik7IGZvbnQtd2VpZ2h0OjYwMDsgfSAjYWxlcnRNc2dDb250YWluZXIuc3RpY2stdG9weyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyB6LWluZGV4Ojk5OTk5OyB9IEBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KSB7IC5hbGVydC1oaWRlLW9uLW1vYmlsZSB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IH0gLmZhLWZpeC1jZW50ZXI6YmVmb3JlIHsgd2lkdGg6MS41ZW07IGhlaWdodDoxLjVlbTsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBkaXNwbGF5OmZsZXg7IH0gI3lvdXR1YmVfX2NvbnRhaW5lci5mdWxsc2NyZWVueyBvYmplY3QtZml0OmNvdmVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDowOyByaWdodDowOyB0b3A6MDsgb3BhY2l0eTowLjg7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcywgYm9yZGVyIC4zczsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIud2l0aC1hbGVydCB7IHRvcDo0MHB4OyB9IC5wYXltZW50QmxvY2tDb250YWluZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNlcnQtY29uY3JldGUtZ3JheSwgdmFyKC0tbGlnaHQtZ3JheSkpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC52ZWhpY2xlTG9jYXRpb257IGJvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5saW5lU2VwYXJhdG9yeyBib3JkZXItdG9wOjFweCBzb2xpZCAjQTlBOUE5OyBtYXJnaW4tdG9wOjQwcHg7IG1hcmdpbi1ib3R0b206NDBweDsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uZmEtaGFuZC1wb2ludGVyLWNvbG9yIHsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luLXJpZ2h0OjVweDsgbWFyZ2luLXRvcDo1cHg7IH0gLmNvbmZsaWN0LXJlc29sdmUtb3B0aW9ucyB7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0KLyoqIC9jc3MvZm9udGF3ZXNvbWUtYWxsLm1pbi5jc3MgKiovCi5mYSwuZmFzLC5mYXIsLmZhbCwuZmFkLC5mYWJ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXJlbmRlcmluZzphdXRvO2xpbmUtaGVpZ2h0OjF9LmZhLWxne2ZvbnQtc2l6ZToxLjMzMzMzZW07bGluZS1oZWlnaHQ6Ljc1ZW07dmVydGljYWwtYWxpZ246LS4wNjY3ZW19LmZhLXhze2ZvbnQtc2l6ZTouNzVlbX0uZmEtc217Zm9udC1zaXplOi44NzVlbX0uZmEtMXh7Zm9udC1zaXplOjFlbX0uZmEtMnh7Zm9udC1zaXplOjJlbX0uZmEtM3h7Zm9udC1zaXplOjNlbX0uZmEtNHh7Zm9udC1zaXplOjRlbX0uZmEtNXh7Zm9udC1zaXplOjVlbX0uZmEtNnh7Zm9udC1zaXplOjZlbX0uZmEtN3h7Zm9udC1zaXplOjdlbX0uZmEtOHh7Zm9udC1zaXplOjhlbX0uZmEtOXh7Zm9udC1zaXplOjllbX0uZmEtMTB4e2ZvbnQtc2l6ZToxMGVtfS5mYS1md3t0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxLjI1ZW19LmZhLXVse2xpc3Qtc3R5bGUtdHlwZTpub25lO21hcmdpbi1sZWZ0OjIuNWVtO3BhZGRpbmctbGVmdDowfS5mYS11bCA+IGxpe3Bvc2l0aW9uOnJlbGF0aXZlfS5mYS1saXtsZWZ0Oi0yZW07cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MmVtO2xpbmUtaGVpZ2h0OmluaGVyaXR9LmZhLWJvcmRlcntib3JkZXI6c29saWQgLjA4ZW0gI2VlZTtib3JkZXItcmFkaXVzOi4xZW07cGFkZGluZzouMmVtIC4yNWVtIC4xNWVtfS5mYS1wdWxsLWxlZnR7ZmxvYXQ6bGVmdH0uZmEtcHVsbC1yaWdodHtmbG9hdDpyaWdodH0uZmEuZmEtcHVsbC1sZWZ0LC5mYXMuZmEtcHVsbC1sZWZ0LC5mYXIuZmEtcHVsbC1sZWZ0LC5mYWwuZmEtcHVsbC1sZWZ0LC5mYWIuZmEtcHVsbC1sZWZ0e21hcmdpbi1yaWdodDouM2VtfS5mYS5mYS1wdWxsLXJpZ2h0LC5mYXMuZmEtcHVsbC1yaWdodCwuZmFyLmZhLXB1bGwtcmlnaHQsLmZhbC5mYS1wdWxsLXJpZ2h0LC5mYWIuZmEtcHVsbC1yaWdodHttYXJnaW4tbGVmdDouM2VtfS5mYS1zcGluey13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO2FuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcn0uZmEtcHVsc2V7LXdlYmtpdC1hbmltYXRpb246ZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTthbmltYXRpb246ZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KX1ALXdlYmtpdC1rZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBmYS1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uZmEtcm90YXRlLTkwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MSk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uZmEtcm90YXRlLTE4MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uZmEtcm90YXRlLTI3MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0uZmEtZmxpcC1ob3Jpem9udGFsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTAsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwxKTt0cmFuc2Zvcm06c2NhbGUoLTEsMSl9LmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MixtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEsLTEpO3RyYW5zZm9ybTpzY2FsZSgxLC0xKX0uZmEtZmxpcC1ib3RoLC5mYS1mbGlwLWhvcml6b250YWwuZmEtZmxpcC12ZXJ0aWNhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsLTEpO3RyYW5zZm9ybTpzY2FsZSgtMSwtMSl9OnJvb3QgLmZhLXJvdGF0ZS05MCw6cm9vdCAuZmEtcm90YXRlLTE4MCw6cm9vdCAuZmEtcm90YXRlLTI3MCw6cm9vdCAuZmEtZmxpcC1ob3Jpem9udGFsLDpyb290IC5mYS1mbGlwLXZlcnRpY2FsLDpyb290IC5mYS1mbGlwLWJvdGh7LXdlYmtpdC1maWx0ZXI6bm9uZTtmaWx0ZXI6bm9uZX0uZmEtc3RhY2t7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjJlbTtsaW5lLWhlaWdodDoyZW07cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjIuNWVtfS5mYS1zdGFjay0xeCwuZmEtc3RhY2stMnh7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9LmZhLXN0YWNrLTF4e2xpbmUtaGVpZ2h0OmluaGVyaXR9LmZhLXN0YWNrLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLWludmVyc2V7Y29sb3I6I2ZmZn0uZmEtNTAwcHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjZlIn0uZmEtYWNjZXNzaWJsZS1pY29uOmJlZm9yZXtjb250ZW50OiJcZjM2OCJ9LmZhLWFkZHJlc3MtYm9vazpiZWZvcmV7Y29udGVudDoiXGYyYjkifS5mYS1hZGRyZXNzLWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmJiIn0uZmEtYWlyLWZyZXNoZW5lcjpiZWZvcmV7Y29udGVudDoiXGY1ZDAifS5mYS1hbGFybS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYzNGUifS5mYS1hbWJ1bGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGY5In0uZmEtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYxN2IifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDMifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTA3In0uZmEtYW5nbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDQifS5mYS1hbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDUifS5mYS1hbmdsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDYifS5mYS1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxNzkifS5mYS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLWFycm93LWFsdC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTgifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU5In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNWEifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1YiJ9LmZhLWFycm93LWFsdC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1NCJ9LmZhLWFycm93LWFsdC1mcm9tLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNDYifS5mYS1hcnJvdy1hbHQtZnJvbS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0NyJ9LmZhLWFycm93LWFsdC1mcm9tLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0OCJ9LmZhLWFycm93LWFsdC1mcm9tLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDkifS5mYS1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTUifS5mYS1hcnJvdy1hbHQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU2In0uZmEtYXJyb3ctYWx0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1MCJ9LmZhLWFycm93LWFsdC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTEifS5mYS1hcnJvdy1hbHQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1MiJ9LmZhLWFycm93LWFsdC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzUzIn0uZmEtYXJyb3ctYWx0LXRvLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNGEifS5mYS1hcnJvdy1hbHQtdG8tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNGIifS5mYS1hcnJvdy1hbHQtdG8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzRjIn0uZmEtYXJyb3ctYWx0LXRvLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNGQifS5mYS1hcnJvdy1hbHQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzU3In0uZmEtYXJyb3ctY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGFiIn0uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE4In0uZmEtYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhOSJ9LmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYwYWEifS5mYS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA2MyJ9LmZhLWFycm93LWZyb20tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0MiJ9LmZhLWFycm93LWZyb20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNDMifS5mYS1hcnJvdy1mcm9tLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0NCJ9LmZhLWFycm93LWZyb20tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0NSJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYwIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYxIn0uZmEtYXJyb3ctc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzM5In0uZmEtYXJyb3ctc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNhIn0uZmEtYXJyb3ctc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMzYiJ9LmZhLWFycm93LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzM2MifS5mYS1hcnJvdy10by1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzNkIn0uZmEtYXJyb3ctdG8tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzM2UifS5mYS1hcnJvdy10by1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDAifS5mYS1hcnJvdy10by10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQxIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZjA0NyJ9LmZhLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGIyIn0uZmEtYXJyb3dzLWFsdC1oOmJlZm9yZXtjb250ZW50OiJcZjMzNyJ9LmZhLWFycm93cy1hbHQtdjpiZWZvcmV7Y29udGVudDoiXGYzMzgifS5mYS1hcnJvd3MtaDpiZWZvcmV7Y29udGVudDoiXGYwN2UifS5mYS1hcnJvd3MtdjpiZWZvcmV7Y29udGVudDoiXGYwN2QifS5mYS1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmEyIn0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtYXVkaW8tZGVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMjllIn0uZmEtYXdhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTU5In0uZmEtYmFkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMzM1In0uZmEtYmFkZ2UtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzM2In0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtYmFyY29kZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDYzIn0uZmEtYmFyczpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjQwIn0uZmEtYmF0dGVyeS1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI0MiJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtYmVsbC1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGY4NDgifS5mYS1iZWxsLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmODQ5In0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1ibG9nOmJlZm9yZXtjb250ZW50OiJcZjc4MSJ9LmZhLWJsb2dnZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdjIn0uZmEtYmxvZ2dlci1iOmJlZm9yZXtjb250ZW50OiJcZjM3ZCJ9LmZhLWJsdWV0b290aDpiZWZvcmV7Y29udGVudDoiXGYyOTMifS5mYS1ibHVldG9vdGgtYjpiZWZvcmV7Y29udGVudDoiXGYyOTQifS5mYS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjAyZSJ9LmZhLWJveC1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjQ5ZSJ9LmZhLWJyb2FkY2FzdC10b3dlcjpiZWZvcmV7Y29udGVudDoiXGY1MTkifS5mYS1idGM6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0uZmEtYnVnOmJlZm9yZXtjb250ZW50OiJcZjE4OCJ9LmZhLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9LmZhLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZjBhMSJ9LmZhLWJ1bGxzZXllOmJlZm9yZXtjb250ZW50OiJcZjE0MCJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDoiXGYyMDcifS5mYS1idXMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU1ZSJ9LmZhLWJ1cy1zY2hvb2w6YmVmb3Jle2NvbnRlbnQ6IlxmNWRkIn0uZmEtY2FsY3VsYXRvcjpiZWZvcmV7Y29udGVudDoiXGYxZWMifS5mYS1jYWxjdWxhdG9yLWFsdDpiZWZvcmV7Y29udGVudDoiXGY2NGMifS5mYS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMzMifS5mYS1jYWxlbmRhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDczIn0uZmEtY2FsZW5kYXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjc0In0uZmEtY2FsZW5kYXItZWRpdDpiZWZvcmV7Y29udGVudDoiXGYzMzMifS5mYS1jYWxlbmRhci1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzMzQifS5mYS1jYWxlbmRhci1taW51czpiZWZvcmV7Y29udGVudDoiXGYyNzIifS5mYS1jYWxlbmRhci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyNzMifS5mYS1jYW1lcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMDMwIn0uZmEtY2FtZXJhLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMzIifS5mYS1jYW1lcmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGY4ZmUifS5mYS1jYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWI5In0uZmEtY2FyLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1ZGUifS5mYS1jYXItYmF0dGVyeTpiZWZvcmV7Y29udGVudDoiXGY1ZGYifS5mYS1jYXItYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmODU5In0uZmEtY2FyLWJ1bXA6YmVmb3Jle2NvbnRlbnQ6IlxmNWUwIn0uZmEtY2FyLWJ1czpiZWZvcmV7Y29udGVudDoiXGY4NWEifS5mYS1jYXItY3Jhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWUxIn0uZmEtY2FyLWdhcmFnZTpiZWZvcmV7Y29udGVudDoiXGY1ZTIifS5mYS1jYXItbWVjaGFuaWM6YmVmb3Jle2NvbnRlbnQ6IlxmNWUzIn0uZmEtY2FyLXNpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmNWU0In0uZmEtY2FyLXRpbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWU1In0uZmEtY2FyLXdhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWU2In0uZmEtY2FyYXZhbjpiZWZvcmV7Y29udGVudDoiXGY4ZmYifS5mYS1jYXJhdmFuLWFsdDpiZWZvcmV7Y29udGVudDoiXGUwMDAifS5mYS1jYXJldC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMmQifS5mYS1jYXJldC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMmUifS5mYS1jYXJldC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMwIn0uZmEtY2FyZXQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMzMSJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGQ3In0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwZDkifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwZGEifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxOTEifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkOCJ9LmZhLWNhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmODViIn0uZmEtY2FydC1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjIxOCJ9LmZhLWNhcnQtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMTcifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmNmMwIn0uZmEtY2hhbGtib2FyZDpiZWZvcmV7Y29udGVudDoiXGY1MWIifS5mYS1jaGFyZ2luZy1zdGF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjVlNyJ9LmZhLWNoYXJ0LWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAxIn0uZmEtY2hhcnQtbGluZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjY0ZCJ9LmZhLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjAwYyJ9LmZhLWNoZWNrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTgifS5mYS1jaGVjay1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTYwIn0uZmEtY2hlY2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YSJ9LmZhLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTNhIn0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyMiJ9LmZhLWNoZXZyb24tZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzIzIn0uZmEtY2hldnJvbi1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI0In0uZmEtY2hldnJvbi1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzI1In0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA3OCJ9LmZhLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNTMifS5mYS1jaGV2cm9uLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA1NCJ9LmZhLWNoZXZyb24tc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzI5In0uZmEtY2hldnJvbi1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMmEifS5mYS1jaGV2cm9uLXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMmIifS5mYS1jaGV2cm9uLXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMmMifS5mYS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZjA3NyJ9LmZhLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxMTEifS5mYS1jaXJjbGUtbm90Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWNlIn0uZmEtY2l0eTpiZWZvcmV7Y29udGVudDoiXGY2NGYifS5mYS1jbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI4In0uZmEtY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtY2xvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRkIn0uZmEtY2xvc2VkLWNhcHRpb25pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMjBhIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtY2xvdWQtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVkIn0uZmEtY2xvdWQtZG93bmxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MSJ9LmZhLWNsb3VkLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWUifS5mYS1jbG91ZC11cGxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MiJ9LmZhLWNsdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzI3In0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWNvZzpiZWZvcmV7Y29udGVudDoiXGYwMTMifS5mYS1jb2dzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc1In0uZmEtY29tbWVudC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjdhIn0uZmEtY29tbWVudC1hbHQtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNGEyIn0uZmEtY29tbWVudC1hbHQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MCJ9LmZhLWNvbW1lbnQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLWNvbW1lbnRzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0YjYifS5mYS1jb21tZW50cy1hbHQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MiJ9LmZhLWNvbW1lbnRzLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTMifS5mYS1jb21wcmVzcy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDIyIn0uZmEtY29tcHJlc3MtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY3OGMifS5mYS1jb3B5OmJlZm9yZXtjb250ZW50OiJcZjBjNSJ9LmZhLWNvcHlyaWdodDpiZWZvcmV7Y29udGVudDoiXGYxZjkifS5mYS1jb3VjaDpiZWZvcmV7Y29udGVudDoiXGY0YjgifS5mYS1jcmVhdGl2ZS1jb21tb25zLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjRmMiJ9LmZhLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjA5ZCJ9LmZhLWN1dDpiZWZvcmV7Y29udGVudDoiXGYwYzQifS5mYS1kYXRhYmFzZTpiZWZvcmV7Y29udGVudDoiXGYxYzAifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWRpYW1vbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE5In0uZmEtZGlnaXRhbC10YWNob2dyYXBoOmJlZm9yZXtjb250ZW50OiJcZjU2NiJ9LmZhLWRvbGxhci1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9LmZhLWRvdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTkyIn0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE5In0uZmEtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYwNDQifS5mYS1lbGxpcHNpcy1oOmJlZm9yZXtjb250ZW50OiJcZjE0MSJ9LmZhLWVsbGlwc2lzLWgtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM5YiJ9LmZhLWVsbGlwc2lzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMTQyIn0uZmEtZWxsaXBzaXMtdi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzljIn0uZmEtZW5naW5lLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNWYyIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDoiXGYyYjYifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZXJhc2VyOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9LmZhLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjBlYyJ9LmZhLWV4Y2hhbmdlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjIifS5mYS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMmEifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZhIn0uZmEtZXhjbGFtYXRpb24tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjMyMSJ9LmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjA3MSJ9LmZhLWV4cGFuZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDI0In0uZmEtZXhwYW5kLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYzMWQifS5mYS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMWUifS5mYS1leHRlcm5hbC1saW5rOmJlZm9yZXtjb250ZW50OiJcZjA4ZSJ9LmZhLWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YyJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWZhY2Vib29rLWY6YmVmb3Jle2NvbnRlbnQ6IlxmMzllIn0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWZhY2Vib29rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODIifS5mYS1mYXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0uZmEtZmlsZTpiZWZvcmV7Y29udGVudDoiXGYxNWIifS5mYS1maWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxNWMifS5mYS1maWxlLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM2In0uZmEtZmlsZS1hdWRpbzpiZWZvcmV7Y29udGVudDoiXGYxYzcifS5mYS1maWxlLWNoYXJ0LWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjU5In0uZmEtZmlsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYzMTYifS5mYS1maWxlLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM5In0uZmEtZmlsZS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGY1NmQifS5mYS1maWxlLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFjIn0uZmEtZmlsZS1leGNlbDpiZWZvcmV7Y29udGVudDoiXGYxYzMifS5mYS1maWxlLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjMxYSJ9LmZhLWZpbGUtZXhwb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZSJ9LmZhLWZpbGUtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS1pbXBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZmIn0uZmEtZmlsZS1pbnZvaWNlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY1NzEifS5mYS1maWxlLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjMxOCJ9LmZhLWZpbGUtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmOGI2In0uZmEtZmlsZS1wZGY6YmVmb3Jle2NvbnRlbnQ6IlxmMWMxIn0uZmEtZmlsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjMxOSJ9LmZhLWZpbGUtcG93ZXJwb2ludDpiZWZvcmV7Y29udGVudDoiXGYxYzQifS5mYS1maWxlLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGY4NjUifS5mYS1maWxlLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjMxNyJ9LmZhLWZpbGUtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjU3NCJ9LmZhLWZpbGUtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS13b3JkOmJlZm9yZXtjb250ZW50OiJcZjFjMiJ9LmZhLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGYwYjAifS5mYS1maW5nZXJwcmludDpiZWZvcmV7Y29udGVudDoiXGY1NzcifS5mYS1maXJlOmJlZm9yZXtjb250ZW50OiJcZjA2ZCJ9LmZhLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDI0In0uZmEtZmxhZy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzRjIn0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0uZmEtZmx1eC1jYXBhY2l0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmOGJhIn0uZmEtZm9sZGVyOmJlZm9yZXtjb250ZW50OiJcZjA3YiJ9LmZhLWZvbGRlci1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGUwNTMifS5mYS1mb2xkZXItb3BlbjpiZWZvcmV7Y29udGVudDoiXGYwN2MifS5mYS1mb2xkZXItdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZTA1NCJ9LmZhLWZyb3duOmJlZm9yZXtjb250ZW50OiJcZjExOSJ9LmZhLWZyb3duLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNTdhIn0uZmEtZ2FsYWN0aWMtc2VuYXRlOmJlZm9yZXtjb250ZW50OiJcZjUwZCJ9LmZhLWdhcmFnZTpiZWZvcmV7Y29udGVudDoiXGUwMDkifS5mYS1nYXJhZ2UtY2FyOmJlZm9yZXtjb250ZW50OiJcZTAwYSJ9LmZhLWdhcmFnZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZTAwYiJ9LmZhLWdhcy1wdW1wOmJlZm9yZXtjb250ZW50OiJcZjUyZiJ9LmZhLWdhcy1wdW1wLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjVmNCJ9LmZhLWdsYXNzZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNTMwIn0uZmEtZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGFjIn0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLWdyaXAtaG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGY1OGQifS5mYS1ncmlwLWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjdhNCJ9LmZhLWdyaXAtbGluZXMtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmN2E1In0uZmEtZ3JpcC12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY1OGUifS5mYS1oYW5kLWhvbGRpbmctdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjMCJ9LmZhLWhhbmQtcG9pbnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1oYW5kLXBvaW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE1In0uZmEtaGFuZC1wb2ludC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTQifS5mYS1oYW5kLXBvaW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjBhNiJ9LmZhLWhhbmQtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNWEifS5mYS1oYW5kcy11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmNGM1In0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXGYyOTIifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1oZWFydC1icm9rZW46YmVmb3Jle2NvbnRlbnQ6IlxmN2E5In0uZmEtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMTIifS5mYS1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9LmZhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDE1In0uZmEtaG9tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODBhIn0uZmEtaG9tZS1sZzpiZWZvcmV7Y29udGVudDoiXGY4MGIifS5mYS1ob21lLWxnLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MGMifS5mYS1ob3VzZTpiZWZvcmV7Y29udGVudDoiXGUwMGQifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDoiXGYyNDYifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1pbmJveC1pbjpiZWZvcmV7Y29udGVudDoiXGYzMTAifS5mYS1pbmJveC1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzExIn0uZmEtaW5mbzpiZWZvcmV7Y29udGVudDoiXGYxMjkifS5mYS1pbmZvLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNWEifS5mYS1pbmZvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzMGYifS5mYS1pbnN0YWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMTZkIn0uZmEtaW5zdGFncmFtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGUwNTUifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDg0In0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtbGFzc286YmVmb3Jle2NvbnRlbnQ6IlxmOGM4In0uZmEtbGVhZjpiZWZvcmV7Y29udGVudDoiXGYwNmMifS5mYS1sZXZlbC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE0OSJ9LmZhLWxldmVsLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZSJ9LmZhLWxldmVsLXVwOmJlZm9yZXtjb250ZW50OiJcZjE0OCJ9LmZhLWxldmVsLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmYifS5mYS1saW5rZWRpbjpiZWZvcmV7Y29udGVudDoiXGYwOGMifS5mYS1saW5rZWRpbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwZTEifS5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmV7Y29udGVudDoiXGYxMjQifS5mYS1sb25nLWFycm93LWFsdC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMwOSJ9LmZhLWxvbmctYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBhIn0uZmEtbG9uZy1hcnJvdy1hbHQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBiIn0uZmEtbG9uZy1hcnJvdy1hbHQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzBjIn0uZmEtbG9uZy1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE3NSJ9LmZhLWxvbmctYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxNzcifS5mYS1sb25nLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE3OCJ9LmZhLWxvbmctYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTc2In0uZmEtbWFnaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMGQwIn0uZmEtbWFwOmJlZm9yZXtjb250ZW50OiJcZjI3OSJ9LmZhLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDQxIn0uZmEtbWFwLW1hcmtlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M1In0uZmEtbWFwLXBpbjpiZWZvcmV7Y29udGVudDoiXGYyNzYifS5mYS1tYXAtc2lnbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjc3In0uZmEtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjVhMSJ9LmZhLW1lZGFsOmJlZm9yZXtjb250ZW50OiJcZjVhMiJ9LmZhLW1laDpiZWZvcmV7Y29udGVudDoiXGYxMWEifS5mYS1taWNyb2NoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmRiIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzkifS5mYS1taWNyb3Bob25lLWFsdC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1MzkifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLW1pbmQtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjc3In0uZmEtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY4In0uZmEtbWludXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NiJ9LmZhLW1pbnVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA3In0uZmEtbWludXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDgifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ2In0uZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLW1vYmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NkIn0uZmEtbW9iaWxlLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NlIn0uZmEtbW9iaWxlLWFuZHJvaWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZiJ9LmZhLW1vbmV5LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjUzYyJ9LmZhLW1vbmV5LWNoZWNrLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1M2QifS5mYS1tb25leS1jaGVjay1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjg3MiJ9LmZhLW1vbmV5LWNoZWNrLWVkaXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg3MyJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtbW91bnRhaW46YmVmb3Jle2NvbnRlbnQ6IlxmNmZjIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1tcDMtcGxheWVyOmJlZm9yZXtjb250ZW50OiJcZjhjZSJ9LmZhLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjAwMSJ9LmZhLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA2In0uZmEtb2lsLWNhbjpiZWZvcmV7Y29udGVudDoiXGY2MTMifS5mYS1vaWwtdGVtcDpiZWZvcmV7Y29udGVudDoiXGY2MTQifS5mYS1wYWludC1icnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1wYWxldHRlOmJlZm9yZXtjb250ZW50OiJcZjUzZiJ9LmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjFkOCJ9LmZhLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZjBlYSJ9LmZhLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZWQifS5mYS1wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMzA0In0uZmEtcGVuLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDUifS5mYS1wZW4tZmFuY3k6YmVmb3Jle2NvbnRlbnQ6IlxmNWFjIn0uZmEtcGVuY2lsOmJlZm9yZXtjb250ZW50OiJcZjA0MCJ9LmZhLXBlbmNpbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzAzIn0uZmEtcGVuY2lsLXJ1bGVyOmJlZm9yZXtjb250ZW50OiJcZjVhZSJ9LmZhLXBlb3BsZS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxlMDY4In0uZmEtcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk1In0uZmEtcGhvbmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg3OSJ9LmZhLXBob25lLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTgifS5mYS1waG9uZS1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg3YiJ9LmZhLXBob25lLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyYTAifS5mYS1waG90by12aWRlbzpiZWZvcmV7Y29udGVudDoiXGY4N2MifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMxIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjA0YiJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1wbHVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzAwIn0uZmEtcGx1cy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwMSJ9LmZhLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZSJ9LmZhLXBvbzpiZWZvcmV7Y29udGVudDoiXGYyZmUifS5mYS1wcmludDpiZWZvcmV7Y29udGVudDoiXGYwMmYifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTI4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLXF1ZXN0aW9uLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZmQifS5mYS1xdW90ZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwZCJ9LmZhLXF1b3RlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwZSJ9LmZhLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGYwNzQifS5mYS1yZWN0YW5nbGUtbGFuZHNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjJmYSJ9LmZhLXJlY3RhbmdsZS1wb3J0cmFpdDpiZWZvcmV7Y29udGVudDoiXGYyZmIifS5mYS1yZWN0YW5nbGUtd2lkZTpiZWZvcmV7Y29udGVudDoiXGYyZmMifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjFiOCJ9LmZhLXJlZG86YmVmb3Jle2NvbnRlbnQ6IlxmMDFlIn0uZmEtcmVkby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY5In0uZmEtcmVwZWF0OmJlZm9yZXtjb250ZW50OiJcZjM2MyJ9LmZhLXJlcGVhdC0xOmJlZm9yZXtjb250ZW50OiJcZjM2NSJ9LmZhLXJlcGVhdC0xLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjYifS5mYS1yZXBlYXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2NCJ9LmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZjA3OSJ9LmZhLXJldHdlZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MSJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE4In0uZmEtcm9ib3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNTQ0In0uZmEtcnNzOmJlZm9yZXtjb250ZW50OiJcZjA5ZSJ9LmZhLXJzcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtcnY6YmVmb3Jle2NvbnRlbnQ6IlxmN2JlIn0uZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zY3Jld2RyaXZlcjpiZWZvcmV7Y29udGVudDoiXGY1NGEifS5mYS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDAyIn0uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjAxMCJ9LmZhLXNlYXJjaC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjAwZSJ9LmZhLXNoYXBlczpiZWZvcmV7Y29udGVudDoiXGY2MWYifS5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1zaGFyZS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMzY3In0uZmEtc2hhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjFlMCJ9LmZhLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWUxIn0uZmEtc2hhcmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0ZCJ9LmZhLXNoaWVsZDpiZWZvcmV7Y29udGVudDoiXGYxMzIifS5mYS1zaGllbGQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNlZCJ9LmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLXNodXR0bGUtdmFuOmJlZm9yZXtjb250ZW50OiJcZjViNiJ9LmZhLXNpZ24taW46YmVmb3Jle2NvbnRlbnQ6IlxmMDkwIn0uZmEtc2lnbi1pbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY2In0uZmEtc2lnbi1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDhiIn0uZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGYwMTIifS5mYS1zaWduYWwtc3RyZWFtOmJlZm9yZXtjb250ZW50OiJcZjhkZCJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGU4In0uZmEtc2xpZGVycy1oOmJlZm9yZXtjb250ZW50OiJcZjFkZSJ9LmZhLXNsaWRlcnMtaC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2YwIn0uZmEtc2xpZGVycy12OmJlZm9yZXtjb250ZW50OiJcZjNmMSJ9LmZhLXNsaWRlcnMtdi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2YyIn0uZmEtc21pbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtc21zOmJlZm9yZXtjb250ZW50OiJcZjdjZCJ9LmZhLXNub3dmbGFrZTpiZWZvcmV7Y29udGVudDoiXGYyZGMifS5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNWQifS5mYS1zb3J0LWFscGhhLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MSJ9LmZhLXNvcnQtYWxwaGEtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0uZmEtc29ydC1hbHBoYS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgyIn0uZmEtc29ydC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgzIn0uZmEtc29ydC1hbW91bnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjAifS5mYS1zb3J0LWFtb3VudC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODQifS5mYS1zb3J0LWFtb3VudC11cDpiZWZvcmV7Y29udGVudDoiXGYxNjEifS5mYS1zb3J0LWFtb3VudC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg1In0uZmEtc29ydC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDMwIn0uZmEtc29ydC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGUwMzEifS5mYS1zb3J0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGUwMzIifS5mYS1zb3J0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGRkIn0uZmEtc29ydC1udW1lcmljLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYyIn0uZmEtc29ydC1udW1lcmljLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NiJ9LmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjMifS5mYS1zb3J0LW51bWVyaWMtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NyJ9LmZhLXNvcnQtc2hhcGVzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmODg4In0uZmEtc29ydC1zaGFwZXMtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg5In0uZmEtc29ydC1zaGFwZXMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmODhhIn0uZmEtc29ydC1zaGFwZXMtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4YiJ9LmZhLXNvcnQtc2l6ZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjg4YyJ9LmZhLXNvcnQtc2l6ZS1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGQifS5mYS1zb3J0LXNpemUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmODhlIn0uZmEtc29ydC1zaXplLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGYifS5mYS1zb3J0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkZSJ9LmZhLXNwYWRlOmJlZm9yZXtjb250ZW50OiJcZjJmNCJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtc3Bpbm5lci10aGlyZDpiZWZvcmV7Y29udGVudDoiXGYzZjQifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtc3RhcjpiZWZvcmV7Y29udGVudDoiXGYwMDUifS5mYS1zdGFyLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjJmMyJ9LmZhLXN0YXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYwODkifS5mYS1zdGFyLWhhbGYtYWx0OmJlZm9yZXtjb250ZW50OiJcZjVjMCJ9LmZhLXN0ZWVyaW5nLXdoZWVsOmJlZm9yZXtjb250ZW50OiJcZjYyMiJ9LmZhLXN0aWNreS1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjI0OSJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1zdG9yZTpiZWZvcmV7Y29udGVudDoiXGY1NGUifS5mYS1zdG9yZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTRmIn0uZmEtc3VpdGNhc2Utcm9sbGluZzpiZWZvcmV7Y29udGVudDoiXGY1YzEifS5mYS1zdW46YmVmb3Jle2NvbnRlbnQ6IlxmMTg1In0uZmEtc3luYzpiZWZvcmV7Y29udGVudDoiXGYwMjEifS5mYS1zeW5jLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjEifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtdGFibGV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmEifS5mYS10YWNob21ldGVyOmJlZm9yZXtjb250ZW50OiJcZjBlNCJ9LmZhLXRhY2hvbWV0ZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZCJ9LmZhLXRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjI0In0uZmEtdGFjaG9tZXRlci1hbHQtZmFzdDpiZWZvcmV7Y29udGVudDoiXGY2MjUifS5mYS10YWNob21ldGVyLWFsdC1mYXN0ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyNiJ9LmZhLXRhY2hvbWV0ZXItYWx0LXNsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNjI3In0uZmEtdGFjaG9tZXRlci1hbHQtc2xvd2VzdDpiZWZvcmV7Y29udGVudDoiXGY2MjgifS5mYS10YWNob21ldGVyLWF2ZXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjI5In0uZmEtdGFjaG9tZXRlci1mYXN0OmJlZm9yZXtjb250ZW50OiJcZjYyYSJ9LmZhLXRhY2hvbWV0ZXItZmFzdGVzdDpiZWZvcmV7Y29udGVudDoiXGY2MmIifS5mYS10YWNob21ldGVyLXNsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNjJjIn0uZmEtdGFjaG9tZXRlci1zbG93ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyZCJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDoiXGYwMmIifS5mYS10YWdzOmJlZm9yZXtjb250ZW50OiJcZjAyYyJ9LmZhLXRheGk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJhIn0uZmEtdGVtcGVyYXR1cmUtaGlnaDpiZWZvcmV7Y29udGVudDoiXGY3NjkifS5mYS10ZW1wZXJhdHVyZS1sb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNzZiIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS10aGVybW9tZXRlci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjJjOSJ9LmZhLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9LmZhLXRodW1icy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjQifS5mYS10aWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ1In0uZmEtdGlrdG9rOmJlZm9yZXtjb250ZW50OiJcZTA3YiJ9LmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjAwZCJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS10aW1lcy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjJlZSJ9LmZhLXRpbWVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMmYwIn0uZmEtdGltZXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJkMyJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtdGlyZTpiZWZvcmV7Y29udGVudDoiXGY2MzEifS5mYS10aXJlLWZsYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjMyIn0uZmEtdGlyZS1wcmVzc3VyZS13YXJuaW5nOmJlZm9yZXtjb250ZW50OiJcZjYzMyJ9LmZhLXRpcmUtcnVnZ2VkOmJlZm9yZXtjb250ZW50OiJcZjYzNCJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLXRvb2xzOmJlZm9yZXtjb250ZW50OiJcZjdkOSJ9LmZhLXRyYWlsZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDQxIn0uZmEtdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY4In0uZmEtdHJhc2gtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlZCJ9LmZhLXRyYXNoLXJlc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmODI5In0uZmEtdHJhc2gtcmVzdG9yZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODJhIn0uZmEtdHJhc2gtdW5kbzpiZWZvcmV7Y29udGVudDoiXGY4OTUifS5mYS10cmFzaC11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OTYifS5mYS10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYyZWMifS5mYS10cm9waHk6YmVmb3Jle2NvbnRlbnQ6IlxmMDkxIn0uZmEtdHJvcGh5LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWIifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS10cnVjay1sb2FkaW5nOmJlZm9yZXtjb250ZW50OiJcZjRkZSJ9LmZhLXRydWNrLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjNiIn0uZmEtdHJ1Y2stcGlja3VwOmJlZm9yZXtjb250ZW50OiJcZjYzYyJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjA5OSJ9LmZhLXR3aXR0ZXItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MSJ9LmZhLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmMGUyIn0uZmEtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVhIn0uZmEtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjA5MyJ9LmZhLXVzZC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmU4In0uZmEtdXNkLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZTkifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OiJcZjAwNyJ9LmZhLXVzZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjQwNiJ9LmZhLXVzZXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNGZjIn0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmJkIn0uZmEtdXNlci1mcmllbmRzOmJlZm9yZXtjb250ZW50OiJcZjUwMCJ9LmZhLXVzZXJzOmJlZm9yZXtjb250ZW50OiJcZjBjMCJ9LmZhLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXZvaWNlbWFpbDpiZWZvcmV7Y29udGVudDoiXGY4OTcifS5mYS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmNmE4In0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDI3In0uZmEtdm9sdW1lLW11dGU6YmVmb3Jle2NvbnRlbnQ6IlxmNmE5In0uZmEtdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMjYifS5mYS12b2x1bWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmUyIn0uZmEtdm9sdW1lLXVwOmJlZm9yZXtjb250ZW50OiJcZjAyOCJ9LmZhLXdhZ29uLWNvdmVyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmOGVlIn0uZmEtd2Fsa2llLXRhbGtpZTpiZWZvcmV7Y29udGVudDoiXGY4ZWYifS5mYS13ZWJjYW06YmVmb3Jle2NvbnRlbnQ6IlxmODMyIn0uZmEtd2ViY2FtLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjgzMyJ9LmZhLXdoZWVsY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTkzIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGFkIn0uZmEteW91dHViZTpiZWZvcmV7Y29udGVudDoiXGYxNjcifS5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MzEifS5mYS1zaGllbGQtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmY3In0uZmEtbGluazpiZWZvcmV7Y29udGVudDoiXGYwYzEifS5mYS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0uZmEtYmFkZ2UtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY0NSJ9LmZhLXBlbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRiIn0uZmEtY29tbWVudC1hbHQtZG90czpiZWZvcmV7Y29udGVudDoiXGY0YTMifS5mYS1hcnJvdy1kb3duLXRvLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzNkIn0uZmEtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU2Ijt9LnNyLW9ubHl7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAsMCwwLDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9LnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSwuc3Itb25seS1mb2N1c2FibGU6Zm9jdXN7Y2xpcDphdXRvO2hlaWdodDphdXRvO21hcmdpbjowO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246c3RhdGljO3dpZHRoOmF1dG99QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgQnJhbmRzJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhYntmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgQnJhbmRzJztmb250LXdlaWdodDo0MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDozMDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhbHtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXdlaWdodDozMDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhcntmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXdlaWdodDo0MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo5MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhLC5mYXN7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybychaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjkwMH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OidEMkNDdXN0b21JY29ucyc7c3JjOmxvY2FsKEQyQ0N1c3RvbUljb25zKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy5zdmcjc3ZnRm9udE5hbWUpIGZvcm1hdCgic3ZnIik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfS5mYS14LXR3aXR0ZXI6YmVmb3Jle2ZvbnQtZmFtaWx5OidEMkNDdXN0b21JY29ucycsc2VyaWY7Y29udGVudDoiXGU5MDAiO2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfQovKiogL2Nzcy9mb250LWF3ZXNvbWUuY29udGVudC5taW4uY3NzICoqLwouZmEtNTAwcHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjZlIn0uZmEtYWNjZXNzaWJsZS1pY29uOmJlZm9yZXtjb250ZW50OiJcZjM2OCJ9LmZhLWFjY3Vzb2Z0OmJlZm9yZXtjb250ZW50OiJcZjM2OSJ9LmZhLWFkZHJlc3MtYm9vazpiZWZvcmV7Y29udGVudDoiXGYyYjkifS5mYS1hZGRyZXNzLWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmJiIn0uZmEtYWRqdXN0OmJlZm9yZXtjb250ZW50OiJcZjA0MiJ9LmZhLWFkbjpiZWZvcmV7Y29udGVudDoiXGYxNzAifS5mYS1hZHZlcnNhbDpiZWZvcmV7Y29udGVudDoiXGYzNmEifS5mYS1hZmZpbGlhdGV0aGVtZTpiZWZvcmV7Y29udGVudDoiXGYzNmIifS5mYS1hbGdvbGlhOmJlZm9yZXtjb250ZW50OiJcZjM2YyJ9LmZhLWFsaWduLWNlbnRlcjpiZWZvcmV7Y29udGVudDoiXGYwMzcifS5mYS1hbGlnbi1qdXN0aWZ5OmJlZm9yZXtjb250ZW50OiJcZjAzOSJ9LmZhLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM2In0uZmEtYWxpZ24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM4In0uZmEtYW1hem9uOmJlZm9yZXtjb250ZW50OiJcZjI3MCJ9LmZhLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJjIn0uZmEtYW1idWxhbmNlOmJlZm9yZXtjb250ZW50OiJcZjBmOSJ9LmZhLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nOmJlZm9yZXtjb250ZW50OiJcZjJhMyJ9LmZhLWFtaWxpYTpiZWZvcmV7Y29udGVudDoiXGYzNmQifS5mYS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTNkIn0uZmEtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYxN2IifS5mYS1hbmdlbGxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA5In0uZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1hbmdsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYW5ncnljcmVhdGl2ZTpiZWZvcmV7Y29udGVudDoiXGYzNmUifS5mYS1hbmd1bGFyOmJlZm9yZXtjb250ZW50OiJcZjQyMCJ9LmZhLWFwcC1zdG9yZTpiZWZvcmV7Y29udGVudDoiXGYzNmYifS5mYS1hcHAtc3RvcmUtaW9zOmJlZm9yZXtjb250ZW50OiJcZjM3MCJ9LmZhLWFwcGVyOmJlZm9yZXtjb250ZW50OiJcZjM3MSJ9LmZhLWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjE3OSJ9LmZhLWFwcGxlLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MTUifS5mYS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLWFycm93LWFsdC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTgifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU5In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNWEifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1YiJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTkifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA2MSJ9LmZhLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjA2MiJ9LmZhLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGIyIn0uZmEtYXJyb3dzLWFsdC1oOmJlZm9yZXtjb250ZW50OiJcZjMzNyJ9LmZhLWFycm93cy1hbHQtdjpiZWZvcmV7Y29udGVudDoiXGYzMzgifS5mYS1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmEyIn0uZmEtYXN0ZXJpc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDY5In0uZmEtYXN5bW1ldHJpazpiZWZvcmV7Y29udGVudDoiXGYzNzIifS5mYS1hdDpiZWZvcmV7Y29udGVudDoiXGYxZmEifS5mYS1hdWRpYmxlOmJlZm9yZXtjb250ZW50OiJcZjM3MyJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLWF1dG9wcmVmaXhlcjpiZWZvcmV7Y29udGVudDoiXGY0MWMifS5mYS1hdmlhbmV4OmJlZm9yZXtjb250ZW50OiJcZjM3NCJ9LmZhLWF2aWF0bzpiZWZvcmV7Y29udGVudDoiXGY0MjEifS5mYS1hd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzc1In0uZmEtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRhIn0uZmEtYmFsYW5jZS1zY2FsZTpiZWZvcmV7Y29udGVudDoiXGYyNGUifS5mYS1iYW46YmVmb3Jle2NvbnRlbnQ6IlxmMDVlIn0uZmEtYmFuZGNhbXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ1In0uZmEtYmFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMmEifS5mYS1iYXJzOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWJhc2ViYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDMzIn0uZmEtYmFza2V0YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzNCJ9LmZhLWJhdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMmNkIn0uZmEtYmF0dGVyeS1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyNDQifS5mYS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjQwIn0uZmEtYmF0dGVyeS1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI0MiJ9LmZhLWJhdHRlcnktcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDMifS5mYS1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOmJlZm9yZXtjb250ZW50OiJcZjI0MSJ9LmZhLWJlZDpiZWZvcmV7Y29udGVudDoiXGYyMzYifS5mYS1iZWVyOmJlZm9yZXtjb250ZW50OiJcZjBmYyJ9LmZhLWJlaGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWI0In0uZmEtYmVoYW5jZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI1In0uZmEtYmVsbDpiZWZvcmV7Y29udGVudDoiXGYwZjMifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLWJpY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA2In0uZmEtYmltb2JqZWN0OmJlZm9yZXtjb250ZW50OiJcZjM3OCJ9LmZhLWJpbm9jdWxhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMWU1In0uZmEtYmlydGhkYXktY2FrZTpiZWZvcmV7Y29udGVudDoiXGYxZmQifS5mYS1iaXRidWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0uZmEtYml0Y29pbjpiZWZvcmV7Y29udGVudDoiXGYzNzkifS5mYS1iaXR5OmJlZm9yZXtjb250ZW50OiJcZjM3YSJ9LmZhLWJsYWNrLXRpZTpiZWZvcmV7Y29udGVudDoiXGYyN2UifS5mYS1ibGFja2JlcnJ5OmJlZm9yZXtjb250ZW50OiJcZjM3YiJ9LmZhLWJsaW5kOmJlZm9yZXtjb250ZW50OiJcZjI5ZCJ9LmZhLWJsb2dnZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdjIn0uZmEtYmxvZ2dlci1iOmJlZm9yZXtjb250ZW50OiJcZjM3ZCJ9LmZhLWJsdWV0b290aDpiZWZvcmV7Y29udGVudDoiXGYyOTMifS5mYS1ibHVldG9vdGgtYjpiZWZvcmV7Y29udGVudDoiXGYyOTQifS5mYS1ib2xkOmJlZm9yZXtjb250ZW50OiJcZjAzMiJ9LmZhLWJvbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtYm9tYjpiZWZvcmV7Y29udGVudDoiXGYxZTIifS5mYS1ib29rOmJlZm9yZXtjb250ZW50OiJcZjAyZCJ9LmZhLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjAyZSJ9LmZhLWJvd2xpbmctYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzYifS5mYS1icmFpbGxlOmJlZm9yZXtjb250ZW50OiJcZjJhMSJ9LmZhLWJyaWVmY2FzZTpiZWZvcmV7Y29udGVudDoiXGYwYjEifS5mYS1idGM6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0uZmEtYnVnOmJlZm9yZXtjb250ZW50OiJcZjE4OCJ9LmZhLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9LmZhLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZjBhMSJ9LmZhLWJ1bGxzZXllOmJlZm9yZXtjb250ZW50OiJcZjE0MCJ9LmZhLWJ1cm9tb2JlbGV4cGVydGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzdmIn0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWJ1eXNlbGxhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMjBkIn0uZmEtY2FsY3VsYXRvcjpiZWZvcmV7Y29udGVudDoiXGYxZWMifS5mYS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMzMifS5mYS1jYWxlbmRhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDczIn0uZmEtY2FsZW5kYXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjc0In0uZmEtY2FsZW5kYXItbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcyIn0uZmEtY2FsZW5kYXItcGx1czpiZWZvcmV7Y29udGVudDoiXGYyNzEifS5mYS1jYWxlbmRhci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyNzMifS5mYS1jYW1lcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMDMwIn0uZmEtY2FtZXJhLXJldHJvOmJlZm9yZXtjb250ZW50OiJcZjA4MyJ9LmZhLWNhcjpiZWZvcmUsLmZhLWF1dG9tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI5In0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNhcmV0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1MCJ9LmZhLWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWNhcmV0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1jYXJldC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ4In0uZmEtY2FydC1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjIxOCJ9LmZhLWNhcnQtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMTcifS5mYS1jYy1hbWF6b24tcGF5OmJlZm9yZXtjb250ZW50OiJcZjQyZCJ9LmZhLWNjLWFtZXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWYzIn0uZmEtY2MtYXBwbGUtcGF5OmJlZm9yZXtjb250ZW50OiJcZjQxNiJ9LmZhLWNjLWRpbmVycy1jbHViOmJlZm9yZXtjb250ZW50OiJcZjI0YyJ9LmZhLWNjLWRpc2NvdmVyOmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9LmZhLWNjLWpjYjpiZWZvcmV7Y29udGVudDoiXGYyNGIifS5mYS1jYy1tYXN0ZXJjYXJkOmJlZm9yZXtjb250ZW50OiJcZjFmMSJ9LmZhLWNjLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZjQifS5mYS1jYy1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0uZmEtY2MtdmlzYTpiZWZvcmV7Y29udGVudDoiXGYxZjAifS5mYS1jZW50ZXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjM4MCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZjBhMyJ9LmZhLWNoYXJ0LWFyZWE6YmVmb3Jle2NvbnRlbnQ6IlxmMWZlIn0uZmEtY2hhcnQtYmFyOmJlZm9yZXtjb250ZW50OiJcZjA4MCJ9LmZhLWNoYXJ0LWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAxIn0uZmEtY2hhcnQtcGllOmJlZm9yZXtjb250ZW50OiJcZjIwMCJ9LmZhLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjAwYyJ9LmZhLWNoZWNrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTgifS5mYS1jaGVjay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRhIn0uZmEtY2hlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDM5In0uZmEtY2hlc3MtYmlzaG9wOmJlZm9yZXtjb250ZW50OiJcZjQzYSJ9LmZhLWNoZXNzLWJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQzYyJ9LmZhLWNoZXNzLWtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNDNmIn0uZmEtY2hlc3Mta25pZ2h0OmJlZm9yZXtjb250ZW50OiJcZjQ0MSJ9LmZhLWNoZXNzLXBhd246YmVmb3Jle2NvbnRlbnQ6IlxmNDQzIn0uZmEtY2hlc3MtcXVlZW46YmVmb3Jle2NvbnRlbnQ6IlxmNDQ1In0uZmEtY2hlc3Mtcm9vazpiZWZvcmV7Y29udGVudDoiXGY0NDcifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA3OCJ9LmZhLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNTMifS5mYS1jaGV2cm9uLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA1NCJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDc3In0uZmEtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFlIn0uZmEtY2hyb21lOmJlZm9yZXtjb250ZW50OiJcZjI2OCJ9LmZhLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxMTEifS5mYS1jaXJjbGUtbm90Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWNlIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODEifS5mYS1jbG91ZC11cGxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MiJ9LmZhLWNsb3Vkc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzgzIn0uZmEtY2xvdWRzbWl0aDpiZWZvcmV7Y29udGVudDoiXGYzODQifS5mYS1jbG91ZHZlcnNpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzg1In0uZmEtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxMjEifS5mYS1jb2RlLWJyYW5jaDpiZWZvcmV7Y29udGVudDoiXGYxMjYifS5mYS1jb2RlcGVuOmJlZm9yZXtjb250ZW50OiJcZjFjYiJ9LmZhLWNvZGllcGllOmJlZm9yZXtjb250ZW50OiJcZjI4NCJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDoiXGYwZjQifS5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtY29nczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1nZWFyczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1jb2x1bW5zOmJlZm9yZXtjb250ZW50OiJcZjBkYiJ9LmZhLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc1In0uZmEtY29tbWVudC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjdhIn0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtY29tcGFzczpiZWZvcmV7Y29udGVudDoiXGYxNGUifS5mYS1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYwNjYifS5mYS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmV7Y29udGVudDoiXGYyMGUifS5mYS1jb250YW86YmVmb3Jle2NvbnRlbnQ6IlxmMjZkIn0uZmEtY29weTpiZWZvcmV7Y29udGVudDoiXGYwYzUifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtY3BhbmVsOmJlZm9yZXtjb250ZW50OiJcZjM4OCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjVlIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDlkIn0uZmEtY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMjUifS5mYS1jcm9zc2hhaXJzOmJlZm9yZXtjb250ZW50OiJcZjA1YiJ9LmZhLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0uZmEtY3NzMy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzhiIn0uZmEtY3ViZTpiZWZvcmV7Y29udGVudDoiXGYxYjIifS5mYS1jdWJlczpiZWZvcmV7Y29udGVudDoiXGYxYjMifS5mYS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtY3V0dGxlZmlzaDpiZWZvcmV7Y29udGVudDoiXGYzOGMifS5mYS1kLWFuZC1kOmJlZm9yZXtjb250ZW50OiJcZjM4ZCJ9LmZhLWRhc2hjdWJlOmJlZm9yZXtjb250ZW50OiJcZjIxMCJ9LmZhLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjFjMCJ9LmZhLWRlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMmE0In0uZmEtZGVsaWNpb3VzOmJlZm9yZXtjb250ZW50OiJcZjFhNSJ9LmZhLWRlcGxveWRvZzpiZWZvcmV7Y29udGVudDoiXGYzOGUifS5mYS1kZXNrcHJvOmJlZm9yZXtjb250ZW50OiJcZjM4ZiJ9LmZhLWRlc2t0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA4In0uZmEtZGV2aWFudGFydDpiZWZvcmV7Y29udGVudDoiXGYxYmQifS5mYS1kaWdnOmJlZm9yZXtjb250ZW50OiJcZjFhNiJ9LmZhLWRpZ2l0YWwtb2NlYW46YmVmb3Jle2NvbnRlbnQ6IlxmMzkxIn0uZmEtZGlzY29yZDpiZWZvcmV7Y29udGVudDoiXGYzOTIifS5mYS1kaXNjb3Vyc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMzkzIn0uZmEtZG9jaHViOmJlZm9yZXtjb250ZW50OiJcZjM5NCJ9LmZhLWRvY2tlcjpiZWZvcmV7Y29udGVudDoiXGYzOTUifS5mYS1kb2xsYXItc2lnbjpiZWZvcmUsLmZhLWRvbGxhcjpiZWZvcmUsLmZhLXVzZDpiZWZvcmV7Y29udGVudDoiXGYxNTUifS5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOSJ9LmZhLWRyYWZ0MmRpZ2l0YWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzk2In0uZmEtZHJpYmJibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0uZmEtZHJpYmJibGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjM5NyJ9LmZhLWRyb3Bib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTZiIn0uZmEtZHJ1cGFsOmJlZm9yZXtjb250ZW50OiJcZjFhOSJ9LmZhLWR5YWxvZzpiZWZvcmV7Y29udGVudDoiXGYzOTkifS5mYS1lYXJseWJpcmRzOmJlZm9yZXtjb250ZW50OiJcZjM5YSJ9LmZhLWVkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjgyIn0uZmEtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYwNDQifS5mYS1lamVjdDpiZWZvcmV7Y29udGVudDoiXGYwNTIifS5mYS1lbGVtZW50b3I6YmVmb3Jle2NvbnRlbnQ6IlxmNDMwIn0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLWVtYmVyOmJlZm9yZXtjb250ZW50OiJcZjQyMyJ9LmZhLWVtcGlyZTpiZWZvcmV7Y29udGVudDoiXGYxZDEifS5mYS1lbnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXGYwZTAifS5mYS1lbnZlbG9wZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjJiNiJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS1lbnZpcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMjk5In0uZmEtZXJhc2VyOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9LmZhLWVybGFuZzpiZWZvcmV7Y29udGVudDoiXGYzOWQifS5mYS1ldGhlcmV1bTpiZWZvcmV7Y29udGVudDoiXGY0MmUifS5mYS1ldHN5OmJlZm9yZXtjb250ZW50OiJcZjJkNyJ9LmZhLWV1cm8tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTMifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYyIn0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjA3MSJ9LmZhLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYwNjUifS5mYS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMWUifS5mYS1leHBlZGl0ZWRzc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMjNlIn0uZmEtZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVkIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MCJ9LmZhLWV5ZTpiZWZvcmV7Y29udGVudDoiXGYwNmUifS5mYS1leWUtZHJvcHBlcjpiZWZvcmV7Y29udGVudDoiXGYxZmIifS5mYS1leWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDcwIn0uZmEtZmFjZWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDlhIn0uZmEtZmFjZWJvb2stZjpiZWZvcmV7Y29udGVudDoiXGYzOWUifS5mYS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzlmIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLWZhc3QtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ5In0uZmEtZmFzdC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MCJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDoiXGYxYWMifS5mYS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgyIn0uZmEtZmlnaHRlci1qZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZiIn0uZmEtZmlsZTpiZWZvcmUsLmZhLWZpbGUtbzpiZWZvcmV7Y29udGVudDoiXGYxNWIifS5mYS1maWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxNWMifS5mYS1maWxlLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM2In0uZmEtZmlsZS1hdWRpbzpiZWZvcmV7Y29udGVudDoiXGYxYzcifS5mYS1maWxlLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM5In0uZmEtZmlsZS1leGNlbDpiZWZvcmV7Y29udGVudDoiXGYxYzMifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWZpbGUtcGRmOmJlZm9yZXtjb250ZW50OiJcZjFjMSJ9LmZhLWZpbGUtcG93ZXJwb2ludDpiZWZvcmV7Y29udGVudDoiXGYxYzQifS5mYS1maWxlLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjFjOCJ9LmZhLWZpbGUtd29yZDpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWxtOmJlZm9yZXtjb250ZW50OiJcZjAwOCJ9LmZhLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGYwYjAifS5mYS1maXJlOmJlZm9yZXtjb250ZW50OiJcZjA2ZCJ9LmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9LmZhLWZpcmVmb3g6YmVmb3Jle2NvbnRlbnQ6IlxmMjY5In0uZmEtZmlyc3Qtb3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmIwIn0uZmEtZmlyc3RkcmFmdDpiZWZvcmV7Y29udGVudDoiXGYzYTEifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWZsYWctY2hlY2tlcmVkOmJlZm9yZXtjb250ZW50OiJcZjExZSJ9LmZhLWZsYXNrOmJlZm9yZXtjb250ZW50OiJcZjBjMyJ9LmZhLWZsaWNrcjpiZWZvcmV7Y29udGVudDoiXGYxNmUifS5mYS1mbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDRkIn0uZmEtZmx5OmJlZm9yZXtjb250ZW50OiJcZjQxNyJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItb3BlbjpiZWZvcmV7Y29udGVudDoiXGYwN2MifS5mYS1mb250OmJlZm9yZXtjb250ZW50OiJcZjAzMSJ9LmZhLWZvbnQtYXdlc29tZTpiZWZvcmV7Y29udGVudDoiXGYyYjQifS5mYS1mb250LWF3ZXNvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1YyJ9LmZhLWZvbnQtYXdlc29tZS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjQyNSJ9LmZhLWZvbnRpY29uczpiZWZvcmV7Y29udGVudDoiXGYyODAifS5mYS1mb250aWNvbnMtZmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2EyIn0uZmEtZm9vdGJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NGUifS5mYS1mb3J0LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg2In0uZmEtZm9ydC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYTMifS5mYS1mb3J1bWJlZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifS5mYS1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0ZSJ9LmZhLWZvdXJzcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0uZmEtZnJlZS1jb2RlLWNhbXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmM1In0uZmEtZnJlZWJzZDpiZWZvcmV7Y29udGVudDoiXGYzYTQifS5mYS1mcm93bjpiZWZvcmV7Y29udGVudDoiXGYxMTkifS5mYS1mdXRib2w6YmVmb3Jle2NvbnRlbnQ6IlxmMWUzIn0uZmEtZ2FtZXBhZDpiZWZvcmV7Y29udGVudDoiXGYxMWIifS5mYS1nYXZlbDpiZWZvcmV7Y29udGVudDoiXGYwZTMifS5mYS1nZW06YmVmb3Jle2NvbnRlbnQ6IlxmM2E1In0uZmEtZ2VuZGVybGVzczpiZWZvcmV7Y29udGVudDoiXGYyMmQifS5mYS1nZXQtcG9ja2V0OmJlZm9yZXtjb250ZW50OiJcZjI2NSJ9LmZhLWdnOmJlZm9yZXtjb250ZW50OiJcZjI2MCJ9LmZhLWdnLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyNjEifS5mYS1naWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2YiJ9LmZhLWdpdDpiZWZvcmV7Y29udGVudDoiXGYxZDMifS5mYS1naXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFkMiJ9LmZhLWdpdGh1YjpiZWZvcmV7Y29udGVudDoiXGYwOWIifS5mYS1naXRodWItYWx0OmJlZm9yZXtjb250ZW50OiJcZjExMyJ9LmZhLWdpdGh1Yi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDkyIn0uZmEtZ2l0a3Jha2VuOmJlZm9yZXtjb250ZW50OiJcZjNhNiJ9LmZhLWdpdGxhYjpiZWZvcmV7Y29udGVudDoiXGYyOTYifS5mYS1naXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDI2In0uZmEtZ2xhc3MtbWFydGluaTpiZWZvcmV7Y29udGVudDoiXGYwMDAifS5mYS1nbGlkZTpiZWZvcmV7Y29udGVudDoiXGYyYTUifS5mYS1nbGlkZS1nOmJlZm9yZXtjb250ZW50OiJcZjJhNiJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLWdvZm9yZTpiZWZvcmV7Y29udGVudDoiXGYzYTcifS5mYS1nb2xmLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDUwIn0uZmEtZ29vZHJlYWRzOmJlZm9yZXtjb250ZW50OiJcZjNhOCJ9LmZhLWdvb2RyZWFkcy1nOmJlZm9yZXtjb250ZW50OiJcZjNhOSJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDoiXGYxYTAifS5mYS1nb29nbGUtZHJpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FhIn0uZmEtZ29vZ2xlLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmM2FiIn0uZmEtZ29vZ2xlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmIzIn0uZmEtZ29vZ2xlLXBsdXMtZzpiZWZvcmV7Y29udGVudDoiXGYwZDUifS5mYS1nb29nbGUtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ0In0uZmEtZ29vZ2xlLXdhbGxldDpiZWZvcmV7Y29udGVudDoiXGYxZWUifS5mYS1ncmFkdWF0aW9uLWNhcDpiZWZvcmV7Y29udGVudDoiXGYxOWQifS5mYS1ncmF0aXBheTpiZWZvcmV7Y29udGVudDoiXGYxODQifS5mYS1ncmF2OmJlZm9yZXtjb250ZW50OiJcZjJkNiJ9LmZhLWdyaXBmaXJlOmJlZm9yZXtjb250ZW50OiJcZjNhYyJ9LmZhLWdydW50OmJlZm9yZXtjb250ZW50OiJcZjNhZCJ9LmZhLWd1bHA6YmVmb3Jle2NvbnRlbnQ6IlxmM2FlIn0uZmEtaC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZkIn0uZmEtaGFja2VyLW5ld3M6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ0In0uZmEtaGFja2VyLW5ld3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNhZiJ9LmZhLWhhbmQtbGl6YXJkOmJlZm9yZXtjb250ZW50OiJcZjI1OCJ9LmZhLWhhbmQtcGFwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjU2In0uZmEtaGFuZC1wZWFjZTpiZWZvcmV7Y29udGVudDoiXGYyNWIifS5mYS1oYW5kLXBvaW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGE3In0uZmEtaGFuZC1wb2ludC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtcG9pbnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE0In0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3JlLC5mYS1oYW5kLXBvaW50ZXItbzpiZWZvcmV7Y29udGVudDoiXGYyNWEifS5mYS1oYW5kLXJvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjU1In0uZmEtaGFuZC1zY2lzc29yczpiZWZvcmV7Y29udGVudDoiXGYyNTcifS5mYS1oYW5kLXNwb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1OSJ9LmZhLWhhbmRzaGFrZTpiZWZvcmV7Y29udGVudDoiXGYyYjUifS5mYS1oYXNodGFnOmJlZm9yZXtjb250ZW50OiJcZjI5MiJ9LmZhLWhkZDpiZWZvcmV7Y29udGVudDoiXGYwYTAifS5mYS1oZWFkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFkYyJ9LmZhLWhlYWRwaG9uZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDI1In0uZmEtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDA0In0uZmEtaGVhcnRiZWF0OmJlZm9yZXtjb250ZW50OiJcZjIxZSJ9LmZhLWhpcHM6YmVmb3Jle2NvbnRlbnQ6IlxmNDUyIn0uZmEtaGlyZS1hLWhlbHBlcjpiZWZvcmV7Y29udGVudDoiXGYzYjAifS5mYS1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9LmZhLWhvY2tleS1wdWNrOmJlZm9yZXtjb250ZW50OiJcZjQ1MyJ9LmZhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDE1In0uZmEtaG9vbGk6YmVmb3Jle2NvbnRlbnQ6IlxmNDI3In0uZmEtaG9zcGl0YWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGY4In0uZmEtaG90amFyOmJlZm9yZXtjb250ZW50OiJcZjNiMSJ9LmZhLWhvdXJnbGFzczpiZWZvcmV7Y29udGVudDoiXGYyNTQifS5mYS1ob3VyZ2xhc3MtZW5kOmJlZm9yZXtjb250ZW50OiJcZjI1MyJ9LmZhLWhvdXJnbGFzcy1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI1MiJ9LmZhLWhvdXJnbGFzcy1zdGFydDpiZWZvcmV7Y29udGVudDoiXGYyNTEifS5mYS1ob3V6ejpiZWZvcmV7Y29udGVudDoiXGYyN2MifS5mYS1odG1sNTpiZWZvcmV7Y29udGVudDoiXGYxM2IifS5mYS1odWJzcG90OmJlZm9yZXtjb250ZW50OiJcZjNiMiJ9LmZhLWktY3Vyc29yOmJlZm9yZXtjb250ZW50OiJcZjI0NiJ9LmZhLWlkLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjJjMSJ9LmZhLWlkLWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmMyIn0uZmEtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDNlIn0uZmEtaW1hZ2VzOmJlZm9yZXtjb250ZW50OiJcZjMwMiJ9LmZhLWltZGI6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ4In0uZmEtaW5ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMDFjIn0uZmEtaW5kZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYyJ9LmZhLWluZHVzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjI3NSJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWludGVybmV0LWV4cGxvcmVyOmJlZm9yZXtjb250ZW50OiJcZjI2YiJ9LmZhLWlveGhvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0uZmEtaXRhbGljOmJlZm9yZXtjb250ZW50OiJcZjAzMyJ9LmZhLWl0dW5lczpiZWZvcmV7Y29udGVudDoiXGYzYjQifS5mYS1pdHVuZXMtbm90ZTpiZWZvcmV7Y29udGVudDoiXGYzYjUifS5mYS1qZW5raW5zOmJlZm9yZXtjb250ZW50OiJcZjNiNiJ9LmZhLWpvZ2V0OmJlZm9yZXtjb250ZW50OiJcZjNiNyJ9LmZhLWpvb21sYTpiZWZvcmV7Y29udGVudDoiXGYxYWEifS5mYS1qczpiZWZvcmV7Y29udGVudDoiXGYzYjgifS5mYS1qcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I5In0uZmEtanNmaWRkbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNjIn0uZmEta2V5OmJlZm9yZXtjb250ZW50OiJcZjA4NCJ9LmZhLWtleWJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjExYyJ9LmZhLWtleWNkbjpiZWZvcmV7Y29udGVudDoiXGYzYmEifS5mYS1raWNrc3RhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYzYmIifS5mYS1raWNrc3RhcnRlci1rOmJlZm9yZXtjb250ZW50OiJcZjNiYyJ9LmZhLWtvcnZ1ZTpiZWZvcmV7Y29udGVudDoiXGY0MmYifS5mYS1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYWIifS5mYS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA5In0uZmEtbGFyYXZlbDpiZWZvcmV7Y29udGVudDoiXGYzYmQifS5mYS1sYXN0Zm06YmVmb3Jle2NvbnRlbnQ6IlxmMjAyIn0uZmEtbGFzdGZtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyMDMifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OiJcZjA2YyJ9LmZhLWxlYW5wdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjEyIn0uZmEtbGVtb246YmVmb3Jle2NvbnRlbnQ6IlxmMDk0In0uZmEtbGVzczpiZWZvcmV7Y29udGVudDoiXGY0MWQifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1sZXZlbC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0uZmEtbGlmZS1yaW5nOmJlZm9yZXtjb250ZW50OiJcZjFjZCJ9LmZhLWxpZ2h0YnVsYjpiZWZvcmV7Y29udGVudDoiXGYwZWIifS5mYS1saW5lOmJlZm9yZXtjb250ZW50OiJcZjNjMCJ9LmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtbGlub2RlOmJlZm9yZXtjb250ZW50OiJcZjJiOCJ9LmZhLWxpbnV4OmJlZm9yZXtjb250ZW50OiJcZjE3YyJ9LmZhLWxpcmEtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxOTUifS5mYS1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAzYSJ9LmZhLWxpc3QtYWx0OmJlZm9yZXtjb250ZW50OiJcZjAyMiJ9LmZhLWxpc3Qtb2w6YmVmb3Jle2NvbnRlbnQ6IlxmMGNiIn0uZmEtbGlzdC11bDpiZWZvcmV7Y29udGVudDoiXGYwY2EifS5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmV7Y29udGVudDoiXGYxMjQifS5mYS1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjAyMyJ9LmZhLWxvY2stb3BlbjpiZWZvcmV7Y29udGVudDoiXGYzYzEifS5mYS1sb25nLWFycm93LWFsdC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMwOSJ9LmZhLWxvbmctYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBhIn0uZmEtbG9uZy1hcnJvdy1hbHQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBiIn0uZmEtbG9uZy1hcnJvdy1hbHQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzBjIn0uZmEtbG93LXZpc2lvbjpiZWZvcmV7Y29udGVudDoiXGYyYTgifS5mYS1seWZ0OmJlZm9yZXtjb250ZW50OiJcZjNjMyJ9LmZhLW1hZ2VudG86YmVmb3Jle2NvbnRlbnQ6IlxmM2M0In0uZmEtbWFnaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMGQwIn0uZmEtbWFnbmV0OmJlZm9yZXtjb250ZW50OiJcZjA3NiJ9LmZhLW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgzIn0uZmEtbWFwOmJlZm9yZXtjb250ZW50OiJcZjI3OSJ9LmZhLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDQxIn0uZmEtbWFwLW1hcmtlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M1In0uZmEtbWFwLXBpbjpiZWZvcmV7Y29udGVudDoiXGYyNzYifS5mYS1tYXAtc2lnbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjc3In0uZmEtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjIifS5mYS1tYXJzLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGYyMjcifS5mYS1tYXJzLXN0cm9rZTpiZWZvcmV7Y29udGVudDoiXGYyMjkifS5mYS1tYXJzLXN0cm9rZS1oOmJlZm9yZXtjb250ZW50OiJcZjIyYiJ9LmZhLW1hcnMtc3Ryb2tlLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMjJhIn0uZmEtbWF4Y2RuOmJlZm9yZXtjb250ZW50OiJcZjEzNiJ9LmZhLW1lZGFwcHM6YmVmb3Jle2NvbnRlbnQ6IlxmM2M2In0uZmEtbWVkaXVtOmJlZm9yZXtjb250ZW50OiJcZjIzYSJ9LmZhLW1lZGl1bS1tOmJlZm9yZXtjb250ZW50OiJcZjNjNyJ9LmZhLW1lZGtpdDpiZWZvcmV7Y29udGVudDoiXGYwZmEifS5mYS1tZWRydDpiZWZvcmV7Y29udGVudDoiXGYzYzgifS5mYS1tZWV0dXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmUwIn0uZmEtbWVoOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9LmZhLW1lcmN1cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjIzIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OiJcZjJkYiJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTMwIn0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1taWNyb3NvZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NhIn0uZmEtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY4In0uZmEtbWludXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NiJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1taXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2NiIn0uZmEtbWl4Y2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg5In0uZmEtbWl6dW5pOmJlZm9yZXtjb250ZW50OiJcZjNjYyJ9LmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxMGIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZCJ9LmZhLW1vZHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjg1In0uZmEtbW9uZXJvOmJlZm9yZXtjb250ZW50OiJcZjNkMCJ9LmZhLW1vbmV5LWJpbGwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNkMSJ9LmZhLW1vb246YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0uZmEtbW90b3JjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMWMifS5mYS1tb3VzZS1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI0NSJ9LmZhLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjAwMSJ9LmZhLW5hcHN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2QyIn0uZmEtbmV1dGVyOmJlZm9yZXtjb250ZW50OiJcZjIyYyJ9LmZhLW5ld3NwYXBlcjpiZWZvcmUsLmZhLW5ld3NwYXBlci1vOmJlZm9yZXtjb250ZW50OiJcZjFlYSJ9LmZhLW5pbnRlbmRvLXN3aXRjaDpiZWZvcmV7Y29udGVudDoiXGY0MTgifS5mYS1ub2RlOmJlZm9yZXtjb250ZW50OiJcZjQxOSJ9LmZhLW5vZGUtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2QzIn0uZmEtbnBtOmJlZm9yZXtjb250ZW50OiJcZjNkNCJ9LmZhLW5zODpiZWZvcmV7Y29udGVudDoiXGYzZDUifS5mYS1udXRyaXRpb25peDpiZWZvcmV7Y29udGVudDoiXGYzZDYifS5mYS1vYmplY3QtZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ3In0uZmEtb2JqZWN0LXVuZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ4In0uZmEtb2Rub2tsYXNzbmlraTpiZWZvcmV7Y29udGVudDoiXGYyNjMifS5mYS1vZG5va2xhc3NuaWtpLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyNjQifS5mYS1vcGVuY2FydDpiZWZvcmV7Y29udGVudDoiXGYyM2QifS5mYS1vcGVuaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTliIn0uZmEtb3BlcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMjZhIn0uZmEtb3B0aW4tbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGYyM2MifS5mYS1vc2k6YmVmb3Jle2NvbnRlbnQ6IlxmNDFhIn0uZmEtb3V0ZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2IifS5mYS1wYWdlNDpiZWZvcmV7Y29udGVudDoiXGYzZDcifS5mYS1wYWdlbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtcGFsZmVkOmJlZm9yZXtjb250ZW50OiJcZjNkOCJ9LmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjFkOCJ9LmZhLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGYwYzYifS5mYS1wYXJhZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRkIn0uZmEtcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGVhIn0uZmEtcGF0cmVvbjpiZWZvcmV7Y29udGVudDoiXGYzZDkifS5mYS1wYXVzZTpiZWZvcmV7Y29udGVudDoiXGYwNGMifS5mYS1wYXVzZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjhiIn0uZmEtcGF3OmJlZm9yZXtjb250ZW50OiJcZjFiMCJ9LmZhLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZWQifS5mYS1wZW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLXBlbmNpbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzAzIn0uZmEtcGVyY2VudDpiZWZvcmV7Y29udGVudDoiXGYyOTUifS5mYS1wZXJpc2NvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2RhIn0uZmEtcGhhYnJpY2F0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmM2RiIn0uZmEtcGhvZW5peC1mcmFtZXdvcms6YmVmb3Jle2NvbnRlbnQ6IlxmM2RjIn0uZmEtcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk1In0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLXBob25lLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyYTAifS5mYS1waHA6YmVmb3Jle2NvbnRlbnQ6IlxmNDU3In0uZmEtcGllZC1waXBlcjpiZWZvcmV7Y29udGVudDoiXGYyYWUifS5mYS1waWVkLXBpcGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxYTgifS5mYS1waWVkLXBpcGVyLXBwOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9LmZhLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDIifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkMyJ9LmZhLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjA3MiJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtcGxheXN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmM2RmIn0uZmEtcGx1ZzpiZWZvcmV7Y29udGVudDoiXGYxZTYifS5mYS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjA2NyJ9LmZhLXBsdXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NSJ9LmZhLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZSJ9LmZhLXBvZGNhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmNlIn0uZmEtcG91bmQtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTQifS5mYS1wb3dlci1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDExIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtcHJvZHVjdC1odW50OmJlZm9yZXtjb250ZW50OiJcZjI4OCJ9LmZhLXB1c2hlZDpiZWZvcmV7Y29udGVudDoiXGYzZTEifS5mYS1wdXp6bGUtcGllY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTJlIn0uZmEtcHl0aG9uOmJlZm9yZXtjb250ZW50OiJcZjNlMiJ9LmZhLXFxOmJlZm9yZXtjb250ZW50OiJcZjFkNiJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMjkifS5mYS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMjgifS5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU5In0uZmEtcXVpZGRpdGNoOmJlZm9yZXtjb250ZW50OiJcZjQ1OCJ9LmZhLXF1aW5zY2FwZTpiZWZvcmV7Y29udGVudDoiXGY0NTkifS5mYS1xdW9yYTpiZWZvcmV7Y29udGVudDoiXGYyYzQifS5mYS1xdW90ZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwZCJ9LmZhLXF1b3RlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwZSJ9LmZhLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGYwNzQifS5mYS1yYXZlbHJ5OmJlZm9yZXtjb250ZW50OiJcZjJkOSJ9LmZhLXJlYWN0OmJlZm9yZXtjb250ZW50OiJcZjQxYiJ9LmZhLXJlYmVsOmJlZm9yZXtjb250ZW50OiJcZjFkMCJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtcmVkLXJpdmVyOmJlZm9yZXtjb250ZW50OiJcZjNlMyJ9LmZhLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxYTEifS5mYS1yZWRkaXQtYWxpZW46YmVmb3Jle2NvbnRlbnQ6IlxmMjgxIn0uZmEtcmVkZGl0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYTIifS5mYS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmOSJ9LmZhLXJlZ2lzdGVyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjVkIn0uZmEtcmVuZGFjdDpiZWZvcmV7Y29udGVudDoiXGYzZTQifS5mYS1yZW5yZW46YmVmb3Jle2NvbnRlbnQ6IlxmMThiIn0uZmEtcmVwbHk6YmVmb3Jle2NvbnRlbnQ6IlxmM2U1In0uZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXJlcGx5ZDpiZWZvcmV7Y29udGVudDoiXGYzZTYifS5mYS1yZXNvbHZpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmM2U3In0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1yb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOCJ9LmZhLXJvY2tldDpiZWZvcmV7Y29udGVudDoiXGYxMzUifS5mYS1yb2NrZXRjaGF0OmJlZm9yZXtjb250ZW50OiJcZjNlOCJ9LmZhLXJvY2tybXM6YmVmb3Jle2NvbnRlbnQ6IlxmM2U5In0uZmEtcnNzOmJlZm9yZXtjb250ZW50OiJcZjA5ZSJ9LmZhLXJzcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtcnVibGUtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTgifS5mYS1ydXBlZS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NiJ9LmZhLXNhZmFyaTpiZWZvcmV7Y29udGVudDoiXGYyNjcifS5mYS1zYXNzOmJlZm9yZXtjb250ZW50OiJcZjQxZSJ9LmZhLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM3In0uZmEtc2NobGl4OmJlZm9yZXtjb250ZW50OiJcZjNlYSJ9LmZhLXNjcmliZDpiZWZvcmV7Y29udGVudDoiXGYyOGEifS5mYS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDAyIn0uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjAxMCJ9LmZhLXNlYXJjaC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjAwZSJ9LmZhLXNlYXJjaGVuZ2luOmJlZm9yZXtjb250ZW50OiJcZjNlYiJ9LmZhLXNlbGxjYXN0OmJlZm9yZXtjb250ZW50OiJcZjJkYSJ9LmZhLXNlbGxzeTpiZWZvcmV7Y29udGVudDoiXGYyMTMifS5mYS1zZXJ2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjMzIn0uZmEtc2VydmljZXN0YWNrOmJlZm9yZXtjb250ZW50OiJcZjNlYyJ9LmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1zaGVrZWwtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYyMGIifS5mYS1zaGllbGQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNlZCJ9LmZhLXNoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0uZmEtc2hpcnRzaW5idWxrOmJlZm9yZXtjb250ZW50OiJcZjIxNCJ9LmZhLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYyOTAifS5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjkxIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1zaG93ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmNjIn0uZmEtc2lnbi1pbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY2In0uZmEtc2lnbi1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYyYTcifS5mYS1zaWduLW91dC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY1In0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjAxMiJ9LmZhLXNpbXBseWJ1aWx0OmJlZm9yZXtjb250ZW50OiJcZjIxNSJ9LmZhLXNpc3RyaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2VlIn0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS1za3lhdGxhczpiZWZvcmV7Y29udGVudDoiXGYyMTYifS5mYS1za3lwZTpiZWZvcmV7Y29udGVudDoiXGYxN2UifS5mYS1zbGFjazpiZWZvcmV7Y29udGVudDoiXGYxOTgifS5mYS1zbGFjay1oYXNoOmJlZm9yZXtjb250ZW50OiJcZjNlZiJ9LmZhLXNsaWRlcnMtaDpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zbGlkZXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjFlNyJ9LmZhLXNtaWxlOmJlZm9yZSwuZmEtc21pbGUtbzpiZWZvcmV7Y29udGVudDoiXGYxMTgifS5mYS1zbmFwY2hhdDpiZWZvcmV7Y29udGVudDoiXGYyYWIifS5mYS1zbmFwY2hhdC1naG9zdDpiZWZvcmV7Y29udGVudDoiXGYyYWMifS5mYS1zbmFwY2hhdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmFkIn0uZmEtc25vd2ZsYWtlOmJlZm9yZXtjb250ZW50OiJcZjJkYyJ9LmZhLXNvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRjIn0uZmEtc29ydC1hbHBoYS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0uZmEtc29ydC1hbW91bnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjAifS5mYS1zb3J0LWFtb3VudC11cDpiZWZvcmV7Y29udGVudDoiXGYxNjEifS5mYS1zb3J0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGRkIn0uZmEtc29ydC1udW1lcmljLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYyIn0uZmEtc29ydC1udW1lcmljLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtc291bmRjbG91ZDpiZWZvcmV7Y29udGVudDoiXGYxYmUifS5mYS1zcGFjZS1zaHV0dGxlOmJlZm9yZXtjb250ZW50OiJcZjE5NyJ9LmZhLXNwZWFrYXA6YmVmb3Jle2NvbnRlbnQ6IlxmM2YzIn0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1zcG90aWZ5OmJlZm9yZXtjb250ZW50OiJcZjFiYyJ9LmZhLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwYzgifS5mYS1zcXVhcmUtZnVsbDpiZWZvcmV7Y29udGVudDoiXGY0NWMifS5mYS1zdGFjay1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYxOGQifS5mYS1zdGFjay1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiXGYxNmMifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXN0YXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYwODkifS5mYS1zdGF5bGlua2VkOmJlZm9yZXtjb250ZW50OiJcZjNmNSJ9LmZhLXN0ZWFtOmJlZm9yZXtjb250ZW50OiJcZjFiNiJ9LmZhLXN0ZWFtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYjcifS5mYS1zdGVhbS1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y2In0uZmEtc3RlcC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNDgifS5mYS1zdGVwLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUxIn0uZmEtc3RldGhvc2NvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGYxIn0uZmEtc3RpY2tlci1tdWxlOmJlZm9yZXtjb250ZW50OiJcZjNmNyJ9LmZhLXN0aWNreS1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjI0OSJ9LmZhLXN0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMDRkIn0uZmEtc3RvcC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjhkIn0uZmEtc3RvcHdhdGNoOmJlZm9yZXtjb250ZW50OiJcZjJmMiJ9LmZhLXN0cmF2YTpiZWZvcmV7Y29udGVudDoiXGY0MjgifS5mYS1zdHJlZXQtdmlldzpiZWZvcmV7Y29udGVudDoiXGYyMWQifS5mYS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjBjYyJ9LmZhLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGY0MjkifS5mYS1zdHJpcGUtczpiZWZvcmV7Y29udGVudDoiXGY0MmEifS5mYS1zdHVkaW92aW5hcmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y4In0uZmEtc3R1bWJsZXVwb246YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0uZmEtc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9LmZhLXN1YnNjcmlwdDpiZWZvcmV7Y29udGVudDoiXGYxMmMifS5mYS1zdWJ3YXk6YmVmb3Jle2NvbnRlbnQ6IlxmMjM5In0uZmEtc3VpdGNhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGYyIn0uZmEtc3VuOmJlZm9yZSwuZmEtc3VuLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTg1In0uZmEtc3VwZXJwb3dlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMmRkIn0uZmEtc3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJiIn0uZmEtc3VwcGxlOmJlZm9yZXtjb250ZW50OiJcZjNmOSJ9LmZhLXN5bmM6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtc3luYy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmYxIn0uZmEtdGFibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGNlIn0uZmEtdGFibGUtdGVubmlzOmJlZm9yZXtjb250ZW50OiJcZjQ1ZCJ9LmZhLXRhYmxldDpiZWZvcmV7Y29udGVudDoiXGYxMGEifS5mYS10YWJsZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmYSJ9LmZhLXRhY2hvbWV0ZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZCJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDoiXGYwMmIifS5mYS10YWdzOmJlZm9yZXtjb250ZW50OiJcZjAyYyJ9LmZhLXRhc2tzOmJlZm9yZXtjb250ZW50OiJcZjBhZSJ9LmZhLXRheGk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJhIn0uZmEtdGVsZWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMmM2In0uZmEtdGVsZWdyYW0tcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZlIn0uZmEtdGVuY2VudC13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxZDUifS5mYS10ZXJtaW5hbDpiZWZvcmV7Y29udGVudDoiXGYxMjAifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZjAzNSJ9LmZhLXRoOmJlZm9yZXtjb250ZW50OiJcZjAwYSJ9LmZhLXRoLWxhcmdlOmJlZm9yZXtjb250ZW50OiJcZjAwOSJ9LmZhLXRoLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDBiIn0uZmEtdGhlbWVpc2xlOmJlZm9yZXtjb250ZW50OiJcZjJiMiJ9LmZhLXRoZXJtb21ldGVyLWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjJjYiJ9LmZhLXRoZXJtb21ldGVyLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMmM3In0uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyYzkifS5mYS10aGVybW9tZXRlci1xdWFydGVyOmJlZm9yZXtjb250ZW50OiJcZjJjYSJ9LmZhLXRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzOmJlZm9yZXtjb250ZW50OiJcZjJjOCJ9LmZhLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9LmZhLXRodW1icy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjQifS5mYS10aHVtYnRhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDhkIn0uZmEtdGlja2V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmYifS5mYS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS10aW1lcy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU3In0uZmEtdGludDpiZWZvcmV7Y29udGVudDoiXGYwNDMifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDoiXGYyMDUifS5mYS10cmFkZW1hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMjVjIn0uZmEtdHJhaW46YmVmb3Jle2NvbnRlbnQ6IlxmMjM4In0uZmEtdHJhbnNnZW5kZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjI0In0uZmEtdHJhbnNnZW5kZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjIyNSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10cmVlOmJlZm9yZXtjb250ZW50OiJcZjFiYiJ9LmZhLXRyZWxsbzpiZWZvcmV7Y29udGVudDoiXGYxODEifS5mYS10cmlwYWR2aXNvcjpiZWZvcmV7Y29udGVudDoiXGYyNjIifS5mYS10cm9waHk6YmVmb3Jle2NvbnRlbnQ6IlxmMDkxIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGQxIn0uZmEtdHR5OmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9LmZhLXR1bWJscjpiZWZvcmV7Y29udGVudDoiXGYxNzMifS5mYS10dW1ibHItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE3NCJ9LmZhLXR2OmJlZm9yZXtjb250ZW50OiJcZjI2YyJ9LmZhLXR3aXRjaDpiZWZvcmV7Y29udGVudDoiXGYxZTgifS5mYS10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjA5OSJ9LmZhLXR3aXR0ZXItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MSJ9LmZhLXR5cG8zOmJlZm9yZXtjb250ZW50OiJcZjQyYiJ9LmZhLXViZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDAyIn0uZmEtdWlraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDAzIn0uZmEtdW1icmVsbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMGU5In0uZmEtdW5kZXJsaW5lOmJlZm9yZXtjb250ZW50OiJcZjBjZCJ9LmZhLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmMGUyIn0uZmEtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVhIn0uZmEtdW5pcmVnaXN0cnk6YmVmb3Jle2NvbnRlbnQ6IlxmNDA0In0uZmEtdW5pdmVyc2FsLWFjY2VzczpiZWZvcmV7Y29udGVudDoiXGYyOWEifS5mYS11bml2ZXJzaXR5OmJlZm9yZXtjb250ZW50OiJcZjE5YyJ9LmZhLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYxMjcifS5mYS11bmxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDljIn0uZmEtdW5sb2NrLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxM2UifS5mYS11bnRhcHBkOmJlZm9yZXtjb250ZW50OiJcZjQwNSJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS11c2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjg3In0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS11c2VyLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyYmQifS5mYS11c2VyLW1kOmJlZm9yZXtjb250ZW50OiJcZjBmMCJ9LmZhLXVzZXItcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMzQifS5mYS11c2VyLXNlY3JldDpiZWZvcmV7Y29udGVudDoiXGYyMWIifS5mYS11c2VyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjIzNSJ9LmZhLXVzZXJzOmJlZm9yZXtjb250ZW50OiJcZjBjMCJ9LmZhLXVzc3VubmFoOmJlZm9yZXtjb250ZW50OiJcZjQwNyJ9LmZhLXV0ZW5zaWwtc3Bvb246YmVmb3Jle2NvbnRlbnQ6IlxmMmU1In0uZmEtdXRlbnNpbHM6YmVmb3Jle2NvbnRlbnQ6IlxmMmU3In0uZmEtdmFhZGluOmJlZm9yZXtjb250ZW50OiJcZjQwOCJ9LmZhLXZlbnVzOmJlZm9yZXtjb250ZW50OiJcZjIyMSJ9LmZhLXZlbnVzLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGYyMjYifS5mYS12ZW51cy1tYXJzOmJlZm9yZXtjb250ZW50OiJcZjIyOCJ9LmZhLXZpYWNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMjM3In0uZmEtdmlhZGVvOmJlZm9yZXtjb250ZW50OiJcZjJhOSJ9LmZhLXZpYWRlby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmFhIn0uZmEtdmliZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDA5In0uZmEtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMDNkIn0uZmEtdmltZW86YmVmb3Jle2NvbnRlbnQ6IlxmNDBhIn0uZmEtdmltZW8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5NCJ9LmZhLXZpbWVvLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMjdkIn0uZmEtdmluZTpiZWZvcmV7Y29udGVudDoiXGYxY2EifS5mYS12azpiZWZvcmV7Y29udGVudDoiXGYxODkifS5mYS12bnY6YmVmb3Jle2NvbnRlbnQ6IlxmNDBiIn0uZmEtdm9sbGV5YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1ZiJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAyNyJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLXVwOmJlZm9yZXtjb250ZW50OiJcZjAyOCJ9LmZhLXZ1ZWpzOmJlZm9yZXtjb250ZW50OiJcZjQxZiJ9LmZhLXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjE4YSJ9LmZhLXdlaXhpbjpiZWZvcmV7Y29udGVudDoiXGYxZDcifS5mYS13aGF0c2FwcDpiZWZvcmV7Y29udGVudDoiXGYyMzIifS5mYS13aGF0c2FwcC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDBjIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDoiXGYxOTMifS5mYS13aG1jczpiZWZvcmV7Y29udGVudDoiXGY0MGQifS5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLXdpa2lwZWRpYS13OmJlZm9yZXtjb250ZW50OiJcZjI2NiJ9LmZhLXdpbmRvdy1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGY0MTAifS5mYS13aW5kb3ctbWF4aW1pemU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQwIn0uZmEtd2luZG93LW1pbmltaXplOmJlZm9yZXtjb250ZW50OiJcZjJkMSJ9LmZhLXdpbmRvdy1yZXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjJkMiJ9LmZhLXdpbmRvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTdhIn0uZmEtd29uLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0uZmEtd29yZHByZXNzOmJlZm9yZXtjb250ZW50OiJcZjE5YSJ9LmZhLXdvcmRwcmVzcy1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDExIn0uZmEtd3BiZWdpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYyOTcifS5mYS13cGV4cGxvcmVyOmJlZm9yZXtjb250ZW50OiJcZjJkZSJ9LmZhLXdwZm9ybXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjk4In0uZmEtd3JlbmNoOmJlZm9yZXtjb250ZW50OiJcZjBhZCJ9LmZhLXhib3g6YmVmb3Jle2NvbnRlbnQ6IlxmNDEyIn0uZmEteGluZzpiZWZvcmV7Y29udGVudDoiXGYxNjgifS5mYS14aW5nLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNjkifS5mYS15LWNvbWJpbmF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjNiIn0uZmEteWFob286YmVmb3Jle2NvbnRlbnQ6IlxmMTllIn0uZmEteWFuZGV4OmJlZm9yZXtjb250ZW50OiJcZjQxMyJ9LmZhLXlhbmRleC1pbnRlcm5hdGlvbmFsOmJlZm9yZXtjb250ZW50OiJcZjQxNCJ9LmZhLXllbHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWU5In0uZmEteWVuLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU3In0uZmEteW9hc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmIxIn0uZmEteW91dHViZTpiZWZvcmV7Y29udGVudDoiXGYxNjcifS5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MzEifQovKiogL2Nzcy92Mi9hbmltYXRlLmNzcyAqKi8KLmFuaW0tYmVhdCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0OyBhbmltYXRpb24tbmFtZTphbmltLWJlYXQ7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KSB9IC5hbmltLWJvdW5jZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1ib3VuY2U7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYm91bmNlOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguMjgsLjg0LC40MiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKSB9IC5hbmltLWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tZmFkZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1mYWRlOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSkgfSAuYW5pbS1iZWF0LWZhZGUsLmFuaW0tZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcykgfSAuYW5pbS1iZWF0LWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdC1mYWRlOyBhbmltYXRpb24tbmFtZTphbmltLWJlYXQtZmFkZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpIH0gLmFuaW0tZmxpcCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1mbGlwOyBhbmltYXRpb24tbmFtZTphbmltLWZsaXA7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sM3MpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwzcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KSB9IC5hbmltLXNoYWtlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNoYWtlOyBhbmltYXRpb24tbmFtZTphbmltLXNoYWtlOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKSB9IC5hbmltLXNoYWtlLC5hbmltLXNwaW4geyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpIH0gLmFuaW0tc3BpbiB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyBhbmltYXRpb24tbmFtZTphbmltLXNwaW47IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMnMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwycyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpIH0gLmFuaW0tc3Bpbi1yZXZlcnNlIHsgLS1hbmltLWRpcmVjdGlvbjpyZXZlcnNlIH0gLmFuaW0tcHVsc2UsLmFuaW0tc3Bpbi1wdWxzZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyBhbmltYXRpb24tbmFtZTphbmltLXNwaW47IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsc3RlcHMoOCkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLHN0ZXBzKDgpKSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJlYXQgeyAwJSw5MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSkgfSB9IEBrZXlmcmFtZXMgYW5pbS1iZWF0IHsgMCUsOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDQ1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1ib3VuY2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gMTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApIH0gMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCkgfSA1NyUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKSB9IDY0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IH0gQGtleWZyYW1lcyBhbmltLWJvdW5jZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSAxMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCkgfSAzMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKSB9IDU3JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpIH0gNjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1mYWRlIHsgNTAlIHsgb3BhY2l0eTp2YXIoLS1hbmltLWZhZGUtb3BhY2l0eSwuNCkgfSB9IEBrZXlmcmFtZXMgYW5pbS1mYWRlIHsgNTAlIHsgb3BhY2l0eTp2YXIoLS1hbmltLWZhZGUtb3BhY2l0eSwuNCkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJlYXQtZmFkZSB7IDAlLHRvIHsgb3BhY2l0eTp2YXIoLS1hbmltLWJlYXQtZmFkZS1vcGFjaXR5LC40KTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDUwJSB7IG9wYWNpdHk6MTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSkgfSB9IEBrZXlmcmFtZXMgYW5pbS1iZWF0LWZhZGUgeyAwJSx0byB7IG9wYWNpdHk6dmFyKC0tYW5pbS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA1MCUgeyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1mbGlwIHsgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKTsgdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSkgfSB9IEBrZXlmcmFtZXMgYW5pbS1mbGlwIHsgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKTsgdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLXNoYWtlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpIH0gNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKSB9IDglLDI0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xOGRlZykgfSAxMiUsMjglIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZykgfSAxNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpIH0gMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZykgfSAzMiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpIH0gMzYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgfSA0MCUsdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB9IEBrZXlmcmFtZXMgYW5pbS1zaGFrZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKSB9IDQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZykgfSA4JSwyNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpIH0gMTIlLDI4JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMThkZWcpIH0gMTYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKSB9IDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpIH0gMzIlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKSB9IDM2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIH0gNDAlLHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1zcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7IHRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pIH0gfSBAa2V5ZnJhbWVzIGFuaW0tc3BpbiB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pOyB0cmFuc2Zvcm06cm90YXRlKDF0dXJuKSB9IH0gQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZSkgeyBib2R5ICNwcm9tb1RvcEJ0biAuYW5pbS1mbGlweyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp1bnNldDsgYW5pbWF0aW9uLWRlbGF5OnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dW5zZXQ7IGFuaW1hdGlvbi1kaXJlY3Rpb246dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnVuc2V0OyBhbmltYXRpb24tZHVyYXRpb246dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp1bnNldDsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnVuc2V0OyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnVuc2V0OyB9IH0gLnB1bHNhdGluZy1jaXJjbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IGZsZXg6MCAwIGF1dG87ICY6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjMwMCU7IGhlaWdodDozMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1sZWZ0Oi0xMDAlOyBtYXJnaW4tdG9wOi0xMDAlOyBib3JkZXItcmFkaXVzOjQ1cHg7IGJhY2tncm91bmQtY29sb3I6IzAxYTRlOTsgYW5pbWF0aW9uOnB1bHNlLXJpbmcgMS4yNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSkgaW5maW5pdGU7IH0gJjphZnRlciB7IGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHRvcDowOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czoxNXB4OyBib3gtc2hhZG93OjAgMCA4cHggcmdiYSgwLDAsMCwuMyk7IGFuaW1hdGlvbjpwdWxzZS1kb3QgMS4yNXMgY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzLCAwLjUxNSwgMC45NTUpIC0uNHMgaW5maW5pdGU7IH0gfSBAa2V5ZnJhbWVzIHB1bHNlLXJpbmcgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSguMzMpOyB9IDgwJSwgMTAwJSB7IG9wYWNpdHk6MDsgfSB9IEBrZXlmcmFtZXMgcHVsc2UtZG90IHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjgpOyB9IDUwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSB9Ci8qKiAvY3NzL2Rpdl9sYXllcnMuY3NzICoqLwpkaXYuTWFpbkJveExheWVyeyB3aWR0aDptaW4oMTAwJSw5NjBweCk7IG1hcmdpbjowIGF1dG87IH0gZGl2Lk1haW5Cb3hMYXllciBIMXsgd2lkdGg6OTQwcHg7IH0gZGl2Lk1haW5Cb3hMYXllciAucmVzcG9uc2l2ZS1lZGl0b3IgaDEgeyB3aWR0aDppbml0aWFsOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LmNyZWRzaWlEaXYgSDF7IHdpZHRoOmF1dG87IH0gLmNyZWRzaWlEaXZ7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5MZWZ0Qm94TGF5ZXIgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LlJpZ2h0Qm94TGF5ZXIgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjk0MHB4OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIgeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7IHdpZHRoOjEwMCU7IGNsZWFyOmJvdGg7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllci50b3BCb3JkZXJlZHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjYzsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyLmJvdHRvbUJvcmRlcmVkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC5lYXN0eyBmbG9hdDpyaWdodDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC53ZXN0eyBmbG9hdDpsZWZ0OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2V7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZSA+IGltZ3sgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyI2hpc3RvcnlEaXYgZGl2LklubmVyQm94TGF5ZXIgI2JyZWFkY3J1bWJzIHsgbWFyZ2luOjA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgeyB3aWR0aDoxMjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyIHsgd2lkdGg6MTE4MHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllci54dGltZUZyYW1lIHsgd2lkdGg6MTIwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBIMXsgd2lkdGg6MTE4MHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAucmVzcG9uc2l2ZS1lZGl0b3IgaDEgeyB3aWR0aDppbml0aWFsOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuY3JlZHNpaURpdiBIMXsgd2lkdGg6YXV0bzsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlIHsgd2lkdGg6MTE4MHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UuVEVBTSB7IHdpZHRoOjk2MHB4OyB9IH0gZGl2Lk1haW5Cb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuTGVmdEJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfQovKiogL2Nzcy9kaXZfc3BhbnMuY3NzICoqLwouZGl2U3BhbntmbG9hdDpsZWZ0O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZGl2U3Bhbi5kaXZTcGFuTGVmdHtmbG9hdDpsZWZ0fS5kaXZTcGFuLmRpdlNwYW5SaWdodHtmbG9hdDpyaWdodH0uZGl2U3Bhbi5kaXZTcGFuMXt3aWR0aDo4LjMzMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjJ7d2lkdGg6MTYuNjY2NjY2NjY2NjY2NjclfS5kaXZTcGFuLmRpdlNwYW4ze3dpZHRoOjI1JX0uZGl2U3Bhbi5kaXZTcGFuNHt3aWR0aDozMy4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjV7d2lkdGg6NDEuNjY2NjY2NjY2NjY2NjclfS5kaXZTcGFuLmRpdlNwYW42e3dpZHRoOjUwJX0uZGl2U3Bhbi5kaXZTcGFuN3t3aWR0aDo1OC4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3Bhbjh7d2lkdGg6NjYuNjY2NjY2NjY2NjY2NjYlfS5kaXZTcGFuLmRpdlNwYW45e3dpZHRoOjc1JX0uZGl2U3Bhbi5kaXZTcGFuMTB7d2lkdGg6ODMuMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW4xMXt3aWR0aDo5MS42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3BhbjEye3dpZHRoOjEwMCV9Ci8qKiAvY3NzL21lbnUtYmFzZS5jc3MgKiovCmJvZHkgLnVwX21lbnUsIGJvZHkgLnVwX21lbnUgKiB7IGJveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDsgfSBib2R5IC51cF9tZW51IHVsLm5hdiA+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+IHVsID4gbGkgPiBkaXYgeyByaWdodDoxMDAlOyBsZWZ0OmluaXRpYWw7IH0gLnVwX21lbnUgdWwubmF2IGxpLmludmVyc2UtY29sb3IgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAuZGVhbGVyTWFwTGluayAuZmEtbG9jYXRpb24tYXJyb3cgeyBtYXJnaW46MCA3cHggMCAwOyB9IC52LWNhcmQudG9wX2JnLmhlYWRlci1pbmZvIC5oZWFkZXItc2VjdGlvbi5hZGRyZXNzLXJpZ2h0IHsgZmxleC1ncm93OjI7IGp1c3RpZnktY29udGVudDpyaWdodDsgfSAudi1jYXJkLnRvcF9iZy5oZWFkZXItaW5mbyAuaGVhZGVyLXNlY3Rpb24ubG9nby1yaWdodCB7IG1hcmdpbi1sZWZ0OjEwcHg7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2FkdmFuY2VkLXNsaWRlci1iYXNlLmNzcyAqKi8KLmFkdmFuY2VkLXNsaWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyBvdXRsaW5lOm5vbmU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgKiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVyLW1haW4geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIHVsLnNsaWRlcyB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbjowOyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHZpc2liaWxpdHk6aGlkZGVuOyBsaXN0LXN0eWxlOm5vbmU7IGZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7IG9wYWNpdHk6MTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5pbWFnZSwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudGh1bWJuYWlsLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5jYXB0aW9uLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSBpbWcsIC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCBpbWcgeyBtYXgtd2lkdGg6bm9uZTsgbWF4LWhlaWdodDpub25lOyBib3JkZXI6MCBub25lOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLmh0bWwgeyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUuYWN0aXZlIC52aWRlbyB7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpY2UtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgeyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW8tdXNlci1zZWxlY3Q6bm9uZTsgdXNlci1zZWxlY3Q6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgLnNlbGVjdGFibGUgeyAtd2Via2l0LXVzZXItc2VsZWN0OmF1dG87IC1tb3otdXNlci1zZWxlY3Q6YXV0bzsgLW8tdXNlci1zZWxlY3Q6YXV0bzsgdXNlci1zZWxlY3Q6YXV0bzsgY3Vyc29yOmF1dG87IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuZ3JhYiB7IGN1cnNvcjpncmFiOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWJiaW5nIHsgY3Vyc29yOmdyYWJiaW5nOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAucHJlbG9hZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJlbG9hZGVyMi5naWYpIG5vLXJlcGVhdDsgd2lkdGg6NjJweDsgaGVpZ2h0OjE0cHg7IHotaW5kZXg6MTU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYXJyb3dzIHsgcG9zaXRpb246c3RhdGljOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MzA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6ODBweDsgaGVpZ2h0OjgwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi00MHB4OyBtYXJnaW4tbGVmdDotNDBweDsgY3Vyc29yOnBvaW50ZXI7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5LnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5tYWduaWZ5aW5nIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saWdodGJveF9tYWduaWZ5aW5nX3NtYWxsLnBuZykgbm8tcmVwZWF0OyBmbG9hdDpsZWZ0OyBsZWZ0OjA7IHRvcDowOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6bm9uZTsgfSB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmsucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZXNob3ctY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IHsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDo5NHB4OyBtYXJnaW4tdG9wOi01MHB4OyB6LWluZGV4OjU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctbGVmdCwgLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctcmlnaHQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LW1pZGRsZSB7IGZsb2F0OmxlZnQ7IH0gLmFkdmFuY2VkLXNsaWRlciAuZnVsbC1zY3JlZW4tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Z1bGxzY3JlZW4ucG5nKSBuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozMXB4OyBoZWlnaHQ6MjdweDsgdG9wOjIwcHg7IGxlZnQ6MjBweDsgei1pbmRleDo2MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NTA7IH0gLmFkdmFuY2VkLXNsaWRlciBjYW52YXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgd2lkdGg6MjBweDsgaGVpZ2h0OjIwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xMHB4OyBtYXJnaW4tbGVmdDotMTBweDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcGxheXBhdXNlX3NtYWxsLnBuZykgbm8tcmVwZWF0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wbGF5IC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMHB4IDA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uLnBhdXNlIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciB7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLndyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtd3JhcHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcHJlbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLmxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLnJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgYSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6cG9pbnRlcjsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAudmlzaWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IG92ZXJmbG93OnZpc2libGU7IHRvcDowOyBsZWZ0OjA7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnRodW1ibmFpbC13cmFwcGVyIHsgY3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xNXB4OyBtYXJnaW4tbGVmdDotMTVweDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLnBsYXkgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X3BsYXlfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5oeXBlcmxpbmsgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X2h5cGVybGlua19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmNvbnRlbnQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyLXRvb2x0aXAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTk5OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGU6bnRoLWNoaWxkKC1uKzQpIGEgaW1neyB3aWR0aDoxMTUlICFpbXBvcnRhbnQ7IH0gLm9lbS1pbWctc2xpZGVyIC5zbGlkZSBhIGltZ3sgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgbWF4LWhlaWdodDpub25lICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7IGxlZnQ6aW5pdGlhbCAhaW1wb3J0YW50OyB0b3A6aW5pdGlhbCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6dW5zZXQgIWltcG9ydGFudDsgbWF4LWhlaWdodDp1bnNldCAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIHsgYmFja2dyb3VuZC1zaXplOjExNSU7IH0KLyoqIC9jc3MvcGFnZWJhbm5lci5jc3MgKiovCiN0b3BCYW5uZXJJbWFnZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIHsgei1pbmRleDoxMTA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBmb250LXNpemU6dmFyKC0tZnMpOyBwYWRkaW5nOjVweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIC5mYS10aW1lcyB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRyb2wgeyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IHRleHQtd3JhcDpub3dyYXA7IH0gI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sID4gYnV0dG9uIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgZm9udC1zaXplOnZhcigtLWZzKTsgY29sb3I6dmFyKC0td2hpdGUpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgd2lkdGg6MTAwJTsgcGFkZGluZzowLjc1cmVtOyB9ICN0b3BCYW5uZXJJbWFnZTpub3QoOmhhcygqKSkgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJuZXdpbnYiXTpoYXMoLnVzZWRJbnZCYW5uZXI6b25seS1jaGlsZCkgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJ1c2VkIl06aGFzKC5uZXdJbnZCYW5uZXI6b25seS1jaGlsZCkgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJuZXdpbnYiXSAudXNlZEludkJhbm5lciB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2VbZGF0YS1pbnZjYXQ9InVzZWQiXSAubmV3SW52QmFubmVyIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0ibmV3aW52Il06aGFzKC5uZXdJbnZCYW5uZXIpICNkZWZhdWx0VG9wQmFubmVyIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0idXNlZCJdOmhhcygudXNlZEludkJhbm5lcikgI2RlZmF1bHRUb3BCYW5uZXIgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlID4gaW1neyB3aWR0aDoxMDAlOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjBweCkgeyAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRyb2wgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDI7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTsgYm90dG9tOjAuNzVyZW07IH0gI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sID4gYnV0dG9uIHsgd2lkdGg6YXV0bzsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjgpOyBib3JkZXI6bm9uZTsgY29sb3I6dmFyKC0td2hpdGUpOyBmb250LXNpemU6dmFyKC0tZnMtMik7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6OHB4IDEzcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyB3aWR0aDpjYWxjKDEwMCUgLSAyMHB4KTsgaGVpZ2h0OmNhbGMoMTAwJSAtIDEwcHgpOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC44KTsgY29sb3I6dmFyKC0tbGlnaHQpOyBmb250LXNpemU6dmFyKC0tZnMpOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIC5mYS10aW1lcyB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wIDoxMHB4OyByaWdodDoxMCU7IGN1cnNvcjpwb2ludGVyOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyID4gZGl2IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjc1JTsgdG9wOjUwJTsgbGVmdDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7IGhlaWdodDo5MCU7IG92ZXJmbG93LXg6aGlkZGVuOyBvdmVyZmxvdy15OmF1dG87IH0gfQovKiogL2Nzcy92ZWhpY2xlRmVhdHVyZVN1bW1hcnkucHJlbG9hZC5jc3MgKiovCi52ZHBGZWF0dXJlU3VtbWFyeXsgLS1zd2l0Y2gtYnA6NTByZW07IGJvcmRlci1jb2xvcjojY2NjY2NjOyBjbGVhcjpib3RoOyB9IC52c2ZpSXRlbVN1bW1hcnkgeyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxLjJyZW07IH0gLnZkcEZlYXR1cmVDb25zdW1wdGlvbnsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgfSAudmRwRmVhdHVyZUNvbnN1bXB0aW9uID4gKnsgZmxleDoxIDEgMzElOyBtaW4td2lkdGg6OXJlbTsgfQovKiogL2Nzcy90b2FzdHIuY3NzICoqLwoudG9hc3QtdGl0bGV7Zm9udC13ZWlnaHQ6Ym9sZH0udG9hc3QtbWVzc2FnZXstbXMtd29yZC13cmFwOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9LnRvYXN0LW1lc3NhZ2UgYSwudG9hc3QtbWVzc2FnZSBsYWJlbHtjb2xvcjojZmZmfS50b2FzdC1tZXNzYWdlIGE6aG92ZXJ7Y29sb3I6I2NjYzt0ZXh0LWRlY29yYXRpb246bm9uZX0udG9hc3QtY2xvc2UtYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Oi0wLjNlbTt0b3A6LTAuM2VtO2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxLjI1cmVtIDtmb250LXdlaWdodDpib2xkO2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7dGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO29wYWNpdHk6Ljg7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTgwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT04MCl9LnRvYXN0LWNsb3NlLWJ1dHRvbjpob3ZlciwudG9hc3QtY2xvc2UtYnV0dG9uOmZvY3Vze2NvbG9yOiMwMDAwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouNDstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKX1idXR0b24udG9hc3QtY2xvc2UtYnV0dG9ue3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS50b2FzdC10b3AtY2VudGVye3RvcDowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtYm90dG9tLWNlbnRlcntib3R0b206MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LXRvcC1mdWxsLXdpZHRoe3RvcDowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtYm90dG9tLWZ1bGwtd2lkdGh7Ym90dG9tOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC10b3AtbGVmdHt0b3A6MTJweDtsZWZ0OjEycHh9LnRvYXN0LXRvcC1yaWdodHt0b3A6MTJweDtyaWdodDoxMnB4fS50b2FzdC1ib3R0b20tcmlnaHR7cmlnaHQ6MTJweDtib3R0b206MTJweH0udG9hc3QtYm90dG9tLWxlZnR7Ym90dG9tOjEycHg7bGVmdDoxMnB4fSN0b2FzdC1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo5OTk5OTk7Y29sb3I6I0ZGRn0jdG9hc3QtY29udGFpbmVyICp7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fSN0b2FzdC1jb250YWluZXI+ZGl2e3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjttYXJnaW46MCAwIDZweDtwYWRkaW5nOjE1cHggMTVweCAxNXB4IDUwcHg7d2lkdGg6MzAwcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4IDNweCAzcHggM3B4O2JvcmRlci1yYWRpdXM6M3B4IDNweCAzcHggM3B4O2JhY2tncm91bmQtcG9zaXRpb246MTVweCBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy1tb3otYm94LXNoYWRvdzowIDAgMTJweCAjOTk5Oy13ZWJraXQtYm94LXNoYWRvdzowIDAgMTJweCAjOTk5O2JveC1zaGFkb3c6MCAwIDEycHggIzk5OTtjb2xvcjppbmhlcml0O29wYWNpdHk6Ljg7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTgwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT04MCl9I3RvYXN0LWNvbnRhaW5lcj46aG92ZXJ7LW1vei1ib3gtc2hhZG93OjAgMCAxMnB4ICMwMDA7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMnB4ICMwMDA7Ym94LXNoYWRvdzowIDAgMTJweCAjMDAwO29wYWNpdHk6MTstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO2N1cnNvcjpwb2ludGVyfSN0b2FzdC1jb250YWluZXI+LnRvYXN0LWluZm97YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFHd1NVUkJWRWhMdFphOVNnTkJFTWM5c1V4eFJjb1VLU3pTV0loWHBGTWhoWVdGaGFCZzR5UFlpV0NYWnhCTEVSc0xSUzNFUWtFZndDS2RqV0pBd1NLQ2dvS0NjdWR2NE81WUxydDdFemdYaGlVMy80K2IyY2ttd1ZqSlNwS2tRNndBaTRnd2hUK3ozd1JCY0V6MHlqU3NlVVRyY1J5ZnNIc1htRDBBbWJIT0M5SWk4VkltbnVYQlBnbEhwUTV3d1NWTTdzTm5URzdaYTRKd0RkQ2p4eUFpSDNueUEybXRhVEp1ZmlEWjVkQ2FxbEl0SUxoMU5IYXRmTjVza3ZqeDlaMzhtNjlDZ3p1WG1aZ1ZyUElHRTc2M0p4OXFLc1JveldZdzZ4T0hkRVIrbm4yS2tPK0JiK1VWNUNCTjZXQzZRdEJnYlJWb3pyYWhBYm1tNkh0VXNndFBDMTl0RmR4WFpZQk9ma2JtRkoxVmFIQTFWQUhqZDBwcDcwb1RaenZSK0VWcngyWWdmZHNxNmV1NTVCSFlSOGhsY2tpK24ra0VSVUZHOEJyQTBCd2plQXYyTThXTFFCdGN5K1NENmZOc21uQjNBbEJMcmdUdFZXMWMyUU40YlZXTEFUYUlTNjBKMkR1NXkxVGlKZ2pTQnZGVlpnVG13Q1UrZEFaRm9QeEdFRXM4bnlIQzlCd2UyR3ZFSnYyV1haYjB2amR5RlQ0Q3hrM2Uva0lxbE9Hb1ZMd3dQZXZwWUhUKzAwVCtoV3dYRGY0QUpBT1VxV2NEaGJ3QUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXI+LnRvYXN0LWVycm9ye2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBSE9TVVJCVkVoTHJaYS9TZ05CRU1aemgwV0tDQ2xTQ0thSVlPRUQrQUFLZVFRTEc4SFd6dExDSW1CcllhZGdJZFkrZ0lLTllrQkZTd3U3Q0FvcUNna2tvR0JJL0UyOFBkYkxabWVETGd6WnpjeDgzL3paMlNTWEMxajlmcitJMUhxOTNnMnl4SDRpd00xdmtvQldBZHhDbXB6VHhma04yUmN5Wk5hSEZJa1NvMTArOGtneGtYSVVSVjVIR3hUbUZ1Yzc1QjJSZlFrcHhIRzhhQWdhQUZhMHRBSHFZRmZRN0l3ZTJ5aE9EazgrSjRDN3lBb1JUV0kzdy80a2xHUmdSNGxPN1JwbjkrZ3ZNeVdwK3V4Rmg4K0grQVJsZ04xbkp1SnVRQVl2TmtFbndHRmNrMThFcjRxM2VnRWMvb08rbWhMZEtnUnloZE5GaWFjQzBybE9DYmhOVno0SDlGbkFZZ0RCdlUzUUlpb1psSkZMSnRzb0hZUkRmaVpvVXlJeHFDdFJwVmxBTnEwRVU0ZEFwanJ0Z2V6UEZhZDVTMTlXZ2prYzBoTlZudUY0SGpWQTZDN1FyU0lieWxCK29aZTNhSGdCc3FsTnFLWUg0OGpYeUpLTXVBYml5Vko4S3phQjNlUmMwcGc5VndRNG5pRnJ5STY4cWlPaTNBYmp3ZHNmbkF0azBiQ2pUTEpLcjZtckQ5ZzhpcS9TL0I4MWhndU9NbFFUblZ5RzQwd0Fjam5tZ3NDTkVTRHJqbWU3d2ZmdFA0UDdTUDROM0NKWmR2em9OeUdxMmMvSFdPWEpHc3ZWZytSQS9rMk1DL3dONkkyWUEyUHQ4R2tBQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3Qtc3VjY2Vzc3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQURzU1VSQlZFaExZMkFZQmZRTWdmLy8vM1A4Ky9ldkFJZ3ZBL0ZzSUYrQmF2WUREV01CR3JvYVNNTUJpRThWQzdBWkRySUZhTUZuaWkzQVpUalVnc1VVV1VEQThPZEFINmlRYlFFaHc0SHlHc1BFY0tCWEJJQzRBUmhleDRHNEJzam13ZVUxc29JRmFHZy9XdG9GWlJJWmRFdklNaHhrQ0NqWElWc0FUVjZnRkdBQ3M0UnN3MEVHZ0lJSDNRSllKZ0hTQVJRWkRyV0FCK2phd3pncytRMlVPNDlEN2puUlNSR29FRlJJTGNkbUVNV0dJMGNtMEpKMlFwWUExUkR2Y216SkVXaEFCaEQvcHFyTDBTMENXdUFCS2duUmtpOWxMc2VTN2cyQWxxd0hXUVNLSDRvS0xySUxwUkdoRVFDdzJMaVJVSWE0bHdBQUFBQkpSVTVFcmtKZ2dnPT0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXI+LnRvYXN0LXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFHWVNVUkJWRWhMNVpTdlRzTlFGTWJYWkdJQ01ZR1ltSmhBUUlKQUlDWVFQQUFDaVNEQjhBaUlDUVFKVDRDcVFFd2dKdllBU0FRQ2laaVltSmhBSUJBVENBUkp5KzlyVHNsZGQ4c0t1MU0wK2RMYjA1N3Y2L2xicS8yckswbVMvVFJOajljV05BS1BZSUpJSTdnSXhDY1E1MWN2cUlEK0dJRVg4QVNHNEIxYks1Z0laRmVRZm9KZEVYT2ZnWDRRQVFnN2tIMkE2NXlRODdseXhiMjdzZ2drQXpBdUZoYmJnMUsya2dDa0IxYlZ3eUlSOW0yTDdQUlBJaERVSVhnR3R5S3c1NzV5ejNsVE5zNlg0SlhualYrTEtNL20zTXlkblRidE9LSWp0ejZWaENCcTR2U20zbmNkckQybGswVmdVWFNWS2pWREpYSnppalcxUlFkc1U3Rjc3SGU4dTY4a29OWlR6OE96NXlHYTZKM0gzbFoweFlnWEJLMlF5bWxXV0ErUlduWWhza0xCdjJ2bUUraEJNQ3RiQTdLWDVkcld5UlQvMkpzcVoySXZmQjlZNGJXRE5NRmJKUkZtQzlFNzRTb1MwQ3F1bHdqa0MwKzVicGNWMUNaOE5NZWo0cGp5MFUrZG9EUXNHeW8xaHpWSnR0SWpoUTdHbkJ0UkZOMVVhclVsSDhGM3hpY3QrSFkwN3JFem9VR1BsV2NqUkZScjQvZ0NoWmdjM1pMMmQ4b0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyLnRvYXN0LXRvcC1jZW50ZXI+ZGl2LCN0b2FzdC1jb250YWluZXIudG9hc3QtYm90dG9tLWNlbnRlcj5kaXZ7d2lkdGg6MzAwcHg7bWFyZ2luOmF1dG99I3RvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtZnVsbC13aWR0aD5kaXYsI3RvYXN0LWNvbnRhaW5lci50b2FzdC1ib3R0b20tZnVsbC13aWR0aD5kaXZ7d2lkdGg6OTYlO21hcmdpbjphdXRvfS50b2FzdHtiYWNrZ3JvdW5kLWNvbG9yOiMwMzAzMDN9LnRvYXN0LXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNTFhMzUxfS50b2FzdC1lcnJvcntiYWNrZ3JvdW5kLWNvbG9yOiNiZDM2MmZ9LnRvYXN0LWluZm97YmFja2dyb3VuZC1jb2xvcjojMmY5NmI0fS50b2FzdC13YXJuaW5ne2JhY2tncm91bmQtY29sb3I6I2Y4OTQwNn0udG9hc3QtcHJvZ3Jlc3N7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO2hlaWdodDo0cHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO29wYWNpdHk6LjQ7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCl9QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDoyNDBweCl7I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cGFkZGluZzo4cHggOHB4IDhweCA1MHB4O3dpZHRoOjExZW19I3RvYXN0LWNvbnRhaW5lciAudG9hc3QtY2xvc2UtYnV0dG9ue3JpZ2h0Oi0wLjJlbTt0b3A6LTAuMmVtfX1AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjI0MXB4KSBhbmQgKG1heC13aWR0aDo0ODBweCl7I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cGFkZGluZzo4cHggOHB4IDhweCA1MHB4O3dpZHRoOjE4ZW19I3RvYXN0LWNvbnRhaW5lciAudG9hc3QtY2xvc2UtYnV0dG9ue3JpZ2h0Oi0wLjJlbTt0b3A6LTAuMmVtfX1AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjQ4MXB4KSBhbmQgKG1heC13aWR0aDo3NjhweCl7I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cGFkZGluZzoxNXB4IDE1cHggMTVweCA1MHB4O3dpZHRoOjI1ZW19fQovKiogL2Nzcy9yZXZlYWwuY3NzICoqLwoucmV2ZWFsLW1vZGFsLWJnIHsgcG9zaXRpb246Zml4ZWQ7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kOiMwMDA7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHotaW5kZXg6MTAwMDAwOTsgZGlzcGxheTpub25lOyB0b3A6MDsgbGVmdDowOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgdG9wOi0xMDAwcHg7IHdpZHRoOm1pbig1MjBweCwgOTB2dyk7IGJhY2tncm91bmQ6I2VlZSB1cmwoL2ltYWdlcy9tb2RhbC1nbG9zcy5wbmcpIG5vLXJlcGVhdCAtMjAwcHggLTgwcHg7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgcmlnaHQ6MDsgbWFyZ2luOmF1dG87IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzozMHB4IDQwcHggMzRweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyAtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgfSAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDoxMDBweDsgd2lkdGg6NTIwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IGJhY2tncm91bmQ6bm9uZTsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyLXJhZGl1czowcHg7IC1tb3otYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgLWJveC1zaGFkb3c6bm9uZTsgfSAuLS1pcy1wb3B1cC1maXhlZC1jb250YWluZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgei1pbmRleDoxMDAwMDAwMDA7IH0gLnJldmVhbC1tb2RhbC5zbWFsbCB7IHdpZHRoOjIwMHB4O30gLnJldmVhbC1tb2RhbC5tZWRpdW0geyB3aWR0aDo0MDBweDt9IC5yZXZlYWwtbW9kYWwubGFyZ2UgeyB3aWR0aDo2MDBweDt9IC5yZXZlYWwtbW9kYWwueGxhcmdlIHsgd2lkdGg6ODAwcHg7fSAucmV2ZWFsLW1vZGFsIC5jbG9zZS1yZXZlYWwtbW9kYWwgeyBmb250LXNpemU6MS4zNzVyZW0gOyBsaW5lLWhlaWdodDouNTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo5cHg7IHJpZ2h0OjEwcHg7IGNvbG9yOiM0NDQ7IHRleHQtc2hhZG93OjAgLTFweCAxcHggcmJnYSgwLDAsMCwuNik7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyB9IC5jbG9zZS1yZXZlYWwtbW9kYWwubW9kYWwtY2xvc2UtaGlkZSB7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsIHNwYW4geyBwYWRkaW5nOjBweDsgZm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6IzQxNDE0MTsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uc3VjY2VzcyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2lyY2xlLWdyZWVuLTI0LW5zLnBuZykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uZmFpbCB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2lyY2xlLXJlZC0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IHBhZGRpbmctbGVmdDozMHB4OyB9IC5yZXZlYWwtbW9kYWwgcCB7IG1hcmdpbjowIDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAucG9wdXAtZG9tLW5vd3JhcHBlciB7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyBib3gtc2hhZG93Om5vbmU7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDo0ODBweCkgeyAucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdG9wOjEwcHg7IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzowLjVyZW07IHBhZGRpbmctdG9wOjJyZW07IH0gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuODc1cmVtIDsgbGluZS1oZWlnaHQ6MC42OyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IHotaW5kZXg6MTsgfSB9IC5lbWFpbC1jb25zZW50LWJveCA6aXMoLnRpdGxlLXR4dCwgcCl7IG1hcmdpbi1sZWZ0OjA7IHBhZGRpbmc6MDsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3h7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3ggLmljb24tdGl0bGV7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci8qKiAvY3NzL3BheW1lbnRDYWxjdWxhdG9yLmNzcyAqKi8KOmlzKCNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciwjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IpLmNhbGMtbW9iaWxlIHsgLS13cmFwLXBheW1lbnRzOndyYXA7IC0tbW9iaWxlLWRpc3BsYXk6bm9uZTsgLS1tb2ItZnVsbC13aWR0aDoxMDAlOyAtLXBheW1lbnQtbWluLXdpZHRoOjYuM3JlbTsgLS1oZWFkZXItZm9udC1zaXplOnZhcigtLWZzMik7IC0taGVhZGVyLWljb24tc2l6ZTp2YXIoLS1mczUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lcnsgbWluLWhlaWdodDo0NTBweDsgY29sb3I6YmxhY2s7IH0gI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXJ7IGJvcmRlcjo0cHggc29saWQgIzMyNDA0NzsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcjpoYXMoLmNhbGMtbW9iaWxlKXsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcnsgb3ZlcmZsb3cteDp2aXNpYmxlOyBvdmVyZmxvdy15OnNjcm9sbDsgaGVpZ2h0OjM3MHB4OyBmbGV4LXdyYXA6d3JhcDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHsgb3ZlcmZsb3cteDpzY3JvbGw7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHsgd2lkdGg6MTAwJTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNHsgd2lkdGg6NjQlOyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNCwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMuYm94ZXM0eyB3aWR0aDo4MCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIHNwYW4sIC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyBzcGFueyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50OyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6aW5oZXJpdDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zKTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206MDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczQgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IHdpZHRoOjI0JTsgfSAucGF5bWVudENhbGN1bGF0b3JMaW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmV5OyBtYXJnaW46MTBweCAwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMXsgZm9udC1zaXplOjAuNjg4cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMSBzcGFueyBmb250LXNpemU6MS43NXJlbSA7IGNvbG9yOiNiNDVmMWE7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUyeyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTIgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMyBzcGFueyBmb250LXNpemU6MS4yNXJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmU0eyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOmdyZXk7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXZ7IG1heC13aWR0aDozMyU7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB0b3A6LTUwJTsgZGlzcGxheTp2YXIoLS1tb2JpbGUtZGlzcGxheSwgaW5pdGlhbCk7IH0gLnBheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyeyB3aWR0aDptYXgodmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSksIDIwcmVtKTsgfSAuY2FsYy1wYXltZW50c3sgbWF4LXdpZHRoOnZhcigtLW1vYi1mdWxsLXdpZHRoLCA2NiUpOyB9IC5jYWxjLXBheW1lbnRzIDppcygucHJpY2UtZnIsIC5wcmljZS1lbil7IHRleHQtYWxpZ246cmV2ZXJ0OyBtaW4td2lkdGg6dW5zZXQ7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2NjY2M7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlQ29udGFpbmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGV7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowIDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IG1pbi13aWR0aDo1cmVtOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLWJvdHRvbTowcHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNkOWQ5ZDk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkuYWN0aXZlUGF5bWVudFR5cGV7IGJhY2tncm91bmQtY29sb3I6Izk4OTg5ODsgY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciA+ICogeyBwYWRkaW5nLWJvdHRvbTowLjVyZW07IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIgbGFiZWx7IGNvbG9yOmdyZXk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1sZWZ0OjNweDsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3R7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWluLXdpZHRoOjEwcmVtOyBtYXgtd2lkdGg6MjByZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLCAuZDJjZm9ybSAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCB7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWluLXdpZHRoOjdyZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNleyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjExMHB4OyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFoMGxFUVZRNFQ5M1RNUXJDVUF6RzhWOXg4UXppaVlTdVhkekZDN2g0QWNFTE9QUUFkWFlvdlpDSEVBVGxnUVY1R0ZUZTFvekpsei9rUzFJcGpLcXczd1FCVnl5KytKSTB5MUdUZTdEQ0JiTUFja2VOSVFLay9CYW5BTEJCKzE2THRuREVMb01jc00vQkVTRGx6MmhlRFIzV2VQd0tTTG81ZW94ejN6Nk5OY0ZEK3Z1M2lqMTRBcXovRHhHYktCN0NBQUFBQUVsRlRrU3VRbUNDJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgY2VudGVyOyBib3JkZXItY29sb3I6I2E5YTlhOTsgY29sb3I6aW5oZXJpdDsgYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgfSAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjVyZW07IHBhZGRpbmctbGVmdDoyMHB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjYwJTsgYmFja2dyb3VuZC1wb3NpdGlvbi15OjQwJTsgLW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDsgfSAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBtYXJnaW46MDsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXJ7IG1pbi13aWR0aDoxOHJlbTsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6Izg2ODY4NjsgcGFkZGluZzowOyBtYXJnaW46MDsgZGlzcGxheTp2YXIoLS1tb2JpbGUtZGlzcGxheSwgaW5pdGlhbCk7IH0gLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyLmJveGVzNHsgd2lkdGg6MzAlOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIHAsIC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIHNwYW57IGNvbG9yOmluaGVyaXQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjFyZW07IH0gLnBheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdleyB3aWR0aDo1MCU7IG1hcmdpbi10b3A6MzBweDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb3sgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmljb257IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbjowOyBwYWRkaW5nOjAuNHJlbTsgLS10eHQtY29sb3I6I2ZmZmZmZjsgLS1mczp2YXIoLS1oZWFkZXItaWNvbi1zaXplLCB2YXIoLS1mczcpKTsgYmFja2dyb3VuZC1jb2xvcjojYjQ1ZjFhOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgyIHNwYW46Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbnsgZm9udC1zaXplOnZhcigtLWhlYWRlci1mb250LXNpemUsIHZhcigtLWZzMykpOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBmb250LXdlaWdodDo3MDA7IHBhZGRpbmc6MDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoM3sgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBzcGFuLmgyLWFsdHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgbWFyZ2luLWxlZnQ6dmFyKC0tcyk7IGZvbnQtc2l6ZTppbmhlcml0OyBmb250LXdlaWdodDp2YXIoLS1mb250LWgyLXdlaWdodCk7IGxpbmUtaGVpZ2h0OjEuMmVtOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW46Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgyLWFsdCBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMy1hbHR7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGF7IHdpZHRoOm1pbig2NCUsMThyZW0pOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3R7IH0gLmZhLmZhLWNhbGN1bGF0b3J7IGNvbG9yOiMwMDAwMDA7IH0gLi1iZy1ibGFjayAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6I0ZGRkZGRjsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgc2VsZWN0OjotbXMtZXhwYW5kIHsgZGlzcGxheTpub25lOyB9IC5jYWxjLXBheW1lbnQtY2FzaCB7IHdpZHRoOm1pbigxN3JlbSw5MCUpOyBwYWRkaW5nOjAgMS41cmVtOyB9IC5jYWxjLXBheW1lbnQtY2FzaCBzcGFueyBtYXJnaW4tYm90dG9tOjA7IGZvbnQtc2l6ZTpyZXZlcnQ7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZUZpbmFsIHsgcGFkZGluZy10b3A6dmFyKC0tcyk7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiYmI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZVJvdyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbGluZS1oZWlnaHQ6bm9ybWFsOyB9IC5jYWxjLXBheW1lbnQtY2FzaCAucHJpY2VOYW1leyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOnZhcigtLWZzMCk7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b257IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEwNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzoycHg7IGN1cnNvcjpwb2ludGVyOyB9ICNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWV7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyB3aWR0aDoxMDBweDsgcGFkZGluZy1sZWZ0OjE1cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5maW5hbmNpbmctb3B0aW9uIHsgYm9yZGVyOjEuNXB4IHNvbGlkICNhYWE7IGJvcmRlci1yYWRpdXM6NnB4OyBwYWRkaW5nOjhweDsgd2lkdGg6MTkwcHg7IGJhY2tncm91bmQ6d2hpdGU7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpjZW50ZXI7IHRleHQtYWxpZ246Y2VudGVyOyBmbGV4LXNocmluazowOyBtaW4td2lkdGg6MTg3cHg7IGJveC1zaXppbmc6Y29udGVudC1ib3ghaW1wb3J0YW50OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5zZWxlY3RlZCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkIHsgYm9yZGVyLWNvbG9yOiMwMDdCRkY7IGJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLCAxMjMsIDI1NSwgMC41KTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnRlcm0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAudGVybSB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMzMzM7IG1hcmdpbi1ib3R0b206MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZG93bi1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmRvd24tcGF5bWVudCB7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGNvbG9yOiM5OTk7IG1hcmdpbi1ib3R0b206NXB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc2VwYXJhdG9yUGF5LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNlcGFyYXRvclBheSB7IHdpZHRoOjkwJTsgaGVpZ2h0OjFweDsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBtYXJnaW4tYm90dG9tOjZweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmNvbnRlbnQtY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB3aWR0aDoxMDAlOyBwYWRkaW5nLWJvdHRvbTo4cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucmlnaHQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmlnaHQtc2VjdGlvbiB7IHdpZHRoOjUwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxlZnQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sZWZ0LXNlY3Rpb24geyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcGF5bWVudCwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcmF0ZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgY29sb3I6I2QzMmYyZjsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5pbmZvLWljb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuaW5mby1pY29uIHsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNjY2OyBjdXJzb3I6cG9pbnRlcjsgbWFyZ2luLWxlZnQ6NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1yYXRlLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1wYXltZW50IHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSB7IGNvbG9yOiMzMzM7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcGF5bWVudCB7IGNvbG9yOiMwMDMzNjY7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kZXRhaWxzVGF4LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmRldGFpbHNUYXggeyBmb250LXNpemU6MC42ODhyZW0gOyBjb2xvcjojMzMzOyBtYXJnaW4tdG9wOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJhZGlvLWNvbnRhaW5lciwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5yYWRpby1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjBweDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0geyBtYXJnaW4tcmlnaHQ6NHB4OyBvcGFjaXR5OnVuc2V0OyB3aWR0aDp1bnNldDsgaGVpZ2h0OnVuc2V0OyBwb3NpdGlvbjp1bnNldDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnNpbmdsZS1jb2x1bW4sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2luZ2xlLWNvbHVtbiB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHdpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc21hbGwtYm94LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNtYWxsLWJveCB7IHdpZHRoOjEwMHB4OyBwYWRkaW5nOjhweDsgbWluLXdpZHRoOjEwMHB4OyBtYXgtd2lkdGg6MTAwcHg7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL3YyL21vZGFsLmNzcyAqKi8KLm1vZGFsLXdyYXBwZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjE1MCU7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyB6LWluZGV4OjE2MDAxOyB0cmFuc2l0aW9uOnRvcCAxNTBtcyBlYXNlLWluOyB9IC5tb2RhbC13cmFwcGVyLmlzLWFjdGl2ZXsgdG9wOjUwJTsgfSAubW9kYWwtd3JhcHBlciAubW9kYWwtYm9keXsgbWluLXdpZHRoOjIwcmVtOyBtYXgtd2lkdGg6MTAwJTsgbWF4LWhlaWdodDo4NXZoOyBvdmVyZmxvdy15OmF1dG87IH0gLm1vZGFsLW92ZXJsYXl7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjEwMHZoOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC41KTsgei1pbmRleDoxMDAwMDsgfSAubG9hZGluZy1vdmVybGF5eyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgfSAubW9kYWwtd3JhcHBlciA6aXMoaW5wdXRbdHlwZT0idGV4dCJdLGlucHV0W3R5cGU9ImVtYWlsIl0saW5wdXRbdHlwZT0idGVsIl0peyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlcnsgd2lkdGg6bWF4KDkwdncsIDIwLjVyZW0pOyBoZWlnaHQ6bWF4KDg0dmgsIDMwcmVtKTsgd2lkdGg6Y2xhbXAoMjAuNXJlbSwgbWF4KDkwdncsIDIwLjVyZW0pLCA2MHJlbSk7IGhlaWdodDpjbGFtcCgzMHJlbSwgbWF4KDg0dmgsIDMwcmVtKSwgNjByZW0pOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlciBpZnJhbWV7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9Ci8qKiAvY3NzL3YyL2ZsYXRwaWNrci5taW4uY3NzICoqLwouZmxhdHBpY2tyLWNhbGVuZGFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3BhY2l0eTowO2Rpc3BsYXk6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjt2aXNpYmlsaXR5OmhpZGRlbjtwYWRkaW5nOjA7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZTtkaXJlY3Rpb246bHRyO2JvcmRlcjowO2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjVweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94Oy1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCk7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCl9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVuLC5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le29wYWNpdHk6MTttYXgtaGVpZ2h0OjY0MHB4O3Zpc2liaWxpdHk6dmlzaWJsZX0uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7ei1pbmRleDo5OTk5OX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFuaW1hdGUub3Blbnstd2Via2l0LWFuaW1hdGlvbjpmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKTthbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSl9LmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmV7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4fS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGlje3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyAycHgpfS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljLm9wZW57ei1pbmRleDo5OTk7ZGlzcGxheTpibG9ja30uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMSkgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rNyl7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMikgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rMSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTJweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNUaW1lIC5kYXlDb250YWluZXJ7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXJ7Ym9yZGVyLWxlZnQ6MH0uZmxhdHBpY2tyLWNhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDo0MHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5ub0NhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDphdXRvfS5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtjb250ZW50OicnO2hlaWdodDowO3dpZHRoOjA7bGVmdDoyMnB4fS5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dSaWdodDphZnRlcntsZWZ0OmF1dG87cmlnaHQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmFmdGVye2xlZnQ6NTAlO3JpZ2h0OjUwJX0uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZXtib3JkZXItd2lkdGg6NXB4O21hcmdpbjowIC01cHh9LmZsYXRwaWNrci1jYWxlbmRhcjphZnRlcntib3JkZXItd2lkdGg6NHB4O21hcmdpbjowIC00cHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3R0b206MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcnt0b3A6MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZXtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcntib3JkZXItdG9wLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhcjpmb2N1c3tvdXRsaW5lOjB9LmZsYXRwaWNrci13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItbW9udGhze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1tb250aHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC45KTtmaWxsOnJnYmEoMCwwLDAsMC45KTtoZWlnaHQ6MzRweDtsaW5lLWhlaWdodDoxO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGh7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7aGVpZ2h0OjM0cHg7cGFkZGluZzoxMHB4O3otaW5kZXg6Mztjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLWRpc2FibGVke2Rpc3BsYXk6bm9uZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggaSwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoe2xlZnQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aHtyaWdodDowfSAuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVye2NvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXIgc3Zne2ZpbGw6I2Y2NDc0N30uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmd7d2lkdGg6MTRweDtoZWlnaHQ6MTRweH0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnIHBhdGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoey13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIC4xczt0cmFuc2l0aW9uOmZpbGwgLjFzO2ZpbGw6aW5oZXJpdH0ubnVtSW5wdXRXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQsLm51bUlucHV0V3JhcHBlciBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5udW1JbnB1dFdyYXBwZXIgaW5wdXR7d2lkdGg6MTAwJX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnttYXJnaW46MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW57cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt3aWR0aDoxNHB4O3BhZGRpbmc6MCA0cHggMCAycHg7aGVpZ2h0OjUwJTtsaW5lLWhlaWdodDo1MCU7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjE1KTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm51bUlucHV0V3JhcHBlciBzcGFuOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMil9Lm51bUlucHV0V3JhcHBlciBzcGFuOmFmdGVye2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcHt0b3A6MDtib3JkZXItYm90dG9tOjB9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDoyNiV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bnt0b3A6NTAlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDo0MCV9Lm51bUlucHV0V3JhcHBlciBzcGFuIHN2Z3t3aWR0aDppbmhlcml0O2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmcgcGF0aHtmaWxsOnJnYmEoMCwwLDAsMC41KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHNwYW57b3BhY2l0eToxfS5mbGF0cGlja3ItY3VycmVudC1tb250aHtmb250LXNpemU6MTM1JTtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjc1JTtsZWZ0OjEyLjUlO3BhZGRpbmc6Ny40OHB4IDAgMCAwO2xpbmUtaGVpZ2h0OjE7aGVpZ2h0OjM0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjVjaDtwYWRkaW5nOjB9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlcnt3aWR0aDo2Y2g7d2lkdGg6N2NoXDA7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjp0ZXh0O3BhZGRpbmc6MCAwIDAgLjVjaDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDppbmhlcml0O2hlaWdodDphdXRvO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDthcHBlYXJhbmNlOnRleHRmaWVsZH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXTpob3Zlcntmb250LXNpemU6MTAwJTtjb2xvcjpyZ2JhKDAsMCwwLDAuNSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhze2FwcGVhcmFuY2U6bWVudWxpc3Q7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46LTFweCAwIDAgMDtvdXRsaW5lOm5vbmU7cGFkZGluZzowIDAgMCAuNWNoO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmluaXRpYWw7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOm1lbnVsaXN0Oy1tb3otYXBwZWFyYW5jZTptZW51bGlzdDt3aWR0aDphdXRvfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmZvY3VzLC5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmFjdGl2ZXtvdXRsaW5lOm5vbmV9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6bm9uZTtwYWRkaW5nOjB9LmZsYXRwaWNrci13ZWVrZGF5c3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrZGF5cyAuZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9c3Bhbi5mbGF0cGlja3Itd2Vla2RheXtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6OTAlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgwLDAsMCwwLjU0KTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO2ZvbnQtd2VpZ2h0OmJvbGRlcn0uZGF5Q29udGFpbmVyLC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzoxcHggMCAwIDB9LmZsYXRwaWNrci1kYXlze3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3dpZHRoOjMwNy44NzVweH0uZmxhdHBpY2tyLWRheXM6Zm9jdXN7b3V0bGluZTowfS5kYXlDb250YWluZXJ7cGFkZGluZzowO291dGxpbmU6MDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MzA3Ljg3NXB4O21pbi13aWR0aDozMDcuODc1cHg7bWF4LXdpZHRoOjMwNy44NzVweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7b3BhY2l0eToxfS5kYXlDb250YWluZXIgKyAuZGF5Q29udGFpbmVyey13ZWJraXQtYm94LXNoYWRvdzotMXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjE1MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMzkzOTM5O2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aWR0aDoxNC4yODU3MTQzJTstd2Via2l0LWZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTQuMjg1NzE0MyU7ZmxleC1iYXNpczoxNC4yODU3MTQzJTttYXgtd2lkdGg6MzlweDtoZWlnaHQ6MzlweDtsaW5lLWhlaWdodDozOXB4O21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5mbGF0cGlja3ItZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheTpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5OmZvY3VzLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cywuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6Zm9jdXN7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowO2JhY2tncm91bmQ6I2U2ZTZlNjtib3JkZXItY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWRheS50b2RheXtib3JkZXItY29sb3I6Izk1OWVhOX0uZmxhdHBpY2tyLWRheS50b2RheTpob3ZlciwuZmxhdHBpY2tyLWRheS50b2RheTpmb2N1c3tib3JkZXItY29sb3I6Izk1OWVhOTtiYWNrZ3JvdW5kOiM5NTllYTk7Y29sb3I6I2ZmZn0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZCwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheXtiYWNrZ3JvdW5kOiM1NjlmZjc7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHggMCAwIDUwcHh9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjAgNTBweCA1MHB4IDB9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKXstd2Via2l0LWJveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotMTBweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdle2JvcmRlci1yYWRpdXM6NTBweH0uZmxhdHBpY2tyLWRheS5pblJhbmdle2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotNXB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZCwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheXtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHR9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjEpfS5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWR7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmNztib3gtc2hhZG93Oi01cHggMCAwICM1NjlmZjcsNXB4IDAgMCAjNTY5ZmY3fS5mbGF0cGlja3ItZGF5LmhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn0ucmFuZ2VNb2RlIC5mbGF0cGlja3ItZGF5e21hcmdpbi10b3A6MXB4fS5mbGF0cGlja3Itd2Vla3dyYXBwZXJ7ZmxvYXQ6bGVmdH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzowIDEycHg7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla2RheXtmbG9hdDpub25lO3dpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjhweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheSwuZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlcntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyOm5vbmV9LmZsYXRwaWNrci1pbm5lckNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbn0uZmxhdHBpY2tyLXJDb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZmxhdHBpY2tyLXRpbWV7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7bGluZS1oZWlnaHQ6NDBweDttYXgtaGVpZ2h0OjQwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItdGltZTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Y2xlYXI6Ym90aH0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7d2lkdGg6NDAlO2hlaWdodDo0MHB4O2Zsb2F0OmxlZnR9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6IzM5MzkzOX0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lLmhhc1NlY29uZHMgLm51bUlucHV0V3JhcHBlcnt3aWR0aDoyNiV9LmZsYXRwaWNrci10aW1lLnRpbWUyNGhyIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NDklfS5mbGF0cGlja3ItdGltZSBpbnB1dHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7cGFkZGluZzowO2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzM5MzkzOTtmb250LXNpemU6MC44NzVyZW0gO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1ob3Vye2ZvbnQtd2VpZ2h0OmJvbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1zZWNvbmR7Zm9udC13ZWlnaHQ6NDAwfS5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1c3tvdXRsaW5lOjA7Ym9yZGVyOjB9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItdGltZS1zZXBhcmF0b3IsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17aGVpZ2h0OmluaGVyaXQ7ZmxvYXQ6bGVmdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC13ZWlnaHQ6Ym9sZDt3aWR0aDoyJTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbXtvdXRsaW5lOjA7d2lkdGg6MTglO2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6aG92ZXIsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06aG92ZXIsLmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3VzLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmZvY3Vze2JhY2tncm91bmQ6I2VlZX0uZmxhdHBpY2tyLWlucHV0W3JlYWRvbmx5XXtjdXJzb3I6cG9pbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgZnBGYWRlSW5Eb3due2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX1Aa2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19Ci8qKiAvY3NzL2lubGluZS5mci5uZXdjYXJzLmNzcyAqKi8KYnV0dG9uI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2I0NWYxYSAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MXB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2I0NWYxYSAhaW1wb3J0YW50OyBjb2xvcjojYjQ1ZjFhICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYjQ1ZjFhICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MXB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiM2OTY5NjkgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiM5MDkwOTAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czoxcHggIWltcG9ydGFudDsgfSBidXR0b24uc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiNiNDVmMWEgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNiNDVmMWEgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czoxcHggIWltcG9ydGFudDsgfSBidXR0b24ub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojYjQ1ZjFhICFpbXBvcnRhbnQ7IGNvbG9yOiNiNDVmMWEgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNiNDVmMWEgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czoxcHggIWltcG9ydGFudDsgfSBidXR0b24jYWNjZXB0LXJlY29tbWVuZGVkLWJ0bi1oYW5kbGVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNiNDVmMWEgIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBmb250LXNpemU6c21hbGwgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czoxcHggIWltcG9ydGFudDsgfSAub3QtcGMtbG9nbyBpbWd7IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ28vYmVsYW5nZXItbGluY29sbi1sb2dvLndlYnAiKSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWxvZ297IHdpZHRoOjMwJSAhaW1wb3J0YW50OyBqdXN0aWZ5LWNvbnRlbnQ6bGVmdCAhaW1wb3J0YW50OyB9IC5vdC1ibnItbG9nb3sgY29udGVudDp1cmwoIi9pbWFnZXMvTG9nby9iZWxhbmdlci1saW5jb2xuLWxvZ28ud2VicCIpICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ297IHdpZHRoOjg1cHggIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MjVweCAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7IG1hcmdpbi1sZWZ0OjExMHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDoyNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MjVweCl7ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dveyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjE1cHggMCAxMHB4IDAgIWltcG9ydGFudDsgdHJhbnNmb3JtOmluaGVyaXQ7IHpvb206NDAlOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjVweDsgfSAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBvbGljeS10aXRsZXsgZm9udC1zaXplOjFlbSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1yZWplY3QtYWxsLWhhbmRsZXIsICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlcnsgcGFkZGluZzoxMHB4IDEwcHg7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgYnV0dG9uLCAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiwgI290LXNkay1jb29raWUtcG9saWN5IGJ1dHRvbnsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gI29uZXRydXN0LXBjLXNkayBidXR0b24geyB3aWR0aDphdXRvOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLCAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyLCAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb250YWluZXJ7IHBhZGRpbmc6NXB4IDIwcHg7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeXsgbWFyZ2luOjA7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cCAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyeyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSB9PC9zdHlsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPC9zdHlsZT4KCQoJCTwhLS0gT086OjYwMDU3MTBkMjkzOTU4OWYwZGM3MGEzZjA2M2YzYTQ4IC0tPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkTDqXRhaWxzIiBpZD0idGV4dERldGFpbHMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJUb3VzIiBpZD0idGV4dEFsbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU8OpbGVjdGlvbm5leiB1bmUgbWFycXVlIiBpZD0idGV4dE1hbnVUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZvaXIgbm9zIG1vZMOobGVzIExpbmNvbG4iIGlkPSJ0ZXh0QnJhbmRUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1vZMOobGVzIExpbmNvbG4gbmV1ZnMgMjAyNSAmYW1wOyAyMDI2IiBpZD0idGV4dE1haW5UaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkF1dG9zIG5ldXZlcyBMaW5jb2xuIDIwMjUgJmFtcDsgMjAyNiDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dENhclRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVlVTIG5ldWZzIExpbmNvbG4gMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0U1VWVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJDYW1pb25zIG5ldWZzIExpbmNvbG4gMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0VHJ1Y2tUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ikh5YnJpZGVzIG5ldXZlcyBMaW5jb2xuIDIwMjUgJmFtcDsgMjAyNiDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEh5YnJpZFRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iw4lsZWN0cmlxdWUgbmV1dmVzIExpbmNvbG4gMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0RWxlY3RyaWNUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5vdXZlYXUiIGlkPSJ0ZXh0TmV3Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTGluY29sbiB7JENMQVNTTkFNRX0gMjAyNSAmYW1wOyAyMDI2IiBpZD0idGV4dENsYXNzVmlldyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkFjY3VlaWwiIGlkPSJ0ZXh0SG9tZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii8iIGlkPSJ1cmlIb21lIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzL25vdXZlYXUuaHRtbCIgaWQ9InVyaU5ld0NhcnMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvbmV1ZnMvIiBpZD0idGV4dE5ld0NhckZvbGRlciI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5vcyBtYXJxdWVzIiBpZD0idGV4dE1hbnVTZWxlY3QiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJFbiBTdG9jayAvIERpc3BvbmlibGVzIiBpZD0iaW5TdG9ja0xhYmVsIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL2ltYWdlcy8iIGlkPSJ0ZXh0QmFzZUltYWdlUGF0aCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9wcm94eV9hdWIvIiBpZD0iYnJhbmRJbWFnZVBhdGgiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJmOTlkNGI2ODVhYTQxNWJiZDJkYzIxMWI3Yjc5MGEwZnwzODE2MjUzOTc4IiBpZD0iZW1haWxVc2VkQ2FycyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kRW1haWxPdmVycmlkZSIgaWQ9ImJyYW5kRW1haWxPdmVycmlkZSIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiBpZD0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JjZVRvRmlsbFBvcHVwX25ldyIgdmFsdWU9Im5vbmUiPgoJCTwhLS0gU1RBUlQgU09SVCBPUkRFUiAtLT4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0icHJpY2UiIGlkPSJzb3J0QnkiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBc2MiIGlkPSJzb3J0RGlyIj4KCQk8IS0tIEVORCBTT1JUIE9SREVSIC0tPgoJCQkJCQk8c2NyaXB0PgoKCQkvL2dsb2JhbCBzdG9yZQoJCXZhciBzdG9yZSA9IG51bGw7CgoJCWNvbnN0IGluaXRTdG9yZSA9ICgpID0+IHsKCgkJCWlmKHR5cGVvZiBjcmVhdGVEYXRhU3RvcmUgIT09ICdmdW5jdGlvbicpewoJCQkJc2V0VGltZW91dChpbml0U3RvcmUsIDUwKTsKCQkJCXJldHVybjsKCQkJfQoKCQkJc3RvcmUgPSBjcmVhdGVEYXRhU3RvcmUoeyJjb250ZXh0Ijp7ImxhbmciOiJGUkVOQ0giLCJzaG9ydExhbmciOiJmciIsImlzTW9iaWxlIjpmYWxzZSwiY2F0ZWdvcnkiOiJhbGwiLCJzZWN0aW9uIjoiTkVXIiwibG9jYWxlIjoiZnJfQ0EiLCJkYXRlZm9ybWF0IjoiJWUgJUIifSwiZGVhbGVySW5mbyI6eyJhZGRyZXNzIjoiMjA0IE1pY2hhZWwgU3RyZWV0IiwiY2l0eSI6IkNoZWxtc2ZvcmQiLCJwcm92aW5jZSI6Ik9udGFyaW8iLCJyZWdpb24iOiIiLCJwb3N0YWwiOiJQME0gMUwwIiwibmFtZSI6IkJlbGFuZ2VyIExpbmNvbG4iLCJlbWFpbCI6IiIsImRlYWxlcklEIjoiNDQ3OSIsImRlYWxlckdyb3VwIjpmYWxzZSwiZmF4IjoiIiwicGhvbmUiOiIyMDIiLCJsYXRpdHVkZSI6IjQ2LjU5NTExMzAwMDAiLCJsb25naXR1ZGUiOiItODEuMjIxMDA4MDAwMCIsInByb3ZpbmNlX2NvZGUiOiJPTiIsImRldGFpbF9wcml4IjpudWxsLCJkZXRhaWxfcHJpeF9hbiI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZCI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZF9hbiI6bnVsbCwib2VtRGVhbGVyQ29kZSI6IkE4MTcwIiwicHJpY2VfZGlzY2xhaW1lcl9wcmVmZXJlbmNlIjoiMCIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZV91c2VkIjoiMCIsImdtQkFDIjoiIiwicGxhY2VJZCI6IkNoSUpnNWJuWW1TeEwwMFJUdEE5dnB6ZEFJcyJ9LCJpc1ZNIjpmYWxzZSwiZmllbGRzIjp7IlNIT1dST09NX0lNQUdFX1NPVVJDRV9UWVBFIjoiY2hyb21lIiwiTkVXX0lOVl9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSJ9LCJpMThuIjp7IldFQl9TSVRFX0dFTkVSQVRPUl9QQUdFX05FV0lOViI6IlwvbmV1ZnNcL2ludmVudGFpcmVcL3JlY2hlcmNoZS5odG1sIiwiUEFZTUVOVFMiOiJQYWllbWVudHMiLCJERUZBVUxUX1BBWU1FTlRfQ0FTSCI6IkNvbXB0YW50IiwiTEFCRUxfQkVGT1JFX1RBWEVTIjoiQXZhbnQgdGF4ZXMiLCJMQUJFTF9TQVZFX0JVSUxEX1RJVExFIjoiRW5yZWdpc3RyZXIgdm90cmUgY29uZmlndXJhdGlvbiEiLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfVE9PTFRJUCI6IlJlc3RhdXJleiB1bmUgY29uZmlndXJhdGlvbiBwclx1MDBlOWNcdTAwZTlkZW1tZW50IGVucmVnaXN0clx1MDBlOWUgZW4gc2Fpc2lzc2FudCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FTUFJTF9QSE9ORSI6IlNhaXNpc3NleiB2b3RyZSBhZHJlc3NlIGUtbWFpbCBldFwvb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZSBwb3VyIGNoYXJnZXIgdW5lIGNvbmZpZ3VyYXRpb24gZW5yZWdpc3RyXHUwMGU5ZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRU1BSUxfUEhPTkVfRVJST1IiOiJWZXVpbGxleiBzYWlzaXIgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRVJST1IiOiJMZXMgZG9ublx1MDBlOWVzIGRlIGNvbmZpZ3VyYXRpb24gbmUgc29udCBwYXMgZGlzcG9uaWJsZXMgcG91ciBjZXQgZW5yZWdpc3RyZW1lbnQuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX1JFRElSRUNUSU5HIjoiQ29tcGlsYXRpb24gY2hhcmdcdTAwZTllISBSZWRpcmVjdGlvbiBlbiBjb3Vycy4uLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX0VSUk9SIjoiQXVjdW5lIGNvbmZpZ3VyYXRpb24gbiYjMzk7YSBcdTAwZTl0XHUwMGU5IHRyb3V2XHUwMGU5ZSBwb3VyIGNldHRlIGFkcmVzc2UgZS1tYWlsXC9udW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9JTlZBTElEX1RPS0VOIjoiTGUgamV0b24gZXN0IGludmFsaWRlIG91IGEgZXhwaXJcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUIjoiQ2hhcmdlbWVudCBkZXMgY29uZmlndXJhdGlvbnMgc2F1dmVnYXJkXHUwMGU5cy4uLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX1NFTEVDVCI6IlNcdTAwZTlsZWN0aW9ubmV6IHVuZSBjb25maWd1cmF0aW9uIFx1MDBlMCBjaGFyZ2VyOiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX0ZBSUxFRCI6IkltcG9zc2libGUgZGUgY2hhcmdlciBsZXMgY29uZmlndXJhdGlvbnMuIiwiV0VCU0lURV9PRU1EUl9NRkFfU0VORF9DT0RFIjoiRW52b2kgZHUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfTUZBX1NUQVJUX0VSUk9SIjoiSW1wb3NzaWJsZSBkZSBkXHUwMGU5bWFycmVyIGxhIHZcdTAwZTlyaWZpY2F0aW9uLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VOVEVSX0NPREUiOiJTYWlzaXNzZXogbGUgY29kZSBcdTAwZTAgNiBjaGlmZnJlcyBlbnZveVx1MDBlOSBcdTAwZTAgdm90cmUgYWRyZXNzZSBlLW1haWwgb3UgXHUwMGUwIHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9NRkFfRU5URVJfQ09ERV9FUlJPUiI6IlZldWlsbGV6IHNhaXNpciBsZSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uLiIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGWV9DT0RFIjoiVlx1MDBlOXJpZmljYXRpb24gZHUgY29kZS4uLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VYUElSRURfQ09ERSI6IkNvZGUgaW52YWxpZGUgb3UgZXhwaXJcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGWV9GQUlMRUQiOiJMYSB2XHUwMGU5cmlmaWNhdGlvbiBhIFx1MDBlOWNob3VcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVElORyI6Ik1pc2UgXHUwMGUwIGpvdXIgZGUgbGEgY29uZmlndWF0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFURV9TVUNDRVNTIjoiTGEgY29uZmlndWF0aW9uIGEgXHUwMGU5dFx1MDBlOSBtaXNlIFx1MDBlMCBqb3VyIGF2ZWMgc3VjY1x1MDBlOHMuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFURV9FUlJPUiI6IkltcG9zc2libGUgZGUgbWV0dHJlIFx1MDBlMCBqb3VyIGxhIGNvbmZpZ3VhdGlvbi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWSU5HIjoiU2F1dmVnYXJkZSBkZSBsYSBjb25maWd1YXRpb24uLi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWRV9TVUNDRVNTIjoiQ29uZmlndWF0aW9uIGVucmVnaXN0clx1MDBlOSAhIFZvdXMgcG91cnJleiBsZSBjaGFyZ2VyIHVsdFx1MDBlOXJpZXVyZW1lbnQgZW4gdXRpbGlzYW50IHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVkVfRVJST1IiOiJJbXBvc3NpYmxlIGQmIzM5O2VucmVnaXN0cmVyIGxhIGNvbmZpZ3VyYXRpb24uIiwiV0VCU0lURV9PRU1EUl9CVE5fTE9BRCI6IkNoYXJnZXIiLCJXRUJTSVRFX09FTURSX0JUTl9WRVJJRlkiOiJWXHUwMGU5cmlmaWVyIiwiV0VCU0lURV9PRU1EUl9CVE5fUkVTRU5EX0NPREUiOiJSZW52b3llciBsZSBjb2RlIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZJQ0FUSU9OX0NPREUiOiJMZSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX01PREFMX1RJVExFIjoiQ2hhcmdlciB1bmUgY29uZmlndXJhdGlvbiBlbnJlZ2lzdHJcdTAwZTllIn0sInNob3dPZW1JbWFnZXMiOmZhbHNlfSk7CgkJfTsKCgkJaW5pdFN0b3JlKCk7CgoJPC9zY3JpcHQ+CgkJCQkJCTxzdmcgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoJCQkJCgkJCTwvc3ZnPgoJCQkKCQkJPGhlYWRlciBjbGFzcz0ibWFpbkRpdi13cmFwcGVyIj4KCQkJCQoJCQkJPGRpdiBjbGFzcz0id3JhcHBlciBNYWluQm94TGF5ZXIiIGlkPSJtYWluRGl2IiBoaWRkZW49IjEiPgoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0ibXVsdGktbGFuZ3VhZ2UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9Im5ld190cmFuc2xhdGVkX3RpdGxlcyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGUkVOQ0giIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiPgkJCQk8ZGl2IGNsYXNzPSJsYW5ndWFnZUJhciBmbGV4LWJveCBmbGV4LWVuZCBhbGlnbi1jZW50ZXIgIiBpZD0ibGFuZ3VhZ2VDaGFuZ2VyRGl2Ij4KCQkJCQkJCgkKCQoJPGRpdj48dWwgY2xhc3M9ImlkTmF2MSI+PGxpIGNsYXNzPSJ0b3AiIHN0eWxlPSJ6LWluZGV4OiA5OTsiPiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlc2t0b3BfbGFuZ19idXR0b24gYWN0aXZlIiB0aXRsZT0iRnJhbsOnYWlzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCI+RlI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9wYXRoPS8iIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uIiB0aXRsZT0iQW5nbGFpcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiPkVOPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT48L2xpPjwvdWw+PC9kaXY+CgkKCQoJCQkJPC9kaXY+CgkJCTwhLS0gSE9NRVBBR0VfRU5HID0+IC8gfHwgSE9NRVBBR0UgRlJFID0+IC9mci8gLS0+CgkJCQoJCQk8ZGl2IGNsYXNzPSJ2LWNhcmQgdG9wX2JnIGhlYWRlci1pbmZvIiBzdHlsZT0iYmFja2dyb3VuZDpub25lOyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiI+Cgk8ZGl2IGNsYXNzPSJoZWFkZXItaW1hZ2Utd3JhcHBlciI+CgkJPGEgaHJlZj0iP3BhdGg9L2ZyLyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZTsiIGFyaWEtbGFiZWw9IkJlbGFuZ2VyIExpbmNvbG4gTG9nbyIgdGl0bGU9IkJlbGFuZ2VyIExpbmNvbG4iPgoJCQk8aW1nIGFsdD0iQmVsYW5nZXIgTGluY29sbiIgY2xhc3M9Im9wdGFub24tY2F0ZWdvcnktQzAwMDEgbGl2ZWxvYWQgcGhvdG8gaW1hZ2UtcGFkZGluZyBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLW90LWlnbm9yZSBkYXRhLXNjb2RlcmVmPSI2NDgxNTMtUCIgaWQ9ImRlYWxlcl9sb2dvIiBzcmM9Imh0dHBzOi8vYmVsYW5nZXJsaW5jb2xuLmNhLy9pbWFnZXMvTG9nby9iZWxhbmdlci1saW5jb2xuLWxvZ28ud2VicCIgc3R5bGU9IndpZHRoOjM1MHB4O2hlaWdodDoxMjBweDsiIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQk8L2E+Cgk8L2Rpdj4KPC9kaXY+CgkJCQoJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiBsb2dvLW1pZGRsZSIgc3R5bGU9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uIGFkZHJlc3MtbWlkZGxlIj4KCTxkaXY+CgkJCgkJPGRpdiBjbGFzcz0icGhvbmUgcGhvbmVfcmlnaHQgIiBzdHlsZT0iY29sb3I6ICMwMDAwMDA7Ij4KCTxkaXYgY2xhc3M9ImZuIG9yZyIgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDtjb2xvcjogIzAwMDAwMDsiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPkJlbGFuZ2VyIExpbmNvbG48L2Rpdj4KCQkJCQk8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IiBjbGFzcz0iYWRyIj4KCQkJCQk8IS0tIE9POjo5MWM0OWY4NGY2OWZjZmJiODNmNmUyNzk1MGQ2YWQ4OCAtLT48YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1CZWxhbmdlciUyQkxpbmNvbG4lMkMyMDQrTWljaGFlbCtTdHJlZXQlMkNDaGVsbXNmb3JkJTJDT04lMkNQME0rMUwwJmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKZzViblltU3hMMDBSVHRBOXZwemRBSXMmYW1wO2hsPWZyJmFtcDt0PW0mYW1wO3o9MTYmYW1wO2llPVVURjgiIHRhcmdldD0iX2JsYW5rIiBhcmlhLWxhYmVsPSIyMDQgTWljaGFlbCBTdHJlZXQsIENoZWxtc2ZvcmQsIE9OLCBQME0gMUwwLiBHb29nbGUgTWFwIHMnb3V2cmUgZGFucyB1biBub3V2ZWwgb25nbGV0IiB0aXRsZT0iTG9jYXRpb24gOiAyMDQgTWljaGFlbCBTdHJlZXQsIENoZWxtc2ZvcmQsIE9OLCBQME0gMUwwIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6IzAwMDAwMDsgLS10eHQtY29sb3I6IzAwMDAwMDsiPgoJCQkJCTxzcGFuIGNsYXNzPSJkZWFsZXJNYXBMaW5rIiBpdGVtcHJvcD0iYWRkcmVzcyIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwczovL3NjaGVtYS5vcmcvUG9zdGFsQWRkcmVzcyI+CgkJCQkJCTxzdmcgY2xhc3M9IiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+PCEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS0+PHBhdGggZD0iTTQ0NC41MiAzLjUyTDI4Ljc0IDE5NS40MmMtNDcuOTcgMjIuMzktMzEuOTggOTIuNzUgMTkuMTkgOTIuNzVoMTc1LjkxdjE3NS45MWMwIDUxLjE3IDcwLjM2IDY3LjE3IDkyLjc1IDE5LjE5bDE5MS45LTQxNS43OGMxNS45OS0zOC4zOS0yNS41OS03OS45Ny02My45Ny02My45N3oiPjwvcGF0aD48L3N2Zz4KCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzdHJlZXQtYWRkcmVzcyIgaXRlbXByb3A9InN0cmVldEFkZHJlc3MiPjIwNCBNaWNoYWVsIFN0cmVldDwvc3Bhbj4sIAogICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9jYWxpdHkiIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHgiIGl0ZW1wcm9wPSJhZGRyZXNzTG9jYWxpdHkiPkNoZWxtc2ZvcmQ8L3NwYW4+LCAKICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlZ2lvbiIgc3R5bGU9Im1hcmdpbi1sZWZ0OjVweCIgaXRlbXByb3A9ImFkZHJlc3NSZWdpb24iPk9OPC9zcGFuPiwKICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvc3RhbC1jb2RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NXB4IiBpdGVtcHJvcD0icG9zdGFsQ29kZSI+UDBNIDFMMDwvc3Bhbj4KCQkJCQk8L3NwYW4+CgkJCQkJPC9hPgoJCQkJPC9kaXY+Cgk8ZGl2IGhpZGRlbj4KCQk8bWV0YSBpdGVtcHJvcD0ibGF0aXR1ZGUiIGNvbnRlbnQ9IjQ2LjU5NTExMzAwMDAiPgoJCTxtZXRhIGl0ZW1wcm9wPSJsb25naXR1ZGUiIGNvbnRlbnQ9Ii04MS4yMjEwMDgwMDAwIj4KICAgICA8L2Rpdj4KCQoJIDxkaXYgY2xhc3M9InBob25lX3RleHQgaWNvbi10ZXh0IiBzdHlsZT0iY29sb3I6ICMwMDAwMDA7Zm9udC1zaXplOiAxNHB4OyI+CgkJCQkJCgkJCTxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrIiBjbGFzcz0iZmxleC1ib3giPgoJCQk8c3BhbiBzdHlsZT0iIiBjbGFzcz0iZmEgZmEtcGhvbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+ICA8c3BhbiBpZD0iaGVhZGVyLXBob25lLXRyaWdnZXIiIGl0ZW1wcm9wPSJ0ZWxlcGhvbmUiIGNsYXNzPSJleHRlbmRlZFBob25lVHJpZ2dlciAiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij48YSBocmVmPSI\/cGF0aD10ZWw6NzA1JTIwODU1LTQ1MDgiIGNsYXNzPSJwaG9uZS1saW5rIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj43MDUgODU1LTQ1MDg8L2E+IDxzcGFuIHN0eWxlPSJwb2ludGVyLWV2ZW50czpub25lOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyIgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4KCQkJPGRpdiBjbGFzcz0iZXh0ZW5kZWRQaG9uZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCTxkaXY+PGxhYmVsPkfDqW7DqXJhbDogPHNwYW4gY2xhc3M9InRlbCAtbWwxMCI+PGEgaHJlZj0iP3BhdGg9dGVsOjcwNSUyMDg1NS00NTA4IiBjbGFzcz0icGhvbmUtbGluayIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+NzA1IDg1NS00NTA4PC9hPiA8YnI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+Cgk8ZGl2IGNsYXNzPSJwaG9uZU5vdGUiPjwvZGl2PgoJPCEtLSBPTzo6ZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTUgLS0+CjwvZGl2PgoJCQk8L2Rpdj4KCQkKCQkKCQkKCTwvZGl2PgoJCiAgCjwvZGl2PgoJCQoJPC9kaXY+CjwvZGl2PgoJCQkKCQkJCgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJza2VsZXRvbiBza2VsZXRvbi1kZXNrdG9wIHNrZWxldG9uLWNvbmQtMiBoZWFkZXItbWVudSIgc3R5bGU9IndpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSk7bWluLWhlaWdodDo0OHB4OyI+CgkJCQk8ZGl2IGNsYXNzPSJ1cF9tZW51ICBGUkVOQ0ggaW1nX21lbnUgbWVudTUgZnVsbF93aWR0aCIgZGF0YS1zY29kZXJlZj0iODk4OTQxNS1BIj4KCQkJCQk8ZGl2IGNsYXNzPSJTMTAwUGVyY2VudFdpZHRoIj4KCQkJCQkJPGRpdiBpZD0iZnVsbFdpZHRoTWVudUJhciI+PC9kaXY+CgkJCQkJCTx1bCBjbGFzcz0ibmF2ICI+CgkJCQkJCQk8ZGl2IGlkPSJtZW51LXNwZWNzLXRlbXBsYXRlIiBjbGFzcz0ibWVudS10ZWNoLXNwZWNzIj4gPGRpdiBjbGFzcz0ibWVudS1zcGVjcy10aXRsZSI+PHNwYW4gY2xhc3M9ImFycm93IGFycm93LWxhcmdlIGFycm93LXJpZ2h0IG1yLTE1Ij48L3NwYW4+PC9kaXY+IDx1bCBjbGFzcz0ibWVudS1zcGVjcy1saXN0Ij4gPGxpPiA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0ibWVudS1zcGVjLWxpbmsiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5TcMOpYy4gdGVjaG5pcXVlcyA8L2E+IDwvbGk+IDxsaT4gPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9Im1lbnUtc3BlYy1ibnAiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5Db25maWd1cmV6IHZvdHJlICRNT0RFTCA8L2E+IDwvbGk+IDxsaSBjbGFzcz0iZGl2aWRlciI+IDxsaT4gPHN0cm9uZyBjbGFzcz0ibWVudS1wcmljZS10ZXh0Ij4jI01FTlVNT0RFTCMjICMjTUVOVVRSSU0jIyAjI01FTlVZRUFSIyMgw6AgcGFydGlyIGRlPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLXByaWNlIj4kOTksOTk5PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+UHVpc3NhbmNlPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWhwIj45OTkgaHAgQCA5OTk5IHJwbTwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPkN5bGluZHLDqWU8L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtcG93ZXIiPjkuOSBMLzk5PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+Q29uc29tbWF0aW9uIGQnZXNzZW5jZTwvc3Ryb25nPiA8YnI+VmlsbGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1jaXR5Ij45OSBtcGc8L3NwYW4+IDxicj5BdXRvcm91dGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1oaWdod2F5Ij45OSBtcGc8L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5Nb3RyaWNpdMOpPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWRyaXZldHJhaW4iPjk5OSBrcGg8L3NwYW4+IDwvbGk+IDwvdWw+CjwvZGl2PjxsaSBkYXRhLWlkPSJDT05UQUNUIiBpZD0iTWFpbk1lbnVfQ09OVEFDVCIgY2xhc3M9InRvcCBsYXN0TWVudSBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIj7DgCBQUk9QT1M8L2E+PHVsIGNsYXNzPSJzdWIgY29udGFjdHVzLWZvcm0iPiA8bGkgZGF0YS1pZD0iNmEwMDA1Mzg0NTkxYiIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDU5MWIiIGNsYXNzPSJjb250YWN0LWNvbnRhaW5lciI+IDxkaXY+IDxoNSBjbGFzcz0idGl0bGUiPk5vdHJlIGVtcGxhY2VtZW50PC9oNT4gPGEgaHJlZj0iP3BhdGg9I2Zvb3RlcldyYXBwZXIiIGlkPSJtZW51LW1hcC1saW5rIiB0aXRsZT0iR29vZ2xlIE1hcHMiIGFyaWEtbGFiZWw9Ikdvb2dsZSBNYXBzIiBkYXRhLXBsYWNlLWlkPSJwbGFjZV9pZDpDaElKZzViblltU3hMMDBSVHRBOXZwemRBSXMiIGRhdGEtem9vbT0iMTQiIGRhdGEtbGFuZ3VhZ2U9ImZyLUNBIj48IS0tIC0tPjwvYT4gPC9kaXY+IDxkaXYgY2xhc3M9ImV4cHJlc3MtZm9ybSI+IDxmb3JtIGlkPSJxdWlja0VtYWlsRm9ybSIgY2xhc3M9ImQyY2Zvcm0gZDJjZm9ybS0tdGhpbiBjb2wtbWQtMyBtZW51IGhpZGVPblByZUxvYWQiIGFjdGlvbj0iamF2YXNjcmlwdDp2b2lkKDApOyI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VsZWN0UmVxdWlyZWQiIHZhbHVlPSIxIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NQaG9uZVJlcXVpcmVkIiB2YWx1ZT0iMSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0ZXh0U2F2ZU1haWxJRCIgbmFtZT0idGV4dFNhdmVNYWlsSUQiIHZhbHVlPSJtZW51Q29udGFjdFVzIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRleHRRdWlja0VtYWlsSW5mbyIgbmFtZT0idGV4dFF1aWNrRW1haWxJbmZvIiB2YWx1ZT0iSW5mb3JtYXRpb24gc3VyIHskTElOS01BS0V9IHskTElOS01PREVMfSB7JExJTktZRUFSfSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FydHJpbSIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FydmluIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJwcmljZSIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FyaWQiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2Nhcm1ha2UiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2Nhcm1vZGVsIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJ5ZWFyIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NzdG9ja251bWJlciIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWwiIHZhbHVlPSJmOTlkNGI2ODVhYTQxNWJiZDJkYzIxMWI3Yjc5MGEwZnwzODE2MjUzOTc4Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbE5FVyIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxBREYiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbEFERlNFUlZJQ0UiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0luRGVtbyIgdmFsdWU9InskRVhQUkVTU0lOREVNT30iPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJpbnRGbGFnIiB2YWx1ZT0iMCI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX25ldyIgdmFsdWU9ImY5OWQ0YjY4NWFhNDE1YmJkMmRjMjExYjdiNzkwYTBmfDM4MTYyNTM5NzgiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3VzZWQiIHZhbHVlPSJlMjkyYTk5NzU4NmRmY2FkNDY2YmY2ZTBlNWY1N2NmZXwzODE2MjUzOTc4Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9zZXJ2aWNlIiB2YWx1ZT0iZTFhZGY4ZjM1NTdjMDQ1MmQ4MWEzZGRmNjIwNTNhYTh8MzgxNjI1Mzk3OCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxfcGFydHMiIHZhbHVlPSIxYWJjN2RhNWZmOTM0ZDc3OTkyYmJiZWIzNWViNWRlZHwzODE2MjUzOTc4Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9maW5hbmNlIiB2YWx1ZT0iYzdjMTU1MTkwMDVmZTc5OGNjZWVlNDMyMjU1ZGYwZmN8MzgxNjI1Mzk3OCI+IDwhLS0gUExBQ0UgMS1BIC0tPiA8ZGl2PiA8ZGl2IGNsYXNzPSJfYm94Mjg4MF9taWQgLXBsOCAtcHI4Ij4gPGRpdiBjbGFzcz0id2lkZ2V0X2V4cHJlc3NfbWFpbF9waG9uZV90aXRsZSIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+NzA1IDg1NS00NTA4PC9kaXY+IDxkaXYgY2xhc3M9IlJlY2hlcmNoZTIyICI+RGVtYW5kZSBFeHByZXNzPC9kaXY+IDxzdGFjay1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbE5hbWUiIGNsYXNzPSJzci1vbmx5Ij5Ob208L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InF1aWNrRW1haWxOYW1lIiBuYW1lPSJuYW1lIiBwbGFjZWhvbGRlcj0iTm9tIj4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxUZWwiIGNsYXNzPSJzci1vbmx5Ij5Uw6lsw6lwaG9uZTwvbGFiZWw+IDxpbnB1dCBjbGFzcz0icGhvbmUgcmVxdWlyZWQiIHR5cGU9InRlbCIgaWQ9InF1aWNrRW1haWxUZWwiIG5hbWU9InRlbCIgcGxhY2Vob2xkZXI9IlTDqWzDqXBob25lIj4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxBZGRyIiBjbGFzcz0ic3Itb25seSI+Q291cnJpZWw8L2xhYmVsPiA8aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJxdWlja0VtYWlsQWRkciIgbmFtZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJDb3VycmllbCI+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsRGVwYXJ0bWVudCIgY2xhc3M9InNyLW9ubHkiPlPDqWxlY3Rpb25uZXI8L2xhYmVsPiA8c2VsZWN0IGlkPSJxdWlja0VtYWlsRGVwYXJ0bWVudCI+PG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD5Tw6lsZWN0aW9ubmVyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmV3Ij5WZW50ZXMgLSBOZXVmPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlZCI+VmVudGVzIC0gT2NjYXNpb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzZXJ2aWNlIj5TZXJ2aWNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmluYW5jZSI+RmluYW5jZW1lbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJwYXJ0cyI+UGnDqGNlcyAmYW1wOyBBY2Nlc3NvaXJlczwvb3B0aW9uPjwvc2VsZWN0PiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbE1zZyIgY2xhc3M9InNyLW9ubHkiPk1lc3NhZ2U8L2xhYmVsPiA8dGV4dGFyZWEgaWQ9InF1aWNrRW1haWxNc2ciIHJvd3M9IjMiIHBsYWNlaG9sZGVyPSJNZXNzYWdlIj48L3RleHRhcmVhPiA8L2JveC1sYz4gPC9zdGFjay1sYz4gPHN0YWNrLWxjPiA8Ym94LWxjPiA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyIgaWQ9Ik1pc3NpbmdWYWxpZGF0aW9uTXNnIiBjbGFzcz0iZXJyb3JNc2ciPiA8cD5DZXJ0YWlucyBjaGFtcHMgb2JsaWdhdG9pcmVzIG4nb250IHBhcyDDqXTDqSByZW1wbGlzPC9wPiA8L2Rpdj4gPC9ib3gtbGM+IDxib3gtbGM+IDxidXR0b24gY2xhc3M9InNlbmRRdWlja0VtYWlsIC1yaWdodCBidG4tZGVmYXVsdCAiPkVudm95ZXI8L2J1dHRvbj4gPC9ib3gtbGM+IDwvc3RhY2stbGM+IDwvZGl2PiA8L2Rpdj4gPGRpdiBpZD0ibWVudUNvbnRhY3RVc0RlZiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+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+IEJlbGFuZ2VyIExpbmNvbG4gPGJyPiAyMDQgTWljaGFlbCBTdHJlZXQgPGJyPiBDaGVsbXNmb3JkLCBPTiA8YnI+IFAwTSAxTDAgPGJyPiA8L2Rpdj4gPGRpdiBjbGFzcz0ibWVudS1waG9uZXMiPiA8c3RhY2stbGMgY2xhc3M9InBob25lLXdyYXBwZXIiPjxhIGhyZWY9Ij9wYXRoPXRlbDo3MDUlMjA4NTUtNDUwOCIgY2xhc3M9ImZsZXgtYmV0d2VlbiIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+IDxzcGFuIGNsYXNzPSJmaXJzdCI+PHNwYW4gY2xhc3M9ImZhIGZhLXBob25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPkfDqW7DqXJhbDo8L3NwYW4+IDxzcGFuPjcwNSA4NTUtNDUwODxicj48L3NwYW4+CjwvYT48L3N0YWNrLWxjPiA8L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9Ii1mczEwIC1yaWdodCIgc3R5bGU9Im1hcmdpbi1yaWdodDogMTBweDsiPjwvZGl2PiA8L2Rpdj4gPHVsIGNsYXNzPSJzbGltLXN1Ym1lbnUgLW10MTUiPjxsaSBkYXRhLWlkPSJDT05UQUNUVVMiIGlkPSJNYWluTWVudV82YTAwMDUzODQyNjhkIj48YSBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIj5Ob3VzIGpvaW5kcmU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkpPQk9GRkVSIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0MjY5ZiI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2VtcGxvaXMtYXV0b21vYmlsZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJKT0JPRkZFUiI+Q2FycmnDqHJlczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iODVhMWZhZDktOWMwYi1mN2U4LTk4ZDMtZiIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDI2YTUiPjxhIGhyZWY9Ij9wYXRoPS9lcXVpcGUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iODVhMWZhZDktOWMwYi1mN2U4LTk4ZDMtZiI+Tm90cmUgw6lxdWlwZTwvYT48L2xpPgo8L3VsPgo8L2Rpdj4gPC9saT48L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iU0VSVklDRSIgaWQ9Ik1haW5NZW51X1NFUlZJQ0UiIGNsYXNzPSJ0b3AgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L3NlcnZpY2VzLWxpbmNvbG4uaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iU0VSVklDRSI+U0VSVklDRSAmYW1wOyBQScOIQ0VTPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9IkFQUE9JTlQiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OTBhIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvcmVuZGV6LXZvdXMtYXUtc2VydmljZS5odG1sIj5SZW5kZXotdm91cyBhdSBzZXJ2aWNlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQSUVDRVMiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OTBkIj48YSBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvY29tbWFuZGUtcGllY2VzLWFjY2Vzc29pcmVzLWF1dG9tb2JpbGVzLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlBJRUNFUyI+UGnDqGNlcyAmYW1wOyBBY2Nlc3NvaXJlczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVElSRVMiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OTExIiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9jb21tYW5kZS1kZS1wbmV1cy5odG1sIj5Db21tYW5kZXogdm9zIHBuZXVzIGljaSE8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IkdQX2MyNDk0NTI2NTc5YWZlIiBpZD0iTWFpbk1lbnVfR1BfYzI0OTQ1MjY1NzlhZmUiIGNsYXNzPSJ0b3AgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L3Byb3ByaWV0YWlyZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHUF9jMjQ5NDUyNjU3OWFmZSI+UFJPUFJJw4lUQUlSRTwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJHUF9iMWUwZDYwNDE5OWQ5YmI5IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThlMyIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L2V4cGVyaWVuY2UtcHJvcHJpZXRhaXJlLWxpbmNvbG4uaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iR1BfYjFlMGQ2MDQxOTlkOWJiOSI+RXhww6lyaWVuY2UgTGluY29sbjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfOWMyYTRiOWU0NWU5MjM4IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThlNyI+PGEgaHJlZj0iP3BhdGg9L2FwcGxpY2F0aW9uLWxpbmNvbG4uaHRtbCI+QXBwbGljYXRpb24gTGluY29sbjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfZDE3MjYyZGU2MzU5ZGM3YSIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDU4ZWEiPjxhIGhyZWY9Ij9wYXRoPS9zb3V0aWVuLWxpbmNvbG4uaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iR1BfZDE3MjYyZGU2MzU5ZGM3YSI+U291dGllbiBQcm9wcmnDqXRhaXJlcyBMaW5jb2xuPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF83M2ZlNzExMzE1NjNjNTMiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OGVkIj48YSBocmVmPSI\/cGF0aD0vY29sbGVjdGUtZXQtbGl2cmFpc29uLWxpbmNvbG4uaHRtbCI+Q29sbGVjdGUgJmFtcDsgTGl2cmFpc29uPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF9mYmI4YjY4ZWQwN2UxODJkIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThmMCI+PGEgaHJlZj0iP3BhdGg9L2FjY2VzLXJlY29tcGVuc2VzLWxpbmNvbG4uaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iR1BfZmJiOGI2OGVkMDdlMTgyZCI+QWNjw6hzIHLDqWNvbXBlbnNlcyBMaW5jb2xuPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF9lMWM2M2JlNjhmMTcxZDA0IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThmNSI+PGEgaHJlZj0iP3BhdGg9L2NvbmNpZXJnZS1saW5jb2xuLmh0bWwiPkNvbmNpZXJnZSBMaW5jb2xuPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF9iZTRmN2Q1NjMwYWY1M2U5IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThmOSI+PGEgaHJlZj0iP3BhdGg9L2xpbmNvbG4tc3luYy00LWZyLmh0bWwiPkxpbmNvbG4gU1lOQ0AgNDwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfNDIyZjliMDE1NzVlNjk4IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThmZSI+PGEgaHJlZj0iP3BhdGg9L2Fzc2lzdGFuY2Utcm91dGllcmUtbGluY29sbi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHUF80MjJmOWIwMTU3NWU2OTgiPkFzc2lzdGFuY2Ugcm91dGnDqHJlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxOTUwNmM3YS1kMGY4LTJmNzItYmQ2MC0yIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTkwMSIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vbGluY29sbi1lc3NhaS1kZWNvdXZlcnRlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE5NTA2YzdhLWQwZjgtMmY3Mi1iZDYwLTIiPkVzc2FpIFJvdXRpZXIgw6AgbGEgRMOpY291dmVydGUgZGUgTGluY29sbjwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iRklOQU5DRSIgaWQ9Ik1haW5NZW51X0ZJTkFOQ0UiIGNsYXNzPSJ0b3AiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2ZpbmFuY2VtZW50Lmh0bWwiPkZJTkFOQ0VNRU5UPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NTyIgaWQ9Ik1haW5NZW51X1BST01PIiBjbGFzcz0idG9wIGhhc0l0ZW1zIj48YSBjbGFzcz0idG9wX2xpbmsiIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlBST01PIj5PRkZSRVMgU1DDiUNJQUxFUzwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJQUk9NT19NQU5VRkFDVFVSRVIiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OGQzIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI21hbnVmYWN0dXJlciI+SW5jaXRhdGlmcyBMaW5jb2xuPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NT19PRU1SRUJBVEVTX0xJTkNPTE4iIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OGQ3IiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjbGluY29sbnJlYmF0ZXMiIGRhdGEtbWVudS10cmFuc2xhdGU9IlBST01PX09FTVJFQkFURVNfTElOQ09MTiI+TW9kw6hsZXMgTGluY29sbiBlbiByYWJhaXM8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQiIGlkPSJNYWluTWVudV9VU0VEIiBjbGFzcz0idG9wIGhhc0l0ZW1zIHNob3J0IHNob3J0LTEiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3JlY2hlcmNoZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEIj5PQ0NBU0lPTjwvYT48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSJVU0VEX1NFQVJDSEVTIiBpZD0iTWFpbk1lbnVfVVNFRF9TRUFSQ0hFUyIgY2xhc3M9InRvcCBmaXJzdE1lbnUgaGFzSXRlbXMgaXNCb2xkIj48YSBjbGFzcz0idG9wX2xpbmsgaXNCb2xkIG5vdENsaWNrYWJsZSIgb25jbGljaz0icmV0dXJuIGZhbHNlOyIgaHJlZj0iP3BhdGg9IyI+TGllbnMgUmFwaWRlczwvYT48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSI3N2JlY2E1Ny1mY2EyLWVkMzAtZWJiNC1hIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThiMCIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uLWNlcnRpZmllcy1saW5jb2xuLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijc3YmVjYTU3LWZjYTItZWQzMC1lYmI0LWEiPkF2YW50YWdlcyBPY2Nhc2lvbiBDZXJ0aWZpw6lzIExpbmNvbG48L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQUxMSU5WIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThiNiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3JlY2hlcmNoZS5odG1sIj5JbnZlbnRhaXJlIENvbXBsZXQgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9TVVYiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1OGI5IiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL1ZVUy5odG1sIj5WVVMgJmFtcDsgTXVsdGlzZWdtZW50cyAoMSk8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FSUyIgaWQ9Ik1haW5NZW51X1VTRURfQ0FSUyIgY2xhc3M9InRvcCBsYXN0TWVudSBoYXNJdGVtcyBpc0JvbGQgaW52ZW50b3J5Ij48YSBjbGFzcz0idG9wX2xpbmsgaXNCb2xkIG5vdENsaWNrYWJsZSIgb25jbGljaz0icmV0dXJuIGZhbHNlOyIgaHJlZj0iP3BhdGg9IyIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRF9DQVJTIj5OT1RSRSBUT1AgTU9Ew4hMRTwvYT48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSJVU0VEX0NBUlNfRzAiIGlkPSJNYWluTWVudV9VU0VEX0NBUlNfRzAiIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PHNwYW4gY2xhc3M9InRvcF9saW5rIGlzQm9sZCI+PC9zcGFuPjx1bCBjbGFzcz0ic3ViIHNsaW0tc3VibWVudS0zIj4KPGxpIGRhdGEtaWQ9IlVTRUQxIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NThjOCIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0xpbmNvbG4tQXZpYXRvci5odG1sIj5MaW5jb2xuIEF2aWF0b3IgKDEpPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjwvdWw+CjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJORVciIGlkPSJNYWluTWVudV9ORVciIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGhhc0l0ZW1zIj48YSBjbGFzcz0idG9wX2xpbmsiIGhyZWY9Ij9wYXRoPS9uZXVmcy9ub3V2ZWF1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ik5FVyI+VsOJSElDVUxFUyBORVVGUzwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJORVdfQlVJTERQUklDRSIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDU4MjkiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9jb25maWd1cmF0aW9uLWV0LXByaXgvY29uZmlndXJhdGlvbi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfQlVJTERQUklDRSI+w4lxdWlwZXIgZXQgb2J0ZW5pciB1biBwcml4PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdJTlYiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODMyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvaW52ZW50YWlyZS9yZWNoZXJjaGUuaHRtbCI+SW52ZW50YWlyZSBOZXVmICg0Mik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19TVVYiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODg3IiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvVlVTLmh0bWwiPlZVUyAvIE11bHRpc2VnbWVudHM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU1VWX0xpbmNvbG4iIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODg0IiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMzU0NzkyMTIzMSIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDU4M2MiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU0MTkxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1BdmlhdG9yLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkF2aWF0b3IgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTGluY29sbi9BdmlhdG9yLzIwMjUvVC80NjYyNzAvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEwMDA1MmFmMjE1ZiIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2xpbmNvbG5fYy5wbmciIHRpdGxlPSJBdmlhdG9yIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjgwIDM5NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1BdmlhdG9yLTIwMjUuaHRtbCI+QXZpYXRvciAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNTI2OTM1MDc3IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg0NyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjQzOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tQXZpYXRvci0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJBdmlhdG9yIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0xpbmNvbG4vQXZpYXRvci8yMDI2L1QvNDc5MDA3L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMDAwNTJhZjIxNWYiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9saW5jb2xuX2MucG5nIiB0aXRsZT0iQXZpYXRvciAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij44MCA2OTQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tQXZpYXRvci0yMDI2Lmh0bWwiPkF2aWF0b3IgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzg3MzkwMTQiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODRlIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5MDk2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1Db3JzYWlyLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNvcnNhaXIgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTGluY29sbi9Db3JzYWlyLzIwMjUvVC80NjEwMDQvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEwMDA1MmFmMjE1ZiIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2xpbmNvbG5fYy5wbmciIHRpdGxlPSJDb3JzYWlyIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUzIDA5NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1Db3JzYWlyLTIwMjUuaHRtbCI+Q29yc2FpciAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMzYyMDkwMjg0IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg1MyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjQyMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tQ29yc2Fpci0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDb3JzYWlyIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0xpbmNvbG4vQ29yc2Fpci8yMDI2L1QvNDc4ODQ2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMDAwNTJhZjIxNWYiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9saW5jb2xuX2MucG5nIiB0aXRsZT0iQ29yc2FpciAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MyA2ODQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tQ29yc2Fpci0yMDI2Lmh0bWwiPkNvcnNhaXIgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNjQzMDM0NDIxIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg1OSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1OTA5NjAwMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tQ29yc2Fpcl9QSEVWLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNvcnNhaXIgVkhSIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0xpbmNvbG4vQ29yc2FpciBQSEVWLzIwMjUvVC80NjEwMDYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEwMDA1MmFmMjE1ZiIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2xpbmNvbG5fYy5wbmciIHRpdGxlPSJDb3JzYWlyIFZIUiAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyA0ODQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tQ29yc2Fpcl9QSEVWLTIwMjUuaHRtbCI+Q29yc2FpciBWSFIgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjA3Mzc5MDQxMSIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDU4NjAiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzI0MjAwMDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXJfUEhFVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDb3JzYWlyIFZIUiAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9MaW5jb2xuL0NvcnNhaXIgUEhFVi8yMDI2L1QvNDc4ODQ4L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMDAwNTJhZjIxNWYiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9saW5jb2xuX2MucG5nIiB0aXRsZT0iQ29yc2FpciBWSFIgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjMgNDg0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXJfUEhFVi0yMDI2Lmh0bWwiPkNvcnNhaXIgVkhSIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM4NTQyMDk4MiIgaWQ9Ik1haW5NZW51XzZhMDAwNTM4NDU4NjUiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTcyOTUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdXRpbHVzLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik5hdXRpbHVzIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0xpbmNvbG4vTmF1dGlsdXMvMjAyNS9ULzQ1ODcyMS9XaGl0ZS9wcm9maWxlLnBuZz9jYj02YTAwMDUyYWYyMTVmIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbGluY29sbl9jLnBuZyIgdGl0bGU9Ik5hdXRpbHVzIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYzIDk0NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXV0aWx1cy0yMDI1Lmh0bWwiPk5hdXRpbHVzIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI0NTc2Njk4MjMiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODZhIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcxNzk4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXV0aWx1cy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJOYXV0aWx1cyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9MaW5jb2xuL05hdXRpbHVzLzIwMjYvVC80NzY0ODQvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEwMDA1MmFmMjE1ZiIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2xpbmNvbG5fYy5wbmciIHRpdGxlPSJOYXV0aWx1cyAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42NCAzNDQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tTmF1dGlsdXMtMjAyNi5odG1sIj5OYXV0aWx1cyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNTAxNDA4MTkyIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg2ZiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NDMxNiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tTmF2aWdhdG9yLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik5hdmlnYXRvciAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9MaW5jb2xuL05hdmlnYXRvci8yMDI1L1QvNDY3MDYyL1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMDAwNTJhZjIxNWYiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9saW5jb2xuX2MucG5nIiB0aXRsZT0iTmF2aWdhdG9yIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjEyOSA0OTQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tTmF2aWdhdG9yLTIwMjUuaHRtbCI+TmF2aWdhdG9yIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMzMDc5NzE4MDgiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODc0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczNjA0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXZpZ2F0b3ItMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTmF2aWdhdG9yIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0xpbmNvbG4vTmF2aWdhdG9yLzIwMjYvVC80ODA4ODMvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEwMDA1MmFmMjE1ZiIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2xpbmNvbG5fYy5wbmciIHRpdGxlPSJOYXZpZ2F0b3IgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MTIyIDk4OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXZpZ2F0b3ItMjAyNi5odG1sIj5OYXZpZ2F0b3IgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzE2ODE0NDc3IiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg3OSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NDMxNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0xpbmNvbG4tTmF2aWdhdG9yX0wtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTmF2aWdhdG9yIEwgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTGluY29sbi9OYXZpZ2F0b3IgTC8yMDI1L1QvNDY2OTc0L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMDAwNTJhZjIxNWYiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9saW5jb2xuX2MucG5nIiB0aXRsZT0iTmF2aWdhdG9yIEwgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MTMzIDQ5NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXZpZ2F0b3JfTC0yMDI1Lmh0bWwiPk5hdmlnYXRvciBMIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIwMDM5NDgxNDciIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODdmIiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczNjA1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXZpZ2F0b3JfTC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJOYXZpZ2F0b3IgTCAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9MaW5jb2xuL05hdmlnYXRvciBMLzIwMjYvVC80ODA4ODYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEwMDA1MmFmMjE1ZiIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2xpbmNvbG5fYy5wbmciIHRpdGxlPSJOYXZpZ2F0b3IgTCAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4xMjYgOTg5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdmlnYXRvcl9MLTIwMjYuaHRtbCI+TmF2aWdhdG9yIEwgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19QSEVWIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg5YyIgY2xhc3M9Imxhc3RJdGVtIGhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL1BIRVYuaHRtbCI+SHlicmlkZXMgcmVjaGFyZ2VhYmxlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19QSEVWX0xpbmNvbG4iIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODlhIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iNjQzMDM0NDIxIiBpZD0iTWFpbk1lbnVfNmEwMDA1Mzg0NTg4ZiIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTkwOTYwMDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXJfUEhFVi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDb3JzYWlyIFZIUiAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9MaW5jb2xuL0NvcnNhaXIgUEhFVi8yMDI1L1QvNDYxMDA2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMDAwNTJhZjIxNWYiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9saW5jb2xuX2MucG5nIiB0aXRsZT0iQ29yc2FpciBWSFIgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjMgNDg0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXJfUEhFVi0yMDI1Lmh0bWwiPkNvcnNhaXIgVkhSIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIwNzM3OTA0MTEiIGlkPSJNYWluTWVudV82YTAwMDUzODQ1ODk1IiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyNDIwMDAxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1Db3JzYWlyX1BIRVYtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ29yc2FpciBWSFIgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTGluY29sbi9Db3JzYWlyIFBIRVYvMjAyNi9ULzQ3ODg0OC9XaGl0ZS9wcm9maWxlLnBuZz9jYj02YTAwMDUyYWYyMTVmIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbGluY29sbl9jLnBuZyIgdGl0bGU9IkNvcnNhaXIgVkhSIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYzIDQ4NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTGluY29sbi1Db3JzYWlyX1BIRVYtMjAyNi5odG1sIj5Db3JzYWlyIFZIUiAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8L3VsPgo8L2xpPgoKCQkJCQkJPC91bD4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3ByZWZlcmVyIiBuYW1lPSJ0b3ByZWZlcmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BzaXRlaWQiIG5hbWU9InRvcHNpdGVpZCIgdmFsdWU9IjE1NDIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGNhcmlkIiBuYW1lPSJ0b3BjYXJpZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wY2FyaWRNdWx0aXN0ZXBGb3JtIiBuYW1lPSJ0b3BjYXJpZE11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVNb2RlbCIgbmFtZT0iZU1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzdHlsZWlkIiBuYW1lPSIiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1ha2UiIG5hbWU9InBvcHVwbWFrZSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtb2RlbCIgbmFtZT0icG9wdXBtb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHllYXIiIG5hbWU9InBvcHVweWVhciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB0cmltIiBuYW1lPSJwb3B1cHRyaW0iIHZhbHVlPSJ7JFBPUFVQVFJJTX0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwc3RvY2tudW1iZXIiIG5hbWU9InBvcHVwc3RvY2tudW1iZXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZG1ha2UiIG5hbWU9Imxhc3R2aWV3ZWRtYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkbW9kZWwiIG5hbWU9Imxhc3R2aWV3ZWRtb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHllYXIiIG5hbWU9Imxhc3R2aWV3ZWR5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkdHJpbSIgbmFtZT0ibGFzdHZpZXdlZHRyaW0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRzdG9ja251bWJlciIgbmFtZT0ibGFzdHZpZXdlZHN0b2NrbnVtYmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BkZXBsb3ltZW50dHlwZSIgbmFtZT0idG9wZGVwbG95bWVudHR5cGUiIHZhbHVlPSJsaXZlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZXJ2aWNlRW1haWwiIG5hbWU9InNlcnZpY2VFbWFpbCIgdmFsdWU9ImUxYWRmOGYzNTU3YzA0NTJkODFhM2RkZjYyMDUzYWE4fDM4MTYyNTM5NzgiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VBZGZFbWFpbCIgbmFtZT0ic2VydmljZUFkZkVtYWlsIiB2YWx1ZT0iIj48dGV4dGFyZWEgaWQ9ImQyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIiB0aXRsZT0iTGluayBSdWxlcyIgY2xhc3M9ImhpZGRlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiMjTElOS1JVTEVTIyM8L3RleHRhcmVhPgoNPCEtLSBUUkFERSBJTiBCQVIgRElTQUJMRUQgLS0+Cg0KCQkJCTwvZGl2PgoJCQk8L2hlYWRlcj4KCQk8IS0tIE9QRU4gTUFJTkJPWExBWUVSIC0tPgoJCTxkaXYgY2xhc3M9Ik1haW5Cb3hMYXllciI+CgkJCQkJCTwhLS0gT1BFTiBMRUZUQk9YTEFZRVIgLS0+CgkJCTxkaXYgaWQ9Im5ld2NhckNvbnRhaW5lciIgY2xhc3M9ImxlZnRfYm94IExlZnRCb3hMYXllciI+CgkJCQk8IS0tIE9QRU4gSElTVE9SWSAtLT4KCQkJCTxkaXYgaWQ9Imhpc3RvcnlEaXYiIGNsYXNzPSJPdXRlckJveExheWVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj4KCQkJCQkJCTwhLS0gT1BFTiBCUkVBRENSVU1CIC0tPgoKCTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+Cgl7CgkJIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCgkJIkB0eXBlIjogIkJyZWFkY3J1bWJMaXN0IiwKCQkiaXRlbUxpc3RFbGVtZW50IjogW3siQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoxLCJpdGVtIjp7IkBpZCI6Imh0dHBzOlwvXC9iZWxhbmdlcmxpbmNvbG4uY2FcL2ZyXC8iLCJuYW1lIjoiQWNjdWVpbCJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MiwiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvYmVsYW5nZXJsaW5jb2xuLmNhXC9uZXVmc1wvbm91dmVhdS5odG1sIiwibmFtZSI6IlZcdTAwZTloaWN1bGVzIG5ldWZzIn19LHsiQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjozLCJpdGVtIjp7IkBpZCI6Imh0dHBzOlwvXC9MaW5jb2xuIiwibmFtZSI6IkxpbmNvbG4ifX1dCgl9Cgk8L3NjcmlwdD4KCgk8ZGl2IGlkPSJicmVhZGNydW1icyIgY2xhc3M9IkJSRENSTUJfMTU5NiI+CgkJCTxzcGFuPgoJCTxhIGhyZWY9Ij9wYXRoPS9mci8iPkFjY3VlaWw8L2E+Cgk8L3NwYW4+PHNwYW4gY2xhc3M9Ii1waCI+wrs8L3NwYW4+CTxzcGFuPgoJCTxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9ub3V2ZWF1Lmh0bWwiPlbDqWhpY3VsZXMgbmV1ZnM8L2E+Cgk8L3NwYW4+PHNwYW4gY2xhc3M9Ii1waCI+wrs8L3NwYW4+CTxzcGFuPgoJCTxzcGFuPkxpbmNvbG48L3NwYW4+Cgk8L3NwYW4+Cgk8L2Rpdj4KCgk8IS0tIENMT1NFIEJSRUFEQ1JVTUIgLS0+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJCTwhLS0gQ0xPU0UgSElTVE9SWSAtLT4KCQkJCTwhLS0gT1BFTiBIRUFERVIgSU1BR0UgLS0+CgkJCQkJPGRpdiBpZD0idG9wQmFubmVySW1hZ2UiIGNsYXNzPSJORVdDQVJTLWNsZWFyIGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciIgc3R5bGU9ImFzcGVjdC1yYXRpbzoxMDAvMjA7bWFyZ2luLWJvdHRvbToxMHB4ICFpbXBvcnRhbnQ7IiBkYXRhLWludmNhdD0iYWxsIj4KCQkJPGltZyBjbGFzcz0ibGl2ZWxvYWQgIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIiBkYXRhLW90LWlnbm9yZT0iIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBzcmM9Imh0dHBzOi8vYmVsYW5nZXJsaW5jb2xuLmNhLy9pbWFnZXMvTmV3Q2FyUGFnZUltYWdlRHluLzEyNTBfRlIuanBnIiBhbHQ9IjEyNTAgIGYgciI+Cgk8L2Rpdj4KCQoKCQkJCTwhLS0gQ0xPU0UgSEVBREVSIElNQUdFIC0tPgoJCQkJPGRpdiBpZD0idW5kZXJCYW5uZXIiPjwvZGl2PgoJCQkJPCEtLSBPUEVOIE9VVEVSQk9YTEFZRVIgLS0+CgkJCQk8ZGl2IGNsYXNzPSJPdXRlckJveExheWVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj48aDEgY2xhc3M9ImRlZmF1bHQgSDFfMTcwMyAiPjxkaXY+PGRpdj5MaW5jb2xuIG5ldWZzIDIwMjUgJmFtcDsgMjAyNiDDoCB2ZW5kcmXCoDwvZGl2PjxkaXY+w6AgQ2hlbG1zZm9yZCwgR3JhbmRlIHZpbGxlIGRlIFN1ZGJ1cnnCoDwvZGl2PjwvZGl2PjwvaDE+PC9kaXY+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciI+CSAgICAgICAgICAgIDwvZGl2Pgk8IS0tIE9QRU4gRklMVEVSTUFJTkJPWCAoJy5fX0xJTkVfXy4nKS0tPgoJPGRpdiBpZD0iZmlsdGVyTWFpbkJveCIgY2xhc3M9IklubmVyQm94TGF5ZXIgYmxhY2stdGV4dCI+CgkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJPdXRlckJveCI+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyQm94VGl0bGUiPgoJCQkJCQlSYWZmaW5leiB2b3RyZSByZWNoZXJjaGUgOgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2Fycm9zc2VyaWU8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3Nfc3V2IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9InN1diIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3N1diI+VlVTPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPk1vdHJpY2l0w6k8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgZGF0YS1kcml2ZXRyYWluPSJBV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlclNwYW4iPlF1YXRyZSByb3VlcyBtb3RyaWNlczwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZHJpdmV0cmFpbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBkYXRhLWRyaXZldHJhaW49IkZXRCIgY2hlY2tlZD48bGFiZWwgZm9yPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+VHJhY3Rpb24gYXZhbnQ8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4zIj48ZGl2IGNsYXNzPSJkaXZGaWx0ZXJUaXRsZSI+VHlwZSBkZSBjYXJidXJhbnQ8L2Rpdj48dWwgY2xhc3M9IiI+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJnYXMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazEiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUVzc2VuY2UKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9InBoZXYiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazUiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iNSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2s1IiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUh5YnJpZGUgcmVjaGFyZ2VhYmxlCgkJPC9sYWJlbD4KCTwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4zIj48ZGl2IGNsYXNzPSJkaXZGaWx0ZXJUaXRsZSI+VHJpZXIgcGFyPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9InJhZGlvTW9kbGUiIGNsYXNzPSJyYWRpb1NvcnQiIHR5cGU9InJhZGlvIiBuYW1lPSJzb3J0YnkiIHZhbHVlPSJtb2RlbCIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9Nb2RsZSI+TW9kw6hsZTxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9InJhZGlvUHJpY2UiIGNsYXNzPSJyYWRpb1NvcnQiIHR5cGU9InJhZGlvIiBuYW1lPSJzb3J0YnkiIHZhbHVlPSJwcmljZSI+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvUHJpY2UiPlByaXg8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9Db25zbyIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9ImNvbnNvIj48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9Db25zbyI+TC8xMDBrbTwvbGFiZWw+PC9saT48L2xhYmVsPjwvbGk+PC91bD48L2Rpdj4JCQkJCQoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJCgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2UHJpY2VSYW5nZVNsaWRlciIgaWQ9InByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiPgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlclRpdGxlIj4KCQkJCQkJRm91cmNoZXR0ZSBkZSBwcml4CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgcmFuZ2Utc2xpZGVyLXByaWNlcyI+CgkJCQkJCTxzcGFuIGNsYXNzPSJwcmljZS1taW4gZm9ybWF0LXByaWNlIj48L3NwYW4+wqDCoMOgwqDCoDxzcGFuIGNsYXNzPSJwcmljZS1tYXggZm9ybWF0LXByaWNlIj48L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuNiI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLWxlZnQiPk1pbjwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW45IHJhbmdlLXNsaWRlciIgYXR0ci1wcmljZS1taW49IjUzMDk0IiBhdHRyLXByaWNlLW1heD0iMTMzNDk0Ij48L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMSByYW5nZS1zbGlkZXItcmlnaHQiPk1heDwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4KCTwhLS0gQ0xPU0UgRklMVEVSTUFJTkJPWCAoJy5fX0xJTkVfXy4nKS0tPjwhLS0gT1BFTiBDQVRFR09SSUVTQk9YV1JBUFBFUiAoMTk5NyktLT48ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIGRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIj48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDYxKSAtLT48ZGl2IGlkPSJjbGFzc3N1dl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPlZVUyBuZXVmcyBMaW5jb2xuIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIENoZWxtc2ZvcmQsIEdyYW5kZSB2aWxsZSBkZSBTdWRidXJ5PC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19zdXYiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzEiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41IDUwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBDb3JzYWlyIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXItMjAyNS5odG1sIiBkYXRhLW1ha2U9IkxpbmNvbG4iIGRhdGEtbW9kZWw9IkNvcnNhaXIgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Db3JzYWlyIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MyAwOTQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ5IDYwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7QWRtaW4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTMgMDk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjYjQ1ZjFhOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ3IDU5NDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CQkJCQk8ZGl2IGNsYXNzPSJkaXZOZXdDYXJEaXNjbGFpbWVyUHJpY2UiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPitUVkggJmFtcDsgTGljZW5zZTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJDb3JzYWlyIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTAwNCw0NjEwMDUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBDb3JzYWlyIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXItMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBDb3JzYWlyIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9Db3JzYWlyLzIwMjUvNDYxMDA0L1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9Db3JzYWlyLzIwMjUvNDYxMDA0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjEwMDQmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBDb3JzYWlyIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9MaW5jb2xuLUNvcnNhaXItMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBDb3JzYWlyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXItMjAyNi5odG1sIiBkYXRhLW1ha2U9IkxpbmNvbG4iIGRhdGEtbW9kZWw9IkNvcnNhaXIgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Db3JzYWlyIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MyA2ODQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUwIDE5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7QWRtaW4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTMgNjg0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CQkJCQk8ZGl2IGNsYXNzPSJkaXZOZXdDYXJEaXNjbGFpbWVyUHJpY2UiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPitUVkggJmFtcDsgTGljZW5zZTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJDb3JzYWlyIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODg0Niw0Nzg4NDciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBDb3JzYWlyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUNvcnNhaXItMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBDb3JzYWlyIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9Db3JzYWlyLzIwMjYvNDc4ODQ2L1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9Db3JzYWlyLzIwMjYvNDc4ODQ2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Nzg4NDYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBDb3JzYWlyIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9MaW5jb2xuLUNvcnNhaXItMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBOYXV0aWx1cyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXV0aWx1cy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF1dGlsdXMgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5OYXV0aWx1cyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjMgOTQ0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MCA0NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0FkbWluJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYzIDk0NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgkJCQkJPGRpdiBjbGFzcz0iZGl2TmV3Q2FyRGlzY2xhaW1lclByaWNlIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4rVFZIICZhbXA7IExpY2Vuc2U8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF1dGlsdXMiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU4NzIxLDQ1ODcyMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJMaW5jb2xuIE5hdXRpbHVzIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdXRpbHVzLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkxpbmNvbG4gTmF1dGlsdXMgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9MaW5jb2xuL05hdXRpbHVzLzIwMjUvNDU4NzIxL1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9OYXV0aWx1cy8yMDI1LzQ1ODcyMS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDU4NzIxJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0xpbmNvbG4gTmF1dGlsdXMgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tTmF1dGlsdXMtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBOYXV0aWx1cyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXV0aWx1cy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF1dGlsdXMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5OYXV0aWx1cyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjQgMzQ0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MCA4NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0FkbWluJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY0IDM0NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgkJCQkJPGRpdiBjbGFzcz0iZGl2TmV3Q2FyRGlzY2xhaW1lclByaWNlIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4rVFZIICZhbXA7IExpY2Vuc2U8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF1dGlsdXMiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc2NDg0LDQ3NjQ4NSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJMaW5jb2xuIE5hdXRpbHVzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdXRpbHVzLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkxpbmNvbG4gTmF1dGlsdXMgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9MaW5jb2xuL05hdXRpbHVzLzIwMjYvNDc2NDg0L1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9OYXV0aWx1cy8yMDI2LzQ3NjQ4NC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDc2NDg0JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0xpbmNvbG4gTmF1dGlsdXMgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tTmF1dGlsdXMtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl81Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBBdmlhdG9yIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUF2aWF0b3ItMjAyNS5odG1sIiBkYXRhLW1ha2U9IkxpbmNvbG4iIGRhdGEtbW9kZWw9IkF2aWF0b3IgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5BdmlhdG9yIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj44MCAzOTQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc2IDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7QWRtaW4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODAgMzk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CQkJCQk8ZGl2IGNsYXNzPSJkaXZOZXdDYXJEaXNjbGFpbWVyUHJpY2UiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPitUVkggJmFtcDsgTGljZW5zZTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJBdmlhdG9yIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NjI3MCw0NTQyODciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBBdmlhdG9yIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUF2aWF0b3ItMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBBdmlhdG9yIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9BdmlhdG9yLzIwMjUvNDY2MjcwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjYyNzAmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBBdmlhdG9yIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9MaW5jb2xuLUF2aWF0b3ItMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBBdmlhdG9yIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUF2aWF0b3ItMjAyNi5odG1sIiBkYXRhLW1ha2U9IkxpbmNvbG4iIGRhdGEtbW9kZWw9IkF2aWF0b3IgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5BdmlhdG9yIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj44MSAxOTQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc3IDcwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7QWRtaW4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODEgMTk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CQkJCQk8ZGl2IGNsYXNzPSJkaXZOZXdDYXJEaXNjbGFpbWVyUHJpY2UiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPitUVkggJmFtcDsgTGljZW5zZTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJBdmlhdG9yIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTAwNyw0NzkwMDYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBBdmlhdG9yIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLUF2aWF0b3ItMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBBdmlhdG9yIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9BdmlhdG9yLzIwMjYvNDc5MDA3L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NzkwMDcmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBBdmlhdG9yIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9MaW5jb2xuLUF2aWF0b3ItMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl83Ij4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MyAwMDA8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkxpbmNvbG4gTmF2aWdhdG9yIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdmlnYXRvci0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF2aWdhdG9yIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TGluY29sbjwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TmF2aWdhdG9yIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xMjIgOTg5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMTkgNDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtBZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMjIgOTg5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjYjQ1ZjFhOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjExOSA5ODk8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgkJCQkJPGRpdiBjbGFzcz0iZGl2TmV3Q2FyRGlzY2xhaW1lclByaWNlIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4rVFZIICZhbXA7IExpY2Vuc2U8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF2aWdhdG9yIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDg4Myw0ODA4ODEsNDgwODgyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkxpbmNvbG4gTmF2aWdhdG9yIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdmlnYXRvci0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJMaW5jb2xuIE5hdmlnYXRvciAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0xpbmNvbG4vTmF2aWdhdG9yLzIwMjYvNDgwODgzL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODA4ODMmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBOYXZpZ2F0b3IgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tTmF2aWdhdG9yLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfOCI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMgMDAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJMaW5jb2xuIE5hdmlnYXRvciBMIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdmlnYXRvcl9MLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJOYXZpZ2F0b3IgTCAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkxpbmNvbG48L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk5hdmlnYXRvciBMIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xMjYgOTg5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMjMgNDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtBZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMjYgOTg5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjYjQ1ZjFhOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEyMyA5ODk8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgkJCQkJPGRpdiBjbGFzcz0iZGl2TmV3Q2FyRGlzY2xhaW1lclByaWNlIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4rVFZIICZhbXA7IExpY2Vuc2U8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iTmF2aWdhdG9yIEwiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgwODg2LDQ4MDg4NCw0ODA4ODUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBOYXZpZ2F0b3IgTCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTGluY29sbi1OYXZpZ2F0b3JfTC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJMaW5jb2xuIE5hdmlnYXRvciBMIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTGluY29sbi9OYXZpZ2F0b3JfTC8yMDI2LzQ4MDg4Ni9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgwODg2JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0xpbmNvbG4gTmF2aWdhdG9yIEwgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tTmF2aWdhdG9yX0wtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl85Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBOYXZpZ2F0b3IgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0xpbmNvbG4tTmF2aWdhdG9yLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJOYXZpZ2F0b3IgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5MaW5jb2xuPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5OYXZpZ2F0b3IgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEyOSA0OTQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEyNiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0FkbWluJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEyOSA0OTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4JCQkJCTxkaXYgY2xhc3M9ImRpdk5ld0NhckRpc2NsYWltZXJQcmljZSIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4OyI+K1RWSCAmYW1wOyBMaWNlbnNlPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkxpbmNvbG4iIGRhdGEtbW9kZWw9Ik5hdmlnYXRvciIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjcwNjIsNDc0NzY3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkxpbmNvbG4gTmF2aWdhdG9yIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdmlnYXRvci0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJMaW5jb2xuIE5hdmlnYXRvciAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0xpbmNvbG4vTmF2aWdhdG9yLzIwMjUvNDY3MDYyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjcwNjImcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBOYXZpZ2F0b3IgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tTmF2aWdhdG9yLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTAiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJMaW5jb2xuIE5hdmlnYXRvciBMIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9MaW5jb2xuLU5hdmlnYXRvcl9MLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJOYXZpZ2F0b3IgTCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkxpbmNvbG48L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk5hdmlnYXRvciBMIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xMzMgNDk0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtBZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzMgNDk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CQkJCQk8ZGl2IGNsYXNzPSJkaXZOZXdDYXJEaXNjbGFpbWVyUHJpY2UiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPitUVkggJmFtcDsgTGljZW5zZTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJOYXZpZ2F0b3IgTCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjY5NzQsNDc0NzY4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkxpbmNvbG4gTmF2aWdhdG9yIEwgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0xpbmNvbG4tTmF2aWdhdG9yX0wtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBOYXZpZ2F0b3IgTCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0xpbmNvbG4vTmF2aWdhdG9yX0wvMjAyNS80NjY5NzQvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2Njk3NCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtMaW5jb2xuIE5hdmlnYXRvciBMIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9MaW5jb2xuLU5hdmlnYXRvcl9MLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNjkpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MSkgLS0+PGRpdiBpZD0iY2xhc3NwaGV2X2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+SHlicmlkZXMgcmVjaGFyZ2VhYmxlIG5ldWZzIExpbmNvbG4gMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgQ2hlbG1zZm9yZCwgR3JhbmRlIHZpbGxlIGRlIFN1ZGJ1cnk8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3BoZXYiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfcGhldl8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBDb3JzYWlyIFBIRVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0xpbmNvbG4tQ29yc2Fpcl9QSEVWLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJDb3JzYWlyIFZIUiAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkxpbmNvbG48L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNvcnNhaXIgUEhFViAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjMgNDg0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0FkbWluJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYzIDQ4NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgkJCQkJPGRpdiBjbGFzcz0iZGl2TmV3Q2FyRGlzY2xhaW1lclByaWNlIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4rVFZIICZhbXA7IExpY2Vuc2U8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iQ29yc2FpciBQSEVWIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODg0OCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJMaW5jb2xuIENvcnNhaXIgUEhFViAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTGluY29sbi1Db3JzYWlyX1BIRVYtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBDb3JzYWlyIFBIRVYgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9MaW5jb2xuL0NvcnNhaXJfUEhFVi8yMDI2LzQ3ODg0OC9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0xpbmNvbG4vQ29yc2Fpcl9QSEVWLzIwMjYvNDc4ODQ4L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Nzg4NDgmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBDb3JzYWlyIFBIRVYgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tQ29yc2Fpcl9QSEVWLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzIiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41IDUwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTGluY29sbiBDb3JzYWlyIFBIRVYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0xpbmNvbG4tQ29yc2Fpcl9QSEVWLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJMaW5jb2xuIiBkYXRhLW1vZGVsPSJDb3JzYWlyIFZIUiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkxpbmNvbG48L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNvcnNhaXIgUEhFViAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjMgNDg0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0FkbWluJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYzIDQ4NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogI2I0NWYxYTsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NyA5ODQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgkJCQkJPGRpdiBjbGFzcz0iZGl2TmV3Q2FyRGlzY2xhaW1lclByaWNlIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4rVFZIICZhbXA7IExpY2Vuc2U8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTGluY29sbiIgZGF0YS1tb2RlbD0iQ29yc2FpciBQSEVWIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTAwNiIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJMaW5jb2xuIENvcnNhaXIgUEhFViAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTGluY29sbi1Db3JzYWlyX1BIRVYtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTGluY29sbiBDb3JzYWlyIFBIRVYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9MaW5jb2xuL0NvcnNhaXJfUEhFVi8yMDI1LzQ2MTAwNi9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0xpbmNvbG4vQ29yc2Fpcl9QSEVWLzIwMjUvNDYxMDA2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjEwMDYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TGluY29sbiBDb3JzYWlyIFBIRVYgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0xpbmNvbG4tQ29yc2Fpcl9QSEVWLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNjkpLS0+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SSUVTQk9YV1JBUFBFUiAoMjA3NiktLT48aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTGluY29sbiIgaWQ9ImlzQnJhbmRQYWdlIj4KCQkJCTwvZGl2PgoJCQkJPCEtLSBDTE9TRSBPVVRFUkJPWExBWUVSIC0tPgoJCQkJICAgIDxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIgZGl2RGlzY2xhaW1lckJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja1ZpZXciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja0NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2QmxvY2tUaXRsZSBibG9ja1RpdGxlU3R5bGUyIj4KICAgICAgICAgICAgICAgICAgICBDbGF1c2UgZGUgbm9uLXJlc3BvbnNhYmlsaXTDqQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja0NvbHVtbiBibGFjay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICBMZSBtb250YW50IGluZGlxdcOpIHJlcHLDqXNlbnRlIHVuZSBlc3RpbWF0aW9uIGR1IG1vbnRhbnQgcXVlIHZvdXMgcG91dmV6IHZvdXMgYXR0ZW5kcmUgw6AgcGF5ZXIgZW4gZG9sbGFycyBjYW5hZGllbnMuIExlcyB0YXhlcyBzb250IGV4Y2x1ZXMgKHNhdWYgaW5kaWNhdGlvbiBjb250cmFpcmUpLiBMZXMgcGhvdG9zIHJlcHLDqXNlbnRlbnQgbGUgbW9kw6hsZSBvZmZlcnQgbWFpcyBwZXV2ZW50IHZhcmllciBsw6lnw6hyZW1lbnQgZW4gY291bGV1ciwgb3B0aW9ucywgb3UgY2FyYWN0w6lyaXN0aXF1ZXMuIEJpZW4gcXVlIG5vdXMgbm91cyBlZmZvcmNpb25zIGRlIGdhcmFudGlyIGwnZXhhY3RpdHVkZSBkZXMgaW5mb3JtYXRpb25zIHN1ciBjZSBzaXRlIFdlYiwgbm91cyB2b3VzIHJlY29tbWFuZG9ucyBkZSBub3VzIGNvbnRhY3RlciBkaXJlY3RlbWVudCBwb3VyIHbDqXJpZmllciBsZXMgZMOpdGFpbHMgZXQgb2J0ZW5pciBkZXMgaW5mb3JtYXRpb25zIHN1cHBsw6ltZW50YWlyZXMgc3VyIGxlIHbDqWhpY3VsZSwgeSBjb21wcmlzIGxhIGNvbmZpcm1hdGlvbiBkZXMgcHJpeCwgZGVzIGNvdWxldXJzLCBkZXMgZmluaXRpb25zLCBkZXMgb3B0aW9ucyBldCBhdXRyZXMgc3DDqWNpZmljYXRpb25zLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgkJCTwvZGl2PgoJCQk8IS0tIENMT1NFIExFRlRCT1hMQVlFUiAtLT4KCQk8L2Rpdj4KCQk8IS0tIENMT1NFIE1BSU5CT1hMQVlFUiAtLT4KCQk8IS0tIE9QRU4gRk9PVEVSV0lER0VUIC0tPgoJCQkJCTxkaXYgaWQ9ImQyY192YXJzIj48aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBpZD0ic283eXVxYWo0ZHdjYzhzIiBkYXRhLWZvcnZhcj0iU0lURV9DQVJfU0VDVElPTl9UWVBFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImxpdmUiIGlkPSIyZWpoYmMweXlvZzB3d3ciIGRhdGEtZm9ydmFyPSJERVBMT1lNRU5UVFlQRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJCZWxhbmdlciBMaW5jb2xuIiBpZD0iMTdnYTh2aG5jaHZrOGNnayIgZGF0YS1mb3J2YXI9IkRFQUxFUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxZXJpdjkwMHBkYTg4d3c4IiBkYXRhLWZvcnZhcj0iTUFLRUZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9IjEwcGE3djNxZWxkY29zayIgZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0icjgyemZreGEyZHdzczAwIiBkYXRhLWZvcnZhcj0iWUVBUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSJpM2dzYXhnczVqazh3Y2siIGRhdGEtZm9ydmFyPSJSRUZFUkVSIj4KPC9kaXY+PCEtLSAjI0VORE9GUEFHRSMjIC0tPgoJCgkKICAgIDxkaXYgY2xhc3M9InVpLWxvYWRlci1iYWNrZ3JvdW5kIj48aW1nIGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZC1naWYgbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vYmVsYW5nZXJsaW5jb2xuLmNhLy9pbWFnZXMvYWpheC1sb2FkZXIyLmdpZiIgYWx0PSJhamF4IGxvYWRlcjIiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2Rpdj4KICAgIDxkaXYgaWQ9Imlvc19maXhlZF9iZyI+PC9kaXY+CgoJCQoKCQk8IS0tIFByb21vdGlvblNpZGVCdG4gRElTQUJMRUQgRk9SIFNFQ1RJT046IE5FVyAtLT4KICAgIAoJCQoKICAgIAoKICAgIAoKICAgIAoKCQk8ZGl2IGlkPSJISURERU5fSU5QVVRTIj4KCQkJPCEtLSBidW5kbGluZyBoaWRkZW4gaW5wdXRzIHRvIHBsZWFzZSBHb29nbGUgLS0+CgkJCTxkaXYgY2xhc3M9ImhpX19fXzEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRJdGVtVHlwZSIgdmFsdWU9ImNhciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlVVJMU2FmZUVOIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50U3RhdHVzIiB2YWx1ZT0ibmV3Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRVc2VyQWdlbnQiIHZhbHVlPSIgICI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudENhclByaWNlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idHh0QnVpbGRBbmRQcmljZUVtYWlsTGluayIgdmFsdWU9IkRlcm5pZXIgdsOpaGljdWxlIGNvbmZpZ3Vyw6kgKG1vZHVsZSBDb25maWd1cmF0aW9uICZhbXA7IFByaXgpIGxlIHskQkFOUExJTkt9Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIgdmFsdWU9Ii9jb25maWd1cmF0aW9uLWV0LXByaXgvIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEiIHZhbHVlPSJKYW52aWVyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDIiIHZhbHVlPSJGw6l2cmllciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgzIiB2YWx1ZT0iTWFycyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg0IiB2YWx1ZT0iQXZyaWwiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRINSIgdmFsdWU9Ik1haSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg2IiB2YWx1ZT0iSnVpbiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg3IiB2YWx1ZT0iSnVpbGxldCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg4IiB2YWx1ZT0iQW\/Du3QiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIOSIgdmFsdWU9IlNlcHRlbWJyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxMCIgdmFsdWU9Ik9jdG9icmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMTEiIHZhbHVlPSJOb3ZlbWJyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxMiIgdmFsdWU9IkTDqWNlbWJyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmZkTDEiIHZhbHVlPSIxZTlmMzg2YjBjNDA3Y2JmNGQzYzhmNWFjMGUyZTFmZmQzY2I3NTJmIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc0FWR01hcmtldFByaWNlQWN0aXZlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaXNBVkdNYXJrZXRQcmljZUFjdGl2ZUNsZWFyYW5jZSIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNob3dPbmx5UmVkdWNlZFByaWNlQ2xlYXJhbmNlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGFzTXVsdGlwbGVEZWFsZXJzIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VuZEVtYWlsVG9BbGxEZWFsZXJzIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRWZWhpY2xlIiB2YWx1ZT0iICAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkcXVlcnltYWtlIiBuYW1lPSJzZWFyY2hlZHF1ZXJ5bWFrZSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1vZGVsIiBuYW1lPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkcXVlcnl5ZWFyIiBuYW1lPSJzZWFyY2hlZHF1ZXJ5eWVhciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaW1nc3ZycG9vbGFjdGl2ZSIgbmFtZT0iaW1nc3ZycG9vbGFjdGl2ZSIgdmFsdWU9IlRSVUUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVjb21waWxlaWQiIG5hbWU9InNpdGVjb21waWxlaWQiIHZhbHVlPSI2YTAwMDUyYWYyMTVmIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlbWFpbExpc3RTdWZmaXgiIG5hbWU9ImVtYWlsTGlzdFN1ZmZpeCIgdmFsdWU9IjM4MTYyNTM5NzgiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRpc2FibGVQb3B1cHMiIG5hbWU9ImRpc2FibGVQb3B1cHMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZXJ2aWNlRW5hYmxlZCIgbmFtZT0ic2VydmljZUVuYWJsZWQiIHZhbHVlPSIxIj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImhpX19fXzIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIiBuYW1lPSJBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Im5ld1NlY3Rpb25uYWJsZWQiIG5hbWU9Im5ld1NlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ1c2VkU2VjdGlvbm5hYmxlZCIgbmFtZT0idXNlZFNlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJmaW5hbmNlU2VjdGlvbm5hYmxlZCIgbmFtZT0iZmluYW5jZVNlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZXJ2aWNlU2VjdGlvbm5hYmxlZCIgbmFtZT0ic2VydmljZVNlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwcm9tb1NlY3Rpb25uYWJsZWQiIG5hbWU9InByb21vU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRhcmdldFBhZ2UiIG5hbWU9InRhcmdldFBhZ2UiIHZhbHVlPSJORVdDQVJTIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwYWdlU2VjdGlvbiIgbmFtZT0icGFnZVNlY3Rpb24iIHZhbHVlPSJORVciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBPdGhlclBhZ2VzIiBuYW1lPSJEaXNjb3VudFBvcHVwT3RoZXJQYWdlcyIgdmFsdWU9IkhPTUVQQUdFO1BST01PO1NFUlZJQ0VTO0ZJTkFOQ0U7VEVBTTtDT05UQUNUIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93T3RoZXIiIG5hbWU9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPIiBuYW1lPSJTSE9XX1BPUFVQX0FVVE8iIHZhbHVlPSJkZWxheSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIG5hbWU9IlNIT1dfUE9QVVBfQVVUT19VU0VEIiB2YWx1ZT0iZGVsYXkiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNIT1dfUE9QVVBfQVVUT19ORVciIG5hbWU9IlNIT1dfUE9QVVBfQVVUT19ORVciIHZhbHVlPSJkZWxheSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQIiBuYW1lPSJBVVRPX1BFUkNFTlRfUE9QVVAiIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUF9VU0VEIiB2YWx1ZT0iNzUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFVVE9fUEVSQ0VOVF9QT1BVUF9ORVciIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUF9ORVciIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9VU0VEX1BBR0VfUE9QVVBfU0VMRUNUIiBuYW1lPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIHZhbHVlPSJJTkNMVURJTkciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiBuYW1lPSJHRU5FUkFMX05FV19QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IklOQ0xVRElORyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVVNFRF9MT0dPX09OX0NIRUNLIiBuYW1lPSJVU0VEX0xPR09fT05fQ0hFQ0siIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNFTV9CT09TVEVSX0FDVElWRSIgbmFtZT0iU0VNX0JPT1NURVJfQUNUSVZFIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iUEFHRUlEIiBuYW1lPSJQQUdFSUQiIHZhbHVlPSJuZXdjYXJzLmh0bWwiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkNSTV9XU1NfQUNUSVZFIiBuYW1lPSJDUk1fV1NTX0FDVElWRSIgdmFsdWU9Im5vIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJSRVFVRVNUX1NFTlQiIG5hbWU9IlJFUVVFU1RfU0VOVCIgdmFsdWU9IlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llISI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkQiIG5hbWU9IkRFQUxFUkJSQU5EIiB2YWx1ZT0iTGluY29sbiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkRfUFJJTUFSWSIgbmFtZT0iREVBTEVSQlJBTkRfUFJJTUFSWSIgdmFsdWU9IkxpbmNvbG4iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlBBQ09ERSIgbmFtZT0iREVBTEVSUEFDT0RFIiB2YWx1ZT0iQTgxNzAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZJTkFOQ0VGT1JNVFlQRSIgbmFtZT0iRklOQU5DRUZPUk1UWVBFIiB2YWx1ZT0iMXN0ZXAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlRJUkVSRURJUkVDVENIRUNLIiBuYW1lPSJERUFMRVJUSVJFUkVESVJFQ1RDSEVDSyIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlRJUkVSRURJUkVDVFRZUEUiIG5hbWU9IkRFQUxFUlRJUkVSRURJUkVDVFRZUEUiIHZhbHVlPSJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlBBUlRSRURJUkVDVFRZUEUiIG5hbWU9IkRFQUxFUlBBUlRSRURJUkVDVFRZUEUiIHZhbHVlPSJjdXN0b20iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IklTVk0iIG5hbWU9IklTVk0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdSV0wiIG5hbWU9IkdSV0wiIHZhbHVlPSJiMmUzNTBiNzFjMTY0NmI3ZWVlYzllMWFmNmM4NTRiMTNjYjFkYjUxO2JhNmI4NjExY2JhMTE3ODAzMWIxN2ZhN2UzNTBhY2YyY2UxMzVhYTU7MDljMzU4MDdiYTQ3YTgyNTkyZWY4OGU1ZDYzMDRlYTY5OWI4Y2JlMiI+CgkJCQk8IS0tIDxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvcHJpeC1vY2Nhc2lvbi8iIGlkPSdwcmljZVJlcXVlc3RGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZXNzYWlzLXJvdXRpZXItb2NjYXNpb24vIiBpZD0nU2NoZWR1bGVUZXN0RHJpdmVGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZmluYW5jZW1lbnQvIiBpZD0nRmluYW5jZUZvbGRlcicvPiAtLT4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvZGVtYW5kZXMvb2ZmcmUtb2NjYXNpb24vIiBpZD0idGV4dE1ha2VPZmZlckZvbGRlciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMCIgaWQ9Imhhc1ZCRENFbmFibGVkIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0ibWVudUxvY2siPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Im9lbUNlcnRpZmljYXRpb24iIHZhbHVlPSIzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZUxvZ1Rva2VuIiB2YWx1ZT0iTWpjME1qTXhORFk1TXpNeE5nPT0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZVRvQ2hlY2siIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRpc2FibGVJbnRlcm5hbFNlc3Npb24iIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkZWFsZXJQcm92aW5jZUNvZGUiIHZhbHVlPSJPTiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZUlEIiB2YWx1ZT0iMTU0MiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQURNSU5fTkVXX0RPTlRfU0hPV19QUklDRV9NT0RFTFMiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Ik5FV19QUklDRV9URVhUIiB2YWx1ZT0iQXBwZWxleiBwb3VyIHVuIHByaXgiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZpbmFuY2VfRm9ybVR5cGUiIHZhbHVlPSIxc3RlcCI+CgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXYgaWQ9ImNvbmZpcm1fZm9ybXMiPjwvZGl2PgoKCQkKCgkJPCEtLSBPTzo6ZjE2MmU0OGYxNDM2ZWJhNzZlZTExYmY4ODIyYzQ4NWMgLS0+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIxNTQyIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHVyY2hhc2VfaW50ZW50X2Fuc3dlciIgdmFsdWU9IlBHSnlJQzgrVEdVZ1kyeHBaVzUwSUdFZ2JDZHBiblJsYm5ScGIyNGdaQ2RoWTJobGRHVnlJSE52YmlCd2NtOWphR0ZwYmlCMjZXaHBZM1ZzWlNBOFlqNGxkR2x0WldaeVlXMWxKVHd2WWo0OFluSWdMejQ9Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlciIgdmFsdWU9ImMyRnVjeUJrWVhSbElIQnk2V05wYzJVPSI+CgkJPGRpdiBjbGFzcz0icmV2ZWFsLW1vZGFsIiBpZD0iYXNQdXJjaGFzZUludGVudCI+CgkJCTxmb3JtIG1ldGhvZD0icG9zdCI+CgkJCQk8c3Ryb25nIGNsYXNzPSJhc1BJVGl0bGUiPgoJCQkJCVF1ZWxxdWVzIHByw6ljaXNpb25zCgkJCQk8L3N0cm9uZz4KCQkJCTxvbCBjbGFzcz0ic3RlcHMiPgoKCQkJCQk8bGkgaWQ9IkFMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iIGNsYXNzPSJoaWRkZW4iPgoJCQkJCQk8ZmllbGRzZXQgc3R5bGU9ImJvcmRlcjogbm9uZTsiIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXJvdyI+CgkJCQkJCQk8bGVnZW5kIGNsYXNzPSJ2aVRleHQiPgoJCQkJCQkJCTxzdHJvbmc+Tm91cyBwZXJtZXR0ZXotdm91cyBkZSBwYXJ0YWdlciB2b3MgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBhdmVjIGxlcyBpbnN0aXR1dGlvbnMgZmluYW5jacOocmVzIHBvdXIgdm90cmUgYnVyZWF1IGRlIGNyw6lkaXQ\/PC9zdHJvbmc+CgkJCQkJCQk8L2xlZ2VuZD4KCQkJCQkJCTxib3gtbGM+CgkJCQkJCQkJPGRpdiBjbGFzcz0icmFkaW8taW5saW5lIj4KCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSItdzI1cCI+CgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJ5ZXMiIG5hbWU9InNoYXJlX3BlcnNvbmFsIiBpZD0ic2hhcmVQZXJzb25hbFllcyIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJCU91aQoJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCQk8bGFiZWwgY2xhc3M9Ii13MjVwIj4KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9Im5vIiBuYW1lPSJzaGFyZV9wZXJzb25hbCIgaWQ9InNoYXJlUGVyc29uYWxObyIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJCU5vbgoJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZTtjb2xvcjojYjUwMDAwO3BhZGRpbmctdG9wOjRweDtjbGVhcjogYm90aDsiIGlkPSJBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiPlZvdHJlIGNvbnNlbnRlbWVudCBlc3QgcmVxdWlzIHBvdXIgY29tcGzDqXRlciB2b3RyZSBkZW1hbmRlIGRlIGNyw6lkaXQhPC9kaXY+CgkJCQkJCQk8L2JveC1sYz4KCQkJCQkJPC9maWVsZHNldD4KCQkJCQk8L2xpPgoKCQkJCQk8bGkgY2xhc3M9InN0ZXBJbnRlbnQgaGlkZGVuIj4KCQkJCQkJPGZpZWxkc2V0IHN0eWxlPSJib3JkZXI6IG5vbmU7Ij4KCQkJCQkJCTxsZWdlbmQgY2xhc3M9InZpVGV4dCI+CgkJCQkJCQkJPHN0cm9uZz5RdWFuZCBwcsOpdm95ZXotdm91cyBhY2hldGVyIHVuIHbDqWhpY3VsZT88L3N0cm9uZz4KCQkJCQkJCTwvbGVnZW5kPgoJCQkJCQkJPHVsIGNsYXNzPSJ2aU9wdGlvbnMiPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iRCdpY2kgMzAgam91cnMiIG5hbWU9InB1cmNoYXNlX2ludGVudCIgaWQ9InB1cmNoYXNlSW50ZW50MSIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJPGxhYmVsIGZvcj0icHVyY2hhc2VJbnRlbnQxIj4gRCdpY2kgMzAgam91cnM8L2xhYmVsPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpPgoJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJEJ2ljaSAzIG1vaXMiIG5hbWU9InB1cmNoYXNlX2ludGVudCIgaWQ9InB1cmNoYXNlSW50ZW50MiIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJPGxhYmVsIGZvcj0icHVyY2hhc2VJbnRlbnQyIj4gRCdpY2kgMyBtb2lzPC9sYWJlbD4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iRCdpY2kgNiBtb2lzIiBuYW1lPSJwdXJjaGFzZV9pbnRlbnQiIGlkPSJwdXJjaGFzZUludGVudDMiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCTxsYWJlbCBmb3I9InB1cmNoYXNlSW50ZW50MyI+IEQnaWNpIDYgbW9pczwvbGFiZWw+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IkQnaWNpIHBsdXMgZGUgNiBtb2lzIiBuYW1lPSJwdXJjaGFzZV9pbnRlbnQiIGlkPSJwdXJjaGFzZUludGVudDQiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCTxsYWJlbCBmb3I9InB1cmNoYXNlSW50ZW50NCI+IEQnaWNpIHBsdXMgZGUgNiBtb2lzPC9sYWJlbD4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJPC91bD4KCQkJCQkJPC9maWVsZHNldD4KCQkJCQk8L2xpPgoKCQkJCQk8bGkgY2xhc3M9InN0ZXBDb250YWN0ICIgZGF0YS1kZXBhcnRtZW50cz0ic2VydmljZSI+CgkJCQkJCTxmaWVsZHNldCBzdHlsZT0iYm9yZGVyOiBub25lOyIgY2xhc3M9ImQyY2Zvcm0gZDJjZm9ybS0tcm93Ij4KCQkJCQkJCTxsZWdlbmQgY2xhc3M9InZpVGV4dCI+CgkJCQkJCQkJPHN0cm9uZz5RdWVsbGUgZXN0IHZvdHJlIG3DqXRob2RlIGRlIGNvbnRhY3QgcHLDqWbDqXLDqWUgPzwvc3Ryb25nPgoJCQkJCQkJPC9sZWdlbmQ+CgkJCQkJCQk8Ym94LWxjPgoJCQkJCQkJCTxkaXYgY2xhc3M9InJhZGlvLWlubGluZSI+CgkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iLXczMHAiPgoJCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwcmVmZXJyZWRfY29udGFjdCIgdmFsdWU9IlTDqWzDqXBob25lIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQkJVMOpbMOpcGhvbmUKCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSItdzI1cCI+CgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InByZWZlcnJlZF9jb250YWN0IiB2YWx1ZT0iQ291cnJpZWwiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCQlDb3VycmllbAoJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCQk8bGFiZWwgY2xhc3M9Ii13MjVwIj4KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icHJlZmVycmVkX2NvbnRhY3QiIHZhbHVlPSJTTVMiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQkJCQlTTVMKCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCTwvYm94LWxjPgoJCQkJCQk8L2ZpZWxkc2V0PgoJCQkJCTwvbGk+CgoJCQkJCTxsaSBjbGFzcz0ic3RlcENvbnNlbnQiPgoJCQkJCQk8ZmllbGRzZXQgc3R5bGU9ImJvcmRlcjogbm9uZTsiIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXJvdyI+Cgk8bGVnZW5kIGNsYXNzPSJ2aVRleHQiPgoJCTxkaXYgY2xhc3M9InBvcHVwLXBvbGljeSI+RGFucyBsZSBidXQgZGUgc2UgY29uZm9ybWVyIMOgIGxhIExvaSBDYW5hZGllbm5lIEFudGktUG91cnJpZWwsIG5vdXMgdm91cyBkZW1hbmRvbnMgZGUgY29uZmlybWVyIHNpIHZvdXMgZMOpc2lyZXogcXVlIG5vdXMgdm91cyBjb21tdW5pcXVpb25zIG5vcyByYWJhaXMsIHByb21vdGlvbnMsIG9mZnJlcyBldCB2ZW50ZXMgcHJpdsOpZXMgw6AgbCdhdmVuaXIuPC9kaXY+Cgk8L2xlZ2VuZD4KCTxib3gtbGM+CgkJPGRpdiBjbGFzcz0icmFkaW8taW5saW5lIGZsZXgtYmV0d2VlbiBhbGlnbi1jZW50ZXIgZGVhbGVyQ29uc2VudCI+CgkJCTxkaXYgY2xhc3M9Ii13NTBwIj5CZWxhbmdlciBMaW5jb2xuPC9kaXY+CgkJCTxsYWJlbCBjbGFzcz0iLXcyMHAiIHN0eWxlPSJtYXJnaW46IDA7Ij4KCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IjEiIG5hbWU9ImNvbnNlbnQiIGlkPSJjb25zZW50WWVzIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJT3VpCgkJCTwvbGFiZWw+CgkJCTxsYWJlbCBjbGFzcz0iLXcyMHAiIHN0eWxlPSJtYXJnaW46IDA7Ij4KCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9Ii0xIiBuYW1lPSJjb25zZW50IiBpZD0iY29uc2VudE5vIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJTm9uCgkJCTwvbGFiZWw+CgkJCQoJCTwvZGl2PgoKCQkKCgkJPGRpdiBjbGFzcz0iLXB0MTUiIHN0eWxlPSJmb250LXNpemU6IDEwcHg7dGV4dC1hbGlnbjogY2VudGVyO2NvbG9yOiB2YXIoLS1kYXJrLWdyYXkpOyI+SU1QT1JUQU5UOiBWb3VzIHBvdXZleiBmYWNpbGVtZW50IHJldGlyZXIgdm90cmUgY29uc2VudGVtZW50IGVuIHRvdXQgdGVtcHMhPC9kaXY+Cgk8L2JveC1sYz4KPC9maWVsZHNldD4KCQkJCQk8L2xpPgoJCQkJPC9vbD4KCQkJPC9mb3JtPgoJCQk8ZGl2IGNsYXNzPSItdGV4dC1jZW50ZXIiPgoJCQkJPGJ1dHRvbiBpZD0iZW1haWxDb25zZW50U3VibWl0IiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIj5TT1VNRVRUUkU8L2J1dHRvbj4KCQkJPC9kaXY+CgkJPC9kaXY+CQkJCgoJCQkKCQk8c3R5bGU+CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqewoJCQkJd2lkdGg6IGNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOwoJCQkJZGlyZWN0aW9uOiBydGw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPiAqewoJCQkJZGlyZWN0aW9uOiBpbml0aWFsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID46bGFzdC1jaGlsZHsKCQkJCXdpZHRoOiAyMHJlbTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjewoJCQkJLS1zaWRlYmFyLWJwOiA0MCU7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc3dpdGNoZXItbGN7CgkJCQktLXN3aXRjaC1icDogMzVyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQkJZGlzcGxheTogZmxleDsKCQkJCWZsZXgtd3JhcDogd3JhcDsKCQkJCWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKCQkJfQoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbCBzcGFuewoJCQkJd2lkdGg6NHJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgW3R5cGU9InN1Ym1pdCJdewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQl9CgoJCQkuY29udGFjdE1hcENvbnRhaW5lcnsKCQkJCWhlaWdodDoxMDAlOwoJCQkJbWluLWhlaWdodDptaW4oNzV2aCwgMzhyZW0pOwoJCQl9CgoJCQkuY29udGFjdEZvcm17CgkJCQlib3JkZXItY29sb3I6I2JiYjsKCQkJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmNvbnRhY3RGb3JtIGlucHV0ewoJCQkJbWF4LXdpZHRoOiAxMHJlbTsKCQkJfQoKCgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkewoJCQkJYmFja2dyb3VuZC1jb2xvcjojMDAwOwoJCQkJYm9yZGVyLWNvbG9yOiMwMDA7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci10aW1lIDppcyhpbnB1dDpob3ZlcixpbnB1dDpmb2N1cyl7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKCQkJfQoKCQkJLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoLCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzewoJCQkJdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOwoJCQl9CgoJCQkvKiAuZHAtbGFyZ2UgLmZsYXRwaWNrci1jYWxlbmRhcnsKCQkJCXdpZHRoOjMwcmVtOwoJCQkJZm9udC1zaXplOjEuMXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3Itd2Vla2RheXN7CgkJCQloZWlnaHQ6Mi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci1kYXl7CgkJCQltYXgtd2lkdGg6IDRyZW07CgkJCQloZWlnaHQ6IDIuNXJlbTsKCQkJCWxpbmUtaGVpZ2h0OiAyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSA6aXMoLmZsYXRwaWNrci1kYXlzLC5kYXlDb250YWluZXIpIHsKCQkJCXdpZHRoOjEwMCU7CgkJCQltYXgtd2lkdGg6IDMwcmVtOwoJCQl9ICovCgkJPC9zdHlsZT4KCgkJCTxkaXYgaWQ9ImxlYWREZWFsZXJBcHBvaW50bWVudCIgaGlkZGVuPgoJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIj4KCQkJCTxzaWRlYmFyLWxjPgoJCQkJCTxkaXY+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgoJCQkJCQk8Ym94LWxjPgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCTx1bCBjbGFzcz0iY2hlY2tsaXN0IC1mcy0xIC0tcyI+CgkJCQkJCQkJCTxsaT5VbmUgZXhww6lyaWVuY2UgcGVyc29ubmFsaXPDqWUgZMOocyB2b3RyZSBhcnJpdsOpZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgYXR0ZW50ZSBjaGV6IGxlIGNvbmNlc3Npb25uYWlyZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgcGFwZXJhc3NlIGludXRpbGU6IGNvbmNlbnRyZXotdm91cyBzdXIgbGUgdsOpaGljdWxlPC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtY2VudGVyIj4KCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJkYXRlcGlja2VyIGZsYXRwaWNrci1pbnB1dCIgaGlkZGVuIHR5cGU9InRleHQiIHRpdGxlPSJTZWxlY3QgRGF0ZS4uLiIgcGxhY2Vob2xkZXI9IlNlbGVjdCBEYXRlLi4uIiBkYXRhLWlkPSJpbmxpbmUiIHJlYWRvbmx5PgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RGb3JtIC1iIC13LTEwMCBmbGV4LWNlbnRlciAtLXMyIj4KCQkJCQkJCQkJPGZvcm0gaWQ9ImZvcm1EZWFsZXJBcHBvaW50bWVudCIgY2xhc3M9Ii13LTEwMCIgbm92YWxpZGF0ZT4KCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMiBhbGlnbi1jZW50ZXIiPgoKCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQgdHh0LWNlbnRlciB0eHQtdXBwZXIgc2VsZWN0ZWRUaW1lIj48L3NwYW4+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZSI+CgoJCQkJCQkJCQkJCTxzd2l0Y2hlci1sYz4KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIiPiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Tm9tICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IHJlcXVpcmVkIGNsYXNzPSItcGgiIG5hbWU9Im5hbWUiIHR5cGU9InRleHQiPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Db3VycmllbCAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Uw6lsw6lwaG9uZSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBkYXRhLXByaXN0aW5lLXBob25lIG5hbWU9InBob25lbnVtIiB0eXBlPSJ0ZWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zd2l0Y2hlci1sYz4KCgkJCQkJCQkJCQkJPGJ1dHRvbiBvbnN1Ym1pdD0iamF2YXNjcmlwdDp2b2lkKCkiIGNsYXNzPSJidG4gYnRuLXByb21vIC1mcy1sciAtdy0xMDAgdHh0LXVwcGVyIC1ib2xkIiB0eXBlPSJzdWJtaXQiPgoJCQkJCQkJCQkJCQlQcmVuZHJlIHJlbmRlei12b3VzCgkJCQkJCQkJCQkJPC9idXR0b24+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJkYXRhIiB0eXBlPSJoaWRkZW4iIGRhdGEtbWFrZT0iIiBkYXRhLW1vZGVsPSIiIGRhdGEteWVhcj0iIiBkYXRhLXRyaW09IiIgZGF0YS1jb25kaXRpb249IiIgZGF0YS1rbT0iIiBkYXRhLXZpbj0iIiBkYXRhLXN0b2NrLW51bWJlcj0iIj4KCgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUbyIgdmFsdWU9ImUyOTJhOTk3NTg2ZGZjYWQ0NjZiZjZlMGU1ZjU3Y2ZlfDM4MTYyNTM5NzgiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUb0FERkZvcm1hdCIgdmFsdWU9IiIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0ibWFpbElEIiB2YWx1ZT0iRGVhbGVyQXBwb2ludG1lbnQiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InBvcHVwT2ZmZXJUeXBlIiB2YWx1ZT0iRGVhbGVyQXBwb2ludG1lbnRBbGwiIHR5cGU9ImhpZGRlbiI+CgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImxlYWRFbWFpbCIgaGlkZGVuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLXN1YmplY3Q+TGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXM8L3NwYW4+CgkJCQkJCQkJCQkJCTxzcGFuIGRhdGEtYm9keT5Cb25qb3VyLDxicj48YnI+VW4gY2xpZW50IHBvdGVudGllbCBheWFudCB2aXNpdMOpIHZvdHJlIHNpdGUgd2ViLCBhaW1lcmFpdCBwcmVuZHJlIHVuIHJlbmRlei12b3VzOjxicj48YnI+PHU+UmVuc2VpZ25lbWVudHMgc3VyIGxlIHbDqWhpY3VsZTwvdT46PGJyPk1vZMOobGU6IDxzdHJvbmc+ICA8L3N0cm9uZz48YnI+TklWOiA8c3Ryb25nPnskVklOfTwvc3Ryb25nPjxicj5OdW3DqXJvIGRlIHN0b2NrOiA8c3Ryb25nPnskU1RPQ0tOVU1CRVJ9PC9zdHJvbmc+PGJyPktpbG9tw6h0cmVzOiA8c3Ryb25nPnskS019PC9zdHJvbmc+PGJyPjxicj48dT5EYXRlIGR1IHJlbmRlei12b3VzIHNvdWhhaXTDqTwvdT4gOiA8c3Ryb25nPnskREFURX08L3N0cm9uZz48YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2aXNpdGV1cjwvdT46PGJyPk5vbTogPHN0cm9uZz57JE5BTUV9PC9zdHJvbmc+PGJyPkNvdXJyaWVsOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPW1haWx0bzolN0IlMjRFTUFJTCU3RCI+eyRFTUFJTH08L2E+PC9zdHJvbmc+PGJyPlTDqWzDqXBob25lOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPXRlbDolN0IlMjRQSE9ORU5VTSU3RCI+eyRQSE9ORU5VTX08L2E+PC9zdHJvbmc+IHskUEhPTkVfVkFMSURBVElPTl9BVFRFTVBUU308YnI+PGJyPjx1PkNvbmNlc3Npb248L3U+Ojxicj5Ob20gOiA8c3Ryb25nPnskREVBTEVSTkFNRX08L3N0cm9uZz48YnI+PGJyPjxkaXYgc3R5bGU9IiMjU0VPQkxPQ0tESVNQTEFZIyMiPlNvdXJjZSBNw6lkaWE6IDxzdHJvbmc+eyRVVE1ERVRBSUxTfTwvc3Ryb25nPjxicj5OYXZpZ2F0ZXVyOiA8c3Ryb25nPnskVVNFUkFHRU5UfSAtIDwvc3Ryb25nPjxicj5IaXN0b3JpcXVlIGRlIG5hdmlnYXRpb246IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9JTdCJTI0VVVMSU5LJTdEIiByZWw9Im5vZm9sbG93IHVnYyBzcG9uc29yZWQgbm9pbmRleCIgc3R5bGU9ImNvbG9yOmJsYWNrOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij5DbGlxdWV6IGljaTwvYT48L3N0cm9uZz48YnI+PC9kaXY+Q29uc2VudGVtZW50OiA8c3Ryb25nPnskQ09OU0VOVF9ERVRBSUxTfTwvc3Ryb25nPnskUFVSQ0hBU0VfSU5URU5UfTwvc3Bhbj4KCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQk8L2Zvcm0+CgkJCQkJCQkJPC9ib3gtbGM+CgkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQk8L2JveC1sYz4KCgkJCQkJCTxkaXY+CgkJCQkJCQk8c3RhY2stbGMgY2xhc3M9ImNvbnRhY3RNYXBDb250YWluZXIgLS1zLTggLWJnLWxpZ2h0IiBpZD0iZm9vdGVyR29vZ2xlTWFwSG91cnNDb250YWluZXIiPgoKCQkJCQkJCQkKCQkJPGlmcmFtZSB0aXRsZT0iR29vZ2xlIE1hcCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZnJhbWVib3JkZXI9IjAiIGNsYXNzPSIgbGF6eWxvYWRlZCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/cT1wbGFjZV9pZCUzQUNoSUpnNWJuWW1TeEwwMFJUdEE5dnB6ZEFJcyZhbXA7a2V5PUFJemFTeUNYX0NwdXlFSm85bFpuODhTV1hoQ1lIZ1F3bmtMQjhHYyZhbXA7em9vbT0xNCZhbXA7cmVnaW9uPUNBJmFtcDtsYW5ndWFnZT1mciIgYWxsb3dmdWxsc2NyZWVuPSIiPjwvaWZyYW1lPgoKCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJjb250YWN0QmxvY2sgLS1zMiAtbTAiPgoJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczMiPgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMwIj5CZWxhbmdlciBMaW5jb2xuPC9zcGFuPgoJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1CZWxhbmdlciUyQkxpbmNvbG4lMkMyMDQrTWljaGFlbCtTdHJlZXQlMkNDaGVsbXNmb3JkJTJDT04lMkNQME0rMUwwJmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4JmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKZzViblltU3hMMDBSVHRBOXZwemRBSXMiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxzcGFuPjIwNCBNaWNoYWVsIFN0cmVldDwvc3Bhbj4KCQkJCQkJCQkJCQkJCTxzcGFuPkNoZWxtc2ZvcmQsIE9OPC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+UDBNIDFMMDwvc3Bhbj4KCQkJCQkJCQkJCQkJPC9hPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQiPlTDqWzDqXBob25lPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ij9wYXRoPXRlbDo3MDUlMjA4NTUtNDUwOCIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyIgdGl0bGU9IkNvbnRhY3QgUGhvbmUiPjcwNSA4NTUtNDUwODwvYT4KCQkJCQkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQiPkhldXJlczwvc3Bhbj4KCQkJCQkJCQkJCQkJCQkJPGRpdiBpZD0iaXRlbV9uZXciPgoJCQkJPHN0YWNrLWxjIGNsYXNzPSJob3Vyc0xpc3QiPgoJCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjE4OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+THVuZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDE4OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMTg6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NYXJkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMTg6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIxODowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPk1lcmNyZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAxODowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjE4OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+SmV1ZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDE4OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMTc6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5WZW5kcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMTc6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwIiBkYXRhLW1heGhvdXI9IjAiIGRhdGEtY2xvc2VkPSIxIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5TYW1lZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj5GZXJtw6k8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwIiBkYXRhLW1heGhvdXI9IjAiIGRhdGEtY2xvc2VkPSIxIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5EaW1hbmNoZTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPkZlcm3DqTwvc3Bhbj4KCQkJCTwvYm94LWxjPgoJCQkJPC9zdGFjay1sYz4KCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQk8L2JveC1sYz4KCgkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L3NpZGViYXItbGM+CgkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5TaXRlSUQiIHZhbHVlPSIxNTQyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5Ta2lwT25sb2FkUHJpbnRzY3JlZW4iIHZhbHVlPSIjI0RPTlRfU0tJUF9PTkxPQUQjIyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuUHJpbnRzY3JlZW5LZXkiIHZhbHVlPSIjI1BSSU5UU0NSRUVOX0tFWSMjIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5EZWFsZXJOYW1lIiB2YWx1ZT0iQmVsYW5nZXIgTGluY29sbiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDQkJDaGVja1VzZXIiIHZhbHVlPSJNVGd1T1RjdU1UUXVPVEU9Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fZW1haWxzIiB2YWx1ZT0iIj48IS0tIE9POjozYTI0NmE3OThkMjVkY2MzMzE1NzZlYjVmZDgwZDQ3ZSAtLT4JCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvdmVyZmxvdzpoaWRkZW47Ij4KCQkJICAKCgkJCSAgCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29va19pc19hY3RpdmUiIHZhbHVlPSIxIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNSI+CgkJCQk8IS0tIEZhY2Vib29rIFBpeGVsIENvZGUgVmlld0NvbnRlbnQgIC0tPgoJCQkJPCEtLSBPTzo6Y2I4MGE1ZjJlNzZmN2ViZjc1YmQ5OTczMDYzNzU5ODQgLS0+CgkJCQk8bm9zY3JpcHQ+CgkJCQkJPGltZyBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vdHI\/aWQ9NDA0MjEyNjIwNDQ2MTA5JmFtcDtldj1QYWdlVmlldyZhbXA7bm9zY3JpcHQ9MSIgYWx0PSJ0ciBpZCA0MDQyMTI2MjA0NDYxMDkgZXYgIHBhZ2UgdmlldyBub3NjcmlwdCAxIiBoZWlnaHQ9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHdpZHRoPSIxIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L25vc2NyaXB0PgoJCQk8IS0tIEVuZCBGYWNlYm9vayBQaXhlbCBDb2RlIFZpZXdDb250ZW50IC0tPgoKCQkgIDwvZGl2PgoKCQkgIDxkaXYgaWQ9ImNvbnZlcnNpb25UYWdzV3JhcHBlciI+PC9kaXY+CgoJCQk8IS0tIERXUC0yNDM5IC0tPgoKCQkJPCEtLSBPTzo6ODNjMjUyOGE3NTM4MGMwNzg3MmU5MmFkMmM5OWFlMmUgLS0+Cgo8IS0tIENVU1RPTSBCT0RZIEZSRUVGSUVMRCAtLT4KIAogPCEtLSBFTkQgQ1VTVE9NIEJPRFkgRlJFRUZJRUxEIC0tPgoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5Wb3RyZSBkZW1hbmRlIGEgw6l0w6kgZW52b3nDqWUgYXZlYyBzdWNjw6hzLiBVbiByZXByw6lzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSBwb3VyIHZvdHJlIGRlbWFuZGUuIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgc291cyBwZXUuPC9wPgogICAgICA8IS0tIDxhIGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvYT4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNvbnNlbnQtYnRucyAtcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX3N1Y2Nlc3NDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm0iIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iMTA5NTcyOTQxNjMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJxSE9FQ0lXano5QURFTk9VN09nbyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjQwNDIxMjYyMDQ0NjEwOSI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJiZWxhbmdlcmxpbmNvbG4uY2EiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fZmFpbENvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKCQk8IS0tIENMT1NFIEZPT1RFUldJREdFVCAtLT4KCQk8IS0tIE9QRU4gUE9QVVBXSURHRVQgLS0+CgkJCgkJPCEtLSBDTE9TRSBQT1BVUFdJREdFVCAtLT4KCQkKCQk8IS0tIFBBWU1FTlQgQ0FMQ1VMQVRPUiBQT1BVUCAgLS0+CgkJCgkJPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo5MDBweDttaW4taGVpZ2h0OjQ5NXB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3BheW1lbnRjYWxjdWxhdG9ycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6NmRiZDQ5ZGY1ODJjNDhiMjI3MGU3NmFhMzEyOGI1MzggLS0+CgoJCQoJCTwhLS0gRU5EIFBBWU1FTlQgQ0FMQ1VMQVRPUiAgLS0+CgoKCQk8ZGl2IGlkPSJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij48L2Rpdj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJkZWZhdWx0RGVwYXJ0bWVudCI+CgoJPC9kaXY+","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/belangerlincoln.ca\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVTtrtMwDH0h7qo7EC_AhxC6SBcNxM_JS9zWrRuHxF3pfXoyRJOubOJfek5iHx_brbpYdT9HDPOui6-q8mVEesIFPIMjZkgnI07R6ZOAxXCLvjyLm2AniPj2zQa0EHoVYSW_Yc7AZEmzpAHILWeGlznSS0oxFLDkt-E9RcNAA4bPh-u4DyM91GBUwlw97h5f7_aFuB0tprvZA0wy-BM4y6XwroXYKpw433I4GQjZALs3x1qCPSo0DblmjUM0xwayLT6Q028t5bfXrn2kgJOE_rZSGiDeoVL6YeUkfx3J9B8upx9kG9SFa9BhIPMlEZt--ICq83MrKvsNpQFcJCVx6-QLKaNpDxN5XJMeGjyBc8XFRqThZK_PpdciiuFan3h0rYzF2wblSQz8Sf4XUoGoOW6rA-8NuDOs-6Gmr0YfpKbUtZoc8A3pAc8IXCTPQxr6d8BmZEhDkQnxo0_TWDZhNc3TwQRQ0z6DXaA41VczlZdtdGplyiosKH5X4vhvOwexRViBGUuWgsIvkjubksYtKjm8MzSpTJ_mJPyPrnPpsUdGTb24_CKC8GpNMnXCelV9erusCzm-aOnibw&jsrpl=&wswidth=0&device=desktop&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}