nZCO8J2QjSDwnZCV8J2QgPCdkIjwn5KlPC90aXRsZT4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1PdXRmaXQ6d2dodEA0MDA7NzAwOzkwMCZkaXNwbGF5PXN3YSIgcmVsPSJzdHlsZXNoZWV0Ij4KCjxzdHlsZT4KOnJvb3QgewogIC0tbmVvbi1jb2xvcjogIzAwZmZmZjsKfQoKKiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdXNlci1zZWxlY3Q6IG5vbmU7IH0KaHRtbCwgYm9keSB7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kOiMwMDA7IH0KCmlmcmFtZSB7CiAgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBib3JkZXI6bm9uZTsgei1pbmRleDowOwp9CgoucGFzc3dvcmQtb3ZlcmxheSB7CiAgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOwogIGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwLjkwKTsKICBiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgei1pbmRleDo5OTk5Owp9CgoubG9naW4tYm94IHsKICBiYWNrZ3JvdW5kOiAjMGEwYTBhOwogIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW5lb24tY29sb3IpOwogIHBhZGRpbmc6IDMwcHg7CiAgYm9yZGVyLXJhZGl1czogMjBweDsKICB3aWR0aDogODUlOwogIG1heC13aWR0aDogMzIwcHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGJveC1zaGFkb3c6IDAgMCAzMHB4IHZhcigtLW5lb24tY29sb3IpLCBpbnNldCAwIDAgMTBweCB2YXIoLS1uZW9uLWNvbG9yKTsKICBhbmltYXRpb246IHBvcEluIDAuNXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOwp9CgoucHJvZmlsZS1pbWcgewogIHdpZHRoOiA4MHB4OwogIGhlaWdodDogODBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tbmVvbi1jb2xvcik7CiAgbWFyZ2luLWJvdHRvbTogMTVweDsKICBvYmplY3QtZml0OiBjb3ZlcjsKICBib3gtc2hhZG93OiAwIDAgMTVweCB2YXIoLS1uZW9uLWNvbG9yKTsKICBiYWNrZ3JvdW5kOiAjMDAwOwp9CgouaGFjay10aXRsZSB7CiAgZm9udC1zaXplOiAyMnB4OwogIGZvbnQtd2VpZ2h0OiA5MDA7CiAgY29sb3I6ICNmZmY7CiAgbWFyZ2luLWJvdHRvbTogMjBweDsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIHRleHQtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1uZW9uLWNvbG9yKTsKfQoKLnBhc3MtaW5wdXQgewogIHdpZHRoOiAxMDAlOwogIHBhZGRpbmc6IDEycHg7CiAgYmFja2dyb3VuZDogIzAwMDsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZW9uLWNvbG9yKTsKICBjb2xvcjogI2ZmZjsKICBib3JkZXItcmFkaXVzOiAxMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBmb250LXNpemU6IDE4cHg7CiAgbWFyZ2luLWJvdHRvbTogMTVweDsKICBvdXRsaW5lOiBub25lOwogIHRyYW5zaXRpb246IDAuM3M7Cn0KCi5wYXNzLWlucHV0OmZvY3VzIHsKICBib3gtc2hhZG93OiAwIDAgMTVweCB2YXIoLS1uZW9uLWNvbG9yKTsKfQoKLmxvZ2luLWJ0biB7CiAgd2lkdGg6IDEwMCU7CiAgcGFkZGluZzogMTJweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZW9uLWNvbG9yKTsKICBjb2xvcjogIzAwMDsKICBib3JkZXI6IG5vbmU7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgYm9yZGVyLXJhZGl1czogMTBweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZm9udC1zaXplOiAxNnB4OwogIHRyYW5zaXRpb246IDAuM3M7CiAgYm94LXNoYWRvdzogMCAwIDEwcHggdmFyKC0tbmVvbi1jb2xvcik7Cn0KCi5sb2dpbi1idG46aG92ZXIgewogIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgYm94LXNoYWRvdzogMCAwIDI1cHggdmFyKC0tbmVvbi1jb2xvcik7Cn0KCi5lcnJvci1tc2cgewogIGNvbG9yOiAjZmYzMzMzOwogIG1hcmdpbi10b3A6IDEwcHg7CiAgZm9udC1zaXplOiAxNHB4OwogIG1pbi1oZWlnaHQ6IDIwcHg7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5wcmVkaWN0aW9uLWJveCB7CiAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMHB4OyBsZWZ0OiAyMHB4OwogIHdpZHRoOiAyMDBweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7CiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbmVvbi1jb2xvcik7CiAgYm9yZGVyLXJhZGl1czogMTVweDsKICBwYWRkaW5nOiAxNXB4OwogIHotaW5kZXg6IDEwMDsKICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsMCwwLDAuOCksIDAgMCAxMHB4IHZhcigtLW5lb24tY29sb3IpOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGN1cnNvcjogZ3JhYjsKICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3M7Cn0KCi5wcmVkaWN0aW9uLWJveDphY3RpdmUgeyBjdXJzb3I6IGdyYWJiaW5nOyB9CgouYm94LWhlYWRlciB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogMTBweDsKICB3aWR0aDogMTAwJTsKICBtYXJnaW4tYm90dG9tOiAxMHB4OwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7CiAgcGFkZGluZy1ib3R0b206IDhweDsKfQoKLm1pbmktcHJvZmlsZSB7CiAgd2lkdGg6IDM1cHg7IGhlaWdodDogMzVweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmVvbi1jb2xvcik7Cn0KCi5ib3gtdGl0bGUgewogIGZvbnQtc2l6ZTogMTRweDsKICBmb250LXdlaWdodDogYm9sZDsKICBjb2xvcjogdmFyKC0tbmVvbi1jb2xvcik7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLnRpbWVyLWJhZGdlIHsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7CiAgcGFkZGluZzogNHB4IDEwcHg7CiAgYm9yZGVyLXJhZGl1czogMTJweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNGRkQ3MDA7CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZW9uLWNvbG9yKTsKfQoKLnJlc3VsdC1kaXNwbGF5IHsKICBmb250LXNpemU6IDI0cHg7CiAgZm9udC13ZWlnaHQ6IDkwMDsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIG1hcmdpbjogMTBweCAwOwogIHRleHQtc2hhZG93OiAwIDAgMTBweDsKICBwYWRkaW5nOiA1cHggMTVweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogIGJvcmRlci1yYWRpdXM6IDVweDsKICB3aWR0aDogMTAwJTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5iaWcgeyBjb2xvcjogIzAwZmY4ODsgdGV4dC1zaGFkb3c6IDAgMCAxNXB4ICMwMGZmODg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwyNTUsMTM2LDAuMyk7IH0KLnNtYWxsIHsgY29sb3I6ICNmZjMzMzM7IHRleHQtc2hhZG93OiAwIDAgMTVweCAjZmYzMzMzOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSw1MSw1MSwwLjMpOyB9Ci53YWl0IHsgY29sb3I6ICNhYWE7IH0KCi5iYWxscy1yb3cgewogIGRpc3BsYXk6IGZsZXg7IGdhcDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgbWFyZ2luLXRvcDogNXB4Owp9CgouYmFsbCB7CiAgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmVvbi1jb2xvcik7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiBib2xkOwogIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLW5lb24tY29sb3IpIDAlLCAjMDAwIDkwJSk7CiAgYm94LXNoYWRvdzogMCAwIDVweCB2YXIoLS1uZW9uLWNvbG9yKTsKfQoKLnRnLWJ0biB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDA4OGNjLCAjMDBhY2VkKTsKICBjb2xvcjogI2ZmZjsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgcGFkZGluZzogOHB4IDE1cHg7CiAgYm9yZGVyLXJhZGl1czogOHB4OwogIGZvbnQtc2l6ZTogMTBweDsKICBmb250LXdlaWdodDogYm9sZDsKICB3aWR0aDogMTAwJTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDEzNiwyMDQsMC41KTsKfQoKQGtleWZyYW1lcyBwb3BJbiB7CiAgZnJvbSB7IHRyYW5zZm9ybTogc2NhbGUoMC41KTsgb3BhY2l0eTogMDsgfQogIHRvIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQp9CkBrZXlmcmFtZXMgc2hha2UgewogIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9CiAgMjUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpOyB9CiAgNzUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7IH0KfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPGlmcmFtZSBpZD0iYmdGcmFtZSIgc3JjPSJodHRwczovL2Rrd2luOS5jb20vIy9yZWdpc3Rlcj9pbnZpdGF0aW9uQ29kZT01NTQ2MjEwODA0NSI+PC9pZnJhbWU+Cgo8ZGl2IGlkPSJsb2dpbk92ZXJsYXkiIGNsYXNzPSJwYXNzd29yZC1vdmVybGF5Ij4KICA8ZGl2IGNsYXNzPSJsb2dpbi1ib3giPgogICAgPGltZyBpZD0ibG9naW5Qcm9maWxlIiBzcmM9Imh0dHBzOi8vZmlyZWJhc2VzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3YwL2Iva2hlbG8tem9uZS03MGIxOC5hcHBzcG90LmNvbS9vL3NsaWRlciUyRklNR18yMDI2MDEyOF8xMTQ2NTZfNjE3LmpwZz9hbHQ9bWVkaWEmdG9rZW49ZDE5NWYwZjctNWQxMy00NjlhLWE2ZTAtODQxN2JlZThkNTYzIiBjbGFzcz0icHJvZmlsZS1pbWciPgogICAgPGRpdiBpZD0ibG9naW5UaXRsZSIgY2xhc3M9ImhhY2stdGl0bGUiPvCfkqXwnZCT8J2QkfCdkIDwnZCD8J2QhPCdkJEg8J2QkvCdkJTwnZCJ8J2QjvCdkI0g8J2QlfCdkIDwnZCI8J+SpTwvZGl2PgogICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0icGFzc0lucHV0IiBjbGFzcz0icGFzcy1pbnB1dCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiBhdXRvY29tcGxldGU9Im9mZiI+CiAgICA8YnV0dG9uIGlkPSJsb2dpbkJ0biIgY2xhc3M9ImxvZ2luLWJ0biI+TE9HSU4gTk9XPC9idXR0b24+CiAgICA8ZGl2IGlkPSJlcnJvck1zZyIgY2xhc3M9ImVycm9yLW1zZyI+PC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBpZD0icHJlZEJveCIgY2xhc3M9InByZWRpY3Rpb24tYm94IiBzdHlsZT0iZGlzcGxheTpub25lOyI+IAogIDxkaXYgY2xhc3M9ImJveC1oZWFkZXIiPgogICAgPGltZyBpZD0iYm94UHJvZmlsZSIgc3JjPSJodHRwczovL2ZpcmViYXNlc3RvcmFnZS5nb29nbGVhcGlzLmNvbS92MC9iL2toZWxvLXpvbmUtNzBiMTguYXBwc3BvdC5jb20vby9zbGlkZXIlMkZJTUdfMjAyNjAxMjhfMTE0NjU2XzYxNy5qcGc/YWx0PW1lZGlhJnRva2VuPWQxOTVmMGY3LTVkMTMtNDY5YS1hNmUwLTg0MTdiZWU4ZDU2MyIgY2xhc3M9Im1pbmktcHJvZmlsZSI+CiAgICA8ZGl2IGlkPSJib3hUaXRsZSIgY2xhc3M9ImJveC10aXRsZSI+8J+SpfCdkJPwnZCR8J2QgPCdkIPwnZCE8J2QkSDwnZCS8J2QlPCdkInwnZCO8J2QjSDwnZCV8J2QgPCdkIjwn5KlPC9kaXY+CiAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvOyBjb2xvcjp2YXIoLS1uZW9uLWNvbG9yKTsgY3Vyc29yOnBvaW50ZXI7IiBpZD0ibG9ja0J0biI+8J+UpTwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJ0aW1lci1iYWRnZSI+VElNRTogPHNwYW4gaWQ9InRpbWVyIj4tLTwvc3Bhbj5zPC9kaXY+CiAgCiAgPGRpdiBpZD0icmVzdWx0IiBjbGFzcz0icmVzdWx0LWRpc3BsYXkgd2FpdCI+V0FJVDwvZGl2PgogIAogIDxkaXYgY2xhc3M9ImJhbGxzLXJvdyI+CiAgICA8ZGl2IGlkPSJuMSIgY2xhc3M9ImJhbGwiPi08L2Rpdj4KICAgIDxkaXYgaWQ9Im4yIiBjbGFzcz0iYmFsbCI+LTwvZGl2PgogIDwvZGl2PgoKICA8YSBpZD0idGdMaW5rIiBocmVmPSJodHRwczovL3QubWUvREtXSU5WSVBTSUdOQUxTVUpPTlZBSSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0Zy1idG4iPkpPSU4gVEVMRUdSQU08L2E+CjwvZGl2PgoKPHNjcmlwdD4KY29uc3QgRklYRURfUEFTU1dPUkQgPSAiU1VKT04tQk9TUy1aRFFTUSI7Cgpjb25zdCBsb2dpbk92ZXJsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9naW5PdmVybGF5Jyk7CmNvbnN0IHBhc3NJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzSW5wdXQnKTsKY29uc3QgbG9naW5CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9naW5CdG4nKTsKY29uc3QgZXJyb3JNc2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJyb3JNc2cnKTsKCmxvZ2luT3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOyAvLyBmb3JjZSBzaG93IG92ZXJsYXkKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByZWRCb3gnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoKbG9naW5CdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjaGVja1Bhc3MpOwpwYXNzSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCAoZSkgPT4geyBpZihlLmtleSA9PT0gJ0VudGVyJykgY2hlY2tQYXNzKCkgfSk7CgpmdW5jdGlvbiBjaGVja1Bhc3MoKSB7CiAgaWYocGFzc0lucHV0LnZhbHVlID09PSBGSVhFRF9QQVNTV09SRCkgewogICAgbG9naW5PdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlZEJveCcpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd1bmxvY2tlZCcsICd0cnVlJyk7CiAgICBzdGFydEFJKCk7CiAgfSBlbHNlIHsKICAgIGVycm9yTXNnLnRleHRDb250ZW50ID0gIldST05HIFBBU1NXT1JEISI7CiAgICBwYXNzSW5wdXQudmFsdWUgPSAiIjsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sb2dpbi1ib3gnKS5zdHlsZS5hbmltYXRpb24gPSAnc2hha2UgMC40cyc7CiAgICBzZXRUaW1lb3V0KCgpPT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxvZ2luLWJveCcpLnN0eWxlLmFuaW1hdGlvbiA9ICcnLCA0MDApOwogIH0KfQoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2tCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd1bmxvY2tlZCcpOwogIGxvY2F0aW9uLnJlbG9hZCgpOwp9KTsKCmNvbnN0IGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkQm94Jyk7CmxldCBpc0RyYWdnaW5nID0gZmFsc2UsIHN0YXJ0WCwgc3RhcnRZLCBpbml0TGVmdCwgaW5pdFRvcDsKCmJveC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBzdGFydERyYWcpOwpib3guYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHN0YXJ0RHJhZywge3Bhc3NpdmU6ZmFsc2V9KTsKCmZ1bmN0aW9uIHN0YXJ0RHJhZyhlKSB7CiAgaWYoZS50YXJnZXQuY2xvc2VzdCgnYScpIHx8IGUudGFyZ2V0LmlkID09PSAnbG9ja0J0bicpIHJldHVybjsKICBpc0RyYWdnaW5nID0gdHJ1ZTsKICBjb25zdCBldnQgPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0gOiBlOwogIHN0YXJ0WCA9IGV2dC5jbGllbnRYOyBzdGFydFkgPSBldnQuY2xpZW50WTsKICBpbml0TGVmdCA9IGJveC5vZmZzZXRMZWZ0OyBpbml0VG9wID0gYm94Lm9mZnNldFRvcDsKICBib3guc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJzsKfQoKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdmVEcmFnKTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG1vdmVEcmFnLCB7cGFzc2l2ZTpmYWxzZX0pOwoKZnVuY3Rpb24gbW92ZURyYWcoZSkgewogIGlmKCFpc0RyYWdnaW5nKSByZXR1cm47CiAgY29uc3QgZXZ0ID0gZS50b3VjaGVzID8gZS50b3VjaGVzWzBdIDogZTsKICBib3guc3R5bGUubGVmdCA9IChpbml0TGVmdCArIChldnQuY2xpZW50WCAtIHN0YXJ0WCkpICsgJ3B4JzsKICBib3guc3R5bGUudG9wID0gKGluaXRUb3AgKyAoZXZ0LmNsaWVudFkgLSBzdGFydFkpKSArICdweCc7Cn0KCndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgKCkgPT4geyBpc0RyYWdnaW5nPWZhbHNlOyBib3guc3R5bGUuY3Vyc29yPSdncmFiJzsgfSk7CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsICgpID0+IHsgaXNEcmFnZ2luZz1mYWxzZTsgfSk7CgpmdW5jdGlvbiBzdGFydEFJKCkgewogIGNvbnN0IGFwaSA9ICJodHRwczovL2RyYXcuYXItbG90dGVyeTAxLmNvbS9XaW5Hby9XaW5Hb18zMFMvR2V0SGlzdG9yeUlzc3VlUGFnZS5qc29uIjsKICBsZXQgbGFzdElzc3VlID0gbnVsbDsKICBjb25zdCByZXNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsKICBjb25zdCBuMUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ24xJyk7CiAgY29uc3QgbjJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduMicpOwoKICBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7CiAgICBsZXQgcyA9IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RpbWVyJykudGV4dENvbnRlbnQgPSAzMCAtIChzICUgMzApOwoKICAgIHRyeSB7CiAgICAgIGxldCByZXMgPSBhd2FpdCBmZXRjaChhcGkgKyAnP3Q9JyArIERhdGUubm93KCkpOwogICAgICBsZXQganNvbiA9IGF3YWl0IHJlcy5qc29uKCk7CiAgICAgIGxldCBjdXJJc3N1ZSA9IGpzb24uZGF0YS5saXN0WzBdLmlzc3VlTnVtYmVyOwoKICAgICAgaWYobGFzdElzc3VlICE9PSBjdXJJc3N1ZSkgewogICAgICAgIGxhc3RJc3N1ZSA9IGN1cklzc3VlOwogICAgICAgIHJlc0VsLmNsYXNzTmFtZSA9ICJyZXN1bHQtZGlzcGxheSB3YWl0IjsKICAgICAgICByZXNFbC50ZXh0Q29udGVudCA9ICJDSEVDS0lORy4uLiI7CiAgICAgICAgbjFFbC50ZXh0Q29udGVudCA9ICItIjsgbjJFbC50ZXh0Q29udGVudCA9ICItIjsKCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBjb25zdCBpc0JpZyA9IE1hdGgucmFuZG9tKCkgPiAwLjU7CiAgICAgICAgICBjb25zdCByID0gKG1pbixtYXgpID0+IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoobWF4LW1pbisxKSttaW4pOwogICAgICAgICAgcmVzRWwudGV4dENvbnRlbnQgPSBpc0JpZyA/ICJCSUciIDogIlNNQUxMIjsKICAgICAgICAgIHJlc0VsLmNsYXNzTmFtZSA9IGlzQmlnID8gInJlc3VsdC1kaXNwbGF5IGJpZyIgOiAicmVzdWx0LWRpc3BsYXkgc21hbGwiOwogICAgICAgICAgbjFFbC50ZXh0Q29udGVudCA9IGlzQmlnID8gcig1LDkpIDogcigwLDQpOwogICAgICAgICAgbjJFbC50ZXh0Q29udGVudCA9IGlzQmlnID8gcig1LDkpIDogcigwLDQpOwogICAgICAgIH0sIDIwMDApOwogICAgICB9CiAgICB9IGNhdGNoKGUpIHt9CiAgfSwgMTAwMCk7Cn0KPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg=="; /* decode */ const html = decodeURIComponent(escape(atob(b64))); /* run as HTML */ document.open(); document.write(html); document.close();