name=文件管理器
team=织梦官方
time=2008-11-13
email=admin@dedecms.com
url=http://www.dedecms.com
hash=1f35620fb42d452fa2bdc1dee1690f92
indexname=
indexurl=
ismember=0
autosetup=1
autodel=1
lang=gb2312
moduletype=plus
PHA+54mI5p2D5omA5pyJICZjb3B5OzIwMDMtMjAyMe+8jERlZGVDTVMuY29tIOS/neeVmeaJgOacieadg+WIqeOAgjwvcD4NCjxwPuaEn+iwouaCqOmAieaLqee7h+aipuWGheWuueeuoeeQhuezu+e7n++8iOS7peS4i+eugOensERlZGVDTVPvvInvvIxEZWRlQ01T5piv5Lit5bCP5Z6L6Zeo5oi3572R56uZ5bu66K6+6Kej5Yaz5pa55qGI77yM5Z+65LqOIFBIUCArIE15U1FMIOeahOaKgOacr+W8gOWPke+8jOWFqOmDqOa6kOeggeW8gOaUvuOAgjwvcD4NCjxwPkRlZGVDTVPlrpjmlrnnvZHnq5nvvJogd3d3LmRlZGVjbXMuY29tPC9wPg0KPHA+5Li65LqG5L2/5oKo5q2j56Gu5bm25ZCI5rOV5Zyw5L2/55So5pys6L2v5Lu277yM6K+35oKo5Zyo5L2/55So5YmN5Yqh5b+F6ZiF6K+75riF5qWa5LiL6Z2i55qE5Y2P6K6u5p2h5qy+77yaPC9wPg0KPHA+DQo8c3Ryb25nPuS4gOOAgeacrOaOiOadg+WNj+iurumAgueUqOS4lOS7hemAgueUqOS6jiBEZWRlQ01TIDUueC54IOeJiOacrDwvc3Ryb25nPg0KPC9wPg0KPHA+DQo8c3Ryb25nPuS6jOOAgeWNj+iuruiuuOWPr+eahOadg+WIqTwvc3Ryb25nPg0KPGJyLz4xLuaCqOWPr+S7peWcqOWujOWFqOmBteWuiOacrOacgOe7iOeUqOaIt+aOiOadg+S9v+eUqOWNj+iurueahOWfuuehgOS4iu+8jOWwhuacrOi9r+S7tuW6lOeUqOS6jumdnuWVhuS4mueUqOmAlO+8jOiAjOS4jeW/heaUr+S7mOi9r+S7tueJiOadg+aOiOadg+i0ueeUqOOAgg0KPGJyLz4yLuaCqOWPr+S7peWcqOWNj+iuruinhOWumueahOe6puadn+WSjOmZkOWItuiMg+WbtOWGheS/ruaUuSBEZWRlQ01TIOa6kOS7o+eggeaIlueVjOmdoumjjuagvOS7pemAguW6lOaCqOeahOe9keermeimgeaxguOAgg0KPGJyLz4zLuaCqOaLpeacieS9v+eUqOacrOi9r+S7tuaehOW7uueahOe9keermeWFqOmDqOWGheWuueaJgOacieadg++8jOW5tueLrOeri+aJv+aLheS4jui/meS6m+WGheWuueeahOebuOWFs+azleW+i+S5ieWKoeOAgg0KPGJyLz40LuiOt+W+l+WVhuS4muaOiOadg+S5i+WQju+8jOaCqOWPr+S7peWwhuacrOi9r+S7tuW6lOeUqOS6juWVhuS4mueUqOmAlO+8jOWQjOaXtuS+neaNruaJgOi0reS5sOeahOaOiOadg+exu+Wei+S4reehruWumueahOaKgOacr+aUr+aMgeWGheWuue+8jOiHqui0reS5sOaXtuWIu+i1t++8jOWcqOaKgOacr+aUr+aMgeacn+mZkOWGheaLpeaciemAmui/h+aMh+WumueahOaWueW8j+iOt+W+l+aMh+WumuiMg+WbtOWGheeahOaKgOacr+aUr+aMgeacjeWKoeOAguWVhuS4muaOiOadg+eUqOaIt+S6q+acieWPjeaYoOWSjOaPkOWHuuaEj+ingeeahOadg+WKm++8jOebuOWFs+aEj+ingeWwhuiiq+S9nOS4uummluimgeiAg+iZke+8jOS9huayoeacieS4gOWumuiiq+mHh+e6s+eahOaJv+ivuuaIluS/neivgeOAgg0KPC9wPg0KPHA+DQo8c3Ryb25nPuS4ieOAgeWNj+iuruinhOWumueahOe6puadn+WSjOmZkOWItjwvc3Ryb25nPg0KPGJyLz4xLuacquiOt+WVhuS4muaOiOadg+S5i+WJje+8jOS4jeW+l+WwhuacrOi9r+S7tueUqOS6juWVhuS4mueUqOmAlO+8iOWMheaLrOS9huS4jemZkOS6juS8geS4mue9keermeOAgee7j+iQpeaAp+e9keermeOAgeS7peiQpeWIqeS4uuebrueahOaIluWunueOsOebiOWIqeeahOe9keerme+8ieOAgui0reS5sOWVhuS4muaOiOadg+ivt+eZu+W9lXd3dy5kZXNkZXYuY27kuobop6PmnIDmlrDor7TmmI7jgIINCjxici8+Mi7mnKrnu4/lrpjmlrnorrjlj6/vvIzkuI3lvpflr7nmnKzova/ku7bmiJbkuI7kuYvlhbPogZTnmoTllYbkuJrmjojmnYPov5vooYzlh7rnp5/jgIHlh7rllK7jgIHmirXmirzmiJblj5HmlL7lrZDorrjlj6/or4HjgIINCjxici8+My7kuI3nrqHmgqjnmoTnvZHnq5nmmK/lkKbmlbTkvZPkvb/nlKggRGVkZUNNUyDvvIzov5jmmK/pg6jliIbmoI/nm67kvb/nlKggRGVkZUNNU++8jOWcqOaCqOS9v+eUqOS6hiBEZWRlQ01TIOeahOe9keermeS4u+mhteS4iuW/hemhu+WKoOS4iiBEZWRlQ01TIOWumOaWuee9keWdgCh3d3cuZGVkZWNtcy5jb20p55qE6ZO+5o6l5Y+K5L+d55WZ54mI5p2D5L+h5oGv44CCDQo8YnIvPjQu5pyq57uP5a6Y5pa56K645Y+v77yM56aB5q2i5ZyoIERlZGVDTVMg55qE5pW05L2T5oiW5Lu75L2V6YOo5YiG5Z+656GA5LiK5Lul5Y+R5bGV5Lu75L2V5rS+55Sf54mI5pys44CB5L+u5pS554mI5pys5oiW56ys5LiJ5pa554mI5pys55So5LqO6YeN5paw5YiG5Y+R44CCDQo8YnIvPjUu5aaC5p6c5oKo5pyq6IO96YG15a6I5pys5Y2P6K6u55qE5p2h5qy+77yM5oKo55qE5o6I5p2D5bCG6KKr57uI5q2i77yM5omA6KKr6K645Y+v55qE5p2D5Yip5bCG6KKr5pS25Zue77yM5bm25om/5ouF55u45bqU5rOV5b6L6LSj5Lu744CCDQo8L3A+DQo8cD4NCjxzdHJvbmc+5Zub44CB5pyJ6ZmQ5ouF5L+d5ZKM5YWN6LSj5aOw5piOPC9zdHJvbmc+DQo8YnIvPjEu5pys6L2v5Lu25Y+K5omA6ZmE5bim55qE5paH5Lu25piv5L2c5Li65LiN5o+Q5L6b5Lu75L2V5piO56Gu55qE5oiW6ZqQ5ZCr55qE6LWU5YG/5oiW5ouF5L+d55qE5b2i5byP5o+Q5L6b55qE44CCDQo8YnIvPjIu55So5oi35Ye65LqO6Ieq5oS/6ICM5L2/55So5pys6L2v5Lu277yM5oKo5b+F6aG75LqG6Kej5L2/55So5pys6L2v5Lu255qE6aOO6Zmp77yM5Zyo5bCa5pyq6LSt5Lmw5Lqn5ZOB5oqA5pyv5pyN5Yqh5LmL5YmN77yM5oiR5Lus5LiN5om/6K+65a+55YWN6LS555So5oi35o+Q5L6b5Lu75L2V5b2i5byP55qE5oqA5pyv5pSv5oyB44CB5L2/55So5ouF5L+d77yM5Lmf5LiN5om/5ouF5Lu75L2V5Zug5L2/55So5pys6L2v5Lu26ICM5Lqn55Sf6Zeu6aKY55qE55u45YWz6LSj5Lu744CCDQo8YnIvPjMu55S15a2Q5paH5pys5b2i5byP55qE5o6I5p2D5Y2P6K6u5aaC5ZCM5Y+M5pa55Lmm6Z2i562+572y55qE5Y2P6K6u5LiA5qC377yM5YW35pyJ5a6M5YWo55qE5ZKM562J5ZCM55qE5rOV5b6L5pWI5Yqb44CC5oKo5LiA5pem5byA5aeL56Gu6K6k5pys5Y2P6K6u5bm25a6J6KOFRGVkZUNNU++8jOWNs+iiq+inhuS4uuWujOWFqOeQhuino+W5tuaOpeWPl+acrOWNj+iurueahOWQhOmhueadoeasvu+8jOWcqOS6q+acieS4iui/sOadoeasvuaOiOS6iOeahOadg+WKm+eahOWQjOaXtu+8jOWPl+WIsOebuOWFs+eahOe6puadn+WSjOmZkOWItuOAguWNj+iuruiuuOWPr+iMg+WbtOS7peWklueahOihjOS4uu+8jOWwhuebtOaOpei/neWPjeacrOaOiOadg+WNj+iuruW5tuaehOaIkOS+teadg++8jOaIkeS7rOacieadg+maj+aXtue7iOatouaOiOadg++8jOi0o+S7pOWBnOatouaNn+Wus++8jOW5tuS/neeVmei/veeptuebuOWFs+i0o+S7u+eahOadg+WKm+OAgg0KPGJyLz40LuWmguaenOacrOi9r+S7tuW4puacieWFtuWug+i9r+S7tueahOaVtOWQiEFQSeekuuiMg+S+i+WtkOWMhe+8jOi/meS6m+aWh+S7tueJiOadg+S4jeWxnuS6juacrOi9r+S7tuWumOaWue+8jOW5tuS4lOi/meS6m+aWh+S7tuaYr+ayoee7j+i/h+aOiOadg+WPkeW4g+eahO+8jOivt+WPguiAg+ebuOWFs+i9r+S7tueahOS9v+eUqOiuuOWPr+WQiOazleeahOS9v+eUqOOAgg0KPC9wPg0KPHA+5Y2P6K6u5Y+R5biD5pe26Ze077yaMjAwOOW5tDjmnIgyMOaXpSBCeSBEZWRlQ01TLmNvbTwvcD4=
SU5TRVJUIElOVE8gYCNAX19wbHVzYCAoYHBsdXNuYW1lYCwgYG1lbnVzdHJpbmdgLCBgbWFpbnVybGAsIGB3cml0ZXJgLCBgaXNzaG93YCwgYGZpbGVsaXN0YCkgVkFMVUVTICgnzsS8/rncwO3G9ycsICc8bTppdGVtIG5hbWU9JyfOxLz+udzA7cb3JycgbGluaz0nJ2ZpbGVfbWFuYWdlX21haW4ucGhwJycgcmFuaz0nJ3BsdXNfzsS8/rncwO3G9ycnIHRhcmdldD0nJ21haW4nJyAvPicsICcnLCAn1q/Dzs3FttMnLCAxLCAnJyk7
RGVsZXRlIEZyb20gYCNAX19wbHVzYCB3aGVyZSBwbHVzbmFtZT0nzsS8/rncwO3G9yc7
file_manage_control.php
file_manage_main.php
file_manage_view.php
file_pic_view.php
templets/file_edit.htm
templets/file_manage_main.htm
templets/file_pic_view.htm
PD9waHANCi8qKg0KICogzsS8/rncwO2/2NbGDQogKg0KICogQHZlcnNpb24gICAgICAgICRJZDogZmlsZV9tYW5hZ2VfY29udHJvbC5waHAgMSA4OjQ4IDIwMTDE6jfUwjEzyNVaIHRpYW55YSAkDQogKiBAcGFja2FnZSAgICAgICAgRGVkZUNNUy5BZG1pbmlzdHJhdG9yDQogKiBAY29weXJpZ2h0ICAgICAgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAxMCwgRGVzRGV2LCBJbmMuDQogKiBAbGljZW5zZSAgICAgICAgaHR0cDovL2hlbHAuZGVkZWNtcy5jb20vdXNlcnNndWlkZS9saWNlbnNlLmh0bWwNCiAqIEBsaW5rICAgICAgICAgICBodHRwOi8vd3d3LmRlZGVjbXMuY29tDQogKi8NCnJlcXVpcmUoZGlybmFtZShfX0ZJTEVfXykuIi9jb25maWcucGhwIik7DQpDaGVja1B1cnZpZXcoJ3BsdXNfzsS8/rncwO3G9ycpOw0KcmVxdWlyZShERURFSU5DLiIvb3h3aW5kb3cuY2xhc3MucGhwIik7DQpyZXF1aXJlX29uY2UoREVERUFETUlOLicvZmlsZV9jbGFzcy5waHAnKTsNCiRhY3RpdmVwYXRoID0gc3RyX3JlcGxhY2UoIi4uIiwgIiIsICRhY3RpdmVwYXRoKTsNCiRhY3RpdmVwYXRoID0gcHJlZ19yZXBsYWNlKCIjXlwvezEsfSMiLCAiLyIsICRhY3RpdmVwYXRoKTsNCmlmKCRhY3RpdmVwYXRoID09ICIvIikgJGFjdGl2ZXBhdGggPSAiIjsNCmlmKCRhY3RpdmVwYXRoID09ICIiKSAkaW5wYXRoID0gJGNmZ19iYXNlZGlyOw0KZWxzZSAkaW5wYXRoID0gJGNmZ19iYXNlZGlyLiRhY3RpdmVwYXRoOw0KDQovL87EvP653MDtxve9u7ul0+vC37ytv9jWxs7EvP4NCiRmbW0gPSBuZXcgRmlsZU1hbmFnZW1lbnQoKTsNCiRmbW0tPkluaXQoKTsNCg0KLyotLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIF9fcmVuYW1lKCk7DQotLS0tLS0tLS0tLS0tLS0tKi8NCmlmKCRmbWRvPT0icmVuYW1lIikNCnsNCiAgICAkZm1tLT5SZW5hbWVGaWxlKCRvbGRmaWxlbmFtZSwkbmV3ZmlsZW5hbWUpOw0KfQ0KDQovL9DCvajEv8K8DQoNCi8qLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBfX25ld2RpcigpOw0KLS0tLS0tLS0tLS0tLS0tLSovDQplbHNlIGlmKCRmbWRvPT0ibmV3ZGlyIikNCnsNCiAgICAkZm1tLT5OZXdEaXIoJG5ld3BhdGgpOw0KfQ0KDQovL9LGtq/OxLz+DQoNCi8qLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBfX21vdmUoKTsNCi0tLS0tLS0tLS0tLS0tLS0qLw0KZWxzZSBpZigkZm1kbz09Im1vdmUiKQ0Kew0KICAgICRmbW0tPk1vdmVGaWxlKCRmaWxlbmFtZSwkbmV3cGF0aCk7DQp9DQoNCi8vyb6z/c7EvP4NCg0KLyotLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIF9fZGVsZmlsZSgpOw0KLS0tLS0tLS0tLS0tLS0tLSovDQplbHNlIGlmKCRmbWRvPT0iZGVsIikNCnsNCiAgICAkZm1tLT5EZWxldGVGaWxlKCRmaWxlbmFtZSk7DQp9DQoNCi8vzsS8/rHgvK0NCg0KLyotLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIF9fc2F2ZUVkaXQoKTsNCi0tLS0tLS0tLS0tLS0tLS0qLw0KZWxzZSBpZigkZm1kbz09ImVkaXQiKQ0Kew0KICAgICRmaWxlbmFtZSA9IHN0cl9yZXBsYWNlKCIuLiIsICIiLCAkZmlsZW5hbWUpOw0KICAgICRmaWxlID0gIiRjZmdfYmFzZWRpciRhY3RpdmVwYXRoLyRmaWxlbmFtZSI7DQogICAgJHN0ciA9IHN0cmlwc2xhc2hlcygkc3RyKTsNCiAgICAkZnAgPSBmb3BlbigkZmlsZSwgInciKTsNCiAgICBmcHV0cygkZnAsICRzdHIpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIGlmKGVtcHR5KCRiYWNrdXJsKSkNCiAgICB7DQogICAgICAgIFNob3dNc2coIrPJuaaxo7Tm0ru49s7EvP6joSIsImZpbGVfbWFuYWdlX21haW4ucGhwP2FjdGl2ZXBhdGg9JGFjdGl2ZXBhdGgiKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgU2hvd01zZygis8m5prGjtObOxLz+o6EiLCRiYWNrdXJsKTsNCiAgICB9DQogICAgZXhpdCgpOw0KfQ0KLyoNCs7EvP6x4Lyto6y/ycrTu6/Eo8q9DQpmdW5jdGlvbiBfX3NhdmVFZGl0VmlldygpOw0KZWxzZSBpZigkZm1kbz09ImVkaXR2aWV3IikNCnsNCiAgICAkZmlsZW5hbWUgPSBzdHJfcmVwbGFjZSgiLi4iLCIiLCRmaWxlbmFtZSk7DQogICAgJGZpbGUgPSAiJGNmZ19iYXNlZGlyJGFjdGl2ZXBhdGgvJGZpbGVuYW1lIjsNCiAgICAkc3RyID0gZXJlZ2lfcmVwbGFjZSgnJnF1b3Q7JywnXFwiJywkc3RyKTsNCiAgICAkc3RyID0gc3RyaXBzbGFzaGVzKCRzdHIpOw0KICAgICRmcCA9IGZvcGVuKCRmaWxlLCJ3Iik7DQogICAgZnB1dHMoJGZwLCRzdHIpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIGlmKGVtcHR5KCRiYWNrdXJsKSkNCiAgICB7DQogICAgICAgICRiYWNrdXJsID0gImZpbGVfbWFuYWdlX21haW4ucGhwP2FjdGl2ZXBhdGg9JGFjdGl2ZXBhdGgiOw0KICAgIH0NCiAgICBTaG93TXNnKCKzybmmsaO05s7EvP6joSIsJGJhY2t1cmwpOw0KICAgIGV4aXQoKTsNCn0NCiovDQovL87EvP7Jz7SrDQovKi0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gX191cGxvYWQoKTsNCi0tLS0tLS0tLS0tLS0tLS0qLw0KZWxzZSBpZigkZm1kbz09InVwbG9hZCIpDQp7DQogICAgJGo9MDsNCiAgICBmb3IoJGk9MTsgJGk8PTUwOyAkaSsrKQ0KICAgIHsNCiAgICAgICAgJHVwZmlsZSA9ICJ1cGZpbGUiLiRpOw0KICAgICAgICAkdXBmaWxlX25hbWUgPSAidXBmaWxlIi4kaS4iX25hbWUiOw0KICAgICAgICBpZighaXNzZXQoJHskdXBmaWxlfSkgfHwgIWlzc2V0KCR7JHVwZmlsZV9uYW1lfSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICB9DQogICAgICAgICR1cGZpbGUgPSAkeyR1cGZpbGV9Ow0KICAgICAgICAkdXBmaWxlX25hbWUgPSAkeyR1cGZpbGVfbmFtZX07DQogICAgICAgIGlmKGlzX3VwbG9hZGVkX2ZpbGUoJHVwZmlsZSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmKCFmaWxlX2V4aXN0cygkY2ZnX2Jhc2VkaXIuJGFjdGl2ZXBhdGguIi8iLiR1cGZpbGVfbmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbW92ZV91cGxvYWRlZF9maWxlKCR1cGZpbGUsICRjZmdfYmFzZWRpci4kYWN0aXZlcGF0aC4iLyIuJHVwZmlsZV9uYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIEB1bmxpbmsoJHVwZmlsZSk7DQogICAgICAgICAgICAkaisrOw0KICAgICAgICB9DQogICAgfQ0KICAgIFNob3dNc2coIrPJuabJz7SrICRqILj2zsS8/rW9OiAkYWN0aXZlcGF0aCIsImZpbGVfbWFuYWdlX21haW4ucGhwP2FjdGl2ZXBhdGg9JGFjdGl2ZXBhdGgiKTsNCiAgICBleGl0KCk7DQp9DQoNCi8vv9W85LzssukNCmVsc2UgaWYoJGZtZG89PSJzcGFjZSIpDQp7DQogICAgaWYoJGFjdGl2ZXBhdGg9PSIiKQ0KICAgIHsNCiAgICAgICAgJGVjcGF0aCA9ICLL+dPQxL/CvCI7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgICRlY3BhdGggPSAkYWN0aXZlcGF0aDsNCiAgICB9DQogICAgJHRpdGxlaW5mbyA9ICLEv8K8IDxhIGhyZWY9J2ZpbGVfbWFuYWdlX21haW4ucGhwP2FjdGl2ZXBhdGg9JGFjdGl2ZXBhdGgnPjxiPjx1PiRlY3BhdGg8L3U+PC9iPjwvYT4gv9W85Mq508PXtL/2o7o8YnIvPiI7DQogICAgJHdpbnRpdGxlID0gIs7EvP653MDtIjsNCiAgICAkd2Vjb21lX2luZm8gPSAizsS8/rncwO06Or/VvOS089ChvOyy6SBbPGEgaHJlZj0nZmlsZV9tYW5hZ2VfbWFpbi5waHA/YWN0aXZlcGF0aD0kYWN0aXZlcGF0aCc+zsS8/uSvwMDG9zwvYT5dPC9hPiI7DQogICAgJGFjdGl2ZXBhdGg9JGNmZ19iYXNlZGlyLiRhY3RpdmVwYXRoOw0KICAgICRzcGFjZSA9IG5ldyBTcGFjZVVzZTsNCiAgICAkc3BhY2UtPmNoZWNrc2l6ZSgkYWN0aXZlcGF0aCk7DQogICAgJHRvdGFsPSRzcGFjZS0+dG90YWxzaXplOw0KICAgICR0b3RhbGtiPSRzcGFjZS0+c2V0a2IoJHRvdGFsKTsNCiAgICAkdG90YWxtYj0kc3BhY2UtPnNldG1iKCR0b3RhbCk7DQogICAgJHdpbiA9IG5ldyBPeFdpbmRvdygpOw0KICAgICR3aW4tPkluaXQoIiIsImpzL2JsYW5rLmpzIiwiUE9TVCIpOw0KICAgICR3aW4tPkFkZFRpdGxlKCR0aXRsZWluZm8pOw0KICAgICR3aW4tPkFkZE1zZ0l0ZW0oIqGhoaEkdG90YWxtYiBNPGJyLz6hoaGhJHRvdGFsa2IgS0I8YnIvPqGhoaEkdG90YWwg19a92iIpOw0KICAgICR3aW5mb3JtID0gJHdpbi0+R2V0V2luZG93KCIiKTsNCiAgICAkd2luLT5EaXNwbGF5KCk7DQp9
PD9waHANCi8qKg0KICogzsS8/rncwO3G9w0KICoNCiAqIEB2ZXJzaW9uICAgICAgICAkSWQ6IGZpbGVfbWFuYWdlX21haW4ucGhwIDEgODo0OCAyMDEwxOo31MIxM8jVWiB0aWFueWEgJA0KICogQHBhY2thZ2UgICAgICAgIERlZGVDTVMuQWRtaW5pc3RyYXRvcg0KICogQGNvcHlyaWdodCAgICAgIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMTAsIERlc0RldiwgSW5jLg0KICogQGxpY2Vuc2UgICAgICAgIGh0dHA6Ly9oZWxwLmRlZGVjbXMuY29tL3VzZXJzZ3VpZGUvbGljZW5zZS5odG1sDQogKiBAbGluayAgICAgICAgICAgaHR0cDovL3d3dy5kZWRlY21zLmNvbQ0KICovDQpyZXF1aXJlKGRpcm5hbWUoX19GSUxFX18pLiIvY29uZmlnLnBocCIpOw0KQ2hlY2tQdXJ2aWV3KCdwbHVzX87EvP653MDtxvcnKTsNCmlmKCFpc3NldCgkYWN0aXZlcGF0aCkpICRhY3RpdmVwYXRoPSRjZmdfY21zcGF0aDsNCg0KJGlucGF0aCA9ICIiOw0KJGFjdGl2ZXBhdGggPSBzdHJfcmVwbGFjZSgiLi4iLCAiIiwgJGFjdGl2ZXBhdGgpOw0KJGFjdGl2ZXBhdGggPSBwcmVnX3JlcGxhY2UoIiNeXC97MSx9IyIsICIvIiwgJGFjdGl2ZXBhdGgpOw0KaWYoJGFjdGl2ZXBhdGggPT0gIi8iKSAkYWN0aXZlcGF0aCA9ICIiOw0KDQppZigkYWN0aXZlcGF0aCA9PSAiIikgJGlucGF0aCA9ICRjZmdfYmFzZWRpcjsNCmVsc2UgJGlucGF0aCA9ICRjZmdfYmFzZWRpci4kYWN0aXZlcGF0aDsNCg0KJGFjdGl2ZXVybCA9ICRhY3RpdmVwYXRoOw0KaWYocHJlZ19tYXRjaCgiIyIuJGNmZ190ZW1wbGV0c19kaXIuIiNpIiwgJGFjdGl2ZXBhdGgpKQ0Kew0KICAgICRpc3RlbXBsZXRzID0gVFJVRTsNCn0NCmVsc2UNCnsNCiAgICAkaXN0ZW1wbGV0cyA9IEZBTFNFOw0KfQ0KaW5jbHVkZSBEZWRlSW5jbHVkZSgndGVtcGxldHMvZmlsZV9tYW5hZ2VfbWFpbi5odG0nKTs=
PD9waHANCi8qKg0KICogzsS8/rLpv7QNCiAqDQogKiBAdmVyc2lvbiAgICAgICAgJElkOiBmaWxlX21hbmFnZV92aWV3LnBocCAxIDg6NDggMjAxMMTqN9TCMTPI1VogdGlhbnlhICQNCiAqIEBwYWNrYWdlICAgICAgICBEZWRlQ01TLkFkbWluaXN0cmF0b3INCiAqIEBjb3B5cmlnaHQgICAgICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDEwLCBEZXNEZXYsIEluYy4NCiAqIEBsaWNlbnNlICAgICAgICBodHRwOi8vaGVscC5kZWRlY21zLmNvbS91c2Vyc2d1aWRlL2xpY2Vuc2UuaHRtbA0KICogQGxpbmsgICAgICAgICAgIGh0dHA6Ly93d3cuZGVkZWNtcy5jb20NCiAqLw0KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiIvY29uZmlnLnBocCIpOw0KQ2hlY2tQdXJ2aWV3KCdwbHVzX87EvP653MDtxvcnKTsNCnJlcXVpcmVfb25jZShERURFSU5DLiIvb3h3aW5kb3cuY2xhc3MucGhwIik7DQokYWN0aXZlcGF0aCA9IHN0cl9yZXBsYWNlKCIuLiIsICIiLCAkYWN0aXZlcGF0aCk7DQokYWN0aXZlcGF0aCA9IHByZWdfcmVwbGFjZSgiI15cL3sxLH0jIiwgIi8iLCAkYWN0aXZlcGF0aCk7DQppZigkYWN0aXZlcGF0aCA9PSAiLyIpICRhY3RpdmVwYXRoID0gIiI7DQppZigkYWN0aXZlcGF0aCA9PSAiIikgJGlucGF0aCA9ICRjZmdfYmFzZWRpcjsNCmVsc2UgJGlucGF0aCA9ICRjZmdfYmFzZWRpci4kYWN0aXZlcGF0aDsNCg0KLy/P1Mq+v9jWxrLjDQovL7j8uMTOxLz+w/sNCmlmKCRmbWRvPT0icmVuYW1lIikNCnsNCiAgICBpZigkYWN0aXZlcGF0aD09IiIpICRuZGlyc3RyaW5nID0gIrj5xL/CvCI7DQogICAgJG5kaXJzdHJpbmcgPSAkYWN0aXZlcGF0aDsNCiAgICAkd2ludGl0bGUgPSAiJm5ic3A7zsS8/rncwO0iOw0KICAgICR3ZWNvbWVfaW5mbyA9ICLOxLz+udzA7To6uPy4xM7EvP7D+yBbPGEgaHJlZj0nZmlsZV9tYW5hZ2VfbWFpbi5waHA/YWN0aXZlcGF0aD0kYWN0aXZlcGF0aCc+zsS8/uSvwMDG9zwvYT5dPC9hPiI7DQogICAgJHdpbiA9IG5ldyBPeFdpbmRvdygpOw0KICAgICR3aW4tPkluaXQoImZpbGVfbWFuYWdlX2NvbnRyb2wucGhwIiwianMvYmxhbmsuanMiLCJQT1NUIik7DQogICAgJHdpbi0+QWRkSGlkZGVuKCJmbWRvIiwkZm1kbyk7DQogICAgJHdpbi0+QWRkSGlkZGVuKCJhY3RpdmVwYXRoIiwkYWN0aXZlcGF0aCk7DQogICAgJHdpbi0+QWRkSGlkZGVuKCJmaWxlbmFtZSIsJGZpbGVuYW1lKTsNCiAgICAkd2luLT5BZGRUaXRsZSgiuPy4xM7EvP7D+6OstbHHsMK3vrajuiRuZGlyc3RyaW5nIik7DQogICAgJHdpbi0+QWRkSXRlbSgivsnD+7PGo7oiLCI8aW5wdXQgbmFtZT0nb2xkZmlsZW5hbWUnIHR5cGU9J2lucHV0JyBjbGFzcz0nYWxsdHh0JyBpZD0nb2xkZmlsZW5hbWUnIHNpemU9JzQwJyB2YWx1ZT0nJGZpbGVuYW1lJz4iKTsNCiAgICAkd2luLT5BZGRJdGVtKCLQwsP7s8ajuiIsIjxpbnB1dCBuYW1lPSduZXdmaWxlbmFtZScgdHlwZT0naW5wdXQnIGNsYXNzPSdhbGx0eHQnIHNpemU9JzQwJyBpZD0nbmV3ZmlsZW5hbWUnPiIpOw0KICAgICR3aW5mb3JtID0gJHdpbi0+R2V0V2luZG93KCJvayIpOw0KICAgICR3aW4tPkRpc3BsYXkoKTsNCn0NCi8v0MK9qMS/wrwNCmVsc2UgaWYoJGZtZG89PSJuZXdkaXIiKQ0Kew0KICAgIGlmKCRhY3RpdmVwYXRoPT0iIikgJGFjdGl2ZXBhdGhuYW1lPSK4+cS/wrwiOw0KICAgIGVsc2UgJGFjdGl2ZXBhdGhuYW1lPSRhY3RpdmVwYXRoOw0KDQogICAgJHdpbnRpdGxlID0gIiZuYnNwO87EvP653MDtIjsNCiAgICAkd2Vjb21lX2luZm8gPSAiJm5ic3A7zsS8/rncwO06OtDCvajEv8K8IFs8YSBocmVmPSdmaWxlX21hbmFnZV9tYWluLnBocD9hY3RpdmVwYXRoPSRhY3RpdmVwYXRoJz7OxLz+5K/AwMb3PC9hPl08L2E+IjsNCiAgICAkd2luID0gbmV3IE94V2luZG93KCk7DQogICAgJHdpbi0+SW5pdCgiZmlsZV9tYW5hZ2VfY29udHJvbC5waHAiLCJqcy9ibGFuay5qcyIsIlBPU1QiKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImZtZG8iLCRmbWRvKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImFjdGl2ZXBhdGgiLCRhY3RpdmVwYXRoKTsNCiAgICAkd2luLT5BZGRUaXRsZSgitbHHsMS/wrwgJGFjdGl2ZXBhdGhuYW1lICIpOw0KICAgICR3aW4tPkFkZEl0ZW0oItDCxL/CvKO6IiwiPGlucHV0IG5hbWU9J25ld3BhdGgnIHR5cGU9J2lucHV0JyBjbGFzcz0nYWxsdHh0JyBpZD0nbmV3cGF0aCc+Iik7DQogICAgJHdpbmZvcm0gPSAkd2luLT5HZXRXaW5kb3coIm9rIik7DQogICAgJHdpbi0+RGlzcGxheSgpOw0KfQ0KDQovL9LGtq/OxLz+DQplbHNlIGlmKCRmbWRvPT0ibW92ZSIpDQp7DQogICAgJHdpbnRpdGxlID0gIiZuYnNwO87EvP653MDtIjsNCiAgICAkd2Vjb21lX2luZm8gPSAiJm5ic3A7zsS8/rncwO06OtLGtq/OxLz+IFs8YSBocmVmPSdmaWxlX21hbmFnZV9tYWluLnBocD9hY3RpdmVwYXRoPSRhY3RpdmVwYXRoJz7OxLz+5K/AwMb3PC9hPl08L2E+IjsNCiAgICAkd2luID0gbmV3IE94V2luZG93KCk7DQogICAgJHdpbi0+SW5pdCgiZmlsZV9tYW5hZ2VfY29udHJvbC5waHAiLCJqcy9ibGFuay5qcyIsIlBPU1QiKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImZtZG8iLCRmbWRvKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImFjdGl2ZXBhdGgiLCRhY3RpdmVwYXRoKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImZpbGVuYW1lIiwkZmlsZW5hbWUpOw0KICAgICR3aW4tPkFkZFRpdGxlKCLQws671sPHsMPmsru80ycvJ7Htyr7P4LbU09q1scewzrvWw6OsvNMnLyex7cq+z+C21NPauPnEv8K8oaMiKTsNCiAgICAkd2luLT5BZGRJdGVtKCKxu9LGtq/OxLz+o7oiLCRmaWxlbmFtZSk7DQogICAgJHdpbi0+QWRkSXRlbSgitbHHsM671sOjuiIsJGFjdGl2ZXBhdGgpOw0KICAgICR3aW4tPkFkZEl0ZW0oItDCzrvWw6O6IiwiPGlucHV0IG5hbWU9J25ld3BhdGgnIHR5cGU9J2lucHV0JyBjbGFzcz0nYWxsdHh0JyBpZD0nbmV3cGF0aCcgc2l6ZT0nNDAnPiIpOw0KICAgICR3aW5mb3JtID0gJHdpbi0+R2V0V2luZG93KCJvayIpOw0KICAgICR3aW4tPkRpc3BsYXkoKTsNCn0NCg0KLy/JvrP9zsS8/g0KZWxzZSBpZigkZm1kbz09ImRlbCIpDQp7DQogICAgJHdpbnRpdGxlID0gIiZuYnNwO87EvP653MDtIjsNCiAgICAkd2Vjb21lX2luZm8gPSAiJm5ic3A7zsS8/rncwO06Osm+s/3OxLz+IFs8YSBocmVmPSdmaWxlX21hbmFnZV9tYWluLnBocD9hY3RpdmVwYXRoPSRhY3RpdmVwYXRoJz7OxLz+5K/AwMb3PC9hPl08L2E+IjsNCiAgICAkd2luID0gbmV3IE94V2luZG93KCk7DQogICAgJHdpbi0+SW5pdCgiZmlsZV9tYW5hZ2VfY29udHJvbC5waHAiLCJqcy9ibGFuay5qcyIsIlBPU1QiKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImZtZG8iLCRmbWRvKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImFjdGl2ZXBhdGgiLCRhY3RpdmVwYXRoKTsNCiAgICAkd2luLT5BZGRIaWRkZW4oImZpbGVuYW1lIiwkZmlsZW5hbWUpOw0KICAgIGlmKEBpc19kaXIoJGNmZ19iYXNlZGlyLiRhY3RpdmVwYXRoLiIvJGZpbGVuYW1lIikpDQogICAgew0KICAgICAgICAkd21zZyA9ICLE48i30MXSqsm+s/3Ev8K8o7okZmlsZW5hbWUgwvCjvyI7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgICR3bXNnID0gIsTjyLfQxdKqyb6z/c7EvP6juiRmaWxlbmFtZSDC8KO/IjsNCiAgICB9DQogICAgJHdpbi0+QWRkVGl0bGUoIsm+s/3OxLz+yLfIzyIpOw0KICAgICR3aW4tPkFkZE1zZ0l0ZW0oJHdtc2csIjUwIik7DQogICAgJHdpbmZvcm0gPSAkd2luLT5HZXRXaW5kb3coIm9rIik7DQogICAgJHdpbi0+RGlzcGxheSgpOw0KfQ0KDQovL7HgvK3OxLz+DQplbHNlIGlmKCRmbWRvPT0iZWRpdCIpDQp7DQogICAgaWYoIWlzc2V0KCRiYWNrdXJsKSkNCiAgICB7DQogICAgICAgICRiYWNrdXJsID0gIiI7DQogICAgfQ0KDQogICAgJGFjdGl2ZXBhdGggPSBzdHJfcmVwbGFjZSgiLi4iLCIiLCRhY3RpdmVwYXRoKTsNCiAgICAkZmlsZW5hbWUgPSBzdHJfcmVwbGFjZSgiLi4iLCIiLCRmaWxlbmFtZSk7DQogICAgJGZpbGUgPSAiJGNmZ19iYXNlZGlyJGFjdGl2ZXBhdGgvJGZpbGVuYW1lIjsNCiAgICAkY29udGVudCA9ICIiOw0KICAgIGlmKGlzX2ZpbGUoJGZpbGUpKQ0KICAgIHsNCiAgICAgICAgJGZwID0gZm9wZW4oJGZpbGUsInIiKTsNCiAgICAgICAgJGNvbnRlbnQgPSBmcmVhZCgkZnAsZmlsZXNpemUoJGZpbGUpKTsNCiAgICAgICAgZmNsb3NlKCRmcCk7DQogICAgICAgICRjb250ZW50ID0gaHRtbHNwZWNpYWxjaGFycygkY29udGVudCk7DQogICAgfQ0KICAgICRjb250ZW50VmlldyA9ICI8dGV4dGFyZWEgbmFtZT0nc3RyJyBzdHlsZT0nd2lkdGg6OTklO2hlaWdodDo0NTBweDtiYWNrZ3JvdW5kOiNmZmZmZmY7Jz4kY29udGVudDwvdGV4dGFyZWE+XHJcbiI7DQogICAgJEdMT0JBTFNbJ2ZpbGVuYW1lJ10gPSAkZmlsZW5hbWU7DQogICAgJGN0cCA9IG5ldyBEZWRlVGFnUGFyc2UoKTsNCiAgICAkY3RwLT5Mb2FkVGVtcGxhdGUoREVERUFETUlOLiIvdGVtcGxldHMvZmlsZV9lZGl0Lmh0bSIpOw0KICAgICRjdHAtPmRpc3BsYXkoKTsNCn0NCi8qseC8rc7EvP6jrL/JytO7r8Sjyr0NCmVsc2UgaWYoJGZtZG89PSJlZGl0dmlldyIpDQp7DQogICAgaWYoIWlzc2V0KCRiYWNrdXJsKSkNCiAgICB7DQogICAgICAgICRiYWNrdXJsID0gIiI7DQogICAgfQ0KICAgIGlmKCFpc3NldCgkaXNoZWFkKSkNCiAgICB7DQogICAgICAgICRpc2hlYWQgPSAiIjsNCiAgICB9DQogICAgJGFjdGl2ZXBhdGggPSBzdHJfcmVwbGFjZSgiLi4iLCIiLCRhY3RpdmVwYXRoKTsNCiAgICAkZmlsZW5hbWUgPSBzdHJfcmVwbGFjZSgiLi4iLCIiLCRmaWxlbmFtZSk7DQogICAgJGZpbGUgPSAiJGNmZ19iYXNlZGlyJGFjdGl2ZXBhdGgvJGZpbGVuYW1lIjsNCiAgICAkZnAgPSBmb3BlbigkZmlsZSwiciIpOw0KICAgIEAkY29udGVudCA9IGZyZWFkKCRmcCxmaWxlc2l6ZSgkZmlsZSkpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIGlmKChlcmVnaSgiPGh0bWwiLCRjb250ZW50KSAmJiBlcmVnaSgiPGJvZHkiLCRjb250ZW50KSkgfHwgJGlzaGVhZCA9PSAieWVzIikNCiAgICB7DQogICAgICAgICRjb250ZW50VmlldyA9IEdldEVkaXRvcigic3RyIiwkY29udGVudCwiNTAwIiwiRGVmYXVsdCIsInN0cmluZyIsInRydWUiKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJGNvbnRlbnRWaWV3ID0gR2V0RWRpdG9yKCJzdHIiLCRjb250ZW50LCI1MDAiLCJEZWZhdWx0Iiwic3RyaW5nIiwiZmFsc2UiKTsNCiAgICB9DQogICAgJEdMT0JBTFNbJ2ZpbGVuYW1lJ10gPSAkZmlsZW5hbWU7DQogICAgJGN0cCA9IG5ldyBEZWRlVGFnUGFyc2UoKTsNCiAgICAkY3RwLT5Mb2FkVGVtcGxhdGUoREVERUFETUlOLiIvdGVtcGxldHMvZmlsZV9lZGl0X3ZpZXcuaHRtIik7DQogICAgJGN0cC0+ZGlzcGxheSgpOw0KfQ0KKi8NCi8v0MK9qM7EvP4NCmVsc2UgaWYoJGZtZG89PSJuZXdmaWxlIikNCnsNCiAgICAkY29udGVudCA9ICIiOw0KICAgICRHTE9CQUxTWydmaWxlbmFtZSddID0gIm5ld2ZpbGUudHh0IjsNCiAgICAkY29udGVudFZpZXcgPSAiPHRleHRhcmVhIG5hbWU9J3N0cicgc3R5bGU9J3dpZHRoOjk5JTtoZWlnaHQ6NDAwJz48L3RleHRhcmVhPlxyXG4iOw0KICAgICRjdHAgPSBuZXcgRGVkZVRhZ1BhcnNlKCk7DQogICAgJGN0cC0+TG9hZFRlbXBsYXRlKERFREVBRE1JTi4iL3RlbXBsZXRzL2ZpbGVfZWRpdC5odG0iKTsNCiAgICAkY3RwLT5kaXNwbGF5KCk7DQp9DQoNCi8vyc+0q87EvP4NCmVsc2UgaWYoJGZtZG89PSJ1cGxvYWQiKQ0Kew0KICAgICRjdHAgPSBuZXcgRGVkZVRhZ1BhcnNlKCk7DQogICAgJGN0cC0+TG9hZFRlbXBsYXRlKERFREVBRE1JTi4iL3RlbXBsZXRzL2ZpbGVfdXBsb2FkLmh0bSIpOw0KICAgICRjdHAtPmRpc3BsYXkoKTsNCn0=
PD9waHANCi8qKg0KICogzsS8/s28xqyy6b+0DQogKg0KICogQHZlcnNpb24gICAgICAgICRJZDogZmlsZV9waWNfdmlldy5waHAgMSA4OjQ4IDIwMTDE6jfUwjEzyNVaIHRpYW55YSAkDQogKiBAcGFja2FnZSAgICAgICAgRGVkZUNNUy5BZG1pbmlzdHJhdG9yDQogKiBAY29weXJpZ2h0ICAgICAgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAxMCwgRGVzRGV2LCBJbmMuDQogKiBAbGljZW5zZSAgICAgICAgaHR0cDovL2hlbHAuZGVkZWNtcy5jb20vdXNlcnNndWlkZS9saWNlbnNlLmh0bWwNCiAqIEBsaW5rICAgICAgICAgICBodHRwOi8vd3d3LmRlZGVjbXMuY29tDQogKi8NCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4iL2NvbmZpZy5waHAiKTsNCkNoZWNrUHVydmlldygncGljX3ZpZXcnKTsNCmlmKGVtcHR5KCRhY3RpdmVwYXRoKSkgJGFjdGl2ZXBhdGg9JGNmZ19tZWRpYXNfZGlyOw0KDQokYWN0aXZlcGF0aCA9IHByZWdfcmVwbGFjZSgiI1wvezEsfSMiLCAiLyIsICRhY3RpdmVwYXRoKTsNCiR0cnVlUGF0aCA9ICRjZmdfYmFzZWRpci4kYWN0aXZlcGF0aDsNCiRsaXN0U2l6ZT01Ow0KaW5jbHVkZSBEZWRlSW5jbHVkZSgndGVtcGxldHMvZmlsZV9waWNfdmlldy5odG0nKTsNCg0KLyoqDQogKiAgu/HIocnP0ru8tsS/wrwNCiAqDQogKiBAYWNjZXNzICAgIHB1YmxpYw0KICogQHBhcmFtICAgICBzdHJpbmcgICRub3dQYXRoICC1scewxL/CvA0KICogQHJldHVybiAgICBzdHJpbmcNCiAqLw0KZnVuY3Rpb24gR2V0UHJlUGF0aCgkbm93UGF0aCkNCnsNCiAgICBpZigkbm93UGF0aD09IiIgfHwgJG5vd1BhdGg9PSIvIikNCiAgICB7DQogICAgICAgIGVjaG8oIrWxx7DOqrj5xL/CvFxuIik7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgICRkaXJzID0gc3BsaXQoIi8iLCAkbm93UGF0aCk7DQogICAgICAgICRub3dQYXRoID0gIiI7DQogICAgICAgIGZvcigkaT0xOyRpIDwgY291bnQoJGRpcnMpLTE7ICRpKyspDQogICAgICAgIHsNCiAgICAgICAgICAgICRub3dQYXRoIC49ICIvIi4kZGlyc1skaV07DQogICAgICAgIH0NCiAgICAgICAgZWNobygiPGEgaHJlZj1cInBpY192aWV3LnBocD9hY3RpdmVwYXRoPSIuJG5vd1BhdGguIlwiPteqtb3Jz7y2xL/CvDwvYT5cbiIpOw0KICAgIH0NCn0NCg0KLyoqDQogKiAgwdCz9s28xqwNCiAqDQogKiBAYWNjZXNzICAgIHB1YmxpYw0KICogQHBhcmFtICAgICBzdHJpbmcgICR0cnVlUGF0aCAg1ebKtbXY1rcNCiAqIEBwYXJhbSAgICAgc3RyaW5nICAkbm93UGF0aCAgtbHHsLXY1rcNCiAqIEByZXR1cm4gICAgc3RyaW5nDQogKi8NCmZ1bmN0aW9uIExpc3RQaWMoJHRydWVQYXRoLCAkbm93UGF0aCkNCnsNCiAgICBnbG9iYWwgJGxpc3RTaXplOw0KICAgICRjb2w9MDsNCiAgICAkcm93ZGQ9MDsNCiAgICAkcm93ZGQrKzsNCiAgICAkaW1nZmlsZT0iIjsNCiAgICAkdHJ1ZVBhdGggPSBwcmVnX3JlcGxhY2UoIiNcLyQjIiwgIiIsIHByZWdfcmVwbGFjZSgiI1xcXFx7MSx9IyIsICIvIiwgdHJpbSgkdHJ1ZVBhdGgpKSk7DQogICAgJG5vd1BhdGggPSBwcmVnX3JlcGxhY2UoIiNcLyQjIiwgIiIsIHByZWdfcmVwbGFjZSgiI1wvezEsfSMiLCAiLyIsIHRyaW0oJG5vd1BhdGgpKSk7DQogICAgJGRoID0gZGlyKCR0cnVlUGF0aCk7DQogICAgZWNobygiPHRyIGFsaWduPSdjZW50ZXInPlxuIik7DQogICAgd2hpbGUoJGZpbGVuYW1lPSRkaC0+cmVhZCgpKQ0KICAgIHsNCiAgICAgICAgaWYoIXByZWdfbWF0Y2goIiNcLiQjIiwgJGZpbGVuYW1lKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGZ1bGxOYW1lID0gJHRydWVQYXRoLiIvIi4kZmlsZW5hbWU7DQogICAgICAgICAgICAkZmlsZVVybCA9ICAkbm93UGF0aC4iLyIuJGZpbGVuYW1lOw0KICAgICAgICAgICAgaWYoaXNfZGlyKCRmdWxsTmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYoJGNvbCAlICRsaXN0U2l6ZSA9PSAwICYmICRjb2wgIT0gMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8oIjwvdHI+XG48dHIgYWxpZ249J2NlbnRlcic+XG4iKTsNCiAgICAgICAgICAgICAgICAgICAgZm9yKCRpPSRyb3dkZC0kbGlzdFNpemU7ICRpPCRyb3dkZDsgJGkrKykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobygiPHRkPiIuJGZpbGVsaXN0WyRpXS4iPC90ZD5cbiIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVjaG8oIjwvdHI+XG48dHIgYWxpZ249J2NlbnRlcic+XG4iKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGxpbmUgPSAiDQogICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0nMTA2JyBoZWlnaHQ9JzEwNicgYm9yZGVyPScwJyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzEnIGJnY29sb3I9JyNDQ0NDQ0MnPg0KICAgICAgICAgICAgICAgIDx0cj48dGQgYWxpZ249J2NlbnRlcicgYmdjb2xvcj0nI0ZGRkZGRic+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0ncGljX3ZpZXcucGhwP2FjdGl2ZXBhdGg9Ii4kZmlsZVVybC4iJz4NCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0naW1hZ2VzL3BpY19kaXIuZ2lmJyB3aWR0aD0nNDQnIGhlaWdodD0nNDInIGJvcmRlcj0nMCc+DQogICAgICAgICAgICAgICAgPC9hPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+IjsNCiAgICAgICAgICAgICAgICAkZmlsZWxpc3RbJHJvd2RkXSA9ICRmaWxlbmFtZTsNCiAgICAgICAgICAgICAgICAkY29sKys7DQogICAgICAgICAgICAgICAgJHJvd2RkKys7DQogICAgICAgICAgICAgICAgZWNobyAkbGluZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYoSXNJbWcoJGZpbGVuYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZigkY29sJSRsaXN0U2l6ZT09MCYmJGNvbCE9MCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8oIjwvdHI+XG48dHIgYWxpZ249J2NlbnRlcic+XG4iKTsNCiAgICAgICAgICAgICAgICAgICAgZm9yKCRpPSRyb3dkZC0kbGlzdFNpemU7JGk8JHJvd2RkOyRpKyspDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8oIjx0ZD4iLiRmaWxlbGlzdFskaV0uIjwvdGQ+XG4iKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlY2hvKCI8L3RyPlxuPHRyIGFsaWduPSdjZW50ZXInPlxuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRsaW5lID0gIg0KICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9JzEwNicgaGVpZ2h0PScxMDYnIGJvcmRlcj0nMCcgY2VsbHBhZGRpbmc9JzAnIGNlbGxzcGFjaW5nPScxJyBiZ2NvbG9yPScjQ0NDQ0NDJz4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgPHRkIGFsaWduPSdjZW50ZXInIGJnY29sb3I9JyNGRkZGRkYnPg0KICAgICAgICAgICAgICAgICIuR2V0SW1nRmlsZSgkdHJ1ZVBhdGgsJG5vd1BhdGgsJGZpbGVuYW1lKS4iDQogICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICA8L3RyPjwvdGFibGU+PC90ZD4iOw0KICAgICAgICAgICAgICAgICRmaWxlbGlzdFskcm93ZGRdID0gJGZpbGVuYW1lOw0KICAgICAgICAgICAgICAgICRjb2wrKzsNCiAgICAgICAgICAgICAgICAkcm93ZGQrKzsNCiAgICAgICAgICAgICAgICBlY2hvICRsaW5lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIGVjaG8oIjwvdHI+XG4iKTsNCiAgICBpZighZW1wdHkoJGZpbGVsaXN0KSkNCiAgICB7DQogICAgICAgIGVjaG8oIjx0ciBhbGlnbj0nY2VudGVyJz5cbiIpOw0KICAgICAgICAkdCA9ICgkcm93ZGQtMSklJGxpc3RTaXplOw0KICAgICAgICBpZigkdD09MCkNCiAgICAgICAgew0KICAgICAgICAgICAgJHQ9JGxpc3RTaXplOw0KICAgICAgICB9DQogICAgICAgIGZvcigkaT0kcm93ZGQtJHQ7JGk8JHJvd2RkOyRpKyspDQogICAgICAgIHsNCiAgICAgICAgICAgIGVjaG8oIjx0ZD4iLiRmaWxlbGlzdFskaV0uIjwvdGQ+XG4iKTsNCiAgICAgICAgfQ0KICAgICAgICBlY2hvKCI8L3RyPlxuIik7DQogICAgfQ0KfQ0KDQovKioNCiAqICC78cihzbzGrM7EvP4NCiAqDQogKiBAYWNjZXNzICAgIHB1YmxpYw0KICogQHBhcmFtICAgICBzdHJpbmcgICR0cnVlUGF0aCAg1ebKtbXY1rcNCiAqIEBwYXJhbSAgICAgc3RyaW5nICAkbm93UGF0aCAgtbHHsLXY1rcNCiAqIEBwYXJhbSAgICAgc3RyaW5nICAkZmlsZU5hbWUgIM7EvP7D+7PGDQogKiBAcmV0dXJuICAgIHN0cmluZw0KICovDQpmdW5jdGlvbiBHZXRJbWdGaWxlKCR0cnVlUGF0aCwgJG5vd1BhdGgsICRmaWxlTmFtZSkNCnsNCiAgICAkdG9XPTEwMjsNCiAgICAkdG9IPTEwMjsNCiAgICAkc3JjRmlsZSA9ICR0cnVlUGF0aC4iLyIuJGZpbGVOYW1lOw0KICAgICRpbmZvID0gIiI7DQogICAgJGRhdGEgPSBHZXRJbWFnZVNpemUoJHNyY0ZpbGUsICRpbmZvKTsNCiAgICAkc3JjVz0kZGF0YVswXTsNCiAgICAkc3JjSD0kZGF0YVsxXTsNCiAgICBpZigkdG9XPj0kc3JjVyYmJHRvSD49JHNyY0gpDQogICAgew0KICAgICAgICAkZnRvVz0kc3JjVzsNCiAgICAgICAgJGZ0b0g9JHNyY0g7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgICR0b1dIPSR0b1cgLyAkdG9IOw0KICAgICAgICAkc3JjV0g9JHNyY1cgLyAkc3JjSDsNCiAgICAgICAgaWYoJHRvV0g8PSRzcmNXSCkNCiAgICAgICAgew0KICAgICAgICAgICAgJGZ0b1c9JHRvVzsNCiAgICAgICAgICAgICRmdG9IPSRmdG9XKigkc3JjSC8kc3JjVyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkZnRvSD0kdG9IOw0KICAgICAgICAgICAgJGZ0b1c9JGZ0b0gqKCRzcmNXLyRzcmNIKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4oIjxhIGhyZWY9JyIuJG5vd1BhdGguIi8iLiRmaWxlTmFtZS4iJyB0YXJnZXQ9J19ibGFuayc+PGltZyBzcmM9JyIuJG5vd1BhdGguIi8iLiRmaWxlTmFtZS4iJyB3aWR0aD0nIi4kZnRvVy4iJyBoZWlnaHQ9JyIuJGZ0b0guIicgYm9yZGVyPScwJz48L2E+Iik7DQp9DQoNCmZ1bmN0aW9uIElzSW1nKCRmaWxlTmFtZSkNCnsNCiAgICBpZihwcmVnX21hdGNoKCIjXC4oanBnfGdpZnxwbmcpJCMiLCAkZmlsZU5hbWUpKSByZXR1cm4gMTsNCiAgICBlbHNlIHJldHVybiAwOw0KfQ==
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD08P3BocCBlY2hvICRjZmdfc29mdF9sYW5nOyA/PiI+DQo8dGl0bGU+zsS8/rncwO3G9zwvdGl0bGU+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3MvYmFzZS5jc3MiPg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBQb3N0KCkgDQp7DQoJaWYgKGRvY3VtZW50LmZvcm0xLmZpbGVuYW1lLnZhbHVlPT0iIikNCgl7DQoJCWFsZXJ0KCLOxLz+w/uyu8Tczqq/1aGjIik7DQoJCWRvY3VtZW50LmZvcm0xLmZpbGVuYW1lLmZvY3VzKCk7DQoJCXJldHVybiBmYWxzZTsNCiAgfQ0KfQkNCjwvc2NyaXB0Pg0KPC9oZWFkPg0KPGJvZHkgYmFja2dyb3VuZD0naW1hZ2VzL2FsbGJnLmdpZicgbGVmdG1hcmdpbj0iOCIgdG9wbWFyZ2luPSc4Jz4NCjx0YWJsZSB3aWR0aD0iOTglIiBib3JkZXI9IjAiIGFsaWduPSJjZW50ZXIiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYmdjb2xvcj0iI0VDRkFEMyIgc3R5bGU9Im1hcmdpbi1ib3R0b206OHB4OyI+DQogIDx0cj4gDQogICAgPHRkIGhlaWdodD0iMjgiIHN0eWxlPSJib3JkZXI6MXB4IGRvdHRlZCAjQkZENjdDO3BhZGRpbmctbGVmdDoxMHB4OyIgYmFja2dyb3VuZD0naW1hZ2VzL3diZy5naWYnPg0KCQkmbmJzcDuh8zxhIGhyZWY9J2ZpbGVfbWFuYWdlX21haW4ucGhwP2FjdGl2ZXBhdGg9e2RlZGU6Z2xvYmFsIG5hbWU9J2FjdGl2ZXBhdGgnL30nPjxiPs7EvP653MDtPC9iPjwvYT4gJmd0OyZndDsgPGI+0N64xC/Qwr2ozsS8/jwvYj4NCgkgIDwvdGQ+DQogIDwvdHI+DQo8L3RhYmxlPg0KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249ImZpbGVfbWFuYWdlX2NvbnRyb2wucGhwIiBuYW1lPWZvcm0xIG9uU3VibWl0PSJyZXR1cm4gUG9zdCgpIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZtZG8iIHZhbHVlPSJlZGl0IiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmFja3VybCIgdmFsdWU9IntkZWRlOmdsb2JhbCBuYW1lPSdiYWNrdXJsJyBmdW5jdGlvbj0ndXJsZW5jb2RlKEBtZSknL30iIC8+DQo8dGFibGUgd2lkdGg9Ijk4JSIgYm9yZGVyPSIwIiBhbGlnbj0iY2VudGVyIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJnY29sb3I9IiNjZmNmY2YiPg0KCTx0cj4NCgkJPHRkIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPScjZmZmZmZmJz4NCgkJPHRhYmxlIHdpZHRoPScxMDAlJyAgYm9yZGVyPScwJyBjZWxscGFkZGluZz0nMycgY2VsbHNwYWNpbmc9JzEnIGJnY29sb3I9JyNjZmNmY2YnPg0KCQk8dHIgYmdjb2xvcj0nI0VFRjRFQSc+DQoJCQk8dGQgY29sc3Bhbj0nMicgYmFja2dyb3VuZD0naW1hZ2VzL3diZy5naWYnIGhlaWdodD0nMjYnIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MTBweDsiPg0KCQkJCQk8Zm9udCBjb2xvcj0nIzY2NjYwMCc+PGI+0N64xC/Qwr2ozsS8/qO6PC9iPjwvZm9udD4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCTx0ciBiZ2NvbG9yPScjRkZGRkZGJz4NCiAgCQk8dGQ+uaTX98S/wrw8L3RkPg0KCQkJPHRkPg0KICAJCQkJPGlucHV0IG5hbWU9J2FjdGl2ZXBhdGgnIHNpemU9JzQwJyBjbGFzcz0nYWxsdHh0JyB2YWx1ZT0ie2RlZGU6Z2xvYmFsIG5hbWU9J2FjdGl2ZXBhdGgnL30iIC8+DQogICAgCQkJo6i/1bDXse3Kvrj5xL/CvCCjrLK71MrQ7dPDIKGwLi6hsSDQzsq9tcTCt762o6kNCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCTx0ciBiZ2NvbG9yPScjRkZGRkZGJz4NCiAgCQk8dGQ+zsS8/sP7s8Y8L3RkPg0KICAJCTx0ZD4NCiAgCQkJPGlucHV0IG5hbWU9ZmlsZW5hbWUgc2l6ZT00MCBjbGFzcz0nYWxsdHh0JyB2YWx1ZT0ie2RlZGU6Z2xvYmFsIG5hbWU9J2ZpbGVuYW1lJy99IiAvPg0KICAgIAkJo6iyu9TK0O3TwyChsC4uobEg0M7KvbXEwre+tqOpDQogIAkJPC90ZD4NCgkJPC90cj4NCgkJPHRyIGJnY29sb3I9JyNGRkZGRkYnPg0KCQkJPHRkIGNvbHNwYW49JzInPg0KCQkJCQl7ZGVkZTpnbG9iYWwgbmFtZT0nY29udGVudFZpZXcnL30NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0ZCBjb2xzcGFuPScyJyBoZWlnaHQ9IjM2IiBiZ2NvbG9yPScjRjlGQ0VGJyBhbGlnbj0nY2VudGVyJz4NCiAgIAkJCTxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICCxoyC05iAgIiBuYW1lPSdCMScgY2xhc3M9ImNvb2xiZyBucCIgLz4NCiAgIAkJCQkmbmJzcDsgDQogICAJCQk8aW5wdXQgdHlwZT1yZXNldCB2YWx1ZT0iyKHP+9DeuMQiIG5hbWU9J0IyJyBjbGFzcz0iY29vbGJnIG5wIiAvPg0KICAJCQkJJm5ic3A7IA0KICAgCQkJPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPSKyu8Dtt7W72CIgbmFtZT0nQjQnIGNsYXNzPSJjb29sYmcgbnAiIG9uQ2xpY2s9ImphdmFzY3JpcHQ6aGlzdG9yeS5nbygtMSk7IiAvPg0KCQkJPC90ZD4NCgkJCTwvdHI+DQoJCQk8L3RhYmxlPg0KCQk8L3RkPg0KCTwvdHI+DQo8L3RhYmxlPg0KPC9mb3JtPg0KPC9ib2R5Pg0KPC9odG1sPg0K
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD08P3BocCBlY2hvICRjZmdfc29mdF9sYW5nOyA/PiI+DQo8dGl0bGU+zsS8/rncwO3G9zwvdGl0bGU+DQo8bGluayBocmVmPSJjc3MvYmFzZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPg0KPHN0eWxlPg0KLmxpbmVyb3d7Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQkQ4QUM7aGVpZ2h0OjI0cHh9DQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHkgYmFja2dyb3VuZD0naW1hZ2VzL2FsbGJnLmdpZicgbGVmdG1hcmdpbj0nOCcgdG9wbWFyZ2luPSc4Jz4NCjx0YWJsZSB3aWR0aD0nOTglJyBib3JkZXI9JzAnIGNlbGxzcGFjaW5nPScxJyBjZWxscGFkZGluZz0nMicgYWxpZ249J2NlbnRlcicgc3R5bGU9ImJhY2tncm91bmQ6I2NmY2ZjZjsiPg0KPHRyIGJnY29sb3I9IiNjZmNmY2YiIGhlaWdodD0iMjgiIGFsaWduPSJjZW50ZXIiPg0KICA8dGQgd2lkdGg9IjI4JSIgYmFja2dyb3VuZD0iaW1hZ2VzL3diZy5naWYiID48c3Ryb25nPs7EvP7D+zwvc3Ryb25nPjwvdGQ+DQogIDx0ZCB3aWR0aD0iMTYlIiBiYWNrZ3JvdW5kPSJpbWFnZXMvbmV3bGluZWJnMy5naWYiPjxzdHJvbmc+zsS8/rTz0KE8L3N0cm9uZz48L3RkPg0KICA8dGQgd2lkdGg9IjIyJSIgYmFja2dyb3VuZD0iaW1hZ2VzL3diZy5naWYiPjxzdHJvbmc+1+6689DeuMTKsbzkPC9zdHJvbmc+PC90ZD4NCiAgPHRkIHdpZHRoPSIzNCUiICBiYWNrZ3JvdW5kPSJpbWFnZXMvbmV3bGluZWJnMy5naWYiPjxzdHJvbmc+stnX9zwvc3Ryb25nPjwvdGQ+DQo8L3RyPg0KPD9waHANCiRkaCA9IGRpcigkaW5wYXRoKTsNCiR0eTE9IiI7DQokdHkyPSIiOw0KJGZpbGVzID0gJGRpcnMgPSBhcnJheSgpOw0Kd2hpbGUoKCRmaWxlID0gJGRoLT5yZWFkKCkpICE9PSBmYWxzZSkNCnsNCglpZigkZmlsZSE9Ii4iICYmICRmaWxlIT0iLi4iICYmICFpc19kaXIoIiRpbnBhdGgvJGZpbGUiKSkNCgl7DQoJCUAkZmlsZXNpemUgPSBmaWxlc2l6ZSgiJGlucGF0aC8kZmlsZSIpOw0KCQlAJGZpbGVzaXplPSRmaWxlc2l6ZS8xMDI0Ow0KCQlAJGZpbGV0aW1lID0gZmlsZW10aW1lKCIkaW5wYXRoLyRmaWxlIik7DQoJCUAkZmlsZXRpbWUgPSBNeURhdGUoIlktbS1kIEg6aTpzIiwkZmlsZXRpbWUpOw0KCQlpZigkZmlsZXNpemU8MC4xKQ0KCQl7DQoJCQlAbGlzdCgkdHkxLCR0eTIpPWV4cGxvZGUoIi4iLCRmaWxlc2l6ZSk7DQoJCQkkZmlsZXNpemU9JHR5MS4iLiIuc3Vic3RyKCR0eTIsMCwyKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCUBsaXN0KCR0eTEsJHR5Mik9ZXhwbG9kZSgiLiIsJGZpbGVzaXplKTsNCgkJCSRmaWxlc2l6ZT0kdHkxLiIuIi5zdWJzdHIoJHR5MiwwLDEpOw0KCQl9DQoJfQ0KCWlmKCRmaWxlID09ICIuIikNCgl7DQoJCWNvbnRpbnVlOw0KCX0NCgllbHNlIGlmKCRmaWxlID09ICIuLiIpDQoJew0KCQlpZigkYWN0aXZlcGF0aCA9PSAiIikNCgkJew0KCQkJY29udGludWU7DQoJCX0NCgkJJHRtcCA9IHByZWdfcmVwbGFjZSgiI1tcL11bXlwvXSokI2kiLCIiLCRhY3RpdmVwYXRoKTsNCgkJJGxpbmUgPSAiXG48dHI+DQogIDx0ZCBiZ2NvbG9yPScjZmZmZmZmJyBoZWlnaHQ9JzI1Jz4NCiAgPGEgaHJlZj1maWxlX21hbmFnZV9tYWluLnBocD9hY3RpdmVwYXRoPSIudXJsZW5jb2RlKCR0bXApLiI+PGltZyBzcmM9aW1hZ2VzL2RpcjIuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+yc+8tsS/wrw8L2E+DQogIDwvdGQ+DQogIDx0ZCBjb2xzcGFuPSczJyBiZ2NvbG9yPScjZmZmZmZmJz4NCiAgILWxx7DEv8K8OiRhY3RpdmVwYXRoICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9waWNfdmlldy5waHA/YWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIicgc3R5bGU9J2NvbG9yOnJlZCc+W828xqzkr8DAxvddPC9hPg0KICAgPC90ZD4NCiAgPC90cj4iOw0KCQkkZGlyc1tdID0gJGxpbmU7DQoJfQ0KCWVsc2UgaWYoaXNfZGlyKCIkaW5wYXRoLyRmaWxlIikpDQoJew0KCQlpZihwcmVnX21hdGNoKCIjXl8oLiopJCNpIiwkZmlsZSkpIGNvbnRpbnVlOyAjxsGxzkZyb250UGFnZcCp1bnEv8K8us1saW51eNL+sc7Ev8K8DQoJCWlmKHByZWdfbWF0Y2goIiNeXC4oLiopJCNpIiwkZmlsZSkpIGNvbnRpbnVlOw0KCQkkbGluZSA9ICJcbjx0ciBiZ2NvbG9yPScjRkZGRkZGJyBoZWlnaHQ9JzI2JyBvbk1vdXNlTW92ZT1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkNGREVFJztcIiBvbk1vdXNlT3V0PVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGRkZGRkYnO1wiPg0KICAgPHRkPg0KICAgIDxhIGhyZWY9ZmlsZV9tYW5hZ2VfbWFpbi5waHA/YWN0aXZlcGF0aD0iLnVybGVuY29kZSgiJGFjdGl2ZXBhdGgvJGZpbGUiKS4iPjxpbWcgc3JjPWltYWdlcy9kaXIuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD6hoTwvdGQ+DQogICA8dGQ+oaE8L3RkPg0KICAgPHRkPg0KICAgPGEgaHJlZj1maWxlX21hbmFnZV92aWV3LnBocD9maWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJmZtZG89cmVuYW1lPlu4xMP7XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj1maWxlX21hbmFnZV92aWV3LnBocD9maWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJnR5cGU9ZGlyJmZtZG89ZGVsPlvJvrP9XTwvYT4NCiAgIDwvdGQ+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZGlyc1tdID0gJGxpbmU7DQoJfQ0KCWVsc2UgaWYocHJlZ19tYXRjaCgiI1wuKGdpZnxwbmcpI2kiLCRmaWxlKSkNCgl7DQoJCSRsaW5lID0gIlxuPHRyIGJnY29sb3I9JyNGRkZGRkYnIGhlaWdodD0nMjYnIG9uTW91c2VNb3ZlPVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGQ0ZERUUnO1wiIG9uTW91c2VPdXQ9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7XCI+DQogICA8dGQ+DQogICA8YSBocmVmPSRhY3RpdmV1cmwvJGZpbGUgdGFyZ2V0PV9ibGFuaz48aW1nIHNyYz1pbWFnZXMvZ2lmLmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJz4kZmlsZXRpbWU8L3RkPg0KICAgPHRkPg0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLihqcGcpI2kiLCRmaWxlKSkNCgl7DQoJCSRsaW5lID0gIlxuPHRyIGJnY29sb3I9JyNGRkZGRkYnIGhlaWdodD0nMjYnIG9uTW91c2VNb3ZlPVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGQ0ZERUUnO1wiIG9uTW91c2VPdXQ9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7XCI+DQogICA8dGQ+DQogICA8YSBocmVmPSRhY3RpdmV1cmwvJGZpbGUgdGFyZ2V0PV9ibGFuaz48aW1nIHNyYz1pbWFnZXMvanBnLmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJyBjbGFzcz0nbGluZXJvdyc+JGZpbGV0aW1lPC90ZD4NCiAgIDx0ZCA+DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPXJlbmFtZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5buMTD+108L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89ZGVsJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlvJvrP9XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1tb3ZlJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlvSxravXTwvYT4NCiAgIDwvdGQ+DQogICA8L3RyPiI7DQoJCSRmaWxlc1tdID0gJGxpbmU7DQoJfQ0KCWVsc2UgaWYocHJlZ19tYXRjaCgiI1wuKHN3ZnxmbGF8Zmx5KSNpIiwkZmlsZSkpDQoJew0KCQkkbGluZSA9ICJcbjx0ciBiZ2NvbG9yPScjRkZGRkZGJyBoZWlnaHQ9JzI2JyBvbk1vdXNlTW92ZT1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkNGREVFJztcIiBvbk1vdXNlT3V0PVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGRkZGRkYnO1wiPg0KICAgPHRkPg0KICAgPGEgaHJlZj0kYWN0aXZldXJsLyRmaWxlIHRhcmdldD1fYmxhbms+PGltZyBzcmM9aW1hZ2VzL2ZsYXNoLmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJz4kZmlsZXRpbWU8L3RkPg0KICAgPHRkPg0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLih6aXB8cmFyfHRhci5neikjaSIsJGZpbGUpKQ0KCXsNCgkJJGxpbmUgPSAiXG48dHIgYmdjb2xvcj0nI0ZGRkZGRicgaGVpZ2h0PScyNicgb25Nb3VzZU1vdmU9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZDRkRFRSc7XCIgb25Nb3VzZU91dD1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkZGRkZGJztcIj4NCiAgIDx0ZD4NCiAgIDxhIGhyZWY9JGFjdGl2ZXVybC8kZmlsZSB0YXJnZXQ9X2JsYW5rPjxpbWcgc3JjPWltYWdlcy96aXAuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgPHRkIGFsaWduPSdjZW50ZXInPiRmaWxldGltZTwvdGQ+DQogICA8dGQ+DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPXJlbmFtZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5buMTD+108L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89ZGVsJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlvJvrP9XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1tb3ZlJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlvSxravXTwvYT4NCiAgIDwvdGQ+DQogICA8L3RyPiI7DQoJCSRmaWxlc1tdID0gJGxpbmU7DQoJfQ0KCWVsc2UgaWYocHJlZ19tYXRjaCgiI1wuKGV4ZSkjaSIsJGZpbGUpKQ0KCXsNCgkJJGxpbmUgPSAiXG48dHIgYmdjb2xvcj0nI0ZGRkZGRicgaGVpZ2h0PScyNicgb25Nb3VzZU1vdmU9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZDRkRFRSc7XCIgb25Nb3VzZU91dD1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkZGRkZGJztcIj4NCiAgIDx0ZD4NCiAgIDxhIGhyZWY9JGFjdGl2ZXVybC8kZmlsZSB0YXJnZXQ9X2JsYW5rPjxpbWcgc3JjPWltYWdlcy9leGUuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgPHRkIGFsaWduPSdjZW50ZXInPiRmaWxldGltZTwvdGQ+DQogICA8dGQgPg0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLihtcDN8d21hKSNpIiwkZmlsZSkpDQoJew0KCQkkbGluZSA9ICJcbjx0ciBiZ2NvbG9yPScjRkZGRkZGJyAgaGVpZ2h0PScyNicgb25Nb3VzZU1vdmU9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZDRkRFRSc7XCIgb25Nb3VzZU91dD1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkZGRkZGJztcIj4NCiAgIDx0ZD4NCiAgIDxhIGhyZWY9JGFjdGl2ZXVybC8kZmlsZSB0YXJnZXQ9X2JsYW5rPjxpbWcgc3JjPWltYWdlcy9tcDMuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgPHRkIGFsaWduPSdjZW50ZXInPiRmaWxldGltZTwvdGQ+DQogICA8dGQ+DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPXJlbmFtZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5buMTD+108L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89ZGVsJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlvJvrP9XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1tb3ZlJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlvSxravXTwvYT4NCiAgIDwvdGQ+DQogICA8L3RyPiI7DQoJCSRmaWxlc1tdID0gJGxpbmU7DQoJfQ0KCWVsc2UgaWYocHJlZ19tYXRjaCgiI1wuKHdtdnxhcGkpI2kiLCRmaWxlKSkNCgl7DQoJCSRsaW5lID0gIlxuPHRyIGJnY29sb3I9JyNGRkZGRkYnIGhlaWdodD0nMjYnIG9uTW91c2VNb3ZlPVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGQ0ZERUUnO1wiIG9uTW91c2VPdXQ9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7XCI+DQogICA8dGQ+DQogICA8YSBocmVmPSRhY3RpdmV1cmwvJGZpbGUgdGFyZ2V0PV9ibGFuaz48aW1nIHNyYz1pbWFnZXMvd212LmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJz4kZmlsZXRpbWU8L3RkPg0KICAgPHRkPg0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLihybXxybXZiKSNpIiwkZmlsZSkpDQoJew0KCQkkbGluZSA9ICJcbjx0ciBiZ2NvbG9yPScjRkZGRkZGJyBoZWlnaHQ9JzI2JyBvbk1vdXNlTW92ZT1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkNGREVFJztcIiBvbk1vdXNlT3V0PVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGRkZGRkYnO1wiPg0KICAgPHRkPg0KICAgPGEgaHJlZj0kYWN0aXZldXJsLyRmaWxlIHRhcmdldD1fYmxhbms+PGltZyBzcmM9aW1hZ2VzL3JtLmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJyBjbGFzcz0nbGluZXJvdyc+JGZpbGV0aW1lPC90ZD4NCiAgIDx0ZD4NCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89cmVuYW1lJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlu4xMP7XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1kZWwmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W8m+s/1dPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPW1vdmUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W9LGtq9dPC9hPg0KICAgPC90ZD4NCiAgIDwvdHI+IjsNCgkJJGZpbGVzW10gPSAkbGluZTsNCgl9DQoJZWxzZSBpZihwcmVnX21hdGNoKCIjXC4odHh0fGluY3xwbHxjZ2l8YXNwfHhtbHx4c2x8YXNweHxjZm0pIyIsJGZpbGUpKQ0KCXsNCgkJJGVkdXJsID0gImZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89ZWRpdCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKTsNCgkJJGxpbmUgPSAiXG48dHIgYmdjb2xvcj0nI0ZGRkZGRicgb25Nb3VzZU1vdmU9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZDRkRFRSc7XCIgb25Nb3VzZU91dD1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkZGRkZGJztcIj4NCiAgIDx0ZD4NCiAgIDxhIGhyZWY9JGFjdGl2ZXVybC8kZmlsZSB0YXJnZXQ9X2JsYW5rPjxpbWcgc3JjPWltYWdlcy90eHQuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgPHRkIGFsaWduPSdjZW50ZXInPiRmaWxldGltZTwvdGQ+DQogICA8dGQ+DQogICA8YSBocmVmPSckZWR1cmwnPlux4LytXTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLihodG18aHRtbCkjaSIsJGZpbGUpKQ0KCXsNCgkJJGVkdXJsID0gImZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89ZWRpdCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKTsNCgkJJGxpbmUgPSAiXG48dHIgYmdjb2xvcj0nI0ZGRkZGRicgIGhlaWdodD0nMjYnb25Nb3VzZU1vdmU9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0Y5RkJGMCc7XCIgb25Nb3VzZU91dD1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkZGRkZGJztcIj4NCiAgIDx0ZD4NCiAgIDxhIGhyZWY9JGFjdGl2ZXVybC8kZmlsZSB0YXJnZXQ9X2JsYW5rPjxpbWcgc3JjPWltYWdlcy9odG0uZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgPHRkIGFsaWduPSdjZW50ZXInPiRmaWxldGltZTwvdGQ+DQogICA8dGQ+DQogICA8YSBocmVmPSckZWR1cmwnPlux4LytXTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLihwaHApI2kiLCRmaWxlKSkNCgl7DQoJCSRlZHVybCA9ICJmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWVkaXQmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCk7DQoJCSRsaW5lID0gIlxuPHRyIGJnY29sb3I9JyNGRkZGRkYnIGhlaWdodD0nMjYnIG9uTW91c2VNb3ZlPVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGQ0ZERUUnO1wiIG9uTW91c2VPdXQ9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7XCI+DQogICA8dGQ+DQogICA8YSBocmVmPSRhY3RpdmV1cmwvJGZpbGUgdGFyZ2V0PV9ibGFuaz48aW1nIHNyYz1pbWFnZXMvcGhwLmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJz4kZmlsZXRpbWU8L3RkPg0KICAgPHRkPg0KICAgPGEgaHJlZj0nJGVkdXJsJz5bseC8rV08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89cmVuYW1lJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlu4xMP7XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1kZWwmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W8m+s/1dPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPW1vdmUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W9LGtq9dPC9hPg0KICAgPC90ZD4NCiAgIDwvdHI+IjsNCgkJJGZpbGVzW10gPSAkbGluZTsNCgl9DQoJZWxzZSBpZihwcmVnX21hdGNoKCIjXC4oanMpI2kiLCRmaWxlKSkNCgl7DQoJCSRlZHVybCA9ICJmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWVkaXQmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCk7DQoJCSRsaW5lID0gIlxuPHRyIGJnY29sb3I9JyNGRkZGRkYnIGhlaWdodD0nMjYnIG9uTW91c2VNb3ZlPVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGQ0ZERUUnO1wiIG9uTW91c2VPdXQ9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7XCI+DQogICA8dGQ+DQogICA8YSBocmVmPSRhY3RpdmV1cmwvJGZpbGUgdGFyZ2V0PV9ibGFuaz48aW1nIHNyYz1pbWFnZXMvanMuZ2lmIGJvcmRlcj0wIHdpZHRoPTE2IGhlaWdodD0xNiBhbGlnbj1hYnNtaWRkbGU+JGZpbGU8L2E+PC90ZD4NCiAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgPHRkIGFsaWduPSdjZW50ZXInPiRmaWxldGltZTwvdGQ+DQogICA8dGQ+DQogICA8YSBocmVmPSckZWR1cmwnPlux4LytXTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1yZW5hbWUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W7jEw/tdPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWRlbCZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5byb6z/V08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICA8L3RkPg0KICAgPC90cj4iOw0KCQkkZmlsZXNbXSA9ICRsaW5lOw0KCX0NCgllbHNlIGlmKHByZWdfbWF0Y2goIiNcLihjc3MpI2kiLCRmaWxlKSkNCgl7DQoJCSRlZHVybCA9ICJmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPWVkaXQmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCk7DQoJCSRsaW5lID0gIlxuPHRyIGJnY29sb3I9JyNGRkZGRkYnIGhlaWdodD0nMjYnIG9uTW91c2VNb3ZlPVwiamF2YXNjcmlwdDp0aGlzLmJnQ29sb3I9JyNGQ0ZERUUnO1wiIG9uTW91c2VPdXQ9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7XCI+DQogICA8dGQ+DQogICA8YSBocmVmPSRhY3RpdmV1cmwvJGZpbGUgdGFyZ2V0PV9ibGFuaz48aW1nIHNyYz1pbWFnZXMvY3NzLmdpZiBib3JkZXI9MCB3aWR0aD0xNiBoZWlnaHQ9MTYgYWxpZ249YWJzbWlkZGxlPiRmaWxlPC9hPjwvdGQ+DQogICA8dGQ+JGZpbGVzaXplIEtCPC90ZD4NCiAgIDx0ZCBhbGlnbj0nY2VudGVyJz4kZmlsZXRpbWU8L3RkPg0KICAgPHRkPg0KICAgPGEgaHJlZj0nJGVkdXJsJz5bseC8rV08L2E+DQogICAmbmJzcDsNCiAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89cmVuYW1lJmZpbGVuYW1lPSIudXJsZW5jb2RlKCRmaWxlKS4iJmFjdGl2ZXBhdGg9Ii51cmxlbmNvZGUoJGFjdGl2ZXBhdGgpLiInPlu4xMP7XTwvYT4NCiAgICZuYnNwOw0KICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1kZWwmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W8m+s/1dPC9hPg0KICAgJm5ic3A7DQogICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPW1vdmUmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W9LGtq9dPC9hPg0KICAgPC90ZD4NCiAgIDwvdHI+IjsNCgkJJGZpbGVzW10gPSAkbGluZTsNCgl9DQoJZWxzZQ0KCXsNCgkJJGxpbmUgPSAiXG48dHIgYmdjb2xvcj0nI0ZGRkZGRicgaGVpZ2h0PScyNicgb25Nb3VzZU1vdmU9XCJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZDRkRFRSc7XCIgb25Nb3VzZU91dD1cImphdmFzY3JpcHQ6dGhpcy5iZ0NvbG9yPScjRkZGRkZGJztcIj4NCiAgICA8dGQ+PGEgaHJlZj0kYWN0aXZldXJsLyRmaWxlIHRhcmdldD1fYmxhbms+JGZpbGU8L3RkPg0KICAgIDx0ZD4kZmlsZXNpemUgS0I8L3RkPg0KICAgIDx0ZCBhbGlnbj0nY2VudGVyJz4kZmlsZXRpbWU8L3RkPg0KICAgIDx0ZD4NCiAgICA8YSBocmVmPSdmaWxlX21hbmFnZV92aWV3LnBocD9mbWRvPXJlbmFtZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5buMTD+108L2E+DQogICAgJm5ic3A7DQogICAgPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1kZWwmZmlsZW5hbWU9Ii51cmxlbmNvZGUoJGZpbGUpLiImYWN0aXZlcGF0aD0iLnVybGVuY29kZSgkYWN0aXZlcGF0aCkuIic+W8m+s/1dPC9hPg0KICAgICZuYnNwOw0KICAgIDxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bW92ZSZmaWxlbmFtZT0iLnVybGVuY29kZSgkZmlsZSkuIiZhY3RpdmVwYXRoPSIudXJsZW5jb2RlKCRhY3RpdmVwYXRoKS4iJz5b0sa2r108L2E+DQogICAgPC90ZD4NCiAgICA8L3RyPiI7DQoJCSRmaWxlc1tdID0gJGxpbmU7DQoJfQ0KfQ0KJGRoLT5jbG9zZSgpOw0KZm9yZWFjaCAoJGRpcnMgYXMgJGRpcikNCnsNCgllY2hvICRkaXI7DQp9DQpmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpDQp7DQoJZWNobyAkZmlsZTsNCn0NCj8+DQo8dHI+DQogIDx0ZCBjb2xzcGFuPSI0IiBoZWlnaHQ9JzI2JyBiZ2NvbG9yPScjRjlGQ0VGJz4NCiAgCTxhIGhyZWY9J2ZpbGVfbWFuYWdlX21haW4ucGhwJz5buPnEv8K8XTwvYT4NCiAgCSZuYnNwOw0KICAJPGEgaHJlZj0nZmlsZV9tYW5hZ2Vfdmlldy5waHA/Zm1kbz1uZXdmaWxlJmFjdGl2ZXBhdGg9PD9waHAgZWNobyB1cmxlbmNvZGUoJGFjdGl2ZXBhdGgpPz4nPlvQwr2ozsS8/l08L2E+DQogIAkmbmJzcDsNCiAgCTxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89bmV3ZGlyJmFjdGl2ZXBhdGg9PD9waHAgZWNobyB1cmxlbmNvZGUoJGFjdGl2ZXBhdGgpPz4nPlvQwr2oxL/CvF08L2E+DQogIAkmbmJzcDsNCiAgCTxhIGhyZWY9J2ZpbGVfbWFuYWdlX3ZpZXcucGhwP2ZtZG89dXBsb2FkJmFjdGl2ZXBhdGg9PD9waHAgZWNobyB1cmxlbmNvZGUoJGFjdGl2ZXBhdGgpPz4nPlvOxLz+yc+0q108L2E+DQogIAkmbmJzcDsNCiAgCTxhIGhyZWY9J2ZpbGVfbWFuYWdlX2NvbnRyb2wucGhwP2ZtZG89c3BhY2UmYWN0aXZlcGF0aD08P3BocCBlY2hvIHVybGVuY29kZSgkYWN0aXZlcGF0aCk/Pic+W7/VvOS87LLpXTwvYT4NCiAgCSZuYnNwOyZuYnNwOzwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCg0KPC9ib2R5Pg0KPC9odG1sPg==
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD08P3BocCBlY2hvICRjZmdfc29mdF9sYW5nOyA/PiI+DQo8dGl0bGU+zbzGrOSvwMDG9zwvdGl0bGU+DQo8bGluayBocmVmPSJjc3MvYmFzZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBnZXRQaWMoc3RyKQ0Kew0KCXZhciBzcyA9IG5ldyBBcnJheSgzKTsNCglzcyA9IHN0ci5zcGxpdCgiQCIpOw0KCXdpbmRvdy5vcGVuZXIuZG9jdW1lbnQuZm9ybTEuaW1nc3JjLnZhbHVlPXNzWzBdOw0KCXdpbmRvdy5vcGVuZXIuZG9jdW1lbnQuZm9ybTEuaW1nd2lkdGgudmFsdWU9c3NbMV07DQoJd2luZG93Lm9wZW5lci5kb2N1bWVudC5mb3JtMS5pbWdoZWlnaHQudmFsdWU9c3NbMl07DQoJd2luZG93Lm9wZW5lci5kb2N1bWVudC5mb3JtMS5waWN2aWV3LnNyYz1zc1swXTsNCgl3aW5kb3cub3BlbmVyPXRydWU7DQogIHdpbmRvdy5jbG9zZSgpOw0KfQ0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keSBsZWZ0bWFyZ2luPSIwIiB0b3BtYXJnaW49IjAiPg0KPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQo8Zm9ybSBuYW1lPSJmb3JtMSI+DQogIDx0cj4NCiAgICA8dGQgaGVpZ2h0PSIxMCIgY29sc3Bhbj0iPD9waHAgZWNobyAkbGlzdFNpemU/PiI+PC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBjb2xzcGFuPSI8P3BocCBlY2hvICRsaXN0U2l6ZT8+Ij4NCgk8dGFibGUgd2lkdGg9Ijk4JSIgYm9yZGVyPSIwIiBhbGlnbj0iY2VudGVyIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEiIGJnY29sb3I9IiNDQ0NDQ0MiPg0KICAgICAgICA8dHI+DQogICAgICAgICAgPHRkIHdpZHRoPSI0JSIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iI0Y5RjlGNyIgaGVpZ2h0PSIyNCI+PGltZyBzcmM9ImltYWdlcy9maWxlX2Rpci5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC90ZD4NCiAgICAgICAgICA8dGQgd2lkdGg9IjU1JSIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iI0Y5RjlGNyI+PGlucHV0IG5hbWU9ImFjdGl2ZXBhdGgiIHR5cGU9InRleHQiIGlkPSJwYXRoIiBzaXplPSIzMCIgIHN0eWxlPSJoZWlnaHQ6MTVwdCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGFjdGl2ZXBhdGg/PiI+PC90ZD4NCiAgICAgICAgICA8dGQgd2lkdGg9IjIwJSIgYmdjb2xvcj0iI0Y5RjlGNyI+DQogICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI2JSI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNDQlIj48aW5wdXQgbmFtZT0iaW1hZ2VGaWVsZCIgdHlwZT0iaW1hZ2UiIHNyYz0iaW1hZ2VzL25leHQuZ2lmIiB3aWR0aD0iNTIiIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowO2hlaWdodDoyMCI+PC90ZD4NCg0KICAgICAgICAgICAgICA8dGQgd2lkdGg9IjUwJSI+PGEgaHJlZj0iZmlsZV9tYW5hZ2VfbWFpbi5waHA/YWN0aXZlcGF0aD08P3BocCBlY2hvICRhY3RpdmVwYXRoPz4iPjxpbWcgc3JjPSJpbWFnZXMvZmlsZV92aWV3LmdpZiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiPjwvYT48L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgIDwvdGFibGU+PC90ZD4NCiAgICAgICAgICA8dGQgd2lkdGg9IjIyJSIgYmdjb2xvcj0iI0Y5RjlGNyI+DQogICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMCI+DQogICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjE4JSIgYWxpZ249InJpZ2h0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZpbGVfdG9wZGlyLmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE3Ij48L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iODIlIj48P3BocCBHZXRQcmVQYXRoKCRhY3RpdmVwYXRoKTsgPz48L3RkPg0KICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPC90YWJsZT48L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgPC90YWJsZT48L3RkPg0KICA8L3RyPg0KICA8dHI+PHRkIGhlaWdodD0iNCIgY29sc3Bhbj0iPD9waHAgZWNobyAkbGlzdFNpemU/PiI+PC90ZD48L3RyPg0KICA8P3BocCBMaXN0UGljKCR0cnVlUGF0aCwkYWN0aXZlcGF0aCk7ID8+DQogIDwvZm9ybT4NCjwvdGFibGU+DQo8L2JvZHk+DQo8L2h0bWw+