<?xml version="1.0" encoding="ISO-8859-1"?>
<gallerytpl>
	<name>AE-Gallery</name>
	<version>1.2.2-1</version>
	<galleryversion>1.2.1</galleryversion>
	<about>PHA+VGhpcyBHYWxsZXJ5dGVtcGxhdGUgdXNlcyB0aGUgQUQtR2FsbGVyeSBqUXVlcnkgcGx1Z2luIHZlcnNpb24gMS4yLjIgYnkgQW5kZXJzIEVrZGFobCAoPGEgaHJlZj0iaHR0cDovL2NvZmZlZXNjcmlwdGVyLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vY29mZmVlc2NyaXB0ZXIuY29tLzwvYT4pPC9wPg0KPHA+Rm9yIHRoZSBDTVNtcyBHYWxsZXJ5IE1vZHVsZSwgdGhlIG5hbWUgaXMgY2hhbmdlZCB0byBBRS1HYWxsZXJ5LCB0byBwcmV2ZW50IHRoZSBzY3JpcHQgYmVpbmcgYmxvY2tlZCBieSBBZC1ibG9jayBicm93c2VyIHBsdWdpbnMuIEFsbCBvY2N1cmVuY2VzIG9mICdhZCcgaGF2ZSBiZWVuIHJlcGxhY2VkIGJ5ICdhZScgKHRoZSBpbml0aWFscyBvZiB0aGUgYXV0aG9yKS48L3A+DQo8cD5BIGRlbW8gYW5kIGRvY3VtZW50YXRpb24gZm9yIGV4dHJhIG9wdGlvbnMgY2FuIGJlIGZvdW5kIGF0IDxhIGhyZWY9Imh0dHA6Ly9jb2ZmZWVzY3JpcHRlci5jb20vY29kZS9hZC1nYWxsZXJ5IiB0YXJnZXQ9Il9ibGFuayI+Y29mZmVlc2NyaXB0ZXIuY29tL2NvZGUvYWQtZ2FsbGVyeTwvYT48L3A+DQo8cD5GaWxlcyB0aGF0IGNvbWUgd2l0aCBBRS1HYWxsZXJ5IGFyZSBzdG9yZWQgaW4gbW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9hZS1nYWxsZXJ5LzwvcD4NCjxwPlRoZSBBRC1HYWxsZXJ5IHBsdWdpbiBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwIiB0YXJnZXQ9Il9ibGFuayI+d3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocDwvYT4pIGFuZCBHUEwgKDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwIiB0YXJnZXQ9Il9ibGFuayI+d3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocDwvYT4pIGxpY2Vuc2VzLjwvcD4=</about>
	<thumbwidth></thumbwidth>
	<thumbheight></thumbheight>
	<resizemethod></resizemethod>
	<maxnumber></maxnumber>
	<sortitems>s+file</sortitems>
	<tplcode>PGRpdiBjbGFzcz0iZ2FsbGVyeSI+DQp7aWYgIWVtcHR5KCRtb2R1bGVfbWVzc2FnZSl9PGg0PnskbW9kdWxlX21lc3NhZ2V8ZXNjYXBlfTwvaDQ+ey9pZn0NCntpZiAhZW1wdHkoJGdhbGxlcnl0aXRsZSl9PGgzPnskZ2FsbGVyeXRpdGxlfTwvaDM+ey9pZn0NCntpZiAhZW1wdHkoJGdhbGxlcnljb21tZW50KX08ZGl2IGNsYXNzPSJnYWxsZXJ5Y29tbWVudCI+eyRnYWxsZXJ5Y29tbWVudH08L2Rpdj57L2lmfQ0KPHA+eyRpbWFnZWNvdW50fTwvcD4NCjxkaXYgY2xhc3M9InBhZ2VuYXZpZ2F0aW9uIj4NCntpZiAkcGFnZXMgPiAxfQ0KPGRpdiBjbGFzcz0icHJldnBhZ2UiPnskcHJldnBhZ2V9PC9kaXY+DQo8ZGl2IGNsYXNzPSJuZXh0cGFnZSI+eyRuZXh0cGFnZX08L2Rpdj4NCnsvaWZ9DQp7aWYgISRoaWRlcGFyZW50bGluayAmJiAhZW1wdHkoJHBhcmVudGxpbmspfTxkaXYgY2xhc3M9InBhcmVudGxpbmsiPnskcGFyZW50bGlua308L2Rpdj57L2lmfQ0Ke2lmICRwYWdlcyA+IDF9PGRpdiBjbGFzcz0icGFnZWxpbmtzIj57JHBhZ2VsaW5rc308L2Rpdj57L2lmfQ0KPC9kaXY+DQoNCnthc3NpZ24gdmFyPSdkaXJzJyB2YWx1ZT0nJ30NCnthc3NpZ24gdmFyPSdpbWdzJyB2YWx1ZT0nJ30NCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQ0Ke2lmICRpbWFnZS0+aXNkaXJ9DQp7YXNzaWduIHZhcj0nZGlycycgdmFsdWU9IiRkaXJzDQoJPGRpdiBjbGFzcz1cImltZ1wiPg0KCQk8YSBocmVmPVwiYCRpbWFnZS0+ZmlsZWBcIiB0aXRsZT1cImAkaW1hZ2UtPnRpdGxlYFwiPjxpbWcgc3JjPVwiYCRpbWFnZS0+dGh1bWJgXCIgYWx0PVwiYCRpbWFnZS0+dGl0bGVgXCIgLz48L2E+PGJyIC8+DQoJCWAkaW1hZ2UtPnRpdGxlYA0KCTwvZGl2Pg0KIn0NCntlbHNlfQ0Ke2NhcHR1cmUgbmFtZT1pbWFnZXMgYXNzaWduPWltZ3N9DQp7JGltZ3N9DQogICAgICAgIDxsaT4NCiAgICAgICAgICA8YSBocmVmPSJ7JGltYWdlLT5maWxlfSI+DQogICAgICAgICAgICA8aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgdGl0bGU9InskaW1hZ2UtPnRpdGxlfSJ7aWYgIWVtcHR5KCRpbWFnZS0+Y29tbWVudCl9IGxvbmdkZXNjPSJ7JGltYWdlLT5jb21tZW50fSJ7L2lmfSBjbGFzcz0iaW1hZ2V7JGltYWdlLT5maWxlaWR9Ij4NCiAgICAgICAgICA8L2E+DQogICAgICAgIDwvbGk+DQp7L2NhcHR1cmV9DQp7L2lmfQ0Key9mb3JlYWNofQ0KDQoNCntpZiAhZW1wdHkoJGltZ3MpfQ0KPGRpdiBjbGFzcz0iYWUtZ2FsbGVyeSI+DQogIDxkaXYgY2xhc3M9ImFlLWltYWdlLXdyYXBwZXIiPg0KICA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0iYWUtY29udHJvbHMiPg0KICA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0iYWUtbmF2Ij4NCiAgICA8ZGl2IGNsYXNzPSJhZS10aHVtYnMiPg0KICAgICAgPHVsIGNsYXNzPSJhZS10aHVtYi1saXN0Ij4NCnskaW1nc30NCiAgICAgIDwvdWw+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQp7L2lmfQ0KDQp7JGRpcnN9DQo8ZGl2IGNsYXNzPSJnYWxsZXJ5Y2xlYXIiPiZuYnNwOzwvZGl2Pg0KPC9kaXY+DQoNCg==</tplcode>
	<tplcss>LmdhbGxlcnkgLmltZyB7DQoJaGVpZ2h0OiAxMjBweDsNCgkvKndpZHRoOiAxMjBweDsgICBBZGp1c3QgYXMgeW91IHNlZSBmaXQgKi8NCglmbG9hdDogbGVmdDsNCgltYXJnaW46IDEwcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAuaW1nIGEgew0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCglib3JkZXI6IDJweCBzb2xpZCAjZGRkOw0KCXBhZGRpbmc6IDFweDsNCn0NCg0KLmdhbGxlcnkgLmltZyBhOmhvdmVyIHsNCglib3JkZXItY29sb3I6ICM5OTk7DQp9DQoNCi5nYWxsZXJ5IGltZyB7DQoJYm9yZGVyOiBub25lOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOw0KCXdpZHRoOiA1MHB4Ow0KCWhlaWdodDogMzlweDsNCglmbG9hdDogbGVmdDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KLmdhbGxlcnljbGVhciB7DQoJY2xlYXI6IGJvdGg7DQp9DQoNCi8qIEFFLUdBTExFUlkgKi8NCg0KLmFlLWdhbGxlcnksIC5hZS1nYWxsZXJ5ICogew0KICBtYXJnaW46IDA7DQogIHBhZGRpbmc6IDA7DQp9DQouYWUtZ2FsbGVyeSB7DQogIHdpZHRoOiA1MzNweDsgIC8qIHNldCB0aGUgd2lkdGggb2YgdGhlIHRodW1icm93ICovDQogIG1hcmdpbi1ib3R0b206IDMwcHg7DQp9DQogIC5hZS1nYWxsZXJ5IC5hZS1pbWFnZS13cmFwcGVyIHsNCiAgICB3aWR0aDogMTAwJTsgLyogc2V0IHRoZSBtYXhpbXVtIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGJpZyBpbWFnZS4gQmlnZ2VyIGltYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNjcmlwdCAqLw0KICAgIGhlaWdodDogNDAwcHg7DQogICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCmJvcmRlcjogMnB4IHNvbGlkICNkZGQ7DQogIH0NCiAgICAuYWUtZ2FsbGVyeSAuYWUtaW1hZ2Utd3JhcHBlciAuYWUtbG9hZGVyIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHotaW5kZXg6IDEwOw0KICAgICAgdG9wOiA0OCU7DQogICAgICBsZWZ0OiA0OCU7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDOw0KICAgIH0NCiAgICAuYWUtZ2FsbGVyeSAuYWUtaW1hZ2Utd3JhcHBlciAuYWUtbmV4dCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICByaWdodDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIHdpZHRoOiAyNSU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHotaW5kZXg6IDEwMDsNCiAgICB9DQogICAgLmFlLWdhbGxlcnkgLmFlLWltYWdlLXdyYXBwZXIgLmFlLXByZXYgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIHdpZHRoOiAyNSU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHotaW5kZXg6IDEwMDsNCiAgICB9DQogICAgLmFlLWdhbGxlcnkgLmFlLWltYWdlLXdyYXBwZXIgLmFlLXByZXYsIC5hZS1nYWxsZXJ5IC5hZS1pbWFnZS13cmFwcGVyIC5hZS1uZXh0IHsNCiAgICAgIC8qIE9yIGVsc2UgSUUgd2lsbCBoaWRlIGl0ICovDQogICAgICBiYWNrZ3JvdW5kOiB1cmwobm9uLWV4aXN0aW5nLmpwZylcOQ0KICAgIH0NCiAgICAgIC5hZS1nYWxsZXJ5IC5hZS1pbWFnZS13cmFwcGVyIC5hZS1wcmV2IC5hZS1wcmV2LWltYWdlLCAuYWUtZ2FsbGVyeSAuYWUtaW1hZ2Utd3JhcHBlciAuYWUtbmV4dCAuYWUtbmV4dC1pbWFnZSB7DQogICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9hZS1nYWxsZXJ5L2FlX3ByZXYucG5nKTsNCiAgICAgICAgd2lkdGg6IDMwcHg7DQogICAgICAgIGhlaWdodDogMzBweDsNCiAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgICB0b3A6IDQ3JTsNCiAgICAgICAgbGVmdDogMDsNCiAgICAgICAgei1pbmRleDogMTAxOw0KICAgICAgfQ0KICAgICAgLmFlLWdhbGxlcnkgLmFlLWltYWdlLXdyYXBwZXIgLmFlLW5leHQgLmFlLW5leHQtaW1hZ2Ugew0KICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vYWUtZ2FsbGVyeS9hZV9uZXh0LnBuZyk7DQogICAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgICBoZWlnaHQ6IDMwcHg7DQogICAgICAgIHJpZ2h0OiAwOw0KICAgICAgICBsZWZ0OiBhdXRvOw0KICAgICAgfQ0KICAgIC5hZS1nYWxsZXJ5IC5hZS1pbWFnZS13cmFwcGVyIC5hZS1pbWFnZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHotaW5kZXg6IDk7DQogICAgfQ0KICAgICAgLmFlLWdhbGxlcnkgLmFlLWltYWdlLXdyYXBwZXIgLmFlLWltYWdlIC5hZS1pbWFnZS1kZXNjcmlwdGlvbiB7DQogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgYm90dG9tOiAwcHg7DQogICAgICAgIGxlZnQ6IDBweDsNCiAgICAgICAgcGFkZGluZzogN3B4Ow0KICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgei1pbmRleDogMjsNCiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2FlLWdhbGxlcnkvb3BhNzUucG5nKTsNCiAgICAgICAgY29sb3I6ICMwMDA7DQogICAgICB9DQogICAgICAqIGh0bWwgLmFlLWdhbGxlcnkgLmFlLWltYWdlLXdyYXBwZXIgLmFlLWltYWdlIC5hZS1pbWFnZS1kZXNjcmlwdGlvbiB7DQogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7DQogICAgICAgIGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlciAoZW5hYmxlZD10cnVlLCBzaXppbmdNZXRob2Q9c2NhbGUsIHNyYz0nLi4vYWUtZ2FsbGVyeS9vcGE3NS5wbmcnKTsNCiAgICAgIH0NCiAgICAgICAgLmFlLWdhbGxlcnkgLmFlLWltYWdlLXdyYXBwZXIgLmFlLWltYWdlIC5hZS1pbWFnZS1kZXNjcmlwdGlvbiAuYWUtZGVzY3JpcHRpb24tdGl0bGUgew0KICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgICB9DQogIC5hZS1nYWxsZXJ5IC5hZS1jb250cm9scyB7DQogICAgaGVpZ2h0OiAyMHB4Ow0KICB9DQogICAgLmFlLWdhbGxlcnkgLmFlLWluZm8gew0KICAgICAgZmxvYXQ6IGxlZnQ7DQogICAgfQ0KICAgIC5hZS1nYWxsZXJ5IC5hZS1zbGlkZXNob3ctY29udHJvbHMgew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCiAgICAgIC5hZS1nYWxsZXJ5IC5hZS1zbGlkZXNob3ctY29udHJvbHMgLmFlLXNsaWRlc2hvdy1zdGFydCwgLmFlLWdhbGxlcnkgLmFlLXNsaWRlc2hvdy1jb250cm9scyAuYWUtc2xpZGVzaG93LXN0b3Agew0KICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDsNCiAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICAgIHRleHQtaW5kZW50OiAtNTAwcHg7DQogICAgICAgIG92ZXJmbG93OmhpZGRlbjsNCiAgICAgICAgd2lkdGg6IDE0cHg7DQogICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9hZS1nYWxsZXJ5L2FlX3Njcm9sbF9mb3J3YXJkLnBuZykgMHB4IC0zcHggbm8tcmVwZWF0Ow0KICAgICAgfQ0KICAgICAgLmFlLWdhbGxlcnkgLmFlLXNsaWRlc2hvdy1jb250cm9scyAuYWUtc2xpZGVzaG93LXN0b3Agew0KICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vYWUtZ2FsbGVyeS9hZV9zdG9wLnBuZykgMHB4IC0zcHggbm8tcmVwZWF0Ow0KICAgICAgfQ0KICAgICAgLmFlLWdhbGxlcnkgLmFlLXNsaWRlc2hvdy1jb250cm9scyAuYWUtc2xpZGVzaG93LWNvdW50ZG93biB7DQogICAgICAgIHBhZGRpbmctbGVmdDogNXB4Ow0KICAgICAgICBmb250LXNpemU6IDAuOWVtOw0KICAgICAgfQ0KICAgIC5hZS1nYWxsZXJ5IC5hZS1zbGlkZXNob3ctcnVubmluZyAuYWUtc2xpZGVzaG93LXN0YXJ0IHsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsNCiAgICB9DQogIC5hZS1nYWxsZXJ5IC5hZS1uYXYgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgfQ0KICAgIC5hZS1nYWxsZXJ5IC5hZS1mb3J3YXJkLCAuYWUtZ2FsbGVyeSAuYWUtYmFjayB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICB6LWluZGV4OiAxMDsNCiAgICB9DQogICAgLyogSUUgNiBkb2Vzbid0IGxpa2UgaGVpZ2h0OiAxMDAlICovDQogICAgKiBodG1sIC5hZS1nYWxsZXJ5IC5hZS1mb3J3YXJkLCAuYWUtZ2FsbGVyeSAuYWUtYmFjayB7DQogICAgICBoZWlnaHQ6IDEwMHB4Ow0KICAgIH0NCiAgICAuYWUtZ2FsbGVyeSAuYWUtYmFjayB7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBsZWZ0OiAtMjBweDsNCiAgICAgIHdpZHRoOiAxM3B4Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vYWUtZ2FsbGVyeS9hZV9zY3JvbGxfYmFjay5wbmcpIDBweCAyMnB4IG5vLXJlcGVhdDsNCiAgICB9DQogICAgLmFlLWdhbGxlcnkgLmFlLWZvcndhcmQgew0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICByaWdodDogLTIwcHg7DQogICAgICB3aWR0aDogMTNweDsNCiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9hZS1nYWxsZXJ5L2FlX3Njcm9sbF9mb3J3YXJkLnBuZykgMHB4IDIycHggbm8tcmVwZWF0Ow0KICAgIH0NCiAgICAuYWUtZ2FsbGVyeSAuYWUtbmF2IC5hZS10aHVtYnMgew0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHdpZHRoOiAxMDAlOw0KcGFkZGluZzogM3B4IDFweDsNCiBib3JkZXI6IDFweCBzb2xpZCAjZGRkOw0KYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgIH0NCiAgICAgICAgLmFlLWdhbGxlcnkgLmFlLXRodW1icyBsaSB7DQogICAgICAgICAgZmxvYXQ6IGxlZnQ7DQogICAgICAgICAgcGFkZGluZzowIDVweCAwIDAgIWltcG9ydGFudDsNCiAgICAgICAgICBtYXJnaW46MCAwIDAgMCAhaW1wb3J0YW50Ow0KICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7DQogICAgICAgIH0NCiAgICAgICAgICAuYWUtZ2FsbGVyeSAuYWUtdGh1bWJzIGxpIGEgew0KICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICAgICAgfQ0KICAgICAgICAgICAgLmFlLWdhbGxlcnkgLmFlLXRodW1icyBsaSBhIGltZyB7DQogICAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNDQ0M7DQogICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLmFlLWdhbGxlcnkgLmFlLXRodW1icyBsaSBhLmFlLWFjdGl2ZSBpbWcgew0KICAgICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAjNjE2MTYxOw0KICAgICAgICAgICAgfQ0KLyogQ2FuJ3QgZG8gZGlzcGxheSBub25lLCBzaW5jZSBPcGVyYSB3b24ndCBsb2FkIHRoZSBpbWFnZXMgdGhlbiAqLw0KLmFlLXByZWxvYWRzIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBsZWZ0OiAtOTAwMDBweDsNCiAgdG9wOiAtOTAwMDBweDsNCn0=</tplcss>
	<tpljs>PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjMuMi9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvYWUtZ2FsbGVyeS9qcXVlcnkuYWUtZ2FsbGVyeS5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgJChmdW5jdGlvbigpIHsNCiAgICB2YXIgZ2FsbGVyaWVzID0gJCgnLmFlLWdhbGxlcnknKS5hZUdhbGxlcnkoew0KICAgICAgbG9hZGVyX2ltYWdlOiAnbW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9hZS1nYWxsZXJ5L2xvYWRlci5naWYnLA0KICAgICAgc2xpZGVzaG93OiB7DQogICAgICAgIGF1dG9zdGFydDogZmFsc2UsDQogICAgICAgIHNwZWVkOiA0MDAwLA0KICAgICAgICBzdGFydF9sYWJlbDogJ1N0YXJ0JywNCiAgICAgICAgc3RvcF9sYWJlbDogJ1N0b3AnLA0KICAgICAgICBzdG9wX29uX3Njcm9sbDogZmFsc2UNCiAgICAgIH0NCiAgICB9KTsNCiAgfSk7DQo8L3NjcmlwdD4NCg==</tpljs>
	<file>
	  <filename>/ae_next.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQVJREFUeNpi+P//vz0Qn/xPZ8AIxM8ZGBgkGOgMQBb/ZxgAwMQwQGDU4sFl8YULFxhqamrANF0tXrNmDcOOHTsYUlJSGBYsWEC/7GRiYoLCDwkJYYiLi2OQkpKibxyDQsDPzw9MD0ji6ujoYOjv72f4+fMnfYIaHZiamoKD39nZmb4Ww0BCQgJDTk4O/fMxKMXv2rVrYAqQf//+0d9iUFB7eHgQpZaFGhYaGRmBE5ebmxvReii2ODIykiEzM5OBi4uLJH0UWVxRUQH2KTmALItBlkVHRzPIysrStuRCjrusrCywTymxlGgfw4ITRIMS0mhjb9TiQW/x04GyOAWIX9DbYoAAAwDj9cuFNA9hSgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/ae_prev.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQ5JREFUeNrslj0KgzAUx1+Lk3fwDp5CPIAHcHZ1UfAAHkB0DRZxEdwFT+AHnsKxo+BQrckgdGmTxhoo+UN4JCT8eC/vveSyboJzdd8GuggAE11BkCRYgqk1DAMEQUAsjZQjoAghiKJon+u6/vEMVx2P4whpmkJRFC/rbdv+zmMMC8Pw6ygxg+d5hjiOIcsyruthAtd1TTxtmoY7L6jBOHlwEp1aTlVVHQqlBi/LIqaBmKYJtm0fCmaqYxxynFx937/dR1PHzA1kmiZIkgTyPOcCM/dqVVXBdV3wPE/MI2FZFpRlSezpr5OmacRzx3H2NcMw6A6vB6nrutX3fWJpJH+ZEvx/YEUA87GN21OAAQDTEd3EBGScywAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/ae_scroll_back.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAUCAYAAAC9BQwsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJJJREFUeNpi/P//PwM5gImBTEC2RhZiFJmYmJgBqUwgnn7mzJlTRGkEasoBUpORhE4RdCpQUxeapgS8TkVyWgLRfsTiNMKhisVphDUCNYGcVUq/BACMnwVAqo8sG4Gai4FUAVlOBWqeCKTMgXgBPo2M+HIHMMB6gVQRmsGMBAMHi9MXEB2qaE6fTpRTB1dGBggwAOOjL/K+XJ5NAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/ae_scroll_forward.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAUCAYAAAC9BQwsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIxJREFUeNpi/P//PwM5gImBTEC2RhYYw8TExAxIZQLx9DNnzpwixUaQpgQgPgk0JIcUjQlI7MlAzV34NDLCQhWoEFvwLsDldEKBg9PpxIYqhtNJiY5SoOYEuiaAPmAgLcBIAARAAVDTRKwpBwfAGR0sBJxWTIwfF6A5rZioRA5yEowmJpEzDp2MDBBgAObbNTlhgwa0AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/ae_stop.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAUCAYAAAC9BQwsAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABTSURBVHjaYvz//z8DOYCJgUxAtkYWGMPExMQMSGUSoWf6mTNnTrEgCYA0JRBp4SlkpxKrKWFgAmdU46DVuIBIPQtQEjko8RKpEayOcehkZIAAAwC0rw/o37M4vAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/jquery.ae-gallery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBDb3B5cmlnaHQgKGMpIDIwMDkgQW5kZXJzIEVrZGFobCAoaHR0cDovL2NvZmZlZXNjcmlwdGVyLmNvbS8pDQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwKQ0KICogYW5kIEdQTCAoaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHApIGxpY2Vuc2VzLg0KICoNCiAqIFZlcnNpb246IDEuMi4yDQogKg0KICogRGVtbyBhbmQgZG9jdW1lbnRhdGlvbjogaHR0cDovL2NvZmZlZXNjcmlwdGVyLmNvbS9jb2RlL2FkLWdhbGxlcnkvDQogKi8NCihmdW5jdGlvbigkKSB7DQogICQuZm4uYWVHYWxsZXJ5ID0gZnVuY3Rpb24ob3B0aW9ucykgew0KICAgIHZhciBkZWZhdWx0cyA9IHsgbG9hZGVyX2ltYWdlOiAnbG9hZGVyLmdpZicsDQogICAgICAgICAgICAgICAgICAgICBzdGFydF9hdF9pbmRleDogMCwNCiAgICAgICAgICAgICAgICAgICAgIHRodW1iX29wYWNpdHk6IDAuNywNCiAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVfZmlyc3RfaW1hZ2U6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uX3NwZWVkOiA0MDAsDQogICAgICAgICAgICAgICAgICAgICB3aWR0aDogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9uZXh0X2FuZF9wcmV2OiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9iYWNrX2FuZF9mb3J3YXJkOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsX2p1bXA6IDAsIC8vIElmIDAsIGl0IGp1bXBzIHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyDQogICAgICAgICAgICAgICAgICAgICBzbGlkZXNob3c6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICBhdXRvc3RhcnQ6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICBzcGVlZDogNTAwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGFiZWw6ICdTdGFydCcsDQogICAgICAgICAgICAgICAgICAgICAgIHN0b3BfbGFiZWw6ICdTdG9wJywNCiAgICAgICAgICAgICAgICAgICAgICAgc3RvcF9vbl9zY3JvbGw6IHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZG93bl9wcmVmaXg6ICcoJywNCiAgICAgICAgICAgICAgICAgICAgICAgY291bnRkb3duX3N1Zml4OiAnKScsDQogICAgICAgICAgICAgICAgICAgICAgIG9uU3RhcnQ6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICBvblN0b3A6IGZhbHNlDQogICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgZWZmZWN0OiAnc2xpZGUtaG9yaScsIC8vIG9yICdzbGlkZS12ZXJ0JywgJ2ZhZGUnLCBvciAncmVzaXplJywgJ25vbmUnDQogICAgICAgICAgICAgICAgICAgICBlbmFibGVfa2V5Ym9hcmRfbW92ZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgIGN5Y2xlOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzOiB7DQogICAgICAgICAgICAgICAgICAgICAgIGluaXQ6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICBhZnRlckltYWdlVmlzaWJsZTogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZUltYWdlVmlzaWJsZTogZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgIH0NCiAgICB9Ow0KICAgIHZhciBzZXR0aW5ncyA9ICQuZXh0ZW5kKGZhbHNlLCBkZWZhdWx0cywgb3B0aW9ucyk7DQogICAgaWYob3B0aW9ucyAmJiBvcHRpb25zLnNsaWRlc2hvdykgew0KICAgICAgc2V0dGluZ3Muc2xpZGVzaG93ID0gJC5leHRlbmQoZmFsc2UsIGRlZmF1bHRzLnNsaWRlc2hvdywgb3B0aW9ucy5zbGlkZXNob3cpOw0KICAgIH07DQogICAgaWYoIXNldHRpbmdzLnNsaWRlc2hvdy5lbmFibGUpIHsNCiAgICAgIHNldHRpbmdzLnNsaWRlc2hvdy5hdXRvc3RhcnQgPSBmYWxzZTsNCiAgICB9Ow0KICAgIHZhciBnYWxsZXJpZXMgPSBbXTsNCiAgICAkKHRoaXMpLmVhY2goZnVuY3Rpb24oKSB7DQogICAgICB2YXIgZ2FsbGVyeSA9IG5ldyBBZUdhbGxlcnkodGhpcywgc2V0dGluZ3MpOw0KICAgICAgZ2FsbGVyaWVzW2dhbGxlcmllcy5sZW5ndGhdID0gZ2FsbGVyeTsNCiAgICB9KTsNCiAgICAvLyBTb3JyeSwgYnJlYWtpbmcgdGhlIGpRdWVyeSBjaGFpbiBiZWNhdXNlIHRoZSBnYWxsZXJ5IGluc3RhbmNlcw0KICAgIC8vIGFyZSByZXR1cm5lZCBzbyB5b3UgY2FuIGZpZGRsZSB3aXRoIHRoZW0NCiAgICByZXR1cm4gZ2FsbGVyaWVzOw0KICB9Ow0KDQogIGZ1bmN0aW9uIFZlcnRpY2FsU2xpZGVBbmltYXRpb24oaW1nX2NvbnRhaW5lciwgZGlyZWN0aW9uLCBkZXNjKSB7DQogICAgdmFyIGN1cnJlbnRfdG9wID0gcGFyc2VJbnQoaW1nX2NvbnRhaW5lci5jc3MoJ3RvcCcpLCAxMCk7DQogICAgaWYoZGlyZWN0aW9uID09ICdsZWZ0Jykgew0KICAgICAgdmFyIG9sZF9pbWFnZV90b3AgPSAnLScrIHRoaXMuaW1hZ2Vfd3JhcHBlcl9oZWlnaHQgKydweCc7DQogICAgICBpbWdfY29udGFpbmVyLmNzcygndG9wJywgdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodCArJ3B4Jyk7DQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBvbGRfaW1hZ2VfdG9wID0gdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodCArJ3B4JzsNCiAgICAgIGltZ19jb250YWluZXIuY3NzKCd0b3AnLCAnLScrIHRoaXMuaW1hZ2Vfd3JhcHBlcl9oZWlnaHQgKydweCcpOw0KICAgIH07DQogICAgaWYoZGVzYykgew0KICAgICAgZGVzYy5jc3MoJ2JvdHRvbScsICctJysgZGVzY1swXS5vZmZzZXRIZWlnaHQgKydweCcpOw0KICAgICAgZGVzYy5hbmltYXRlKHtib3R0b206IDB9LCB0aGlzLnNldHRpbmdzLmFuaW1hdGlvbl9zcGVlZCAqIDIpOw0KICAgIH07DQogICAgcmV0dXJuIHtvbGRfaW1hZ2U6IHt0b3A6IG9sZF9pbWFnZV90b3B9LA0KICAgICAgICAgICAgbmV3X2ltYWdlOiB7dG9wOiBjdXJyZW50X3RvcH19Ow0KICB9Ow0KDQogIGZ1bmN0aW9uIEhvcml6b250YWxTbGlkZUFuaW1hdGlvbihpbWdfY29udGFpbmVyLCBkaXJlY3Rpb24sIGRlc2MpIHsNCiAgICB2YXIgY3VycmVudF9sZWZ0ID0gcGFyc2VJbnQoaW1nX2NvbnRhaW5lci5jc3MoJ2xlZnQnKSwgMTApOw0KICAgIGlmKGRpcmVjdGlvbiA9PSAnbGVmdCcpIHsNCiAgICAgIHZhciBvbGRfaW1hZ2VfbGVmdCA9ICctJysgdGhpcy5pbWFnZV93cmFwcGVyX3dpZHRoICsncHgnOw0KICAgICAgaW1nX2NvbnRhaW5lci5jc3MoJ2xlZnQnLHRoaXMuaW1hZ2Vfd3JhcHBlcl93aWR0aCArJ3B4Jyk7DQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBvbGRfaW1hZ2VfbGVmdCA9IHRoaXMuaW1hZ2Vfd3JhcHBlcl93aWR0aCArJ3B4JzsNCiAgICAgIGltZ19jb250YWluZXIuY3NzKCdsZWZ0JywnLScrIHRoaXMuaW1hZ2Vfd3JhcHBlcl93aWR0aCArJ3B4Jyk7DQogICAgfTsNCiAgICBpZihkZXNjKSB7DQogICAgICBkZXNjLmNzcygnYm90dG9tJywgJy0nKyBkZXNjWzBdLm9mZnNldEhlaWdodCArJ3B4Jyk7DQogICAgICBkZXNjLmFuaW1hdGUoe2JvdHRvbTogMH0sIHRoaXMuc2V0dGluZ3MuYW5pbWF0aW9uX3NwZWVkICogMik7DQogICAgfTsNCiAgICByZXR1cm4ge29sZF9pbWFnZToge2xlZnQ6IG9sZF9pbWFnZV9sZWZ0fSwNCiAgICAgICAgICAgIG5ld19pbWFnZToge2xlZnQ6IGN1cnJlbnRfbGVmdH19Ow0KICB9Ow0KDQogIGZ1bmN0aW9uIFJlc2l6ZUFuaW1hdGlvbihpbWdfY29udGFpbmVyLCBkaXJlY3Rpb24sIGRlc2MpIHsNCiAgICB2YXIgaW1hZ2Vfd2lkdGggPSBpbWdfY29udGFpbmVyLndpZHRoKCk7DQogICAgdmFyIGltYWdlX2hlaWdodCA9IGltZ19jb250YWluZXIuaGVpZ2h0KCk7DQogICAgdmFyIGN1cnJlbnRfbGVmdCA9IHBhcnNlSW50KGltZ19jb250YWluZXIuY3NzKCdsZWZ0JyksIDEwKTsNCiAgICB2YXIgY3VycmVudF90b3AgPSBwYXJzZUludChpbWdfY29udGFpbmVyLmNzcygndG9wJyksIDEwKTsNCiAgICBpbWdfY29udGFpbmVyLmNzcyh7d2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiB0aGlzLmltYWdlX3dyYXBwZXJfaGVpZ2h0IC8gMiwgbGVmdDogdGhpcy5pbWFnZV93cmFwcGVyX3dpZHRoIC8gMn0pOw0KICAgIHJldHVybiB7b2xkX2ltYWdlOiB7d2lkdGg6IDAsDQogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsDQogICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHRoaXMuaW1hZ2Vfd3JhcHBlcl9oZWlnaHQgLyAyLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogdGhpcy5pbWFnZV93cmFwcGVyX3dpZHRoIC8gMn0sDQogICAgICAgICAgICBuZXdfaW1hZ2U6IHt3aWR0aDogaW1hZ2Vfd2lkdGgsDQogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGltYWdlX2hlaWdodCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY3VycmVudF90b3AsDQogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBjdXJyZW50X2xlZnR9fTsNCiAgfTsNCg0KICBmdW5jdGlvbiBGYWRlQW5pbWF0aW9uKGltZ19jb250YWluZXIsIGRpcmVjdGlvbiwgZGVzYykgew0KICAgIGltZ19jb250YWluZXIuY3NzKCdvcGFjaXR5JywgMCk7DQogICAgcmV0dXJuIHtvbGRfaW1hZ2U6IHtvcGFjaXR5OiAwfSwNCiAgICAgICAgICAgIG5ld19pbWFnZToge29wYWNpdHk6IDF9fTsNCiAgfTsNCg0KICAvLyBTb3J0IG9mIGEgaGFjaywgd2lsbCBjbGVhbiB0aGlzIHVwLi4uIGV2ZW50dWFsbHkNCiAgZnVuY3Rpb24gTm9uZUFuaW1hdGlvbihpbWdfY29udGFpbmVyLCBkaXJlY3Rpb24sIGRlc2MpIHsNCiAgICBpbWdfY29udGFpbmVyLmNzcygnb3BhY2l0eScsIDApOw0KICAgIHJldHVybiB7b2xkX2ltYWdlOiB7b3BhY2l0eTogMH0sDQogICAgICAgICAgICBuZXdfaW1hZ2U6IHtvcGFjaXR5OiAxfSwNCiAgICAgICAgICAgIHNwZWVkOiAwfTsNCiAgfTsNCg0KICBmdW5jdGlvbiBBZUdhbGxlcnkod3JhcHBlciwgc2V0dGluZ3MpIHsNCiAgICB0aGlzLmluaXQod3JhcHBlciwgc2V0dGluZ3MpOw0KICB9Ow0KICBBZUdhbGxlcnkucHJvdG90eXBlID0gew0KICAgIC8vIEVsZW1lbnRzDQogICAgd3JhcHBlcjogZmFsc2UsDQogICAgaW1hZ2Vfd3JhcHBlcjogZmFsc2UsDQogICAgZ2FsbGVyeV9pbmZvOiBmYWxzZSwNCiAgICBuYXY6IGZhbHNlLA0KICAgIGxvYWRlcjogZmFsc2UsDQogICAgcHJlbG9hZHM6IGZhbHNlLA0KICAgIHRodW1ic193cmFwcGVyOiBmYWxzZSwNCiAgICBzY3JvbGxfYmFjazogZmFsc2UsDQogICAgc2Nyb2xsX2ZvcndhcmQ6IGZhbHNlLA0KICAgIG5leHRfbGluazogZmFsc2UsDQogICAgcHJldl9saW5rOiBmYWxzZSwNCg0KICAgIHNsaWRlc2hvdzogZmFsc2UsDQogICAgaW1hZ2Vfd3JhcHBlcl93aWR0aDogMCwNCiAgICBpbWFnZV93cmFwcGVyX2hlaWdodDogMCwNCiAgICBjdXJyZW50X2luZGV4OiAwLA0KICAgIGN1cnJlbnRfaW1hZ2U6IGZhbHNlLA0KICAgIG5hdl9kaXNwbGF5X3dpZHRoOiAwLA0KICAgIHNldHRpbmdzOiBmYWxzZSwNCiAgICBpbWFnZXM6IGZhbHNlLA0KICAgIGluX3RyYW5zaXRpb246IGZhbHNlLA0KICAgIGFuaW1hdGlvbnM6IGZhbHNlLA0KICAgIGluaXQ6IGZ1bmN0aW9uKHdyYXBwZXIsIHNldHRpbmdzKSB7DQogICAgICB2YXIgY29udGV4dCA9IHRoaXM7DQogICAgICB0aGlzLndyYXBwZXIgPSAkKHdyYXBwZXIpOw0KICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzOw0KICAgICAgdGhpcy5zZXR1cEVsZW1lbnRzKCk7DQogICAgICB0aGlzLnNldHVwQW5pbWF0aW9ucygpOw0KICAgICAgaWYodGhpcy5zZXR0aW5ncy53aWR0aCkgew0KICAgICAgICB0aGlzLmltYWdlX3dyYXBwZXJfd2lkdGggPSB0aGlzLnNldHRpbmdzLndpZHRoOw0KICAgICAgICB0aGlzLmltYWdlX3dyYXBwZXIud2lkdGgodGhpcy5zZXR0aW5ncy53aWR0aCk7DQogICAgICAgIHRoaXMud3JhcHBlci53aWR0aCh0aGlzLnNldHRpbmdzLndpZHRoKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuaW1hZ2Vfd3JhcHBlcl93aWR0aCA9IHRoaXMuaW1hZ2Vfd3JhcHBlci53aWR0aCgpOw0KICAgICAgfTsNCiAgICAgIGlmKHRoaXMuc2V0dGluZ3MuaGVpZ2h0KSB7DQogICAgICAgIHRoaXMuaW1hZ2Vfd3JhcHBlcl9oZWlnaHQgPSB0aGlzLnNldHRpbmdzLmhlaWdodDsNCiAgICAgICAgdGhpcy5pbWFnZV93cmFwcGVyLmhlaWdodCh0aGlzLnNldHRpbmdzLmhlaWdodCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmltYWdlX3dyYXBwZXJfaGVpZ2h0ID0gdGhpcy5pbWFnZV93cmFwcGVyLmhlaWdodCgpOw0KICAgICAgfTsNCiAgICAgIHRoaXMubmF2X2Rpc3BsYXlfd2lkdGggPSB0aGlzLm5hdi53aWR0aCgpOw0KICAgICAgdGhpcy5jdXJyZW50X2luZGV4ID0gMDsNCiAgICAgIHRoaXMuY3VycmVudF9pbWFnZSA9IGZhbHNlOw0KICAgICAgdGhpcy5pbl90cmFuc2l0aW9uID0gZmFsc2U7DQogICAgICB0aGlzLmZpbmRJbWFnZXMoKTsNCiAgICAgIGlmKHRoaXMuc2V0dGluZ3MuZGlzcGxheV9uZXh0X2FuZF9wcmV2KSB7DQogICAgICAgIHRoaXMuaW5pdE5leHRBbmRQcmV2KCk7DQogICAgICB9Ow0KICAgICAgLy8gVGhlIHNsaWRlc2hvdyBuZWVkcyBhIGNhbGxiYWNrIHRvIHRyaWdnZXIgdGhlIG5leHQgaW1hZ2UgdG8gYmUgc2hvd24NCiAgICAgIC8vIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGdpdmUgaXQgYWNjZXNzIHRvIHRoZSB3aG9sZSBnYWxsZXJ5IGluc3RhbmNlDQogICAgICB2YXIgbmV4dGltYWdlX2NhbGxiYWNrID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIGNvbnRleHQubmV4dEltYWdlKGNhbGxiYWNrKTsNCiAgICAgIH07DQogICAgICB0aGlzLnNsaWRlc2hvdyA9IG5ldyBBZUdhbGxlcnlTbGlkZXNob3cobmV4dGltYWdlX2NhbGxiYWNrLCB0aGlzLnNldHRpbmdzLnNsaWRlc2hvdyk7DQogICAgICB0aGlzLmNvbnRyb2xzLmFwcGVuZCh0aGlzLnNsaWRlc2hvdy5jcmVhdGUoKSk7DQogICAgICBpZih0aGlzLnNldHRpbmdzLnNsaWRlc2hvdy5lbmFibGUpIHsNCiAgICAgICAgdGhpcy5zbGlkZXNob3cuZW5hYmxlKCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLnNsaWRlc2hvdy5kaXNhYmxlKCk7DQogICAgICB9Ow0KICAgICAgaWYodGhpcy5zZXR0aW5ncy5kaXNwbGF5X2JhY2tfYW5kX2ZvcndhcmQpIHsNCiAgICAgICAgdGhpcy5pbml0QmFja0FuZEZvcndhcmQoKTsNCiAgICAgIH07DQogICAgICBpZih0aGlzLnNldHRpbmdzLmVuYWJsZV9rZXlib2FyZF9tb3ZlKSB7DQogICAgICAgIHRoaXMuaW5pdEtleUV2ZW50cygpOw0KICAgICAgfTsNCiAgICAgIHZhciBzdGFydF9hdCA9IHRoaXMuc2V0dGluZ3Muc3RhcnRfYXRfaW5kZXg7DQogICAgICBpZih3aW5kb3cubG9jYXRpb24uaGFzaCAmJiB3aW5kb3cubG9jYXRpb24uaGFzaC5pbmRleE9mKCcjYWUtaW1hZ2UnKSA9PT0gMCkgew0KICAgICAgICBzdGFydF9hdCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoL1teMC05XSsvZywgJycpOw0KICAgICAgICAvLyBDaGVjayBpZiBpdCdzIGEgbnVtYmVyDQogICAgICAgIGlmKChzdGFydF9hdCAqIDEpICE9IHN0YXJ0X2F0KSB7DQogICAgICAgICAgc3RhcnRfYXQgPSB0aGlzLnNldHRpbmdzLnN0YXJ0X2F0X2luZGV4Ow0KICAgICAgICB9Ow0KICAgICAgfTsNCg0KICAgICAgdGhpcy5sb2FkaW5nKHRydWUpOw0KICAgICAgdGhpcy5zaG93SW1hZ2Uoc3RhcnRfYXQsDQogICAgICAgIGZ1bmN0aW9uKCkgew0KICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gc3RhcnQgdGhlIHNsaWRlc2hvdyBiZWZvcmUgdGhlIGltYWdlIGhhcyBiZWVuDQogICAgICAgICAgLy8gZGlzcGxheWVkDQogICAgICAgICAgaWYoY29udGV4dC5zZXR0aW5ncy5zbGlkZXNob3cuYXV0b3N0YXJ0KSB7DQogICAgICAgICAgICBjb250ZXh0LnByZWxvYWRJbWFnZShzdGFydF9hdCArIDEpOw0KICAgICAgICAgICAgY29udGV4dC5zbGlkZXNob3cuc3RhcnQoKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICApOw0KICAgICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5zZXR0aW5ncy5jYWxsYmFja3MuaW5pdCk7DQogICAgfSwNCiAgICBzZXR1cEFuaW1hdGlvbnM6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5hbmltYXRpb25zID0gew0KICAgICAgICAnc2xpZGUtdmVydCc6IFZlcnRpY2FsU2xpZGVBbmltYXRpb24sDQogICAgICAgICdzbGlkZS1ob3JpJzogSG9yaXpvbnRhbFNsaWRlQW5pbWF0aW9uLA0KICAgICAgICAncmVzaXplJzogUmVzaXplQW5pbWF0aW9uLA0KICAgICAgICAnZmFkZSc6IEZhZGVBbmltYXRpb24sDQogICAgICAgICdub25lJzogTm9uZUFuaW1hdGlvbg0KICAgICAgfTsNCiAgICB9LA0KICAgIHNldHVwRWxlbWVudHM6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5jb250cm9scyA9IHRoaXMud3JhcHBlci5maW5kKCcuYWUtY29udHJvbHMnKTsNCiAgICAgIHRoaXMuZ2FsbGVyeV9pbmZvID0gJCgnPHAgY2xhc3M9ImFlLWluZm8iPjwvcD4nKTsNCiAgICAgIHRoaXMuY29udHJvbHMuYXBwZW5kKHRoaXMuZ2FsbGVyeV9pbmZvKTsNCiAgICAgIHRoaXMuaW1hZ2Vfd3JhcHBlciA9IHRoaXMud3JhcHBlci5maW5kKCcuYWUtaW1hZ2Utd3JhcHBlcicpOw0KICAgICAgdGhpcy5pbWFnZV93cmFwcGVyLmVtcHR5KCk7DQogICAgICB0aGlzLm5hdiA9IHRoaXMud3JhcHBlci5maW5kKCcuYWUtbmF2Jyk7DQogICAgICB0aGlzLnRodW1ic193cmFwcGVyID0gdGhpcy5uYXYuZmluZCgnLmFlLXRodW1icycpOw0KICAgICAgdGhpcy5wcmVsb2FkcyA9ICQoJzxkaXYgY2xhc3M9ImFlLXByZWxvYWRzIj48L2Rpdj4nKTsNCiAgICAgIHRoaXMubG9hZGVyID0gJCgnPGltZyBjbGFzcz0iYWUtbG9hZGVyIiBzcmM9IicrIHRoaXMuc2V0dGluZ3MubG9hZGVyX2ltYWdlICsnIj4nKTsNCiAgICAgIHRoaXMuaW1hZ2Vfd3JhcHBlci5hcHBlbmQodGhpcy5sb2FkZXIpOw0KICAgICAgdGhpcy5sb2FkZXIuaGlkZSgpOw0KICAgICAgJChkb2N1bWVudC5ib2R5KS5hcHBlbmQodGhpcy5wcmVsb2Fkcyk7DQogICAgfSwNCiAgICBsb2FkaW5nOiBmdW5jdGlvbihib29sKSB7DQogICAgICBpZihib29sKSB7DQogICAgICAgIHRoaXMubG9hZGVyLnNob3coKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMubG9hZGVyLmhpZGUoKTsNCiAgICAgIH07DQogICAgfSwNCiAgICBhZGRBbmltYXRpb246IGZ1bmN0aW9uKG5hbWUsIGZuKSB7DQogICAgICBpZigkLmlzRnVuY3Rpb24oZm4pKSB7DQogICAgICAgIHRoaXMuYW5pbWF0aW9uc1tuYW1lXSA9IGZuOw0KICAgICAgfTsNCiAgICB9LA0KICAgIGZpbmRJbWFnZXM6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgdGhpcy5pbWFnZXMgPSBbXTsNCiAgICAgIHZhciB0aHVtYl93cmFwcGVyX3dpZHRoID0gMDsNCiAgICAgIHZhciB0aHVtYnNfbG9hZGVkID0gMDsNCiAgICAgIHZhciB0aHVtYnMgPSB0aGlzLnRodW1ic193cmFwcGVyLmZpbmQoJ2EnKTsNCiAgICAgIHZhciB0aHVtYl9jb3VudCA9IHRodW1icy5sZW5ndGg7DQogICAgICBpZih0aGlzLnNldHRpbmdzLnRodW1iX29wYWNpdHkgPCAxKSB7DQogICAgICAgIHRodW1icy5maW5kKCdpbWcnKS5jc3MoJ29wYWNpdHknLCB0aGlzLnNldHRpbmdzLnRodW1iX29wYWNpdHkpOw0KICAgICAgfTsNCiAgICAgIHRodW1icy5lYWNoKA0KICAgICAgICBmdW5jdGlvbihpKSB7DQogICAgICAgICAgdmFyIGxpbmsgPSAkKHRoaXMpOw0KICAgICAgICAgIHZhciBpbWFnZV9zcmMgPSBsaW5rLmF0dHIoJ2hyZWYnKTsNCiAgICAgICAgICB2YXIgdGh1bWIgPSBsaW5rLmZpbmQoJ2ltZycpOw0KICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSB0aHVtYiBoYXMgYWxyZWFkeSBsb2FkZWQNCiAgICAgICAgICBpZighY29udGV4dC5pc0ltYWdlTG9hZGVkKHRodW1iWzBdKSkgew0KICAgICAgICAgICAgdGh1bWIubG9hZCgNCiAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgdGh1bWJfd3JhcHBlcl93aWR0aCArPSB0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5vZmZzZXRXaWR0aDsNCiAgICAgICAgICAgICAgICB0aHVtYnNfbG9hZGVkKys7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSBlbHNlew0KICAgICAgICAgICAgdGh1bWJfd3JhcHBlcl93aWR0aCArPSB0aHVtYlswXS5wYXJlbnROb2RlLnBhcmVudE5vZGUub2Zmc2V0V2lkdGg7DQogICAgICAgICAgICB0aHVtYnNfbG9hZGVkKys7DQogICAgICAgICAgfTsNCiAgICAgICAgICBsaW5rLmFkZENsYXNzKCdhZS10aHVtYicrIGkpOw0KICAgICAgICAgIGxpbmsuY2xpY2soDQogICAgICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgY29udGV4dC5zaG93SW1hZ2UoaSk7DQogICAgICAgICAgICAgIGNvbnRleHQuc2xpZGVzaG93LnN0b3AoKTsNCiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICkuaG92ZXIoDQogICAgICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgaWYoISQodGhpcykuaXMoJy5hZS1hY3RpdmUnKSAmJiBjb250ZXh0LnNldHRpbmdzLnRodW1iX29wYWNpdHkgPCAxKSB7DQogICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCdpbWcnKS5mYWRlVG8oMzAwLCAxKTsNCiAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgY29udGV4dC5wcmVsb2FkSW1hZ2UoaSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgIGlmKCEkKHRoaXMpLmlzKCcuYWUtYWN0aXZlJykgJiYgY29udGV4dC5zZXR0aW5ncy50aHVtYl9vcGFjaXR5IDwgMSkgew0KICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnaW1nJykuZmFkZVRvKDMwMCwgY29udGV4dC5zZXR0aW5ncy50aHVtYl9vcGFjaXR5KTsNCiAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICApOw0KICAgICAgICAgIHZhciBkZXNjID0gZmFsc2U7DQogICAgICAgICAgaWYodGh1bWIuZGF0YSgnYWUtZGVzYycpKSB7DQogICAgICAgICAgICBkZXNjID0gdGh1bWIuZGF0YSgnYWUtZGVzYycpOw0KICAgICAgICAgIH0gZWxzZSBpZih0aHVtYi5hdHRyKCdsb25nZGVzYycpICYmIHRodW1iLmF0dHIoJ2xvbmdkZXNjJykubGVuZ3RoKSB7DQogICAgICAgICAgICBkZXNjID0gdGh1bWIuYXR0cignbG9uZ2Rlc2MnKTsNCiAgICAgICAgICB9Ow0KICAgICAgICAgIHZhciB0aXRsZSA9IGZhbHNlOw0KICAgICAgICAgIGlmKHRodW1iLmRhdGEoJ2FlLXRpdGxlJykpIHsNCiAgICAgICAgICAgIHRpdGxlID0gdGh1bWIuZGF0YSgnYWUtdGl0bGUnKTsNCiAgICAgICAgICB9IGVsc2UgaWYodGh1bWIuYXR0cigndGl0bGUnKSAmJiB0aHVtYi5hdHRyKCd0aXRsZScpLmxlbmd0aCkgew0KICAgICAgICAgICAgdGl0bGUgPSB0aHVtYi5hdHRyKCd0aXRsZScpOw0KICAgICAgICAgIH07DQogICAgICAgICAgY29udGV4dC5pbWFnZXNbaV0gPSB7IHRodW1iOiB0aHVtYi5hdHRyKCdzcmMnKSwgaW1hZ2U6IGltYWdlX3NyYywgZXJyb3I6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVsb2FkZWQ6IGZhbHNlLCBkZXNjOiBkZXNjLCB0aXRsZTogdGl0bGUsIHNpemU6IGZhbHNlIH07DQogICAgICAgIH0NCiAgICAgICk7DQogICAgICAvLyBXYWl0IHVudGlsIGFsbCB0aHVtYnMgYXJlIGxvYWRlZCwgYW5kIHRoZW4gc2V0IHRoZSB3aWR0aCBvZiB0aGUgdWwNCiAgICAgIHZhciBpbnRlciA9IHNldEludGVydmFsKA0KICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICBpZih0aHVtYl9jb3VudCA9PSB0aHVtYnNfbG9hZGVkKSB7DQogICAgICAgICAgICBjb250ZXh0Lm5hdi5maW5kKCcuYWUtdGh1bWItbGlzdCcpLmNzcygnd2lkdGgnLCB0aHVtYl93cmFwcGVyX3dpZHRoICsncHgnKTsNCiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXIpOw0KICAgICAgICAgIH07DQogICAgICAgIH0sDQogICAgICAgIDEwMA0KICAgICAgKTsNCiAgICB9LA0KICAgIGluaXRLZXlFdmVudHM6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgJChkb2N1bWVudCkua2V5ZG93bigNCiAgICAgICAgZnVuY3Rpb24oZSkgew0KICAgICAgICAgIGlmKGUua2V5Q29kZSA9PSAzOSkgew0KICAgICAgICAgICAgLy8gcmlnaHQgYXJyb3cNCiAgICAgICAgICAgIGNvbnRleHQubmV4dEltYWdlKCk7DQogICAgICAgICAgICBjb250ZXh0LnNsaWRlc2hvdy5zdG9wKCk7DQogICAgICAgICAgfSBlbHNlIGlmKGUua2V5Q29kZSA9PSAzNykgew0KICAgICAgICAgICAgLy8gbGVmdCBhcnJvdw0KICAgICAgICAgICAgY29udGV4dC5wcmV2SW1hZ2UoKTsNCiAgICAgICAgICAgIGNvbnRleHQuc2xpZGVzaG93LnN0b3AoKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICApOw0KICAgIH0sDQogICAgaW5pdE5leHRBbmRQcmV2OiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMubmV4dF9saW5rID0gJCgnPGRpdiBjbGFzcz0iYWUtbmV4dCI+PGRpdiBjbGFzcz0iYWUtbmV4dC1pbWFnZSI+PC9kaXY+PC9kaXY+Jyk7DQogICAgICB0aGlzLnByZXZfbGluayA9ICQoJzxkaXYgY2xhc3M9ImFlLXByZXYiPjxkaXYgY2xhc3M9ImFlLXByZXYtaW1hZ2UiPjwvZGl2PjwvZGl2PicpOw0KICAgICAgdGhpcy5pbWFnZV93cmFwcGVyLmFwcGVuZCh0aGlzLm5leHRfbGluayk7DQogICAgICB0aGlzLmltYWdlX3dyYXBwZXIuYXBwZW5kKHRoaXMucHJldl9saW5rKTsNCiAgICAgIHZhciBjb250ZXh0ID0gdGhpczsNCiAgICAgIHRoaXMucHJldl9saW5rLmFkZCh0aGlzLm5leHRfbGluaykubW91c2VvdmVyKA0KICAgICAgICBmdW5jdGlvbihlKSB7DQogICAgICAgICAgLy8gSUUgNiBoaWRlcyB0aGUgd3JhcHBlciBkaXYsIHNvIHdlIGhhdmUgdG8gc2V0IGl0J3Mgd2lkdGgNCiAgICAgICAgICAkKHRoaXMpLmNzcygnaGVpZ2h0JywgY29udGV4dC5pbWFnZV93cmFwcGVyX2hlaWdodCk7DQogICAgICAgICAgJCh0aGlzKS5maW5kKCdkaXYnKS5zaG93KCk7DQogICAgICAgIH0NCiAgICAgICkubW91c2VvdXQoDQogICAgICAgIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAkKHRoaXMpLmZpbmQoJ2RpdicpLmhpZGUoKTsNCiAgICAgICAgfQ0KICAgICAgKS5jbGljaygNCiAgICAgICAgZnVuY3Rpb24oKSB7DQogICAgICAgICAgaWYoJCh0aGlzKS5pcygnLmFlLW5leHQnKSkgew0KICAgICAgICAgICAgY29udGV4dC5uZXh0SW1hZ2UoKTsNCiAgICAgICAgICAgIGNvbnRleHQuc2xpZGVzaG93LnN0b3AoKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgY29udGV4dC5wcmV2SW1hZ2UoKTsNCiAgICAgICAgICAgIGNvbnRleHQuc2xpZGVzaG93LnN0b3AoKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICApLmZpbmQoJ2RpdicpLmNzcygnb3BhY2l0eScsIDAuNyk7DQogICAgfSwNCiAgICBpbml0QmFja0FuZEZvcndhcmQ6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgdGhpcy5zY3JvbGxfZm9yd2FyZCA9ICQoJzxkaXYgY2xhc3M9ImFlLWZvcndhcmQiPjwvZGl2PicpOw0KICAgICAgdGhpcy5zY3JvbGxfYmFjayA9ICQoJzxkaXYgY2xhc3M9ImFlLWJhY2siPjwvZGl2PicpOw0KICAgICAgdGhpcy5uYXYuYXBwZW5kKHRoaXMuc2Nyb2xsX2ZvcndhcmQpOw0KICAgICAgdGhpcy5uYXYucHJlcGVuZCh0aGlzLnNjcm9sbF9iYWNrKTsNCiAgICAgIHZhciBoYXNfc2Nyb2xsZWQgPSAwOw0KICAgICAgdmFyIHRodW1ic19zY3JvbGxfaW50ZXJ2YWwgPSBmYWxzZTsNCiAgICAgICQodGhpcy5zY3JvbGxfYmFjaykuYWRkKHRoaXMuc2Nyb2xsX2ZvcndhcmQpLmNsaWNrKA0KICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGp1bXAgdGhlIHdob2xlIHdpZHRoLCBzaW5jZSBhbiBpbWFnZQ0KICAgICAgICAgIC8vIG1pZ2h0IGJlIGN1dCBhdCB0aGUgZWRnZQ0KICAgICAgICAgIHZhciB3aWR0aCA9IGNvbnRleHQubmF2X2Rpc3BsYXlfd2lkdGggLSA1MDsNCiAgICAgICAgICBpZihjb250ZXh0LnNldHRpbmdzLnNjcm9sbF9qdW1wID4gMCkgew0KICAgICAgICAgICAgdmFyIHdpZHRoID0gY29udGV4dC5zZXR0aW5ncy5zY3JvbGxfanVtcDsNCiAgICAgICAgICB9Ow0KICAgICAgICAgIGlmKCQodGhpcykuaXMoJy5hZS1mb3J3YXJkJykpIHsNCiAgICAgICAgICAgIHZhciBsZWZ0ID0gY29udGV4dC50aHVtYnNfd3JhcHBlci5zY3JvbGxMZWZ0KCkgKyB3aWR0aDsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdmFyIGxlZnQgPSBjb250ZXh0LnRodW1ic193cmFwcGVyLnNjcm9sbExlZnQoKSAtIHdpZHRoOw0KICAgICAgICAgIH07DQogICAgICAgICAgaWYoY29udGV4dC5zZXR0aW5ncy5zbGlkZXNob3cuc3RvcF9vbl9zY3JvbGwpIHsNCiAgICAgICAgICAgIGNvbnRleHQuc2xpZGVzaG93LnN0b3AoKTsNCiAgICAgICAgICB9Ow0KICAgICAgICAgIGNvbnRleHQudGh1bWJzX3dyYXBwZXIuYW5pbWF0ZSh7c2Nyb2xsTGVmdDogbGVmdCArJ3B4J30pOw0KICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgKS5jc3MoJ29wYWNpdHknLCAwLjYpLmhvdmVyKA0KICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICB2YXIgZGlyZWN0aW9uID0gJ2xlZnQnOw0KICAgICAgICAgIGlmKCQodGhpcykuaXMoJy5hZS1mb3J3YXJkJykpIHsNCiAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdyaWdodCc7DQogICAgICAgICAgfTsNCiAgICAgICAgICB0aHVtYnNfc2Nyb2xsX2ludGVydmFsID0gc2V0SW50ZXJ2YWwoDQogICAgICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgaGFzX3Njcm9sbGVkKys7DQogICAgICAgICAgICAgIC8vIERvbid0IHdhbnQgdG8gc3RvcCB0aGUgc2xpZGVzaG93IGp1c3QgYmVjYXVzZSB3ZSBzY3JvbGxlZCBhIHBpeGVsIG9yIHR3bw0KICAgICAgICAgICAgICBpZihoYXNfc2Nyb2xsZWQgPiAzMCAmJiBjb250ZXh0LnNldHRpbmdzLnNsaWRlc2hvdy5zdG9wX29uX3Njcm9sbCkgew0KICAgICAgICAgICAgICAgIGNvbnRleHQuc2xpZGVzaG93LnN0b3AoKTsNCiAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgdmFyIGxlZnQgPSBjb250ZXh0LnRodW1ic193cmFwcGVyLnNjcm9sbExlZnQoKSArIDE7DQogICAgICAgICAgICAgIGlmKGRpcmVjdGlvbiA9PSAnbGVmdCcpIHsNCiAgICAgICAgICAgICAgICBsZWZ0ID0gY29udGV4dC50aHVtYnNfd3JhcHBlci5zY3JvbGxMZWZ0KCkgLSAxOw0KICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICBjb250ZXh0LnRodW1ic193cmFwcGVyLnNjcm9sbExlZnQobGVmdCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgMTANCiAgICAgICAgICApOw0KICAgICAgICAgICQodGhpcykuY3NzKCdvcGFjaXR5JywgMSk7DQogICAgICAgIH0sDQogICAgICAgIGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGhhc19zY3JvbGxlZCA9IDA7DQogICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aHVtYnNfc2Nyb2xsX2ludGVydmFsKTsNCiAgICAgICAgICAkKHRoaXMpLmNzcygnb3BhY2l0eScsIDAuNik7DQogICAgICAgIH0NCiAgICAgICk7DQogICAgfSwNCiAgICBfYWZ0ZXJTaG93OiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMuZ2FsbGVyeV9pbmZvLmh0bWwoKHRoaXMuY3VycmVudF9pbmRleCArIDEpICsnIC8gJysgdGhpcy5pbWFnZXMubGVuZ3RoKTsNCiAgICAgIGlmKCF0aGlzLnNldHRpbmdzLmN5Y2xlKSB7DQogICAgICAgIC8vIE5lZWRlZCBmb3IgSUUNCiAgICAgICAgdGhpcy5wcmV2X2xpbmsuc2hvdygpLmNzcygnaGVpZ2h0JywgdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodCk7DQogICAgICAgIHRoaXMubmV4dF9saW5rLnNob3coKS5jc3MoJ2hlaWdodCcsIHRoaXMuaW1hZ2Vfd3JhcHBlcl9oZWlnaHQpOw0KICAgICAgICBpZih0aGlzLmN1cnJlbnRfaW5kZXggPT0gKHRoaXMuaW1hZ2VzLmxlbmd0aCAtIDEpKSB7DQogICAgICAgICAgdGhpcy5uZXh0X2xpbmsuaGlkZSgpOw0KICAgICAgICB9Ow0KICAgICAgICBpZih0aGlzLmN1cnJlbnRfaW5kZXggPT0gMCkgew0KICAgICAgICAgIHRoaXMucHJldl9saW5rLmhpZGUoKTsNCiAgICAgICAgfTsNCiAgICAgIH07DQogICAgICB0aGlzLmZpcmVDYWxsYmFjayh0aGlzLnNldHRpbmdzLmNhbGxiYWNrcy5hZnRlckltYWdlVmlzaWJsZSk7DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBDaGVja3MgaWYgdGhlIGltYWdlIGlzIHNtYWxsIGVub3VnaCB0byBmaXQgaW5zaWRlIHRoZSBjb250YWluZXINCiAgICAgKiBJZiBpdCdzIG5vdCwgc2hyaW5rIGl0IHByb3BvcnRpb25hbGx5DQogICAgICovDQogICAgX2dldENvbnRhaW5lZEltYWdlU2l6ZTogZnVuY3Rpb24oaW1hZ2Vfd2lkdGgsIGltYWdlX2hlaWdodCkgew0KICAgICAgaWYoaW1hZ2VfaGVpZ2h0ID4gdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodCkgew0KICAgICAgICB2YXIgcmF0aW8gPSBpbWFnZV93aWR0aCAvIGltYWdlX2hlaWdodDsNCiAgICAgICAgaW1hZ2VfaGVpZ2h0ID0gdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodDsNCiAgICAgICAgaW1hZ2Vfd2lkdGggPSB0aGlzLmltYWdlX3dyYXBwZXJfaGVpZ2h0ICogcmF0aW87DQogICAgICB9Ow0KICAgICAgaWYoaW1hZ2Vfd2lkdGggPiB0aGlzLmltYWdlX3dyYXBwZXJfd2lkdGgpIHsNCiAgCSAgICB2YXIgcmF0aW8gPSBpbWFnZV9oZWlnaHQgLyBpbWFnZV93aWR0aDsNCiAgCSAgICBpbWFnZV93aWR0aCA9IHRoaXMuaW1hZ2Vfd3JhcHBlcl93aWR0aDsNCiAgCSAgICBpbWFnZV9oZWlnaHQgPSB0aGlzLmltYWdlX3dyYXBwZXJfd2lkdGggKiByYXRpbzsNCiAgCSAgfTsNCiAgICAgIHJldHVybiB7d2lkdGg6IGltYWdlX3dpZHRoLCBoZWlnaHQ6IGltYWdlX2hlaWdodH07DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBJZiB0aGUgaW1hZ2UgZGltZW5zaW9ucyBhcmUgc21hbGxlciB0aGFuIHRoZSB3cmFwcGVyLCB3ZSBwb3NpdGlvbg0KICAgICAqIGl0IGluIHRoZSBtaWRkbGUgYW55d2F5DQogICAgICovDQogICAgX2NlbnRlckltYWdlOiBmdW5jdGlvbihpbWdfY29udGFpbmVyLCBpbWFnZV93aWR0aCwgaW1hZ2VfaGVpZ2h0KSB7DQogICAgICBpbWdfY29udGFpbmVyLmNzcygndG9wJywgJzBweCcpOw0KICAgICAgaWYoaW1hZ2VfaGVpZ2h0IDwgdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodCkgew0KICAgICAgICB2YXIgZGlmID0gdGhpcy5pbWFnZV93cmFwcGVyX2hlaWdodCAtIGltYWdlX2hlaWdodDsNCiAgICAgICAgaW1nX2NvbnRhaW5lci5jc3MoJ3RvcCcsIChkaWYgLyAyKSArJ3B4Jyk7DQogICAgICB9Ow0KICAgICAgaW1nX2NvbnRhaW5lci5jc3MoJ2xlZnQnLCAnMHB4Jyk7DQogICAgICBpZihpbWFnZV93aWR0aCA8IHRoaXMuaW1hZ2Vfd3JhcHBlcl93aWR0aCkgew0KICAgICAgICB2YXIgZGlmID0gdGhpcy5pbWFnZV93cmFwcGVyX3dpZHRoIC0gaW1hZ2Vfd2lkdGg7DQogICAgICAgIGltZ19jb250YWluZXIuY3NzKCdsZWZ0JywgKGRpZiAvIDIpICsncHgnKTsNCiAgICAgIH07DQogICAgfSwNCiAgICBfZ2V0RGVzY3JpcHRpb246IGZ1bmN0aW9uKGltYWdlKSB7DQogICAgICB2YXIgZGVzYyA9IGZhbHNlOw0KICAgICAgaWYoaW1hZ2UuZGVzYy5sZW5ndGggfHwgaW1hZ2UudGl0bGUubGVuZ3RoKSB7DQogICAgICAgIHZhciB0aXRsZSA9ICcnOw0KICAgICAgICBpZihpbWFnZS50aXRsZS5sZW5ndGgpIHsNCiAgICAgICAgICB0aXRsZSA9ICc8c3Ryb25nIGNsYXNzPSJhZS1kZXNjcmlwdGlvbi10aXRsZSI+JysgaW1hZ2UudGl0bGUgKyc8L3N0cm9uZz4nOw0KICAgICAgICB9Ow0KICAgICAgICB2YXIgZGVzYyA9ICcnOw0KICAgICAgICBpZihpbWFnZS5kZXNjLmxlbmd0aCkgew0KICAgICAgICAgIGRlc2MgPSAnPHNwYW4+JysgaW1hZ2UuZGVzYyArJzwvc3Bhbj4nOw0KICAgICAgICB9Ow0KICAgICAgICBkZXNjID0gJCgnPHAgY2xhc3M9ImFlLWltYWdlLWRlc2NyaXB0aW9uIj4nKyB0aXRsZSArIGRlc2MgKyc8L3A+Jyk7DQogICAgICB9Ow0KICAgICAgcmV0dXJuIGRlc2M7DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBAcGFyYW0gZnVuY3Rpb24gY2FsbGJhY2sgR2V0cyBmaXJlZCB3aGVuIHRoZSBpbWFnZSBoYXMgbG9hZGVkLCBpcyBkaXNwbGF5aW5nDQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpdCdzIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQNCiAgICAgKi8NCiAgICBzaG93SW1hZ2U6IGZ1bmN0aW9uKGluZGV4LCBjYWxsYmFjaykgew0KICAgICAgaWYodGhpcy5pbWFnZXNbaW5kZXhdICYmICF0aGlzLmluX3RyYW5zaXRpb24pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgICB2YXIgaW1hZ2UgPSB0aGlzLmltYWdlc1tpbmRleF07DQogICAgICAgIHRoaXMuaW5fdHJhbnNpdGlvbiA9IHRydWU7DQogICAgICAgIGlmKCFpbWFnZS5wcmVsb2FkZWQpIHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcodHJ1ZSk7DQogICAgICAgICAgdGhpcy5wcmVsb2FkSW1hZ2UoaW5kZXgsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgY29udGV4dC5sb2FkaW5nKGZhbHNlKTsNCiAgICAgICAgICAgIGNvbnRleHQuX3Nob3dXaGVuTG9hZGVkKGluZGV4LCBjYWxsYmFjayk7DQogICAgICAgICAgfSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5fc2hvd1doZW5Mb2FkZWQoaW5kZXgsIGNhbGxiYWNrKTsNCiAgICAgICAgfTsNCiAgICAgIH07DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBAcGFyYW0gZnVuY3Rpb24gY2FsbGJhY2sgR2V0cyBmaXJlZCB3aGVuIHRoZSBpbWFnZSBoYXMgbG9hZGVkLCBpcyBkaXNwbGF5aW5nDQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpdCdzIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQNCiAgICAgKi8NCiAgICBfc2hvd1doZW5Mb2FkZWQ6IGZ1bmN0aW9uKGluZGV4LCBjYWxsYmFjaykgew0KICAgICAgaWYodGhpcy5pbWFnZXNbaW5kZXhdKSB7DQogICAgICAgIHZhciBjb250ZXh0ID0gdGhpczsNCiAgICAgICAgdmFyIGltYWdlID0gdGhpcy5pbWFnZXNbaW5kZXhdOw0KICAgICAgICB2YXIgaW1nX2NvbnRhaW5lciA9ICQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpLmFkZENsYXNzKCdhZS1pbWFnZScpOw0KICAgICAgICB2YXIgaW1nID0gJChuZXcgSW1hZ2UoKSkuYXR0cignc3JjJywgaW1hZ2UuaW1hZ2UpOw0KICAgICAgICBpbWdfY29udGFpbmVyLmFwcGVuZChpbWcpOw0KICAgICAgICB0aGlzLmltYWdlX3dyYXBwZXIucHJlcGVuZChpbWdfY29udGFpbmVyKTsNCiAgICAgICAgdmFyIHNpemUgPSB0aGlzLl9nZXRDb250YWluZWRJbWFnZVNpemUoaW1hZ2Uuc2l6ZS53aWR0aCwgaW1hZ2Uuc2l6ZS5oZWlnaHQpOw0KICAgICAgICBpbWcuYXR0cignd2lkdGgnLCBzaXplLndpZHRoKTsNCiAgICAgICAgaW1nLmF0dHIoJ2hlaWdodCcsIHNpemUuaGVpZ2h0KTsNCiAgICAgICAgaW1nX2NvbnRhaW5lci5jc3Moe3dpZHRoOiBzaXplLndpZHRoICsncHgnLCBoZWlnaHQ6IHNpemUuaGVpZ2h0ICsncHgnfSk7DQogICAgICAgIHRoaXMuX2NlbnRlckltYWdlKGltZ19jb250YWluZXIsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTsNCiAgICAgICAgdmFyIGRlc2MgPSB0aGlzLl9nZXREZXNjcmlwdGlvbihpbWFnZSwgaW1nX2NvbnRhaW5lcik7DQogICAgICAgIGlmKGRlc2MpIHsNCiAgICAgICAgICBpbWdfY29udGFpbmVyLmFwcGVuZChkZXNjKTsNCiAgICAgICAgICB2YXIgd2lkdGggPSBzaXplLndpZHRoIC0gcGFyc2VJbnQoZGVzYy5jc3MoJ3BhZGRpbmctbGVmdCcpLCAxMCkgLSBwYXJzZUludChkZXNjLmNzcygncGFkZGluZy1yaWdodCcpLCAxMCk7DQogICAgICAgICAgZGVzYy5jc3MoJ3dpZHRoJywgd2lkdGggKydweCcpOw0KICAgICAgICB9Ow0KICAgICAgICB0aGlzLmhpZ2hMaWdodFRodW1iKHRoaXMubmF2LmZpbmQoJy5hZS10aHVtYicrIGluZGV4KSk7DQoNCiAgICAgICAgdmFyIGRpcmVjdGlvbiA9ICdyaWdodCc7DQogICAgICAgIGlmKHRoaXMuY3VycmVudF9pbmRleCA8IGluZGV4KSB7DQogICAgICAgICAgZGlyZWN0aW9uID0gJ2xlZnQnOw0KICAgICAgICB9Ow0KICAgICAgICB0aGlzLmZpcmVDYWxsYmFjayh0aGlzLnNldHRpbmdzLmNhbGxiYWNrcy5iZWZvcmVJbWFnZVZpc2libGUpOw0KICAgICAgICBpZih0aGlzLmN1cnJlbnRfaW1hZ2UgfHwgdGhpcy5zZXR0aW5ncy5hbmltYXRlX2ZpcnN0X2ltYWdlKSB7DQogICAgICAgICAgdmFyIGFuaW1hdGlvbl9zcGVlZCA9IHRoaXMuc2V0dGluZ3MuYW5pbWF0aW9uX3NwZWVkOw0KICAgICAgICAgIHZhciBlYXNpbmcgPSAnc3dpbmcnOw0KICAgICAgICAgIHZhciBhbmltYXRpb24gPSB0aGlzLmFuaW1hdGlvbnNbdGhpcy5zZXR0aW5ncy5lZmZlY3RdLmNhbGwodGhpcywgaW1nX2NvbnRhaW5lciwgZGlyZWN0aW9uLCBkZXNjKTsNCiAgICAgICAgICBpZih0eXBlb2YgYW5pbWF0aW9uLnNwZWVkICE9ICd1bmRlZmluZWQnKSB7DQogICAgICAgICAgICBhbmltYXRpb25fc3BlZWQgPSBhbmltYXRpb24uc3BlZWQ7DQogICAgICAgICAgfTsNCiAgICAgICAgICBpZih0eXBlb2YgYW5pbWF0aW9uLmVhc2luZyAhPSAndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgZWFzaW5nID0gYW5pbWF0aW9uLmVhc2luZzsNCiAgICAgICAgICB9Ow0KICAgICAgICAgIGlmKHRoaXMuY3VycmVudF9pbWFnZSkgew0KICAgICAgICAgICAgdmFyIG9sZF9pbWFnZSA9IHRoaXMuY3VycmVudF9pbWFnZTsNCiAgICAgICAgICAgIG9sZF9pbWFnZS5hbmltYXRlKGFuaW1hdGlvbi5vbGRfaW1hZ2UsIGFuaW1hdGlvbl9zcGVlZCwgZWFzaW5nLA0KICAgICAgICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICBvbGRfaW1hZ2UucmVtb3ZlKCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICk7DQogICAgICAgICAgfTsNCiAgICAgICAgICBpbWdfY29udGFpbmVyLmFuaW1hdGUoYW5pbWF0aW9uLm5ld19pbWFnZSwgYW5pbWF0aW9uX3NwZWVkLCBlYXNpbmcsDQogICAgICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgY29udGV4dC5jdXJyZW50X2luZGV4ID0gaW5kZXg7DQogICAgICAgICAgICAgIGNvbnRleHQuY3VycmVudF9pbWFnZSA9IGltZ19jb250YWluZXI7DQogICAgICAgICAgICAgIGNvbnRleHQuaW5fdHJhbnNpdGlvbiA9IGZhbHNlOw0KICAgICAgICAgICAgICBjb250ZXh0Ll9hZnRlclNob3coKTsNCiAgICAgICAgICAgICAgY29udGV4dC5maXJlQ2FsbGJhY2soY2FsbGJhY2spOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5jdXJyZW50X2luZGV4ID0gaW5kZXg7DQogICAgICAgICAgdGhpcy5jdXJyZW50X2ltYWdlID0gaW1nX2NvbnRhaW5lcjsNCiAgICAgICAgICB0aGlzLmluX3RyYW5zaXRpb24gPSBmYWxzZTsNCiAgICAgICAgICBjb250ZXh0Ll9hZnRlclNob3coKTsNCiAgICAgICAgICB0aGlzLmZpcmVDYWxsYmFjayhjYWxsYmFjayk7DQogICAgICAgIH07DQogICAgICB9Ow0KICAgIH0sDQogICAgbmV4dEluZGV4OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmKHRoaXMuY3VycmVudF9pbmRleCA9PSAodGhpcy5pbWFnZXMubGVuZ3RoIC0gMSkpIHsNCiAgICAgICAgaWYoIXRoaXMuc2V0dGluZ3MuY3ljbGUpIHsNCiAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH07DQogICAgICAgIHZhciBuZXh0ID0gMDsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHZhciBuZXh0ID0gdGhpcy5jdXJyZW50X2luZGV4ICsgMTsNCiAgICAgIH07DQogICAgICByZXR1cm4gbmV4dDsNCiAgICB9LA0KICAgIG5leHRJbWFnZTogZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgIHZhciBuZXh0ID0gdGhpcy5uZXh0SW5kZXgoKTsNCiAgICAgIGlmKG5leHQgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7DQogICAgICB0aGlzLnByZWxvYWRJbWFnZShuZXh0ICsgMSk7DQogICAgICB0aGlzLnNob3dJbWFnZShuZXh0LCBjYWxsYmFjayk7DQogICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KICAgIHByZXZJbmRleDogZnVuY3Rpb24oKSB7DQogICAgICBpZih0aGlzLmN1cnJlbnRfaW5kZXggPT0gMCkgew0KICAgICAgICBpZighdGhpcy5zZXR0aW5ncy5jeWNsZSkgew0KICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfTsNCiAgICAgICAgdmFyIHByZXYgPSB0aGlzLmltYWdlcy5sZW5ndGggLSAxOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHByZXYgPSB0aGlzLmN1cnJlbnRfaW5kZXggLSAxOw0KICAgICAgfTsNCiAgICAgIHJldHVybiBwcmV2Ow0KICAgIH0sDQogICAgcHJldkltYWdlOiBmdW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgdmFyIHByZXYgPSB0aGlzLnByZXZJbmRleCgpOw0KICAgICAgaWYocHJldiA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTsNCiAgICAgIHRoaXMucHJlbG9hZEltYWdlKHByZXYgLSAxKTsNCiAgICAgIHRoaXMuc2hvd0ltYWdlKHByZXYsIGNhbGxiYWNrKTsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQogICAgcHJlbG9hZEFsbDogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgY29udGV4dCA9IHRoaXM7DQogICAgICB2YXIgaSA9IDA7DQogICAgICBmdW5jdGlvbiBwcmVsb2FkTmV4dCgpIHsNCiAgICAgICAgaWYoaSA8IGNvbnRleHQuaW1hZ2VzLmxlbmd0aCkgew0KICAgICAgICAgIGkrKzsNCiAgICAgICAgICBjb250ZXh0LnByZWxvYWRJbWFnZShpLCBwcmVsb2FkTmV4dCk7DQogICAgICAgIH07DQogICAgICB9Ow0KICAgICAgY29udGV4dC5wcmVsb2FkSW1hZ2UoaSwgcHJlbG9hZE5leHQpOw0KICAgIH0sDQogICAgcHJlbG9hZEltYWdlOiBmdW5jdGlvbihpbmRleCwgY2FsbGJhY2spIHsNCiAgICAgIGlmKHRoaXMuaW1hZ2VzW2luZGV4XSkgew0KICAgICAgICB2YXIgaW1hZ2UgPSB0aGlzLmltYWdlc1tpbmRleF07DQogICAgICAgIGlmKCF0aGlzLmltYWdlc1tpbmRleF0ucHJlbG9hZGVkKSB7DQogICAgICAgICAgdmFyIGltZyA9ICQobmV3IEltYWdlKCkpOw0KICAgICAgICAgIGltZy5hdHRyKCdzcmMnLCBpbWFnZS5pbWFnZSk7DQogICAgICAgICAgaWYoIXRoaXMuaXNJbWFnZUxvYWRlZChpbWdbMF0pKSB7DQogICAgICAgICAgICB0aGlzLnByZWxvYWRzLmFwcGVuZChpbWcpOw0KICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgICAgICAgaW1nLmxvYWQoDQogICAgICAgICAgICAgIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIGltYWdlLnByZWxvYWRlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgaW1hZ2Uuc2l6ZSA9IHsgd2lkdGg6IHRoaXMud2lkdGgsIGhlaWdodDogdGhpcy5oZWlnaHQgfTsNCiAgICAgICAgICAgICAgICBjb250ZXh0LmZpcmVDYWxsYmFjayhjYWxsYmFjayk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICkuZXJyb3IoDQogICAgICAgICAgICAgIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIGltYWdlLmVycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBpbWFnZS5wcmVsb2FkZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBpbWFnZS5zaXplID0gZmFsc2U7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGltYWdlLnByZWxvYWRlZCA9IHRydWU7DQogICAgICAgICAgICBpbWFnZS5zaXplID0geyB3aWR0aDogaW1nWzBdLndpZHRoLCBoZWlnaHQ6IGltZ1swXS5oZWlnaHQgfTsNCiAgICAgICAgICAgIHRoaXMuZmlyZUNhbGxiYWNrKGNhbGxiYWNrKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuZmlyZUNhbGxiYWNrKGNhbGxiYWNrKTsNCiAgICAgICAgfTsNCiAgICAgIH07DQogICAgfSwNCiAgICBpc0ltYWdlTG9hZGVkOiBmdW5jdGlvbihpbWcpIHsNCiAgICAgIGlmKHR5cGVvZiBpbWcuY29tcGxldGUgIT0gJ3VuZGVmaW5lZCcgJiYgIWltZy5jb21wbGV0ZSkgew0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9Ow0KICAgICAgaWYodHlwZW9mIGltZy5uYXR1cmFsV2lkdGggIT0gJ3VuZGVmaW5lZCcgJiYgaW1nLm5hdHVyYWxXaWR0aCA9PSAwKSB7DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIH07DQogICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KICAgIGhpZ2hMaWdodFRodW1iOiBmdW5jdGlvbih0aHVtYikgew0KICAgICAgdGhpcy50aHVtYnNfd3JhcHBlci5maW5kKCcuYWUtYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ2FlLWFjdGl2ZScpOw0KICAgICAgdGh1bWIuYWRkQ2xhc3MoJ2FlLWFjdGl2ZScpOw0KICAgICAgaWYodGhpcy5zZXR0aW5ncy50aHVtYl9vcGFjaXR5IDwgMSkgew0KICAgICAgICB0aGlzLnRodW1ic193cmFwcGVyLmZpbmQoJ2E6bm90KC5hZS1hY3RpdmUpIGltZycpLmZhZGVUbygzMDAsIHRoaXMuc2V0dGluZ3MudGh1bWJfb3BhY2l0eSk7DQogICAgICAgIHRodW1iLmZpbmQoJ2ltZycpLmZhZGVUbygzMDAsIDEpOw0KICAgICAgfTsNCiAgICAgIHZhciBsZWZ0ID0gdGh1bWJbMF0ucGFyZW50Tm9kZS5vZmZzZXRMZWZ0Ow0KICAgICAgbGVmdCAtPSAodGhpcy5uYXZfZGlzcGxheV93aWR0aCAvIDIpIC0gKHRodW1iWzBdLm9mZnNldFdpZHRoIC8gMik7DQogICAgICB0aGlzLnRodW1ic193cmFwcGVyLmFuaW1hdGUoe3Njcm9sbExlZnQ6IGxlZnQgKydweCd9KTsNCiAgICB9LA0KICAgIGZpcmVDYWxsYmFjazogZnVuY3Rpb24oZm4pIHsNCiAgICAgIGlmKCQuaXNGdW5jdGlvbihmbikpIHsNCiAgICAgICAgZm4uY2FsbCh0aGlzKTsNCiAgICAgIH07DQogICAgfQ0KICB9Ow0KDQogIGZ1bmN0aW9uIEFlR2FsbGVyeVNsaWRlc2hvdyhuZXh0aW1hZ2VfY2FsbGJhY2ssIHNldHRpbmdzKSB7DQogICAgdGhpcy5pbml0KG5leHRpbWFnZV9jYWxsYmFjaywgc2V0dGluZ3MpOw0KICB9Ow0KICBBZUdhbGxlcnlTbGlkZXNob3cucHJvdG90eXBlID0gew0KICAgIHN0YXJ0X2xpbms6IGZhbHNlLA0KICAgIHN0b3BfbGluazogZmFsc2UsDQogICAgY291bnRkb3duOiBmYWxzZSwNCiAgICBjb250cm9sczogZmFsc2UsDQoNCiAgICBzZXR0aW5nczogZmFsc2UsDQogICAgbmV4dGltYWdlX2NhbGxiYWNrOiBmYWxzZSwNCiAgICBlbmFibGVkOiBmYWxzZSwNCiAgICBydW5uaW5nOiBmYWxzZSwNCiAgICBjb3VudGRvd25faW50ZXJ2YWw6IGZhbHNlLA0KICAgIGluaXQ6IGZ1bmN0aW9uKG5leHRpbWFnZV9jYWxsYmFjaywgc2V0dGluZ3MpIHsNCiAgICAgIHZhciBjb250ZXh0ID0gdGhpczsNCiAgICAgIHRoaXMubmV4dGltYWdlX2NhbGxiYWNrID0gbmV4dGltYWdlX2NhbGxiYWNrOw0KICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzOw0KICAgIH0sDQogICAgY3JlYXRlOiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMuc3RhcnRfbGluayA9ICQoJzxzcGFuIGNsYXNzPSJhZS1zbGlkZXNob3ctc3RhcnQiPicrIHRoaXMuc2V0dGluZ3Muc3RhcnRfbGFiZWwgKyc8L3NwYW4+Jyk7DQogICAgICB0aGlzLnN0b3BfbGluayA9ICQoJzxzcGFuIGNsYXNzPSJhZS1zbGlkZXNob3ctc3RvcCI+JysgdGhpcy5zZXR0aW5ncy5zdG9wX2xhYmVsICsnPC9zcGFuPicpOw0KICAgICAgdGhpcy5jb3VudGRvd24gPSAkKCc8c3BhbiBjbGFzcz0iYWUtc2xpZGVzaG93LWNvdW50ZG93biI+PC9zcGFuPicpOw0KICAgICAgdGhpcy5jb250cm9scyA9ICQoJzxkaXYgY2xhc3M9ImFlLXNsaWRlc2hvdy1jb250cm9scyI+PC9kaXY+Jyk7DQogICAgICB0aGlzLmNvbnRyb2xzLmFwcGVuZCh0aGlzLnN0YXJ0X2xpbmspLmFwcGVuZCh0aGlzLnN0b3BfbGluaykuYXBwZW5kKHRoaXMuY291bnRkb3duKTsNCiAgICAgIHRoaXMuY291bnRkb3duLmhpZGUoKTsNCg0KICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgdGhpcy5zdGFydF9saW5rLmNsaWNrKA0KICAgICAgICBmdW5jdGlvbigpIHsNCiAgICAgICAgICBjb250ZXh0LnN0YXJ0KCk7DQogICAgICAgIH0NCiAgICAgICk7DQogICAgICB0aGlzLnN0b3BfbGluay5jbGljaygNCiAgICAgICAgZnVuY3Rpb24oKSB7DQogICAgICAgICAgY29udGV4dC5zdG9wKCk7DQogICAgICAgIH0NCiAgICAgICk7DQogICAgICAkKGRvY3VtZW50KS5rZXlkb3duKA0KICAgICAgICBmdW5jdGlvbihlKSB7DQogICAgICAgICAgaWYoZS5rZXlDb2RlID09IDgzKSB7DQogICAgICAgICAgICAvLyAncycNCiAgICAgICAgICAgIGlmKGNvbnRleHQucnVubmluZykgew0KICAgICAgICAgICAgICBjb250ZXh0LnN0b3AoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgIGNvbnRleHQuc3RhcnQoKTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgKTsNCiAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xzOw0KICAgIH0sDQogICAgZGlzYWJsZTogZnVuY3Rpb24oKSB7DQogICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTsNCiAgICAgIHRoaXMuc3RvcCgpOw0KICAgICAgdGhpcy5jb250cm9scy5oaWRlKCk7DQogICAgfSwNCiAgICBlbmFibGU6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTsNCiAgICAgIHRoaXMuY29udHJvbHMuc2hvdygpOw0KICAgIH0sDQogICAgdG9nZ2xlOiBmdW5jdGlvbigpIHsNCiAgICAgIGlmKHRoaXMuZW5hYmxlZCkgew0KICAgICAgICB0aGlzLmRpc2FibGUoKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuZW5hYmxlKCk7DQogICAgICB9Ow0KICAgIH0sDQogICAgc3RhcnQ6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYodGhpcy5ydW5uaW5nIHx8ICF0aGlzLmVuYWJsZWQpIHJldHVybiBmYWxzZTsNCiAgICAgIHZhciBjb250ZXh0ID0gdGhpczsNCiAgICAgIHRoaXMucnVubmluZyA9IHRydWU7DQogICAgICB0aGlzLmNvbnRyb2xzLmFkZENsYXNzKCdhZS1zbGlkZXNob3ctcnVubmluZycpOw0KICAgICAgdGhpcy5fbmV4dCgpOw0KICAgICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5zZXR0aW5ncy5vblN0YXJ0KTsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQogICAgc3RvcDogZnVuY3Rpb24oKSB7DQogICAgICBpZighdGhpcy5ydW5uaW5nKSByZXR1cm4gZmFsc2U7DQogICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsNCiAgICAgIHRoaXMuY291bnRkb3duLmhpZGUoKTsNCiAgICAgIHRoaXMuY29udHJvbHMucmVtb3ZlQ2xhc3MoJ2FlLXNsaWRlc2hvdy1ydW5uaW5nJyk7DQogICAgICBjbGVhckludGVydmFsKHRoaXMuY291bnRkb3duX2ludGVydmFsKTsNCiAgICAgIHRoaXMuZmlyZUNhbGxiYWNrKHRoaXMuc2V0dGluZ3Mub25TdG9wKTsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQogICAgX25leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGNvbnRleHQgPSB0aGlzOw0KICAgICAgdmFyIHByZSA9IHRoaXMuc2V0dGluZ3MuY291bnRkb3duX3ByZWZpeDsNCiAgICAgIHZhciBzdSA9IHRoaXMuc2V0dGluZ3MuY291bnRkb3duX3N1Zml4Ow0KICAgICAgY2xlYXJJbnRlcnZhbChjb250ZXh0LmNvdW50ZG93bl9pbnRlcnZhbCk7DQogICAgICB0aGlzLmNvdW50ZG93bi5zaG93KCkuaHRtbChwcmUgKyAodGhpcy5zZXR0aW5ncy5zcGVlZCAvIDEwMDApICsgc3UpOw0KICAgICAgdmFyIHNsaWRlX3RpbWVyID0gMDsNCiAgICAgIHRoaXMuY291bnRkb3duX2ludGVydmFsID0gc2V0SW50ZXJ2YWwoDQogICAgICAgIGZ1bmN0aW9uKCkgew0KICAgICAgICAgIHNsaWRlX3RpbWVyICs9IDEwMDA7DQogICAgICAgICAgaWYoc2xpZGVfdGltZXIgPj0gY29udGV4dC5zZXR0aW5ncy5zcGVlZCkgew0KICAgICAgICAgICAgdmFyIHdoZW5OZXh0SXNTaG93biA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAvLyBBIGNoZWNrIHNvIHRoZSB1c2VyIGhhc24ndCBzdG9wZWQgdGhlIHNsaWRlc2hvdyBkdXJpbmcgdGhlDQogICAgICAgICAgICAgIC8vIGFuaW1hdGlvbg0KICAgICAgICAgICAgICBpZihjb250ZXh0LnJ1bm5pbmcpIHsNCiAgICAgICAgICAgICAgICBjb250ZXh0Ll9uZXh0KCk7DQogICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIHNsaWRlX3RpbWVyID0gMDsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgICBpZighY29udGV4dC5uZXh0aW1hZ2VfY2FsbGJhY2sod2hlbk5leHRJc1Nob3duKSkgew0KICAgICAgICAgICAgICBjb250ZXh0LnN0b3AoKTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgICBzbGlkZV90aW1lciA9IDA7DQogICAgICAgICAgfTsNCiAgICAgICAgICB2YXIgc2VjID0gcGFyc2VJbnQoY29udGV4dC5jb3VudGRvd24udGV4dCgpLnJlcGxhY2UoL1teMC05XS9nLCAnJyksIDEwKTsNCiAgICAgICAgICBzZWMtLTsNCiAgICAgICAgICBpZihzZWMgPiAwKSB7DQogICAgICAgICAgICBjb250ZXh0LmNvdW50ZG93bi5odG1sKHByZSArIHNlYyArIHN1KTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9LA0KICAgICAgICAxMDAwDQogICAgICApOw0KICAgIH0sDQogICAgZmlyZUNhbGxiYWNrOiBmdW5jdGlvbihmbikgew0KICAgICAgaWYoJC5pc0Z1bmN0aW9uKGZuKSkgew0KICAgICAgICBmbi5jYWxsKHRoaXMpOw0KICAgICAgfTsNCiAgICB9DQogIH07DQp9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhHAAcAPYAAP///wAAAPDw8N7e3ri4uIKCguDg4KCgoIiIiGRkZO7u7szMzMrKyuTk5EBAQPr6+nZ2dlpaWtDQ0G5ubsTExGZmZjg4OJiYmOzs7GpqatbW1qKioj4+PkRERMjIyGBgYFJSUrS0tIaGhnBwcJCQkM7OzuLi4kxMTGxsbOrq6pycnIyMjLq6unJycvz8/KampiIiIsDAwISEhObm5o6OjsLCwp6enoqKira2tpSUlCQkJCYmJvLy8pKSkqysrKioqDIyMhoaGqqqqry8vNzc3Ojo6KSkpNLS0vT09Pb29oCAgC4uLhISEgQEBAAAAHh4eLKyshgYGHp6esbGxtra2vj4+L6+vtTU1NjY2FZWVlxcXJaWlpqamk5OTnx8fK6urrCwsEJCQn5+fiwsLCgoKHR0dAoKClRUVFhYWEpKSmJiYjY2NjAwMBwcHF5eXjo6OiAgIAYGBgwMDFBQUGhoaEZGRjw8PBQUFCoqKhYWFh4eHggICEhISDQ0NAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAHAAcAAAH/4AAgoOEhYaHiIUKKYmNh0ofjoklL4RLUQ+DVZmSAAswOYIKTE1UglUCVZ0AGBYwPwBHTU44AFU8PKuCEzpARB5OTjYAPEi5jQYNgzE7QS1ET1JTD7iqgi6chAcOFRsmABUQBoQuSAIALjwpMwqHCBYcJyrHhulF9xiJFx0WMo0Y99o18oBCWSIXKZI0eoBhkaQHEA0JIIAAQoYPKiSlwIKFyIAUnAYUSBAhAogVkmZc0aChIz0ACiQQCLFAEhIMKXhkO8RiRqMqBnYe0iAigwoXiah4KMEI0QIII1rQyHeoypUFWH0aWjABAgkPLigIKUIIiQQNrDQs8EC2EAMKBlIV9EBgRAHWFEes1DiWpIjWRDVurCCCBAqUGUhqxEC7yoUNBENg4sChbICVaasw3PCBNAkLHAI1DBEoyQSObDGGZMPyV5egElNcNxJAVbZtQoEAACH5BAAKAAEALAAAAAAcABwAAAf/gACCg4SFhoeIhUVFiY2HYlKOiUdDgw9hDg+DPjWSgh4WX4JYY2MagipOBJ4AGF0OnTVkZDEAX05mDawAXg5dGCxBQQRFTE5djkQYgwxhFghYSjIDZU6qgy6ahS8RSj6MEyImhAoFHYJJPAJIhz1ZERVfCi6HVelISDyJNloRCI08ArJrdEQKEUcKtCF6oEDBDEkPIhoSwEKFDCktDkhyuAgDD3oADOR40qIFCi4bZywqkqIKISRYKAwpIalKwCQgD7kYMi6RC0aOsGxB8KLRDA1YBCQqsaLpBqU6DSDVsMzQFRkkXhwBcIUBVHREDmIYgOWKAkMMSpwFwINAiCkCTI5cEaCBwYKBVTAAnYQjBAYFVqx4XLBgwK6dIa4AUFCjxjIDDCTkdIQBzAJBPBrrA0DFw2ZJM2gKcjGFgsIBa3cNOrJVdaKArmMbCgQAIfkEAAoAAgAsAAAAABwAHAAAB/+AAIKDhIWGh4iFRSmJjYckK46JEjWECWqEQgSSghJnIYIzaSdFghdRQ5wAPBlalRIdHUcALzBrGKoAPVoJPBQWa1MNbDsJjgOMggtaaDkaCDREKG06OIMDHoYhEzRgpTQiWIQmCJhUEGxOT4dGEy1SYMmGLgVmTk5uiWBlLTQuiSTutXBERcSVRi5OWEtUBUMKE6r+FeJR48cFEjdeSEoigIfHJBIb/MixYgWCDZKQeFz5gFAVE0cWHHRUJUmSKhIRHSnVCENORCZYhJjys5CAGUWQJCISAsdQHolSLCoC1ZABMASmGACApYQCQg+kAkCCocgMpYWIGEBLMQYDBVRMiPAwoUFDEkEPPDrCUiOGAAUePCioogFLg1wuPMSgAkDAggUCAMzQwFiVgCEzkzy+C6DBFbSSiogbJEECoQZfcxEiUlk1IpWuYxsKBAAh+QQACgADACwAAAAAHAAcAAAH/4AAgoOEhYaHiIUzDYmNhxckjolXVoQQIy6DX5WSAFQZIYIKFQlFgjZrU50ASUojMZ4fblcAUBxdCqsALy1PKRpoZ0czJ2FKjgYpmQBEZSNbAys5DUpvDh6CVVdDy4M1IiohMwBcKwOEGFwQABIjYW3HhiwIKzQEM0mISmQ7cCOJU2is4PIgUQ44OxA4wrDhSKMqKEo0QpJCQZFuiIqwmGKiUJIrMQjgCFFDUggnTuKQKWNAEA8GLHCMLOkIB0oncuZgIfTAYooUkky8CLEASaIqwxzlczSjRgwGE3nwWHqISAynEowiEsADSddDBoZQOAKUigYehQQAreJVgFZCM1JSVBGEZMGCK1UapEiCoUiRpS6qzG00wO5UDVd4PPCba5ULCQw68tBwFoAAvxgbCfBARNADLFgGK8C3CsO5QUSoEFLwVpcgEy1dJ0LSWrZtQYEAACH5BAAKAAQALAAAAAAcABwAAAf/gACCg4SFhoeIhRgziY2HQgeOiUQ1hDcyLoNgFJKCJiIEggpSEIwALyALnQBVFzdTAANlZVcAQxEVCqsABCs0ClgTKCUCFVo9jg0pVYIpNDc/VBcqRFtZWrUASAtDhlhgLCUpAFAq2Z4XJAAaK2drW4dHITg4CwrMhg8IHQ52CIlUCISw8iARlzd1IjVCwsBEowciBjRKogDDOEdEQsSgUnAQEg0MasSwwkCSiig7loRBcURQEg0eatQgKekASjwcMpQohCRFkYuNDHwhcCVJoipYMDhSosHRjAULWib64STOjUQGGEDVgO8QHSdgMxxq4KEEFQEAZhjo6JEHAAZqUu44EWNIgQB8LzWYqKJAQRIegDsqiPElGRauSWbMQOKCBxK3q1xQ0VCEVZEiSAD85ZGpE5IrDgE8uIwPyd1VAkw1q+yx6y5RSl8nesBWtu1BgQAAIfkEAAoABQAsAAAAABwAHAAAB/+AAIKDhIWGh4iFGEWJjYcEX46JDUeEG1sPgwQlkoIYUAuCPD00M4JfGVedAC5DIRoAMzQrWAA1I14CqwBHODg8JggiVwpPLQeORSlVor4UJj8/RDYTZUSCAiUxLoUGQxRHGABXMSaEA1wqABoXdCAvh0QxNTUlPNyGSDluWhHqiCYoxPCQCRGXLGrAOEoiwVQiJBdSNEKiAIM4R1SGTCFSUFASKhIWLGCgypGKNWHqoJECC0CSAUdEMmjZaMOaDmncILhGKIkABbocmfAgoUGjByaQOGrBwFEKLBrMJbIBh4yMSRqgmsB3CAKZHXAyHCpyBUtSABa5sjoAAoAECG9QgngxJAAJvgdF8lbhwQOAEidOYghSMCVEx0MK8j7Ye4+IHCdzdgHIq+sBX2YHnJhxKCnJjIsuBPAo+BfKqiQKCPEllCOS5EFIlL5OpHa27UAAIfkEAAoABgAsAAAAABwAHAAAB/+AAIKDhIWGh4iFPBiJjYdXDI6JAlSENUMugx4akoJIVpwAVQQ4AoI1Mgadgh5WRAAKOCENAEc3PTyrABo1NQICIVAzPD00Qo4YCg+evR4YFBRFQjcrA4JJWAuGMx4lVAoAV1O0g1QbPgADP0oZYIcmDAsLGjyZhikqZS0Tx4gz8hLsGXJxYQQEAo6SaDCVCMMFE40e8ECSRJKBI0eKCASQxAQRLBo0WHPE5YwbNS1oVOLoEeQViI6MmEwwgsYrQhIpSiqi4UqKjYUeYAAaVMkRRzyKFGGU6IedDjYSKSiSgirRQTLChLGD4JCAGUsrTixU5QCdWivOrNliiKI9iRNNZ3wBY0KKHh1DPJVggRRJrhhOnBgxwIYMGl0AeIw9EjgEACMw2JCT5EKxIAxynFwRhCBKjFUSCQHJs0xQjy+ICbXoUuhqJyIlUss2FAgAIfkEAAoABwAsAAAAABwAHAAAB/+AAIKDhIWGh4iFVQKJjYdEDI6JPESECzVVg0RUkoJVHliCLlMxCoJUYAadglcMAwBJFDFFAA0hBEirACYLCwpJMVYNDyw4U44CPA+CSb0SPAsMKUdQIaqwDVguhQpXWAOmJhIYhBhTx0UhWyIEhykaWBoGSYgKUCQrCCGJCvHXhy583FhRw1GVBvQSpRAyo1GVJFUyORpw5IqBXINcYCjCsUgKST9QlCkjhss1jR1nfHT0BQUEKQUOmCjk4gFESSkGmEixDJELZY14iDjiKAkPJDwa+UDjZkMipEgZIUqyIYGWLDR6EkqSjEcmJTeSDuLxY8QuLi2ybDFUReuAPU5W+KTgkkOCCgsc9gF4wEvrISlOnLAgAiePCgFnHKDQBQCIkycADADR4QPAFAd8Gqwy4ESLIAF2dlAQ5KMPlFULpBACgUezIChfGBOiAUJ2oiJXbOsmFAgAIfkEAAoACAAsAAAAABwAHAAAB/+AAIKDhIWGh4iFDzyJjYcNEo6JSAaEGgtJgyZEkoIPGgODEgwKggZDJp2CAxoNAA8lDEUAKTE1jKopWBoKDwsMMw9TNQuOSUkuglVYWERJWFe6VjGuAFUKJsmESDNFKUgAGAaZgwKxAAILLFDFhjzeRUVViEgSBDghDJPxKY0LISGuOHKBYd4kD6USPVj4QJIJKkQakBvEo2JFAZJCiFhBI4eQVIKQWKwoCQcCGj0ufJlRyEXDTkVmzOiViIgblokU0IjU6EUeJy0a/ZjQQshLQ1ucKE2Dy5ACMFJaTLhgkNAXJ3m6DAFwwwtOQQpeeAnnA8EEG4Y8MMBlgA2cEylSVORY8OVMhBCDihw5emiFDh1gFITp8+LBCC1jVQE40+YJAAUgOOA94sZNqE4mYKiZVyWCA30ArJzB20mClKMtOnylAEVxIR8VXDfiQUW2bUOBAAAh+QQACgAJACwAAAAAHAAcAAAH/4AAgoOEhYaHiIUuAomNhwpUjokPKYQGGkmDKSaSgi4zlYJUGowAMx4NnYIYRZVVWFiVCgsLPKoAAkVFSA8aGhgAJQtHjg9VLp6tM0kNJjwGDAupAC48RciEVQI8PJkCKdiCrxIASRpTVuSGSTxIPAJViElYNTUxJYna7o1HMTEakqo8aMTDg4JGM6aAYSApRYoiAsIBwABhzB4nTiZIkgAFB44hDGYIUgCBjRyMGh1x9GglZCEMC4ZckYRBQRFbiTDQAZgohQ0ijkKs0TOiEZQbKwhIJLRBxw4dXaYZwmClx4obP5YCINCGTZYQAIx4CTVyg4xqLLggEGLIA4VpCldAcNDS4AIJBkNQtGAhiBKRgYmMOHDAQoGWM2AAyCiz4haAEW+8TKygBSyWMmUMqOJRpwWyBy0iUBDkIQPfTiZIxBNEA41mQRIIOCYUo8zsRDx43t4tKBAAIfkEAAoACgAsAAAAABwAHAAAB/+AAIKDhIWGh4iGSYmMh0gzjYkuPIQYRQ+DPA2RgwKUgilFSIICV5ucAEhIn6ECqVgarqhJPDyLRUUKAFRYVI1HMZAALgJIAg8KGDwKGlinAEkKLoU1Tnt1BABVAtOEKb4PBhIMR4c+cU5OaymILiYlCwtHmIcxQU4fjAYMDFjdiApQSGBU5QgGRjOmEFgQCUMKZf8AKLgBAgiZNvkaURkSo8aUI+wAYJDSYcyONloibexIoYQwQS6oEPgxpOGMXPQOPdjCMFESCgcZHdFiYUROQ0dChCgRkRCFOg4cRMCCiIcGAjhCUDgq6AiHDhWyxShAhJACKFweJJHAAgoFQ1dfrAwQlKRMhAwpfnCZMkXEihqCHmAwUIXRkAgRoLiQgsIHABsrVDRl1OPMDQAPZIzAAcAEjRVzOT2gI+XTjREMBF0RUZMThhyyAGyYYGCQhtaoCJVQMjk3ISQafAtHFAgAIfkEAAoACwAsAAAAABwAHAAAB/+AAIKDhIWGh4iGD4mMh1UCjYkNXlWDSQKVgo+Rgkl3HZkCSEmdMwqcgnNOWoI8SDwAD0VFSKgAP05ONgACPLApKUUujAsesABIek46CkmuAjNFp4IPPIuEQ3p2dDgAJBEmhdAuLikDGljDhTY6OjtZM4guAlRYWFSZhmB9cF3Xhxg0aBjw75ABNVYaGcDACEkDA+EaVUmSJJ8gF2AmgDgRBkWkGQwWlJBA5ViSG3PqOHiTIFIDDwtESkhBqAqRKTgoROJRJAUmRlA8MHoggSEjA16yQKiFiEqMGFgSXaETQcsEKoiSYIlRI0YJdYRMuIkgxYcLCSs0gEVyxcq8K1NhhpQwxCDEgEE3WrQggsPHFCpQcGCNlYKIRUNXyrTA4aIHAigArOAYUrDRhgk0yF1YQQBAChwhGqB6IEbJNCMIpggaAOYKKgwXjAJggSAiAANHbBW6kgMsAN+6q7jWTfxQIAA7AAAAAAAAAAAA]]></data>
	</file>
	<file>
	  <filename>/opa75.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABBJREFUeNpi+P///36AAAMACbsDvSYutrAAAAAASUVORK5CYII=]]></data>
	</file>
</gallerytpl>
