document.writeln(utf8to16(strdecode("CjxzdHlsZT5ib2R5eyAgY29sb3I6I0ZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjMwcHg7fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWJveHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46OTZweCBhdXRvIDA7cGFkZGluZzoxODBweCA4NXB4IDIycHg7Ym9yZGVyLXJhZGl1czoxMHB4IDEwcHggMCAwO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjVweCA5cHggMTdweCByZ2JhKDEwMiwxMDIsMTAyLC43NSk7d2lkdGg6Mjg2cHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcn0KICAubGlua190ZXN0aW5nIC5hbGVydC1ib3ggcHttYXJnaW46MH0KICAubGlua190ZXN0aW5nIC5hbGVydC1jaXJjbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi01MHB4O2xlZnQ6MTExcHh9CiAgLmxpbmtfdGVzdGluZyAuYWxlcnQtc2VjLWNpcmNsZXtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1kYXNoYXJyYXk6NzM1O3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgMXMgbGluZWFyfQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LXNlYy10ZXh0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMHB4O2xlZnQ6MTkwcHg7d2lkdGg6NzZweDtjb2xvcjojMDAwO2ZvbnQtc2l6ZTo2OHB4fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LXNlYy11bml0e2ZvbnQtc2l6ZTozNHB4fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWJvZHl7bWFyZ2luOjM1cHggMDttYXJnaW4tYm90dG9tOjMwcHh9CiAgLmxpbmtfdGVzdGluZyAuYWxlcnQtaGVhZHtjb2xvcjojMjQyNDI0O2ZvbnQtc2l6ZToyOHB4fQo=")));
document.writeln(utf8to16(strdecode("ICAubGlua190ZXN0aW5nIC5hbGVydC1jb25jZW50e21hcmdpbjoyNXB4IDAgMTRweDtjb2xvcjojN2I3YjdiO2ZvbnQtc2l6ZToxOHB4fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWNvbmNlbnQgcHtsaW5lLWhlaWdodDoyN3B4fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWJ0bntkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZjU2NTY7aGVpZ2h0OjU1cHg7bGluZS1oZWlnaHQ6NTVweDt3aWR0aDoyODZweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToyMHB4O3RleHQtZGVjb3JhdGlvbjpub25lO2xldHRlci1zcGFjaW5nOjJweH0KICAubGlua190ZXN0aW5nIC5hbGVydC1idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmY1NjU2fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWZvb3RlcnttYXJnaW46MCBhdXRvO2hlaWdodDo0MnB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToxMHB4fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWZvb3Rlci1pY29ue2Zsb2F0OmxlZnR9CiAgLmxpbmtfdGVzdGluZyAuYWxlcnQtZm9vdGVyLXRleHR7ZmxvYXQ6bGVmdDtib3JkZXItbGVmdDoycHggc29saWQgI2VlZTtwYWRkaW5nOjNweCAwIDAgNXB4O2hlaWdodDo0MHB4O2NvbG9yOiMwYjg1Y2M7Zm9udC1zaXplOjEycHg7dGV4dC1hbGlnbjpsZWZ0fQogIC5saW5rX3Rlc3RpbmcgLmFsZXJ0LWZvb3Rlci10ZXh0IHB7Y29sb3I6IzdhN2E3YTtmb250LXNpemU6MjJweDtsaW5lLWhlaWdodDoxOHB4fTwvc3R5bGU+PGRpdiBjbGFzcz0ibGlua190ZXN0aW5nIj4KICA8ZGl2IGlkPSJqcy1hbGVydC1ib3giIGNsYXNzPSJhbGVydC1ib3giIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPgogICAgPHN2ZyBjbGFzcz0iYWxlcnQtY2lyY2xlIiB3aWR0aD0iMjM0IiBoZWlnaHQ9IjIzNCI+Cg==")));
document.writeln(utf8to16(strdecode("ICAgICAgPGNpcmNsZSBpZD0ianMtZnN0LWNpcmNsZSIgY3g9IjExNyIgY3k9IjExNyIgcj0iMTA4IiBmaWxsPSIjRkZGIiBzdHJva2U9IiNmZjU2NTYiIHN0cm9rZS13aWR0aD0iMTciIHN0eWxlPSJzdHJva2U6ICNmZjU2NTY7Ij48L2NpcmNsZT4KICAgICAgPGNpcmNsZSBpZD0ianMtc2VjLWNpcmNsZSIgY2xhc3M9ImFsZXJ0LXNlYy1jaXJjbGUiIGN4PSIxMTciIGN5PSIxMTciIHI9IjEwOCIgZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0iI0Y0RjFGMSIgc3Ryb2tlLXdpZHRoPSIxOCIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDExNyAxMTcpIiBzdHlsZT0ic3Ryb2tlLWRhc2hvZmZzZXQ6IDA7Ij48L2NpcmNsZT4KICAgICAgPHRleHQgY2xhc3M9ImFsZXJ0LXNlYy11bml0IiB4PSIxMDAiIHk9IjE3MiIgZmlsbD0iI0JEQkRCRCI+PC90ZXh0PgogICAgPC9zdmc+CiAgICA8ZGl2IGlkPSJqcy1zZWMtdGV4dCIgY2xhc3M9ImFsZXJ0LXNlYy10ZXh0IiBzdHlsZT0ibGVmdDogMTcwcHgiPjA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImFsZXJ0LWJvZHkiPgogICAgICA8ZGl2IGlkPSJqcy1hbGVydC1oZWFkIiBjbGFzcz0iYWxlcnQtaGVhZCI+5q2j5Zyo5a6J5YWo5qOA5rWLPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0LWNvbmNlbnQiPgogICAgICAgIDxwIGlkPSJwY29uIiBzdHlsZT0iY29sb3I6Z3JlZW4iPuato+WcqOmAgumFjeacgOS8mOe6v+i3rzxicj7or7fnqI3nrYk8L3A+CiAgICAgIDwvZGl2Pgo=")));
document.writeln(utf8to16(strdecode("ICAgICAgPGEgaWQ9ImpzLWFsZXJ0LWJ0biIgY2xhc3M9ImFsZXJ0LWJ0biIgdGFyZ2V0PSJfc2VsZiIgaHJlZj0iIyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZjU2NTY7Ij7nq4vljbPov5vlhaU8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImFsZXJ0LWZvb3RlciBjbGVhcmZpeCI+PC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPHNjcmlwdD4KICAgIGxldCBqdW1wX2RvbWFpbnMgPSBbImh0dHBzOlwvXC9jb2VvamgueXh2Z3Nja3B2dmJoZ2l3cy53b3JrOjE2NjQ0IiwiaHR0cHM6XC9cL3Nuc2Zjcy52b292am9ia2Vyem5rY3ZyLndvcms6MTY2MjIiXTsKICAgIGp1bXBfZG9tYWlucyA9IHNodWZmbGVBcnJheShqdW1wX2RvbWFpbnMpOwogICAgbGV0IGNoZWNrZWRfZG9tYWlucyA9IFtdOwo=")));
document.writeln(utf8to16(strdecode("CiAgICBmdW5jdGlvbiBzaHVmZmxlQXJyYXkoYXJyYXkpIHsKICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgewogICAgICAgICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7CiAgICAgICAgICAgIFthcnJheVtpXSwgYXJyYXlbal1dID0gW2FycmF5W2pdLCBhcnJheVtpXV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheTsKICAgIH0KICAKICAgIGZ1bmN0aW9uIGNoZWNrRG9tYWluKGluZGV4KSB7Cg==")));
document.writeln(utf8to16(strdecode("ICAgICAgICBpZiAoaW5kZXggPj0ganVtcF9kb21haW5zLmxlbmd0aCkgewogICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5omA5pyJ5Z+f5ZCN6YO954Sh5rOV6Kiq5ZWPJyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGxldCBqdW1wX2RvbWFpbiA9IGp1bXBfZG9tYWluc1tpbmRleF07CiAgICAgICAgaWYgKCEvXihodHRwOlwvXC98aHR0cHM6XC9cLykvaS50ZXN0KGp1bXBfZG9tYWluKSkgewogICAgICAgICAgICBqdW1wX2RvbWFpbiA9ICdodHRwOi8vJyArIGp1bXBfZG9tYWluOwogICAgICAgIH0KICAgICAgICBjb25zb2xlLmxvZyhqdW1wX2RvbWFpbiArICcvY2hlY2suaHRtbCcpCg==")));
document.writeln(utf8to16(strdecode("CiAgICAgICAgbGV0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAgICAgIHhoci5vcGVuKCdHRVQnLCBqdW1wX2RvbWFpbiArICcvY2hlY2suaHRtbCcsIHRydWUpOwogICAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkgewogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApIHsKICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIAl3aW5kb3cubG9jYXRpb24uaHJlZiA9IGp1bXBfZG9tYWluOwogICAgICAgICAgICAgICAgCX0sIDIwMDApOwogICAgICAgICAgICAgICAgfSBlbHNlIHsK")));
document.writeln(utf8to16(strdecode("ICAgICAgICAgICAgICAgICAgICBjaGVja2VkX2RvbWFpbnMucHVzaChqdW1wX2RvbWFpbik7CiAgCQkJCQkvLyBjb25zb2xlLmxvZygn5bey5qqi5ris5YiX6KGoJyxjaGVja2VkX2RvbWFpbnMpOwogICAgICAgICAgICAgICAgICAgIGNoZWNrRG9tYWluKGluZGV4ICsgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHhoci5zZW5kKCk7CiAgICB9CgogICAgY2hlY2tEb21haW4oMCk7Cg==")));
document.writeln(utf8to16(strdecode("CiAgICB2YXIgdG90YWxUaW1lID0gMjsKICAgIHZhciBzdHIxID0gIuato+WcqOWuieWFqOajgOa1iyI7CiAgICB2YXIgc3RyMiA9ICLpgILphY3mnIDkvJjnur/ot68iOwogICAgdmFyIHBjb24gPSAi5q2j5Zyo6YCC6YWN5pyA5LyY57q/6LevPGJyPuivt+eojeetiSI7CiAgICB2YXIgYnRuVGV4dCA9ICLnq4vljbPov5vlhaUiOwogICAgdmFyIGJvZHlXaWR0aCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7CiAgICB2YXIgYm94V2lkdGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgianMtYWxlcnQtYm94Iikub2Zmc2V0V2lkdGg7CiAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImpzLWFsZXJ0LWJ0biIpOwogICAgaWYgKGJvZHlXaWR0aCA8IGJveFdpZHRoKXsK")));
document.writeln(utf8to16(strdecode("ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgianMtYWxlcnQtYm94Iikuc3R5bGUubGVmdCA9IC1NYXRoLnJvdW5kKChib3hXaWR0aCAtIGJvZHlXaWR0aCkgLyAyKSArICJweCI7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgianMtYWxlcnQtYm94Iikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGNvbiIpLmlubmVySFRNTCA9IHBjb247CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgianMtYWxlcnQtaGVhZCIpLmlubmVySFRNTCA9IHN0cjE7CiAgICBidG4uaW5uZXJIVE1MID0gYnRuVGV4dDsKICAgIHZhciBudW0gPSAwOwogICAgdmFyIHNwYW4xID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImpzLXNlYy10ZXh0Iik7CiAgICB2YXIgc3BhbjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgianMtc2VjLWNpcmNsZSIpOwogICAgc3BhbjIuc3R5bGUuc3Ryb2tlRGFzaG9mZnNldCA9ICI3MzUiOwo=")));
document.writeln(utf8to16(strdecode("ICAgIHZhciBzcGFuMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJqcy1mc3QtY2lyY2xlIik7CiAgICB2YXIgdCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCl7CiAgICAgICAgbnVtKys7CiAgICAgICAgc3BhbjEuaW5uZXJUZXh0ID0gbnVtOwogICAgICAgIGlmKG51bSA+PSAxMDApewogICAgICAgICAgICBjbGVhckludGVydmFsKHQpOwogICAgICAgICAgICBzcGFuMy5zdHlsZS5zdHJva2UgPSAicmdiKDI2LCAxNzMsIDI1KSI7CiAgICAgICAgICAgIGJ0bi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiKDI2LCAxNzMsIDI1KSI7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJqcy1hbGVydC1oZWFkIikuaW5uZXJIVE1MID0gc3RyMjsKICAgICAgICB9Cg==")));
document.writeln(utf8to16(strdecode("ICAgIH0sIHRvdGFsVGltZSk7Cgo8L3NjcmlwdD4KCgo8c2NyaXB0Pgp2YXIgX2htdCA9IF9obXQgfHwgW107CihmdW5jdGlvbigpIHsKICB2YXIgaG0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICBobS5zcmMgPSAiaHR0cHM6Ly9obS5iYWlkdS5jb20vaG0uanM/ZDQ5ZDEwNDEwZGVlOWQyYWRiN2I3MTZmYjBmZDZjYWIiOwo=")));
document.writeln(utf8to16(strdecode("ICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsgCiAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSwgcyk7Cn0pKCk7Cjwvc2NyaXB0PgoKCg==")));
