name=廣告管理
team=織夢官方
time=2008-11-19
email=admin@dedecms.com
url=www.dedecms.com
hash=72ffa6fabe3c236f9238a2b281bc0f93
indexname=
indexurl=
ismember=0
autosetup=1
autodel=1
lang=big5
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=
RFJPUCBUQUxCRSBJRiBFWElTVFMgYCNAX19teWFkYDsNCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGAjQF9fbXlhZGAgKA0KICBgYWlkYCBtZWRpdW1pbnQoOCkgdW5zaWduZWQgTk9UIE5VTEwgYXV0b19pbmNyZW1lbnQsDQogIGB0eXBlaWRgIHNtYWxsaW50KDUpIHVuc2lnbmVkIE5PVCBOVUxMIGRlZmF1bHQgJzAnLA0KICBgdGFnbmFtZWAgdmFyY2hhcigzMCkgTk9UIE5VTEwgZGVmYXVsdCAnJywNCiAgYGFkbmFtZWAgdmFyY2hhcig2MCkgTk9UIE5VTEwgZGVmYXVsdCAnJywNCiAgYHRpbWVzZXRgIHNtYWxsaW50KDYpIE5PVCBOVUxMIGRlZmF1bHQgJzAnLA0KICBgc3RhcnR0aW1lYCBpbnQoMTApIHVuc2lnbmVkIE5PVCBOVUxMIGRlZmF1bHQgJzAnLA0KICBgZW5kdGltZWAgaW50KDEwKSB1bnNpZ25lZCBOT1QgTlVMTCBkZWZhdWx0ICcwJywNCiAgYG5vcm1ib2R5YCB0ZXh0LA0KICBgZXhwYm9keWAgdGV4dCwNCiAgUFJJTUFSWSBLRVkgIChgYWlkYCksDQogIEtFWSBgdGFnbmFtZWAgKGB0YWduYW1lYCxgdHlwZWlkYCxgdGltZXNldGAsYGVuZHRpbWVgLGBzdGFydHRpbWVgKQ0KKSBUWVBFPU15SVNBTTsNCkRlbGV0ZSBGcm9tIGAjQF9fcGx1c2Agd2hlcmUgcGx1c25hbWUgbGlrZSAnvHOnabresnonOw0KSU5TRVJUIElOVE8gYCNAX19wbHVzYCAoYHBsdXNuYW1lYCwgYG1lbnVzdHJpbmdgLCBgbWFpbnVybGAsIGB3cml0ZXJgLCBgaXNzaG93YCwgYGZpbGVsaXN0YCkgVkFMVUVTICgnvHOnabresnonLCAnPG06aXRlbSBuYW1lPScnvHOnabresnonJyBsaW5rPScnYWRfbWFpbi5waHAnJyByYW5rPScncGx1c1+8c6dput6yeicnIHRhcmdldD0nJ21haW4nJyAvPicsICcnLCAnwrS52ql4pOgnLCAxLCAnJyk7
RGVsZXRlIEZyb20gYCNAX19wbHVzYCB3aGVyZSBwbHVzbmFtZSBsaWtlICe8c6dput6yeic7DQpEUk9QIFRBQkxFIElGIEVYSVNUUyBgI0BfX215YWRgOw==
../dede/ad_add.php
../dede/ad_edit.php
../dede/ad_main.php
../dede/templets/ad_add.htm
../dede/templets/ad_edit.htm
../dede/templets/ad_main.htm
../plus/ad_js.php
../include/taglib/myad.lib.php
PD9waHANCi8qKg0KICogvHOnabJLpVsNCiAqDQogKiBAdmVyc2lvbiAgICAgICAgJElkOiBhZF9hZGQucGhwIDEgODoyNiAyMDEwpn43pOsxMqTpWiB0aWFueWEgJA0KICogQHBhY2thZ2UgICAgICAgIERlZGVDTVMuQWRtaW5pc3RyYXRvcg0KICogQGNvcHlyaWdodCAgICAgIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMTAsIERlc0RldiwgSW5jLg0KICogQGxpY2Vuc2UgICAgICAgIGh0dHA6Ly9oZWxwLmRlZGVjbXMuY29tL3VzZXJzZ3VpZGUvbGljZW5zZS5odG1sDQogKiBAbGluayAgICAgICAgICAgaHR0cDovL3d3dy5kZWRlY21zLmNvbQ0KICovDQogDQpyZXF1aXJlKGRpcm5hbWUoX19GSUxFX18pLiIvY29uZmlnLnBocCIpOw0KQ2hlY2tQdXJ2aWV3KCdwbHVzX7xzp2m63rJ6Jyk7DQpyZXF1aXJlX29uY2UgREVERUlOQy4iL3R5cGVsaW5rLmNsYXNzLnBocCI7DQppZihlbXB0eSgkZG9wb3N0KSkgJGRvcG9zdCA9ICIiOw0KDQppZigkZG9wb3N0PT0ic2F2ZSIpDQp7DQogICAgLy90aW1lc2V0IHRhZ25hbWUgdHlwZWlkIG5vcm1ib2R5IGV4cGJvZHkNCiAgICAkdGFnbmFtZSA9IHRyaW0oJHRhZ25hbWUpOw0KICAgICRyb3cgPSAkZHNxbC0+R2V0T25lKCJTRUxFQ1QgdHlwZWlkIEZST00gI0BfX215YWQgV0hFUkUgdHlwZWlkPSckdHlwZWlkJyBBTkQgdGFnbmFtZSBMSUtFICckdGFnbmFtZSciKTsNCiAgICBpZihpc19hcnJheSgkcm93KSkNCiAgICB7DQogICAgICAgIFNob3dNc2coIqZirNumUMTmpdikVaR3uGemc6ZiplCmV6q6vNCwT6FJIiwiLTEiKTsNCiAgICAgICAgZXhpdCgpOw0KICAgIH0NCiAgICAkc3RhcnR0aW1lID0gR2V0TWtUaW1lKCRzdGFydHRpbWUpOw0KICAgICRlbmR0aW1lID0gR2V0TWtUaW1lKCRlbmR0aW1lKTsNCiAgICBpZigkbm9ybWJvZHlbJ3N0eWxlJ109PSdjb2RlJykNCiAgICB7DQogICAgICAgICRub3JtYm9keSA9ICRub3JtYm9keVsnaHRtbGNvZGUnXTsNCiAgICB9DQogICAgZWxzZSBpZigkbm9ybWJvZHlbJ3N0eWxlJ109PSd0eHQnKQ0KICAgIHsNCiAgICAgICAgJG5vcm1ib2R5ID0gIjxhIGhyZWY9XCJ7JG5vcm1ib2R5WydsaW5rJ119XCIgZm9udC1zaXplPVwieyRub3JtYm9keVsnc2l6ZSddfVwiIGNvbG9yPVwieyRub3JtYm9keVsnY29sb3InXX1cIj57JG5vcm1ib2R5Wyd0aXRsZSddfTwvYT4iOw0KICAgIH0NCiAgICBlbHNlIGlmKCRub3JtYm9keVsnc3R5bGUnXT09J2ltZycpDQogICAgew0KICAgICAgICBpZihlbXB0eSgkbm9ybWJvZHlbJ3dpZHRoJ10pKQ0KICAgICAgICB7DQogICAgICAgICAgICAkd2lkdGggPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR3aWR0aCA9ICIgd2lkdGg9XCJ7JG5vcm1ib2R5Wyd3aWR0aCddfVwiIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW1wdHkoJG5vcm1ib2R5WydoZWlnaHQnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRoZWlnaHQgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICRoZWlnaHQgPSAiaGVpZ2h0PVwieyRub3JtYm9keVsnaGVpZ2h0J119XCIiOw0KICAgICAgICB9DQogICAgICAgICRub3JtYm9keSA9ICI8YSBocmVmPVwieyRub3JtYm9keVsnbGluayddfVwiPjxpbWcgc3JjPVwieyRub3JtYm9keVsndXJsJ119XCIkd2lkdGggJGhlaWdodCBib3JkZXI9XCIwXCIgLz48L2E+IjsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgaWYoZW1wdHkoJG5vcm1ib2R5Wyd3aWR0aCddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHdpZHRoID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkd2lkdGggPSAiIHdpZHRoPVwieyRub3JtYm9keVsnd2lkdGgnXX1cIiI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVtcHR5KCRub3JtYm9keVsnaGVpZ2h0J10pKQ0KICAgICAgICB7DQogICAgICAgICAgICAkaGVpZ2h0ID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkaGVpZ2h0ID0gImhlaWdodD1cInskbm9ybWJvZHlbJ2hlaWdodCddfVwiIjsNCiAgICAgICAgfQ0KICAgICAgICAkbm9ybWJvZHkgPSAiPG9iamVjdCBjbGFzc2lkPVwiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwXCIgY29kZWJhc2U9XCJodHRwOi8vZG93bmxvYWQuTWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249NywwLDE5LDBcIiR3aWR0aCAkaGVpZ2h0PjxwYXJhbSBuYW1lPVwibW92aWVcIiB2YWx1ZT1cInskbm9ybWJvZHlbJ2xpbmsnXX1cIi8+PHBhcmFtIG5hbWU9XCJxdWFsaXR5XCIgdmFsdWU9XCJoaWdoXCIvPjwvb2JqZWN0PiI7DQogICAgfQ0KICAgICRxdWVyeSA9ICINCiAgICAgSU5TRVJUIElOVE8gI0BfX215YWQodHlwZWlkLHRhZ25hbWUsYWRuYW1lLHRpbWVzZXQsc3RhcnR0aW1lLGVuZHRpbWUsbm9ybWJvZHksZXhwYm9keSkNCiAgICAgVkFMVUVTKCckdHlwZWlkJywnJHRhZ25hbWUnLCckYWRuYW1lJywnJHRpbWVzZXQnLCckc3RhcnR0aW1lJywnJGVuZHRpbWUnLCckbm9ybWJvZHknLCckZXhwYm9keScpOw0KICAgICI7DQogICAgJGRzcWwtPkV4ZWN1dGVOb25lUXVlcnkoJHF1ZXJ5KTsNCiAgICBTaG93TXNnKCKmqKVcvFelW6RArdO8c6dpoUkiLCJhZF9tYWluLnBocCIpOw0KICAgIGV4aXQoKTsNCn0NCiRzdGFydERheSA9IHRpbWUoKTsNCiRlbmREYXkgPSBBZGREYXkoJHN0YXJ0RGF5LDMwKTsNCiRzdGFydERheSA9IEdldERhdGVUaW1lTWsoJHN0YXJ0RGF5KTsNCiRlbmREYXkgPSBHZXREYXRlVGltZU1rKCRlbmREYXkpOw0KaW5jbHVkZSBEZWRlSW5jbHVkZSgndGVtcGxldHMvYWRfYWRkLmh0bScpOw==
PD9waHANCi8qKg0KICogvHOnab1zv+gNCiAqDQogKiBAdmVyc2lvbiAgICAgICAgJElkOiBhZF9lZGl0LnBocCAxIDg6MjYgMjAxMKZ+N6TrMTKk6VogdGlhbnlhICQNCiAqIEBwYWNrYWdlICAgICAgICBEZWRlQ01TLkFkbWluaXN0cmF0b3INCiAqIEBjb3B5cmlnaHQgICAgICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDEwLCBEZXNEZXYsIEluYy4NCiAqIEBsaWNlbnNlICAgICAgICBodHRwOi8vaGVscC5kZWRlY21zLmNvbS91c2Vyc2d1aWRlL2xpY2Vuc2UuaHRtbA0KICogQGxpbmsgICAgICAgICAgIGh0dHA6Ly93d3cuZGVkZWNtcy5jb20NCiAqLw0KcmVxdWlyZShkaXJuYW1lKF9fRklMRV9fKS4iL2NvbmZpZy5waHAiKTsNCkNoZWNrUHVydmlldygncGx1c1+8c6dput6yeicpOw0KcmVxdWlyZV9vbmNlKERFREVJTkMuJy90eXBlbGluay5jbGFzcy5waHAnKTsNCmlmKGVtcHR5KCRkb3Bvc3QpKSAkZG9wb3N0ID0gJyc7DQokYWlkID0gcHJlZ19yZXBsYWNlKCIjW14wLTldIyIsICcnLCAkYWlkKTsNCiRFTlZfR09CQUNLX1VSTCA9IGVtcHR5KCRfQ09PS0lFWydFTlZfR09CQUNLX1VSTCddKSA/ICJhZF9tYWluLnBocCIgOiAkX0NPT0tJRVsnRU5WX0dPQkFDS19VUkwnXTsNCg0KaWYoJGRvcG9zdD09J2RlbGV0ZScpDQp7DQogICAgJGRzcWwtPkV4ZWN1dGVOb25lUXVlcnkoIkRFTEVURSBGUk9NIGAjQF9fbXlhZGAgV0hFUkUgYWlkPSckYWlkJyAiKTsNCiAgICBTaG93TXNnKCKmqKVcp1Kwo6RAq2i8c6dppU69WKFJIiwkRU5WX0dPQkFDS19VUkwpOw0KICAgIGV4aXQoKTsNCn0NCmVsc2UgaWYoJGRvcG9zdD09ImdldGpzIikNCnsNCiAgICByZXF1aXJlX29uY2UoREVERUlOQy4nL294d2luZG93LmNsYXNzLnBocCcpOw0KICAgICRqc2NvZGUgPSAiPHNjcmlwdCBzcmM9J3skY2ZnX3BocHVybH0vYWRfanMucGhwP2FpZD0kYWlkJyBsYW5ndWFnZT0namF2YXNjcmlwdCc+PC9zY3JpcHQ+IjsNCiAgICAkc2hvd2h0bWwgPSAiPHhtcCBzdHlsZT0nY29sb3I6IzMzMzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYnPlxyXG5cclxuJGpzY29kZVxyXG5cclxuPC94bXA+IjsNCiAgICAkc2hvd2h0bWwgLj0gIrl3xP2hRzxpZnJhbWUgbmFtZT0ndGVzdGZybScgZnJhbWVib3JkZXI9JzAnIHNyYz0nYWRfZWRpdC5waHA/YWlkPXskYWlkfSZkb3Bvc3Q9dGVzdGpzJyBpZD0ndGVzdGZybScgd2lkdGg9JzEwMCUnIGhlaWdodD0nMjAwJz48L2lmcmFtZT4iOw0KICAgICR3aW50aXRsZSA9ICK8c6dput6yei3A8qj6SlMiOw0KICAgICR3ZWNvbWVfaW5mbyA9ICI8YSBocmVmPSdhZF9tYWluLnBocCc+PHU+vHOnabresno8L3U+PC9hPjo6wPKo+kpTIjsNCiAgICAkd2luID0gbmV3IE94V2luZG93KCk7DQogICAgJHdpbi0+SW5pdCgpOw0KICAgICR3aW4tPkFkZFRpdGxlKCKlSKRVrLC/76l3vHOnaaq6SlO91aXOpU69WKFHIik7DQogICAgJHdpbmZvcm0gPSAkd2luLT5HZXRXaW5kb3coImhhbmQiLCRzaG93aHRtbCk7DQogICAgJHdpbi0+RGlzcGxheSgpOw0KICAgIGV4aXQoKTsNCn0NCmVsc2UgaWYoJGRvcG9zdD09J3Rlc3RqcycpDQp7DQogICAgZWNobyAiPHNjcmlwdCBzcmM9J3skY2ZnX3BocHVybH0vYWRfanMucGhwP2FpZD0kYWlkJm5vY2FjaGU9MScgbGFuZ3VhZ2U9J2phdmFzY3JpcHQnPjwvc2NyaXB0PiI7DQogICAgZXhpdCgpOw0KfQ0KZWxzZSBpZigkZG9wb3N0PT0nc2F2ZWVkaXQnKQ0Kew0KICAgICRzdGFydHRpbWUgPSBHZXRNa1RpbWUoJHN0YXJ0dGltZSk7DQogICAgJGVuZHRpbWUgPSBHZXRNa1RpbWUoJGVuZHRpbWUpOw0KICAgICRxdWVyeSA9ICJVUERBVEUgYCNAX19teWFkYA0KICAgICBTRVQNCiAgICAgdHlwZWlkPSckdHlwZWlkJywNCiAgICAgYWRuYW1lPSckYWRuYW1lJywNCiAgICAgdGltZXNldD0nJHRpbWVzZXQnLA0KICAgICBzdGFydHRpbWU9JyRzdGFydHRpbWUnLA0KICAgICBlbmR0aW1lPSckZW5kdGltZScsDQogICAgIG5vcm1ib2R5PSckbm9ybWJvZHknLA0KICAgICBleHBib2R5PSckZXhwYm9keScNCiAgICAgV0hFUkUgYWlkPSckYWlkJw0KICAgICAiOw0KICAgICRkc3FsLT5FeGVjdXRlTm9uZVF1ZXJ5KCRxdWVyeSk7DQogICAgU2hvd01zZygipqilXKfzp++kQKtovHOnaaVOvVihSSIsJEVOVl9HT0JBQ0tfVVJMKTsNCiAgICBleGl0KCk7DQp9DQokcm93ID0gJGRzcWwtPkdldE9uZSgiU0VMRUNUICogRlJPTSBgI0BfX215YWRgIFdIRVJFIGFpZD0nJGFpZCciKTsNCmluY2x1ZGUgRGVkZUluY2x1ZGUoJ3RlbXBsZXRzL2FkX2VkaXQuaHRtJyk7
PD9waHANCi8qKg0KICogvHOnabresnoNCiAqDQogKiBAdmVyc2lvbiAgICAgICAgJElkOiBhZF9tYWluLnBocCAxIDg6MjYgMjAxMKZ+N6TrMTKk6VogdGlhbnlhICQNCiAqIEBwYWNrYWdlICAgICAgICBEZWRlQ01TLkFkbWluaXN0cmF0b3INCiAqIEBjb3B5cmlnaHQgICAgICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDEwLCBEZXNEZXYsIEluYy4NCiAqIEBsaWNlbnNlICAgICAgICBodHRwOi8vaGVscC5kZWRlY21zLmNvbS91c2Vyc2d1aWRlL2xpY2Vuc2UuaHRtbA0KICogQGxpbmsgICAgICAgICAgIGh0dHA6Ly93d3cuZGVkZWNtcy5jb20NCiAqLw0KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvY29uZmlnLnBocCcpOw0KcmVxdWlyZV9vbmNlKERFREVJTkMuJy9kYXRhbGlzdGNwLmNsYXNzLnBocCcpOw0KcmVxdWlyZV9vbmNlKERFREVJTkMuJy9jb21tb24uZnVuYy5waHAnKTsNCnNldGNvb2tpZSgnRU5WX0dPQkFDS19VUkwnLCRkZWRlTm93dXJsLHRpbWUoKSszNjAwLCcvJyk7DQoNCiRzcWwgPSAiU0VMRUNUIGFkLmFpZCxhZC50YWduYW1lLHRwLnR5cGVuYW1lLGFkLmFkbmFtZSxhZC50aW1lc2V0LGFkLmVuZHRpbWUNCkZST00gYCNAX19teWFkYCBhZCBMRUZUIEpPSU4gYCNAX19hcmN0eXBlYCB0cCBvbiB0cC5pZD1hZC50eXBlaWQNCk9SREVSIEJZIGFkLmFpZCBkZXNjIjsNCg0KJGRsaXN0ID0gbmV3IERhdGFMaXN0Q1AoKTsNCiRkbGlzdC0+U2V0VGVtcGxldChERURFQURNSU4uIi90ZW1wbGV0cy9hZF9tYWluLmh0bSIpOw0KJGRsaXN0LT5TZXRTb3VyY2UoJHNxbCk7DQokZGxpc3QtPmRpc3BsYXkoKTsNCg0KZnVuY3Rpb24gVGVzdFR5cGUoJHRuYW1lKQ0Kew0KICAgIGlmKCR0bmFtZT09IiIpDQogICAgew0KICAgICAgICByZXR1cm4gIqnSprPE5qXYIjsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgcmV0dXJuICR0bmFtZTsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIFRpbWVTZXRWYWx1ZSgkdHMpDQp7DQogICAgaWYoJHRzPT0wKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuICKko62trsm2oSI7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgIHJldHVybiAira2uybzQsE8iOw0KICAgIH0NCn0=
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD08P3BocCBlY2hvICRjZmdfc29mdF9sYW5nOyA/PiI+DQo8dGl0bGU+vFelW7xzp2k8L3RpdGxlPg0KPGxpbmsgaHJlZj0iY3NzL2Jhc2UuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2NhbGVuZGFyL2NhbGVuZGFyLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSIuLi9pbmNsdWRlL2pzL2pxdWVyeS9qcXVlcnkuanMiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBjaGVja1N1Ym1pdCgpDQp7DQoJaWYoZG9jdW1lbnQuZm9ybTEudGFnbmFtZS52YWx1ZT09IiIpDQoJew0KCQlhbGVydCgivHOnabzQw9Gko6/grLCqxaFJIik7DQoJCWRvY3VtZW50LmZvcm0xLnRhZ25hbWUuZm9jdXMoKTsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCn0NCg0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keSBiYWNrZ3JvdW5kPSJpbWFnZXMvYWxsYmcuZ2lmIiBsZWZ0bWFyZ2luPSc4JyB0b3BtYXJnaW49JzgnPg0KPHRhYmxlIHdpZHRoPSI5OCUiIGJvcmRlcj0iMCIgYWxpZ249ImNlbnRlciIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBiZ2NvbG9yPSIjRDZENkQ2Ij4NCiAgPHRyPg0KICAgIDx0ZCBoZWlnaHQ9IjI4IiBiYWNrZ3JvdW5kPSJpbWFnZXMvdGJnLmdpZiIgc3R5bGU9InBhZGRpbmctbGVmdDoxMHB4OyI+PGI+PGEgaHJlZj0iYWRfbWFpbi5waHAiPjx1Prxzp2m63rJ6PC91PjwvYT48L2I+ICZndDsmZ3Q7ILxXpVu8c6dppuy4bSA8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogICAgPHRkIGhlaWdodD0iMjAwIiBiZ2NvbG9yPSIjRkZGRkZGIiB2YWxpZ249InRvcCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSI0IiBjZWxscGFkZGluZz0iNCI+DQogICAgICAgIDxmb3JtIGFjdGlvbj0iYWRfYWRkLnBocCIgbWV0aG9kPSJwb3N0IiBuYW1lPSJmb3JtMSIgb25TdWJtaXQ9InJldHVybiBjaGVja1N1Ym1pdCgpIj4NCiAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdkb3Bvc3QnIHZhbHVlPSdzYXZlJz4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgaGVpZ2h0PSIyNSIgY29sc3Bhbj0iMyI+vHOnaaVOvViqur3Vpc6k6KproUd7ZGVkZTpteWFkIG5hbWU9J7xzp2mm7LzQw9EnL30gPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjI1IiBhbGlnbj0iY2VudGVyIj68c6dppuy80MPRoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxpbnB1dCBuYW1lPSJ0YWduYW1lIiB0eXBlPSJ0ZXh0IiBpZD0idGFnbmFtZSIgY2xhc3M9J2lwdHh0JyAvPg0KICAgICAgICAgICAgICChXajPpc6tXqTlqc68xqZyqu2l3Kq6wrK85LzQw9GhXjwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgd2lkdGg9IjE1JSIgaGVpZ2h0PSIyNSIgYWxpZ249ImNlbnRlciI+vHOnaafrqfG9ZLPyoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjw/cGhwDQoJCQkkdGwgPSBuZXcgVHlwZUxpbmsoMCk7DQoJCQkkdHlwZU9wdGlvbnMgPSAkdGwtPkdldE9wdGlvbkFycmF5KDAsMCwwKTsNCgkJCWVjaG8gIjxzZWxlY3QgbmFtZT0ndHlwZWlkJyBzdHlsZT0nd2lkdGg6MzAwcHgnPlxyXG4iOw0KCQkJZWNobyAiPG9wdGlvbiB2YWx1ZT0nMCcgc2VsZWN0ZWQ+p+up8aZiqFOms6ZQple80MPRqrqp0qazxOal2Dwvb3B0aW9uPlxyXG4iOw0KCQkJZWNobyAkdHlwZU9wdGlvbnM7DQoJCQllY2hvICI8L3NlbGVjdD4iOw0KCQkJPz4NCiAgICAgICAgICAgICAgPGJyPg0KICAgICAgICAgICAgICChXaZwqkemYqnSv+/E5qXYp+Sko6jsq/ypd7zQw9Gqurxzp2mkuq5loUGodLLOt3ym27DKt2qvwaT3xOal2KFePC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjI1IiBhbGlnbj0iY2VudGVyIj68c6dppuymV7rZoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxpbnB1dCBuYW1lPSJhZG5hbWUiIHR5cGU9InRleHQiIGlkPSJhZG5hbWUiIHNpemU9IjMwIiBjbGFzcz0naXB0eHQnIC8+PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjI1IiBhbGlnbj0iY2VudGVyIj6uybahra2o7qFHPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgbmFtZT0idGltZXNldCIgdHlwZT0icmFkaW8iIGNsYXNzPSJucCIgdmFsdWU9IjAiIGNoZWNrZWQ9JzEnIGlkPSJub3RpbWVsaW1pdCIgLz4NCiAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibm90aW1lbGltaXQiPqXDpKO5TLTBPC9sYWJlbD4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ0aW1lc2V0IiBjbGFzcz0ibnAiIHZhbHVlPSIxIiBpZD0idGltZWxpbWl0Ii8+DQogICAgICAgICAgICAgIDxsYWJlbCBmb3I9InRpbWVsaW1pdCI+pmKzXaS6rsm2oaS6prOuxDwvbGFiZWw+PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjI1IiBhbGlnbj0iY2VudGVyIj62falsrsm2oaFHPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgbmFtZT0ic3RhcnR0aW1lIiB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnR0aW1lIiB2YWx1ZT0iPD9waHAgZWNobyAkc3RhcnREYXk/PiIgY2xhc3M9J2lwdHh0Jy8+DQogICAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCQkJCQlDYWxlbmRhci5zZXR1cCh7DQoJCQkJCQkJaW5wdXRGaWVsZCAgICAgOiAgICAic3RhcnR0aW1lIiwNCgkJCQkJCQlpZkZvcm1hdCAgICAgICA6ICAgICIlWS0lbS0lZCAlSDolTSIsDQoJCQkJCQkJc2hvd3NUaW1lICAgICAgOiAgICB0cnVlLA0KCQkJCQkJCXRpbWVGb3JtYXQgICAgIDogICAgIjI0Ig0KCQkJCQkJfSk7DQoJCQkJIDwvc2NyaXB0PjwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgaGVpZ2h0PSIyNSIgYWxpZ249ImNlbnRlciI+tbKn9K7JtqGhRzwvdGQ+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PGlucHV0IG5hbWU9ImVuZHRpbWUiIHR5cGU9InRleHQiIGlkPSJlbmR0aW1lIiB2YWx1ZT0iPD9waHAgZWNobyAkZW5kRGF5Pz4iIGNsYXNzPSdpcHR4dCcvPg0KICAgICAgICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkJCQkJQ2FsZW5kYXIuc2V0dXAoew0KCQkJCQkJCWlucHV0RmllbGQgICAgIDogICAgImVuZHRpbWUiLA0KCQkJCQkJCWlmRm9ybWF0ICAgICAgIDogICAgIiVZLSVtLSVkICVIOiVNIiwNCgkJCQkJCQlzaG93c1RpbWUgICAgICA6ICAgIHRydWUsDQoJCQkJCQkJdGltZUZvcm1hdCAgICAgOiAgICAiMjQiDQoJCQkJCQl9KTsNCgkJCQkgPC9zY3JpcHQ+PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjgwIiBhbGlnbj0iY2VudGVyIj6uabJ7pOimoaFHPC90ZD4NCiAgICAgICAgICAgIDx0ZCB3aWR0aD0iNzYlIj48c2VsZWN0IGlkPSJhZHN0eWxlIiBuYW1lPSJub3JtYm9keVtzdHlsZV0iIG9uQ2hhbmdlPSJzaG93Y29kZSh0aGlzLm9wdGlvbnNbdGhpcy5zZWxlY3RlZEluZGV4XS52YWx1ZSkiPg0KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImNvZGUiID6lTr1YPC9vcHRpb24+DQogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idHh0IiA+pOWmcjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImltZyIgPrnPpPk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmbGFzaCIgPkZsYXNoPC9vcHRpb24+DQogICAgICAgICAgICAgIDwvc2VsZWN0PjwvdGQ+DQogICAgICAgICAgICA8dGQgd2lkdGg9IjklIj4mbmJzcDs8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGhlaWdodD0iODAiIGFsaWduPSJjZW50ZXIiPrxzp2mkuq5loUc8L3RkPg0KICAgICAgICAgICAgPHRkPjxkaXYgaWQ9J2FkdmVydCc+DQogICAgICAgICAgICAgICA8ZGl2IGlkPSJjb2RlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQogICAgICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGNsYXNzPSJpX3RhYmxlIj4NCiAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iYiI+DQogICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iMzAlIj48Yj68c6dppU69WDo8L2I+PGJyPg0KICAgICAgICAgICAgICAgICAgICAgIL3QtvG8Z7xzp2mlTr1YoUGk5Kv5aHRtbKVOvVg8L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+PHRleHRhcmVhIG5hbWU9Im5vcm1ib2R5W2h0bWxjb2RlXSIgcm93cz0iNSIgY29scz0iNTAiPjwvdGV4dGFyZWE+PC90ZD4NCiAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDxkaXYgaWQ9InR4dCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9MyBjZWxsc3BhY2luZz0xIGNsYXNzPWlfdGFibGU+DQogICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiIgd2lkdGg9IjMwJSI+PGI+pOWmcqS6rmUqPC9iPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiI+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjcwIiBuYW1lPSJub3JtYm9keVt0aXRsZV0iIHZhbHVlPSIiIGNsYXNzPSdpcHR4dCcvPjwvdGQ+DQogICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxiPqTlpnLD7LG1KjwvYj48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI3MCIgbmFtZT0ibm9ybWJvZHlbbGlua10iIHZhbHVlPSIiIGNsYXNzPSdpcHR4dCcvPjwvdGQ+DQogICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxiPqTlpnLDQ6biPC9iPiio0qZwOnJlZCwjRUY4Njg0KTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiI+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjEwIiBuYW1lPSJub3JtYm9keVtjb2xvcl0iIHZhbHVlPSIiIGNsYXNzPSdpcHR4dCcvPjwvdGQ+DQogICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxiPqTlpnKkaqRwPC9iPiio0qZwOjRweCwxMnB4KTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiI+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjEwIiBuYW1lPSJub3JtYm9keVtzaXplXSIgdmFsdWU9IiIgY2xhc3M9J2lwdHh0Jy8+PC90ZD4NCiAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDxkaXYgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9MyBjZWxsc3BhY2luZz0xIGNsYXNzPWlfdGFibGU+DQogICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiIgd2lkdGg9IjMwJSI+PGI+uc+k+aZhp30qPC9iPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiI+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBuYW1lPSJub3JtYm9keVt1cmxdIiB2YWx1ZT0iIiBjbGFzcz0naXB0eHQnLz48L3RkPg0KICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48Yj65z6T5w+yxtSo8L2I+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9Im5vcm1ib2R5W2xpbmtdIiB2YWx1ZT0iIiBjbGFzcz0naXB0eHQnLz48L3RkPg0KICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48Yj65z6T5vGWr1zwvYj48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbmFtZT0ibm9ybWJvZHlbd2lkdGhdIiB2YWx1ZT0iIiBjbGFzcz0naXB0eHQnLz48L3RkPg0KICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48Yj65z6T5sKqr1zwvYj48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbmFtZT0ibm9ybWJvZHlbaGVpZ2h0XSIgdmFsdWU9IiIgY2xhc3M9J2lwdHh0Jy8+PC90ZD4NCiAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYiI+PGI+uc+k+bR5rXo8L2I+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9Im5vcm1ib2R5W2Rlc2NyaXBdIiB2YWx1ZT0iIiBjbGFzcz0naXB0eHQnLz48L3RkPg0KICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBpZD0iZmxhc2giIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCiAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9MSBjbGFzcz1pX3RhYmxlPg0KICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiIHdpZHRoPSIzMCUiPjxiPmZsYXNow+yxtTwvYj48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0ibm9ybWJvZHlbbGlua10iIHZhbHVlPSIiIGNsYXNzPSdpcHR4dCcvPjwvdGQ+DQogICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxiPmZsYXNovGWr1zwvYj48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0ibm9ybWJvZHlbd2lkdGhdIiB2YWx1ZT0iIiBjbGFzcz0naXB0eHQnLz48L3RkPg0KICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48Yj5mbGFzaLCqq9c8L2I+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJiIj48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9Im5vcm1ib2R5W2hlaWdodF0iIHZhbHVlPSIiIGNsYXNzPSdpcHR4dCcvPjwvdGQ+DQogICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPC9kaXY+DQo8L3RkPg0KICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgaGVpZ2h0PSI4MCIgYWxpZ249ImNlbnRlciI+uUy0wcXjpdykuq5loUc8L3RkPg0KICAgICAgICAgICAgPHRkPjx0ZXh0YXJlYSBuYW1lPSJleHBib2R5IiByb3dzPSIxMCIgaWQ9ImV4cGJvZHkiIHN0eWxlPSJ3aWR0aDo2MCU7aGVpZ2h0OjEwMCI+PC90ZXh0YXJlYT48L3RkPg0KICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgaGVpZ2h0PSI1MyIgYWxpZ249ImNlbnRlciI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgbmFtZT0iaW1hZ2VGaWVsZCIgdHlwZT0iaW1hZ2UiIHNyYz0iaW1hZ2VzL2J1dHRvbl9vay5naWYiIHdpZHRoPSI2MCIgaGVpZ2h0PSIyMiIgYm9yZGVyPSIwIiBjbGFzcz0ibnAiIC8+PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L2Zvcm0+DQogICAgICA8L3RhYmxlPjwvdGQ+DQogIDwvdHI+DQo8L3RhYmxlPg0KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+DQpmdW5jdGlvbiBzaG93Y29kZShpZE5hbWUpew0KCWpRdWVyeSgiI2FkdmVydD5kaXYiKS5oaWRlKCk7DQoJalF1ZXJ5KCIjYWR2ZXJ0PiMiK2lkTmFtZSkuc2hvdygpDQp9DQpzaG93Y29kZSgnY29kZScpOw0KPC9zY3JpcHQ+DQo8L2JvZHk+DQo8L2h0bWw+
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD08P3BocCBlY2hvICRjZmdfc29mdF9sYW5nOyA/PiI+DQo8dGl0bGU+p/On77xzp2k8L3RpdGxlPg0KPGxpbmsgaHJlZj0iY3NzL2Jhc2UuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2NhbGVuZGFyL2NhbGVuZGFyLmpzIj48L3NjcmlwdD4NCjwvaGVhZD4NCjxib2R5IGJhY2tncm91bmQ9ImltYWdlcy9hbGxiZy5naWYiIGxlZnRtYXJnaW49JzgnIHRvcG1hcmdpbj0nOCc+DQo8dGFibGUgd2lkdGg9Ijk4JSIgYm9yZGVyPSIwIiBhbGlnbj0iY2VudGVyIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGJnY29sb3I9IiNENkQ2RDYiPg0KICA8dHI+DQogICAgPHRkIGhlaWdodD0iMjgiIGJhY2tncm91bmQ9ImltYWdlcy90YmcuZ2lmIiBzdHlsZT0icGFkZGluZy1sZWZ0OjEwcHg7Ij4mbmJzcDs8Yj48YSBocmVmPSJhZF9tYWluLnBocCI+PHU+vHOnabresno8L3U+PC9hPjwvYj4gJmd0OyZndDsgp/On77xzp2kgPC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBoZWlnaHQ9IjIwMCIgYmdjb2xvcj0iI0ZGRkZGRiIgdmFsaWduPSJ0b3AiPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iNCIgY2VsbHBhZGRpbmc9IjQiPg0KICAgICAgICA8Zm9ybSBhY3Rpb249ImFkX2VkaXQucGhwIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9ImZvcm0xIj4NCiAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhaWQnIHZhbHVlPSc8P3BocCBlY2hvICRhaWQ/Pic+DQogICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZG9wb3N0JyB2YWx1ZT0nc2F2ZWVkaXQnPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjI1IiBhbGlnbj0iY2VudGVyIj68c6dppuy80MPRoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjw/cGhwIGVjaG8gJHJvd1sndGFnbmFtZSddOyA/PjwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgd2lkdGg9IjE1JSIgaGVpZ2h0PSIyNSIgYWxpZ249ImNlbnRlciI+vHOnaafrqfG9ZLPyoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjw/cGhwDQogICAgICAgICAgIAkkdGwgPSBuZXcgVHlwZUxpbmsoMCk7DQogICAgICAgICAgIAkkdHlwZU9wdGlvbnMgPSAkdGwtPkdldE9wdGlvbkFycmF5KCRyb3dbJ3R5cGVpZCddLDAsMCk7DQogICAgICAgICAgICBlY2hvICI8c2VsZWN0IG5hbWU9J3R5cGVpZCcgc3R5bGU9J3dpZHRoOjMwMHB4Jz5cclxuIjsNCiAgICAgICAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9JzAnIHNlbGVjdGVkPqfrqfGmYqhTprOmUKZXvNDD0aq6qdKms8Tmpdg8L29wdGlvbj5cclxuIjsNCiAgICAgICAgICAgIGVjaG8gJHR5cGVPcHRpb25zOw0KICAgICAgICAgICAgZWNobyAiPC9zZWxlY3Q+IjsNCgkJCT8+DQogICAgICAgICAgICAgIDxicj4NCiAgICAgICAgICAgICAgoV2mcKpHpmKp0r/vxOal2KfkpKOo7Kv8qXe80MPRqrq8c6dppLquZaFBqHSyzrd8ptuwyrdqr8Gk98TmpdihXiA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGhlaWdodD0iMjUiIGFsaWduPSJjZW50ZXIiPrxzp2mm7KZXutmhRzwvdGQ+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PGlucHV0IG5hbWU9ImFkbmFtZSIgdHlwZT0idGV4dCIgaWQ9ImFkbmFtZSIgc2l6ZT0iMzAiIHZhbHVlPSI8P3BocCBlY2hvICRyb3dbJ2FkbmFtZSddPz4iIGNsYXNzPSdpcHR4dCcgLz48L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGhlaWdodD0iMjUiIGFsaWduPSJjZW50ZXIiPq7JtqGtrajuoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxpbnB1dCBjbGFzcz0ibnAiIG5hbWU9InRpbWVzZXQiIHR5cGU9InJhZGlvIiB2YWx1ZT0iMCI8P3BocCBpZigkcm93Wyd0aW1lc2V0J109PTApIGVjaG8gIiBjaGVja2VkPScxJyAiOyA/PiAvPg0KICAgICAgICAgICAgICClw6SjuUy0wQ0KICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im5wIiB0eXBlPSJyYWRpbyIgbmFtZT0idGltZXNldCIgdmFsdWU9IjEiIDw/cGhwIGlmKCRyb3dbJ3RpbWVzZXQnXT09MSkgZWNobyAiIGNoZWNrZWQ9JzEnICI7ID8+IC8+DQogICAgICAgICAgICAgIKZis12kuq7JtqGkuqazrsQ8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGhlaWdodD0iMjUiIGFsaWduPSJjZW50ZXIiPrZ9qWyuybahoUc8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxpbnB1dCBuYW1lPSJzdGFydHRpbWUiIHR5cGU9InRleHQiIGlkPSJzdGFydHRpbWUiIHZhbHVlPSI8P3BocCBlY2hvIEdldERhdGVUaW1lTWsoJHJvd1snc3RhcnR0aW1lJ10pPz4iIGNsYXNzPSdpcHR4dCcgLz4NCiAgICAgICAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJCQkJCUNhbGVuZGFyLnNldHVwKHsNCgkJCQkJCQlpbnB1dEZpZWxkICAgICA6ICAgICJzdGFydHRpbWUiLA0KCQkJCQkJCWlmRm9ybWF0ICAgICAgIDogICAgIiVZLSVtLSVkICVIOiVNIiwNCgkJCQkJCQlzaG93c1RpbWUgICAgICA6ICAgIHRydWUsDQoJCQkJCQkJdGltZUZvcm1hdCAgICAgOiAgICAiMjQiDQoJCQkJCQl9KTsNCgkJCQkgPC9zY3JpcHQ+PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjI1IiBhbGlnbj0iY2VudGVyIj61sqf0rsm2oaFHPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgbmFtZT0iZW5kdGltZSIgdHlwZT0idGV4dCIgaWQ9ImVuZHRpbWUiIHZhbHVlPSI8P3BocCBlY2hvIEdldERhdGVUaW1lTWsoJHJvd1snZW5kdGltZSddKT8+IiBjbGFzcz0naXB0eHQnIC8+DQogICAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCQkJCQlDYWxlbmRhci5zZXR1cCh7DQoJCQkJCQkJaW5wdXRGaWVsZCAgICAgOiAgICAiZW5kdGltZSIsDQoJCQkJCQkJaWZGb3JtYXQgICAgICAgOiAgICAiJVktJW0tJWQgJUg6JU0iLA0KCQkJCQkJCXNob3dzVGltZSAgICAgIDogICAgdHJ1ZSwNCgkJCQkJCQl0aW1lRm9ybWF0ICAgICA6ICAgICIyNCINCgkJCQkJCX0pOw0KCQkJCSA8L3NjcmlwdD48L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGhlaWdodD0iODAiIGFsaWduPSJjZW50ZXIiPqW/sWDF46XcpLquZaFHPC90ZD4NCiAgICAgICAgICAgIDx0ZCB3aWR0aD0iNzYlIj48dGV4dGFyZWEgbmFtZT0ibm9ybWJvZHkiIHJvd3M9IjEwIiBpZD0ibm9ybWJvZHkiIHN0eWxlPSJ3aWR0aDo4MCU7aGVpZ2h0OjEwMCI+PD9waHAgZWNobyAkcm93Wydub3JtYm9keSddPz48L3RleHRhcmVhPjwvdGQ+DQogICAgICAgICAgICA8dGQgd2lkdGg9IjklIj4mbmJzcDs8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGhlaWdodD0iODAiIGFsaWduPSJjZW50ZXIiPrlMtMHF46XcpLquZaFHPC90ZD4NCiAgICAgICAgICAgIDx0ZD48dGV4dGFyZWEgbmFtZT0iZXhwYm9keSIgcm93cz0iMTAiIGlkPSJleHBib2R5IiBzdHlsZT0id2lkdGg6ODAlO2hlaWdodDoxMDAiPjw/cGhwIGVjaG8gJHJvd1snZXhwYm9keSddPz48L3RleHRhcmVhPjwvdGQ+DQogICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBoZWlnaHQ9IjUzIiBhbGlnbj0iY2VudGVyIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxpbnB1dCBuYW1lPSJpbWFnZUZpZWxkIiB0eXBlPSJpbWFnZSIgc3JjPSJpbWFnZXMvYnV0dG9uX29rLmdpZiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjIyIiBib3JkZXI9IjAiPjwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgPC9mb3JtPg0KICAgICAgPC90YWJsZT48L3RkPg0KICA8L3RyPg0KPC90YWJsZT4NCjwvYm9keT4NCjwvaHRtbD4=
e2RlZGU6Y29uZmlnLnBhZ2VzaXplIHZhbHVlPScyMCcgL30NCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9PD9waHAgZWNobyAkY2ZnX3NvZnRfbGFuZzsgPz4iPg0KPHRpdGxlPrxzp2m63rJ6PC90aXRsZT4NCjxsaW5rIGhyZWY9ImNzcy9iYXNlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+DQo8L2hlYWQ+DQo8Ym9keSBiYWNrZ3JvdW5kPSJpbWFnZXMvYWxsYmcuZ2lmIiBsZWZ0bWFyZ2luPSI4IiB0b3BtYXJnaW49JzgnPg0KPHRhYmxlIHdpZHRoPSI5OCUiIGJvcmRlcj0iMCIgYWxpZ249ImNlbnRlciIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBiZ2NvbG9yPSIjRDZENkQ2Ij4NCiAgPHRyPg0KICAgPHRkIGhlaWdodD0iMjgiIGJhY2tncm91bmQ9ImltYWdlcy90YmcuZ2lmIiBjb2xzcGFuPSI3IiBzdHlsZT0icGFkZGluZy1sZWZ0OjEwcHg7Ij4NCiAgICAgPGI+vHOnabresno8L2I+Jm5ic3A7WzxhIGhyZWY9ImFkX2FkZC5waHAiPjx1PrxXpVukQK3Tt3O8c6dpPC91PjwvYT5dDQoJPC90ZD4NCjwvdHI+DQogIDx0ciBhbGlnbj0iY2VudGVyIiAgYmdjb2xvcj0iI0ZCRkNFMiIiIGhlaWdodD0iMjQiPiANCiAgICAgIDx0ZCB3aWR0aD0iOCUiPr1zuLk8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyMCUiPrxzp2mmV7rZPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTIlIj6n66nxvWSz8jwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjExJSI+rE+nX62trsk8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiPrWyp/SuybahPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjAlIj68c6dppU69WDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSI+ut6yejwvdGQ+DQogICA8L3RyPg0KICAge2RlZGU6ZGF0YWxpc3R9DQogICAgPHRyIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiNGRkZGRkYiIGhlaWdodD0iMjQiIG9uTW91c2VNb3ZlPSJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZDRkRFRSc7IiBvbk1vdXNlT3V0PSJqYXZhc2NyaXB0OnRoaXMuYmdDb2xvcj0nI0ZGRkZGRic7Ij4gDQogICAgICAgIDx0ZD57ZGVkZTpmaWVsZC5haWQgL308L3RkPg0KICAgICAgICA8dGQ+e2RlZGU6ZmllbGQuYWRuYW1lIC99PC90ZD4NCiAgICAgICAgPHRkPntkZWRlOmZpZWxkLnR5cGVuYW1lIGZ1bmN0aW9uPSdUZXN0VHlwZShAbWUpJy99PC90ZD4NCiAgICAgICAgPHRkPntkZWRlOmZpZWxkLnRpbWVzZXQgZnVuY3Rpb249J1RpbWVTZXRWYWx1ZShAbWUpJy99PC90ZD4NCiAgICAgICAgPHRkPntkZWRlOmZpZWxkLmVuZHRpbWUgZnVuY3Rpb249J0dldERhdGVNayhAbWUpJy99PC90ZD4NCiAgICAgICAgPHRkPjw/cGhwIGVjaG8gJ3snOyA/PmRlZGU6bXlhZCBuYW1lPSd7ZGVkZTpmaWVsZC50YWduYW1lIC99Jy88P3BocCBlY2hvICd9JzsgPz48L3RkPg0KICAgICAgICA8dGQ+DQogICAgICAgICA8YSBocmVmPSdhZF9lZGl0LnBocD9haWQ9e2RlZGU6ZmllbGQuYWlkIC99JmRvcG9zdD1nZXRqcyc+W0pTXTwvYT4NCiAgICAgICAgIDxhIGhyZWY9J2FkX2VkaXQucGhwP2FpZD17ZGVkZTpmaWVsZC5haWQgL30mZG9wb3N0PWVkaXQnPlun86fvXTwvYT4NCgkJICAgICA8YSBocmVmPSdhZF9lZGl0LnBocD9haWQ9e2RlZGU6ZmllbGQuYWlkIC99JmRvcG9zdD1kZWxldGUnPlunUrCjXTwvYT4NCgkJICAgIDwvdGQ+DQogICAgIDwvdHI+DQoJCXsvZGVkZTpkYXRhbGlzdH0NCiAgICAgPHRyIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiNGOUZDRUYiIGhlaWdodD0iMjQiPiANCiAgICAgIDx0ZCBjb2xzcGFuPSI3Ij4NCiAgICAgIAl7ZGVkZTpwYWdlbGlzdCBsaXN0c2l6ZT01L30NCiAgICAgIDwvdGQ+DQogICAgIDwvdHI+DQogICA8L3RhYmxlPg0KICAgPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPC9ib2R5Pg0KPC9odG1sPg==
PD9waHANCi8qKg0KICoNCiAqILxzp2lKU73Vpc6k6KahDQogKg0KICogQHZlcnNpb24gICAgICAgICRJZDogYWRfanMucGhwIDEgMjA6MzAgMjAxMKZ+N6TrOKTpWiB0aWFueWEgJA0KICogQHBhY2thZ2UgICAgICAgIERlZGVDTVMuU2l0ZQ0KICogQGNvcHlyaWdodCAgICAgIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMTAsIERlc0RldiwgSW5jLg0KICogQGxpY2Vuc2UgICAgICAgIGh0dHA6Ly9oZWxwLmRlZGVjbXMuY29tL3VzZXJzZ3VpZGUvbGljZW5zZS5odG1sDQogKiBAbGluayAgICAgICAgICAgaHR0cDovL3d3dy5kZWRlY21zLmNvbQ0KICovDQpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuIi8uLi9pbmNsdWRlL2NvbW1vbi5pbmMucGhwIik7DQoNCmlmKGlzc2V0KCRhcmNJRCkpICRhaWQgPSAkYXJjSUQ7DQokYXJjSUQgPSAkYWlkID0gKGlzc2V0KCRhaWQpICYmIGlzX251bWVyaWMoJGFpZCkpID8gJGFpZCA6IDA7DQppZigkYWlkPT0wKSBkaWUoJyBSZXF1ZXN0IEVycm9yISAnKTsNCg0KJGNhY2hlRmlsZSA9IERFREVEQVRBLicvY2FjaGUvbXlhZC0nLiRhaWQuJy5odG0nOw0KaWYoIGlzc2V0KCRub2NhY2hlKSB8fCAhZmlsZV9leGlzdHMoJGNhY2hlRmlsZSkgfHwgdGltZSgpIC0gZmlsZW10aW1lKCRjYWNoZUZpbGUpID4gJGNmZ19wdWNjYWNoZV90aW1lICkNCnsNCiAgICAkcm93ID0gJGRzcWwtPkdldE9uZSgiU0VMRUNUICogRlJPTSBgI0BfX215YWRgIFdIRVJFIGFpZD0nJGFpZCcgIik7DQogICAgJGFkYm9keSA9ICcnOw0KICAgIGlmKCRyb3dbJ3RpbWVzZXQnXT09MCkNCiAgICB7DQogICAgICAgICRhZGJvZHkgPSAkcm93Wydub3JtYm9keSddOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICAkbnRpbWUgPSB0aW1lKCk7DQogICAgICAgIGlmKCRudGltZSA+ICRyb3dbJ2VuZHRpbWUnXSB8fCAkbnRpbWUgPCAkcm93WydzdGFydHRpbWUnXSkgew0KICAgICAgICAgICAgJGFkYm9keSA9ICRyb3dbJ2V4cGJvZHknXTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRhZGJvZHkgPSAkcm93Wydub3JtYm9keSddOw0KICAgICAgICB9DQogICAgfQ0KICAgICRhZGJvZHkgPSBzdHJfcmVwbGFjZSgnIicsICdcIicsJGFkYm9keSk7DQogICAgJGFkYm9keSA9IHN0cl9yZXBsYWNlKCJcciIsICJcXHIiLCRhZGJvZHkpOw0KICAgICRhZGJvZHkgPSBzdHJfcmVwbGFjZSgiXG4iLCAiXFxuIiwkYWRib2R5KTsNCiAgICAkYWRib2R5ID0gIjwhLS1cclxuZG9jdW1lbnQud3JpdGUoXCJ7JGFkYm9keX1cIik7XHJcbi0tPlxyXG4iOw0KICAgICRmcCA9IGZvcGVuKCRjYWNoZUZpbGUsICd3Jyk7DQogICAgZndyaXRlKCRmcCwgJGFkYm9keSk7DQogICAgZmNsb3NlKCRmcCk7DQp9DQppbmNsdWRlICRjYWNoZUZpbGU7
PD9waHAgICBpZighZGVmaW5lZCgnREVERUlOQycpKSBleGl0KCdSZXF1ZXN0IEVycm9yIScpOw0KLyoqDQogKiC8c6dpvdWlzg0KICoNCiAqIEB2ZXJzaW9uICAgICAgICAkSWQ6IG15YWQubGliLnBocCAxIDk6MjkgMjAxMKZ+N6TrNqTpWiB0aWFueWEgJA0KICogQHBhY2thZ2UgICAgICAgIERlZGVDTVMuVGFnbGliDQogKiBAY29weXJpZ2h0ICAgICAgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAxMCwgRGVzRGV2LCBJbmMuDQogKiBAbGljZW5zZSAgICAgICAgaHR0cDovL2hlbHAuZGVkZWNtcy5jb20vdXNlcnNndWlkZS9saWNlbnNlLmh0bWwNCiAqIEBsaW5rICAgICAgICAgICBodHRwOi8vd3d3LmRlZGVjbXMuY29tDQogKi8NCiANCi8qPj5kZWRlPj4NCjxuYW1lPrxzp2m80MXSPC9uYW1lPg0KPHR5cGU+pf6nvbzQsE88L3R5cGU+DQo8Zm9yPlY1NSxWNTYsVjU3PC9mb3I+DQo8ZGVzY3JpcHRpb24+wPKo+rxzp2mlTr1YPC9kZXNjcmlwdGlvbj4NCjxkZW1vPg0Ke2RlZGU6bXlhZCBuYW1lPScnL30NCjwvZGVtbz4NCjxhdHRyaWJ1dGVzPg0KICAgIDxpdGVybT50eXBlaWQ6p+up8b1ks/IsMKywpf6vuDwvaXRlcm0+IA0KICAgIDxpdGVybT5uYW1lOrxzp2m80MPRPC9pdGVybT4NCjwvYXR0cmlidXRlcz4gDQo+PmRlZGU+PiovDQogDQpyZXF1aXJlX29uY2UoREVERUlOQy4nL3RhZ2xpYi9teXRhZy5saWIucGhwJyk7DQoNCmZ1bmN0aW9uIGxpYl9teWFkKCYkY3RhZywgJiRyZWZPYmopDQp7DQogICAgJGF0dGxpc3QgPSAidHlwZWlkfDAsbmFtZXwiOw0KICAgIEZpbGxBdHRzRGVmYXVsdCgkY3RhZy0+Q0F0dHJpYnV0ZS0+SXRlbXMsJGF0dGxpc3QpOw0KICAgIGV4dHJhY3QoJGN0YWctPkNBdHRyaWJ1dGUtPkl0ZW1zLCBFWFRSX1NLSVApOw0KDQogICAgJGJvZHkgPSBsaWJfR2V0TXlUYWdUKCRyZWZPYmosICR0eXBlaWQsICRuYW1lLCAnI0BfX215YWQnKTsNCiAgICANCiAgICByZXR1cm4gJGJvZHk7DQp9