<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>Gallery</name>
	<version>1.0.3</version>
  <mincmsversion>1.6</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgR2FsbGVyeSBtb2R1bGUgaXMgYW4gZWFzeSB0byB1c2UgcGhvdG8gZ2FsbGVyeSB3aGljaCBhdXRvbWF0aWNhbGx5IHNob3dzIHRoZSBpbWFnZXMgb2YgYSBzcGVjaWZpZWQgZGlyZWN0b3J5LiBTdWJkaXJlY3RvcmllcyB3aWxsIGJlIHNob3duIGFzIHN1YmdhbGxlcmllcy4gSXQgaGFzIGxvdHMgb2YgZmVhdHVyZXMsIHN1Y2ggYXMgYXV0b21hdGljIHRodW1ibmFpbGluZywgdGhlIHVzZSBvZiBtdWx0aXBsZSBMaWdodGJveC1saWtlIHRlbXBsYXRlcyBvciBhbnkgY3NzL2phdmFzY3JpcHQgdGVtcGxhdGUgeW91IGxpa2UsIGFuZCB5b3UgY2FuIGdpdmUgdGl0bGVzIGFuZCBkZXNjcmlwdGlvbnMgdG8geW91ciBnYWxsZXJpZXMgYXMgd2VsbCBhcyB5b3VyIHBob3Rvcy48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPkZpcnN0LCBpbnNlcnQgdGhlIG1vZHVsZSB3aXRoIHRoZSB7R2FsbGVyeX0gdGFnIGludG8geW91ciBwYWdlIG9yIHRlbXBsYXRlIGFueXdoZXJlIHlvdSB3aGlzaC4gVGhlbiB1cGxvYWQgc29tZSBpbWFnZXMgd2l0aCB0aGUgSW1hZ2UgTWFuYWdlciwgRmlsZSBNYW5hZ2VyIChlLmcuIG11bHRpcGxlIGltYWdlcyBpbiB6aXBmaWxlKSBvciBGVFAgdG8gdGhlIHVwbG9hZHMvaW1hZ2VzL0dhbGxlcnkvIGRpcmVjdG9yeS48L3A+DQo8cD5UaGF0J3MgaXQhPC9wPg0KPHA+SWYgeW91IHdhbnQgbW9yZSBwaG90byBnYWxsZXJpZXMsIHNpbXBseSBjcmVhdGUgYSBzdWJkaXJlY3RvcnkgYW5kIHVwbG9hZCB5b3VyIHBob3RvcyBhcyBkZXNjcmliZWQuIEJ5IGFkZGluZyBwYXJhbWV0ZXJzIHRvIHRoZSB7R2FsbGVyeX0gdGFnLCB5b3UgY2FuIGVhc2lseSBtYW5pcHVsYXRlIHdoaWNoIHN1YmdhbGxlcnkgd2lsbCBiZSBzaG93biBpbiB3aGljaCB0ZW1wbGF0ZSwgZS5nLiB7R2FsbGVyeSBkaXI9ImhvbGlkYXlzL05ldGhlcmxhbmRzMjAwOSIgdGVtcGxhdGU9IkxpZ2h0Ym94In08L3A+DQo8cD5CeSBkZWZhdWx0IHRoZSB0aHVtYm5haWxzIGZyb20gdGhlIEltYWdlIE1hbmFnZXIgYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgcGhvdG8gZ2FsbGVyaWVzLjwvcD4NCjxoMz5BZHZhbmNlZCBPcHRpb25zLCBidXQgc3RpbGwgZWFzeSB0byB1c2U8L2gzPg0KPHA+SW4gdGhlIGFkbWluIHNlY3Rpb24geW91IGhhdmUgbG90cyBvZiBvdGhlciBvcHRpb25zOjwvcD4NCjx1bD4NCjxsaT5TZXQgYSBwaG90byBhcyB0aGUgZGVmYXVsdCBmb3IgYSBnYWxsZXJ5LCBzbyBpdCB3aWxsIHNob3cgaW4gdGhlIHBhcmVudCBnYWxsZXJ5IGFzIGEgJ2NvdmVyJyBpbiBzdGVhZCBvZiB0aGUgZGVmYXVsdCBmb2xkZXItaWNvbi48L2xpPg0KPGxpPkdpdmUgdGl0bGVzIGFuZCBkZXNjcmlwdGlvbnMgdG8gZ2FsbGVyaWVzLjwvbGk+DQo8bGk+U2V0IGEgZGVmYXVsdCB0ZW1wbGF0ZSBmb3IgZWFjaCBnYWxsZXJ5LjwvbGk+DQo8bGk+U2V0IHRodW1ibmFpbCBzaXplcyBmb3IgZWFjaCBnYWxsZXJ5LCB3aXRoIHBvc2liaWxpdGllcyB0byBzY2FsZSwgY3JvcCBhbmQvb3Igem9vbSB0aGUgaW1hZ2VzLjwvbGk+DQo8bGk+R2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byBwaG90b3MuPC9saT4NCjxsaT5Td2l0Y2ggYSBzcGVjaWZpYyBwaG90byBvciBnYWxsZXJ5IHRvIGluYWN0aXZlLCBwcmV2ZW50aW5nIGl0IGZyb20gZGlzcGxheS48L2xpPg0KPGxpPkVkaXQvY29weSB0ZW1wbGF0ZXMgb3IgY3JlYXRlIG5ldyBvbmVzLiBDaGVjayB0aGUgaW5mby1pY29uIGJlbmVhdGggdGhlIHRlbXBsYXRlLWNvZGUgZm9yIHRoZSBhdmFpbGFibGUgdmFyaWFibGVzLjwvbGk+DQo8L3VsPg0KPHA+SW4gb3JkZXIgdG8gZWRpdCB0ZW1wbGF0ZXMsIHRoZSB1c2VyIG11c3QgYmVsb25nIHRvIGEgZ3JvdXAgd2l0aCB0aGUgJ01vZGlmeSBUZW1wbGF0ZXMnIHBlcm1pc3Npb24uIFRvIGVkaXQgdGhlIGdsb2JhbCBHYWxsZXJ5IG9wdGlvbnMsIHRoZSB1c2VyIG11c3QgYmVsb25nIHRvIGEgZ3JvdXAgd2l0aCB0aGUgJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyBwZXJtaXNzaW9uLjwvcD4NCjxwPkFsbCB0aXRsZXMsIGRlc2NyaXB0aW9ucyBhbmQgc2V0dGluZ3MgYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIFRoZSBkYXRhYmFzZSB3aWxsIHN5bmNocm9uaXplIHdpdGggdGhlIGZpbGVkaXJlY3RvcnkgZWFjaCB0aW1lIHRoZSBhY2NvcmRpbmcgZ2FsbGVyeSBpcyB2aXNpdGVkIGluIHRoZSBHYWxsZXJ5LWFkbWluLiBBIGxpdHRsZSB3YXJuaW5nOiB3aGVuIHlvdSBtb3ZlIGFuIGltYWdlIG9yIHN1YmRpcmVjdG9yeSB0byBhbm90aGVyIGRpcmVjdG9yeSwgeW91IHdpbGwgbG9vc2UgaXRzIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgc2V0dGluZ3MuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBGZWF0dXJlIFJlcXVlc3Qgb3IgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBNb2R1bGUgRm9yZ2UNCjxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZ2FsbGVyeS8iPkdhbGxlcnkgUGFnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBKb3MgPGEgaHJlZj0ibWFpbHRvOmpvc3ZkQGxpdmUubmwiPi1qb3N2ZEBsaXZlLm5sLTwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkaXI9InN1YjEvc3ViMiIgLSBQYXJhbWV0ZXIgdG8gc3BlY2lmeSBhIGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS88L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRlbXBsYXRlPSIiIC0gVXNlIGEgc2VwYXJhdGUgZGF0YWJhc2UgdGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgdGhlIHBob3RvIGdhbGxlcnkuIFRoaXMgdGVtcGxhdGUgbXVzdCBleGlzdCBhbmQgYmUgdmlzaWJsZSBpbiB0aGUgdGVtcGxhdGUgdGFiIG9mIHRoZSBHYWxsZXJ5IGFkbWluLCB0aG91Z2ggaXQgZG9lcyBub3QgbmVlZCB0byBiZSB0aGUgZGVmYXVsdC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlbiB0aGUgdGVtcGxhdGUgd2hpY2ggaXMgYXNzaWduZWQgdG8gdGhlIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQsIGVsc2UgdGhlIGRlZmF1bHQgdGVtcGxhdGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBudW1iZXI9IjEwMCIgLSBNYXhpbXVtIG51bWJlciBvZiBpbWFnZXRodW1icyB0byBkaXNwbGF5IChwZXIgcGFnZSkuIExlYXZpbmcgZW1wdHkgd2lsbCBzaG93IGFsbCBpbWFnZXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdGFydD0iMSIgLSBTdGFydCBhdCB0aGUgbnRoIGltYWdlLiBMZWF2aW5nIGVtcHR5IHdpbGwgc3RhcnQgYXQgdGhlIGZpcnN0IGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvdz0iYWxsIiAtIE92ZXJpZGUgd2hpY2ggaW1hZ2VzIGhhdmUgdG8gYmUgc2hvd24uIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQo8bGk+J2FjdGl2ZScgLSB0byBkaXNwbGF5IHRoZSBpbWFnZXMgbWFya2VkIGFzIGFjdGl2ZSAoZGVmYXVsdCk8L2xpPg0KPGxpPidpbmFjdGl2ZScgLSB0byBkaXNwbGF5IG9ubHkgdGhlIGltYWdlcyBtYXJrZWQgYXMgaW5hY3RpdmUgPC9saT4NCjxsaT4nYWxsJyAtIHRvIGRpc3BsYXkgYWxsIGltYWdlczwvbGk+DQo8L3VsPg0KPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgYWN0aW9uLiBVc2UgaXQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYWJvdmUgcGFyYW1ldGVycy4gUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCjxsaT4nc2hvd3JhbmRvbScgLSB0byBkaXNwbGF5IGEgc2V0IG9mIHJhbmRvbSB0aHVtYi1pbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykuIFRoZSBkaXIgcGFyYW1ldGVyIG11c3QgYmUgc2V0LCBvciB0aGUgZGVmYXVsdCBHYWxsZXJ5LXJvb3Qgd2lsbCBiZSB1c2VkLiBVc2UgJy8qJyBhZnRlciB0aGUgbmFtZSB0byBpbmNsdWRlIGltYWdlcyBmcm9tIHN1YmRpcmVjdG9yaWVzPC9saT4NCjxsaT4nc2hvd2xhdGVzdCcgLSB0byBkaXNwbGF5IHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGltYWdlcyAoYXBwbGllcyBvbmx5IHRvIHRoZSBpbWFnZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIGEgbnVtYmVyIG9mIDYgaW1hZ2VzKSBUaGUgZGlyIHBhcmFtZXRlciBtdXN0IGJlIHNldCwgb3IgdGhlIGRlZmF1bHQgR2FsbGVyeS1yb290IHdpbGwgYmUgdXNlZC4gU3ViZGlyZWN0b3JpZXMgYXJlIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQ8L2xpPg0KPGxpPidzaG93bGF0ZXN0ZGlyJyAtIG5vdCB5ZXQgaW1wbGVtZW50ZWQhIE1lbmQgdG8gZGlzcGxheSBhIHNldCBvZiByYW5kb20gdGh1bWItaW1hZ2VzIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgYWRkZWQgZGlyZWN0b3J5IChhcHBsaWVzIG9ubHkgdG8gdGhlIGltYWdlcyB3aGljaCBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgZGVmYXVsdHMgdG8gYSBudW1iZXIgb2YgNiBpbWFnZXMpIFRoZSB0aHVtYi1zZXR0aW5ncyBvZiB0aGUgR2FsbGVyeS1yb290IHdpbGwgYmUgdXNlZDwvbGk+DQo8L3VsPg0KPC9saT48L3VsPg==</help>
	<about>PGJyIC8+QXV0aG9yOiBKb3MgJmx0O2pvc3ZkQGxpdmUubmwmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wLjM8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+DQo8bGk+VmVyc2lvbiAxLjAuMy4gOCBTZXB0ZW1iZXIgMjAwOS4gQnVnZml4IGZvciBbIzQwMDFdLCBJbXByb3ZlZCBzeW5jaHJvbml6aW5nIHRoZSBkYXRhYmFzZSB0byBmaWxlcywgYW5kIG90aGVyIG1pbm9yIGltcHJvdmVtZW50cy48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIDUgU2VwdGVtYmVyIDIwMDkuIEJ1Z2ZpeCBmb3IgWyMzOTgzXSByZWdhcmRpbmcgc3BhY2VzIGluIGRpcmVjdG9yeSBuYW1lcywgQWRkZWQgdGVtcGxhdGVzIEZhbmN5Ym94IGFuZCBMeXRlYm94X3NsaWRlc2hvdyBhcyBpbiBGZWF0dXJlIHJlcXVlc3RzIFsjMzk0NF0gYW5kIFsjMzk2N108L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIDIzIEF1Z3VzdCAyMDA5LiBBcHBseSB0aHVtYm5haWwtc2V0dGluZ3Mgb24gJ0FsYnVtLWNvdmVycycgWyMzOTI0XSwgQnVnZml4IGZvciBbIzM5MjddLCBBZGRlZCBtaXNzaW5nIC9kaXYgdG8gdGhpY2tib3gtdGVtcGxhdGUsIGZpeGVkIGFuIGlzc3VlIHdpdGggZ2VuZXJhdGluZyB0aHVtYm5haWxzIHdoZW4gbm8gdGh1bWJzIGF2YWlsYWJsZSBpbiBJbWFnZU1hbmFnZXIsIGltcHJvdmVkIHRoZSBuYW1pbmcgb2YgdGh1bWJzLCBCdWdmaXggZm9yIFsjMzkzMV0sIFByZXZlbnQgZGlzcGxheSB0aGUgY29udGVudCBvZiBnYWxsZXJpZXMgdGhhdCBhcmUgc2V0IGFzIGluYWN0aXZlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuIDE3IEF1Z3VzdCAyMDA5LiBQYWdpbmF0aW9uIHBhcmFtZXRlcnMgYWRkZWQsIFN0YW5kYXJkIHRlbXBsYXRlcyBjaGFuZ2VkIGFjY29yZGluZ2x5LCBFeHRlbmRlZCB0aGUgbW9kdWxlLWhlbHAsIEFkZGVkIGZ1bmN0aW9ucyB0byBzaG93IHJhbmRvbSBvciBsYXRlc3QgaW1hZ2VzLCBTdXBwb3J0IG9mIHByZXR0eS11cmxzLCBWYXJpb3VzIGltcHJvdmVtZW50czwvbGk+DQo8bGk+VmVyc2lvbiAwLjYuIDkgQXVndXN0IDIwMDkuIEluaXRpYWwgQmV0YSBSZWxlYXNlLjwvbGk+DQo8L3VsPjxiciAvPg==</about>
	<description>The easiest way to manage and display photo galleries</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.createthumbs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYoICEkZ0NtcyApIGV4aXQoKTsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgR2FsbGVyeScpICkgDQogIHsNCiAgICBlY2hvICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKTsNCiAgICByZXR1cm47DQogIH0NCg0KaWYoICFpc3NldCgkcGFyYW1zWydnaWQnXSkgKQ0KICB7DQogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7DQogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTsNCiAgICByZXR1cm47DQogIH0NCg0KJGdhbGxlcnlpbmZvID0gJHRoaXMtPl9HZXRnYWxsZXJ5aW5mb2J5aWQoJHBhcmFtc1snZ2lkJ10pOw0KJGdhbGxlcnlwYXRoID0gJHBhcmFtc1snZ2lkJ10gPT0gMSA/ICcnIDogdHJpbSgkZ2FsbGVyeWluZm9bJ2ZpbGVwYXRoJ10gLiAnLycgLiAkZ2FsbGVyeWluZm9bJ2ZpbGVuYW1lJ10sJy8nKTsNCg0KJGdhbGxlcnkgPSAkdGhpcy0+X0dldGdhbGxlcnlmaWxlcygkZ2FsbGVyeXBhdGgpOw0KZm9yZWFjaCAoJGdhbGxlcnkgYXMgJGZpbGUpIA0Kew0KCWlmKCBzdWJzdHIoJGZpbGVbJ2ZpbGVuYW1lJ10sLTEpICE9ICcvJyApDQoJew0KCQkkdGh1bWJuYW1lID0gJy4uL21vZHVsZXMvR2FsbGVyeS90aHVtYnMvJyAuICRwYXJhbXNbJ2dpZCddIC4gJy0nIC4gJGZpbGVbJ2ZpbGVpZCddIC4gc3Vic3RyKCRmaWxlWydmaWxlbmFtZSddLCBzdHJycG9zKCRmaWxlWydmaWxlbmFtZSddLCAnLicpKSA7DQoNCgkJJHRoaXMtPl9DcmVhdGVUaHVtYm5haWwoJHRodW1ibmFtZSwgDQoJCSAgICAgICAgICAgICAgICAgICAgICAgICcuLi8nIC4gREVGQVVMVF9HQUxMRVJZX1BBVEggLiAoZW1wdHkoJGZpbGVbJ2ZpbGVwYXRoJ10pID8gJycgOiAkZmlsZVsnZmlsZXBhdGgnXSAuICcvJykgLiAkZmlsZVsnZmlsZW5hbWUnXSwgDQoJCSAgICAgICAgICAgICAgICAgICAgICAgICRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddLCANCgkJICAgICAgICAgICAgICAgICAgICAgICAgJGdhbGxlcnlpbmZvWyd0aHVtYmhlaWdodCddLCANCgkJICAgICAgICAgICAgICAgICAgICAgICAgJGdhbGxlcnlpbmZvWydyZXNpemVtZXRob2QnXSk7DQoJfQ0KfQ0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Z2FsbGVyeScsJycsYXJyYXkoJ2dpZCc9PiRwYXJhbXNbJ2dpZCddLCdtb2RlJz0+ImVkaXQiLCdtb2R1bGVfbWVzc2FnZSc9PiR0aGlzLT5MYW5nKCd0aHVtYnNjcmVhdGVkJykpKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokcGFyYW1zWydkaXInXSA9IGlzc2V0KCRwYXJhbXNbJ2RpciddKSA/IHJhd3VybGRlY29kZShjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHBhcmFtc1snZGlyJ10sIi8iKSkpIDogJyc7DQokc3RhcnQgPSAoaXNzZXQoJHBhcmFtc1snc3RhcnQnXSkgJiYgaXNfbnVtZXJpYygkcGFyYW1zWydzdGFydCddKSkgPyAkcGFyYW1zWydzdGFydCddIDogMTsNCiRudW1iZXIgPSAoaXNzZXQoJHBhcmFtc1snbnVtYmVyJ10pICYmIGlzX251bWVyaWMoJHBhcmFtc1snbnVtYmVyJ10pKSA/ICRwYXJhbXNbJ251bWJlciddIDogMTAwMDsNCiRzaG93ID0gKGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkgJiYgaW5fYXJyYXkoJHBhcmFtc1snc2hvdyddLCBhcnJheSgnYWN0aXZlJywnaW5hY3RpdmUnLCdhbGwnKSkpID8gJHBhcmFtc1snc2hvdyddIDogJ2FjdGl2ZSc7DQoNCiRpbWdjb3VudCA9IDA7DQokaXRlbWNvdW50ID0gMDsNCiRpbWFnZXMgPSBhcnJheSgpOw0KDQppZiAoIGlzX2RpcihERUZBVUxUX0dBTExFUllfUEFUSCAuICRwYXJhbXNbJ2RpciddKSApDQp7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdnYWxsZXJ5dGl0bGUnLCBodG1sc3BlY2lhbGNoYXJzKHRyaW0oc3Vic3RyKCRwYXJhbXNbJ2RpciddLCBzdHJycG9zKCRwYXJhbXNbJ2RpciddLCAnLycpKSwiLyIpKSk7DQoNCgkvLyBnZXQgZ2FsbGVyeSBpbmZvDQoJJGdhbGxlcnlpbmZvID0gJHRoaXMtPl9HZXRnYWxsZXJ5aW5mbygkcGFyYW1zWydkaXInXSk7DQoNCgkkcGFyYW1zbGluayA9IGFycmF5KCk7DQoJaWYgKCBpc3NldCgkcGFyYW1zWydzdGFydCddKSB8fCBpc3NldCgkcGFyYW1zWydudW1iZXInXSkgKQ0KCXsNCgkJJHBhcmFtc2xpbmtbJ3N0YXJ0J10gPSAxOw0KCQkkcGFyYW1zbGlua1snbnVtYmVyJ10gPSAkbnVtYmVyOw0KCX0NCglpZiAoIGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkgKQ0KCXsNCgkJJHBhcmFtc2xpbmtbJ3Nob3cnXSA9ICRwYXJhbXNbJ3Nob3cnXTsNCgl9DQoJDQoJaWYgKCAkc2hvdyA9PSAiYWxsIiB8fCAhJGdhbGxlcnlpbmZvIHx8ICgkZ2FsbGVyeWluZm9bJ2FjdGl2ZSddID09IDEgJiYgJHNob3cgPT0gImFjdGl2ZSIpIHx8ICgkZ2FsbGVyeWluZm9bJ2FjdGl2ZSddID09IDAgJiYgJHNob3cgPT0gImluYWN0aXZlIikgKQ0KCXsNCgkJaWYgKCAhZW1wdHkoJGdhbGxlcnlpbmZvKSApDQoJCXsNCgkJCWlmICggIWVtcHR5KCRnYWxsZXJ5aW5mb1sndGl0bGUnXSkgKQ0KCQkJew0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZ2FsbGVyeXRpdGxlJywgJGdhbGxlcnlpbmZvWyd0aXRsZSddKTsNCgkJCX0NCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZ2FsbGVyeWNvbW1lbnQnLCAkZ2FsbGVyeWluZm9bJ2NvbW1lbnQnXSk7DQoJCX0NCgkJCQ0KCQkkcGFyYW1zbGlua1snZGlyJ10gPSBzdHJwb3MoJHBhcmFtc1snZGlyJ10sICcvJykgPT09IEZBTFNFID8gJycgOiBzdHJfcmVwbGFjZSgnJTJGJywnLycscmF3dXJsZW5jb2RlKHByZWdfcmVwbGFjZSgnL14oLiopKFwvLispJC8nLCAnJDEnLCAkcGFyYW1zWydkaXInXSkpKTsNCgkJJHByZXR0eXVybCA9ICdnYWxsZXJ5LycgLiAkcGFyYW1zbGlua1snZGlyJ10gLiAnLycgLg0KCQkJCQkoaXNzZXQoJHBhcmFtc2xpbmtbJ3N0YXJ0J10pID8gJHBhcmFtc2xpbmtbJ3N0YXJ0J10gLiAnLycgLiAkcGFyYW1zbGlua1snbnVtYmVyJ10gLiAnLycgOiAnJykgLiANCgkJCQkJKGlzc2V0KCRwYXJhbXNsaW5rWydzaG93J10pID8gJHBhcmFtc2xpbmtbJ3Nob3cnXSAuICcvJyA6ICcnKSAuIA0KCQkJCQkkcmV0dXJuaWQ7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncGFyZW50bGluaycsIGVtcHR5KCRwYXJhbXNbJ2RpciddKSA/ICcnIDogJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2RlZmF1bHQnLCAnUGFyZW50JywgJHBhcmFtc2xpbmssICcnLCBmYWxzZSwgdHJ1ZSwgJycsIGZhbHNlLCAkcHJldHR5dXJsKSk7DQoJDQoJDQoJDQoJCS8vIGJ1aWxkIGdhbGxlcnkNCgkJJGRpcmZpbGVzID0gJHRoaXMtPl9HZXRkaXJmaWxlcygkcGFyYW1zWydkaXInXSxGQUxTRSk7DQoJCSRnYWxlcnlmaWxlcyA9ICR0aGlzLT5fR2V0Z2FsbGVyeWZpbGVzKCRwYXJhbXNbJ2RpciddKTsNCgkNCgkJaWYgKCAkZGlyZmlsZXMgKQ0KCQl7DQoJCQkvLyBzb3J0ICRkaXJmaWxlcyBhc2NlbmRpbmcgYnkgdG90YWwgcGF0aA0KCQkJa3NvcnQoJGRpcmZpbGVzKTsNCgkJCQ0KCQkJZm9yZWFjaCgkZGlyZmlsZXMgYXMgJGtleT0+JGl0ZW0pDQoJCQl7DQoJCQkJaWYgKCAhJGdhbGVyeWZpbGVzIHx8ICFhcnJheV9rZXlfZXhpc3RzKCRrZXksICRnYWxlcnlmaWxlcykgfHwgJHNob3cgPT0gJ2FsbCcgfHwgKCRzaG93ID09ICdhY3RpdmUnICYmICRnYWxlcnlmaWxlc1ska2V5XVsnYWN0aXZlJ10gIT0gJzAnKSB8fCAoJHNob3cgPT0gJ2luYWN0aXZlJyAmJiAkZ2FsZXJ5ZmlsZXNbJGtleV1bJ2FjdGl2ZSddID09ICcwJykgKQ0KCQkJCXsNCgkJCQkJLy8gY3JlYXRlIGEgbmV3IG9iamVjdCBmb3IgZXZlcnkgcmVjb3JkIHRoYXQgd2UgcmV0cmlldmUNCgkJCQkJJHJlYyA9IG5ldyBzdGRDbGFzcygpOw0KCQkJCQkkcmVjLT5maWxlID0gREVGQVVMVF9HQUxMRVJZX1BBVEggLiBzdHJfcmVwbGFjZSgnJTJGJywnLycscmF3dXJsZW5jb2RlKCRrZXkpKTsNCgkJCQkJJHJlYy0+ZmlsZWRhdGUgPSAoJGdhbGVyeWZpbGVzICYmIGFycmF5X2tleV9leGlzdHMoJGtleSwgJGdhbGVyeWZpbGVzKSkgPyAkZ2FsZXJ5ZmlsZXNbJGtleV1bJ2ZpbGVkYXRlJ10gOiAnJzsNCgkJCQkJJHJlYy0+dGl0bGUgPSAoJGdhbGVyeWZpbGVzICYmIGFycmF5X2tleV9leGlzdHMoJGtleSwgJGdhbGVyeWZpbGVzKSAmJiAhZW1wdHkoJGdhbGVyeWZpbGVzWyRrZXldWyd0aXRsZSddKSkgPyAkZ2FsZXJ5ZmlsZXNbJGtleV1bJ3RpdGxlJ10gOiB0cmltKCRpdGVtWydmaWxlbmFtZSddLCIvIik7DQoJCQkJCSRyZWMtPmNvbW1lbnQgPSAoJGdhbGVyeWZpbGVzICYmIGFycmF5X2tleV9leGlzdHMoJGtleSwgJGdhbGVyeWZpbGVzKSkgPyAkZ2FsZXJ5ZmlsZXNbJGtleV1bJ2NvbW1lbnQnXSA6ICcnOw0KCQkJCQkkcmVjLT5maWxlb3JkZXIgPSAoJGdhbGVyeWZpbGVzICYmIGFycmF5X2tleV9leGlzdHMoJGtleSwgJGdhbGVyeWZpbGVzKSkgPyAkZ2FsZXJ5ZmlsZXNbJGtleV1bJ2ZpbGVvcmRlciddIDogMTAwMDsNCgkJCQkJJHJlYy0+aXNkaXIgPSBmYWxzZTsNCgkJCQkJJHJlYy0+Zm9sZGVybGluayA9ICcnOw0KCQkJCQlpZiAoIGlzX2RpcihERUZBVUxUX0dBTExFUllfUEFUSCAuICRrZXkpICkNCgkJCQkJew0KCQkJCQkJaWYgKCAhJGdhbGVyeWZpbGVzIHx8ICFhcnJheV9rZXlfZXhpc3RzKCRrZXksICRnYWxlcnlmaWxlcykgfHwgZW1wdHkoJGdhbGVyeWZpbGVzWyRrZXldWyd0aHVtYiddKSApDQoJCQkJCQl7DQoJCQkJCQkJJHJlYy0+dGh1bWIgPSAnbW9kdWxlcy9HYWxsZXJ5L2ltYWdlcy9mb2xkZXIucG5nJzsNCgkJCQkJCX0NCgkJCQkJCWVsc2VpZiAoICRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddID4gMCApDQoJCQkJCQl7DQoJCQkJCQkJJHJlYy0+dGh1bWIgPSAnbW9kdWxlcy9HYWxsZXJ5L3RodW1icy8nIC4gJGdhbGxlcnlpbmZvWydmaWxlaWQnXSAuICctJyAuICRnYWxlcnlmaWxlc1ska2V5XVsnZGVmYXVsdGZpbGUnXSAuIHN1YnN0cigkZ2FsZXJ5ZmlsZXNbJGtleV1bJ3RodW1iJ10sIHN0cnJwb3MoJGdhbGVyeWZpbGVzWyRrZXldWyd0aHVtYiddLCAnLicpKTsNCgkJCQkJCQkkb3JpZ2luYWxpbWFnZSA9IERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gc3RyX3JlcGxhY2UoSU1fUFJFRklYLCcnLCRnYWxlcnlmaWxlc1ska2V5XVsndGh1bWInXSk7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJJHJlYy0+dGh1bWIgPSBERUZBVUxUX0dBTExFUllfUEFUSCAuICRnYWxlcnlmaWxlc1ska2V5XVsndGh1bWInXTsNCgkJCQkJCQkkb3JpZ2luYWxpbWFnZSA9IERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gc3RyX3JlcGxhY2UoSU1fUFJFRklYLCcnLCRnYWxlcnlmaWxlc1ska2V5XVsndGh1bWInXSk7DQoJCQkJCQl9DQoJCQkJCQkkcGFyYW1zbGlua1snZGlyJ10gPSBzdHJfcmVwbGFjZSgnJTJGJywnLycscmF3dXJsZW5jb2RlKCRrZXkpKTsNCgkJCQkJCSRwcmV0dHl1cmwgPSAnZ2FsbGVyeS8nIC4gJHBhcmFtc2xpbmtbJ2RpciddIC4gJy8nIC4gDQoJCQkJCQkJCShpc3NldCgkcGFyYW1zbGlua1snc3RhcnQnXSkgPyAkcGFyYW1zbGlua1snc3RhcnQnXSAuICcvJyAuICRwYXJhbXNsaW5rWydudW1iZXInXSAuICcvJyA6ICcnKSAuIA0KCQkJCQkJCQkoaXNzZXQoJHBhcmFtc2xpbmtbJ3Nob3cnXSkgPyAkcGFyYW1zbGlua1snc2hvdyddIC4gJy8nIDogJycpIC4gDQoJCQkJCQkJCSRyZXR1cm5pZDsNCgkJCQkJCSRyZWMtPmZpbGUgPSAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZGVmYXVsdCcsDQoJCQkJCQkJJycsICRwYXJhbXNsaW5rLCAnJywgdHJ1ZSwgdHJ1ZSwgJycsIGZhbHNlLCAkcHJldHR5dXJsICk7DQoJCQkJCQkkcmVjLT5pc2RpciA9IHRydWU7DQoNCgkJCQkJCS8vIGZvbGRlcmxpbmsgaXMgZGVwcmVjYXRlZCwgdXNlICRyZWMtPmZpbGUgYW5kICRyZWMtPnRodW1iIGluc3RlYWQNCgkJCQkJCSRyZWMtPmZvbGRlcmxpbmsgPSAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZGVmYXVsdCcsIA0KCQkJCQkJCSc8aW1nIHNyYz0iJyAuICRyZWMtPnRodW1iIC4gJyIgYWx0PSInIC4gJHJlYy0+dGl0bGUgLiAnIiAvPicsDQoJCQkJCQkJJHBhcmFtc2xpbmssICcnLCBmYWxzZSwgdHJ1ZSwgJycsIGZhbHNlLCAkcHJldHR5dXJsICk7DQoJCQkJCQkkaXRlbWNvdW50Kys7DQoJCQkJCX0NCgkJCQkJZWxzZWlmICggJGdhbGxlcnlpbmZvWyd0aHVtYndpZHRoJ10gPiAwICkNCgkJCQkJew0KCQkJCQkJJHJlYy0+dGh1bWIgPSAnbW9kdWxlcy9HYWxsZXJ5L3RodW1icy8nIC4gJGdhbGxlcnlpbmZvWydmaWxlaWQnXSAuICctJyAuICRnYWxlcnlmaWxlc1ska2V5XVsnZmlsZWlkJ10gLiBzdWJzdHIoJGl0ZW1bJ2ZpbGVuYW1lJ10sIHN0cnJwb3MoJGl0ZW1bJ2ZpbGVuYW1lJ10sICcuJykpOw0KCQkJCQkJJG9yaWdpbmFsaW1hZ2UgPSBERUZBVUxUX0dBTExFUllfUEFUSCAuICRrZXk7DQoJCQkJCQkkaXRlbWNvdW50Kys7DQoJCQkJCQkkaW1nY291bnQrKzsNCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCSRyZWMtPnRodW1iID0gREVGQVVMVF9HQUxMRVJZX1BBVEggLiAoZW1wdHkoJGl0ZW1bJ2ZpbGVwYXRoJ10pID8gJycgOiAkaXRlbVsnZmlsZXBhdGgnXSAuICcvJykgLiBJTV9QUkVGSVggLiAkaXRlbVsnZmlsZW5hbWUnXTsNCgkJCQkJCSRvcmlnaW5hbGltYWdlID0gREVGQVVMVF9HQUxMRVJZX1BBVEggLiAka2V5Ow0KCQkJCQkJJGl0ZW1jb3VudCsrOw0KCQkJCQkJJGltZ2NvdW50Kys7DQoJCQkJCX0NCgkJDQoJCQkJCWlmICggJGl0ZW1jb3VudCA+PSAkc3RhcnQgJiYgJGl0ZW1jb3VudCA8ICgkbnVtYmVyICsgJHN0YXJ0KSApDQoJCQkJCXsNCgkJCQkJCWlmICggIWZpbGVfZXhpc3RzKCRyZWMtPnRodW1iKSApDQoJCQkJCQl7DQoJCQkJCQkJJHRoaXMtPl9DcmVhdGVUaHVtYm5haWwoJHJlYy0+dGh1bWIsIA0KCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICRvcmlnaW5hbGltYWdlLCANCgkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAoJGdhbGxlcnlpbmZvWyd0aHVtYndpZHRoJ10gPiAwKSA/ICRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddIDogOTYsDQoJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgKCRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddID4gMCkgPyAkZ2FsbGVyeWluZm9bJ3RodW1iaGVpZ2h0J10gOiA5NiwNCgkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAoJGdhbGxlcnlpbmZvWyd0aHVtYndpZHRoJ10gPiAwKSA/ICRnYWxsZXJ5aW5mb1sncmVzaXplbWV0aG9kJ10gOiAnc2MnKTsJCQkJCQ0KCQkJCQkJfQ0KCQkJCQkJYXJyYXlfcHVzaCgkaW1hZ2VzLCRyZWMpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KfQ0KZWxzZQ0Kew0KCSRwYXJhbXNbJ21vZHVsZV9tZXNzYWdlJ10gPSAiVGhlIGRpcmVjdG9yeSAnIiAuICRwYXJhbXNbJ2RpciddIC4gIicgZG9lcyBub3QgZXhpc3QuIENoZWNrIHlvdXIgcGFyYW1ldGVycy4iOw0KfQ0KDQoNCi8vIEV4cG9zZSB0aGUgbGlzdCB0byBzbWFydHkuIFVzZSAiYnlfcmVmIiB0byBzYXZlIG1lbW9yeS4NCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ltYWdlcycsJGltYWdlcyk7DQoNCi8vIGFuZCBhIGNvdW50IG9mIHJlY29yZHMNCiR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2Vjb3VudCcsICRpbWdjb3VudCAuICcgJyAuICgkaW1nY291bnQgPT0gMSA/ICR0aGlzLT5MYW5nKCdpbWFnZScpIDogJHRoaXMtPkxhbmcoJ2ltYWdlcycpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsICRpdGVtY291bnQpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdudW1iZXInLCAkbnVtYmVyKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFnZXMnLCBjZWlsKCRpdGVtY291bnQvJG51bWJlcikpOw0KDQovLyBwYWdlbmF2aWdhdGlvbg0KJHBhcmFtc2xpbmtbJ2RpciddID0gc3RyX3JlcGxhY2UoJyUyRicsJy8nLHJhd3VybGVuY29kZSgkcGFyYW1zWydkaXInXSkpOw0KJHBhcmFtc2xpbmtbJ3N0YXJ0J10gPSAkc3RhcnQgLSAkbnVtYmVyOwkJDQokcHJldHR5dXJsID0gJ2dhbGxlcnkvJyAuICRwYXJhbXNsaW5rWydkaXInXSAuICcvJyAuIA0KCQkJCQkoaXNzZXQoJHBhcmFtc2xpbmtbJ251bWJlciddKSA/ICRwYXJhbXNsaW5rWydzdGFydCddIC4gJy8nIC4gJHBhcmFtc2xpbmtbJ251bWJlciddIC4gJy8nIDogJycpIC4gDQoJCQkJCShpc3NldCgkcGFyYW1zbGlua1snc2hvdyddKSA/ICRwYXJhbXNsaW5rWydzaG93J10gLiAnLycgOiAnJykgLiANCgkJCQkJJHJldHVybmlkOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmV2cGFnZScsICgkcGFyYW1zbGlua1snc3RhcnQnXSA+PSAxID8gJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2RlZmF1bHQnLCAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSwgJHBhcmFtc2xpbmssICcnLCBmYWxzZSwgdHJ1ZSwgJycsIGZhbHNlLCAkcHJldHR5dXJsKSA6ICgnPGVtPicgLiAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSAuICc8L2VtPicpKSk7DQoNCiRwYXJhbXNsaW5rWydzdGFydCddID0gJHN0YXJ0ICsgJG51bWJlcjsJCQ0KJHByZXR0eXVybCA9ICdnYWxsZXJ5LycgLiAkcGFyYW1zbGlua1snZGlyJ10gLiAnLycgLiANCgkJCQkJKGlzc2V0KCRwYXJhbXNsaW5rWydudW1iZXInXSkgPyAkcGFyYW1zbGlua1snc3RhcnQnXSAuICcvJyAuICRwYXJhbXNsaW5rWydudW1iZXInXSAuICcvJyA6ICcnKSAuIA0KCQkJCQkoaXNzZXQoJHBhcmFtc2xpbmtbJ3Nob3cnXSkgPyAkcGFyYW1zbGlua1snc2hvdyddIC4gJy8nIDogJycpIC4gDQoJCQkJCSRyZXR1cm5pZDsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignbmV4dHBhZ2UnLCAoJGl0ZW1jb3VudCA+PSAkcGFyYW1zbGlua1snc3RhcnQnXSA/ICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdkZWZhdWx0JywgJHRoaXMtPkxhbmcoJ25leHRwYWdlJyksICRwYXJhbXNsaW5rLCAnJywgZmFsc2UsIHRydWUsICcnLCBmYWxzZSwgJHByZXR0eXVybCkgOiAoJzxlbT4nIC4gJHRoaXMtPkxhbmcoJ25leHRwYWdlJykgLiAnPC9lbT4nKSkpOw0KJHBhZ2VsaW5rcyA9ICcnOw0KZm9yICgkaSA9IDA7ICRpIDwgY2VpbCgkaXRlbWNvdW50LyRudW1iZXIpOyAkaSsrKSANCnsNCgkkcGFyYW1zbGlua1snc3RhcnQnXSA9ICgkaSAqICRudW1iZXIpICsgMTsNCgkkcHJldHR5dXJsID0gJ2dhbGxlcnkvJyAuICRwYXJhbXNsaW5rWydkaXInXSAuICcvJyAuIA0KCQkJCQkJKGlzc2V0KCRwYXJhbXNsaW5rWydudW1iZXInXSkgPyAkcGFyYW1zbGlua1snc3RhcnQnXSAuICcvJyAuICRwYXJhbXNsaW5rWydudW1iZXInXSAuICcvJyA6ICcnKSAuIA0KCQkJCQkJKGlzc2V0KCRwYXJhbXNsaW5rWydzaG93J10pID8gJHBhcmFtc2xpbmtbJ3Nob3cnXSAuICcvJyA6ICcnKSAuIA0KCQkJCQkJJHJldHVybmlkOw0KCSRwYWdlbGlua3MgLj0gKCRwYXJhbXNsaW5rWydzdGFydCddICE9ICRzdGFydCA/ICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdkZWZhdWx0JywgJGkgKyAxLCAkcGFyYW1zbGluaywgJycsIGZhbHNlLCB0cnVlLCAnJywgZmFsc2UsICRwcmV0dHl1cmwpIDogKCc8ZW0+JyAuICgkaSArIDEpIC4gJzwvZW0+JykpOw0KfQ0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYWdlbGlua3MnLCAkcGFnZWxpbmtzKTsNCg0KDQppZiAoaXNzZXQoJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSkpDQp7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSk7DQp9DQplbHNlDQp7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsJycpOw0KfQ0KDQoNCi8vIERpc3BsYXkgdGVtcGxhdGUNCiR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW50X3RlbXBsYXRlJyk7DQppZiAoICFlbXB0eSgkZ2FsbGVyeWluZm9bJ3RlbXBsYXRlJ10pICYmICRnYWxsZXJ5aW5mb1sndGVtcGxhdGUnXSAhPSBVU0VfREVGQVVMVF9URU1QTEFURSApDQogIHsNCiAgICAkdGVtcGxhdGUgPSAkZ2FsbGVyeWluZm9bJ3RlbXBsYXRlJ107DQogIH0NCmlmICggaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgKQ0KICB7DQogICAgJHRlbXBsYXRlID0gJHBhcmFtc1sndGVtcGxhdGUnXTsNCiAgfQ0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRlbXBsYXRlKTsNCg0KDQovLyBwYXNzIGRhdGEgdG8gaGVhZCBzZWN0aW9uLg0KDQovLyBnZXQgdGVtcGxhdGUtc3BlY2lmaWMgSmF2YVNjcmlwdCBhbmQgZWNobw0KJHRlbXBsYXRlY29kZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkdGVtcGxhdGUpOw0KJHRlbXBsYXRlY29kZWFyciA9IGV4cGxvZGUoVEVNUExBVEVfU0VQQVJBVE9SLCAkdGVtcGxhdGVjb2RlKTsNCiR0ZW1wbGF0ZV9tZXRhZGF0YSA9IHN1YnN0cigkdGVtcGxhdGVjb2RlYXJyWzJdLDAsLTIpOw0KDQovLyBjaGVjayBpZiBhIGNzcyBmaWxlIGV4aXN0cyBhbmQgZWNobw0KaWYgKCBmaWxlX2V4aXN0cygibW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9jc3MvIiAuICR0ZW1wbGF0ZSAuICIuY3NzIikgKQ0Kew0KCSR0ZW1wbGF0ZV9tZXRhZGF0YSAuPSAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2Nzcy8nIC4gJHRlbXBsYXRlIC4gJy5jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIiAvPg0KJzsNCn0NCiR0aGlzLT5HYWxsZXJ5TWV0YWRhdGEgPSAkdGVtcGxhdGVfbWV0YWRhdGE7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiAoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgR2FsbGVyeScpICkgDQp7DQogIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOw0KfQ0KDQoNCiMNCiNUaGUgdGFiIGhlYWRlcnMNCiMNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KaWYgKCAhZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSApDQp7DQoJJGFjdGl2ZV90YWIgPSAkcGFyYW1zWydhY3RpdmVfdGFiJ107DQp9DQplbHNlDQp7DQoJJGFjdGl2ZV90YWIgPSAnJzsNCn0NCg0KZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdnYWxsZXJpZXMnLCR0aGlzLT5MYW5nKCdnYWxsZXJpZXMnKSwgKCRhY3RpdmVfdGFiID09ICdnYWxsZXJpZXMnKT90cnVlOmZhbHNlKTsNCg0KDQppZiAoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApDQp7DQoJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCd0ZW1wbGF0ZXMnKSwgKCRhY3RpdmVfdGFiID09ICd0ZW1wbGF0ZXMnKT90cnVlOmZhbHNlKTsNCn0NCg0KCQkJDQppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkNCnsNCgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnMnLCR0aGlzLT5MYW5nKCdvcHRpb25zJyksICgkYWN0aXZlX3RhYiA9PSAnb3B0aW9ucycpP3RydWU6ZmFsc2UpOw0KfQ0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQoNCiMNCiNUaGUgY29udGVudCBvZiB0aGUgdGFicw0KIw0KZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7DQoNCmlmICggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEdhbGxlcnknKSApDQp7DQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2dhbGxlcmllcycsICRwYXJhbXMpOw0KCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9nYWxsZXJpZXN0YWIucGhwJyk7DQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQp9DQoNCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQ0Kew0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCd0ZW1wbGF0ZXMnLCAkcGFyYW1zKTsNCglpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fdGVtcGxhdGVzdGFiLnBocCcpOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KfQ0KDQppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkNCiAgew0KICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdvcHRpb25zJywgJHBhcmFtcyk7DQogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX29wdGlvbnN0YWIucGhwJyk7DQogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7DQogIH0NCg0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkNCiAgew0KICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpOw0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7DQogICAgcmV0dXJuOw0KICB9DQoNCmlmKCAhKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pKSApDQogIHsNCiAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOw0KICAgIHJldHVybjsNCiAgfQ0KDQokdGVtcGxhdGUgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOw0KJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCR0ZW1wbGF0ZSk7DQoNCi8vIGRlbGV0ZSBjc3MtZmlsZQ0KaWYoIGZpbGVfZXhpc3RzKCcuLi9tb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2Nzcy8nIC4gJHRlbXBsYXRlIC4gJy5jc3MnKSApDQogIHsNCiAgICB1bmxpbmsoJy4uL21vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvY3NzLycgLiAkdGVtcGxhdGUgLiAnLmNzcycpOw0KICB9DQoNCi8vIHNldCBhc3NpZ25lZCBnYWxsZXJpZXMgdG8gZGVmYXVsdC10ZW1wbGF0ZQ0KJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIFNFVCB0ZW1wbGF0ZT0/IFdIRVJFIHRlbXBsYXRlPT8iOw0KJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KFVTRV9ERUZBVUxUX1RFTVBMQVRFLCAkdGVtcGxhdGUpKTsNCg0KJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAndGVtcGxhdGVkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_addtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhJGdDbXMgKSBleGl0KCk7DQoNCmlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApDQogIHsNCiAgICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KICB9DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOw0KICB9DQoNCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQ0KICB7DQogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7DQogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwkcGFyYW1zWydvcmlnYWN0aW9uJ10sJycsJHBhcmFtcyk7DQogICAgcmV0dXJuOw0KICB9DQoNCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApDQogIHsNCiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsNCiAgICByZXR1cm47DQogIH0NCg0KDQokcGFyYW1zWyd0ZW1wbGF0ZSddID0gdHJpbSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCg0KLy8gY2hlY2sgaWYgdGhpcyB0ZW1wbGF0ZSBhbHJlYWR5IGV4aXN0cw0KJHR4dCA9IHRyaW0oJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pKTsNCmlmKCAkdHh0ICE9ICIiICkNCiAgew0KICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cycpOw0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJHBhcmFtc1snb3JpZ2FjdGlvbiddLCcnLCRwYXJhbXMpOw0KICAgIHJldHVybjsNCiAgfQ0KDQovLyBzYXZlIHRlbXBsYXRlDQokdGhpcy0+U2V0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSwgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10uVEVNUExBVEVfU0VQQVJBVE9SLiRwYXJhbXNbJ3RlbXBsYXRlY3NzJ10uVEVNUExBVEVfU0VQQVJBVE9SLiRwYXJhbXNbJ3RlbXBsYXRlanMnXS4nKn0nICk7DQoNCi8vIHNhdmUgY3NzLWZpbGUNCiRoYW5kbGUgPSBmb3BlbignLi4vbW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9jc3MvJyAuICRwYXJhbXNbJ3RlbXBsYXRlJ10gLiAnLmNzcycsJ3cnKTsNCmZ3cml0ZSgkaGFuZGxlLCRwYXJhbXNbJ3RlbXBsYXRlY3NzJ10pOw0KZmNsb3NlKCRoYW5kbGUpOw0KDQokcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICd0ZW1wbGF0ZWFkZGVkJywgJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_editgallery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7DQoNCmlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApDQp7DQoJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnZ2FsbGVyaWVzJyk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCn0NCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgR2FsbGVyeScpICkNCnsNCglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7DQp9DQoNCmlmKCAhaXNzZXQoICRwYXJhbXNbJ2dpZCddICkgKQ0Kew0KCSRwYXJhbXMgPSBhcnJheSgnZ2lkJyA9PiAkcGFyYW1zWydnaWQnXSwgJ21vZGUnID0+ICJlZGl0IiwgJ2Vycm9ycycgPT4gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Z2FsbGVyeScsJycsJHBhcmFtcyk7DQoJcmV0dXJuOw0KfQ0KDQokZ2FsbGVyeXRpdGxlID0gaXNzZXQoJHBhcmFtc1snZ2FsbGVyeXRpdGxlJ10pID8gJHBhcmFtc1snZ2FsbGVyeXRpdGxlJ10gOiAnJzsNCiRnYWxsZXJ5Y29tbWVudCA9IGlzc2V0KCRwYXJhbXNbJ2dhbGxlcnljb21tZW50J10pID8gJHBhcmFtc1snZ2FsbGVyeWNvbW1lbnQnXSA6ICcnOw0KDQokcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2dhbGxlcnkgU0VUIHRpdGxlID0gPywgY29tbWVudCA9ID8gV0hFUkUgZmlsZWlkID0gPyI7DQokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGdhbGxlcnl0aXRsZSwgJGdhbGxlcnljb21tZW50LCAkcGFyYW1zWydnaWQnXSkpOw0KDQppZiAoICRwYXJhbXNbJ3RodW1id2lkdGgnXSA8PSAwIHx8ICRwYXJhbXNbJ3RodW1iaGVpZ2h0J10gPD0gMCApDQp7DQoJJHBhcmFtc1sndGh1bWJ3aWR0aCddID0gTlVMTDsNCgkkcGFyYW1zWyd0aHVtYmhlaWdodCddID0gTlVMTDsNCn0NCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIChmaWxlaWQsdGVtcGxhdGUsdGh1bWJ3aWR0aCx0aHVtYmhlaWdodCxyZXNpemVtZXRob2QpIA0KCQlWQUxVRVMgKD8sPyw/LD8sPykNCgkJT04gRFVQTElDQVRFIEtFWSBVUERBVEUgdGVtcGxhdGU9Pyx0aHVtYndpZHRoPT8sdGh1bWJoZWlnaHQ9PyxyZXNpemVtZXRob2Q9PyI7DQokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snZ2lkJ10sJHBhcmFtc1sndGVtcGxhdGUnXSwkcGFyYW1zWyd0aHVtYndpZHRoJ10sJHBhcmFtc1sndGh1bWJoZWlnaHQnXSwkcGFyYW1zWydyZXNpemVtZXRob2QnXSwkcGFyYW1zWyd0ZW1wbGF0ZSddLCRwYXJhbXNbJ3RodW1id2lkdGgnXSwkcGFyYW1zWyd0aHVtYmhlaWdodCddLCRwYXJhbXNbJ3Jlc2l6ZW1ldGhvZCddKSkgfHwgJHJlc3VsdDsNCg0KDQppZiAoICRyZXN1bHQgKSANCnsNCglmb3JlYWNoKCRwYXJhbXNbJ2ZpbGV0aXRsZSddIGFzICRrZXk9PiRmaWxldGl0bGUpDQoJew0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2dhbGxlcnkgU0VUIHRpdGxlID0gPywgY29tbWVudCA9ID8gV0hFUkUgZmlsZWlkID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmlsZXRpdGxlLCAkcGFyYW1zWydmaWxlY29tbWVudCddWyRrZXldLCAka2V5KSkgfHwgJHJlc3VsdDsNCgl9DQp9DQoNCmlmICggJHJlc3VsdCApIA0Kew0KCSRwYXJhbXMgPSBhcnJheSgnZ2lkJyA9PiAkcGFyYW1zWydnaWQnXSwgJ21vZGUnID0+ICJlZGl0IiwgJ21vZHVsZV9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnZ2FsbGVyeXVwZGF0ZWQnKSk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXRnYWxsZXJ5JywgJycsICRwYXJhbXMpOw0KfQ0KZWxzZSANCnsNCgkkcGFyYW1zID0gYXJyYXkoJ2dpZCcgPT4gJHBhcmFtc1snZ2lkJ10sICdtb2RlJyA9PiAiZWRpdCIsICdlcnJvcnMnID0+ICR0aGlzLT5MYW5nKCdlcnJvcl91cGRhdGVnYWxsZXJ5ZmFpbGVkJykpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0Z2FsbGVyeScsICcnLCAkcGFyYW1zKTsNCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7DQoNCmlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApDQogIHsNCiAgICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KICB9DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOw0KICB9DQoNCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQ0KICB7DQogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7DQogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwkcGFyYW1zWydvcmlnYWN0aW9uJ10sJycsJHBhcmFtcyk7DQogICAgcmV0dXJuOw0KICB9DQoNCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApDQogIHsNCiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsNCiAgICByZXR1cm47DQogIH0NCg0KLy8gc2F2ZSB0ZW1wbGF0ZQ0KJHRoaXMtPlNldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10sICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddLlRFTVBMQVRFX1NFUEFSQVRPUi4kcGFyYW1zWyd0ZW1wbGF0ZWNzcyddLlRFTVBMQVRFX1NFUEFSQVRPUi4kcGFyYW1zWyd0ZW1wbGF0ZWpzJ10uJyp9JyApOw0KDQovLyBzYXZlIGNzcy1maWxlDQppZiggZW1wdHkoJHBhcmFtc1sndGVtcGxhdGVjc3MnXSkgKQ0KICB7DQogICAgdW5saW5rKCcuLi9tb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2Nzcy8nIC4gJHBhcmFtc1sndGVtcGxhdGUnXSAuICcuY3NzJyk7DQogIH0NCmVsc2UNCiAgew0KICAgICRoYW5kbGUgPSBmb3BlbignLi4vbW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9jc3MvJyAuICRwYXJhbXNbJ3RlbXBsYXRlJ10gLiAnLmNzcycsJ3cnKTsNCiAgICBmd3JpdGUoJGhhbmRsZSwkcGFyYW1zWyd0ZW1wbGF0ZWNzcyddKTsNCiAgICBmY2xvc2UoJGhhbmRsZSk7DQogIH0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2FwcGx5YnV0dG9uJ10pICkNCnsNCgkkcGFyYW1zID0gYXJyYXkoJ3RlbXBsYXRlJyA9PiAkcGFyYW1zWyd0ZW1wbGF0ZSddLCAnbW9kZScgPT4gImVkaXQiLCAnbW9kdWxlX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCd0ZW1wbGF0ZXVwZGF0ZWQnKSk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wbGF0ZScsICcnLCAkcGFyYW1zKTsNCn0NCmVsc2UNCnsNCgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICd0ZW1wbGF0ZXVwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_updateoptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycgKSApDQp7DQogIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOw0KfQ0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9leHRlbnNpb25zJywgJHBhcmFtc1snYWxsb3dlZF9leHRlbnNpb25zJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9jb21tZW50X3d5c2l3eWcnLCAkcGFyYW1zWyd1c2VfY29tbWVudF93eXNpd3lnJ10pOw0KDQokcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdvcHRpb25zdXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAnb3B0aW9ucycpOw0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.editgallery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYoICEkZ0NtcyApIGV4aXQoKTsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgR2FsbGVyeScpICkgDQogIHsNCiAgICBlY2hvICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKTsNCiAgICByZXR1cm47DQogIH0NCg0KJHRoZW1lT2JqZWN0ID0mICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXTsNCg0KDQovLyBjaGVjayBpZiB3ZSBoYXZlIGEgZ2FsbGVyeSBuYW1lDQppZiggIWlzc2V0KCRwYXJhbXNbJ2dpZCddKSApDQogIHsNCiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOw0KICAgIHJldHVybjsNCiAgfQ0KaWYoICFpc3NldCgkcGFyYW1zWydtb2RlJ10pICkNCiAgew0KICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOw0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7DQogICAgcmV0dXJuOw0KICB9DQoNCiRwYXJhbXNbJ29yaWdhY3Rpb24nXSA9ICRwYXJhbXNbJ2FjdGlvbiddOw0KDQokZ2FsbGVyeWluZm8gPSAkdGhpcy0+X0dldGdhbGxlcnlpbmZvYnlpZCgkcGFyYW1zWydnaWQnXSk7DQokZ2FsbGVyeXBhdGggPSAkcGFyYW1zWydnaWQnXSA9PSAxID8gJycgOiB0cmltKCRnYWxsZXJ5aW5mb1snZmlsZXBhdGgnXSAuICcvJyAuICRnYWxsZXJ5aW5mb1snZmlsZW5hbWUnXSwnLycpOw0KDQokY29udGVudHMgPSAiIjsNCmlmKCAkcGFyYW1zWydtb2RlJ10gPT0gJ2FkZCcgKQ0KICB7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdkb19hZGRnYWxsZXJ5JywkcmV0dXJuaWQsJ3Bvc3QnLCcnLCBmYWxzZSwgJycsICRwYXJhbXMpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dhbGxlcnluYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnZ2FsbGVyeScsICIiLCA0MCApKTsNCiAgfQ0KZWxzZSANCgl7DQoJCSR0aGlzLT5fVXBkYXRlR2FsbGVyeURCKCRnYWxsZXJ5cGF0aCwkcGFyYW1zWydnaWQnXSk7DQoJCSRnYWxsZXJ5ID0gJHRoaXMtPl9HZXRnYWxsZXJ5ZmlsZXMoJGdhbGxlcnlwYXRoKTsNCgkJDQoJCSRzaG93Z2FsbGVyeSA9IGFycmF5KCk7DQoJCWlmICggZW1wdHkoJGdhbGxlcnkpICkNCgkJew0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub2ZpbGVzdGV4dCcsICR0aGlzLT5sYW5nKCJub2ZpbGVzdGV4dCIpKTsNCgkJfSANCgkJZWxzZSANCgkJew0KCQkJJHRydWVpbWFnZSA9ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCAkdGhpcy0+TGFuZygnc2V0ZmFsc2UnKSwnJywnJywnc3lzdGVtaWNvbicpOw0KCQkJJHRydWVpbWFnZTIgPSAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlZmF1bHQnKSwnJywnJywnc3lzdGVtaWNvbicpOw0KCQkJJGZhbHNlaW1hZ2UgPSAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5MYW5nKCdzZXR0cnVlJyksJycsJycsJ3N5c3RlbWljb24nKTsNCgkJCQ0KCQkJZm9yZWFjaCAoJGdhbGxlcnkgYXMgJGZpbGUpIA0KCQkJew0KCQkJCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsNCgkJDQoJCQkJJHBhcmFtc1snZmlkJ10gPSAkZmlsZVsnZmlsZWlkJ107DQoJCQkJDQoJCQkJJG9uZXJvdy0+ZmlsZWlkID0gJGZpbGVbJ2ZpbGVpZCddOw0KCQkJCWlmICggc3Vic3RyKCRmaWxlWydmaWxlbmFtZSddLC0xKSA9PSAiLyIgKQ0KCQkJCXsNCgkJCQkJLy8gcmVjb3JkIGlzIGEgZGlyZWN0b3J5DQoJCQkJCSRvbmVyb3ctPnRodW1iID0gJzxpbWcgc3JjPSIuLi9tb2R1bGVzL0dhbGxlcnkvaW1hZ2VzL2ZvbGRlcnNtYWxsLnBuZyIgYWx0PSInIC4gJGZpbGVbJ2ZpbGVuYW1lJ10gLiAnIiAvPic7DQoJCQkJCSRvbmVyb3ctPnRodW1idXJsID0gJy4uL21vZHVsZXMvR2FsbGVyeS9pbWFnZXMvZm9sZGVyc21hbGwucG5nJzsNCgkJCQkJJG9uZXJvdy0+ZmlsZW5hbWUgPSAnJzsNCgkJCQkJJG9uZXJvdy0+dGl0bGUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0Z2FsbGVyeScsICRyZXR1cm5pZCwgJGZpbGVbJ2ZpbGVuYW1lJ10sIGFycmF5KCdnaWQnPT4kZmlsZVsnZmlsZWlkJ10sJ21vZGUnPT4iZWRpdCIpKTsNCgkJCQkJJG9uZXJvdy0+Y29tbWVudCA9ICIiOw0KCQkJCQkkb25lcm93LT5maWxlZGF0ZSA9ICIiOw0KCQkJCQkkb25lcm93LT5kZWZhdWx0bGluayA9ICIiOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkb25lcm93LT50aHVtYiA9ICc8aW1nIHNyYz0iLi4vJyAuIERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gJGZpbGVbJ2ZpbGVwYXRoJ10gLiAnLycgLiBJTV9QUkVGSVggLiAkZmlsZVsnZmlsZW5hbWUnXSAuICciIGFsdD0iJyAuICRmaWxlWydmaWxlbmFtZSddIC4gJyIgLz4nOw0KCQkJCQkkb25lcm93LT50aHVtYnVybCA9ICcuLi8nIC4gREVGQVVMVF9HQUxMRVJZX1BBVEggLiBzdHJfcmVwbGFjZSgnJTJGJywnLycscmF3dXJsZW5jb2RlKCRmaWxlWydmaWxlcGF0aCddIC4gJy8nIC4gSU1fUFJFRklYIC4gJGZpbGVbJ2ZpbGVuYW1lJ10pKTsNCgkJCQkJJG9uZXJvdy0+ZmlsZW5hbWUgPSAkZmlsZVsnZmlsZW5hbWUnXTsNCgkJCQkJJG9uZXJvdy0+dGl0bGUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdmaWxldGl0bGVbJyAuICRmaWxlWydmaWxlaWQnXSAuICddJywgJGZpbGVbJ3RpdGxlJ10sIDMwLCAxMDAgKTsNCgkJCQkJLy8kb25lcm93LT5jb21tZW50ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnZmlsZWNvbW1lbnRbJyAuICRmaWxlWydmaWxlaWQnXSAuICddJywgJGZpbGVbJ2NvbW1lbnQnXSwgNTAgKTsNCgkJCQkJJG9uZXJvdy0+Y29tbWVudCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSgwLCAkaWQsICRmaWxlWydjb21tZW50J10sICdmaWxlY29tbWVudFsnIC4gJGZpbGVbJ2ZpbGVpZCddIC4gJ10nLCAnZmFrZSIgc3R5bGU9IndpZHRoOjQwZW07IGhlaWdodDo0ZW07JywgJycsICcnLCAnJywgJzQwJywgJzQnKTsgIC8vIGNsYXNzIGZpbGxlZCB3aXRoIGZha2UgYW5kIHN0eWxlLWluZm8gdG8gb3ZlcnJ1bGUgdGhlIHRoZW1lLWNzcw0KCQkJCQkkb25lcm93LT5maWxlZGF0ZSA9ICRmaWxlWydmaWxlZGF0ZSddOw0KCQkJCQlpZiggJGZpbGVbJ2ZpbGVpZCddID09ICRnYWxsZXJ5aW5mb1snZGVmYXVsdGZpbGUnXSApDQoJCQkJCXsNCgkJCQkJICAkb25lcm93LT5kZWZhdWx0bGluayA9ICR0cnVlaW1hZ2UyOw0KCQkJCQl9DQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkgICRvbmVyb3ctPmRlZmF1bHRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnc3dpdGNoZGVmYXVsdCcsICRyZXR1cm5pZCwgJGZhbHNlaW1hZ2UsIGFycmF5KCdnaWQnPT4kcGFyYW1zWydnaWQnXSwnZmlkJz0+JGZpbGVbJ2ZpbGVpZCddLCdtb2RlJz0+JHBhcmFtc1snbW9kZSddLCdvcmlnYWN0aW9uJz0+JHBhcmFtc1snb3JpZ2FjdGlvbiddKSk7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlpZiAoICRmaWxlWydhY3RpdmUnXSApIA0KCQkJCXsNCgkJCQkJJGFjdGl2ZWltYWdlID0gJHRydWVpbWFnZTsNCgkJCQl9DQoJCQkJZWxzZSANCgkJCQl7DQoJCQkJCSRhY3RpdmVpbWFnZSA9ICRmYWxzZWltYWdlOw0KCQkJCX0NCgkJCQkkb25lcm93LT5hY3RpdmVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnc3dpdGNoYWN0aXZlJywgJHJldHVybmlkLCAkYWN0aXZlaW1hZ2UsIGFycmF5KCdnaWQnPT4kcGFyYW1zWydnaWQnXSwnZmlkJz0+JGZpbGVbJ2ZpbGVpZCddLCdtb2RlJz0+JHBhcmFtc1snbW9kZSddLCdvcmlnYWN0aW9uJz0+JHBhcmFtc1snb3JpZ2FjdGlvbiddKSk7DQoJDQoJCQkJaWYgKCAkZmlsZVsnZmlsZWlkJ10gIT0gMSApDQoJCQkJew0KCQkJCQlhcnJheV9wdXNoKCRzaG93Z2FsbGVyeSwgJG9uZXJvdyk7DQoJCQkJfQ0KCQkJfQ0KCQkNCgkJfQ0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkc2hvd2dhbGxlcnkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRzaG93Z2FsbGVyeSkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlJywgJHRoaXMtPkxhbmcoJ2ltYWdlJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkxhbmcoJ3RpdGxlJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbW1lbnQnLCAkdGhpcy0+TGFuZygnY29tbWVudCcpKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWxlZGF0ZScsICR0aGlzLT5MYW5nKCdkYXRlJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FjdGl2ZScsICR0aGlzLT5MYW5nKCdhY3RpdmUnKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZGVmYXVsdCcsICR0aGlzLT5MYW5nKCdkZWZhdWx0JykpOw0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdkb19lZGl0Z2FsbGVyeScsJHJldHVybmlkLCdwb3N0JywnJywgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQoJfQ0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhZ2V0aXRsZScsJGdhbGxlcnlwYXRoKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X2dhbGxlcnl0aXRsZScsJHRoaXMtPkxhbmcoJ2dhbGxlcnl0aXRsZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZ2FsbGVyeXRpdGxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnZ2FsbGVyeXRpdGxlJywgJGdhbGxlcnlpbmZvWyd0aXRsZSddLCA0MCwgMTAwICkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY29tbWVudCcsJHRoaXMtPkxhbmcoJ2NvbW1lbnQnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dhbGxlcnljb21tZW50JywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VfY29tbWVudF93eXNpd3lnJywxKSwgJGlkLCBodG1sX2VudGl0eV9kZWNvZGUoJGdhbGxlcnlpbmZvWydjb21tZW50J10sRU5UX1FVT1RFUywiVVRGLTgiKSwgJ2dhbGxlcnljb21tZW50JywgJ2Zha2UiIHN0eWxlPSJoZWlnaHQ6NmVtOycsICcnLCAnJywgJycsICc4MCcsICczJykpOw0KDQokdGVtcGxhdGVsaXN0ID0gYXJyYXkoJy0gJyAuICR0aGlzLT5MYW5nKCd1c2VkZWZhdWx0JykgLiAnIC0nPT5VU0VfREVGQVVMVF9URU1QTEFURSk7DQokcXVlcnkgPSAiU0VMRUNUIHRlbXBsYXRlX25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3RlbXBsYXRlcyBXSEVSRSBtb2R1bGVfbmFtZSA9ICdHYWxsZXJ5JyBPUkRFUiBCWSB0ZW1wbGF0ZV9uYW1lIEFTQyI7DQokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQp3aGlsZSAoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkNCiAgew0KICAgICR0ZW1wbGF0ZWxpc3RbJHJvd1sndGVtcGxhdGVfbmFtZSddXSA9ICRyb3dbJ3RlbXBsYXRlX25hbWUnXTsNCiAgfQ0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygndGVtcGxhdGUnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndGVtcGxhdGUnLCAkdGVtcGxhdGVsaXN0LCAtMSwgJGdhbGxlcnlpbmZvWyd0ZW1wbGF0ZSddKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RodW1ibmFpbHNpemUnLCAkdGhpcy0+TGFuZygndGh1bWJuYWlsc2l6ZScpKTsNCiRyZXNpemVtZXRob2RsaXN0ID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2Nyb3AnKT0+J2NyJywkdGhpcy0+TGFuZygnc2NhbGUnKT0+J3NjJywkdGhpcy0+TGFuZygnem9vbWNyb3AnKT0+J3pjJywkdGhpcy0+TGFuZygnem9vbXNjYWxlJyk9Pid6cycpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aHVtYm5haWxzaXplJywgDQoJCSR0aGlzLT5MYW5nKCdsZWF2ZWVtcHR5JykgLiAnPGJyIC8+JyAuDQoJCSR0aGlzLT5MYW5nKCd3aWR0aCcpIC4gJzombmJzcDsnIC4NCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGh1bWJ3aWR0aCcsICRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddLCA0LCA0ICkgLg0KCQknJm5ic3A7Jm5ic3A7Jm5ic3A7JyAuICR0aGlzLT5MYW5nKCdoZWlnaHQnKSAuICc6Jm5ic3A7JyAuDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RodW1iaGVpZ2h0JywgJGdhbGxlcnlpbmZvWyd0aHVtYmhlaWdodCddLCA0LCA0ICkgLg0KCQknJm5ic3A7Jm5ic3A7Jm5ic3A7JyAuICR0aGlzLT5MYW5nKCdyZXNpemVtZXRob2QnKSAuICc6Jm5ic3A7JyAuDQoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3Jlc2l6ZW1ldGhvZCcsICRyZXNpemVtZXRob2RsaXN0LCAtMSwgJGdhbGxlcnlpbmZvWydyZXNpemVtZXRob2QnXSkgLg0KCQkoIWVtcHR5KCRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddKSA/ICcmbmJzcDsmbmJzcDsmbmJzcDsnIC4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnY3JlYXRldGh1bWJzJywgJHJldHVybmlkLCAnPGltZyBzcmM9Ii4uL21vZHVsZXMvR2FsbGVyeS9pbWFnZXMvZnBhaW50LmdpZiIgYWx0PSInIC4gJHRoaXMtPkxhbmcoJ2NyZWF0ZXRodW1icycpIC4gJyIvPiAgJyAuICR0aGlzLT5MYW5nKCdjcmVhdGV0aHVtYnMnKSwgYXJyYXkoJ2dpZCc9PiRwYXJhbXNbJ2dpZCddKSwgJycsIGZhbHNlLCBmYWxzZSkgOiAnJykNCik7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdGJ1dHRvbicsICR0aGlzLT5MYW5nICgnc3VibWl0JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nICgnY2FuY2VsJykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRnYWxsZXJ5LnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYoICEkZ0NtcyApIGV4aXQoKTsNCg0KaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkNCiAgew0KICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpOw0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7DQogICAgcmV0dXJuOw0KICB9DQoNCmlmKCAhaXNzZXQoJHBhcmFtc1snbW9kZSddKSApDQogIHsNCiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOw0KICAgIHJldHVybjsNCiAgfQ0KDQokcGFyYW1zWydvcmlnYWN0aW9uJ10gPSAkcGFyYW1zWydhY3Rpb24nXTsNCiRjb250ZW50cyA9ICIiOw0KaWYoICRwYXJhbXNbJ21vZGUnXSA9PSAnYWRkJyApDQogIHsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ2RvX2FkZHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLCBmYWxzZSwgJycsICRwYXJhbXMpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlbmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RlbXBsYXRlJywgIiIsIDQwICkpOw0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pICYmICRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSAhPSAnJyApDQogICAgICB7DQogICAgICAgICRjb250ZW50cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7DQogICAgICB9DQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pICYmICRwYXJhbXNbJ3RlbXBsYXRlJ10gIT0gJycgKQ0KICAgICAgew0KICAgICAgICAkY29udGVudHMgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSk7DQogICAgICB9DQogIH0NCmVsc2UgDQogIHsNCgkJaWYoICFpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSApDQoJCSAgew0KCQkgICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7DQoJCSAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOw0KCQkgICAgcmV0dXJuOw0KCQkgIH0NCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ2RvX2VkaXR0ZW1wbGF0ZScsJHJldHVybmlkLCdwb3N0JywnJywgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlJ10pOw0KICAgICRjb250ZW50cyA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCiAgfQ0KDQokY29udGVudHNjb2RlID0gZXhwbG9kZShURU1QTEFURV9TRVBBUkFUT1IsICRjb250ZW50cyk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCd0aXRsZV90ZW1wbGF0ZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlbmFtZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZW5hbWUnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGUnLCAkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSAoJGlkLCAkY29udGVudHNjb2RlWzBdLCAndGVtcGxhdGVjb250ZW50JykpOw0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXZhaWxhYmxldmFyaWFibGVzJywkdGhpcy0+TGFuZygnYXZhaWxhYmxldmFyaWFibGVzJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdmFpbGFibGV2YXJpYWJsZXNsaXN0JywkdGhpcy0+TGFuZygnYXZhaWxhYmxldmFyaWFibGVzbGlzdCcpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXZhaWxhYmxldmFyaWFibGVzbGluaycsJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbmZvLmdpZicsICR0aGlzLT5MYW5nKCdhdmFpbGFibGV2YXJpYWJsZXMnKSwnJywnJywnc3lzdGVtaWNvbicpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVjc3MnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGVjc3MnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlY3NzJywgJHRoaXMtPkNyZWF0ZVN5bnRheEFyZWEgKCRpZCwgc3RyX3JlcGxhY2UoIip9IiwgIiIsICRjb250ZW50c2NvZGVbMV0pLCAndGVtcGxhdGVjc3MnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZWpzJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlanMnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlanMnLCAkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSAoJGlkLCBzdWJzdHIoJGNvbnRlbnRzY29kZVsyXSwwLC0yKSwgJ3RlbXBsYXRlanMnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXBwbHknLCRwYXJhbXNbJ21vZGUnXSA9PSAnYWRkJyA/ICcnIDogJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5YnV0dG9uJywgJHRoaXMtPkxhbmcoJ2FwcGx5JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGUudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.showlatest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokcGFyYW1zWydkaXInXSA9IGlzc2V0KCRwYXJhbXNbJ2RpciddKSA/IHJhd3VybGRlY29kZShjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHBhcmFtc1snZGlyJ10sIi8iKSkpIDogJyc7DQokc3RhcnQgPSAoaXNzZXQoJHBhcmFtc1snc3RhcnQnXSkgJiYgaXNfbnVtZXJpYygkcGFyYW1zWydzdGFydCddKSkgPyAkcGFyYW1zWydzdGFydCddIDogMTsNCiRudW1iZXIgPSAoaXNzZXQoJHBhcmFtc1snbnVtYmVyJ10pICYmIGlzX251bWVyaWMoJHBhcmFtc1snbnVtYmVyJ10pKSA/ICRwYXJhbXNbJ251bWJlciddIDogNjsNCiRzaG93ID0gKGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkgJiYgaW5fYXJyYXkoJHBhcmFtc1snc2hvdyddLCBhcnJheSgnYWN0aXZlJywnaW5hY3RpdmUnLCdhbGwnKSkpID8gJHBhcmFtc1snc2hvdyddIDogJ2FjdGl2ZSc7DQoNCiRpbWdjb3VudCA9IDA7DQokaXRlbWNvdW50ID0gMDsNCiRpbWFnZXMgPSBhcnJheSgpOw0KDQppZiAoIGlzX2RpcihERUZBVUxUX0dBTExFUllfUEFUSCAuICRwYXJhbXNbJ2RpciddKSApDQp7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdnYWxsZXJ5dGl0bGUnLCBodG1sc3BlY2lhbGNoYXJzKHRyaW0oc3Vic3RyKCRwYXJhbXNbJ2RpciddLCBzdHJycG9zKCRwYXJhbXNbJ2RpciddLCAnLycpKSwiLyIpKSk7DQoNCgkvLyBnZXQgZ2FsbGVyeSBpbmZvDQoJJGdhbGxlcnlpbmZvID0gJHRoaXMtPl9HZXRnYWxsZXJ5aW5mbygkcGFyYW1zWydkaXInXSk7DQoNCglpZiAoICRnYWxsZXJ5aW5mb1snYWN0aXZlJ10gPT0gMSApDQoJew0KCQlpZiAoICFlbXB0eSgkZ2FsbGVyeWluZm9bJ3RpdGxlJ10pICkNCgkJew0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdnYWxsZXJ5dGl0bGUnLCAkZ2FsbGVyeWluZm9bJ3RpdGxlJ10pOw0KCQl9DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZ2FsbGVyeWNvbW1lbnQnLCAkZ2FsbGVyeWluZm9bJ2NvbW1lbnQnXSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncGFyZW50bGluaycsICcnKTsNCgl9DQoNCg0KDQoJLy8gYnVpbGQgZ2FsbGVyeSB3aXRoIGxhdGVzdCBpbWFnZXMNCgkNCgkkZGIgPSYgJHRoaXMtPkdldERCKCk7CQ0KCSRxdWVyeSA9ICJTRUxFQ1QNCgkJCQkJCQlnMS4qLCBnMi5hY3RpdmUNCgkJCQkJCUZST00gDQoJCQkJCQkJIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZ2FsbGVyeSBnMQ0KCQkJCQkJTEVGVCBKT0lODQoJCQkJCQkJIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZ2FsbGVyeSBnMg0KCQkJCQkJT04NCgkJCQkJCQlnMS5nYWxsZXJ5aWQgPSBnMi5maWxlaWQNCgkJCQkJCVdIRVJFDQoJCQkJCQkJZzEuZmlsZW5hbWUgTk9UIExJS0UgJyUvJw0KCQkJCQkJCUFORCAoZzEuZ2FsbGVyeWlkPT8gT1IgZzEuZmlsZXBhdGggTElLRSA/KSI7DQoJU3dpdGNoICgkc2hvdykNCgl7DQoJCUNhc2UgJ2FjdGl2ZSc6IA0KCQkJJHF1ZXJ5IC49ICIgQU5EIGcxLmFjdGl2ZT0xIEFORCBnMi5hY3RpdmU9MSI7DQoJCQlicmVhazsNCgkJQ2FzZSAnaW5hY3RpdmUnOg0KCQkJJHF1ZXJ5IC49ICIgQU5EIGcxLmFjdGl2ZT0wIjsNCgkJCWJyZWFrOw0KCX0NCgkkcXVlcnkgLj0gIg0KCQkJCQkJT1JERVIgQlkNCgkJCQkJCQlmaWxlZGF0ZSBERVNDDQoJCQkJCQlMSU1JVCAwLD8iOw0KCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZ2FsbGVyeWluZm9bJ2ZpbGVpZCddLCAoZW1wdHkoJHBhcmFtc1snZGlyJ10pID8gJyUnIDogJHBhcmFtc1snZGlyJ10gLiAiLyUiKSwgJG51bWJlcikpOw0KCWlmICggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApIA0KCXsNCgkgICRvdXRwdXQgPSBhcnJheSgpOw0KCSAgd2hpbGUgKCAkcm93PSRyZXN1bHQtPkZldGNoUm93KCkgKSANCgkgIHsNCgkgICAgJG91dHB1dFt0cmltKCRyb3dbJ2ZpbGVwYXRoJ10gLiAnLycgLiAkcm93WydmaWxlbmFtZSddLCcvJyldID0gJHJvdzsNCgkgICAgDQoJCS8vIGNyZWF0ZSBhIG5ldyBvYmplY3QgZm9yIGV2ZXJ5IHJlY29yZCB0aGF0IHdlIHJldHJpZXZlDQoJCSRyZWMgPSBuZXcgc3RkQ2xhc3MoKTsNCgkJJHJlYy0+ZmlsZSA9IERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gc3RyX3JlcGxhY2UoJyUyRicsJy8nLHJhd3VybGVuY29kZSh0cmltKCRyb3dbJ2ZpbGVwYXRoJ10gLiAnLycgLiAkcm93WydmaWxlbmFtZSddLCcvJykpKTsNCgkJJHJlYy0+ZmlsZWRhdGUgPSAkcm93WydmaWxlZGF0ZSddOw0KCQkkcmVjLT50aXRsZSA9IGVtcHR5KCRyb3dbJ3RpdGxlJ10pID8gJHJvd1snZmlsZW5hbWUnXSA6ICRyb3dbJ3RpdGxlJ107DQoJCSRyZWMtPmNvbW1lbnQgPSAkcm93Wydjb21tZW50J107DQoJCWlmICggJGdhbGxlcnlpbmZvWyd0aHVtYndpZHRoJ10gPiAwICkNCgkJew0KCQkJJHJlYy0+dGh1bWIgPSAnbW9kdWxlcy9HYWxsZXJ5L3RodW1icy8nIC4gJGdhbGxlcnlpbmZvWydmaWxlaWQnXSAuICctJyAuICRyb3dbJ2ZpbGVpZCddIC4gc3Vic3RyKCRyb3dbJ2ZpbGVuYW1lJ10sIHN0cnJwb3MoJHJvd1snZmlsZW5hbWUnXSwgJy4nKSkgOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHJlYy0+dGh1bWIgPSBERUZBVUxUX0dBTExFUllfUEFUSCAuIChlbXB0eSgkcm93WydmaWxlcGF0aCddKSA/ICcnIDogJHJvd1snZmlsZXBhdGgnXSAuICcvJykgLiBJTV9QUkVGSVggLiAkcm93WydmaWxlbmFtZSddOw0KCQl9DQoJCSRyZWMtPmlzZGlyID0gZmFsc2U7DQoJCSRyZWMtPmZvbGRlcmxpbmsgPSAnJzsNCgkJJGl0ZW1jb3VudCsrOw0KCQkkaW1nY291bnQrKzsNCg0KCQlpZiAoICFmaWxlX2V4aXN0cygkcmVjLT50aHVtYikgKQ0KCQl7DQoJCQkkdGhpcy0+X0NyZWF0ZVRodW1ibmFpbCgkcmVjLT50aHVtYiwgDQoJCQkgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUX0dBTExFUllfUEFUSCAuIHRyaW0oJHJvd1snZmlsZXBhdGgnXSAuICcvJyAuICRyb3dbJ2ZpbGVuYW1lJ10sJy8nKSwNCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICgkZ2FsbGVyeWluZm9bJ3RodW1id2lkdGgnXSA+IDApID8gJGdhbGxlcnlpbmZvWyd0aHVtYndpZHRoJ10gOiA5NiwNCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICgkZ2FsbGVyeWluZm9bJ3RodW1id2lkdGgnXSA+IDApID8gJGdhbGxlcnlpbmZvWyd0aHVtYmhlaWdodCddIDogOTYsDQoJCQkgICAgICAgICAgICAgICAgICAgICAgICAoJGdhbGxlcnlpbmZvWyd0aHVtYndpZHRoJ10gPiAwKSA/ICRnYWxsZXJ5aW5mb1sncmVzaXplbWV0aG9kJ10gOiAnc2MnKTsJCQkJCQ0KCQl9DQoJCWFycmF5X3B1c2goJGltYWdlcywkcmVjKTsNCgkgIH0NCgl9DQp9DQplbHNlDQp7DQoJJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSA9ICJUaGUgZGlyZWN0b3J5ICciIC4gJHBhcmFtc1snZGlyJ10gLiAiJyBkb2VzIG5vdCBleGlzdC4gQ2hlY2sgeW91ciBwYXJhbWV0ZXJzLiI7DQp9DQoNCg0KLy8gRXhwb3NlIHRoZSBsaXN0IHRvIHNtYXJ0eS4gVXNlICJieV9yZWYiIHRvIHNhdmUgbWVtb3J5Lg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaW1hZ2VzJywkaW1hZ2VzKTsNCg0KLy8gYW5kIGEgY291bnQgb2YgcmVjb3Jkcw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZWNvdW50JywgJGltZ2NvdW50IC4gJyAnIC4gKCRpbWdjb3VudCA9PSAxID8gJHRoaXMtPkxhbmcoJ2ltYWdlJykgOiAkdGhpcy0+TGFuZygnaW1hZ2VzJykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgJGl0ZW1jb3VudCk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhZ2VzJywgMSk7DQoNCi8vIG5hdmlnYXRpb25saW5rcyBub3QgbmVzY2VzYXJ5LCBidXQgZGVmaW5lIHNtYXJ0eSB2YXJpYWJsZXMgZm9yIHRlbXBsYXRlcyB0aGF0IHVzZSB0aGVtDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywgJycpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsICcnKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFnZWxpbmtzJywgJycpOw0KDQoNCmlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKSkNCnsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKTsNCn0NCmVsc2UNCnsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywnJyk7DQp9DQoNCg0KLy8gRGlzcGxheSB0ZW1wbGF0ZQ0KJHRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfdGVtcGxhdGUnKTsNCmlmICggIWVtcHR5KCRnYWxsZXJ5aW5mb1sndGVtcGxhdGUnXSkgJiYgJGdhbGxlcnlpbmZvWyd0ZW1wbGF0ZSddICE9IFVTRV9ERUZBVUxUX1RFTVBMQVRFICkNCiAgew0KICAgICR0ZW1wbGF0ZSA9ICRnYWxsZXJ5aW5mb1sndGVtcGxhdGUnXTsNCiAgfQ0KaWYgKCBpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSApDQogIHsNCiAgICAkdGVtcGxhdGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZSddOw0KICB9DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOw0KDQoNCi8vIHBhc3MgZGF0YSB0byBoZWFkIHNlY3Rpb24uDQoNCi8vIGdldCB0ZW1wbGF0ZS1zcGVjaWZpYyBKYXZhU2NyaXB0IGFuZCBlY2hvDQokdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZSk7DQokdGVtcGxhdGVjb2RlYXJyID0gZXhwbG9kZShURU1QTEFURV9TRVBBUkFUT1IsICR0ZW1wbGF0ZWNvZGUpOw0KJHRlbXBsYXRlX21ldGFkYXRhID0gc3Vic3RyKCR0ZW1wbGF0ZWNvZGVhcnJbMl0sMCwtMik7DQoNCi8vIGNoZWNrIGlmIGEgY3NzIGZpbGUgZXhpc3RzIGFuZCBlY2hvDQppZiAoIGZpbGVfZXhpc3RzKCJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2Nzcy8iIC4gJHRlbXBsYXRlIC4gIi5jc3MiKSApDQp7DQoJJHRlbXBsYXRlX21ldGFkYXRhIC49ICc8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvY3NzLycgLiAkdGVtcGxhdGUgLiAnLmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+DQonOw0KfQ0KJHRoaXMtPkdhbGxlcnlNZXRhZGF0YSA9ICR0ZW1wbGF0ZV9tZXRhZGF0YTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.showrandom.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokaW5jbHVkZXN1YmRpciA9IHN1YnN0cigkcGFyYW1zWydkaXInXSwtMSkgPT0gIioiID8gVFJVRSA6IEZBTFNFOw0KJHBhcmFtc1snZGlyJ10gPSBpc3NldCgkcGFyYW1zWydkaXInXSkgPyByYXd1cmxkZWNvZGUoY21zX2h0bWxfZW50aXR5X2RlY29kZSh0cmltKHRyaW0oJHBhcmFtc1snZGlyJ10sIioiKSwiLyIpKSkgOiAnJzsNCiRzdGFydCA9IChpc3NldCgkcGFyYW1zWydzdGFydCddKSAmJiBpc19udW1lcmljKCRwYXJhbXNbJ3N0YXJ0J10pKSA/ICRwYXJhbXNbJ3N0YXJ0J10gOiAxOw0KJG51bWJlciA9IChpc3NldCgkcGFyYW1zWydudW1iZXInXSkgJiYgaXNfbnVtZXJpYygkcGFyYW1zWydudW1iZXInXSkpID8gJHBhcmFtc1snbnVtYmVyJ10gOiA2Ow0KJHNob3cgPSAoaXNzZXQoJHBhcmFtc1snc2hvdyddKSAmJiBpbl9hcnJheSgkcGFyYW1zWydzaG93J10sIGFycmF5KCdhY3RpdmUnLCdpbmFjdGl2ZScsJ2FsbCcpKSkgPyAkcGFyYW1zWydzaG93J10gOiAnYWN0aXZlJzsNCg0KJGltZ2NvdW50ID0gMDsNCiRpdGVtY291bnQgPSAwOw0KJGltYWdlcyA9IGFycmF5KCk7DQoNCmlmICggaXNfZGlyKERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gJHBhcmFtc1snZGlyJ10pICkNCnsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dhbGxlcnl0aXRsZScsIGh0bWxzcGVjaWFsY2hhcnModHJpbShzdWJzdHIoJHBhcmFtc1snZGlyJ10sIHN0cnJwb3MoJHBhcmFtc1snZGlyJ10sICcvJykpLCIvIikpKTsNCg0KCS8vIGdldCBnYWxsZXJ5IGluZm8NCgkkZ2FsbGVyeWluZm8gPSAkdGhpcy0+X0dldGdhbGxlcnlpbmZvKCRwYXJhbXNbJ2RpciddKTsNCg0KCWlmICggJGdhbGxlcnlpbmZvWydhY3RpdmUnXSA9PSAxICkNCgl7DQoJCWlmICggIWVtcHR5KCRnYWxsZXJ5aW5mb1sndGl0bGUnXSkgKQ0KCQl7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dhbGxlcnl0aXRsZScsICRnYWxsZXJ5aW5mb1sndGl0bGUnXSk7DQoJCX0NCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdnYWxsZXJ5Y29tbWVudCcsICRnYWxsZXJ5aW5mb1snY29tbWVudCddKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXJlbnRsaW5rJywgJycpOw0KCX0NCg0KDQoNCgkvLyBidWlsZCBnYWxsZXJ5IHdpdGggcmFuZG9tIGltYWdlcw0KCQ0KCSRkYiA9JiAkdGhpcy0+R2V0REIoKTsJDQoJJHF1ZXJ5ID0gIlNFTEVDVA0KCQkJCQkJCWcxLiosIGcyLmFjdGl2ZQ0KCQkJCQkJRlJPTSANCgkJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IGcxDQoJCQkJCQlMRUZUIEpPSU4NCgkJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IGcyDQoJCQkJCQlPTg0KCQkJCQkJCWcxLmdhbGxlcnlpZCA9IGcyLmZpbGVpZA0KCQkJCQkJV0hFUkUNCgkJCQkJCQlnMS5maWxlbmFtZSBOT1QgTElLRSAnJS8nIjsNCglpZiAoICRpbmNsdWRlc3ViZGlyICkNCgl7DQoJCSRxdWVyeSAuPSAiDQoJCQkJCQlBTkQgKGcxLmdhbGxlcnlpZD0/IE9SIGcxLmZpbGVwYXRoIExJS0UgPykiOw0KCX0NCgllbHNlew0KCQkkcXVlcnkgLj0gIg0KCQkJCQkJQU5EIChnMS5nYWxsZXJ5aWQ9PyBPUiBnMS5maWxlcGF0aCA9ID8pIjsNCgl9DQoJU3dpdGNoICgkc2hvdykNCgl7DQoJCUNhc2UgJ2FjdGl2ZSc6IA0KCQkJJHF1ZXJ5IC49ICIgQU5EIGcxLmFjdGl2ZT0xIEFORCBnMi5hY3RpdmU9MSI7DQoJCQlicmVhazsNCgkJQ2FzZSAnaW5hY3RpdmUnOg0KCQkJJHF1ZXJ5IC49ICIgQU5EIGcxLmFjdGl2ZT0wIjsNCgkJCWJyZWFrOw0KCX0NCgkkcXVlcnkgLj0gIg0KCQkJCQkJT1JERVIgQlkNCgkJCQkJCQlSQU5EKCkNCgkJCQkJCUxJTUlUIDAsPyI7DQoJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRnYWxsZXJ5aW5mb1snZmlsZWlkJ10sIChlbXB0eSgkcGFyYW1zWydkaXInXSkgPyAnJScgOiAkcGFyYW1zWydkaXInXSAuICIvJSIpLCAkbnVtYmVyKSk7DQoJaWYgKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkgDQoJew0KCSAgJG91dHB1dCA9IGFycmF5KCk7DQoJICB3aGlsZSAoICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSApIA0KCSAgew0KCSAgICAkb3V0cHV0W3RyaW0oJHJvd1snZmlsZXBhdGgnXSAuICcvJyAuICRyb3dbJ2ZpbGVuYW1lJ10sJy8nKV0gPSAkcm93Ow0KCSAgICANCgkJLy8gY3JlYXRlIGEgbmV3IG9iamVjdCBmb3IgZXZlcnkgcmVjb3JkIHRoYXQgd2UgcmV0cmlldmUNCgkJJHJlYyA9IG5ldyBzdGRDbGFzcygpOw0KCQkkcmVjLT5maWxlID0gREVGQVVMVF9HQUxMRVJZX1BBVEggLiBzdHJfcmVwbGFjZSgnJTJGJywnLycscmF3dXJsZW5jb2RlKHRyaW0oJHJvd1snZmlsZXBhdGgnXSAuICcvJyAuICRyb3dbJ2ZpbGVuYW1lJ10sJy8nKSkpOw0KCQkkcmVjLT5maWxlZGF0ZSA9ICRyb3dbJ2ZpbGVkYXRlJ107DQoJCSRyZWMtPnRpdGxlID0gZW1wdHkoJHJvd1sndGl0bGUnXSkgPyAkcm93WydmaWxlbmFtZSddIDogJHJvd1sndGl0bGUnXTsNCgkJJHJlYy0+Y29tbWVudCA9ICRyb3dbJ2NvbW1lbnQnXTsNCgkJaWYgKCAkZ2FsbGVyeWluZm9bJ3RodW1id2lkdGgnXSA+IDAgKQ0KCQl7DQoJCQkkcmVjLT50aHVtYiA9ICdtb2R1bGVzL0dhbGxlcnkvdGh1bWJzLycgLiAkZ2FsbGVyeWluZm9bJ2ZpbGVpZCddIC4gJy0nIC4gJHJvd1snZmlsZWlkJ10gLiBzdWJzdHIoJHJvd1snZmlsZW5hbWUnXSwgc3RycnBvcygkcm93WydmaWxlbmFtZSddLCAnLicpKSA7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkcmVjLT50aHVtYiA9IERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gKGVtcHR5KCRyb3dbJ2ZpbGVwYXRoJ10pID8gJycgOiAkcm93WydmaWxlcGF0aCddIC4gJy8nKSAuIElNX1BSRUZJWCAuICRyb3dbJ2ZpbGVuYW1lJ107DQoJCX0NCgkJJHJlYy0+aXNkaXIgPSBmYWxzZTsNCgkJJHJlYy0+Zm9sZGVybGluayA9ICcnOw0KCQkkaXRlbWNvdW50Kys7DQoJCSRpbWdjb3VudCsrOw0KDQoJCWlmICggIWZpbGVfZXhpc3RzKCRyZWMtPnRodW1iKSApDQoJCXsNCgkJCSR0aGlzLT5fQ3JlYXRlVGh1bWJuYWlsKCRyZWMtPnRodW1iLCANCgkJCSAgICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gdHJpbSgkcm93WydmaWxlcGF0aCddIC4gJy8nIC4gJHJvd1snZmlsZW5hbWUnXSwnLycpLA0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgKCRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddID4gMCkgPyAkZ2FsbGVyeWluZm9bJ3RodW1id2lkdGgnXSA6IDk2LA0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgKCRnYWxsZXJ5aW5mb1sndGh1bWJ3aWR0aCddID4gMCkgPyAkZ2FsbGVyeWluZm9bJ3RodW1iaGVpZ2h0J10gOiA5NiwNCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICgkZ2FsbGVyeWluZm9bJ3RodW1id2lkdGgnXSA+IDApID8gJGdhbGxlcnlpbmZvWydyZXNpemVtZXRob2QnXSA6ICdzYycpOw0KCQl9DQoJCWFycmF5X3B1c2goJGltYWdlcywkcmVjKTsNCgkgIH0NCgl9DQp9DQplbHNlDQp7DQoJJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSA9ICJUaGUgZGlyZWN0b3J5ICciIC4gJHBhcmFtc1snZGlyJ10gLiAiJyBkb2VzIG5vdCBleGlzdC4gQ2hlY2sgeW91ciBwYXJhbWV0ZXJzLiI7DQp9DQoNCg0KLy8gRXhwb3NlIHRoZSBsaXN0IHRvIHNtYXJ0eS4gVXNlICJieV9yZWYiIHRvIHNhdmUgbWVtb3J5Lg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaW1hZ2VzJywkaW1hZ2VzKTsNCg0KLy8gYW5kIGEgY291bnQgb2YgcmVjb3Jkcw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZWNvdW50JywgJGltZ2NvdW50IC4gJyAnIC4gKCRpbWdjb3VudCA9PSAxID8gJHRoaXMtPkxhbmcoJ2ltYWdlJykgOiAkdGhpcy0+TGFuZygnaW1hZ2VzJykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgJGl0ZW1jb3VudCk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhZ2VzJywgMSk7DQoNCi8vIG5hdmlnYXRpb25saW5rcyBub3QgbmVzY2VzYXJ5LCBidXQgZGVmaW5lIHNtYXJ0eSB2YXJpYWJsZXMgZm9yIHRlbXBsYXRlcyB0aGF0IHVzZSB0aGVtDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywgJycpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsICcnKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFnZWxpbmtzJywgJycpOw0KDQoNCmlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKSkNCnsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKTsNCn0NCmVsc2UNCnsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywnJyk7DQp9DQoNCg0KLy8gRGlzcGxheSB0ZW1wbGF0ZQ0KJHRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfdGVtcGxhdGUnKTsNCmlmICggIWVtcHR5KCRnYWxsZXJ5aW5mb1sndGVtcGxhdGUnXSkgJiYgJGdhbGxlcnlpbmZvWyd0ZW1wbGF0ZSddICE9IFVTRV9ERUZBVUxUX1RFTVBMQVRFICkNCiAgew0KICAgICR0ZW1wbGF0ZSA9ICRnYWxsZXJ5aW5mb1sndGVtcGxhdGUnXTsNCiAgfQ0KaWYgKCBpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSApDQogIHsNCiAgICAkdGVtcGxhdGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZSddOw0KICB9DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOw0KDQoNCi8vIHBhc3MgZGF0YSB0byBoZWFkIHNlY3Rpb24uDQoNCi8vIGdldCB0ZW1wbGF0ZS1zcGVjaWZpYyBKYXZhU2NyaXB0IGFuZCBlY2hvDQokdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZSk7DQokdGVtcGxhdGVjb2RlYXJyID0gZXhwbG9kZShURU1QTEFURV9TRVBBUkFUT1IsICR0ZW1wbGF0ZWNvZGUpOw0KJHRlbXBsYXRlX21ldGFkYXRhID0gc3Vic3RyKCR0ZW1wbGF0ZWNvZGVhcnJbMl0sMCwtMik7DQoNCi8vIGNoZWNrIGlmIGEgY3NzIGZpbGUgZXhpc3RzIGFuZCBlY2hvDQppZiAoIGZpbGVfZXhpc3RzKCJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2Nzcy8iIC4gJHRlbXBsYXRlIC4gIi5jc3MiKSApDQp7DQoJJHRlbXBsYXRlX21ldGFkYXRhIC49ICc8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvY3NzLycgLiAkdGVtcGxhdGUgLiAnLmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+DQonOw0KfQ0KJHRoaXMtPkdhbGxlcnlNZXRhZGF0YSA9ICR0ZW1wbGF0ZV9tZXRhZGF0YTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.switchactive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQovLyBDaGVjayBwZXJtaXNzaW9ucw0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgR2FsbGVyeScpICkNCnsNCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7DQoJcmV0dXJuOw0KfQ0KDQokZmlsZV9pZCA9ICcnOw0KaWYgKCBpc3NldCgkcGFyYW1zWydmaWQnXSkgKQ0Kew0KCSRmaWxlX2lkID0gJHBhcmFtc1snZmlkJ107DQp9DQoNCg0KJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IFNFVCBhY3RpdmUgPSBhY3RpdmVeMSBXSEVSRSBmaWxlaWQgPSA/IjsNCiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWxlX2lkKSk7DQoNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICRwYXJhbXNbJ29yaWdhY3Rpb24nXSAsICRyZXR1cm5pZCwgJHBhcmFtcyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.switchdefault.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQovLyBDaGVjayBwZXJtaXNzaW9ucw0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgR2FsbGVyeScpICkNCnsNCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7DQoJcmV0dXJuOw0KfQ0KDQokZmlsZV9pZCA9IGlzc2V0KCRwYXJhbXNbJ2ZpZCddKSA/ICRwYXJhbXNbJ2ZpZCddIDogJyc7DQokZ2FsbGVyeSA9IGlzc2V0KCRwYXJhbXNbJ2dpZCddKSA/ICRwYXJhbXNbJ2dpZCddIDogJyc7DQoNCiRxdWVyeSA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZ2FsbGVyeSBTRVQgZGVmYXVsdGZpbGUgPSA/IFdIRVJFIGZpbGVpZCA9ID8iOw0KJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpbGVfaWQsJGdhbGxlcnkpKTsNCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2VkaXRnYWxsZXJ5JyAsICRyZXR1cm5pZCwgJHBhcmFtcyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.switchdefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCggJGdDbXMgKSApIGV4aXQoKTsKCgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApCiAgewoJCSRwYXJhbXMgPSBhcnJheSgnZXJyb3JzJz0+ICdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnLCAnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicgLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X3RlbXBsYXRlJywkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicgLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGVzJykpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_galleriestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiR0aGVtZU9iamVjdCA9JiAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ107DQokdGhpcy0+X1VwZGF0ZUdhbGxlcnlEQignJywxKTsNCiRnYWxsZXJpZXMgPSAkdGhpcy0+X0dldEdhbGxlcmllcygpOw0KDQokc2hvd2dhbGxlcmllcyA9IGFycmF5KCk7DQppZiAoIGVtcHR5KCRnYWxsZXJpZXMpICkNCnsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vZ2FsbGVyaWVzdGV4dCcsICR0aGlzLT5sYW5nKCJub2dhbGxlcmllc3RleHQiKSk7DQp9IA0KZWxzZSANCnsNCglmb3JlYWNoICgkZ2FsbGVyaWVzIGFzICRnYWxsZXJ5KSANCgl7DQoJCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsNCg0KCQkkb25lcm93LT5maWxlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGdhbGxlcnknLCAkcmV0dXJuaWQsIChlbXB0eSgkZ2FsbGVyeVsnZmlsZXBhdGgnXSkgPyAnJyA6ICRnYWxsZXJ5WydmaWxlcGF0aCddIC4gJy8nKSAuICRnYWxsZXJ5WydmaWxlbmFtZSddLCBhcnJheSgnZ2lkJz0+JGdhbGxlcnlbJ2ZpbGVpZCddLCdtb2RlJz0+ImVkaXQiKSk7DQoNCgkJaWYgKCAkZ2FsbGVyeVsnYWN0aXZlJ10gKSANCiAgICB7DQoJCQkkYWN0aXZlaW1hZ2UgPSAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJHRoaXMtPkxhbmcoJ3NldGZhbHNlJyksJycsJycsJ3N5c3RlbWljb24nKTsNCgkJfSANCiAgICBlbHNlIA0KICAgIHsNCgkJCSRhY3RpdmVpbWFnZSA9ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJHRoaXMtPkxhbmcoJ3NldHRydWUnKSwnJywnJywnc3lzdGVtaWNvbicpOw0KCQl9DQoJCSRvbmVyb3ctPmFjdGl2ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdzd2l0Y2hhY3RpdmUnLCAkcmV0dXJuaWQsICRhY3RpdmVpbWFnZSwgYXJyYXkoJ2ZpZCcgPT4gJGdhbGxlcnlbJ2ZpbGVpZCddLCAnb3JpZ2FjdGlvbicgPT4gJ2RlZmF1bHRhZG1pbicpKTsNCg0KCQkkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRnYWxsZXJ5JywgJHJldHVybmlkLA0KCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXRnYWxsZXJ5JyksJycsJycsJ3N5c3RlbWljb24nKSwNCgkJYXJyYXkoJ2dpZCcgPT4gJGdhbGxlcnlbJ2ZpbGVpZCddLCdtb2RlJz0+ImVkaXQiKSk7DQoNCgkJaWYgKCBpc19kaXIoJy4uLycgLiBERUZBVUxUX0dBTExFUllfUEFUSCAuIChlbXB0eSgkZ2FsbGVyeVsnZmlsZXBhdGgnXSkgPyAnJyA6ICRnYWxsZXJ5WydmaWxlcGF0aCddIC4gJy8nKSAuICRnYWxsZXJ5WydmaWxlbmFtZSddKSB8fCAkZ2FsbGVyeVsnZmlsZWlkJ10gPT0gMSApDQoJCXsNCgkJYXJyYXlfcHVzaCgkc2hvd2dhbGxlcmllcywgJG9uZXJvdyk7DQoJfQ0KCQllbHNlDQoJCXsNCgkJCS8vIGRlbGV0ZSBkaXJlY3RvcnkgYW5kIGFsbCBvZiBpdHMgY29udGVudHMgZnJvbSB0aGUgZGF0YWJhc2UNCgkJCSR0aGlzLT5fRGVsZXRlR2FsbGVyeURCKChlbXB0eSgkZ2FsbGVyeVsnZmlsZXBhdGgnXSkgPyAnJyA6ICRnYWxsZXJ5WydmaWxlcGF0aCddIC4gJy8nKSAuICRnYWxsZXJ5WydmaWxlbmFtZSddLCAkZ2FsbGVyeVsnZmlsZWlkJ10pOw0KCQl9DQoJfQ0KDQp9DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJHNob3dnYWxsZXJpZXMpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkc2hvd2dhbGxlcmllcykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdnYWxsZXJ5cGF0aCcsICR0aGlzLT5MYW5nKCdnYWxsZXJ5cGF0aCcpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYWN0aXZlJywgJHRoaXMtPkxhbmcoJ2FjdGl2ZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYWN0aW9ucycsICR0aGlzLT5MYW5nKCdhY3Rpb25zJykpOw0KDQokbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRnYWxsZXJ5JywgMCwgJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGdhbGxlcnknKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGdhbGxlcnknLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCJhZGRnYWxsZXJ5IiksIGFycmF5KCJtb2RlIj0+ImFkZCIpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkbGluayk7DQoNCg0KLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZG1pbmdhbGxlcmllcy50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_optionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KICAvLyBDcmVhdGVGb3JtU3RhcnQgc2V0cyB1cCBhIHByb3BlciBmb3JtIHRhZyB0aGF0IHdpbGwgY2F1c2UgdGhlIHN1Ym1pdCB0bw0KICAvLyByZXR1cm4gY29udHJvbCB0byB0aGlzIG1vZHVsZSBmb3IgcHJvY2Vzc2luZy4NCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fdXBkYXRlb3B0aW9ucycsICRyZXR1cm5pZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2FsbG93ZWRfZXh0ZW5zaW9ucycsJHRoaXMtPkxhbmcoJ2FsbG93ZWRfZXh0ZW5zaW9ucycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxsb3dlZF9leHRlbnNpb25zJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYWxsb3dlZF9leHRlbnNpb25zJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9leHRlbnNpb25zJywnJyksNTAsMjU1KSk7DQoNCiRzbWFydHktPmFzc2lnbigndXNlX2NvbW1lbnRfd3lzaXd5ZycsJHRoaXMtPkxhbmcoJ3VzZV9jb21tZW50X3d5c2l3eWcnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZV9jb21tZW50X3d5c2l3eWcnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICd1c2VfY29tbWVudF93eXNpd3lnJywgJzEnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX2NvbW1lbnRfd3lzaXd5ZycsMSkpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ29wdGlvbnNzdWJtaXRidXR0b24nLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsNCg0KLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZG1pbm9wdGlvbnMudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_templatestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJGZhbHNlaW1hZ2UxID0gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCdtYWtlIGRlZmF1bHQnLCcnLCcnLCdzeXN0ZW1pY29uJyk7DQokdHJ1ZWltYWdlMSA9ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCdkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KDQokYWxsdGVtcGxhdGVzID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsNCiRyb3dhcnJheSA9IGFycmF5KCk7DQokcm93Y2xhc3MgPSAncm93MSc7DQoNCmZvcmVhY2goICRhbGx0ZW1wbGF0ZXMgYXMgJG9uZXRlbXBsYXRlICkNCnsNCgkkdG1wID0gJG9uZXRlbXBsYXRlOw0KCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsNCgkkcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkkdG1wLCBhcnJheSgndGVtcGxhdGUnID0+ICR0bXAsICdtb2RlJz0+J2VkaXQnKSk7DQoJJHJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7DQoJDQoJJGRlZmF1bHQgPSAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfdGVtcGxhdGUnKSA9PSAkdG1wKSA/IHRydWUgOiBmYWxzZTsNCglpZiggJGRlZmF1bHQgKQ0KCXsNCgkJJHJvdy0+ZGVmYXVsdCA9ICR0cnVlaW1hZ2UxOw0KCX0NCgllbHNlDQoJew0KCQkkcm93LT5kZWZhdWx0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ3N3aXRjaGRlZmF1bHR0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkgICAgICAgJGZhbHNlaW1hZ2UxLA0KCQkJCSAgICAgICBhcnJheSgndGVtcGxhdGUnPT4kdG1wKSk7DQoJfQ0KDQoJJHJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLA0KCQkJCSAgICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPg0KCQkJCSAgICBEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLA0KCQkJCQkJICAkdGhpcy0+TGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLA0KCQkJCSAgICBhcnJheSAoJ3RlbXBsYXRlJyA9PiAkdG1wLCAnbW9kZSc9PidlZGl0JykpOw0KCQ0KCSRyb3ctPmNvcHlsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkgICAgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4NCgkJCQkgICAgRGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2NvcHkuZ2lmJywNCgkJCQkJCSAgJHRoaXMtPkxhbmcgKCdjb3B5JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwNCgkJCQkgICAgYXJyYXkgKCd0ZW1wbGF0ZScgPT4gJHRtcCwgJ21vZGUnPT4nYWRkJykpOw0KCQ0KCSR0bXAgPSAiZGVmYXVsdCI7DQoJaWYoICgkb25ldGVtcGxhdGUgPT0gJHRtcCkgfHwgJGRlZmF1bHQgKQ0KCXsNCgkJJHJvdy0+ZGVsZXRlbGluayA9ICcmbmJzcDsnOw0KCX0NCgllbHNlDQoJew0KCQkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZXRlbXBsYXRlJywgJHJldHVybmlkLA0KCQkJCQkgICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+DQoJCQkJCSAgRGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLA0KCQkJCQkJCSR0aGlzLT5MYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwNCgkJCQkJICBhcnJheSAoJ3RlbXBsYXRlJyA9PiAkb25ldGVtcGxhdGUpLA0KCQkJCQkgICR0aGlzLT5MYW5nICgnYXJleW91c3VyZScpKTsNCgl9DQoNCglhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOw0KCSgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsNCn0NCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRyb3dhcnJheSApOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1lcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3Byb21wdF9uYW1lJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0cHJvbXB0JywgJHRoaXMtPkxhbmcoJ3Byb21wdF9kZWZhdWx0JykpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld3RlbXBsYXRlbGluaycsDQoJICAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLA0KCQkJICAgICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygncHJvbXB0X25ld3RlbXBsYXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwNCgkJCSAgICAgYXJyYXkoJ21vZGUnID0+ICdhZGQnLA0KCQkJCSAgICdkZWZhdWx0dGVtcGxhdGVwcmVmJyA9PiAnZGVmYXVsdF90ZW1wbGF0ZV9jb250ZW50cycpLA0KCQkJICAgICAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLg0KDQoJICAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLA0KCQkJICAgICAkdGhpcy0+TGFuZygncHJvbXB0X25ld3RlbXBsYXRlJyksDQoJCQkgICAgIGFycmF5KCdtb2RlJyA9PiAnYWRkJywNCgkJCQkgICAnZGVmYXVsdHRlbXBsYXRlcHJlZicgPT4gJ2RlZmF1bHRfdGVtcGxhdGVfY29udGVudHMnDQoJCQkJICAgKSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnRlbXBsYXRlcy50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/Gallery.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogR2FsbGVyeQ0KIyBWZXJzaW9uOiAxLjAuMywgSm9zDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZ2FsbGVyeS8NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KZGVmaW5lKCdERUZBVUxUX0dBTExFUllfUEFUSCcsICJ1cGxvYWRzL2ltYWdlcy9HYWxsZXJ5LyIpOw0KZGVmaW5lKCdJTV9QUkVGSVgnLCAidGh1bWJfIik7ICAgLy8gJElNQ29uZmlnWyd0aHVtYm5haWxfcHJlZml4J10NCmRlZmluZSgnVVNFX0RFRkFVTFRfVEVNUExBVEUnLCAidXNlZGVmYXVsdHRlbXBsYXRlIik7DQpkZWZpbmUoJ1RFTVBMQVRFX1NFUEFSQVRPUicsICJ7Ki0tLS0tLS0tLS0iKTsNCg0KDQpjbGFzcyBHYWxsZXJ5IGV4dGVuZHMgQ01TTW9kdWxlDQp7DQogIA0KICBmdW5jdGlvbiBHZXROYW1lKCkNCiAgew0KICAgIHJldHVybiAnR2FsbGVyeSc7DQogIH0NCiAgDQogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOw0KICB9DQoNCiAgDQogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQ0KICB7DQogICAgcmV0dXJuICcxLjAuMyc7DQogIH0NCiAgDQogIGZ1bmN0aW9uIEdldEhlbHAoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIEdldEF1dGhvcigpDQogIHsNCiAgICByZXR1cm4gJ0pvcyc7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpDQogIHsNCiAgICByZXR1cm4gJ2pvc3ZkQGxpdmUubmwnOw0KICB9DQogIA0KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQ0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCg0KICBmdW5jdGlvbiBIYXNBZG1pbigpDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpDQogIHsNCiAgICByZXR1cm4gJ2NvbnRlbnQnOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7DQogIH0NCg0KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBHYWxsZXJ5Jyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBHZXREZXBlbmRlbmNpZXMoKQ0KICAgKiByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOw0KICAgKi8NCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkNCiAgew0KICAgIHJldHVybiBhcnJheSgpOw0KICB9DQoNCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQ0KICB7DQogICAgcmV0dXJuICIxLjYiOw0KICB9DQogIA0KICAgLyoNCiAgZnVuY3Rpb24gTWF4aW11bUNNU1ZlcnNpb24oKQ0KICB7DQogICAgcmV0dXJuICIxLjk5IjsNCiAgfQ0KICAqLw0KDQogIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQ0KICB7DQoJICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsNCg0KCSAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOw0KCSAgDQoJICAvLyBzeW50YXggZm9yIGNyZWF0aW5nIGEgcGFyYW1ldGVyIGlzIHBhcmFtZXRlciBuYW1lLCBkZWZhdWx0IHZhbHVlLCBkZXNjcmlwdGlvbg0KCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZGlyJywgJ3N1YjEvc3ViMicsICR0aGlzLT5MYW5nKCdoZWxwX2RpcicpKTsNCgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkaXInLENMRUFOX1NUUklORyk7DQoNCgkgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3RlbXBsYXRlJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX3RlbXBsYXRlJykpOw0KCSAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOw0KDQoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdudW1iZXInLCAnMTAwJywgJHRoaXMtPkxhbmcoJ2hlbHBfbnVtYmVyJykpOw0KCSAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ251bWJlcicsQ0xFQU5fSU5UKTsNCg0KCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3RhcnQnLCAnMScsICR0aGlzLT5MYW5nKCdoZWxwX3N0YXJ0JykpOw0KCSAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N0YXJ0JyxDTEVBTl9JTlQpOw0KDQoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93JywgJ2FsbCcsICR0aGlzLT5MYW5nKCdoZWxwX3Nob3cnKSk7DQoJICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvdycsQ0xFQU5fU1RSSU5HKTsNCi8qDQoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeScsICcnLCAkdGhpcy0+TGFuZygnaGVscF9jYXRlZ29yeScpKTsNCgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeScsQ0xFQU5fU1RSSU5HKTsNCiovDQoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpb24nLCAnZGVmYXVsdCcsICR0aGlzLT5MYW5nKCdoZWxwX2FjdGlvbicpKTsNCgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhY3Rpb24nLENMRUFOX1NUUklORyk7DQoNCgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmaWQnLENMRUFOX0lOVCk7DQoJICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZ2lkJyxDTEVBTl9JTlQpOw0KICANCgkgIC8vIFByZXR0eSB1cmwgcm91dGUgZm9yIHZpZXdpbmcgYSBnYWxsZXJ5DQoJICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL2dhbGxlcnlcLyg/UDxkaXI+KC4qXC8pKykoP1A8c3RhcnQ+WzAtOV0rKVwvKD9QPG51bWJlcj5bMC05XSspXC8oP1A8c2hvdz5bYS16QS1aXSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJywgYXJyYXkoJ2FjdGlvbic9PidkZWZhdWx0JykpOw0KCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9nYWxsZXJ5XC8oP1A8ZGlyPiguKlwvKSspKD9QPHN0YXJ0PlswLTldKylcLyg/UDxudW1iZXI+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycsIGFycmF5KCdhY3Rpb24nPT4nZGVmYXVsdCcpKTsNCgkgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvZ2FsbGVyeVwvKD9QPGRpcj4oLipcLykrKSg/UDxyZXR1cm5pZD5bMC05XSspJC8nLCBhcnJheSgnYWN0aW9uJz0+J2RlZmF1bHQnKSk7DQoNCiAgfQ0KICANCglmdW5jdGlvbiBDb250ZW50UG9zdFJlbmRlcigmJGNvbnRlbnQpIHsNCgkgICRwb3MgPSBzdHJpcG9zKCRjb250ZW50LCI8L2hlYWQiKTsNCgkgIGlmKCAkcG9zICE9PSBGQUxTRSAmJiBpc3NldCgkdGhpcy0+R2FsbGVyeU1ldGFkYXRhKSApIA0KCSAgew0KCQkgICRjb250ZW50ID0gc3Vic3RyKCRjb250ZW50LCAwLCAkcG9zKSAuICR0aGlzLT5HYWxsZXJ5TWV0YWRhdGEgLiBzdWJzdHIoJGNvbnRlbnQsICRwb3MpOw0KCQl9DQoJICByZXR1cm4gJGNvbnRlbnQ7DQoJfQ0KCQ0KICAvKioNCiAgICogR2V0RXZlbnREZXNjcmlwdGlvbigpDQogICAqIElmIHlvdXIgbW9kdWxlIGNhbiBjcmVhdGUgZXZlbnRzLCB5b3Ugd2lsbCBuZWVkDQogICAqIHRvIHByb3ZpZGUgdGhlIEFQSSB3aXRoIGRvY3VtZW50YXRpb24gb2Ygd2hhdA0KICAgKiB0aGF0IGV2ZW50IGRvZXMuIFRoaXMgbWV0aG9kIHdyYXBzIHVwIGEgc2ltcGxlDQogICAqIHJldHVybiBvZiB0aGUgbG9jYWxpemVkIGRlc2NyaXB0aW9uLg0KICAgKiBAcGFyYW0gc3RyaW5nIEV2ZW50bmFtZQ0KICAgKiBAcmV0dXJuIHN0cmluZyBEZXNjcmlwdGlvbiBmb3IgZXZlbnQgDQogICAqLw0KICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uICggJGV2ZW50bmFtZSApDQogIHsNCiAgICByZXR1cm47IC8vICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOw0KICB9DQogIA0KICAvKioNCiAgICogR2V0RXZlbnRIZWxwKCkNCiAgICogSWYgeW91ciBtb2R1bGUgY2FuIGNyZWF0ZSBldmVudHMsIHlvdSB3aWxsIG5lZWQNCiAgICogdG8gcHJvdmlkZSB0aGUgQVBJIHdpdGggZG9jdW1lbnRhdGlvbiBvZiBob3cgdG8NCiAgICogdXNlIHRoZSBldmVudC4gVGhpcyBtZXRob2Qgd3JhcHMgdXAgYSBzaW1wbGUNCiAgICogcmV0dXJuIG9mIHRoZSBsb2NhbGl6ZWQgZGVzY3JpcHRpb24uDQogICAqIEBwYXJhbSBzdHJpbmcgRXZlbnRuYW1lDQogICAqIEByZXR1cm4gc3RyaW5nIEhlbHAgZm9yIGV2ZW50DQogICAqLw0KICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkNCiAgew0KICAgIHJldHVybjsgLy8gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7DQogIH0NCg0KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOw0KICB9DQoNCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7DQogIH0NCg0KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOw0KICB9DQoNCg0KDQogIA0KICAvKioNCiAgICogR2FsbGVyeSBtZXRob2RzIA0KICAgKi8NCg0KCWZ1bmN0aW9uIF9HZXRkaXJmaWxlcygkcGF0aCwkcmVjdXJzaXZlKQ0KCXsNCgkJJHBhdGggPSBlbXB0eSgkcGF0aCkgPyAnJyA6IHRyaW0oJHBhdGgsIi8iKSAuICcvJzsNCgkJJHVwZGlyID0gaXNfZGlyKERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gJHBhdGgpID8gJycgOiAnLi4vJzsNCgkJJGFsbG93ZXh0ID0gZXhwbG9kZSgnLCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2V4dGVuc2lvbnMnLCcnKSk7DQoNCgkJaWYgKCAkaGFuZGxlID0gb3BlbmRpcihzdHJfcmVwbGFjZSgnLycsRElSRUNUT1JZX1NFUEFSQVRPUiwkdXBkaXIgLiBERUZBVUxUX0dBTExFUllfUEFUSCAuICRwYXRoKSkgKQ0KCQl7DQoJCQl3aGlsZSAoIGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSApDQoJCQl7DQoJCQkJJGV4dCA9IHN1YnN0cigkZmlsZSwgc3RycnBvcygkZmlsZSwgJy4nKSArIDEpOw0KCQkJCWlmICggJGZpbGUgIT0gIi4iICYmICRmaWxlICE9ICIuLiIgJiYgc3Vic3RyKCRmaWxlLDAsc3RybGVuKElNX1BSRUZJWCkpICE9IElNX1BSRUZJWCAmJiAoaW5fYXJyYXkoc3RydG9sb3dlcigkZXh0KSwkYWxsb3dleHQpIHx8IGlzX2RpcigkdXBkaXIgLiBERUZBVUxUX0dBTExFUllfUEFUSCAuICRwYXRoIC4gJGZpbGUpKSApIA0KCQkJCXsNCgkJCQkJJG91dHB1dFskcGF0aCAuICRmaWxlXSA9IGFycmF5KA0KCQkJCQkJJ2ZpbGVuYW1lJyA9PiBpc19kaXIoJHVwZGlyIC4gREVGQVVMVF9HQUxMRVJZX1BBVEggLiAkcGF0aCAuICRmaWxlKSA/ICRmaWxlIC4gJy8nIDogJGZpbGUsDQoJCQkJCQknZmlsZXBhdGgnID0+IHRyaW0oJHBhdGgsIi8iKSwNCgkJCQkJCSdmaWxlbWRhdGUnID0+IGRhdGUoIlktbS1kIEg6aTpzIiwgZmlsZW10aW1lKCR1cGRpciAuIERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gJHBhdGggLiAkZmlsZSkpLA0KCQkJCQkpOw0KCQkJCQlpZiAoICRyZWN1cnNpdmUgJiYgaXNfZGlyKCR1cGRpciAuIERFRkFVTFRfR0FMTEVSWV9QQVRIIC4gJHBhdGggLiAkZmlsZSkgKQ0KCQkJCQl7DQoJCQkJCQkkb3V0cHV0ID0gYXJyYXlfbWVyZ2UoJG91dHB1dCwkdGhpcy0+X0dldGRpcmZpbGVzKCRwYXRoIC4gJGZpbGUsJHJlY3Vyc2l2ZSkpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJY2xvc2VkaXIoJGhhbmRsZSk7DQoJCX0NCgkJcmV0dXJuIGlzc2V0KCRvdXRwdXQpID8gJG91dHB1dCA6IEZBTFNFOw0KCX0NCg0KDQoJZnVuY3Rpb24gX0dldGdhbGxlcnlmaWxlcygkcGF0aCkgDQoJew0KCQkkcGF0aCA9IHRyaW0oJHBhdGgsIi8iKTsNCgkJDQoJCSRkYiA9JiAkdGhpcy0+R2V0REIoKTsJDQoJCSRxdWVyeSA9ICJTRUxFQ1QNCgkJCQkJCQkJZzEuKiwgQ09OQ0FUKGcyLmZpbGVwYXRoLD8sZzIuZmlsZW5hbWUpIEFTIHRodW1iDQoJCQkJCQkJRlJPTSANCgkJCQkJCQkJIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZ2FsbGVyeSBnMQ0KCQkJCQkJCUxFRlQgSk9JTg0KCQkJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IGcyDQoJCQkJCQkJT04NCgkJCQkJCQkJZzEuZGVmYXVsdGZpbGUgPSBnMi5maWxlaWQNCgkJCQkJCQlXSEVSRQ0KCQkJCQkJCQlnMS5maWxlcGF0aD0/IjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCcvJy5JTV9QUkVGSVgsJHBhdGgpKTsNCgkJaWYgKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkgDQoJCXsNCgkJICAkb3V0cHV0ID0gYXJyYXkoKTsNCgkJICB3aGlsZSAoICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSApIA0KCQkgIHsNCgkJICAgICRvdXRwdXRbdHJpbSgkcm93WydmaWxlcGF0aCddIC4gJy8nIC4gJHJvd1snZmlsZW5hbWUnXSwnLycpXSA9ICRyb3c7DQoJCSAgfQ0KCQl9DQoJCWlmICggISRyZXN1bHQgKQ0KCQl7DQoJCQllY2hvIG15c3FsX2Vycm9yKCk7DQoJCQlleGl0KCk7DQoJCX0NCgkJcmV0dXJuIGlzc2V0KCRvdXRwdXQpID8gJG91dHB1dCA6IEZBTFNFOw0KCX0NCg0KDQoJZnVuY3Rpb24gX0dldEdhbGxlcmllcygpIA0KCXsNCgkJJGRiID0mICR0aGlzLT5HZXREQigpOwkNCgkJJHF1ZXJ5ID0gIlNFTEVDVA0KCQkJCQkJCQlnMS4qLCBDT05DQVQoZzIuZmlsZXBhdGgsPyxnMi5maWxlbmFtZSkgQVMgdGh1bWINCgkJCQkJCQlGUk9NIA0KCQkJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IGcxDQoJCQkJCQkJTEVGVCBKT0lODQoJCQkJCQkJCSIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2dhbGxlcnkgZzINCgkJCQkJCQlPTg0KCQkJCQkJCQlnMS5kZWZhdWx0ZmlsZSA9IGcyLmZpbGVpZA0KCQkJCQkJCVdIRVJFDQoJCQkJCQkJCWcxLmZpbGVuYW1lIExJS0UgJyUvJw0KCQkJCQkJCU9SREVSIEJZDQoJCQkJCQkJCWcxLmZpbGVvcmRlciBBU0MsDQoJCQkJCQkJCUNPTkNBVChnMS5maWxlcGF0aCxDQVNUKElGKGcxLmZpbGVwYXRoPScnLCcnLCcvJykgQVMgQklOQVJZKSxnMS5maWxlbmFtZSkgQVNDIjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCcvJy5JTV9QUkVGSVgpKTsNCgkJaWYgKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkgDQoJCXsNCgkJICAkb3V0cHV0ID0gYXJyYXkoKTsNCgkJICB3aGlsZSAoICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSApIA0KCQkgIHsNCgkJICAgICRvdXRwdXRbJHJvd1snZmlsZWlkJ11dID0gJHJvdzsNCgkJICB9DQoJCX0NCgkJaWYgKCAhJHJlc3VsdCApDQoJCXsNCgkJCWVjaG8gbXlzcWxfZXJyb3IoKTsNCgkJCWV4aXQoKTsNCgkJfQ0KCQlyZXR1cm4gaXNzZXQoJG91dHB1dCkgPyAkb3V0cHV0IDogRkFMU0U7DQoJfQ0KDQoNCglmdW5jdGlvbiBfR2V0Z2FsbGVyeWluZm8oJHBhdGgpDQoJew0KCQkkcGF0aCA9IHRyaW0oJHBhdGgsIi8iKTsNCgkJaWYoIHN0cnBvcygkcGF0aCwiLyIpID09PSBGQUxTRSApDQoJCXsNCgkJCSRmaWxlbmFtZSA9IGVtcHR5KCRwYXRoKSA/ICAnR2FsbGVyeS8nIDogJHBhdGggLiAnLyc7DQoJCQkkZmlsZXBhdGggPSAnJzsNCgkJDQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkZmlsZW5hbWUgPSBzdWJzdHIoJHBhdGgsIHN0cnJwb3MoJHBhdGgsICcvJykgKyAxKSAuICcvJzsNCgkJCSRmaWxlcGF0aCA9IHN1YnN0cigkcGF0aCwgMCwgc3RycnBvcygkcGF0aCwgJy8nKSk7DQoJCX0NCgkJJGRiID0mICR0aGlzLT5HZXREQigpOwkNCgkJJHF1ZXJ5ID0gIlNFTEVDVCBnLiosIGdwLnRlbXBsYXRlLCBncC50aHVtYndpZHRoLCBncC50aHVtYmhlaWdodCwgZ3AucmVzaXplbWV0aG9kIA0KCQkJCUZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZ2FsbGVyeSBnDQoJCQkJTEVGVCBKT0lOICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2dhbGxlcnlfcHJvcHMgZ3ANCgkJCQlPTiBnLmZpbGVpZD1ncC5maWxlaWQNCgkJCQlXSEVSRSBmaWxlbmFtZT0/IEFORCBmaWxlcGF0aD0/IjsNCgkJJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmlsZW5hbWUsJGZpbGVwYXRoKSk7DQoNCgkJaWYoICRyZXN1bHQgJiYgJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDAgKQ0KCQl7DQoJCQkkb3V0cHV0ID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCgkJfQ0KCQlpZiAoICEkcmVzdWx0ICkNCgkJew0KCQkJZWNobyBteXNxbF9lcnJvcigpOw0KCQkJZXhpdCgpOw0KCQl9DQoJCXJldHVybiBpc3NldCgkb3V0cHV0KSA/ICRvdXRwdXQgOiBGQUxTRTsNCgl9DQoNCg0KCWZ1bmN0aW9uIF9HZXRnYWxsZXJ5aW5mb2J5aWQoJGdpZCkNCgl7DQoJCSRkYiA9JiAkdGhpcy0+R2V0REIoKTsJDQoJCSRxdWVyeSA9ICJTRUxFQ1QgZy4qLCBncC50ZW1wbGF0ZSwgZ3AudGh1bWJ3aWR0aCwgZ3AudGh1bWJoZWlnaHQsIGdwLnJlc2l6ZW1ldGhvZCANCgkJCQlGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2dhbGxlcnkgZw0KCQkJCUxFRlQgSk9JTiAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIGdwDQoJCQkJT04gZy5maWxlaWQ9Z3AuZmlsZWlkIA0KCQkJCVdIRVJFIGcuZmlsZWlkPT8iOw0KCQkkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRnaWQpKTsNCgkJaWYoICRyZXN1bHQgJiYgJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDAgKQ0KCQl7DQoJCQkkb3V0cHV0ID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCgkJfQ0KCQlpZiAoICEkcmVzdWx0ICkNCgkJew0KCQkJZWNobyBteXNxbF9lcnJvcigpOw0KCQkJZXhpdCgpOw0KCQl9DQoJCXJldHVybiBpc3NldCgkb3V0cHV0KSA/ICRvdXRwdXQgOiBGQUxTRTsNCgl9DQoNCg0KCWZ1bmN0aW9uIF9VcGRhdGVHYWxsZXJ5REIoJHBhdGgsJGdpZCkNCgl7DQoJCSRwYXRoID0gdHJpbSgkcGF0aCwiLyIpOw0KCQkkZmlsZV9nYWxsZXJ5ID0gJHRoaXMtPl9HZXRkaXJmaWxlcygkcGF0aCxmYWxzZSk7DQoJCSRkYl9nYWxsZXJ5ID0gJHRoaXMtPl9HZXRnYWxsZXJ5ZmlsZXMoJHBhdGgpOw0KDQoJCWlmICggJGZpbGVfZ2FsbGVyeSApDQoJCXsNCgkJCS8vIGFkZCB0byBEQjoNCgkJCSRnYWxsZXJ5X2FkZCA9IChlbXB0eSgkZGJfZ2FsbGVyeSkgfHwgJGRiX2dhbGxlcnkgPT09IEZBTFNFKSA/ICRmaWxlX2dhbGxlcnkgOiBhcnJheV9kaWZmX2Fzc29jKCRmaWxlX2dhbGxlcnksJGRiX2dhbGxlcnkpOw0KDQoJCQlpZiAoICFlbXB0eSgkZ2FsbGVyeV9hZGQpICkNCgkJCXsNCgkJCQkkZGIgPSYgJHRoaXMtPkdldERCKCk7DQoJCQkJZm9yZWFjaCgkZ2FsbGVyeV9hZGQgYXMgJGtleT0+JGl0ZW0pDQoJCQkJew0KCQkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZ2FsbGVyeSAoZmlsZW5hbWUsIGZpbGVwYXRoLCBmaWxlZGF0ZSwgZmlsZW9yZGVyLCBhY3RpdmUsIGRlZmF1bHRmaWxlLCBnYWxsZXJ5aWQsIHRpdGxlLCBjb21tZW50KSBWQUxVRVMgKD8sPyw/LDAsMSwwLD8sJycsJycpIjsNCgkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtWydmaWxlbmFtZSddLCAkaXRlbVsnZmlsZXBhdGgnXSwgJGl0ZW1bJ2ZpbGVtZGF0ZSddLCAkZ2lkKSk7DQoJCQkJCWlmICggISRyZXN1bHQgKQ0KCQkJCQl7DQoJCQkJCQllY2hvICdFcnJvcjogJyAuIG15c3FsX2Vycm9yKCk7DQoJCQkJCQllY2hvICI8YnIgLz48YnIgLz4iIC4gJHF1ZXJ5Ow0KCQkJCQkJZXhpdCgpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWlmICggJGRiX2dhbGxlcnkgKQ0KCQl7DQoJCQkvLyBkZWxldGUgZnJvbSBEQjoNCgkJCSRnYWxsZXJ5X2RlbCA9IGFycmF5X2RpZmZfYXNzb2MoJGRiX2dhbGxlcnksJGZpbGVfZ2FsbGVyeSk7DQoJCQlpZiAoICFlbXB0eSgkZ2FsbGVyeV9kZWwpICkNCgkJCXsNCgkJCQlmb3JlYWNoKCRnYWxsZXJ5X2RlbCBhcyAka2V5PT4kaXRlbSkNCgkJCQl7DQoJCQkJCS8vIG1ha2Ugc3VyZSB0aGF0IHRoZSByb290IGdhbGxlcnkgYW5kIG90aGVyIGRpcmVjdG9yaWVzIGFyZSBub3QgZGVsZXRlZCBoZXJlDQoJCQkJCWlmICggJGl0ZW1bJ2ZpbGVpZCddICE9IDEgJiYgc3Vic3RyKCRpdGVtWydmaWxlbmFtZSddLC0xKSAhPSAiLyIgICkgJGRlbGV0ZV9pZHNbXSA9ICRpdGVtWydmaWxlaWQnXTsNCgkJCQl9DQoJCQkJaWYgKCBpc3NldCgkZGVsZXRlX2lkcykgKQ0KCQkJCXsNCgkJCQkJJHF1ZXJ5ID0gaW1wbG9kZSgiJywnIiwkZGVsZXRlX2lkcyk7DQoJCQkJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IFdIRVJFIGZpbGVpZCBJTignIiAuICRxdWVyeSAuICInKSI7DQoJCQkJCSRkYiA9JiAkdGhpcy0+R2V0REIoKTsNCgkJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkJCQlpZiAoICEkcmVzdWx0ICkNCgkJCQkJew0KCQkJCQkJZWNobyAnRXJyb3I6ICcgLiBteXNxbF9lcnJvcigpOw0KCQkJCQkJZWNobyAiPGJyIC8+PGJyIC8+IiAuICRxdWVyeTsNCgkJCQkJCWV4aXQoKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gVFJVRTsNCgl9DQoNCglmdW5jdGlvbiBfRGVsZXRlR2FsbGVyeURCKCRwYXRoLCRnaWQpDQoJew0KCQkkcGF0aCA9IHRyaW0oJHBhdGgsIi8iKTsNCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2dhbGxlcnkgV0hFUkUNCgkJCWZpbGVpZCA9ID8NCgkJCU9SIGZpbGVwYXRoID0gPw0KCQkJT1IgZmlsZXBhdGggbGlrZSA/IjsNCgkJJGRiID0mICR0aGlzLT5HZXREQigpOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGdpZCwgJHBhdGgsICRwYXRoIC4gJy8lJykpOw0KCQlpZiAoICEkcmVzdWx0ICkNCgkJew0KCQkJZWNobyAnRXJyb3I6ICcgLiBteXNxbF9lcnJvcigpOw0KCQkJZWNobyAiPGJyIC8+PGJyIC8+IiAuICRxdWVyeTsNCgkJCWV4aXQoKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIF9DcmVhdGVUaHVtYm5haWwoJHRodW1ibmFtZSwgJGltYWdlLCAkdGh1bWJ3aWR0aCwgJHRodW1iaGVpZ2h0LCAkbWV0aG9kKQ0KCXsNCgkJJHpvb20gPSAuMzA7IC8vIHpvb20gcGVyY2VudGFnZQ0KCQkkaW1nZGF0YSA9IGdldGltYWdlc2l6ZSgkaW1hZ2UpOw0KCQkkaW1ncmF0aW8gPSAkaW1nZGF0YVswXSAvICRpbWdkYXRhWzFdOyAgLy8gd2lkdGgvaGVpZ2h0DQoJCSR0aHVtYnJhdGlvID0gJHRodW1id2lkdGggLyAkdGh1bWJoZWlnaHQ7DQoJCXN3aXRjaCgkbWV0aG9kKSB7DQoJCQljYXNlICJzYyI6IC8vIHNjYWxlDQoJCQljYXNlICJ6cyI6IC8vIHpvb20gJiBzY2FsZQ0KCQkJCSRzcmNfeCA9IDA7DQoJCQkJJHNyY195ID0gMDsNCgkJCQkkc3JjX3cgPSAkaW1nZGF0YVswXTsNCgkJCQkkc3JjX2ggPSAkaW1nZGF0YVsxXTsNCgkJCQlpZiggJGltZ3JhdGlvID4gJHRodW1icmF0aW8gKQ0KCQkJCXsNCgkJCQkJJG5ld3dpZHRoID0gJHRodW1id2lkdGg7DQoJCQkJCSRuZXdoZWlnaHQgPSBjZWlsKCR0aHVtYndpZHRoIC8gJGltZ3JhdGlvKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJJG5ld2hlaWdodCA9ICR0aHVtYmhlaWdodDsNCgkJCQkJJG5ld3dpZHRoID0gY2VpbCgkdGh1bWJoZWlnaHQgKiAkaW1ncmF0aW8pOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCQ0KCQkJY2FzZSAiY3IiOiAvLyBjcm9wDQoJCQljYXNlICJ6YyI6IC8vIHpvb20gJiBjcm9wDQoJCQkJJG5ld3dpZHRoID0gJHRodW1id2lkdGg7DQoJCQkJJG5ld2hlaWdodCA9ICR0aHVtYmhlaWdodDsNCgkJCQlpZiggJGltZ3JhdGlvID4gJHRodW1icmF0aW8gKQ0KCQkJCXsNCgkJCQkJJHNyY194ID0gY2VpbCgoJGltZ2RhdGFbMF0gLSAkaW1nZGF0YVsxXSAqICR0aHVtYnJhdGlvKSAvIDIpOw0KCQkJCQkkc3JjX3kgPSAwOw0KCQkJCQkkc3JjX3cgPSAkaW1nZGF0YVswXSAtICRzcmNfeCAqIDI7DQoJCQkJCSRzcmNfaCA9ICRpbWdkYXRhWzFdOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkc3JjX3ggPSAwOw0KCQkJCQkkc3JjX3kgPSBjZWlsKCgkaW1nZGF0YVsxXSAtICRpbWdkYXRhWzBdIC8gJHRodW1icmF0aW8pIC8gMyk7DQoJCQkJCSRzcmNfdyA9ICRpbWdkYXRhWzBdOw0KCQkJCQkkc3JjX2ggPSAkaW1nZGF0YVsxXSAtICRzcmNfeSAqIDM7DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQl9DQoJCWlmICggJG1ldGhvZCA9PSAienMiIHx8ICRtZXRob2QgPT0gInpjIiApDQoJCXsNCgkJCSRzcmNfeCA9ICRzcmNfeCArIGNlaWwoJHpvb20gLyAyICogJHNyY193KTsNCgkJCSRzcmNfeSA9ICRzcmNfeSArIGNlaWwoJHpvb20gLyAzICogJHNyY19oKTsNCgkJCSRzcmNfdyA9IGNlaWwoJHNyY193ICogKDEtJHpvb20pKTsNCgkJCSRzcmNfaCA9IGNlaWwoJHNyY19oICogKDEtJHpvb20pKTsNCgkJfQ0KCQkkbmV3aW1hZ2UgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3d2lkdGgsJG5ld2hlaWdodCk7DQoJCXN3aXRjaCgkaW1nZGF0YVsnbWltZSddKSB7DQoJCQljYXNlICJpbWFnZS9naWYiOg0KCQkJCSRzb3VyY2UgPSBpbWFnZWNyZWF0ZWZyb21naWYoJGltYWdlKTsgDQoJCQkJYnJlYWs7DQoJCQljYXNlICJpbWFnZS9wanBlZyI6DQoJCQljYXNlICJpbWFnZS9qcGVnIjoNCgkJCWNhc2UgImltYWdlL2pwZyI6DQoJCQkJJHNvdXJjZSA9IGltYWdlY3JlYXRlZnJvbWpwZWcoJGltYWdlKTsgDQoJCQkJYnJlYWs7DQoJCQljYXNlICJpbWFnZS9wbmciOg0KCQkJY2FzZSAiaW1hZ2UveC1wbmciOg0KCQkJCSRzb3VyY2UgPSBpbWFnZWNyZWF0ZWZyb21wbmcoJGltYWdlKTsgDQoJCQkJYnJlYWs7DQoJICAJfQ0KCQlpbWFnZWNvcHlyZXNhbXBsZWQoJG5ld2ltYWdlLCRzb3VyY2UsMCwwLCRzcmNfeCwkc3JjX3ksJG5ld3dpZHRoLCRuZXdoZWlnaHQsJHNyY193LCRzcmNfaCk7DQoJCXN3aXRjaCgkaW1nZGF0YVsnbWltZSddKSB7DQoJCQljYXNlICJpbWFnZS9naWYiOg0KCQkgIAkJaW1hZ2VnaWYoJG5ld2ltYWdlLCR0aHVtYm5hbWUpOyANCgkJCQlicmVhazsNCgkJCWNhc2UgImltYWdlL3BqcGVnIjoNCgkJCWNhc2UgImltYWdlL2pwZWciOg0KCQkJY2FzZSAiaW1hZ2UvanBnIjoNCgkJICAJCWltYWdlanBlZygkbmV3aW1hZ2UsJHRodW1ibmFtZSw4MCk7IA0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiaW1hZ2UvcG5nIjoNCgkJCWNhc2UgImltYWdlL3gtcG5nIjoNCgkJCQlpbWFnZXBuZygkbmV3aW1hZ2UsJHRodW1ibmFtZSk7ICANCgkJCQlicmVhazsNCgkgICAgfQ0KCQlpbWFnZWRlc3Ryb3koJG5ld2ltYWdlKTsNCgkJY2htb2QoJHRodW1ibmFtZSwgMDc3Nyk7DQoJCXJldHVybiAkdGh1bWJuYW1lOw0KCX0NCg0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/folder.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/folder.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/foldersmall.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADYAAABGCAYAAACHZ2ccAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAB1aSURBVHjazHsHlFzVle2unLuqc1IrdyvnBEggMGCwMAgzBltIA8JgZMxgM2AwJhn4tseewYzB9iDAEtEkfZOEUQCRBAooIQm11IrdLam71aE6Vk5/n1v1mqdSKbDWX3/9t9bt9+qF+86555x99rnvtmH8+PE43Wa32xEKhWCxWOBwOOB0OlFQUIBYLAaj0Yg9e/bAZrMhLy8PHo8HXV1dMBgM6jm5v6OjA/n5+aqvQ4cOqXNWq1X143a71bHZbMbWrVtVP9p52VKplOqnoaFBvd/r9co1U0tLSz6vDeYtQ/jMCLZqvr8iHo9XsnWa8f/RlkwmtcMatuFspWxlbJU1NTVlFL6YAzkokUgMGjNmjBogbaBFaZ5HY2Mj+vr6Ov6fK8ZRNnA3mm0EWwXbILYBsp81a9YIWq9ArCeeIM1kMqnnROhgMKiOxZoulwvafWJVWgnhcFh5Ee9Nmv8vCasdemR0MwJXaaPNrYIjW02XGjlkyBCruJ4IrAml9SHCS5NjTVj5HY1GlVKikLiiXplsGbT9N1VMhB3KVp4RWhSomDJlShXdpJwCV9IlnBInMpraaEu86QWXJiOrKaAbmBME1JSSGJVYk2e169K/9K391j97porNmDx58mfs3KwJLB3KXhNeL6Q0iRdtRLUX6mKoXyC94noFNfcLBALw+XzKSjIY8n65T3smu69vpBjd53EGr1nQTi+g7OVl2R1nb3oh9C/Xj3C2peQZgoACBjkWJWUQ5Z36/vT9yjXNomZxm9NtdK+83t5e9ZB0mmu0c41cLtc6lTJ6ISORSFpAWkjeq8VVtlfoXVGeEddVz2WP5EnAofd0Vsl2sZP1ezrF9LElEJ59LZfLauckFrVBMJ8h6sWyBdMslb3PpdA3ccNsING8RHunCJ0dq5qrSjxqzxnPEDwSuYTLBoTTJd+TKf5NntHOZYeD5DCxsjbAxjNPVakzzWUnPf9NlMoVT9m/9efEDfW/zzTGUlpn+qSaSxj9SGYrlcvtTuWGmvBan3pE1DdJKxor0Z4zf9PRy0aiXDnkZM+fzMX0x7mE1wusDawWAvJbo1J6hD7TBJ06mWX0Ap8KOSW4NQGEuOoT+8ksrllMD/Xab/0z0q+ekXwT5pHKHsHsfJatuLhHPB5BLBhAiG7isNtQNnAohg0fjtra3ZC8KMrlspzeYrkQUO81soli2d5xpq6Y0vt7dlLWOlO8rqsH4VAAdocVJeWlGDJ6LEaPqMbs2VMBa5F6ZvHixdiwYT1ZheuUsJ9LMQ3utWN5pzR9GlCKbdmyJTc5nDHjBLjP5mhilWgkilBXhJ0aUFzmw7hJE1BTU42xQ4diyLh0EdtIL1ndCPT1At/lqcmjhuPzTz5CyuE8Thh9jGkDqcWjFk96d5S95ob6508JHhs3bsTo0aOPC3YZGYmReCSOVDQFl9eNgYMGY9TFU3HexItQUsO40Xnn2qPspzGMXR1BxCJJDLTYUVbhxjnnzoTjxZcokChxPPPQx252jGlcUFNczmvUK5vln9IVa2tr4XWWIM9+OCWFnTxcXl6BYUOm4txR30XNLEvmzhh2tb2EXQ2lcPkuRfMxopK8xxRHuZvBHbVgr9HGu1JoOAScU+RAWfkA1B+qh8PlQi5v0Cunjyt9XCqPyXDDbOQ9bYydd+FZQ8+ecVHlgrk/QdUIKpLRxZ/cgrfqXsaB5g3oia7D4VZgcPGVGF9zKTy8J5pMwG1PYYDXgeH5CYys3YuQswxJQ5p0V1cPx84dX8FGhNS7WzYi6kEqW0HNg7IJsnJFgd4TqEwMtice/59f3fzThb/iT2v6bBTLa3+HXfUfoC28CYFoH4y8kmKIFOaz6iykgVAPO2WwcLiMCSPiKdZrRObBjRvhbH0X5Zc6cSA+BxFMxuiRY/APwzvHCaZ3x1x5U4srba+5YS4aZs7F9SLE6e9dcfVcUeqexd/H4d7P0Bc7JpLD6Wb97wVs9owCFFyEd/B8tKcesXgXokYfSqhhQiy3eyMOW7pRP2gcjr16LUomPQ1/WSPGTpiGsrJS9Pb0wGqz5kzGmmx6JNYEl1jLVkxvtRO4YlIVvQk8tfiZl+Xo3c3/QEvbMdEJHipjNfIllNhotPNllnTwsxsDb2jp7UJ353rYeEy0h+XIVjR9+nc4/CGMee4TOG4D2nccxpHuA5AycEBlBfoCwRN4n154PTrqWzpPxk86vWCeec6snLH10bp3N92P2zFp8GjUd9TSElSXkI6YTHNx9OI8NlN6Qwp9wTi624Gq1AQM9Q6GgQMthU4kwsRpcuPw0e34cngvdi4CFlUA5VZff5x98unn8Ho9pyxvNHfUI6I2dyKFaK7YNO/8aucJSkXJJ8OB2Mc8bBk36ryyXWtqkZeAylVGk7yI98T4x5BAT0ccPkMBLp/8e1w0/sfq+T1ttCytVjX9HLgGnYXgV2sIHgdRUedDwfVPYoCjUN03aswEuqFNjby+rssGD23TqJTcJ7GpL2GyLWbMzQrTN218/+Cqm+beqYRUsReVjoT3xdHRHkEX89TsQXfiTws7cL7rx7jn/Jl4/S+/xchiIEj3D3OAumNGGIfNwJX3P4PLX2xGa94P8drGIHZ1U7Fxo+Et9MLf03dCgk3H19czW/o5DW2WK1d505/Hbr7xFo68Ue5I+240gWicmRxxvPzOX9c+fvEfry90c1SjEVjpeZ2dMZj4zhmE9QcWrFCd//6Of8er//0nlQl2bV2Hy6/7d5SWO1FHthENdMDrMiKUb0dXvAOzxtjRDieP05lj/MhReGv1Bwiyf6fZBActKPOOaakN/Qlfz/pFMf2cYnbeU1NzXp8HS5Y+jZ7uLuzbX4cDh/ahvmE/GhoOon7PoYZbfvaTX67f9QF2HG0gfWJc5I/G//xqJy6duAh7XnkPt172LSxbtRp5MtFItAz00LLJFsy+eC6OkELFA92YVFOMPcea8dfXXoSp24/QgX0A+6sYPAyzzj0XV15/PQYOGw5zLKrIsd/vV/WVxWqBWab6MrPCamY4kxoizGFynM04JLdR8WB/5M06byaWLVuG1tZW/SD4U0F8Oqhq3HmO7Z/g4ZtfxCUTF6BpYx8e+O10fLl8E/7Jm6Y7rRg/1oVobwhlBWGsW7IUc+b/BGPHT8OW1rhiAQGi35xJU8hknGjdtxe1n6/FS795BKUDh2Ds1LNw+U9/istnnt3/4j899zzWv7scSUFGHQGWFpepuMyxlgqyFeyPsUQy0d/pmAxHnDPnMtx1/53b77rqz9i8NMV4WoCFV1yBaWd58AKVWs3HpQuL3ahG1VfoRl6lG0VMCx889aCa7x47uQoHm9rwxStL4bU5YQiFsPv9Veitq0N7QyPee/ZFLL71Vsx123H7rJlY/POfoW3nDlxJPlns86GypASVpaUoKSiA1+2GXabHqYRYUrXM/P0JCbrfP5OpXBMzCx597I9z5ODOn/4Mjz35lGIgQxgdrRzHKNtElxlDysxwWg1wmOUFZOxDImj4eCW2rf47Jn17Pvatfx9441XsamxAz+HDSGzfAhsTnztuwtiqUpiZoIOMp85D+/HpV9vx2fNLYayoQnhAFdwuB5wuj5q3t+XlEZVNCJDRB1lVhGPpecR4InnCNN5xSSDxtWIz9+4//OvqYQMufuO1t3DrTTfjWF+buuDkIyOrHSjxR1CSZ8LkmjxECP0WZuVEXFArRQsWwOw9hnUv/E4plgoE4GltgWXFWygi6bUPHoBAXwh5cSN6U0byTsBuNBH6HUj58mFJJXg+gVBPN+KMuaC1i/WdAx4q53R7ZJaX7/bCVViIzu5OHKqvPyFNZCs2/JmlS3950w033NTd3ISLpk/Bhk1blb9OL3VgaJkD9U0BlPtofpJEh8MMM+PLTTYSiSXQR2+OS0RwxKyeEjRsr8Xqpx/Gt2/+Nfx7tyL+5TakWpth8HphcvlgY1EaCkaVa1mIzEkBBu4NwjG5j0WiKrWk4nbJMTAQCSPBkEJxi7sLVjupWFauy7YYn8Qvuzs7H5If866ci1fffkddKKclKtx0twIzfDYjZoz2KZYMrxkppwOdRMpKtwFu+nqM7hyJk4mEKIzFCGuBHRvf/AumULGxd96Pg689CSvTRdfHq2DNL6FV81Gy/yCcfC5IiwWJ7VG6ZFyRunQSNsT5Ll5P0d2M9DS157usSaeC/B5yzWx+qYiy6HGsudnPcv2hO++8U2mvKVVC4YqpDCWGw0vd7RYChAujhxehvNILM39TD8QojI0DkOcwqVIgScoV5QW7NQ+hlnaseeB6DM6vpLtaYZs9AyVXXMNCNQSrz4WiwYPgJbG0kEkbJUaFiwoYUFGqQyGpYFLyVoxsJ5aBc7oaU0E8U0ELPmTTMVNdXd1Sl9s9aGBVFVatWtV/wcUXOPiyAOPGwuPzhnlQUWxHiknUZLGoIO4Kc3QyGdRpMcBK3hgmbzTHUsjjS33ROEqFL+7djvzLFqL4/Lk4/M5z8F34HRiYGvoO7oetciDd2YnOtnaEjGbEBc453gpMpOQX1iGuZhQUNCulzURGb3ERErRcFy2WVjyuLCX5j8dB43cvv/w+EayivPy46lMGICJMhCHjJkVw8ME8jo4nRJ7UF+SraW6TAf5ICvt6EqhvjiDRGUUF3XBiKIIJHUEMaghgSAcwnLjTdu889bXQYfGha+2HKLrqWuTVjEFfWzOM+QUwFBQiJFUxFYhyQGPsW/EfYRrKNaEq8AQH2URrWRxOhMIRldOyZ4m1GHt/85YtT63fuHGRlg+MwqS5D/GPjY4doFt9dKAX1eU25RririUFDtgTZlTQTT0EgPIA04AtgTJzHCZaMkrLGXwEhVILRz2G+OoNaHtlCWp+9CtsuPs6+IY2oPTC7+LQvj8h3NwM98AqCO70yoyuWRBWFDJAw2nxC1VQSDK2ieeYESRiCtTr01T/xM/hxkbc+KMf3SPCLiS1USczHSVkTpzwXdubxPuHwzjQJggmyvIlRKxiUxQTioz4dl4KV1WEMWl6GN7JcbjOAXzfs8EzmyNbZmRoGtBFMPv8z/ejmEPprZmM2rdeg5mQPuTi76A5EkNzdw+8AwbQp12QyWqxWEq4oUH5BhHToFAzKS7psCvZwqrQZBzmmOc3lZaWqjlHt8cTfvDBBy9a/OST6GbesUunMCieb5QyjAf+QBJDC6woZ/6yM9BHVjoxiHFXWWKD9+p8xL9XjeTEgTCcbYOpKgpnCy1Xm8CewzY00sL7SIjjFPuCWx/A6uefI8/qxthp5yJJVrFxTx1CoTCsVMzAGA7zfT10tRTTikE+xDO+JLYkmeeXFCNFoboZX4mMG2ruKJ+ShCuaJOiEeK5aufLzu++++4fFRUVFb739dtpqGeUU++dRgNbLJ/IVkW0Y6JKhYAy1x6IYVmJH+dBCRAZPZQrgoHzVBLzQgbpaM1a22bHWQ7ctcSBAht/ZvBNTfvALmEpGkJm8jUKfG+NnzETVmHEIiyx0xV7yyijfFVYM3qAUM1msCgltBJrC4pI0+yA9Sya/Vkr2opiAh0m+8Wrbzp072x5+5JGrl73+Oprb25k0M5WZIf3HYTagKN+GfLsJ1cUyevTzSAKth0OYTOgGGpFcuRt9m4P4os6JV/sc2JxnV1VnwkIXYmyY4l0IHdmLi+ffgvXrN6KnsxMFZBtTJ4zD5ElTMWLCBHjzi8goehTimeRjvjltLUkXLo+H1/PRxevRqBSbiePcUBRj/gsa9KV1Zg7hfzc3N/9LRUUFnBnF4pkU4aKmNVUuTC534N5JLrQmTdjQFMSRoyHcfEkVS5IADjUHEC32oSFsRGNnHP5oCt1sNDRoaBQ5mBbQhgX/tQZNscH4zQ+vwPnnTcKs6dMwZdoMoJRVqqcQ2z/8EA/+4feIsTZMGtJWM9NFi4uL4cnz4MiRo/0Qr330kGOpTpjb2kx6Ziz54sM1azbfdtttP9/8xReo3bef5YFBBa/EWZjukWQrK7Cg1GrEIcLmpsYgSh1GVJS5sLfbgPoY46vIjcISN3y0liTPOJ/piqbUKDlpZWYrNO3dhcvm3Yzu9mZ07KsnB3Sgl0LZ6SnOQh/sTCvvrV3LpG1Sc48Wu13tZQ2XJOkeho9+JktzRVlpoFxRr5jEVFVVVefESZNcZCEzH/2vRxFiJ2ZluZSC2i66XoHTgk7CvFE6TaUVHlzmRkuURSHjyVvkUW4j9CoWTcJG4XqCCT6TUu7sJhH2M9YsVi/OX/QL+PfsxIXnnk/X68JzrOU+Z0W98csdRMpeRZ+E9IpSTj4nC9FkWYb+C6a+DhPFxBVNcrGcyVnKAmmd9PlXXn553R133HFvd6APn3/2WZomMcbEajI+0XAcJR6rcs0Lh7lJhi3EFwuCkl+YOB0sNcxURuZIRHcXrSQgFI8nM6BkVKtsuo7sxoTLF6FgwBiEGg4hQeYSIVLWb92GPbsPoM9pY78cLKuZA2VXSknodNCqMqeY/fVHU0xZTLQVVMxqseKSkofuvecePPPMM+jkOQUkwgnZSYgCupiDnKQkZYTxUYT/rvYwugkCSQa5lC8ykEK7bBajilOZEBIlI3HFaWGx2GBJtqKnqQVnX/I9vLXsNfT6/SgtLEL93gNIEtSayQ/pDAr+pblZsiTIF2WZoDanmD31pil2wiyVfHyQtnTJEvX7aSqGjMXIbVX2j1DBDsZXgvtmJpwj7VHUsz4j8EFqvnBcWL4BMT4gVouSwbhdNlSQ7UuMiel7yE5CqUI0bH0XjU31OGvBv2HEsFGw0zKKsNmYy2JxlYTDqqiMq0QsggsZTiSTOVcsnHQmePLkyarJxUWLFuGyOXMwffp0JugU5HOCjLbEnJ8K2YlE5cYEdvpj2NMTZdnPgpJ+G6Ji/r4YekIkpUTO3ihUk+TqcmprsYwk0STZzEXrlz6A0UPyMWHuv6CFbuYoLUKccRVLyYyvzJrFFXmV2ks8Ki4LzJLJnItf+ilVtmKyWlSa5Lf169ej6dgxLH/33fTHIj4kLilpU4Dg8LEgghz5i8YVo5D5rbMzgGCbH0aOrpnm64skQS4Mwg8CMQEZoqLDxnJGpshNys0CSR86GjZix1ZWFswv23bsgNuXByZY5brCPKgd30t0pkICGqJUUvexL9cUnEYLjZqSUrixGSUvyJKfGxcuRAlzx9Xf/z5kitKRmeqL8UWHWTR2UHi306hcdUipE9ZYAIEOP8GBxSCDXmIqTqvJ9HiQkG+hwm6iqslsVMpFkyxTDA5s+Ptj6Ymk2RfyvphCYxWdMtNL5ewEjTCtG6VrKjc8yUSpfibYlGmSqY2ZLxhW0VqQq76+Hq+Siby+bBnsnjzWSCl4M3Zu561HO8Lo6Euob85NXXGUsxA1p8gIWb4IvzMapehkvFG5OJXopQs7WKDmOUlk+XoT0TNpcqHp6D4se/o/MP/2n9PCtDbRWawkVTMdlyBkQYDxJeCRSiROuXRDs5gl8w1MmvaxzKHdJC752KOPqpP33HWXgnumMgoPNHHv74rgqD/I+2xo6yKItIUxqrqIJNWoynyz2aKYQzRloisbFaBIvHncVvjcNsajQU3hweLFmuUvsL4LYu5NtyLRF5HVNTDRWjYOkMyBBOXLTOprNn+qlUCaYrZM61dMM61MNwsS3XHXL/DrB+5HTU0NAkgXcpKbdjVHsbstSHJqgcPtJAIaUUXmUF7skQ8xBAomWJOVljMLbqvZ3UjMoGKurIiuS/Rr6U2oqQFDMoIvN32C8y86F4NrhqIvEFJ9yLS3FJSRcOg4tnGqtZHGjAvqrSYXbJpiEmsC/6tXrKTQSSxe/HQG/tMPf0U33N0YQIWdtIoAEqQFPt/nh4tEudCbhncn481mlbiypt1TSvqgIGcSxR6iY28ApdXT8Jd/HsS3Zn0Hzz78EDobGuCUOOR7bGp5fFDBfDKROOmHiFxwr1dQZqyc2Q+IgvOuuRoXXDAbF8w+H1FlYoMClE/rgtjfFlCoUllegBh9tbMzhAJyRTcVtFE5gXmPlDsm+VhoVizkQHMX4o4K3P23N3HTfYvxBYnvbbNm4J1HfotgSyvTXXoVt1g1mK6z0m54mnWQtJrUswq9tc//AiJWXrBnf4gTq23fvh2frluPN9/7J3zytZ92c1Cbdh4dIMuvGFSOMq8b7fSzlMGkkM/pFAsZ1Pc0qb672WWIseLM82HmNbfgyiuuRe3+Bjx446U4uOITxO3khQWFiAl/oyI2hoLkvHTtlVRE3aDPV0ZjiDSrlQjeRLnDNpvtAobOSrOas/4aGZVL6l1RvwJHgOS+e36JtZ9+ihuvvx5Lnn8egwhbYUL50UMcfVYdHUkLigp8KCnLpzIpNalpItJYeRyLhOEirxwyfg4uuu5uBCIp/OFH/4o9LyxjScM6r7yEZU5EJWRJD2IbmQGOyToswr9SzGjspKCtogyVaGfr5qDHQ6GQs7Gxsa2pqenPJMlvmjMTQBEd5KtlwLk+m8r64eamJvznfz+Bvz33HN57bwUMba2odpHqsJLetP4ABk+zYeJAj5gFrrx8spE4UZQgYEqhcOh4zFxwv5omX/74H+FnHBXZXKgcNAhdvF+UCve7W0p9UZF1IKFwpDMRj9fxfIMhmWw3Wq0RumiKwGZiKzly5Iihrq7unZaWltegi630zBaJga6ddDGkVAAvPfs3df2Bh3+Ho2kkgdSr675oRf3BJlQWW+Bv7URPux80EOvGSkyf9wAuXvAQtq34AA/NPAsf3Hk/zr36Otz45GIkfR40kdiKpVKJNJyr+Xepmu32FIFjN5PyVp5roiBiBCmQHazLRm3btm3HunXrbtUr1T+FmFEumlG0L6Nozk2CWeB/4Q034Llnn8Uri5/AXtKgMS4hv8D2LfXYOaMK1T4zWomiUy+eD/fAC1X++49rr8LGV95UL5Xc8uxdt6syf399I5KMLUMqTaEkMctkjpVoyHwYDgZDXURDcyKVijGmElRKVpVX7d69+69+v/+dbMTPfAsFspAxSvNOGTNmzOaTrSaVc0JGl7//IaLd3Zg4cRyqM6NxiG3h7EosefZ/wTjkBnX/F1s3YVjNSBiO9eHg2o/w8UcrUb/tS3Ts3EngSUsibu6gN8TUFHkS3VTONW4snF7vsfrDRz6KxGOdlCTIOHfTUpb9+/c/xQH+Qgd6Sf26Sv3XlmTGcrJ16BdeZSdEOS+J+/ZbbsbKFStw9ZxL8Pp7qyDTQldMn4QHl7xFpQbipVdfanrisf9cs2nT/i+Hj6/ZcsE5Z4+65Np/PfuOhS9cYJR/J2E5sualF/Dx28tRv2sXug4fUd+8UkwHYY8TRVQ0FIm0xeKxMGusqMVqdZHHRg4ePPgbKnckMyYGndzHmS1n9h44cOBvfD7ffWryUfc/JPqlCd201m8ffQxXXXoJvjV+JH5x30O44rrr8P7KD3fee9ctd2/+au9KRWPyihDqaf/6HxRYkE4cOWL2eVdeOfOmH//4nJEFBZepAezoxMoXn8U/33gb9a3HkDd2LJpaWj5s7/DXJVJJRdSJfI8QAY/kstLpFEv7aPqbr2z5w4YNW+fxeGr0X+45ggmO3lr6++69e/deJ6lu7/6D8Yfv+Lefvbx8xZNTx9aAip3R8tWSkpLKyVOnXnDZ/PnTfjDvB1OLDaZzRNp511wDxtHLzGF+s8UygPH0h9bW1g0ZpVIZxXCmivUrp3vxjaWlpU+T+W9nPbQiEAhsC4fDazhynXJ9/oL584YMHDh5+Rv/+N2Y6mGdVAyi2Jbd+xTK5ejXqIsNQ0bAeOb/TVyjqquHc5vnb2v7flNz8/scvMF0/Sf21NWtSMiyoBzrlLM382kWN4sASY7Sko6OjiXZS1l12ytWs+mVExC0X9qci6YNutvs/UrHYondtbXbDx08WJyfnz+YHjOMIfEGgWLFyRZf59pO9w8FSV0hespNP/FqMZtwBv0mdGkmnAFVYyYTWKlQKh6LjbTbbDt6ensX03LCFU04w+1M/lPilL6MdLZU023fpFOdgpobioKhDAuKUrEw6VTA39n5ONQ6kYD5dHLot/8jwAAa2hNZVycxfAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/fpaint.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPcAAOlqa00zNGxRUzwiJUkvMnVaXz4kLWZMVzMYKUowQHdde3BfdaysxnFxfLa2x6amr1xwkenz92JrYnyOdIGUcPL08IuabImWaLzNceXxaNXbT/D3bvb4Tvb7U8/RS/7/qP7/yPz9yf//AICAAFZWAC4uAP//Dv//Gv3+Jf//PPz8S9DQQv//U///Vv//Xv//ZOjoXP//bv//cP7/cf3+cf//dv//ev//iP//lv//mf//muvrmP//qejomv//q///rv//w///xdbWpbe3kf//y+Xlxf//5P//8dvb2NvWQKmfRZWNTpiNS//YNpWHSF5EAPewNe6vQ7ePW/eUFtm+nti+n9KTTtq+nteykdvBqOXTw9mvjNaxkWFHNN27ocu5q9+zk8d+VG5fVlxCNk81LzcdGDgeGUYsJ1E3MlU7NlpAO19FQGJIQ25UT3ZcV3ddWB8EACIHA/lXPSoQDDYbFzYcGEEnI0QqJkcsKE81MWFGQmZMSGpQTHBWUnJYVHheWnpgXPA+KioQDUkvLdpdVT4kJP///+vr68zMzG5ubmZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAEAAQAAAI+AANaQFDEIyXgwgPahHoBUqUhxAjRvGixUuUGC9+vKjhw0USJmKWeIiyJUuUFyyIsJARRIUTK2GkKInCxeQPIiKI6DBRYQEAOU0kRMFiEqVKlhwuEAo0ZUKUKiZryNAhw0YOGhosQKCAIQoVkzyAmCiy44SRGR0iZNgQ5YrJFimOBBBg5AQOEChCfGh7JcqNHgcGGCigY8iYJzB08I0iRAEcNmQEMWhQCMGIFYv3wOHTps8aOIkOIUJAgi+BQWra0DnzJo0ZRYccdClx5cqcNID42KmDxg+eMm6QPEhwRQuf43z83Imj50+eBNATLNRSu3rtL9ixLwwIADs=]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/next.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/pageno.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADIAAABPCAYAAACpg5auAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAZJSURBVHja7FldSBxXFD6zO/un9bekBpT6LxTqJu2DCqkgpYS2ClISEBVbSJ78IdoXUR9KoSFI81Dsk2+hDylBzIMN1BppMEhB8yClRWQrqboG7BpaS101u/Nze87snXE1G13rurOmc+Vwx7tzZ893/u7O+QR4fggodhQHiohi42tmD4aioEgoMorK1wylowcp7ULJQMlESeeAUgEIgQih/MNli69pYATGIqAEQSAQbpRXm5qaznV0dLQVFhaex8/pHtOBoH6k6LOxsbHbPT099/D6D5RN7h0GHAgp6kEpyMvLe9fn8/3M9g1FUUwRFf+ix/b2dnBoaOgG6lpJRtcjRuSAac7wer0Vo6OjX5WXl3tpcX39KTycnobfHz+GnZ0dzYdCkqNMFO2QdzYPaqqqobLyTfB4POmdnZ29pMrAwMC3W1tb5JGgwL2R5nQ6X5+YmPiirq7uEj1gZmYGbt36BsGsg91uBxtFnhCVXckIJ4oZjBhZlsHpcsH7Fy9CW1sriA4HhMPh0PDw8Ofd3d23yeY6kOyqqqq3pqamviPE8/PzcP36DboZXPgAPY+Snhe7CQIYZrCzvQOXL1+Cjz9p05aXl5d/LS4ubsbLFSO0VFV1oeVF2nDnzghgLIInLQ1wHUKhkDZjwplSdJ0uJ9hsNnC6XfD9+DhceOcClJaW0JqHV1m7DkRARe2UTH6/HxYXFzVXkvIErLq6GrznvBheyQcSCATg/uQkRoekhfhmMAizjx5pQEg3fuYZyb5nYwhDiixAQHJycuDatS5IQ++YNTY3N2H8hwlKdO3/ddQRYhyAe08dRKmiUF7Q7HG7sXKIpp4hWVlZml6kE0PjkoEPBQK8UjACxDeZlez6oKpF+jCuSyx9YppaVRU+x0YfDTgZBYC+R+H5qihxegRPUrwxgvowbySziumeeJFOtuc3cDG8o0IqjF3dYxtWjLWDoVeYKuwmmMk5oh8D6lFzhDZR2ERcSXlgtjcixj2o+NhibYq2QCTxhZTwiC5xeUSrEJETE8ueYlQwsz2iG1YHExcQrW5rs2Jcm+0R0kOXWAXoECByTPRmAJEkyRDS61Ag+qZUAkI6HNkjVKV0xDQTqOS+Th0cWqRPnDmiGjdKksyrxCn0CIWUHlqKIvMzxfyqpYf5kYFEPBI7sZIfWsqeRI8z2Zlxskc2pUJoMZ4fR0p2cp9kJDuFl9nnCOkgy2GcJT7L8YUWAYkkfSRPDvq5HtWpPNEORCSsInKEk13RfoaRK0kcDoep7yT6CxWJJCnxhRa9H1OeSFKY946WYGRkBBoaGg70yEmBWllZgfHxca2DQl4JhcKQnv7Ki4HwJjF4vV44cyYXVlefaM05cmV7ezv09fUlva9FRqJWLfXYKCrIuIxRe6pqX+drF4jidDplEUdubi5cuXIV+vv7NcXJEpT01Drd74FkDGpLkVB4BYNBqKmpgfr6eu0zt9tNPS2qTIremcyqqKio8vv9PmrSoRVYc3Mz42gZ4mNoEU3oOlmifycC0fQoKipic3NzRmd+enr6Lq6Xo6TpFiZepHBwcLAXrS/TTeFwmN28+SUrKytj6C3tYckWCneMCJadnc1aW1uYz+czQBD10djY+CHq/RqKQ+AtHXIRZVDB0NBQa1dXVy8+iNY0dy4sLMDGxoYpnRMMHygpKYGCggJjfXFx8Zfa2tpPA4HAb/jvnyjPdCACzxei3M4imI+wSjXn5+eXQgoNLLvS7OzsREtLy9dra2tLuPQXgaCPoqk3HQw1ebMpb/i1CKnBIdLhoXOIf/M5zNd3OcQoMDauvBNSk9UNc1GiX5QEs39H/ZcRK0/FGDedSp5d3Afi1PLs4j4QFs9u8eyHDItnt3j2Eyy6CeHZt8IKnH+7Gt6oNIdnf7oegIcPJsGuHJNnz8jMgasdXZp3zBpbwU346cdj8uzuFODZMzITwLOzFODZFYtnt3j2kwSyp/sTR2i9rDw7e2l4dpYCPDuzePbU4tlZInh21eLZE3iyWzx7FM+uWjx7YqvW8Xl2xXyenSWCZ1csnj2RQCyefZdnl1FEk3l2NRE8++rKEty7OwLvfWAOz/7EvwIP7ieAZ1fRlf3d7TD4mcWzH2tYPLvFs59Qjvz/ePboIwFOM8++/3yDU8qz/yvAAD8aUfA7Gd9yAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/previous.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/uppage.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdHYWxsZXJ5JzsNCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RoZSBlYXNpZXN0IHdheSB0byBtYW5hZ2UgYW5kIGRpc3BsYXkgcGhvdG8gZ2FsbGVyaWVzJzsNCiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0FuIGVhc3kgdG8gdXNlIGdhbGxlcnkgd2hpY2ggYXV0b21hdGljYWxseSBzaG93cyB0aGUgaW1hZ2VzIG9mIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4nOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIEdhbGxlcnkgbW9kdWxlIHdhcyBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkLic7DQokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVGhlIEdhbGxlcnkgbW9kdWxlIHZlcnNpb24gJXMgd2FzIGluc3RhbGxlZC4nOw0KJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnVGhlIEdhbGxlcnkgbW9kdWxlIGlzIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIEdhbGxlcnkgIG1vZHVsZSB3YXMgdW5pbnN0YWxsZWQnOw0KJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnVGhlIEdhbGxlcnkgbW9kdWxlIHdhcyB1bmluc3RhbGxlZCc7DQokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgR2FsbGVyeT8gVGhpcyBkb2VzIG5vdCBlZmZlY3QgdGhlIGltYWdlcywgYnV0IGFsbCBjb21tZW50LWRhdGEgYW5kIHRodW1ibmFpbHMgdGhhdCB3ZXJlIGNyZWF0ZWQgYnkgR2FsbGVyeSB3aWxsIGJlIGxvc3QuJzsNCg0KDQokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsNCiRsYW5nWydhY3Rpb25zJ10gPSAnQWN0aW9ucyc7DQokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsNCiRsYW5nWydhcHBseSddID0gJ0FwcGx5JzsNCiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZT8nOw0KJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7DQokbGFuZ1snY29weSddID0gJ0NvcHknOw0KJGxhbmdbJ2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsNCiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOw0KJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsNCiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7DQokbGFuZ1snc2V0ZmFsc2UnXT0gJ1NldCBGYWxzZSc7DQokbGFuZ1snc2V0dHJ1ZSddPSAnU2V0IFRydWUnOw0KJGxhbmdbJ3N1Ym1pdCddID0gJ1NhdmUnOw0KDQoNCiRsYW5nWydnYWxsZXJpZXMnXSA9ICdHYWxsZXJpZXMnOw0KJGxhbmdbJ2dhbGxlcnlwYXRoJ10gPSAnR2FsbGVyeSc7DQokbGFuZ1snZWRpdGdhbGxlcnknXSA9ICdFZGl0IGdhbGxlcnknOw0KJGxhbmdbJ2FkZGdhbGxlcnknXSA9ICdBZGQgZ2FsbGVyeSc7DQokbGFuZ1snbm9nYWxsZXJpZXN0ZXh0J10gPSAnTm8gZ2FsbGVyaWVzIGF2YWlsYWJsZSc7DQokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnZSc7DQokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7DQokbGFuZ1snZGF0ZSddID0gJ0RhdGUnOw0KJGxhbmdbJ25vZmlsZXN0ZXh0J10gPSAnTm8gaW1hZ2VzIGF2YWlsYWJsZSc7DQokbGFuZ1snZ2FsbGVyeXRpdGxlJ10gPSAnR2FsbGVyeSBUaXRsZSc7DQokbGFuZ1snY29tbWVudCddID0gJ0NvbW1lbnQnOw0KJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOw0KJGxhbmdbJ3VzZWRlZmF1bHQnXSA9ICd1c2UgZGVmYXVsdCc7DQokbGFuZ1sndGh1bWJuYWlsc2l6ZSddID0gJ1RodW1ibmFpbCBTaXplIChGcm9udGVuZCknOw0KJGxhbmdbJ2xlYXZlZW1wdHknXSA9ICcobGVhdmUgdGhpcyBlbXB0eSB0byB1c2UgdGhlIGRlZmF1bHQgdGh1bWJuYWlscyBmcm9tIEltYWdlTWFuYWdlciknOw0KJGxhbmdbJ3dpZHRoJ10gPSAnd2lkdGgnOw0KJGxhbmdbJ2hlaWdodCddID0gJ2hlaWdodCc7DQokbGFuZ1sncmVzaXplbWV0aG9kJ10gPSAncmVzaXplIG1ldGhvZCc7DQokbGFuZ1snY3JvcCddID0gJ2Nyb3AnOw0KJGxhbmdbJ3NjYWxlJ10gPSAnc2NhbGUnOw0KJGxhbmdbJ3pvb21jcm9wJ10gPSAnem9vbSAmYW1wOyBjcm9wJzsNCiRsYW5nWyd6b29tc2NhbGUnXSA9ICd6b29tICZhbXA7IHNjYWxlJzsNCiRsYW5nWydjcmVhdGV0aHVtYnMnXSA9ICcoUmUpQ3JlYXRlIFRodW1icyc7DQokbGFuZ1sndGh1bWJzY3JlYXRlZCddID0gJ1RodW1ibmFpbHMgY3JlYXRlZCc7DQokbGFuZ1snZ2FsbGVyeXVwZGF0ZWQnXSA9ICdUaGUgZ2FsbGVyeSB3YXMgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuJzsNCiRsYW5nWydlcnJvcl91cGRhdGVnYWxsZXJ5ZmFpbGVkJ10gPSAnVXBkYXRpbmcgdGhlIGdhbGxlcnkgZmFpbGVkLic7DQoNCg0KJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7DQokbGFuZ1sndGl0bGVfYXZhaWxhYmxlX3RlbXBsYXRlcyddID0gJ0F2YWlsYWJsZSBUZW1wbGF0ZXMnOw0KJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnTmFtZSc7DQokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsNCiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdDcmVhdGUgYSBuZXcgdGVtcGxhdGUnOw0KJGxhbmdbJ3RpdGxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgRWRpdG9yJzsNCiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnVGVtcGxhdGUgTmFtZSc7DQokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgU291cmNlJzsNCiRsYW5nWydwcm9tcHRfdGVtcGxhdGVqcyddID0gJ1RlbXBsYXRlIEphdmFTY3JpcHQnOw0KJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZWNzcyddID0gJ1RlbXBsYXRlIENTUy1zdHlsZXNoZWV0JzsNCiRsYW5nWyd0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdUaGUgdGVtcGxhdGUgd2FzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLic7DQokbGFuZ1sndGVtcGxhdGVhZGRlZCddID0gJ1RoZSB0ZW1wbGF0ZSB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLic7DQokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnVGhlIHRlbXBsYXRlIG5hbWUgYWxyZWFkeSBleGlzdHMuJzsNCiRsYW5nWyd0ZW1wbGF0ZWRlbGV0ZWQnXSA9ICdUZW1wbGF0ZSBkZWxldGVkJzsNCiRsYW5nWydhdmFpbGFibGV2YXJpYWJsZXMnXSA9ICdBdmFpbGFibGUgVGVtcGxhdGUgU21hcnR5IFZhcmlhYmxlcyc7DQokbGFuZ1snYXZhaWxhYmxldmFyaWFibGVzbGlzdCddID0gJ1RoZXNlIGFyZSB0aGUgdmFyaWFibGVzIHlvdSBjYW4gdXNlIHRvIGN1c3RvbWl6ZSB5b3VyIHRlbXBsYXRlOjxiciAvPjxiciAvPg0KeyRtb2R1bGVfbWVzc2FnZX0gLSBlcnJvciBtZXNzYWdlLCBpcyBvbmx5IHNldCBpZiB0aGVyZVwncyBhIG1lc3NhZ2U8YnIgLz4NCnskZ2FsbGVyeXRpdGxlfSAtIHRpdGxlIG9mIHRoZSBnYWxsZXJ5LiBJZiB0aGVyZSBpcyBubyB0aXRsZSwgdGhpcyB3aWxsIHNob3cgdGhlIGRpcmVjdG9yeSBuYW1lPGJyIC8+DQp7JGdhbGxlcnljb21tZW50fSAtIGNvbW1lbnQgb2YgdGhlIGdhbGxlcnk8YnIgLz4NCnskcGFyZW50bGlua30gLSBsaW5rIHRvIHRoZSBwYXJlbnQgZm9sZGVyPGJyIC8+DQp7JGltYWdlY291bnR9IC0gc2hvd3MgZS5nLiAiNiBpbWFnZXMiLCBkZXBlbmRpbmcgb24gbGFuZ3VhZ2U8YnIgLz4NCnskaXRlbWNvdW50fSAtIG51bWJlciBvZiBpdGVtcywgaW1hZ2VzICsgZm9sZGVyczxiciAvPg0KeyRwYWdlc30gLSBudW1iZXIgb2YgcGFnZXM8YnIgLz4NCnskcHJldnBhZ2V9IC0gbGluayB0byBwcmV2aW91cyBwYWdlLCBpZiBhcHBsaWNhYmxlPGJyIC8+DQp7JG5leHRwYWdlfSAtIGxpbmsgdG8gbmV4dCBwYWdlLCBpZiBhcHBsaWNhYmxlPGJyIC8+DQp7JHBhZ2VsaW5rc30gLSBsaW5rcyB0byBlYWNoIGV4aXN0aW5nIHBhZ2U8YnIgLz4NCnskaW1hZ2VzfSAtIGFycmF5IHdpdGgga2V5czo8YnIgLz4NCiAtIGZpbGUgLSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBvcmlnaW5hbCBpbWFnZSAob3Igc3ViZ2FsbGVyeSk8YnIgLz4NCiAtIHRpdGxlIC0gdGl0bGUgb2YgdGhlIGltYWdlLiBJZiB0aGVyZSBpcyBubyB0aXRsZSwgdGhpcyB3aWxsIHNob3cgdGhlIGZpbGVuYW1lPGJyIC8+DQogLSBjb21tZW50IC0gY29tbWVudCB0byB0aGUgaW1hZ2U8YnIgLz4NCiAtIGZpbGVkYXRlIC0gY3JlYXRpb24gZGF0ZS90aW1lPGJyIC8+DQogLSB0aHVtYiAtIHJlbGF0aXZlIHBhdGggdG8gdGhlIHRodW1ibmFpbC4gSW4gY2FzZSBvZiBhIHN1YmdhbGxlcnksIHRoaXMgd2lsIHJldmVydCB0byB0aGUgaW1hZ2Ugd2hpY2ggaXMgc2V0IGFzIGRlZmF1bHQgaW4gdGhhdCBzdWJnYWxsZXJ5LiBJZiBubyBpbWFnZSBpcyBzZXQgYXMgZGVmYXVsdCwgYSBzdGFuZGFyZCBmb2xkZXItaWNvbiB3aWxsIGJlIHVzZWQuPGJyIC8+DQogLSBpc2RpciAtIHRydWUgaWYgaXRcJ3MgYSBzdWJnYWxsZXJ5PGJyIC8+DQogLSBmb2xkZXJsaW5rIC0gZGVwcmVjYXRlZCEgVXNlIGZpbGUgYW5kIHRodW1iIGluc3RlYWQ8YnIgLz4NCic7DQoNCg0KJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsNCiRsYW5nWydhbGxvd2VkX2V4dGVuc2lvbnMnXSA9ICdBbGxvd2VkIEV4dGVuc2lvbnMnOw0KJGxhbmdbJ3VzZV9jb21tZW50X3d5c2l3eWcnXSA9ICdVc2UgYSBXWVNJV1lHIGVkaXRvciBvbiB0aGUgR2FsbGVyeSBjb21tZW50IGZpZWxkJzsNCiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ1RoZSBvcHRpb25zIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuJzsNCg0KDQokbGFuZ1snaW1hZ2UnXSA9ICdpbWFnZSc7DQokbGFuZ1snaW1hZ2VzJ10gPSAnaW1hZ2VzJzsNCiRsYW5nWydwcmV2cGFnZSddID0gJ3ByZXZpb3VzJzsNCiRsYW5nWyduZXh0cGFnZSddID0gJ25leHQnOw0KJGxhbmdbJ2RlZmF1bHRnYWxsZXJ5Y29tbWVudCddID0gJ1RoYW5rIHlvdSBmb3IgaW5zdGFsbGluZyB0aGUgR2FsbGVyeSBtb2R1bGUuIElmIHlvdSBoYXZlIHVwbG9hZGVkIHNvbWUgaW1hZ2VzIHRvIHRoZSBcJ3VwbG9hZHMvaW1hZ2VzL0dhbGxlcnlcJyBmb2xkZXIsIHlvdSB3aWxsIHNlZSB0aGVtIGJlbG93LiBZb3UgY2FuIGVkaXQgdGl0bGVzLCBkZXNjcmlwdGlvbnMgYW5kIHRodW1ibmFpbCBzaXplcyBpbiB0aGUgYWRtaW4gc2VjdGlvbi4gQ2hlY2sgb3V0IGFsbCB0aGUgb3RoZXIgZmVhdHVyZXMgdGhpcyBtb2R1bGUgb2ZmZXJzIGluIHRoZSBtb2R1bGUtaGVscC4nOw0KDQoNCiRsYW5nWydoZWxwX2RpciddID0gJ1BhcmFtZXRlciB0byBzcGVjaWZ5IGEgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byB1cGxvYWRzL2ltYWdlcy9HYWxsZXJ5Lyc7DQokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJ1VzZSBhIHNlcGFyYXRlIGRhdGFiYXNlIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBwaG90byBnYWxsZXJ5LiBUaGlzIHRlbXBsYXRlIG11c3QgZXhpc3QgYW5kIGJlIHZpc2libGUgaW4gdGhlIHRlbXBsYXRlIHRhYiBvZiB0aGUgR2FsbGVyeSBhZG1pbiwgdGhvdWdoIGl0IGRvZXMgbm90IG5lZWQgdG8gYmUgdGhlIGRlZmF1bHQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gdGhlIHRlbXBsYXRlIHdoaWNoIGlzIGFzc2lnbmVkIHRvIHRoZSBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLCBlbHNlIHRoZSBkZWZhdWx0IHRlbXBsYXRlLic7DQokbGFuZ1snaGVscF9udW1iZXInXSA9ICdNYXhpbXVtIG51bWJlciBvZiBpbWFnZXRodW1icyB0byBkaXNwbGF5IChwZXIgcGFnZSkuIExlYXZpbmcgZW1wdHkgd2lsbCBzaG93IGFsbCBpbWFnZXMuJzsNCiRsYW5nWydoZWxwX3N0YXJ0J10gPSAnU3RhcnQgYXQgdGhlIG50aCBpbWFnZS4gTGVhdmluZyBlbXB0eSB3aWxsIHN0YXJ0IGF0IHRoZSBmaXJzdCBpbWFnZS4nOw0KJGxhbmdbJ2hlbHBfc2hvdyddID0gJ092ZXJpZGUgd2hpY2ggaW1hZ2VzIGhhdmUgdG8gYmUgc2hvd24uIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQo8bGk+XCdhY3RpdmVcJyAtIHRvIGRpc3BsYXkgdGhlIGltYWdlcyBtYXJrZWQgYXMgYWN0aXZlIChkZWZhdWx0KTwvbGk+DQo8bGk+XCdpbmFjdGl2ZVwnIC0gdG8gZGlzcGxheSBvbmx5IHRoZSBpbWFnZXMgbWFya2VkIGFzIGluYWN0aXZlIDwvbGk+DQo8bGk+XCdhbGxcJyAtIHRvIGRpc3BsYXkgYWxsIGltYWdlczwvbGk+DQo8L3VsPg0KJzsNCiRsYW5nWydoZWxwX2NhdGVnb3J5J10gPSAnVG8gZGlzcGxheSBvbmx5IGltYWdlcy9nYWxsZXJpZXMgYXNzaWduZWQgdG8gdGhlIHNwZWNpZmllZCBjYXRlZ29yaWVzLiBVc2UgKiBhZnRlciB0aGUgbmFtZSB0byBzaG93IGNoaWxkcmVuLiAgTXVsdGlwbGUgY2F0ZWdvcmllcyBjYW4gYmUgdXNlZCBpZiBzZXBhcmF0ZWQgd2l0aCBhIGNvbW1hLiBMZWF2aW5nIGVtcHR5LCB3aWxsIHNob3cgYWxsIGNhdGVnb3JpZXMuJzsNCiRsYW5nWydoZWxwX2FjdGlvbiddID0gJ092ZXJyaWRlIHRoZSBkZWZhdWx0IGFjdGlvbi4gVXNlIGl0IGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGFib3ZlIHBhcmFtZXRlcnMuIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQo8bGk+XCdzaG93cmFuZG9tXCcgLSB0byBkaXNwbGF5IGEgc2V0IG9mIHJhbmRvbSB0aHVtYi1pbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykuIFRoZSBkaXIgcGFyYW1ldGVyIG11c3QgYmUgc2V0LCBvciB0aGUgZGVmYXVsdCBHYWxsZXJ5LXJvb3Qgd2lsbCBiZSB1c2VkLiBVc2UgXCcvKlwnIGFmdGVyIHRoZSBuYW1lIHRvIGluY2x1ZGUgaW1hZ2VzIGZyb20gc3ViZGlyZWN0b3JpZXM8L2xpPg0KPGxpPlwnc2hvd2xhdGVzdFwnIC0gdG8gZGlzcGxheSB0aGUgbW9zdCByZWNlbnRseSBhZGRlZCBpbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykgVGhlIGRpciBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQsIG9yIHRoZSBkZWZhdWx0IEdhbGxlcnktcm9vdCB3aWxsIGJlIHVzZWQuIFN1YmRpcmVjdG9yaWVzIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkPC9saT4NCjxsaT5cJ3Nob3dsYXRlc3RkaXJcJyAtIG5vdCB5ZXQgaW1wbGVtZW50ZWQhIE1lbmQgdG8gZGlzcGxheSBhIHNldCBvZiByYW5kb20gdGh1bWItaW1hZ2VzIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgYWRkZWQgZGlyZWN0b3J5IChhcHBsaWVzIG9ubHkgdG8gdGhlIGltYWdlcyB3aGljaCBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgZGVmYXVsdHMgdG8gYSBudW1iZXIgb2YgNiBpbWFnZXMpIFRoZSB0aHVtYi1zZXR0aW5ncyBvZiB0aGUgR2FsbGVyeS1yb290IHdpbGwgYmUgdXNlZDwvbGk+DQo8L3VsPg0KJzsNCg0KJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4zLiA4IFNlcHRlbWJlciAyMDA5LiBCdWdmaXggZm9yIFsjNDAwMV0sIEltcHJvdmVkIHN5bmNocm9uaXppbmcgdGhlIGRhdGFiYXNlIHRvIGZpbGVzLCBhbmQgb3RoZXIgbWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gNSBTZXB0ZW1iZXIgMjAwOS4gQnVnZml4IGZvciBbIzM5ODNdIHJlZ2FyZGluZyBzcGFjZXMgaW4gZGlyZWN0b3J5IG5hbWVzLCBBZGRlZCB0ZW1wbGF0ZXMgRmFuY3lib3ggYW5kIEx5dGVib3hfc2xpZGVzaG93IGFzIGluIEZlYXR1cmUgcmVxdWVzdHMgWyMzOTQ0XSBhbmQgWyMzOTY3XTwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gMjMgQXVndXN0IDIwMDkuIEFwcGx5IHRodW1ibmFpbC1zZXR0aW5ncyBvbiBcJ0FsYnVtLWNvdmVyc1wnIFsjMzkyNF0sIEJ1Z2ZpeCBmb3IgWyMzOTI3XSwgQWRkZWQgbWlzc2luZyAvZGl2IHRvIHRoaWNrYm94LXRlbXBsYXRlLCBmaXhlZCBhbiBpc3N1ZSB3aXRoIGdlbmVyYXRpbmcgdGh1bWJuYWlscyB3aGVuIG5vIHRodW1icyBhdmFpbGFibGUgaW4gSW1hZ2VNYW5hZ2VyLCBpbXByb3ZlZCB0aGUgbmFtaW5nIG9mIHRodW1icywgQnVnZml4IGZvciBbIzM5MzFdLCBQcmV2ZW50IGRpc3BsYXkgdGhlIGNvbnRlbnQgb2YgZ2FsbGVyaWVzIHRoYXQgYXJlIHNldCBhcyBpbmFjdGl2ZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLiAxNyBBdWd1c3QgMjAwOS4gUGFnaW5hdGlvbiBwYXJhbWV0ZXJzIGFkZGVkLCBTdGFuZGFyZCB0ZW1wbGF0ZXMgY2hhbmdlZCBhY2NvcmRpbmdseSwgRXh0ZW5kZWQgdGhlIG1vZHVsZS1oZWxwLCBBZGRlZCBmdW5jdGlvbnMgdG8gc2hvdyByYW5kb20gb3IgbGF0ZXN0IGltYWdlcywgU3VwcG9ydCBvZiBwcmV0dHktdXJscywgVmFyaW91cyBpbXByb3ZlbWVudHM8L2xpPg0KPGxpPlZlcnNpb24gMC42LiA5IEF1Z3VzdCAyMDA5LiBJbml0aWFsIEJldGEgUmVsZWFzZS48L2xpPg0KPC91bD4nOw0KJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBHYWxsZXJ5IG1vZHVsZSBpcyBhbiBlYXN5IHRvIHVzZSBwaG90byBnYWxsZXJ5IHdoaWNoIGF1dG9tYXRpY2FsbHkgc2hvd3MgdGhlIGltYWdlcyBvZiBhIHNwZWNpZmllZCBkaXJlY3RvcnkuIFN1YmRpcmVjdG9yaWVzIHdpbGwgYmUgc2hvd24gYXMgc3ViZ2FsbGVyaWVzLiBJdCBoYXMgbG90cyBvZiBmZWF0dXJlcywgc3VjaCBhcyBhdXRvbWF0aWMgdGh1bWJuYWlsaW5nLCB0aGUgdXNlIG9mIG11bHRpcGxlIExpZ2h0Ym94LWxpa2UgdGVtcGxhdGVzIG9yIGFueSBjc3MvamF2YXNjcmlwdCB0ZW1wbGF0ZSB5b3UgbGlrZSwgYW5kIHlvdSBjYW4gZ2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byB5b3VyIGdhbGxlcmllcyBhcyB3ZWxsIGFzIHlvdXIgcGhvdG9zLjwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+Rmlyc3QsIGluc2VydCB0aGUgbW9kdWxlIHdpdGggdGhlIHtHYWxsZXJ5fSB0YWcgaW50byB5b3VyIHBhZ2Ugb3IgdGVtcGxhdGUgYW55d2hlcmUgeW91IHdoaXNoLiBUaGVuIHVwbG9hZCBzb21lIGltYWdlcyB3aXRoIHRoZSBJbWFnZSBNYW5hZ2VyLCBGaWxlIE1hbmFnZXIgKGUuZy4gbXVsdGlwbGUgaW1hZ2VzIGluIHppcGZpbGUpIG9yIEZUUCB0byB0aGUgdXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS8gZGlyZWN0b3J5LjwvcD4NCjxwPlRoYXRcJ3MgaXQhPC9wPg0KPHA+SWYgeW91IHdhbnQgbW9yZSBwaG90byBnYWxsZXJpZXMsIHNpbXBseSBjcmVhdGUgYSBzdWJkaXJlY3RvcnkgYW5kIHVwbG9hZCB5b3VyIHBob3RvcyBhcyBkZXNjcmliZWQuIEJ5IGFkZGluZyBwYXJhbWV0ZXJzIHRvIHRoZSB7R2FsbGVyeX0gdGFnLCB5b3UgY2FuIGVhc2lseSBtYW5pcHVsYXRlIHdoaWNoIHN1YmdhbGxlcnkgd2lsbCBiZSBzaG93biBpbiB3aGljaCB0ZW1wbGF0ZSwgZS5nLiB7R2FsbGVyeSBkaXI9ImhvbGlkYXlzL05ldGhlcmxhbmRzMjAwOSIgdGVtcGxhdGU9IkxpZ2h0Ym94In08L3A+DQo8cD5CeSBkZWZhdWx0IHRoZSB0aHVtYm5haWxzIGZyb20gdGhlIEltYWdlIE1hbmFnZXIgYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgcGhvdG8gZ2FsbGVyaWVzLjwvcD4NCjxoMz5BZHZhbmNlZCBPcHRpb25zLCBidXQgc3RpbGwgZWFzeSB0byB1c2U8L2gzPg0KPHA+SW4gdGhlIGFkbWluIHNlY3Rpb24geW91IGhhdmUgbG90cyBvZiBvdGhlciBvcHRpb25zOjwvcD4NCjx1bD4NCjxsaT5TZXQgYSBwaG90byBhcyB0aGUgZGVmYXVsdCBmb3IgYSBnYWxsZXJ5LCBzbyBpdCB3aWxsIHNob3cgaW4gdGhlIHBhcmVudCBnYWxsZXJ5IGFzIGEgXCdjb3ZlclwnIGluIHN0ZWFkIG9mIHRoZSBkZWZhdWx0IGZvbGRlci1pY29uLjwvbGk+DQo8bGk+R2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byBnYWxsZXJpZXMuPC9saT4NCjxsaT5TZXQgYSBkZWZhdWx0IHRlbXBsYXRlIGZvciBlYWNoIGdhbGxlcnkuPC9saT4NCjxsaT5TZXQgdGh1bWJuYWlsIHNpemVzIGZvciBlYWNoIGdhbGxlcnksIHdpdGggcG9zaWJpbGl0aWVzIHRvIHNjYWxlLCBjcm9wIGFuZC9vciB6b29tIHRoZSBpbWFnZXMuPC9saT4NCjxsaT5HaXZlIHRpdGxlcyBhbmQgZGVzY3JpcHRpb25zIHRvIHBob3Rvcy48L2xpPg0KPGxpPlN3aXRjaCBhIHNwZWNpZmljIHBob3RvIG9yIGdhbGxlcnkgdG8gaW5hY3RpdmUsIHByZXZlbnRpbmcgaXQgZnJvbSBkaXNwbGF5LjwvbGk+DQo8bGk+RWRpdC9jb3B5IHRlbXBsYXRlcyBvciBjcmVhdGUgbmV3IG9uZXMuIENoZWNrIHRoZSBpbmZvLWljb24gYmVuZWF0aCB0aGUgdGVtcGxhdGUtY29kZSBmb3IgdGhlIGF2YWlsYWJsZSB2YXJpYWJsZXMuPC9saT4NCjwvdWw+DQo8cD5JbiBvcmRlciB0byBlZGl0IHRlbXBsYXRlcywgdGhlIHVzZXIgbXVzdCBiZWxvbmcgdG8gYSBncm91cCB3aXRoIHRoZSBcJ01vZGlmeSBUZW1wbGF0ZXNcJyBwZXJtaXNzaW9uLiBUbyBlZGl0IHRoZSBnbG9iYWwgR2FsbGVyeSBvcHRpb25zLCB0aGUgdXNlciBtdXN0IGJlbG9uZyB0byBhIGdyb3VwIHdpdGggdGhlIFwnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXNcJyBwZXJtaXNzaW9uLjwvcD4NCjxwPkFsbCB0aXRsZXMsIGRlc2NyaXB0aW9ucyBhbmQgc2V0dGluZ3MgYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIFRoZSBkYXRhYmFzZSB3aWxsIHN5bmNocm9uaXplIHdpdGggdGhlIGZpbGVkaXJlY3RvcnkgZWFjaCB0aW1lIHRoZSBhY2NvcmRpbmcgZ2FsbGVyeSBpcyB2aXNpdGVkIGluIHRoZSBHYWxsZXJ5LWFkbWluLiBBIGxpdHRsZSB3YXJuaW5nOiB3aGVuIHlvdSBtb3ZlIGFuIGltYWdlIG9yIHN1YmRpcmVjdG9yeSB0byBhbm90aGVyIGRpcmVjdG9yeSwgeW91IHdpbGwgbG9vc2UgaXRzIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgc2V0dGluZ3MuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBGZWF0dXJlIFJlcXVlc3Qgb3IgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBNb2R1bGUgRm9yZ2UNCjxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZ2FsbGVyeS8iPkdhbGxlcnkgUGFnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBKb3MgPGEgaHJlZj0ibWFpbHRvOmpvc3ZkQGxpdmUubmwiPi1qb3N2ZEBsaXZlLm5sLTwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dhbGVyaWUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdEaWUgZWluZmFjaHN0ZSBBcnQsIGVpbmUgQmlsZGVyZ2FsZXJpZSB6dSB2ZXJ3YWx0ZW4gdW5kIGRhcnp1c3RlbGxlbi4nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdFaW5lIGVpbmZhY2hlIEJpbGRlcmdhbGVyaWUsIGRpZSBhdXRvbWF0aXNjaCBkaWUgQmlsZGVyIGVpbmVzIGFuZ2VnZWJlbmVuIFZlcnplaWNobmlzc2VzIGRhcnN0ZWxsdC4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEYXMgR2FsZXJpZS1Nb2R1bCB3dXJkZSBlcmZvbGdyZWljaCBpbnN0YWxsaWVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnRGllIFZlcnNpb24gJXMgZGVzIEdhbGVyaWUtTW9kdWxzIHd1cmRlIGluc3RhbGxpZXJ0JzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnRGFzIEdhbGVyaWUtTW9kdWwgd3VyZGUgYXVmIGRpZSBWZXJzaW9uICVzIGFrdHVhbGlzaWVydC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RhcyBHYWxlcmllLU1vZHVsIHd1cmRlIGRlaW5zdGFsbGllcnQnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdEYXMgR2FsZXJpZS1Nb2R1bCB3dXJkZSBkZWluc3RhbGxpZXJ0JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdTaW5kIHNpZSBzaWNoZXIsIGRhc3Mgc2llIGRhcyBHYWxlcmllLU1vZHVsIGRlaW5zdGFsbGllcmVuIHdvbGxlbj8gRGFzIGJldHJpZmZ0IG5pY2h0IGRpZSBCaWxkZXIgc2VsYnN0LCBhYmVyIGRpZSBLb21tZW50YXJlIHVuZCBWb3JzY2hhdWJpbGRlciwgZGllIGRhcyBNb2R1bCBlcnN0ZWxsdCBoYXQsIHdlcmRlbiBkYWR1cmNoIG1pdCBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdadWdyaWZmIHZlcndlaWdlcnQuIEJpdHRlICZ1dW1sO2JlcnByJnV1bWw7ZmVuIHNpZSBkaWUgWnVncmlmZnNyZWNodGUuJzsKJGxhbmdbJ2FjdGlvbnMnXSA9ICdBa3Rpb25lbic7CiRsYW5nWydhY3RpdmUnXSA9ICdha3Rpdic7CiRsYW5nWydhcHBseSddID0gJ0Fud2VuZGVuJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXaXJrbGljaCBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FiYnJlY2hlbic7CiRsYW5nWydjb3B5J10gPSAna29waWVyZW4nOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYXJkJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ2wmb3VtbDtzY2hlbic7CiRsYW5nWydlZGl0J10gPSAnYmVhcmJlaXRlbic7CiRsYW5nWydlcnJvciddID0gJ0ZlaGxlciEnOwokbGFuZ1snc2V0ZmFsc2UnXSA9ICdkZWFrdGl2aWVyZW4nOwokbGFuZ1snc2V0dHJ1ZSddID0gJ2FrdGl2aWVyZW4nOwokbGFuZ1snc3VibWl0J10gPSAnU3BlaWNoZXJuJzsKJGxhbmdbJ2dhbGxlcmllcyddID0gJ0dhbGVyaWVuJzsKJGxhbmdbJ2dhbGxlcnlwYXRoJ10gPSAnR2FsZXJpZSc7CiRsYW5nWydlZGl0Z2FsbGVyeSddID0gJ0dhbGVyaWUgYmVhcmJlaXRlbic7CiRsYW5nWydhZGRnYWxsZXJ5J10gPSAnR2FsZXJpZSBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snbm9nYWxsZXJpZXN0ZXh0J10gPSAna2VpbmUgR2FsZXJpZW4gdmVyZiZ1dW1sO2diYXInOwokbGFuZ1snaW1hZ2UnXSA9ICdCaWxkJzsKJGxhbmdbJ3RpdGxlJ10gPSAnVGl0ZWwnOwokbGFuZ1snZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ25vZmlsZXN0ZXh0J10gPSAna2VpbmUgQmlsZGVyIHZlcmYmdXVtbDtnYmFyJzsKJGxhbmdbJ2dhbGxlcnl0aXRsZSddID0gJ0dhbGVyaWV0aXRlbCc7CiRsYW5nWydjb21tZW50J10gPSAnS29tbWVudGFyJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVm9ybGFnZSc7CiRsYW5nWyd1c2VkZWZhdWx0J10gPSAnU3RhbmRhcmQgdmVyd2VuZGVuJzsKJGxhbmdbJ3RodW1ibmFpbHNpemUnXSA9ICdHciZvdW1sOyZzemxpZztlIGRlcyBWb3JzY2hhdWJpbGRlcyAoYXVmIEJlbnV0emVyc2VpdGUpJzsKJGxhbmdbJ2xlYXZlZW1wdHknXSA9ICcoZnJlaSBsYXNzZW4sIHVtIGRpZSBTdGFuZGFyZC1Wb3JzY2hhdWJpbGRlciBkZXIgQmlsZHZlcndhbHR1bmcgenUgdmVyd2VuZGVuKSc7CiRsYW5nWyd3aWR0aCddID0gJ0JyZWl0ZSc7CiRsYW5nWydoZWlnaHQnXSA9ICdIJm91bWw7aGUnOwokbGFuZ1sncmVzaXplbWV0aG9kJ10gPSAnU2thbGllcnVuZ3NtZXRob2RlJzsKJGxhbmdbJ2Nyb3AnXSA9ICdiZXNjaG5laWRlbic7CiRsYW5nWydzY2FsZSddID0gJ3NrYWxpZXJlbic7CiRsYW5nWyd6b29tY3JvcCddID0gJ3pvb21lbiAmYW1wOyBiZXNjaG5laWRlbic7CiRsYW5nWyd6b29tc2NhbGUnXSA9ICd6b29tZW4gJmFtcDsgc2thbGllcmVuJzsKJGxhbmdbJ2NyZWF0ZXRodW1icyddID0gJ1ZvcnNjaGF1YmlsZGVyIChuZXUpIGVyc3RlbGxlbic7CiRsYW5nWyd0aHVtYnNjcmVhdGVkJ10gPSAnVm9yc2NoYXViaWxkZXIgd3VyZGVuIGVyc3RlbGx0Lic7CiRsYW5nWydnYWxsZXJ5dXBkYXRlZCddID0gJ0RpZSBHYWxlcmllIHd1cmRlIGVyZm9sZ3JlaWNoIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snZXJyb3JfdXBkYXRlZ2FsbGVyeWZhaWxlZCddID0gJ0FrdHVhbGlzaWVydW5nIGRlciBHYWxlcmllIGZlaGxnZXNjaGxhZ2VuLic7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdWb3JsYWdlbic7CiRsYW5nWyd0aXRsZV9hdmFpbGFibGVfdGVtcGxhdGVzJ10gPSAndmVyZiZ1dW1sO2diYXJlIFZvcmxhZ2VuJzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1N0YW5kYXJkJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ05ldWUgVm9ybGFnZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfdGVtcGxhdGUnXSA9ICdWb3JsYWdlbi1FZGl0b3InOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1ZvcmxhZ2VubmFtZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdWb3JsYWdlbnF1ZWxsZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVqcyddID0gJ1ZvcmxhZ2VuLUphdmFTY3JpcHQnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlY3NzJ10gPSAnVm9ybGFnZW4tU3R5bGVzaGVldCc7CiRsYW5nWyd0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEaWUgVm9ybGFnZSB3dXJkZSBlcmZvbGdyZWljaCBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3RlbXBsYXRlYWRkZWQnXSA9ICdEaWUgVm9ybGFnZSB3dXJkZSBlcmZvbGdyZWljaCBoaW56dWdlZiZ1dW1sO2d0Lic7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdEZXIgVm9ybGFnZW5uYW1lIGV4aXN0aWVydCBiZXJlaXRzLic7CiRsYW5nWyd0ZW1wbGF0ZWRlbGV0ZWQnXSA9ICdWb3JsYWdlIGdlbCZvdW1sO3NjaHQuJzsKJGxhbmdbJ2F2YWlsYWJsZXZhcmlhYmxlcyddID0gJ1ZlcmYmdXVtbDtnYmFyZSBTbWFydHktVmFyaWFibGVuJzsKJGxhbmdbJ2F2YWlsYWJsZXZhcmlhYmxlc2xpc3QnXSA9ICdUaGVzZSBhcmUgdGhlIHZhcmlhYmxlcyB5b3UgY2FuIHVzZSB0byBjdXN0b21pemUgeW91ciB0ZW1wbGF0ZTo8YnIgLz48YnIgLz4KeyRtb2R1bGVfbWVzc2FnZX0gLSBlcnJvciBtZXNzYWdlLCBpcyBvbmx5IHNldCBpZiB0aGVyZSYjMDM5O3MgYSBtZXNzYWdlPGJyIC8+CnskZ2FsbGVyeXRpdGxlfSAtIHRpdGxlIG9mIHRoZSBnYWxsZXJ5LiBJZiB0aGVyZSBpcyBubyB0aXRsZSwgdGhpcyB3aWxsIHNob3cgdGhlIGRpcmVjdG9yeSBuYW1lPGJyIC8+CnskZ2FsbGVyeWNvbW1lbnR9IC0gY29tbWVudCBvZiB0aGUgZ2FsbGVyeTxiciAvPgp7JHBhcmVudGxpbmt9IC0gbGluayB0byB0aGUgcGFyZW50IGZvbGRlcjxiciAvPgp7JGltYWdlY291bnR9IC0gc2hvd3MgZS5nLiAmcXVvdDs2IGltYWdlcyZxdW90OywgZGVwZW5kaW5nIG9uIGxhbmd1YWdlPGJyIC8+CnskaXRlbWNvdW50fSAtIG51bWJlciBvZiBpdGVtcywgaW1hZ2VzICsgZm9sZGVyczxiciAvPgp7JHBhZ2VzfSAtIG51bWJlciBvZiBwYWdlczxiciAvPgp7JHByZXZwYWdlfSAtIGxpbmsgdG8gcHJldmlvdXMgcGFnZSwgaWYgYXBwbGljYWJsZTxiciAvPgp7JG5leHRwYWdlfSAtIGxpbmsgdG8gbmV4dCBwYWdlLCBpZiBhcHBsaWNhYmxlPGJyIC8+CnskcGFnZWxpbmtzfSAtIGxpbmtzIHRvIGVhY2ggZXhpc3RpbmcgcGFnZTxiciAvPgp7JGltYWdlc30gLSBhcnJheSB3aXRoIGtleXM6PGJyIC8+CiAtIGZpbGUgLSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBvcmlnaW5hbCBpbWFnZSAob3Igc3ViZ2FsbGVyeSk8YnIgLz4KIC0gdGl0bGUgLSB0aXRsZSBvZiB0aGUgaW1hZ2UuIElmIHRoZXJlIGlzIG5vIHRpdGxlLCB0aGlzIHdpbGwgc2hvdyB0aGUgZmlsZW5hbWU8YnIgLz4KIC0gY29tbWVudCAtIGNvbW1lbnQgdG8gdGhlIGltYWdlPGJyIC8+CiAtIGZpbGVkYXRlIC0gY3JlYXRpb24gZGF0ZS90aW1lPGJyIC8+CiAtIHRodW1iIC0gcmVsYXRpdmUgcGF0aCB0byB0aGUgdGh1bWJuYWlsLiBJbiBjYXNlIG9mIGEgc3ViZ2FsbGVyeSwgdGhpcyB3aWwgcmV2ZXJ0IHRvIHRoZSBpbWFnZSB3aGljaCBpcyBzZXQgYXMgZGVmYXVsdCBpbiB0aGF0IHN1YmdhbGxlcnkuIElmIG5vIGltYWdlIGlzIHNldCBhcyBkZWZhdWx0LCBhIHN0YW5kYXJkIGZvbGRlci1pY29uIHdpbGwgYmUgdXNlZC48YnIgLz4KIC0gaXNkaXIgLSB0cnVlIGlmIGl0XCdzIGEgc3ViZ2FsbGVyeTxiciAvPgogLSBmb2xkZXJsaW5rIC0gZGVwcmVjYXRlZCEgVXNlIGZpbGUgYW5kIHRodW1iIGluc3RlYWQ8YnIgLz4KJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25lbic7CiRsYW5nWydhbGxvd2VkX2V4dGVuc2lvbnMnXSA9ICdlcmxhdWJ0ZSBEYXRlaWVuZHVuZ2VuJzsKJGxhbmdbJ3VzZV9jb21tZW50X3d5c2l3eWcnXSA9ICdFaW5lbiBncmFmaXNjaGVuIEVkaXRvciBmJnV1bWw7ciBkYXMgS29tbWVudGFyZmVsZCB2ZXJ3ZW5kZW4nOwokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdEaWUgT3B0aW9uZW4gd3VyZGVuIGVyZm9sZ3JlaWNoIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snaW1hZ2VzJ10gPSAnQmlsZGVyJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmFtcDtsdDsgenVyJnV1bWw7Y2snOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICd3ZWl0ZXIgJmFtcDtndDsnOwokbGFuZ1snZGVmYXVsdGdhbGxlcnljb21tZW50J10gPSAnV2FzIHNpZSBoaWVyIHNlaGVuLCBpc3QgZGFzIEdhbGVyaWUtTW9kdWwuIFdlbm4gc2llIGVpbiBwYWFyIEJpbGRlciBpbiBkYXMgVmVyemVpY2huaXMgJmJkcXVvO3VwbG9hZHMvaW1hZ2VzL0dhbGxlcnkmbGRxdW87IGtvcGllcnQgaGFiZW4sIGRhbm4gc2VoZW4gc2llIHNpZSBqZXR6dCB1bnRlbi4gU2llIGsmb3VtbDtubmVuIFRpdGVsLCBCZXNjaHJlaWJ1bmdlbiB1bmQgVm9yc2NoYXViaWxkZXIgaW0gQWRtaW5pc3RyYXRpb25zYmVyZWljaCBiZWFyYmVpdGVuLiBBbGxlIHdlaXRlcmVuIEZ1bmt0aW9uZW4gZGllc2VzIE1vZHVscyBzaW5kIGluIGRlciBNb2R1bGhpbGZlIGJlc2NocmllYmVuLic7CiRsYW5nWydoZWxwX2RpciddID0gJ1BhcmFtZXRlciwgdW0gZWluIFZlcnplaWNobmlzIHJlbGF0aXYgenUgJmJkcXVvO3VwbG9hZHMvaW1hZ2VzL0dhbGxlcnkvJmxkcXVvOyBhbnp1Z2ViZW4nOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJ1VzZSBhIHNlcGFyYXRlIGRhdGFiYXNlIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBwaG90byBnYWxsZXJ5LiBUaGlzIHRlbXBsYXRlIG11c3QgZXhpc3QgYW5kIGJlIHZpc2libGUgaW4gdGhlIHRlbXBsYXRlIHRhYiBvZiB0aGUgR2FsbGVyeSBhZG1pbiwgdGhvdWdoIGl0IGRvZXMgbm90IG5lZWQgdG8gYmUgdGhlIGRlZmF1bHQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gdGhlIHRlbXBsYXRlIHdoaWNoIGlzIGFzc2lnbmVkIHRvIHRoZSBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLCBlbHNlIHRoZSBkZWZhdWx0IHRlbXBsYXRlLic7CiRsYW5nWydoZWxwX251bWJlciddID0gJ01heGltYWxlIEFuemFobCBhbiBWb3JzY2hhdWJpbGRlcm4sIGRpZSBwcm8gU2VpdGUgYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4gKGxlZXIgbGFzc2VuLCB1bSBhbGxlIEJpbGRlciBhbnp1emVpZ2VuKSc7CiRsYW5nWydoZWxwX3N0YXJ0J10gPSAnQmVpbSB4LXRlbiBCaWxkIGJlZ2lubmVuIChsZWVyIGxhc3NlbiwgdW0gYmVpbSBlcnN0ZW4gQmlsZCB6dSBiZWdpbm5lbiknOwokbGFuZ1snaGVscF9zaG93J10gPSAnT3ZlcmlkZSB3aGljaCBpbWFnZXMgaGF2ZSB0byBiZSBzaG93bi4gUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgo8bGk+JiMwMzk7YWN0aXZlJiMwMzk7IC0gdG8gZGlzcGxheSB0aGUgaW1hZ2VzIG1hcmtlZCBhcyBhY3RpdmUgKGRlZmF1bHQpPC9saT4KPGxpPiYjMDM5O2luYWN0aXZlJiMwMzk7IC0gdG8gZGlzcGxheSBvbmx5IHRoZSBpbWFnZXMgbWFya2VkIGFzIGluYWN0aXZlIDwvbGk+CjxsaT4mIzAzOTthbGwmIzAzOTsgLSB0byBkaXNwbGF5IGFsbCBpbWFnZXM8L2xpPgo8L3VsPgonOwokbGFuZ1snaGVscF9jYXRlZ29yeSddID0gJ1RvIGRpc3BsYXkgb25seSBpbWFnZXMvZ2FsbGVyaWVzIGFzc2lnbmVkIHRvIHRoZSBzcGVjaWZpZWQgY2F0ZWdvcmllcy4gVXNlICogYWZ0ZXIgdGhlIG5hbWUgdG8gc2hvdyBjaGlsZHJlbi4gIE11bHRpcGxlIGNhdGVnb3JpZXMgY2FuIGJlIHVzZWQgaWYgc2VwYXJhdGVkIHdpdGggYSBjb21tYS4gTGVhdmluZyBlbXB0eSwgd2lsbCBzaG93IGFsbCBjYXRlZ29yaWVzLic7CiRsYW5nWydoZWxwX2FjdGlvbiddID0gJ092ZXJyaWRlIHRoZSBkZWZhdWx0IGFjdGlvbi4gVXNlIGl0IGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGFib3ZlIHBhcmFtZXRlcnMuIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KPGxpPiYjMDM5O3Nob3dyYW5kb20mIzAzOTsgLSB0byBkaXNwbGF5IGEgc2V0IG9mIHJhbmRvbSB0aHVtYi1pbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykuIFRoZSBkaXIgcGFyYW1ldGVyIG11c3QgYmUgc2V0LCBvciB0aGUgZGVmYXVsdCBHYWxsZXJ5LXJvb3Qgd2lsbCBiZSB1c2VkLiBVc2UgJiMwMzk7LyomIzAzOTsgYWZ0ZXIgdGhlIG5hbWUgdG8gaW5jbHVkZSBpbWFnZXMgZnJvbSBzdWJkaXJlY3RvcmllczwvbGk+CjxsaT4mIzAzOTtzaG93bGF0ZXN0JiMwMzk7IC0gdG8gZGlzcGxheSB0aGUgbW9zdCByZWNlbnRseSBhZGRlZCBpbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykgVGhlIGRpciBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQsIG9yIHRoZSBkZWZhdWx0IEdhbGxlcnktcm9vdCB3aWxsIGJlIHVzZWQuIFN1YmRpcmVjdG9yaWVzIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkPC9saT4KPGxpPiYjMDM5O3Nob3dsYXRlc3RkaXImIzAzOTsgLSBub3QgeWV0IGltcGxlbWVudGVkISBNZW5kIHRvIGRpc3BsYXkgYSBzZXQgb2YgcmFuZG9tIHRodW1iLWltYWdlcyBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGRpcmVjdG9yeSAoYXBwbGllcyBvbmx5IHRvIHRoZSBpbWFnZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIGEgbnVtYmVyIG9mIDYgaW1hZ2VzKSBUaGUgdGh1bWItc2V0dGluZ3Mgb2YgdGhlIEdhbGxlcnktcm9vdCB3aWxsIGJlIHVzZWQ8L2xpPgo8L3VsPgonOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPgo8bGk+VmVyc2lvbiAxLjAuMy4gOCBTZXB0ZW1iZXIgMjAwOS4gQnVnZml4IGZvciBbIzQwMDFdLCBJbXByb3ZlZCBzeW5jaHJvbml6aW5nIHRoZSBkYXRhYmFzZSB0byBmaWxlcywgYW5kIG90aGVyIG1pbm9yIGltcHJvdmVtZW50cy48L2xpPgo8bGk+VmVyc2lvbiAxLjAuMi4gNSBTZXB0ZW1iZXIgMjAwOS4gQnVnZml4IGZvciBbIzM5ODNdIHJlZ2FyZGluZyBzcGFjZXMgaW4gZGlyZWN0b3J5IG5hbWVzLCBBZGRlZCB0ZW1wbGF0ZXMgRmFuY3lib3ggYW5kIEx5dGVib3hfc2xpZGVzaG93IGFzIGluIEZlYXR1cmUgcmVxdWVzdHMgWyMzOTQ0XSBhbmQgWyMzOTY3XTwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xLiAyMyBBdWd1c3QgMjAwOS4gQXBwbHkgdGh1bWJuYWlsLXNldHRpbmdzIG9uIFwnQWxidW0tY292ZXJzXCcgWyMzOTI0XSwgQnVnZml4IGZvciBbIzM5MjddLCBBZGRlZCBtaXNzaW5nIC9kaXYgdG8gdGhpY2tib3gtdGVtcGxhdGUsIGZpeGVkIGFuIGlzc3VlIHdpdGggZ2VuZXJhdGluZyB0aHVtYm5haWxzIHdoZW4gbm8gdGh1bWJzIGF2YWlsYWJsZSBpbiBJbWFnZU1hbmFnZXIsIGltcHJvdmVkIHRoZSBuYW1pbmcgb2YgdGh1bWJzLCBCdWdmaXggZm9yIFsjMzkzMV0sIFByZXZlbnQgZGlzcGxheSB0aGUgY29udGVudCBvZiBnYWxsZXJpZXMgdGhhdCBhcmUgc2V0IGFzIGluYWN0aXZlLjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4gMTcgQXVndXN0IDIwMDkuIFBhZ2luYXRpb24gcGFyYW1ldGVycyBhZGRlZCwgU3RhbmRhcmQgdGVtcGxhdGVzIGNoYW5nZWQgYWNjb3JkaW5nbHksIEV4dGVuZGVkIHRoZSBtb2R1bGUtaGVscCwgQWRkZWQgZnVuY3Rpb25zIHRvIHNob3cgcmFuZG9tIG9yIGxhdGVzdCBpbWFnZXMsIFN1cHBvcnQgb2YgcHJldHR5LXVybHMsIFZhcmlvdXMgaW1wcm92ZW1lbnRzPC9saT4KPGxpPlZlcnNpb24gMC42LiA5IEF1Z3VzdCAyMDA5LiBJbml0aWFsIEJldGEgUmVsZWFzZS48L2xpPgo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBHYWxsZXJ5IG1vZHVsZSBpcyBhbiBlYXN5IHRvIHVzZSBwaG90byBnYWxsZXJ5IHdoaWNoIGF1dG9tYXRpY2FsbHkgc2hvd3MgdGhlIGltYWdlcyBvZiBhIHNwZWNpZmllZCBkaXJlY3RvcnkuIFN1YmRpcmVjdG9yaWVzIHdpbGwgYmUgc2hvd24gYXMgc3ViZ2FsbGVyaWVzLiBJdCBoYXMgbG90cyBvZiBmZWF0dXJlcywgc3VjaCBhcyBhdXRvbWF0aWMgdGh1bWJuYWlsaW5nLCB0aGUgdXNlIG9mIG11bHRpcGxlIExpZ2h0Ym94LWxpa2UgdGVtcGxhdGVzIG9yIGFueSBjc3MvamF2YXNjcmlwdCB0ZW1wbGF0ZSB5b3UgbGlrZSwgYW5kIHlvdSBjYW4gZ2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byB5b3VyIGdhbGxlcmllcyBhcyB3ZWxsIGFzIHlvdXIgcGhvdG9zLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPkZpcnN0LCBpbnNlcnQgdGhlIG1vZHVsZSB3aXRoIHRoZSB7R2FsbGVyeX0gdGFnIGludG8geW91ciBwYWdlIG9yIHRlbXBsYXRlIGFueXdoZXJlIHlvdSB3aGlzaC4gVGhlbiB1cGxvYWQgc29tZSBpbWFnZXMgd2l0aCB0aGUgSW1hZ2UgTWFuYWdlciwgRmlsZSBNYW5hZ2VyIChlLmcuIG11bHRpcGxlIGltYWdlcyBpbiB6aXBmaWxlKSBvciBGVFAgdG8gdGhlIHVwbG9hZHMvaW1hZ2VzL0dhbGxlcnkvIGRpcmVjdG9yeS48L3A+CjxwPlRoYXQmIzAzOTtzIGl0ITwvcD4KPHA+SWYgeW91IHdhbnQgbW9yZSBwaG90byBnYWxsZXJpZXMsIHNpbXBseSBjcmVhdGUgYSBzdWJkaXJlY3RvcnkgYW5kIHVwbG9hZCB5b3VyIHBob3RvcyBhcyBkZXNjcmliZWQuIEJ5IGFkZGluZyBwYXJhbWV0ZXJzIHRvIHRoZSB7R2FsbGVyeX0gdGFnLCB5b3UgY2FuIGVhc2lseSBtYW5pcHVsYXRlIHdoaWNoIHN1YmdhbGxlcnkgd2lsbCBiZSBzaG93biBpbiB3aGljaCB0ZW1wbGF0ZSwgZS5nLiB7R2FsbGVyeSBkaXI9JnF1b3Q7aG9saWRheXMvTmV0aGVybGFuZHMyMDA5JnF1b3Q7IHRlbXBsYXRlPSZxdW90O0xpZ2h0Ym94JnF1b3Q7fTwvcD4KPHA+QnkgZGVmYXVsdCB0aGUgdGh1bWJuYWlscyBmcm9tIHRoZSBJbWFnZSBNYW5hZ2VyIGFyZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHBob3RvIGdhbGxlcmllcy48L3A+CjxoMz5BZHZhbmNlZCBPcHRpb25zLCBidXQgc3RpbGwgZWFzeSB0byB1c2U8L2gzPgo8cD5JbiB0aGUgYWRtaW4gc2VjdGlvbiB5b3UgaGF2ZSBsb3RzIG9mIG90aGVyIG9wdGlvbnM6PC9wPgo8dWw+CjxsaT5TZXQgYSBwaG90byBhcyB0aGUgZGVmYXVsdCBmb3IgYSBnYWxsZXJ5LCBzbyBpdCB3aWxsIHNob3cgaW4gdGhlIHBhcmVudCBnYWxsZXJ5IGFzIGEgJiMwMzk7Y292ZXImIzAzOTsgaW4gc3RlYWQgb2YgdGhlIGRlZmF1bHQgZm9sZGVyLWljb24uPC9saT4KPGxpPkdpdmUgdGl0bGVzIGFuZCBkZXNjcmlwdGlvbnMgdG8gZ2FsbGVyaWVzLjwvbGk+CjxsaT5TZXQgYSBkZWZhdWx0IHRlbXBsYXRlIGZvciBlYWNoIGdhbGxlcnkuPC9saT4KPGxpPlNldCB0aHVtYm5haWwgc2l6ZXMgZm9yIGVhY2ggZ2FsbGVyeSwgd2l0aCBwb3NpYmlsaXRpZXMgdG8gc2NhbGUsIGNyb3AgYW5kL29yIHpvb20gdGhlIGltYWdlcy48L2xpPgo8bGk+R2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byBwaG90b3MuPC9saT4KPGxpPlN3aXRjaCBhIHNwZWNpZmljIHBob3RvIG9yIGdhbGxlcnkgdG8gaW5hY3RpdmUsIHByZXZlbnRpbmcgaXQgZnJvbSBkaXNwbGF5LjwvbGk+CjxsaT5FZGl0L2NvcHkgdGVtcGxhdGVzIG9yIGNyZWF0ZSBuZXcgb25lcy4gQ2hlY2sgdGhlIGluZm8taWNvbiBiZW5lYXRoIHRoZSB0ZW1wbGF0ZS1jb2RlIGZvciB0aGUgYXZhaWxhYmxlIHZhcmlhYmxlcy48L2xpPgo8L3VsPgo8cD5JbiBvcmRlciB0byBlZGl0IHRlbXBsYXRlcywgdGhlIHVzZXIgbXVzdCBiZWxvbmcgdG8gYSBncm91cCB3aXRoIHRoZSAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7IHBlcm1pc3Npb24uIFRvIGVkaXQgdGhlIGdsb2JhbCBHYWxsZXJ5IG9wdGlvbnMsIHRoZSB1c2VyIG11c3QgYmVsb25nIHRvIGEgZ3JvdXAgd2l0aCB0aGUgJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgcGVybWlzc2lvbi48L3A+CjxwPkFsbCB0aXRsZXMsIGRlc2NyaXB0aW9ucyBhbmQgc2V0dGluZ3MgYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIFRoZSBkYXRhYmFzZSB3aWxsIHN5bmNocm9uaXplIHdpdGggdGhlIGZpbGVkaXJlY3RvcnkgZWFjaCB0aW1lIHRoZSBhY2NvcmRpbmcgZ2FsbGVyeSBpcyB2aXNpdGVkIGluIHRoZSBHYWxsZXJ5LWFkbWluLiBBIGxpdHRsZSB3YXJuaW5nOiB3aGVuIHlvdSBtb3ZlIGFuIGltYWdlIG9yIHN1YmRpcmVjdG9yeSB0byBhbm90aGVyIGRpcmVjdG9yeSwgeW91IHdpbGwgbG9vc2UgaXRzIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgc2V0dGluZ3MuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEZlYXR1cmUgUmVxdWVzdCBvciBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIE1vZHVsZSBGb3JnZQo8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2dhbGxlcnkvIj5HYWxsZXJ5IFBhZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIEpvcyA8YSBocmVmPSJtYWlsdG86am9zdmRAbGl2ZS5ubCI+LWpvc3ZkQGxpdmUubmwtPC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgonOwokbGFuZ1sncWNhJ10gPSAnMTI0OTkyMzc2NC0xNTg3MTg3OC05Njg5NTI0NSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjQzNDAxMjYxNDk5Mzk2NjIwMDAuMTI0NzE1MTIyMi4xMjUyMzMxMjc5LjEyNTIzNDA2NTQuMjInOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjQ3MTUxNTc1LjEuMi51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPXRyYW5zbGF0aW9uY2VudGVyIGNtc21hZGVzaW1wbGV8dXRtY21kPW9yZ2FuaWMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI1MjM0MDY1NCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dhbGxlcnkgJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGVuIGVua2xlc3RlIG0mYXJpbmc7dGVuICZhcmluZzsgYmVoYW5kbGUgb2cgdmlzZSBmb3RvYWxidW0gcCZhcmluZzsnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdFdCBnYWxsZXJpIHNvbSBlciBlbmtlbHQgJmFyaW5nOyBicnVrZSBzb20gYXV0b21hdGlzayB2aXNlciBiaWxkZW5lIGkgZW4gYW5naXR0IGthdGFsb2cnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdHYWxsZXJ5IG1vZHVsZW4gYmxlIGluc3RhbGxlcnQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnR2FsbGVyeSBtb2R1bGVuIG1lZCB2ZXJzam9uICVzIGJsZSBpbnN0YWxsZXJ0JzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnR2FsbGVyeSBtb2R1bGVuIGVyIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdHYWxsZXJ5IG1vZHVsZW4gYmxlIGF2aW5zdGFsbGVydCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ0dhbGxlcnkgbW9kdWxlbiBibGUgYXZpbnN0YWxsZXJ0JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIEdhbGxlcnk/IFRoaXMgZG9lcyBub3QgZWZmZWN0IHRoZSBpbWFnZXMsIGJ1dCBhbGwgY29tbWVudC1kYXRhIGFuZCB0aHVtYm5haWxzIHRoYXQgd2VyZSBjcmVhdGVkIGJ5IEdhbGxlcnkgd2lsbCBiZSBsb3N0Lic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdUaWxnYW5nIG5la3RldC4gVmVubmxpZ3N0IHNqZWtrIGRpbmUgcmV0dGlnaGV0ZXIuJzsKJGxhbmdbJ2FjdGlvbnMnXSA9ICdIYW5kbGluZ2VyJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2ZSc7CiRsYW5nWydhcHBseSddID0gJ1V0ZiZvc2xhc2g7cic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBzbGV0dGU/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydjb3B5J10gPSAnS29waWVyJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0dCc7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcic7CiRsYW5nWydlcnJvciddID0gJ0ZlaWwhJzsKJGxhbmdbJ3NldGZhbHNlJ10gPSAnU2V0dCB1c2Fubic7CiRsYW5nWydzZXR0cnVlJ10gPSAnU2V0dCBzYW5uJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0xhZ3JlJzsKJGxhbmdbJ2dhbGxlcmllcyddID0gJ0dhbGxlcmllcic7CiRsYW5nWydnYWxsZXJ5cGF0aCddID0gJ0dhbGxlcmknOwokbGFuZ1snZWRpdGdhbGxlcnknXSA9ICdSZWRpZ2VyIGdhbGxlcmknOwokbGFuZ1snYWRkZ2FsbGVyeSddID0gJ0xlZ2cgdGlsIGdhbGxlcmknOwokbGFuZ1snbm9nYWxsZXJpZXN0ZXh0J10gPSAnSW5nZW4gZ2FsbGVyaSB0aWxnamVuZ2VsaWcnOwokbGFuZ1snaW1hZ2UnXSA9ICdCaWxkZSc7CiRsYW5nWyd0aXRsZSddID0gJ1RpdHRlbCc7CiRsYW5nWydkYXRlJ10gPSAnRGF0byc7CiRsYW5nWydub2ZpbGVzdGV4dCddID0gJ0luZ2VuIGJpbGRlciB0aWxnamVuZ2VsaWdlJzsKJGxhbmdbJ2dhbGxlcnl0aXRsZSddID0gJ0dhbGxlcml0aXR0ZWwnOwokbGFuZ1snY29tbWVudCddID0gJ0tvbW1lbnRhcic7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01hbCc7CiRsYW5nWyd1c2VkZWZhdWx0J10gPSAnYmVueXR0IHN0YW5kYXJkJzsKJGxhbmdbJ3RodW1ibmFpbHNpemUnXSA9ICdNaW5pYXR5cmJpbGRlc3Qmb3NsYXNoO3JyZWxzZSAoRnJvbnRlbmQpJzsKJGxhbmdbJ2xlYXZlZW1wdHknXSA9ICcobGEgZGV0dGUgZmVsdCB0b210IG9tIGR1IHZpbCBiZW55dHRlIHN0YW5kYXJkIG1pbmlhdHlyYmlsZGVyIGZyYSBJbWFnZU1hbmFnZXIpJzsKJGxhbmdbJ3dpZHRoJ10gPSAnYnJlZGRlJzsKJGxhbmdbJ2hlaWdodCddID0gJ2gmb3NsYXNoO3lkZSc7CiRsYW5nWydyZXNpemVtZXRob2QnXSA9ICdza2FsZXJpbmdzbWV0b2RlJzsKJGxhbmdbJ2Nyb3AnXSA9ICdrbGlwcCc7CiRsYW5nWydzY2FsZSddID0gJ3NrYWxlcic7CiRsYW5nWyd6b29tY3JvcCddID0gJ3pvb20gJmFtcDsga2xpcHAnOwokbGFuZ1snem9vbXNjYWxlJ10gPSAnem9vbSAmYW1wOyBza2FsZXInOwokbGFuZ1snY3JlYXRldGh1bWJzJ10gPSAnKFJlLSlvcHByZXR0IG1pbmlhdHlyYmlsZGVyJzsKJGxhbmdbJ3RodW1ic2NyZWF0ZWQnXSA9ICdNaW5pYXR5cmJpbGRlciBvcHByZXR0ZXQnOwokbGFuZ1snZ2FsbGVyeXVwZGF0ZWQnXSA9ICdHYWxsZXJpIG9wcGRhdGVydCc7CiRsYW5nWydlcnJvcl91cGRhdGVnYWxsZXJ5ZmFpbGVkJ10gPSAnT3BwZGF0ZXJpbmcgYXYgZ2FsbGVyaWV0IGZlaWxldCc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdNYWxlcic7CiRsYW5nWyd0aXRsZV9hdmFpbGFibGVfdGVtcGxhdGVzJ10gPSAnVGlsZ2plbmdlbGlnZSBtYWxlcic7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ05hdm4nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdPcHByZXR0IG55IG1hbCc7CiRsYW5nWyd0aXRsZV90ZW1wbGF0ZSddID0gJ01hbCByZWRpZ2VyZXInOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ01hbG5hdm4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTWFsa2lsZGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlanMnXSA9ICdNYWwgamF2YWNrcmlwdCc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVjc3MnXSA9ICdNYWwgQ1NTLXN0aWxhcmsnOwokbGFuZ1sndGVtcGxhdGV1cGRhdGVkJ10gPSAnTWFsZW4gYmxlIG9wcGRhdGVydCc7CiRsYW5nWyd0ZW1wbGF0ZWFkZGVkJ10gPSAnTWFsZW4gYmxlIGxhZ3QgdGlsJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ01hbG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ3RlbXBsYXRlZGVsZXRlZCddID0gJ01hbCBzbGV0dGV0JzsKJGxhbmdbJ2F2YWlsYWJsZXZhcmlhYmxlcyddID0gJ1RpbGdqZW5nZWxpZ2UgU21hcnR5dmFyaWFibGVyIGZvciBtYWwnOwokbGFuZ1snYXZhaWxhYmxldmFyaWFibGVzbGlzdCddID0gJ1RoZXNlIGFyZSB0aGUgdmFyaWFibGVzIHlvdSBjYW4gdXNlIHRvIGN1c3RvbWl6ZSB5b3VyIHRlbXBsYXRlOjxiciAvPjxiciAvPgp7JG1vZHVsZV9tZXNzYWdlfSAtIGVycm9yIG1lc3NhZ2UsIGlzIG9ubHkgc2V0IGlmIHRoZXJlJiMwMzk7cyBhIG1lc3NhZ2U8YnIgLz4KeyRnYWxsZXJ5dGl0bGV9IC0gdGl0bGUgb2YgdGhlIGdhbGxlcnkuIElmIHRoZXJlJiMwMzk7cyBubyB0aXRsZSwgdGhpcyB3aWxsIHNob3cgdGhlIGRpcmVjdG9yeSBuYW1lPGJyIC8+CnskZ2FsbGVyeWNvbW1lbnR9IC0gY29tbWVudCBvZiB0aGUgZ2FsbGVyeTxiciAvPgp7JHBhcmVudGxpbmt9IC0gbGluayB0byB0aGUgcGFyZW50IGZvbGRlcjxiciAvPgp7JGltYWdlY291bnR9IC0gc2hvd3MgZS5nLiAmcXVvdDs2IGltYWdlcyZxdW90OywgZGVwZW5kaW5nIG9uIGxhbmd1YWdlPGJyIC8+CnskaXRlbWNvdW50fSAtIG51bWJlciBvZiBpdGVtcywgaW1hZ2VzICsgZm9sZGVyczxiciAvPgp7JHBhZ2VzfSAtIG51bWJlciBvZiBwYWdlczxiciAvPgp7JHByZXZwYWdlfSAtIGxpbmsgdG8gcHJldmlvdXMgcGFnZSwgaWYgYXBwbGljYWJsZTxiciAvPgp7JG5leHRwYWdlfSAtIGxpbmsgdG8gbmV4dCBwYWdlLCBpZiBhcHBsaWNhYmxlPGJyIC8+CnskcGFnZWxpbmtzfSAtIGxpbmtzIHRvIGVhY2ggZXhpc3RpbmcgcGFnZTxiciAvPgp7JGltYWdlc30gLSBhcnJheSB3aXRoIGtleXM6PGJyIC8+CiAtIGZpbGUgLSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBvcmlnaW5hbCBpbWFnZSAob3Igc3ViZ2FsbGVyeSk8YnIgLz4KIC0gdGl0bGUgLSB0aXRsZSBvZiB0aGUgaW1hZ2UuIElmIHRoZXJlIGlzIG5vIHRpdGxlLCB0aGlzIHdpbGwgc2hvdyB0aGUgZmlsZW5hbWU8YnIgLz4KIC0gY29tbWVudCAtIGNvbW1lbnQgdG8gdGhlIGltYWdlPGJyIC8+CiAtIGZpbGVkYXRlIC0gY3JlYXRpb24gZGF0ZS90aW1lPGJyIC8+CiAtIHRodW1iIC0gcmVsYXRpdmUgcGF0aCB0byB0aGUgdGh1bWJuYWlsLiBJbiBjYXNlIG9mIGEgc3ViZ2FsbGVyeSwgdGhpcyB3aWwgcmV2ZXJ0IHRvIHRoZSBpbWFnZSB3aGljaCBpcyBzZXQgYXMgZGVmYXVsdCBpbiB0aGF0IHN1YmdhbGxlcnkuIElmIG5vIGltYWdlIGlzIHNldCBhcyBkZWZhdWx0LCBhIHN0YW5kYXJkIGZvbGRlci1pY29uIHdpbGwgYmUgdXNlZC48YnIgLz4KIC0gaXNkaXIgLSB0cnVlIGlmIGl0JiMwMzk7cyBhIHN1YmdhbGxlcnk8YnIgLz4KIC0gZm9sZGVybGluayAtIGRlcHJlY2F0ZWQhIFVzZSBmaWxlIGFuZCB0aHVtYiBpbnN0ZWFkPGJyIC8+Cic7CiRsYW5nWydvcHRpb25zJ10gPSAnVmFsZyc7CiRsYW5nWydhbGxvd2VkX2V4dGVuc2lvbnMnXSA9ICdUaWxsYXR0ZSB1dHZpZGVsc2VyKEV4dGVuc2lvbnMpJzsKJGxhbmdbJ3VzZV9jb21tZW50X3d5c2l3eWcnXSA9ICdCZW55dHQgZW4gV1lTSVdZRyByZWRpZ2VyZXIgcCZhcmluZzsgR2FsbGVyeSBrb21tZW50YXJmZWx0ZXQnOwokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdWYWxnZW5lIGJsZSBvcHBkYXRlcnQuJzsKJGxhbmdbJ2ltYWdlcyddID0gJ2JpbGRlcic7CiRsYW5nWydwcmV2cGFnZSddID0gJ0ZvcnJpZ2UnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICduZXN0ZSc7CiRsYW5nWydkZWZhdWx0Z2FsbGVyeWNvbW1lbnQnXSA9ICdUaGFuayB5b3UgZm9yIGluc3RhbGxpbmcgdGhlIEdhbGxlcnkgbW9kdWxlLiBJZiB5b3UgaGF2ZSB1cGxvYWRlZCBzb21lIGltYWdlcyB0byB0aGUgJiMwMzk7dXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS8mIzAzOTsgZm9sZGVyLCB5b3Ugd2lsbCBzZWUgdGhlbSBiZWxvdy4gWW91IGNhbiBlZGl0IHRpdGxlcywgZGVzY3JpcHRpb25zIGFuZCB0aHVtYm5haWwgc2l6ZXMgaW4gdGhlIGFkbWluIHNlY3Rpb24uIENoZWNrIG91dCBhbGwgdGhlIG90aGVyIGZlYXR1cmVzIHRoaXMgbW9kdWxlIG9mZmVycyBpbiB0aGUgbW9kdWxlLWhlbHAuJzsKJGxhbmdbJ2hlbHBfZGlyJ10gPSAnUGFyYW1ldGVyIHRvIHNwZWNpZnkgYSBkaXJlY3RvcnksIHJlbGF0aXZlIHRvIHVwbG9hZHMvaW1hZ2VzL0dhbGxlcnkvJzsKJGxhbmdbJ2hlbHBfdGVtcGxhdGUnXSA9ICdVc2UgYSBzZXBhcmF0ZSBkYXRhYmFzZSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgcGhvdG8gZ2FsbGVyeS4gVGhpcyB0ZW1wbGF0ZSBtdXN0IGV4aXN0IGFuZCBiZSB2aXNpYmxlIGluIHRoZSB0ZW1wbGF0ZSB0YWIgb2YgdGhlIEdhbGxlcnkgYWRtaW4sIHRob3VnaCBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIHRoZSBkZWZhdWx0LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZSB0ZW1wbGF0ZSB3aGljaCBpcyBhc3NpZ25lZCB0byB0aGUgZGlyZWN0b3J5IHdpbGwgYmUgdXNlZCwgZWxzZSB0aGUgZGVmYXVsdCB0ZW1wbGF0ZS4nOwokbGFuZ1snaGVscF9udW1iZXInXSA9ICdNYXhpbXVtIG51bWJlciBvZiBpbWFnZXRodW1icyB0byBkaXNwbGF5IChwZXIgcGFnZSkuIExlYXZpbmcgZW1wdHkgd2lsbCBzaG93IGFsbCBpbWFnZXMuJzsKJGxhbmdbJ2hlbHBfc3RhcnQnXSA9ICdTdGFydCBhdCB0aGUgbnRoIGltYWdlLiBMZWF2aW5nIGVtcHR5IHdpbGwgc3RhcnQgYXQgdGhlIGZpcnN0IGltYWdlLic7CiRsYW5nWydoZWxwX3Nob3cnXSA9ICdPdmVyaWRlIHdoaWNoIGltYWdlcyBoYXZlIHRvIGJlIHNob3duLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CjxsaT4mIzAzOTthY3RpdmUmIzAzOTsgLSB0byBkaXNwbGF5IHRoZSBpbWFnZXMgbWFya2VkIGFzIGFjdGl2ZSAoZGVmYXVsdCk8L2xpPgo8bGk+JiMwMzk7aW5hY3RpdmUmIzAzOTsgLSB0byBkaXNwbGF5IG9ubHkgdGhlIGltYWdlcyBtYXJrZWQgYXMgaW5hY3RpdmUgPC9saT4KPGxpPiYjMDM5O2FsbCYjMDM5OyAtIHRvIGRpc3BsYXkgYWxsIGltYWdlczwvbGk+CjwvdWw+Cic7CiRsYW5nWydoZWxwX2NhdGVnb3J5J10gPSAnVG8gZGlzcGxheSBvbmx5IGltYWdlcy9nYWxsZXJpZXMgYXNzaWduZWQgdG8gdGhlIHNwZWNpZmllZCBjYXRlZ29yaWVzLiBVc2UgKiBhZnRlciB0aGUgbmFtZSB0byBzaG93IGNoaWxkcmVuLiAgTXVsdGlwbGUgY2F0ZWdvcmllcyBjYW4gYmUgdXNlZCBpZiBzZXBhcmF0ZWQgd2l0aCBhIGNvbW1hLiBMZWF2aW5nIGVtcHR5LCB3aWxsIHNob3cgYWxsIGNhdGVnb3JpZXMuJzsKJGxhbmdbJ2hlbHBfYWN0aW9uJ10gPSAnT3ZlcnJpZGUgdGhlIGRlZmF1bHQgYWN0aW9uLiBVc2UgaXQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYWJvdmUgcGFyYW1ldGVycy4gUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgo8bGk+JiMwMzk7c2hvd3JhbmRvbSYjMDM5OyAtIHRvIGRpc3BsYXkgYSBzZXQgb2YgcmFuZG9tIHRodW1iLWltYWdlcyAoYXBwbGllcyBvbmx5IHRvIHRoZSBpbWFnZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIGEgbnVtYmVyIG9mIDYgaW1hZ2VzKS4gVGhlIGRpciBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQsIG9yIHRoZSBkZWZhdWx0IEdhbGxlcnktcm9vdCB3aWxsIGJlIHVzZWQuIFVzZSAmIzAzOTsvKiYjMDM5OyBhZnRlciB0aGUgbmFtZSB0byBpbmNsdWRlIGltYWdlcyBmcm9tIHN1YmRpcmVjdG9yaWVzPC9saT4KPGxpPiYjMDM5O3Nob3dsYXRlc3QmIzAzOTsgLSB0byBkaXNwbGF5IHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGltYWdlcyAoYXBwbGllcyBvbmx5IHRvIHRoZSBpbWFnZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIGEgbnVtYmVyIG9mIDYgaW1hZ2VzKSBUaGUgZGlyIHBhcmFtZXRlciBtdXN0IGJlIHNldCwgb3IgdGhlIGRlZmF1bHQgR2FsbGVyeS1yb290IHdpbGwgYmUgdXNlZC4gU3ViZGlyZWN0b3JpZXMgYXJlIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQ8L2xpPgo8bGk+JiMwMzk7c2hvd2xhdGVzdGRpciYjMDM5OyAtIG5vdCB5ZXQgaW1wbGVtZW50ZWQhIE1lbmQgdG8gZGlzcGxheSBhIHNldCBvZiByYW5kb20gdGh1bWItaW1hZ2VzIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgYWRkZWQgZGlyZWN0b3J5IChhcHBsaWVzIG9ubHkgdG8gdGhlIGltYWdlcyB3aGljaCBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgZGVmYXVsdHMgdG8gYSBudW1iZXIgb2YgNiBpbWFnZXMpIFRoZSB0aHVtYi1zZXR0aW5ncyBvZiB0aGUgR2FsbGVyeS1yb290IHdpbGwgYmUgdXNlZDwvbGk+CjwvdWw+Cic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDEuMC4zLiA4IFNlcHRlbWJlciAyMDA5LiBCdWdmaXggZm9yIFsjNDAwMV0sIEltcHJvdmVkIHN5bmNocm9uaXppbmcgdGhlIGRhdGFiYXNlIHRvIGZpbGVzLCBhbmQgb3RoZXIgbWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4yLiA1IFNlcHRlbWJlciAyMDA5LiBCdWdmaXggZm9yIFsjMzk4M10gcmVnYXJkaW5nIHNwYWNlcyBpbiBkaXJlY3RvcnkgbmFtZXMsIEFkZGVkIHRlbXBsYXRlcyBGYW5jeWJveCBhbmQgTHl0ZWJveF9zbGlkZXNob3cgYXMgaW4gRmVhdHVyZSByZXF1ZXN0cyBbIzM5NDRdIGFuZCBbIzM5NjddPC9saT4KPGxpPlZlcnNpb24gMS4wLjEuIDIzIEF1Z3VzdCAyMDA5LiBBcHBseSB0aHVtYm5haWwtc2V0dGluZ3Mgb24gXCdBbGJ1bS1jb3ZlcnNcJyBbIzM5MjRdLCBCdWdmaXggZm9yIFsjMzkyN10sIEFkZGVkIG1pc3NpbmcgL2RpdiB0byB0aGlja2JveC10ZW1wbGF0ZSwgZml4ZWQgYW4gaXNzdWUgd2l0aCBnZW5lcmF0aW5nIHRodW1ibmFpbHMgd2hlbiBubyB0aHVtYnMgYXZhaWxhYmxlIGluIEltYWdlTWFuYWdlciwgaW1wcm92ZWQgdGhlIG5hbWluZyBvZiB0aHVtYnMsIEJ1Z2ZpeCBmb3IgWyMzOTMxXSwgUHJldmVudCBkaXNwbGF5IHRoZSBjb250ZW50IG9mIGdhbGxlcmllcyB0aGF0IGFyZSBzZXQgYXMgaW5hY3RpdmUuPC9saT4KPGxpPlZlcnNpb24gMS4wLiAxNyBBdWd1c3QgMjAwOS4gUGFnaW5hdGlvbiBwYXJhbWV0ZXJzIGFkZGVkLCBTdGFuZGFyZCB0ZW1wbGF0ZXMgY2hhbmdlZCBhY2NvcmRpbmdseSwgRXh0ZW5kZWQgdGhlIG1vZHVsZS1oZWxwLCBBZGRlZCBmdW5jdGlvbnMgdG8gc2hvdyByYW5kb20gb3IgbGF0ZXN0IGltYWdlcywgU3VwcG9ydCBvZiBwcmV0dHktdXJscywgVmFyaW91cyBpbXByb3ZlbWVudHM8L2xpPgo8bGk+VmVyc2lvbiAwLjYuIDkgQXVndXN0IDIwMDkuIEluaXRpYWwgQmV0YSBSZWxlYXNlLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEdhbGxlcnkgbW9kdWxlIGlzIGFuIGVhc3kgdG8gdXNlIHBob3RvIGdhbGxlcnkgd2hpY2ggYXV0b21hdGljYWxseSBzaG93cyB0aGUgaW1hZ2VzIG9mIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4gU3ViZGlyZWN0b3JpZXMgd2lsbCBiZSBzaG93biBhcyBzdWJnYWxsZXJpZXMuIEl0IGhhcyBsb3RzIG9mIGZlYXR1cmVzLCBzdWNoIGFzIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcsIHRoZSB1c2Ugb2YgbXVsdGlwbGUgTGlnaHRib3gtbGlrZSB0ZW1wbGF0ZXMgb3IgYW55IGNzcy9qYXZhc2NyaXB0IHRlbXBsYXRlIHlvdSBsaWtlLCBhbmQgeW91IGNhbiBnaXZlIHRpdGxlcyBhbmQgZGVzY3JpcHRpb25zIHRvIHlvdXIgZ2FsbGVyaWVzIGFzIHdlbGwgYXMgeW91ciBwaG90b3MuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+Rmlyc3QsIGluc2VydCB0aGUgbW9kdWxlIHdpdGggdGhlIHtHYWxsZXJ5fSB0YWcgaW50byB5b3VyIHBhZ2Ugb3IgdGVtcGxhdGUgYW55d2hlcmUgeW91IHdoaXNoLiBUaGVuIHVwbG9hZCBzb21lIGltYWdlcyB3aXRoIHRoZSBJbWFnZSBNYW5hZ2VyLCBGaWxlIE1hbmFnZXIgKGUuZy4gbXVsdGlwbGUgaW1hZ2VzIGluIHppcGZpbGUpIG9yIEZUUCB0byB0aGUgdXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS8gZGlyZWN0b3J5LjwvcD4KPHA+VGhhdCYjMDM5O3MgaXQhPC9wPgo8cD5JZiB5b3Ugd2FudCBtb3JlIHBob3RvIGdhbGxlcmllcywgc2ltcGx5IGNyZWF0ZSBhIHN1YmRpcmVjdG9yeSBhbmQgdXBsb2FkIHlvdXIgcGhvdG9zIGFzIGRlc2NyaWJlZC4gQnkgYWRkaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHtHYWxsZXJ5fSB0YWcsIHlvdSBjYW4gZWFzaWx5IG1hbmlwdWxhdGUgd2hpY2ggc3ViZ2FsbGVyeSB3aWxsIGJlIHNob3duIGluIHdoaWNoIHRlbXBsYXRlLCBlLmcuIHtHYWxsZXJ5IGRpcj0mcXVvdDtob2xpZGF5cy9OZXRoZXJsYW5kczIwMDkmcXVvdDsgdGVtcGxhdGU9JnF1b3Q7TGlnaHRib3gmcXVvdDt9PC9wPgo8cD5CeSBkZWZhdWx0IHRoZSB0aHVtYm5haWxzIGZyb20gdGhlIEltYWdlIE1hbmFnZXIgYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgcGhvdG8gZ2FsbGVyaWVzLjwvcD4KPGgzPkFkdmFuY2VkIE9wdGlvbnMsIGJ1dCBzdGlsbCBlYXN5IHRvIHVzZTwvaDM+CjxwPkluIHRoZSBhZG1pbiBzZWN0aW9uIHlvdSBoYXZlIGxvdHMgb2Ygb3RoZXIgb3B0aW9uczo8L3A+Cjx1bD4KPGxpPlNldCBhIHBob3RvIGFzIHRoZSBkZWZhdWx0IGZvciBhIGdhbGxlcnksIHNvIGl0IHdpbGwgc2hvdyBpbiB0aGUgcGFyZW50IGdhbGxlcnkgYXMgYSAmIzAzOTtjb3ZlciYjMDM5OyBpbiBzdGVhZCBvZiB0aGUgZGVmYXVsdCBmb2xkZXItaWNvbi48L2xpPgo8bGk+R2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byBnYWxsZXJpZXMuPC9saT4KPGxpPlNldCBhIGRlZmF1bHQgdGVtcGxhdGUgZm9yIGVhY2ggZ2FsbGVyeS48L2xpPgo8bGk+U2V0IHRodW1ibmFpbCBzaXplcyBmb3IgZWFjaCBnYWxsZXJ5LCB3aXRoIHBvc2liaWxpdGllcyB0byBzY2FsZSwgY3JvcCBhbmQvb3Igem9vbSB0aGUgaW1hZ2VzLjwvbGk+CjxsaT5HaXZlIHRpdGxlcyBhbmQgZGVzY3JpcHRpb25zIHRvIHBob3Rvcy48L2xpPgo8bGk+U3dpdGNoIGEgc3BlY2lmaWMgcGhvdG8gb3IgZ2FsbGVyeSB0byBpbmFjdGl2ZSwgcHJldmVudGluZyBpdCBmcm9tIGRpc3BsYXkuPC9saT4KPGxpPkVkaXQvY29weSB0ZW1wbGF0ZXMgb3IgY3JlYXRlIG5ldyBvbmVzLiBDaGVjayB0aGUgaW5mby1pY29uIGJlbmVhdGggdGhlIHRlbXBsYXRlLWNvZGUgZm9yIHRoZSBhdmFpbGFibGUgdmFyaWFibGVzLjwvbGk+CjwvdWw+CjxwPkluIG9yZGVyIHRvIGVkaXQgdGVtcGxhdGVzLCB0aGUgdXNlciBtdXN0IGJlbG9uZyB0byBhIGdyb3VwIHdpdGggdGhlICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcGVybWlzc2lvbi4gVG8gZWRpdCB0aGUgZ2xvYmFsIEdhbGxlcnkgb3B0aW9ucywgdGhlIHVzZXIgbXVzdCBiZWxvbmcgdG8gYSBncm91cCB3aXRoIHRoZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBwZXJtaXNzaW9uLjwvcD4KPHA+QWxsIHRpdGxlcywgZGVzY3JpcHRpb25zIGFuZCBzZXR0aW5ncyBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gVGhlIGRhdGFiYXNlIHdpbGwgc3luY2hyb25pemUgd2l0aCB0aGUgZmlsZWRpcmVjdG9yeSBlYWNoIHRpbWUgdGhlIGFjY29yZGluZyBnYWxsZXJ5IGlzIHZpc2l0ZWQgaW4gdGhlIEdhbGxlcnktYWRtaW4uIEEgbGl0dGxlIHdhcm5pbmc6IHdoZW4geW91IG1vdmUgYW4gaW1hZ2Ugb3Igc3ViZGlyZWN0b3J5IHRvIGFub3RoZXIgZGlyZWN0b3J5LCB5b3Ugd2lsbCBsb29zZSBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBzZXR0aW5ncy48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgRmVhdHVyZSBSZXF1ZXN0IG9yIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgTW9kdWxlIEZvcmdlCjxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZ2FsbGVyeS8iPkdhbGxlcnkgUGFnZTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgSm9zIDxhIGhyZWY9Im1haWx0bzpqb3N2ZEBsaXZlLm5sIj48am9zdmRAbGl2ZS5ubD48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+Cic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNTAyOTczODAuMTc1Mi40Mi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9aGVsbWluc2VuLm5vfHV0bWNjdD0vaW5zdGFsbC91cGdyYWRlLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzkwNTI2MjMwODQxMTAxMDAuMTIxMDQyMzU3Ny4xMjUxMzA0OTczLjEyNTEzMDg1NzEuMTgwOSc7CiRsYW5nWydxY2EnXSA9ICcxMjEwOTcxNjkwLTI3MzA4MDczLTgxOTUyODMyJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyNTEzMDg1NzEnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dhbGxlcnkgJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGUgZWVudm91ZGlnc3RlIG1hbmllciBvbSBmb3RvLWdhbGVyaWUmZXVtbDtuIHRlIGJlaGVyZW4gZW4gd2VlciB0ZSBnZXZlbi4nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdFZW4gZ2VicnVpa2Vyc3ZyaWVuZGVsaWprZSBmb3RvLWdhbGVyaWUgZGllIGF1dG9tYXRpc2NoIGRlIGZvdG8mIzAzOTtzIHVpdCBlZW4gc3BlY2lmaWVrZSBkaXJlY3Rvcnkgd2VlcmdlZWZ0Lic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlIEdhbGxlcnkgbW9kdWxlIGlzIGdlJml1bWw7bnN0YWxsZWVyZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnRGUgR2FsbGVyeSBtb2R1bGUgdmVyc2llICVzIGlzIGdlJml1bWw7bnN0YWxsZWVyZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdEZSBHYWxsZXJ5IG1vZHVsZSBpcyBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGUgR2FsbGVyeSBtb2R1bGUgaXMgdmVyd2lqZGVyZCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ0RlIEdhbGxlcnkgbW9kdWxlIGlzIHZlcndpamRlcmQnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZSBHYWxsZXJ5IG1vZHVsZSB3aWx0IHZlcndpamRlcmVuPyBEaXQgaGVlZnQgZ2VlbiBpbnZsb2VkIG9wIGZvdG8mIzAzOTtzLCBtYWFyIHRpdGVscywgb21zY2hyaWp2aW5nZW4gZW4gYWxsZSBtaW5pYXR1cmVuIGRpZSBkb29yIEdhbGxlcnkgd2FyZW4gZ2VnZW5lcmVlcmQgenVsbGVuIHZlcmxvcmVuIGdhYW4uJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkLiBDb250cm9sZWVyIHV3IHJlY2h0ZW4uJzsKJGxhbmdbJ2FjdGlvbnMnXSA9ICdBY3RpZXMnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aWVmJzsKJGxhbmdbJ2FwcGx5J10gPSAnVG9lcGFzc2VuJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxlZXInOwokbGFuZ1snY29weSddID0gJ0tvcGllZXInOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYWFyZCc7CiRsYW5nWydkZWxldGUnXSA9ICdWZXJ3aWpkZXInOwokbGFuZ1snZWRpdCddID0gJ1dpanppZyc7CiRsYW5nWydlcnJvciddID0gJ0ZvdXQhJzsKJGxhbmdbJ3NldGZhbHNlJ10gPSAnWmV0IG9wIE9ud2FhciAoZmFsc2UpJzsKJGxhbmdbJ3NldHRydWUnXSA9ICdaZXQgb3AgV2FhciAodHJ1ZSknOwokbGFuZ1snc3VibWl0J10gPSAnT3BzbGFhbic7CiRsYW5nWydnYWxsZXJpZXMnXSA9ICdHYWxlcmllJmV1bWw7bic7CiRsYW5nWydnYWxsZXJ5cGF0aCddID0gJ0dhbGVyaWUnOwokbGFuZ1snZWRpdGdhbGxlcnknXSA9ICdCZXdlcmsgZ2FsZXJpZSc7CiRsYW5nWydhZGRnYWxsZXJ5J10gPSAnVm9lZyBlZW4gZ2FsZXJpZSB0b2UnOwokbGFuZ1snbm9nYWxsZXJpZXN0ZXh0J10gPSAnR2VlbiBnYWxlcmllJmV1bWw7biBiZXNjaGlrYmFhcic7CiRsYW5nWydpbWFnZSddID0gJ2FmYmVlbGRpbmcnOwokbGFuZ1sndGl0bGUnXSA9ICdUaXRlbCc7CiRsYW5nWydkYXRlJ10gPSAnRGF0dW0nOwokbGFuZ1snbm9maWxlc3RleHQnXSA9ICdHZWVuIGZvdG8mIzAzOTtzIGFhbndlemlnJzsKJGxhbmdbJ2dhbGxlcnl0aXRsZSddID0gJ0dhbGVyaWUgVGl0ZWwnOwokbGFuZ1snY29tbWVudCddID0gJ09tc2NocmlqdmluZyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3VzZWRlZmF1bHQnXSA9ICdnZWJydWlrIHN0YW5kYWFyZCc7CiRsYW5nWyd0aHVtYm5haWxzaXplJ10gPSAnTWluaWF0dXVyIGFmbWV0aW5nZW4gKEZyb250ZW5kKSc7CiRsYW5nWydsZWF2ZWVtcHR5J10gPSAnKGxhYXQgZGl0IGxlZWcgb20gZGUgc3RhbmRhYXJkIG1pbmlhdHVyZW4gdWl0IEltYWdlIE1hbmFnZXIgdGUgZ2VicnVpa2VuKSc7CiRsYW5nWyd3aWR0aCddID0gJ2JyZWVkdGUnOwokbGFuZ1snaGVpZ2h0J10gPSAnaG9vZ3RlJzsKJGxhbmdbJ3Jlc2l6ZW1ldGhvZCddID0gJ2hlcnNjaGFhbCBtZXRob2RlJzsKJGxhbmdbJ2Nyb3AnXSA9ICdiaWpzbmlqZGVuJzsKJGxhbmdbJ3NjYWxlJ10gPSAnc2NoYWxlbic7CiRsYW5nWyd6b29tY3JvcCddID0gJ2luem9vbWVuICZhbXA7IGJpanNuaWpkZW4nOwokbGFuZ1snem9vbXNjYWxlJ10gPSAnaW56b29tZW4gJmFtcDsgc2NoYWxlbic7CiRsYW5nWydjcmVhdGV0aHVtYnMnXSA9ICcoUmUpR2VuZXJlZXIgTWluaWF0dXJlbic7CiRsYW5nWyd0aHVtYnNjcmVhdGVkJ10gPSAnTWluaWF0dXJlbiBnZWdlbmVyZWVyZCc7CiRsYW5nWydnYWxsZXJ5dXBkYXRlZCddID0gJ0RlIGdhbGVyaWUgaXMgc3VjY2Vzdm9sIGJpamdld2Vya3QuJzsKJGxhbmdbJ2Vycm9yX3VwZGF0ZWdhbGxlcnlmYWlsZWQnXSA9ICdCaWp3ZXJrZW4gdmFuIGRlIGdhbGVyaWUgaXMgbWlzbHVrdC4nOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnU2phYmxvbmVuJzsKJGxhbmdbJ3RpdGxlX2F2YWlsYWJsZV90ZW1wbGF0ZXMnXSA9ICdCZXNjaGlrYmFyZSBTamFibG9uZW4nOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOYWFtJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnU3RhbmRhYXJkJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ01hYWsgZWVuIG5pZXV3IHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gRWRpdG9yJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdTamFibG9vbiBOYWFtJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NqYWJsb29uIENvZGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlanMnXSA9ICdTamFibG9vbiBKYXZhU2NyaXB0JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZWNzcyddID0gJ1NqYWJsb29uIENTUy1zdHlsZXNoZWV0JzsKJGxhbmdbJ3RlbXBsYXRldXBkYXRlZCddID0gJ0hldCBzamFibG9vbiBpcyBzdWNjZXN2b2wgYmlqZ2V3ZXJrdC4nOwokbGFuZ1sndGVtcGxhdGVhZGRlZCddID0gJ0hldCBzamFibG9vbiBpcyB0b2VnZXZvZWdkLic7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdEZSBzamFibG9vbi1uYWFtIGJlc3RhYXQgcmVlZHMuJzsKJGxhbmdbJ3RlbXBsYXRlZGVsZXRlZCddID0gJ1NqYWJsb29uIHZlcndpamRlcmQnOwokbGFuZ1snYXZhaWxhYmxldmFyaWFibGVzJ10gPSAnQmVzY2hpa2JhcmUgU2phYmxvb24gU21hcnR5IFZhcmlhYmVsZW4nOwokbGFuZ1snYXZhaWxhYmxldmFyaWFibGVzbGlzdCddID0gJ09uZGVyc3RhYW5kZSB2YXJpYWJlbGVuIGt1bm5lbiBnZWJydWlrdCB3b3JkZW4gaW4gZGUgc2phYmxvbmVuOjxiciAvPjxiciAvPg0KeyRtb2R1bGVfbWVzc2FnZX0gLSBmb3V0bWVsZGluZywgaGVlZnQgYWxsZWVuIGluaG91ZCBhbHMgZXIgd2F0IHRlIG1lbGRlbiBpczxiciAvPg0KeyRnYWxsZXJ5dGl0bGV9IC0gdGl0ZWwgdmFuIGRlIGdhbGVyaWUuIEFscyBlciBnZWVuIHRpdGVsIGlzIGluZ2V2dWxkLCBkYW4gd29yZHQgZGUgbmFhbSB2YW4gZGUgZGlyZWN0b3J5IGdldG9vbmQ8YnIgLz4NCnskZ2FsbGVyeWNvbW1lbnR9IC0gb21zY2hyaWp2aW5nIHZhbiBkZSBnYWxlcmllPGJyIC8+DQp7JHBhcmVudGxpbmt9IC0gbGluayBuYWFyIGRlIGJvdmVubGlnZ2VuZGUgZ2FsZXJpZTxiciAvPg0KeyRpbWFnZWNvdW50fSAtIGFhbnRhbCwgdG9vbnQgYmlqdm9vcmJlZWxkICZxdW90OzYgZm90byYjMDM5O3MmcXVvdDssIGFmaGFua2VsaWprIHZhbiBkZSB0YWFsPGJyIC8+DQp7JGl0ZW1jb3VudH0gLSB0b3RhYWwgYWFudGFsIGl0ZW1zLCBkdXMgZm90byYjMDM5O3MgKyBzdWJnYWxlcmllJmV1bWw7bjxiciAvPg0KeyRwYWdlc30gLSBhYW50YWwgcGFnaW5hJiMwMzk7czxiciAvPg0KeyRwcmV2cGFnZX0gLSBsaW5rIG5hYXIgZGUgdm9yaWdlIHBhZ2luYSwgaW5kaWVuIHZhbiB0b2VwYXNzaW5nPGJyIC8+DQp7JG5leHRwYWdlfSAtIGxpbmsgbmFhciBkZSB2b2xnZW5kZSBwYWdpbmEsIGluZGllbiB2YW4gdG9lcGFzc2luZzxiciAvPg0KeyRwYWdlbGlua3N9IC0gbGlua3MgbmFhciBlbGtlIGJlc2NoaWtiYXJlIHBhZ2luYTxiciAvPg0KeyRpbWFnZXN9IC0gYXJyYXkgbWV0IGRlIHZvbGdlbmRlIGtleXM6PGJyIC8+DQogLSBmaWxlIC0gcmVsYXRpZWYgcGFkIG5hYXIgZGUgb3JpZ2luZWxlIGZvdG8gKG9mIHN1YmdhbGVyaWUpPGJyIC8+DQogLSB0aXRsZSAtIHRpdGVsIHZhbiBkZSBmb3RvLiBBbHMgZXIgZ2VlbiB0aXRlbCBpcyBpbmdldnVsZCwgZGFuIHdvcmR0IGRlIGZpbGUtbmFhbSBnZXRvb25kPGJyIC8+DQogLSBjb21tZW50IC0gb21zY2hyaWp2aW5nIHZhbiBkZSBmb3RvPGJyIC8+DQogLSBmaWxlZGF0ZSAtIGFhbm1hYWtkYXR1bS90aWpkPGJyIC8+DQogLSB0aHVtYiAtIHJlbGF0aWVmIHBhZCBuYWFyIGRlIG1pbmlhdHV1ci4gSW4gZ2V2YWwgdmFuIGVlbiBzdWJnYWxlcmllLCBkYW4gdmVyd2lqc3QgZGl0IG5hYXIgZGUgbWluaWF0dXVyIHZhbiBkZSBmb3RvIGRpZSBnZW1hcmtlZXJkIGlzIGFscyBkZWZhdWx0IGluIGRlIGJldHJlZmZlbmRlIHN1YmdhbGVyaWUuIEFscyBlciBnZWVuIGRlZmF1bHR3YWFyZGUgYWFuIGVlbiBmb3RvIGlzIHRvZWdla2VuZCwgZGFuIHdvcmR0IGVlbiBzdGFuZGFhcmQgZm9sZGVyLWljb24gZ2VicnVpa3QuPGJyIC8+DQogLSBmb2xkZXJsaW5rIC0gdmVydmFsbGVuISBHZWJydWlrIGluIHBsYWF0cyBoaWVydmFuIGZpbGUgZW4gdGh1bWIuPGJyIC8+DQonOwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGllcyc7CiRsYW5nWydhbGxvd2VkX2V4dGVuc2lvbnMnXSA9ICdUb2VnZXN0YW5lIEV4dGVuc2llcyc7CiRsYW5nWyd1c2VfY29tbWVudF93eXNpd3lnJ10gPSAnR2VicnVpayBlZW4gV1lTSVdZRyBlZGl0b3Igdm9vciBoZXQgR2FsbGVyeSBvbXNjaHJpanZpbmcgdmVsZCc7CiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ0RlIG9wdGlvbnMgemlqbiBzdWNjZXN2b2wgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snaW1hZ2VzJ10gPSAnZm90byYjMDM5O3MnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICd2b3JpZ2UnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICd2b2xnZW5kZSc7CiRsYW5nWydkZWZhdWx0Z2FsbGVyeWNvbW1lbnQnXSA9ICdCZWRhbmt0IHZvb3IgaGV0IGluc3RhbGxlcmVuIHZhbiBkZSBHYWxsZXJ5IG1vZHVsZS4gQWxzIHUgd2F0IGZvdG8mIzAzOTtzIGdlJnV1bWw7cGxvYWQgaGVlZnQgbmFhciBkZSBtYXAgJiMwMzk7dXBsb2Fkcy9pbWFnZXMvR2FsbGVyeSYjMDM5OywgZGFuIHppam4gZGV6ZSBmb3RvJiMwMzk7cyBoaWVyb25kZXIgemljaHRiYWFyLiBWaWEgZGUgYWRtaW4tc2VjdGllIGt1bm5lbiB0aXRlbHMsIG9tc2NocmlqdmluZ2VuIGVuIGFmbWV0aW5nZW4gdm9vciBtaW5pYXR1dXItYWZiZWVsZGluZ2VuIHdvcmRlbiBpbmdlc3RlbGQuIE9udGRlayBhbGxlIG92ZXJpZ2UgbW9nZWxpamtoZWRlbiBkaWUgZGV6ZSBtb2R1bGUgdGUgYmllZGVuIGhlZWZ0IGluIGRlIG1vZHVsZS1oZWxwLic7CiRsYW5nWydoZWxwX2RpciddID0gJ1BhcmFtZXRlciBvbSBlZW4gZGlyZWN0b3J5IHRlIHNwZWNpZmljZXJlbiwgaGV0IHBhZCBpcyByZWxhdGllZiB0Lm8udi4gdXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS8nOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJ0dlYnJ1aWsgZWVuIGFwYXJ0ZSBkYXRhYmFzZSBzamFibG9vbiB2b29yIGRlIHdlZXJnYXZlIHZhbiBkZSBmb3RvIGdhbGVyaWUuIERpdCBzamFibG9vbiBtb2V0IGJlc3RhYW4gZW4gemljaHRiYWFyIHppam4gaW4gZGUgdGFiIFNqYWJsb25lbiBpbiBkZSBHYWxsZXJ5IGFkbWluLCBtYWFyIGhldCBob2VmdCBuaWV0IGRlIHN0YW5kYWFyZCBzamFibG9vbiB0ZSB6aWpuLiBBbHMgZGV6ZSBwYXJhbWV0ZXIgbmlldCBvcGdlZ2V2ZW4gaXMsIHdvcmR0IGhldCBzamFibG9vbiBnZWJydWlrdCB3ZWxrZSBpcyB0b2VnZWtlbmQgYWFuIGRlIGdhbGVyaWUsIGFuZGVycyB3b3JkdCBoZXQgc3RhbmRhYXJkIHNqYWJsb29uIGdlYnJ1aWt0JzsKJGxhbmdbJ2hlbHBfbnVtYmVyJ10gPSAnTWF4aW1hYWwgYWFudGFsIGZvdG8mIzAzOTtzIGRhdCBnZXRvb25kIHdvcmR0IChwZXIgcGFnaW5hKS4gU3RhbmRhYXJkIHdvcmRlbiBhbGxlIGZvdG8mIzAzOTtzIGdldG9vbmQuJzsKJGxhbmdbJ2hlbHBfc3RhcnQnXSA9ICdCZWdpbiB3ZWVyZ2F2ZSBiaWogZGUgem92ZWVsc3RlIGZvdG8uIFN0YW5kYWFyZCB3b3JkdCBiZWdvbm5lbiBtZXQgZGUgZWVyc3RlIGZvdG8nOwokbGFuZ1snaGVscF9zaG93J10gPSAnQmVwYWFsIHdlbGtlIGZvdG8mIzAzOTtzIG1vZXRlbiB3b3JkZW4gZ2V0b29uZC4gTW9nZWxpamtlIHdhYXJkZW4gemlqbjoNCjx1bD4NCjxsaT4mIzAzOTthY3RpdmUmIzAzOTsgLSBvbSBhbGxlIGZvdG8mIzAzOTtzIHdlZXIgdGUgZ2V2ZW4gZGllIHppam4gZ2VtYXJrZWVyZCBhbHMgYWN0aWVmIChzdGFuZGFhcmQpPC9saT4NCjxsaT4mIzAzOTtpbmFjdGl2ZSYjMDM5OyAtIG9tIGFsbGVlbiBkZSBmb3RvJiMwMzk7cyBkaWUgZ2VtYXJrZWVyZCB6aWpuIGFscyBpbmFjdGllZiB3ZWVyIHRlIGdldmVuPC9saT4NCjxsaT4mIzAzOTthbGwmIzAzOTsgLSBsYWF0IGFsbGUgZm90byYjMDM5O3MgemllbjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfY2F0ZWdvcnknXSA9ICdUb29uIGFsbGVlbiBmb3RvJiMwMzk7cy9nYWxlcmllJmV1bWw7biBkaWUgdG9lZ2VrZW5kIHppam4gYWFuIGRlIG9wZ2VnZXZlbiBjYXRlZ29yaSZldW1sO24uIERvb3IgZWVuICogYWNodGVyIGRlIGRpcmVjdG9yeS1uYWFtIHRlIHBsYWF0c2VuLCB3b3JkZW4gb29rIHN1YmNhdGVnb3JpZSZldW1sO24gd2VlcmdlZ2V2ZW4uIE1lZXJkZXJlIGNhdGVnb3JpZSZldW1sO24ga3VubmVuIHdvcmRlbiBvcGdlZ2V2ZW4sIG1pdHMgZ2VzY2hlaWRlbiBtZXQgZWVuIGtvbW1hLiBTdGFuZGFhcmQgd29yZGVuIGFsbGUgY2F0ZWdvcmllJmV1bWw7biBnZXRvb25kLic7CiRsYW5nWydoZWxwX2FjdGlvbiddID0gJ0JlcGFhbCBkZSB1aXQgdGUgdm9lcmVuIGFjdGllLiBHZWJydWlrIGRpdCBpbiBjb21iaW5hdGllIG1ldCBkZSBib3Zlbmdlbm9lbWRlIHBhcmFtZXRlcnMuIE1vZ2VsaWprZSB3YWFyZGVuIHppam46DQo8dWw+DQo8bGk+JiMwMzk7c2hvd3JhbmRvbSYjMDM5OyAtIFRvb250IGVlbiBvcGdlZ2V2ZW4gYWFudGFsIHdpbGxla2V1cmlnZSBtaW5pYXR1cmVuLiAoQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGZvdG8mIzAzOTtzIGRpZSB6aWpuIG9wZ2VzbGFnZW4gaW4gZGUgZGF0YWJhc2UsIHN0YW5kYWFyZCBpbmdlc3RlbGQgb3AgNiBmb3RvJiMwMzk7cykuIERlIGRpciBwYXJhbWV0ZXIgbW9ldCBvcGdlZ2V2ZW4gemlqbiwgYW5kZXJzIHdvcmR0IGRlIEdhbGxlcnktcm9vdCBnZWJydWlrdC4gRG9vciAmIzAzOTsvKiYjMDM5OyBhY2h0ZXIgZGUgZGlyZWN0b3J5LW5hYW0gdGUgcGxhYXRzZW4sIHdvcmRlbiBvb2sgZGUgZm90byYjMDM5O3MgdWl0IHN1YmRpcmVjdG9yaWVzIG1lZWdlbm9tZW48L2xpPg0KPGxpPiYjMDM5O3Nob3dsYXRlc3QmIzAzOTsgLSBUb29udCBkZSBsYWF0c3QgdG9lZ2V2b2VnZGUgZm90byYjMDM5O3MuIChBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgZm90byYjMDM5O3MgZGllIHppam4gb3BnZXNsYWdlbiBpbiBkZSBkYXRhYmFzZSwgc3RhbmRhYXJkIGluZ2VzdGVsZCBvcCA2IGZvdG8mIzAzOTtzKSBEZSBkaXIgcGFyYW1ldGVyIG1vZXQgb3BnZWdldmVuIHppam4sIGFuZGVycyB3b3JkdCBkZSBHYWxsZXJ5LXJvb3QgZ2VicnVpa3QuIFN1YmRpcmVjdG9yaWVzIHdvcmRlbiBhdXRvbWF0aXNjaCBtZWVnZW5vbWVuPC9saT4NCjxsaT4mIzAzOTtzaG93bGF0ZXN0ZGlyJiMwMzk7IC0gTm9nIG5pZXQgYmVzY2hpa2JhYXIhIEJlZG9lbGQgb20gZWVuIG9wZ2VnZXZlbiBhYW50YWwgd2lsbGVrZXVyaWdlIG1pbmlhdHVyZW4gdGUgdG9uZW4gdWl0IGRlIGxhYXRzdCB0b2VnZXZvZWdkZSBkaXJlY3RvcnkgKEFsbGVlbiB2YW4gdG9lcGFzc2luZyBvcCBmb3RvJiMwMzk7cyBkaWUgemlqbiBvcGdlc2xhZ2VuIGluIGRlIGRhdGFiYXNlLCBzdGFuZGFhcmQgaW5nZXN0ZWxkIG9wIDYgZm90byYjMDM5O3MpIFZvb3IgZGUgbWluaWF0dXJlbiB3b3JkZW4gZGUgaW5zdGVsbGluZ2VuIHZhbiBkZSBHYWxsZXJ5LXJvb3QgZ2VicnVpa3QuPC9saT4NCjwvdWw+DQonOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPiANCjxsaT5WZXJzaW9uIDEuMC4zLiA4IFNlcHRlbWJlciAyMDA5LiBCdWdmaXggZm9yIFsjNDAwMV0sIEltcHJvdmVkIHN5bmNocm9uaXppbmcgdGhlIGRhdGFiYXNlIHRvIGZpbGVzLCBhbmQgb3RoZXIgbWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gNSBTZXB0ZW1iZXIgMjAwOS4gQnVnZml4IGZvciBbIzM5ODNdIHJlZ2FyZGluZyBzcGFjZXMgaW4gZGlyZWN0b3J5IG5hbWVzLCBBZGRlZCB0ZW1wbGF0ZXMgRmFuY3lib3ggYW5kIEx5dGVib3hfc2xpZGVzaG93IGFzIGluIEZlYXR1cmUgcmVxdWVzdHMgWyMzOTQ0XSBhbmQgWyMzOTY3XTwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gMjMgQXVndXN0IDIwMDkuIEFwcGx5IHRodW1ibmFpbC1zZXR0aW5ncyBvbiAmIzAzOTtBbGJ1bS1jb3ZlcnMmIzAzOTsgWyMzOTI0XSwgQnVnZml4IGZvciBbIzM5MjddLCBBZGRlZCBtaXNzaW5nIC9kaXYgdG8gdGhpY2tib3gtdGVtcGxhdGUsIGZpeGVkIGFuIGlzc3VlIHdpdGggZ2VuZXJhdGluZyB0aHVtYm5haWxzIHdoZW4gbm8gdGh1bWJzIGF2YWlsYWJsZSBpbiBJbWFnZU1hbmFnZXIsIGltcHJvdmVkIHRoZSBuYW1pbmcgb2YgdGh1bWJzLCBCdWdmaXggZm9yIFsjMzkzMV0sIFByZXZlbnQgZGlzcGxheSB0aGUgY29udGVudCBvZiBnYWxsZXJpZXMgdGhhdCBhcmUgc2V0IGFzIGluYWN0aXZlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuIDE3IEF1Z3VzdCAyMDA5LiBQYWdpbmF0aW9uIHBhcmFtZXRlcnMgYWRkZWQsIFN0YW5kYXJkIHRlbXBsYXRlcyBjaGFuZ2VkIGFjY29yZGluZ2x5LCBFeHRlbmRlZCB0aGUgbW9kdWxlLWhlbHAsIEFkZGVkIGZ1bmN0aW9ucyB0byBzaG93IHJhbmRvbSBvciBsYXRlc3QgaW1hZ2VzLCBTdXBwb3J0IG9mIHByZXR0eS11cmxzLCBWYXJpb3VzIGltcHJvdmVtZW50czwvbGk+DQo8bGk+VmVyc2lvbiAwLjYuIDkgQXVndXN0IDIwMDkuIEluaXRpYWwgQmV0YSBSZWxlYXNlLjwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldhdCBkb2V0IGRpdD88L2gzPg0KPHA+RGUgR2FsbGVyeSBtb2R1bGUgaXMgZWVuIGdlYnJ1aWtlcnN2cmllbmRlbGlqayBmb3RvLWFsYnVtIGRpZSBhdXRvbWF0aXNjaCBkZSBmb3RvJiMwMzk7cyB1aXQgZWVuIG9wZ2VnZXZlbiBkaXJlY3RvcnkgdG9vbnQuDQpTdWJkaXJlY3RvcmllcyB3b3JkZW4gZ2V0b29udCBhbHMgc3ViLWdhbGVyaWUmZXVtbDtuLiBEZSBtb2R1bGUgaGVlZnQgdmVlbCBpbmdlYm91d2RlIG1vZ2VsaWpraGVkZW4sIHpvYWxzIGhldCBhdXRvbWF0aXNjaCBnZW5lcmVyZW4gdmFuIG1pbmlhdHVyZW4sIGhldCBnZWJydWlrIHZhbiBtZWVyZGVyZSBMaWdodGJveC1hY2h0aWdlIHNqYWJsb25lbiBvZiBlbGsgYW5kZXIgZ2V3ZW5zdGUgY3NzL2phdmFzY3JpcHQtc2phYmxvb24sIGVuIGFhbiB6b3dlbCBnYWxlcmllJmV1bWw7biBhbHMgZm90byYjMDM5O3Mga3VubmVuIHRpdGVscyBlbiBvbXNjaHJpanZpbmdlbiB3b3JkZW4gdG9lZ2VrZW5kLjwvcD4NCjxoMz5Ib2UgZ2VicnVpayBpayBoZXQ8L2gzPg0KPHA+QWxsZXJlZXJzdCBtb2V0IGRlIHtHYWxsZXJ5fSB0YWcgaW4gZWVuIHBhZ2luYSBvZiBzamFibG9vbiBnZXBsYWF0c3Qgd29yZGVuLiBEYWFybmEga3VubmVuIGZvdG8mIzAzOTtzIHZpYSBkZSBJbWFnZSBNYW5hZ2VyLCBGaWxlIE1hbmFnZXIgKGJpanYuIG1lZXJkZXJlIGZvdG8mIzAzOTtzIHVwbG9hZGVuIGluICZlYWN1dGU7JmVhY3V0ZTtuIHppcC1iZXN0YW5kKSwgb2YgRlRQIG5hYXIgZGUgbWFwIHVwbG9hZHMvaW1hZ2VzL0dhbGxlcnkvIGdlJnV1bWw7cGxvYWQgd29yZGVuLjwvcD4NCjxwPkRhdCBpcyBhbGxlcyE8L3A+DQo8cD5BbHMgbWVlciBnYWxlcmllJmV1bWw7biBnZXdlbnN0IHppam4sIGNyZSZldW1sO2VyIGRhbiBzdWJkaXJlY3RvcmllcyBlbiB1cGxvYWQgZXIgZm90byYjMDM5O3MgbmFhcnRvZSB6b2FscyBvbXNjaHJldmVuLiBEb29yIHBhcmFtZXRlcnMgdG9lIHRlIHZvZWdlbiBhYW4gZGUge0dhbGxlcnl9IHRhZywga2FuIGVlbnZvdWRpZyBpbmdlc3RlbGQgd29yZGVuIHdlbGtlIHN1YmdhbGVyaWUgZ2V0b29uZCBtb2V0IHdvcmRlbiBtZXQgd2VsayBzamFibG9vbiwgYmlqdi4ge0dhbGxlcnkgZGlyPSZxdW90O3Zha2FudGllcy9WZWx1d2UyMDA5JnF1b3Q7IHRlbXBsYXRlPSZxdW90O0xpZ2h0Ym94JnF1b3Q7fTwvcD4NCjxwPlN0YW5kYWFyZCB3b3JkZW4gZGUgbWluaWF0dXJlbiB2YW4gZGUgSW1hZ2UgTWFuYWdlciBnZWJydWlrdCBiaWogZGUgd2VlcmdhdmUgdmFuIGdhbGVyaWUmZXVtbDtuLjwvcD4NCjxoMz5HZWF2YW5jZWVyZGUgb3B0aWVzLCBtYWFyIG5vZyBzdGVlZHMgZWVudm91ZGlnIHRlIGdlYnJ1aWtlbjwvaDM+DQo8cD5JbiBkZSBhZG1pbiBzZWN0aWUgdmFuIGRlIG1vZHVsZSB6aWpuIGRlIHZvbGdlbmRlIG9wdGllcyB0ZSB2aW5kZW46PC9wPg0KPHVsPg0KPGxpPk1hcmtlZXIgZWVuIGZvdG8gYWxzIHN0YW5kYWFyZCB2b29yIGVlbiBnYWxlcmllLCBvbSBkZXplIG1pbmlhdHV1ciB0ZSB0b25lbiBpbiBkZSBib3ZlbmxpZ2dlbmRlIGdhbGVyaWUsIGFscyAmIzAzOTthbGJ1bS1jb3ZlciYjMDM5OyBpbiBwbGFhdHMgdmFuIGhldCBzdGFuZGFhcmQtaWtvb24uPC9saT4NCjxsaT5HZWVmIHRpdGVscyBlbiBvbXNjaHJpanZpbmdlbiBhYW4gZ2FsZXJpZSZldW1sO24uPC9saT4NCjxsaT5TdGVsIGVlbiBzdGFuZGFhcmQgc2phYmxvb24gaW4gdm9vciBlbGtlIGdhbGVyaWUuPC9saT4NCjxsaT5HZWVmIG1pbmlhdHV1ci1hZm1ldGluZ2VuIG9wIHZvb3IgZWxrZSBnYWxlcmllLCBtZXQgbW9nZWxpamtoZWlkIG9tIGZvdG8mIzAzOTtzIHRlIHNjaGFsZW4sIGJpaiB0ZSBzbmlqZGVuIGVuL29mIGluIHRlIHpvb21lbi48L2xpPg0KPGxpPkdlZWYgdGl0ZWxzIGVuIG9tc2NocmlqdmluZ2VuIGFhbiBmb3RvJiMwMzk7cy48L2xpPg0KPGxpPlpldCBlZW4gZm90byBvZiBnYWxlcmllIGluYWN0aWVmIG9tIHdlZXJnYXZlIHRlIHZvb3Jrb21lbi48L2xpPg0KPGxpPkJld2Vyay9rb3BpJmV1bWw7ZXIgb2YgbWFhayBuaWV1d2Ugc2phYmxvbmVuLiBLbGlrIG9wIGhldCBpbmZvLWljb24gb25kZXIgaGV0IHZlbGQgbWV0IHNqYWJsb29uLWNvZGUgdm9vciBlZW4gb3Bzb21taW5nIHZhbiBkZSBiZXNjaGlrYmFyZSB2YXJpYWJlbGVuLjwvbGk+DQo8L3VsPg0KPHA+T20gc2phYmxvbmVuIHRlIGt1bm5lbiBiZXdlcmtlbiwgbW9ldCBlZW4gZ2VicnVpa2VyIGxpZCB6aWpuIHZhbiBlZW4gZ3JvZXAgbWV0ICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcmVjaHRlbi4gT20gZGUgR2FsbGVyeSBvcHRpZXMgaW4gdGUgc3RlbGxlbiwgbW9ldCBlZW4gZ2VicnVpa2VyIHRvdCBlZW4gZ3JvZXAgYmVob3JlbiBkaWUgJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgcmVjaHRlbiBoZWVmdC48L3A+DQo8cD5BbGxlIHRpdGVscywgb21zY2hyaWp2aW5nZW4gZW4gaW5zdGVsbGluZ2VuIHdvcmRlbiBvcGdlc2xhZ2VuIGluIGRlIGRhdGFiYXNlLiBEZSBkYXRhYmFzZSB3b3JkdCBnZXN5bmNocm9uaXNlZXJkIG1ldCBkZSBmaWxlZGlyZWN0b3J5IHRlbGtlbnMgd2FubmVlciBkZSBiZXRyZWZmZW5kZSBnYWxlcmllIHdvcmR0IGJlem9jaHQgaW4gZGUgR2FsbGVyeS1hZG1pbi4gRWVuIGtsZWluZSB3YWFyc2NodXdpbmc6IGRlIHRpdGVsLCBvbXNjaHJpanZpbmcgZW4gaW5zdGVsbGluZ2VuIHdvcmRlbiB2ZXJ3aWpkZXJkIGFscyBlZW4gZm90byBvZiBnYWxlcmllIHdvcmR0IHZlcnBsYWF0c3QgbmFhciBlZW4gYW5kZXJlIGRpcmVjdG9yeS48L3A+DQo8aDM+T25kZXJzdGV1bmluZzwvaDM+DQo8cD5EZXplIG1vZHVsZSBnZW5pZXQgZ2VlbiBjb21tZXJjaSZldW1sO2xlIG9uZGVyc3RldW5pbmcuIEVyIHppam4gZWNodGVyIG1lZXJkZXJlIG1vZ2VsaWpraGVkZW4gb20gaHVscCB0ZSBrcmlqZ2VuOjwvcD4NCjx1bD4NCjxsaT5CZXpvZWsgZGUgTW9kdWxlIEZvcmdlDQo8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2dhbGxlcnkvIj5HYWxsZXJ5IHBhZ2luYTwvYT4gdm9vciBkZSBsYWF0c3RlIHZlcnNpZSB2YW4gZGV6ZSBtb2R1bGUsIG9mIG9tIGVlbiAmIzAzOTtmZWF0dXJlIHJlcXVlc3QmIzAzOTsgb2YgJiMwMzk7YnVnJiMwMzk7IHRlIHJhcHBvcnRlcmVuLjwvbGk+DQo8bGk+QWFudnVsbGVuZGUgYmVzcHJla2luZyB2YW4gZGV6ZSBtb2R1bGUga2FuIG9vayB3b3JkZW4gZ2V2b25kZW4gaW4gZGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRvdCBzbG90IGt1bnQgdSB3ZWxsaWNodCBlbmlnIHN1Y2NlcyBib2VrZW4gZG9vciBkZSBhdXRldXIgcmVjaHRzdHJlZWtzIHRlIG1haWxlbi48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIEpvcyA8YSBocmVmPSJtYWlsdG86am9zdmRAbGl2ZS5ubCI+LWpvc3ZkQGxpdmUubmwtPC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNTI0ODUzMTAuMzgxLjYwLnV0bWNzcj13aWtpLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2luZGV4LnBocC9NYWluX1BhZ2UnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNDIzNTg1Nzg3LjEyMDU4NjcxNzcuMTI1MjQ4NTMxMC4xMjUyNDkyNzU2LjM4Mic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dhbGVyaWUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdDZWEgbWFpIHVzb2FyYSBjYWxlIGRlIGEgYWRtaW5pc3RyYSBzaSBhIGFmaXNhIGdhbGVyaWkgZm90byc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ08gZ2FsZXJpZSB1c29yIGRlIGZvbG9zaXQgY2FyZSBhZmlzZWF6YSB1dG9tYXQgaW1hZ2luaWxlIHVudWkgZm9sZGVyIHNwZWNpZmljYXQuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWx1bCBHYWxlcmllIGEgZm9zdCBpbnN0YWxhdCBjdSBzdWNjZXMuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdWwgR2FsZXJpZSB2ZXJzaXVuZWEgJXMgYSBmb3N0IGluc3RhbGF0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsdWwgR2FsZXJpZSBlc3RlIGFjdHVhbGl6YXQgbGEgdmVyc2l1bmVhICVzLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWx1bCBHYWxlcmllIGEgZm9zdCBkZXppbnN0YWxhdCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsdWwgR2FsZXJpZSBhIGZvc3QgZGV6aW5zdGFsYXQnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1NpZ3VyIGRvcml0aSBzYSBkZXppbnN0YWxhdGkgbW9kdWx1bCBHYWxlcmllPyBBY2VzdCBsdWNydSBudSBhZmVjdGVhemEgaW1hZ2luaWxlLCBkYXQgdG9hdGUgZGF0ZWxlIGRlIGNvbWVudGFyaWkgc2kgbWluaWF0dXJpbGUgY2FyZSBhdSBmb3N0IGNyZWF0ZSBkZSBHYWxlcmllIHZvciBmaSBzdGVyc2UuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzIEludGVyemlzLiBWZXJpZmljYXRpLXZhIHBlcm1pc2l1bmlsZS4nOwokbGFuZ1snYWN0aW9ucyddID0gJ0FjdGl1bmknOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXYnOwokbGFuZ1snYXBwbHknXSA9ICdBcGxpY2FyZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU2lndXIgZG9yaXRpIHNhIHN0ZXJnZXRpPyc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsYXJlJzsKJGxhbmdbJ2NvcHknXSA9ICdDb3BpZXJlJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdpbXBsaWNpdCc7CiRsYW5nWydkZWxldGUnXSA9ICdTdGVyZ2VyZSc7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyZSc7CiRsYW5nWydlcnJvciddID0gJ0Vyb2FyZSEnOwokbGFuZ1snc2V0ZmFsc2UnXSA9ICdTZXRhcmUgRmFscyc7CiRsYW5nWydzZXR0cnVlJ10gPSAnU2V0YXJlIEFkZXZhcmF0JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhbHZhcmUnOwokbGFuZ1snZ2FsbGVyaWVzJ10gPSAnR2FsZXJpaSc7CiRsYW5nWydnYWxsZXJ5cGF0aCddID0gJ0dhbGVyaWUnOwokbGFuZ1snZWRpdGdhbGxlcnknXSA9ICdFZGl0YXJlIGdhbGVyaWUnOwokbGFuZ1snYWRkZ2FsbGVyeSddID0gJ0FkYXVnYXJlIGdhbGVyaWUnOwokbGFuZ1snbm9nYWxsZXJpZXN0ZXh0J10gPSAnTmNpIG8gZ2FsZXJpZSBkaXNwb25pYmlsYSc7CiRsYW5nWydpbWFnZSddID0gJ2ltYWdpbmUnOwokbGFuZ1sndGl0bGUnXSA9ICdUaXRsdSc7CiRsYW5nWydkYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydub2ZpbGVzdGV4dCddID0gJ05pY2kgbyBpbWFnaW5lIGRpc3BvbmliaWxhJzsKJGxhbmdbJ2dhbGxlcnl0aXRsZSddID0gJ1RpdGx1IGdhbGVyaWUnOwokbGFuZ1snY29tbWVudCddID0gJ0NvbWVudGFyaXUnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSAnOwokbGFuZ1sndXNlZGVmYXVsdCddID0gJ2ZvbG9zaXJlIGltcGxpY2l0JzsKJGxhbmdbJ3RodW1ibmFpbHNpemUnXSA9ICdEaW1lbnNpdW5lIG1pbmlhdHVyaSAoRnJvbnRlbmQpJzsKJGxhbmdbJ2xlYXZlZW1wdHknXSA9ICcobGFzYXRpIGdvbCBwZW50cnUgYSBmb2xvc2kgbWluaWF0dXJpbGUgaW1wbGljaXRlIGRlIGxhIE1hbmFnZXIgSW1hZ2luaSknOwokbGFuZ1snd2lkdGgnXSA9ICdsYXRpbWUnOwokbGFuZ1snaGVpZ2h0J10gPSAnaW5hbHRpbWUnOwokbGFuZ1sncmVzaXplbWV0aG9kJ10gPSAnbWV0b2RhIHJlZGltZW5zaW9uYXJlJzsKJGxhbmdbJ2Nyb3AnXSA9ICdjcm9wICc7CiRsYW5nWydzY2FsZSddID0gJ3NjYWxhcmUnOwokbGFuZ1snem9vbWNyb3AnXSA9ICd6b29tICZhbXA7IGNyb3AgJzsKJGxhbmdbJ3pvb21zY2FsZSddID0gJ3pvb20gJmFtcDsgc2NhbGFyZSc7CiRsYW5nWydjcmVhdGV0aHVtYnMnXSA9ICcoUmUpQ3JlYXJlIE1pbmlhdHVyaSc7CiRsYW5nWyd0aHVtYnNjcmVhdGVkJ10gPSAnTWluaWF0dXJpIGNyZWF0ZSc7CiRsYW5nWydnYWxsZXJ5dXBkYXRlZCddID0gJ0dhbGVyaWEgYSBmb3N0IGFjdHVhbGl6YXRhIGN1IHN1Y2Nlcy4nOwokbGFuZ1snZXJyb3JfdXBkYXRlZ2FsbGVyeWZhaWxlZCddID0gJ0FjdHVhbGl6YXJlIGdhbGVyaWUgZXN1YXRhLic7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZS11cmknOwokbGFuZ1sndGl0bGVfYXZhaWxhYmxlX3RlbXBsYXRlcyddID0gJ1RlbXBsYXRldXJpIGRpc3BvbmliaWxlJzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnTnVtZSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ0ltcGxpY2l0JzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ0NyZWFyZSB0ZW1wbGF0ZSBub3UnOwokbGFuZ1sndGl0bGVfdGVtcGxhdGUnXSA9ICdFZGl0b3IgdGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ051bWUgdGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU3Vyc2EgdGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlanMnXSA9ICdKYXZhU2NyaXB0IFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZWNzcyddID0gJ1N0eWxlc2hlZXQgQ1NTIHRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRldXBkYXRlZCddID0gJ1RlbXBsYXRlLXVsIGEgZm9zdCBhY3R1YWxpemF0IGN1IHN1Y2Nlcy4nOwokbGFuZ1sndGVtcGxhdGVhZGRlZCddID0gJ1RlbXBsYXRlLXVsIGEgZm9zdCBhZGF1Z2F0IGN1IHN1Y2Nlcy4nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnTnVtZWxlIGRlIHRlbXBsYXRlIGV4aXN0YSBkZWphLic7CiRsYW5nWyd0ZW1wbGF0ZWRlbGV0ZWQnXSA9ICdUZW1wbGF0ZSBzdGVycyc7CiRsYW5nWydhdmFpbGFibGV2YXJpYWJsZXMnXSA9ICdWYXJpYWJpbGUgc21hcnR5IGRpc3BvbmliaWxlIHBlbnRydSB0ZW1wbGF0ZSc7CiRsYW5nWydhdmFpbGFibGV2YXJpYWJsZXNsaXN0J10gPSAnQWNlc3RlYSBzdW50IHZhcmlhYmlsZWxlIHBlIGNhcmUgbGUgcHV0ZXRpIGZvbG9zaSBwZW50cnUgYSBjdXN0b21pemEgdGVtcGxhdGUtdWwgZHVtbmVhdm9hc3RyYTo8YnIgLz48YnIgLz4KeyRtb2R1bGVfbWVzc2FnZX0gLSBlcnJvciBtZXNzYWdlLCBpcyBvbmx5IHNldCBpZiB0aGVyZSYjMDM5O3MgYSBtZXNzYWdlPGJyIC8+CnskZ2FsbGVyeXRpdGxlfSAtIHRpdGxlIG9mIHRoZSBnYWxsZXJ5LiBJZiB0aGVyZSBpcyBubyB0aXRsZSwgdGhpcyB3aWxsIHNob3cgdGhlIGRpcmVjdG9yeSBuYW1lPGJyIC8+CnskZ2FsbGVyeWNvbW1lbnR9IC0gY29tbWVudCBvZiB0aGUgZ2FsbGVyeTxiciAvPgp7JHBhcmVudGxpbmt9IC0gbGluayB0byB0aGUgcGFyZW50IGZvbGRlcjxiciAvPgp7JGltYWdlY291bnR9IC0gc2hvd3MgZS5nLiAmcXVvdDs2IGltYWdlcyZxdW90OywgZGVwZW5kaW5nIG9uIGxhbmd1YWdlPGJyIC8+CnskaXRlbWNvdW50fSAtIG51bWJlciBvZiBpdGVtcywgaW1hZ2VzICsgZm9sZGVyczxiciAvPgp7JHBhZ2VzfSAtIG51bWJlciBvZiBwYWdlczxiciAvPgp7JHByZXZwYWdlfSAtIGxpbmsgdG8gcHJldmlvdXMgcGFnZSwgaWYgYXBwbGljYWJsZTxiciAvPgp7JG5leHRwYWdlfSAtIGxpbmsgdG8gbmV4dCBwYWdlLCBpZiBhcHBsaWNhYmxlPGJyIC8+CnskcGFnZWxpbmtzfSAtIGxpbmtzIHRvIGVhY2ggZXhpc3RpbmcgcGFnZTxiciAvPgp7JGltYWdlc30gLSBhcnJheSB3aXRoIGtleXM6PGJyIC8+CiAtIGZpbGUgLSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBvcmlnaW5hbCBpbWFnZSAob3Igc3ViZ2FsbGVyeSk8YnIgLz4KIC0gdGl0bGUgLSB0aXRsZSBvZiB0aGUgaW1hZ2UuIElmIHRoZXJlIGlzIG5vIHRpdGxlLCB0aGlzIHdpbGwgc2hvdyB0aGUgZmlsZW5hbWU8YnIgLz4KIC0gY29tbWVudCAtIGNvbW1lbnQgdG8gdGhlIGltYWdlPGJyIC8+CiAtIGZpbGVkYXRlIC0gY3JlYXRpb24gZGF0ZS90aW1lPGJyIC8+CiAtIHRodW1iIC0gcmVsYXRpdmUgcGF0aCB0byB0aGUgdGh1bWJuYWlsLiBJbiBjYXNlIG9mIGEgc3ViZ2FsbGVyeSwgdGhpcyB3aWwgcmV2ZXJ0IHRvIHRoZSBpbWFnZSB3aGljaCBpcyBzZXQgYXMgZGVmYXVsdCBpbiB0aGF0IHN1YmdhbGxlcnkuIElmIG5vIGltYWdlIGlzIHNldCBhcyBkZWZhdWx0LCBhIHN0YW5kYXJkIGZvbGRlci1pY29uIHdpbGwgYmUgdXNlZC48YnIgLz4KIC0gaXNkaXIgLSB0cnVlIGlmIGl0JiMwMzk7cyBhIHN1YmdhbGxlcnk8YnIgLz4KIC0gZm9sZGVybGluayAtIGRlcHJlY2F0ZWQhIFVzZSBmaWxlIGFuZCB0aHVtYiBpbnN0ZWFkPGJyIC8+Cic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aXVuaSc7CiRsYW5nWydhbGxvd2VkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpaSBwZXJtaXNlJzsKJGxhbmdbJ3VzZV9jb21tZW50X3d5c2l3eWcnXSA9ICdTZSBmb2xvc2VzdGUgdW4gZWRpdG9yIFdZU0lXWUcgaW4gY2FtcHVsIGRlIGNvbWVudGFyaWknOwokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdPcHRpdW5pbGUgYXUgZm9zdCBhY3R1YWxpemF0ZSBjdSBzdWNjZXMuJzsKJGxhbmdbJ2ltYWdlcyddID0gJ2ltYWdpbmknOwokbGFuZ1sncHJldnBhZ2UnXSA9ICdpbmFwb2knOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICdpbmFpbnRlJzsKJGxhbmdbJ2RlZmF1bHRnYWxsZXJ5Y29tbWVudCddID0gJ1ZhIG11bHR1bWltIGNhIGF0aSBpbnN0YWxhdCBtb2R1bHVsIEdhbGVyaWUuIERhY2EgYXRpIHVyY2F0IGltYWdpbmkgaW4gZm9sZGVydWwgJiMwMzk7dXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS8mIzAzOTssIGxlIHZldGkgdmVkZWEgbWFpIGpvcy4gUHV0ZXRpIGVkaXRhIHRpdGx1cmlsZSwgZGVzY3JpZXJpbGUgc2kgZGltZW5zaXVuaWxlIG1pbmlhdHVyaWxvciBpbiBzZWN0aXVuZWEgZGUgYWRtaW5pc3RyYXJlLiBWZXJpZmljYXRpIHRvYXRlIGNlbGVsYWx0ZSBvcHRpdW5pIGRpc3BvbmliaWxlIGluIEFqdXRvciBtb2R1bC4nOwokbGFuZ1snaGVscF9kaXInXSA9ICdQYXJhbWV0cnUgcGVudHJ1IHNwZWNpZmljYXJlIGZvbGRlciwgcmVsYXRpdiBsYSB1cGxvYWRzL2ltYWdlcy9HYWxsZXJ5Lyc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnRm9sb3NpcmUgdGVtcGxhdGUgYmF6YSBkZSBkYXRlIHNlcGFyYXQgcGVudHJ1IGFmaXNhcmUgZ2FsZXJpZSBmb3RvLiBBY2VzdCB0ZW1wbGF0ZSB0cmVidWllIHNhIGV4aXN0ZSBzaSBzYSBmaWUgdml6aWJpbCBpbiB0YWJ1bCBkZSB0ZW1wbGF0ZS11cmkgZGluIHBhbm91bCBkZSBhZG1pbmlzdHJhcmUgYWwgbW9kdWx1bHVpLCB0b3R1c2kgbnUgdHJlYnVpZSBzYSBmaWUgY2VsIGltcGxpY2l0LiBEYWNhIGFjZXN0IHBhcmFtZXRydSBudSBlc3RlIHNwZWNpZmljYXQsIGF0dW5jaSB0ZW1wbGF0ZS11bCBhbG9jYXQgZm9sZGVydWx1aSBlc3RlIGZsb3NpdCwgYWx0ZmVsIHNlIGZvbG9zZXN0ZSBjZWwgaW1wbGljaXQuJzsKJGxhbmdbJ2hlbHBfbnVtYmVyJ10gPSAnTnVtYXJ1bCBtYXhpbSBkZSBtaW5pYXR1cmkgZGUgYWZpc2F0IChwZXIgcGFnaW5hKS4gRGFjYSBsYXNhdGkgY2FtcHVsIGdvbCwgc2Ugdm9yIGFmaXNhIHRvYXRlIGltYWdpbmlsZS4nOwokbGFuZ1snaGVscF9zdGFydCddID0gJ1Bvcm5pcmUgbGEgYSBuLWEgaW1hZ2luZS4gRGFjYSBsYXNhdGkgY2FtcHVsIGdvbCwgc2UgdmEgcG9ybmkgZGUgbGEgcHJpbWEgaW1hZ2luZS4nOwokbGFuZ1snaGVscF9zaG93J10gPSAnU3VwcmFzY3JpZSBjYXJlIGltYWdpbmkgc2EgZmllIGFmaXNhdGUuIFZhbG9yaSBwb3NpYmlsZSBzdW50Ogo8dWw+CjxsaT4mIzAzOTthY3RpdmUmIzAzOTsgLSBwZW50cnUgYWZpc2FyZSBpbWFnaW5pIG1hcmNhdGUgY2EgYWN0aXZlIChpbXBsaWNpdCk8L2xpPgo8bGk+JiMwMzk7aW5hY3RpdmUmIzAzOTsgLSBwZW50cnUgYWZpc2FyZSBudW1haSBpbWFnaW5pIG1hcmNhdGUgY2EgaW5hY3RpdmUgPC9saT4KPGxpPiYjMDM5O2FsbCYjMDM5OyAtIHBlbnRydSBhZmlzYXJlIHRvYXRlIGltYWdpbmlsZTwvbGk+CjwvdWw+Cic7CiRsYW5nWydoZWxwX2NhdGVnb3J5J10gPSAnVG8gZGlzcGxheSBvbmx5IGltYWdlcy9nYWxsZXJpZXMgYXNzaWduZWQgdG8gdGhlIHNwZWNpZmllZCBjYXRlZ29yaWVzLiBVc2UgKiBhZnRlciB0aGUgbmFtZSB0byBzaG93IGNoaWxkcmVuLiAgTXVsdGlwbGUgY2F0ZWdvcmllcyBjYW4gYmUgdXNlZCBpZiBzZXBhcmF0ZWQgd2l0aCBhIGNvbW1hLiBMZWF2aW5nIGVtcHR5LCB3aWxsIHNob3cgYWxsIGNhdGVnb3JpZXMuICc7CiRsYW5nWydoZWxwX2FjdGlvbiddID0gJ092ZXJyaWRlIHRoZSBkZWZhdWx0IGFjdGlvbi4gVXNlIGl0IGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGFib3ZlIHBhcmFtZXRlcnMuIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KPGxpPiYjMDM5O3Nob3dyYW5kb20mIzAzOTsgLSB0byBkaXNwbGF5IGEgc2V0IG9mIHJhbmRvbSB0aHVtYi1pbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykuIFRoZSBkaXIgcGFyYW1ldGVyIG11c3QgYmUgc2V0LCBvciB0aGUgZGVmYXVsdCBHYWxsZXJ5LXJvb3Qgd2lsbCBiZSB1c2VkLiBVc2UgJiMwMzk7LyomIzAzOTsgYWZ0ZXIgdGhlIG5hbWUgdG8gaW5jbHVkZSBpbWFnZXMgZnJvbSBzdWJkaXJlY3RvcmllczwvbGk+CjxsaT4mIzAzOTtzaG93bGF0ZXN0JiMwMzk7IC0gdG8gZGlzcGxheSB0aGUgbW9zdCByZWNlbnRseSBhZGRlZCBpbWFnZXMgKGFwcGxpZXMgb25seSB0byB0aGUgaW1hZ2VzIHdoaWNoIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byBhIG51bWJlciBvZiA2IGltYWdlcykgVGhlIGRpciBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQsIG9yIHRoZSBkZWZhdWx0IEdhbGxlcnktcm9vdCB3aWxsIGJlIHVzZWQuIFN1YmRpcmVjdG9yaWVzIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkPC9saT4KPGxpPiYjMDM5O3Nob3dsYXRlc3RkaXImIzAzOTsgLSBub3QgeWV0IGltcGxlbWVudGVkISBNZW5kIHRvIGRpc3BsYXkgYSBzZXQgb2YgcmFuZG9tIHRodW1iLWltYWdlcyBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGRpcmVjdG9yeSAoYXBwbGllcyBvbmx5IHRvIHRoZSBpbWFnZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIGEgbnVtYmVyIG9mIDYgaW1hZ2VzKSBUaGUgdGh1bWItc2V0dGluZ3Mgb2YgdGhlIEdhbGxlcnktcm9vdCB3aWxsIGJlIHVzZWQ8L2xpPgo8L3VsPiAKJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS4wLjMuIDggU2VwdGVtYmVyIDIwMDkuIEJ1Z2ZpeCBmb3IgWyM0MDAxXSwgSW1wcm92ZWQgc3luY2hyb25pemluZyB0aGUgZGF0YWJhc2UgdG8gZmlsZXMsIGFuZCBvdGhlciBtaW5vciBpbXByb3ZlbWVudHMuPC9saT4KPGxpPlZlcnNpb24gMS4wLjIuIDUgU2VwdGVtYmVyIDIwMDkuIEJ1Z2ZpeCBmb3IgWyMzOTgzXSByZWdhcmRpbmcgc3BhY2VzIGluIGRpcmVjdG9yeSBuYW1lcywgQWRkZWQgdGVtcGxhdGVzIEZhbmN5Ym94IGFuZCBMeXRlYm94X3NsaWRlc2hvdyBhcyBpbiBGZWF0dXJlIHJlcXVlc3RzIFsjMzk0NF0gYW5kIFsjMzk2N108L2xpPgo8bGk+VmVyc2lvbiAxLjAuMS4gMjMgQXVndXN0IDIwMDkuIEFwcGx5IHRodW1ibmFpbC1zZXR0aW5ncyBvbiBcJ0FsYnVtLWNvdmVyc1wnIFsjMzkyNF0sIEJ1Z2ZpeCBmb3IgWyMzOTI3XSwgQWRkZWQgbWlzc2luZyAvZGl2IHRvIHRoaWNrYm94LXRlbXBsYXRlLCBmaXhlZCBhbiBpc3N1ZSB3aXRoIGdlbmVyYXRpbmcgdGh1bWJuYWlscyB3aGVuIG5vIHRodW1icyBhdmFpbGFibGUgaW4gSW1hZ2VNYW5hZ2VyLCBpbXByb3ZlZCB0aGUgbmFtaW5nIG9mIHRodW1icywgQnVnZml4IGZvciBbIzM5MzFdLCBQcmV2ZW50IGRpc3BsYXkgdGhlIGNvbnRlbnQgb2YgZ2FsbGVyaWVzIHRoYXQgYXJlIHNldCBhcyBpbmFjdGl2ZS48L2xpPgo8bGk+VmVyc2lvbiAxLjAuIDE3IEF1Z3VzdCAyMDA5LiBQYWdpbmF0aW9uIHBhcmFtZXRlcnMgYWRkZWQsIFN0YW5kYXJkIHRlbXBsYXRlcyBjaGFuZ2VkIGFjY29yZGluZ2x5LCBFeHRlbmRlZCB0aGUgbW9kdWxlLWhlbHAsIEFkZGVkIGZ1bmN0aW9ucyB0byBzaG93IHJhbmRvbSBvciBsYXRlc3QgaW1hZ2VzLCBTdXBwb3J0IG9mIHByZXR0eS11cmxzLCBWYXJpb3VzIGltcHJvdmVtZW50czwvbGk+CjxsaT5WZXJzaW9uIDAuNi4gOSBBdWd1c3QgMjAwOS4gSW5pdGlhbCBCZXRhIFJlbGVhc2UuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEdhbGxlcnkgbW9kdWxlIGlzIGFuIGVhc3kgdG8gdXNlIHBob3RvIGdhbGxlcnkgd2hpY2ggYXV0b21hdGljYWxseSBzaG93cyB0aGUgaW1hZ2VzIG9mIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4gU3ViZGlyZWN0b3JpZXMgd2lsbCBiZSBzaG93biBhcyBzdWJnYWxsZXJpZXMuIEl0IGhhcyBsb3RzIG9mIGZlYXR1cmVzLCBzdWNoIGFzIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcsIHRoZSB1c2Ugb2YgbXVsdGlwbGUgTGlnaHRib3gtbGlrZSB0ZW1wbGF0ZXMgb3IgYW55IGNzcy9qYXZhc2NyaXB0IHRlbXBsYXRlIHlvdSBsaWtlLCBhbmQgeW91IGNhbiBnaXZlIHRpdGxlcyBhbmQgZGVzY3JpcHRpb25zIHRvIHlvdXIgZ2FsbGVyaWVzIGFzIHdlbGwgYXMgeW91ciBwaG90b3MuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+Rmlyc3QsIGluc2VydCB0aGUgbW9kdWxlIHdpdGggdGhlIHtHYWxsZXJ5fSB0YWcgaW50byB5b3VyIHBhZ2Ugb3IgdGVtcGxhdGUgYW55d2hlcmUgeW91IHdoaXNoLiBUaGVuIHVwbG9hZCBzb21lIGltYWdlcyB3aXRoIHRoZSBJbWFnZSBNYW5hZ2VyLCBGaWxlIE1hbmFnZXIgKGUuZy4gbXVsdGlwbGUgaW1hZ2VzIGluIHppcGZpbGUpIG9yIEZUUCB0byB0aGUgdXBsb2Fkcy9pbWFnZXMvR2FsbGVyeS8gZGlyZWN0b3J5LjwvcD4KPHA+VGhhdCYjMDM5O3MgaXQhPC9wPgo8cD5JZiB5b3Ugd2FudCBtb3JlIHBob3RvIGdhbGxlcmllcywgc2ltcGx5IGNyZWF0ZSBhIHN1YmRpcmVjdG9yeSBhbmQgdXBsb2FkIHlvdXIgcGhvdG9zIGFzIGRlc2NyaWJlZC4gQnkgYWRkaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHtHYWxsZXJ5fSB0YWcsIHlvdSBjYW4gZWFzaWx5IG1hbmlwdWxhdGUgd2hpY2ggc3ViZ2FsbGVyeSB3aWxsIGJlIHNob3duIGluIHdoaWNoIHRlbXBsYXRlLCBlLmcuIHtHYWxsZXJ5IGRpcj0mcXVvdDtob2xpZGF5cy9OZXRoZXJsYW5kczIwMDkmcXVvdDsgdGVtcGxhdGU9JnF1b3Q7TGlnaHRib3gmcXVvdDt9PC9wPgo8cD5CeSBkZWZhdWx0IHRoZSB0aHVtYm5haWxzIGZyb20gdGhlIEltYWdlIE1hbmFnZXIgYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgcGhvdG8gZ2FsbGVyaWVzLjwvcD4KPGgzPkFkdmFuY2VkIE9wdGlvbnMsIGJ1dCBzdGlsbCBlYXN5IHRvIHVzZTwvaDM+CjxwPkluIHRoZSBhZG1pbiBzZWN0aW9uIHlvdSBoYXZlIGxvdHMgb2Ygb3RoZXIgb3B0aW9uczo8L3A+Cjx1bD4KPGxpPlNldCBhIHBob3RvIGFzIHRoZSBkZWZhdWx0IGZvciBhIGdhbGxlcnksIHNvIGl0IHdpbGwgc2hvdyBpbiB0aGUgcGFyZW50IGdhbGxlcnkgYXMgYSAmIzAzOTtjb3ZlciYjMDM5OyBpbiBzdGVhZCBvZiB0aGUgZGVmYXVsdCBmb2xkZXItaWNvbi48L2xpPgo8bGk+R2l2ZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucyB0byBnYWxsZXJpZXMuPC9saT4KPGxpPlNldCBhIGRlZmF1bHQgdGVtcGxhdGUgZm9yIGVhY2ggZ2FsbGVyeS48L2xpPgo8bGk+U2V0IHRodW1ibmFpbCBzaXplcyBmb3IgZWFjaCBnYWxsZXJ5LCB3aXRoIHBvc2liaWxpdGllcyB0byBzY2FsZSwgY3JvcCBhbmQvb3Igem9vbSB0aGUgaW1hZ2VzLjwvbGk+CjxsaT5HaXZlIHRpdGxlcyBhbmQgZGVzY3JpcHRpb25zIHRvIHBob3Rvcy48L2xpPgo8bGk+U3dpdGNoIGEgc3BlY2lmaWMgcGhvdG8gb3IgZ2FsbGVyeSB0byBpbmFjdGl2ZSwgcHJldmVudGluZyBpdCBmcm9tIGRpc3BsYXkuPC9saT4KPGxpPkVkaXQvY29weSB0ZW1wbGF0ZXMgb3IgY3JlYXRlIG5ldyBvbmVzLiBDaGVjayB0aGUgaW5mby1pY29uIGJlbmVhdGggdGhlIHRlbXBsYXRlLWNvZGUgZm9yIHRoZSBhdmFpbGFibGUgdmFyaWFibGVzLjwvbGk+CjwvdWw+CjxwPkluIG9yZGVyIHRvIGVkaXQgdGVtcGxhdGVzLCB0aGUgdXNlciBtdXN0IGJlbG9uZyB0byBhIGdyb3VwIHdpdGggdGhlICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcGVybWlzc2lvbi4gVG8gZWRpdCB0aGUgZ2xvYmFsIEdhbGxlcnkgb3B0aW9ucywgdGhlIHVzZXIgbXVzdCBiZWxvbmcgdG8gYSBncm91cCB3aXRoIHRoZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBwZXJtaXNzaW9uLjwvcD4KPHA+QWxsIHRpdGxlcywgZGVzY3JpcHRpb25zIGFuZCBzZXR0aW5ncyBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gVGhlIGRhdGFiYXNlIHdpbGwgc3luY2hyb25pemUgd2l0aCB0aGUgZmlsZWRpcmVjdG9yeSBlYWNoIHRpbWUgdGhlIGFjY29yZGluZyBnYWxsZXJ5IGlzIHZpc2l0ZWQgaW4gdGhlIEdhbGxlcnktYWRtaW4uIEEgbGl0dGxlIHdhcm5pbmc6IHdoZW4geW91IG1vdmUgYW4gaW1hZ2Ugb3Igc3ViZGlyZWN0b3J5IHRvIGFub3RoZXIgZGlyZWN0b3J5LCB5b3Ugd2lsbCBsb29zZSBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBzZXR0aW5ncy48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgRmVhdHVyZSBSZXF1ZXN0IG9yIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgTW9kdWxlIEZvcmdlCjxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZ2FsbGVyeS8iPkdhbGxlcnkgUGFnZTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgSm9zIDxhIGhyZWY9Im1haWx0bzpqb3N2ZEBsaXZlLm5sIj48am9zdmRAbGl2ZS5ubD48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+IAonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNTI2MDM3MzUwLjEyNTE5NTkzNDMuMTI1MTk4MTE5Mi4xMjUxOTg1Njg4LjUnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNTE5NTkzNDMuMS4xLnV0bWNzcj1nb29nbGV8dXRtY2NuPShvcmdhbmljKXx1dG1jbWQ9b3JnYW5pY3x1dG1jdHI9Y21zbWFkZXNpbXBsZSc7CiRsYW5nWydxY2EnXSA9ICdQMC05MDE2NTM0NzMtMTI1MTk1OTM0MjcyOSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogR2FsbGVyeQ0KIyBNZXRob2Q6IEluc3RhbGwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9nYWxsZXJ5Lw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCg0KJGRiID0mICRnQ21zLT5HZXREYigpOw0KDQovLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UNCiR0YWJvcHRhcnJheSA9IGFycmF5KCAnbXlzcWwnID0+ICdUWVBFPU15SVNBTScgKTsNCg0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7DQoNCi8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbg0KJGZsZHMgPSAiDQoJZmlsZWlkIEkgS0VZIEFVVE8sDQoJZmlsZW5hbWUgQygyNTUpLA0KCWZpbGVwYXRoIEMoMjU1KSwNCglmaWxlZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwNCglmaWxlb3JkZXIgSSwNCglhY3RpdmUgSSwNCglkZWZhdWx0ZmlsZSBJLA0KCWdhbGxlcnlpZCBJIEtFWSwNCgl0aXRsZSBDKDI1NSksDQoJY29tbWVudCBYDQoiOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dhbGxlcnkiLA0KCSRmbGRzLCANCgkkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KLyoNCi8vIGNyZWF0ZSBhIHNlcXVlbmNlDQokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dhbGxlcnlfc2VxIik7DQoqLw0KDQokZmxkcyA9ICINCglmaWxlaWQgSSBLRVksDQoJdGVtcGxhdGUgQygxMDApLA0KCXRodW1id2lkdGggSSwNCgl0aHVtYmhlaWdodCBJLA0KCXJlc2l6ZW1ldGhvZCBDKDEwKQ0KIjsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIiwNCgkkZmxkcywgDQoJJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KLy8gY3JlYXRlIGEgcGVybWlzc2lvbg0KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1VzZSBHYWxsZXJ5JywgJ1VzZSBHYWxsZXJ5Jyk7DQokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignU2V0IEdhbGxlcnkgUHJlZnMnLCdTZXQgR2FsbGVyeSBQcmVmcycpOw0KDQovLyBzZXR1cCB0ZW1wbGF0ZXMNCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVfZmFuY3lib3gudHBsJzsNCmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQ0KICB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGVtcGxhdGVfY29udGVudHMnLCR0ZW1wbGF0ZSk7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdGYW5jeWJveCcsJHRlbXBsYXRlKTsNCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF90ZW1wbGF0ZScsJ0ZhbmN5Ym94Jyk7DQogIH0NCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVfbGlnaHRib3gudHBsJzsNCmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQ0KICB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdMaWdodGJveCcsJHRlbXBsYXRlKTsNCiAgfQ0KJGZuID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLid0ZW1wbGF0ZV9seXRlYm94X3NsaWRlc2hvdy50cGwnOw0KaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApDQogIHsNCiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ0x5dGVib3hfc2xpZGVzaG93JywkdGVtcGxhdGUpOw0KICB9DQokZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLid0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlX3NsaW1ib3gudHBsJzsNCmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQ0KICB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdTbGltYm94JywkdGVtcGxhdGUpOw0KICB9DQokZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLid0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlX3RoaWNrYm94LnRwbCc7DQppZiggZmlsZV9leGlzdHMoICRmbiApICkNCiAgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnVGhpY2tib3gnLCR0ZW1wbGF0ZSk7DQogIH0NCg0KLy8gY3JlYXRlIGEgcHJlZmVyZW5jZQ0KJHRoaXMtPlNldFByZWZlcmVuY2UoImFsbG93ZWRfZXh0ZW5zaW9ucyIsICJqcGcsanBlZyxnaWYscG5nIik7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgidXNlX2NvbW1lbnRfd3lzaXd5ZyIsIGZhbHNlKTsNCg0KLy8gcmVnaXN0ZXIgYW4gZXZlbnQgdGhhdCB0aGUgR2FsbGVyeSB3aWxsIGlzc3VlLiBPdGhlciBtb2R1bGVzDQovLyBvciB1c2VyIHRhZ3Mgd2lsbCBiZSBhYmxlIHRvIHN1YnNjcmliZSB0byB0aGlzIGV2ZW50LCBhbmQgdHJpZ2dlcg0KLy8gb3RoZXIgYWN0aW9ucyB3aGVuIGl0IGdldHMgY2FsbGVkLg0KLy8gJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25HYWxsZXJ5UHJlZmVyZW5jZUNoYW5nZScgKTsNCg0KLy8gY3JlYXRlIGRlZmF1bHQgaW1hZ2Vmb2xkZXINCmlmKCAhaXNfZGlyKCcuLicuRElSRUNUT1JZX1NFUEFSQVRPUi4ndXBsb2FkcycuRElSRUNUT1JZX1NFUEFSQVRPUi4naW1hZ2VzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidHYWxsZXJ5JykgKQ0Kew0KICAgIG1rZGlyKCcuLicuRElSRUNUT1JZX1NFUEFSQVRPUi4ndXBsb2FkcycuRElSRUNUT1JZX1NFUEFSQVRPUi4naW1hZ2VzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidHYWxsZXJ5Jyk7DQp9DQoNCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9nYWxsZXJ5IChmaWxlbmFtZSwgZmlsZXBhdGgsIGZpbGVkYXRlLCBmaWxlb3JkZXIsIGFjdGl2ZSwgZGVmYXVsdGZpbGUsIGdhbGxlcnlpZCwgdGl0bGUsIGNvbW1lbnQpIFZBTFVFUyAoPyw/LD8sLTEsMSwwLDAsPyw/KSI7DQokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnR2FsbGVyeS8nLCAnJywgZGF0ZSgiWS1tLWQgSDppOnMiLCBmaWxlbXRpbWUoJy4uL3VwbG9hZHMvaW1hZ2VzL0dhbGxlcnknKSksICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2RlZmF1bHRnYWxsZXJ5Y29tbWVudCcpKSk7DQoNCg0KLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQokdGhpcy0+QXVkaXQoIDAsIA0KCSR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgDQoJJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsICR0aGlzLT5HZXRWZXJzaW9uKCkpICk7DQoJICAgICAgDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogR2FsbGVyeQ0KIyBNZXRob2Q6IFVuaW5zdGFsbA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2dhbGxlcnkvDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KDQokZGIgPSYgJGdDbXMtPkdldERiKCk7DQoNCi8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGVzDQokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsNCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dhbGxlcnkiICk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIiApOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQovLyByZW1vdmUgdGhlIHBlcm1pc3Npb25zDQokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignVXNlIEdhbGxlcnknKTsNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTZXQgR2FsbGVyeSBQcmVmcycpOw0KDQovLyByZW1vdmUgYWxsIHByZWZlcmVuY2VzDQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOw0KDQovLyByZW1vdmUgYWxsIHRlbXBsYXRlcw0KJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7DQoNCi8vIHJlbW92ZSB0aGUgZXZlbnRzDQovLyR0aGlzLT5SZW1vdmVFdmVudCggJ09uR2FsbGVyeVByZWZlcmVuY2VDaGFuZ2UnICk7DQoNCi8vIGRlbGV0ZSB0aHVtYnMgaW4gdGh1bWJzZm9sZGVyDQokdGh1bWJzZm9sZGVyID0gJy4uJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidtb2R1bGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidHYWxsZXJ5Jy5ESVJFQ1RPUllfU0VQQVJBVE9SLid0aHVtYnMnOw0KaWYoICRkaCA9IEBvcGVuZGlyKCR0aHVtYnNmb2xkZXIpICkNCnsNCgl3aGlsZSggZmFsc2UgIT09ICgkb2JqID0gcmVhZGRpcigkZGgpKSApIA0KCXsNCgkJaWYoICRvYmogIT0gJy4nICYmICRvYmogIT0gJy4uJyApDQoJCXsNCgkJCUB1bmxpbmsoJHRodW1ic2ZvbGRlci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvYmopOw0KCQl9DQoJfQ0KCWNsb3NlZGlyKCRkaCk7DQp9DQoNCg0KDQovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEdhbGxlcnkKIyBNZXRob2Q6IFVwZ3JhZGUKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2dhbGxlcnkvCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKJGRiID0mICR0aGlzLT5HZXREYigpOwoKc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pCnsKCWNhc2UgIjAuNi4wLWJldGEiOgoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dhbGxlcnkiLCAiZ2FsbGVyeWlkIEkgS0VZIik7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nYWxsZXJ5IFNFVCBnYWxsZXJ5aWQ9SUYoZmlsZWlkPTEsMCwxKSBXSEVSRSBmaWxlcGF0aD0nJyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCBESVNUSU5DVCBmaWxlcGF0aCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2FsbGVyeSBXSEVSRSAoZ2FsbGVyeWlkIElTIE5VTEwgT1IgZ2FsbGVyeWlkID0gMCkgQU5EIGZpbGVpZCA8PiAxIjsKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJd2hpbGUgKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpCgkJewoJCQkkZ2FsbGVyeWluZm8gPSAkdGhpcy0+X0dldGdhbGxlcnlpbmZvKCRyb3dbJ2ZpbGVwYXRoJ10pOwoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ2FsbGVyeSBTRVQgZ2FsbGVyeWlkPT8gd2hlcmUgZmlsZXBhdGg9PyI7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGdhbGxlcnlpbmZvWydmaWxlaWQnXSwkcm93WydmaWxlcGF0aCddKSk7CgkJfQoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIFNFVCByZXNpemVtZXRob2Q9J3NjJyBXSEVSRSByZXNpemVtZXRob2Q9J3NjYWxlJyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dhbGxlcnlfcHJvcHMgU0VUIHJlc2l6ZW1ldGhvZD0nY3InIFdIRVJFIHJlc2l6ZW1ldGhvZD0nY3JvcCciOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIFNFVCByZXNpemVtZXRob2Q9J3pzJyBXSEVSRSByZXNpemVtZXRob2Q9J3pvb21zY2FsZSciOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9nYWxsZXJ5X3Byb3BzIFNFVCByZXNpemVtZXRob2Q9J3pjJyBXSEVSRSByZXNpemVtZXRob2Q9J3pvb21jcm9wJyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICIxLjAiOwoKCWNhc2UgIjEuMCI6CgkJJHRodW1ic2ZvbGRlciA9ICcuLicuRElSRUNUT1JZX1NFUEFSQVRPUi4nbW9kdWxlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nR2FsbGVyeScuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGh1bWJzJzsKCQlpZiggJGRoID0gQG9wZW5kaXIoJHRodW1ic2ZvbGRlcikgKQoJCXsKCQkJd2hpbGUoIGZhbHNlICE9PSAoJG9iaiA9IHJlYWRkaXIoJGRoKSkgKSAKCQkJewoJCQkJaWYoICRvYmogIT0gJy4nICYmICRvYmogIT0gJy4uJyApCgkJCQl7CgkJCQkJQHVubGluaygkdGh1bWJzZm9sZGVyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG9iaik7CgkJCQl9CgkJCX0KCQkJY2xvc2VkaXIoJGRoKTsKCQl9CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICIxLjAuMSI7CgoJY2FzZSAiMS4wLjEiOgoJCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVfZmFuY3lib3gudHBsJzsKCQlpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQkJewoJCQkJJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ0ZhbmN5Ym94JywkdGVtcGxhdGUpOwoJCQl9CgkJJGZuID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLid0ZW1wbGF0ZV9seXRlYm94X3NsaWRlc2hvdy50cGwnOwoJCWlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJCQl7CgkJCQkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCQkJCSR0aGlzLT5TZXRUZW1wbGF0ZSgnTHl0ZWJveF9zbGlkZXNob3cnLCR0ZW1wbGF0ZSk7CgkJCX0KCQkkY3VycmVudF92ZXJzaW9uID0gIjEuMC4yIjsKCgljYXNlICIxLjAuMiI6CgoJCSRjdXJyZW50X3ZlcnNpb24gPSAiMS4wLjMiOwoKCWNhc2UgIjEuMC4zIjoKCn0KCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsIAoJICAgICAgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAKCSAgICAgICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsICR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admingalleries.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQp7Kgk8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CgkJPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPgoJPC9kaXY+Kn0KCTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CgkJPHRoZWFkPgoJCQk8dHI+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJPHRoPnskZ2FsbGVyeXBhdGh9PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskYWN0aXZlfTwvdGg+CQkJCgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JGFjdGlvbnN9PC90aD4KCQkJPC90cj4KCQk8L3RoZWFkPgoJCTx0Ym9keT4KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJe2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249cm93Y2xhc3N9CgkJCTx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJCQk8dGQ+PC90ZD4KCQkJCTx0ZD57JGVudHJ5LT5maWxlfTwvdGQ+CgkJCQk8dGQgY2xhc3M9InBhZ2Vwb3MiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+eyRlbnRyeS0+YWN0aXZlbGlua308L3RkPgkJCQoJCQkJPHRkIGNsYXNzPSJwYWdlcG9zIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCTwvdHI+Cgl7L2ZvcmVhY2h9CgkJPC90Ym9keT4KCTwvdGFibGU+CntlbHNlfQoJPGg0Pnskbm9nYWxsZXJpZXN0ZXh0fTwvaDQ+CnsvaWZ9CnsqCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD4KPC9kaXY+Kn0=]]></data>
	</file>
	<file>
	  <filename>/templates/adminoptions.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93ZWRfZXh0ZW5zaW9uc306PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FsbG93ZWRfZXh0ZW5zaW9uc308L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHVzZV9jb21tZW50X3d5c2l3eWd9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91c2VfY29tbWVudF93eXNpd3lnfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9PC9wPg0KCTwvZGl2Pg0KeyRlbmRmb3JtfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/admintemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskbmV3dGVtcGxhdGVsaW5rfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGggd2lkdGg9Ijc1JSI+eyRuYW1lcHJvbXB0fTwvdGg+CiAgICAgIDx0aD57JGRlZmF1bHRwcm9tcHR9PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgogICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgPHRkPnskZW50cnktPmRlZmF1bHR9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+Y29weWxpbmt9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgogICA8L3RyPgp7L2ZvcmVhY2h9CjwvdGFibGU+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXd0ZW1wbGF0ZWxpbmt9PC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/css/Fancybox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOw0KCXdpZHRoOiA1MHB4Ow0KCWhlaWdodDogMzlweDsNCglmbG9hdDogbGVmdDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQovKiBGQU5DWUJPWCAqLw0KDQpkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGZpeGVkOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjNjY2Ow0KCWRpc3BsYXk6IG5vbmU7DQoJei1pbmRleDogMzA7DQp9DQoNCiogaHRtbCBkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWhlaWdodDogZXhwcmVzc2lvbihkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ID8gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgOiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCArICdweCcpOw0KfQ0KDQpkaXYjZmFuY3lfd3JhcCB7DQoJdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KZGl2I2ZhbmN5X2xvYWRpbmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgloZWlnaHQ6IDQwcHg7DQoJd2lkdGg6IDQwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IG5vbmU7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCgl6LWluZGV4OiAxMDA7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nIGRpdiB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiA0MHB4Ow0KCWhlaWdodDogNDgwcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9wcm9ncmVzcy5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nX292ZXJsYXkgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOw0KCXotaW5kZXg6IDMwOw0KfQ0KDQpkaXYjZmFuY3lfbG9hZGluZ19pY29uIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYmFja2dyb3VuZDogdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9sb2FkaW5nLmdpZicpIG5vLXJlcGVhdDsNCgl6LWluZGV4OiAzNTsNCgl3aWR0aDogMTZweDsNCgloZWlnaHQ6IDE2cHg7DQp9DQoNCmRpdiNmYW5jeV9vdXRlciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXotaW5kZXg6IDkwOw0KCXBhZGRpbmc6IDE4cHggMThweCAzM3B4IDE4cHg7DQoJbWFyZ2luOiAwOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KZGl2I2ZhbmN5X2lubmVyIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJd2lkdGg6MTAwJTsNCgloZWlnaHQ6MTAwJTsNCglib3JkZXI6IDFweCBzb2xpZCAjQkJCOw0KCWJhY2tncm91bmQ6ICMwMDA7DQp9DQoNCmRpdiNmYW5jeV9jb250ZW50IHsNCgltYXJnaW46IDA7DQoJei1pbmRleDogMTAwOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCn0NCg0KZGl2I2ZhbmN5X2RpdiB7DQoJYmFja2dyb3VuZDogIzAwMDsNCgljb2xvcjogI0ZGRjsNCgloZWlnaHQ6IDEwMCU7DQoJd2lkdGg6IDEwMCU7DQoJei1pbmRleDogMTAwOw0KfQ0KDQppbWcjZmFuY3lfaW1nIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJYm9yZGVyOjA7DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQoJei1pbmRleDogMTAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCn0NCg0KZGl2I2ZhbmN5X2Nsb3NlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAtMTJweDsNCglyaWdodDogLTE1cHg7DQoJaGVpZ2h0OiAzMHB4Ow0KCXdpZHRoOiAzMHB4Ow0KCWJhY2tncm91bmQ6IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfY2xvc2Vib3gucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0Ow0KCWN1cnNvcjogcG9pbnRlcjsNCgl6LWluZGV4OiAxODE7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KI2ZhbmN5X2ZyYW1lIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiNmYW5jeV9hamF4IHsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDEwMCU7DQoJb3ZlcmZsb3c6IGF1dG87DQp9DQoNCmEjZmFuY3lfbGVmdCwgYSNmYW5jeV9yaWdodCB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWJvdHRvbTogMHB4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMzUlOw0KCWN1cnNvcjogcG9pbnRlcjsNCgl6LWluZGV4OiAxMTE7DQoJZGlzcGxheTogbm9uZTsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LEFBQUEpOw0KCW91dGxpbmU6IG5vbmU7DQp9DQoNCmEjZmFuY3lfbGVmdCB7DQoJbGVmdDogMHB4Ow0KfQ0KDQphI2ZhbmN5X3JpZ2h0IHsNCglyaWdodDogMHB4Ow0KfQ0KDQpzcGFuLmZhbmN5X2ljbyB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogNTAlOw0KCW1hcmdpbi10b3A6IC0xNXB4Ow0KCXdpZHRoOiAzMHB4Ow0KCWhlaWdodDogMzBweDsNCgl6LWluZGV4OiAxMTI7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpzcGFuI2ZhbmN5X2xlZnRfaWNvIHsNCglsZWZ0OiAtOTk5OXB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfbGVmdC5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCnNwYW4jZmFuY3lfcmlnaHRfaWNvIHsNCglyaWdodDogLTk5OTlweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3JpZ2h0LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KYSNmYW5jeV9sZWZ0OmhvdmVyIHsNCiAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCn0NCg0KYSNmYW5jeV9yaWdodDpob3ZlciB7DQogIHZpc2liaWxpdHk6IHZpc2libGU7DQp9DQoNCmEjZmFuY3lfbGVmdDpob3ZlciBzcGFuIHsNCglsZWZ0OiAyMHB4Ow0KfQ0KDQphI2ZhbmN5X3JpZ2h0OmhvdmVyIHNwYW4gew0KCXJpZ2h0OiAyMHB4Ow0KfQ0KDQouZmFuY3lfYmlnSWZyYW1lIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpkaXYjZmFuY3lfYmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7IGxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCXotaW5kZXg6IDcwOw0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCn0NCg0KZGl2LmZhbmN5X2JnIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJZGlzcGxheTogYmxvY2s7DQoJei1pbmRleDogNzA7DQoJYm9yZGVyOiAwOw0KCXBhZGRpbmc6IDA7DQoJbWFyZ2luOiAwOw0KfQ0KDQpkaXYuZmFuY3lfYmdfbiB7DQoJdG9wOiAtMThweDsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9zaGFkb3dfbi5wbmcnKSByZXBlYXQteDsNCn0NCg0KZGl2LmZhbmN5X2JnX25lIHsNCgl0b3A6IC0xOHB4Ow0KCXJpZ2h0OiAtMTNweDsNCgl3aWR0aDogMTNweDsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9zaGFkb3dfbmUucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfZSB7DQoJcmlnaHQ6IC0xM3B4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMTNweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19lLnBuZycpIHJlcGVhdC15Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfc2Ugew0KCWJvdHRvbTogLTE4cHg7DQoJcmlnaHQ6IC0xM3B4Ow0KCXdpZHRoOiAxM3B4Ow0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19zZS5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdi5mYW5jeV9iZ19zIHsNCglib3R0b206IC0xOHB4Ow0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19zLnBuZycpIHJlcGVhdC14Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfc3cgew0KCWJvdHRvbTogLTE4cHg7DQoJbGVmdDogLTEzcHg7DQoJd2lkdGg6IDEzcHg7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfc2hhZG93X3N3LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KZGl2LmZhbmN5X2JnX3cgew0KCWxlZnQ6IC0xM3B4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMTNweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd193LnBuZycpIHJlcGVhdC15Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfbncgew0KCXRvcDogLTE4cHg7DQoJbGVmdDogLTEzcHg7DQoJd2lkdGg6IDEzcHg7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfc2hhZG93X253LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYm90dG9tOiAtMzNweDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCXotaW5kZXg6IDEwMDsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQpkaXYjZmFuY3lfdGl0bGUgZGl2IHsNCgljb2xvcjogI0ZGRjsNCglmb250OiBib2xkIDEycHggQXJpYWw7DQoJcGFkZGluZy1ib3R0b206IDNweDsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHRhYmxlIHsNCgltYXJnaW46IDAgYXV0bzsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHRhYmxlIHRyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHRhYmxlIHRkIHsNCglwYWRkaW5nOiAwOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQoJYm9yZGVyOiBub25lOw0KfQ0KDQp0ZCNmYW5jeV90aXRsZV9sZWZ0IHsNCgloZWlnaHQ6IDMycHg7DQoJd2lkdGg6IDE0cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX2xlZnQucG5nKSByZXBlYXQteDsNCn0NCg0KdGQjZmFuY3lfdGl0bGVfbWFpbiB7DQoJaGVpZ2h0OiAzMnB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9mYW5jeWJveC9mYW5jeV90aXRsZV9tYWluLnBuZykgcmVwZWF0LXg7DQp9DQoNCnRkI2ZhbmN5X3RpdGxlX3JpZ2h0IHsNCgloZWlnaHQ6IDMycHg7DQoJd2lkdGg6IDE0cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX3JpZ2h0LnBuZykgcmVwZWF0LXg7DQp9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/css/Lightbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQojbGlnaHRib3h7CXBvc2l0aW9uOiBhYnNvbHV0ZTsJbGVmdDogMDsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDEwMDsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDt9DQojbGlnaHRib3ggaW1neyB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvO30NCiNsaWdodGJveCBhIGltZ3sgYm9yZGVyOiBub25lOyB9DQoNCiNvdXRlckltYWdlQ29udGFpbmVyeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsgbWFyZ2luOiAwIGF1dG87IH0NCiNpbWFnZUNvbnRhaW5lcnsgcGFkZGluZzogMTBweDsgfQ0KDQojbG9hZGluZ3sgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQwJTsgbGVmdDogMCU7IGhlaWdodDogMjUlOyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDsgfQ0KI2hvdmVyTmF2eyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgei1pbmRleDogMTA7IH0NCiNpbWFnZUNvbnRhaW5lcj4jaG92ZXJOYXZ7IGxlZnQ6IDA7fQ0KI2hvdmVyTmF2IGF7IG91dGxpbmU6IG5vbmU7fQ0KDQojcHJldkxpbmssICNuZXh0TGlua3sgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LEFBQUEpOyAvKiBUcmljayBJRSBpbnRvIHNob3dpbmcgaG92ZXIgKi8gZGlzcGxheTogYmxvY2s7IH0NCiNwcmV2TGluayB7IGxlZnQ6IDA7IGZsb2F0OiBsZWZ0O30NCiNuZXh0TGluayB7IHJpZ2h0OiAwOyBmbG9hdDogcmlnaHQ7fQ0KI3ByZXZMaW5rOmhvdmVyLCAjcHJldkxpbms6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9saWdodGJveC9pbWFnZXMvcHJldmxhYmVsLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9DQojbmV4dExpbms6aG92ZXIsICNuZXh0TGluazp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2xpZ2h0Ym94L2ltYWdlcy9uZXh0bGFiZWwuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoNCiNpbWFnZURhdGFDb250YWluZXJ7IGZvbnQ6IDEwcHggVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBtYXJnaW46IDAgYXV0bzsgbGluZS1oZWlnaHQ6IDEuNGVtOyBvdmVyZmxvdzogYXV0bzsgd2lkdGg6IDEwMCUJOyB9DQoNCiNpbWFnZURhdGF7CXBhZGRpbmc6MCAxMHB4OyBjb2xvcjogIzY2NjsgfQ0KI2ltYWdlRGF0YSAjaW1hZ2VEZXRhaWxzeyB3aWR0aDogNzAlOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogbGVmdDsgfQkNCiNpbWFnZURhdGEgI2NhcHRpb257IGZvbnQtd2VpZ2h0OiBib2xkOwl9DQojaW1hZ2VEYXRhICNudW1iZXJEaXNwbGF5eyBkaXNwbGF5OiBibG9jazsgY2xlYXI6IGxlZnQ7IHBhZGRpbmctYm90dG9tOiAxLjBlbTsJfQkJCQ0KI2ltYWdlRGF0YSAjYm90dG9tTmF2Q2xvc2V7IHdpZHRoOiA2NnB4OyBmbG9hdDogcmlnaHQ7ICBwYWRkaW5nLWJvdHRvbTogMC43ZW07IG91dGxpbmU6IG5vbmU7fQkgCQ0KDQojb3ZlcmxheXsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHotaW5kZXg6IDkwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MDBweDsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/css/Lytebox_slideshow.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQovKiBMWVRFQk9YICovDQoNCiNsYk92ZXJsYXkgeyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogOTk5OTg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwMHB4OyB9DQoJI2xiT3ZlcmxheS5ncmV5IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfQ0KCSNsYk92ZXJsYXkucmVkIHsgYmFja2dyb3VuZC1jb2xvcjogIzMzMDAwMDsgfQ0KCSNsYk92ZXJsYXkuZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzMzAwOyB9DQoJI2xiT3ZlcmxheS5ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjogIzAxMUQ1MDsgfQ0KCSNsYk92ZXJsYXkuZ29sZCB7IGJhY2tncm91bmQtY29sb3I6ICM2NjY2MDA7IH0NCg0KI2xiTWFpbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDk5OTk5OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAwOyB9DQojbGJNYWluIGEgaW1nIHsgYm9yZGVyOiBub25lOyB9DQoNCiNsYk91dGVyQ29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IG1hcmdpbjogMCBhdXRvOyB9DQoJI2xiT3V0ZXJDb250YWluZXIuZ3JleSB7IGJvcmRlcjogM3B4IHNvbGlkICM4ODg4ODg7IH0NCgkjbGJPdXRlckNvbnRhaW5lci5yZWQgeyBib3JkZXI6IDNweCBzb2xpZCAjREQwMDAwOyB9DQoJI2xiT3V0ZXJDb250YWluZXIuZ3JlZW4geyBib3JkZXI6IDNweCBzb2xpZCAjMDBCMDAwOyB9DQoJI2xiT3V0ZXJDb250YWluZXIuYmx1ZSB7IGJvcmRlcjogM3B4IHNvbGlkICM1Rjg5RDg7IH0NCgkjbGJPdXRlckNvbnRhaW5lci5nb2xkIHsgYm9yZGVyOiAzcHggc29saWQgI0IwQjAwMDsgfQ0KDQojbGJEZXRhaWxzQ29udGFpbmVyIHsJZm9udDogMTBweCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAxMDAlOyBsaW5lLWhlaWdodDogMS40ZW07CW92ZXJmbG93OiBhdXRvOyBtYXJnaW46IDAgYXV0bzsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIuZ3JleSB7IGJvcmRlcjogM3B4IHNvbGlkICM4ODg4ODg7IGJvcmRlci10b3A6IG5vbmU7IH0NCgkjbGJEZXRhaWxzQ29udGFpbmVyLnJlZCB7IGJvcmRlcjogM3B4IHNvbGlkICNERDAwMDA7IGJvcmRlci10b3A6IG5vbmU7IH0NCgkjbGJEZXRhaWxzQ29udGFpbmVyLmdyZWVuIHsgYm9yZGVyOiAzcHggc29saWQgIzAwQjAwMDsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIuYmx1ZSB7IGJvcmRlcjogM3B4IHNvbGlkICM1Rjg5RDg7IGJvcmRlci10b3A6IG5vbmU7IH0NCgkjbGJEZXRhaWxzQ29udGFpbmVyLmdvbGQgeyBib3JkZXI6IDNweCBzb2xpZCAjQjBCMDAwOyBib3JkZXItdG9wOiBub25lOyB9DQoNCiNsYkltYWdlQ29udGFpbmVyLCAjbGJJZnJhbWVDb250YWluZXIgeyBwYWRkaW5nOiAxMHB4OyB9DQojbGJMb2FkaW5nIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDUlOyBsZWZ0OiAwJTsgaGVpZ2h0OiAzMnB4OyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL2xvYWRpbmcuZ2lmKSBjZW50ZXIgbm8tcmVwZWF0Ow0KfQ0KDQojbGJIb3Zlck5hdiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB6LWluZGV4OiAxMDsgfQ0KI2xiSW1hZ2VDb250YWluZXI+I2xiSG92ZXJOYXYgeyBsZWZ0OiAwOyB9DQojbGJIb3Zlck5hdiBhIHsgb3V0bGluZTogbm9uZTsgfQ0KDQojbGJQcmV2IHsgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvYmxhbmsuZ2lmKSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBsZWZ0OiAwOyBmbG9hdDogbGVmdDsgfQ0KCSNsYlByZXYuZ3JleTpob3ZlciwgI2xiUHJldi5ncmV5OnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcHJldl9ncmV5LmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiUHJldi5yZWQ6aG92ZXIsICNsYlByZXYucmVkOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcHJldl9yZWQuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LmdyZWVuOmhvdmVyLCAjbGJQcmV2LmdyZWVuOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcHJldl9ncmVlbi5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQ0KCSNsYlByZXYuYmx1ZTpob3ZlciwgI2xiUHJldi5ibHVlOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcHJldl9ibHVlLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiUHJldi5nb2xkOmhvdmVyLCAjbGJQcmV2LmdvbGQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wcmV2X2dvbGQuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkNCiNsYk5leHQgeyB3aWR0aDogNDklOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9seXRlYm94L2ltYWdlcy9ibGFuay5naWYpIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHJpZ2h0OiAwOyBmbG9hdDogcmlnaHQ7IH0NCgkjbGJOZXh0LmdyZXk6aG92ZXIsICNsYk5leHQuZ3JleTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL25leHRfZ3JleS5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJOZXh0LnJlZDpob3ZlciwgI2xiTmV4dC5yZWQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9uZXh0X3JlZC5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJOZXh0LmdyZWVuOmhvdmVyLCAjbGJOZXh0LmdyZWVuOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvbmV4dF9ncmVlbi5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJOZXh0LmJsdWU6aG92ZXIsICNsYk5leHQuYmx1ZTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL25leHRfYmx1ZS5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJOZXh0LmdvbGQ6aG92ZXIsICNsYk5leHQuZ29sZDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL25leHRfZ29sZC5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCg0KI2xiUHJldjIsICNsYk5leHQyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmb250LXdlaWdodDogYm9sZDsgfQ0KCSNsYlByZXYyLmdyZXksICNsYk5leHQyLmdyZXksICNsYlNwYWNlci5ncmV5IHsgY29sb3I6ICMzMzMzMzM7IH0NCgkjbGJQcmV2Mi5yZWQsICNsYk5leHQyLnJlZCwgI2xiU3BhY2VyLnJlZCB7IGNvbG9yOiAjNjIwMDAwOyB9DQoJI2xiUHJldjIuZ3JlZW4sICNsYk5leHQyLmdyZWVuLCAjbGJTcGFjZXIuZ3JlZW4geyBjb2xvcjogIzAwMzMwMDsgfQ0KCSNsYlByZXYyLmJsdWUsICNsYk5leHQyLmJsdWUsICNsYlNwYWNlci5ibHVlIHsgY29sb3I6ICMwMTM3OUU7IH0NCgkjbGJQcmV2Mi5nb2xkLCAjbGJOZXh0Mi5nb2xkLCAjbGJTcGFjZXIuZ29sZCB7IGNvbG9yOiAjNjY2NjAwOyB9DQoJDQojbGJQcmV2Ml9PZmYsICNsYk5leHQyX09mZiB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQoJI2xiUHJldjJfT2ZmLmdyZXksICNsYk5leHQyX09mZi5ncmV5IHsgY29sb3I6ICNDQ0NDQ0M7IH0NCgkjbGJQcmV2Ml9PZmYucmVkLCAjbGJOZXh0Ml9PZmYucmVkIHsgY29sb3I6ICNGRkNDQ0M7IH0NCgkjbGJQcmV2Ml9PZmYuZ3JlZW4sICNsYk5leHQyX09mZi5ncmVlbiB7IGNvbG9yOiAjODJGRjgyOyB9DQoJI2xiUHJldjJfT2ZmLmJsdWUsICNsYk5leHQyX09mZi5ibHVlIHsgY29sb3I6ICNCN0NBRUU7IH0NCgkjbGJQcmV2Ml9PZmYuZ29sZCwgI2xiTmV4dDJfT2ZmLmdvbGQgeyBjb2xvcjogI0UxRTEwMDsgfQ0KCQ0KI2xiRGV0YWlsc0RhdGEgeyBwYWRkaW5nOiAwIDEwcHg7IH0NCgkjbGJEZXRhaWxzRGF0YS5ncmV5IHsgY29sb3I6ICMzMzMzMzM7IH0NCgkjbGJEZXRhaWxzRGF0YS5yZWQgeyBjb2xvcjogIzYyMDAwMDsgfQ0KCSNsYkRldGFpbHNEYXRhLmdyZWVuIHsgY29sb3I6ICMwMDMzMDA7IH0NCgkjbGJEZXRhaWxzRGF0YS5ibHVlIHsgY29sb3I6ICMwMTM3OUU7IH0NCgkjbGJEZXRhaWxzRGF0YS5nb2xkIHsgY29sb3I6ICM2NjY2MDA7IH0NCg0KI2xiRGV0YWlscyB7IHdpZHRoOiA2MCU7IGZsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiBsZWZ0OyB9DQojbGJDYXB0aW9uIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQojbGJOdW1iZXJEaXNwbGF5IHsgZmxvYXQ6IGxlZnQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWJvdHRvbTogMS4wZW07IH0NCiNsYk5hdkRpc3BsYXkgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctYm90dG9tOiAxLjBlbTsgfQ0KDQojbGJDbG9zZSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9DQoJI2xiQ2xvc2UuZ3JleSB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9jbG9zZV9ncmV5LnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiQ2xvc2UucmVkIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL2Nsb3NlX3JlZC5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYkNsb3NlLmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL2Nsb3NlX2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiQ2xvc2UuYmx1ZSB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9jbG9zZV9ibHVlLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiQ2xvc2UuZ29sZCB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9jbG9zZV9nb2xkLnBuZykgbm8tcmVwZWF0OyB9DQoNCiNsYlBsYXkgeyB3aWR0aDogNjRweDsgaGVpZ2h0OiAyOHB4OyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDFweDsgfQ0KCSNsYlBsYXkuZ3JleSB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wbGF5X2dyZXkucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQbGF5LnJlZCB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wbGF5X3JlZC5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBsYXkuZ3JlZW4geyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcGxheV9ncmVlbi5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBsYXkuYmx1ZSB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wbGF5X2JsdWUucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQbGF5LmdvbGQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcGxheV9nb2xkLnBuZykgbm8tcmVwZWF0OyB9DQoJDQojbGJQYXVzZSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9DQoJI2xiUGF1c2UuZ3JleSB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wYXVzZV9ncmV5LnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiUGF1c2UucmVkIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL3BhdXNlX3JlZC5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBhdXNlLmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL3BhdXNlX2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiUGF1c2UuYmx1ZSB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wYXVzZV9ibHVlLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiUGF1c2UuZ29sZCB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wYXVzZV9nb2xkLnBuZykgbm8tcmVwZWF0OyB9]]></data>
	</file>
	<file>
	  <filename>/templates/css/Slimbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQovKiBTTElNQk9YICovDQoNCiNsYk92ZXJsYXkgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgl6LWluZGV4OiA5OTk5Ow0KCWxlZnQ6IDA7DQoJdG9wOiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KI2xiQ2VudGVyLCAjbGJCb3R0b21Db250YWluZXIgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl6LWluZGV4OiA5OTk5Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCn0NCg0KLmxiTG9hZGluZyB7DQoJYmFja2dyb3VuZDogI2ZmZiB1cmwoLi4vc2xpbWJveC9jc3MvbG9hZGluZy5naWYpIG5vLXJlcGVhdCBjZW50ZXI7DQp9DQoNCiNsYkltYWdlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbGVmdDogMDsNCgl0b3A6IDA7DQoJYm9yZGVyOiAxMHB4IHNvbGlkICNmZmY7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCn0NCg0KI2xiUHJldkxpbmssICNsYk5leHRMaW5rIHsNCglkaXNwbGF5OiBibG9jazsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCXdpZHRoOiA1MCU7DQoJb3V0bGluZTogbm9uZTsNCn0NCg0KI2xiUHJldkxpbmsgew0KCWxlZnQ6IDA7DQp9DQoNCiNsYlByZXZMaW5rOmhvdmVyIHsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vc2xpbWJveC9jc3MvcHJldmxhYmVsLmdpZikgbm8tcmVwZWF0IDAgMTUlOw0KfQ0KDQojbGJOZXh0TGluayB7DQoJcmlnaHQ6IDA7DQp9DQoNCiNsYk5leHRMaW5rOmhvdmVyIHsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vc2xpbWJveC9jc3MvbmV4dGxhYmVsLmdpZikgbm8tcmVwZWF0IDEwMCUgMTUlOw0KfQ0KDQojbGJCb3R0b20gew0KCWZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJZm9udC1zaXplOiAxMHB4Ow0KCWNvbG9yOiAjNjY2Ow0KCWxpbmUtaGVpZ2h0OiAxLjRlbTsNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KCWJvcmRlcjogMTBweCBzb2xpZCAjZmZmOw0KCWJvcmRlci10b3Atc3R5bGU6IG5vbmU7DQp9DQoNCiNsYkNsb3NlTGluayB7DQoJZGlzcGxheTogYmxvY2s7DQoJZmxvYXQ6IHJpZ2h0Ow0KCXdpZHRoOiA2NnB4Ow0KCWhlaWdodDogMjJweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vc2xpbWJveC9jc3MvY2xvc2VsYWJlbC5naWYpIG5vLXJlcGVhdCBjZW50ZXI7DQoJbWFyZ2luOiA1cHggMDsNCglvdXRsaW5lOiBub25lOw0KfQ0KDQojbGJDYXB0aW9uLCAjbGJOdW1iZXIgew0KCW1hcmdpbi1yaWdodDogNzFweDsNCn0NCg0KI2xiQ2FwdGlvbiB7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/css/Thickbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi8qIC0tLS0tLS0tLS0+Pj4gZ2xvYmFsIHNldHRpbmdzIG5lZWRlZCBmb3IgdGhpY2tib3ggPDw8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoqe3BhZGRpbmc6IDA7IG1hcmdpbjogMDt9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyogLS0tLS0tLS0tLT4+PiB0aGlja2JveCBzcGVjaWZpYyBsaW5rIGFuZCBmb250IHNldHRpbmdzIDw8PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCiNUQl93aW5kb3cgew0KCWZvbnQ6IDEycHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCgljb2xvcjogIzMzMzMzMzsNCn0NCg0KI1RCX3NlY29uZExpbmUgew0KCWZvbnQ6IDEwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCgljb2xvcjojNjY2NjY2Ow0KfQ0KDQojVEJfd2luZG93IGE6bGluayB7Y29sb3I6ICM2NjY2NjY7fQ0KI1RCX3dpbmRvdyBhOnZpc2l0ZWQge2NvbG9yOiAjNjY2NjY2O30NCiNUQl93aW5kb3cgYTpob3ZlciB7Y29sb3I6ICMwMDA7fQ0KI1RCX3dpbmRvdyBhOmFjdGl2ZSB7Y29sb3I6ICM2NjY2NjY7fQ0KI1RCX3dpbmRvdyBhOmZvY3Vze2NvbG9yOiAjNjY2NjY2O30NCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovKiAtLS0tLS0tLS0tPj4+IHRoaWNrYm94IHNldHRpbmdzIDw8PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KI1RCX292ZXJsYXkgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgl6LWluZGV4OjEwMDsNCgl0b3A6IDBweDsNCglsZWZ0OiAwcHg7DQoJaGVpZ2h0OjEwMCU7DQoJd2lkdGg6MTAwJTsNCn0NCg0KLlRCX292ZXJsYXlNYWNGRkJHSGFjayB7YmFja2dyb3VuZDogdXJsKG1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvdGhpY2tib3gvbWFjRkZCZ0hhY2sucG5nKSByZXBlYXQ7fQ0KLlRCX292ZXJsYXlCRyB7DQoJYmFja2dyb3VuZC1jb2xvcjojMDAwOw0KCWZpbHRlcjphbHBoYShvcGFjaXR5PTc1KTsNCgktbW96LW9wYWNpdHk6IDAuNzU7DQoJb3BhY2l0eTogMC43NTsNCn0NCg0KKiBodG1sICNUQl9vdmVybGF5IHsgLyogaWU2IGhhY2sgKi8NCiAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICBoZWlnaHQ6IGV4cHJlc3Npb24oZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCA/IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0IDogZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgKyAncHgnKTsNCn0NCg0KI1RCX3dpbmRvdyB7DQoJcG9zaXRpb246IGZpeGVkOw0KCWJhY2tncm91bmQ6ICNmZmZmZmY7DQoJei1pbmRleDogMTAyOw0KCWNvbG9yOiMwMDAwMDA7DQoJZGlzcGxheTpub25lOw0KCWJvcmRlcjogNHB4IHNvbGlkICM1MjUyNTI7DQoJdGV4dC1hbGlnbjpsZWZ0Ow0KCXRvcDo1MCU7DQoJbGVmdDo1MCU7DQp9DQoNCiogaHRtbCAjVEJfd2luZG93IHsgLyogaWU2IGhhY2sgKi8NCnBvc2l0aW9uOiBhYnNvbHV0ZTsNCm1hcmdpbi10b3A6IGV4cHJlc3Npb24oMCAtIHBhcnNlSW50KHRoaXMub2Zmc2V0SGVpZ2h0IC8gMikgKyAoVEJXaW5kb3dNYXJnaW4gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkgKyAncHgnKTsNCn0NCg0KI1RCX3dpbmRvdyBpbWcjVEJfSW1hZ2Ugew0KCWRpc3BsYXk6YmxvY2s7DQoJbWFyZ2luOiAxNXB4IDAgMCAxNXB4Ow0KCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7DQoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7DQoJYm9yZGVyLXRvcDogMXB4IHNvbGlkICM2NjY7DQoJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNjY2Ow0KfQ0KDQojVEJfY2FwdGlvbnsNCgloZWlnaHQ6MjVweDsNCglwYWRkaW5nOjdweCAzMHB4IDEwcHggMjVweDsNCglmbG9hdDpsZWZ0Ow0KfQ0KDQojVEJfY2xvc2VXaW5kb3d7DQoJaGVpZ2h0OjI1cHg7DQoJcGFkZGluZzoxMXB4IDI1cHggMTBweCAwOw0KCWZsb2F0OnJpZ2h0Ow0KfQ0KDQojVEJfY2xvc2VBamF4V2luZG93ew0KCXBhZGRpbmc6N3B4IDEwcHggNXB4IDA7DQoJbWFyZ2luLWJvdHRvbToxcHg7DQoJdGV4dC1hbGlnbjpyaWdodDsNCglmbG9hdDpyaWdodDsNCn0NCg0KI1RCX2FqYXhXaW5kb3dUaXRsZXsNCglmbG9hdDpsZWZ0Ow0KCXBhZGRpbmc6N3B4IDAgNXB4IDEwcHg7DQoJbWFyZ2luLWJvdHRvbToxcHg7DQp9DQoNCiNUQl90aXRsZXsNCgliYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7DQoJaGVpZ2h0OjI3cHg7DQp9DQoNCiNUQl9hamF4Q29udGVudHsNCgljbGVhcjpib3RoOw0KCXBhZGRpbmc6MnB4IDE1cHggMTVweCAxNXB4Ow0KCW92ZXJmbG93OmF1dG87DQoJdGV4dC1hbGlnbjpsZWZ0Ow0KCWxpbmUtaGVpZ2h0OjEuNGVtOw0KfQ0KDQojVEJfYWpheENvbnRlbnQuVEJfbW9kYWx7DQoJcGFkZGluZzoxNXB4Ow0KfQ0KDQojVEJfYWpheENvbnRlbnQgcHsNCglwYWRkaW5nOjVweCAwcHggNXB4IDBweDsNCn0NCg0KI1RCX2xvYWR7DQoJcG9zaXRpb246IGZpeGVkOw0KCWRpc3BsYXk6bm9uZTsNCgloZWlnaHQ6MTNweDsNCgl3aWR0aDoyMDhweDsNCgl6LWluZGV4OjEwMzsNCgl0b3A6IDUwJTsNCglsZWZ0OiA1MCU7DQoJbWFyZ2luOiAtNnB4IDAgMCAtMTA0cHg7IC8qIC1oZWlnaHQvMiAwIDAgLXdpZHRoLzIgKi8NCn0NCg0KKiBodG1sICNUQl9sb2FkIHsgLyogaWU2IGhhY2sgKi8NCnBvc2l0aW9uOiBhYnNvbHV0ZTsNCm1hcmdpbi10b3A6IGV4cHJlc3Npb24oMCAtIHBhcnNlSW50KHRoaXMub2Zmc2V0SGVpZ2h0IC8gMikgKyAoVEJXaW5kb3dNYXJnaW4gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkgKyAncHgnKTsNCn0NCg0KI1RCX0hpZGVTZWxlY3R7DQoJei1pbmRleDo5OTsNCglwb3NpdGlvbjpmaXhlZDsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCgliYWNrZ3JvdW5kLWNvbG9yOiNmZmY7DQoJYm9yZGVyOm5vbmU7DQoJZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7DQoJLW1vei1vcGFjaXR5OiAwOw0KCW9wYWNpdHk6IDA7DQoJaGVpZ2h0OjEwMCU7DQoJd2lkdGg6MTAwJTsNCn0NCg0KKiBodG1sICNUQl9IaWRlU2VsZWN0IHsgLyogaWU2IGhhY2sgKi8NCiAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICBoZWlnaHQ6IGV4cHJlc3Npb24oZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCA/IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0IDogZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgKyAncHgnKTsNCn0NCg0KI1RCX2lmcmFtZUNvbnRlbnR7DQoJY2xlYXI6Ym90aDsNCglib3JkZXI6bm9uZTsNCgltYXJnaW4tYm90dG9tOi0xcHg7DQoJbWFyZ2luLXRvcDoxcHg7DQoJX21hcmdpbi1ib3R0b206MXB4Ow0KfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/editgallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjxoMz57JHBhZ2V0aXRsZX08L2gzPg0KPC9kaXY+DQp7JGZvcm1zdGFydH0NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9nYWxsZXJ5dGl0bGV9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRnYWxsZXJ5dGl0bGV9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfY29tbWVudH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdhbGxlcnljb21tZW50fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RlbXBsYXRlfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGVtcGxhdGV9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGh1bWJuYWlsc2l6ZX06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRodW1ibmFpbHNpemV9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+DQo8L2Rpdj4NCg0Ke2lmICRpdGVtY291bnQgPiAwfQ0KCTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+DQoJCTx0aGVhZD4NCgkJCTx0cj4NCgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KCQkJCTx0aD57JGltYWdlfTwvdGg+DQoJCQkJPHRoPnskdGl0bGV9PC90aD4NCgkJCQk8dGg+eyRjb21tZW50fTwvdGg+DQoJCQkJPHRoPnskZmlsZWRhdGV9PC90aD4NCgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JGFjdGl2ZX08L3RoPgkJCQ0KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskZGVmYXVsdH08L3RoPgkJCQ0KCQkJPC90cj4NCgkJPC90aGVhZD4NCgkJPHRib2R5Pg0KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJCXtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPXJvd2NsYXNzfQ0KCQkJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4NCgkJCQk8dGQ+PC90ZD4NCgkJCQk8dGQgc3R5bGU9IndpZHRoOjk2cHg7IGhlaWdodDo3MnB4OyBiYWNrZ3JvdW5kOiB1cmwoeyRlbnRyeS0+dGh1bWJ1cmx9KSBuby1yZXBlYXQgY2VudGVyOyBvdmVyZmxvdzpoaWRkZW47Ij48L3RkPg0KCQkJCTx0ZD57JGVudHJ5LT5maWxlbmFtZX08YnIgLz57JGVudHJ5LT50aXRsZX08L3RkPg0KCQkJCTx0ZD57JGVudHJ5LT5jb21tZW50fTwvdGQ+DQoJCQkJPHRkPnskZW50cnktPmZpbGVkYXRlfTwvdGQ+DQoJCQkJPHRkIGNsYXNzPSJwYWdlcG9zIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPnskZW50cnktPmFjdGl2ZWxpbmt9PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InBhZ2Vwb3MiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+eyRlbnRyeS0+ZGVmYXVsdGxpbmt9PC90ZD4JCQkNCgkJCTwvdHI+DQoJey9mb3JlYWNofQ0KCQk8L3Rib2R5Pg0KCTwvdGFibGU+DQoNCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+DQoJPC9kaXY+DQoNCntlbHNlfQ0KCTxoND57JG5vZmlsZXN0ZXh0fTwvaDQ+DQp7L2lmfQ0KDQp7JGZvcm1lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGgzPnskdGl0bGV9PC9oMz4KPC9kaXY+CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGVuYW1lfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZW5hbWV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGVtcGxhdGV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskYXZhaWxhYmxldmFyaWFibGVzfTogPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlY29sbGFwc2UoJ3ZhcmlhYmxlc2luZm8nKTsgcmV0dXJuIGZhbHNlOyI+eyRhdmFpbGFibGV2YXJpYWJsZXNsaW5rfTwvYT48L3A+CjwvZGl2Pgo8ZGl2IGlkPSJ2YXJpYWJsZXNpbmZvIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXZhaWxhYmxldmFyaWFibGVzbGlzdH08L3A+CjwvZGl2Pgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfXskYXBwbHl9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZWNzc306PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGVtcGxhdGVjc3N9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZWpzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZWpzfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfXskYXBwbHl9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_closebox.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_progress.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABg9JREFUeNqMV1tMFGcUntmZvXJfwMKCAmq5NIg3bElE0JCoUVM1xiiptBoNpj4YH3whIekD9cXEhIQg4YFo3xpLQ0j7Yo0CD6IVg4olQWMU5CIgF2GXnb3NbL8z/YdM19llJznszs/5z/efc77/nLM8F/vhmXB79+41ud1u3ufz8X6/n7948aLocDj4mzdvBuj/NpstnJSUFO7t7VXY3jATw0eMAWhiIhQVFZmLi4vt+HQAWJyamgoLgpAmiqIA8KnS0lIuLy8vPDY25h8eHpY+fvwYwj4ZojAJGwEYrQkkmZmZ5u3btzsOHz68bsuWLRsg1SkpKVVms7lCvyEUCj1HNAaePXv2R2tr69CTJ0/ciEoABwiyA8ixvOeYhxQFe35+furJkyc3dHR0VMLo7+GIZ3p6Wh4dHZUj15eWln5FZApwYFdaWloK2WI2TbHySQqO3Nxc55kzZzZ3d3d/K8vyKBkMBAJKe3t7YP/+/V7ouPWya9eulRs3bgQkSVKY7vP79+/X7ty5cwMilEY2mW0+Gqg9OTnZeeDAgc137tw5Dht+MnT37t0QcuiJBIwU8GDl6dOnIc177PsOa/kM3G4ETjm1QlLKysoKrl+/fhB5G6PNt27dCoBI7rVANSHda9eu+TXwtra24y6Xaz3ZZhiCBk5/zJDEjIwM16VLlyoXFhb+1Dw1AkXuPCSxDkDXjGyAH/14/wqSRRgMy6QRykYhrqqqKrl9+/Y52rCysiIj14bGm5qa/ENDQ3IscIvF4p6cnAySrb6+vp9g60usOwmLea0CJ+A+usDiynfv3v1Cyi0tLYFoRsFclURrgdfX1/tIb25urgfvZZBs5rWo5Rf5T9l46NChg16v9zkpV1RUeKMZ3LFjx4oGTp/0bqSXnp7uAVfUXKemplZhrQCSCrGYNEaj5DlQGJx2u30r8qI8fvxYjnbvBgcHlX379knLy8thpIjv6emxA/yzezo/Px9GJVNLKkrsVpRUq3anVeDExEQBxLKjUmWQEopDeI0aroJv27ZNevnypRILHGVU/URBylUUZZXVqiIWBJ7nzSgWlHguGAxy8Tzgg3LlyhU/fSfwrq4ue6QObHIMwwrCCgxY9ZhDXvnZ2VnuzZs3Er1nZWXFBUweAkw9LHmODiZF6uAOq90K5dWNNP6vgNC9ciG/3xQUFJxHuZslMkS7SkYEi8ZuqgHQUa8UCtOPwPga6zl0i0y63qngSoXGx8dHaOHEiRNiLE8ppxRe8rS6ulpaXFz8jBc1NTUCdMSZmZl/cLhPSOFql9KA5f9SG/ShMbymhYaGBuq1hsDxgNLT2Niorg8MDIzig7iw2qcFBm5B8m0ej8eBkwmnT5/OzM7OdlmtVu7evXufXSsiH1LCHT161BcN9OzZs+Lly5ftsPkBuf8NnWsCywsQSklgtYDQ5cZEscfpdJ6/cOFCu1bkYUCKt0Fosnv3bi+FlfZjMOjC2jnIHn0BEfQTB7w2wxPbxMSEkJCQsIw+W3Ls2DER+znUWzkeptfV1YmdnZ1W1GpTf3//ALjyF5bJ21nIEsRHQVttEqyAb4ZUgY0/gKU/o153a56PjIz4Tp06JSHvhl7SgPDo0SOvpv/w4cNBrDdBviebzPZqk+B1Q4CVFXCqXjkAz0NF21hbW1sCkpTk5ORQd+EwSymvXr0KoeGrucU14QoLC1X20jta6hR6+OurV6/+jde3VLwgk5A5ll8imczrBgGRnSaZgWcDPBcEW48Ck9Pc3Fx45MiRjE2bNhUZhfj9+/dvHzx4MI+ONIz8UmjHWYg/MNBlFmZitsJHTJZmBp7EwvIFkyxUnXVgphNdLLW8vDwT3YvGGQ6T5dKLFy/m0HvnGWspl9OQGSYLLB1abtW7zBuMtRZd2IntBJDODkKMTAT71fkJLY/D9xBIKUEojJ8YEB1ikZFJC29AP+byBuOtiXluYQNaAotAEjuMQzc7acWHDHsZiEY46tESAwzqhvuYA702X4u6CGhiiZiTFZa3ADuAX+dhSMtp5EDPx5ix9YfQ/6ThDfZpv5P0P1n0YHH9hOHWOMxaTzgepX8FGADuEJHbscc2FgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_e.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAAECAYAAABV5LW0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiZGBg8ADi90D8A4h/QulfUPwbiP9A8V8g/gfE/5kYyABMUN0ka/pPqiaAAAMAKHoOBm9+vqAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_n.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAASCAYAAACaV7S8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACNJREFUeNpiYGBgYGQCEgxMMBYTnMWMhWCBE6y4CIgSgAADAA2lAF3Y3q+mAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_ne.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJdJREFUeNqUkgsOwCAIQxHZ7n/hybaEma7iPiTEX59FoohIifwcb4DPIH0T8b6S28z5tlePtOQgg/vaws2T0jyEQ8mn05rc/Di3ABvcyK6D0wWVAAVGJwdniKNRWc5OFoJtAg9NMWi50LsKCLG88gQxeCtvISFn2giDlnvMG7hovLeDCqBS8p/so0Lb6wQaPrD+Bc7YBRgAARQsgvBDz24AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_nw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHFJREFUeNqUkAsKwDAIQ5fM3f/KGwPLZq2phRRqfX6Co3cwriph9wMqF80iSANFsr9hYhQE6BVWI8Tqj+ixqlOUQzRhxBcY4kYXBp1W7DIluyhMQAKZGm8CMihanEEXE4BJNwd+42HTDOvsJI2Q4C3AAFSdAQWkpOppAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_s.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAASCAYAAACaV7S8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACpJREFUeNpiYGBgsGICEn/gxG9cBELJXwTBDCQYQaz/IBYDmABxGQACDAChSQ0uFhaMIQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_se.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJFJREFUeNqMkoEOgCAIRNH8ov7/x0rDtOGGKBDbzWU9OG4FADibLtLdlJmepkInNtWuSBfjEvlL0lKRdfoNDqgIAAUwnXzS4p2EAvyg7FgEaZHbk5C7kwdwsCaxy58wICpAtewlkRgqH07PB6kKCKw/Ihl2tiGMSdHovp3UoaB11PbikNp5F4RVahDelKVeAQYAyGx/ZWSEUn8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_sw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH9JREFUeNqUkQsSgCAIREH63P/AZdpkgwSrOfMGP7uAykTEilSQwvLEVbEV9koVeSMrTsVREVMpIunYTKRiCkytq85EJoHl3fcqMZjfQ36IOxMSsfe0EmUDXzE0TVUi58WGlbzs2a4lEMO7CRCG7c0IPx2MRO4+6p1/HyD9JcAAS+YNmHZIdksAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_w.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAAECAYAAABV5LW0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNpiZGBgYIRiJiBmBmIWKGYFYjYo5gBidigtCFJIMiBH0z9yNP0HCDAAa8cCTZSUYeoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAgCAQAAABnJeoiAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG+SURBVCjPjZNNKMNxGMe/9mZMZhtTwrwcRhLlrbxkTl4PHNwosh2cxGk1Ukpxwc1xJ+UkSqFcdtDiaDmMWCtWxLSpyUsez9//72X7/1d+v9v/83ue//N8n+8DyE8GXxXU0EArRyr+rIMeBuQiLxWpGWXDuGwPuWPbz4FkqEUWx1jvN0g6yTAb5v3+uJ/onfaenJHW8F9ogMXvFGIuXzrCCH7dryPC/COXANejhnMJBsVYDf/TPNfyFiOav/tBElYhE0YU3+4T7cSTYFCMNcDqdhC9ftgu5VjHsbajJaKt1NigkFqPAtjDh0TOiByrOXUR6uLXRLUhOdawTqVofk0QmS6UcB4q0JYOa2FCJToeI8rJJXzmVy5NSr7pVW5MKq13UpCl+ipNYxg4OVYSVZIFXe0zCa5+9k5RVDRhaMErGGHlIfM8dSSFqIIDo74TuR3EgZagHj2YcHlPb4Qcu/ExyUyiHSwoRyP6MAHPQSDZiqKZCrj/BnRjBNM1a6s+X+gi+m1Fwd85/KCMW+zEIMYxBQ8Wf40sPGCvopiLbOQyBzCMUfkaGGFlFe2cpRntSvvFS4R8VtLGo/r/Cios8Cda4RLIg7+tuQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_main.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAgCAQAAAB57NqRAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAnSURBVAjXY2BgZ2AQZfj/H4QYbpKPoCZMZWDIYmBwZ2DQBhnLwA4AVwIallZZU/IAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAgCAQAAABnJeoiAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHBSURBVCjPfVNLKIRRGD1mxmOMvIcSxmOBJMqrPDJWngsWdhQZCyuxUkgpxQY7y1kpK1EKZTMLTSzJYohpiinyyKiRR65zzT/6Z/5/3G95zvfde849HxAPE4wwII6lc9KRCguSkECaQUN5O3vZ9k4vlyENyaQYoyhCOQ8byOEcMy9TE5p8Dv/e6xcJAfd+DzI5I4LgkdXqu3qXM9wOZPElKoInVJaL9SdJOBpDtkJQw7Lm74X4fJlr5BVm6oiLguHZCQhxt4986kgM9UfAtquPbyGm7VRhCfV7ImuL/UdLsLE/QQd2+IXwHaIMVjpp0MBVXjpwg2rkcbxRA2dcCvERRAMK6aEpFtyMEn6WSXf4sx+tKEUGzdF72rk7JiyFbTpjDK+4lrZ0jcd4mjT15Bi9usJm+SXBYMsU2jW2JF6sPMpQLDjRj/ooU8NxcJ1gCHaUI1f5kibfsH83IPtOb8ecGEUnalDw96HhKB6cYYZgN+pQzECF43D55PKuuirXMIlBdKCWeq3qMC2yawIj6EMb5RQRTPnNuxLFIQxQp51DyxkimVMVCLTQoWrqLGSA0jRrQOttdChbWSLNnv2/gv8v8A9rRBLIyszVnQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.fancybox-1.2.1.pack.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmFuY3lCb3ggLSBzaW1wbGUgYW5kIGZhbmN5IGpRdWVyeSBwbHVnaW4KICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9mYW5jeS5rbGFkZS5sdi8KICogVmVyc2lvbjogMS4yLjEgKDEzLzAzLzIwMDkpCiAqIENvcHlyaWdodCAoYykgMjAwOSBKYW5pcyBTa2FybmVsaXMKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCiAqIFJlcXVpcmVzOiBqUXVlcnkgdjEuMysKKi8KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnOyg3KCQpeyQuYi4yUT03KCl7dSBCLjJ0KDcoKXs5IDFKPSQoQikubihcJzJaXCcpOzUoMUouMWMoL14zd1xcKFsiXCddPyguKlxcLjJwKVsiXCddP1xcKSQvaSkpezFKPTN0LiQxOyQoQikubih7XCcyWlwnOlwnNDVcJyxcJzJvXCc6IjNXOjNSLjRtLjRkKDNoPUYsIDNUPSIrKCQoQikubihcJzQxXCcpPT1cJzJKLTNaXCc/XCc0Y1wnOlwnM05cJykrIiwgUT1cJyIrMUorIlwnKSJ9KS4ydCg3KCl7OSAxYj0kKEIpLm4oXCcxYlwnKTs1KDFiIT1cJzJlXCcmJjFiIT1cJzJuXCcpJChCKS5uKFwnMWJcJyxcJzJuXCcpfSl9fSl9OzkgQSw0LDE2PUQscz0xdCAxbywxdywxdj0xLDF5PS9cXC4oM0F8M1l8MnB8M2N8M2QpKC4qKT8kL2k7OSBQPSgkLjJxLjNLJiYyZigkLjJxLjN6LjJrKDAsMSkpPDgpOyQuYi5jPTcoWSl7WT0kLjN4KHt9LCQuYi5jLjJSLFkpOzkgMnM9Qjs3IDJoKCl7QT1COzQ9WTsycigpO3UgRH07NyAycigpezUoMTYpdTs1KCQuMU8oNC4yYykpezQuMmMoKX00Lmo9W107NC5oPTA7NShZLmouTj4wKXs0Lmo9WS5qfXR7OSBPPXt9OzUoIUEuMUh8fEEuMUg9PVwnXCcpezkgTz17ZDpBLmQsWDpBLlh9OzUoJChBKS4xRygiMW06MUQiKS5OKXtPLjFhPSQoQSkuMUcoIjFtOjFEIil9NC5qLjJqKE8pfXR7OSBaPSQoMnMpLjJvKCJhWzFIPSIrQS4xSCsiXSIpOzkgTz17fTszQyg5IGk9MDtpPFouTjtpKyspe089e2Q6WltpXS5kLFg6WltpXS5YfTs1KCQoWltpXSkuMUcoIjFtOjFEIikuTil7Ty4xYT0kKFpbaV0pLjFHKCIxbToxRCIpfTQuai4yaihPKX0zRig0LmpbNC5oXS5kIT1BLmQpezQuaCsrfX19NSg0LjIzKXs1KFApeyQoXCcxVSwgMVEsIDFQXCcpLm4oXCcxU1wnLFwnM3NcJyl9JCgiIzFpIikubihcJzI1XCcsNC4yVSkuSigpfTFkKCl9OzcgMWQoKXskKCIjMWYsICMxZSwgI1YsICNHIikuUygpOzkgZD00LmpbNC5oXS5kOzUoZC4xYygvIy8pKXs5IFU9MTEuM3IuZC4zZihcJyNcJylbMF07VT1kLjNnKFUsXCdcJyk7VT1VLjJrKFUuMmwoXCcjXCcpKTsxayhcJzw2IGw9IjNlIj5cJyskKFUpLm8oKStcJzwvNj5cJyw0LjFJLDQuMXgpfXQgNShkLjFjKDF5KSl7cz0xdCAxbztzLlE9ZDs1KHMuM2EpezFLKCl9dHskLmIuYy4zNCgpOyQocykueCgpLjE0KFwnM2JcJyw3KCl7JCgiLkkiKS5TKCk7MUsoKX0pfX10IDUoZC4xYygiMTciKXx8QS4zai4ybCgiMTciKT49MCl7MWsoXCc8MTcgbD0iMzUiIDNxPSIkLmIuYy4zOCgpIiAzbz0iM25cJytDLlQoQy4zbCgpKjNtKStcJyIgMks9IjAiIDNFPSIwIiBRPSJcJytkK1wnIj48LzE3PlwnLDQuMUksNC4xeCl9dHskLjRwKGQsNygybSl7MWsoXCc8NiBsPSIzTCI+XCcrMm0rXCc8LzY+XCcsNC4xSSw0LjF4KX0pfX07NyAxSygpezUoNC4zMCl7OSB3PSQuYi5jLjFuKCk7OSByPUMuMU0oQy4xTSh3WzBdLTM2LHMuZykvcy5nLEMuMU0od1sxXS00YixzLmYpL3MuZik7OSBnPUMuVChyKnMuZyk7OSBmPUMuVChyKnMuZil9dHs5IGc9cy5nOzkgZj1zLmZ9MWsoXCc8MW0gNDg9IiIgbD0iNDkiIFE9IlwnK3MuUStcJyIgLz5cJyxnLGYpfTs3IDJGKCl7NSgoNC5qLk4tMSk+NC5oKXs5IGQ9NC5qWzQuaCsxXS5kOzUoZC4xYygxeSkpezFBPTF0IDFvKCk7MUEuUT1kfX01KDQuaD4wKXs5IGQ9NC5qWzQuaC0xXS5kOzUoZC4xYygxeSkpezFBPTF0IDFvKCk7MUEuUT1kfX19OzcgMWsoMWosZyxmKXsxNj1GOzkgTD00LjJZOzUoUCl7JCgiI3EiKVswXS4xRS4ydSgiZiIpOyQoIiNxIilbMF0uMUUuMnUoImciKX01KEw+MCl7Zys9TCoyO2YrPUwqMjskKCIjcSIpLm4oe1wndlwnOkwrXCd6XCcsXCcyRVwnOkwrXCd6XCcsXCcyaVwnOkwrXCd6XCcsXCd5XCc6TCtcJ3pcJyxcJ2dcJzpcJzJCXCcsXCdmXCc6XCcyQlwnfSk7NShQKXskKCIjcSIpWzBdLjFFLjJDKFwnZlwnLFwnKEIuMkQuNGogLSAyMClcJyk7JCgiI3EiKVswXS4xRS4yQyhcJ2dcJyxcJyhCLjJELjNTIC0gMjApXCcpfX10eyQoIiNxIikubih7XCd2XCc6MCxcJzJFXCc6MCxcJzJpXCc6MCxcJ3lcJzowLFwnZ1wnOlwnMnolXCcsXCdmXCc6XCcyeiVcJ30pfTUoJCgiI2siKS4xdSgiOjE5IikmJmc9PSQoIiNrIikuZygpJiZmPT0kKCIjayIpLmYoKSl7JCgiI3EiKS4xWigiMk4iLDcoKXskKCIjcSIpLjFDKCkuMUYoJCgxaikpLjIxKCIxcyIsNygpezFnKCl9KX0pO3V9OSB3PSQuYi5jLjFuKCk7OSAydj0oZyszNik+d1swXT93WzJdOih3WzJdK0MuVCgod1swXS1nLTM2KS8yKSk7OSAydz0oZisxeik+d1sxXT93WzNdOih3WzNdK0MuVCgod1sxXS1mLTF6KS8yKSk7OSBLPXtcJ3lcJzoydixcJ3ZcJzoydyxcJ2dcJzpnK1wnelwnLFwnZlwnOmYrXCd6XCd9OzUoJCgiI2siKS4xdSgiOjE5IikpeyQoIiNxIikuMVooIjFzIiw3KCl7JCgiI3EiKS4xQygpOyQoIiNrIikuMjQoSyw0LjJYLDQuMlQsNygpeyQoIiNxIikuMUYoJCgxaikpLjIxKCIxcyIsNygpezFnKCl9KX0pfSl9dHs1KDQuMVc+MCYmNC5qWzQuaF0uMWEhPT0xTCl7JCgiI3EiKS4xQygpLjFGKCQoMWopKTs5IE09NC5qWzQuaF0uMWE7OSAxNT0kLmIuYy4xUihNKTskKCIjayIpLm4oe1wneVwnOigxNS55LTE4KStcJ3pcJyxcJ3ZcJzooMTUudi0xOCkrXCd6XCcsXCdnXCc6JChNKS5nKCksXCdmXCc6JChNKS5mKCl9KTs1KDQuMVgpe0suMjU9XCdKXCd9JCgiI2siKS4yNChLLDQuMVcsNC4yVyw3KCl7MWcoKX0pfXR7JCgiI3EiKS5TKCkuMUMoKS4xRigkKDFqKSkuSigpOyQoIiNrIikubihLKS4yMSgiMXMiLDcoKXsxZygpfSl9fX07NyAyeSgpezUoNC5oIT0wKXskKCIjMWUsICMyTyIpLngoKS4xNCgiUiIsNyhlKXtlLjJ4KCk7NC5oLS07MWQoKTt1IER9KTskKCIjMWUiKS5KKCl9NSg0LmghPSg0LmouTi0xKSl7JCgiIzFmLCAjMk0iKS54KCkuMTQoIlIiLDcoZSl7ZS4yeCgpOzQuaCsrOzFkKCk7dSBEfSk7JCgiIzFmIikuSigpfX07NyAxZygpezJ5KCk7MkYoKTskKFcpLjFCKDcoZSl7NShlLjI5PT0yNyl7JC5iLmMuMWwoKTskKFcpLngoIjFCIil9dCA1KGUuMjk9PTM3JiY0LmghPTApezQuaC0tOzFkKCk7JChXKS54KCIxQiIpfXQgNShlLjI5PT0zOSYmNC5oIT0oNC5qLk4tMSkpezQuaCsrOzFkKCk7JChXKS54KCIxQiIpfX0pOzUoNC4xcil7JCgxMSkuMTQoIjFOIDFUIiwkLmIuYy4yZyl9dHskKCI2I2siKS5uKCIxYiIsIjJlIil9NSg0LjJiKXskKCIjMjIiKS5SKCQuYi5jLjFsKX0kKCIjMWksICNWIikuMTQoIlIiLCQuYi5jLjFsKTskKCIjViIpLkooKTs1KDQuals0LmhdLlghPT0xTCYmNC5qWzQuaF0uWC5OPjApeyQoXCcjRyA2XCcpLm8oNC5qWzQuaF0uWCk7JChcJyNHXCcpLkooKX01KDQuMjMmJlApeyQoXCcxVSwgMVEsIDFQXCcsJChcJyNxXCcpKS5uKFwnMVNcJyxcJzE5XCcpfTUoJC4xTyg0LjJhKSl7NC4yYSgpfTE2PUR9O3UgQi54KFwnUlwnKS5SKDJoKX07JC5iLmMuMmc9NygpezkgbT0kLmIuYy4xbigpOyQoIiNrIikubihcJ3lcJywoKCQoIiNrIikuZygpKzM2KT5tWzBdP21bMl06bVsyXStDLlQoKG1bMF0tJCgiI2siKS5nKCktMzYpLzIpKSk7JCgiI2siKS5uKFwndlwnLCgoJCgiI2siKS5mKCkrMXopPm1bMV0/bVszXTptWzNdK0MuVCgobVsxXS0kKCIjayIpLmYoKS0xeikvMikpKX07JC5iLmMuMWg9NyhILDJBKXt1IDJmKCQuM0koSC4zdT9IWzBdOkgsMkEsRikpfHwwfTskLmIuYy4xUj03KEgpezkgbT1ILjRnKCk7bS52Kz0kLmIuYy4xaChILFwnM2tcJyk7bS52Kz0kLmIuYy4xaChILFwnM0pcJyk7bS55Kz0kLmIuYy4xaChILFwnM0hcJyk7bS55Kz0kLmIuYy4xaChILFwnM0RcJyk7dSBtfTskLmIuYy4zOD03KCl7JCgiLkkiKS5TKCk7JCgiIzM1IikuSigpfTskLmIuYy4xbj03KCl7dVskKDExKS5nKCksJCgxMSkuZigpLCQoVykuM2koKSwkKFcpLjNwKCldfTskLmIuYy4yRz03KCl7NSghJCgiI0kiKS4xdShcJzoxOVwnKSl7MzMoMXcpO3V9JCgiI0kgPiA2IikubihcJ3ZcJywoMXYqLTQwKStcJ3pcJyk7MXY9KDF2KzEpJTEyfTskLmIuYy4zND03KCl7MzMoMXcpOzkgbT0kLmIuYy4xbigpOyQoIiNJIikubih7XCd5XCc6KChtWzBdLTQwKS8yK21bMl0pLFwndlwnOigobVsxXS00MCkvMittWzNdKX0pLkooKTskKCIjSSIpLjE0KFwnUlwnLCQuYi5jLjFsKTsxdz0zUSgkLmIuYy4yRywzWCl9OyQuYi5jLjFsPTcoKXsxNj1GOyQocykueCgpOyQoIiMxaSwgI1YiKS54KCk7NSg0LjJiKXskKCIjMjIiKS54KCl9JCgiI1YsIC5JLCAjMWUsICMxZiwgI0ciKS5TKCk7NSg0LjFyKXskKDExKS54KCIxTiAxVCIpfTFxPTcoKXskKCIjMWksICNrIikuUygpOzUoNC4xcil7JCgxMSkueCgiMU4gMVQiKX01KFApeyQoXCcxVSwgMVEsIDFQXCcpLm4oXCcxU1wnLFwnMTlcJyl9NSgkLjFPKDQuMVYpKXs0LjFWKCl9MTY9RH07NSgkKCIjayIpLjF1KCI6MTkiKSE9PUQpezUoNC4yNj4wJiY0LmpbNC5oXS4xYSE9PTFMKXs5IE09NC5qWzQuaF0uMWE7OSAxNT0kLmIuYy4xUihNKTs5IEs9e1wneVwnOigxNS55LTE4KStcJ3pcJyxcJ3ZcJzooMTUudi0xOCkrXCd6XCcsXCdnXCc6JChNKS5nKCksXCdmXCc6JChNKS5mKCl9OzUoNC4xWCl7Sy4yNT1cJ1NcJ30kKCIjayIpLjMxKEQsRikuMjQoSyw0LjI2LDQuMlMsMXEpfXR7JCgiI2siKS4zMShELEYpLjFaKCIyTiIsMXEpfX10ezFxKCl9dSBEfTskLmIuYy4yVj03KCl7OSBvPVwnXCc7bys9XCc8NiBsPSIxaSI+PC82PlwnO28rPVwnPDYgbD0iMjIiPlwnO28rPVwnPDYgcD0iSSIgbD0iSSI+PDY+PC82PjwvNj5cJztvKz1cJzw2IGw9ImsiPlwnO28rPVwnPDYgbD0iMkkiPlwnO28rPVwnPDYgbD0iViI+PC82PlwnO28rPVwnPDYgbD0iRSI+PDYgcD0iRSA0NCI+PC82Pjw2IHA9IkUgNDMiPjwvNj48NiBwPSJFIDQyIj48LzY+PDYgcD0iRSAzViI+PC82Pjw2IHA9IkUgM1UiPjwvNj48NiBwPSJFIDNPIj48LzY+PDYgcD0iRSAzTSI+PC82Pjw2IHA9IkUgM1AiPjwvNj48LzY+XCc7bys9XCc8YSBkPSIyUDo7IiBsPSIxZSI+PDFwIHA9IjFZIiBsPSIyTyI+PC8xcD48L2E+PGEgZD0iMlA6OyIgbD0iMWYiPjwxcCBwPSIxWSIgbD0iMk0iPjwvMXA+PC9hPlwnO28rPVwnPDYgbD0icSI+PC82PlwnO28rPVwnPDYgbD0iRyI+PC82PlwnO28rPVwnPC82PlwnO28rPVwnPC82PlwnO28rPVwnPC82PlwnOyQobykuMkgoIjQ2Iik7JChcJzwzMiA0aT0iMCIgNGg9IjAiIDRrPSIwIj48Mkw+PDEzIHA9IkciIGw9IjRsIj48LzEzPjwxMyBwPSJHIiBsPSI0byI+PDY+PC82PjwvMTM+PDEzIHA9IkciIGw9IjRuIj48LzEzPjwvMkw+PC8zMj5cJykuMkgoXCcjR1wnKTs1KFApeyQoIiMySSIpLjQ3KFwnPDE3IHA9IjRhIiA0ZT0iMkoiIDJLPSIwIj48LzE3PlwnKTskKCIjViwgLkUsIC5HLCAuMVkiKS4yUSgpfX07JC5iLmMuMlI9ezJZOjEwLDMwOkYsMVg6RCwxVzowLDI2OjAsMlg6M0csMlc6XCcyOFwnLDJTOlwnMjhcJywyVDpcJzI4XCcsMUk6M0IsMXg6M3YsMjM6RiwyVTowLjMsMmI6RiwxcjpGLGo6W10sMmM6MmQsMmE6MmQsMVY6MmR9OyQoVykuM3koNygpeyQuYi5jLjJWKCl9KX0pKDRmKTsnLDYyLDI3NCwnfHx8fG9wdHN8aWZ8ZGl2fGZ1bmN0aW9ufHx2YXJ8fGZufGZhbmN5Ym94fGhyZWZ8fGhlaWdodHx3aWR0aHxpdGVtQ3VycmVudHx8aXRlbUFycmF5fGZhbmN5X291dGVyfGlkfHBvc3xjc3N8aHRtbHxjbGFzc3xmYW5jeV9jb250ZW50fHxpbWFnZVByZWxvYWRlcnxlbHNlfHJldHVybnx0b3B8fHVuYmluZHxsZWZ0fHB4fGVsZW18dGhpc3xNYXRofGZhbHNlfGZhbmN5X2JnfHRydWV8ZmFuY3lfdGl0bGV8ZWx8ZmFuY3lfbG9hZGluZ3xzaG93fGl0ZW1PcHRzfHBhZHxvcmlnX2l0ZW18bGVuZ3RofGl0ZW18aXNJRXxzcmN8Y2xpY2t8aGlkZXxyb3VuZHx0YXJnZXR8ZmFuY3lfY2xvc2V8ZG9jdW1lbnR8dGl0bGV8c2V0dGluZ3N8c3ViR3JvdXB8fHdpbmRvd3x8dGR8YmluZHxvcmlnX3Bvc3xidXN5fGlmcmFtZXx8dmlzaWJsZXxvcmlnfHBvc2l0aW9ufG1hdGNofF9jaGFuZ2VfaXRlbXxmYW5jeV9sZWZ0fGZhbmN5X3JpZ2h0fF9maW5pc2h8Z2V0TnVtZXJpY3xmYW5jeV9vdmVybGF5fHZhbHVlfF9zZXRfY29udGVudHxjbG9zZXxpbWd8Z2V0Vmlld3BvcnR8SW1hZ2V8c3BhbnxfX2NsZWFudXB8Y2VudGVyT25TY3JvbGx8bm9ybWFsfG5ld3xpc3xsb2FkaW5nRnJhbWV8bG9hZGluZ1RpbWVyfGZyYW1lSGVpZ2h0fGltYWdlUmVnRXhwfDUwfG9iak5leHR8a2V5ZG93bnxlbXB0eXxmaXJzdHxzdHlsZXxhcHBlbmR8Y2hpbGRyZW58cmVsfGZyYW1lV2lkdGh8aW1hZ2V8X3Byb2NlZWRfaW1hZ2V8dW5kZWZpbmVkfG1pbnxyZXNpemV8aXNGdW5jdGlvbnxzZWxlY3R8b2JqZWN0fGdldFBvc2l0aW9ufHZpc2liaWxpdHl8c2Nyb2xsfGVtYmVkfGNhbGxiYWNrT25DbG9zZXx6b29tU3BlZWRJbnx6b29tT3BhY2l0eXxmYW5jeV9pY298ZmFkZU91dHx8ZmFkZUlufGZhbmN5X3dyYXB8b3ZlcmxheVNob3d8YW5pbWF0ZXxvcGFjaXR5fHpvb21TcGVlZE91dHx8c3dpbmd8a2V5Q29kZXxjYWxsYmFja09uU2hvd3xoaWRlT25Db250ZW50Q2xpY2t8Y2FsbGJhY2tPblN0YXJ0fG51bGx8YWJzb2x1dGV8cGFyc2VJbnR8c2Nyb2xsQm94fF9pbml0aWFsaXplfGJvdHRvbXxwdXNofHN1YnN0cnxpbmRleE9mfGRhdGF8cmVsYXRpdmV8ZmlsdGVyfHBuZ3xicm93c2VyfF9zdGFydHxtYXRjaGVkR3JvdXB8ZWFjaHxyZW1vdmVFeHByZXNzaW9ufGl0ZW1MZWZ0fGl0ZW1Ub3B8c3RvcFByb3BhZ2F0aW9ufF9zZXRfbmF2aWdhdGlvbnwxMDB8cHJvcHxhdXRvfHNldEV4cHJlc3Npb258cGFyZW50Tm9kZXxyaWdodHxfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXN8YW5pbWF0ZUxvYWRpbmd8YXBwZW5kVG98ZmFuY3lfaW5uZXJ8bm98ZnJhbWVib3JkZXJ8dHJ8ZmFuY3lfcmlnaHRfaWNvfGZhc3R8ZmFuY3lfbGVmdF9pY298amF2YXNjcmlwdHxmaXhQTkd8ZGVmYXVsdHN8ZWFzaW5nT3V0fGVhc2luZ0NoYW5nZXxvdmVybGF5T3BhY2l0eXxidWlsZHxlYXNpbmdJbnx6b29tU3BlZWRDaGFuZ2V8cGFkZGluZ3xiYWNrZ3JvdW5kSW1hZ2V8aW1hZ2VTY2FsZXxzdG9wfHRhYmxlfGNsZWFySW50ZXJ2YWx8c2hvd0xvYWRpbmd8ZmFuY3lfZnJhbWV8fHxzaG93SWZyYW1lfHxjb21wbGV0ZXxsb2FkfGJtcHxqcGVnfGZhbmN5X2RpdnxzcGxpdHxyZXBsYWNlfGVuYWJsZWR8c2Nyb2xsTGVmdHxjbGFzc05hbWV8cGFkZGluZ1RvcHxyYW5kb218MTAwMHxmYW5jeV9pZnJhbWV8bmFtZXxzY3JvbGxUb3B8b25sb2FkfGxvY2F0aW9ufGhpZGRlbnxSZWdFeHB8anF1ZXJ5fDM1NXx1cmx8ZXh0ZW5kfHJlYWR5fHZlcnNpb258anBnfDQyNXxmb3J8Ym9yZGVyTGVmdFdpZHRofGhzcGFjZXx3aGlsZXwzMDB8cGFkZGluZ0xlZnR8Y3VyQ1NTfGJvcmRlclRvcFdpZHRofG1zaWV8ZmFuY3lfYWpheHxmYW5jeV9iZ193fHNjYWxlfGZhbmN5X2JnX3N3fGZhbmN5X2JnX253fHNldEludGVydmFsfERYSW1hZ2VUcmFuc2Zvcm18Y2xpZW50V2lkdGh8c2l6aW5nTWV0aG9kfGZhbmN5X2JnX3N8ZmFuY3lfYmdfc2V8cHJvZ2lkfDY2fGdpZnxyZXBlYXR8fGJhY2tncm91bmRSZXBlYXR8ZmFuY3lfYmdfZXxmYW5jeV9iZ19uZXxmYW5jeV9iZ19ufG5vbmV8Ym9keXxwcmVwZW5kfGFsdHxmYW5jeV9pbWd8ZmFuY3lfYmlnSWZyYW1lfDYwfGNyb3B8QWxwaGFJbWFnZUxvYWRlcnxzY3JvbGxpbmd8alF1ZXJ5fG9mZnNldHxjZWxscGFkZGluZ3xjZWxsc3BhY2luZ3xjbGllbnRIZWlnaHR8Ym9yZGVyfGZhbmN5X3RpdGxlX2xlZnR8TWljcm9zb2Z0fGZhbmN5X3RpdGxlX3JpZ2h0fGZhbmN5X3RpdGxlX21haW58Z2V0Jy5zcGxpdCgnfCcpLDAse30pKQo=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.fancybox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCwgYm9keSB7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KDQpkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGZpeGVkOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjNjY2Ow0KCWRpc3BsYXk6IG5vbmU7DQoJei1pbmRleDogMzA7DQp9DQoNCiogaHRtbCBkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWhlaWdodDogZXhwcmVzc2lvbihkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ID8gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgOiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCArICdweCcpOw0KfQ0KDQpkaXYjZmFuY3lfd3JhcCB7DQoJdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KZGl2I2ZhbmN5X2xvYWRpbmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgloZWlnaHQ6IDQwcHg7DQoJd2lkdGg6IDQwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IG5vbmU7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCgl6LWluZGV4OiAxMDA7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nIGRpdiB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiA0MHB4Ow0KCWhlaWdodDogNDgwcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9wcm9ncmVzcy5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nX292ZXJsYXkgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOw0KCXotaW5kZXg6IDMwOw0KfQ0KDQpkaXYjZmFuY3lfbG9hZGluZ19pY29uIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYmFja2dyb3VuZDogdXJsKCdmYW5jeV9sb2FkaW5nLmdpZicpIG5vLXJlcGVhdDsNCgl6LWluZGV4OiAzNTsNCgl3aWR0aDogMTZweDsNCgloZWlnaHQ6IDE2cHg7DQp9DQoNCmRpdiNmYW5jeV9vdXRlciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KICAgIHRvcDogMDsNCiAgICBsZWZ0OiAwOw0KICAgIHotaW5kZXg6IDkwOw0KICAgIHBhZGRpbmc6IDE4cHggMThweCAzM3B4IDE4cHg7DQogICAgbWFyZ2luOiAwOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgZGlzcGxheTogbm9uZTsNCn0NCg0KZGl2I2ZhbmN5X2lubmVyIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJd2lkdGg6MTAwJTsNCgloZWlnaHQ6MTAwJTsNCglib3JkZXI6IDFweCBzb2xpZCAjQkJCOw0KCWJhY2tncm91bmQ6ICNGRkY7DQp9DQoNCmRpdiNmYW5jeV9jb250ZW50IHsNCgltYXJnaW46IDA7DQoJei1pbmRleDogMTAwOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCn0NCg0KZGl2I2ZhbmN5X2RpdiB7DQoJYmFja2dyb3VuZDogIzAwMDsNCgljb2xvcjogI0ZGRjsNCgloZWlnaHQ6IDEwMCU7DQoJd2lkdGg6IDEwMCU7DQoJei1pbmRleDogMTAwOw0KfQ0KDQppbWcjZmFuY3lfaW1nIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJYm9yZGVyOjA7IA0KCXBhZGRpbmc6IDA7IA0KCW1hcmdpbjogMDsNCgl6LWluZGV4OiAxMDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KDQpkaXYjZmFuY3lfY2xvc2Ugew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IC0xMnB4Ow0KCXJpZ2h0OiAtMTVweDsNCgloZWlnaHQ6IDMwcHg7DQoJd2lkdGg6IDMwcHg7DQoJYmFja2dyb3VuZDogdXJsKCdmYW5jeV9jbG9zZWJveC5wbmcnKSB0b3AgbGVmdCBuby1yZXBlYXQ7DQoJY3Vyc29yOiBwb2ludGVyOw0KCXotaW5kZXg6IDE4MTsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQojZmFuY3lfZnJhbWUgew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDEwMCU7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KI2ZhbmN5X2FqYXggew0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCglvdmVyZmxvdzogYXV0bzsNCn0NCg0KYSNmYW5jeV9sZWZ0LCBhI2ZhbmN5X3JpZ2h0IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7IA0KCWJvdHRvbTogMHB4OyANCgloZWlnaHQ6IDEwMCU7IA0KCXdpZHRoOiAzNSU7IA0KCWN1cnNvcjogcG9pbnRlcjsNCgl6LWluZGV4OiAxMTE7IA0KCWRpc3BsYXk6IG5vbmU7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxBQUFBKTsNCglvdXRsaW5lOiBub25lOw0KfQ0KDQphI2ZhbmN5X2xlZnQgew0KCWxlZnQ6IDBweDsgDQp9DQoNCmEjZmFuY3lfcmlnaHQgew0KCXJpZ2h0OiAwcHg7IA0KfQ0KDQpzcGFuLmZhbmN5X2ljbyB7DQoJcG9zaXRpb246IGFic29sdXRlOyANCgl0b3A6IDUwJTsNCgltYXJnaW4tdG9wOiAtMTVweDsNCgl3aWR0aDogMzBweDsNCgloZWlnaHQ6IDMwcHg7DQoJei1pbmRleDogMTEyOyANCgljdXJzb3I6IHBvaW50ZXI7DQoJZGlzcGxheTogYmxvY2s7DQp9DQoNCnNwYW4jZmFuY3lfbGVmdF9pY28gew0KCWxlZnQ6IC05OTk5cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9sZWZ0LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0Kc3BhbiNmYW5jeV9yaWdodF9pY28gew0KCXJpZ2h0OiAtOTk5OXB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfcmlnaHQucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQphI2ZhbmN5X2xlZnQ6aG92ZXIgew0KICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KfQ0KDQphI2ZhbmN5X3JpZ2h0OmhvdmVyIHsNCiAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCn0NCg0KYSNmYW5jeV9sZWZ0OmhvdmVyIHNwYW4gew0KCWxlZnQ6IDIwcHg7IA0KfQ0KDQphI2ZhbmN5X3JpZ2h0OmhvdmVyIHNwYW4gew0KCXJpZ2h0OiAyMHB4OyANCn0NCg0KLmZhbmN5X2JpZ0lmcmFtZSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCn0NCg0KZGl2I2ZhbmN5X2JnIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOyBsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgl6LWluZGV4OiA3MDsNCglib3JkZXI6IDA7DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQp9DQoJDQpkaXYuZmFuY3lfYmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglkaXNwbGF5OiBibG9jazsNCgl6LWluZGV4OiA3MDsNCglib3JkZXI6IDA7DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQp9DQoNCmRpdi5mYW5jeV9iZ19uIHsNCgl0b3A6IC0xOHB4Ow0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJ2ZhbmN5X3NoYWRvd19uLnBuZycpIHJlcGVhdC14Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfbmUgew0KCXRvcDogLTE4cHg7DQoJcmlnaHQ6IC0xM3B4Ow0KCXdpZHRoOiAxM3B4Ow0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJ2ZhbmN5X3NoYWRvd19uZS5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdi5mYW5jeV9iZ19lIHsNCglyaWdodDogLTEzcHg7DQoJaGVpZ2h0OiAxMDAlOw0KCXdpZHRoOiAxM3B4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfc2hhZG93X2UucG5nJykgcmVwZWF0LXk7DQp9DQoNCmRpdi5mYW5jeV9iZ19zZSB7DQoJYm90dG9tOiAtMThweDsNCglyaWdodDogLTEzcHg7DQoJd2lkdGg6IDEzcHg7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfc2hhZG93X3NlLnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KZGl2LmZhbmN5X2JnX3Mgew0KCWJvdHRvbTogLTE4cHg7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfc2hhZG93X3MucG5nJykgcmVwZWF0LXg7DQp9DQoNCmRpdi5mYW5jeV9iZ19zdyB7DQoJYm90dG9tOiAtMThweDsNCglsZWZ0OiAtMTNweDsNCgl3aWR0aDogMTNweDsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9zaGFkb3dfc3cucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfdyB7DQoJbGVmdDogLTEzcHg7DQoJaGVpZ2h0OiAxMDAlOw0KCXdpZHRoOiAxM3B4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfc2hhZG93X3cucG5nJykgcmVwZWF0LXk7DQp9DQoNCmRpdi5mYW5jeV9iZ19udyB7DQoJdG9wOiAtMThweDsNCglsZWZ0OiAtMTNweDsNCgl3aWR0aDogMTNweDsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9zaGFkb3dfbncucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQpkaXYjZmFuY3lfdGl0bGUgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglib3R0b206IC0zM3B4Ow0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJei1pbmRleDogMTAwOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCmRpdiNmYW5jeV90aXRsZSBkaXYgew0KCWNvbG9yOiAjRkZGOw0KCWZvbnQ6IGJvbGQgMTJweCBBcmlhbDsNCglwYWRkaW5nLWJvdHRvbTogM3B4Ow0KfQ0KDQpkaXYjZmFuY3lfdGl0bGUgdGFibGUgew0KCW1hcmdpbjogMCBhdXRvOw0KfQ0KDQpkaXYjZmFuY3lfdGl0bGUgdGFibGUgdGQgew0KCXBhZGRpbmc6IDA7DQoJdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KdGQjZmFuY3lfdGl0bGVfbGVmdCB7DQoJaGVpZ2h0OiAzMnB4Ow0KCXdpZHRoOiAxNXB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChmYW5jeV90aXRsZV9sZWZ0LnBuZykgcmVwZWF0LXg7DQp9DQoNCnRkI2ZhbmN5X3RpdGxlX21haW4gew0KCWhlaWdodDogMzJweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoZmFuY3lfdGl0bGVfbWFpbi5wbmcpIHJlcGVhdC14Ow0KfQ0KDQp0ZCNmYW5jeV90aXRsZV9yaWdodCB7DQoJaGVpZ2h0OiAzMnB4Ow0KCXdpZHRoOiAxNXB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChmYW5jeV90aXRsZV9yaWdodC5wbmcpIHJlcGVhdC14Ow0KfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.fancybox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmFuY3lCb3ggLSBzaW1wbGUgYW5kIGZhbmN5IGpRdWVyeSBwbHVnaW4KICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9mYW5jeS5rbGFkZS5sdi8KICogVmVyc2lvbjogMS4yLjEgKDEzLzAzLzIwMDkpCiAqIENvcHlyaWdodCAoYykgMjAwOSBKYW5pcyBTa2FybmVsaXMKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCiAqIFJlcXVpcmVzOiBqUXVlcnkgdjEuMysKKi8KOyhmdW5jdGlvbigkKSB7CgoJJC5mbi5maXhQTkcgPSBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHsKCQkJdmFyIGltYWdlID0gJCh0aGlzKS5jc3MoJ2JhY2tncm91bmRJbWFnZScpOwoKCQkJaWYgKGltYWdlLm1hdGNoKC9edXJsXChbIiddPyguKlwucG5nKVsiJ10/XCkkL2kpKSB7CgkJCQlpbWFnZSA9IFJlZ0V4cC4kMTsKCQkJCSQodGhpcykuY3NzKHsKCQkJCQknYmFja2dyb3VuZEltYWdlJzogJ25vbmUnLAoJCQkJCSdmaWx0ZXInOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoZW5hYmxlZD10cnVlLCBzaXppbmdNZXRob2Q9IiArICgkKHRoaXMpLmNzcygnYmFja2dyb3VuZFJlcGVhdCcpID09ICduby1yZXBlYXQnID8gJ2Nyb3AnIDogJ3NjYWxlJykgKyAiLCBzcmM9JyIgKyBpbWFnZSArICInKSIKCQkJCX0pLmVhY2goZnVuY3Rpb24gKCkgewoJCQkJCXZhciBwb3NpdGlvbiA9ICQodGhpcykuY3NzKCdwb3NpdGlvbicpOwoJCQkJCWlmIChwb3NpdGlvbiAhPSAnYWJzb2x1dGUnICYmIHBvc2l0aW9uICE9ICdyZWxhdGl2ZScpCgkJCQkJCSQodGhpcykuY3NzKCdwb3NpdGlvbicsICdyZWxhdGl2ZScpOwoJCQkJfSk7CgkJCX0KCQl9KTsKCX07CgoJdmFyIGVsZW0sIG9wdHMsIGJ1c3kgPSBmYWxzZSwgaW1hZ2VQcmVsb2FkZXIgPSBuZXcgSW1hZ2UsIGxvYWRpbmdUaW1lciwgbG9hZGluZ0ZyYW1lID0gMSwgaW1hZ2VSZWdFeHAgPSAvXC4oanBnfGdpZnxwbmd8Ym1wfGpwZWcpKC4qKT8kL2k7Cgl2YXIgaXNJRSA9ICgkLmJyb3dzZXIubXNpZSAmJiBwYXJzZUludCgkLmJyb3dzZXIudmVyc2lvbi5zdWJzdHIoMCwxKSkgPCA4KTsKCgkkLmZuLmZhbmN5Ym94ID0gZnVuY3Rpb24oc2V0dGluZ3MpIHsKCQlzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmZhbmN5Ym94LmRlZmF1bHRzLCBzZXR0aW5ncyk7CgoJCXZhciBtYXRjaGVkR3JvdXAgPSB0aGlzOwoKCQlmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpIHsKCQkJZWxlbSA9IHRoaXM7CgkJCW9wdHMgPSBzZXR0aW5nczsKCgkJCV9zdGFydCgpOwoKCQkJcmV0dXJuIGZhbHNlOwoJCX07CgoJCWZ1bmN0aW9uIF9zdGFydCgpIHsKCQkJaWYgKGJ1c3kpIHJldHVybjsKCgkJCWlmICgkLmlzRnVuY3Rpb24ob3B0cy5jYWxsYmFja09uU3RhcnQpKSB7CgkJCQlvcHRzLmNhbGxiYWNrT25TdGFydCgpOwoJCQl9CgoJCQlvcHRzLml0ZW1BcnJheQkJPSBbXTsKCQkJb3B0cy5pdGVtQ3VycmVudAk9IDA7CgoJCQlpZiAoc2V0dGluZ3MuaXRlbUFycmF5Lmxlbmd0aCA+IDApIHsKCQkJCW9wdHMuaXRlbUFycmF5ID0gc2V0dGluZ3MuaXRlbUFycmF5OwoKCQkJfSBlbHNlIHsKCQkJCXZhciBpdGVtID0ge307CgoJCQkJaWYgKCFlbGVtLnJlbCB8fCBlbGVtLnJlbCA9PSAnJykgewoJCQkJCXZhciBpdGVtID0ge2hyZWY6IGVsZW0uaHJlZiwgdGl0bGU6IGVsZW0udGl0bGV9OwoKCQkJCQlpZiAoJChlbGVtKS5jaGlsZHJlbigiaW1nOmZpcnN0IikubGVuZ3RoKSB7CgkJCQkJCWl0ZW0ub3JpZyA9ICQoZWxlbSkuY2hpbGRyZW4oImltZzpmaXJzdCIpOwoJCQkJCX0KCgkJCQkJb3B0cy5pdGVtQXJyYXkucHVzaCggaXRlbSApOwoKCQkJCX0gZWxzZSB7CgkJCQkJCgkJCQkJdmFyIHN1Ykdyb3VwID0gJChtYXRjaGVkR3JvdXApLmZpbHRlcigiYVtyZWw9IiArIGVsZW0ucmVsICsgIl0iKTsKCgkJCQkJdmFyIGl0ZW0gPSB7fTsKCgkJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBzdWJHcm91cC5sZW5ndGg7IGkrKykgewoJCQkJCQlpdGVtID0ge2hyZWY6IHN1Ykdyb3VwW2ldLmhyZWYsIHRpdGxlOiBzdWJHcm91cFtpXS50aXRsZX07CgoJCQkJCQlpZiAoJChzdWJHcm91cFtpXSkuY2hpbGRyZW4oImltZzpmaXJzdCIpLmxlbmd0aCkgewoJCQkJCQkJaXRlbS5vcmlnID0gJChzdWJHcm91cFtpXSkuY2hpbGRyZW4oImltZzpmaXJzdCIpOwoJCQkJCQl9CgoJCQkJCQlvcHRzLml0ZW1BcnJheS5wdXNoKCBpdGVtICk7CgkJCQkJfQoKCQkJCQl3aGlsZSAoIG9wdHMuaXRlbUFycmF5WyBvcHRzLml0ZW1DdXJyZW50IF0uaHJlZiAhPSBlbGVtLmhyZWYgKSB7CgkJCQkJCW9wdHMuaXRlbUN1cnJlbnQrKzsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCWlmIChvcHRzLm92ZXJsYXlTaG93KSB7CgkJCQlpZiAoaXNJRSkgewoJCQkJCSQoJ2VtYmVkLCBvYmplY3QsIHNlbGVjdCcpLmNzcygndmlzaWJpbGl0eScsICdoaWRkZW4nKTsKCQkJCX0KCgkJCQkkKCIjZmFuY3lfb3ZlcmxheSIpLmNzcygnb3BhY2l0eScsIG9wdHMub3ZlcmxheU9wYWNpdHkpLnNob3coKTsKCQkJfQoKCQkJX2NoYW5nZV9pdGVtKCk7CgkJfTsKCgkJZnVuY3Rpb24gX2NoYW5nZV9pdGVtKCkgewoJCQkkKCIjZmFuY3lfcmlnaHQsICNmYW5jeV9sZWZ0LCAjZmFuY3lfY2xvc2UsICNmYW5jeV90aXRsZSIpLmhpZGUoKTsKCgkJCXZhciBocmVmID0gb3B0cy5pdGVtQXJyYXlbIG9wdHMuaXRlbUN1cnJlbnQgXS5ocmVmOwoKCQkJaWYgKGhyZWYubWF0Y2goLyMvKSkgewoJCQkJdmFyIHRhcmdldCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcjJylbMF07IHRhcmdldCA9IGhyZWYucmVwbGFjZSh0YXJnZXQsICcnKTsgdGFyZ2V0ID0gdGFyZ2V0LnN1YnN0cih0YXJnZXQuaW5kZXhPZignIycpKTsKCgkJCQlfc2V0X2NvbnRlbnQoJzxkaXYgaWQ9ImZhbmN5X2RpdiI+JyArICQodGFyZ2V0KS5odG1sKCkgKyAnPC9kaXY+Jywgb3B0cy5mcmFtZVdpZHRoLCBvcHRzLmZyYW1lSGVpZ2h0KTsKCgkJCX0gZWxzZSBpZiAoaHJlZi5tYXRjaChpbWFnZVJlZ0V4cCkpIHsKCQkJCWltYWdlUHJlbG9hZGVyID0gbmV3IEltYWdlOyBpbWFnZVByZWxvYWRlci5zcmMgPSBocmVmOwoKCQkJCWlmIChpbWFnZVByZWxvYWRlci5jb21wbGV0ZSkgewoJCQkJCV9wcm9jZWVkX2ltYWdlKCk7CgoJCQkJfSBlbHNlIHsKCQkJCQkkLmZuLmZhbmN5Ym94LnNob3dMb2FkaW5nKCk7CgoJCQkJCSQoaW1hZ2VQcmVsb2FkZXIpLnVuYmluZCgpLmJpbmQoJ2xvYWQnLCBmdW5jdGlvbigpIHsKCQkJCQkJJCgiLmZhbmN5X2xvYWRpbmciKS5oaWRlKCk7CgoJCQkJCQlfcHJvY2VlZF9pbWFnZSgpOwoJCQkJCX0pOwoJCQkJfQoKCQkJIH0gZWxzZSBpZiAoaHJlZi5tYXRjaCgiaWZyYW1lIikgfHwgZWxlbS5jbGFzc05hbWUuaW5kZXhPZigiaWZyYW1lIikgPj0gMCkgewoJCQkJX3NldF9jb250ZW50KCc8aWZyYW1lIGlkPSJmYW5jeV9mcmFtZSIgb25sb2FkPSIkLmZuLmZhbmN5Ym94LnNob3dJZnJhbWUoKSIgbmFtZT0iZmFuY3lfaWZyYW1lJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDAwKSArICciIGZyYW1lYm9yZGVyPSIwIiBoc3BhY2U9IjAiIHNyYz0iJyArIGhyZWYgKyAnIj48L2lmcmFtZT4nLCBvcHRzLmZyYW1lV2lkdGgsIG9wdHMuZnJhbWVIZWlnaHQpOwoKCQkJfSBlbHNlIHsKCQkJCSQuZ2V0KGhyZWYsIGZ1bmN0aW9uKGRhdGEpIHsKCQkJCQlfc2V0X2NvbnRlbnQoICc8ZGl2IGlkPSJmYW5jeV9hamF4Ij4nICsgZGF0YSArICc8L2Rpdj4nLCBvcHRzLmZyYW1lV2lkdGgsIG9wdHMuZnJhbWVIZWlnaHQgKTsKCQkJCX0pOwoJCQl9CgkJfTsKCgkJZnVuY3Rpb24gX3Byb2NlZWRfaW1hZ2UoKSB7CgkJCWlmIChvcHRzLmltYWdlU2NhbGUpIHsKCQkJCXZhciB3ID0gJC5mbi5mYW5jeWJveC5nZXRWaWV3cG9ydCgpOwoKCQkJCXZhciByID0gTWF0aC5taW4oTWF0aC5taW4od1swXSAtIDM2LCBpbWFnZVByZWxvYWRlci53aWR0aCkgLyBpbWFnZVByZWxvYWRlci53aWR0aCwgTWF0aC5taW4od1sxXSAtIDYwLCBpbWFnZVByZWxvYWRlci5oZWlnaHQpIC8gaW1hZ2VQcmVsb2FkZXIuaGVpZ2h0KTsKCgkJCQl2YXIgd2lkdGggPSBNYXRoLnJvdW5kKHIgKiBpbWFnZVByZWxvYWRlci53aWR0aCk7CgkJCQl2YXIgaGVpZ2h0ID0gTWF0aC5yb3VuZChyICogaW1hZ2VQcmVsb2FkZXIuaGVpZ2h0KTsKCgkJCX0gZWxzZSB7CgkJCQl2YXIgd2lkdGggPSBpbWFnZVByZWxvYWRlci53aWR0aDsKCQkJCXZhciBoZWlnaHQgPSBpbWFnZVByZWxvYWRlci5oZWlnaHQ7CgkJCX0KCgkJCV9zZXRfY29udGVudCgnPGltZyBhbHQ9IiIgaWQ9ImZhbmN5X2ltZyIgc3JjPSInICsgaW1hZ2VQcmVsb2FkZXIuc3JjICsgJyIgLz4nLCB3aWR0aCwgaGVpZ2h0KTsKCQl9OwoKCQlmdW5jdGlvbiBfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXMoKSB7CgkJCWlmICgob3B0cy5pdGVtQXJyYXkubGVuZ3RoIC0xKSA+IG9wdHMuaXRlbUN1cnJlbnQpIHsKCQkJCXZhciBocmVmID0gb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudCArIDFdLmhyZWY7CgoJCQkJaWYgKGhyZWYubWF0Y2goaW1hZ2VSZWdFeHApKSB7CgkJCQkJb2JqTmV4dCA9IG5ldyBJbWFnZSgpOwoJCQkJCW9iak5leHQuc3JjID0gaHJlZjsKCQkJCX0KCQkJfQoKCQkJaWYgKG9wdHMuaXRlbUN1cnJlbnQgPiAwKSB7CgkJCQl2YXIgaHJlZiA9IG9wdHMuaXRlbUFycmF5W29wdHMuaXRlbUN1cnJlbnQgLTFdLmhyZWY7CgoJCQkJaWYgKGhyZWYubWF0Y2goaW1hZ2VSZWdFeHApKSB7CgkJCQkJb2JqTmV4dCA9IG5ldyBJbWFnZSgpOwoJCQkJCW9iak5leHQuc3JjID0gaHJlZjsKCQkJCX0KCQkJfQoJCX07CgoJCWZ1bmN0aW9uIF9zZXRfY29udGVudCh2YWx1ZSwgd2lkdGgsIGhlaWdodCkgewoJCQlidXN5ID0gdHJ1ZTsKCgkJCXZhciBwYWQgPSBvcHRzLnBhZGRpbmc7CgoJCQlpZiAoaXNJRSkgewoJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKVswXS5zdHlsZS5yZW1vdmVFeHByZXNzaW9uKCJoZWlnaHQiKTsKCQkJCSQoIiNmYW5jeV9jb250ZW50IilbMF0uc3R5bGUucmVtb3ZlRXhwcmVzc2lvbigid2lkdGgiKTsKCQkJfQoKCQkJaWYgKHBhZCA+IDApIHsKCQkJCXdpZHRoCSs9IHBhZCAqIDI7CgkJCQloZWlnaHQJKz0gcGFkICogMjsKCgkJCQkkKCIjZmFuY3lfY29udGVudCIpLmNzcyh7CgkJCQkJJ3RvcCcJCTogcGFkICsgJ3B4JywKCQkJCQkncmlnaHQnCQk6IHBhZCArICdweCcsCgkJCQkJJ2JvdHRvbScJOiBwYWQgKyAncHgnLAoJCQkJCSdsZWZ0JwkJOiBwYWQgKyAncHgnLAoJCQkJCSd3aWR0aCcJCTogJ2F1dG8nLAoJCQkJCSdoZWlnaHQnCTogJ2F1dG8nCgkJCQl9KTsKCgkJCQlpZiAoaXNJRSkgewoJCQkJCSQoIiNmYW5jeV9jb250ZW50IilbMF0uc3R5bGUuc2V0RXhwcmVzc2lvbignaGVpZ2h0JywJJyh0aGlzLnBhcmVudE5vZGUuY2xpZW50SGVpZ2h0IC0gMjApJyk7CgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKVswXS5zdHlsZS5zZXRFeHByZXNzaW9uKCd3aWR0aCcsCQknKHRoaXMucGFyZW50Tm9kZS5jbGllbnRXaWR0aCAtIDIwKScpOwoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCSQoIiNmYW5jeV9jb250ZW50IikuY3NzKHsKCQkJCQkndG9wJwkJOiAwLAoJCQkJCSdyaWdodCcJCTogMCwKCQkJCQknYm90dG9tJwk6IDAsCgkJCQkJJ2xlZnQnCQk6IDAsCgkJCQkJJ3dpZHRoJwkJOiAnMTAwJScsCgkJCQkJJ2hlaWdodCcJOiAnMTAwJScKCQkJCX0pOwoJCQl9CgoJCQlpZiAoJCgiI2ZhbmN5X291dGVyIikuaXMoIjp2aXNpYmxlIikgJiYgd2lkdGggPT0gJCgiI2ZhbmN5X291dGVyIikud2lkdGgoKSAmJiBoZWlnaHQgPT0gJCgiI2ZhbmN5X291dGVyIikuaGVpZ2h0KCkpIHsKCQkJCSQoIiNmYW5jeV9jb250ZW50IikuZmFkZU91dCgiZmFzdCIsIGZ1bmN0aW9uKCkgewoJCQkJCSQoIiNmYW5jeV9jb250ZW50IikuZW1wdHkoKS5hcHBlbmQoJCh2YWx1ZSkpLmZhZGVJbigibm9ybWFsIiwgZnVuY3Rpb24oKSB7CgkJCQkJCV9maW5pc2goKTsKCQkJCQl9KTsKCQkJCX0pOwoKCQkJCXJldHVybjsKCQkJfQoKCQkJdmFyIHcgPSAkLmZuLmZhbmN5Ym94LmdldFZpZXdwb3J0KCk7CgoJCQl2YXIgaXRlbUxlZnQJPSAod2lkdGggKyAzNikJPiB3WzBdID8gd1syXSA6ICh3WzJdICsgTWF0aC5yb3VuZCgod1swXSAtIHdpZHRoIC0gMzYpIC8gMikpOwoJCQl2YXIgaXRlbVRvcAkJPSAoaGVpZ2h0ICsgNTApCT4gd1sxXSA/IHdbM10gOiAod1szXSArIE1hdGgucm91bmQoKHdbMV0gLSBoZWlnaHQgLSA1MCkgLyAyKSk7CgoJCQl2YXIgaXRlbU9wdHMgPSB7CgkJCQknbGVmdCc6CQlpdGVtTGVmdCwKCQkJCSd0b3AnOgkJaXRlbVRvcCwKCQkJCSd3aWR0aCc6CXdpZHRoICsgJ3B4JywKCQkJCSdoZWlnaHQnOgloZWlnaHQgKyAncHgnCgkJCX07CgoJCQlpZiAoJCgiI2ZhbmN5X291dGVyIikuaXMoIjp2aXNpYmxlIikpIHsKCQkJCSQoIiNmYW5jeV9jb250ZW50IikuZmFkZU91dCgibm9ybWFsIiwgZnVuY3Rpb24oKSB7CgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKS5lbXB0eSgpOwoJCQkJCSQoIiNmYW5jeV9vdXRlciIpLmFuaW1hdGUoaXRlbU9wdHMsIG9wdHMuem9vbVNwZWVkQ2hhbmdlLCBvcHRzLmVhc2luZ0NoYW5nZSwgZnVuY3Rpb24oKSB7CgkJCQkJCSQoIiNmYW5jeV9jb250ZW50IikuYXBwZW5kKCQodmFsdWUpKS5mYWRlSW4oIm5vcm1hbCIsIGZ1bmN0aW9uKCkgewoJCQkJCQkJX2ZpbmlzaCgpOwoJCQkJCQl9KTsKCQkJCQl9KTsKCQkJCX0pOwoKCQkJfSBlbHNlIHsKCgkJCQlpZiAob3B0cy56b29tU3BlZWRJbiA+IDAgJiYgb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudF0ub3JpZyAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKS5lbXB0eSgpLmFwcGVuZCgkKHZhbHVlKSk7CgoJCQkJCXZhciBvcmlnX2l0ZW0JPSBvcHRzLml0ZW1BcnJheVtvcHRzLml0ZW1DdXJyZW50XS5vcmlnOwoJCQkJCXZhciBvcmlnX3Bvcwk9ICQuZm4uZmFuY3lib3guZ2V0UG9zaXRpb24ob3JpZ19pdGVtKTsKCgkJCQkJJCgiI2ZhbmN5X291dGVyIikuY3NzKHsKCQkJCQkJJ2xlZnQnOgkJKG9yaWdfcG9zLmxlZnQgLSAxOCkgKyAncHgnLAoJCQkJCQkndG9wJzoJCShvcmlnX3Bvcy50b3AgIC0gMTgpICsgJ3B4JywKCQkJCQkJJ3dpZHRoJzoJJChvcmlnX2l0ZW0pLndpZHRoKCksCgkJCQkJCSdoZWlnaHQnOgkkKG9yaWdfaXRlbSkuaGVpZ2h0KCkKCQkJCQl9KTsKCgkJCQkJaWYgKG9wdHMuem9vbU9wYWNpdHkpIHsKCQkJCQkJaXRlbU9wdHMub3BhY2l0eSA9ICdzaG93JzsKCQkJCQl9CgoJCQkJCSQoIiNmYW5jeV9vdXRlciIpLmFuaW1hdGUoaXRlbU9wdHMsIG9wdHMuem9vbVNwZWVkSW4sIG9wdHMuZWFzaW5nSW4sIGZ1bmN0aW9uKCkgewoJCQkJCQlfZmluaXNoKCk7CgkJCQkJfSk7CgoJCQkJfSBlbHNlIHsKCgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKS5oaWRlKCkuZW1wdHkoKS5hcHBlbmQoJCh2YWx1ZSkpLnNob3coKTsKCQkJCQkkKCIjZmFuY3lfb3V0ZXIiKS5jc3MoaXRlbU9wdHMpLmZhZGVJbigibm9ybWFsIiwgZnVuY3Rpb24oKSB7CgkJCQkJCV9maW5pc2goKTsKCQkJCQl9KTsKCQkJCX0KCQkJfQoJCX07CgoJCWZ1bmN0aW9uIF9zZXRfbmF2aWdhdGlvbigpIHsKCQkJaWYgKG9wdHMuaXRlbUN1cnJlbnQgIT0gMCkgewoJCQkJJCgiI2ZhbmN5X2xlZnQsICNmYW5jeV9sZWZ0X2ljbyIpLnVuYmluZCgpLmJpbmQoImNsaWNrIiwgZnVuY3Rpb24oZSkgewoJCQkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJCW9wdHMuaXRlbUN1cnJlbnQtLTsKCQkJCQlfY2hhbmdlX2l0ZW0oKTsKCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfSk7CgoJCQkJJCgiI2ZhbmN5X2xlZnQiKS5zaG93KCk7CgkJCX0KCgkJCWlmIChvcHRzLml0ZW1DdXJyZW50ICE9ICggb3B0cy5pdGVtQXJyYXkubGVuZ3RoIC0xKSkgewoJCQkJJCgiI2ZhbmN5X3JpZ2h0LCAjZmFuY3lfcmlnaHRfaWNvIikudW5iaW5kKCkuYmluZCgiY2xpY2siLCBmdW5jdGlvbihlKSB7CgkJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCQkJb3B0cy5pdGVtQ3VycmVudCsrOwoJCQkJCV9jaGFuZ2VfaXRlbSgpOwoKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9KTsKCgkJCQkkKCIjZmFuY3lfcmlnaHQiKS5zaG93KCk7CgkJCX0KCQl9OwoKCQlmdW5jdGlvbiBfZmluaXNoKCkgewoJCQlfc2V0X25hdmlnYXRpb24oKTsKCgkJCV9wcmVsb2FkX25laWdoYm9yX2ltYWdlcygpOwoKCQkJJChkb2N1bWVudCkua2V5ZG93bihmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5rZXlDb2RlID09IDI3KSB7CgkJCQkJJC5mbi5mYW5jeWJveC5jbG9zZSgpOwoJCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93biIpOwoKCQkJCX0gZWxzZSBpZihlLmtleUNvZGUgPT0gMzcgJiYgb3B0cy5pdGVtQ3VycmVudCAhPSAwKSB7CgkJCQkJb3B0cy5pdGVtQ3VycmVudC0tOwoJCQkJCV9jaGFuZ2VfaXRlbSgpOwoJCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93biIpOwoKCQkJCX0gZWxzZSBpZihlLmtleUNvZGUgPT0gMzkgJiYgb3B0cy5pdGVtQ3VycmVudCAhPSAob3B0cy5pdGVtQXJyYXkubGVuZ3RoIC0gMSkpIHsKIAkJCQkJb3B0cy5pdGVtQ3VycmVudCsrOwoJCQkJCV9jaGFuZ2VfaXRlbSgpOwoJCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93biIpOwoJCQkJfQoJCQl9KTsKCgkJCWlmIChvcHRzLmNlbnRlck9uU2Nyb2xsKSB7CgkJCQkkKHdpbmRvdykuYmluZCgicmVzaXplIHNjcm9sbCIsICQuZm4uZmFuY3lib3guc2Nyb2xsQm94KTsKCQkJfSBlbHNlIHsKCQkJCSQoImRpdiNmYW5jeV9vdXRlciIpLmNzcygicG9zaXRpb24iLCAiYWJzb2x1dGUiKTsKCQkJfQoKCQkJaWYgKG9wdHMuaGlkZU9uQ29udGVudENsaWNrKSB7CgkJCQkkKCIjZmFuY3lfd3JhcCIpLmNsaWNrKCQuZm4uZmFuY3lib3guY2xvc2UpOwoJCQl9CgoJCQkkKCIjZmFuY3lfb3ZlcmxheSwgI2ZhbmN5X2Nsb3NlIikuYmluZCgiY2xpY2siLCAkLmZuLmZhbmN5Ym94LmNsb3NlKTsKCgkJCSQoIiNmYW5jeV9jbG9zZSIpLnNob3coKTsKCgkJCWlmIChvcHRzLml0ZW1BcnJheVsgb3B0cy5pdGVtQ3VycmVudCBdLnRpdGxlICE9PSB1bmRlZmluZWQgJiYgb3B0cy5pdGVtQXJyYXlbIG9wdHMuaXRlbUN1cnJlbnQgXS50aXRsZS5sZW5ndGggPiAwKSB7CgkJCQkkKCcjZmFuY3lfdGl0bGUgZGl2JykuaHRtbChvcHRzLml0ZW1BcnJheVsgb3B0cy5pdGVtQ3VycmVudCBdLnRpdGxlKTsKCQkJCSQoJyNmYW5jeV90aXRsZScpLnNob3coKTsKCQkJfQoKCQkJaWYgKG9wdHMub3ZlcmxheVNob3cgJiYgaXNJRSkgewoJCQkJJCgnZW1iZWQsIG9iamVjdCwgc2VsZWN0JywgJCgnI2ZhbmN5X2NvbnRlbnQnKSkuY3NzKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTsKCQkJfQoKCQkJaWYgKCQuaXNGdW5jdGlvbihvcHRzLmNhbGxiYWNrT25TaG93KSkgewoJCQkJb3B0cy5jYWxsYmFja09uU2hvdygpOwoJCQl9CgoJCQlidXN5ID0gZmFsc2U7CgkJfTsKCgkJcmV0dXJuIHRoaXMudW5iaW5kKCdjbGljaycpLmNsaWNrKF9pbml0aWFsaXplKTsKCX07CgoJJC5mbi5mYW5jeWJveC5zY3JvbGxCb3ggPSBmdW5jdGlvbigpIHsKCQl2YXIgcG9zID0gJC5mbi5mYW5jeWJveC5nZXRWaWV3cG9ydCgpOwoKCQkkKCIjZmFuY3lfb3V0ZXIiKS5jc3MoJ2xlZnQnLCAoKCQoIiNmYW5jeV9vdXRlciIpLndpZHRoKCkJKyAzNikgPiBwb3NbMF0gPyBwb3NbMl0gOiBwb3NbMl0gKyBNYXRoLnJvdW5kKChwb3NbMF0gLSAkKCIjZmFuY3lfb3V0ZXIiKS53aWR0aCgpCS0gMzYpCS8gMikpKTsKCQkkKCIjZmFuY3lfb3V0ZXIiKS5jc3MoJ3RvcCcsICAoKCQoIiNmYW5jeV9vdXRlciIpLmhlaWdodCgpCSsgNTApID4gcG9zWzFdID8gcG9zWzNdIDogcG9zWzNdICsgTWF0aC5yb3VuZCgocG9zWzFdIC0gJCgiI2ZhbmN5X291dGVyIikuaGVpZ2h0KCkJLSA1MCkJLyAyKSkpOwoJfTsKCgkkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMgPSBmdW5jdGlvbihlbCwgcHJvcCkgewoJCXJldHVybiBwYXJzZUludCgkLmN1ckNTUyhlbC5qcXVlcnk/ZWxbMF06ZWwscHJvcCx0cnVlKSl8fDA7Cgl9OwoKCSQuZm4uZmFuY3lib3guZ2V0UG9zaXRpb24gPSBmdW5jdGlvbihlbCkgewoJCXZhciBwb3MgPSBlbC5vZmZzZXQoKTsKCgkJcG9zLnRvcAkrPSAkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMoZWwsICdwYWRkaW5nVG9wJyk7CgkJcG9zLnRvcAkrPSAkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMoZWwsICdib3JkZXJUb3BXaWR0aCcpOwoKCQlwb3MubGVmdCArPSAkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMoZWwsICdwYWRkaW5nTGVmdCcpOwoJCXBvcy5sZWZ0ICs9ICQuZm4uZmFuY3lib3guZ2V0TnVtZXJpYyhlbCwgJ2JvcmRlckxlZnRXaWR0aCcpOwoKCQlyZXR1cm4gcG9zOwoJfTsKCgkkLmZuLmZhbmN5Ym94LnNob3dJZnJhbWUgPSBmdW5jdGlvbigpIHsKCQkkKCIuZmFuY3lfbG9hZGluZyIpLmhpZGUoKTsKCQkkKCIjZmFuY3lfZnJhbWUiKS5zaG93KCk7Cgl9OwoKCSQuZm4uZmFuY3lib3guZ2V0Vmlld3BvcnQgPSBmdW5jdGlvbigpIHsKCQlyZXR1cm4gWyQod2luZG93KS53aWR0aCgpLCAkKHdpbmRvdykuaGVpZ2h0KCksICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSwgJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgXTsKCX07CgoJJC5mbi5mYW5jeWJveC5hbmltYXRlTG9hZGluZyA9IGZ1bmN0aW9uKCkgewoJCWlmICghJCgiI2ZhbmN5X2xvYWRpbmciKS5pcygnOnZpc2libGUnKSl7CgkJCWNsZWFySW50ZXJ2YWwobG9hZGluZ1RpbWVyKTsKCQkJcmV0dXJuOwoJCX0KCgkJJCgiI2ZhbmN5X2xvYWRpbmcgPiBkaXYiKS5jc3MoJ3RvcCcsIChsb2FkaW5nRnJhbWUgKiAtNDApICsgJ3B4Jyk7CgoJCWxvYWRpbmdGcmFtZSA9IChsb2FkaW5nRnJhbWUgKyAxKSAlIDEyOwoJfTsKCgkkLmZuLmZhbmN5Ym94LnNob3dMb2FkaW5nID0gZnVuY3Rpb24oKSB7CgkJY2xlYXJJbnRlcnZhbChsb2FkaW5nVGltZXIpOwoKCQl2YXIgcG9zID0gJC5mbi5mYW5jeWJveC5nZXRWaWV3cG9ydCgpOwoKCQkkKCIjZmFuY3lfbG9hZGluZyIpLmNzcyh7J2xlZnQnOiAoKHBvc1swXSAtIDQwKSAvIDIgKyBwb3NbMl0pLCAndG9wJzogKChwb3NbMV0gLSA0MCkgLyAyICsgcG9zWzNdKX0pLnNob3coKTsKCQkkKCIjZmFuY3lfbG9hZGluZyIpLmJpbmQoJ2NsaWNrJywgJC5mbi5mYW5jeWJveC5jbG9zZSk7CgoJCWxvYWRpbmdUaW1lciA9IHNldEludGVydmFsKCQuZm4uZmFuY3lib3guYW5pbWF0ZUxvYWRpbmcsIDY2KTsKCX07CgoJJC5mbi5mYW5jeWJveC5jbG9zZSA9IGZ1bmN0aW9uKCkgewoJCWJ1c3kgPSB0cnVlOwoKCQkkKGltYWdlUHJlbG9hZGVyKS51bmJpbmQoKTsKCgkJJCgiI2ZhbmN5X292ZXJsYXksICNmYW5jeV9jbG9zZSIpLnVuYmluZCgpOwoKCQlpZiAob3B0cy5oaWRlT25Db250ZW50Q2xpY2spIHsKCQkJJCgiI2ZhbmN5X3dyYXAiKS51bmJpbmQoKTsKCQl9CgoJCSQoIiNmYW5jeV9jbG9zZSwgLmZhbmN5X2xvYWRpbmcsICNmYW5jeV9sZWZ0LCAjZmFuY3lfcmlnaHQsICNmYW5jeV90aXRsZSIpLmhpZGUoKTsKCgkJaWYgKG9wdHMuY2VudGVyT25TY3JvbGwpIHsKCQkJJCh3aW5kb3cpLnVuYmluZCgicmVzaXplIHNjcm9sbCIpOwoJCX0KCgkJX19jbGVhbnVwID0gZnVuY3Rpb24oKSB7CgkJCSQoIiNmYW5jeV9vdmVybGF5LCAjZmFuY3lfb3V0ZXIiKS5oaWRlKCk7CgoJCQlpZiAob3B0cy5jZW50ZXJPblNjcm9sbCkgewoJCQkJJCh3aW5kb3cpLnVuYmluZCgicmVzaXplIHNjcm9sbCIpOwoJCQl9CgoJCQlpZiAoaXNJRSkgewoJCQkJJCgnZW1iZWQsIG9iamVjdCwgc2VsZWN0JykuY3NzKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTsKCQkJfQoKCQkJaWYgKCQuaXNGdW5jdGlvbihvcHRzLmNhbGxiYWNrT25DbG9zZSkpIHsKCQkJCW9wdHMuY2FsbGJhY2tPbkNsb3NlKCk7CgkJCX0KCgkJCWJ1c3kgPSBmYWxzZTsKCQl9OwoKCQlpZiAoJCgiI2ZhbmN5X291dGVyIikuaXMoIjp2aXNpYmxlIikgIT09IGZhbHNlKSB7CgkJCWlmIChvcHRzLnpvb21TcGVlZE91dCA+IDAgJiYgb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudF0ub3JpZyAhPT0gdW5kZWZpbmVkKSB7CgkJCQl2YXIgb3JpZ19pdGVtCT0gb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudF0ub3JpZzsKCQkJCXZhciBvcmlnX3Bvcwk9ICQuZm4uZmFuY3lib3guZ2V0UG9zaXRpb24ob3JpZ19pdGVtKTsKCgkJCQl2YXIgaXRlbU9wdHMgPSB7CgkJCQkJJ2xlZnQnOgkJKG9yaWdfcG9zLmxlZnQgLSAxOCkgKyAncHgnLAoJCQkJCSd0b3AnOiAJCShvcmlnX3Bvcy50b3AgIC0gMTgpICsgJ3B4JywKCQkJCQknd2lkdGgnOgkkKG9yaWdfaXRlbSkud2lkdGgoKSwKCQkJCQknaGVpZ2h0JzoJJChvcmlnX2l0ZW0pLmhlaWdodCgpCgkJCQl9OwoKCQkJCWlmIChvcHRzLnpvb21PcGFjaXR5KSB7CgkJCQkJaXRlbU9wdHMub3BhY2l0eSA9ICdoaWRlJzsKCQkJCX0KCgkJCQkkKCIjZmFuY3lfb3V0ZXIiKS5zdG9wKGZhbHNlLCB0cnVlKS5hbmltYXRlKGl0ZW1PcHRzLCBvcHRzLnpvb21TcGVlZE91dCwgb3B0cy5lYXNpbmdPdXQsIF9fY2xlYW51cCk7CgoJCQl9IGVsc2UgewoJCQkJJCgiI2ZhbmN5X291dGVyIikuc3RvcChmYWxzZSwgdHJ1ZSkuZmFkZU91dCgiZmFzdCIsIF9fY2xlYW51cCk7CgkJCX0KCgkJfSBlbHNlIHsKCQkJX19jbGVhbnVwKCk7CgkJfQoKCQlyZXR1cm4gZmFsc2U7Cgl9OwoKCSQuZm4uZmFuY3lib3guYnVpbGQgPSBmdW5jdGlvbigpIHsKCQl2YXIgaHRtbCA9ICcnOwoKCQlodG1sICs9ICc8ZGl2IGlkPSJmYW5jeV9vdmVybGF5Ij48L2Rpdj4nOwoKCQlodG1sICs9ICc8ZGl2IGlkPSJmYW5jeV93cmFwIj4nOwoKCQlodG1sICs9ICc8ZGl2IGNsYXNzPSJmYW5jeV9sb2FkaW5nIiBpZD0iZmFuY3lfbG9hZGluZyI+PGRpdj48L2Rpdj48L2Rpdj4nOwoKCQlodG1sICs9ICc8ZGl2IGlkPSJmYW5jeV9vdXRlciI+JzsKCgkJaHRtbCArPSAnPGRpdiBpZD0iZmFuY3lfaW5uZXIiPic7CgoJCWh0bWwgKz0gJzxkaXYgaWQ9ImZhbmN5X2Nsb3NlIj48L2Rpdj4nOwoKCQlodG1sICs9ICAnPGRpdiBpZD0iZmFuY3lfYmciPjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX24iPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX25lIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeV9iZyBmYW5jeV9iZ19lIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeV9iZyBmYW5jeV9iZ19zZSI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3lfYmcgZmFuY3lfYmdfcyI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3lfYmcgZmFuY3lfYmdfc3ciPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX3ciPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX253Ij48L2Rpdj48L2Rpdj4nOwoKCQlodG1sICs9ICAnPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBpZD0iZmFuY3lfbGVmdCI+PHNwYW4gY2xhc3M9ImZhbmN5X2ljbyIgaWQ9ImZhbmN5X2xlZnRfaWNvIj48L3NwYW4+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgaWQ9ImZhbmN5X3JpZ2h0Ij48c3BhbiBjbGFzcz0iZmFuY3lfaWNvIiBpZD0iZmFuY3lfcmlnaHRfaWNvIj48L3NwYW4+PC9hPic7CgoJCWh0bWwgKz0gJzxkaXYgaWQ9ImZhbmN5X2NvbnRlbnQiPjwvZGl2Pic7CgoJCWh0bWwgKz0gICc8ZGl2IGlkPSJmYW5jeV90aXRsZSI+PC9kaXY+JzsKCgkJaHRtbCArPSAnPC9kaXY+JzsKCgkJaHRtbCArPSAnPC9kaXY+JzsKCgkJaHRtbCArPSAnPC9kaXY+JzsKCgkJJChodG1sKS5hcHBlbmRUbygiYm9keSIpOwoKCQkkKCc8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPjx0cj48dGQgY2xhc3M9ImZhbmN5X3RpdGxlIiBpZD0iZmFuY3lfdGl0bGVfbGVmdCI+PC90ZD48dGQgY2xhc3M9ImZhbmN5X3RpdGxlIiBpZD0iZmFuY3lfdGl0bGVfbWFpbiI+PGRpdj48L2Rpdj48L3RkPjx0ZCBjbGFzcz0iZmFuY3lfdGl0bGUiIGlkPSJmYW5jeV90aXRsZV9yaWdodCI+PC90ZD48L3RyPjwvdGFibGU+JykuYXBwZW5kVG8oJyNmYW5jeV90aXRsZScpOwoKCQlpZiAoaXNJRSkgewoJCQkkKCIjZmFuY3lfaW5uZXIiKS5wcmVwZW5kKCc8aWZyYW1lIGNsYXNzPSJmYW5jeV9iaWdJZnJhbWUiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4nKTsKCQkJJCgiI2ZhbmN5X2Nsb3NlLCAuZmFuY3lfYmcsIC5mYW5jeV90aXRsZSwgLmZhbmN5X2ljbyIpLmZpeFBORygpOwoJCX0KCX07CgoJJC5mbi5mYW5jeWJveC5kZWZhdWx0cyA9IHsKCQlwYWRkaW5nCQkJCToJMTAsCgkJaW1hZ2VTY2FsZQkJCToJdHJ1ZSwKCQl6b29tT3BhY2l0eQkJCToJZmFsc2UsCgkJem9vbVNwZWVkSW4JCQk6CTAsCgkJem9vbVNwZWVkT3V0CQk6CTAsCgkJem9vbVNwZWVkQ2hhbmdlCQk6CTMwMCwKCQllYXNpbmdJbgkJCToJJ3N3aW5nJywKCQllYXNpbmdPdXQJCQk6CSdzd2luZycsCgkJZWFzaW5nQ2hhbmdlCQk6CSdzd2luZycsCgkJZnJhbWVXaWR0aAkJCToJNDI1LAoJCWZyYW1lSGVpZ2h0CQkJOgkzNTUsCgkJb3ZlcmxheVNob3cJCQk6CXRydWUsCgkJb3ZlcmxheU9wYWNpdHkJCToJMC4zLAoJCWhpZGVPbkNvbnRlbnRDbGljawk6CXRydWUsCgkJY2VudGVyT25TY3JvbGwJCToJdHJ1ZSwKCQlpdGVtQXJyYXkJCQk6CVtdLAoJCWNhbGxiYWNrT25TdGFydAkJOgludWxsLAoJCWNhbGxiYWNrT25TaG93CQk6CW51bGwsCgkJY2FsbGJhY2tPbkNsb3NlCQk6CW51bGwKCX07CgoJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJJC5mbi5mYW5jeWJveC5idWlsZCgpOwoJfSk7Cgp9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/templates/jquery/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/jquery/jquery.easing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEVhc2luZyB2MS4zIC0gaHR0cDovL2dzZ2QuY28udWsvc2FuZGJveC9qcXVlcnkvZWFzaW5nLwogKgogKiBVc2VzIHRoZSBidWlsdCBpbiBlYXNpbmcgY2FwYWJpbGl0aWVzIGFkZGVkIEluIGpRdWVyeSAxLjEKICogdG8gb2ZmZXIgbXVsdGlwbGUgZWFzaW5nIG9wdGlvbnMKICoKICogVEVSTVMgT0YgVVNFIC0galF1ZXJ5IEVhc2luZwogKiAKICogT3BlbiBzb3VyY2UgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLiAKICogCiAqIENvcHlyaWdodCDCqSAyMDA4IEdlb3JnZSBNY0dpbmxleSBTbWl0aAogKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiAKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCiAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICogCiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIAogKiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IAogKiBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAKICogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogKiAKICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UgCiAqIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAqIAogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSAKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiAgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAogKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFCiAqICBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCiAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCiAqICBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCAKICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICoKKi8KCi8vIHQ6IGN1cnJlbnQgdGltZSwgYjogYmVnSW5uSW5nIHZhbHVlLCBjOiBjaGFuZ2UgSW4gdmFsdWUsIGQ6IGR1cmF0aW9uCmpRdWVyeS5lYXNpbmdbJ2pzd2luZyddID0galF1ZXJ5LmVhc2luZ1snc3dpbmcnXTsKCmpRdWVyeS5leHRlbmQoIGpRdWVyeS5lYXNpbmcsCnsKCWRlZjogJ2Vhc2VPdXRRdWFkJywKCXN3aW5nOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCS8vYWxlcnQoalF1ZXJ5LmVhc2luZy5kZWZhdWx0KTsKCQlyZXR1cm4galF1ZXJ5LmVhc2luZ1tqUXVlcnkuZWFzaW5nLmRlZl0oeCwgdCwgYiwgYywgZCk7Cgl9LAoJZWFzZUluUXVhZDogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyoodC89ZCkqdCArIGI7Cgl9LAoJZWFzZU91dFF1YWQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIC1jICoodC89ZCkqKHQtMikgKyBiOwoJfSwKCWVhc2VJbk91dFF1YWQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMip0KnQgKyBiOwoJCXJldHVybiAtYy8yICogKCgtLXQpKih0LTIpIC0gMSkgKyBiOwoJfSwKCWVhc2VJbkN1YmljOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiBjKih0Lz1kKSp0KnQgKyBiOwoJfSwKCWVhc2VPdXRDdWJpYzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyooKHQ9dC9kLTEpKnQqdCArIDEpICsgYjsKCX0sCgllYXNlSW5PdXRDdWJpYzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlpZiAoKHQvPWQvMikgPCAxKSByZXR1cm4gYy8yKnQqdCp0ICsgYjsKCQlyZXR1cm4gYy8yKigodC09MikqdCp0ICsgMikgKyBiOwoJfSwKCWVhc2VJblF1YXJ0OiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiBjKih0Lz1kKSp0KnQqdCArIGI7Cgl9LAoJZWFzZU91dFF1YXJ0OiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiAtYyAqICgodD10L2QtMSkqdCp0KnQgLSAxKSArIGI7Cgl9LAoJZWFzZUluT3V0UXVhcnQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMip0KnQqdCp0ICsgYjsKCQlyZXR1cm4gLWMvMiAqICgodC09MikqdCp0KnQgLSAyKSArIGI7Cgl9LAoJZWFzZUluUXVpbnQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIGMqKHQvPWQpKnQqdCp0KnQgKyBiOwoJfSwKCWVhc2VPdXRRdWludDogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyooKHQ9dC9kLTEpKnQqdCp0KnQgKyAxKSArIGI7Cgl9LAoJZWFzZUluT3V0UXVpbnQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMip0KnQqdCp0KnQgKyBiOwoJCXJldHVybiBjLzIqKCh0LT0yKSp0KnQqdCp0ICsgMikgKyBiOwoJfSwKCWVhc2VJblNpbmU6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIC1jICogTWF0aC5jb3ModC9kICogKE1hdGguUEkvMikpICsgYyArIGI7Cgl9LAoJZWFzZU91dFNpbmU6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIGMgKiBNYXRoLnNpbih0L2QgKiAoTWF0aC5QSS8yKSkgKyBiOwoJfSwKCWVhc2VJbk91dFNpbmU6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIC1jLzIgKiAoTWF0aC5jb3MoTWF0aC5QSSp0L2QpIC0gMSkgKyBiOwoJfSwKCWVhc2VJbkV4cG86IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuICh0PT0wKSA/IGIgOiBjICogTWF0aC5wb3coMiwgMTAgKiAodC9kIC0gMSkpICsgYjsKCX0sCgllYXNlT3V0RXhwbzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gKHQ9PWQpID8gYitjIDogYyAqICgtTWF0aC5wb3coMiwgLTEwICogdC9kKSArIDEpICsgYjsKCX0sCgllYXNlSW5PdXRFeHBvOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCWlmICh0PT0wKSByZXR1cm4gYjsKCQlpZiAodD09ZCkgcmV0dXJuIGIrYzsKCQlpZiAoKHQvPWQvMikgPCAxKSByZXR1cm4gYy8yICogTWF0aC5wb3coMiwgMTAgKiAodCAtIDEpKSArIGI7CgkJcmV0dXJuIGMvMiAqICgtTWF0aC5wb3coMiwgLTEwICogLS10KSArIDIpICsgYjsKCX0sCgllYXNlSW5DaXJjOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiAtYyAqIChNYXRoLnNxcnQoMSAtICh0Lz1kKSp0KSAtIDEpICsgYjsKCX0sCgllYXNlT3V0Q2lyYzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyAqIE1hdGguc3FydCgxIC0gKHQ9dC9kLTEpKnQpICsgYjsKCX0sCgllYXNlSW5PdXRDaXJjOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCWlmICgodC89ZC8yKSA8IDEpIHJldHVybiAtYy8yICogKE1hdGguc3FydCgxIC0gdCp0KSAtIDEpICsgYjsKCQlyZXR1cm4gYy8yICogKE1hdGguc3FydCgxIC0gKHQtPTIpKnQpICsgMSkgKyBiOwoJfSwKCWVhc2VJbkVsYXN0aWM6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJdmFyIHM9MS43MDE1ODt2YXIgcD0wO3ZhciBhPWM7CgkJaWYgKHQ9PTApIHJldHVybiBiOyAgaWYgKCh0Lz1kKT09MSkgcmV0dXJuIGIrYzsgIGlmICghcCkgcD1kKi4zOwoJCWlmIChhIDwgTWF0aC5hYnMoYykpIHsgYT1jOyB2YXIgcz1wLzQ7IH0KCQllbHNlIHZhciBzID0gcC8oMipNYXRoLlBJKSAqIE1hdGguYXNpbiAoYy9hKTsKCQlyZXR1cm4gLShhKk1hdGgucG93KDIsMTAqKHQtPTEpKSAqIE1hdGguc2luKCAodCpkLXMpKigyKk1hdGguUEkpL3AgKSkgKyBiOwoJfSwKCWVhc2VPdXRFbGFzdGljOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXZhciBzPTEuNzAxNTg7dmFyIHA9MDt2YXIgYT1jOwoJCWlmICh0PT0wKSByZXR1cm4gYjsgIGlmICgodC89ZCk9PTEpIHJldHVybiBiK2M7ICBpZiAoIXApIHA9ZCouMzsKCQlpZiAoYSA8IE1hdGguYWJzKGMpKSB7IGE9YzsgdmFyIHM9cC80OyB9CgkJZWxzZSB2YXIgcyA9IHAvKDIqTWF0aC5QSSkgKiBNYXRoLmFzaW4gKGMvYSk7CgkJcmV0dXJuIGEqTWF0aC5wb3coMiwtMTAqdCkgKiBNYXRoLnNpbiggKHQqZC1zKSooMipNYXRoLlBJKS9wICkgKyBjICsgYjsKCX0sCgllYXNlSW5PdXRFbGFzdGljOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXZhciBzPTEuNzAxNTg7dmFyIHA9MDt2YXIgYT1jOwoJCWlmICh0PT0wKSByZXR1cm4gYjsgIGlmICgodC89ZC8yKT09MikgcmV0dXJuIGIrYzsgIGlmICghcCkgcD1kKiguMyoxLjUpOwoJCWlmIChhIDwgTWF0aC5hYnMoYykpIHsgYT1jOyB2YXIgcz1wLzQ7IH0KCQllbHNlIHZhciBzID0gcC8oMipNYXRoLlBJKSAqIE1hdGguYXNpbiAoYy9hKTsKCQlpZiAodCA8IDEpIHJldHVybiAtLjUqKGEqTWF0aC5wb3coMiwxMCoodC09MSkpICogTWF0aC5zaW4oICh0KmQtcykqKDIqTWF0aC5QSSkvcCApKSArIGI7CgkJcmV0dXJuIGEqTWF0aC5wb3coMiwtMTAqKHQtPTEpKSAqIE1hdGguc2luKCAodCpkLXMpKigyKk1hdGguUEkpL3AgKSouNSArIGMgKyBiOwoJfSwKCWVhc2VJbkJhY2s6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkLCBzKSB7CgkJaWYgKHMgPT0gdW5kZWZpbmVkKSBzID0gMS43MDE1ODsKCQlyZXR1cm4gYyoodC89ZCkqdCooKHMrMSkqdCAtIHMpICsgYjsKCX0sCgllYXNlT3V0QmFjazogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQsIHMpIHsKCQlpZiAocyA9PSB1bmRlZmluZWQpIHMgPSAxLjcwMTU4OwoJCXJldHVybiBjKigodD10L2QtMSkqdCooKHMrMSkqdCArIHMpICsgMSkgKyBiOwoJfSwKCWVhc2VJbk91dEJhY2s6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkLCBzKSB7CgkJaWYgKHMgPT0gdW5kZWZpbmVkKSBzID0gMS43MDE1ODsgCgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMioodCp0KigoKHMqPSgxLjUyNSkpKzEpKnQgLSBzKSkgKyBiOwoJCXJldHVybiBjLzIqKCh0LT0yKSp0KigoKHMqPSgxLjUyNSkpKzEpKnQgKyBzKSArIDIpICsgYjsKCX0sCgllYXNlSW5Cb3VuY2U6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIGMgLSBqUXVlcnkuZWFzaW5nLmVhc2VPdXRCb3VuY2UgKHgsIGQtdCwgMCwgYywgZCkgKyBiOwoJfSwKCWVhc2VPdXRCb3VuY2U6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kKSA8ICgxLzIuNzUpKSB7CgkJCXJldHVybiBjKig3LjU2MjUqdCp0KSArIGI7CgkJfSBlbHNlIGlmICh0IDwgKDIvMi43NSkpIHsKCQkJcmV0dXJuIGMqKDcuNTYyNSoodC09KDEuNS8yLjc1KSkqdCArIC43NSkgKyBiOwoJCX0gZWxzZSBpZiAodCA8ICgyLjUvMi43NSkpIHsKCQkJcmV0dXJuIGMqKDcuNTYyNSoodC09KDIuMjUvMi43NSkpKnQgKyAuOTM3NSkgKyBiOwoJCX0gZWxzZSB7CgkJCXJldHVybiBjKig3LjU2MjUqKHQtPSgyLjYyNS8yLjc1KSkqdCArIC45ODQzNzUpICsgYjsKCQl9Cgl9LAoJZWFzZUluT3V0Qm91bmNlOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCWlmICh0IDwgZC8yKSByZXR1cm4galF1ZXJ5LmVhc2luZy5lYXNlSW5Cb3VuY2UgKHgsIHQqMiwgMCwgYywgZCkgKiAuNSArIGI7CgkJcmV0dXJuIGpRdWVyeS5lYXNpbmcuZWFzZU91dEJvdW5jZSAoeCwgdCoyLWQsIDAsIGMsIGQpICogLjUgKyBjKi41ICsgYjsKCX0KfSk7CgovKgogKgogKiBURVJNUyBPRiBVU0UgLSBFQVNJTkcgRVFVQVRJT05TCiAqIAogKiBPcGVuIHNvdXJjZSB1bmRlciB0aGUgQlNEIExpY2Vuc2UuIAogKiAKICogQ29weXJpZ2h0IMKpIDIwMDEgUm9iZXJ0IFBlbm5lcgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiAKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCiAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICogCiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIAogKiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IAogKiBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAKICogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogKiAKICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UgCiAqIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAqIAogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSAKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiAgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAogKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFCiAqICBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCiAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCiAqICBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCAKICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICoKICov]]></data>
	</file>
	<file>
	  <filename>/templates/jquery/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS4zLjIKICogaHR0cDovL2pxdWVyeS5jb20vCiAqCiAqIENvcHlyaWdodCAoYykgMjAwOSBKb2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UKICoKICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKICogUmV2aXNpb246IDYyNDYKICovCihmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4kLG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0vXltePF0qKDwoLnxccykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZuPW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVUeXBlKXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1cm4gdGhpc31pZih0eXBlb2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7RT1vLmNsZWFuKFtHWzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10pO2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNvbnRleHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVybiBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2VsZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1FLmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXkoRSkpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpOnRoaXNbRV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZPYmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24oRSl7dGhpcy5sZW5ndGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1bmN0aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4gdGhpc1swXSYmb1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMsRixvLnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYpe2lmKChFPT0id2lkdGgifHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJjdXJDU1MiKX0sdGV4dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXtyZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChGfHx0aGlzLGZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0UrPXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5vd25lckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhpc1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZpcnN0Q2hpbGR9cmV0dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndyYXBBbGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQoRSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2VydEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmluZChFLHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoby5tYXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6ZnVuY3Rpb24oRyl7dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIgSj10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQoIioiKS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRzIik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtLXVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gRi5ub2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVudE5vZGU7RisrfX0pfSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSksIm5vdCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5ndGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gRj9vLmluQXJyYXkodGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5nIj9vKEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gISFFJiZvLm11bHRpRmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMuaXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYoby5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIpKXt2YXIgST1FLnNlbGVjdGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0dXJuIG51bGx9Zm9yKHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtGXTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1yZXR1cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJldHVybiBnfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0xKXtyZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhpcy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFycmF5KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgTj1vLm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPShvLmluQXJyYXkodGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtpZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0pfSxodG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBlbmQoRSl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgpfSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rpb24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihKLE0sTCl7aWYodGhpc1swXSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9by5jbGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5maXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxsKEsodGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28uZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUoTiwidGFibGUiKSYmby5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihFLEYpe2lmKEYuc3JjKXtvLmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9iYWxFdmFsKEYudGV4dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5vZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3IERhdGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7Sj1hcmd1bWVudHNbMV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9uKEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVudHNbSF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07aWYoSj09PUwpe2NvbnRpbnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5kKEUsS3x8KEwubGVuZ3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJldHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1cm4gb30saXNGdW5jdGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVuY3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgQXJyYXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9PT05JiZFLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGlsZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9kZU5hbWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5hcHBseShHW0VdLEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHkoR1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lmKEsuY2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2YXIgSj1HWzBdO0g8SSYmSy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lmKG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRkOmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYoRS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUrPShFLmNsYXNzTmFtZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4oIiAiKToiIn19LGhhczpmdW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5nKCkuc3BsaXQoL1xzKy8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIgRiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFyIEYgaW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJvdHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhlaWdodDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigpe2lmKCFFKXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7TCs9cGFyc2VGbG9hdChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFyc2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYoSC5vZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2YXIgTCxFPUkuc3R5bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRyKEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9d31pZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIE09cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXtyZXR1cm4gTy50b1VwcGVyQ2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4KT8kL2kudGVzdChMKSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUubGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7TD1FLnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2YXIgSD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0ZUVsZW1lbnQoSFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMpe2lmKHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlwZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rpb24oVSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxzKy8sIiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQiKSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5kZXhPZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8ubWF0Y2goL148KHRoZWFkfHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjx0ciIpJiZbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRleE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJlsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsxXStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkpe3ZhciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikmJiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6W107Zm9yKHZhciBNPU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHkiKSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChOW01dKX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9by5tYWtlQXJyYXkoTC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8ubWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShHW0pdLCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHW0pdKTpHW0pdKX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtKKzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxhdHRyOmZ1bmN0aW9uKEosRyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8uaXNYTUxEb2MoSiksTD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0vaHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtKLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihMKXtpZihHPT0idHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0idGFiSW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7cmV0dXJuIEkmJkkuc3BlY2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKS9pKT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8uYXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciBFPSFvLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJpYnV0ZShHKTtyZXR1cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNpdHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBoYVwoW14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhhKG9wYWNpdHk9IitLKjEwMCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFyc2VGbG9hdChKLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1HLnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2UoKX0pO2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXtyZXR1cm4oRXx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEchPW51bGwpe3ZhciBGPUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNGdW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdbRl19fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0wLEY9SC5sZW5ndGg7RTxGO0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7dmFyIEY9MCxHLEk9SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkhPW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10pIT1udWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2YXIgRj1bXSxFPXt9O3RyeXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT10cnVlO0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5jdGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZighRSE9IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVsbCl7RltGLmxlbmd0aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2goLy4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0sc2FmYXJpOi93ZWJraXQvLnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEvLnRlc3QoQyksbW96aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxwYXJlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9LG5leHQ6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwicHJldmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZyYW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VBcnJheShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8ubWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFyIEk9KEs+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJKTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHtyZW1vdmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRkKHRoaXMsRSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFvLmNsYXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxyZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRoaXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4oKS5yZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0cnVlKSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRhOmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYoRSYmIW8uY2FjaGVbSF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVbSF1bRV07RT0iIjtmb3IoRSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVsZXRlIEZbaF19Y2F0Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgpfX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwiZngiKSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXkoSCkpe0c9by5kYXRhKEYsRSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpmdW5jdGlvbihILEcpe3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIpe0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihFLEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7aWYoRz09PWcpe3ZhciBGPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRoaXMubGVuZ3RoKXtGPW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEoSFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBdLEddKS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6ZnVuY3Rpb24oRSxGKXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXtyZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgRz1vLnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1swXS5jYWxsKHRoaXMpfX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUodGhpcyxFKX0pfX0pOwovKgogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYwLjkuMwogKiAgQ29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVqcy5jb20vCiAqLwooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9kZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmluZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJpZ2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTImJkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBdXT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRpdmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3AoKSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFyZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXthaT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lmKCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUkucmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0iW29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVUeXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2RlVHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixhYyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3IodmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2UoYWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5bXX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtpZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vic3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTticmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZLFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4gSS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJbYWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5wcmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRydWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFmKXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRydWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihhaCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3JldHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJPUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyciXSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVybiBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3ZhciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYmIVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYoKFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFbV109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEsdHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgmJiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5hbWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmlsdGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRjaCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYsVyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3RyaW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJldmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVvZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlkKFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFtZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0sVEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9nLCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtpZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTApKXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJRDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUsVCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJvZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0rKFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgsVSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10pe1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4gWH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNoKFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxzZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1yZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQodHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2FibGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4gVC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRydWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBULnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFkaW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1ULnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1XLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihVLFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBUWzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJuIFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxaLmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZbM107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2goWil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5vZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2FzZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTApe3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUhPT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFyIGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0wJiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRBdHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2RlVHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhVLmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRUUjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1ZdKFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTtyZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgtVS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtpZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEkubWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpfWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVjdCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgubGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhbVl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFyIEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJjZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1lbHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVjdE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJIVE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtULmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWKSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9uKFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3ZhciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9yKHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31yZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlwZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcpe1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgucXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1ULm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlvdXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1ddO2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1VdO3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVha31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVOYW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxhYyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkpe1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUhPT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQub3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIgVz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVbVF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVybiBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3RvcnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2VsZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxULm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3JldHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4gRi5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcmJlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtvLm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5vZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5wdXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlvbihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJbnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxvLmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJlZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgiLiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05dO2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwoSSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVjaWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5hZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxsfSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYoSD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGluIEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4iKTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigiLipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtmb3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2FsbChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxvLmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZlbnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNlKX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5kbGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIgTD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3ZhciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChvLkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xpY2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlzLmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxILm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRhKEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0kucmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRjaChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3ZhciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEssRix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4iKTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIoXnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEodGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVmYXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtleSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYoSFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVuZ3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgudGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxhdGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUmJkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkkuc2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYmKChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNoPUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1ILmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1FfHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1GLmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpCLHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUsRil7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtFKyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5jdGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUmJkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlwZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUucmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9wYWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5jdGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJlbnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIsbW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxFKXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5ldmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxGKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5wcmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlzWzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGljayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dnbGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNSZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhpc30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNlbGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixFKTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlzLnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlzfX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxHPXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEksSil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtpZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBvLmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYsZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNlKXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIsRixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5kKHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkpe28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24oKXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJufXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFsc2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxsZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwudG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5lYWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1vdXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3VzZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5zcGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJpbmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBGPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVhZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5jc3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RDaGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgib25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5zdHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19sb2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXtyZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNsaWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5jdGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShKKTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlmaWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEvaS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYubmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWpheFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQiLnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJpbmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8uZ2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtIPUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUse30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIpe00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIpe2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtNLmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5kYXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2goRil8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRhKyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIpO00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlwZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNlJiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkvLCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVjKE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1sb2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFyc2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4gZ312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0uYXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRyeXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBlKX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8ubGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVmb3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lmKEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYoSi5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNoKFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5sYXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1MKCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihKJiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMpe28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYoTS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFuZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3RhdHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihHLEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcuc3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhNTDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJyb3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJLEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rpb24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28uZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBpbiBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYiKS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xpY2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNle2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlzcGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxzZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtpZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVybiBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcykuaXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixILEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRlbiIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwpe3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYmdGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMuc3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUiP0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1dPSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwxKS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMToxKSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5lbGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRlcXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVwOnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oRyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNGdW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZIfTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNvbXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVxdWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlvbihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZsb2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNlRmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxILEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3ZhciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYoRigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8udGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0sMSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0uc3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJhdGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRydWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5oaWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1KL3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5nfHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtvLmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lmKEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnByb3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24oKXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5ib2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNsaWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1vZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxsZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zmc2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFyZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNjcm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYoRS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRUb3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNjcm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRNTD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RDaGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJvcmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJLm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNldFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVDaGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIgRz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3QoR1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdpblRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lkdGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNbMF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVzdChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJlbnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3JvbGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhPZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5ib2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcpe3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgpO28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixmYWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpc1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1lbnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNldCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5ndGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpLKyJweCIpfX0pfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/css/lightbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I2xpZ2h0Ym94ewlwb3NpdGlvbjogYWJzb2x1dGU7CWxlZnQ6IDA7IHdpZHRoOiAxMDAlOyB6LWluZGV4OiAxMDA7IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDA7fQojbGlnaHRib3ggaW1neyB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvO30KI2xpZ2h0Ym94IGEgaW1neyBib3JkZXI6IG5vbmU7IH0KCiNvdXRlckltYWdlQ29udGFpbmVyeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsgbWFyZ2luOiAwIGF1dG87IH0KI2ltYWdlQ29udGFpbmVyeyBwYWRkaW5nOiAxMHB4OyB9CgojbG9hZGluZ3sgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQwJTsgbGVmdDogMCU7IGhlaWdodDogMjUlOyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDsgfQojaG92ZXJOYXZ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB6LWluZGV4OiAxMDsgfQojaW1hZ2VDb250YWluZXI+I2hvdmVyTmF2eyBsZWZ0OiAwO30KI2hvdmVyTmF2IGF7IG91dGxpbmU6IG5vbmU7fQoKI3ByZXZMaW5rLCAjbmV4dExpbmt7IHdpZHRoOiA0OSU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxBQUFBKTsgLyogVHJpY2sgSUUgaW50byBzaG93aW5nIGhvdmVyICovIGRpc3BsYXk6IGJsb2NrOyB9CiNwcmV2TGluayB7IGxlZnQ6IDA7IGZsb2F0OiBsZWZ0O30KI25leHRMaW5rIHsgcmlnaHQ6IDA7IGZsb2F0OiByaWdodDt9CiNwcmV2TGluazpob3ZlciwgI3ByZXZMaW5rOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3ByZXZsYWJlbC5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQojbmV4dExpbms6aG92ZXIsICNuZXh0TGluazp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9uZXh0bGFiZWwuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9CgojaW1hZ2VEYXRhQ29udGFpbmVyeyBmb250OiAxMHB4IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgbWFyZ2luOiAwIGF1dG87IGxpbmUtaGVpZ2h0OiAxLjRlbTsgb3ZlcmZsb3c6IGF1dG87IHdpZHRoOiAxMDAlCTsgfQoKI2ltYWdlRGF0YXsJcGFkZGluZzowIDEwcHg7IGNvbG9yOiAjNjY2OyB9CiNpbWFnZURhdGEgI2ltYWdlRGV0YWlsc3sgd2lkdGg6IDcwJTsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGxlZnQ7IH0JCiNpbWFnZURhdGEgI2NhcHRpb257IGZvbnQtd2VpZ2h0OiBib2xkOwl9CiNpbWFnZURhdGEgI251bWJlckRpc3BsYXl7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogbGVmdDsgcGFkZGluZy1ib3R0b206IDEuMGVtOwl9CQkJCiNpbWFnZURhdGEgI2JvdHRvbU5hdkNsb3NleyB3aWR0aDogNjZweDsgZmxvYXQ6IHJpZ2h0OyAgcGFkZGluZy1ib3R0b206IDAuN2VtOyBvdXRsaW5lOiBub25lO30JIAkKCiNvdmVybGF5eyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogOTA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/images/bullet.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhBgAGAIAAADs7O1paWiH5BAAAAAAALAAAAAAGAAYAAAIIRB6Gy816QAEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/close.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhGgAaALMJAHt7e8jIyJycnPT09JiYmL29vWVlZd7e3lpaWv///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAaABoAAASLMEl5pr0YH1PzDZxmIEjnJQUZThtJmljqrsnovpl8r8HtwigfbqKbmYq/mDCEHCp9AIKwdApOd8DcVZX1NEmA7kmwHFQxA5tPcLYcANtCO9HaIuTV+k6IzxymAgNwPn1uU3h6LoV0h25qiiyNF39CAXSPJIuRPgYUj5qGRiw2oJNckwaWcxticywWEQA7]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/closelabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQgAWAOYAAMDAwMHBwZ2dnVlZWdLS0oODg6+vr/X19eTk5FBQULi4uIyMjJSUlFRUVFZWVtzc3FJSUsnJyVFRUVhYWFVVVezs7FNTU/b29v39/erq6vr6+qampldXV6KiokxMTE9PT2ZmZvf3993d3czMzGBgYHt7e6Ghofz8/PDw8N7e3mxsbLW1tfv7+5WVlc3NzcrKynh4eOvr60tLS+Dg4F9fX7m5ud/f37S0tIaGhnBwcGNjY+Xl5ZKSkoiIiKmpqW5ubpeXl29vb9XV1Y6Oju3t7WVlZXZ2dpiYmG1tbXx8fO/v7+fn57GxsbOzs/Hx8Xl5eVpaWmRkZE1NTXNzc2dnZ5aWloeHh+Pj405OTmlpadvb23p6ev////7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABCABYAAAf/gFyCg4SFhoeIiYqLjI2Oj4xdkpOUlZaXl5BcJ42Ynp+YkZJcLEdCXJZcIwIaqKCvoKJdIUAeUSKuXYIuNB5VF5QVWgiwXQjDlwdaWrqLo00yAxZFWq6qJA0DHj6SBAtb4AsEXQBbzJUABeBbBQCUCusFL1wB6+uDoxlbHwMJVDaCRtCwMAALDhRdImxZEEFLhAIGyJmrZGALAwJaCDDYElGigYwbLtDjGKBkAHz5SiQY0EDFDBfYBkixEgJVgQIHJuWUeE4Sgi0CKgmYOJSSoHoPDhmtUIIfBSTYJiToIbKLli3uLJXrybPSVQVdKirYeXRLUkOVuMRIAmGAAw4D/yAMqSlp6yW7k4paAtqlgrotGxCUbSGgsAKURlEYoTBgQoMOrSbhRTcx75ZLfLscAPDN7EjChhFP4qIkCGOWDHRNIoD1bmVJ8MZRYp1VMseRZwulnTElGwUHcU1gcHXg5k5jOSdbzWyZmOZJQHErHZ1ChQRpWUA4mAChw3BJChk6LLBgM0cA6JlVvJhxI9iw7DdsOVnPgMkARARRB3E9AYwrLziwnQTCueJNPOOUY09W6ayzQG0NgnPYSPZ4Zo0IIEAARQIlZCBIDQJOIEEHJ1ByjHOvnHjJMjlFwsUDOqzkXwyoCLKCBBxwIMMNxfSYijNcOMEABB9s4aFRK1iQQDAOIvjo5CjO6MICD09UkAuUTPyww5VPwiILFxpUdQkGS3DZ5SuyNOOJfmf6mGaPgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/donate-button.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhawAVANUAAMDbWrfWTbvYU7nXUL7aV8LcXdvrdGFuLmNvMmBtLd/tg1xrKGJvMF1sKdfpY1hpImRwM+bxpFtrJujyq9zreOXwn2hyOdjpaF9tK+PvltfoYFdoIGlyOtnpa+LvkmdxN9boX+Dth+HujFdpIVpqJdrqb+fxp93sfVlpI2VwNeTwm2ZxNsffZMXeYcngZ8vharXVSs3jbc/jb9Hkcq3QP6/SQrHTRa7RQLPTR+nyrlZoHwAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABrABUAAAb/wJxwSCwaj8ikcslsOnOcyWxKrVqv2Kx2y+16vxaTbEwum8/otHrNbrvfn0hsTq/b7/i8fs/v+/8rFS+DhIWGh4iJiouMjY6PKSouk5SVlpeYmZqbnJ2enxAZLKOkO6alp6SoqqytrqOmsa+zrTuwtrS5owgeLb6/scCmv8TDxMfIyS3GxsrOvs3P0sQMIgXX2LE7BdrXsd7b3OHd2ODh2ePppubr5uLr7eTa5+XlByEA+fraAPw7+ab6/QsoEOC/fQb1FSxIMGDDgQkfLnR4kKBChQkUENjI0RSBHR8/ghTpUVvHeRw3mjypEqRHkTBjmnxZcmTNlilzEsBwQoDP8J+mBMQSuoOo0Xk+g/5cGlRp0qJHoTaVWnSq0ahPrzpd+rMBhQFgw5oaEIvsDrNox45Fyxas2rNi4b51e3bt3Llp5dbVG7Zv2AUGAggebErwDsOHA2hTnLgwY8eDHydGHItwZcaIKTc+7Hgx5s+RI0soAaO06dOoU6tezbq169ewY5PogKO27du4c+vezbu379/Ag6O4YKO48ePIkytfzry58+fQoz9wUKO69evYs2vfzr279+/gw4/QcKO8+fPo06tfz769+/fw428AQaO+/fv48+vfz7+///8ABqjDgAQWaOCBCCao4IIMNujggwQGAQA7]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/download-icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgAWAPfFAGtra1NTU1JSUmtra46Ojo+Pj8nJyZCQkLi4uLS0tJGRkZOTk4yMjFNTU5SUlI+Pj6GhoYSEhD4+PouLi8LCwoSEhMbGxpmZmVJSUpGRkYWFhZOTk8TExK+vr5+fn66urpiYmFNTU4+Pj5GRkUpKSqGhoYyMjHZ2dr29vZCQkKurq6SkpIODg7q6uqCgoIWFhWlpacjIyI2NjZCQkJCQkLCwsLCwsGpqaomJiampqYqKisPDw2tra4mJiZ6enszMzGhoaKurq46OjqysrKWlpaysrJqamqmpqaioqLm5uZmZmZycnJubm6CgoI6Ojo2NjZKSkpSUlL+/v66urr29vZKSkq+vr8rKyqenp5aWlre3t7q6upaWlqenp7i4uIuLi3Z2dr6+vpGRkYyMjJKSkpGRkampqaSkpIeHh6ampp6enru7u5OTk7+/v7a2tr6+vpKSkoyMjIaGhlFRUbW1tZKSkvn5+aioqLi4uJOTk5CQkImJiYeHh8HBwaysrJKSkp2dnaOjo7a2tn19fZqamqGhoZqamo6OjoiIiJeXl5SUlIaGhoqKik9PT5GRkaGhoYeHh46Ojvz8/IuLi5+fn7Ozs5CQkIiIiIGBgaCgoMXFxaqqqoyMjG5uboaGhomJiaqqqqGhoZiYmKOjo5aWlnp6epGRkbGxsby8vGtra2lpaXd3d8fHx5SUlImJiaKiora2tqenp6SkpJWVlcrKyrS0tKurq3R0dI2NjZ2dnaampqenp5mZmVJSUmtra8LCwmtra97e3mxsbFJSUv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMUALAAAAAAWABYAAAj/AIsJHEiwoMFijYQpXKgQmMOHEB2SABbjhx9btkCZuXNnly4ismSNehUq1BstDmmNisgyYq41woCxCvWrps2bOH8ZwhNTUyZiQIMKHUqMF6yYO9QAtROsqdOnQUXVitknF9GrQUmditmGCVass6zEpGIIqKSnaIMFzeMn5hZeX6/+MRMTT6K4RE3tigmLVKu/ef78MUXYkmERIiJFEiFLYaVWeVYNm0y5MhhcuDhFCqXQRh5Tw0JZqYWHyi8LtDhMGcZp0iROlBRO+WNpGJ0klA38QgXLyjBXjBhNWqLQliURw9pwoLyl1pRdoX67uuTKkEJQiYcZsEDZjy5KvPIMXPN0CRIkUgp3ReI07A0eympEmZr0YtgLT/dbCVNlKhN7G2ZQZokrLAwCxjAVJFiBKcJIoAoulAyTSXiRQIJJKbd0AkwIlghmCifCFCMBEBuGYOKJlYVwg0MKzREQADs=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/image-1.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/nextlabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAPeDAP39/enp6UdHR6mpqY+Pj+bm5tDQ0MLCwuzs7O/v76qqqvHx8fb29vr6+v7+/lxcXPf39+3t7WdnZ2VlZV9fX0lJSc3Nze7u7ltbW/v7+7y8vKampurq6qenp3BwcPDw8FpaWoCAgLGxsWNjY2BgYPn5+ejo6ExMTFRUVE5OTqOjo9LS0mJiYufn52hoaI6OjldXV2FhYVFRUaioqNXV1d/f38HBwfz8/Pj4+JGRkbS0tF1dXd7e3oODg3p6eoGBgfLy8mZmZoKCgs/Pz1JSUllZWaurq4WFhW1tbWRkZOLi4srKylZWVqSkpLW1tbKysre3t0VFRV5eXqKiovPz88vLy8bGxmtra3V1dcjIyJqamlVVVXh4eIiIiEhISHd3d9jY2I2Njbq6upmZmeDg4G5ubktLS9bW1tzc3FNTU6WlpWpqap2dnU9PT66urr6+voyMjE1NTYaGhuTk5OHh4dfX16ysrOvr68PDw0JCQlhYWH5+fnNzc3l5eZubm+Pj42xsbPT09P///zMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAIMALAAAAAA/ACAAAAj/AAcNEkSwoMGDCBMqXMgQ4cCGECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKEECsDLDQsEbNkQICuREwYCbHZTQaOKSIAIFeOaoGGDEjYIOOiB4BECgQgweBBvseSDIBAsUE0aM2GGhxRUMZAQ5IHCiigEYIzAQIUHiy4KlOVCkOIJDUIMQUgQFeNAjggkTLZQuiQPHQZYUWhyUKMCBTYUVHDgAWErARZg2OgRl+EFBL4gXCcekeeKhTAKDRgQECMl0TQEuRf4I4qw3BhIFalTYYUAQQh8ZIFYcHCCgAGsCEnDU2SIHgpDOAZJg4OMBSYi3ggD08LKjxvDixyUAwXEw5YSCLiT0PjiSIAICBJMFiSCygYUPIAaJG1eJ/IMgBoA8MEEQnuWAEA96hCAIFBV0kB94/EngnyBDMCGDC3pRgIUGHIpBRwlCwICGXT6gAEZB+rH2wgQTCuJHBQQGMMEJAtSYxwYimLFBQTQU4QF2M0SxH0hUJBCfZgicBkB7FzQZAQML3HGkIAsEkAFBDCBwQ0pcVtTAEAaEKaYBFnjXJUQl2HDAmmwe8MYZZ8Yp55x01mnnnQo9hCdEAu0JUUAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/prevlabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAPeJANzc3P39/fb29rq6utra2v7+/ltbW8HBwfX19fz8/F5eXk1NTV9fX/r6+uDg4NXV1djY2ICAgGBgYFFRUVRUVEpKSt3d3eLi4tnZ2cDAwOPj4/n5+cLCwsPDw/Dw8PLy8ru7u6CgoN/f34ODg0JCQktLS11dXVpaWnJycmpqar6+vpCQkJSUlMzMzPj4+KSkpFJSUmVlZcbGxsTExGxsbIGBgba2tuXl5WNjY3BwcHZ2dmZmZufn5+vr687OztfX18rKysnJyejo6FxcXFBQUKGhoY2NjZubm3h4eHt7e5iYmN7e3tPT00BAQLi4uEdHR39/f3p6evPz89bW1qenp+bm5k9PT3d3d2RkZEhISHl5eby8vPT09HR0dG9vb62traOjo/v7+66urr+/v25ubmFhYWlpadTU1I6OjrW1tb29vaKiourq6p2dnbm5uVVVVZqamqampvHx8ff396qqqtDQ0IyMjMjIyKioqKurq2JiYoaGhklJSVhYWLOzs+Hh4UFBQXFxcc/Pz8vLy3Nzc+/v71dXV+7u7v///zMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAIkALAAAAAA/ACAAAAj/ABEJHEiwoMGDCBMqNJgo0cKHECM+dCixosWLGDNq3Mixo8ePIEOKHEmypMmTKFNubOBjTAYOU1wIJJAhg4oWQgR+6HCg5wEOPAbJKDBwQ5A7IhHUmMCgaRIHiIrAUKCgTIw8iCwYMGTgxAkFddBMADCQgAkjIgVA8SLgQ5oSdhKsMQBgg4UcfX5osLJCBIS/BQ4sCDEQTwUfaSMQSoCowAkdUl4ouCEwDhEOVRZQKeghBQ0EiBBcCUQ0pIAIOTwgsJHFSAAwBrZgUINDgoMLFEaocOOkA2M4FIAgYlIBxEgBI4iYGCIBCQZEL2DEGEIBxQxEAAyYMLMDx4gGiDAszVCCSIkEHsdr7Ogw48ccgUUMAPlSYoBAABNYaBCx5ELpJGQ4gAULjCXWhUEhMNBDAjro8QF2C9BxkAwL7CGBICSdhgJ4BIWgwAWIgFBCG1lNsMIDKJ5xiECF0FBBFAFkqEUKHA50xBsiIMIFEnwE8QcFT5AgZBN+CFTAEYCIUVIAGjhQ2kBsACATIj08IMQGABCgpZYeDCQHBKCpJOZFNxAAwJlonhnjmA+1YMMAcMY5AAhhsPlQAQHkqaeedvbp55+ABiqonxQNulBDAQEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/thumb-1.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAQQAA/+4AJkFkb2JlAGTAAAAAAQMAFQQDBgoNAAADewAABWEAAAfcAAALOP/bAIQABQQEBAQEBQQEBQcFBAUHCQYFBQYJCggICQgICg0KCwsLCwoNDAwMDQwMDA8PEREPDxcWFhYXGRkZGRkZGRkZGQEGBgYKCQoTDQ0TFhEOERYZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZ/8IAEQgAKABkAwERAAIRAQMRAf/EAM0AAAIDAAMBAAAAAAAAAAAAAAQFAgMGAAEHCAEAAwEBAQEAAAAAAAAAAAAAAQIDBAAFBhAAAQMDAwQDAQAAAAAAAAAAAQACAxEEBRAhEiAwMRQiExUyEQACAAMFBAULAwUAAAAAAAABAgARAyExQVESYXEiBIGRMlITEPChscHRQmJyIxQzUwWCkmMkNBIAAQQDAAAAAAAAAAAAAAAAEQAQMEAgYGETAQACAgEEAQQDAQEBAAAAAAEAESExQRBRYXGBkaGxwSDw0eEw8f/aAAwDAQACEQMRAAABafOQso7POCbNzY2dyJESOm/OGe9Cgkl0OXotzNOnASYuPSrkqq98pUF5HqyXcWWZiu66pHPdeal7llsotjJTc34EIqbKnC6zsPPB2lwHPmO8+v4+aqRAOpIjoupNOFsBdGXlLXwr21899A5HR30t5nSTl8lPAJZongnOFnHa+Y2X2BB6tfOtnSHf/9oACAEBAAEFAhG55itnsudlG3mriYW8OKhdDjJxvG7lG+nC/i9yws8bY2iDZZF60yB4MBW5QbxbmazRPoj8wxxAyOQdG+W2+LWxMJlK+19WglcHkxR8SecM7Hx3GY+4vUVvLR0T424936OduJDxBDmSTMYz9yb3rdtH1XuWsUj2CRtliqJkUMKdJRZ+8c2LH2TcfbzO4ttautMxkhcvTU6qtWNa8lB9FyJUs8cbbKP2ppjxF5K2G1yd/wCtjlRf/9oACAECAAEFAkXUVU1qClNXMW4XlMPFPmqt1xROgFdBtoNlUoeAUBqASgxAURNC7+FQlBhUmzWeUF9e3Gmrkd1QDRqe+pjR8sbTocemd2kQqWN30//aAAgBAwABBQLtV0p0nuHop2qanunq/9oACAECAgY/AkKBwMoh5QDl/wD/2gAIAQMCBj8C0H//2gAIAQEBBj8CIW8SYkw1cvpHheCii+0zZjldKNsTPZFg2xUrns0UNT+27rMIz21eaJr1P67vRHSbvZCVUsFRQ9nzCcWsV41kRnDj43bUhbAh9PqjV/0V7tVQcPQvviaqSInIRLvWxbG0wFxNkctyCT1c/WF37VO8+2FVeyCABhIQCJTBa/KPD0gU1GlAvDu6opcqlHxeY5niGk6JW6FlLpjwNSU17HCJBbMBBks2718bBnF/RAAtN8WCVturKNWMVdDHC/dAcumrl+VKpRnJlcm+2+a5QbeD4fPOLKZgvU4KajjYnC+PypSo0uJR8o4V98ORlrltW6FqLwo6hlOxhOGq1DopUxqmcBnvOEePI/i9nwPlz+rGcOxsnYNwi2KdJ6qrUf8ATU4mJElSLmEVnqsrVKtQu3MKtsms0LPCPtIBmcevyDlEJavX7UsF7o2sY/zuA1ZtuXRDt3EY9SxymLGil+QFg3R+PQM+XpmZf9x892Xkl1QIr1tOqoT4Qb5Vw6TACmVs23ZRL0ZR6oZy8lSZLfTe3RhD/wAnVH6i/wCqmCjVo6xB87or1Khl9tkXaziQjlv4+kfv1KFM8w3dQrYm84+X/9oACAEBAwE/Ic1iYkUlP1lOh5Lq4hYV3iAHG3LLyWSnumf5EaGin8EvZQS7Vy+Kxr6cPExr6sko7Q5ho/aBZHygyxZeWrSIjTa7GSc0ZaguGBRA3uywKxdvidoAEKK/FT/tP6RgQhe6UIUYiP3SsAXgCKX2H7ZqQppkqfgxBqUO0F/iVDpJ2FJ9OYbKJhgVhZlKaloj007oOB7rKg1NFc8SXqmLy75mTIcrJjbHGwVB7m3vX0+vXG4bY4kN4AbA7uMvaFyrUX3lMy2hkJhXnN5mX6arIoY3bvQw+c87kqVjRjlROpO5Vr77Qe7REoOTj1FqoKrgafCsFsbw9xL/AJY/w4GKIPmmFltH2hzwJ95F33l5/g1GuAwXj/RYivsmRQhn/wAM4lzJPt7E5OYGFlKrWW6Vxfmpfi7nZbysypvNX/exMSQwtbVB4D4s7xyOfVRYfFpaZeA9z+oTEuT6CzhVb4J+5VUerQ6c/nFh33XxD8NULGtD2sWozgQEq/PwWUAFUY7EadYFod3vBBG2dU+amPKo1LFmVtNnYn1bg23bn1l/kPwELlcj638MwlHJpAe4Dnw99NJ//9oACAECAwE/ISUgRtLC2HMvOxib1GyA+ktR9MEylpQS4jqJUdHs6L5QbeoLSxLYJ18hEXOIQxGk8PL07boPlOsFxKYcwBoiSuZRlq8CGh07p6omxN3ubzvosucHErMvoZlBWMrZal3x1//aAAgBAwMBPyGr6h04nPW+iui/4noMv+VQIkZdy5UtDcv+FV1S+gOjqEIf+W0YH8P/2gAMAwEAAhEDEQAAEFckSXKJnoAdw2/dfUA2f97Rv5BH2dQvBN//2gAIAQEDAT8QtywQCoLnIuiEkNJoE1WgstnaPkXkWV9qx2DJDdHL4O0KY5gSC8VnwhvZQIUNpgR7DEMW5HAl/QewhlZxjGko7FLZfkCkvvMAgAGVjvkEFdymFS+T3gK+vcBTdQsqdhaoFc9W3GAFoDRM+hXv9a/KOxhKhMiqacUalY5NWL12ItLQA7VwBDY5KqwF/PePct2LLHwHFd3FzglNQUg9gBFQE4A4wcm+Woxyo7oDDgmWIX9J1ykysaXTvs9yDR7yTBd33tYmUqCgzirx9CBUMj5xy1ewTmngtYXx9uzmocDrW1A6B4tlWBA6I8KT2EQZZpllujWDEDIWWXKqu9Bdr3qIVWEMlSWJq2GWmEQILeVlZyaiEGogEqqg2jA/cC3UBZtCVfwjorW2XoHbL8qxylaYFIy4QXQ6XDHqw6cxXsRmQMqaRLaa76fPipu35T+w9EOtAXxYWjNWnbEIRRVHhM2XzERRA8V84E0F5XVwU9klpdEsO1TDyIxcSXqI5c6GKWQXLSAs6Cq2FvUGyyKDmrq/Zju6JvePhNuFtFy8MrBd8ywHFuGnltmEjoGbj7yzpZ1KEYd572d4Tv4PCGEP81nkC5UR4LtY4r3qPB26/Cyv2h3Z7D1BUSHZC9QsijCVlhbSaLzRouoV98loTbWvEBy0TM954mDmTcg8ggrMWgblVEYYoLKXW7advL7qrfgS4yEsM1zV34biIkENUVBxDazDI54Jf23P/9oACAECAwE/EDf0nMgbX9fmXLdsIsxwf7LwTwAp8f8AYh82I0Dxj6R4rRtfxByaCYP9yBlBZhgmcxythAa59SgYrtPD3Hvj7ymcXsb/AF8RpFVrs2+39S+AL7Yo1iZq/wBucZnvBXHHQvAxRrCUgTNHtHQB+1jzLyVxFFiz+I11EDyQftiunDL4ioNz9k/vE1Q5iSwdhDtgpXQqu/8A2YAQLgDLRHR9B/e8N+4g1d35lfkfbx1A/SIsEOUETFQqANxCwd3vN3zEMcNzyifdvpc//9oACAEDAwE/EBrEwS5dmMYuK7R1c7otgmXmBUGVbAqLExAhqKbjY6AGorLgXBrAJhE1MUwbxPFBYm3QJUAKJuKGJUgkqCa6UoaLgtmn8Cc3NwOpWHiZoYK6XP/Z]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiINCiAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuIj4NCjxoZWFkPg0KCQ0KCTx0aXRsZT5MaWdodGJveCBKUyB2Mi4wIHwgVGVzdCBQYWdlPC90aXRsZT4NCg0KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2xpZ2h0Ym94LmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+DQoJDQoJPHNjcmlwdCBzcmM9ImpzL3Byb3RvdHlwZS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0ianMvc2NyaXB0YWN1bG91cy5qcz9sb2FkPWVmZmVjdHMsYnVpbGRlciIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0ianMvbGlnaHRib3guanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQoNCgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCQlib2R5eyBjb2xvcjogIzMzMzsgZm9udDogMTNweCAnTHVjaWRhIEdyYW5kZScsIFZlcmRhbmEsIHNhbnMtc2VyaWY7CX0NCgk8L3N0eWxlPg0KDQo8L2hlYWQ+DQo8Ym9keT4NCg0KDQo8aDE+PGEgaHJlZj0iaHR0cDovL3d3dy5sb2tlc2hkaGFrYXIuY29tL3Byb2plY3RzL2xpZ2h0Ym94Mi8iPkxpZ2h0Ym94IEpTIDxlbT52Mi4wNDwvZW0+PC9hPjwvaDE+DQo8cD48YSBocmVmPSJodHRwOi8vd3d3Lmxva2VzaGRoYWthci5jb20iPmJ5IExva2VzaCBEaGFrYXI8L2E+PC9wPg0KDQo8aDI+RXhhbXBsZTwvaDI+DQoNCjxhIGhyZWY9ImltYWdlcy9pbWFnZS0xLmpwZyIgcmVsPSJsaWdodGJveCI+PGltZyBzcmM9ImltYWdlcy90aHVtYi0xLmpwZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI0MCIgYWx0PSIiIC8+PC9hPg0KDQoNCg0KDQo8aDI+SG93IHRvIFVzZTo8L2gyPg0KPGgzPlBhcnQgMSAtIFNldHVwPC9oMz4NCjxvbD4NCjxsaT5MaWdodGJveCB2Mi4wIHVzZXMgdGhlIFByb3RvdHlwZSBGcmFtZXdvcmsgYW5kIFNjcmlwdGFjdWxvdXMgRWZmZWN0cyBMaWJyYXJ5LiBZb3Ugd2lsbCBuZWVkIHRvIGluY2x1ZGUgdGhlc2UgdGhyZWUgSmF2YXNjcmlwdCBmaWxlcyBpbiB5b3VyIGhlYWRlci4NCjxwcmU+PGNvZGU+Jmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyBzcmM9JnF1b3Q7anMvcHJvdG90eXBlLmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0Ow0KJmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyBzcmM9JnF1b3Q7anMvc2NyaXB0YWN1bG91cy5qcz9sb2FkPWVmZmVjdHMsYnVpbGRlciZxdW90OyZndDsmbHQ7L3NjcmlwdCZndDsNCiZsdDtzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDsgc3JjPSZxdW90O2pzL2xpZ2h0Ym94LmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0Ow0KPC9jb2RlPjwvcHJlPg0KPC9saT4NCjxsaT5JbmNsdWRlIHRoZSBMaWdodGJveCBDU1MgZmlsZSAob3IgYXBwZW5kIHlvdXIgYWN0aXZlIHN0eWxlc2hlZXQgd2l0aCB0aGUgTGlnaHRib3ggc3R5bGVzKS4NCjxwcmU+PGNvZGU+Jmx0O2xpbmsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsgaHJlZj0mcXVvdDtjc3MvbGlnaHRib3guY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7IC8mZ3Q7DQo8L2NvZGU+PC9wcmU+DQo8L2xpPg0KPGxpPkNoZWNrIHRoZSBDU1MgYW5kIG1ha2Ugc3VyZSB0aGUgcmVmZXJlbmNlZCA8Y29kZT5wcmV2bGFiZWwuZ2lmPC9jb2RlPiBhbmQgPGNvZGU+bmV4dGxhYmVsLmdpZjwvY29kZT4gZmlsZXMgYXJlIGluIHRoZSByaWdodCBsb2NhdGlvbi4gQWxzbywgbWFrZSBzdXJlIHRoZSA8Y29kZT5sb2FkaW5nLmdpZjwvY29kZT4gYW5kIDxjb2RlPmNsb3NlbGFiZWwuZ2lmPC9jb2RlPiBmaWxlcyBhcyByZWZlcmVuY2VkIG5lYXIgdGhlIHRvcCBvZiB0aGUgPGNvZGU+bGlnaHRib3guanM8L2NvZGU+IGZpbGUgYXJlIGluIHRoZSByaWdodCBsb2NhdGlvbi48L2xpPg0KPC9vbD4NCjxoMz5QYXJ0IDIgLSBBY3RpdmF0ZTwvaDM+DQo8b2w+DQo8bGk+QWRkIGEgPGNvZGU+cmVsPSJsaWdodGJveCI8L2NvZGU+IGF0dHJpYnV0ZSB0byBhbnkgbGluayB0YWcgdG8gYWN0aXZhdGUgdGhlIGxpZ2h0Ym94LiBGb3IgZXhhbXBsZToNCjxwcmU+PGNvZGU+Jmx0O2EgaHJlZj0mcXVvdDtpbWFnZXMvaW1hZ2UtMS5qcGcmcXVvdDsgcmVsPSZxdW90O2xpZ2h0Ym94JnF1b3Q7IHRpdGxlPSZxdW90O215IGNhcHRpb24mcXVvdDsmZ3Q7aW1hZ2UgIzEmbHQ7L2EmZ3Q7DQo8L2NvZGU+PC9wcmU+DQo8ZW0+T3B0aW9uYWw6IDwvZW0+VXNlIHRoZSA8Y29kZT50aXRsZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSB3YW50IHRvIHNob3cgYSBjYXB0aW9uLgkJPC9saT4NCjxsaT5JZiB5b3UgaGF2ZSBhIHNldCBvZiByZWxhdGVkIGltYWdlcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdyb3VwLCBmb2xsb3cgc3RlcCBvbmUgYnV0IGFkZGl0aW9uYWxseSBpbmNsdWRlIGEgZ3JvdXAgbmFtZSBiZXR3ZWVuIHNxdWFyZSBicmFja2V0cyBpbiB0aGUgcmVsIGF0dHJpYnV0ZS4gRm9yIGV4YW1wbGU6IA0KPHByZT48Y29kZT4mbHQ7YSBocmVmPSZxdW90O2ltYWdlcy9pbWFnZS0xLmpwZyZxdW90OyByZWw9JnF1b3Q7bGlnaHRib3hbcm9hZHRyaXBdJnF1b3Q7Jmd0O2ltYWdlICMxJmx0Oy9hJmd0Ow0KJmx0O2EgaHJlZj0mcXVvdDtpbWFnZXMvaW1hZ2UtMi5qcGcmcXVvdDsgcmVsPSZxdW90O2xpZ2h0Ym94W3JvYWR0cmlwXSZxdW90OyZndDtpbWFnZSAjMiZsdDsvYSZndDsNCiZsdDthIGhyZWY9JnF1b3Q7aW1hZ2VzL2ltYWdlLTMuanBnJnF1b3Q7IHJlbD0mcXVvdDtsaWdodGJveFtyb2FkdHJpcF0mcXVvdDsmZ3Q7aW1hZ2UgIzMmbHQ7L2EmZ3Q7DQo8L2NvZGU+PC9wcmU+DQpObyBsaW1pdHMgdG8gdGhlIG51bWJlciBvZiBpbWFnZSBzZXRzIHBlciBwYWdlIG9yIGhvdyBtYW55IGltYWdlcyBhcmUgYWxsb3dlZCBpbiBlYWNoIHNldC4gR28gbnV0cyE8L2xpPg0KPC9vbD4JDQoNCg0KPC9ib2R5Pg0KPC9odG1sPg0K]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/js/builder.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gc2NyaXB0LmFjdWxvLnVzIGJ1aWxkZXIuanMgdjEuOC4xLCBUaHUgSmFuIDAzIDIyOjA3OjEyIC0wNTAwIDIwMDgKCi8vIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFRob21hcyBGdWNocyAoaHR0cDovL3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8KLy8gc2NyaXB0LmFjdWxvLnVzIGlzIGZyZWVseSBkaXN0cmlidXRhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQtc3R5bGUgbGljZW5zZS4KLy8gRm9yIGRldGFpbHMsIHNlZSB0aGUgc2NyaXB0LmFjdWxvLnVzIHdlYiBzaXRlOiBodHRwOi8vc2NyaXB0LmFjdWxvLnVzLwoKdmFyIEJ1aWxkZXIgPSB7CiAgTk9ERU1BUDogewogICAgQVJFQTogJ21hcCcsCiAgICBDQVBUSU9OOiAndGFibGUnLAogICAgQ09MOiAndGFibGUnLAogICAgQ09MR1JPVVA6ICd0YWJsZScsCiAgICBMRUdFTkQ6ICdmaWVsZHNldCcsCiAgICBPUFRHUk9VUDogJ3NlbGVjdCcsCiAgICBPUFRJT046ICdzZWxlY3QnLAogICAgUEFSQU06ICdvYmplY3QnLAogICAgVEJPRFk6ICd0YWJsZScsCiAgICBURDogJ3RhYmxlJywKICAgIFRGT09UOiAndGFibGUnLAogICAgVEg6ICd0YWJsZScsCiAgICBUSEVBRDogJ3RhYmxlJywKICAgIFRSOiAndGFibGUnCiAgfSwKICAvLyBub3RlOiBGb3IgRmlyZWZveCA8IDEuNSwgT1BUSU9OIGFuZCBPUFRHUk9VUCB0YWdzIGFyZSBjdXJyZW50bHkgYnJva2VuLAogIC8vICAgICAgIGR1ZSB0byBhIEZpcmVmb3ggYnVnCiAgbm9kZTogZnVuY3Rpb24oZWxlbWVudE5hbWUpIHsKICAgIGVsZW1lbnROYW1lID0gZWxlbWVudE5hbWUudG9VcHBlckNhc2UoKTsKICAgIAogICAgLy8gdHJ5IGlubmVySFRNTCBhcHByb2FjaAogICAgdmFyIHBhcmVudFRhZyA9IHRoaXMuTk9ERU1BUFtlbGVtZW50TmFtZV0gfHwgJ2Rpdic7CiAgICB2YXIgcGFyZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocGFyZW50VGFnKTsKICAgIHRyeSB7IC8vIHByZXZlbnQgSUUgImZlYXR1cmUiOiBodHRwOi8vZGV2LnJ1YnlvbnJhaWxzLm9yZy90aWNrZXQvMjcwNwogICAgICBwYXJlbnRFbGVtZW50LmlubmVySFRNTCA9ICI8IiArIGVsZW1lbnROYW1lICsgIj48LyIgKyBlbGVtZW50TmFtZSArICI+IjsKICAgIH0gY2F0Y2goZSkge30KICAgIHZhciBlbGVtZW50ID0gcGFyZW50RWxlbWVudC5maXJzdENoaWxkIHx8IG51bGw7CiAgICAgIAogICAgLy8gc2VlIGlmIGJyb3dzZXIgYWRkZWQgd3JhcHBpbmcgdGFncwogICAgaWYoZWxlbWVudCAmJiAoZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCkgIT0gZWxlbWVudE5hbWUpKQogICAgICBlbGVtZW50ID0gZWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShlbGVtZW50TmFtZSlbMF07CiAgICAKICAgIC8vIGZhbGxiYWNrIHRvIGNyZWF0ZUVsZW1lbnQgYXBwcm9hY2gKICAgIGlmKCFlbGVtZW50KSBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50TmFtZSk7CiAgICAKICAgIC8vIGFib3J0IGlmIG5vdGhpbmcgY291bGQgYmUgY3JlYXRlZAogICAgaWYoIWVsZW1lbnQpIHJldHVybjsKCiAgICAvLyBhdHRyaWJ1dGVzIChvciB0ZXh0KQogICAgaWYoYXJndW1lbnRzWzFdKQogICAgICBpZih0aGlzLl9pc1N0cmluZ09yTnVtYmVyKGFyZ3VtZW50c1sxXSkgfHwKICAgICAgICAoYXJndW1lbnRzWzFdIGluc3RhbmNlb2YgQXJyYXkpIHx8CiAgICAgICAgYXJndW1lbnRzWzFdLnRhZ05hbWUpIHsKICAgICAgICAgIHRoaXMuX2NoaWxkcmVuKGVsZW1lbnQsIGFyZ3VtZW50c1sxXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciBhdHRycyA9IHRoaXMuX2F0dHJpYnV0ZXMoYXJndW1lbnRzWzFdKTsKICAgICAgICAgIGlmKGF0dHJzLmxlbmd0aCkgewogICAgICAgICAgICB0cnkgeyAvLyBwcmV2ZW50IElFICJmZWF0dXJlIjogaHR0cDovL2Rldi5ydWJ5b25yYWlscy5vcmcvdGlja2V0LzI3MDcKICAgICAgICAgICAgICBwYXJlbnRFbGVtZW50LmlubmVySFRNTCA9ICI8IiArZWxlbWVudE5hbWUgKyAiICIgKwogICAgICAgICAgICAgICAgYXR0cnMgKyAiPjwvIiArIGVsZW1lbnROYW1lICsgIj4iOwogICAgICAgICAgICB9IGNhdGNoKGUpIHt9CiAgICAgICAgICAgIGVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LmZpcnN0Q2hpbGQgfHwgbnVsbDsKICAgICAgICAgICAgLy8gd29ya2Fyb3VuZCBmaXJlZm94IDEuMC5YIGJ1ZwogICAgICAgICAgICBpZighZWxlbWVudCkgewogICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnROYW1lKTsKICAgICAgICAgICAgICBmb3IoYXR0ciBpbiBhcmd1bWVudHNbMV0pIAogICAgICAgICAgICAgICAgZWxlbWVudFthdHRyID09ICdjbGFzcycgPyAnY2xhc3NOYW1lJyA6IGF0dHJdID0gYXJndW1lbnRzWzFdW2F0dHJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpICE9IGVsZW1lbnROYW1lKQogICAgICAgICAgICAgIGVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKGVsZW1lbnROYW1lKVswXTsKICAgICAgICAgIH0KICAgICAgICB9IAoKICAgIC8vIHRleHQsIG9yIGFycmF5IG9mIGNoaWxkcmVuCiAgICBpZihhcmd1bWVudHNbMl0pCiAgICAgIHRoaXMuX2NoaWxkcmVuKGVsZW1lbnQsIGFyZ3VtZW50c1syXSk7CgogICAgIHJldHVybiBlbGVtZW50OwogIH0sCiAgX3RleHQ6IGZ1bmN0aW9uKHRleHQpIHsKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7CiAgfSwKCiAgQVRUUl9NQVA6IHsKICAgICdjbGFzc05hbWUnOiAnY2xhc3MnLAogICAgJ2h0bWxGb3InOiAnZm9yJwogIH0sCgogIF9hdHRyaWJ1dGVzOiBmdW5jdGlvbihhdHRyaWJ1dGVzKSB7CiAgICB2YXIgYXR0cnMgPSBbXTsKICAgIGZvcihhdHRyaWJ1dGUgaW4gYXR0cmlidXRlcykKICAgICAgYXR0cnMucHVzaCgoYXR0cmlidXRlIGluIHRoaXMuQVRUUl9NQVAgPyB0aGlzLkFUVFJfTUFQW2F0dHJpYnV0ZV0gOiBhdHRyaWJ1dGUpICsKICAgICAgICAgICc9IicgKyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZV0udG9TdHJpbmcoKS5lc2NhcGVIVE1MKCkuZ3N1YigvIi8sJyZxdW90OycpICsgJyInKTsKICAgIHJldHVybiBhdHRycy5qb2luKCIgIik7CiAgfSwKICBfY2hpbGRyZW46IGZ1bmN0aW9uKGVsZW1lbnQsIGNoaWxkcmVuKSB7CiAgICBpZihjaGlsZHJlbi50YWdOYW1lKSB7CiAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGRyZW4pOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZih0eXBlb2YgY2hpbGRyZW49PSdvYmplY3QnKSB7IC8vIGFycmF5IGNhbiBob2xkIG5vZGVzIGFuZCB0ZXh0CiAgICAgIGNoaWxkcmVuLmZsYXR0ZW4oKS5lYWNoKCBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYodHlwZW9mIGU9PSdvYmplY3QnKQogICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChlKQogICAgICAgIGVsc2UKICAgICAgICAgIGlmKEJ1aWxkZXIuX2lzU3RyaW5nT3JOdW1iZXIoZSkpCiAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoQnVpbGRlci5fdGV4dChlKSk7CiAgICAgIH0pOwogICAgfSBlbHNlCiAgICAgIGlmKEJ1aWxkZXIuX2lzU3RyaW5nT3JOdW1iZXIoY2hpbGRyZW4pKQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoQnVpbGRlci5fdGV4dChjaGlsZHJlbikpOwogIH0sCiAgX2lzU3RyaW5nT3JOdW1iZXI6IGZ1bmN0aW9uKHBhcmFtKSB7CiAgICByZXR1cm4odHlwZW9mIHBhcmFtPT0nc3RyaW5nJyB8fCB0eXBlb2YgcGFyYW09PSdudW1iZXInKTsKICB9LAogIGJ1aWxkOiBmdW5jdGlvbihodG1sKSB7CiAgICB2YXIgZWxlbWVudCA9IHRoaXMubm9kZSgnZGl2Jyk7CiAgICAkKGVsZW1lbnQpLnVwZGF0ZShodG1sLnN0cmlwKCkpOwogICAgcmV0dXJuIGVsZW1lbnQuZG93bigpOwogIH0sCiAgZHVtcDogZnVuY3Rpb24oc2NvcGUpIHsgCiAgICBpZih0eXBlb2Ygc2NvcGUgIT0gJ29iamVjdCcgJiYgdHlwZW9mIHNjb3BlICE9ICdmdW5jdGlvbicpIHNjb3BlID0gd2luZG93OyAvL2dsb2JhbCBzY29wZSAKICAKICAgIHZhciB0YWdzID0gKCJBIEFCQlIgQUNST05ZTSBBRERSRVNTIEFQUExFVCBBUkVBIEIgQkFTRSBCQVNFRk9OVCBCRE8gQklHIEJMT0NLUVVPVEUgQk9EWSAiICsKICAgICAgIkJSIEJVVFRPTiBDQVBUSU9OIENFTlRFUiBDSVRFIENPREUgQ09MIENPTEdST1VQIEREIERFTCBERk4gRElSIERJViBETCBEVCBFTSBGSUVMRFNFVCAiICsKICAgICAgIkZPTlQgRk9STSBGUkFNRSBGUkFNRVNFVCBIMSBIMiBIMyBINCBINSBINiBIRUFEIEhSIEhUTUwgSSBJRlJBTUUgSU1HIElOUFVUIElOUyBJU0lOREVYICIrCiAgICAgICJLQkQgTEFCRUwgTEVHRU5EIExJIExJTksgTUFQIE1FTlUgTUVUQSBOT0ZSQU1FUyBOT1NDUklQVCBPQkpFQ1QgT0wgT1BUR1JPVVAgT1BUSU9OIFAgIisKICAgICAgIlBBUkFNIFBSRSBRIFMgU0FNUCBTQ1JJUFQgU0VMRUNUIFNNQUxMIFNQQU4gU1RSSUtFIFNUUk9ORyBTVFlMRSBTVUIgU1VQIFRBQkxFIFRCT0RZIFREICIrCiAgICAgICJURVhUQVJFQSBURk9PVCBUSCBUSEVBRCBUSVRMRSBUUiBUVCBVIFVMIFZBUiIpLnNwbGl0KC9ccysvKTsKICAKICAgIHRhZ3MuZWFjaCggZnVuY3Rpb24odGFnKXsgCiAgICAgIHNjb3BlW3RhZ10gPSBmdW5jdGlvbigpIHsgCiAgICAgICAgcmV0dXJuIEJ1aWxkZXIubm9kZS5hcHBseShCdWlsZGVyLCBbdGFnXS5jb25jYXQoJEEoYXJndW1lbnRzKSkpOyAgCiAgICAgIH0gCiAgICB9KTsKICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/effects.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gc2NyaXB0LmFjdWxvLnVzIGVmZmVjdHMuanMgdjEuOC4xLCBUaHUgSmFuIDAzIDIyOjA3OjEyIC0wNTAwIDIwMDgKCi8vIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFRob21hcyBGdWNocyAoaHR0cDovL3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8gQ29udHJpYnV0b3JzOgovLyAgSnVzdGluIFBhbG1lciAoaHR0cDovL2VuY3l0ZW1lZGlhLmNvbS8pCi8vICBNYXJrIFBpbGdyaW0gKGh0dHA6Ly9kaXZlaW50b21hcmsub3JnLykKLy8gIE1hcnRpbiBCaWFsYXNpbmtpCi8vIAovLyBzY3JpcHQuYWN1bG8udXMgaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIGFuIE1JVC1zdHlsZSBsaWNlbnNlLgovLyBGb3IgZGV0YWlscywgc2VlIHRoZSBzY3JpcHQuYWN1bG8udXMgd2ViIHNpdGU6IGh0dHA6Ly9zY3JpcHQuYWN1bG8udXMvIAoKLy8gY29udmVydHMgcmdiKCkgYW5kICN4eHggdG8gI3h4eHh4eCBmb3JtYXQsICAKLy8gcmV0dXJucyBzZWxmIChvciBmaXJzdCBhcmd1bWVudCkgaWYgbm90IGNvbnZlcnRhYmxlICAKU3RyaW5nLnByb3RvdHlwZS5wYXJzZUNvbG9yID0gZnVuY3Rpb24oKSB7ICAKICB2YXIgY29sb3IgPSAnIyc7CiAgaWYgKHRoaXMuc2xpY2UoMCw0KSA9PSAncmdiKCcpIHsgIAogICAgdmFyIGNvbHMgPSB0aGlzLnNsaWNlKDQsdGhpcy5sZW5ndGgtMSkuc3BsaXQoJywnKTsgIAogICAgdmFyIGk9MDsgZG8geyBjb2xvciArPSBwYXJzZUludChjb2xzW2ldKS50b0NvbG9yUGFydCgpIH0gd2hpbGUgKCsraTwzKTsgIAogIH0gZWxzZSB7ICAKICAgIGlmICh0aGlzLnNsaWNlKDAsMSkgPT0gJyMnKSB7ICAKICAgICAgaWYgKHRoaXMubGVuZ3RoPT00KSBmb3IodmFyIGk9MTtpPDQ7aSsrKSBjb2xvciArPSAodGhpcy5jaGFyQXQoaSkgKyB0aGlzLmNoYXJBdChpKSkudG9Mb3dlckNhc2UoKTsgIAogICAgICBpZiAodGhpcy5sZW5ndGg9PTcpIGNvbG9yID0gdGhpcy50b0xvd2VyQ2FzZSgpOyAgCiAgICB9ICAKICB9ICAKICByZXR1cm4gKGNvbG9yLmxlbmd0aD09NyA/IGNvbG9yIDogKGFyZ3VtZW50c1swXSB8fCB0aGlzKSk7ICAKfTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKRWxlbWVudC5jb2xsZWN0VGV4dE5vZGVzID0gZnVuY3Rpb24oZWxlbWVudCkgeyAgCiAgcmV0dXJuICRBKCQoZWxlbWVudCkuY2hpbGROb2RlcykuY29sbGVjdCggZnVuY3Rpb24obm9kZSkgewogICAgcmV0dXJuIChub2RlLm5vZGVUeXBlPT0zID8gbm9kZS5ub2RlVmFsdWUgOiAKICAgICAgKG5vZGUuaGFzQ2hpbGROb2RlcygpID8gRWxlbWVudC5jb2xsZWN0VGV4dE5vZGVzKG5vZGUpIDogJycpKTsKICB9KS5mbGF0dGVuKCkuam9pbignJyk7Cn07CgpFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXNJZ25vcmVDbGFzcyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgeyAgCiAgcmV0dXJuICRBKCQoZWxlbWVudCkuY2hpbGROb2RlcykuY29sbGVjdCggZnVuY3Rpb24obm9kZSkgewogICAgcmV0dXJuIChub2RlLm5vZGVUeXBlPT0zID8gbm9kZS5ub2RlVmFsdWUgOiAKICAgICAgKChub2RlLmhhc0NoaWxkTm9kZXMoKSAmJiAhRWxlbWVudC5oYXNDbGFzc05hbWUobm9kZSxjbGFzc05hbWUpKSA/IAogICAgICAgIEVsZW1lbnQuY29sbGVjdFRleHROb2Rlc0lnbm9yZUNsYXNzKG5vZGUsIGNsYXNzTmFtZSkgOiAnJykpOwogIH0pLmZsYXR0ZW4oKS5qb2luKCcnKTsKfTsKCkVsZW1lbnQuc2V0Q29udGVudFpvb20gPSBmdW5jdGlvbihlbGVtZW50LCBwZXJjZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7ICAKICBlbGVtZW50LnNldFN0eWxlKHtmb250U2l6ZTogKHBlcmNlbnQvMTAwKSArICdlbSd9KTsgICAKICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KSB3aW5kb3cuc2Nyb2xsQnkoMCwwKTsKICByZXR1cm4gZWxlbWVudDsKfTsKCkVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQpewogIHJldHVybiAkKGVsZW1lbnQpLnN0eWxlLm9wYWNpdHkgfHwgJyc7Cn07CgpFbGVtZW50LmZvcmNlUmVyZW5kZXJpbmcgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgdHJ5IHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIG4gPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcpOwogICAgZWxlbWVudC5hcHBlbmRDaGlsZChuKTsKICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQobik7CiAgfSBjYXRjaChlKSB7IH0KfTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIEVmZmVjdCA9IHsKICBfZWxlbWVudERvZXNOb3RFeGlzdEVycm9yOiB7CiAgICBuYW1lOiAnRWxlbWVudERvZXNOb3RFeGlzdEVycm9yJywKICAgIG1lc3NhZ2U6ICdUaGUgc3BlY2lmaWVkIERPTSBlbGVtZW50IGRvZXMgbm90IGV4aXN0LCBidXQgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZWZmZWN0IHRvIG9wZXJhdGUnCiAgfSwKICBUcmFuc2l0aW9uczogewogICAgbGluZWFyOiBQcm90b3R5cGUuSywKICAgIHNpbm9pZGFsOiBmdW5jdGlvbihwb3MpIHsKICAgICAgcmV0dXJuICgtTWF0aC5jb3MocG9zKk1hdGguUEkpLzIpICsgMC41OwogICAgfSwKICAgIHJldmVyc2U6IGZ1bmN0aW9uKHBvcykgewogICAgICByZXR1cm4gMS1wb3M7CiAgICB9LAogICAgZmxpY2tlcjogZnVuY3Rpb24ocG9zKSB7CiAgICAgIHZhciBwb3MgPSAoKC1NYXRoLmNvcyhwb3MqTWF0aC5QSSkvNCkgKyAwLjc1KSArIE1hdGgucmFuZG9tKCkvNDsKICAgICAgcmV0dXJuIHBvcyA+IDEgPyAxIDogcG9zOwogICAgfSwKICAgIHdvYmJsZTogZnVuY3Rpb24ocG9zKSB7CiAgICAgIHJldHVybiAoLU1hdGguY29zKHBvcypNYXRoLlBJKig5KnBvcykpLzIpICsgMC41OwogICAgfSwKICAgIHB1bHNlOiBmdW5jdGlvbihwb3MsIHB1bHNlcykgeyAKICAgICAgcHVsc2VzID0gcHVsc2VzIHx8IDU7IAogICAgICByZXR1cm4gKAogICAgICAgICgocG9zICUgKDEvcHVsc2VzKSkgKiBwdWxzZXMpLnJvdW5kKCkgPT0gMCA/IAogICAgICAgICAgICAgICgocG9zICogcHVsc2VzICogMikgLSAocG9zICogcHVsc2VzICogMikuZmxvb3IoKSkgOiAKICAgICAgICAgIDEgLSAoKHBvcyAqIHB1bHNlcyAqIDIpIC0gKHBvcyAqIHB1bHNlcyAqIDIpLmZsb29yKCkpCiAgICAgICAgKTsKICAgIH0sCiAgICBzcHJpbmc6IGZ1bmN0aW9uKHBvcykgeyAKICAgICAgcmV0dXJuIDEgLSAoTWF0aC5jb3MocG9zICogNC41ICogTWF0aC5QSSkgKiBNYXRoLmV4cCgtcG9zICogNikpOyAKICAgIH0sCiAgICBub25lOiBmdW5jdGlvbihwb3MpIHsKICAgICAgcmV0dXJuIDA7CiAgICB9LAogICAgZnVsbDogZnVuY3Rpb24ocG9zKSB7CiAgICAgIHJldHVybiAxOwogICAgfQogIH0sCiAgRGVmYXVsdE9wdGlvbnM6IHsKICAgIGR1cmF0aW9uOiAgIDEuMCwgICAvLyBzZWNvbmRzCiAgICBmcHM6ICAgICAgICAxMDAsICAgLy8gMTAwPSBhc3N1bWUgNjZmcHMgbWF4LgogICAgc3luYzogICAgICAgZmFsc2UsIC8vIHRydWUgZm9yIGNvbWJpbmluZwogICAgZnJvbTogICAgICAgMC4wLAogICAgdG86ICAgICAgICAgMS4wLAogICAgZGVsYXk6ICAgICAgMC4wLAogICAgcXVldWU6ICAgICAgJ3BhcmFsbGVsJwogIH0sCiAgdGFnaWZ5VGV4dDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHRhZ2lmeVN0eWxlID0gJ3Bvc2l0aW9uOnJlbGF0aXZlJzsKICAgIGlmIChQcm90b3R5cGUuQnJvd3Nlci5JRSkgdGFnaWZ5U3R5bGUgKz0gJzt6b29tOjEnOwogICAgCiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICRBKGVsZW1lbnQuY2hpbGROb2RlcykuZWFjaCggZnVuY3Rpb24oY2hpbGQpIHsKICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlPT0zKSB7CiAgICAgICAgY2hpbGQubm9kZVZhbHVlLnRvQXJyYXkoKS5lYWNoKCBmdW5jdGlvbihjaGFyYWN0ZXIpIHsKICAgICAgICAgIGVsZW1lbnQuaW5zZXJ0QmVmb3JlKAogICAgICAgICAgICBuZXcgRWxlbWVudCgnc3BhbicsIHtzdHlsZTogdGFnaWZ5U3R5bGV9KS51cGRhdGUoCiAgICAgICAgICAgICAgY2hhcmFjdGVyID09ICcgJyA/IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKSA6IGNoYXJhY3RlciksIAogICAgICAgICAgICAgIGNoaWxkKTsKICAgICAgICB9KTsKICAgICAgICBFbGVtZW50LnJlbW92ZShjaGlsZCk7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbXVsdGlwbGU6IGZ1bmN0aW9uKGVsZW1lbnQsIGVmZmVjdCkgewogICAgdmFyIGVsZW1lbnRzOwogICAgaWYgKCgodHlwZW9mIGVsZW1lbnQgPT0gJ29iamVjdCcpIHx8IAogICAgICAgIE9iamVjdC5pc0Z1bmN0aW9uKGVsZW1lbnQpKSAmJiAKICAgICAgIChlbGVtZW50Lmxlbmd0aCkpCiAgICAgIGVsZW1lbnRzID0gZWxlbWVudDsKICAgIGVsc2UKICAgICAgZWxlbWVudHMgPSAkKGVsZW1lbnQpLmNoaWxkTm9kZXM7CiAgICAgIAogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgc3BlZWQ6IDAuMSwKICAgICAgZGVsYXk6IDAuMAogICAgfSwgYXJndW1lbnRzWzJdIHx8IHsgfSk7CiAgICB2YXIgbWFzdGVyRGVsYXkgPSBvcHRpb25zLmRlbGF5OwoKICAgICRBKGVsZW1lbnRzKS5lYWNoKCBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkgewogICAgICBuZXcgZWZmZWN0KGVsZW1lbnQsIE9iamVjdC5leHRlbmQob3B0aW9ucywgeyBkZWxheTogaW5kZXggKiBvcHRpb25zLnNwZWVkICsgbWFzdGVyRGVsYXkgfSkpOwogICAgfSk7CiAgfSwKICBQQUlSUzogewogICAgJ3NsaWRlJzogIFsnU2xpZGVEb3duJywnU2xpZGVVcCddLAogICAgJ2JsaW5kJzogIFsnQmxpbmREb3duJywnQmxpbmRVcCddLAogICAgJ2FwcGVhcic6IFsnQXBwZWFyJywnRmFkZSddCiAgfSwKICB0b2dnbGU6IGZ1bmN0aW9uKGVsZW1lbnQsIGVmZmVjdCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlZmZlY3QgPSAoZWZmZWN0IHx8ICdhcHBlYXInKS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgcXVldWU6IHsgcG9zaXRpb246J2VuZCcsIHNjb3BlOihlbGVtZW50LmlkIHx8ICdnbG9iYWwnKSwgbGltaXQ6IDEgfQogICAgfSwgYXJndW1lbnRzWzJdIHx8IHsgfSk7CiAgICBFZmZlY3RbZWxlbWVudC52aXNpYmxlKCkgPyAKICAgICAgRWZmZWN0LlBBSVJTW2VmZmVjdF1bMV0gOiBFZmZlY3QuUEFJUlNbZWZmZWN0XVswXV0oZWxlbWVudCwgb3B0aW9ucyk7CiAgfQp9OwoKRWZmZWN0LkRlZmF1bHRPcHRpb25zLnRyYW5zaXRpb24gPSBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWw7CgovKiAtLS0tLS0tLS0tLS0tIGNvcmUgZWZmZWN0cyAtLS0tLS0tLS0tLS0tICovCgpFZmZlY3QuU2NvcGVkUXVldWUgPSBDbGFzcy5jcmVhdGUoRW51bWVyYWJsZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5lZmZlY3RzICA9IFtdOwogICAgdGhpcy5pbnRlcnZhbCA9IG51bGw7ICAgIAogIH0sCiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB0aGlzLmVmZmVjdHMuX2VhY2goaXRlcmF0b3IpOwogIH0sCiAgYWRkOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIHZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgIAogICAgdmFyIHBvc2l0aW9uID0gT2JqZWN0LmlzU3RyaW5nKGVmZmVjdC5vcHRpb25zLnF1ZXVlKSA/IAogICAgICBlZmZlY3Qub3B0aW9ucy5xdWV1ZSA6IGVmZmVjdC5vcHRpb25zLnF1ZXVlLnBvc2l0aW9uOwogICAgCiAgICBzd2l0Y2gocG9zaXRpb24pIHsKICAgICAgY2FzZSAnZnJvbnQnOgogICAgICAgIC8vIG1vdmUgdW5zdGFydGVkIGVmZmVjdHMgYWZ0ZXIgdGhpcyBlZmZlY3QgIAogICAgICAgIHRoaXMuZWZmZWN0cy5maW5kQWxsKGZ1bmN0aW9uKGUpeyByZXR1cm4gZS5zdGF0ZT09J2lkbGUnIH0pLmVhY2goIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgZS5zdGFydE9uICArPSBlZmZlY3QuZmluaXNoT247CiAgICAgICAgICAgIGUuZmluaXNoT24gKz0gZWZmZWN0LmZpbmlzaE9uOwogICAgICAgICAgfSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgJ3dpdGgtbGFzdCc6CiAgICAgICAgdGltZXN0YW1wID0gdGhpcy5lZmZlY3RzLnBsdWNrKCdzdGFydE9uJykubWF4KCkgfHwgdGltZXN0YW1wOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlICdlbmQnOgogICAgICAgIC8vIHN0YXJ0IGVmZmVjdCBhZnRlciBsYXN0IHF1ZXVlZCBlZmZlY3QgaGFzIGZpbmlzaGVkCiAgICAgICAgdGltZXN0YW1wID0gdGhpcy5lZmZlY3RzLnBsdWNrKCdmaW5pc2hPbicpLm1heCgpIHx8IHRpbWVzdGFtcDsKICAgICAgICBicmVhazsKICAgIH0KICAgIAogICAgZWZmZWN0LnN0YXJ0T24gICs9IHRpbWVzdGFtcDsKICAgIGVmZmVjdC5maW5pc2hPbiArPSB0aW1lc3RhbXA7CgogICAgaWYgKCFlZmZlY3Qub3B0aW9ucy5xdWV1ZS5saW1pdCB8fCAodGhpcy5lZmZlY3RzLmxlbmd0aCA8IGVmZmVjdC5vcHRpb25zLnF1ZXVlLmxpbWl0KSkKICAgICAgdGhpcy5lZmZlY3RzLnB1c2goZWZmZWN0KTsKICAgIAogICAgaWYgKCF0aGlzLmludGVydmFsKQogICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwodGhpcy5sb29wLmJpbmQodGhpcyksIDE1KTsKICB9LAogIHJlbW92ZTogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICB0aGlzLmVmZmVjdHMgPSB0aGlzLmVmZmVjdHMucmVqZWN0KGZ1bmN0aW9uKGUpIHsgcmV0dXJuIGU9PWVmZmVjdCB9KTsKICAgIGlmICh0aGlzLmVmZmVjdHMubGVuZ3RoID09IDApIHsKICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTsKICAgICAgdGhpcy5pbnRlcnZhbCA9IG51bGw7CiAgICB9CiAgfSwKICBsb29wOiBmdW5jdGlvbigpIHsKICAgIHZhciB0aW1lUG9zID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICBmb3IodmFyIGk9MCwgbGVuPXRoaXMuZWZmZWN0cy5sZW5ndGg7aTxsZW47aSsrKSAKICAgICAgdGhpcy5lZmZlY3RzW2ldICYmIHRoaXMuZWZmZWN0c1tpXS5sb29wKHRpbWVQb3MpOwogIH0KfSk7CgpFZmZlY3QuUXVldWVzID0gewogIGluc3RhbmNlczogJEgoKSwKICBnZXQ6IGZ1bmN0aW9uKHF1ZXVlTmFtZSkgewogICAgaWYgKCFPYmplY3QuaXNTdHJpbmcocXVldWVOYW1lKSkgcmV0dXJuIHF1ZXVlTmFtZTsKICAgIAogICAgcmV0dXJuIHRoaXMuaW5zdGFuY2VzLmdldChxdWV1ZU5hbWUpIHx8CiAgICAgIHRoaXMuaW5zdGFuY2VzLnNldChxdWV1ZU5hbWUsIG5ldyBFZmZlY3QuU2NvcGVkUXVldWUoKSk7CiAgfQp9OwpFZmZlY3QuUXVldWUgPSBFZmZlY3QuUXVldWVzLmdldCgnZ2xvYmFsJyk7CgpFZmZlY3QuQmFzZSA9IENsYXNzLmNyZWF0ZSh7CiAgcG9zaXRpb246IG51bGwsCiAgc3RhcnQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgIGZ1bmN0aW9uIGNvZGVGb3JFdmVudChvcHRpb25zLGV2ZW50TmFtZSl7CiAgICAgIHJldHVybiAoCiAgICAgICAgKG9wdGlvbnNbZXZlbnROYW1lKydJbnRlcm5hbCddID8gJ3RoaXMub3B0aW9ucy4nK2V2ZW50TmFtZSsnSW50ZXJuYWwodGhpcyk7JyA6ICcnKSArCiAgICAgICAgKG9wdGlvbnNbZXZlbnROYW1lXSA/ICd0aGlzLm9wdGlvbnMuJytldmVudE5hbWUrJyh0aGlzKTsnIDogJycpCiAgICAgICk7CiAgICB9CiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnRyYW5zaXRpb24gPT09IGZhbHNlKSBvcHRpb25zLnRyYW5zaXRpb24gPSBFZmZlY3QuVHJhbnNpdGlvbnMubGluZWFyOwogICAgdGhpcy5vcHRpb25zICAgICAgPSBPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRlbmQoeyB9LEVmZmVjdC5EZWZhdWx0T3B0aW9ucyksIG9wdGlvbnMgfHwgeyB9KTsKICAgIHRoaXMuY3VycmVudEZyYW1lID0gMDsKICAgIHRoaXMuc3RhdGUgICAgICAgID0gJ2lkbGUnOwogICAgdGhpcy5zdGFydE9uICAgICAgPSB0aGlzLm9wdGlvbnMuZGVsYXkqMTAwMDsKICAgIHRoaXMuZmluaXNoT24gICAgID0gdGhpcy5zdGFydE9uKyh0aGlzLm9wdGlvbnMuZHVyYXRpb24qMTAwMCk7CiAgICB0aGlzLmZyb21Ub0RlbHRhICA9IHRoaXMub3B0aW9ucy50by10aGlzLm9wdGlvbnMuZnJvbTsKICAgIHRoaXMudG90YWxUaW1lICAgID0gdGhpcy5maW5pc2hPbi10aGlzLnN0YXJ0T247CiAgICB0aGlzLnRvdGFsRnJhbWVzICA9IHRoaXMub3B0aW9ucy5mcHMqdGhpcy5vcHRpb25zLmR1cmF0aW9uOwogICAgCiAgICBldmFsKCd0aGlzLnJlbmRlciA9IGZ1bmN0aW9uKHBvcyl7ICcrCiAgICAgICdpZiAodGhpcy5zdGF0ZT09ImlkbGUiKXt0aGlzLnN0YXRlPSJydW5uaW5nIjsnKwogICAgICBjb2RlRm9yRXZlbnQodGhpcy5vcHRpb25zLCdiZWZvcmVTZXR1cCcpKwogICAgICAodGhpcy5zZXR1cCA/ICd0aGlzLnNldHVwKCk7JzonJykrIAogICAgICBjb2RlRm9yRXZlbnQodGhpcy5vcHRpb25zLCdhZnRlclNldHVwJykrCiAgICAgICd9O2lmICh0aGlzLnN0YXRlPT0icnVubmluZyIpeycrCiAgICAgICdwb3M9dGhpcy5vcHRpb25zLnRyYW5zaXRpb24ocG9zKSonK3RoaXMuZnJvbVRvRGVsdGErJysnK3RoaXMub3B0aW9ucy5mcm9tKyc7JysKICAgICAgJ3RoaXMucG9zaXRpb249cG9zOycrCiAgICAgIGNvZGVGb3JFdmVudCh0aGlzLm9wdGlvbnMsJ2JlZm9yZVVwZGF0ZScpKwogICAgICAodGhpcy51cGRhdGUgPyAndGhpcy51cGRhdGUocG9zKTsnOicnKSsKICAgICAgY29kZUZvckV2ZW50KHRoaXMub3B0aW9ucywnYWZ0ZXJVcGRhdGUnKSsKICAgICAgJ319Jyk7CiAgICAKICAgIHRoaXMuZXZlbnQoJ2JlZm9yZVN0YXJ0Jyk7CiAgICBpZiAoIXRoaXMub3B0aW9ucy5zeW5jKQogICAgICBFZmZlY3QuUXVldWVzLmdldChPYmplY3QuaXNTdHJpbmcodGhpcy5vcHRpb25zLnF1ZXVlKSA/IAogICAgICAgICdnbG9iYWwnIDogdGhpcy5vcHRpb25zLnF1ZXVlLnNjb3BlKS5hZGQodGhpcyk7CiAgfSwKICBsb29wOiBmdW5jdGlvbih0aW1lUG9zKSB7CiAgICBpZiAodGltZVBvcyA+PSB0aGlzLnN0YXJ0T24pIHsKICAgICAgaWYgKHRpbWVQb3MgPj0gdGhpcy5maW5pc2hPbikgewogICAgICAgIHRoaXMucmVuZGVyKDEuMCk7CiAgICAgICAgdGhpcy5jYW5jZWwoKTsKICAgICAgICB0aGlzLmV2ZW50KCdiZWZvcmVGaW5pc2gnKTsKICAgICAgICBpZiAodGhpcy5maW5pc2gpIHRoaXMuZmluaXNoKCk7IAogICAgICAgIHRoaXMuZXZlbnQoJ2FmdGVyRmluaXNoJyk7CiAgICAgICAgcmV0dXJuOyAgCiAgICAgIH0KICAgICAgdmFyIHBvcyAgID0gKHRpbWVQb3MgLSB0aGlzLnN0YXJ0T24pIC8gdGhpcy50b3RhbFRpbWUsCiAgICAgICAgICBmcmFtZSA9IChwb3MgKiB0aGlzLnRvdGFsRnJhbWVzKS5yb3VuZCgpOwogICAgICBpZiAoZnJhbWUgPiB0aGlzLmN1cnJlbnRGcmFtZSkgewogICAgICAgIHRoaXMucmVuZGVyKHBvcyk7CiAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUgPSBmcmFtZTsKICAgICAgfQogICAgfQogIH0sCiAgY2FuY2VsOiBmdW5jdGlvbigpIHsKICAgIGlmICghdGhpcy5vcHRpb25zLnN5bmMpCiAgICAgIEVmZmVjdC5RdWV1ZXMuZ2V0KE9iamVjdC5pc1N0cmluZyh0aGlzLm9wdGlvbnMucXVldWUpID8gCiAgICAgICAgJ2dsb2JhbCcgOiB0aGlzLm9wdGlvbnMucXVldWUuc2NvcGUpLnJlbW92ZSh0aGlzKTsKICAgIHRoaXMuc3RhdGUgPSAnZmluaXNoZWQnOwogIH0sCiAgZXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSkgewogICAgaWYgKHRoaXMub3B0aW9uc1tldmVudE5hbWUgKyAnSW50ZXJuYWwnXSkgdGhpcy5vcHRpb25zW2V2ZW50TmFtZSArICdJbnRlcm5hbCddKHRoaXMpOwogICAgaWYgKHRoaXMub3B0aW9uc1tldmVudE5hbWVdKSB0aGlzLm9wdGlvbnNbZXZlbnROYW1lXSh0aGlzKTsKICB9LAogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgdmFyIGRhdGEgPSAkSCgpOwogICAgZm9yKHByb3BlcnR5IGluIHRoaXMpCiAgICAgIGlmICghT2JqZWN0LmlzRnVuY3Rpb24odGhpc1twcm9wZXJ0eV0pKSBkYXRhLnNldChwcm9wZXJ0eSwgdGhpc1twcm9wZXJ0eV0pOwogICAgcmV0dXJuICcjPEVmZmVjdDonICsgZGF0YS5pbnNwZWN0KCkgKyAnLG9wdGlvbnM6JyArICRIKHRoaXMub3B0aW9ucykuaW5zcGVjdCgpICsgJz4nOwogIH0KfSk7CgpFZmZlY3QuUGFyYWxsZWwgPSBDbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2UsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlZmZlY3RzKSB7CiAgICB0aGlzLmVmZmVjdHMgPSBlZmZlY3RzIHx8IFtdOwogICAgdGhpcy5zdGFydChhcmd1bWVudHNbMV0pOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdGhpcy5lZmZlY3RzLmludm9rZSgncmVuZGVyJywgcG9zaXRpb24pOwogIH0sCiAgZmluaXNoOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdGhpcy5lZmZlY3RzLmVhY2goIGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QucmVuZGVyKDEuMCk7CiAgICAgIGVmZmVjdC5jYW5jZWwoKTsKICAgICAgZWZmZWN0LmV2ZW50KCdiZWZvcmVGaW5pc2gnKTsKICAgICAgaWYgKGVmZmVjdC5maW5pc2gpIGVmZmVjdC5maW5pc2gocG9zaXRpb24pOwogICAgICBlZmZlY3QuZXZlbnQoJ2FmdGVyRmluaXNoJyk7CiAgICB9KTsKICB9Cn0pOwoKRWZmZWN0LlR3ZWVuID0gQ2xhc3MuY3JlYXRlKEVmZmVjdC5CYXNlLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ob2JqZWN0LCBmcm9tLCB0bykgewogICAgb2JqZWN0ID0gT2JqZWN0LmlzU3RyaW5nKG9iamVjdCkgPyAkKG9iamVjdCkgOiBvYmplY3Q7CiAgICB2YXIgYXJncyA9ICRBKGFyZ3VtZW50cyksIG1ldGhvZCA9IGFyZ3MubGFzdCgpLCAKICAgICAgb3B0aW9ucyA9IGFyZ3MubGVuZ3RoID09IDUgPyBhcmdzWzNdIDogbnVsbDsKICAgIHRoaXMubWV0aG9kID0gT2JqZWN0LmlzRnVuY3Rpb24obWV0aG9kKSA/IG1ldGhvZC5iaW5kKG9iamVjdCkgOgogICAgICBPYmplY3QuaXNGdW5jdGlvbihvYmplY3RbbWV0aG9kXSkgPyBvYmplY3RbbWV0aG9kXS5iaW5kKG9iamVjdCkgOiAKICAgICAgZnVuY3Rpb24odmFsdWUpIHsgb2JqZWN0W21ldGhvZF0gPSB2YWx1ZSB9OwogICAgdGhpcy5zdGFydChPYmplY3QuZXh0ZW5kKHsgZnJvbTogZnJvbSwgdG86IHRvIH0sIG9wdGlvbnMgfHwgeyB9KSk7CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICB0aGlzLm1ldGhvZChwb3NpdGlvbik7CiAgfQp9KTsKCkVmZmVjdC5FdmVudCA9IENsYXNzLmNyZWF0ZShFZmZlY3QuQmFzZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5zdGFydChPYmplY3QuZXh0ZW5kKHsgZHVyYXRpb246IDAgfSwgYXJndW1lbnRzWzBdIHx8IHsgfSkpOwogIH0sCiAgdXBkYXRlOiBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbgp9KTsKCkVmZmVjdC5PcGFjaXR5ID0gQ2xhc3MuY3JlYXRlKEVmZmVjdC5CYXNlLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmICghdGhpcy5lbGVtZW50KSB0aHJvdyhFZmZlY3QuX2VsZW1lbnREb2VzTm90RXhpc3RFcnJvcik7CiAgICAvLyBtYWtlIHRoaXMgd29yayBvbiBJRSBvbiBlbGVtZW50cyB3aXRob3V0ICdsYXlvdXQnCiAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUgJiYgKCF0aGlzLmVsZW1lbnQuY3VycmVudFN0eWxlLmhhc0xheW91dCkpCiAgICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7em9vbTogMX0pOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgZnJvbTogdGhpcy5lbGVtZW50LmdldE9wYWNpdHkoKSB8fCAwLjAsCiAgICAgIHRvOiAgIDEuMAogICAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSk7CiAgICB0aGlzLnN0YXJ0KG9wdGlvbnMpOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdGhpcy5lbGVtZW50LnNldE9wYWNpdHkocG9zaXRpb24pOwogIH0KfSk7CgpFZmZlY3QuTW92ZSA9IENsYXNzLmNyZWF0ZShFZmZlY3QuQmFzZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoIXRoaXMuZWxlbWVudCkgdGhyb3coRWZmZWN0Ll9lbGVtZW50RG9lc05vdEV4aXN0RXJyb3IpOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgeDogICAgMCwKICAgICAgeTogICAgMCwKICAgICAgbW9kZTogJ3JlbGF0aXZlJwogICAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSk7CiAgICB0aGlzLnN0YXJ0KG9wdGlvbnMpOwogIH0sCiAgc2V0dXA6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5lbGVtZW50Lm1ha2VQb3NpdGlvbmVkKCk7CiAgICB0aGlzLm9yaWdpbmFsTGVmdCA9IHBhcnNlRmxvYXQodGhpcy5lbGVtZW50LmdldFN0eWxlKCdsZWZ0JykgfHwgJzAnKTsKICAgIHRoaXMub3JpZ2luYWxUb3AgID0gcGFyc2VGbG9hdCh0aGlzLmVsZW1lbnQuZ2V0U3R5bGUoJ3RvcCcpICB8fCAnMCcpOwogICAgaWYgKHRoaXMub3B0aW9ucy5tb2RlID09ICdhYnNvbHV0ZScpIHsKICAgICAgdGhpcy5vcHRpb25zLnggPSB0aGlzLm9wdGlvbnMueCAtIHRoaXMub3JpZ2luYWxMZWZ0OwogICAgICB0aGlzLm9wdGlvbnMueSA9IHRoaXMub3B0aW9ucy55IC0gdGhpcy5vcmlnaW5hbFRvcDsKICAgIH0KICB9LAogIHVwZGF0ZTogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7CiAgICAgIGxlZnQ6ICh0aGlzLm9wdGlvbnMueCAgKiBwb3NpdGlvbiArIHRoaXMub3JpZ2luYWxMZWZ0KS5yb3VuZCgpICsgJ3B4JywKICAgICAgdG9wOiAgKHRoaXMub3B0aW9ucy55ICAqIHBvc2l0aW9uICsgdGhpcy5vcmlnaW5hbFRvcCkucm91bmQoKSAgKyAncHgnCiAgICB9KTsKICB9Cn0pOwoKLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CkVmZmVjdC5Nb3ZlQnkgPSBmdW5jdGlvbihlbGVtZW50LCB0b1RvcCwgdG9MZWZ0KSB7CiAgcmV0dXJuIG5ldyBFZmZlY3QuTW92ZShlbGVtZW50LCAKICAgIE9iamVjdC5leHRlbmQoeyB4OiB0b0xlZnQsIHk6IHRvVG9wIH0sIGFyZ3VtZW50c1szXSB8fCB7IH0pKTsKfTsKCkVmZmVjdC5TY2FsZSA9IENsYXNzLmNyZWF0ZShFZmZlY3QuQmFzZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQsIHBlcmNlbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoIXRoaXMuZWxlbWVudCkgdGhyb3coRWZmZWN0Ll9lbGVtZW50RG9lc05vdEV4aXN0RXJyb3IpOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgc2NhbGVYOiB0cnVlLAogICAgICBzY2FsZVk6IHRydWUsCiAgICAgIHNjYWxlQ29udGVudDogdHJ1ZSwKICAgICAgc2NhbGVGcm9tQ2VudGVyOiBmYWxzZSwKICAgICAgc2NhbGVNb2RlOiAnYm94JywgICAgICAgIC8vICdib3gnIG9yICdjb250ZW50cycgb3IgeyB9IHdpdGggcHJvdmlkZWQgdmFsdWVzCiAgICAgIHNjYWxlRnJvbTogMTAwLjAsCiAgICAgIHNjYWxlVG86ICAgcGVyY2VudAogICAgfSwgYXJndW1lbnRzWzJdIHx8IHsgfSk7CiAgICB0aGlzLnN0YXJ0KG9wdGlvbnMpOwogIH0sCiAgc2V0dXA6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5yZXN0b3JlQWZ0ZXJGaW5pc2ggPSB0aGlzLm9wdGlvbnMucmVzdG9yZUFmdGVyRmluaXNoIHx8IGZhbHNlOwogICAgdGhpcy5lbGVtZW50UG9zaXRpb25pbmcgPSB0aGlzLmVsZW1lbnQuZ2V0U3R5bGUoJ3Bvc2l0aW9uJyk7CiAgICAKICAgIHRoaXMub3JpZ2luYWxTdHlsZSA9IHsgfTsKICAgIFsndG9wJywnbGVmdCcsJ3dpZHRoJywnaGVpZ2h0JywnZm9udFNpemUnXS5lYWNoKCBmdW5jdGlvbihrKSB7CiAgICAgIHRoaXMub3JpZ2luYWxTdHlsZVtrXSA9IHRoaXMuZWxlbWVudC5zdHlsZVtrXTsKICAgIH0uYmluZCh0aGlzKSk7CiAgICAgIAogICAgdGhpcy5vcmlnaW5hbFRvcCAgPSB0aGlzLmVsZW1lbnQub2Zmc2V0VG9wOwogICAgdGhpcy5vcmlnaW5hbExlZnQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0TGVmdDsKICAgIAogICAgdmFyIGZvbnRTaXplID0gdGhpcy5lbGVtZW50LmdldFN0eWxlKCdmb250LXNpemUnKSB8fCAnMTAwJSc7CiAgICBbJ2VtJywncHgnLCclJywncHQnXS5lYWNoKCBmdW5jdGlvbihmb250U2l6ZVR5cGUpIHsKICAgICAgaWYgKGZvbnRTaXplLmluZGV4T2YoZm9udFNpemVUeXBlKT4wKSB7CiAgICAgICAgdGhpcy5mb250U2l6ZSAgICAgPSBwYXJzZUZsb2F0KGZvbnRTaXplKTsKICAgICAgICB0aGlzLmZvbnRTaXplVHlwZSA9IGZvbnRTaXplVHlwZTsKICAgICAgfQogICAgfS5iaW5kKHRoaXMpKTsKICAgIAogICAgdGhpcy5mYWN0b3IgPSAodGhpcy5vcHRpb25zLnNjYWxlVG8gLSB0aGlzLm9wdGlvbnMuc2NhbGVGcm9tKS8xMDA7CiAgICAKICAgIHRoaXMuZGltcyA9IG51bGw7CiAgICBpZiAodGhpcy5vcHRpb25zLnNjYWxlTW9kZT09J2JveCcpCiAgICAgIHRoaXMuZGltcyA9IFt0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0LCB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGhdOwogICAgaWYgKC9eY29udGVudC8udGVzdCh0aGlzLm9wdGlvbnMuc2NhbGVNb2RlKSkKICAgICAgdGhpcy5kaW1zID0gW3RoaXMuZWxlbWVudC5zY3JvbGxIZWlnaHQsIHRoaXMuZWxlbWVudC5zY3JvbGxXaWR0aF07CiAgICBpZiAoIXRoaXMuZGltcykKICAgICAgdGhpcy5kaW1zID0gW3RoaXMub3B0aW9ucy5zY2FsZU1vZGUub3JpZ2luYWxIZWlnaHQsCiAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuc2NhbGVNb2RlLm9yaWdpbmFsV2lkdGhdOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdmFyIGN1cnJlbnRTY2FsZSA9ICh0aGlzLm9wdGlvbnMuc2NhbGVGcm9tLzEwMC4wKSArICh0aGlzLmZhY3RvciAqIHBvc2l0aW9uKTsKICAgIGlmICh0aGlzLm9wdGlvbnMuc2NhbGVDb250ZW50ICYmIHRoaXMuZm9udFNpemUpCiAgICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7Zm9udFNpemU6IHRoaXMuZm9udFNpemUgKiBjdXJyZW50U2NhbGUgKyB0aGlzLmZvbnRTaXplVHlwZSB9KTsKICAgIHRoaXMuc2V0RGltZW5zaW9ucyh0aGlzLmRpbXNbMF0gKiBjdXJyZW50U2NhbGUsIHRoaXMuZGltc1sxXSAqIGN1cnJlbnRTY2FsZSk7CiAgfSwKICBmaW5pc2g6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICBpZiAodGhpcy5yZXN0b3JlQWZ0ZXJGaW5pc2gpIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh0aGlzLm9yaWdpbmFsU3R5bGUpOwogIH0sCiAgc2V0RGltZW5zaW9uczogZnVuY3Rpb24oaGVpZ2h0LCB3aWR0aCkgewogICAgdmFyIGQgPSB7IH07CiAgICBpZiAodGhpcy5vcHRpb25zLnNjYWxlWCkgZC53aWR0aCA9IHdpZHRoLnJvdW5kKCkgKyAncHgnOwogICAgaWYgKHRoaXMub3B0aW9ucy5zY2FsZVkpIGQuaGVpZ2h0ID0gaGVpZ2h0LnJvdW5kKCkgKyAncHgnOwogICAgaWYgKHRoaXMub3B0aW9ucy5zY2FsZUZyb21DZW50ZXIpIHsKICAgICAgdmFyIHRvcGQgID0gKGhlaWdodCAtIHRoaXMuZGltc1swXSkvMjsKICAgICAgdmFyIGxlZnRkID0gKHdpZHRoICAtIHRoaXMuZGltc1sxXSkvMjsKICAgICAgaWYgKHRoaXMuZWxlbWVudFBvc2l0aW9uaW5nID09ICdhYnNvbHV0ZScpIHsKICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNjYWxlWSkgZC50b3AgPSB0aGlzLm9yaWdpbmFsVG9wLXRvcGQgKyAncHgnOwogICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2NhbGVYKSBkLmxlZnQgPSB0aGlzLm9yaWdpbmFsTGVmdC1sZWZ0ZCArICdweCc7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zY2FsZVkpIGQudG9wID0gLXRvcGQgKyAncHgnOwogICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2NhbGVYKSBkLmxlZnQgPSAtbGVmdGQgKyAncHgnOwogICAgICB9CiAgICB9CiAgICB0aGlzLmVsZW1lbnQuc2V0U3R5bGUoZCk7CiAgfQp9KTsKCkVmZmVjdC5IaWdobGlnaHQgPSBDbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2UsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKCF0aGlzLmVsZW1lbnQpIHRocm93KEVmZmVjdC5fZWxlbWVudERvZXNOb3RFeGlzdEVycm9yKTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7IHN0YXJ0Y29sb3I6ICcjZmZmZjk5JyB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KTsKICAgIHRoaXMuc3RhcnQob3B0aW9ucyk7CiAgfSwKICBzZXR1cDogZnVuY3Rpb24oKSB7CiAgICAvLyBQcmV2ZW50IGV4ZWN1dGluZyBvbiBlbGVtZW50cyBub3QgaW4gdGhlIGxheW91dCBmbG93CiAgICBpZiAodGhpcy5lbGVtZW50LmdldFN0eWxlKCdkaXNwbGF5Jyk9PSdub25lJykgeyB0aGlzLmNhbmNlbCgpOyByZXR1cm47IH0KICAgIC8vIERpc2FibGUgYmFja2dyb3VuZCBpbWFnZSBkdXJpbmcgdGhlIGVmZmVjdAogICAgdGhpcy5vbGRTdHlsZSA9IHsgfTsKICAgIGlmICghdGhpcy5vcHRpb25zLmtlZXBCYWNrZ3JvdW5kSW1hZ2UpIHsKICAgICAgdGhpcy5vbGRTdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSB0aGlzLmVsZW1lbnQuZ2V0U3R5bGUoJ2JhY2tncm91bmQtaW1hZ2UnKTsKICAgICAgdGhpcy5lbGVtZW50LnNldFN0eWxlKHtiYWNrZ3JvdW5kSW1hZ2U6ICdub25lJ30pOwogICAgfQogICAgaWYgKCF0aGlzLm9wdGlvbnMuZW5kY29sb3IpCiAgICAgIHRoaXMub3B0aW9ucy5lbmRjb2xvciA9IHRoaXMuZWxlbWVudC5nZXRTdHlsZSgnYmFja2dyb3VuZC1jb2xvcicpLnBhcnNlQ29sb3IoJyNmZmZmZmYnKTsKICAgIGlmICghdGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcikKICAgICAgdGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvciA9IHRoaXMuZWxlbWVudC5nZXRTdHlsZSgnYmFja2dyb3VuZC1jb2xvcicpOwogICAgLy8gaW5pdCBjb2xvciBjYWxjdWxhdGlvbnMKICAgIHRoaXMuX2Jhc2UgID0gJFIoMCwyKS5tYXAoZnVuY3Rpb24oaSl7IHJldHVybiBwYXJzZUludCh0aGlzLm9wdGlvbnMuc3RhcnRjb2xvci5zbGljZShpKjIrMSxpKjIrMyksMTYpIH0uYmluZCh0aGlzKSk7CiAgICB0aGlzLl9kZWx0YSA9ICRSKDAsMikubWFwKGZ1bmN0aW9uKGkpeyByZXR1cm4gcGFyc2VJbnQodGhpcy5vcHRpb25zLmVuZGNvbG9yLnNsaWNlKGkqMisxLGkqMiszKSwxNiktdGhpcy5fYmFzZVtpXSB9LmJpbmQodGhpcykpOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdGhpcy5lbGVtZW50LnNldFN0eWxlKHtiYWNrZ3JvdW5kQ29sb3I6ICRSKDAsMikuaW5qZWN0KCcjJyxmdW5jdGlvbihtLHYsaSl7CiAgICAgIHJldHVybiBtKygodGhpcy5fYmFzZVtpXSsodGhpcy5fZGVsdGFbaV0qcG9zaXRpb24pKS5yb3VuZCgpLnRvQ29sb3JQYXJ0KCkpOyB9LmJpbmQodGhpcykpIH0pOwogIH0sCiAgZmluaXNoOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZShPYmplY3QuZXh0ZW5kKHRoaXMub2xkU3R5bGUsIHsKICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLm9wdGlvbnMucmVzdG9yZWNvbG9yCiAgICB9KSk7CiAgfQp9KTsKCkVmZmVjdC5TY3JvbGxUbyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50c1sxXSB8fCB7IH0sCiAgICBzY3JvbGxPZmZzZXRzID0gZG9jdW1lbnQudmlld3BvcnQuZ2V0U2Nyb2xsT2Zmc2V0cygpLAogICAgZWxlbWVudE9mZnNldHMgPSAkKGVsZW1lbnQpLmN1bXVsYXRpdmVPZmZzZXQoKSwKICAgIG1heCA9ICh3aW5kb3cuaGVpZ2h0IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KSAtIGRvY3VtZW50LnZpZXdwb3J0LmdldEhlaWdodCgpOyAgCgogIGlmIChvcHRpb25zLm9mZnNldCkgZWxlbWVudE9mZnNldHNbMV0gKz0gb3B0aW9ucy5vZmZzZXQ7CgogIHJldHVybiBuZXcgRWZmZWN0LlR3ZWVuKG51bGwsCiAgICBzY3JvbGxPZmZzZXRzLnRvcCwKICAgIGVsZW1lbnRPZmZzZXRzWzFdID4gbWF4ID8gbWF4IDogZWxlbWVudE9mZnNldHNbMV0sCiAgICBvcHRpb25zLAogICAgZnVuY3Rpb24ocCl7IHNjcm9sbFRvKHNjcm9sbE9mZnNldHMubGVmdCwgcC5yb3VuZCgpKSB9CiAgKTsKfTsKCi8qIC0tLS0tLS0tLS0tLS0gY29tYmluYXRpb24gZWZmZWN0cyAtLS0tLS0tLS0tLS0tICovCgpFZmZlY3QuRmFkZSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkT3BhY2l0eSA9IGVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eSgpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICBmcm9tOiBlbGVtZW50LmdldE9wYWNpdHkoKSB8fCAxLjAsCiAgICB0bzogICAwLjAsCiAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgCiAgICAgIGlmIChlZmZlY3Qub3B0aW9ucy50byE9MCkgcmV0dXJuOwogICAgICBlZmZlY3QuZWxlbWVudC5oaWRlKCkuc2V0U3R5bGUoe29wYWNpdHk6IG9sZE9wYWNpdHl9KTsgCiAgICB9CiAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LG9wdGlvbnMpOwp9OwoKRWZmZWN0LkFwcGVhciA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogIGZyb206IChlbGVtZW50LmdldFN0eWxlKCdkaXNwbGF5JykgPT0gJ25vbmUnID8gMC4wIDogZWxlbWVudC5nZXRPcGFjaXR5KCkgfHwgMC4wKSwKICB0bzogICAxLjAsCiAgLy8gZm9yY2UgU2FmYXJpIHRvIHJlbmRlciBmbG9hdGVkIGVsZW1lbnRzIHByb3Blcmx5CiAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICBlZmZlY3QuZWxlbWVudC5mb3JjZVJlcmVuZGVyaW5nKCk7CiAgfSwKICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICBlZmZlY3QuZWxlbWVudC5zZXRPcGFjaXR5KGVmZmVjdC5vcHRpb25zLmZyb20pLnNob3coKTsgCiAgfX0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogIHJldHVybiBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCxvcHRpb25zKTsKfTsKCkVmZmVjdC5QdWZmID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRTdHlsZSA9IHsgCiAgICBvcGFjaXR5OiBlbGVtZW50LmdldElubGluZU9wYWNpdHkoKSwgCiAgICBwb3NpdGlvbjogZWxlbWVudC5nZXRTdHlsZSgncG9zaXRpb24nKSwKICAgIHRvcDogIGVsZW1lbnQuc3R5bGUudG9wLAogICAgbGVmdDogZWxlbWVudC5zdHlsZS5sZWZ0LAogICAgd2lkdGg6IGVsZW1lbnQuc3R5bGUud2lkdGgsCiAgICBoZWlnaHQ6IGVsZW1lbnQuc3R5bGUuaGVpZ2h0CiAgfTsKICByZXR1cm4gbmV3IEVmZmVjdC5QYXJhbGxlbCgKICAgWyBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIDIwMCwgCiAgICAgIHsgc3luYzogdHJ1ZSwgc2NhbGVGcm9tQ2VudGVyOiB0cnVlLCBzY2FsZUNvbnRlbnQ6IHRydWUsIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSB9KSwgCiAgICAgbmV3IEVmZmVjdC5PcGFjaXR5KGVsZW1lbnQsIHsgc3luYzogdHJ1ZSwgdG86IDAuMCB9ICkgXSwgCiAgICAgT2JqZWN0LmV4dGVuZCh7IGR1cmF0aW9uOiAxLjAsIAogICAgICBiZWZvcmVTZXR1cEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICBQb3NpdGlvbi5hYnNvbHV0aXplKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQpCiAgICAgIH0sCiAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICAgICBlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LmhpZGUoKS5zZXRTdHlsZShvbGRTdHlsZSk7IH0KICAgICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KQogICApOwp9OwoKRWZmZWN0LkJsaW5kVXAgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgZWxlbWVudC5tYWtlQ2xpcHBpbmcoKTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAwLAogICAgT2JqZWN0LmV4dGVuZCh7IHNjYWxlQ29udGVudDogZmFsc2UsIAogICAgICBzY2FsZVg6IGZhbHNlLCAKICAgICAgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlLAogICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICBlZmZlY3QuZWxlbWVudC5oaWRlKCkudW5kb0NsaXBwaW5nKCk7CiAgICAgIH0gCiAgICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KQogICk7Cn07CgpFZmZlY3QuQmxpbmREb3duID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBlbGVtZW50RGltZW5zaW9ucyA9IGVsZW1lbnQuZ2V0RGltZW5zaW9ucygpOwogIHJldHVybiBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIDEwMCwgT2JqZWN0LmV4dGVuZCh7IAogICAgc2NhbGVDb250ZW50OiBmYWxzZSwgCiAgICBzY2FsZVg6IGZhbHNlLAogICAgc2NhbGVGcm9tOiAwLAogICAgc2NhbGVNb2RlOiB7b3JpZ2luYWxIZWlnaHQ6IGVsZW1lbnREaW1lbnNpb25zLmhlaWdodCwgb3JpZ2luYWxXaWR0aDogZWxlbWVudERpbWVuc2lvbnMud2lkdGh9LAogICAgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlLAogICAgYWZ0ZXJTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50Lm1ha2VDbGlwcGluZygpLnNldFN0eWxlKHtoZWlnaHQ6ICcwcHgnfSkuc2hvdygpOyAKICAgIH0sICAKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVudC51bmRvQ2xpcHBpbmcoKTsKICAgIH0KICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KSk7Cn07CgpFZmZlY3QuU3dpdGNoT2ZmID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRPcGFjaXR5ID0gZWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5KCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuQXBwZWFyKGVsZW1lbnQsIE9iamVjdC5leHRlbmQoewogICAgZHVyYXRpb246IDAuNCwKICAgIGZyb206IDAsCiAgICB0cmFuc2l0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMuZmxpY2tlciwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBuZXcgRWZmZWN0LlNjYWxlKGVmZmVjdC5lbGVtZW50LCAxLCB7IAogICAgICAgIGR1cmF0aW9uOiAwLjMsIHNjYWxlRnJvbUNlbnRlcjogdHJ1ZSwKICAgICAgICBzY2FsZVg6IGZhbHNlLCBzY2FsZUNvbnRlbnQ6IGZhbHNlLCByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUsCiAgICAgICAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgeyAKICAgICAgICAgIGVmZmVjdC5lbGVtZW50Lm1ha2VQb3NpdGlvbmVkKCkubWFrZUNsaXBwaW5nKCk7CiAgICAgICAgfSwKICAgICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICAgIGVmZmVjdC5lbGVtZW50LmhpZGUoKS51bmRvQ2xpcHBpbmcoKS51bmRvUG9zaXRpb25lZCgpLnNldFN0eWxlKHtvcGFjaXR5OiBvbGRPcGFjaXR5fSk7CiAgICAgICAgfQogICAgICB9KQogICAgfQogIH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pKTsKfTsKCkVmZmVjdC5Ecm9wT3V0ID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRTdHlsZSA9IHsKICAgIHRvcDogZWxlbWVudC5nZXRTdHlsZSgndG9wJyksCiAgICBsZWZ0OiBlbGVtZW50LmdldFN0eWxlKCdsZWZ0JyksCiAgICBvcGFjaXR5OiBlbGVtZW50LmdldElubGluZU9wYWNpdHkoKSB9OwogIHJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKAogICAgWyBuZXcgRWZmZWN0Lk1vdmUoZWxlbWVudCwge3g6IDAsIHk6IDEwMCwgc3luYzogdHJ1ZSB9KSwgCiAgICAgIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7IHN5bmM6IHRydWUsIHRvOiAwLjAgfSkgXSwKICAgIE9iamVjdC5leHRlbmQoCiAgICAgIHsgZHVyYXRpb246IDAuNSwKICAgICAgICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgICAgICBlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50Lm1ha2VQb3NpdGlvbmVkKCk7IAogICAgICAgIH0sCiAgICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgICAgICBlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LmhpZGUoKS51bmRvUG9zaXRpb25lZCgpLnNldFN0eWxlKG9sZFN0eWxlKTsKICAgICAgICB9IAogICAgICB9LCBhcmd1bWVudHNbMV0gfHwgeyB9KSk7Cn07CgpFZmZlY3QuU2hha2UgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgIGRpc3RhbmNlOiAyMCwKICAgIGR1cmF0aW9uOiAwLjUKICB9LCBhcmd1bWVudHNbMV0gfHwge30pOwogIHZhciBkaXN0YW5jZSA9IHBhcnNlRmxvYXQob3B0aW9ucy5kaXN0YW5jZSk7CiAgdmFyIHNwbGl0ID0gcGFyc2VGbG9hdChvcHRpb25zLmR1cmF0aW9uKSAvIDEwLjA7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVtZW50LmdldFN0eWxlKCd0b3AnKSwKICAgIGxlZnQ6IGVsZW1lbnQuZ2V0U3R5bGUoJ2xlZnQnKSB9OwogICAgcmV0dXJuIG5ldyBFZmZlY3QuTW92ZShlbGVtZW50LAogICAgICB7IHg6ICBkaXN0YW5jZSwgeTogMCwgZHVyYXRpb246IHNwbGl0LCBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwKICAgICAgeyB4OiAtZGlzdGFuY2UqMiwgeTogMCwgZHVyYXRpb246IHNwbGl0KjIsICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwKICAgICAgeyB4OiAgZGlzdGFuY2UqMiwgeTogMCwgZHVyYXRpb246IHNwbGl0KjIsICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwKICAgICAgeyB4OiAtZGlzdGFuY2UqMiwgeTogMCwgZHVyYXRpb246IHNwbGl0KjIsICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwKICAgICAgeyB4OiAgZGlzdGFuY2UqMiwgeTogMCwgZHVyYXRpb246IHNwbGl0KjIsICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwKICAgICAgeyB4OiAtZGlzdGFuY2UsIHk6IDAsIGR1cmF0aW9uOiBzcGxpdCwgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgICAgZWZmZWN0LmVsZW1lbnQudW5kb1Bvc2l0aW9uZWQoKS5zZXRTdHlsZShvbGRTdHlsZSk7CiAgfX0pIH19KSB9fSkgfX0pIH19KSB9fSk7Cn07CgpFZmZlY3QuU2xpZGVEb3duID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpLmNsZWFuV2hpdGVzcGFjZSgpOwogIC8vIFNsaWRlRG93biBuZWVkIHRvIGhhdmUgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgd3JhcHBlZCBpbiBhIGNvbnRhaW5lciBlbGVtZW50IHdpdGggZml4ZWQgaGVpZ2h0IQogIHZhciBvbGRJbm5lckJvdHRvbSA9IGVsZW1lbnQuZG93bigpLmdldFN0eWxlKCdib3R0b20nKTsKICB2YXIgZWxlbWVudERpbWVuc2lvbnMgPSBlbGVtZW50LmdldERpbWVuc2lvbnMoKTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAxMDAsIE9iamVjdC5leHRlbmQoeyAKICAgIHNjYWxlQ29udGVudDogZmFsc2UsIAogICAgc2NhbGVYOiBmYWxzZSwgCiAgICBzY2FsZUZyb206IHdpbmRvdy5vcGVyYSA/IDAgOiAxLAogICAgc2NhbGVNb2RlOiB7b3JpZ2luYWxIZWlnaHQ6IGVsZW1lbnREaW1lbnNpb25zLmhlaWdodCwgb3JpZ2luYWxXaWR0aDogZWxlbWVudERpbWVuc2lvbnMud2lkdGh9LAogICAgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlLAogICAgYWZ0ZXJTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50Lm1ha2VQb3NpdGlvbmVkKCk7CiAgICAgIGVmZmVjdC5lbGVtZW50LmRvd24oKS5tYWtlUG9zaXRpb25lZCgpOwogICAgICBpZiAod2luZG93Lm9wZXJhKSBlZmZlY3QuZWxlbWVudC5zZXRTdHlsZSh7dG9wOiAnJ30pOwogICAgICBlZmZlY3QuZWxlbWVudC5tYWtlQ2xpcHBpbmcoKS5zZXRTdHlsZSh7aGVpZ2h0OiAnMHB4J30pLnNob3coKTsgCiAgICB9LAogICAgYWZ0ZXJVcGRhdGVJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50LmRvd24oKS5zZXRTdHlsZSh7Ym90dG9tOgogICAgICAgIChlZmZlY3QuZGltc1swXSAtIGVmZmVjdC5lbGVtZW50LmNsaWVudEhlaWdodCkgKyAncHgnIH0pOyAKICAgIH0sCiAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgZWZmZWN0LmVsZW1lbnQudW5kb0NsaXBwaW5nKCkudW5kb1Bvc2l0aW9uZWQoKTsKICAgICAgZWZmZWN0LmVsZW1lbnQuZG93bigpLnVuZG9Qb3NpdGlvbmVkKCkuc2V0U3R5bGUoe2JvdHRvbTogb2xkSW5uZXJCb3R0b219KTsgfQogICAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSkKICApOwp9OwoKRWZmZWN0LlNsaWRlVXAgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCkuY2xlYW5XaGl0ZXNwYWNlKCk7CiAgdmFyIG9sZElubmVyQm90dG9tID0gZWxlbWVudC5kb3duKCkuZ2V0U3R5bGUoJ2JvdHRvbScpOwogIHZhciBlbGVtZW50RGltZW5zaW9ucyA9IGVsZW1lbnQuZ2V0RGltZW5zaW9ucygpOwogIHJldHVybiBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIHdpbmRvdy5vcGVyYSA/IDAgOiAxLAogICBPYmplY3QuZXh0ZW5kKHsgc2NhbGVDb250ZW50OiBmYWxzZSwgCiAgICBzY2FsZVg6IGZhbHNlLCAKICAgIHNjYWxlTW9kZTogJ2JveCcsCiAgICBzY2FsZUZyb206IDEwMCwKICAgIHNjYWxlTW9kZToge29yaWdpbmFsSGVpZ2h0OiBlbGVtZW50RGltZW5zaW9ucy5oZWlnaHQsIG9yaWdpbmFsV2lkdGg6IGVsZW1lbnREaW1lbnNpb25zLndpZHRofSwKICAgIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgIGFmdGVyU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVudC5tYWtlUG9zaXRpb25lZCgpOwogICAgICBlZmZlY3QuZWxlbWVudC5kb3duKCkubWFrZVBvc2l0aW9uZWQoKTsKICAgICAgaWYgKHdpbmRvdy5vcGVyYSkgZWZmZWN0LmVsZW1lbnQuc2V0U3R5bGUoe3RvcDogJyd9KTsKICAgICAgZWZmZWN0LmVsZW1lbnQubWFrZUNsaXBwaW5nKCkuc2hvdygpOwogICAgfSwgIAogICAgYWZ0ZXJVcGRhdGVJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50LmRvd24oKS5zZXRTdHlsZSh7Ym90dG9tOgogICAgICAgIChlZmZlY3QuZGltc1swXSAtIGVmZmVjdC5lbGVtZW50LmNsaWVudEhlaWdodCkgKyAncHgnIH0pOwogICAgfSwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVudC5oaWRlKCkudW5kb0NsaXBwaW5nKCkudW5kb1Bvc2l0aW9uZWQoKTsKICAgICAgZWZmZWN0LmVsZW1lbnQuZG93bigpLnVuZG9Qb3NpdGlvbmVkKCkuc2V0U3R5bGUoe2JvdHRvbTogb2xkSW5uZXJCb3R0b219KTsKICAgIH0KICAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSkKICApOwp9OwoKLy8gQnVnIGluIG9wZXJhIG1ha2VzIHRoZSBURCBjb250YWluaW5nIHRoaXMgZWxlbWVudCBleHBhbmQgZm9yIGEgaW5zdGFuY2UgYWZ0ZXIgZmluaXNoIApFZmZlY3QuU3F1aXNoID0gZnVuY3Rpb24oZWxlbWVudCkgewogIHJldHVybiBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIHdpbmRvdy5vcGVyYSA/IDEgOiAwLCB7IAogICAgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlLAogICAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBlZmZlY3QuZWxlbWVudC5tYWtlQ2xpcHBpbmcoKTsgCiAgICB9LCAgCiAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgZWZmZWN0LmVsZW1lbnQuaGlkZSgpLnVuZG9DbGlwcGluZygpOyAKICAgIH0KICB9KTsKfTsKCkVmZmVjdC5Hcm93ID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICBkaXJlY3Rpb246ICdjZW50ZXInLAogICAgbW92ZVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAgIHNjYWxlVHJhbnNpdGlvbjogRWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsLAogICAgb3BhY2l0eVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5mdWxsCiAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSk7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVtZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIGhlaWdodDogZWxlbWVudC5zdHlsZS5oZWlnaHQsCiAgICB3aWR0aDogZWxlbWVudC5zdHlsZS53aWR0aCwKICAgIG9wYWNpdHk6IGVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eSgpIH07CgogIHZhciBkaW1zID0gZWxlbWVudC5nZXREaW1lbnNpb25zKCk7ICAgIAogIHZhciBpbml0aWFsTW92ZVgsIGluaXRpYWxNb3ZlWTsKICB2YXIgbW92ZVgsIG1vdmVZOwogIAogIHN3aXRjaCAob3B0aW9ucy5kaXJlY3Rpb24pIHsKICAgIGNhc2UgJ3RvcC1sZWZ0JzoKICAgICAgaW5pdGlhbE1vdmVYID0gaW5pdGlhbE1vdmVZID0gbW92ZVggPSBtb3ZlWSA9IDA7IAogICAgICBicmVhazsKICAgIGNhc2UgJ3RvcC1yaWdodCc6CiAgICAgIGluaXRpYWxNb3ZlWCA9IGRpbXMud2lkdGg7CiAgICAgIGluaXRpYWxNb3ZlWSA9IG1vdmVZID0gMDsKICAgICAgbW92ZVggPSAtZGltcy53aWR0aDsKICAgICAgYnJlYWs7CiAgICBjYXNlICdib3R0b20tbGVmdCc6CiAgICAgIGluaXRpYWxNb3ZlWCA9IG1vdmVYID0gMDsKICAgICAgaW5pdGlhbE1vdmVZID0gZGltcy5oZWlnaHQ7CiAgICAgIG1vdmVZID0gLWRpbXMuaGVpZ2h0OwogICAgICBicmVhazsKICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6CiAgICAgIGluaXRpYWxNb3ZlWCA9IGRpbXMud2lkdGg7CiAgICAgIGluaXRpYWxNb3ZlWSA9IGRpbXMuaGVpZ2h0OwogICAgICBtb3ZlWCA9IC1kaW1zLndpZHRoOwogICAgICBtb3ZlWSA9IC1kaW1zLmhlaWdodDsKICAgICAgYnJlYWs7CiAgICBjYXNlICdjZW50ZXInOgogICAgICBpbml0aWFsTW92ZVggPSBkaW1zLndpZHRoIC8gMjsKICAgICAgaW5pdGlhbE1vdmVZID0gZGltcy5oZWlnaHQgLyAyOwogICAgICBtb3ZlWCA9IC1kaW1zLndpZHRoIC8gMjsKICAgICAgbW92ZVkgPSAtZGltcy5oZWlnaHQgLyAyOwogICAgICBicmVhazsKICB9CiAgCiAgcmV0dXJuIG5ldyBFZmZlY3QuTW92ZShlbGVtZW50LCB7CiAgICB4OiBpbml0aWFsTW92ZVgsCiAgICB5OiBpbml0aWFsTW92ZVksCiAgICBkdXJhdGlvbjogMC4wMSwgCiAgICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5lbGVtZW50LmhpZGUoKS5tYWtlQ2xpcHBpbmcoKS5tYWtlUG9zaXRpb25lZCgpOwogICAgfSwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBuZXcgRWZmZWN0LlBhcmFsbGVsKAogICAgICAgIFsgbmV3IEVmZmVjdC5PcGFjaXR5KGVmZmVjdC5lbGVtZW50LCB7IHN5bmM6IHRydWUsIHRvOiAxLjAsIGZyb206IDAuMCwgdHJhbnNpdGlvbjogb3B0aW9ucy5vcGFjaXR5VHJhbnNpdGlvbiB9KSwKICAgICAgICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwgeyB4OiBtb3ZlWCwgeTogbW92ZVksIHN5bmM6IHRydWUsIHRyYW5zaXRpb246IG9wdGlvbnMubW92ZVRyYW5zaXRpb24gfSksCiAgICAgICAgICBuZXcgRWZmZWN0LlNjYWxlKGVmZmVjdC5lbGVtZW50LCAxMDAsIHsKICAgICAgICAgICAgc2NhbGVNb2RlOiB7IG9yaWdpbmFsSGVpZ2h0OiBkaW1zLmhlaWdodCwgb3JpZ2luYWxXaWR0aDogZGltcy53aWR0aCB9LCAKICAgICAgICAgICAgc3luYzogdHJ1ZSwgc2NhbGVGcm9tOiB3aW5kb3cub3BlcmEgPyAxIDogMCwgdHJhbnNpdGlvbjogb3B0aW9ucy5zY2FsZVRyYW5zaXRpb24sIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZX0pCiAgICAgICAgXSwgT2JqZWN0LmV4dGVuZCh7CiAgICAgICAgICAgICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgICAgICAgICAgIGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQuc2V0U3R5bGUoe2hlaWdodDogJzBweCd9KS5zaG93KCk7IAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICAgICAgICAgICBlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LnVuZG9DbGlwcGluZygpLnVuZG9Qb3NpdGlvbmVkKCkuc2V0U3R5bGUob2xkU3R5bGUpOyAKICAgICAgICAgICAgIH0KICAgICAgICAgICB9LCBvcHRpb25zKQogICAgICApCiAgICB9CiAgfSk7Cn07CgpFZmZlY3QuU2hyaW5rID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICBkaXJlY3Rpb246ICdjZW50ZXInLAogICAgbW92ZVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAgIHNjYWxlVHJhbnNpdGlvbjogRWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsLAogICAgb3BhY2l0eVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5ub25lCiAgfSwgYXJndW1lbnRzWzFdIHx8IHsgfSk7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVtZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIGhlaWdodDogZWxlbWVudC5zdHlsZS5oZWlnaHQsCiAgICB3aWR0aDogZWxlbWVudC5zdHlsZS53aWR0aCwKICAgIG9wYWNpdHk6IGVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eSgpIH07CgogIHZhciBkaW1zID0gZWxlbWVudC5nZXREaW1lbnNpb25zKCk7CiAgdmFyIG1vdmVYLCBtb3ZlWTsKICAKICBzd2l0Y2ggKG9wdGlvbnMuZGlyZWN0aW9uKSB7CiAgICBjYXNlICd0b3AtbGVmdCc6CiAgICAgIG1vdmVYID0gbW92ZVkgPSAwOwogICAgICBicmVhazsKICAgIGNhc2UgJ3RvcC1yaWdodCc6CiAgICAgIG1vdmVYID0gZGltcy53aWR0aDsKICAgICAgbW92ZVkgPSAwOwogICAgICBicmVhazsKICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzoKICAgICAgbW92ZVggPSAwOwogICAgICBtb3ZlWSA9IGRpbXMuaGVpZ2h0OwogICAgICBicmVhazsKICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6CiAgICAgIG1vdmVYID0gZGltcy53aWR0aDsKICAgICAgbW92ZVkgPSBkaW1zLmhlaWdodDsKICAgICAgYnJlYWs7CiAgICBjYXNlICdjZW50ZXInOiAgCiAgICAgIG1vdmVYID0gZGltcy53aWR0aCAvIDI7CiAgICAgIG1vdmVZID0gZGltcy5oZWlnaHQgLyAyOwogICAgICBicmVhazsKICB9CiAgCiAgcmV0dXJuIG5ldyBFZmZlY3QuUGFyYWxsZWwoCiAgICBbIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCB7IHN5bmM6IHRydWUsIHRvOiAwLjAsIGZyb206IDEuMCwgdHJhbnNpdGlvbjogb3B0aW9ucy5vcGFjaXR5VHJhbnNpdGlvbiB9KSwKICAgICAgbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCB3aW5kb3cub3BlcmEgPyAxIDogMCwgeyBzeW5jOiB0cnVlLCB0cmFuc2l0aW9uOiBvcHRpb25zLnNjYWxlVHJhbnNpdGlvbiwgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlfSksCiAgICAgIG5ldyBFZmZlY3QuTW92ZShlbGVtZW50LCB7IHg6IG1vdmVYLCB5OiBtb3ZlWSwgc3luYzogdHJ1ZSwgdHJhbnNpdGlvbjogb3B0aW9ucy5tb3ZlVHJhbnNpdGlvbiB9KQogICAgXSwgT2JqZWN0LmV4dGVuZCh7ICAgICAgICAgICAgCiAgICAgICAgIGJlZm9yZVN0YXJ0SW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICAgICAgIGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQubWFrZVBvc2l0aW9uZWQoKS5tYWtlQ2xpcHBpbmcoKTsgCiAgICAgICAgIH0sCiAgICAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICAgICAgIGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQuaGlkZSgpLnVuZG9DbGlwcGluZygpLnVuZG9Qb3NpdGlvbmVkKCkuc2V0U3R5bGUob2xkU3R5bGUpOyB9CiAgICAgICB9LCBvcHRpb25zKQogICk7Cn07CgpFZmZlY3QuUHVsc2F0ZSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb3B0aW9ucyAgICA9IGFyZ3VtZW50c1sxXSB8fCB7IH07CiAgdmFyIG9sZE9wYWNpdHkgPSBlbGVtZW50LmdldElubGluZU9wYWNpdHkoKTsKICB2YXIgdHJhbnNpdGlvbiA9IG9wdGlvbnMudHJhbnNpdGlvbiB8fCBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWw7CiAgdmFyIHJldmVyc2VyICAgPSBmdW5jdGlvbihwb3MpeyByZXR1cm4gdHJhbnNpdGlvbigxLUVmZmVjdC5UcmFuc2l0aW9ucy5wdWxzZShwb3MsIG9wdGlvbnMucHVsc2VzKSkgfTsKICByZXZlcnNlci5iaW5kKHRyYW5zaXRpb24pOwogIHJldHVybiBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCwgCiAgICBPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRlbmQoeyAgZHVyYXRpb246IDIuMCwgZnJvbTogMCwKICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IGVmZmVjdC5lbGVtZW50LnNldFN0eWxlKHtvcGFjaXR5OiBvbGRPcGFjaXR5fSk7IH0KICAgIH0sIG9wdGlvbnMpLCB7dHJhbnNpdGlvbjogcmV2ZXJzZXJ9KSk7Cn07CgpFZmZlY3QuRm9sZCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkU3R5bGUgPSB7CiAgICB0b3A6IGVsZW1lbnQuc3R5bGUudG9wLAogICAgbGVmdDogZWxlbWVudC5zdHlsZS5sZWZ0LAogICAgd2lkdGg6IGVsZW1lbnQuc3R5bGUud2lkdGgsCiAgICBoZWlnaHQ6IGVsZW1lbnQuc3R5bGUuaGVpZ2h0IH07CiAgZWxlbWVudC5tYWtlQ2xpcHBpbmcoKTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCA1LCBPYmplY3QuZXh0ZW5kKHsgICAKICAgIHNjYWxlQ29udGVudDogZmFsc2UsCiAgICBzY2FsZVg6IGZhbHNlLAogICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIDEsIHsgCiAgICAgIHNjYWxlQ29udGVudDogZmFsc2UsIAogICAgICBzY2FsZVk6IGZhbHNlLAogICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICBlZmZlY3QuZWxlbWVudC5oaWRlKCkudW5kb0NsaXBwaW5nKCkuc2V0U3R5bGUob2xkU3R5bGUpOwogICAgICB9IH0pOwogIH19LCBhcmd1bWVudHNbMV0gfHwgeyB9KSk7Cn07CgpFZmZlY3QuTW9ycGggPSBDbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2UsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKCF0aGlzLmVsZW1lbnQpIHRocm93KEVmZmVjdC5fZWxlbWVudERvZXNOb3RFeGlzdEVycm9yKTsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIHN0eWxlOiB7IH0KICAgIH0sIGFyZ3VtZW50c1sxXSB8fCB7IH0pOwogICAgCiAgICBpZiAoIU9iamVjdC5pc1N0cmluZyhvcHRpb25zLnN0eWxlKSkgdGhpcy5zdHlsZSA9ICRIKG9wdGlvbnMuc3R5bGUpOwogICAgZWxzZSB7CiAgICAgIGlmIChvcHRpb25zLnN0eWxlLmluY2x1ZGUoJzonKSkKICAgICAgICB0aGlzLnN0eWxlID0gb3B0aW9ucy5zdHlsZS5wYXJzZVN0eWxlKCk7CiAgICAgIGVsc2UgewogICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzc05hbWUob3B0aW9ucy5zdHlsZSk7CiAgICAgICAgdGhpcy5zdHlsZSA9ICRIKHRoaXMuZWxlbWVudC5nZXRTdHlsZXMoKSk7CiAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzTmFtZShvcHRpb25zLnN0eWxlKTsKICAgICAgICB2YXIgY3NzID0gdGhpcy5lbGVtZW50LmdldFN0eWxlcygpOwogICAgICAgIHRoaXMuc3R5bGUgPSB0aGlzLnN0eWxlLnJlamVjdChmdW5jdGlvbihzdHlsZSkgewogICAgICAgICAgcmV0dXJuIHN0eWxlLnZhbHVlID09IGNzc1tzdHlsZS5rZXldOwogICAgICAgIH0pOwogICAgICAgIG9wdGlvbnMuYWZ0ZXJGaW5pc2hJbnRlcm5hbCA9IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICAgICAgZWZmZWN0LmVsZW1lbnQuYWRkQ2xhc3NOYW1lKGVmZmVjdC5vcHRpb25zLnN0eWxlKTsKICAgICAgICAgIGVmZmVjdC50cmFuc2Zvcm1zLmVhY2goZnVuY3Rpb24odHJhbnNmb3JtKSB7CiAgICAgICAgICAgIGVmZmVjdC5lbGVtZW50LnN0eWxlW3RyYW5zZm9ybS5zdHlsZV0gPSAnJzsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgdGhpcy5zdGFydChvcHRpb25zKTsKICB9LAogIAogIHNldHVwOiBmdW5jdGlvbigpewogICAgZnVuY3Rpb24gcGFyc2VDb2xvcihjb2xvcil7CiAgICAgIGlmICghY29sb3IgfHwgWydyZ2JhKDAsIDAsIDAsIDApJywndHJhbnNwYXJlbnQnXS5pbmNsdWRlKGNvbG9yKSkgY29sb3IgPSAnI2ZmZmZmZic7CiAgICAgIGNvbG9yID0gY29sb3IucGFyc2VDb2xvcigpOwogICAgICByZXR1cm4gJFIoMCwyKS5tYXAoZnVuY3Rpb24oaSl7CiAgICAgICAgcmV0dXJuIHBhcnNlSW50KCBjb2xvci5zbGljZShpKjIrMSxpKjIrMyksIDE2ICkgCiAgICAgIH0pOwogICAgfQogICAgdGhpcy50cmFuc2Zvcm1zID0gdGhpcy5zdHlsZS5tYXAoZnVuY3Rpb24ocGFpcil7CiAgICAgIHZhciBwcm9wZXJ0eSA9IHBhaXJbMF0sIHZhbHVlID0gcGFpclsxXSwgdW5pdCA9IG51bGw7CgogICAgICBpZiAodmFsdWUucGFyc2VDb2xvcignI3p6enp6eicpICE9ICcjenp6enp6JykgewogICAgICAgIHZhbHVlID0gdmFsdWUucGFyc2VDb2xvcigpOwogICAgICAgIHVuaXQgID0gJ2NvbG9yJzsKICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSAnb3BhY2l0eScpIHsKICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOwogICAgICAgIGlmIChQcm90b3R5cGUuQnJvd3Nlci5JRSAmJiAoIXRoaXMuZWxlbWVudC5jdXJyZW50U3R5bGUuaGFzTGF5b3V0KSkKICAgICAgICAgIHRoaXMuZWxlbWVudC5zZXRTdHlsZSh7em9vbTogMX0pOwogICAgICB9IGVsc2UgaWYgKEVsZW1lbnQuQ1NTX0xFTkdUSC50ZXN0KHZhbHVlKSkgewogICAgICAgICAgdmFyIGNvbXBvbmVudHMgPSB2YWx1ZS5tYXRjaCgvXihbXCtcLV0/WzAtOVwuXSspKC4qKSQvKTsKICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnRzWzFdKTsKICAgICAgICAgIHVuaXQgPSAoY29tcG9uZW50cy5sZW5ndGggPT0gMykgPyBjb21wb25lbnRzWzJdIDogbnVsbDsKICAgICAgfQoKICAgICAgdmFyIG9yaWdpbmFsVmFsdWUgPSB0aGlzLmVsZW1lbnQuZ2V0U3R5bGUocHJvcGVydHkpOwogICAgICByZXR1cm4geyAKICAgICAgICBzdHlsZTogcHJvcGVydHkuY2FtZWxpemUoKSwgCiAgICAgICAgb3JpZ2luYWxWYWx1ZTogdW5pdD09J2NvbG9yJyA/IHBhcnNlQ29sb3Iob3JpZ2luYWxWYWx1ZSkgOiBwYXJzZUZsb2F0KG9yaWdpbmFsVmFsdWUgfHwgMCksIAogICAgICAgIHRhcmdldFZhbHVlOiB1bml0PT0nY29sb3InID8gcGFyc2VDb2xvcih2YWx1ZSkgOiB2YWx1ZSwKICAgICAgICB1bml0OiB1bml0CiAgICAgIH07CiAgICB9LmJpbmQodGhpcykpLnJlamVjdChmdW5jdGlvbih0cmFuc2Zvcm0pewogICAgICByZXR1cm4gKAogICAgICAgICh0cmFuc2Zvcm0ub3JpZ2luYWxWYWx1ZSA9PSB0cmFuc2Zvcm0udGFyZ2V0VmFsdWUpIHx8CiAgICAgICAgKAogICAgICAgICAgdHJhbnNmb3JtLnVuaXQgIT0gJ2NvbG9yJyAmJgogICAgICAgICAgKGlzTmFOKHRyYW5zZm9ybS5vcmlnaW5hbFZhbHVlKSB8fCBpc05hTih0cmFuc2Zvcm0udGFyZ2V0VmFsdWUpKQogICAgICAgICkKICAgICAgKQogICAgfSk7CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICB2YXIgc3R5bGUgPSB7IH0sIHRyYW5zZm9ybSwgaSA9IHRoaXMudHJhbnNmb3Jtcy5sZW5ndGg7CiAgICB3aGlsZShpLS0pCiAgICAgIHN0eWxlWyh0cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybXNbaV0pLnN0eWxlXSA9IAogICAgICAgIHRyYW5zZm9ybS51bml0PT0nY29sb3InID8gJyMnKwogICAgICAgICAgKE1hdGgucm91bmQodHJhbnNmb3JtLm9yaWdpbmFsVmFsdWVbMF0rCiAgICAgICAgICAgICh0cmFuc2Zvcm0udGFyZ2V0VmFsdWVbMF0tdHJhbnNmb3JtLm9yaWdpbmFsVmFsdWVbMF0pKnBvc2l0aW9uKSkudG9Db2xvclBhcnQoKSArCiAgICAgICAgICAoTWF0aC5yb3VuZCh0cmFuc2Zvcm0ub3JpZ2luYWxWYWx1ZVsxXSsKICAgICAgICAgICAgKHRyYW5zZm9ybS50YXJnZXRWYWx1ZVsxXS10cmFuc2Zvcm0ub3JpZ2luYWxWYWx1ZVsxXSkqcG9zaXRpb24pKS50b0NvbG9yUGFydCgpICsKICAgICAgICAgIChNYXRoLnJvdW5kKHRyYW5zZm9ybS5vcmlnaW5hbFZhbHVlWzJdKwogICAgICAgICAgICAodHJhbnNmb3JtLnRhcmdldFZhbHVlWzJdLXRyYW5zZm9ybS5vcmlnaW5hbFZhbHVlWzJdKSpwb3NpdGlvbikpLnRvQ29sb3JQYXJ0KCkgOgogICAgICAgICh0cmFuc2Zvcm0ub3JpZ2luYWxWYWx1ZSArCiAgICAgICAgICAodHJhbnNmb3JtLnRhcmdldFZhbHVlIC0gdHJhbnNmb3JtLm9yaWdpbmFsVmFsdWUpICogcG9zaXRpb24pLnRvRml4ZWQoMykgKyAKICAgICAgICAgICAgKHRyYW5zZm9ybS51bml0ID09PSBudWxsID8gJycgOiB0cmFuc2Zvcm0udW5pdCk7CiAgICB0aGlzLmVsZW1lbnQuc2V0U3R5bGUoc3R5bGUsIHRydWUpOwogIH0KfSk7CgpFZmZlY3QuVHJhbnNmb3JtID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFsaXplOiBmdW5jdGlvbih0cmFja3MpewogICAgdGhpcy50cmFja3MgID0gW107CiAgICB0aGlzLm9wdGlvbnMgPSBhcmd1bWVudHNbMV0gfHwgeyB9OwogICAgdGhpcy5hZGRUcmFja3ModHJhY2tzKTsKICB9LAogIGFkZFRyYWNrczogZnVuY3Rpb24odHJhY2tzKXsKICAgIHRyYWNrcy5lYWNoKGZ1bmN0aW9uKHRyYWNrKXsKICAgICAgdHJhY2sgPSAkSCh0cmFjayk7CiAgICAgIHZhciBkYXRhID0gdHJhY2sudmFsdWVzKCkuZmlyc3QoKTsKICAgICAgdGhpcy50cmFja3MucHVzaCgkSCh7CiAgICAgICAgaWRzOiAgICAgdHJhY2sua2V5cygpLmZpcnN0KCksCiAgICAgICAgZWZmZWN0OiAgRWZmZWN0Lk1vcnBoLAogICAgICAgIG9wdGlvbnM6IHsgc3R5bGU6IGRhdGEgfQogICAgICB9KSk7CiAgICB9LmJpbmQodGhpcykpOwogICAgcmV0dXJuIHRoaXM7CiAgfSwKICBwbGF5OiBmdW5jdGlvbigpewogICAgcmV0dXJuIG5ldyBFZmZlY3QuUGFyYWxsZWwoCiAgICAgIHRoaXMudHJhY2tzLm1hcChmdW5jdGlvbih0cmFjayl7CiAgICAgICAgdmFyIGlkcyA9IHRyYWNrLmdldCgnaWRzJyksIGVmZmVjdCA9IHRyYWNrLmdldCgnZWZmZWN0JyksIG9wdGlvbnMgPSB0cmFjay5nZXQoJ29wdGlvbnMnKTsKICAgICAgICB2YXIgZWxlbWVudHMgPSBbJChpZHMpIHx8ICQkKGlkcyldLmZsYXR0ZW4oKTsKICAgICAgICByZXR1cm4gZWxlbWVudHMubWFwKGZ1bmN0aW9uKGUpeyByZXR1cm4gbmV3IGVmZmVjdChlLCBPYmplY3QuZXh0ZW5kKHsgc3luYzp0cnVlIH0sIG9wdGlvbnMpKSB9KTsKICAgICAgfSkuZmxhdHRlbigpLAogICAgICB0aGlzLm9wdGlvbnMKICAgICk7CiAgfQp9KTsKCkVsZW1lbnQuQ1NTX1BST1BFUlRJRVMgPSAkdygKICAnYmFja2dyb3VuZENvbG9yIGJhY2tncm91bmRQb3NpdGlvbiBib3JkZXJCb3R0b21Db2xvciBib3JkZXJCb3R0b21TdHlsZSAnICsgCiAgJ2JvcmRlckJvdHRvbVdpZHRoIGJvcmRlckxlZnRDb2xvciBib3JkZXJMZWZ0U3R5bGUgYm9yZGVyTGVmdFdpZHRoICcgKwogICdib3JkZXJSaWdodENvbG9yIGJvcmRlclJpZ2h0U3R5bGUgYm9yZGVyUmlnaHRXaWR0aCBib3JkZXJTcGFjaW5nICcgKwogICdib3JkZXJUb3BDb2xvciBib3JkZXJUb3BTdHlsZSBib3JkZXJUb3BXaWR0aCBib3R0b20gY2xpcCBjb2xvciAnICsKICAnZm9udFNpemUgZm9udFdlaWdodCBoZWlnaHQgbGVmdCBsZXR0ZXJTcGFjaW5nIGxpbmVIZWlnaHQgJyArCiAgJ21hcmdpbkJvdHRvbSBtYXJnaW5MZWZ0IG1hcmdpblJpZ2h0IG1hcmdpblRvcCBtYXJrZXJPZmZzZXQgbWF4SGVpZ2h0ICcrCiAgJ21heFdpZHRoIG1pbkhlaWdodCBtaW5XaWR0aCBvcGFjaXR5IG91dGxpbmVDb2xvciBvdXRsaW5lT2Zmc2V0ICcgKwogICdvdXRsaW5lV2lkdGggcGFkZGluZ0JvdHRvbSBwYWRkaW5nTGVmdCBwYWRkaW5nUmlnaHQgcGFkZGluZ1RvcCAnICsKICAncmlnaHQgdGV4dEluZGVudCB0b3Agd2lkdGggd29yZFNwYWNpbmcgekluZGV4Jyk7CiAgCkVsZW1lbnQuQ1NTX0xFTkdUSCA9IC9eKChbXCtcLV0/WzAtOVwuXSspKGVtfGV4fHB4fGlufGNtfG1tfHB0fHBjfFwlKSl8MCQvOwoKU3RyaW5nLl9fcGFyc2VTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKU3RyaW5nLnByb3RvdHlwZS5wYXJzZVN0eWxlID0gZnVuY3Rpb24oKXsKICB2YXIgc3R5bGUsIHN0eWxlUnVsZXMgPSAkSCgpOwogIGlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQpCiAgICBzdHlsZSA9IG5ldyBFbGVtZW50KCdkaXYnLHtzdHlsZTp0aGlzfSkuc3R5bGU7CiAgZWxzZSB7CiAgICBTdHJpbmcuX19wYXJzZVN0eWxlRWxlbWVudC5pbm5lckhUTUwgPSAnPGRpdiBzdHlsZT0iJyArIHRoaXMgKyAnIj48L2Rpdj4nOwogICAgc3R5bGUgPSBTdHJpbmcuX19wYXJzZVN0eWxlRWxlbWVudC5jaGlsZE5vZGVzWzBdLnN0eWxlOwogIH0KICAKICBFbGVtZW50LkNTU19QUk9QRVJUSUVTLmVhY2goZnVuY3Rpb24ocHJvcGVydHkpewogICAgaWYgKHN0eWxlW3Byb3BlcnR5XSkgc3R5bGVSdWxlcy5zZXQocHJvcGVydHksIHN0eWxlW3Byb3BlcnR5XSk7IAogIH0pOwogIAogIGlmIChQcm90b3R5cGUuQnJvd3Nlci5JRSAmJiB0aGlzLmluY2x1ZGUoJ29wYWNpdHknKSkKICAgIHN0eWxlUnVsZXMuc2V0KCdvcGFjaXR5JywgdGhpcy5tYXRjaCgvb3BhY2l0eTpccyooKD86MHwxKT8oPzpcLlxkKik/KS8pWzFdKTsKCiAgcmV0dXJuIHN0eWxlUnVsZXM7Cn07CgppZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcgJiYgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSkgewogIEVsZW1lbnQuZ2V0U3R5bGVzID0gZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIGNzcyA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoJChlbGVtZW50KSwgbnVsbCk7CiAgICByZXR1cm4gRWxlbWVudC5DU1NfUFJPUEVSVElFUy5pbmplY3QoeyB9LCBmdW5jdGlvbihzdHlsZXMsIHByb3BlcnR5KSB7CiAgICAgIHN0eWxlc1twcm9wZXJ0eV0gPSBjc3NbcHJvcGVydHldOwogICAgICByZXR1cm4gc3R5bGVzOwogICAgfSk7CiAgfTsKfSBlbHNlIHsKICBFbGVtZW50LmdldFN0eWxlcyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGNzcyA9IGVsZW1lbnQuY3VycmVudFN0eWxlLCBzdHlsZXM7CiAgICBzdHlsZXMgPSBFbGVtZW50LkNTU19QUk9QRVJUSUVTLmluamVjdCh7IH0sIGZ1bmN0aW9uKHJlc3VsdHMsIHByb3BlcnR5KSB7CiAgICAgIHJlc3VsdHNbcHJvcGVydHldID0gY3NzW3Byb3BlcnR5XTsKICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9KTsKICAgIGlmICghc3R5bGVzLm9wYWNpdHkpIHN0eWxlcy5vcGFjaXR5ID0gZWxlbWVudC5nZXRPcGFjaXR5KCk7CiAgICByZXR1cm4gc3R5bGVzOwogIH07Cn07CgpFZmZlY3QuTWV0aG9kcyA9IHsKICBtb3JwaDogZnVuY3Rpb24oZWxlbWVudCwgc3R5bGUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgbmV3IEVmZmVjdC5Nb3JwaChlbGVtZW50LCBPYmplY3QuZXh0ZW5kKHsgc3R5bGU6IHN0eWxlIH0sIGFyZ3VtZW50c1syXSB8fCB7IH0pKTsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCiAgdmlzdWFsRWZmZWN0OiBmdW5jdGlvbihlbGVtZW50LCBlZmZlY3QsIG9wdGlvbnMpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpCiAgICB2YXIgcyA9IGVmZmVjdC5kYXNoZXJpemUoKS5jYW1lbGl6ZSgpLCBrbGFzcyA9IHMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzLnN1YnN0cmluZygxKTsKICAgIG5ldyBFZmZlY3Rba2xhc3NdKGVsZW1lbnQsIG9wdGlvbnMpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKICBoaWdobGlnaHQ6IGZ1bmN0aW9uKGVsZW1lbnQsIG9wdGlvbnMpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgbmV3IEVmZmVjdC5IaWdobGlnaHQoZWxlbWVudCwgb3B0aW9ucyk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9Cn07CgokdygnZmFkZSBhcHBlYXIgZ3JvdyBzaHJpbmsgZm9sZCBibGluZFVwIGJsaW5kRG93biBzbGlkZVVwIHNsaWRlRG93biAnKwogICdwdWxzYXRlIHNoYWtlIHB1ZmYgc3F1aXNoIHN3aXRjaE9mZiBkcm9wT3V0JykuZWFjaCgKICBmdW5jdGlvbihlZmZlY3QpIHsgCiAgICBFZmZlY3QuTWV0aG9kc1tlZmZlY3RdID0gZnVuY3Rpb24oZWxlbWVudCwgb3B0aW9ucyl7CiAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgICBFZmZlY3RbZWZmZWN0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgZWZmZWN0LnN1YnN0cmluZygxKV0oZWxlbWVudCwgb3B0aW9ucyk7CiAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogIH0KKTsKCiR3KCdnZXRJbmxpbmVPcGFjaXR5IGZvcmNlUmVyZW5kZXJpbmcgc2V0Q29udGVudFpvb20gY29sbGVjdFRleHROb2RlcyBjb2xsZWN0VGV4dE5vZGVzSWdub3JlQ2xhc3MgZ2V0U3R5bGVzJykuZWFjaCggCiAgZnVuY3Rpb24oZikgeyBFZmZlY3QuTWV0aG9kc1tmXSA9IEVsZW1lbnRbZl07IH0KKTsKCkVsZW1lbnQuYWRkTWV0aG9kcyhFZmZlY3QuTWV0aG9kcyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/lightbox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vDQovLwlMaWdodGJveCB2Mi4wNA0KLy8JYnkgTG9rZXNoIERoYWthciAtIGh0dHA6Ly93d3cubG9rZXNoZGhha2FyLmNvbQ0KLy8JTGFzdCBNb2RpZmljYXRpb246IDIvOS8wOA0KLy8NCi8vCUZvciBtb3JlIGluZm9ybWF0aW9uLCB2aXNpdDoNCi8vCWh0dHA6Ly9sb2tlc2hkaGFrYXIuY29tL3Byb2plY3RzL2xpZ2h0Ym94Mi8NCi8vDQovLwlMaWNlbnNlZCB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAyLjUgTGljZW5zZSAtIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzIuNS8NCi8vICAJLSBGcmVlIGZvciB1c2UgaW4gYm90aCBwZXJzb25hbCBhbmQgY29tbWVyY2lhbCBwcm9qZWN0cw0KLy8JCS0gQXR0cmlidXRpb24gcmVxdWlyZXMgbGVhdmluZyBhdXRob3IgbmFtZSwgYXV0aG9yIGxpbmssIGFuZCB0aGUgbGljZW5zZSBpbmZvIGludGFjdC4NCi8vCQ0KLy8gIFRoYW5rczogU2NvdHQgVXB0b24odXB0b25pYy5jb20pLCBQZXRlci1QYXVsIEtvY2gocXVpcmtzbW9kZS5jb20pLCBhbmQgVGhvbWFzIEZ1Y2hzKG1pci5hY3Vsby51cykgZm9yIGlkZWFzLCBsaWJzLCBhbmQgc25pcHBldHMuDQovLyAgCQlBcnRlbXkgVHJlZ3ViZW5rbyAoYXJ0eS5uYW1lKSBmb3IgY2xlYW51cCBhbmQgaGVscCBpbiB1cGRhdGluZyB0byBsYXRlc3QgdmVyIG9mIHByb3RvLWFjdWxvdXMuDQovLw0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8qDQoNCiAgICBUYWJsZSBvZiBDb250ZW50cw0KICAgIC0tLS0tLS0tLS0tLS0tLS0tDQogICAgQ29uZmlndXJhdGlvbg0KDQogICAgTGlnaHRib3ggQ2xhc3MgRGVjbGFyYXRpb24NCiAgICAtIGluaXRpYWxpemUoKQ0KICAgIC0gdXBkYXRlSW1hZ2VMaXN0KCkNCiAgICAtIHN0YXJ0KCkNCiAgICAtIGNoYW5nZUltYWdlKCkNCiAgICAtIHJlc2l6ZUltYWdlQ29udGFpbmVyKCkNCiAgICAtIHNob3dJbWFnZSgpDQogICAgLSB1cGRhdGVEZXRhaWxzKCkNCiAgICAtIHVwZGF0ZU5hdigpDQogICAgLSBlbmFibGVLZXlib2FyZE5hdigpDQogICAgLSBkaXNhYmxlS2V5Ym9hcmROYXYoKQ0KICAgIC0ga2V5Ym9hcmRBY3Rpb24oKQ0KICAgIC0gcHJlbG9hZE5laWdoYm9ySW1hZ2VzKCkNCiAgICAtIGVuZCgpDQogICAgDQogICAgRnVuY3Rpb24gQ2FsbHMNCiAgICAtIGRvY3VtZW50Lm9ic2VydmUoKQ0KICAgDQoqLw0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy8NCi8vICBDb25maWd1cmF0aW9ubA0KLy8NCkxpZ2h0Ym94T3B0aW9ucyA9IE9iamVjdC5leHRlbmQoew0KICAgIGZpbGVMb2FkaW5nSW1hZ2U6ICAgICAgICAnbW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9saWdodGJveC9pbWFnZXMvbG9hZGluZy5naWYnLCAgICAgDQogICAgZmlsZUJvdHRvbU5hdkNsb3NlSW1hZ2U6ICdtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2xpZ2h0Ym94L2ltYWdlcy9jbG9zZWxhYmVsLmdpZicsDQoNCiAgICBvdmVybGF5T3BhY2l0eTogMC44LCAgIC8vIGNvbnRyb2xzIHRyYW5zcGFyZW5jeSBvZiBzaGFkb3cgb3ZlcmxheQ0KDQogICAgYW5pbWF0ZTogdHJ1ZSwgICAgICAgICAvLyB0b2dnbGVzIHJlc2l6aW5nIGFuaW1hdGlvbnMNCiAgICByZXNpemVTcGVlZDogNywgICAgICAgIC8vIGNvbnRyb2xzIHRoZSBzcGVlZCBvZiB0aGUgaW1hZ2UgcmVzaXppbmcgYW5pbWF0aW9ucyAoMT1zbG93ZXN0IGFuZCAxMD1mYXN0ZXN0KQ0KDQogICAgYm9yZGVyU2l6ZTogMTAsICAgICAgICAgLy9pZiB5b3UgYWRqdXN0IHRoZSBwYWRkaW5nIGluIHRoZSBDU1MsIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHRoaXMgdmFyaWFibGUNCg0KCS8vIFdoZW4gZ3JvdXBpbmcgaW1hZ2VzIHRoaXMgaXMgdXNlZCB0byB3cml0ZTogSW1hZ2UgIyBvZiAjLg0KCS8vIENoYW5nZSBpdCBmb3Igbm9uLWVuZ2xpc2ggbG9jYWxpemF0aW9uDQoJbGFiZWxJbWFnZTogIkltYWdlIiwNCglsYWJlbE9mOiAib2YiDQp9LCB3aW5kb3cuTGlnaHRib3hPcHRpb25zIHx8IHt9KTsNCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KdmFyIExpZ2h0Ym94ID0gQ2xhc3MuY3JlYXRlKCk7DQoNCkxpZ2h0Ym94LnByb3RvdHlwZSA9IHsNCiAgICBpbWFnZUFycmF5OiBbXSwNCiAgICBhY3RpdmVJbWFnZTogdW5kZWZpbmVkLA0KICAgIA0KICAgIC8vIGluaXRpYWxpemUoKQ0KICAgIC8vIENvbnN0cnVjdG9yIHJ1bnMgb24gY29tcGxldGlvbiBvZiB0aGUgRE9NIGxvYWRpbmcuIENhbGxzIHVwZGF0ZUltYWdlTGlzdCBhbmQgdGhlbg0KICAgIC8vIHRoZSBmdW5jdGlvbiBpbnNlcnRzIGh0bWwgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIHNoYWRvdyANCiAgICAvLyBvdmVybGF5IGFuZCB0aGUgaW1hZ2UgY29udGFpbmVyLg0KICAgIC8vDQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7ICAgIA0KICAgICAgICANCiAgICAgICAgdGhpcy51cGRhdGVJbWFnZUxpc3QoKTsNCiAgICAgICAgDQogICAgICAgIHRoaXMua2V5Ym9hcmRBY3Rpb24gPSB0aGlzLmtleWJvYXJkQWN0aW9uLmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7DQoNCiAgICAgICAgaWYgKExpZ2h0Ym94T3B0aW9ucy5yZXNpemVTcGVlZCA+IDEwKSBMaWdodGJveE9wdGlvbnMucmVzaXplU3BlZWQgPSAxMDsNCiAgICAgICAgaWYgKExpZ2h0Ym94T3B0aW9ucy5yZXNpemVTcGVlZCA8IDEpICBMaWdodGJveE9wdGlvbnMucmVzaXplU3BlZWQgPSAxOw0KDQoJICAgIHRoaXMucmVzaXplRHVyYXRpb24gPSBMaWdodGJveE9wdGlvbnMuYW5pbWF0ZSA/ICgoMTEgLSBMaWdodGJveE9wdGlvbnMucmVzaXplU3BlZWQpICogMC4xNSkgOiAwOw0KCSAgICB0aGlzLm92ZXJsYXlEdXJhdGlvbiA9IExpZ2h0Ym94T3B0aW9ucy5hbmltYXRlID8gMC4yIDogMDsgIC8vIHNoYWRvdyBmYWRlIGluL291dCBkdXJhdGlvbg0KDQogICAgICAgIC8vIFdoZW4gTGlnaHRib3ggc3RhcnRzIGl0IHdpbGwgcmVzaXplIGl0c2VsZiBmcm9tIDI1MCBieSAyNTAgdG8gdGhlIGN1cnJlbnQgaW1hZ2UgZGltZW5zaW9uLg0KICAgICAgICAvLyBJZiBhbmltYXRpb25zIGFyZSB0dXJuZWQgb2ZmLCBpdCB3aWxsIGJlIGhpZGRlbiBhcyB0byBwcmV2ZW50IGEgZmxpY2tlciBvZiBhDQogICAgICAgIC8vIHdoaXRlIDI1MCBieSAyNTAgYm94Lg0KICAgICAgICB2YXIgc2l6ZSA9IChMaWdodGJveE9wdGlvbnMuYW5pbWF0ZSA/IDI1MCA6IDEpICsgJ3B4JzsNCiAgICAgICAgDQoNCiAgICAgICAgLy8gQ29kZSBpbnNlcnRzIGh0bWwgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSB0aGF0IGxvb2tzIHNpbWlsYXIgdG8gdGhpczoNCiAgICAgICAgLy8NCiAgICAgICAgLy8gIDxkaXYgaWQ9Im92ZXJsYXkiPjwvZGl2Pg0KICAgICAgICAvLyAgPGRpdiBpZD0ibGlnaHRib3giPg0KICAgICAgICAvLyAgICAgIDxkaXYgaWQ9Im91dGVySW1hZ2VDb250YWluZXIiPg0KICAgICAgICAvLyAgICAgICAgICA8ZGl2IGlkPSJpbWFnZUNvbnRhaW5lciI+DQogICAgICAgIC8vICAgICAgICAgICAgICA8aW1nIGlkPSJsaWdodGJveEltYWdlIj4NCiAgICAgICAgLy8gICAgICAgICAgICAgIDxkaXYgc3R5bGU9IiIgaWQ9ImhvdmVyTmF2Ij4NCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0icHJldkxpbmsiPjwvYT4NCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0ibmV4dExpbmsiPjwvYT4NCiAgICAgICAgLy8gICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAvLyAgICAgICAgICAgICAgPGRpdiBpZD0ibG9hZGluZyI+DQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImxvYWRpbmdMaW5rIj4NCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImltYWdlcy9sb2FkaW5nLmdpZiI+DQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAvLyAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIC8vICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAvLyAgICAgIDwvZGl2Pg0KICAgICAgICAvLyAgICAgIDxkaXYgaWQ9ImltYWdlRGF0YUNvbnRhaW5lciI+DQogICAgICAgIC8vICAgICAgICAgIDxkaXYgaWQ9ImltYWdlRGF0YSI+DQogICAgICAgIC8vICAgICAgICAgICAgICA8ZGl2IGlkPSJpbWFnZURldGFpbHMiPg0KICAgICAgICAvLyAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJjYXB0aW9uIj48L3NwYW4+DQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9Im51bWJlckRpc3BsYXkiPjwvc3Bhbj4NCiAgICAgICAgLy8gICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAvLyAgICAgICAgICAgICAgPGRpdiBpZD0iYm90dG9tTmF2Ij4NCiAgICAgICAgLy8gICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iYm90dG9tTmF2Q2xvc2UiPg0KICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaW1hZ2VzL2Nsb3NlLmdpZiI+DQogICAgICAgIC8vICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAvLyAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIC8vICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAvLyAgICAgIDwvZGl2Pg0KICAgICAgICAvLyAgPC9kaXY+DQoNCg0KICAgICAgICB2YXIgb2JqQm9keSA9ICQkKCdib2R5JylbMF07DQoNCgkJb2JqQm9keS5hcHBlbmRDaGlsZChCdWlsZGVyLm5vZGUoJ2Rpdicse2lkOidvdmVybGF5J30pKTsNCgkNCiAgICAgICAgb2JqQm9keS5hcHBlbmRDaGlsZChCdWlsZGVyLm5vZGUoJ2Rpdicse2lkOidsaWdodGJveCd9LCBbDQogICAgICAgICAgICBCdWlsZGVyLm5vZGUoJ2Rpdicse2lkOidvdXRlckltYWdlQ29udGFpbmVyJ30sIA0KICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnZGl2Jyx7aWQ6J2ltYWdlQ29udGFpbmVyJ30sIFsNCiAgICAgICAgICAgICAgICAgICAgQnVpbGRlci5ub2RlKCdpbWcnLHtpZDonbGlnaHRib3hJbWFnZSd9KSwgDQogICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnZGl2Jyx7aWQ6J2hvdmVyTmF2J30sIFsNCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnYScse2lkOidwcmV2TGluaycsIGhyZWY6ICcjJyB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnYScse2lkOiduZXh0TGluaycsIGhyZWY6ICcjJyB9KQ0KICAgICAgICAgICAgICAgICAgICBdKSwNCiAgICAgICAgICAgICAgICAgICAgQnVpbGRlci5ub2RlKCdkaXYnLHtpZDonbG9hZGluZyd9LCANCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnYScse2lkOidsb2FkaW5nTGluaycsIGhyZWY6ICcjJyB9LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZGVyLm5vZGUoJ2ltZycsIHtzcmM6IExpZ2h0Ym94T3B0aW9ucy5maWxlTG9hZGluZ0ltYWdlfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIF0pDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgQnVpbGRlci5ub2RlKCdkaXYnLCB7aWQ6J2ltYWdlRGF0YUNvbnRhaW5lcid9LA0KICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnZGl2Jyx7aWQ6J2ltYWdlRGF0YSd9LCBbDQogICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnZGl2Jyx7aWQ6J2ltYWdlRGV0YWlscyd9LCBbDQogICAgICAgICAgICAgICAgICAgICAgICBCdWlsZGVyLm5vZGUoJ3NwYW4nLHtpZDonY2FwdGlvbid9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnc3Bhbicse2lkOidudW1iZXJEaXNwbGF5J30pDQogICAgICAgICAgICAgICAgICAgIF0pLA0KICAgICAgICAgICAgICAgICAgICBCdWlsZGVyLm5vZGUoJ2Rpdicse2lkOidib3R0b21OYXYnfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnYScse2lkOidib3R0b21OYXZDbG9zZScsIGhyZWY6ICcjJyB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnaW1nJywgeyBzcmM6IExpZ2h0Ym94T3B0aW9ucy5maWxlQm90dG9tTmF2Q2xvc2VJbWFnZSB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgXSkNCiAgICAgICAgICAgICkNCiAgICAgICAgXSkpOw0KDQoNCgkJJCgnb3ZlcmxheScpLmhpZGUoKS5vYnNlcnZlKCdjbGljaycsIChmdW5jdGlvbigpIHsgdGhpcy5lbmQoKTsgfSkuYmluZCh0aGlzKSk7DQoJCSQoJ2xpZ2h0Ym94JykuaGlkZSgpLm9ic2VydmUoJ2NsaWNrJywgKGZ1bmN0aW9uKGV2ZW50KSB7IGlmIChldmVudC5lbGVtZW50KCkuaWQgPT0gJ2xpZ2h0Ym94JykgdGhpcy5lbmQoKTsgfSkuYmluZCh0aGlzKSk7DQoJCSQoJ291dGVySW1hZ2VDb250YWluZXInKS5zZXRTdHlsZSh7IHdpZHRoOiBzaXplLCBoZWlnaHQ6IHNpemUgfSk7DQoJCSQoJ3ByZXZMaW5rJykub2JzZXJ2ZSgnY2xpY2snLCAoZnVuY3Rpb24oZXZlbnQpIHsgZXZlbnQuc3RvcCgpOyB0aGlzLmNoYW5nZUltYWdlKHRoaXMuYWN0aXZlSW1hZ2UgLSAxKTsgfSkuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7DQoJCSQoJ25leHRMaW5rJykub2JzZXJ2ZSgnY2xpY2snLCAoZnVuY3Rpb24oZXZlbnQpIHsgZXZlbnQuc3RvcCgpOyB0aGlzLmNoYW5nZUltYWdlKHRoaXMuYWN0aXZlSW1hZ2UgKyAxKTsgfSkuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7DQoJCSQoJ2xvYWRpbmdMaW5rJykub2JzZXJ2ZSgnY2xpY2snLCAoZnVuY3Rpb24oZXZlbnQpIHsgZXZlbnQuc3RvcCgpOyB0aGlzLmVuZCgpOyB9KS5iaW5kKHRoaXMpKTsNCgkJJCgnYm90dG9tTmF2Q2xvc2UnKS5vYnNlcnZlKCdjbGljaycsIChmdW5jdGlvbihldmVudCkgeyBldmVudC5zdG9wKCk7IHRoaXMuZW5kKCk7IH0pLmJpbmQodGhpcykpOw0KDQogICAgICAgIHZhciB0aCA9IHRoaXM7DQogICAgICAgIChmdW5jdGlvbigpew0KICAgICAgICAgICAgdmFyIGlkcyA9IA0KICAgICAgICAgICAgICAgICdvdmVybGF5IGxpZ2h0Ym94IG91dGVySW1hZ2VDb250YWluZXIgaW1hZ2VDb250YWluZXIgbGlnaHRib3hJbWFnZSBob3Zlck5hdiBwcmV2TGluayBuZXh0TGluayBsb2FkaW5nIGxvYWRpbmdMaW5rICcgKyANCiAgICAgICAgICAgICAgICAnaW1hZ2VEYXRhQ29udGFpbmVyIGltYWdlRGF0YSBpbWFnZURldGFpbHMgY2FwdGlvbiBudW1iZXJEaXNwbGF5IGJvdHRvbU5hdiBib3R0b21OYXZDbG9zZSc7ICAgDQogICAgICAgICAgICAkdyhpZHMpLmVhY2goZnVuY3Rpb24oaWQpeyB0aFtpZF0gPSAkKGlkKTsgfSk7DQogICAgICAgIH0pLmRlZmVyKCk7DQogICAgfSwNCg0KICAgIC8vDQogICAgLy8gdXBkYXRlSW1hZ2VMaXN0KCkNCiAgICAvLyBMb29wcyB0aHJvdWdoIGFuY2hvciB0YWdzIGxvb2tpbmcgZm9yICdsaWdodGJveCcgcmVmZXJlbmNlcyBhbmQgYXBwbGllcyBvbmNsaWNrDQogICAgLy8gZXZlbnRzIHRvIGFwcHJvcHJpYXRlIGxpbmtzLiBZb3UgY2FuIHJlcnVuIGFmdGVyIGR5bmFtaWNhbGx5IGFkZGluZyBpbWFnZXMgdy9hamF4Lg0KICAgIC8vDQogICAgdXBkYXRlSW1hZ2VMaXN0OiBmdW5jdGlvbigpIHsgICANCiAgICAgICAgdGhpcy51cGRhdGVJbWFnZUxpc3QgPSBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsNCg0KICAgICAgICBkb2N1bWVudC5vYnNlcnZlKCdjbGljaycsIChmdW5jdGlvbihldmVudCl7DQogICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQuZmluZEVsZW1lbnQoJ2FbcmVsXj1saWdodGJveF0nKSB8fCBldmVudC5maW5kRWxlbWVudCgnYXJlYVtyZWxePWxpZ2h0Ym94XScpOw0KICAgICAgICAgICAgaWYgKHRhcmdldCkgew0KICAgICAgICAgICAgICAgIGV2ZW50LnN0b3AoKTsNCiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0KHRhcmdldCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0pLmJpbmQodGhpcykpOw0KICAgIH0sDQogICAgDQogICAgLy8NCiAgICAvLyAgc3RhcnQoKQ0KICAgIC8vICBEaXNwbGF5IG92ZXJsYXkgYW5kIGxpZ2h0Ym94LiBJZiBpbWFnZSBpcyBwYXJ0IG9mIGEgc2V0LCBhZGQgc2libGluZ3MgdG8gaW1hZ2VBcnJheS4NCiAgICAvLw0KICAgIHN0YXJ0OiBmdW5jdGlvbihpbWFnZUxpbmspIHsgICAgDQoNCiAgICAgICAgJCQoJ3NlbGVjdCcsICdvYmplY3QnLCAnZW1iZWQnKS5lYWNoKGZ1bmN0aW9uKG5vZGUpeyBub2RlLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJyB9KTsNCg0KICAgICAgICAvLyBzdHJldGNoIG92ZXJsYXkgdG8gZmlsbCBwYWdlIGFuZCBmYWRlIGluDQogICAgICAgIHZhciBhcnJheVBhZ2VTaXplID0gdGhpcy5nZXRQYWdlU2l6ZSgpOw0KICAgICAgICAkKCdvdmVybGF5Jykuc2V0U3R5bGUoeyB3aWR0aDogYXJyYXlQYWdlU2l6ZVswXSArICdweCcsIGhlaWdodDogYXJyYXlQYWdlU2l6ZVsxXSArICdweCcgfSk7DQoNCiAgICAgICAgbmV3IEVmZmVjdC5BcHBlYXIodGhpcy5vdmVybGF5LCB7IGR1cmF0aW9uOiB0aGlzLm92ZXJsYXlEdXJhdGlvbiwgZnJvbTogMC4wLCB0bzogTGlnaHRib3hPcHRpb25zLm92ZXJsYXlPcGFjaXR5IH0pOw0KDQogICAgICAgIHRoaXMuaW1hZ2VBcnJheSA9IFtdOw0KICAgICAgICB2YXIgaW1hZ2VOdW0gPSAwOyAgICAgICANCg0KICAgICAgICBpZiAoKGltYWdlTGluay5yZWwgPT0gJ2xpZ2h0Ym94Jykpew0KICAgICAgICAgICAgLy8gaWYgaW1hZ2UgaXMgTk9UIHBhcnQgb2YgYSBzZXQsIGFkZCBzaW5nbGUgaW1hZ2UgdG8gaW1hZ2VBcnJheQ0KICAgICAgICAgICAgdGhpcy5pbWFnZUFycmF5LnB1c2goW2ltYWdlTGluay5ocmVmLCBpbWFnZUxpbmsudGl0bGVdKTsgICAgICAgICANCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vIGlmIGltYWdlIGlzIHBhcnQgb2YgYSBzZXQuLg0KICAgICAgICAgICAgdGhpcy5pbWFnZUFycmF5ID0gDQogICAgICAgICAgICAgICAgJCQoaW1hZ2VMaW5rLnRhZ05hbWUgKyAnW2hyZWZdW3JlbD0iJyArIGltYWdlTGluay5yZWwgKyAnIl0nKS4NCiAgICAgICAgICAgICAgICBjb2xsZWN0KGZ1bmN0aW9uKGFuY2hvcil7IHJldHVybiBbYW5jaG9yLmhyZWYsIGFuY2hvci50aXRsZV07IH0pLg0KICAgICAgICAgICAgICAgIHVuaXEoKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgd2hpbGUgKHRoaXMuaW1hZ2VBcnJheVtpbWFnZU51bV1bMF0gIT0gaW1hZ2VMaW5rLmhyZWYpIHsgaW1hZ2VOdW0rKzsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8gY2FsY3VsYXRlIHRvcCBhbmQgbGVmdCBvZmZzZXQgZm9yIHRoZSBsaWdodGJveCANCiAgICAgICAgdmFyIGFycmF5UGFnZVNjcm9sbCA9IGRvY3VtZW50LnZpZXdwb3J0LmdldFNjcm9sbE9mZnNldHMoKTsNCiAgICAgICAgdmFyIGxpZ2h0Ym94VG9wID0gYXJyYXlQYWdlU2Nyb2xsWzFdICsgKGRvY3VtZW50LnZpZXdwb3J0LmdldEhlaWdodCgpIC8gMTApOw0KICAgICAgICB2YXIgbGlnaHRib3hMZWZ0ID0gYXJyYXlQYWdlU2Nyb2xsWzBdOw0KICAgICAgICB0aGlzLmxpZ2h0Ym94LnNldFN0eWxlKHsgdG9wOiBsaWdodGJveFRvcCArICdweCcsIGxlZnQ6IGxpZ2h0Ym94TGVmdCArICdweCcgfSkuc2hvdygpOw0KICAgICAgICANCiAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZShpbWFnZU51bSk7DQogICAgfSwNCg0KICAgIC8vDQogICAgLy8gIGNoYW5nZUltYWdlKCkNCiAgICAvLyAgSGlkZSBtb3N0IGVsZW1lbnRzIGFuZCBwcmVsb2FkIGltYWdlIGluIHByZXBhcmF0aW9uIGZvciByZXNpemluZyBpbWFnZSBjb250YWluZXIuDQogICAgLy8NCiAgICBjaGFuZ2VJbWFnZTogZnVuY3Rpb24oaW1hZ2VOdW0pIHsgICANCiAgICAgICAgDQogICAgICAgIHRoaXMuYWN0aXZlSW1hZ2UgPSBpbWFnZU51bTsgLy8gdXBkYXRlIGdsb2JhbCB2YXINCg0KICAgICAgICAvLyBoaWRlIGVsZW1lbnRzIGR1cmluZyB0cmFuc2l0aW9uDQogICAgICAgIGlmIChMaWdodGJveE9wdGlvbnMuYW5pbWF0ZSkgdGhpcy5sb2FkaW5nLnNob3coKTsNCiAgICAgICAgdGhpcy5saWdodGJveEltYWdlLmhpZGUoKTsNCiAgICAgICAgdGhpcy5ob3Zlck5hdi5oaWRlKCk7DQogICAgICAgIHRoaXMucHJldkxpbmsuaGlkZSgpOw0KICAgICAgICB0aGlzLm5leHRMaW5rLmhpZGUoKTsNCgkJLy8gSEFDSzogT3BlcmE5IGRvZXMgbm90IGN1cnJlbnRseSBzdXBwb3J0IHNjcmlwdGFjdWxvdXMgb3BhY2l0eSBhbmQgYXBwZWFyIGZ4DQogICAgICAgIHRoaXMuaW1hZ2VEYXRhQ29udGFpbmVyLnNldFN0eWxlKHtvcGFjaXR5OiAuMDAwMX0pOw0KICAgICAgICB0aGlzLm51bWJlckRpc3BsYXkuaGlkZSgpOyAgICAgIA0KICAgICAgICANCiAgICAgICAgdmFyIGltZ1ByZWxvYWRlciA9IG5ldyBJbWFnZSgpOw0KICAgICAgICANCiAgICAgICAgLy8gb25jZSBpbWFnZSBpcyBwcmVsb2FkZWQsIHJlc2l6ZSBpbWFnZSBjb250YWluZXINCg0KDQogICAgICAgIGltZ1ByZWxvYWRlci5vbmxvYWQgPSAoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgIHRoaXMubGlnaHRib3hJbWFnZS5zcmMgPSB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZV1bMF07DQogICAgICAgICAgICB0aGlzLnJlc2l6ZUltYWdlQ29udGFpbmVyKGltZ1ByZWxvYWRlci53aWR0aCwgaW1nUHJlbG9hZGVyLmhlaWdodCk7DQogICAgICAgIH0pLmJpbmQodGhpcyk7DQogICAgICAgIGltZ1ByZWxvYWRlci5zcmMgPSB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZV1bMF07DQogICAgfSwNCg0KICAgIC8vDQogICAgLy8gIHJlc2l6ZUltYWdlQ29udGFpbmVyKCkNCiAgICAvLw0KICAgIHJlc2l6ZUltYWdlQ29udGFpbmVyOiBmdW5jdGlvbihpbWdXaWR0aCwgaW1nSGVpZ2h0KSB7DQoNCiAgICAgICAgLy8gZ2V0IGN1cnJlbnQgd2lkdGggYW5kIGhlaWdodA0KICAgICAgICB2YXIgd2lkdGhDdXJyZW50ICA9IHRoaXMub3V0ZXJJbWFnZUNvbnRhaW5lci5nZXRXaWR0aCgpOw0KICAgICAgICB2YXIgaGVpZ2h0Q3VycmVudCA9IHRoaXMub3V0ZXJJbWFnZUNvbnRhaW5lci5nZXRIZWlnaHQoKTsNCg0KICAgICAgICAvLyBnZXQgbmV3IHdpZHRoIGFuZCBoZWlnaHQNCiAgICAgICAgdmFyIHdpZHRoTmV3ICA9IChpbWdXaWR0aCAgKyBMaWdodGJveE9wdGlvbnMuYm9yZGVyU2l6ZSAqIDIpOw0KICAgICAgICB2YXIgaGVpZ2h0TmV3ID0gKGltZ0hlaWdodCArIExpZ2h0Ym94T3B0aW9ucy5ib3JkZXJTaXplICogMik7DQoNCiAgICAgICAgLy8gc2NhbGFycyBiYXNlZCBvbiBjaGFuZ2UgZnJvbSBvbGQgdG8gbmV3DQogICAgICAgIHZhciB4U2NhbGUgPSAod2lkdGhOZXcgIC8gd2lkdGhDdXJyZW50KSAgKiAxMDA7DQogICAgICAgIHZhciB5U2NhbGUgPSAoaGVpZ2h0TmV3IC8gaGVpZ2h0Q3VycmVudCkgKiAxMDA7DQoNCiAgICAgICAgLy8gY2FsY3VsYXRlIHNpemUgZGlmZmVyZW5jZSBiZXR3ZWVuIG5ldyBhbmQgb2xkIGltYWdlLCBhbmQgcmVzaXplIGlmIG5lY2Vzc2FyeQ0KICAgICAgICB2YXIgd0RpZmYgPSB3aWR0aEN1cnJlbnQgLSB3aWR0aE5ldzsNCiAgICAgICAgdmFyIGhEaWZmID0gaGVpZ2h0Q3VycmVudCAtIGhlaWdodE5ldzsNCg0KICAgICAgICBpZiAoaERpZmYgIT0gMCkgbmV3IEVmZmVjdC5TY2FsZSh0aGlzLm91dGVySW1hZ2VDb250YWluZXIsIHlTY2FsZSwge3NjYWxlWDogZmFsc2UsIGR1cmF0aW9uOiB0aGlzLnJlc2l6ZUR1cmF0aW9uLCBxdWV1ZTogJ2Zyb250J30pOyANCiAgICAgICAgaWYgKHdEaWZmICE9IDApIG5ldyBFZmZlY3QuU2NhbGUodGhpcy5vdXRlckltYWdlQ29udGFpbmVyLCB4U2NhbGUsIHtzY2FsZVk6IGZhbHNlLCBkdXJhdGlvbjogdGhpcy5yZXNpemVEdXJhdGlvbiwgZGVsYXk6IHRoaXMucmVzaXplRHVyYXRpb259KTsgDQoNCiAgICAgICAgLy8gaWYgbmV3IGFuZCBvbGQgaW1hZ2UgYXJlIHNhbWUgc2l6ZSBhbmQgbm8gc2NhbGluZyB0cmFuc2l0aW9uIGlzIG5lY2Vzc2FyeSwgDQogICAgICAgIC8vIGRvIGEgcXVpY2sgcGF1c2UgdG8gcHJldmVudCBpbWFnZSBmbGlja2VyLg0KICAgICAgICB2YXIgdGltZW91dCA9IDA7DQogICAgICAgIGlmICgoaERpZmYgPT0gMCkgJiYgKHdEaWZmID09IDApKXsNCiAgICAgICAgICAgIHRpbWVvdXQgPSAxMDA7DQogICAgICAgICAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUpIHRpbWVvdXQgPSAyNTA7ICAgDQogICAgICAgIH0NCg0KICAgICAgICAoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgIHRoaXMucHJldkxpbmsuc2V0U3R5bGUoeyBoZWlnaHQ6IGltZ0hlaWdodCArICdweCcgfSk7DQogICAgICAgICAgICB0aGlzLm5leHRMaW5rLnNldFN0eWxlKHsgaGVpZ2h0OiBpbWdIZWlnaHQgKyAncHgnIH0pOw0KICAgICAgICAgICAgdGhpcy5pbWFnZURhdGFDb250YWluZXIuc2V0U3R5bGUoeyB3aWR0aDogd2lkdGhOZXcgKyAncHgnIH0pOw0KDQogICAgICAgICAgICB0aGlzLnNob3dJbWFnZSgpOw0KICAgICAgICB9KS5iaW5kKHRoaXMpLmRlbGF5KHRpbWVvdXQgLyAxMDAwKTsNCiAgICB9LA0KICAgIA0KICAgIC8vDQogICAgLy8gIHNob3dJbWFnZSgpDQogICAgLy8gIERpc3BsYXkgaW1hZ2UgYW5kIGJlZ2luIHByZWxvYWRpbmcgbmVpZ2hib3JzLg0KICAgIC8vDQogICAgc2hvd0ltYWdlOiBmdW5jdGlvbigpew0KICAgICAgICB0aGlzLmxvYWRpbmcuaGlkZSgpOw0KICAgICAgICBuZXcgRWZmZWN0LkFwcGVhcih0aGlzLmxpZ2h0Ym94SW1hZ2UsIHsgDQogICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5yZXNpemVEdXJhdGlvbiwgDQogICAgICAgICAgICBxdWV1ZTogJ2VuZCcsIA0KICAgICAgICAgICAgYWZ0ZXJGaW5pc2g6IChmdW5jdGlvbigpeyB0aGlzLnVwZGF0ZURldGFpbHMoKTsgfSkuYmluZCh0aGlzKSANCiAgICAgICAgfSk7DQogICAgICAgIHRoaXMucHJlbG9hZE5laWdoYm9ySW1hZ2VzKCk7DQogICAgfSwNCg0KICAgIC8vDQogICAgLy8gIHVwZGF0ZURldGFpbHMoKQ0KICAgIC8vICBEaXNwbGF5IGNhcHRpb24sIGltYWdlIG51bWJlciwgYW5kIGJvdHRvbSBuYXYuDQogICAgLy8NCiAgICB1cGRhdGVEZXRhaWxzOiBmdW5jdGlvbigpIHsNCiAgICANCiAgICAgICAgLy8gaWYgY2FwdGlvbiBpcyBub3QgbnVsbA0KICAgICAgICBpZiAodGhpcy5pbWFnZUFycmF5W3RoaXMuYWN0aXZlSW1hZ2VdWzFdICE9ICIiKXsNCiAgICAgICAgICAgIHRoaXMuY2FwdGlvbi51cGRhdGUodGhpcy5pbWFnZUFycmF5W3RoaXMuYWN0aXZlSW1hZ2VdWzFdKS5zaG93KCk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIGlmIGltYWdlIGlzIHBhcnQgb2Ygc2V0IGRpc3BsYXkgJ0ltYWdlIHggb2YgeCcgDQogICAgICAgIGlmICh0aGlzLmltYWdlQXJyYXkubGVuZ3RoID4gMSl7DQogICAgICAgICAgICB0aGlzLm51bWJlckRpc3BsYXkudXBkYXRlKCBMaWdodGJveE9wdGlvbnMubGFiZWxJbWFnZSArICcgJyArICh0aGlzLmFjdGl2ZUltYWdlICsgMSkgKyAnICcgKyBMaWdodGJveE9wdGlvbnMubGFiZWxPZiArICcgICcgKyB0aGlzLmltYWdlQXJyYXkubGVuZ3RoKS5zaG93KCk7DQogICAgICAgIH0NCg0KICAgICAgICBuZXcgRWZmZWN0LlBhcmFsbGVsKA0KICAgICAgICAgICAgWyANCiAgICAgICAgICAgICAgICBuZXcgRWZmZWN0LlNsaWRlRG93bih0aGlzLmltYWdlRGF0YUNvbnRhaW5lciwgeyBzeW5jOiB0cnVlLCBkdXJhdGlvbjogdGhpcy5yZXNpemVEdXJhdGlvbiwgZnJvbTogMC4wLCB0bzogMS4wIH0pLCANCiAgICAgICAgICAgICAgICBuZXcgRWZmZWN0LkFwcGVhcih0aGlzLmltYWdlRGF0YUNvbnRhaW5lciwgeyBzeW5jOiB0cnVlLCBkdXJhdGlvbjogdGhpcy5yZXNpemVEdXJhdGlvbiB9KSANCiAgICAgICAgICAgIF0sIA0KICAgICAgICAgICAgeyANCiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5yZXNpemVEdXJhdGlvbiwgDQogICAgICAgICAgICAgICAgYWZ0ZXJGaW5pc2g6IChmdW5jdGlvbigpIHsNCgkgICAgICAgICAgICAgICAgLy8gdXBkYXRlIG92ZXJsYXkgc2l6ZSBhbmQgdXBkYXRlIG5hdg0KCSAgICAgICAgICAgICAgICB2YXIgYXJyYXlQYWdlU2l6ZSA9IHRoaXMuZ2V0UGFnZVNpemUoKTsNCgkgICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5LnNldFN0eWxlKHsgaGVpZ2h0OiBhcnJheVBhZ2VTaXplWzFdICsgJ3B4JyB9KTsNCgkgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVOYXYoKTsNCiAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMpDQogICAgICAgICAgICB9IA0KICAgICAgICApOw0KICAgIH0sDQoNCiAgICAvLw0KICAgIC8vICB1cGRhdGVOYXYoKQ0KICAgIC8vICBEaXNwbGF5IGFwcHJvcHJpYXRlIHByZXZpb3VzIGFuZCBuZXh0IGhvdmVyIG5hdmlnYXRpb24uDQogICAgLy8NCiAgICB1cGRhdGVOYXY6IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHRoaXMuaG92ZXJOYXYuc2hvdygpOyAgICAgICAgICAgICAgIA0KDQogICAgICAgIC8vIGlmIG5vdCBmaXJzdCBpbWFnZSBpbiBzZXQsIGRpc3BsYXkgcHJldiBpbWFnZSBidXR0b24NCiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW1hZ2UgPiAwKSB0aGlzLnByZXZMaW5rLnNob3coKTsNCg0KICAgICAgICAvLyBpZiBub3QgbGFzdCBpbWFnZSBpbiBzZXQsIGRpc3BsYXkgbmV4dCBpbWFnZSBidXR0b24NCiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW1hZ2UgPCAodGhpcy5pbWFnZUFycmF5Lmxlbmd0aCAtIDEpKSB0aGlzLm5leHRMaW5rLnNob3coKTsNCiAgICAgICAgDQogICAgICAgIHRoaXMuZW5hYmxlS2V5Ym9hcmROYXYoKTsNCiAgICB9LA0KDQogICAgLy8NCiAgICAvLyAgZW5hYmxlS2V5Ym9hcmROYXYoKQ0KICAgIC8vDQogICAgZW5hYmxlS2V5Ym9hcmROYXY6IGZ1bmN0aW9uKCkgew0KICAgICAgICBkb2N1bWVudC5vYnNlcnZlKCdrZXlkb3duJywgdGhpcy5rZXlib2FyZEFjdGlvbik7IA0KICAgIH0sDQoNCiAgICAvLw0KICAgIC8vICBkaXNhYmxlS2V5Ym9hcmROYXYoKQ0KICAgIC8vDQogICAgZGlzYWJsZUtleWJvYXJkTmF2OiBmdW5jdGlvbigpIHsNCiAgICAgICAgZG9jdW1lbnQuc3RvcE9ic2VydmluZygna2V5ZG93bicsIHRoaXMua2V5Ym9hcmRBY3Rpb24pOyANCiAgICB9LA0KDQogICAgLy8NCiAgICAvLyAga2V5Ym9hcmRBY3Rpb24oKQ0KICAgIC8vDQogICAga2V5Ym9hcmRBY3Rpb246IGZ1bmN0aW9uKGV2ZW50KSB7DQogICAgICAgIHZhciBrZXljb2RlID0gZXZlbnQua2V5Q29kZTsNCg0KICAgICAgICB2YXIgZXNjYXBlS2V5Ow0KICAgICAgICBpZiAoZXZlbnQuRE9NX1ZLX0VTQ0FQRSkgeyAgLy8gbW96aWxsYQ0KICAgICAgICAgICAgZXNjYXBlS2V5ID0gZXZlbnQuRE9NX1ZLX0VTQ0FQRTsNCiAgICAgICAgfSBlbHNlIHsgLy8gaWUNCiAgICAgICAgICAgIGVzY2FwZUtleSA9IDI3Ow0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGtleSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgDQogICAgICAgIGlmIChrZXkubWF0Y2goL3h8b3xjLykgfHwgKGtleWNvZGUgPT0gZXNjYXBlS2V5KSl7IC8vIGNsb3NlIGxpZ2h0Ym94DQogICAgICAgICAgICB0aGlzLmVuZCgpOw0KICAgICAgICB9IGVsc2UgaWYgKChrZXkgPT0gJ3AnKSB8fCAoa2V5Y29kZSA9PSAzNykpeyAvLyBkaXNwbGF5IHByZXZpb3VzIGltYWdlDQogICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbWFnZSAhPSAwKXsNCiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpOw0KICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlSW1hZ2UodGhpcy5hY3RpdmVJbWFnZSAtIDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2UgaWYgKChrZXkgPT0gJ24nKSB8fCAoa2V5Y29kZSA9PSAzOSkpeyAvLyBkaXNwbGF5IG5leHQgaW1hZ2UNCiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUltYWdlICE9ICh0aGlzLmltYWdlQXJyYXkubGVuZ3RoIC0gMSkpew0KICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUtleWJvYXJkTmF2KCk7DQogICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSh0aGlzLmFjdGl2ZUltYWdlICsgMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgLy8NCiAgICAvLyAgcHJlbG9hZE5laWdoYm9ySW1hZ2VzKCkNCiAgICAvLyAgUHJlbG9hZCBwcmV2aW91cyBhbmQgbmV4dCBpbWFnZXMuDQogICAgLy8NCiAgICBwcmVsb2FkTmVpZ2hib3JJbWFnZXM6IGZ1bmN0aW9uKCl7DQogICAgICAgIHZhciBwcmVsb2FkTmV4dEltYWdlLCBwcmVsb2FkUHJldkltYWdlOw0KICAgICAgICBpZiAodGhpcy5pbWFnZUFycmF5Lmxlbmd0aCA+IHRoaXMuYWN0aXZlSW1hZ2UgKyAxKXsNCiAgICAgICAgICAgIHByZWxvYWROZXh0SW1hZ2UgPSBuZXcgSW1hZ2UoKTsNCiAgICAgICAgICAgIHByZWxvYWROZXh0SW1hZ2Uuc3JjID0gdGhpcy5pbWFnZUFycmF5W3RoaXMuYWN0aXZlSW1hZ2UgKyAxXVswXTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5hY3RpdmVJbWFnZSA+IDApew0KICAgICAgICAgICAgcHJlbG9hZFByZXZJbWFnZSA9IG5ldyBJbWFnZSgpOw0KICAgICAgICAgICAgcHJlbG9hZFByZXZJbWFnZS5zcmMgPSB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZSAtIDFdWzBdOw0KICAgICAgICB9DQogICAgDQogICAgfSwNCg0KICAgIC8vDQogICAgLy8gIGVuZCgpDQogICAgLy8NCiAgICBlbmQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpOw0KICAgICAgICB0aGlzLmxpZ2h0Ym94LmhpZGUoKTsNCiAgICAgICAgbmV3IEVmZmVjdC5GYWRlKHRoaXMub3ZlcmxheSwgeyBkdXJhdGlvbjogdGhpcy5vdmVybGF5RHVyYXRpb24gfSk7DQogICAgICAgICQkKCdzZWxlY3QnLCAnb2JqZWN0JywgJ2VtYmVkJykuZWFjaChmdW5jdGlvbihub2RlKXsgbm9kZS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnIH0pOw0KICAgIH0sDQoNCiAgICAvLw0KICAgIC8vICBnZXRQYWdlU2l6ZSgpDQogICAgLy8NCiAgICBnZXRQYWdlU2l6ZTogZnVuY3Rpb24oKSB7DQoJICAgICAgICANCgkgICAgIHZhciB4U2Nyb2xsLCB5U2Nyb2xsOw0KCQkNCgkJaWYgKHdpbmRvdy5pbm5lckhlaWdodCAmJiB3aW5kb3cuc2Nyb2xsTWF4WSkgewkNCgkJCXhTY3JvbGwgPSB3aW5kb3cuaW5uZXJXaWR0aCArIHdpbmRvdy5zY3JvbGxNYXhYOw0KCQkJeVNjcm9sbCA9IHdpbmRvdy5pbm5lckhlaWdodCArIHdpbmRvdy5zY3JvbGxNYXhZOw0KCQl9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQpeyAvLyBhbGwgYnV0IEV4cGxvcmVyIE1hYw0KCQkJeFNjcm9sbCA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGg7DQoJCQl5U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQ7DQoJCX0gZWxzZSB7IC8vIEV4cGxvcmVyIE1hYy4uLndvdWxkIGFsc28gd29yayBpbiBFeHBsb3JlciA2IFN0cmljdCwgTW96aWxsYSBhbmQgU2FmYXJpDQoJCQl4U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsNCgkJCXlTY3JvbGwgPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsNCgkJfQ0KCQkNCgkJdmFyIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQ7DQoJCQ0KCQlpZiAoc2VsZi5pbm5lckhlaWdodCkgewkvLyBhbGwgZXhjZXB0IEV4cGxvcmVyDQoJCQlpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpew0KCQkJCXdpbmRvd1dpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOyANCgkJCX0gZWxzZSB7DQoJCQkJd2luZG93V2lkdGggPSBzZWxmLmlubmVyV2lkdGg7DQoJCQl9DQoJCQl3aW5kb3dIZWlnaHQgPSBzZWxmLmlubmVySGVpZ2h0Ow0KCQl9IGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7IC8vIEV4cGxvcmVyIDYgU3RyaWN0IE1vZGUNCgkJCXdpbmRvd1dpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOw0KCQkJd2luZG93SGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDsNCgkJfSBlbHNlIGlmIChkb2N1bWVudC5ib2R5KSB7IC8vIG90aGVyIEV4cGxvcmVycw0KCQkJd2luZG93V2lkdGggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoOw0KCQkJd2luZG93SGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7DQoJCX0JDQoJCQ0KCQkvLyBmb3Igc21hbGwgcGFnZXMgd2l0aCB0b3RhbCBoZWlnaHQgbGVzcyB0aGVuIGhlaWdodCBvZiB0aGUgdmlld3BvcnQNCgkJaWYoeVNjcm9sbCA8IHdpbmRvd0hlaWdodCl7DQoJCQlwYWdlSGVpZ2h0ID0gd2luZG93SGVpZ2h0Ow0KCQl9IGVsc2UgeyANCgkJCXBhZ2VIZWlnaHQgPSB5U2Nyb2xsOw0KCQl9DQoJDQoJCS8vIGZvciBzbWFsbCBwYWdlcyB3aXRoIHRvdGFsIHdpZHRoIGxlc3MgdGhlbiB3aWR0aCBvZiB0aGUgdmlld3BvcnQNCgkJaWYoeFNjcm9sbCA8IHdpbmRvd1dpZHRoKXsJDQoJCQlwYWdlV2lkdGggPSB4U2Nyb2xsOwkJDQoJCX0gZWxzZSB7DQoJCQlwYWdlV2lkdGggPSB3aW5kb3dXaWR0aDsNCgkJfQ0KDQoJCXJldHVybiBbcGFnZVdpZHRoLHBhZ2VIZWlnaHRdOw0KCX0NCn0NCg0KZG9jdW1lbnQub2JzZXJ2ZSgnZG9tOmxvYWRlZCcsIGZ1bmN0aW9uICgpIHsgbmV3IExpZ2h0Ym94KCk7IH0pOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/prototype.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogIFByb3RvdHlwZSBKYXZhU2NyaXB0IGZyYW1ld29yaywgdmVyc2lvbiAxLjYuMC4yCiAqICAoYykgMjAwNS0yMDA4IFNhbSBTdGVwaGVuc29uCiAqCiAqICBQcm90b3R5cGUgaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIGFuIE1JVC1zdHlsZSBsaWNlbnNlLgogKiAgRm9yIGRldGFpbHMsIHNlZSB0aGUgUHJvdG90eXBlIHdlYiBzaXRlOiBodHRwOi8vd3d3LnByb3RvdHlwZWpzLm9yZy8KICoKICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgp2YXIgUHJvdG90eXBlID0gewogIFZlcnNpb246ICcxLjYuMC4yJywKCiAgQnJvd3NlcjogewogICAgSUU6ICAgICAhISh3aW5kb3cuYXR0YWNoRXZlbnQgJiYgIXdpbmRvdy5vcGVyYSksCiAgICBPcGVyYTogICEhd2luZG93Lm9wZXJhLAogICAgV2ViS2l0OiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0FwcGxlV2ViS2l0LycpID4gLTEsCiAgICBHZWNrbzogIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignR2Vja28nKSA+IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignS0hUTUwnKSA9PSAtMSwKICAgIE1vYmlsZVNhZmFyaTogISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZS4qTW9iaWxlLipTYWZhcmkvKQogIH0sCgogIEJyb3dzZXJGZWF0dXJlczogewogICAgWFBhdGg6ICEhZG9jdW1lbnQuZXZhbHVhdGUsCiAgICBFbGVtZW50RXh0ZW5zaW9uczogISF3aW5kb3cuSFRNTEVsZW1lbnQsCiAgICBTcGVjaWZpY0VsZW1lbnRFeHRlbnNpb25zOgogICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5fX3Byb3RvX18gJiYKICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykuX19wcm90b19fICE9PQogICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKS5fX3Byb3RvX18KICB9LAoKICBTY3JpcHRGcmFnbWVudDogJzxzY3JpcHRbXj5dKj4oW1xcU1xcc10qPyk8XC9zY3JpcHQ+JywKICBKU09ORmlsdGVyOiAvXlwvXCotc2VjdXJlLShbXHNcU10qKVwqXC9ccyokLywKCiAgZW1wdHlGdW5jdGlvbjogZnVuY3Rpb24oKSB7IH0sCiAgSzogZnVuY3Rpb24oeCkgeyByZXR1cm4geCB9Cn07CgppZiAoUHJvdG90eXBlLkJyb3dzZXIuTW9iaWxlU2FmYXJpKQogIFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9ucyA9IGZhbHNlOwoKCi8qIEJhc2VkIG9uIEFsZXggQXJuZWxsJ3MgaW5oZXJpdGFuY2UgaW1wbGVtZW50YXRpb24uICovCnZhciBDbGFzcyA9IHsKICBjcmVhdGU6IGZ1bmN0aW9uKCkgewogICAgdmFyIHBhcmVudCA9IG51bGwsIHByb3BlcnRpZXMgPSAkQShhcmd1bWVudHMpOwogICAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKHByb3BlcnRpZXNbMF0pKQogICAgICBwYXJlbnQgPSBwcm9wZXJ0aWVzLnNoaWZ0KCk7CgogICAgZnVuY3Rpb24ga2xhc3MoKSB7CiAgICAgIHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgfQoKICAgIE9iamVjdC5leHRlbmQoa2xhc3MsIENsYXNzLk1ldGhvZHMpOwogICAga2xhc3Muc3VwZXJjbGFzcyA9IHBhcmVudDsKICAgIGtsYXNzLnN1YmNsYXNzZXMgPSBbXTsKCiAgICBpZiAocGFyZW50KSB7CiAgICAgIHZhciBzdWJjbGFzcyA9IGZ1bmN0aW9uKCkgeyB9OwogICAgICBzdWJjbGFzcy5wcm90b3R5cGUgPSBwYXJlbnQucHJvdG90eXBlOwogICAgICBrbGFzcy5wcm90b3R5cGUgPSBuZXcgc3ViY2xhc3M7CiAgICAgIHBhcmVudC5zdWJjbGFzc2VzLnB1c2goa2xhc3MpOwogICAgfQoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykKICAgICAga2xhc3MuYWRkTWV0aG9kcyhwcm9wZXJ0aWVzW2ldKTsKCiAgICBpZiAoIWtsYXNzLnByb3RvdHlwZS5pbml0aWFsaXplKQogICAgICBrbGFzcy5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwoKICAgIGtsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGtsYXNzOwoKICAgIHJldHVybiBrbGFzczsKICB9Cn07CgpDbGFzcy5NZXRob2RzID0gewogIGFkZE1ldGhvZHM6IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgdmFyIGFuY2VzdG9yICAgPSB0aGlzLnN1cGVyY2xhc3MgJiYgdGhpcy5zdXBlcmNsYXNzLnByb3RvdHlwZTsKICAgIHZhciBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoc291cmNlKTsKCiAgICBpZiAoIU9iamVjdC5rZXlzKHsgdG9TdHJpbmc6IHRydWUgfSkubGVuZ3RoKQogICAgICBwcm9wZXJ0aWVzLnB1c2goInRvU3RyaW5nIiwgInZhbHVlT2YiKTsKCiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gcHJvcGVydGllcy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW2ldLCB2YWx1ZSA9IHNvdXJjZVtwcm9wZXJ0eV07CiAgICAgIGlmIChhbmNlc3RvciAmJiBPYmplY3QuaXNGdW5jdGlvbih2YWx1ZSkgJiYKICAgICAgICAgIHZhbHVlLmFyZ3VtZW50TmFtZXMoKS5maXJzdCgpID09ICIkc3VwZXIiKSB7CiAgICAgICAgdmFyIG1ldGhvZCA9IHZhbHVlLCB2YWx1ZSA9IE9iamVjdC5leHRlbmQoKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGFuY2VzdG9yW21dLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfTsKICAgICAgICB9KShwcm9wZXJ0eSkud3JhcChtZXRob2QpLCB7CiAgICAgICAgICB2YWx1ZU9mOiAgZnVuY3Rpb24oKSB7IHJldHVybiBtZXRob2QgfSwKICAgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ldGhvZC50b1N0cmluZygpIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICB0aGlzLnByb3RvdHlwZVtwcm9wZXJ0eV0gPSB2YWx1ZTsKICAgIH0KCiAgICByZXR1cm4gdGhpczsKICB9Cn07Cgp2YXIgQWJzdHJhY3QgPSB7IH07CgpPYmplY3QuZXh0ZW5kID0gZnVuY3Rpb24oZGVzdGluYXRpb24sIHNvdXJjZSkgewogIGZvciAodmFyIHByb3BlcnR5IGluIHNvdXJjZSkKICAgIGRlc3RpbmF0aW9uW3Byb3BlcnR5XSA9IHNvdXJjZVtwcm9wZXJ0eV07CiAgcmV0dXJuIGRlc3RpbmF0aW9uOwp9OwoKT2JqZWN0LmV4dGVuZChPYmplY3QsIHsKICBpbnNwZWN0OiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHRyeSB7CiAgICAgIGlmIChPYmplY3QuaXNVbmRlZmluZWQob2JqZWN0KSkgcmV0dXJuICd1bmRlZmluZWQnOwogICAgICBpZiAob2JqZWN0ID09PSBudWxsKSByZXR1cm4gJ251bGwnOwogICAgICByZXR1cm4gb2JqZWN0Lmluc3BlY3QgPyBvYmplY3QuaW5zcGVjdCgpIDogU3RyaW5nKG9iamVjdCk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIGlmIChlIGluc3RhbmNlb2YgUmFuZ2VFcnJvcikgcmV0dXJuICcuLi4nOwogICAgICB0aHJvdyBlOwogICAgfQogIH0sCgogIHRvSlNPTjogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvYmplY3Q7CiAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgY2FzZSAndW5kZWZpbmVkJzoKICAgICAgY2FzZSAnZnVuY3Rpb24nOgogICAgICBjYXNlICd1bmtub3duJzogcmV0dXJuOwogICAgICBjYXNlICdib29sZWFuJzogcmV0dXJuIG9iamVjdC50b1N0cmluZygpOwogICAgfQoKICAgIGlmIChvYmplY3QgPT09IG51bGwpIHJldHVybiAnbnVsbCc7CiAgICBpZiAob2JqZWN0LnRvSlNPTikgcmV0dXJuIG9iamVjdC50b0pTT04oKTsKICAgIGlmIChPYmplY3QuaXNFbGVtZW50KG9iamVjdCkpIHJldHVybjsKCiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgcHJvcGVydHkgaW4gb2JqZWN0KSB7CiAgICAgIHZhciB2YWx1ZSA9IE9iamVjdC50b0pTT04ob2JqZWN0W3Byb3BlcnR5XSk7CiAgICAgIGlmICghT2JqZWN0LmlzVW5kZWZpbmVkKHZhbHVlKSkKICAgICAgICByZXN1bHRzLnB1c2gocHJvcGVydHkudG9KU09OKCkgKyAnOiAnICsgdmFsdWUpOwogICAgfQoKICAgIHJldHVybiAneycgKyByZXN1bHRzLmpvaW4oJywgJykgKyAnfSc7CiAgfSwKCiAgdG9RdWVyeVN0cmluZzogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gJEgob2JqZWN0KS50b1F1ZXJ5U3RyaW5nKCk7CiAgfSwKCiAgdG9IVE1MOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHJldHVybiBvYmplY3QgJiYgb2JqZWN0LnRvSFRNTCA/IG9iamVjdC50b0hUTUwoKSA6IFN0cmluZy5pbnRlcnByZXQob2JqZWN0KTsKICB9LAoKICBrZXlzOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHZhciBrZXlzID0gW107CiAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBvYmplY3QpCiAgICAgIGtleXMucHVzaChwcm9wZXJ0eSk7CiAgICByZXR1cm4ga2V5czsKICB9LAoKICB2YWx1ZXM6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgdmFyIHZhbHVlcyA9IFtdOwogICAgZm9yICh2YXIgcHJvcGVydHkgaW4gb2JqZWN0KQogICAgICB2YWx1ZXMucHVzaChvYmplY3RbcHJvcGVydHldKTsKICAgIHJldHVybiB2YWx1ZXM7CiAgfSwKCiAgY2xvbmU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIE9iamVjdC5leHRlbmQoeyB9LCBvYmplY3QpOwogIH0sCgogIGlzRWxlbWVudDogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVjdC5ub2RlVHlwZSA9PSAxOwogIH0sCgogIGlzQXJyYXk6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT0gIm9iamVjdCIgJiYKICAgICAgJ3NwbGljZScgaW4gb2JqZWN0ICYmICdqb2luJyBpbiBvYmplY3Q7CiAgfSwKCiAgaXNIYXNoOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiBIYXNoOwogIH0sCgogIGlzRnVuY3Rpb246IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT0gImZ1bmN0aW9uIjsKICB9LAoKICBpc1N0cmluZzogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PSAic3RyaW5nIjsKICB9LAoKICBpc051bWJlcjogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PSAibnVtYmVyIjsKICB9LAoKICBpc1VuZGVmaW5lZDogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PSAidW5kZWZpbmVkIjsKICB9Cn0pOwoKT2JqZWN0LmV4dGVuZChGdW5jdGlvbi5wcm90b3R5cGUsIHsKICBhcmd1bWVudE5hbWVzOiBmdW5jdGlvbigpIHsKICAgIHZhciBuYW1lcyA9IHRoaXMudG9TdHJpbmcoKS5tYXRjaCgvXltcc1woXSpmdW5jdGlvblteKF0qXCgoLio/KVwpLylbMV0uc3BsaXQoIiwiKS5pbnZva2UoInN0cmlwIik7CiAgICByZXR1cm4gbmFtZXMubGVuZ3RoID09IDEgJiYgIW5hbWVzWzBdID8gW10gOiBuYW1lczsKICB9LAoKICBiaW5kOiBmdW5jdGlvbigpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMiAmJiBPYmplY3QuaXNVbmRlZmluZWQoYXJndW1lbnRzWzBdKSkgcmV0dXJuIHRoaXM7CiAgICB2YXIgX19tZXRob2QgPSB0aGlzLCBhcmdzID0gJEEoYXJndW1lbnRzKSwgb2JqZWN0ID0gYXJncy5zaGlmdCgpOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gX19tZXRob2QuYXBwbHkob2JqZWN0LCBhcmdzLmNvbmNhdCgkQShhcmd1bWVudHMpKSk7CiAgICB9CiAgfSwKCiAgYmluZEFzRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKSB7CiAgICB2YXIgX19tZXRob2QgPSB0aGlzLCBhcmdzID0gJEEoYXJndW1lbnRzKSwgb2JqZWN0ID0gYXJncy5zaGlmdCgpOwogICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgIHJldHVybiBfX21ldGhvZC5hcHBseShvYmplY3QsIFtldmVudCB8fCB3aW5kb3cuZXZlbnRdLmNvbmNhdChhcmdzKSk7CiAgICB9CiAgfSwKCiAgY3Vycnk6IGZ1bmN0aW9uKCkgewogICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gdGhpczsKICAgIHZhciBfX21ldGhvZCA9IHRoaXMsIGFyZ3MgPSAkQShhcmd1bWVudHMpOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gX19tZXRob2QuYXBwbHkodGhpcywgYXJncy5jb25jYXQoJEEoYXJndW1lbnRzKSkpOwogICAgfQogIH0sCgogIGRlbGF5OiBmdW5jdGlvbigpIHsKICAgIHZhciBfX21ldGhvZCA9IHRoaXMsIGFyZ3MgPSAkQShhcmd1bWVudHMpLCB0aW1lb3V0ID0gYXJncy5zaGlmdCgpICogMTAwMDsKICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIF9fbWV0aG9kLmFwcGx5KF9fbWV0aG9kLCBhcmdzKTsKICAgIH0sIHRpbWVvdXQpOwogIH0sCgogIHdyYXA6IGZ1bmN0aW9uKHdyYXBwZXIpIHsKICAgIHZhciBfX21ldGhvZCA9IHRoaXM7CiAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3cmFwcGVyLmFwcGx5KHRoaXMsIFtfX21ldGhvZC5iaW5kKHRoaXMpXS5jb25jYXQoJEEoYXJndW1lbnRzKSkpOwogICAgfQogIH0sCgogIG1ldGhvZGl6ZTogZnVuY3Rpb24oKSB7CiAgICBpZiAodGhpcy5fbWV0aG9kaXplZCkgcmV0dXJuIHRoaXMuX21ldGhvZGl6ZWQ7CiAgICB2YXIgX19tZXRob2QgPSB0aGlzOwogICAgcmV0dXJuIHRoaXMuX21ldGhvZGl6ZWQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIF9fbWV0aG9kLmFwcGx5KG51bGwsIFt0aGlzXS5jb25jYXQoJEEoYXJndW1lbnRzKSkpOwogICAgfTsKICB9Cn0pOwoKRnVuY3Rpb24ucHJvdG90eXBlLmRlZmVyID0gRnVuY3Rpb24ucHJvdG90eXBlLmRlbGF5LmN1cnJ5KDAuMDEpOwoKRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7CiAgcmV0dXJuICciJyArIHRoaXMuZ2V0VVRDRnVsbFllYXIoKSArICctJyArCiAgICAodGhpcy5nZXRVVENNb250aCgpICsgMSkudG9QYWRkZWRTdHJpbmcoMikgKyAnLScgKwogICAgdGhpcy5nZXRVVENEYXRlKCkudG9QYWRkZWRTdHJpbmcoMikgKyAnVCcgKwogICAgdGhpcy5nZXRVVENIb3VycygpLnRvUGFkZGVkU3RyaW5nKDIpICsgJzonICsKICAgIHRoaXMuZ2V0VVRDTWludXRlcygpLnRvUGFkZGVkU3RyaW5nKDIpICsgJzonICsKICAgIHRoaXMuZ2V0VVRDU2Vjb25kcygpLnRvUGFkZGVkU3RyaW5nKDIpICsgJ1oiJzsKfTsKCnZhciBUcnkgPSB7CiAgdGhlc2U6IGZ1bmN0aW9uKCkgewogICAgdmFyIHJldHVyblZhbHVlOwoKICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGxhbWJkYSA9IGFyZ3VtZW50c1tpXTsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm5WYWx1ZSA9IGxhbWJkYSgpOwogICAgICAgIGJyZWFrOwogICAgICB9IGNhdGNoIChlKSB7IH0KICAgIH0KCiAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAgfQp9OwoKUmVnRXhwLnByb3RvdHlwZS5tYXRjaCA9IFJlZ0V4cC5wcm90b3R5cGUudGVzdDsKClJlZ0V4cC5lc2NhcGUgPSBmdW5jdGlvbihzdHIpIHsKICByZXR1cm4gU3RyaW5nKHN0cikucmVwbGFjZSgvKFsuKis/Xj0hOiR7fSgpfFtcXVwvXFxdKS9nLCAnXFwkMScpOwp9OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgp2YXIgUGVyaW9kaWNhbEV4ZWN1dGVyID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihjYWxsYmFjaywgZnJlcXVlbmN5KSB7CiAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICB0aGlzLmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKICAgIHRoaXMuY3VycmVudGx5RXhlY3V0aW5nID0gZmFsc2U7CgogICAgdGhpcy5yZWdpc3RlckNhbGxiYWNrKCk7CiAgfSwKCiAgcmVnaXN0ZXJDYWxsYmFjazogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnRpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5vblRpbWVyRXZlbnQuYmluZCh0aGlzKSwgdGhpcy5mcmVxdWVuY3kgKiAxMDAwKTsKICB9LAoKICBleGVjdXRlOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuY2FsbGJhY2sodGhpcyk7CiAgfSwKCiAgc3RvcDogZnVuY3Rpb24oKSB7CiAgICBpZiAoIXRoaXMudGltZXIpIHJldHVybjsKICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7CiAgICB0aGlzLnRpbWVyID0gbnVsbDsKICB9LAoKICBvblRpbWVyRXZlbnQ6IGZ1bmN0aW9uKCkgewogICAgaWYgKCF0aGlzLmN1cnJlbnRseUV4ZWN1dGluZykgewogICAgICB0cnkgewogICAgICAgIHRoaXMuY3VycmVudGx5RXhlY3V0aW5nID0gdHJ1ZTsKICAgICAgICB0aGlzLmV4ZWN1dGUoKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0aGlzLmN1cnJlbnRseUV4ZWN1dGluZyA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQp9KTsKT2JqZWN0LmV4dGVuZChTdHJpbmcsIHsKICBpbnRlcnByZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogU3RyaW5nKHZhbHVlKTsKICB9LAogIHNwZWNpYWxDaGFyOiB7CiAgICAnXGInOiAnXFxiJywKICAgICdcdCc6ICdcXHQnLAogICAgJ1xuJzogJ1xcbicsCiAgICAnXGYnOiAnXFxmJywKICAgICdccic6ICdcXHInLAogICAgJ1xcJzogJ1xcXFwnCiAgfQp9KTsKCk9iamVjdC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZSwgewogIGdzdWI6IGZ1bmN0aW9uKHBhdHRlcm4sIHJlcGxhY2VtZW50KSB7CiAgICB2YXIgcmVzdWx0ID0gJycsIHNvdXJjZSA9IHRoaXMsIG1hdGNoOwogICAgcmVwbGFjZW1lbnQgPSBhcmd1bWVudHMuY2FsbGVlLnByZXBhcmVSZXBsYWNlbWVudChyZXBsYWNlbWVudCk7CgogICAgd2hpbGUgKHNvdXJjZS5sZW5ndGggPiAwKSB7CiAgICAgIGlmIChtYXRjaCA9IHNvdXJjZS5tYXRjaChwYXR0ZXJuKSkgewogICAgICAgIHJlc3VsdCArPSBzb3VyY2Uuc2xpY2UoMCwgbWF0Y2guaW5kZXgpOwogICAgICAgIHJlc3VsdCArPSBTdHJpbmcuaW50ZXJwcmV0KHJlcGxhY2VtZW50KG1hdGNoKSk7CiAgICAgICAgc291cmNlICA9IHNvdXJjZS5zbGljZShtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVzdWx0ICs9IHNvdXJjZSwgc291cmNlID0gJyc7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgc3ViOiBmdW5jdGlvbihwYXR0ZXJuLCByZXBsYWNlbWVudCwgY291bnQpIHsKICAgIHJlcGxhY2VtZW50ID0gdGhpcy5nc3ViLnByZXBhcmVSZXBsYWNlbWVudChyZXBsYWNlbWVudCk7CiAgICBjb3VudCA9IE9iamVjdC5pc1VuZGVmaW5lZChjb3VudCkgPyAxIDogY291bnQ7CgogICAgcmV0dXJuIHRoaXMuZ3N1YihwYXR0ZXJuLCBmdW5jdGlvbihtYXRjaCkgewogICAgICBpZiAoLS1jb3VudCA8IDApIHJldHVybiBtYXRjaFswXTsKICAgICAgcmV0dXJuIHJlcGxhY2VtZW50KG1hdGNoKTsKICAgIH0pOwogIH0sCgogIHNjYW46IGZ1bmN0aW9uKHBhdHRlcm4sIGl0ZXJhdG9yKSB7CiAgICB0aGlzLmdzdWIocGF0dGVybiwgaXRlcmF0b3IpOwogICAgcmV0dXJuIFN0cmluZyh0aGlzKTsKICB9LAoKICB0cnVuY2F0ZTogZnVuY3Rpb24obGVuZ3RoLCB0cnVuY2F0aW9uKSB7CiAgICBsZW5ndGggPSBsZW5ndGggfHwgMzA7CiAgICB0cnVuY2F0aW9uID0gT2JqZWN0LmlzVW5kZWZpbmVkKHRydW5jYXRpb24pID8gJy4uLicgOiB0cnVuY2F0aW9uOwogICAgcmV0dXJuIHRoaXMubGVuZ3RoID4gbGVuZ3RoID8KICAgICAgdGhpcy5zbGljZSgwLCBsZW5ndGggLSB0cnVuY2F0aW9uLmxlbmd0aCkgKyB0cnVuY2F0aW9uIDogU3RyaW5nKHRoaXMpOwogIH0sCgogIHN0cmlwOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnJlcGxhY2UoL15ccysvLCAnJykucmVwbGFjZSgvXHMrJC8sICcnKTsKICB9LAoKICBzdHJpcFRhZ3M6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwgJycpOwogIH0sCgogIHN0cmlwU2NyaXB0czogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoUHJvdG90eXBlLlNjcmlwdEZyYWdtZW50LCAnaW1nJyksICcnKTsKICB9LAoKICBleHRyYWN0U2NyaXB0czogZnVuY3Rpb24oKSB7CiAgICB2YXIgbWF0Y2hBbGwgPSBuZXcgUmVnRXhwKFByb3RvdHlwZS5TY3JpcHRGcmFnbWVudCwgJ2ltZycpOwogICAgdmFyIG1hdGNoT25lID0gbmV3IFJlZ0V4cChQcm90b3R5cGUuU2NyaXB0RnJhZ21lbnQsICdpbScpOwogICAgcmV0dXJuICh0aGlzLm1hdGNoKG1hdGNoQWxsKSB8fCBbXSkubWFwKGZ1bmN0aW9uKHNjcmlwdFRhZykgewogICAgICByZXR1cm4gKHNjcmlwdFRhZy5tYXRjaChtYXRjaE9uZSkgfHwgWycnLCAnJ10pWzFdOwogICAgfSk7CiAgfSwKCiAgZXZhbFNjcmlwdHM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZXh0cmFjdFNjcmlwdHMoKS5tYXAoZnVuY3Rpb24oc2NyaXB0KSB7IHJldHVybiBldmFsKHNjcmlwdCkgfSk7CiAgfSwKCiAgZXNjYXBlSFRNTDogZnVuY3Rpb24oKSB7CiAgICB2YXIgc2VsZiA9IGFyZ3VtZW50cy5jYWxsZWU7CiAgICBzZWxmLnRleHQuZGF0YSA9IHRoaXM7CiAgICByZXR1cm4gc2VsZi5kaXYuaW5uZXJIVE1MOwogIH0sCgogIHVuZXNjYXBlSFRNTDogZnVuY3Rpb24oKSB7CiAgICB2YXIgZGl2ID0gbmV3IEVsZW1lbnQoJ2RpdicpOwogICAgZGl2LmlubmVySFRNTCA9IHRoaXMuc3RyaXBUYWdzKCk7CiAgICByZXR1cm4gZGl2LmNoaWxkTm9kZXNbMF0gPyAoZGl2LmNoaWxkTm9kZXMubGVuZ3RoID4gMSA/CiAgICAgICRBKGRpdi5jaGlsZE5vZGVzKS5pbmplY3QoJycsIGZ1bmN0aW9uKG1lbW8sIG5vZGUpIHsgcmV0dXJuIG1lbW8rbm9kZS5ub2RlVmFsdWUgfSkgOgogICAgICBkaXYuY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpIDogJyc7CiAgfSwKCiAgdG9RdWVyeVBhcmFtczogZnVuY3Rpb24oc2VwYXJhdG9yKSB7CiAgICB2YXIgbWF0Y2ggPSB0aGlzLnN0cmlwKCkubWF0Y2goLyhbXj8jXSopKCMuKik/JC8pOwogICAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgfTsKCiAgICByZXR1cm4gbWF0Y2hbMV0uc3BsaXQoc2VwYXJhdG9yIHx8ICcmJykuaW5qZWN0KHsgfSwgZnVuY3Rpb24oaGFzaCwgcGFpcikgewogICAgICBpZiAoKHBhaXIgPSBwYWlyLnNwbGl0KCc9JykpWzBdKSB7CiAgICAgICAgdmFyIGtleSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWlyLnNoaWZ0KCkpOwogICAgICAgIHZhciB2YWx1ZSA9IHBhaXIubGVuZ3RoID4gMSA/IHBhaXIuam9pbignPScpIDogcGFpclswXTsKICAgICAgICBpZiAodmFsdWUgIT0gdW5kZWZpbmVkKSB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7CgogICAgICAgIGlmIChrZXkgaW4gaGFzaCkgewogICAgICAgICAgaWYgKCFPYmplY3QuaXNBcnJheShoYXNoW2tleV0pKSBoYXNoW2tleV0gPSBbaGFzaFtrZXldXTsKICAgICAgICAgIGhhc2hba2V5XS5wdXNoKHZhbHVlKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBoYXNoW2tleV0gPSB2YWx1ZTsKICAgICAgfQogICAgICByZXR1cm4gaGFzaDsKICAgIH0pOwogIH0sCgogIHRvQXJyYXk6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuc3BsaXQoJycpOwogIH0sCgogIHN1Y2M6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuc2xpY2UoMCwgdGhpcy5sZW5ndGggLSAxKSArCiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5jaGFyQ29kZUF0KHRoaXMubGVuZ3RoIC0gMSkgKyAxKTsKICB9LAoKICB0aW1lczogZnVuY3Rpb24oY291bnQpIHsKICAgIHJldHVybiBjb3VudCA8IDEgPyAnJyA6IG5ldyBBcnJheShjb3VudCArIDEpLmpvaW4odGhpcyk7CiAgfSwKCiAgY2FtZWxpemU6IGZ1bmN0aW9uKCkgewogICAgdmFyIHBhcnRzID0gdGhpcy5zcGxpdCgnLScpLCBsZW4gPSBwYXJ0cy5sZW5ndGg7CiAgICBpZiAobGVuID09IDEpIHJldHVybiBwYXJ0c1swXTsKCiAgICB2YXIgY2FtZWxpemVkID0gdGhpcy5jaGFyQXQoMCkgPT0gJy0nCiAgICAgID8gcGFydHNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0c1swXS5zdWJzdHJpbmcoMSkKICAgICAgOiBwYXJ0c1swXTsKCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKQogICAgICBjYW1lbGl6ZWQgKz0gcGFydHNbaV0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0c1tpXS5zdWJzdHJpbmcoMSk7CgogICAgcmV0dXJuIGNhbWVsaXplZDsKICB9LAoKICBjYXBpdGFsaXplOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGhpcy5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKTsKICB9LAoKICB1bmRlcnNjb3JlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmdzdWIoLzo6LywgJy8nKS5nc3ViKC8oW0EtWl0rKShbQS1aXVthLXpdKS8sJyN7MX1fI3syfScpLmdzdWIoLyhbYS16XGRdKShbQS1aXSkvLCcjezF9XyN7Mn0nKS5nc3ViKC8tLywnXycpLnRvTG93ZXJDYXNlKCk7CiAgfSwKCiAgZGFzaGVyaXplOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmdzdWIoL18vLCctJyk7CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24odXNlRG91YmxlUXVvdGVzKSB7CiAgICB2YXIgZXNjYXBlZFN0cmluZyA9IHRoaXMuZ3N1YigvW1x4MDAtXHgxZlxcXS8sIGZ1bmN0aW9uKG1hdGNoKSB7CiAgICAgIHZhciBjaGFyYWN0ZXIgPSBTdHJpbmcuc3BlY2lhbENoYXJbbWF0Y2hbMF1dOwogICAgICByZXR1cm4gY2hhcmFjdGVyID8gY2hhcmFjdGVyIDogJ1xcdTAwJyArIG1hdGNoWzBdLmNoYXJDb2RlQXQoKS50b1BhZGRlZFN0cmluZygyLCAxNik7CiAgICB9KTsKICAgIGlmICh1c2VEb3VibGVRdW90ZXMpIHJldHVybiAnIicgKyBlc2NhcGVkU3RyaW5nLnJlcGxhY2UoLyIvZywgJ1xcIicpICsgJyInOwogICAgcmV0dXJuICInIiArIGVzY2FwZWRTdHJpbmcucmVwbGFjZSgvJy9nLCAnXFxcJycpICsgIiciOwogIH0sCgogIHRvSlNPTjogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5pbnNwZWN0KHRydWUpOwogIH0sCgogIHVuZmlsdGVySlNPTjogZnVuY3Rpb24oZmlsdGVyKSB7CiAgICByZXR1cm4gdGhpcy5zdWIoZmlsdGVyIHx8IFByb3RvdHlwZS5KU09ORmlsdGVyLCAnI3sxfScpOwogIH0sCgogIGlzSlNPTjogZnVuY3Rpb24oKSB7CiAgICB2YXIgc3RyID0gdGhpczsKICAgIGlmIChzdHIuYmxhbmsoKSkgcmV0dXJuIGZhbHNlOwogICAgc3RyID0gdGhpcy5yZXBsYWNlKC9cXC4vZywgJ0AnKS5yZXBsYWNlKC8iW14iXFxcblxyXSoiL2csICcnKTsKICAgIHJldHVybiAoL15bLDp7fVxbXF0wLTkuXC0rRWFlZmxuci11IFxuXHJcdF0qJC8pLnRlc3Qoc3RyKTsKICB9LAoKICBldmFsSlNPTjogZnVuY3Rpb24oc2FuaXRpemUpIHsKICAgIHZhciBqc29uID0gdGhpcy51bmZpbHRlckpTT04oKTsKICAgIHRyeSB7CiAgICAgIGlmICghc2FuaXRpemUgfHwganNvbi5pc0pTT04oKSkgcmV0dXJuIGV2YWwoJygnICsganNvbiArICcpJyk7CiAgICB9IGNhdGNoIChlKSB7IH0KICAgIHRocm93IG5ldyBTeW50YXhFcnJvcignQmFkbHkgZm9ybWVkIEpTT04gc3RyaW5nOiAnICsgdGhpcy5pbnNwZWN0KCkpOwogIH0sCgogIGluY2x1ZGU6IGZ1bmN0aW9uKHBhdHRlcm4pIHsKICAgIHJldHVybiB0aGlzLmluZGV4T2YocGF0dGVybikgPiAtMTsKICB9LAoKICBzdGFydHNXaXRoOiBmdW5jdGlvbihwYXR0ZXJuKSB7CiAgICByZXR1cm4gdGhpcy5pbmRleE9mKHBhdHRlcm4pID09PSAwOwogIH0sCgogIGVuZHNXaXRoOiBmdW5jdGlvbihwYXR0ZXJuKSB7CiAgICB2YXIgZCA9IHRoaXMubGVuZ3RoIC0gcGF0dGVybi5sZW5ndGg7CiAgICByZXR1cm4gZCA+PSAwICYmIHRoaXMubGFzdEluZGV4T2YocGF0dGVybikgPT09IGQ7CiAgfSwKCiAgZW1wdHk6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMgPT0gJyc7CiAgfSwKCiAgYmxhbms6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIC9eXHMqJC8udGVzdCh0aGlzKTsKICB9LAoKICBpbnRlcnBvbGF0ZTogZnVuY3Rpb24ob2JqZWN0LCBwYXR0ZXJuKSB7CiAgICByZXR1cm4gbmV3IFRlbXBsYXRlKHRoaXMsIHBhdHRlcm4pLmV2YWx1YXRlKG9iamVjdCk7CiAgfQp9KTsKCmlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQgfHwgUHJvdG90eXBlLkJyb3dzZXIuSUUpIE9iamVjdC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZSwgewogIGVzY2FwZUhUTUw6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMucmVwbGFjZSgvJi9nLCcmYW1wOycpLnJlcGxhY2UoLzwvZywnJmx0OycpLnJlcGxhY2UoLz4vZywnJmd0OycpOwogIH0sCiAgdW5lc2NhcGVIVE1MOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnJlcGxhY2UoLyZhbXA7L2csJyYnKS5yZXBsYWNlKC8mbHQ7L2csJzwnKS5yZXBsYWNlKC8mZ3Q7L2csJz4nKTsKICB9Cn0pOwoKU3RyaW5nLnByb3RvdHlwZS5nc3ViLnByZXBhcmVSZXBsYWNlbWVudCA9IGZ1bmN0aW9uKHJlcGxhY2VtZW50KSB7CiAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKHJlcGxhY2VtZW50KSkgcmV0dXJuIHJlcGxhY2VtZW50OwogIHZhciB0ZW1wbGF0ZSA9IG5ldyBUZW1wbGF0ZShyZXBsYWNlbWVudCk7CiAgcmV0dXJuIGZ1bmN0aW9uKG1hdGNoKSB7IHJldHVybiB0ZW1wbGF0ZS5ldmFsdWF0ZShtYXRjaCkgfTsKfTsKClN0cmluZy5wcm90b3R5cGUucGFyc2VRdWVyeSA9IFN0cmluZy5wcm90b3R5cGUudG9RdWVyeVBhcmFtczsKCk9iamVjdC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVIVE1MLCB7CiAgZGl2OiAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCiAgdGV4dDogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpCn0pOwoKd2l0aCAoU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVIVE1MKSBkaXYuYXBwZW5kQ2hpbGQodGV4dCk7Cgp2YXIgVGVtcGxhdGUgPSBDbGFzcy5jcmVhdGUoewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKHRlbXBsYXRlLCBwYXR0ZXJuKSB7CiAgICB0aGlzLnRlbXBsYXRlID0gdGVtcGxhdGUudG9TdHJpbmcoKTsKICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm4gfHwgVGVtcGxhdGUuUGF0dGVybjsKICB9LAoKICBldmFsdWF0ZTogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24ob2JqZWN0LnRvVGVtcGxhdGVSZXBsYWNlbWVudHMpKQogICAgICBvYmplY3QgPSBvYmplY3QudG9UZW1wbGF0ZVJlcGxhY2VtZW50cygpOwoKICAgIHJldHVybiB0aGlzLnRlbXBsYXRlLmdzdWIodGhpcy5wYXR0ZXJuLCBmdW5jdGlvbihtYXRjaCkgewogICAgICBpZiAob2JqZWN0ID09IG51bGwpIHJldHVybiAnJzsKCiAgICAgIHZhciBiZWZvcmUgPSBtYXRjaFsxXSB8fCAnJzsKICAgICAgaWYgKGJlZm9yZSA9PSAnXFwnKSByZXR1cm4gbWF0Y2hbMl07CgogICAgICB2YXIgY3R4ID0gb2JqZWN0LCBleHByID0gbWF0Y2hbM107CiAgICAgIHZhciBwYXR0ZXJuID0gL14oW14uW10rfFxbKCg/Oi4qP1teXFxdKT8pXF0pKFwufFxbfCQpLzsKICAgICAgbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoZXhwcik7CiAgICAgIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gYmVmb3JlOwoKICAgICAgd2hpbGUgKG1hdGNoICE9IG51bGwpIHsKICAgICAgICB2YXIgY29tcCA9IG1hdGNoWzFdLnN0YXJ0c1dpdGgoJ1snKSA/IG1hdGNoWzJdLmdzdWIoJ1xcXFxdJywgJ10nKSA6IG1hdGNoWzFdOwogICAgICAgIGN0eCA9IGN0eFtjb21wXTsKICAgICAgICBpZiAobnVsbCA9PSBjdHggfHwgJycgPT0gbWF0Y2hbM10pIGJyZWFrOwogICAgICAgIGV4cHIgPSBleHByLnN1YnN0cmluZygnWycgPT0gbWF0Y2hbM10gPyBtYXRjaFsxXS5sZW5ndGggOiBtYXRjaFswXS5sZW5ndGgpOwogICAgICAgIG1hdGNoID0gcGF0dGVybi5leGVjKGV4cHIpOwogICAgICB9CgogICAgICByZXR1cm4gYmVmb3JlICsgU3RyaW5nLmludGVycHJldChjdHgpOwogICAgfSk7CiAgfQp9KTsKVGVtcGxhdGUuUGF0dGVybiA9IC8oXnwufFxyfFxuKSgjXHsoLio/KVx9KS87Cgp2YXIgJGJyZWFrID0geyB9OwoKdmFyIEVudW1lcmFibGUgPSB7CiAgZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIHZhciBpbmRleCA9IDA7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yLmJpbmQoY29udGV4dCk7CiAgICB0cnkgewogICAgICB0aGlzLl9lYWNoKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgaXRlcmF0b3IodmFsdWUsIGluZGV4KyspOwogICAgICB9KTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgaWYgKGUgIT0gJGJyZWFrKSB0aHJvdyBlOwogICAgfQogICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgZWFjaFNsaWNlOiBmdW5jdGlvbihudW1iZXIsIGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250ZXh0KSA6IFByb3RvdHlwZS5LOwogICAgdmFyIGluZGV4ID0gLW51bWJlciwgc2xpY2VzID0gW10sIGFycmF5ID0gdGhpcy50b0FycmF5KCk7CiAgICB3aGlsZSAoKGluZGV4ICs9IG51bWJlcikgPCBhcnJheS5sZW5ndGgpCiAgICAgIHNsaWNlcy5wdXNoKGFycmF5LnNsaWNlKGluZGV4LCBpbmRleCtudW1iZXIpKTsKICAgIHJldHVybiBzbGljZXMuY29sbGVjdChpdGVyYXRvciwgY29udGV4dCk7CiAgfSwKCiAgYWxsOiBmdW5jdGlvbihpdGVyYXRvciwgY29udGV4dCkgewogICAgaXRlcmF0b3IgPSBpdGVyYXRvciA/IGl0ZXJhdG9yLmJpbmQoY29udGV4dCkgOiBQcm90b3R5cGUuSzsKICAgIHZhciByZXN1bHQgPSB0cnVlOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICByZXN1bHQgPSByZXN1bHQgJiYgISFpdGVyYXRvcih2YWx1ZSwgaW5kZXgpOwogICAgICBpZiAoIXJlc3VsdCkgdGhyb3cgJGJyZWFrOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIGFueTogZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IgPyBpdGVyYXRvci5iaW5kKGNvbnRleHQpIDogUHJvdG90eXBlLks7CiAgICB2YXIgcmVzdWx0ID0gZmFsc2U7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGlmIChyZXN1bHQgPSAhIWl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpCiAgICAgICAgdGhyb3cgJGJyZWFrOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIGNvbGxlY3Q6IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250ZXh0KSA6IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmVzdWx0cy5wdXNoKGl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBkZXRlY3Q6IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yLmJpbmQoY29udGV4dCk7CiAgICB2YXIgcmVzdWx0OwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAoaXRlcmF0b3IodmFsdWUsIGluZGV4KSkgewogICAgICAgIHJlc3VsdCA9IHZhbHVlOwogICAgICAgIHRocm93ICRicmVhazsKICAgICAgfQogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIGZpbmRBbGw6IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yLmJpbmQoY29udGV4dCk7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAoaXRlcmF0b3IodmFsdWUsIGluZGV4KSkKICAgICAgICByZXN1bHRzLnB1c2godmFsdWUpOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBncmVwOiBmdW5jdGlvbihmaWx0ZXIsIGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250ZXh0KSA6IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKCiAgICBpZiAoT2JqZWN0LmlzU3RyaW5nKGZpbHRlcikpCiAgICAgIGZpbHRlciA9IG5ldyBSZWdFeHAoZmlsdGVyKTsKCiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGlmIChmaWx0ZXIubWF0Y2godmFsdWUpKQogICAgICAgIHJlc3VsdHMucHVzaChpdGVyYXRvcih2YWx1ZSwgaW5kZXgpKTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgaW5jbHVkZTogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24odGhpcy5pbmRleE9mKSkKICAgICAgaWYgKHRoaXMuaW5kZXhPZihvYmplY3QpICE9IC0xKSByZXR1cm4gdHJ1ZTsKCiAgICB2YXIgZm91bmQgPSBmYWxzZTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSkgewogICAgICBpZiAodmFsdWUgPT0gb2JqZWN0KSB7CiAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgIHRocm93ICRicmVhazsKICAgICAgfQogICAgfSk7CiAgICByZXR1cm4gZm91bmQ7CiAgfSwKCiAgaW5Hcm91cHNPZjogZnVuY3Rpb24obnVtYmVyLCBmaWxsV2l0aCkgewogICAgZmlsbFdpdGggPSBPYmplY3QuaXNVbmRlZmluZWQoZmlsbFdpdGgpID8gbnVsbCA6IGZpbGxXaXRoOwogICAgcmV0dXJuIHRoaXMuZWFjaFNsaWNlKG51bWJlciwgZnVuY3Rpb24oc2xpY2UpIHsKICAgICAgd2hpbGUoc2xpY2UubGVuZ3RoIDwgbnVtYmVyKSBzbGljZS5wdXNoKGZpbGxXaXRoKTsKICAgICAgcmV0dXJuIHNsaWNlOwogICAgfSk7CiAgfSwKCiAgaW5qZWN0OiBmdW5jdGlvbihtZW1vLCBpdGVyYXRvciwgY29udGV4dCkgewogICAgaXRlcmF0b3IgPSBpdGVyYXRvci5iaW5kKGNvbnRleHQpOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBtZW1vID0gaXRlcmF0b3IobWVtbywgdmFsdWUsIGluZGV4KTsKICAgIH0pOwogICAgcmV0dXJuIG1lbW87CiAgfSwKCiAgaW52b2tlOiBmdW5jdGlvbihtZXRob2QpIHsKICAgIHZhciBhcmdzID0gJEEoYXJndW1lbnRzKS5zbGljZSgxKTsKICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWVbbWV0aG9kXS5hcHBseSh2YWx1ZSwgYXJncyk7CiAgICB9KTsKICB9LAoKICBtYXg6IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250ZXh0KSA6IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdDsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgdmFsdWUgPSBpdGVyYXRvcih2YWx1ZSwgaW5kZXgpOwogICAgICBpZiAocmVzdWx0ID09IG51bGwgfHwgdmFsdWUgPj0gcmVzdWx0KQogICAgICAgIHJlc3VsdCA9IHZhbHVlOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIG1pbjogZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IgPyBpdGVyYXRvci5iaW5kKGNvbnRleHQpIDogUHJvdG90eXBlLks7CiAgICB2YXIgcmVzdWx0OwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICB2YWx1ZSA9IGl0ZXJhdG9yKHZhbHVlLCBpbmRleCk7CiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCB8fCB2YWx1ZSA8IHJlc3VsdCkKICAgICAgICByZXN1bHQgPSB2YWx1ZTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBwYXJ0aXRpb246IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yID8gaXRlcmF0b3IuYmluZChjb250ZXh0KSA6IFByb3RvdHlwZS5LOwogICAgdmFyIHRydWVzID0gW10sIGZhbHNlcyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICAoaXRlcmF0b3IodmFsdWUsIGluZGV4KSA/CiAgICAgICAgdHJ1ZXMgOiBmYWxzZXMpLnB1c2godmFsdWUpOwogICAgfSk7CiAgICByZXR1cm4gW3RydWVzLCBmYWxzZXNdOwogIH0sCgogIHBsdWNrOiBmdW5jdGlvbihwcm9wZXJ0eSkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXN1bHRzLnB1c2godmFsdWVbcHJvcGVydHldKTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgcmVqZWN0OiBmdW5jdGlvbihpdGVyYXRvciwgY29udGV4dCkgewogICAgaXRlcmF0b3IgPSBpdGVyYXRvci5iaW5kKGNvbnRleHQpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKCFpdGVyYXRvcih2YWx1ZSwgaW5kZXgpKQogICAgICAgIHJlc3VsdHMucHVzaCh2YWx1ZSk7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHRzOwogIH0sCgogIHNvcnRCeTogZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IuYmluZChjb250ZXh0KTsKICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmV0dXJuIHt2YWx1ZTogdmFsdWUsIGNyaXRlcmlhOiBpdGVyYXRvcih2YWx1ZSwgaW5kZXgpfTsKICAgIH0pLnNvcnQoZnVuY3Rpb24obGVmdCwgcmlnaHQpIHsKICAgICAgdmFyIGEgPSBsZWZ0LmNyaXRlcmlhLCBiID0gcmlnaHQuY3JpdGVyaWE7CiAgICAgIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMDsKICAgIH0pLnBsdWNrKCd2YWx1ZScpOwogIH0sCgogIHRvQXJyYXk6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMubWFwKCk7CiAgfSwKCiAgemlwOiBmdW5jdGlvbigpIHsKICAgIHZhciBpdGVyYXRvciA9IFByb3RvdHlwZS5LLCBhcmdzID0gJEEoYXJndW1lbnRzKTsKICAgIGlmIChPYmplY3QuaXNGdW5jdGlvbihhcmdzLmxhc3QoKSkpCiAgICAgIGl0ZXJhdG9yID0gYXJncy5wb3AoKTsKCiAgICB2YXIgY29sbGVjdGlvbnMgPSBbdGhpc10uY29uY2F0KGFyZ3MpLm1hcCgkQSk7CiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHJldHVybiBpdGVyYXRvcihjb2xsZWN0aW9ucy5wbHVjayhpbmRleCkpOwogICAgfSk7CiAgfSwKCiAgc2l6ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy50b0FycmF5KCkubGVuZ3RoOwogIH0sCgogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICcjPEVudW1lcmFibGU6JyArIHRoaXMudG9BcnJheSgpLmluc3BlY3QoKSArICc+JzsKICB9Cn07CgpPYmplY3QuZXh0ZW5kKEVudW1lcmFibGUsIHsKICBtYXA6ICAgICBFbnVtZXJhYmxlLmNvbGxlY3QsCiAgZmluZDogICAgRW51bWVyYWJsZS5kZXRlY3QsCiAgc2VsZWN0OiAgRW51bWVyYWJsZS5maW5kQWxsLAogIGZpbHRlcjogIEVudW1lcmFibGUuZmluZEFsbCwKICBtZW1iZXI6ICBFbnVtZXJhYmxlLmluY2x1ZGUsCiAgZW50cmllczogRW51bWVyYWJsZS50b0FycmF5LAogIGV2ZXJ5OiAgIEVudW1lcmFibGUuYWxsLAogIHNvbWU6ICAgIEVudW1lcmFibGUuYW55Cn0pOwpmdW5jdGlvbiAkQShpdGVyYWJsZSkgewogIGlmICghaXRlcmFibGUpIHJldHVybiBbXTsKICBpZiAoaXRlcmFibGUudG9BcnJheSkgcmV0dXJuIGl0ZXJhYmxlLnRvQXJyYXkoKTsKICB2YXIgbGVuZ3RoID0gaXRlcmFibGUubGVuZ3RoIHx8IDAsIHJlc3VsdHMgPSBuZXcgQXJyYXkobGVuZ3RoKTsKICB3aGlsZSAobGVuZ3RoLS0pIHJlc3VsdHNbbGVuZ3RoXSA9IGl0ZXJhYmxlW2xlbmd0aF07CiAgcmV0dXJuIHJlc3VsdHM7Cn0KCmlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQpIHsKICAkQSA9IGZ1bmN0aW9uKGl0ZXJhYmxlKSB7CiAgICBpZiAoIWl0ZXJhYmxlKSByZXR1cm4gW107CiAgICBpZiAoIShPYmplY3QuaXNGdW5jdGlvbihpdGVyYWJsZSkgJiYgaXRlcmFibGUgPT0gJ1tvYmplY3QgTm9kZUxpc3RdJykgJiYKICAgICAgICBpdGVyYWJsZS50b0FycmF5KSByZXR1cm4gaXRlcmFibGUudG9BcnJheSgpOwogICAgdmFyIGxlbmd0aCA9IGl0ZXJhYmxlLmxlbmd0aCB8fCAwLCByZXN1bHRzID0gbmV3IEFycmF5KGxlbmd0aCk7CiAgICB3aGlsZSAobGVuZ3RoLS0pIHJlc3VsdHNbbGVuZ3RoXSA9IGl0ZXJhYmxlW2xlbmd0aF07CiAgICByZXR1cm4gcmVzdWx0czsKICB9Owp9CgpBcnJheS5mcm9tID0gJEE7CgpPYmplY3QuZXh0ZW5kKEFycmF5LnByb3RvdHlwZSwgRW51bWVyYWJsZSk7CgppZiAoIUFycmF5LnByb3RvdHlwZS5fcmV2ZXJzZSkgQXJyYXkucHJvdG90eXBlLl9yZXZlcnNlID0gQXJyYXkucHJvdG90eXBlLnJldmVyc2U7CgpPYmplY3QuZXh0ZW5kKEFycmF5LnByb3RvdHlwZSwgewogIF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IHRoaXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspCiAgICAgIGl0ZXJhdG9yKHRoaXNbaV0pOwogIH0sCgogIGNsZWFyOiBmdW5jdGlvbigpIHsKICAgIHRoaXMubGVuZ3RoID0gMDsKICAgIHJldHVybiB0aGlzOwogIH0sCgogIGZpcnN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzWzBdOwogIH0sCgogIGxhc3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXNbdGhpcy5sZW5ndGggLSAxXTsKICB9LAoKICBjb21wYWN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbDsKICAgIH0pOwogIH0sCgogIGZsYXR0ZW46IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuaW5qZWN0KFtdLCBmdW5jdGlvbihhcnJheSwgdmFsdWUpIHsKICAgICAgcmV0dXJuIGFycmF5LmNvbmNhdChPYmplY3QuaXNBcnJheSh2YWx1ZSkgPwogICAgICAgIHZhbHVlLmZsYXR0ZW4oKSA6IFt2YWx1ZV0pOwogICAgfSk7CiAgfSwKCiAgd2l0aG91dDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWVzID0gJEEoYXJndW1lbnRzKTsKICAgIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gIXZhbHVlcy5pbmNsdWRlKHZhbHVlKTsKICAgIH0pOwogIH0sCgogIHJldmVyc2U6IGZ1bmN0aW9uKGlubGluZSkgewogICAgcmV0dXJuIChpbmxpbmUgIT09IGZhbHNlID8gdGhpcyA6IHRoaXMudG9BcnJheSgpKS5fcmV2ZXJzZSgpOwogIH0sCgogIHJlZHVjZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5sZW5ndGggPiAxID8gdGhpcyA6IHRoaXNbMF07CiAgfSwKCiAgdW5pcTogZnVuY3Rpb24oc29ydGVkKSB7CiAgICByZXR1cm4gdGhpcy5pbmplY3QoW10sIGZ1bmN0aW9uKGFycmF5LCB2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKDAgPT0gaW5kZXggfHwgKHNvcnRlZCA/IGFycmF5Lmxhc3QoKSAhPSB2YWx1ZSA6ICFhcnJheS5pbmNsdWRlKHZhbHVlKSkpCiAgICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7CiAgICAgIHJldHVybiBhcnJheTsKICAgIH0pOwogIH0sCgogIGludGVyc2VjdDogZnVuY3Rpb24oYXJyYXkpIHsKICAgIHJldHVybiB0aGlzLnVuaXEoKS5maW5kQWxsKGZ1bmN0aW9uKGl0ZW0pIHsKICAgICAgcmV0dXJuIGFycmF5LmRldGVjdChmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gaXRlbSA9PT0gdmFsdWUgfSk7CiAgICB9KTsKICB9LAoKICBjbG9uZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gW10uY29uY2F0KHRoaXMpOwogIH0sCgogIHNpemU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMubGVuZ3RoOwogIH0sCgogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICdbJyArIHRoaXMubWFwKE9iamVjdC5pbnNwZWN0KS5qb2luKCcsICcpICsgJ10nOwogIH0sCgogIHRvSlNPTjogZnVuY3Rpb24oKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKG9iamVjdCkgewogICAgICB2YXIgdmFsdWUgPSBPYmplY3QudG9KU09OKG9iamVjdCk7CiAgICAgIGlmICghT2JqZWN0LmlzVW5kZWZpbmVkKHZhbHVlKSkgcmVzdWx0cy5wdXNoKHZhbHVlKTsKICAgIH0pOwogICAgcmV0dXJuICdbJyArIHJlc3VsdHMuam9pbignLCAnKSArICddJzsKICB9Cn0pOwoKLy8gdXNlIG5hdGl2ZSBicm93c2VyIEpTIDEuNiBpbXBsZW1lbnRhdGlvbiBpZiBhdmFpbGFibGUKaWYgKE9iamVjdC5pc0Z1bmN0aW9uKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSkKICBBcnJheS5wcm90b3R5cGUuX2VhY2ggPSBBcnJheS5wcm90b3R5cGUuZm9yRWFjaDsKCmlmICghQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIEFycmF5LnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24oaXRlbSwgaSkgewogIGkgfHwgKGkgPSAwKTsKICB2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGg7CiAgaWYgKGkgPCAwKSBpID0gbGVuZ3RoICsgaTsKICBmb3IgKDsgaSA8IGxlbmd0aDsgaSsrKQogICAgaWYgKHRoaXNbaV0gPT09IGl0ZW0pIHJldHVybiBpOwogIHJldHVybiAtMTsKfTsKCmlmICghQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgPSBmdW5jdGlvbihpdGVtLCBpKSB7CiAgaSA9IGlzTmFOKGkpID8gdGhpcy5sZW5ndGggOiAoaSA8IDAgPyB0aGlzLmxlbmd0aCArIGkgOiBpKSArIDE7CiAgdmFyIG4gPSB0aGlzLnNsaWNlKDAsIGkpLnJldmVyc2UoKS5pbmRleE9mKGl0ZW0pOwogIHJldHVybiAobiA8IDApID8gbiA6IGkgLSBuIC0gMTsKfTsKCkFycmF5LnByb3RvdHlwZS50b0FycmF5ID0gQXJyYXkucHJvdG90eXBlLmNsb25lOwoKZnVuY3Rpb24gJHcoc3RyaW5nKSB7CiAgaWYgKCFPYmplY3QuaXNTdHJpbmcoc3RyaW5nKSkgcmV0dXJuIFtdOwogIHN0cmluZyA9IHN0cmluZy5zdHJpcCgpOwogIHJldHVybiBzdHJpbmcgPyBzdHJpbmcuc3BsaXQoL1xzKy8pIDogW107Cn0KCmlmIChQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSl7CiAgQXJyYXkucHJvdG90eXBlLmNvbmNhdCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGFycmF5ID0gW107CiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gdGhpcy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykgYXJyYXkucHVzaCh0aGlzW2ldKTsKICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKE9iamVjdC5pc0FycmF5KGFyZ3VtZW50c1tpXSkpIHsKICAgICAgICBmb3IgKHZhciBqID0gMCwgYXJyYXlMZW5ndGggPSBhcmd1bWVudHNbaV0ubGVuZ3RoOyBqIDwgYXJyYXlMZW5ndGg7IGorKykKICAgICAgICAgIGFycmF5LnB1c2goYXJndW1lbnRzW2ldW2pdKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBhcnJheS5wdXNoKGFyZ3VtZW50c1tpXSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBhcnJheTsKICB9Owp9Ck9iamVjdC5leHRlbmQoTnVtYmVyLnByb3RvdHlwZSwgewogIHRvQ29sb3JQYXJ0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnRvUGFkZGVkU3RyaW5nKDIsIDE2KTsKICB9LAoKICBzdWNjOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzICsgMTsKICB9LAoKICB0aW1lczogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgICRSKDAsIHRoaXMsIHRydWUpLmVhY2goaXRlcmF0b3IpOwogICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgdG9QYWRkZWRTdHJpbmc6IGZ1bmN0aW9uKGxlbmd0aCwgcmFkaXgpIHsKICAgIHZhciBzdHJpbmcgPSB0aGlzLnRvU3RyaW5nKHJhZGl4IHx8IDEwKTsKICAgIHJldHVybiAnMCcudGltZXMobGVuZ3RoIC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7CiAgfSwKCiAgdG9KU09OOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBpc0Zpbml0ZSh0aGlzKSA/IHRoaXMudG9TdHJpbmcoKSA6ICdudWxsJzsKICB9Cn0pOwoKJHcoJ2FicyByb3VuZCBjZWlsIGZsb29yJykuZWFjaChmdW5jdGlvbihtZXRob2QpewogIE51bWJlci5wcm90b3R5cGVbbWV0aG9kXSA9IE1hdGhbbWV0aG9kXS5tZXRob2RpemUoKTsKfSk7CmZ1bmN0aW9uICRIKG9iamVjdCkgewogIHJldHVybiBuZXcgSGFzaChvYmplY3QpOwp9OwoKdmFyIEhhc2ggPSBDbGFzcy5jcmVhdGUoRW51bWVyYWJsZSwgKGZ1bmN0aW9uKCkgewoKICBmdW5jdGlvbiB0b1F1ZXJ5UGFpcihrZXksIHZhbHVlKSB7CiAgICBpZiAoT2JqZWN0LmlzVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuIGtleTsKICAgIHJldHVybiBrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nLmludGVycHJldCh2YWx1ZSkpOwogIH0KCiAgcmV0dXJuIHsKICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgICB0aGlzLl9vYmplY3QgPSBPYmplY3QuaXNIYXNoKG9iamVjdCkgPyBvYmplY3QudG9PYmplY3QoKSA6IE9iamVjdC5jbG9uZShvYmplY3QpOwogICAgfSwKCiAgICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMuX29iamVjdCkgewogICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX29iamVjdFtrZXldLCBwYWlyID0gW2tleSwgdmFsdWVdOwogICAgICAgIHBhaXIua2V5ID0ga2V5OwogICAgICAgIHBhaXIudmFsdWUgPSB2YWx1ZTsKICAgICAgICBpdGVyYXRvcihwYWlyKTsKICAgICAgfQogICAgfSwKCiAgICBzZXQ6IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKICAgICAgcmV0dXJuIHRoaXMuX29iamVjdFtrZXldID0gdmFsdWU7CiAgICB9LAoKICAgIGdldDogZnVuY3Rpb24oa2V5KSB7CiAgICAgIHJldHVybiB0aGlzLl9vYmplY3Rba2V5XTsKICAgIH0sCgogICAgdW5zZXQ6IGZ1bmN0aW9uKGtleSkgewogICAgICB2YXIgdmFsdWUgPSB0aGlzLl9vYmplY3Rba2V5XTsKICAgICAgZGVsZXRlIHRoaXMuX29iamVjdFtrZXldOwogICAgICByZXR1cm4gdmFsdWU7CiAgICB9LAoKICAgIHRvT2JqZWN0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9iamVjdC5jbG9uZSh0aGlzLl9vYmplY3QpOwogICAgfSwKCiAgICBrZXlzOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMucGx1Y2soJ2tleScpOwogICAgfSwKCiAgICB2YWx1ZXM6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5wbHVjaygndmFsdWUnKTsKICAgIH0sCgogICAgaW5kZXg6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgIHZhciBtYXRjaCA9IHRoaXMuZGV0ZWN0KGZ1bmN0aW9uKHBhaXIpIHsKICAgICAgICByZXR1cm4gcGFpci52YWx1ZSA9PT0gdmFsdWU7CiAgICAgIH0pOwogICAgICByZXR1cm4gbWF0Y2ggJiYgbWF0Y2gua2V5OwogICAgfSwKCiAgICBtZXJnZTogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICAgIHJldHVybiB0aGlzLmNsb25lKCkudXBkYXRlKG9iamVjdCk7CiAgICB9LAoKICAgIHVwZGF0ZTogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICAgIHJldHVybiBuZXcgSGFzaChvYmplY3QpLmluamVjdCh0aGlzLCBmdW5jdGlvbihyZXN1bHQsIHBhaXIpIHsKICAgICAgICByZXN1bHQuc2V0KHBhaXIua2V5LCBwYWlyLnZhbHVlKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9KTsKICAgIH0sCgogICAgdG9RdWVyeVN0cmluZzogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbihwYWlyKSB7CiAgICAgICAgdmFyIGtleSA9IGVuY29kZVVSSUNvbXBvbmVudChwYWlyLmtleSksIHZhbHVlcyA9IHBhaXIudmFsdWU7CgogICAgICAgIGlmICh2YWx1ZXMgJiYgdHlwZW9mIHZhbHVlcyA9PSAnb2JqZWN0JykgewogICAgICAgICAgaWYgKE9iamVjdC5pc0FycmF5KHZhbHVlcykpCiAgICAgICAgICAgIHJldHVybiB2YWx1ZXMubWFwKHRvUXVlcnlQYWlyLmN1cnJ5KGtleSkpLmpvaW4oJyYnKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRvUXVlcnlQYWlyKGtleSwgdmFsdWVzKTsKICAgICAgfSkuam9pbignJicpOwogICAgfSwKCiAgICBpbnNwZWN0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICcjPEhhc2g6eycgKyB0aGlzLm1hcChmdW5jdGlvbihwYWlyKSB7CiAgICAgICAgcmV0dXJuIHBhaXIubWFwKE9iamVjdC5pbnNwZWN0KS5qb2luKCc6ICcpOwogICAgICB9KS5qb2luKCcsICcpICsgJ30+JzsKICAgIH0sCgogICAgdG9KU09OOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9iamVjdC50b0pTT04odGhpcy50b09iamVjdCgpKTsKICAgIH0sCgogICAgY2xvbmU6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbmV3IEhhc2godGhpcyk7CiAgICB9CiAgfQp9KSgpKTsKCkhhc2gucHJvdG90eXBlLnRvVGVtcGxhdGVSZXBsYWNlbWVudHMgPSBIYXNoLnByb3RvdHlwZS50b09iamVjdDsKSGFzaC5mcm9tID0gJEg7CnZhciBPYmplY3RSYW5nZSA9IENsYXNzLmNyZWF0ZShFbnVtZXJhYmxlLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oc3RhcnQsIGVuZCwgZXhjbHVzaXZlKSB7CiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CiAgICB0aGlzLmVuZCA9IGVuZDsKICAgIHRoaXMuZXhjbHVzaXZlID0gZXhjbHVzaXZlOwogIH0sCgogIF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHZhbHVlID0gdGhpcy5zdGFydDsKICAgIHdoaWxlICh0aGlzLmluY2x1ZGUodmFsdWUpKSB7CiAgICAgIGl0ZXJhdG9yKHZhbHVlKTsKICAgICAgdmFsdWUgPSB2YWx1ZS5zdWNjKCk7CiAgICB9CiAgfSwKCiAgaW5jbHVkZTogZnVuY3Rpb24odmFsdWUpIHsKICAgIGlmICh2YWx1ZSA8IHRoaXMuc3RhcnQpCiAgICAgIHJldHVybiBmYWxzZTsKICAgIGlmICh0aGlzLmV4Y2x1c2l2ZSkKICAgICAgcmV0dXJuIHZhbHVlIDwgdGhpcy5lbmQ7CiAgICByZXR1cm4gdmFsdWUgPD0gdGhpcy5lbmQ7CiAgfQp9KTsKCnZhciAkUiA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIGV4Y2x1c2l2ZSkgewogIHJldHVybiBuZXcgT2JqZWN0UmFuZ2Uoc3RhcnQsIGVuZCwgZXhjbHVzaXZlKTsKfTsKCnZhciBBamF4ID0gewogIGdldFRyYW5zcG9ydDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gVHJ5LnRoZXNlKAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0KCl9LAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQJyl9LAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyl9CiAgICApIHx8IGZhbHNlOwogIH0sCgogIGFjdGl2ZVJlcXVlc3RDb3VudDogMAp9OwoKQWpheC5SZXNwb25kZXJzID0gewogIHJlc3BvbmRlcnM6IFtdLAoKICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHRoaXMucmVzcG9uZGVycy5fZWFjaChpdGVyYXRvcik7CiAgfSwKCiAgcmVnaXN0ZXI6IGZ1bmN0aW9uKHJlc3BvbmRlcikgewogICAgaWYgKCF0aGlzLmluY2x1ZGUocmVzcG9uZGVyKSkKICAgICAgdGhpcy5yZXNwb25kZXJzLnB1c2gocmVzcG9uZGVyKTsKICB9LAoKICB1bnJlZ2lzdGVyOiBmdW5jdGlvbihyZXNwb25kZXIpIHsKICAgIHRoaXMucmVzcG9uZGVycyA9IHRoaXMucmVzcG9uZGVycy53aXRob3V0KHJlc3BvbmRlcik7CiAgfSwKCiAgZGlzcGF0Y2g6IGZ1bmN0aW9uKGNhbGxiYWNrLCByZXF1ZXN0LCB0cmFuc3BvcnQsIGpzb24pIHsKICAgIHRoaXMuZWFjaChmdW5jdGlvbihyZXNwb25kZXIpIHsKICAgICAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKHJlc3BvbmRlcltjYWxsYmFja10pKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJlc3BvbmRlcltjYWxsYmFja10uYXBwbHkocmVzcG9uZGVyLCBbcmVxdWVzdCwgdHJhbnNwb3J0LCBqc29uXSk7CiAgICAgICAgfSBjYXRjaCAoZSkgeyB9CiAgICAgIH0KICAgIH0pOwogIH0KfTsKCk9iamVjdC5leHRlbmQoQWpheC5SZXNwb25kZXJzLCBFbnVtZXJhYmxlKTsKCkFqYXguUmVzcG9uZGVycy5yZWdpc3Rlcih7CiAgb25DcmVhdGU6ICAgZnVuY3Rpb24oKSB7IEFqYXguYWN0aXZlUmVxdWVzdENvdW50KysgfSwKICBvbkNvbXBsZXRlOiBmdW5jdGlvbigpIHsgQWpheC5hY3RpdmVSZXF1ZXN0Q291bnQtLSB9Cn0pOwoKQWpheC5CYXNlID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihvcHRpb25zKSB7CiAgICB0aGlzLm9wdGlvbnMgPSB7CiAgICAgIG1ldGhvZDogICAgICAgJ3Bvc3QnLAogICAgICBhc3luY2hyb25vdXM6IHRydWUsCiAgICAgIGNvbnRlbnRUeXBlOiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsCiAgICAgIGVuY29kaW5nOiAgICAgJ1VURi04JywKICAgICAgcGFyYW1ldGVyczogICAnJywKICAgICAgZXZhbEpTT046ICAgICB0cnVlLAogICAgICBldmFsSlM6ICAgICAgIHRydWUKICAgIH07CiAgICBPYmplY3QuZXh0ZW5kKHRoaXMub3B0aW9ucywgb3B0aW9ucyB8fCB7IH0pOwoKICAgIHRoaXMub3B0aW9ucy5tZXRob2QgPSB0aGlzLm9wdGlvbnMubWV0aG9kLnRvTG93ZXJDYXNlKCk7CgogICAgaWYgKE9iamVjdC5pc1N0cmluZyh0aGlzLm9wdGlvbnMucGFyYW1ldGVycykpCiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzID0gdGhpcy5vcHRpb25zLnBhcmFtZXRlcnMudG9RdWVyeVBhcmFtcygpOwogICAgZWxzZSBpZiAoT2JqZWN0LmlzSGFzaCh0aGlzLm9wdGlvbnMucGFyYW1ldGVycykpCiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzID0gdGhpcy5vcHRpb25zLnBhcmFtZXRlcnMudG9PYmplY3QoKTsKICB9Cn0pOwoKQWpheC5SZXF1ZXN0ID0gQ2xhc3MuY3JlYXRlKEFqYXguQmFzZSwgewogIF9jb21wbGV0ZTogZmFsc2UsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBlciwgdXJsLCBvcHRpb25zKSB7CiAgICAkc3VwZXIob3B0aW9ucyk7CiAgICB0aGlzLnRyYW5zcG9ydCA9IEFqYXguZ2V0VHJhbnNwb3J0KCk7CiAgICB0aGlzLnJlcXVlc3QodXJsKTsKICB9LAoKICByZXF1ZXN0OiBmdW5jdGlvbih1cmwpIHsKICAgIHRoaXMudXJsID0gdXJsOwogICAgdGhpcy5tZXRob2QgPSB0aGlzLm9wdGlvbnMubWV0aG9kOwogICAgdmFyIHBhcmFtcyA9IE9iamVjdC5jbG9uZSh0aGlzLm9wdGlvbnMucGFyYW1ldGVycyk7CgogICAgaWYgKCFbJ2dldCcsICdwb3N0J10uaW5jbHVkZSh0aGlzLm1ldGhvZCkpIHsKICAgICAgLy8gc2ltdWxhdGUgb3RoZXIgdmVyYnMgb3ZlciBwb3N0CiAgICAgIHBhcmFtc1snX21ldGhvZCddID0gdGhpcy5tZXRob2Q7CiAgICAgIHRoaXMubWV0aG9kID0gJ3Bvc3QnOwogICAgfQoKICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtczsKCiAgICBpZiAocGFyYW1zID0gT2JqZWN0LnRvUXVlcnlTdHJpbmcocGFyYW1zKSkgewogICAgICAvLyB3aGVuIEdFVCwgYXBwZW5kIHBhcmFtZXRlcnMgdG8gVVJMCiAgICAgIGlmICh0aGlzLm1ldGhvZCA9PSAnZ2V0JykKICAgICAgICB0aGlzLnVybCArPSAodGhpcy51cmwuaW5jbHVkZSgnPycpID8gJyYnIDogJz8nKSArIHBhcmFtczsKICAgICAgZWxzZSBpZiAoL0tvbnF1ZXJvcnxTYWZhcml8S0hUTUwvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpCiAgICAgICAgcGFyYW1zICs9ICcmXz0nOwogICAgfQoKICAgIHRyeSB7CiAgICAgIHZhciByZXNwb25zZSA9IG5ldyBBamF4LlJlc3BvbnNlKHRoaXMpOwogICAgICBpZiAodGhpcy5vcHRpb25zLm9uQ3JlYXRlKSB0aGlzLm9wdGlvbnMub25DcmVhdGUocmVzcG9uc2UpOwogICAgICBBamF4LlJlc3BvbmRlcnMuZGlzcGF0Y2goJ29uQ3JlYXRlJywgdGhpcywgcmVzcG9uc2UpOwoKICAgICAgdGhpcy50cmFuc3BvcnQub3Blbih0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpLCB0aGlzLnVybCwKICAgICAgICB0aGlzLm9wdGlvbnMuYXN5bmNocm9ub3VzKTsKCiAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXN5bmNocm9ub3VzKSB0aGlzLnJlc3BvbmRUb1JlYWR5U3RhdGUuYmluZCh0aGlzKS5kZWZlcigxKTsKCiAgICAgIHRoaXMudHJhbnNwb3J0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IHRoaXMub25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpOwogICAgICB0aGlzLnNldFJlcXVlc3RIZWFkZXJzKCk7CgogICAgICB0aGlzLmJvZHkgPSB0aGlzLm1ldGhvZCA9PSAncG9zdCcgPyAodGhpcy5vcHRpb25zLnBvc3RCb2R5IHx8IHBhcmFtcykgOiBudWxsOwogICAgICB0aGlzLnRyYW5zcG9ydC5zZW5kKHRoaXMuYm9keSk7CgogICAgICAvKiBGb3JjZSBGaXJlZm94IHRvIGhhbmRsZSByZWFkeSBzdGF0ZSA0IGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyAqLwogICAgICBpZiAoIXRoaXMub3B0aW9ucy5hc3luY2hyb25vdXMgJiYgdGhpcy50cmFuc3BvcnQub3ZlcnJpZGVNaW1lVHlwZSkKICAgICAgICB0aGlzLm9uU3RhdGVDaGFuZ2UoKTsKCiAgICB9CiAgICBjYXRjaCAoZSkgewogICAgICB0aGlzLmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgfQogIH0sCgogIG9uU3RhdGVDaGFuZ2U6IGZ1bmN0aW9uKCkgewogICAgdmFyIHJlYWR5U3RhdGUgPSB0aGlzLnRyYW5zcG9ydC5yZWFkeVN0YXRlOwogICAgaWYgKHJlYWR5U3RhdGUgPiAxICYmICEoKHJlYWR5U3RhdGUgPT0gNCkgJiYgdGhpcy5fY29tcGxldGUpKQogICAgICB0aGlzLnJlc3BvbmRUb1JlYWR5U3RhdGUodGhpcy50cmFuc3BvcnQucmVhZHlTdGF0ZSk7CiAgfSwKCiAgc2V0UmVxdWVzdEhlYWRlcnM6IGZ1bmN0aW9uKCkgewogICAgdmFyIGhlYWRlcnMgPSB7CiAgICAgICdYLVJlcXVlc3RlZC1XaXRoJzogJ1hNTEh0dHBSZXF1ZXN0JywKICAgICAgJ1gtUHJvdG90eXBlLVZlcnNpb24nOiBQcm90b3R5cGUuVmVyc2lvbiwKICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2phdmFzY3JpcHQsIHRleHQvaHRtbCwgYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCwgKi8qJwogICAgfTsKCiAgICBpZiAodGhpcy5tZXRob2QgPT0gJ3Bvc3QnKSB7CiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtdHlwZSddID0gdGhpcy5vcHRpb25zLmNvbnRlbnRUeXBlICsKICAgICAgICAodGhpcy5vcHRpb25zLmVuY29kaW5nID8gJzsgY2hhcnNldD0nICsgdGhpcy5vcHRpb25zLmVuY29kaW5nIDogJycpOwoKICAgICAgLyogRm9yY2UgIkNvbm5lY3Rpb246IGNsb3NlIiBmb3Igb2xkZXIgTW96aWxsYSBicm93c2VycyB0byB3b3JrCiAgICAgICAqIGFyb3VuZCBhIGJ1ZyB3aGVyZSBYTUxIdHRwUmVxdWVzdCBzZW5kcyBhbiBpbmNvcnJlY3QKICAgICAgICogQ29udGVudC1sZW5ndGggaGVhZGVyLiBTZWUgTW96aWxsYSBCdWd6aWxsYSAjMjQ2NjUxLgogICAgICAgKi8KICAgICAgaWYgKHRoaXMudHJhbnNwb3J0Lm92ZXJyaWRlTWltZVR5cGUgJiYKICAgICAgICAgIChuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9HZWNrb1wvKFxkezR9KS8pIHx8IFswLDIwMDVdKVsxXSA8IDIwMDUpCiAgICAgICAgICAgIGhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdjbG9zZSc7CiAgICB9CgogICAgLy8gdXNlci1kZWZpbmVkIGhlYWRlcnMKICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLnJlcXVlc3RIZWFkZXJzID09ICdvYmplY3QnKSB7CiAgICAgIHZhciBleHRyYXMgPSB0aGlzLm9wdGlvbnMucmVxdWVzdEhlYWRlcnM7CgogICAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24oZXh0cmFzLnB1c2gpKQogICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBleHRyYXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpICs9IDIpCiAgICAgICAgICBoZWFkZXJzW2V4dHJhc1tpXV0gPSBleHRyYXNbaSsxXTsKICAgICAgZWxzZQogICAgICAgICRIKGV4dHJhcykuZWFjaChmdW5jdGlvbihwYWlyKSB7IGhlYWRlcnNbcGFpci5rZXldID0gcGFpci52YWx1ZSB9KTsKICAgIH0KCiAgICBmb3IgKHZhciBuYW1lIGluIGhlYWRlcnMpCiAgICAgIHRoaXMudHJhbnNwb3J0LnNldFJlcXVlc3RIZWFkZXIobmFtZSwgaGVhZGVyc1tuYW1lXSk7CiAgfSwKCiAgc3VjY2VzczogZnVuY3Rpb24oKSB7CiAgICB2YXIgc3RhdHVzID0gdGhpcy5nZXRTdGF0dXMoKTsKICAgIHJldHVybiAhc3RhdHVzIHx8IChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCk7CiAgfSwKCiAgZ2V0U3RhdHVzOiBmdW5jdGlvbigpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5zdGF0dXMgfHwgMDsKICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuIDAgfQogIH0sCgogIHJlc3BvbmRUb1JlYWR5U3RhdGU6IGZ1bmN0aW9uKHJlYWR5U3RhdGUpIHsKICAgIHZhciBzdGF0ZSA9IEFqYXguUmVxdWVzdC5FdmVudHNbcmVhZHlTdGF0ZV0sIHJlc3BvbnNlID0gbmV3IEFqYXguUmVzcG9uc2UodGhpcyk7CgogICAgaWYgKHN0YXRlID09ICdDb21wbGV0ZScpIHsKICAgICAgdHJ5IHsKICAgICAgICB0aGlzLl9jb21wbGV0ZSA9IHRydWU7CiAgICAgICAgKHRoaXMub3B0aW9uc1snb24nICsgcmVzcG9uc2Uuc3RhdHVzXQogICAgICAgICB8fCB0aGlzLm9wdGlvbnNbJ29uJyArICh0aGlzLnN1Y2Nlc3MoKSA/ICdTdWNjZXNzJyA6ICdGYWlsdXJlJyldCiAgICAgICAgIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKShyZXNwb25zZSwgcmVzcG9uc2UuaGVhZGVySlNPTik7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICB0aGlzLmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgICB9CgogICAgICB2YXIgY29udGVudFR5cGUgPSByZXNwb25zZS5nZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScpOwogICAgICBpZiAodGhpcy5vcHRpb25zLmV2YWxKUyA9PSAnZm9yY2UnCiAgICAgICAgICB8fCAodGhpcy5vcHRpb25zLmV2YWxKUyAmJiB0aGlzLmlzU2FtZU9yaWdpbigpICYmIGNvbnRlbnRUeXBlCiAgICAgICAgICAmJiBjb250ZW50VHlwZS5tYXRjaCgvXlxzKih0ZXh0fGFwcGxpY2F0aW9uKVwvKHgtKT8oamF2YXxlY21hKXNjcmlwdCg7LiopP1xzKiQvaSkpKQogICAgICAgIHRoaXMuZXZhbFJlc3BvbnNlKCk7CiAgICB9CgogICAgdHJ5IHsKICAgICAgKHRoaXMub3B0aW9uc1snb24nICsgc3RhdGVdIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKShyZXNwb25zZSwgcmVzcG9uc2UuaGVhZGVySlNPTik7CiAgICAgIEFqYXguUmVzcG9uZGVycy5kaXNwYXRjaCgnb24nICsgc3RhdGUsIHRoaXMsIHJlc3BvbnNlLCByZXNwb25zZS5oZWFkZXJKU09OKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgdGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KCiAgICBpZiAoc3RhdGUgPT0gJ0NvbXBsZXRlJykgewogICAgICAvLyBhdm9pZCBtZW1vcnkgbGVhayBpbiBNU0lFOiBjbGVhbiB1cAogICAgICB0aGlzLnRyYW5zcG9ydC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsKICAgIH0KICB9LAoKICBpc1NhbWVPcmlnaW46IGZ1bmN0aW9uKCkgewogICAgdmFyIG0gPSB0aGlzLnVybC5tYXRjaCgvXlxzKmh0dHBzPzpcL1wvW15cL10qLyk7CiAgICByZXR1cm4gIW0gfHwgKG1bMF0gPT0gJyN7cHJvdG9jb2x9Ly8je2RvbWFpbn0je3BvcnR9Jy5pbnRlcnBvbGF0ZSh7CiAgICAgIHByb3RvY29sOiBsb2NhdGlvbi5wcm90b2NvbCwKICAgICAgZG9tYWluOiBkb2N1bWVudC5kb21haW4sCiAgICAgIHBvcnQ6IGxvY2F0aW9uLnBvcnQgPyAnOicgKyBsb2NhdGlvbi5wb3J0IDogJycKICAgIH0pKTsKICB9LAoKICBnZXRIZWFkZXI6IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5nZXRSZXNwb25zZUhlYWRlcihuYW1lKSB8fCBudWxsOwogICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gbnVsbCB9CiAgfSwKCiAgZXZhbFJlc3BvbnNlOiBmdW5jdGlvbigpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiBldmFsKCh0aGlzLnRyYW5zcG9ydC5yZXNwb25zZVRleHQgfHwgJycpLnVuZmlsdGVySlNPTigpKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgdGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KICB9LAoKICBkaXNwYXRjaEV4Y2VwdGlvbjogZnVuY3Rpb24oZXhjZXB0aW9uKSB7CiAgICAodGhpcy5vcHRpb25zLm9uRXhjZXB0aW9uIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKSh0aGlzLCBleGNlcHRpb24pOwogICAgQWpheC5SZXNwb25kZXJzLmRpc3BhdGNoKCdvbkV4Y2VwdGlvbicsIHRoaXMsIGV4Y2VwdGlvbik7CiAgfQp9KTsKCkFqYXguUmVxdWVzdC5FdmVudHMgPQogIFsnVW5pbml0aWFsaXplZCcsICdMb2FkaW5nJywgJ0xvYWRlZCcsICdJbnRlcmFjdGl2ZScsICdDb21wbGV0ZSddOwoKQWpheC5SZXNwb25zZSA9IENsYXNzLmNyZWF0ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocmVxdWVzdCl7CiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgdmFyIHRyYW5zcG9ydCAgPSB0aGlzLnRyYW5zcG9ydCAgPSByZXF1ZXN0LnRyYW5zcG9ydCwKICAgICAgICByZWFkeVN0YXRlID0gdGhpcy5yZWFkeVN0YXRlID0gdHJhbnNwb3J0LnJlYWR5U3RhdGU7CgogICAgaWYoKHJlYWR5U3RhdGUgPiAyICYmICFQcm90b3R5cGUuQnJvd3Nlci5JRSkgfHwgcmVhZHlTdGF0ZSA9PSA0KSB7CiAgICAgIHRoaXMuc3RhdHVzICAgICAgID0gdGhpcy5nZXRTdGF0dXMoKTsKICAgICAgdGhpcy5zdGF0dXNUZXh0ICAgPSB0aGlzLmdldFN0YXR1c1RleHQoKTsKICAgICAgdGhpcy5yZXNwb25zZVRleHQgPSBTdHJpbmcuaW50ZXJwcmV0KHRyYW5zcG9ydC5yZXNwb25zZVRleHQpOwogICAgICB0aGlzLmhlYWRlckpTT04gICA9IHRoaXMuX2dldEhlYWRlckpTT04oKTsKICAgIH0KCiAgICBpZihyZWFkeVN0YXRlID09IDQpIHsKICAgICAgdmFyIHhtbCA9IHRyYW5zcG9ydC5yZXNwb25zZVhNTDsKICAgICAgdGhpcy5yZXNwb25zZVhNTCAgPSBPYmplY3QuaXNVbmRlZmluZWQoeG1sKSA/IG51bGwgOiB4bWw7CiAgICAgIHRoaXMucmVzcG9uc2VKU09OID0gdGhpcy5fZ2V0UmVzcG9uc2VKU09OKCk7CiAgICB9CiAgfSwKCiAgc3RhdHVzOiAgICAgIDAsCiAgc3RhdHVzVGV4dDogJycsCgogIGdldFN0YXR1czogQWpheC5SZXF1ZXN0LnByb3RvdHlwZS5nZXRTdGF0dXMsCgogIGdldFN0YXR1c1RleHQ6IGZ1bmN0aW9uKCkgewogICAgdHJ5IHsKICAgICAgcmV0dXJuIHRoaXMudHJhbnNwb3J0LnN0YXR1c1RleHQgfHwgJyc7CiAgICB9IGNhdGNoIChlKSB7IHJldHVybiAnJyB9CiAgfSwKCiAgZ2V0SGVhZGVyOiBBamF4LlJlcXVlc3QucHJvdG90eXBlLmdldEhlYWRlciwKCiAgZ2V0QWxsSGVhZGVyczogZnVuY3Rpb24oKSB7CiAgICB0cnkgewogICAgICByZXR1cm4gdGhpcy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuIG51bGwgfQogIH0sCgogIGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbihuYW1lKSB7CiAgICByZXR1cm4gdGhpcy50cmFuc3BvcnQuZ2V0UmVzcG9uc2VIZWFkZXIobmFtZSk7CiAgfSwKCiAgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKICB9LAoKICBfZ2V0SGVhZGVySlNPTjogZnVuY3Rpb24oKSB7CiAgICB2YXIganNvbiA9IHRoaXMuZ2V0SGVhZGVyKCdYLUpTT04nKTsKICAgIGlmICghanNvbikgcmV0dXJuIG51bGw7CiAgICBqc29uID0gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShqc29uKSk7CiAgICB0cnkgewogICAgICByZXR1cm4ganNvbi5ldmFsSlNPTih0aGlzLnJlcXVlc3Qub3B0aW9ucy5zYW5pdGl6ZUpTT04gfHwKICAgICAgICAhdGhpcy5yZXF1ZXN0LmlzU2FtZU9yaWdpbigpKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgdGhpcy5yZXF1ZXN0LmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgfQogIH0sCgogIF9nZXRSZXNwb25zZUpTT046IGZ1bmN0aW9uKCkgewogICAgdmFyIG9wdGlvbnMgPSB0aGlzLnJlcXVlc3Qub3B0aW9uczsKICAgIGlmICghb3B0aW9ucy5ldmFsSlNPTiB8fCAob3B0aW9ucy5ldmFsSlNPTiAhPSAnZm9yY2UnICYmCiAgICAgICEodGhpcy5nZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScpIHx8ICcnKS5pbmNsdWRlKCdhcHBsaWNhdGlvbi9qc29uJykpIHx8CiAgICAgICAgdGhpcy5yZXNwb25zZVRleHQuYmxhbmsoKSkKICAgICAgICAgIHJldHVybiBudWxsOwogICAgdHJ5IHsKICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VUZXh0LmV2YWxKU09OKG9wdGlvbnMuc2FuaXRpemVKU09OIHx8CiAgICAgICAgIXRoaXMucmVxdWVzdC5pc1NhbWVPcmlnaW4oKSk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHRoaXMucmVxdWVzdC5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KICB9Cn0pOwoKQWpheC5VcGRhdGVyID0gQ2xhc3MuY3JlYXRlKEFqYXguUmVxdWVzdCwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBlciwgY29udGFpbmVyLCB1cmwsIG9wdGlvbnMpIHsKICAgIHRoaXMuY29udGFpbmVyID0gewogICAgICBzdWNjZXNzOiAoY29udGFpbmVyLnN1Y2Nlc3MgfHwgY29udGFpbmVyKSwKICAgICAgZmFpbHVyZTogKGNvbnRhaW5lci5mYWlsdXJlIHx8IChjb250YWluZXIuc3VjY2VzcyA/IG51bGwgOiBjb250YWluZXIpKQogICAgfTsKCiAgICBvcHRpb25zID0gT2JqZWN0LmNsb25lKG9wdGlvbnMpOwogICAgdmFyIG9uQ29tcGxldGUgPSBvcHRpb25zLm9uQ29tcGxldGU7CiAgICBvcHRpb25zLm9uQ29tcGxldGUgPSAoZnVuY3Rpb24ocmVzcG9uc2UsIGpzb24pIHsKICAgICAgdGhpcy51cGRhdGVDb250ZW50KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7CiAgICAgIGlmIChPYmplY3QuaXNGdW5jdGlvbihvbkNvbXBsZXRlKSkgb25Db21wbGV0ZShyZXNwb25zZSwganNvbik7CiAgICB9KS5iaW5kKHRoaXMpOwoKICAgICRzdXBlcih1cmwsIG9wdGlvbnMpOwogIH0sCgogIHVwZGF0ZUNvbnRlbnQ6IGZ1bmN0aW9uKHJlc3BvbnNlVGV4dCkgewogICAgdmFyIHJlY2VpdmVyID0gdGhpcy5jb250YWluZXJbdGhpcy5zdWNjZXNzKCkgPyAnc3VjY2VzcycgOiAnZmFpbHVyZSddLAogICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7CgogICAgaWYgKCFvcHRpb25zLmV2YWxTY3JpcHRzKSByZXNwb25zZVRleHQgPSByZXNwb25zZVRleHQuc3RyaXBTY3JpcHRzKCk7CgogICAgaWYgKHJlY2VpdmVyID0gJChyZWNlaXZlcikpIHsKICAgICAgaWYgKG9wdGlvbnMuaW5zZXJ0aW9uKSB7CiAgICAgICAgaWYgKE9iamVjdC5pc1N0cmluZyhvcHRpb25zLmluc2VydGlvbikpIHsKICAgICAgICAgIHZhciBpbnNlcnRpb24gPSB7IH07IGluc2VydGlvbltvcHRpb25zLmluc2VydGlvbl0gPSByZXNwb25zZVRleHQ7CiAgICAgICAgICByZWNlaXZlci5pbnNlcnQoaW5zZXJ0aW9uKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBvcHRpb25zLmluc2VydGlvbihyZWNlaXZlciwgcmVzcG9uc2VUZXh0KTsKICAgICAgfQogICAgICBlbHNlIHJlY2VpdmVyLnVwZGF0ZShyZXNwb25zZVRleHQpOwogICAgfQogIH0KfSk7CgpBamF4LlBlcmlvZGljYWxVcGRhdGVyID0gQ2xhc3MuY3JlYXRlKEFqYXguQmFzZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBlciwgY29udGFpbmVyLCB1cmwsIG9wdGlvbnMpIHsKICAgICRzdXBlcihvcHRpb25zKTsKICAgIHRoaXMub25Db21wbGV0ZSA9IHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlOwoKICAgIHRoaXMuZnJlcXVlbmN5ID0gKHRoaXMub3B0aW9ucy5mcmVxdWVuY3kgfHwgMik7CiAgICB0aGlzLmRlY2F5ID0gKHRoaXMub3B0aW9ucy5kZWNheSB8fCAxKTsKCiAgICB0aGlzLnVwZGF0ZXIgPSB7IH07CiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjsKICAgIHRoaXMudXJsID0gdXJsOwoKICAgIHRoaXMuc3RhcnQoKTsKICB9LAoKICBzdGFydDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLm9wdGlvbnMub25Db21wbGV0ZSA9IHRoaXMudXBkYXRlQ29tcGxldGUuYmluZCh0aGlzKTsKICAgIHRoaXMub25UaW1lckV2ZW50KCk7CiAgfSwKCiAgc3RvcDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnVwZGF0ZXIub3B0aW9ucy5vbkNvbXBsZXRlID0gdW5kZWZpbmVkOwogICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpOwogICAgKHRoaXMub25Db21wbGV0ZSB8fCBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbikuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICB9LAoKICB1cGRhdGVDb21wbGV0ZTogZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgIGlmICh0aGlzLm9wdGlvbnMuZGVjYXkpIHsKICAgICAgdGhpcy5kZWNheSA9IChyZXNwb25zZS5yZXNwb25zZVRleHQgPT0gdGhpcy5sYXN0VGV4dCA/CiAgICAgICAgdGhpcy5kZWNheSAqIHRoaXMub3B0aW9ucy5kZWNheSA6IDEpOwoKICAgICAgdGhpcy5sYXN0VGV4dCA9IHJlc3BvbnNlLnJlc3BvbnNlVGV4dDsKICAgIH0KICAgIHRoaXMudGltZXIgPSB0aGlzLm9uVGltZXJFdmVudC5iaW5kKHRoaXMpLmRlbGF5KHRoaXMuZGVjYXkgKiB0aGlzLmZyZXF1ZW5jeSk7CiAgfSwKCiAgb25UaW1lckV2ZW50OiBmdW5jdGlvbigpIHsKICAgIHRoaXMudXBkYXRlciA9IG5ldyBBamF4LlVwZGF0ZXIodGhpcy5jb250YWluZXIsIHRoaXMudXJsLCB0aGlzLm9wdGlvbnMpOwogIH0KfSk7CmZ1bmN0aW9uICQoZWxlbWVudCkgewogIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgewogICAgZm9yICh2YXIgaSA9IDAsIGVsZW1lbnRzID0gW10sIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykKICAgICAgZWxlbWVudHMucHVzaCgkKGFyZ3VtZW50c1tpXSkpOwogICAgcmV0dXJuIGVsZW1lbnRzOwogIH0KICBpZiAoT2JqZWN0LmlzU3RyaW5nKGVsZW1lbnQpKQogICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpOwogIHJldHVybiBFbGVtZW50LmV4dGVuZChlbGVtZW50KTsKfQoKaWYgKFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuWFBhdGgpIHsKICBkb2N1bWVudC5fZ2V0RWxlbWVudHNCeVhQYXRoID0gZnVuY3Rpb24oZXhwcmVzc2lvbiwgcGFyZW50RWxlbWVudCkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBxdWVyeSA9IGRvY3VtZW50LmV2YWx1YXRlKGV4cHJlc3Npb24sICQocGFyZW50RWxlbWVudCkgfHwgZG9jdW1lbnQsCiAgICAgIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBxdWVyeS5zbmFwc2hvdExlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKQogICAgICByZXN1bHRzLnB1c2goRWxlbWVudC5leHRlbmQocXVlcnkuc25hcHNob3RJdGVtKGkpKSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9Owp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCmlmICghd2luZG93Lk5vZGUpIHZhciBOb2RlID0geyB9OwoKaWYgKCFOb2RlLkVMRU1FTlRfTk9ERSkgewogIC8vIERPTSBsZXZlbCAyIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgQmluZGluZwogIE9iamVjdC5leHRlbmQoTm9kZSwgewogICAgRUxFTUVOVF9OT0RFOiAxLAogICAgQVRUUklCVVRFX05PREU6IDIsCiAgICBURVhUX05PREU6IDMsCiAgICBDREFUQV9TRUNUSU9OX05PREU6IDQsCiAgICBFTlRJVFlfUkVGRVJFTkNFX05PREU6IDUsCiAgICBFTlRJVFlfTk9ERTogNiwKICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERTogNywKICAgIENPTU1FTlRfTk9ERTogOCwKICAgIERPQ1VNRU5UX05PREU6IDksCiAgICBET0NVTUVOVF9UWVBFX05PREU6IDEwLAogICAgRE9DVU1FTlRfRlJBR01FTlRfTk9ERTogMTEsCiAgICBOT1RBVElPTl9OT0RFOiAxMgogIH0pOwp9CgooZnVuY3Rpb24oKSB7CiAgdmFyIGVsZW1lbnQgPSB0aGlzLkVsZW1lbnQ7CiAgdGhpcy5FbGVtZW50ID0gZnVuY3Rpb24odGFnTmFtZSwgYXR0cmlidXRlcykgewogICAgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwgeyB9OwogICAgdGFnTmFtZSA9IHRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgIHZhciBjYWNoZSA9IEVsZW1lbnQuY2FjaGU7CiAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUgJiYgYXR0cmlidXRlcy5uYW1lKSB7CiAgICAgIHRhZ05hbWUgPSAnPCcgKyB0YWdOYW1lICsgJyBuYW1lPSInICsgYXR0cmlidXRlcy5uYW1lICsgJyI+JzsKICAgICAgZGVsZXRlIGF0dHJpYnV0ZXMubmFtZTsKICAgICAgcmV0dXJuIEVsZW1lbnQud3JpdGVBdHRyaWJ1dGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKSwgYXR0cmlidXRlcyk7CiAgICB9CiAgICBpZiAoIWNhY2hlW3RhZ05hbWVdKSBjYWNoZVt0YWdOYW1lXSA9IEVsZW1lbnQuZXh0ZW5kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSkpOwogICAgcmV0dXJuIEVsZW1lbnQud3JpdGVBdHRyaWJ1dGUoY2FjaGVbdGFnTmFtZV0uY2xvbmVOb2RlKGZhbHNlKSwgYXR0cmlidXRlcyk7CiAgfTsKICBPYmplY3QuZXh0ZW5kKHRoaXMuRWxlbWVudCwgZWxlbWVudCB8fCB7IH0pOwp9KS5jYWxsKHdpbmRvdyk7CgpFbGVtZW50LmNhY2hlID0geyB9OwoKRWxlbWVudC5NZXRob2RzID0gewogIHZpc2libGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgIT0gJ25vbmUnOwogIH0sCgogIHRvZ2dsZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBFbGVtZW50W0VsZW1lbnQudmlzaWJsZShlbGVtZW50KSA/ICdoaWRlJyA6ICdzaG93J10oZWxlbWVudCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBoaWRlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAkKGVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBzaG93OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAkKGVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIHJlbW92ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICB1cGRhdGU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC50b0VsZW1lbnQpIGNvbnRlbnQgPSBjb250ZW50LnRvRWxlbWVudCgpOwogICAgaWYgKE9iamVjdC5pc0VsZW1lbnQoY29udGVudCkpIHJldHVybiBlbGVtZW50LnVwZGF0ZSgpLmluc2VydChjb250ZW50KTsKICAgIGNvbnRlbnQgPSBPYmplY3QudG9IVE1MKGNvbnRlbnQpOwogICAgZWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50LnN0cmlwU2NyaXB0cygpOwogICAgY29udGVudC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICByZXBsYWNlOiBmdW5jdGlvbihlbGVtZW50LCBjb250ZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQudG9FbGVtZW50KSBjb250ZW50ID0gY29udGVudC50b0VsZW1lbnQoKTsKICAgIGVsc2UgaWYgKCFPYmplY3QuaXNFbGVtZW50KGNvbnRlbnQpKSB7CiAgICAgIGNvbnRlbnQgPSBPYmplY3QudG9IVE1MKGNvbnRlbnQpOwogICAgICB2YXIgcmFuZ2UgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZShlbGVtZW50KTsKICAgICAgY29udGVudC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICAgIGNvbnRlbnQgPSByYW5nZS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29udGVudC5zdHJpcFNjcmlwdHMoKSk7CiAgICB9CiAgICBlbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGNvbnRlbnQsIGVsZW1lbnQpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgaW5zZXJ0OiBmdW5jdGlvbihlbGVtZW50LCBpbnNlcnRpb25zKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKCiAgICBpZiAoT2JqZWN0LmlzU3RyaW5nKGluc2VydGlvbnMpIHx8IE9iamVjdC5pc051bWJlcihpbnNlcnRpb25zKSB8fAogICAgICAgIE9iamVjdC5pc0VsZW1lbnQoaW5zZXJ0aW9ucykgfHwgKGluc2VydGlvbnMgJiYgKGluc2VydGlvbnMudG9FbGVtZW50IHx8IGluc2VydGlvbnMudG9IVE1MKSkpCiAgICAgICAgICBpbnNlcnRpb25zID0ge2JvdHRvbTppbnNlcnRpb25zfTsKCiAgICB2YXIgY29udGVudCwgaW5zZXJ0LCB0YWdOYW1lLCBjaGlsZE5vZGVzOwoKICAgIGZvciAodmFyIHBvc2l0aW9uIGluIGluc2VydGlvbnMpIHsKICAgICAgY29udGVudCAgPSBpbnNlcnRpb25zW3Bvc2l0aW9uXTsKICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi50b0xvd2VyQ2FzZSgpOwogICAgICBpbnNlcnQgPSBFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnNbcG9zaXRpb25dOwoKICAgICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC50b0VsZW1lbnQpIGNvbnRlbnQgPSBjb250ZW50LnRvRWxlbWVudCgpOwogICAgICBpZiAoT2JqZWN0LmlzRWxlbWVudChjb250ZW50KSkgewogICAgICAgIGluc2VydChlbGVtZW50LCBjb250ZW50KTsKICAgICAgICBjb250aW51ZTsKICAgICAgfQoKICAgICAgY29udGVudCA9IE9iamVjdC50b0hUTUwoY29udGVudCk7CgogICAgICB0YWdOYW1lID0gKChwb3NpdGlvbiA9PSAnYmVmb3JlJyB8fCBwb3NpdGlvbiA9PSAnYWZ0ZXInKQogICAgICAgID8gZWxlbWVudC5wYXJlbnROb2RlIDogZWxlbWVudCkudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgICAgY2hpbGROb2RlcyA9IEVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0YWdOYW1lLCBjb250ZW50LnN0cmlwU2NyaXB0cygpKTsKCiAgICAgIGlmIChwb3NpdGlvbiA9PSAndG9wJyB8fCBwb3NpdGlvbiA9PSAnYWZ0ZXInKSBjaGlsZE5vZGVzLnJldmVyc2UoKTsKICAgICAgY2hpbGROb2Rlcy5lYWNoKGluc2VydC5jdXJyeShlbGVtZW50KSk7CgogICAgICBjb250ZW50LmV2YWxTY3JpcHRzLmJpbmQoY29udGVudCkuZGVmZXIoKTsKICAgIH0KCiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICB3cmFwOiBmdW5jdGlvbihlbGVtZW50LCB3cmFwcGVyLCBhdHRyaWJ1dGVzKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChPYmplY3QuaXNFbGVtZW50KHdyYXBwZXIpKQogICAgICAkKHdyYXBwZXIpLndyaXRlQXR0cmlidXRlKGF0dHJpYnV0ZXMgfHwgeyB9KTsKICAgIGVsc2UgaWYgKE9iamVjdC5pc1N0cmluZyh3cmFwcGVyKSkgd3JhcHBlciA9IG5ldyBFbGVtZW50KHdyYXBwZXIsIGF0dHJpYnV0ZXMpOwogICAgZWxzZSB3cmFwcGVyID0gbmV3IEVsZW1lbnQoJ2RpdicsIHdyYXBwZXIpOwogICAgaWYgKGVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCh3cmFwcGVyLCBlbGVtZW50KTsKICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICByZXR1cm4gd3JhcHBlcjsKICB9LAoKICBpbnNwZWN0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciByZXN1bHQgPSAnPCcgKyBlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgICRIKHsnaWQnOiAnaWQnLCAnY2xhc3NOYW1lJzogJ2NsYXNzJ30pLmVhY2goZnVuY3Rpb24ocGFpcikgewogICAgICB2YXIgcHJvcGVydHkgPSBwYWlyLmZpcnN0KCksIGF0dHJpYnV0ZSA9IHBhaXIubGFzdCgpOwogICAgICB2YXIgdmFsdWUgPSAoZWxlbWVudFtwcm9wZXJ0eV0gfHwgJycpLnRvU3RyaW5nKCk7CiAgICAgIGlmICh2YWx1ZSkgcmVzdWx0ICs9ICcgJyArIGF0dHJpYnV0ZSArICc9JyArIHZhbHVlLmluc3BlY3QodHJ1ZSk7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQgKyAnPic7CiAgfSwKCiAgcmVjdXJzaXZlbHlDb2xsZWN0OiBmdW5jdGlvbihlbGVtZW50LCBwcm9wZXJ0eSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgZWxlbWVudHMgPSBbXTsKICAgIHdoaWxlIChlbGVtZW50ID0gZWxlbWVudFtwcm9wZXJ0eV0pCiAgICAgIGlmIChlbGVtZW50Lm5vZGVUeXBlID09IDEpCiAgICAgICAgZWxlbWVudHMucHVzaChFbGVtZW50LmV4dGVuZChlbGVtZW50KSk7CiAgICByZXR1cm4gZWxlbWVudHM7CiAgfSwKCiAgYW5jZXN0b3JzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5yZWN1cnNpdmVseUNvbGxlY3QoJ3BhcmVudE5vZGUnKTsKICB9LAoKICBkZXNjZW5kYW50czogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkuc2VsZWN0KCIqIik7CiAgfSwKCiAgZmlyc3REZXNjZW5kYW50OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KS5maXJzdENoaWxkOwogICAgd2hpbGUgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSAhPSAxKSBlbGVtZW50ID0gZWxlbWVudC5uZXh0U2libGluZzsKICAgIHJldHVybiAkKGVsZW1lbnQpOwogIH0sCgogIGltbWVkaWF0ZURlc2NlbmRhbnRzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBpZiAoIShlbGVtZW50ID0gJChlbGVtZW50KS5maXJzdENoaWxkKSkgcmV0dXJuIFtdOwogICAgd2hpbGUgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSAhPSAxKSBlbGVtZW50ID0gZWxlbWVudC5uZXh0U2libGluZzsKICAgIGlmIChlbGVtZW50KSByZXR1cm4gW2VsZW1lbnRdLmNvbmNhdCgkKGVsZW1lbnQpLm5leHRTaWJsaW5ncygpKTsKICAgIHJldHVybiBbXTsKICB9LAoKICBwcmV2aW91c1NpYmxpbmdzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5yZWN1cnNpdmVseUNvbGxlY3QoJ3ByZXZpb3VzU2libGluZycpOwogIH0sCgogIG5leHRTaWJsaW5nczogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkucmVjdXJzaXZlbHlDb2xsZWN0KCduZXh0U2libGluZycpOwogIH0sCgogIHNpYmxpbmdzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHJldHVybiBlbGVtZW50LnByZXZpb3VzU2libGluZ3MoKS5yZXZlcnNlKCkuY29uY2F0KGVsZW1lbnQubmV4dFNpYmxpbmdzKCkpOwogIH0sCgogIG1hdGNoOiBmdW5jdGlvbihlbGVtZW50LCBzZWxlY3RvcikgewogICAgaWYgKE9iamVjdC5pc1N0cmluZyhzZWxlY3RvcikpCiAgICAgIHNlbGVjdG9yID0gbmV3IFNlbGVjdG9yKHNlbGVjdG9yKTsKICAgIHJldHVybiBzZWxlY3Rvci5tYXRjaCgkKGVsZW1lbnQpKTsKICB9LAoKICB1cDogZnVuY3Rpb24oZWxlbWVudCwgZXhwcmVzc2lvbiwgaW5kZXgpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgcmV0dXJuICQoZWxlbWVudC5wYXJlbnROb2RlKTsKICAgIHZhciBhbmNlc3RvcnMgPSBlbGVtZW50LmFuY2VzdG9ycygpOwogICAgcmV0dXJuIE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSA/IGFuY2VzdG9yc1tleHByZXNzaW9uXSA6CiAgICAgIFNlbGVjdG9yLmZpbmRFbGVtZW50KGFuY2VzdG9ycywgZXhwcmVzc2lvbiwgaW5kZXgpOwogIH0sCgogIGRvd246IGZ1bmN0aW9uKGVsZW1lbnQsIGV4cHJlc3Npb24sIGluZGV4KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHJldHVybiBlbGVtZW50LmZpcnN0RGVzY2VuZGFudCgpOwogICAgcmV0dXJuIE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSA/IGVsZW1lbnQuZGVzY2VuZGFudHMoKVtleHByZXNzaW9uXSA6CiAgICAgIGVsZW1lbnQuc2VsZWN0KGV4cHJlc3Npb24pW2luZGV4IHx8IDBdOwogIH0sCgogIHByZXZpb3VzOiBmdW5jdGlvbihlbGVtZW50LCBleHByZXNzaW9uLCBpbmRleCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSByZXR1cm4gJChTZWxlY3Rvci5oYW5kbGVycy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKGVsZW1lbnQpKTsKICAgIHZhciBwcmV2aW91c1NpYmxpbmdzID0gZWxlbWVudC5wcmV2aW91c1NpYmxpbmdzKCk7CiAgICByZXR1cm4gT2JqZWN0LmlzTnVtYmVyKGV4cHJlc3Npb24pID8gcHJldmlvdXNTaWJsaW5nc1tleHByZXNzaW9uXSA6CiAgICAgIFNlbGVjdG9yLmZpbmRFbGVtZW50KHByZXZpb3VzU2libGluZ3MsIGV4cHJlc3Npb24sIGluZGV4KTsKICB9LAoKICBuZXh0OiBmdW5jdGlvbihlbGVtZW50LCBleHByZXNzaW9uLCBpbmRleCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSByZXR1cm4gJChTZWxlY3Rvci5oYW5kbGVycy5uZXh0RWxlbWVudFNpYmxpbmcoZWxlbWVudCkpOwogICAgdmFyIG5leHRTaWJsaW5ncyA9IGVsZW1lbnQubmV4dFNpYmxpbmdzKCk7CiAgICByZXR1cm4gT2JqZWN0LmlzTnVtYmVyKGV4cHJlc3Npb24pID8gbmV4dFNpYmxpbmdzW2V4cHJlc3Npb25dIDoKICAgICAgU2VsZWN0b3IuZmluZEVsZW1lbnQobmV4dFNpYmxpbmdzLCBleHByZXNzaW9uLCBpbmRleCk7CiAgfSwKCiAgc2VsZWN0OiBmdW5jdGlvbigpIHsKICAgIHZhciBhcmdzID0gJEEoYXJndW1lbnRzKSwgZWxlbWVudCA9ICQoYXJncy5zaGlmdCgpKTsKICAgIHJldHVybiBTZWxlY3Rvci5maW5kQ2hpbGRFbGVtZW50cyhlbGVtZW50LCBhcmdzKTsKICB9LAoKICBhZGphY2VudDogZnVuY3Rpb24oKSB7CiAgICB2YXIgYXJncyA9ICRBKGFyZ3VtZW50cyksIGVsZW1lbnQgPSAkKGFyZ3Muc2hpZnQoKSk7CiAgICByZXR1cm4gU2VsZWN0b3IuZmluZENoaWxkRWxlbWVudHMoZWxlbWVudC5wYXJlbnROb2RlLCBhcmdzKS53aXRob3V0KGVsZW1lbnQpOwogIH0sCgogIGlkZW50aWZ5OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBpZCA9IGVsZW1lbnQucmVhZEF0dHJpYnV0ZSgnaWQnKSwgc2VsZiA9IGFyZ3VtZW50cy5jYWxsZWU7CiAgICBpZiAoaWQpIHJldHVybiBpZDsKICAgIGRvIHsgaWQgPSAnYW5vbnltb3VzX2VsZW1lbnRfJyArIHNlbGYuY291bnRlcisrIH0gd2hpbGUgKCQoaWQpKTsKICAgIGVsZW1lbnQud3JpdGVBdHRyaWJ1dGUoJ2lkJywgaWQpOwogICAgcmV0dXJuIGlkOwogIH0sCgogIHJlYWRBdHRyaWJ1dGU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5hbWUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFKSB7CiAgICAgIHZhciB0ID0gRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLnJlYWQ7CiAgICAgIGlmICh0LnZhbHVlc1tuYW1lXSkgcmV0dXJuIHQudmFsdWVzW25hbWVdKGVsZW1lbnQsIG5hbWUpOwogICAgICBpZiAodC5uYW1lc1tuYW1lXSkgbmFtZSA9IHQubmFtZXNbbmFtZV07CiAgICAgIGlmIChuYW1lLmluY2x1ZGUoJzonKSkgewogICAgICAgIHJldHVybiAoIWVsZW1lbnQuYXR0cmlidXRlcyB8fCAhZWxlbWVudC5hdHRyaWJ1dGVzW25hbWVdKSA/IG51bGwgOgogICAgICAgICBlbGVtZW50LmF0dHJpYnV0ZXNbbmFtZV0udmFsdWU7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBlbGVtZW50LmdldEF0dHJpYnV0ZShuYW1lKTsKICB9LAoKICB3cml0ZUF0dHJpYnV0ZTogZnVuY3Rpb24oZWxlbWVudCwgbmFtZSwgdmFsdWUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGF0dHJpYnV0ZXMgPSB7IH0sIHQgPSBFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMud3JpdGU7CgogICAgaWYgKHR5cGVvZiBuYW1lID09ICdvYmplY3QnKSBhdHRyaWJ1dGVzID0gbmFtZTsKICAgIGVsc2UgYXR0cmlidXRlc1tuYW1lXSA9IE9iamVjdC5pc1VuZGVmaW5lZCh2YWx1ZSkgPyB0cnVlIDogdmFsdWU7CgogICAgZm9yICh2YXIgYXR0ciBpbiBhdHRyaWJ1dGVzKSB7CiAgICAgIG5hbWUgPSB0Lm5hbWVzW2F0dHJdIHx8IGF0dHI7CiAgICAgIHZhbHVlID0gYXR0cmlidXRlc1thdHRyXTsKICAgICAgaWYgKHQudmFsdWVzW2F0dHJdKSBuYW1lID0gdC52YWx1ZXNbYXR0cl0oZWxlbWVudCwgdmFsdWUpOwogICAgICBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSBudWxsKQogICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gdHJ1ZSkKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCBuYW1lKTsKICAgICAgZWxzZSBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLmdldERpbWVuc2lvbnMoKS5oZWlnaHQ7CiAgfSwKCiAgZ2V0V2lkdGg6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLmdldERpbWVuc2lvbnMoKS53aWR0aDsKICB9LAoKICBjbGFzc05hbWVzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gbmV3IEVsZW1lbnQuQ2xhc3NOYW1lcyhlbGVtZW50KTsKICB9LAoKICBoYXNDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47CiAgICB2YXIgZWxlbWVudENsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lOwogICAgcmV0dXJuIChlbGVtZW50Q2xhc3NOYW1lLmxlbmd0aCA+IDAgJiYgKGVsZW1lbnRDbGFzc05hbWUgPT0gY2xhc3NOYW1lIHx8CiAgICAgIG5ldyBSZWdFeHAoIihefFxccykiICsgY2xhc3NOYW1lICsgIihcXHN8JCkiKS50ZXN0KGVsZW1lbnRDbGFzc05hbWUpKSk7CiAgfSwKCiAgYWRkQ2xhc3NOYW1lOiBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsKICAgIGlmICghKGVsZW1lbnQgPSAkKGVsZW1lbnQpKSkgcmV0dXJuOwogICAgaWYgKCFlbGVtZW50Lmhhc0NsYXNzTmFtZShjbGFzc05hbWUpKQogICAgICBlbGVtZW50LmNsYXNzTmFtZSArPSAoZWxlbWVudC5jbGFzc05hbWUgPyAnICcgOiAnJykgKyBjbGFzc05hbWU7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICByZW1vdmVDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47CiAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoCiAgICAgIG5ldyBSZWdFeHAoIihefFxccyspIiArIGNsYXNzTmFtZSArICIoXFxzK3wkKSIpLCAnICcpLnN0cmlwKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICB0b2dnbGVDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47CiAgICByZXR1cm4gZWxlbWVudFtlbGVtZW50Lmhhc0NsYXNzTmFtZShjbGFzc05hbWUpID8KICAgICAgJ3JlbW92ZUNsYXNzTmFtZScgOiAnYWRkQ2xhc3NOYW1lJ10oY2xhc3NOYW1lKTsKICB9LAoKICAvLyByZW1vdmVzIHdoaXRlc3BhY2Utb25seSB0ZXh0IG5vZGUgY2hpbGRyZW4KICBjbGVhbldoaXRlc3BhY2U6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIG5vZGUgPSBlbGVtZW50LmZpcnN0Q2hpbGQ7CiAgICB3aGlsZSAobm9kZSkgewogICAgICB2YXIgbmV4dE5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAzICYmICEvXFMvLnRlc3Qobm9kZS5ub2RlVmFsdWUpKQogICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQobm9kZSk7CiAgICAgIG5vZGUgPSBuZXh0Tm9kZTsKICAgIH0KICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGVtcHR5OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5pbm5lckhUTUwuYmxhbmsoKTsKICB9LAoKICBkZXNjZW5kYW50T2Y6IGZ1bmN0aW9uKGVsZW1lbnQsIGFuY2VzdG9yKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KSwgYW5jZXN0b3IgPSAkKGFuY2VzdG9yKTsKICAgIHZhciBvcmlnaW5hbEFuY2VzdG9yID0gYW5jZXN0b3I7CgogICAgaWYgKGVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24pCiAgICAgIHJldHVybiAoZWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhbmNlc3RvcikgJiA4KSA9PT0gODsKCiAgICBpZiAoZWxlbWVudC5zb3VyY2VJbmRleCAmJiAhUHJvdG90eXBlLkJyb3dzZXIuT3BlcmEpIHsKICAgICAgdmFyIGUgPSBlbGVtZW50LnNvdXJjZUluZGV4LCBhID0gYW5jZXN0b3Iuc291cmNlSW5kZXgsCiAgICAgICBuZXh0QW5jZXN0b3IgPSBhbmNlc3Rvci5uZXh0U2libGluZzsKICAgICAgaWYgKCFuZXh0QW5jZXN0b3IpIHsKICAgICAgICBkbyB7IGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50Tm9kZTsgfQogICAgICAgIHdoaWxlICghKG5leHRBbmNlc3RvciA9IGFuY2VzdG9yLm5leHRTaWJsaW5nKSAmJiBhbmNlc3Rvci5wYXJlbnROb2RlKTsKICAgICAgfQogICAgICBpZiAobmV4dEFuY2VzdG9yICYmIG5leHRBbmNlc3Rvci5zb3VyY2VJbmRleCkKICAgICAgIHJldHVybiAoZSA+IGEgJiYgZSA8IG5leHRBbmNlc3Rvci5zb3VyY2VJbmRleCk7CiAgICB9CgogICAgd2hpbGUgKGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGUpCiAgICAgIGlmIChlbGVtZW50ID09IG9yaWdpbmFsQW5jZXN0b3IpIHJldHVybiB0cnVlOwogICAgcmV0dXJuIGZhbHNlOwogIH0sCgogIHNjcm9sbFRvOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBwb3MgPSBlbGVtZW50LmN1bXVsYXRpdmVPZmZzZXQoKTsKICAgIHdpbmRvdy5zY3JvbGxUbyhwb3NbMF0sIHBvc1sxXSk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBnZXRTdHlsZTogZnVuY3Rpb24oZWxlbWVudCwgc3R5bGUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgc3R5bGUgPSBzdHlsZSA9PSAnZmxvYXQnID8gJ2Nzc0Zsb2F0JyA6IHN0eWxlLmNhbWVsaXplKCk7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50LnN0eWxlW3N0eWxlXTsKICAgIGlmICghdmFsdWUpIHsKICAgICAgdmFyIGNzcyA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7CiAgICAgIHZhbHVlID0gY3NzID8gY3NzW3N0eWxlXSA6IG51bGw7CiAgICB9CiAgICBpZiAoc3R5bGUgPT0gJ29wYWNpdHknKSByZXR1cm4gdmFsdWUgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IDEuMDsKICAgIHJldHVybiB2YWx1ZSA9PSAnYXV0bycgPyBudWxsIDogdmFsdWU7CiAgfSwKCiAgZ2V0T3BhY2l0eTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkuZ2V0U3R5bGUoJ29wYWNpdHknKTsKICB9LAoKICBzZXRTdHlsZTogZnVuY3Rpb24oZWxlbWVudCwgc3R5bGVzKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBlbGVtZW50U3R5bGUgPSBlbGVtZW50LnN0eWxlLCBtYXRjaDsKICAgIGlmIChPYmplY3QuaXNTdHJpbmcoc3R5bGVzKSkgewogICAgICBlbGVtZW50LnN0eWxlLmNzc1RleHQgKz0gJzsnICsgc3R5bGVzOwogICAgICByZXR1cm4gc3R5bGVzLmluY2x1ZGUoJ29wYWNpdHknKSA/CiAgICAgICAgZWxlbWVudC5zZXRPcGFjaXR5KHN0eWxlcy5tYXRjaCgvb3BhY2l0eTpccyooXGQ/XC4/XGQqKS8pWzFdKSA6IGVsZW1lbnQ7CiAgICB9CiAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBzdHlsZXMpCiAgICAgIGlmIChwcm9wZXJ0eSA9PSAnb3BhY2l0eScpIGVsZW1lbnQuc2V0T3BhY2l0eShzdHlsZXNbcHJvcGVydHldKTsKICAgICAgZWxzZQogICAgICAgIGVsZW1lbnRTdHlsZVsocHJvcGVydHkgPT0gJ2Zsb2F0JyB8fCBwcm9wZXJ0eSA9PSAnY3NzRmxvYXQnKSA/CiAgICAgICAgICAoT2JqZWN0LmlzVW5kZWZpbmVkKGVsZW1lbnRTdHlsZS5zdHlsZUZsb2F0KSA/ICdjc3NGbG9hdCcgOiAnc3R5bGVGbG9hdCcpIDoKICAgICAgICAgICAgcHJvcGVydHldID0gc3R5bGVzW3Byb3BlcnR5XTsKCiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBzZXRPcGFjaXR5OiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAodmFsdWUgPT0gMSB8fCB2YWx1ZSA9PT0gJycpID8gJycgOgogICAgICAodmFsdWUgPCAwLjAwMDAxKSA/IDAgOiB2YWx1ZTsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGdldERpbWVuc2lvbnM6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGRpc3BsYXkgPSAkKGVsZW1lbnQpLmdldFN0eWxlKCdkaXNwbGF5Jyk7CiAgICBpZiAoZGlzcGxheSAhPSAnbm9uZScgJiYgZGlzcGxheSAhPSBudWxsKSAvLyBTYWZhcmkgYnVnCiAgICAgIHJldHVybiB7d2lkdGg6IGVsZW1lbnQub2Zmc2V0V2lkdGgsIGhlaWdodDogZWxlbWVudC5vZmZzZXRIZWlnaHR9OwoKICAgIC8vIEFsbCAqV2lkdGggYW5kICpIZWlnaHQgcHJvcGVydGllcyBnaXZlIDAgb24gZWxlbWVudHMgd2l0aCBkaXNwbGF5IG5vbmUsCiAgICAvLyBzbyBlbmFibGUgdGhlIGVsZW1lbnQgdGVtcG9yYXJpbHkKICAgIHZhciBlbHMgPSBlbGVtZW50LnN0eWxlOwogICAgdmFyIG9yaWdpbmFsVmlzaWJpbGl0eSA9IGVscy52aXNpYmlsaXR5OwogICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSBlbHMucG9zaXRpb247CiAgICB2YXIgb3JpZ2luYWxEaXNwbGF5ID0gZWxzLmRpc3BsYXk7CiAgICBlbHMudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwogICAgZWxzLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKICAgIGVscy5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIHZhciBvcmlnaW5hbFdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDsKICAgIHZhciBvcmlnaW5hbEhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0OwogICAgZWxzLmRpc3BsYXkgPSBvcmlnaW5hbERpc3BsYXk7CiAgICBlbHMucG9zaXRpb24gPSBvcmlnaW5hbFBvc2l0aW9uOwogICAgZWxzLnZpc2liaWxpdHkgPSBvcmlnaW5hbFZpc2liaWxpdHk7CiAgICByZXR1cm4ge3dpZHRoOiBvcmlnaW5hbFdpZHRoLCBoZWlnaHQ6IG9yaWdpbmFsSGVpZ2h0fTsKICB9LAoKICBtYWtlUG9zaXRpb25lZDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgcG9zID0gRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKTsKICAgIGlmIChwb3MgPT0gJ3N0YXRpYycgfHwgIXBvcykgewogICAgICBlbGVtZW50Ll9tYWRlUG9zaXRpb25lZCA9IHRydWU7CiAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnOwogICAgICAvLyBPcGVyYSByZXR1cm5zIHRoZSBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIHBvc2l0aW9uaW5nIGNvbnRleHQsIHdoZW4gYW4KICAgICAgLy8gZWxlbWVudCBpcyBwb3NpdGlvbiByZWxhdGl2ZSBidXQgdG9wIGFuZCBsZWZ0IGhhdmUgbm90IGJlZW4gZGVmaW5lZAogICAgICBpZiAod2luZG93Lm9wZXJhKSB7CiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSAwOwogICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IDA7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIHVuZG9Qb3NpdGlvbmVkOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50Ll9tYWRlUG9zaXRpb25lZCkgewogICAgICBlbGVtZW50Ll9tYWRlUG9zaXRpb25lZCA9IHVuZGVmaW5lZDsKICAgICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9CiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPQogICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9CiAgICAgICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPQogICAgICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAnJzsKICAgIH0KICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIG1ha2VDbGlwcGluZzogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoZWxlbWVudC5fb3ZlcmZsb3cpIHJldHVybiBlbGVtZW50OwogICAgZWxlbWVudC5fb3ZlcmZsb3cgPSBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdvdmVyZmxvdycpIHx8ICdhdXRvJzsKICAgIGlmIChlbGVtZW50Ll9vdmVyZmxvdyAhPT0gJ2hpZGRlbicpCiAgICAgIGVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIHVuZG9DbGlwcGluZzogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoIWVsZW1lbnQuX292ZXJmbG93KSByZXR1cm4gZWxlbWVudDsKICAgIGVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSBlbGVtZW50Ll9vdmVyZmxvdyA9PSAnYXV0bycgPyAnJyA6IGVsZW1lbnQuX292ZXJmbG93OwogICAgZWxlbWVudC5fb3ZlcmZsb3cgPSBudWxsOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgY3VtdWxhdGl2ZU9mZnNldDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZhbHVlTCA9IDA7CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAgdmFsdWVMICs9IGVsZW1lbnQub2Zmc2V0TGVmdCB8fCAwOwogICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7CiAgICB9IHdoaWxlIChlbGVtZW50KTsKICAgIHJldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQodmFsdWVMLCB2YWx1ZVQpOwogIH0sCgogIHBvc2l0aW9uZWRPZmZzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAwLCB2YWx1ZUwgPSAwOwogICAgZG8gewogICAgICB2YWx1ZVQgKz0gZWxlbWVudC5vZmZzZXRUb3AgIHx8IDA7CiAgICAgIHZhbHVlTCArPSBlbGVtZW50Lm9mZnNldExlZnQgfHwgMDsKICAgICAgZWxlbWVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50OwogICAgICBpZiAoZWxlbWVudCkgewogICAgICAgIGlmIChlbGVtZW50LnRhZ05hbWUgPT0gJ0JPRFknKSBicmVhazsKICAgICAgICB2YXIgcCA9IEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7CiAgICAgICAgaWYgKHAgIT09ICdzdGF0aWMnKSBicmVhazsKICAgICAgfQogICAgfSB3aGlsZSAoZWxlbWVudCk7CiAgICByZXR1cm4gRWxlbWVudC5fcmV0dXJuT2Zmc2V0KHZhbHVlTCwgdmFsdWVUKTsKICB9LAoKICBhYnNvbHV0aXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50LmdldFN0eWxlKCdwb3NpdGlvbicpID09ICdhYnNvbHV0ZScpIHJldHVybjsKICAgIC8vIFBvc2l0aW9uLnByZXBhcmUoKTsgLy8gVG8gYmUgZG9uZSBtYW51YWxseSBieSBTY3JpcHR5IHdoZW4gaXQgbmVlZHMgaXQuCgogICAgdmFyIG9mZnNldHMgPSBlbGVtZW50LnBvc2l0aW9uZWRPZmZzZXQoKTsKICAgIHZhciB0b3AgICAgID0gb2Zmc2V0c1sxXTsKICAgIHZhciBsZWZ0ICAgID0gb2Zmc2V0c1swXTsKICAgIHZhciB3aWR0aCAgID0gZWxlbWVudC5jbGllbnRXaWR0aDsKICAgIHZhciBoZWlnaHQgID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7CgogICAgZWxlbWVudC5fb3JpZ2luYWxMZWZ0ICAgPSBsZWZ0IC0gcGFyc2VGbG9hdChlbGVtZW50LnN0eWxlLmxlZnQgIHx8IDApOwogICAgZWxlbWVudC5fb3JpZ2luYWxUb3AgICAgPSB0b3AgIC0gcGFyc2VGbG9hdChlbGVtZW50LnN0eWxlLnRvcCB8fCAwKTsKICAgIGVsZW1lbnQuX29yaWdpbmFsV2lkdGggID0gZWxlbWVudC5zdHlsZS53aWR0aDsKICAgIGVsZW1lbnQuX29yaWdpbmFsSGVpZ2h0ID0gZWxlbWVudC5zdHlsZS5oZWlnaHQ7CgogICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CiAgICBlbGVtZW50LnN0eWxlLnRvcCAgICA9IHRvcCArICdweCc7CiAgICBlbGVtZW50LnN0eWxlLmxlZnQgICA9IGxlZnQgKyAncHgnOwogICAgZWxlbWVudC5zdHlsZS53aWR0aCAgPSB3aWR0aCArICdweCc7CiAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICByZWxhdGl2aXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50LmdldFN0eWxlKCdwb3NpdGlvbicpID09ICdyZWxhdGl2ZScpIHJldHVybjsKICAgIC8vIFBvc2l0aW9uLnByZXBhcmUoKTsgLy8gVG8gYmUgZG9uZSBtYW51YWxseSBieSBTY3JpcHR5IHdoZW4gaXQgbmVlZHMgaXQuCgogICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7CiAgICB2YXIgdG9wICA9IHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS50b3AgIHx8IDApIC0gKGVsZW1lbnQuX29yaWdpbmFsVG9wIHx8IDApOwogICAgdmFyIGxlZnQgPSBwYXJzZUZsb2F0KGVsZW1lbnQuc3R5bGUubGVmdCB8fCAwKSAtIChlbGVtZW50Ll9vcmlnaW5hbExlZnQgfHwgMCk7CgogICAgZWxlbWVudC5zdHlsZS50b3AgICAgPSB0b3AgKyAncHgnOwogICAgZWxlbWVudC5zdHlsZS5sZWZ0ICAgPSBsZWZ0ICsgJ3B4JzsKICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gZWxlbWVudC5fb3JpZ2luYWxIZWlnaHQ7CiAgICBlbGVtZW50LnN0eWxlLndpZHRoICA9IGVsZW1lbnQuX29yaWdpbmFsV2lkdGg7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBjdW11bGF0aXZlU2Nyb2xsT2Zmc2V0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0gMCwgdmFsdWVMID0gMDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQuc2Nyb2xsVG9wICB8fCAwOwogICAgICB2YWx1ZUwgKz0gZWxlbWVudC5zY3JvbGxMZWZ0IHx8IDA7CiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAgICB9IHdoaWxlIChlbGVtZW50KTsKICAgIHJldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQodmFsdWVMLCB2YWx1ZVQpOwogIH0sCgogIGdldE9mZnNldFBhcmVudDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSByZXR1cm4gJChlbGVtZW50Lm9mZnNldFBhcmVudCk7CiAgICBpZiAoZWxlbWVudCA9PSBkb2N1bWVudC5ib2R5KSByZXR1cm4gJChlbGVtZW50KTsKCiAgICB3aGlsZSAoKGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGUpICYmIGVsZW1lbnQgIT0gZG9jdW1lbnQuYm9keSkKICAgICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgIT0gJ3N0YXRpYycpCiAgICAgICAgcmV0dXJuICQoZWxlbWVudCk7CgogICAgcmV0dXJuICQoZG9jdW1lbnQuYm9keSk7CiAgfSwKCiAgdmlld3BvcnRPZmZzZXQ6IGZ1bmN0aW9uKGZvckVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAwLCB2YWx1ZUwgPSAwOwoKICAgIHZhciBlbGVtZW50ID0gZm9yRWxlbWVudDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQub2Zmc2V0VG9wICB8fCAwOwogICAgICB2YWx1ZUwgKz0gZWxlbWVudC5vZmZzZXRMZWZ0IHx8IDA7CgogICAgICAvLyBTYWZhcmkgZml4CiAgICAgIGlmIChlbGVtZW50Lm9mZnNldFBhcmVudCA9PSBkb2N1bWVudC5ib2R5ICYmCiAgICAgICAgRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSBicmVhazsKCiAgICB9IHdoaWxlIChlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQpOwoKICAgIGVsZW1lbnQgPSBmb3JFbGVtZW50OwogICAgZG8gewogICAgICBpZiAoIVByb3RvdHlwZS5Ccm93c2VyLk9wZXJhIHx8IGVsZW1lbnQudGFnTmFtZSA9PSAnQk9EWScpIHsKICAgICAgICB2YWx1ZVQgLT0gZWxlbWVudC5zY3JvbGxUb3AgIHx8IDA7CiAgICAgICAgdmFsdWVMIC09IGVsZW1lbnQuc2Nyb2xsTGVmdCB8fCAwOwogICAgICB9CiAgICB9IHdoaWxlIChlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlKTsKCiAgICByZXR1cm4gRWxlbWVudC5fcmV0dXJuT2Zmc2V0KHZhbHVlTCwgdmFsdWVUKTsKICB9LAoKICBjbG9uZVBvc2l0aW9uOiBmdW5jdGlvbihlbGVtZW50LCBzb3VyY2UpIHsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIHNldExlZnQ6ICAgIHRydWUsCiAgICAgIHNldFRvcDogICAgIHRydWUsCiAgICAgIHNldFdpZHRoOiAgIHRydWUsCiAgICAgIHNldEhlaWdodDogIHRydWUsCiAgICAgIG9mZnNldFRvcDogIDAsCiAgICAgIG9mZnNldExlZnQ6IDAKICAgIH0sIGFyZ3VtZW50c1syXSB8fCB7IH0pOwoKICAgIC8vIGZpbmQgcGFnZSBwb3NpdGlvbiBvZiBzb3VyY2UKICAgIHNvdXJjZSA9ICQoc291cmNlKTsKICAgIHZhciBwID0gc291cmNlLnZpZXdwb3J0T2Zmc2V0KCk7CgogICAgLy8gZmluZCBjb29yZGluYXRlIHN5c3RlbSB0byB1c2UKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGRlbHRhID0gWzAsIDBdOwogICAgdmFyIHBhcmVudCA9IG51bGw7CiAgICAvLyBkZWx0YSBbMCwwXSB3aWxsIGRvIGZpbmUgd2l0aCBwb3NpdGlvbjogZml4ZWQgZWxlbWVudHMsCiAgICAvLyBwb3NpdGlvbjphYnNvbHV0ZSBuZWVkcyBvZmZzZXRQYXJlbnQgZGVsdGFzCiAgICBpZiAoRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSB7CiAgICAgIHBhcmVudCA9IGVsZW1lbnQuZ2V0T2Zmc2V0UGFyZW50KCk7CiAgICAgIGRlbHRhID0gcGFyZW50LnZpZXdwb3J0T2Zmc2V0KCk7CiAgICB9CgogICAgLy8gY29ycmVjdCBieSBib2R5IG9mZnNldHMgKGZpeGVzIFNhZmFyaSkKICAgIGlmIChwYXJlbnQgPT0gZG9jdW1lbnQuYm9keSkgewogICAgICBkZWx0YVswXSAtPSBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CiAgICAgIGRlbHRhWzFdIC09IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgfQoKICAgIC8vIHNldCBwb3NpdGlvbgogICAgaWYgKG9wdGlvbnMuc2V0TGVmdCkgICBlbGVtZW50LnN0eWxlLmxlZnQgID0gKHBbMF0gLSBkZWx0YVswXSArIG9wdGlvbnMub2Zmc2V0TGVmdCkgKyAncHgnOwogICAgaWYgKG9wdGlvbnMuc2V0VG9wKSAgICBlbGVtZW50LnN0eWxlLnRvcCAgID0gKHBbMV0gLSBkZWx0YVsxXSArIG9wdGlvbnMub2Zmc2V0VG9wKSArICdweCc7CiAgICBpZiAob3B0aW9ucy5zZXRXaWR0aCkgIGVsZW1lbnQuc3R5bGUud2lkdGggPSBzb3VyY2Uub2Zmc2V0V2lkdGggKyAncHgnOwogICAgaWYgKG9wdGlvbnMuc2V0SGVpZ2h0KSBlbGVtZW50LnN0eWxlLmhlaWdodCA9IHNvdXJjZS5vZmZzZXRIZWlnaHQgKyAncHgnOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfQp9OwoKRWxlbWVudC5NZXRob2RzLmlkZW50aWZ5LmNvdW50ZXIgPSAxOwoKT2JqZWN0LmV4dGVuZChFbGVtZW50Lk1ldGhvZHMsIHsKICBnZXRFbGVtZW50c0J5U2VsZWN0b3I6IEVsZW1lbnQuTWV0aG9kcy5zZWxlY3QsCiAgY2hpbGRFbGVtZW50czogRWxlbWVudC5NZXRob2RzLmltbWVkaWF0ZURlc2NlbmRhbnRzCn0pOwoKRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zID0gewogIHdyaXRlOiB7CiAgICBuYW1lczogewogICAgICBjbGFzc05hbWU6ICdjbGFzcycsCiAgICAgIGh0bWxGb3I6ICAgJ2ZvcicKICAgIH0sCiAgICB2YWx1ZXM6IHsgfQogIH0KfTsKCmlmIChQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSkgewogIEVsZW1lbnQuTWV0aG9kcy5nZXRTdHlsZSA9IEVsZW1lbnQuTWV0aG9kcy5nZXRTdHlsZS53cmFwKAogICAgZnVuY3Rpb24ocHJvY2VlZCwgZWxlbWVudCwgc3R5bGUpIHsKICAgICAgc3dpdGNoIChzdHlsZSkgewogICAgICAgIGNhc2UgJ2xlZnQnOiBjYXNlICd0b3AnOiBjYXNlICdyaWdodCc6IGNhc2UgJ2JvdHRvbSc6CiAgICAgICAgICBpZiAocHJvY2VlZChlbGVtZW50LCAncG9zaXRpb24nKSA9PT0gJ3N0YXRpYycpIHJldHVybiBudWxsOwogICAgICAgIGNhc2UgJ2hlaWdodCc6IGNhc2UgJ3dpZHRoJzoKICAgICAgICAgIC8vIHJldHVybnMgJzBweCcgZm9yIGhpZGRlbiBlbGVtZW50czsgd2Ugd2FudCBpdCB0byByZXR1cm4gbnVsbAogICAgICAgICAgaWYgKCFFbGVtZW50LnZpc2libGUoZWxlbWVudCkpIHJldHVybiBudWxsOwoKICAgICAgICAgIC8vIHJldHVybnMgdGhlIGJvcmRlci1ib3ggZGltZW5zaW9ucyByYXRoZXIgdGhhbiB0aGUgY29udGVudC1ib3gKICAgICAgICAgIC8vIGRpbWVuc2lvbnMsIHNvIHdlIHN1YnRyYWN0IHBhZGRpbmcgYW5kIGJvcmRlcnMgZnJvbSB0aGUgdmFsdWUKICAgICAgICAgIHZhciBkaW0gPSBwYXJzZUludChwcm9jZWVkKGVsZW1lbnQsIHN0eWxlKSwgMTApOwoKICAgICAgICAgIGlmIChkaW0gIT09IGVsZW1lbnRbJ29mZnNldCcgKyBzdHlsZS5jYXBpdGFsaXplKCldKQogICAgICAgICAgICByZXR1cm4gZGltICsgJ3B4JzsKCiAgICAgICAgICB2YXIgcHJvcGVydGllczsKICAgICAgICAgIGlmIChzdHlsZSA9PT0gJ2hlaWdodCcpIHsKICAgICAgICAgICAgcHJvcGVydGllcyA9IFsnYm9yZGVyLXRvcC13aWR0aCcsICdwYWRkaW5nLXRvcCcsCiAgICAgICAgICAgICAncGFkZGluZy1ib3R0b20nLCAnYm9yZGVyLWJvdHRvbS13aWR0aCddOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbJ2JvcmRlci1sZWZ0LXdpZHRoJywgJ3BhZGRpbmctbGVmdCcsCiAgICAgICAgICAgICAncGFkZGluZy1yaWdodCcsICdib3JkZXItcmlnaHQtd2lkdGgnXTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLmluamVjdChkaW0sIGZ1bmN0aW9uKG1lbW8sIHByb3BlcnR5KSB7CiAgICAgICAgICAgIHZhciB2YWwgPSBwcm9jZWVkKGVsZW1lbnQsIHByb3BlcnR5KTsKICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCA/IG1lbW8gOiBtZW1vIC0gcGFyc2VJbnQodmFsLCAxMCk7CiAgICAgICAgICB9KSArICdweCc7CiAgICAgICAgZGVmYXVsdDogcmV0dXJuIHByb2NlZWQoZWxlbWVudCwgc3R5bGUpOwogICAgICB9CiAgICB9CiAgKTsKCiAgRWxlbWVudC5NZXRob2RzLnJlYWRBdHRyaWJ1dGUgPSBFbGVtZW50Lk1ldGhvZHMucmVhZEF0dHJpYnV0ZS53cmFwKAogICAgZnVuY3Rpb24ocHJvY2VlZCwgZWxlbWVudCwgYXR0cmlidXRlKSB7CiAgICAgIGlmIChhdHRyaWJ1dGUgPT09ICd0aXRsZScpIHJldHVybiBlbGVtZW50LnRpdGxlOwogICAgICByZXR1cm4gcHJvY2VlZChlbGVtZW50LCBhdHRyaWJ1dGUpOwogICAgfQogICk7Cn0KCmVsc2UgaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFKSB7CiAgLy8gSUUgZG9lc24ndCByZXBvcnQgb2Zmc2V0cyBjb3JyZWN0bHkgZm9yIHN0YXRpYyBlbGVtZW50cywgc28gd2UgY2hhbmdlIHRoZW0KICAvLyB0byAicmVsYXRpdmUiIHRvIGdldCB0aGUgdmFsdWVzLCB0aGVuIGNoYW5nZSB0aGVtIGJhY2suCiAgRWxlbWVudC5NZXRob2RzLmdldE9mZnNldFBhcmVudCA9IEVsZW1lbnQuTWV0aG9kcy5nZXRPZmZzZXRQYXJlbnQud3JhcCgKICAgIGZ1bmN0aW9uKHByb2NlZWQsIGVsZW1lbnQpIHsKICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICAgIHZhciBwb3NpdGlvbiA9IGVsZW1lbnQuZ2V0U3R5bGUoJ3Bvc2l0aW9uJyk7CiAgICAgIGlmIChwb3NpdGlvbiAhPT0gJ3N0YXRpYycpIHJldHVybiBwcm9jZWVkKGVsZW1lbnQpOwogICAgICBlbGVtZW50LnNldFN0eWxlKHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfSk7CiAgICAgIHZhciB2YWx1ZSA9IHByb2NlZWQoZWxlbWVudCk7CiAgICAgIGVsZW1lbnQuc2V0U3R5bGUoeyBwb3NpdGlvbjogcG9zaXRpb24gfSk7CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICApOwoKICAkdygncG9zaXRpb25lZE9mZnNldCB2aWV3cG9ydE9mZnNldCcpLmVhY2goZnVuY3Rpb24obWV0aG9kKSB7CiAgICBFbGVtZW50Lk1ldGhvZHNbbWV0aG9kXSA9IEVsZW1lbnQuTWV0aG9kc1ttZXRob2RdLndyYXAoCiAgICAgIGZ1bmN0aW9uKHByb2NlZWQsIGVsZW1lbnQpIHsKICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICAgICB2YXIgcG9zaXRpb24gPSBlbGVtZW50LmdldFN0eWxlKCdwb3NpdGlvbicpOwogICAgICAgIGlmIChwb3NpdGlvbiAhPT0gJ3N0YXRpYycpIHJldHVybiBwcm9jZWVkKGVsZW1lbnQpOwogICAgICAgIC8vIFRyaWdnZXIgaGFzTGF5b3V0IG9uIHRoZSBvZmZzZXQgcGFyZW50IHNvIHRoYXQgSUU2IHJlcG9ydHMKICAgICAgICAvLyBhY2N1cmF0ZSBvZmZzZXRUb3AgYW5kIG9mZnNldExlZnQgdmFsdWVzIGZvciBwb3NpdGlvbjogZml4ZWQuCiAgICAgICAgdmFyIG9mZnNldFBhcmVudCA9IGVsZW1lbnQuZ2V0T2Zmc2V0UGFyZW50KCk7CiAgICAgICAgaWYgKG9mZnNldFBhcmVudCAmJiBvZmZzZXRQYXJlbnQuZ2V0U3R5bGUoJ3Bvc2l0aW9uJykgPT09ICdmaXhlZCcpCiAgICAgICAgICBvZmZzZXRQYXJlbnQuc2V0U3R5bGUoeyB6b29tOiAxIH0pOwogICAgICAgIGVsZW1lbnQuc2V0U3R5bGUoeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9KTsKICAgICAgICB2YXIgdmFsdWUgPSBwcm9jZWVkKGVsZW1lbnQpOwogICAgICAgIGVsZW1lbnQuc2V0U3R5bGUoeyBwb3NpdGlvbjogcG9zaXRpb24gfSk7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICApOwogIH0pOwoKICBFbGVtZW50Lk1ldGhvZHMuZ2V0U3R5bGUgPSBmdW5jdGlvbihlbGVtZW50LCBzdHlsZSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBzdHlsZSA9IChzdHlsZSA9PSAnZmxvYXQnIHx8IHN0eWxlID09ICdjc3NGbG9hdCcpID8gJ3N0eWxlRmxvYXQnIDogc3R5bGUuY2FtZWxpemUoKTsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQuc3R5bGVbc3R5bGVdOwogICAgaWYgKCF2YWx1ZSAmJiBlbGVtZW50LmN1cnJlbnRTdHlsZSkgdmFsdWUgPSBlbGVtZW50LmN1cnJlbnRTdHlsZVtzdHlsZV07CgogICAgaWYgKHN0eWxlID09ICdvcGFjaXR5JykgewogICAgICBpZiAodmFsdWUgPSAoZWxlbWVudC5nZXRTdHlsZSgnZmlsdGVyJykgfHwgJycpLm1hdGNoKC9hbHBoYVwob3BhY2l0eT0oLiopXCkvKSkKICAgICAgICBpZiAodmFsdWVbMV0pIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlWzFdKSAvIDEwMDsKICAgICAgcmV0dXJuIDEuMDsKICAgIH0KCiAgICBpZiAodmFsdWUgPT0gJ2F1dG8nKSB7CiAgICAgIGlmICgoc3R5bGUgPT0gJ3dpZHRoJyB8fCBzdHlsZSA9PSAnaGVpZ2h0JykgJiYgKGVsZW1lbnQuZ2V0U3R5bGUoJ2Rpc3BsYXknKSAhPSAnbm9uZScpKQogICAgICAgIHJldHVybiBlbGVtZW50WydvZmZzZXQnICsgc3R5bGUuY2FwaXRhbGl6ZSgpXSArICdweCc7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogICAgcmV0dXJuIHZhbHVlOwogIH07CgogIEVsZW1lbnQuTWV0aG9kcy5zZXRPcGFjaXR5ID0gZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIGZ1bmN0aW9uIHN0cmlwQWxwaGEoZmlsdGVyKXsKICAgICAgcmV0dXJuIGZpbHRlci5yZXBsYWNlKC9hbHBoYVwoW15cKV0qXCkvZ2ksJycpOwogICAgfQogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgY3VycmVudFN0eWxlID0gZWxlbWVudC5jdXJyZW50U3R5bGU7CiAgICBpZiAoKGN1cnJlbnRTdHlsZSAmJiAhY3VycmVudFN0eWxlLmhhc0xheW91dCkgfHwKICAgICAgKCFjdXJyZW50U3R5bGUgJiYgZWxlbWVudC5zdHlsZS56b29tID09ICdub3JtYWwnKSkKICAgICAgICBlbGVtZW50LnN0eWxlLnpvb20gPSAxOwoKICAgIHZhciBmaWx0ZXIgPSBlbGVtZW50LmdldFN0eWxlKCdmaWx0ZXInKSwgc3R5bGUgPSBlbGVtZW50LnN0eWxlOwogICAgaWYgKHZhbHVlID09IDEgfHwgdmFsdWUgPT09ICcnKSB7CiAgICAgIChmaWx0ZXIgPSBzdHJpcEFscGhhKGZpbHRlcikpID8KICAgICAgICBzdHlsZS5maWx0ZXIgPSBmaWx0ZXIgOiBzdHlsZS5yZW1vdmVBdHRyaWJ1dGUoJ2ZpbHRlcicpOwogICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwLjAwMDAxKSB2YWx1ZSA9IDA7CiAgICBzdHlsZS5maWx0ZXIgPSBzdHJpcEFscGhhKGZpbHRlcikgKwogICAgICAnYWxwaGEob3BhY2l0eT0nICsgKHZhbHVlICogMTAwKSArICcpJzsKICAgIHJldHVybiBlbGVtZW50OwogIH07CgogIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucyA9IHsKICAgIHJlYWQ6IHsKICAgICAgbmFtZXM6IHsKICAgICAgICAnY2xhc3MnOiAnY2xhc3NOYW1lJywKICAgICAgICAnZm9yJzogICAnaHRtbEZvcicKICAgICAgfSwKICAgICAgdmFsdWVzOiB7CiAgICAgICAgX2dldEF0dHI6IGZ1bmN0aW9uKGVsZW1lbnQsIGF0dHJpYnV0ZSkgewogICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgMik7CiAgICAgICAgfSwKICAgICAgICBfZ2V0QXR0ck5vZGU6IGZ1bmN0aW9uKGVsZW1lbnQsIGF0dHJpYnV0ZSkgewogICAgICAgICAgdmFyIG5vZGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoYXR0cmlidXRlKTsKICAgICAgICAgIHJldHVybiBub2RlID8gbm9kZS52YWx1ZSA6ICIiOwogICAgICAgIH0sCiAgICAgICAgX2dldEV2OiBmdW5jdGlvbihlbGVtZW50LCBhdHRyaWJ1dGUpIHsKICAgICAgICAgIGF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7CiAgICAgICAgICByZXR1cm4gYXR0cmlidXRlID8gYXR0cmlidXRlLnRvU3RyaW5nKCkuc2xpY2UoMjMsIC0yKSA6IG51bGw7CiAgICAgICAgfSwKICAgICAgICBfZmxhZzogZnVuY3Rpb24oZWxlbWVudCwgYXR0cmlidXRlKSB7CiAgICAgICAgICByZXR1cm4gJChlbGVtZW50KS5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSA/IGF0dHJpYnV0ZSA6IG51bGw7CiAgICAgICAgfSwKICAgICAgICBzdHlsZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc3R5bGUuY3NzVGV4dC50b0xvd2VyQ2FzZSgpOwogICAgICAgIH0sCiAgICAgICAgdGl0bGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgIHJldHVybiBlbGVtZW50LnRpdGxlOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy53cml0ZSA9IHsKICAgIG5hbWVzOiBPYmplY3QuZXh0ZW5kKHsKICAgICAgY2VsbHBhZGRpbmc6ICdjZWxsUGFkZGluZycsCiAgICAgIGNlbGxzcGFjaW5nOiAnY2VsbFNwYWNpbmcnCiAgICB9LCBFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMucmVhZC5uYW1lcyksCiAgICB2YWx1ZXM6IHsKICAgICAgY2hlY2tlZDogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSAhIXZhbHVlOwogICAgICB9LAoKICAgICAgc3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7CiAgICAgICAgZWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gdmFsdWUgPyB2YWx1ZSA6ICcnOwogICAgICB9CiAgICB9CiAgfTsKCiAgRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLmhhcyA9IHt9OwoKICAkdygnY29sU3BhbiByb3dTcGFuIHZBbGlnbiBkYXRlVGltZSBhY2Nlc3NLZXkgdGFiSW5kZXggJyArCiAgICAgICdlbmNUeXBlIG1heExlbmd0aCByZWFkT25seSBsb25nRGVzYycpLmVhY2goZnVuY3Rpb24oYXR0cikgewogICAgRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLndyaXRlLm5hbWVzW2F0dHIudG9Mb3dlckNhc2UoKV0gPSBhdHRyOwogICAgRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLmhhc1thdHRyLnRvTG93ZXJDYXNlKCldID0gYXR0cjsKICB9KTsKCiAgKGZ1bmN0aW9uKHYpIHsKICAgIE9iamVjdC5leHRlbmQodiwgewogICAgICBocmVmOiAgICAgICAgdi5fZ2V0QXR0ciwKICAgICAgc3JjOiAgICAgICAgIHYuX2dldEF0dHIsCiAgICAgIHR5cGU6ICAgICAgICB2Ll9nZXRBdHRyLAogICAgICBhY3Rpb246ICAgICAgdi5fZ2V0QXR0ck5vZGUsCiAgICAgIGRpc2FibGVkOiAgICB2Ll9mbGFnLAogICAgICBjaGVja2VkOiAgICAgdi5fZmxhZywKICAgICAgcmVhZG9ubHk6ICAgIHYuX2ZsYWcsCiAgICAgIG11bHRpcGxlOiAgICB2Ll9mbGFnLAogICAgICBvbmxvYWQ6ICAgICAgdi5fZ2V0RXYsCiAgICAgIG9udW5sb2FkOiAgICB2Ll9nZXRFdiwKICAgICAgb25jbGljazogICAgIHYuX2dldEV2LAogICAgICBvbmRibGNsaWNrOiAgdi5fZ2V0RXYsCiAgICAgIG9ubW91c2Vkb3duOiB2Ll9nZXRFdiwKICAgICAgb25tb3VzZXVwOiAgIHYuX2dldEV2LAogICAgICBvbm1vdXNlb3Zlcjogdi5fZ2V0RXYsCiAgICAgIG9ubW91c2Vtb3ZlOiB2Ll9nZXRFdiwKICAgICAgb25tb3VzZW91dDogIHYuX2dldEV2LAogICAgICBvbmZvY3VzOiAgICAgdi5fZ2V0RXYsCiAgICAgIG9uYmx1cjogICAgICB2Ll9nZXRFdiwKICAgICAgb25rZXlwcmVzczogIHYuX2dldEV2LAogICAgICBvbmtleWRvd246ICAgdi5fZ2V0RXYsCiAgICAgIG9ua2V5dXA6ICAgICB2Ll9nZXRFdiwKICAgICAgb25zdWJtaXQ6ICAgIHYuX2dldEV2LAogICAgICBvbnJlc2V0OiAgICAgdi5fZ2V0RXYsCiAgICAgIG9uc2VsZWN0OiAgICB2Ll9nZXRFdiwKICAgICAgb25jaGFuZ2U6ICAgIHYuX2dldEV2CiAgICB9KTsKICB9KShFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMucmVhZC52YWx1ZXMpOwp9CgplbHNlIGlmIChQcm90b3R5cGUuQnJvd3Nlci5HZWNrbyAmJiAvcnY6MVwuOFwuMC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgewogIEVsZW1lbnQuTWV0aG9kcy5zZXRPcGFjaXR5ID0gZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gKHZhbHVlID09IDEpID8gMC45OTk5OTkgOgogICAgICAodmFsdWUgPT09ICcnKSA/ICcnIDogKHZhbHVlIDwgMC4wMDAwMSkgPyAwIDogdmFsdWU7CiAgICByZXR1cm4gZWxlbWVudDsKICB9Owp9CgplbHNlIGlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQpIHsKICBFbGVtZW50Lk1ldGhvZHMuc2V0T3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGVsZW1lbnQuc3R5bGUub3BhY2l0eSA9ICh2YWx1ZSA9PSAxIHx8IHZhbHVlID09PSAnJykgPyAnJyA6CiAgICAgICh2YWx1ZSA8IDAuMDAwMDEpID8gMCA6IHZhbHVlOwoKICAgIGlmICh2YWx1ZSA9PSAxKQogICAgICBpZihlbGVtZW50LnRhZ05hbWUgPT0gJ0lNRycgJiYgZWxlbWVudC53aWR0aCkgewogICAgICAgIGVsZW1lbnQud2lkdGgrKzsgZWxlbWVudC53aWR0aC0tOwogICAgICB9IGVsc2UgdHJ5IHsKICAgICAgICB2YXIgbiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChuKTsKICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKG4pOwogICAgICB9IGNhdGNoIChlKSB7IH0KCiAgICByZXR1cm4gZWxlbWVudDsKICB9OwoKICAvLyBTYWZhcmkgcmV0dXJucyBtYXJnaW5zIG9uIGJvZHkgd2hpY2ggaXMgaW5jb3JyZWN0IGlmIHRoZSBjaGlsZCBpcyBhYnNvbHV0ZWx5CiAgLy8gcG9zaXRpb25lZC4gIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCByZWRlZmluZSBFbGVtZW50I2N1bXVsYXRpdmVPZmZzZXQgZm9yCiAgLy8gS0hUTUwvV2ViS2l0IG9ubHkuCiAgRWxlbWVudC5NZXRob2RzLmN1bXVsYXRpdmVPZmZzZXQgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0gMCwgdmFsdWVMID0gMDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQub2Zmc2V0VG9wICB8fCAwOwogICAgICB2YWx1ZUwgKz0gZWxlbWVudC5vZmZzZXRMZWZ0IHx8IDA7CiAgICAgIGlmIChlbGVtZW50Lm9mZnNldFBhcmVudCA9PSBkb2N1bWVudC5ib2R5KQogICAgICAgIGlmIChFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicpID09ICdhYnNvbHV0ZScpIGJyZWFrOwoKICAgICAgZWxlbWVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50OwogICAgfSB3aGlsZSAoZWxlbWVudCk7CgogICAgcmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCh2YWx1ZUwsIHZhbHVlVCk7CiAgfTsKfQoKaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFIHx8IFByb3RvdHlwZS5Ccm93c2VyLk9wZXJhKSB7CiAgLy8gSUUgYW5kIE9wZXJhIGFyZSBtaXNzaW5nIC5pbm5lckhUTUwgc3VwcG9ydCBmb3IgVEFCTEUtcmVsYXRlZCBhbmQgU0VMRUNUIGVsZW1lbnRzCiAgRWxlbWVudC5NZXRob2RzLnVwZGF0ZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwoKICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQudG9FbGVtZW50KSBjb250ZW50ID0gY29udGVudC50b0VsZW1lbnQoKTsKICAgIGlmIChPYmplY3QuaXNFbGVtZW50KGNvbnRlbnQpKSByZXR1cm4gZWxlbWVudC51cGRhdGUoKS5pbnNlcnQoY29udGVudCk7CgogICAgY29udGVudCA9IE9iamVjdC50b0hUTUwoY29udGVudCk7CiAgICB2YXIgdGFnTmFtZSA9IGVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgIGlmICh0YWdOYW1lIGluIEVsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucy50YWdzKSB7CiAgICAgICRBKGVsZW1lbnQuY2hpbGROb2RlcykuZWFjaChmdW5jdGlvbihub2RlKSB7IGVsZW1lbnQucmVtb3ZlQ2hpbGQobm9kZSkgfSk7CiAgICAgIEVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0YWdOYW1lLCBjb250ZW50LnN0cmlwU2NyaXB0cygpKQogICAgICAgIC5lYWNoKGZ1bmN0aW9uKG5vZGUpIHsgZWxlbWVudC5hcHBlbmRDaGlsZChub2RlKSB9KTsKICAgIH0KICAgIGVsc2UgZWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50LnN0cmlwU2NyaXB0cygpOwoKICAgIGNvbnRlbnQuZXZhbFNjcmlwdHMuYmluZChjb250ZW50KS5kZWZlcigpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfTsKfQoKaWYgKCdvdXRlckhUTUwnIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKSB7CiAgRWxlbWVudC5NZXRob2RzLnJlcGxhY2UgPSBmdW5jdGlvbihlbGVtZW50LCBjb250ZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKCiAgICBpZiAoY29udGVudCAmJiBjb250ZW50LnRvRWxlbWVudCkgY29udGVudCA9IGNvbnRlbnQudG9FbGVtZW50KCk7CiAgICBpZiAoT2JqZWN0LmlzRWxlbWVudChjb250ZW50KSkgewogICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGNvbnRlbnQsIGVsZW1lbnQpOwogICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KCiAgICBjb250ZW50ID0gT2JqZWN0LnRvSFRNTChjb250ZW50KTsKICAgIHZhciBwYXJlbnQgPSBlbGVtZW50LnBhcmVudE5vZGUsIHRhZ05hbWUgPSBwYXJlbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgIGlmIChFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMudGFnc1t0YWdOYW1lXSkgewogICAgICB2YXIgbmV4dFNpYmxpbmcgPSBlbGVtZW50Lm5leHQoKTsKICAgICAgdmFyIGZyYWdtZW50cyA9IEVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0YWdOYW1lLCBjb250ZW50LnN0cmlwU2NyaXB0cygpKTsKICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpOwogICAgICBpZiAobmV4dFNpYmxpbmcpCiAgICAgICAgZnJhZ21lbnRzLmVhY2goZnVuY3Rpb24obm9kZSkgeyBwYXJlbnQuaW5zZXJ0QmVmb3JlKG5vZGUsIG5leHRTaWJsaW5nKSB9KTsKICAgICAgZWxzZQogICAgICAgIGZyYWdtZW50cy5lYWNoKGZ1bmN0aW9uKG5vZGUpIHsgcGFyZW50LmFwcGVuZENoaWxkKG5vZGUpIH0pOwogICAgfQogICAgZWxzZSBlbGVtZW50Lm91dGVySFRNTCA9IGNvbnRlbnQuc3RyaXBTY3JpcHRzKCk7CgogICAgY29udGVudC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9Owp9CgpFbGVtZW50Ll9yZXR1cm5PZmZzZXQgPSBmdW5jdGlvbihsLCB0KSB7CiAgdmFyIHJlc3VsdCA9IFtsLCB0XTsKICByZXN1bHQubGVmdCA9IGw7CiAgcmVzdWx0LnRvcCA9IHQ7CiAgcmV0dXJuIHJlc3VsdDsKfTsKCkVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCA9IGZ1bmN0aW9uKHRhZ05hbWUsIGh0bWwpIHsKICB2YXIgZGl2ID0gbmV3IEVsZW1lbnQoJ2RpdicpLCB0ID0gRWxlbWVudC5faW5zZXJ0aW9uVHJhbnNsYXRpb25zLnRhZ3NbdGFnTmFtZV07CiAgaWYgKHQpIHsKICAgIGRpdi5pbm5lckhUTUwgPSB0WzBdICsgaHRtbCArIHRbMV07CiAgICB0WzJdLnRpbWVzKGZ1bmN0aW9uKCkgeyBkaXYgPSBkaXYuZmlyc3RDaGlsZCB9KTsKICB9IGVsc2UgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgcmV0dXJuICRBKGRpdi5jaGlsZE5vZGVzKTsKfTsKCkVsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucyA9IHsKICBiZWZvcmU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGUpIHsKICAgIGVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgZWxlbWVudCk7CiAgfSwKICB0b3A6IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGUpIHsKICAgIGVsZW1lbnQuaW5zZXJ0QmVmb3JlKG5vZGUsIGVsZW1lbnQuZmlyc3RDaGlsZCk7CiAgfSwKICBib3R0b206IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGUpIHsKICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQobm9kZSk7CiAgfSwKICBhZnRlcjogZnVuY3Rpb24oZWxlbWVudCwgbm9kZSkgewogICAgZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLCBlbGVtZW50Lm5leHRTaWJsaW5nKTsKICB9LAogIHRhZ3M6IHsKICAgIFRBQkxFOiAgWyc8dGFibGU+JywgICAgICAgICAgICAgICAgJzwvdGFibGU+JywgICAgICAgICAgICAgICAgICAgMV0sCiAgICBUQk9EWTogIFsnPHRhYmxlPjx0Ym9keT4nLCAgICAgICAgICc8L3Rib2R5PjwvdGFibGU+JywgICAgICAgICAgIDJdLAogICAgVFI6ICAgICBbJzx0YWJsZT48dGJvZHk+PHRyPicsICAgICAnPC90cj48L3Rib2R5PjwvdGFibGU+JywgICAgICAzXSwKICAgIFREOiAgICAgWyc8dGFibGU+PHRib2R5Pjx0cj48dGQ+JywgJzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+JywgNF0sCiAgICBTRUxFQ1Q6IFsnPHNlbGVjdD4nLCAgICAgICAgICAgICAgICc8L3NlbGVjdD4nLCAgICAgICAgICAgICAgICAgIDFdCiAgfQp9OwoKKGZ1bmN0aW9uKCkgewogIE9iamVjdC5leHRlbmQodGhpcy50YWdzLCB7CiAgICBUSEVBRDogdGhpcy50YWdzLlRCT0RZLAogICAgVEZPT1Q6IHRoaXMudGFncy5UQk9EWSwKICAgIFRIOiAgICB0aGlzLnRhZ3MuVEQKICB9KTsKfSkuY2FsbChFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMpOwoKRWxlbWVudC5NZXRob2RzLlNpbXVsYXRlZCA9IHsKICBoYXNBdHRyaWJ1dGU6IGZ1bmN0aW9uKGVsZW1lbnQsIGF0dHJpYnV0ZSkgewogICAgYXR0cmlidXRlID0gRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLmhhc1thdHRyaWJ1dGVdIHx8IGF0dHJpYnV0ZTsKICAgIHZhciBub2RlID0gJChlbGVtZW50KS5nZXRBdHRyaWJ1dGVOb2RlKGF0dHJpYnV0ZSk7CiAgICByZXR1cm4gbm9kZSAmJiBub2RlLnNwZWNpZmllZDsKICB9Cn07CgpFbGVtZW50Lk1ldGhvZHMuQnlUYWcgPSB7IH07CgpPYmplY3QuZXh0ZW5kKEVsZW1lbnQsIEVsZW1lbnQuTWV0aG9kcyk7CgppZiAoIVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuRWxlbWVudEV4dGVuc2lvbnMgJiYKICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLl9fcHJvdG9fXykgewogIHdpbmRvdy5IVE1MRWxlbWVudCA9IHsgfTsKICB3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykuX19wcm90b19fOwogIFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuRWxlbWVudEV4dGVuc2lvbnMgPSB0cnVlOwp9CgpFbGVtZW50LmV4dGVuZCA9IChmdW5jdGlvbigpIHsKICBpZiAoUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcy5TcGVjaWZpY0VsZW1lbnRFeHRlbnNpb25zKQogICAgcmV0dXJuIFByb3RvdHlwZS5LOwoKICB2YXIgTWV0aG9kcyA9IHsgfSwgQnlUYWcgPSBFbGVtZW50Lk1ldGhvZHMuQnlUYWc7CgogIHZhciBleHRlbmQgPSBPYmplY3QuZXh0ZW5kKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50Ll9leHRlbmRlZEJ5UHJvdG90eXBlIHx8CiAgICAgICAgZWxlbWVudC5ub2RlVHlwZSAhPSAxIHx8IGVsZW1lbnQgPT0gd2luZG93KSByZXR1cm4gZWxlbWVudDsKCiAgICB2YXIgbWV0aG9kcyA9IE9iamVjdC5jbG9uZShNZXRob2RzKSwKICAgICAgdGFnTmFtZSA9IGVsZW1lbnQudGFnTmFtZSwgcHJvcGVydHksIHZhbHVlOwoKICAgIC8vIGV4dGVuZCBtZXRob2RzIGZvciBzcGVjaWZpYyB0YWdzCiAgICBpZiAoQnlUYWdbdGFnTmFtZV0pIE9iamVjdC5leHRlbmQobWV0aG9kcywgQnlUYWdbdGFnTmFtZV0pOwoKICAgIGZvciAocHJvcGVydHkgaW4gbWV0aG9kcykgewogICAgICB2YWx1ZSA9IG1ldGhvZHNbcHJvcGVydHldOwogICAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24odmFsdWUpICYmICEocHJvcGVydHkgaW4gZWxlbWVudCkpCiAgICAgICAgZWxlbWVudFtwcm9wZXJ0eV0gPSB2YWx1ZS5tZXRob2RpemUoKTsKICAgIH0KCiAgICBlbGVtZW50Ll9leHRlbmRlZEJ5UHJvdG90eXBlID0gUHJvdG90eXBlLmVtcHR5RnVuY3Rpb247CiAgICByZXR1cm4gZWxlbWVudDsKCiAgfSwgewogICAgcmVmcmVzaDogZnVuY3Rpb24oKSB7CiAgICAgIC8vIGV4dGVuZCBtZXRob2RzIGZvciBhbGwgdGFncyAoU2FmYXJpIGRvZXNuJ3QgbmVlZCB0aGlzKQogICAgICBpZiAoIVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuRWxlbWVudEV4dGVuc2lvbnMpIHsKICAgICAgICBPYmplY3QuZXh0ZW5kKE1ldGhvZHMsIEVsZW1lbnQuTWV0aG9kcyk7CiAgICAgICAgT2JqZWN0LmV4dGVuZChNZXRob2RzLCBFbGVtZW50Lk1ldGhvZHMuU2ltdWxhdGVkKTsKICAgICAgfQogICAgfQogIH0pOwoKICBleHRlbmQucmVmcmVzaCgpOwogIHJldHVybiBleHRlbmQ7Cn0pKCk7CgpFbGVtZW50Lmhhc0F0dHJpYnV0ZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGF0dHJpYnV0ZSkgewogIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSkgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiAgcmV0dXJuIEVsZW1lbnQuTWV0aG9kcy5TaW11bGF0ZWQuaGFzQXR0cmlidXRlKGVsZW1lbnQsIGF0dHJpYnV0ZSk7Cn07CgpFbGVtZW50LmFkZE1ldGhvZHMgPSBmdW5jdGlvbihtZXRob2RzKSB7CiAgdmFyIEYgPSBQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLCBUID0gRWxlbWVudC5NZXRob2RzLkJ5VGFnOwoKICBpZiAoIW1ldGhvZHMpIHsKICAgIE9iamVjdC5leHRlbmQoRm9ybSwgRm9ybS5NZXRob2RzKTsKICAgIE9iamVjdC5leHRlbmQoRm9ybS5FbGVtZW50LCBGb3JtLkVsZW1lbnQuTWV0aG9kcyk7CiAgICBPYmplY3QuZXh0ZW5kKEVsZW1lbnQuTWV0aG9kcy5CeVRhZywgewogICAgICAiRk9STSI6ICAgICBPYmplY3QuY2xvbmUoRm9ybS5NZXRob2RzKSwKICAgICAgIklOUFVUIjogICAgT2JqZWN0LmNsb25lKEZvcm0uRWxlbWVudC5NZXRob2RzKSwKICAgICAgIlNFTEVDVCI6ICAgT2JqZWN0LmNsb25lKEZvcm0uRWxlbWVudC5NZXRob2RzKSwKICAgICAgIlRFWFRBUkVBIjogT2JqZWN0LmNsb25lKEZvcm0uRWxlbWVudC5NZXRob2RzKQogICAgfSk7CiAgfQoKICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7CiAgICB2YXIgdGFnTmFtZSA9IG1ldGhvZHM7CiAgICBtZXRob2RzID0gYXJndW1lbnRzWzFdOwogIH0KCiAgaWYgKCF0YWdOYW1lKSBPYmplY3QuZXh0ZW5kKEVsZW1lbnQuTWV0aG9kcywgbWV0aG9kcyB8fCB7IH0pOwogIGVsc2UgewogICAgaWYgKE9iamVjdC5pc0FycmF5KHRhZ05hbWUpKSB0YWdOYW1lLmVhY2goZXh0ZW5kKTsKICAgIGVsc2UgZXh0ZW5kKHRhZ05hbWUpOwogIH0KCiAgZnVuY3Rpb24gZXh0ZW5kKHRhZ05hbWUpIHsKICAgIHRhZ05hbWUgPSB0YWdOYW1lLnRvVXBwZXJDYXNlKCk7CiAgICBpZiAoIUVsZW1lbnQuTWV0aG9kcy5CeVRhZ1t0YWdOYW1lXSkKICAgICAgRWxlbWVudC5NZXRob2RzLkJ5VGFnW3RhZ05hbWVdID0geyB9OwogICAgT2JqZWN0LmV4dGVuZChFbGVtZW50Lk1ldGhvZHMuQnlUYWdbdGFnTmFtZV0sIG1ldGhvZHMpOwogIH0KCiAgZnVuY3Rpb24gY29weShtZXRob2RzLCBkZXN0aW5hdGlvbiwgb25seUlmQWJzZW50KSB7CiAgICBvbmx5SWZBYnNlbnQgPSBvbmx5SWZBYnNlbnQgfHwgZmFsc2U7CiAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBtZXRob2RzKSB7CiAgICAgIHZhciB2YWx1ZSA9IG1ldGhvZHNbcHJvcGVydHldOwogICAgICBpZiAoIU9iamVjdC5pc0Z1bmN0aW9uKHZhbHVlKSkgY29udGludWU7CiAgICAgIGlmICghb25seUlmQWJzZW50IHx8ICEocHJvcGVydHkgaW4gZGVzdGluYXRpb24pKQogICAgICAgIGRlc3RpbmF0aW9uW3Byb3BlcnR5XSA9IHZhbHVlLm1ldGhvZGl6ZSgpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gZmluZERPTUNsYXNzKHRhZ05hbWUpIHsKICAgIHZhciBrbGFzczsKICAgIHZhciB0cmFucyA9IHsKICAgICAgIk9QVEdST1VQIjogIk9wdEdyb3VwIiwgIlRFWFRBUkVBIjogIlRleHRBcmVhIiwgIlAiOiAiUGFyYWdyYXBoIiwKICAgICAgIkZJRUxEU0VUIjogIkZpZWxkU2V0IiwgIlVMIjogIlVMaXN0IiwgIk9MIjogIk9MaXN0IiwgIkRMIjogIkRMaXN0IiwKICAgICAgIkRJUiI6ICJEaXJlY3RvcnkiLCAiSDEiOiAiSGVhZGluZyIsICJIMiI6ICJIZWFkaW5nIiwgIkgzIjogIkhlYWRpbmciLAogICAgICAiSDQiOiAiSGVhZGluZyIsICJINSI6ICJIZWFkaW5nIiwgIkg2IjogIkhlYWRpbmciLCAiUSI6ICJRdW90ZSIsCiAgICAgICJJTlMiOiAiTW9kIiwgIkRFTCI6ICJNb2QiLCAiQSI6ICJBbmNob3IiLCAiSU1HIjogIkltYWdlIiwgIkNBUFRJT04iOgogICAgICAiVGFibGVDYXB0aW9uIiwgIkNPTCI6ICJUYWJsZUNvbCIsICJDT0xHUk9VUCI6ICJUYWJsZUNvbCIsICJUSEVBRCI6CiAgICAgICJUYWJsZVNlY3Rpb24iLCAiVEZPT1QiOiAiVGFibGVTZWN0aW9uIiwgIlRCT0RZIjogIlRhYmxlU2VjdGlvbiIsICJUUiI6CiAgICAgICJUYWJsZVJvdyIsICJUSCI6ICJUYWJsZUNlbGwiLCAiVEQiOiAiVGFibGVDZWxsIiwgIkZSQU1FU0VUIjoKICAgICAgIkZyYW1lU2V0IiwgIklGUkFNRSI6ICJJRnJhbWUiCiAgICB9OwogICAgaWYgKHRyYW5zW3RhZ05hbWVdKSBrbGFzcyA9ICdIVE1MJyArIHRyYW5zW3RhZ05hbWVdICsgJ0VsZW1lbnQnOwogICAgaWYgKHdpbmRvd1trbGFzc10pIHJldHVybiB3aW5kb3dba2xhc3NdOwogICAga2xhc3MgPSAnSFRNTCcgKyB0YWdOYW1lICsgJ0VsZW1lbnQnOwogICAgaWYgKHdpbmRvd1trbGFzc10pIHJldHVybiB3aW5kb3dba2xhc3NdOwogICAga2xhc3MgPSAnSFRNTCcgKyB0YWdOYW1lLmNhcGl0YWxpemUoKSArICdFbGVtZW50JzsKICAgIGlmICh3aW5kb3dba2xhc3NdKSByZXR1cm4gd2luZG93W2tsYXNzXTsKCiAgICB3aW5kb3dba2xhc3NdID0geyB9OwogICAgd2luZG93W2tsYXNzXS5wcm90b3R5cGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpLl9fcHJvdG9fXzsKICAgIHJldHVybiB3aW5kb3dba2xhc3NdOwogIH0KCiAgaWYgKEYuRWxlbWVudEV4dGVuc2lvbnMpIHsKICAgIGNvcHkoRWxlbWVudC5NZXRob2RzLCBIVE1MRWxlbWVudC5wcm90b3R5cGUpOwogICAgY29weShFbGVtZW50Lk1ldGhvZHMuU2ltdWxhdGVkLCBIVE1MRWxlbWVudC5wcm90b3R5cGUsIHRydWUpOwogIH0KCiAgaWYgKEYuU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9ucykgewogICAgZm9yICh2YXIgdGFnIGluIEVsZW1lbnQuTWV0aG9kcy5CeVRhZykgewogICAgICB2YXIga2xhc3MgPSBmaW5kRE9NQ2xhc3ModGFnKTsKICAgICAgaWYgKE9iamVjdC5pc1VuZGVmaW5lZChrbGFzcykpIGNvbnRpbnVlOwogICAgICBjb3B5KFRbdGFnXSwga2xhc3MucHJvdG90eXBlKTsKICAgIH0KICB9CgogIE9iamVjdC5leHRlbmQoRWxlbWVudCwgRWxlbWVudC5NZXRob2RzKTsKICBkZWxldGUgRWxlbWVudC5CeVRhZzsKCiAgaWYgKEVsZW1lbnQuZXh0ZW5kLnJlZnJlc2gpIEVsZW1lbnQuZXh0ZW5kLnJlZnJlc2goKTsKICBFbGVtZW50LmNhY2hlID0geyB9Owp9OwoKZG9jdW1lbnQudmlld3BvcnQgPSB7CiAgZ2V0RGltZW5zaW9uczogZnVuY3Rpb24oKSB7CiAgICB2YXIgZGltZW5zaW9ucyA9IHsgfTsKICAgIHZhciBCID0gUHJvdG90eXBlLkJyb3dzZXI7CiAgICAkdygnd2lkdGggaGVpZ2h0JykuZWFjaChmdW5jdGlvbihkKSB7CiAgICAgIHZhciBEID0gZC5jYXBpdGFsaXplKCk7CiAgICAgIGRpbWVuc2lvbnNbZF0gPSAoQi5XZWJLaXQgJiYgIWRvY3VtZW50LmV2YWx1YXRlKSA/IHNlbGZbJ2lubmVyJyArIERdIDoKICAgICAgICAoQi5PcGVyYSkgPyBkb2N1bWVudC5ib2R5WydjbGllbnQnICsgRF0gOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbJ2NsaWVudCcgKyBEXTsKICAgIH0pOwogICAgcmV0dXJuIGRpbWVuc2lvbnM7CiAgfSwKCiAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZ2V0RGltZW5zaW9ucygpLndpZHRoOwogIH0sCgogIGdldEhlaWdodDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5nZXREaW1lbnNpb25zKCkuaGVpZ2h0OwogIH0sCgogIGdldFNjcm9sbE9mZnNldHM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCgKICAgICAgd2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCwKICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApOwogIH0KfTsKLyogUG9ydGlvbnMgb2YgdGhlIFNlbGVjdG9yIGNsYXNzIGFyZSBkZXJpdmVkIGZyb20gSmFjayBTbG9jdW3DouKCrOKEonMgRG9tUXVlcnksCiAqIHBhcnQgb2YgWVVJLUV4dCB2ZXJzaW9uIDAuNDAsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbiBNSVQtc3R5bGUKICogbGljZW5zZS4gIFBsZWFzZSBzZWUgaHR0cDovL3d3dy55dWktZXh0LmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCgp2YXIgU2VsZWN0b3IgPSBDbGFzcy5jcmVhdGUoewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGV4cHJlc3Npb24pIHsKICAgIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24uc3RyaXAoKTsKICAgIHRoaXMuY29tcGlsZU1hdGNoZXIoKTsKICB9LAoKICBzaG91bGRVc2VYUGF0aDogZnVuY3Rpb24oKSB7CiAgICBpZiAoIVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuWFBhdGgpIHJldHVybiBmYWxzZTsKCiAgICB2YXIgZSA9IHRoaXMuZXhwcmVzc2lvbjsKCiAgICAvLyBTYWZhcmkgMyBjaG9rZXMgb24gOiotb2YtdHlwZSBhbmQgOmVtcHR5CiAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0ICYmCiAgICAgKGUuaW5jbHVkZSgiLW9mLXR5cGUiKSB8fCBlLmluY2x1ZGUoIjplbXB0eSIpKSkKICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIC8vIFhQYXRoIGNhbid0IGRvIG5hbWVzcGFjZWQgYXR0cmlidXRlcywgbm9yIGNhbiBpdCByZWFkCiAgICAvLyB0aGUgImNoZWNrZWQiIHByb3BlcnR5IGZyb20gRE9NIG5vZGVzCiAgICBpZiAoKC8oXFtbXHctXSo/Onw6Y2hlY2tlZCkvKS50ZXN0KHRoaXMuZXhwcmVzc2lvbikpCiAgICAgIHJldHVybiBmYWxzZTsKCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICBjb21waWxlTWF0Y2hlcjogZnVuY3Rpb24oKSB7CiAgICBpZiAodGhpcy5zaG91bGRVc2VYUGF0aCgpKQogICAgICByZXR1cm4gdGhpcy5jb21waWxlWFBhdGhNYXRjaGVyKCk7CgogICAgdmFyIGUgPSB0aGlzLmV4cHJlc3Npb24sIHBzID0gU2VsZWN0b3IucGF0dGVybnMsIGggPSBTZWxlY3Rvci5oYW5kbGVycywKICAgICAgICBjID0gU2VsZWN0b3IuY3JpdGVyaWEsIGxlLCBwLCBtOwoKICAgIGlmIChTZWxlY3Rvci5fY2FjaGVbZV0pIHsKICAgICAgdGhpcy5tYXRjaGVyID0gU2VsZWN0b3IuX2NhY2hlW2VdOwogICAgICByZXR1cm47CiAgICB9CgogICAgdGhpcy5tYXRjaGVyID0gWyJ0aGlzLm1hdGNoZXIgPSBmdW5jdGlvbihyb290KSB7IiwKICAgICAgICAgICAgICAgICAgICAidmFyIHIgPSByb290LCBoID0gU2VsZWN0b3IuaGFuZGxlcnMsIGMgPSBmYWxzZSwgbjsiXTsKCiAgICB3aGlsZSAoZSAmJiBsZSAhPSBlICYmICgvXFMvKS50ZXN0KGUpKSB7CiAgICAgIGxlID0gZTsKICAgICAgZm9yICh2YXIgaSBpbiBwcykgewogICAgICAgIHAgPSBwc1tpXTsKICAgICAgICBpZiAobSA9IGUubWF0Y2gocCkpIHsKICAgICAgICAgIHRoaXMubWF0Y2hlci5wdXNoKE9iamVjdC5pc0Z1bmN0aW9uKGNbaV0pID8gY1tpXShtKSA6CiAgICAJICAgICAgbmV3IFRlbXBsYXRlKGNbaV0pLmV2YWx1YXRlKG0pKTsKICAgICAgICAgIGUgPSBlLnJlcGxhY2UobVswXSwgJycpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgdGhpcy5tYXRjaGVyLnB1c2goInJldHVybiBoLnVuaXF1ZShuKTtcbn0iKTsKICAgIGV2YWwodGhpcy5tYXRjaGVyLmpvaW4oJ1xuJykpOwogICAgU2VsZWN0b3IuX2NhY2hlW3RoaXMuZXhwcmVzc2lvbl0gPSB0aGlzLm1hdGNoZXI7CiAgfSwKCiAgY29tcGlsZVhQYXRoTWF0Y2hlcjogZnVuY3Rpb24oKSB7CiAgICB2YXIgZSA9IHRoaXMuZXhwcmVzc2lvbiwgcHMgPSBTZWxlY3Rvci5wYXR0ZXJucywKICAgICAgICB4ID0gU2VsZWN0b3IueHBhdGgsIGxlLCBtOwoKICAgIGlmIChTZWxlY3Rvci5fY2FjaGVbZV0pIHsKICAgICAgdGhpcy54cGF0aCA9IFNlbGVjdG9yLl9jYWNoZVtlXTsgcmV0dXJuOwogICAgfQoKICAgIHRoaXMubWF0Y2hlciA9IFsnLi8vKiddOwogICAgd2hpbGUgKGUgJiYgbGUgIT0gZSAmJiAoL1xTLykudGVzdChlKSkgewogICAgICBsZSA9IGU7CiAgICAgIGZvciAodmFyIGkgaW4gcHMpIHsKICAgICAgICBpZiAobSA9IGUubWF0Y2gocHNbaV0pKSB7CiAgICAgICAgICB0aGlzLm1hdGNoZXIucHVzaChPYmplY3QuaXNGdW5jdGlvbih4W2ldKSA/IHhbaV0obSkgOgogICAgICAgICAgICBuZXcgVGVtcGxhdGUoeFtpXSkuZXZhbHVhdGUobSkpOwogICAgICAgICAgZSA9IGUucmVwbGFjZShtWzBdLCAnJyk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICB0aGlzLnhwYXRoID0gdGhpcy5tYXRjaGVyLmpvaW4oJycpOwogICAgU2VsZWN0b3IuX2NhY2hlW3RoaXMuZXhwcmVzc2lvbl0gPSB0aGlzLnhwYXRoOwogIH0sCgogIGZpbmRFbGVtZW50czogZnVuY3Rpb24ocm9vdCkgewogICAgcm9vdCA9IHJvb3QgfHwgZG9jdW1lbnQ7CiAgICBpZiAodGhpcy54cGF0aCkgcmV0dXJuIGRvY3VtZW50Ll9nZXRFbGVtZW50c0J5WFBhdGgodGhpcy54cGF0aCwgcm9vdCk7CiAgICByZXR1cm4gdGhpcy5tYXRjaGVyKHJvb3QpOwogIH0sCgogIG1hdGNoOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLnRva2VucyA9IFtdOwoKICAgIHZhciBlID0gdGhpcy5leHByZXNzaW9uLCBwcyA9IFNlbGVjdG9yLnBhdHRlcm5zLCBhcyA9IFNlbGVjdG9yLmFzc2VydGlvbnM7CiAgICB2YXIgbGUsIHAsIG07CgogICAgd2hpbGUgKGUgJiYgbGUgIT09IGUgJiYgKC9cUy8pLnRlc3QoZSkpIHsKICAgICAgbGUgPSBlOwogICAgICBmb3IgKHZhciBpIGluIHBzKSB7CiAgICAgICAgcCA9IHBzW2ldOwogICAgICAgIGlmIChtID0gZS5tYXRjaChwKSkgewogICAgICAgICAgLy8gdXNlIHRoZSBTZWxlY3Rvci5hc3NlcnRpb25zIG1ldGhvZHMgdW5sZXNzIHRoZSBzZWxlY3RvcgogICAgICAgICAgLy8gaXMgdG9vIGNvbXBsZXguCiAgICAgICAgICBpZiAoYXNbaV0pIHsKICAgICAgICAgICAgdGhpcy50b2tlbnMucHVzaChbaSwgT2JqZWN0LmNsb25lKG0pXSk7CiAgICAgICAgICAgIGUgPSBlLnJlcGxhY2UobVswXSwgJycpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gcmVsdWN0YW50bHkgZG8gYSBkb2N1bWVudC13aWRlIHNlYXJjaAogICAgICAgICAgICAvLyBhbmQgbG9vayBmb3IgYSBtYXRjaCBpbiB0aGUgYXJyYXkKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZEVsZW1lbnRzKGRvY3VtZW50KS5pbmNsdWRlKGVsZW1lbnQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHZhciBtYXRjaCA9IHRydWUsIG5hbWUsIG1hdGNoZXM7CiAgICBmb3IgKHZhciBpID0gMCwgdG9rZW47IHRva2VuID0gdGhpcy50b2tlbnNbaV07IGkrKykgewogICAgICBuYW1lID0gdG9rZW5bMF0sIG1hdGNoZXMgPSB0b2tlblsxXTsKICAgICAgaWYgKCFTZWxlY3Rvci5hc3NlcnRpb25zW25hbWVdKGVsZW1lbnQsIG1hdGNoZXMpKSB7CiAgICAgICAgbWF0Y2ggPSBmYWxzZTsgYnJlYWs7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gbWF0Y2g7CiAgfSwKCiAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbjsKICB9LAoKICBpbnNwZWN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAiIzxTZWxlY3RvcjoiICsgdGhpcy5leHByZXNzaW9uLmluc3BlY3QoKSArICI+IjsKICB9Cn0pOwoKT2JqZWN0LmV4dGVuZChTZWxlY3RvciwgewogIF9jYWNoZTogeyB9LAoKICB4cGF0aDogewogICAgZGVzY2VuZGFudDogICAiLy8qIiwKICAgIGNoaWxkOiAgICAgICAgIi8qIiwKICAgIGFkamFjZW50OiAgICAgIi9mb2xsb3dpbmctc2libGluZzo6KlsxXSIsCiAgICBsYXRlclNpYmxpbmc6ICcvZm9sbG93aW5nLXNpYmxpbmc6OionLAogICAgdGFnTmFtZTogICAgICBmdW5jdGlvbihtKSB7CiAgICAgIGlmIChtWzFdID09ICcqJykgcmV0dXJuICcnOwogICAgICByZXR1cm4gIltsb2NhbC1uYW1lKCk9JyIgKyBtWzFdLnRvTG93ZXJDYXNlKCkgKwogICAgICAgICAgICAgIicgb3IgbG9jYWwtbmFtZSgpPSciICsgbVsxXS50b1VwcGVyQ2FzZSgpICsgIiddIjsKICAgIH0sCiAgICBjbGFzc05hbWU6ICAgICJbY29udGFpbnMoY29uY2F0KCcgJywgQGNsYXNzLCAnICcpLCAnICN7MX0gJyldIiwKICAgIGlkOiAgICAgICAgICAgIltAaWQ9JyN7MX0nXSIsCiAgICBhdHRyUHJlc2VuY2U6IGZ1bmN0aW9uKG0pIHsKICAgICAgbVsxXSA9IG1bMV0udG9Mb3dlckNhc2UoKTsKICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZSgiW0AjezF9XSIpLmV2YWx1YXRlKG0pOwogICAgfSwKICAgIGF0dHI6IGZ1bmN0aW9uKG0pIHsKICAgICAgbVsxXSA9IG1bMV0udG9Mb3dlckNhc2UoKTsKICAgICAgbVszXSA9IG1bNV0gfHwgbVs2XTsKICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZShTZWxlY3Rvci54cGF0aC5vcGVyYXRvcnNbbVsyXV0pLmV2YWx1YXRlKG0pOwogICAgfSwKICAgIHBzZXVkbzogZnVuY3Rpb24obSkgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLnhwYXRoLnBzZXVkb3NbbVsxXV07CiAgICAgIGlmICghaCkgcmV0dXJuICcnOwogICAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24oaCkpIHJldHVybiBoKG0pOwogICAgICByZXR1cm4gbmV3IFRlbXBsYXRlKFNlbGVjdG9yLnhwYXRoLnBzZXVkb3NbbVsxXV0pLmV2YWx1YXRlKG0pOwogICAgfSwKICAgIG9wZXJhdG9yczogewogICAgICAnPSc6ICAiW0AjezF9PScjezN9J10iLAogICAgICAnIT0nOiAiW0AjezF9IT0nI3szfSddIiwKICAgICAgJ149JzogIltzdGFydHMtd2l0aChAI3sxfSwgJyN7M30nKV0iLAogICAgICAnJD0nOiAiW3N1YnN0cmluZyhAI3sxfSwgKHN0cmluZy1sZW5ndGgoQCN7MX0pIC0gc3RyaW5nLWxlbmd0aCgnI3szfScpICsgMSkpPScjezN9J10iLAogICAgICAnKj0nOiAiW2NvbnRhaW5zKEAjezF9LCAnI3szfScpXSIsCiAgICAgICd+PSc6ICJbY29udGFpbnMoY29uY2F0KCcgJywgQCN7MX0sICcgJyksICcgI3szfSAnKV0iLAogICAgICAnfD0nOiAiW2NvbnRhaW5zKGNvbmNhdCgnLScsIEAjezF9LCAnLScpLCAnLSN7M30tJyldIgogICAgfSwKICAgIHBzZXVkb3M6IHsKICAgICAgJ2ZpcnN0LWNoaWxkJzogJ1tub3QocHJlY2VkaW5nLXNpYmxpbmc6OiopXScsCiAgICAgICdsYXN0LWNoaWxkJzogICdbbm90KGZvbGxvd2luZy1zaWJsaW5nOjoqKV0nLAogICAgICAnb25seS1jaGlsZCc6ICAnW25vdChwcmVjZWRpbmctc2libGluZzo6KiBvciBmb2xsb3dpbmctc2libGluZzo6KildJywKICAgICAgJ2VtcHR5JzogICAgICAgIltjb3VudCgqKSA9IDAgYW5kIChjb3VudCh0ZXh0KCkpID0gMCBvciB0cmFuc2xhdGUodGV4dCgpLCAnIFx0XHJcbicsICcnKSA9ICcnKV0iLAogICAgICAnY2hlY2tlZCc6ICAgICAiW0BjaGVja2VkXSIsCiAgICAgICdkaXNhYmxlZCc6ICAgICJbQGRpc2FibGVkXSIsCiAgICAgICdlbmFibGVkJzogICAgICJbbm90KEBkaXNhYmxlZCldIiwKICAgICAgJ25vdCc6IGZ1bmN0aW9uKG0pIHsKICAgICAgICB2YXIgZSA9IG1bNl0sIHAgPSBTZWxlY3Rvci5wYXR0ZXJucywKICAgICAgICAgICAgeCA9IFNlbGVjdG9yLnhwYXRoLCBsZSwgdjsKCiAgICAgICAgdmFyIGV4Y2x1c2lvbiA9IFtdOwogICAgICAgIHdoaWxlIChlICYmIGxlICE9IGUgJiYgKC9cUy8pLnRlc3QoZSkpIHsKICAgICAgICAgIGxlID0gZTsKICAgICAgICAgIGZvciAodmFyIGkgaW4gcCkgewogICAgICAgICAgICBpZiAobSA9IGUubWF0Y2gocFtpXSkpIHsKICAgICAgICAgICAgICB2ID0gT2JqZWN0LmlzRnVuY3Rpb24oeFtpXSkgPyB4W2ldKG0pIDogbmV3IFRlbXBsYXRlKHhbaV0pLmV2YWx1YXRlKG0pOwogICAgICAgICAgICAgIGV4Y2x1c2lvbi5wdXNoKCIoIiArIHYuc3Vic3RyaW5nKDEsIHYubGVuZ3RoIC0gMSkgKyAiKSIpOwogICAgICAgICAgICAgIGUgPSBlLnJlcGxhY2UobVswXSwgJycpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAiW25vdCgiICsgZXhjbHVzaW9uLmpvaW4oIiBhbmQgIikgKyAiKV0iOwogICAgICB9LAogICAgICAnbnRoLWNoaWxkJzogICAgICBmdW5jdGlvbihtKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3MubnRoKCIoY291bnQoLi9wcmVjZWRpbmctc2libGluZzo6KikgKyAxKSAiLCBtKTsKICAgICAgfSwKICAgICAgJ250aC1sYXN0LWNoaWxkJzogZnVuY3Rpb24obSkgewogICAgICAgIHJldHVybiBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zLm50aCgiKGNvdW50KC4vZm9sbG93aW5nLXNpYmxpbmc6OiopICsgMSkgIiwgbSk7CiAgICAgIH0sCiAgICAgICdudGgtb2YtdHlwZSc6ICAgIGZ1bmN0aW9uKG0pIHsKICAgICAgICByZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRvcy5udGgoInBvc2l0aW9uKCkgIiwgbSk7CiAgICAgIH0sCiAgICAgICdudGgtbGFzdC1vZi10eXBlJzogZnVuY3Rpb24obSkgewogICAgICAgIHJldHVybiBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zLm50aCgiKGxhc3QoKSArIDEgLSBwb3NpdGlvbigpKSAiLCBtKTsKICAgICAgfSwKICAgICAgJ2ZpcnN0LW9mLXR5cGUnOiAgZnVuY3Rpb24obSkgewogICAgICAgIG1bNl0gPSAiMSI7IHJldHVybiBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zWydudGgtb2YtdHlwZSddKG0pOwogICAgICB9LAogICAgICAnbGFzdC1vZi10eXBlJzogICBmdW5jdGlvbihtKSB7CiAgICAgICAgbVs2XSA9ICIxIjsgcmV0dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3NbJ250aC1sYXN0LW9mLXR5cGUnXShtKTsKICAgICAgfSwKICAgICAgJ29ubHktb2YtdHlwZSc6ICAgZnVuY3Rpb24obSkgewogICAgICAgIHZhciBwID0gU2VsZWN0b3IueHBhdGgucHNldWRvczsgcmV0dXJuIHBbJ2ZpcnN0LW9mLXR5cGUnXShtKSArIHBbJ2xhc3Qtb2YtdHlwZSddKG0pOwogICAgICB9LAogICAgICBudGg6IGZ1bmN0aW9uKGZyYWdtZW50LCBtKSB7CiAgICAgICAgdmFyIG1tLCBmb3JtdWxhID0gbVs2XSwgcHJlZGljYXRlOwogICAgICAgIGlmIChmb3JtdWxhID09ICdldmVuJykgZm9ybXVsYSA9ICcybiswJzsKICAgICAgICBpZiAoZm9ybXVsYSA9PSAnb2RkJykgIGZvcm11bGEgPSAnMm4rMSc7CiAgICAgICAgaWYgKG1tID0gZm9ybXVsYS5tYXRjaCgvXihcZCspJC8pKSAvLyBkaWdpdCBvbmx5CiAgICAgICAgICByZXR1cm4gJ1snICsgZnJhZ21lbnQgKyAiPSAiICsgbW1bMV0gKyAnXSc7CiAgICAgICAgaWYgKG1tID0gZm9ybXVsYS5tYXRjaCgvXigtP1xkKik/bigoWystXSkoXGQrKSk/LykpIHsgLy8gYW4rYgogICAgICAgICAgaWYgKG1tWzFdID09ICItIikgbW1bMV0gPSAtMTsKICAgICAgICAgIHZhciBhID0gbW1bMV0gPyBOdW1iZXIobW1bMV0pIDogMTsKICAgICAgICAgIHZhciBiID0gbW1bMl0gPyBOdW1iZXIobW1bMl0pIDogMDsKICAgICAgICAgIHByZWRpY2F0ZSA9ICJbKCgje2ZyYWdtZW50fSAtICN7Yn0pIG1vZCAje2F9ID0gMCkgYW5kICIgKwogICAgICAgICAgIigoI3tmcmFnbWVudH0gLSAje2J9KSBkaXYgI3thfSA+PSAwKV0iOwogICAgICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZShwcmVkaWNhdGUpLmV2YWx1YXRlKHsKICAgICAgICAgICAgZnJhZ21lbnQ6IGZyYWdtZW50LCBhOiBhLCBiOiBiIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCgogIGNyaXRlcmlhOiB7CiAgICB0YWdOYW1lOiAgICAgICduID0gaC50YWdOYW1lKG4sIHIsICIjezF9IiwgYyk7ICAgICAgYyA9IGZhbHNlOycsCiAgICBjbGFzc05hbWU6ICAgICduID0gaC5jbGFzc05hbWUobiwgciwgIiN7MX0iLCBjKTsgICAgYyA9IGZhbHNlOycsCiAgICBpZDogICAgICAgICAgICduID0gaC5pZChuLCByLCAiI3sxfSIsIGMpOyAgICAgICAgICAgYyA9IGZhbHNlOycsCiAgICBhdHRyUHJlc2VuY2U6ICduID0gaC5hdHRyUHJlc2VuY2UobiwgciwgIiN7MX0iLCBjKTsgYyA9IGZhbHNlOycsCiAgICBhdHRyOiBmdW5jdGlvbihtKSB7CiAgICAgIG1bM10gPSAobVs1XSB8fCBtWzZdKTsKICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZSgnbiA9IGguYXR0cihuLCByLCAiI3sxfSIsICIjezN9IiwgIiN7Mn0iLCBjKTsgYyA9IGZhbHNlOycpLmV2YWx1YXRlKG0pOwogICAgfSwKICAgIHBzZXVkbzogZnVuY3Rpb24obSkgewogICAgICBpZiAobVs2XSkgbVs2XSA9IG1bNl0ucmVwbGFjZSgvIi9nLCAnXFwiJyk7CiAgICAgIHJldHVybiBuZXcgVGVtcGxhdGUoJ24gPSBoLnBzZXVkbyhuLCAiI3sxfSIsICIjezZ9IiwgciwgYyk7IGMgPSBmYWxzZTsnKS5ldmFsdWF0ZShtKTsKICAgIH0sCiAgICBkZXNjZW5kYW50OiAgICdjID0gImRlc2NlbmRhbnQiOycsCiAgICBjaGlsZDogICAgICAgICdjID0gImNoaWxkIjsnLAogICAgYWRqYWNlbnQ6ICAgICAnYyA9ICJhZGphY2VudCI7JywKICAgIGxhdGVyU2libGluZzogJ2MgPSAibGF0ZXJTaWJsaW5nIjsnCiAgfSwKCiAgcGF0dGVybnM6IHsKICAgIC8vIGNvbWJpbmF0b3JzIG11c3QgYmUgbGlzdGVkIGZpcnN0CiAgICAvLyAoYW5kIGRlc2NlbmRhbnQgbmVlZHMgdG8gYmUgbGFzdCBjb21iaW5hdG9yKQogICAgbGF0ZXJTaWJsaW5nOiAvXlxzKn5ccyovLAogICAgY2hpbGQ6ICAgICAgICAvXlxzKj5ccyovLAogICAgYWRqYWNlbnQ6ICAgICAvXlxzKlwrXHMqLywKICAgIGRlc2NlbmRhbnQ6ICAgL15ccy8sCgogICAgLy8gc2VsZWN0b3JzIGZvbGxvdwogICAgdGFnTmFtZTogICAgICAvXlxzKihcKnxbXHdcLV0rKShcYnwkKT8vLAogICAgaWQ6ICAgICAgICAgICAvXiMoW1x3XC1cKl0rKShcYnwkKS8sCiAgICBjbGFzc05hbWU6ICAgIC9eXC4oW1x3XC1cKl0rKShcYnwkKS8sCiAgICBwc2V1ZG86Ci9eOigoZmlyc3R8bGFzdHxudGh8bnRoLWxhc3R8b25seSkoLWNoaWxkfC1vZi10eXBlKXxlbXB0eXxjaGVja2VkfChlbnxkaXMpYWJsZWR8bm90KShcKCguKj8pXCkpPyhcYnwkfCg/PVxzfFs6K34+XSkpLywKICAgIGF0dHJQcmVzZW5jZTogL15cWyhbXHddKylcXS8sCiAgICBhdHRyOiAgICAgICAgIC9cWygoPzpbXHctXSo6KT9bXHctXSspXHMqKD86KFshXiQqfnxdPz0pXHMqKChbJyJdKShbXlw0XSo/KVw0fChbXiciXVteXF1dKj8pKSk/XF0vCiAgfSwKCiAgLy8gZm9yIFNlbGVjdG9yLm1hdGNoIGFuZCBFbGVtZW50I21hdGNoCiAgYXNzZXJ0aW9uczogewogICAgdGFnTmFtZTogZnVuY3Rpb24oZWxlbWVudCwgbWF0Y2hlcykgewogICAgICByZXR1cm4gbWF0Y2hlc1sxXS50b1VwcGVyQ2FzZSgpID09IGVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwogICAgfSwKCiAgICBjbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIG1hdGNoZXMpIHsKICAgICAgcmV0dXJuIEVsZW1lbnQuaGFzQ2xhc3NOYW1lKGVsZW1lbnQsIG1hdGNoZXNbMV0pOwogICAgfSwKCiAgICBpZDogZnVuY3Rpb24oZWxlbWVudCwgbWF0Y2hlcykgewogICAgICByZXR1cm4gZWxlbWVudC5pZCA9PT0gbWF0Y2hlc1sxXTsKICAgIH0sCgogICAgYXR0clByZXNlbmNlOiBmdW5jdGlvbihlbGVtZW50LCBtYXRjaGVzKSB7CiAgICAgIHJldHVybiBFbGVtZW50Lmhhc0F0dHJpYnV0ZShlbGVtZW50LCBtYXRjaGVzWzFdKTsKICAgIH0sCgogICAgYXR0cjogZnVuY3Rpb24oZWxlbWVudCwgbWF0Y2hlcykgewogICAgICB2YXIgbm9kZVZhbHVlID0gRWxlbWVudC5yZWFkQXR0cmlidXRlKGVsZW1lbnQsIG1hdGNoZXNbMV0pOwogICAgICByZXR1cm4gbm9kZVZhbHVlICYmIFNlbGVjdG9yLm9wZXJhdG9yc1ttYXRjaGVzWzJdXShub2RlVmFsdWUsIG1hdGNoZXNbNV0gfHwgbWF0Y2hlc1s2XSk7CiAgICB9CiAgfSwKCiAgaGFuZGxlcnM6IHsKICAgIC8vIFVUSUxJVFkgRlVOQ1RJT05TCiAgICAvLyBqb2lucyB0d28gY29sbGVjdGlvbnMKICAgIGNvbmNhdDogZnVuY3Rpb24oYSwgYikgewogICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IGJbaV07IGkrKykKICAgICAgICBhLnB1c2gobm9kZSk7CiAgICAgIHJldHVybiBhOwogICAgfSwKCiAgICAvLyBtYXJrcyBhbiBhcnJheSBvZiBub2RlcyBmb3IgY291bnRpbmcKICAgIG1hcms6IGZ1bmN0aW9uKG5vZGVzKSB7CiAgICAgIHZhciBfdHJ1ZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgbm9kZS5fY291bnRlZEJ5UHJvdG90eXBlID0gX3RydWU7CiAgICAgIHJldHVybiBub2RlczsKICAgIH0sCgogICAgdW5tYXJrOiBmdW5jdGlvbihub2RlcykgewogICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgbm9kZS5fY291bnRlZEJ5UHJvdG90eXBlID0gdW5kZWZpbmVkOwogICAgICByZXR1cm4gbm9kZXM7CiAgICB9LAoKICAgIC8vIG1hcmsgZWFjaCBjaGlsZCBub2RlIHdpdGggaXRzIHBvc2l0aW9uIChmb3IgbnRoIGNhbGxzKQogICAgLy8gIm9mVHlwZSIgZmxhZyBpbmRpY2F0ZXMgd2hldGhlciB3ZSdyZSBpbmRleGluZyBmb3IgbnRoLW9mLXR5cGUKICAgIC8vIHJhdGhlciB0aGFuIG50aC1jaGlsZAogICAgaW5kZXg6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIHJldmVyc2UsIG9mVHlwZSkgewogICAgICBwYXJlbnROb2RlLl9jb3VudGVkQnlQcm90b3R5cGUgPSBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsKICAgICAgaWYgKHJldmVyc2UpIHsKICAgICAgICBmb3IgKHZhciBub2RlcyA9IHBhcmVudE5vZGUuY2hpbGROb2RlcywgaSA9IG5vZGVzLmxlbmd0aCAtIDEsIGogPSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgdmFyIG5vZGUgPSBub2Rlc1tpXTsKICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEgJiYgKCFvZlR5cGUgfHwgbm9kZS5fY291bnRlZEJ5UHJvdG90eXBlKSkgbm9kZS5ub2RlSW5kZXggPSBqKys7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGZvciAodmFyIGkgPSAwLCBqID0gMSwgbm9kZXMgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXM7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiAoIW9mVHlwZSB8fCBub2RlLl9jb3VudGVkQnlQcm90b3R5cGUpKSBub2RlLm5vZGVJbmRleCA9IGorKzsKICAgICAgfQogICAgfSwKCiAgICAvLyBmaWx0ZXJzIG91dCBkdXBsaWNhdGVzIGFuZCBleHRlbmRzIGFsbCBub2RlcwogICAgdW5pcXVlOiBmdW5jdGlvbihub2RlcykgewogICAgICBpZiAobm9kZXMubGVuZ3RoID09IDApIHJldHVybiBub2RlczsKICAgICAgdmFyIHJlc3VsdHMgPSBbXSwgbjsKICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBub2Rlcy5sZW5ndGg7IGkgPCBsOyBpKyspCiAgICAgICAgaWYgKCEobiA9IG5vZGVzW2ldKS5fY291bnRlZEJ5UHJvdG90eXBlKSB7CiAgICAgICAgICBuLl9jb3VudGVkQnlQcm90b3R5cGUgPSBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsKICAgICAgICAgIHJlc3VsdHMucHVzaChFbGVtZW50LmV4dGVuZChuKSk7CiAgICAgICAgfQogICAgICByZXR1cm4gU2VsZWN0b3IuaGFuZGxlcnMudW5tYXJrKHJlc3VsdHMpOwogICAgfSwKCiAgICAvLyBDT01CSU5BVE9SIEZVTkNUSU9OUwogICAgZGVzY2VuZGFudDogZnVuY3Rpb24obm9kZXMpIHsKICAgICAgdmFyIGggPSBTZWxlY3Rvci5oYW5kbGVyczsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgaC5jb25jYXQocmVzdWx0cywgbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpKTsKICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgIGNoaWxkOiBmdW5jdGlvbihub2RlcykgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykgewogICAgICAgIGZvciAodmFyIGogPSAwLCBjaGlsZDsgY2hpbGQgPSBub2RlLmNoaWxkTm9kZXNbal07IGorKykKICAgICAgICAgIGlmIChjaGlsZC5ub2RlVHlwZSA9PSAxICYmIGNoaWxkLnRhZ05hbWUgIT0gJyEnKSByZXN1bHRzLnB1c2goY2hpbGQpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKCiAgICBhZGphY2VudDogZnVuY3Rpb24obm9kZXMpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICB2YXIgbmV4dCA9IHRoaXMubmV4dEVsZW1lbnRTaWJsaW5nKG5vZGUpOwogICAgICAgIGlmIChuZXh0KSByZXN1bHRzLnB1c2gobmV4dCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgIGxhdGVyU2libGluZzogZnVuY3Rpb24obm9kZXMpIHsKICAgICAgdmFyIGggPSBTZWxlY3Rvci5oYW5kbGVyczsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgaC5jb25jYXQocmVzdWx0cywgRWxlbWVudC5uZXh0U2libGluZ3Mobm9kZSkpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgbmV4dEVsZW1lbnRTaWJsaW5nOiBmdW5jdGlvbihub2RlKSB7CiAgICAgIHdoaWxlIChub2RlID0gbm9kZS5uZXh0U2libGluZykKCSAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEpIHJldHVybiBub2RlOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0sCgogICAgcHJldmlvdXNFbGVtZW50U2libGluZzogZnVuY3Rpb24obm9kZSkgewogICAgICB3aGlsZSAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nKQogICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEpIHJldHVybiBub2RlOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0sCgogICAgLy8gVE9LRU4gRlVOQ1RJT05TCiAgICB0YWdOYW1lOiBmdW5jdGlvbihub2Rlcywgcm9vdCwgdGFnTmFtZSwgY29tYmluYXRvcikgewogICAgICB2YXIgdVRhZ05hbWUgPSB0YWdOYW1lLnRvVXBwZXJDYXNlKCk7CiAgICAgIHZhciByZXN1bHRzID0gW10sIGggPSBTZWxlY3Rvci5oYW5kbGVyczsKICAgICAgaWYgKG5vZGVzKSB7CiAgICAgICAgaWYgKGNvbWJpbmF0b3IpIHsKICAgICAgICAgIC8vIGZhc3RsYW5lIGZvciBvcmRpbmFyeSBkZXNjZW5kYW50IGNvbWJpbmF0b3JzCiAgICAgICAgICBpZiAoY29tYmluYXRvciA9PSAiZGVzY2VuZGFudCIpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgICAgIGguY29uY2F0KHJlc3VsdHMsIG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnTmFtZSkpOwogICAgICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgICAgIH0gZWxzZSBub2RlcyA9IHRoaXNbY29tYmluYXRvcl0obm9kZXMpOwogICAgICAgICAgaWYgKHRhZ05hbWUgPT0gIioiKSByZXR1cm4gbm9kZXM7CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICAgIGlmIChub2RlLnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PT0gdVRhZ05hbWUpIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgfSBlbHNlIHJldHVybiByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUpOwogICAgfSwKCiAgICBpZDogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGlkLCBjb21iaW5hdG9yKSB7CiAgICAgIHZhciB0YXJnZXROb2RlID0gJChpZCksIGggPSBTZWxlY3Rvci5oYW5kbGVyczsKICAgICAgaWYgKCF0YXJnZXROb2RlKSByZXR1cm4gW107CiAgICAgIGlmICghbm9kZXMgJiYgcm9vdCA9PSBkb2N1bWVudCkgcmV0dXJuIFt0YXJnZXROb2RlXTsKICAgICAgaWYgKG5vZGVzKSB7CiAgICAgICAgaWYgKGNvbWJpbmF0b3IpIHsKICAgICAgICAgIGlmIChjb21iaW5hdG9yID09ICdjaGlsZCcpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgICAgIGlmICh0YXJnZXROb2RlLnBhcmVudE5vZGUgPT0gbm9kZSkgcmV0dXJuIFt0YXJnZXROb2RlXTsKICAgICAgICAgIH0gZWxzZSBpZiAoY29tYmluYXRvciA9PSAnZGVzY2VuZGFudCcpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgICAgIGlmIChFbGVtZW50LmRlc2NlbmRhbnRPZih0YXJnZXROb2RlLCBub2RlKSkgcmV0dXJuIFt0YXJnZXROb2RlXTsKICAgICAgICAgIH0gZWxzZSBpZiAoY29tYmluYXRvciA9PSAnYWRqYWNlbnQnKSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICAgICAgICBpZiAoU2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyh0YXJnZXROb2RlKSA9PSBub2RlKQogICAgICAgICAgICAgICAgcmV0dXJuIFt0YXJnZXROb2RlXTsKICAgICAgICAgIH0gZWxzZSBub2RlcyA9IGhbY29tYmluYXRvcl0obm9kZXMpOwogICAgICAgIH0KICAgICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgICBpZiAobm9kZSA9PSB0YXJnZXROb2RlKSByZXR1cm4gW3RhcmdldE5vZGVdOwogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgICByZXR1cm4gKHRhcmdldE5vZGUgJiYgRWxlbWVudC5kZXNjZW5kYW50T2YodGFyZ2V0Tm9kZSwgcm9vdCkpID8gW3RhcmdldE5vZGVdIDogW107CiAgICB9LAoKICAgIGNsYXNzTmFtZTogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGNsYXNzTmFtZSwgY29tYmluYXRvcikgewogICAgICBpZiAobm9kZXMgJiYgY29tYmluYXRvcikgbm9kZXMgPSB0aGlzW2NvbWJpbmF0b3JdKG5vZGVzKTsKICAgICAgcmV0dXJuIFNlbGVjdG9yLmhhbmRsZXJzLmJ5Q2xhc3NOYW1lKG5vZGVzLCByb290LCBjbGFzc05hbWUpOwogICAgfSwKCiAgICBieUNsYXNzTmFtZTogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGNsYXNzTmFtZSkgewogICAgICBpZiAoIW5vZGVzKSBub2RlcyA9IFNlbGVjdG9yLmhhbmRsZXJzLmRlc2NlbmRhbnQoW3Jvb3RdKTsKICAgICAgdmFyIG5lZWRsZSA9ICcgJyArIGNsYXNzTmFtZSArICcgJzsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZSwgbm9kZUNsYXNzTmFtZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICBub2RlQ2xhc3NOYW1lID0gbm9kZS5jbGFzc05hbWU7CiAgICAgICAgaWYgKG5vZGVDbGFzc05hbWUubGVuZ3RoID09IDApIGNvbnRpbnVlOwogICAgICAgIGlmIChub2RlQ2xhc3NOYW1lID09IGNsYXNzTmFtZSB8fCAoJyAnICsgbm9kZUNsYXNzTmFtZSArICcgJykuaW5jbHVkZShuZWVkbGUpKQogICAgICAgICAgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKCiAgICBhdHRyUHJlc2VuY2U6IGZ1bmN0aW9uKG5vZGVzLCByb290LCBhdHRyLCBjb21iaW5hdG9yKSB7CiAgICAgIGlmICghbm9kZXMpIG5vZGVzID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOwogICAgICBpZiAobm9kZXMgJiYgY29tYmluYXRvcikgbm9kZXMgPSB0aGlzW2NvbWJpbmF0b3JdKG5vZGVzKTsKICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIGlmIChFbGVtZW50Lmhhc0F0dHJpYnV0ZShub2RlLCBhdHRyKSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgYXR0cjogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGF0dHIsIHZhbHVlLCBvcGVyYXRvciwgY29tYmluYXRvcikgewogICAgICBpZiAoIW5vZGVzKSBub2RlcyA9IHJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTsKICAgICAgaWYgKG5vZGVzICYmIGNvbWJpbmF0b3IpIG5vZGVzID0gdGhpc1tjb21iaW5hdG9yXShub2Rlcyk7CiAgICAgIHZhciBoYW5kbGVyID0gU2VsZWN0b3Iub3BlcmF0b3JzW29wZXJhdG9yXSwgcmVzdWx0cyA9IFtdOwogICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICB2YXIgbm9kZVZhbHVlID0gRWxlbWVudC5yZWFkQXR0cmlidXRlKG5vZGUsIGF0dHIpOwogICAgICAgIGlmIChub2RlVmFsdWUgPT09IG51bGwpIGNvbnRpbnVlOwogICAgICAgIGlmIChoYW5kbGVyKG5vZGVWYWx1ZSwgdmFsdWUpKSByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgIHBzZXVkbzogZnVuY3Rpb24obm9kZXMsIG5hbWUsIHZhbHVlLCByb290LCBjb21iaW5hdG9yKSB7CiAgICAgIGlmIChub2RlcyAmJiBjb21iaW5hdG9yKSBub2RlcyA9IHRoaXNbY29tYmluYXRvcl0obm9kZXMpOwogICAgICBpZiAoIW5vZGVzKSBub2RlcyA9IHJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTsKICAgICAgcmV0dXJuIFNlbGVjdG9yLnBzZXVkb3NbbmFtZV0obm9kZXMsIHZhbHVlLCByb290KTsKICAgIH0KICB9LAoKICBwc2V1ZG9zOiB7CiAgICAnZmlyc3QtY2hpbGQnOiBmdW5jdGlvbihub2RlcywgdmFsdWUsIHJvb3QpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICBpZiAoU2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyhub2RlKSkgY29udGludWU7CiAgICAgICAgICByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAogICAgJ2xhc3QtY2hpbGQnOiBmdW5jdGlvbihub2RlcywgdmFsdWUsIHJvb3QpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICBpZiAoU2VsZWN0b3IuaGFuZGxlcnMubmV4dEVsZW1lbnRTaWJsaW5nKG5vZGUpKSBjb250aW51ZTsKICAgICAgICAgIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCiAgICAnb25seS1jaGlsZCc6IGZ1bmN0aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBpZiAoIWgucHJldmlvdXNFbGVtZW50U2libGluZyhub2RlKSAmJiAhaC5uZXh0RWxlbWVudFNpYmxpbmcobm9kZSkpCiAgICAgICAgICByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKICAgICdudGgtY2hpbGQnOiAgICAgICAgZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QpIHsKICAgICAgcmV0dXJuIFNlbGVjdG9yLnBzZXVkb3MubnRoKG5vZGVzLCBmb3JtdWxhLCByb290KTsKICAgIH0sCiAgICAnbnRoLWxhc3QtY2hpbGQnOiAgIGZ1bmN0aW9uKG5vZGVzLCBmb3JtdWxhLCByb290KSB7CiAgICAgIHJldHVybiBTZWxlY3Rvci5wc2V1ZG9zLm50aChub2RlcywgZm9ybXVsYSwgcm9vdCwgdHJ1ZSk7CiAgICB9LAogICAgJ250aC1vZi10eXBlJzogICAgICBmdW5jdGlvbihub2RlcywgZm9ybXVsYSwgcm9vdCkgewogICAgICByZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsIGZvcm11bGEsIHJvb3QsIGZhbHNlLCB0cnVlKTsKICAgIH0sCiAgICAnbnRoLWxhc3Qtb2YtdHlwZSc6IGZ1bmN0aW9uKG5vZGVzLCBmb3JtdWxhLCByb290KSB7CiAgICAgIHJldHVybiBTZWxlY3Rvci5wc2V1ZG9zLm50aChub2RlcywgZm9ybXVsYSwgcm9vdCwgdHJ1ZSwgdHJ1ZSk7CiAgICB9LAogICAgJ2ZpcnN0LW9mLXR5cGUnOiAgICBmdW5jdGlvbihub2RlcywgZm9ybXVsYSwgcm9vdCkgewogICAgICByZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsICIxIiwgcm9vdCwgZmFsc2UsIHRydWUpOwogICAgfSwKICAgICdsYXN0LW9mLXR5cGUnOiAgICAgZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QpIHsKICAgICAgcmV0dXJuIFNlbGVjdG9yLnBzZXVkb3MubnRoKG5vZGVzLCAiMSIsIHJvb3QsIHRydWUsIHRydWUpOwogICAgfSwKICAgICdvbmx5LW9mLXR5cGUnOiAgICAgZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QpIHsKICAgICAgdmFyIHAgPSBTZWxlY3Rvci5wc2V1ZG9zOwogICAgICByZXR1cm4gcFsnbGFzdC1vZi10eXBlJ10ocFsnZmlyc3Qtb2YtdHlwZSddKG5vZGVzLCBmb3JtdWxhLCByb290KSwgZm9ybXVsYSwgcm9vdCk7CiAgICB9LAoKICAgIC8vIGhhbmRsZXMgdGhlIGFuK2IgbG9naWMKICAgIGdldEluZGljZXM6IGZ1bmN0aW9uKGEsIGIsIHRvdGFsKSB7CiAgICAgIGlmIChhID09IDApIHJldHVybiBiID4gMCA/IFtiXSA6IFtdOwogICAgICByZXR1cm4gJFIoMSwgdG90YWwpLmluamVjdChbXSwgZnVuY3Rpb24obWVtbywgaSkgewogICAgICAgIGlmICgwID09IChpIC0gYikgJSBhICYmIChpIC0gYikgLyBhID49IDApIG1lbW8ucHVzaChpKTsKICAgICAgICByZXR1cm4gbWVtbzsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIGhhbmRsZXMgbnRoKC1sYXN0KS1jaGlsZCwgbnRoKC1sYXN0KS1vZi10eXBlLCBhbmQgKGZpcnN0fGxhc3QpLW9mLXR5cGUKICAgIG50aDogZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QsIHJldmVyc2UsIG9mVHlwZSkgewogICAgICBpZiAobm9kZXMubGVuZ3RoID09IDApIHJldHVybiBbXTsKICAgICAgaWYgKGZvcm11bGEgPT0gJ2V2ZW4nKSBmb3JtdWxhID0gJzJuKzAnOwogICAgICBpZiAoZm9ybXVsYSA9PSAnb2RkJykgIGZvcm11bGEgPSAnMm4rMSc7CiAgICAgIHZhciBoID0gU2VsZWN0b3IuaGFuZGxlcnMsIHJlc3VsdHMgPSBbXSwgaW5kZXhlZCA9IFtdLCBtOwogICAgICBoLm1hcmsobm9kZXMpOwogICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICBpZiAoIW5vZGUucGFyZW50Tm9kZS5fY291bnRlZEJ5UHJvdG90eXBlKSB7CiAgICAgICAgICBoLmluZGV4KG5vZGUucGFyZW50Tm9kZSwgcmV2ZXJzZSwgb2ZUeXBlKTsKICAgICAgICAgIGluZGV4ZWQucHVzaChub2RlLnBhcmVudE5vZGUpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoZm9ybXVsYS5tYXRjaCgvXlxkKyQvKSkgeyAvLyBqdXN0IGEgbnVtYmVyCiAgICAgICAgZm9ybXVsYSA9IE51bWJlcihmb3JtdWxhKTsKICAgICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgICBpZiAobm9kZS5ub2RlSW5kZXggPT0gZm9ybXVsYSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICB9IGVsc2UgaWYgKG0gPSBmb3JtdWxhLm1hdGNoKC9eKC0/XGQqKT9uKChbKy1dKShcZCspKT8vKSkgeyAvLyBhbitiCiAgICAgICAgaWYgKG1bMV0gPT0gIi0iKSBtWzFdID0gLTE7CiAgICAgICAgdmFyIGEgPSBtWzFdID8gTnVtYmVyKG1bMV0pIDogMTsKICAgICAgICB2YXIgYiA9IG1bMl0gPyBOdW1iZXIobVsyXSkgOiAwOwogICAgICAgIHZhciBpbmRpY2VzID0gU2VsZWN0b3IucHNldWRvcy5nZXRJbmRpY2VzKGEsIGIsIG5vZGVzLmxlbmd0aCk7CiAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGUsIGwgPSBpbmRpY2VzLmxlbmd0aDsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbDsgaisrKQogICAgICAgICAgICBpZiAobm9kZS5ub2RlSW5kZXggPT0gaW5kaWNlc1tqXSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICAgIH0KICAgICAgfQogICAgICBoLnVubWFyayhub2Rlcyk7CiAgICAgIGgudW5tYXJrKGluZGV4ZWQpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgJ2VtcHR5JzogZnVuY3Rpb24obm9kZXMsIHZhbHVlLCByb290KSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCByZXN1bHRzID0gW10sIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKSB7CiAgICAgICAgLy8gSUUgdHJlYXRzIGNvbW1lbnRzIGFzIGVsZW1lbnQgbm9kZXMKICAgICAgICBpZiAobm9kZS50YWdOYW1lID09ICchJyB8fCAobm9kZS5maXJzdENoaWxkICYmICFub2RlLmlubmVySFRNTC5tYXRjaCgvXlxzKiQvKSkpIGNvbnRpbnVlOwogICAgICAgIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgJ25vdCc6IGZ1bmN0aW9uKG5vZGVzLCBzZWxlY3Rvciwgcm9vdCkgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLmhhbmRsZXJzLCBzZWxlY3RvclR5cGUsIG07CiAgICAgIHZhciBleGNsdXNpb25zID0gbmV3IFNlbGVjdG9yKHNlbGVjdG9yKS5maW5kRWxlbWVudHMocm9vdCk7CiAgICAgIGgubWFyayhleGNsdXNpb25zKTsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgaWYgKCFub2RlLl9jb3VudGVkQnlQcm90b3R5cGUpIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgaC51bm1hcmsoZXhjbHVzaW9ucyk7CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKCiAgICAnZW5hYmxlZCc6IGZ1bmN0aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkgewogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBpZiAoIW5vZGUuZGlzYWJsZWQpIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgICdkaXNhYmxlZCc6IGZ1bmN0aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkgewogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBpZiAobm9kZS5kaXNhYmxlZCkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgJ2NoZWNrZWQnOiBmdW5jdGlvbihub2RlcywgdmFsdWUsIHJvb3QpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgaWYgKG5vZGUuY2hlY2tlZCkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0KICB9LAoKICBvcGVyYXRvcnM6IHsKICAgICc9JzogIGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiBudiA9PSB2OyB9LAogICAgJyE9JzogZnVuY3Rpb24obnYsIHYpIHsgcmV0dXJuIG52ICE9IHY7IH0sCiAgICAnXj0nOiBmdW5jdGlvbihudiwgdikgeyByZXR1cm4gbnYuc3RhcnRzV2l0aCh2KTsgfSwKICAgICckPSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiBudi5lbmRzV2l0aCh2KTsgfSwKICAgICcqPSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiBudi5pbmNsdWRlKHYpOyB9LAogICAgJ349JzogZnVuY3Rpb24obnYsIHYpIHsgcmV0dXJuICgnICcgKyBudiArICcgJykuaW5jbHVkZSgnICcgKyB2ICsgJyAnKTsgfSwKICAgICd8PSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiAoJy0nICsgbnYudG9VcHBlckNhc2UoKSArICctJykuaW5jbHVkZSgnLScgKyB2LnRvVXBwZXJDYXNlKCkgKyAnLScpOyB9CiAgfSwKCiAgc3BsaXQ6IGZ1bmN0aW9uKGV4cHJlc3Npb24pIHsKICAgIHZhciBleHByZXNzaW9ucyA9IFtdOwogICAgZXhwcmVzc2lvbi5zY2FuKC8oKFtcdyM6Ln4+KygpXHMtXSt8XCp8XFsuKj9cXSkrKVxzKigsfCQpLywgZnVuY3Rpb24obSkgewogICAgICBleHByZXNzaW9ucy5wdXNoKG1bMV0uc3RyaXAoKSk7CiAgICB9KTsKICAgIHJldHVybiBleHByZXNzaW9uczsKICB9LAoKICBtYXRjaEVsZW1lbnRzOiBmdW5jdGlvbihlbGVtZW50cywgZXhwcmVzc2lvbikgewogICAgdmFyIG1hdGNoZXMgPSAkJChleHByZXNzaW9uKSwgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwogICAgaC5tYXJrKG1hdGNoZXMpOwogICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnRzW2ldOyBpKyspCiAgICAgIGlmIChlbGVtZW50Ll9jb3VudGVkQnlQcm90b3R5cGUpIHJlc3VsdHMucHVzaChlbGVtZW50KTsKICAgIGgudW5tYXJrKG1hdGNoZXMpOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgZmluZEVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnRzLCBleHByZXNzaW9uLCBpbmRleCkgewogICAgaWYgKE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSkgewogICAgICBpbmRleCA9IGV4cHJlc3Npb247IGV4cHJlc3Npb24gPSBmYWxzZTsKICAgIH0KICAgIHJldHVybiBTZWxlY3Rvci5tYXRjaEVsZW1lbnRzKGVsZW1lbnRzLCBleHByZXNzaW9uIHx8ICcqJylbaW5kZXggfHwgMF07CiAgfSwKCiAgZmluZENoaWxkRWxlbWVudHM6IGZ1bmN0aW9uKGVsZW1lbnQsIGV4cHJlc3Npb25zKSB7CiAgICBleHByZXNzaW9ucyA9IFNlbGVjdG9yLnNwbGl0KGV4cHJlc3Npb25zLmpvaW4oJywnKSk7CiAgICB2YXIgcmVzdWx0cyA9IFtdLCBoID0gU2VsZWN0b3IuaGFuZGxlcnM7CiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGV4cHJlc3Npb25zLmxlbmd0aCwgc2VsZWN0b3I7IGkgPCBsOyBpKyspIHsKICAgICAgc2VsZWN0b3IgPSBuZXcgU2VsZWN0b3IoZXhwcmVzc2lvbnNbaV0uc3RyaXAoKSk7CiAgICAgIGguY29uY2F0KHJlc3VsdHMsIHNlbGVjdG9yLmZpbmRFbGVtZW50cyhlbGVtZW50KSk7CiAgICB9CiAgICByZXR1cm4gKGwgPiAxKSA/IGgudW5pcXVlKHJlc3VsdHMpIDogcmVzdWx0czsKICB9Cn0pOwoKaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFKSB7CiAgT2JqZWN0LmV4dGVuZChTZWxlY3Rvci5oYW5kbGVycywgewogICAgLy8gSUUgcmV0dXJucyBjb21tZW50IG5vZGVzIG9uIGdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikuCiAgICAvLyBGaWx0ZXIgdGhlbSBvdXQuCiAgICBjb25jYXQ6IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBiW2ldOyBpKyspCiAgICAgICAgaWYgKG5vZGUudGFnTmFtZSAhPT0gIiEiKSBhLnB1c2gobm9kZSk7CiAgICAgIHJldHVybiBhOwogICAgfSwKCiAgICAvLyBJRSBpbXByb3Blcmx5IHNlcmlhbGl6ZXMgX2NvdW50ZWRCeVByb3RvdHlwZSBpbiAoaW5uZXJ8b3V0ZXIpSFRNTC4KICAgIHVubWFyazogZnVuY3Rpb24obm9kZXMpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCdfY291bnRlZEJ5UHJvdG90eXBlJyk7CiAgICAgIHJldHVybiBub2RlczsKICAgIH0KICB9KTsKfQoKZnVuY3Rpb24gJCQoKSB7CiAgcmV0dXJuIFNlbGVjdG9yLmZpbmRDaGlsZEVsZW1lbnRzKGRvY3VtZW50LCAkQShhcmd1bWVudHMpKTsKfQp2YXIgRm9ybSA9IHsKICByZXNldDogZnVuY3Rpb24oZm9ybSkgewogICAgJChmb3JtKS5yZXNldCgpOwogICAgcmV0dXJuIGZvcm07CiAgfSwKCiAgc2VyaWFsaXplRWxlbWVudHM6IGZ1bmN0aW9uKGVsZW1lbnRzLCBvcHRpb25zKSB7CiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT0gJ29iamVjdCcpIG9wdGlvbnMgPSB7IGhhc2g6ICEhb3B0aW9ucyB9OwogICAgZWxzZSBpZiAoT2JqZWN0LmlzVW5kZWZpbmVkKG9wdGlvbnMuaGFzaCkpIG9wdGlvbnMuaGFzaCA9IHRydWU7CiAgICB2YXIga2V5LCB2YWx1ZSwgc3VibWl0dGVkID0gZmFsc2UsIHN1Ym1pdCA9IG9wdGlvbnMuc3VibWl0OwoKICAgIHZhciBkYXRhID0gZWxlbWVudHMuaW5qZWN0KHsgfSwgZnVuY3Rpb24ocmVzdWx0LCBlbGVtZW50KSB7CiAgICAgIGlmICghZWxlbWVudC5kaXNhYmxlZCAmJiBlbGVtZW50Lm5hbWUpIHsKICAgICAgICBrZXkgPSBlbGVtZW50Lm5hbWU7IHZhbHVlID0gJChlbGVtZW50KS5nZXRWYWx1ZSgpOwogICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIChlbGVtZW50LnR5cGUgIT0gJ3N1Ym1pdCcgfHwgKCFzdWJtaXR0ZWQgJiYKICAgICAgICAgICAgc3VibWl0ICE9PSBmYWxzZSAmJiAoIXN1Ym1pdCB8fCBrZXkgPT0gc3VibWl0KSAmJiAoc3VibWl0dGVkID0gdHJ1ZSkpKSkgewogICAgICAgICAgaWYgKGtleSBpbiByZXN1bHQpIHsKICAgICAgICAgICAgLy8gYSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50OyBjb25zdHJ1Y3QgYW4gYXJyYXkgb2YgdmFsdWVzCiAgICAgICAgICAgIGlmICghT2JqZWN0LmlzQXJyYXkocmVzdWx0W2tleV0pKSByZXN1bHRba2V5XSA9IFtyZXN1bHRba2V5XV07CiAgICAgICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSByZXN1bHRba2V5XSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0OwogICAgfSk7CgogICAgcmV0dXJuIG9wdGlvbnMuaGFzaCA/IGRhdGEgOiBPYmplY3QudG9RdWVyeVN0cmluZyhkYXRhKTsKICB9Cn07CgpGb3JtLk1ldGhvZHMgPSB7CiAgc2VyaWFsaXplOiBmdW5jdGlvbihmb3JtLCBvcHRpb25zKSB7CiAgICByZXR1cm4gRm9ybS5zZXJpYWxpemVFbGVtZW50cyhGb3JtLmdldEVsZW1lbnRzKGZvcm0pLCBvcHRpb25zKTsKICB9LAoKICBnZXRFbGVtZW50czogZnVuY3Rpb24oZm9ybSkgewogICAgcmV0dXJuICRBKCQoZm9ybSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyonKSkuaW5qZWN0KFtdLAogICAgICBmdW5jdGlvbihlbGVtZW50cywgY2hpbGQpIHsKICAgICAgICBpZiAoRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzW2NoaWxkLnRhZ05hbWUudG9Mb3dlckNhc2UoKV0pCiAgICAgICAgICBlbGVtZW50cy5wdXNoKEVsZW1lbnQuZXh0ZW5kKGNoaWxkKSk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnRzOwogICAgICB9CiAgICApOwogIH0sCgogIGdldElucHV0czogZnVuY3Rpb24oZm9ybSwgdHlwZU5hbWUsIG5hbWUpIHsKICAgIGZvcm0gPSAkKGZvcm0pOwogICAgdmFyIGlucHV0cyA9IGZvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7CgogICAgaWYgKCF0eXBlTmFtZSAmJiAhbmFtZSkgcmV0dXJuICRBKGlucHV0cykubWFwKEVsZW1lbnQuZXh0ZW5kKTsKCiAgICBmb3IgKHZhciBpID0gMCwgbWF0Y2hpbmdJbnB1dHMgPSBbXSwgbGVuZ3RoID0gaW5wdXRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBpbnB1dCA9IGlucHV0c1tpXTsKICAgICAgaWYgKCh0eXBlTmFtZSAmJiBpbnB1dC50eXBlICE9IHR5cGVOYW1lKSB8fCAobmFtZSAmJiBpbnB1dC5uYW1lICE9IG5hbWUpKQogICAgICAgIGNvbnRpbnVlOwogICAgICBtYXRjaGluZ0lucHV0cy5wdXNoKEVsZW1lbnQuZXh0ZW5kKGlucHV0KSk7CiAgICB9CgogICAgcmV0dXJuIG1hdGNoaW5nSW5wdXRzOwogIH0sCgogIGRpc2FibGU6IGZ1bmN0aW9uKGZvcm0pIHsKICAgIGZvcm0gPSAkKGZvcm0pOwogICAgRm9ybS5nZXRFbGVtZW50cyhmb3JtKS5pbnZva2UoJ2Rpc2FibGUnKTsKICAgIHJldHVybiBmb3JtOwogIH0sCgogIGVuYWJsZTogZnVuY3Rpb24oZm9ybSkgewogICAgZm9ybSA9ICQoZm9ybSk7CiAgICBGb3JtLmdldEVsZW1lbnRzKGZvcm0pLmludm9rZSgnZW5hYmxlJyk7CiAgICByZXR1cm4gZm9ybTsKICB9LAoKICBmaW5kRmlyc3RFbGVtZW50OiBmdW5jdGlvbihmb3JtKSB7CiAgICB2YXIgZWxlbWVudHMgPSAkKGZvcm0pLmdldEVsZW1lbnRzKCkuZmluZEFsbChmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgIHJldHVybiAnaGlkZGVuJyAhPSBlbGVtZW50LnR5cGUgJiYgIWVsZW1lbnQuZGlzYWJsZWQ7CiAgICB9KTsKICAgIHZhciBmaXJzdEJ5SW5kZXggPSBlbGVtZW50cy5maW5kQWxsKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKCd0YWJJbmRleCcpICYmIGVsZW1lbnQudGFiSW5kZXggPj0gMDsKICAgIH0pLnNvcnRCeShmdW5jdGlvbihlbGVtZW50KSB7IHJldHVybiBlbGVtZW50LnRhYkluZGV4IH0pLmZpcnN0KCk7CgogICAgcmV0dXJuIGZpcnN0QnlJbmRleCA/IGZpcnN0QnlJbmRleCA6IGVsZW1lbnRzLmZpbmQoZnVuY3Rpb24oZWxlbWVudCkgewogICAgICByZXR1cm4gWydpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnXS5pbmNsdWRlKGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKTsKICAgIH0pOwogIH0sCgogIGZvY3VzRmlyc3RFbGVtZW50OiBmdW5jdGlvbihmb3JtKSB7CiAgICBmb3JtID0gJChmb3JtKTsKICAgIGZvcm0uZmluZEZpcnN0RWxlbWVudCgpLmFjdGl2YXRlKCk7CiAgICByZXR1cm4gZm9ybTsKICB9LAoKICByZXF1ZXN0OiBmdW5jdGlvbihmb3JtLCBvcHRpb25zKSB7CiAgICBmb3JtID0gJChmb3JtKSwgb3B0aW9ucyA9IE9iamVjdC5jbG9uZShvcHRpb25zIHx8IHsgfSk7CgogICAgdmFyIHBhcmFtcyA9IG9wdGlvbnMucGFyYW1ldGVycywgYWN0aW9uID0gZm9ybS5yZWFkQXR0cmlidXRlKCdhY3Rpb24nKSB8fCAnJzsKICAgIGlmIChhY3Rpb24uYmxhbmsoKSkgYWN0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICBvcHRpb25zLnBhcmFtZXRlcnMgPSBmb3JtLnNlcmlhbGl6ZSh0cnVlKTsKCiAgICBpZiAocGFyYW1zKSB7CiAgICAgIGlmIChPYmplY3QuaXNTdHJpbmcocGFyYW1zKSkgcGFyYW1zID0gcGFyYW1zLnRvUXVlcnlQYXJhbXMoKTsKICAgICAgT2JqZWN0LmV4dGVuZChvcHRpb25zLnBhcmFtZXRlcnMsIHBhcmFtcyk7CiAgICB9CgogICAgaWYgKGZvcm0uaGFzQXR0cmlidXRlKCdtZXRob2QnKSAmJiAhb3B0aW9ucy5tZXRob2QpCiAgICAgIG9wdGlvbnMubWV0aG9kID0gZm9ybS5tZXRob2Q7CgogICAgcmV0dXJuIG5ldyBBamF4LlJlcXVlc3QoYWN0aW9uLCBvcHRpb25zKTsKICB9Cn07CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCkZvcm0uRWxlbWVudCA9IHsKICBmb2N1czogZnVuY3Rpb24oZWxlbWVudCkgewogICAgJChlbGVtZW50KS5mb2N1cygpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgc2VsZWN0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAkKGVsZW1lbnQpLnNlbGVjdCgpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfQp9OwoKRm9ybS5FbGVtZW50Lk1ldGhvZHMgPSB7CiAgc2VyaWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmICghZWxlbWVudC5kaXNhYmxlZCAmJiBlbGVtZW50Lm5hbWUpIHsKICAgICAgdmFyIHZhbHVlID0gZWxlbWVudC5nZXRWYWx1ZSgpOwogICAgICBpZiAodmFsdWUgIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdmFyIHBhaXIgPSB7IH07CiAgICAgICAgcGFpcltlbGVtZW50Lm5hbWVdID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIE9iamVjdC50b1F1ZXJ5U3RyaW5nKHBhaXIpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gJyc7CiAgfSwKCiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIG1ldGhvZCA9IGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpOwogICAgcmV0dXJuIEZvcm0uRWxlbWVudC5TZXJpYWxpemVyc1ttZXRob2RdKGVsZW1lbnQpOwogIH0sCgogIHNldFZhbHVlOiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgbWV0aG9kID0gZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnNbbWV0aG9kXShlbGVtZW50LCB2YWx1ZSk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBjbGVhcjogZnVuY3Rpb24oZWxlbWVudCkgewogICAgJChlbGVtZW50KS52YWx1ZSA9ICcnOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgcHJlc2VudDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkudmFsdWUgIT0gJyc7CiAgfSwKCiAgYWN0aXZhdGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdHJ5IHsKICAgICAgZWxlbWVudC5mb2N1cygpOwogICAgICBpZiAoZWxlbWVudC5zZWxlY3QgJiYgKGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9ICdpbnB1dCcgfHwKICAgICAgICAgICFbJ2J1dHRvbicsICdyZXNldCcsICdzdWJtaXQnXS5pbmNsdWRlKGVsZW1lbnQudHlwZSkpKQogICAgICAgIGVsZW1lbnQuc2VsZWN0KCk7CiAgICB9IGNhdGNoIChlKSB7IH0KICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGRpc2FibGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZWxlbWVudC5ibHVyKCk7CiAgICBlbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGVuYWJsZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CiAgICByZXR1cm4gZWxlbWVudDsKICB9Cn07CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZhciBGaWVsZCA9IEZvcm0uRWxlbWVudDsKdmFyICRGID0gRm9ybS5FbGVtZW50Lk1ldGhvZHMuZ2V0VmFsdWU7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCkZvcm0uRWxlbWVudC5TZXJpYWxpemVycyA9IHsKICBpbnB1dDogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIHN3aXRjaCAoZWxlbWVudC50eXBlLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgY2FzZSAnY2hlY2tib3gnOgogICAgICBjYXNlICdyYWRpbyc6CiAgICAgICAgcmV0dXJuIEZvcm0uRWxlbWVudC5TZXJpYWxpemVycy5pbnB1dFNlbGVjdG9yKGVsZW1lbnQsIHZhbHVlKTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzLnRleHRhcmVhKGVsZW1lbnQsIHZhbHVlKTsKICAgIH0KICB9LAoKICBpbnB1dFNlbGVjdG9yOiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAgaWYgKE9iamVjdC5pc1VuZGVmaW5lZCh2YWx1ZSkpIHJldHVybiBlbGVtZW50LmNoZWNrZWQgPyBlbGVtZW50LnZhbHVlIDogbnVsbDsKICAgIGVsc2UgZWxlbWVudC5jaGVja2VkID0gISF2YWx1ZTsKICB9LAoKICB0ZXh0YXJlYTogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIGlmIChPYmplY3QuaXNVbmRlZmluZWQodmFsdWUpKSByZXR1cm4gZWxlbWVudC52YWx1ZTsKICAgIGVsc2UgZWxlbWVudC52YWx1ZSA9IHZhbHVlOwogIH0sCgogIHNlbGVjdDogZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHsKICAgIGlmIChPYmplY3QuaXNVbmRlZmluZWQoaW5kZXgpKQogICAgICByZXR1cm4gdGhpc1tlbGVtZW50LnR5cGUgPT0gJ3NlbGVjdC1vbmUnID8KICAgICAgICAnc2VsZWN0T25lJyA6ICdzZWxlY3RNYW55J10oZWxlbWVudCk7CiAgICBlbHNlIHsKICAgICAgdmFyIG9wdCwgdmFsdWUsIHNpbmdsZSA9ICFPYmplY3QuaXNBcnJheShpbmRleCk7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBlbGVtZW50Lmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgb3B0ID0gZWxlbWVudC5vcHRpb25zW2ldOwogICAgICAgIHZhbHVlID0gdGhpcy5vcHRpb25WYWx1ZShvcHQpOwogICAgICAgIGlmIChzaW5nbGUpIHsKICAgICAgICAgIGlmICh2YWx1ZSA9PSBpbmRleCkgewogICAgICAgICAgICBvcHQuc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2Ugb3B0LnNlbGVjdGVkID0gaW5kZXguaW5jbHVkZSh2YWx1ZSk7CiAgICAgIH0KICAgIH0KICB9LAoKICBzZWxlY3RPbmU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciBpbmRleCA9IGVsZW1lbnQuc2VsZWN0ZWRJbmRleDsKICAgIHJldHVybiBpbmRleCA+PSAwID8gdGhpcy5vcHRpb25WYWx1ZShlbGVtZW50Lm9wdGlvbnNbaW5kZXhdKSA6IG51bGw7CiAgfSwKCiAgc2VsZWN0TWFueTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlcywgbGVuZ3RoID0gZWxlbWVudC5sZW5ndGg7CiAgICBpZiAoIWxlbmd0aCkgcmV0dXJuIG51bGw7CgogICAgZm9yICh2YXIgaSA9IDAsIHZhbHVlcyA9IFtdOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIG9wdCA9IGVsZW1lbnQub3B0aW9uc1tpXTsKICAgICAgaWYgKG9wdC5zZWxlY3RlZCkgdmFsdWVzLnB1c2godGhpcy5vcHRpb25WYWx1ZShvcHQpKTsKICAgIH0KICAgIHJldHVybiB2YWx1ZXM7CiAgfSwKCiAgb3B0aW9uVmFsdWU6IGZ1bmN0aW9uKG9wdCkgewogICAgLy8gZXh0ZW5kIGVsZW1lbnQgYmVjYXVzZSBoYXNBdHRyaWJ1dGUgbWF5IG5vdCBiZSBuYXRpdmUKICAgIHJldHVybiBFbGVtZW50LmV4dGVuZChvcHQpLmhhc0F0dHJpYnV0ZSgndmFsdWUnKSA/IG9wdC52YWx1ZSA6IG9wdC50ZXh0OwogIH0KfTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKQWJzdHJhY3QuVGltZWRPYnNlcnZlciA9IENsYXNzLmNyZWF0ZShQZXJpb2RpY2FsRXhlY3V0ZXIsIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbigkc3VwZXIsIGVsZW1lbnQsIGZyZXF1ZW5jeSwgY2FsbGJhY2spIHsKICAgICRzdXBlcihjYWxsYmFjaywgZnJlcXVlbmN5KTsKICAgIHRoaXMuZWxlbWVudCAgID0gJChlbGVtZW50KTsKICAgIHRoaXMubGFzdFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpOwogIH0sCgogIGV4ZWN1dGU6IGZ1bmN0aW9uKCkgewogICAgdmFyIHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpOwogICAgaWYgKE9iamVjdC5pc1N0cmluZyh0aGlzLmxhc3RWYWx1ZSkgJiYgT2JqZWN0LmlzU3RyaW5nKHZhbHVlKSA/CiAgICAgICAgdGhpcy5sYXN0VmFsdWUgIT0gdmFsdWUgOiBTdHJpbmcodGhpcy5sYXN0VmFsdWUpICE9IFN0cmluZyh2YWx1ZSkpIHsKICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLmVsZW1lbnQsIHZhbHVlKTsKICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTsKICAgIH0KICB9Cn0pOwoKRm9ybS5FbGVtZW50Lk9ic2VydmVyID0gQ2xhc3MuY3JlYXRlKEFic3RyYWN0LlRpbWVkT2JzZXJ2ZXIsIHsKICBnZXRWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gRm9ybS5FbGVtZW50LmdldFZhbHVlKHRoaXMuZWxlbWVudCk7CiAgfQp9KTsKCkZvcm0uT2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoQWJzdHJhY3QuVGltZWRPYnNlcnZlciwgewogIGdldFZhbHVlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBGb3JtLnNlcmlhbGl6ZSh0aGlzLmVsZW1lbnQpOwogIH0KfSk7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCkFic3RyYWN0LkV2ZW50T2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNhbGxiYWNrKSB7CiAgICB0aGlzLmVsZW1lbnQgID0gJChlbGVtZW50KTsKICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjazsKCiAgICB0aGlzLmxhc3RWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTsKICAgIGlmICh0aGlzLmVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICdmb3JtJykKICAgICAgdGhpcy5yZWdpc3RlckZvcm1DYWxsYmFja3MoKTsKICAgIGVsc2UKICAgICAgdGhpcy5yZWdpc3RlckNhbGxiYWNrKHRoaXMuZWxlbWVudCk7CiAgfSwKCiAgb25FbGVtZW50RXZlbnQ6IGZ1bmN0aW9uKCkgewogICAgdmFyIHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpOwogICAgaWYgKHRoaXMubGFzdFZhbHVlICE9IHZhbHVlKSB7CiAgICAgIHRoaXMuY2FsbGJhY2sodGhpcy5lbGVtZW50LCB2YWx1ZSk7CiAgICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWU7CiAgICB9CiAgfSwKCiAgcmVnaXN0ZXJGb3JtQ2FsbGJhY2tzOiBmdW5jdGlvbigpIHsKICAgIEZvcm0uZ2V0RWxlbWVudHModGhpcy5lbGVtZW50KS5lYWNoKHRoaXMucmVnaXN0ZXJDYWxsYmFjaywgdGhpcyk7CiAgfSwKCiAgcmVnaXN0ZXJDYWxsYmFjazogZnVuY3Rpb24oZWxlbWVudCkgewogICAgaWYgKGVsZW1lbnQudHlwZSkgewogICAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZS50b0xvd2VyQ2FzZSgpKSB7CiAgICAgICAgY2FzZSAnY2hlY2tib3gnOgogICAgICAgIGNhc2UgJ3JhZGlvJzoKICAgICAgICAgIEV2ZW50Lm9ic2VydmUoZWxlbWVudCwgJ2NsaWNrJywgdGhpcy5vbkVsZW1lbnRFdmVudC5iaW5kKHRoaXMpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBFdmVudC5vYnNlcnZlKGVsZW1lbnQsICdjaGFuZ2UnLCB0aGlzLm9uRWxlbWVudEV2ZW50LmJpbmQodGhpcykpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKRm9ybS5FbGVtZW50LkV2ZW50T2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoQWJzdHJhY3QuRXZlbnRPYnNlcnZlciwgewogIGdldFZhbHVlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBGb3JtLkVsZW1lbnQuZ2V0VmFsdWUodGhpcy5lbGVtZW50KTsKICB9Cn0pOwoKRm9ybS5FdmVudE9ic2VydmVyID0gQ2xhc3MuY3JlYXRlKEFic3RyYWN0LkV2ZW50T2JzZXJ2ZXIsIHsKICBnZXRWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gRm9ybS5zZXJpYWxpemUodGhpcy5lbGVtZW50KTsKICB9Cn0pOwppZiAoIXdpbmRvdy5FdmVudCkgdmFyIEV2ZW50ID0geyB9OwoKT2JqZWN0LmV4dGVuZChFdmVudCwgewogIEtFWV9CQUNLU1BBQ0U6IDgsCiAgS0VZX1RBQjogICAgICAgOSwKICBLRVlfUkVUVVJOOiAgIDEzLAogIEtFWV9FU0M6ICAgICAgMjcsCiAgS0VZX0xFRlQ6ICAgICAzNywKICBLRVlfVVA6ICAgICAgIDM4LAogIEtFWV9SSUdIVDogICAgMzksCiAgS0VZX0RPV046ICAgICA0MCwKICBLRVlfREVMRVRFOiAgIDQ2LAogIEtFWV9IT01FOiAgICAgMzYsCiAgS0VZX0VORDogICAgICAzNSwKICBLRVlfUEFHRVVQOiAgIDMzLAogIEtFWV9QQUdFRE9XTjogMzQsCiAgS0VZX0lOU0VSVDogICA0NSwKCiAgY2FjaGU6IHsgfSwKCiAgcmVsYXRlZFRhcmdldDogZnVuY3Rpb24oZXZlbnQpIHsKICAgIHZhciBlbGVtZW50OwogICAgc3dpdGNoKGV2ZW50LnR5cGUpIHsKICAgICAgY2FzZSAnbW91c2VvdmVyJzogZWxlbWVudCA9IGV2ZW50LmZyb21FbGVtZW50OyBicmVhazsKICAgICAgY2FzZSAnbW91c2VvdXQnOiAgZWxlbWVudCA9IGV2ZW50LnRvRWxlbWVudDsgICBicmVhazsKICAgICAgZGVmYXVsdDogcmV0dXJuIG51bGw7CiAgICB9CiAgICByZXR1cm4gRWxlbWVudC5leHRlbmQoZWxlbWVudCk7CiAgfQp9KTsKCkV2ZW50Lk1ldGhvZHMgPSAoZnVuY3Rpb24oKSB7CiAgdmFyIGlzQnV0dG9uOwoKICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUpIHsKICAgIHZhciBidXR0b25NYXAgPSB7IDA6IDEsIDE6IDQsIDI6IDIgfTsKICAgIGlzQnV0dG9uID0gZnVuY3Rpb24oZXZlbnQsIGNvZGUpIHsKICAgICAgcmV0dXJuIGV2ZW50LmJ1dHRvbiA9PSBidXR0b25NYXBbY29kZV07CiAgICB9OwoKICB9IGVsc2UgaWYgKFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCkgewogICAgaXNCdXR0b24gPSBmdW5jdGlvbihldmVudCwgY29kZSkgewogICAgICBzd2l0Y2ggKGNvZGUpIHsKICAgICAgICBjYXNlIDA6IHJldHVybiBldmVudC53aGljaCA9PSAxICYmICFldmVudC5tZXRhS2V5OwogICAgICAgIGNhc2UgMTogcmV0dXJuIGV2ZW50LndoaWNoID09IDEgJiYgZXZlbnQubWV0YUtleTsKICAgICAgICBkZWZhdWx0OiByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH07CgogIH0gZWxzZSB7CiAgICBpc0J1dHRvbiA9IGZ1bmN0aW9uKGV2ZW50LCBjb2RlKSB7CiAgICAgIHJldHVybiBldmVudC53aGljaCA/IChldmVudC53aGljaCA9PT0gY29kZSArIDEpIDogKGV2ZW50LmJ1dHRvbiA9PT0gY29kZSk7CiAgICB9OwogIH0KCiAgcmV0dXJuIHsKICAgIGlzTGVmdENsaWNrOiAgIGZ1bmN0aW9uKGV2ZW50KSB7IHJldHVybiBpc0J1dHRvbihldmVudCwgMCkgfSwKICAgIGlzTWlkZGxlQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KSB7IHJldHVybiBpc0J1dHRvbihldmVudCwgMSkgfSwKICAgIGlzUmlnaHRDbGljazogIGZ1bmN0aW9uKGV2ZW50KSB7IHJldHVybiBpc0J1dHRvbihldmVudCwgMikgfSwKCiAgICBlbGVtZW50OiBmdW5jdGlvbihldmVudCkgewogICAgICB2YXIgbm9kZSA9IEV2ZW50LmV4dGVuZChldmVudCkudGFyZ2V0OwogICAgICByZXR1cm4gRWxlbWVudC5leHRlbmQobm9kZS5ub2RlVHlwZSA9PSBOb2RlLlRFWFRfTk9ERSA/IG5vZGUucGFyZW50Tm9kZSA6IG5vZGUpOwogICAgfSwKCiAgICBmaW5kRWxlbWVudDogZnVuY3Rpb24oZXZlbnQsIGV4cHJlc3Npb24pIHsKICAgICAgdmFyIGVsZW1lbnQgPSBFdmVudC5lbGVtZW50KGV2ZW50KTsKICAgICAgaWYgKCFleHByZXNzaW9uKSByZXR1cm4gZWxlbWVudDsKICAgICAgdmFyIGVsZW1lbnRzID0gW2VsZW1lbnRdLmNvbmNhdChlbGVtZW50LmFuY2VzdG9ycygpKTsKICAgICAgcmV0dXJuIFNlbGVjdG9yLmZpbmRFbGVtZW50KGVsZW1lbnRzLCBleHByZXNzaW9uLCAwKTsKICAgIH0sCgogICAgcG9pbnRlcjogZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICB4OiBldmVudC5wYWdlWCB8fCAoZXZlbnQuY2xpZW50WCArCiAgICAgICAgICAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSksCiAgICAgICAgeTogZXZlbnQucGFnZVkgfHwgKGV2ZW50LmNsaWVudFkgKwogICAgICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApKQogICAgICB9OwogICAgfSwKCiAgICBwb2ludGVyWDogZnVuY3Rpb24oZXZlbnQpIHsgcmV0dXJuIEV2ZW50LnBvaW50ZXIoZXZlbnQpLnggfSwKICAgIHBvaW50ZXJZOiBmdW5jdGlvbihldmVudCkgeyByZXR1cm4gRXZlbnQucG9pbnRlcihldmVudCkueSB9LAoKICAgIHN0b3A6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgIEV2ZW50LmV4dGVuZChldmVudCk7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBldmVudC5zdG9wcGVkID0gdHJ1ZTsKICAgIH0KICB9Owp9KSgpOwoKRXZlbnQuZXh0ZW5kID0gKGZ1bmN0aW9uKCkgewogIHZhciBtZXRob2RzID0gT2JqZWN0LmtleXMoRXZlbnQuTWV0aG9kcykuaW5qZWN0KHsgfSwgZnVuY3Rpb24obSwgbmFtZSkgewogICAgbVtuYW1lXSA9IEV2ZW50Lk1ldGhvZHNbbmFtZV0ubWV0aG9kaXplKCk7CiAgICByZXR1cm4gbTsKICB9KTsKCiAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFKSB7CiAgICBPYmplY3QuZXh0ZW5kKG1ldGhvZHMsIHsKICAgICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsgdGhpcy5jYW5jZWxCdWJibGUgPSB0cnVlIH0sCiAgICAgIHByZXZlbnREZWZhdWx0OiAgZnVuY3Rpb24oKSB7IHRoaXMucmV0dXJuVmFsdWUgPSBmYWxzZSB9LAogICAgICBpbnNwZWN0OiBmdW5jdGlvbigpIHsgcmV0dXJuICJbb2JqZWN0IEV2ZW50XSIgfQogICAgfSk7CgogICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgIGlmICghZXZlbnQpIHJldHVybiBmYWxzZTsKICAgICAgaWYgKGV2ZW50Ll9leHRlbmRlZEJ5UHJvdG90eXBlKSByZXR1cm4gZXZlbnQ7CgogICAgICBldmVudC5fZXh0ZW5kZWRCeVByb3RvdHlwZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAgICB2YXIgcG9pbnRlciA9IEV2ZW50LnBvaW50ZXIoZXZlbnQpOwogICAgICBPYmplY3QuZXh0ZW5kKGV2ZW50LCB7CiAgICAgICAgdGFyZ2V0OiBldmVudC5zcmNFbGVtZW50LAogICAgICAgIHJlbGF0ZWRUYXJnZXQ6IEV2ZW50LnJlbGF0ZWRUYXJnZXQoZXZlbnQpLAogICAgICAgIHBhZ2VYOiAgcG9pbnRlci54LAogICAgICAgIHBhZ2VZOiAgcG9pbnRlci55CiAgICAgIH0pOwogICAgICByZXR1cm4gT2JqZWN0LmV4dGVuZChldmVudCwgbWV0aG9kcyk7CiAgICB9OwoKICB9IGVsc2UgewogICAgRXZlbnQucHJvdG90eXBlID0gRXZlbnQucHJvdG90eXBlIHx8IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIikuX19wcm90b19fOwogICAgT2JqZWN0LmV4dGVuZChFdmVudC5wcm90b3R5cGUsIG1ldGhvZHMpOwogICAgcmV0dXJuIFByb3RvdHlwZS5LOwogIH0KfSkoKTsKCk9iamVjdC5leHRlbmQoRXZlbnQsIChmdW5jdGlvbigpIHsKICB2YXIgY2FjaGUgPSBFdmVudC5jYWNoZTsKCiAgZnVuY3Rpb24gZ2V0RXZlbnRJRChlbGVtZW50KSB7CiAgICBpZiAoZWxlbWVudC5fcHJvdG90eXBlRXZlbnRJRCkgcmV0dXJuIGVsZW1lbnQuX3Byb3RvdHlwZUV2ZW50SURbMF07CiAgICBhcmd1bWVudHMuY2FsbGVlLmlkID0gYXJndW1lbnRzLmNhbGxlZS5pZCB8fCAxOwogICAgcmV0dXJuIGVsZW1lbnQuX3Byb3RvdHlwZUV2ZW50SUQgPSBbKythcmd1bWVudHMuY2FsbGVlLmlkXTsKICB9CgogIGZ1bmN0aW9uIGdldERPTUV2ZW50TmFtZShldmVudE5hbWUpIHsKICAgIGlmIChldmVudE5hbWUgJiYgZXZlbnROYW1lLmluY2x1ZGUoJzonKSkgcmV0dXJuICJkYXRhYXZhaWxhYmxlIjsKICAgIHJldHVybiBldmVudE5hbWU7CiAgfQoKICBmdW5jdGlvbiBnZXRDYWNoZUZvcklEKGlkKSB7CiAgICByZXR1cm4gY2FjaGVbaWRdID0gY2FjaGVbaWRdIHx8IHsgfTsKICB9CgogIGZ1bmN0aW9uIGdldFdyYXBwZXJzRm9yRXZlbnROYW1lKGlkLCBldmVudE5hbWUpIHsKICAgIHZhciBjID0gZ2V0Q2FjaGVGb3JJRChpZCk7CiAgICByZXR1cm4gY1tldmVudE5hbWVdID0gY1tldmVudE5hbWVdIHx8IFtdOwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlV3JhcHBlcihlbGVtZW50LCBldmVudE5hbWUsIGhhbmRsZXIpIHsKICAgIHZhciBpZCA9IGdldEV2ZW50SUQoZWxlbWVudCk7CiAgICB2YXIgYyA9IGdldFdyYXBwZXJzRm9yRXZlbnROYW1lKGlkLCBldmVudE5hbWUpOwogICAgaWYgKGMucGx1Y2soImhhbmRsZXIiKS5pbmNsdWRlKGhhbmRsZXIpKSByZXR1cm4gZmFsc2U7CgogICAgdmFyIHdyYXBwZXIgPSBmdW5jdGlvbihldmVudCkgewogICAgICBpZiAoIUV2ZW50IHx8ICFFdmVudC5leHRlbmQgfHwKICAgICAgICAoZXZlbnQuZXZlbnROYW1lICYmIGV2ZW50LmV2ZW50TmFtZSAhPSBldmVudE5hbWUpKQogICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgRXZlbnQuZXh0ZW5kKGV2ZW50KTsKICAgICAgaGFuZGxlci5jYWxsKGVsZW1lbnQsIGV2ZW50KTsKICAgIH07CgogICAgd3JhcHBlci5oYW5kbGVyID0gaGFuZGxlcjsKICAgIGMucHVzaCh3cmFwcGVyKTsKICAgIHJldHVybiB3cmFwcGVyOwogIH0KCiAgZnVuY3Rpb24gZmluZFdyYXBwZXIoaWQsIGV2ZW50TmFtZSwgaGFuZGxlcikgewogICAgdmFyIGMgPSBnZXRXcmFwcGVyc0ZvckV2ZW50TmFtZShpZCwgZXZlbnROYW1lKTsKICAgIHJldHVybiBjLmZpbmQoZnVuY3Rpb24od3JhcHBlcikgeyByZXR1cm4gd3JhcHBlci5oYW5kbGVyID09IGhhbmRsZXIgfSk7CiAgfQoKICBmdW5jdGlvbiBkZXN0cm95V3JhcHBlcihpZCwgZXZlbnROYW1lLCBoYW5kbGVyKSB7CiAgICB2YXIgYyA9IGdldENhY2hlRm9ySUQoaWQpOwogICAgaWYgKCFjW2V2ZW50TmFtZV0pIHJldHVybiBmYWxzZTsKICAgIGNbZXZlbnROYW1lXSA9IGNbZXZlbnROYW1lXS53aXRob3V0KGZpbmRXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhhbmRsZXIpKTsKICB9CgogIGZ1bmN0aW9uIGRlc3Ryb3lDYWNoZSgpIHsKICAgIGZvciAodmFyIGlkIGluIGNhY2hlKQogICAgICBmb3IgKHZhciBldmVudE5hbWUgaW4gY2FjaGVbaWRdKQogICAgICAgIGNhY2hlW2lkXVtldmVudE5hbWVdID0gbnVsbDsKICB9CgogIGlmICh3aW5kb3cuYXR0YWNoRXZlbnQpIHsKICAgIHdpbmRvdy5hdHRhY2hFdmVudCgib251bmxvYWQiLCBkZXN0cm95Q2FjaGUpOwogIH0KCiAgcmV0dXJuIHsKICAgIG9ic2VydmU6IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50TmFtZSwgaGFuZGxlcikgewogICAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICAgdmFyIG5hbWUgPSBnZXRET01FdmVudE5hbWUoZXZlbnROYW1lKTsKCiAgICAgIHZhciB3cmFwcGVyID0gY3JlYXRlV3JhcHBlcihlbGVtZW50LCBldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICBpZiAoIXdyYXBwZXIpIHJldHVybiBlbGVtZW50OwoKICAgICAgaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwcGVyLCBmYWxzZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZWxlbWVudC5hdHRhY2hFdmVudCgib24iICsgbmFtZSwgd3JhcHBlcik7CiAgICAgIH0KCiAgICAgIHJldHVybiBlbGVtZW50OwogICAgfSwKCiAgICBzdG9wT2JzZXJ2aW5nOiBmdW5jdGlvbihlbGVtZW50LCBldmVudE5hbWUsIGhhbmRsZXIpIHsKICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICAgIHZhciBpZCA9IGdldEV2ZW50SUQoZWxlbWVudCksIG5hbWUgPSBnZXRET01FdmVudE5hbWUoZXZlbnROYW1lKTsKCiAgICAgIGlmICghaGFuZGxlciAmJiBldmVudE5hbWUpIHsKICAgICAgICBnZXRXcmFwcGVyc0ZvckV2ZW50TmFtZShpZCwgZXZlbnROYW1lKS5lYWNoKGZ1bmN0aW9uKHdyYXBwZXIpIHsKICAgICAgICAgIGVsZW1lbnQuc3RvcE9ic2VydmluZyhldmVudE5hbWUsIHdyYXBwZXIuaGFuZGxlcik7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CgogICAgICB9IGVsc2UgaWYgKCFldmVudE5hbWUpIHsKICAgICAgICBPYmplY3Qua2V5cyhnZXRDYWNoZUZvcklEKGlkKSkuZWFjaChmdW5jdGlvbihldmVudE5hbWUpIHsKICAgICAgICAgIGVsZW1lbnQuc3RvcE9ic2VydmluZyhldmVudE5hbWUpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgICB9CgogICAgICB2YXIgd3JhcHBlciA9IGZpbmRXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICBpZiAoIXdyYXBwZXIpIHJldHVybiBlbGVtZW50OwoKICAgICAgaWYgKGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcikgewogICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwcGVyLCBmYWxzZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZWxlbWVudC5kZXRhY2hFdmVudCgib24iICsgbmFtZSwgd3JhcHBlcik7CiAgICAgIH0KCiAgICAgIGRlc3Ryb3lXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhhbmRsZXIpOwoKICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9LAoKICAgIGZpcmU6IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50TmFtZSwgbWVtbykgewogICAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICAgaWYgKGVsZW1lbnQgPT0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuY3JlYXRlRXZlbnQgJiYgIWVsZW1lbnQuZGlzcGF0Y2hFdmVudCkKICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoKICAgICAgdmFyIGV2ZW50OwogICAgICBpZiAoZG9jdW1lbnQuY3JlYXRlRXZlbnQpIHsKICAgICAgICBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7CiAgICAgICAgZXZlbnQuaW5pdEV2ZW50KCJkYXRhYXZhaWxhYmxlIiwgdHJ1ZSwgdHJ1ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpOwogICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9ICJvbmRhdGFhdmFpbGFibGUiOwogICAgICB9CgogICAgICBldmVudC5ldmVudE5hbWUgPSBldmVudE5hbWU7CiAgICAgIGV2ZW50Lm1lbW8gPSBtZW1vIHx8IHsgfTsKCiAgICAgIGlmIChkb2N1bWVudC5jcmVhdGVFdmVudCkgewogICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZWxlbWVudC5maXJlRXZlbnQoZXZlbnQuZXZlbnRUeXBlLCBldmVudCk7CiAgICAgIH0KCiAgICAgIHJldHVybiBFdmVudC5leHRlbmQoZXZlbnQpOwogICAgfQogIH07Cn0pKCkpOwoKT2JqZWN0LmV4dGVuZChFdmVudCwgRXZlbnQuTWV0aG9kcyk7CgpFbGVtZW50LmFkZE1ldGhvZHMoewogIGZpcmU6ICAgICAgICAgIEV2ZW50LmZpcmUsCiAgb2JzZXJ2ZTogICAgICAgRXZlbnQub2JzZXJ2ZSwKICBzdG9wT2JzZXJ2aW5nOiBFdmVudC5zdG9wT2JzZXJ2aW5nCn0pOwoKT2JqZWN0LmV4dGVuZChkb2N1bWVudCwgewogIGZpcmU6ICAgICAgICAgIEVsZW1lbnQuTWV0aG9kcy5maXJlLm1ldGhvZGl6ZSgpLAogIG9ic2VydmU6ICAgICAgIEVsZW1lbnQuTWV0aG9kcy5vYnNlcnZlLm1ldGhvZGl6ZSgpLAogIHN0b3BPYnNlcnZpbmc6IEVsZW1lbnQuTWV0aG9kcy5zdG9wT2JzZXJ2aW5nLm1ldGhvZGl6ZSgpLAogIGxvYWRlZDogICAgICAgIGZhbHNlCn0pOwoKKGZ1bmN0aW9uKCkgewogIC8qIFN1cHBvcnQgZm9yIHRoZSBET01Db250ZW50TG9hZGVkIGV2ZW50IGlzIGJhc2VkIG9uIHdvcmsgYnkgRGFuIFdlYmIsCiAgICAgTWF0dGhpYXMgTWlsbGVyLCBEZWFuIEVkd2FyZHMgYW5kIEpvaG4gUmVzaWcuICovCgogIHZhciB0aW1lcjsKCiAgZnVuY3Rpb24gZmlyZUNvbnRlbnRMb2FkZWRFdmVudCgpIHsKICAgIGlmIChkb2N1bWVudC5sb2FkZWQpIHJldHVybjsKICAgIGlmICh0aW1lcikgd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOwogICAgZG9jdW1lbnQuZmlyZSgiZG9tOmxvYWRlZCIpOwogICAgZG9jdW1lbnQubG9hZGVkID0gdHJ1ZTsKICB9CgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KSB7CiAgICAgIHRpbWVyID0gd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgIGlmICgvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKQogICAgICAgICAgZmlyZUNvbnRlbnRMb2FkZWRFdmVudCgpOwogICAgICB9LCAwKTsKCiAgICAgIEV2ZW50Lm9ic2VydmUod2luZG93LCAibG9hZCIsIGZpcmVDb250ZW50TG9hZGVkRXZlbnQpOwoKICAgIH0gZWxzZSB7CiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLAogICAgICAgIGZpcmVDb250ZW50TG9hZGVkRXZlbnQsIGZhbHNlKTsKICAgIH0KCiAgfSBlbHNlIHsKICAgIGRvY3VtZW50LndyaXRlKCI8c2NyaXB0IGlkPV9fb25ET01Db250ZW50TG9hZGVkIGRlZmVyIHNyYz0vLzo+PFwvc2NyaXB0PiIpOwogICAgJCgiX19vbkRPTUNvbnRlbnRMb2FkZWQiKS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PSAiY29tcGxldGUiKSB7CiAgICAgICAgdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsOwogICAgICAgIGZpcmVDb250ZW50TG9hZGVkRXZlbnQoKTsKICAgICAgfQogICAgfTsKICB9Cn0pKCk7Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBERVBSRUNBVEVEIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKSGFzaC50b1F1ZXJ5U3RyaW5nID0gT2JqZWN0LnRvUXVlcnlTdHJpbmc7Cgp2YXIgVG9nZ2xlID0geyBkaXNwbGF5OiBFbGVtZW50LnRvZ2dsZSB9OwoKRWxlbWVudC5NZXRob2RzLmNoaWxkT2YgPSBFbGVtZW50Lk1ldGhvZHMuZGVzY2VuZGFudE9mOwoKdmFyIEluc2VydGlvbiA9IHsKICBCZWZvcmU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHJldHVybiBFbGVtZW50Lmluc2VydChlbGVtZW50LCB7YmVmb3JlOmNvbnRlbnR9KTsKICB9LAoKICBUb3A6IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHJldHVybiBFbGVtZW50Lmluc2VydChlbGVtZW50LCB7dG9wOmNvbnRlbnR9KTsKICB9LAoKICBCb3R0b206IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHJldHVybiBFbGVtZW50Lmluc2VydChlbGVtZW50LCB7Ym90dG9tOmNvbnRlbnR9KTsKICB9LAoKICBBZnRlcjogZnVuY3Rpb24oZWxlbWVudCwgY29udGVudCkgewogICAgcmV0dXJuIEVsZW1lbnQuaW5zZXJ0KGVsZW1lbnQsIHthZnRlcjpjb250ZW50fSk7CiAgfQp9OwoKdmFyICRjb250aW51ZSA9IG5ldyBFcnJvcignInRocm93ICRjb250aW51ZSIgaXMgZGVwcmVjYXRlZCwgdXNlICJyZXR1cm4iIGluc3RlYWQnKTsKCi8vIFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIHNjcmlwdC5hY3Vsby51czsgbm90aWNlIHRoZSBkZXByZWNhdGVkIG1ldGhvZHMKLy8gZnVydGhlciBiZWxvdywgdGhhdCBtYXAgdG8gdGhlIG5ld2VyIEVsZW1lbnQgbWV0aG9kcy4KdmFyIFBvc2l0aW9uID0gewogIC8vIHNldCB0byB0cnVlIGlmIG5lZWRlZCwgd2FybmluZzogZmlyZWZveCBwZXJmb3JtYW5jZSBwcm9ibGVtcwogIC8vIE5PVCBuZWVlZGVkIGZvciBwYWdlIHNjcm9sbGluZywgb25seSBpZiBkcmFnZ2FibGUgY29udGFpbmVkIGluCiAgLy8gc2Nyb2xsYWJsZSBlbGVtZW50cwogIGluY2x1ZGVTY3JvbGxPZmZzZXRzOiBmYWxzZSwKCiAgLy8gbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgd2l0aGluSW5jbHVkaW5nU2Nyb2xsb2Zmc2V0LCBldmVyeSB0aW1lIHRoZQogIC8vIHBhZ2UgaXMgc2Nyb2xsZWQKICBwcmVwYXJlOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuZGVsdGFYID0gIHdpbmRvdy5wYWdlWE9mZnNldAogICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQKICAgICAgICAgICAgICAgIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdAogICAgICAgICAgICAgICAgfHwgMDsKICAgIHRoaXMuZGVsdGFZID0gIHdpbmRvdy5wYWdlWU9mZnNldAogICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcAogICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AKICAgICAgICAgICAgICAgIHx8IDA7CiAgfSwKCiAgLy8gY2FjaGVzIHgveSBjb29yZGluYXRlIHBhaXIgdG8gdXNlIHdpdGggb3ZlcmxhcAogIHdpdGhpbjogZnVuY3Rpb24oZWxlbWVudCwgeCwgeSkgewogICAgaWYgKHRoaXMuaW5jbHVkZVNjcm9sbE9mZnNldHMpCiAgICAgIHJldHVybiB0aGlzLndpdGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHMoZWxlbWVudCwgeCwgeSk7CiAgICB0aGlzLnhjb21wID0geDsKICAgIHRoaXMueWNvbXAgPSB5OwogICAgdGhpcy5vZmZzZXQgPSBFbGVtZW50LmN1bXVsYXRpdmVPZmZzZXQoZWxlbWVudCk7CgogICAgcmV0dXJuICh5ID49IHRoaXMub2Zmc2V0WzFdICYmCiAgICAgICAgICAgIHkgPCAgdGhpcy5vZmZzZXRbMV0gKyBlbGVtZW50Lm9mZnNldEhlaWdodCAmJgogICAgICAgICAgICB4ID49IHRoaXMub2Zmc2V0WzBdICYmCiAgICAgICAgICAgIHggPCAgdGhpcy5vZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNldFdpZHRoKTsKICB9LAoKICB3aXRoaW5JbmNsdWRpbmdTY3JvbGxvZmZzZXRzOiBmdW5jdGlvbihlbGVtZW50LCB4LCB5KSB7CiAgICB2YXIgb2Zmc2V0Y2FjaGUgPSBFbGVtZW50LmN1bXVsYXRpdmVTY3JvbGxPZmZzZXQoZWxlbWVudCk7CgogICAgdGhpcy54Y29tcCA9IHggKyBvZmZzZXRjYWNoZVswXSAtIHRoaXMuZGVsdGFYOwogICAgdGhpcy55Y29tcCA9IHkgKyBvZmZzZXRjYWNoZVsxXSAtIHRoaXMuZGVsdGFZOwogICAgdGhpcy5vZmZzZXQgPSBFbGVtZW50LmN1bXVsYXRpdmVPZmZzZXQoZWxlbWVudCk7CgogICAgcmV0dXJuICh0aGlzLnljb21wID49IHRoaXMub2Zmc2V0WzFdICYmCiAgICAgICAgICAgIHRoaXMueWNvbXAgPCAgdGhpcy5vZmZzZXRbMV0gKyBlbGVtZW50Lm9mZnNldEhlaWdodCAmJgogICAgICAgICAgICB0aGlzLnhjb21wID49IHRoaXMub2Zmc2V0WzBdICYmCiAgICAgICAgICAgIHRoaXMueGNvbXAgPCAgdGhpcy5vZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNldFdpZHRoKTsKICB9LAoKICAvLyB3aXRoaW4gbXVzdCBiZSBjYWxsZWQgZGlyZWN0bHkgYmVmb3JlCiAgb3ZlcmxhcDogZnVuY3Rpb24obW9kZSwgZWxlbWVudCkgewogICAgaWYgKCFtb2RlKSByZXR1cm4gMDsKICAgIGlmIChtb2RlID09ICd2ZXJ0aWNhbCcpCiAgICAgIHJldHVybiAoKHRoaXMub2Zmc2V0WzFdICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpIC0gdGhpcy55Y29tcCkgLwogICAgICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0OwogICAgaWYgKG1vZGUgPT0gJ2hvcml6b250YWwnKQogICAgICByZXR1cm4gKCh0aGlzLm9mZnNldFswXSArIGVsZW1lbnQub2Zmc2V0V2lkdGgpIC0gdGhpcy54Y29tcCkgLwogICAgICAgIGVsZW1lbnQub2Zmc2V0V2lkdGg7CiAgfSwKCiAgLy8gRGVwcmVjYXRpb24gbGF5ZXIgLS0gdXNlIG5ld2VyIEVsZW1lbnQgbWV0aG9kcyBub3cgKDEuNS4yKS4KCiAgY3VtdWxhdGl2ZU9mZnNldDogRWxlbWVudC5NZXRob2RzLmN1bXVsYXRpdmVPZmZzZXQsCgogIHBvc2l0aW9uZWRPZmZzZXQ6IEVsZW1lbnQuTWV0aG9kcy5wb3NpdGlvbmVkT2Zmc2V0LAoKICBhYnNvbHV0aXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBQb3NpdGlvbi5wcmVwYXJlKCk7CiAgICByZXR1cm4gRWxlbWVudC5hYnNvbHV0aXplKGVsZW1lbnQpOwogIH0sCgogIHJlbGF0aXZpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsKICAgIHJldHVybiBFbGVtZW50LnJlbGF0aXZpemUoZWxlbWVudCk7CiAgfSwKCiAgcmVhbE9mZnNldDogRWxlbWVudC5NZXRob2RzLmN1bXVsYXRpdmVTY3JvbGxPZmZzZXQsCgogIG9mZnNldFBhcmVudDogRWxlbWVudC5NZXRob2RzLmdldE9mZnNldFBhcmVudCwKCiAgcGFnZTogRWxlbWVudC5NZXRob2RzLnZpZXdwb3J0T2Zmc2V0LAoKICBjbG9uZTogZnVuY3Rpb24oc291cmNlLCB0YXJnZXQsIG9wdGlvbnMpIHsKICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHsgfTsKICAgIHJldHVybiBFbGVtZW50LmNsb25lUG9zaXRpb24odGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpOwogIH0KfTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lID0gZnVuY3Rpb24oaW5zdGFuY2VNZXRob2RzKXsKICBmdW5jdGlvbiBpdGVyKG5hbWUpIHsKICAgIHJldHVybiBuYW1lLmJsYW5rKCkgPyBudWxsIDogIltjb250YWlucyhjb25jYXQoJyAnLCBAY2xhc3MsICcgJyksICcgIiArIG5hbWUgKyAiICcpXSI7CiAgfQoKICBpbnN0YW5jZU1ldGhvZHMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSA9IFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuWFBhdGggPwogIGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnRvU3RyaW5nKCkuc3RyaXAoKTsKICAgIHZhciBjb25kID0gL1xzLy50ZXN0KGNsYXNzTmFtZSkgPyAkdyhjbGFzc05hbWUpLm1hcChpdGVyKS5qb2luKCcnKSA6IGl0ZXIoY2xhc3NOYW1lKTsKICAgIHJldHVybiBjb25kID8gZG9jdW1lbnQuX2dldEVsZW1lbnRzQnlYUGF0aCgnLi8vKicgKyBjb25kLCBlbGVtZW50KSA6IFtdOwogIH0gOiBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsKICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZS50b1N0cmluZygpLnN0cmlwKCk7CiAgICB2YXIgZWxlbWVudHMgPSBbXSwgY2xhc3NOYW1lcyA9ICgvXHMvLnRlc3QoY2xhc3NOYW1lKSA/ICR3KGNsYXNzTmFtZSkgOiBudWxsKTsKICAgIGlmICghY2xhc3NOYW1lcyAmJiAhY2xhc3NOYW1lKSByZXR1cm4gZWxlbWVudHM7CgogICAgdmFyIG5vZGVzID0gJChlbGVtZW50KS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpOwogICAgY2xhc3NOYW1lID0gJyAnICsgY2xhc3NOYW1lICsgJyAnOwoKICAgIGZvciAodmFyIGkgPSAwLCBjaGlsZCwgY247IGNoaWxkID0gbm9kZXNbaV07IGkrKykgewogICAgICBpZiAoY2hpbGQuY2xhc3NOYW1lICYmIChjbiA9ICcgJyArIGNoaWxkLmNsYXNzTmFtZSArICcgJykgJiYgKGNuLmluY2x1ZGUoY2xhc3NOYW1lKSB8fAogICAgICAgICAgKGNsYXNzTmFtZXMgJiYgY2xhc3NOYW1lcy5hbGwoZnVuY3Rpb24obmFtZSkgewogICAgICAgICAgICByZXR1cm4gIW5hbWUudG9TdHJpbmcoKS5ibGFuaygpICYmIGNuLmluY2x1ZGUoJyAnICsgbmFtZSArICcgJyk7CiAgICAgICAgICB9KSkpKQogICAgICAgIGVsZW1lbnRzLnB1c2goRWxlbWVudC5leHRlbmQoY2hpbGQpKTsKICAgIH0KICAgIHJldHVybiBlbGVtZW50czsKICB9OwoKICByZXR1cm4gZnVuY3Rpb24oY2xhc3NOYW1lLCBwYXJlbnRFbGVtZW50KSB7CiAgICByZXR1cm4gJChwYXJlbnRFbGVtZW50IHx8IGRvY3VtZW50LmJvZHkpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lKTsKICB9Owp9KEVsZW1lbnQuTWV0aG9kcyk7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCkVsZW1lbnQuQ2xhc3NOYW1lcyA9IENsYXNzLmNyZWF0ZSgpOwpFbGVtZW50LkNsYXNzTmFtZXMucHJvdG90eXBlID0gewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgfSwKCiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KC9ccysvKS5zZWxlY3QoZnVuY3Rpb24obmFtZSkgewogICAgICByZXR1cm4gbmFtZS5sZW5ndGggPiAwOwogICAgfSkuX2VhY2goaXRlcmF0b3IpOwogIH0sCgogIHNldDogZnVuY3Rpb24oY2xhc3NOYW1lKSB7CiAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lOwogIH0sCgogIGFkZDogZnVuY3Rpb24oY2xhc3NOYW1lVG9BZGQpIHsKICAgIGlmICh0aGlzLmluY2x1ZGUoY2xhc3NOYW1lVG9BZGQpKSByZXR1cm47CiAgICB0aGlzLnNldCgkQSh0aGlzKS5jb25jYXQoY2xhc3NOYW1lVG9BZGQpLmpvaW4oJyAnKSk7CiAgfSwKCiAgcmVtb3ZlOiBmdW5jdGlvbihjbGFzc05hbWVUb1JlbW92ZSkgewogICAgaWYgKCF0aGlzLmluY2x1ZGUoY2xhc3NOYW1lVG9SZW1vdmUpKSByZXR1cm47CiAgICB0aGlzLnNldCgkQSh0aGlzKS53aXRob3V0KGNsYXNzTmFtZVRvUmVtb3ZlKS5qb2luKCcgJykpOwogIH0sCgogIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAkQSh0aGlzKS5qb2luKCcgJyk7CiAgfQp9OwoKT2JqZWN0LmV4dGVuZChFbGVtZW50LkNsYXNzTmFtZXMucHJvdG90eXBlLCBFbnVtZXJhYmxlKTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKRWxlbWVudC5hZGRNZXRob2RzKCk7]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/scriptaculous.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gc2NyaXB0LmFjdWxvLnVzIHNjcmlwdGFjdWxvdXMuanMgdjEuOC4xLCBUaHUgSmFuIDAzIDIyOjA3OjEyIC0wNTAwIDIwMDgKCi8vIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFRob21hcyBGdWNocyAoaHR0cDovL3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8gCi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwovLyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLy8gIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwovLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwovLyBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLy8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgovLyAKLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLy8gaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAovLyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKLy8gTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRQovLyBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi8vIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgovLyBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLy8KLy8gRm9yIGRldGFpbHMsIHNlZSB0aGUgc2NyaXB0LmFjdWxvLnVzIHdlYiBzaXRlOiBodHRwOi8vc2NyaXB0LmFjdWxvLnVzLwoKdmFyIFNjcmlwdGFjdWxvdXMgPSB7CiAgVmVyc2lvbjogJzEuOC4xJywKICByZXF1aXJlOiBmdW5jdGlvbihsaWJyYXJ5TmFtZSkgewogICAgLy8gaW5zZXJ0aW5nIHZpYSBET00gZmFpbHMgaW4gU2FmYXJpIDIuMCwgc28gYnJ1dGUgZm9yY2UgYXBwcm9hY2gKICAgIGRvY3VtZW50LndyaXRlKCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInK2xpYnJhcnlOYW1lKyciPjxcL3NjcmlwdD4nKTsKICB9LAogIFJFUVVJUkVEX1BST1RPVFlQRTogJzEuNi4wJywKICBsb2FkOiBmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIGNvbnZlcnRWZXJzaW9uU3RyaW5nKHZlcnNpb25TdHJpbmcpewogICAgICB2YXIgciA9IHZlcnNpb25TdHJpbmcuc3BsaXQoJy4nKTsKICAgICAgcmV0dXJuIHBhcnNlSW50KHJbMF0pKjEwMDAwMCArIHBhcnNlSW50KHJbMV0pKjEwMDAgKyBwYXJzZUludChyWzJdKTsKICAgIH0KIAogICAgaWYoKHR5cGVvZiBQcm90b3R5cGU9PSd1bmRlZmluZWQnKSB8fCAKICAgICAgICh0eXBlb2YgRWxlbWVudCA9PSAndW5kZWZpbmVkJykgfHwgCiAgICAgICAodHlwZW9mIEVsZW1lbnQuTWV0aG9kcz09J3VuZGVmaW5lZCcpIHx8CiAgICAgICAoY29udmVydFZlcnNpb25TdHJpbmcoUHJvdG90eXBlLlZlcnNpb24pIDwgCiAgICAgICAgY29udmVydFZlcnNpb25TdHJpbmcoU2NyaXB0YWN1bG91cy5SRVFVSVJFRF9QUk9UT1RZUEUpKSkKICAgICAgIHRocm93KCJzY3JpcHQuYWN1bG8udXMgcmVxdWlyZXMgdGhlIFByb3RvdHlwZSBKYXZhU2NyaXB0IGZyYW1ld29yayA+PSAiICsKICAgICAgICBTY3JpcHRhY3Vsb3VzLlJFUVVJUkVEX1BST1RPVFlQRSk7CiAgICAKICAgICRBKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSkuZmluZEFsbCggZnVuY3Rpb24ocykgewogICAgICByZXR1cm4gKHMuc3JjICYmIHMuc3JjLm1hdGNoKC9zY3JpcHRhY3Vsb3VzXC5qcyhcPy4qKT8kLykpCiAgICB9KS5lYWNoKCBmdW5jdGlvbihzKSB7CiAgICAgIHZhciBwYXRoID0gcy5zcmMucmVwbGFjZSgvc2NyaXB0YWN1bG91c1wuanMoXD8uKik/JC8sJycpOwogICAgICB2YXIgaW5jbHVkZXMgPSBzLnNyYy5tYXRjaCgvXD8uKmxvYWQ9KFthLXosXSopLyk7CiAgICAgIChpbmNsdWRlcyA/IGluY2x1ZGVzWzFdIDogJ2J1aWxkZXIsZWZmZWN0cyxkcmFnZHJvcCxjb250cm9scyxzbGlkZXIsc291bmQnKS5zcGxpdCgnLCcpLmVhY2goCiAgICAgICBmdW5jdGlvbihpbmNsdWRlKSB7IFNjcmlwdGFjdWxvdXMucmVxdWlyZShwYXRoK2luY2x1ZGUrJy5qcycpIH0pOwogICAgfSk7CiAgfQp9CgpTY3JpcHRhY3Vsb3VzLmxvYWQoKTs=]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lytebox/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lytebox/images/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/close_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/close_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/close_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/close_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/close_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/next_blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////H1+/L1+/H0+vD0+vDz+eXr+OPp9uHo9dfh9NPd8MvY8crX8MnW78jV7sfU7cbT7MXS68TR6sPQ6sHP6bfI6LDE6q/D6a3B56q+5Ka64Jax45Sv4ZKt35Cr3Y6p24yn2oql2Iij1oah1ISf0nmb2nSW1W+T2G+R0WqMzGKK1WiJymSIzmGGzF+H01mBzVZ9ylN6x055zFB3xE10wUpxv0ZuvDpsyjdoxzZkvi5jxzZiti9hwCpfxCZbwCdZuSJXvCRWtidWsR5TuBpPtRZLsRJHrQ5Dqgk/pv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAA/ACAAAAf/gElJAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihOhaFGzoLAK46s7MAJzcGhAY3JwAqtMAboD04CYQcPQwAyCUczhwAAjguhC44AgAXzi49zRzKnz4+MgEAHT4N5uiIGD4Y7RiH5+miQPYmAB5ADvn7iS88eLxApI+fqCEwWAzJ8GHIAwANh0j8YOiAxAOIGj4URSTGgBw/WhCBAAAEERQgQJAsVIEIkQqITK4MVWQGAAVFckYAEKLIzkMEgsyYEYTAoZ4/QxmhQUiDESMSAIiAiiiFEQQIjKQ4NDWqqCM1Cq04MgHAiCMrRqgdAWDCEbZmOskaOltWFBIbhQrsoACABJK/gAsI2WFoh5AChfzyTcW4sWMAgCP/fUy5suXLmDNr3kzpEWdGgj4zCgQAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/next_gold.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////n57/j47/f37/b27/T03/Hx3+/v3+7uz+joz+rqv+jov+fnv+Xlv+Tkv+Liv+Dgv9/fv93dv9/fn9zcv93dn9vbr9ran9bWn9TUf9HRf8/Pn87Of8vLf8jIf8XFf8bGX8LCf8TET7+/f76+X7y8f7+/P7m5f7q6P7e3X7S0T6+vX7CwT7GxP7CwL62tP6urX6+vD6ioP6mpD6qqAKOjP5+fP6SkAJqaP56eAJ2dD5qaH5aWP5eXAJOTD5KSAI2NL4yMD4yMAISEH4WFAH9/AHl5AHNzAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihNBOFGTQKAK40s7MAIjEFhAUxIgAmtMAZoDczCIQaNwsAyCAazhoAATMohCgzAQAVzig3zRrKnzk5LtgcOQwA5uiHFzkX7ReH6qM99SQAHT0N+PqJLTo6WiDKt0/UjxcqfmDw8MMBAIY/InowZCCiAUQMHYoSIkPADh8shDwA8EFIig8fRhayIESIBUQlVYYiUgNAAiI4IQAIQUTnoQFBatQIMuAQT5+hitggtKFIkQgARjxFtKLIgQNFVhySClWUERyFYBiRAKCEERgl0pYAIMHI2rJjOQ2ZJSvqCI9CBIBQAHDiiN+/BIYAMQRkCIFCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/next_green.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP///+/27+/17+/07+/z79/v39/r39/p38/lz8/fz7/ev7/bv7/cv7/Zv7/Yv7/Wv7/Uv7/Tv7/Rv7/Pv6/Mr5/On5/Ln5/Jn5/En5+8n3+9f3+6f3+3f3+zf3+wf3+tf3+pf3+mf3+jf3+gf1+oX1+gX0+lT1+YX1+QXz+cP0+TT1+MXz+XP0+OTz+NPz+JPz+EPy+KLz9+Pz96Pz90Pw+EDz9wPw99DwB8AB9vHw9xDy9kLwB1AABvAA9lDwBoAB9YHw9eDwBiAABbAABUAABOAABHAABBAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihOBWFGjgKAK44s7MAJjUFhAU1JgAptMAaoDw3CIQbPAwAyCQbzhsAATcshCw3AQAWziw8zRvKnz09MdgcPQsA5uiHFz0X7ReH6qM/9SUAHT8N+PqJLjo6XCDKt0+UkBcqhGDwIMQBAIZCInowZCCiAUQMHYoaAkNADh8thjwA8GHIiQ8fRhaiMGQIBUQlVYYiIgNAAiI4IQAAQUTnoQFBZMgIMuAQT5+hiswglKFIkQgAQjxFhKLIgQNFUBySClWUERqFVhiRAECEkRUi0ooAIMHI2rJjOQ2ZJSvqiI1CBHZMADDiiN+/BIDsMLQDCIFCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/next_grey.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////f39/b29vX19fT09PPz8+/v7+zs7Onp6ebm5t/f397e3tzc3Nra2tjY2NfX19XV1dPT09HR0dDQ0M3NzcrKysXFxcDAwL29vby8vLm5ubW1tbKysq+vr6ysrKurq6ioqKSkpKOjo6GhoaCgoJubm5WVlZKSkpGRkZCQkI2NjYuLi4iIiIeHh4KCgoGBgXx8fHp6enZ2dnV1dXNzc3JycnFxcWxsbGhoaGZmZmVlZWFhYV9fX1paWldXV1FRUUlJSUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEIALAAAAAA/ACAAAAf/gEJCAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihLxOFFy8KAK4vs7MAICwGhAYsIAAktMAXoDEuCYQZMQsAyB4ZzhkAAS4lhCUuAQAUziUxzRnKnzQ0KgIAGjQM5uiIFTQV7RWH5+miN/YiABs3Dfn7iSkzZqRApI+fKB0rTOiwwEGHAwANdUjkYOiAxAOIGj4UxaPFgBo4UPB4AKADjxIdOpAsRIEHDwqITK4M5eMFAAU+ckIA8MHHzkMEdszaQeBQz5+hfsAghOHHjwi2niI68QMBgh8nDoGQKgqIjEIqgEgAEAKIihBoQwCQAEQtWbGGOMqOFRXERqECOViNCMK3b4EeOQzl6FGg0F5WqRIrXgwAiOPHjxlLnky5suXLmDNTeqSZkaDOjAIBADs=]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/next_red.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////nv7/vv7/bv7/jv7/nf3/Tf3/Df3/TPz+vPz/C/v/K/v+6/v+u/v+a/v+m/v+S/v+K/v9+/v92/v+Cvr+yfn+mfn+Wfn96fn9Ofn+Z/f+F/f9x/f9h/f9N/f85/f8l/f8R/f8B/f7t/f9pfX85fX8JfX7ZfX7BfX9xPT8JPT7tPT9k/P9M/P8Q/P70/P7U/P64/P6c/P6A/P5k/P8cvL5AvL6kfH9APD8cPD4gfH7YPD6MPD5oPD80AAMQAALoAALEAAKcAAJ0AAJQAAIoAAIEAAHcAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihPhWFGj4LAK4+s7MAKTgFhAU4KQAstMAaoD85CIQbPwoAyCQbzhsAAjkthC05AgAWzi0/zRvKn0BANdgcQAwA5uiHF0AX7ReH6qNB9SUAHUEN+PqJLjs7XCDKt0+UkBcqhGDwIOQBAIZCInowZCCiAUQMHYoaAiPADR4rhjgA8GGIiQ8fRhaiMGQIBUQlVYYiEgNAAiI4IQAAQUTnIQI9YsToQeAQT5+hisgglKFIkQgAQjxFdKLIgQNFThySClWUkRmFUBiRAECEERQi0ooAIMHI2rJjOQ2ZJSvqCI1CA2xMADDiiN+/A3TYMGRDx4BCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/pause_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAEoklEQVRYheWYf0xVdRTAP/e+ex8+eDxQARNFIDPGD39ULyOxWv7c1CUTU6fV1qKWlLZqOl3LtelaRmWjTfqlzk3L1JiKWWjFMCQmpubL/MlkBKmIP0BxFOc++uPBhcvjPci1OfJs9497zrnnnve533PO9/uU1tbWVu5gUW93ArdbtNudwK2Kmr7BT+ctf7ZHW1fpswAA+kWloSgKqqrQdPGYxRYSlYpq2jwBY/RpALpuQ1UVFEXxs9l1rQ1O8Bja6Oxy88bpsPFgkounJg/GneTyc85YVMH6pSkkxYVZ9M/l/s6hU438+nm6RT86uxx3kot1S1IAuH5TeHN9JcVHrwKQFBfK0nkJuJNc5O+q4eNdNd0m2TVuu7QDULsBoGlqQDgWPxGD2IEhZD4SQ239X+wsrWPfoXr2vudmSFSI6bijtI5r1/9mY9GfvJ09whLEMLyIGH7BRQwMw2veL8o7ScXJBp6eEgvAD79cxumwAeD1+mLMHB9jeW8wses2c5l3Fb3d1jMA4a4BTl7KHAaA+95wln96ioL951k0K8F0/LrkPCLC3oN1LJufiCu0o3oMw0BEugEgGEYHmJ9/u8zY5EiWzU8EICczzozjAyBkZkQzNjmylwA0VCVACWg2sz8EE7VrkuEOGyKC19vx5WouNVPmqeeJjGiuNjazr+KSJUhvAQyK1Cjz1JvPd4bYDuDfbEvsmg1dt2HXbX42XfPp7VrwNqeKCFcamyk/foVtxbW8/9UZRITJ7mjTad3uKkSEV7ISGdRf57PCc5YghgQB0Kk03l2YjMMO2asPM3dFBeXHr/gBmLPiIPGzi4ifXcSarWeDA7Br2HUNu93/R+qa5ru6gdNZNBEDz9lrZL3ha4bhoRq5OamkJISbTl/uq2biA1EMjXGQ9dhgPthyhuPnGklN9DVK3woI1AM69OmpAyjLf5QV606w7ccaSo9dYs3iUcyZMBSvtxURgycnDCUuxuHzT+kfNHldD7zM7fbelYAmIqQmulj1QhoA40ZGWRy2fP8HVxubiR0YQpmnniFR/RARPtlRSd6r93UC0HMJALjCdD5cPIrsGfFMXFzC6k0n2gC0rYDHY/1yCAhACzYF2m3BY2gigrOfGvClXxSdQ0TILzhNfsFpU19YWsPK59OIcOqEOVREBE9lAyOHRwDgqWxARAhzdAzihhstRDh1ANLujuCh5EgOeOqBW+wBQcag3jYGezEFrKOqs1RfaKLkyEUWzhrBOzljTP3moipycivYfaCWBVMTmDdpGIU/1TDttWJyskbQcKOFzUVViBi8mHmP+dyytUepvtDE+DHRVF+4ScmRi0wfF9sJgMGm76rYf7TOksfyZ1IDANCCbIRsqIqK0lMJtIgghn/9Any0/RQtIsyfEm/RL5iawOt5h8jbeoIFUxOYkTGETW89zKoNHlau921JRw6PZO0SN+NHdzRTZ6iNytpGig+fxxWmM3dSHLkv328CaBFh4x7/xhcYQOCdoK754PTUA5S+ehxW0zcwfeZsE8Cugq2Ww9CUaZkobSXwbWHB//Mw9M3O7QFte/fs6FWMPrsC/iu54/8QueMB/AOAcvU85V3mOwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/pause_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAEDElEQVRYheWYzWsTXRSHn5RJU6y0g5gaIpiYRdEW+5GAoC46VSoFv/oKbtx0XHVp/oT0P4h0pSBOd0LVpn6g6MIEpSUisW8gLQZM02pLaBdt1aAzU62LIZNO06TxRZC+/cEs5p5zzz33uefezI1tfX19nV2smr+dwN+W8LcT+K8aGLCVtN28ub6tbbN2LAAApxNsNqipgVyuettG7WgAdrsxSVvpgiMIRQCVJIyMFHvb7Y04nRLNzUGcTqnEORIRkaQoothhaY9GJZaWYly5Yi2zkREbTmcXkhQFQNdXePNGZmFhDABRbKejI4zTKZFKhZiaGtwyyc1xN0+yEoCtbBY/TYP6eg8+n0w+nyWTGSabHaOvb4b6eq/pmMko5POrTE+HOXFCsQTRddC00uCaZtgKikb7WFyMceTIdQA+fowgCCIAP34Y/j5fv2XcislXWOXfArBvn5e2thAA+/dLvH59jXRaobMzZDq+f6+gaZDJRAgEVqitFU3b2lp5AGtrxfdPn2K4XF0EAmEAjh0LmXEKAA4flnG5pGrm/0e2QM3mVbLbRTTNSKigL1+yzM3F8Hr7+fp1lZmZiCVItRXgcHiYm4uRzRr9N0IsAPj5s3LCGyUIBgS7vbxN2OaUq9E0yOdXmJ+PMj2tMDERQtPA4+kznd69C6NpEAiEcDg8JBJhS5BqK6CrSwEaefToHx48kJifj5q2AoD797sZGrIxNGQjHg9VTL4wwXIACk8lCZoGCwv/cvduNwAORyOnT9/B6SwedMmkwqFDl2ho8NLcLDMxMcji4iRNTYZPtRVw8KCELGd5+TJIKjXMzEw3vb13aG2VTQCtrf00NHgBcLulbQGUK/NKNgsAVYWmpnZ6eoxV9XisgyaTCp8/r7Jnj5fZ2Sh793pRVYjHw1y4oJgAVLU0uKpaAQA4HCK9vQqdnUFu3+4kGg2ZAFQVjh6VS3Iom7xgTLDcGVDOZvHTdRAEseygiYSCrsP4+A3Gx2+Y7alUhJ6eFerqRARBRNchl5vE5TKqIpebpBC7oO/fDX+AAwc6cLu7mJ2NAcYW0HX4nZvJdgCq+hXYapUKWl7Okk7HOHnyOufPF/d9IqFw7941pqYi+P0ybW0yyeQYt25JnDoV5Nu3FRIJBVWF48eDZr/Hj4MsL2fx+SQzdkvLJROAqsLbtwofPkQteZw5E9oyv0plXvWHkK5bD6qNevUqjK6D3y9b2v1+mdHRILFYGL9fpqWlj6tXR3nxIsSzZ8bHjNvdzuXLIXw+yexXWyuytJQlnR6krq6R9vZ+Ll4MmwB0HeLx4ZI8ygGopgK2A2DbqdfhgQEb584VATx8aL0MnT1btD19+j+9DD15Ut72/Hl1MXZsBfwp7fo/RHY9gF/qXKwTZv0LugAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/pause_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAD0klEQVRYheWYT2gcVRzHPxNDgi1lp6InxZ1CqQfF3ZAcFKo7cwgKhmZz0oO4ExpU9LBz0IOH0ClS0IIwqVatWPKCEDy5s+ClFnSmUVFoyUQMWCpme1IPmln/gDtan4fZzP7NdqOBEPOFd5j3/b3f+87v/X6/2beKlFKyhzGw0wJ2GoM7LeDfQhlTOubkZXlTrh27NgAA3AUoxHl8vY27sz7fjWvC7g7AEI2X3ArXhAFlVmFjqKdU8ot5vDWvq7F6SiX4PuiY18/rKLOdaafMKujn9eQ5/CMkv5hP9suezSZ72R/bNGtpHptiqGlshWvCIDVIH0xjjplUfq6wcGWBclBm7aU1tINaYiguC6rVKs4lB/G4aPXyJ1Dr4r1W5+rIizz+dz7Fo0UA3FUXdViNyRuxfWG0gHab1u6pO4b5zxkwSATaAQ173AZAP6QzvTiN+FJgP2onhuILARG4yy7hsRD1VrXh5S8g6uI9qnN1+N/45A7ncI45ANjjdsPPjdjeHDXRD+u9VW9gIwDdkqTfEqDWKl4dVuOTaxJe+amCv+pTGClQrVZxA7fVS8TmGdDkO70/jb/q467E6zuCWAP+7i24BRspPtyDu0kJDBBB+EuId9VDfCawSzZEkL8/nxg5HzkQgf2YTfpAGueC0+qlzwwQTwlSt6SYOjOFflrHu+o1yHoGGK8aKMcVlOMKdtnurX64x0tupQesfLuC8bIBQGpfivnCPNm7sw3hnwgm75tEu13DfMDk5AcnCa4HZNN1mz57gH6PTuV0Bes9i4WlBYyvDOafnsd82Gz0gIcKaHdosf0Rvbf6bfgKDFKDjJbBMeNT1e9t3VR4gup6FU3V8Fa9uEHVwPnQQTwvYqM+SwBA3acinhFYj1iMvDiC/b4dB6BeAuZRs0PDptiuJqgOqZtuKi4KiGDOnWPOnUvm3U9dQjNE3a/GfSOCYC0geyjOimAtgIhGlwfC32N7gKyWJXckh/+1H5P1EmArN5NeAejFNWGw2yltoPJjBf+KTzFfxHm2UffiomD6tWncz13McRNTNylfKqO/oGNNWYS/hXHgamBNWMk6622Lyg8V9Iye+J58cDIm6yUgLgi8wGvRYT9pdxfYTwn0+BkRw0DmrJzshuIbRYmBXL623MGlJlIyM5NJnktLJZmZyUgMJAYyM5ORpaVSh7/0E2mJgUxNpGThlYJc/3VdSinlCXEiWds+uoFRJG8hOYfkHSSjtHIOkteRnG3l2qHs1uuwMqbAczQy4EzbZWiGxj3h3P/1MvRmD+7d/lzs2gzYLuz5P0T2fAD+AXj47gHCmF1+AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/pause_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAEV0lEQVRYheWYX0hTbxjHPxv7ky1QUaib5okxhSgZIqzGoCinZEwFuyrQm0HoVRchQuDFboZ40c0QuooiImGRCwrSXThRQUpF0UPeNBIJdtGfhcF5X6d2ETvtOLfW7/eD8Nf37jzP8z573u/zPc973pn29vb2+Ith/tMF/GlY/nQB/xTNzc0Ftjdv3vzStx+HlgCA48ePYzKZMJvNfPjwoWxfPg41AVarFbPZjMlkOtCXI6AULOFwWH+w2+0oioLX60VRlILg4eFhent7OXHihMH+4MED3r9/z9DQkMEeDoepq6ujt7cXAE3TiMfjrK+vAz+61NbWhqIoJJNJksnkgUXuz5u/yWIEWCyWoj5DnBCCqqoqmpqa+PLlC4uLi6ysrHD79m2qq6v1wMXFRb5+/crs7Czd3d2GJNvb2wghCpILIdje3tafHz16RCqVwufzAaCqKna7HYBsNosQgqamJqqqqkoWvZ+Ag7pctgKEEBw7dozLly8D4HQ6GRsb4/Xr17S2tuqB8/PzCCFYWlqivb2dioqK3ybg7du3uFwurl69CsClS5f0PDs7Owgh8Hg8uFyusgiw2WyYTKZ/9QqYhRBIKXWD3W5HCEE2m9Vtnz59QlVVPB4PmUyGlZUVQxIpZVEC8nM7HA5UVdXX55OYU8Du7u4vtv0TFosFq9WK1Wot6rNYSo85ixCCTCbD+vo6Hz9+JJFIIITg7NmzetDk5CRCCK5cucLa2hqvXr3C6/Xq/nIVcP36dUZHR4lGo9TX1xMMBmloaAB+KmBkZESPDwaDBIPBosXnFHBQl3Mz4JevgJSSd+/eEYlEgB9d6enp4eTJk3rQ1NQUZ86coaamBq/Xy/j4OBsbGzidTuBH9/I7nYOU0qCkhoYGIpEIjx8/ZmZmhtXVVUKhEH6/n52dHaSU+P1+amtrAXC73SWLLyXzUuQYCNA0zTCpT58+bQhIJpN8/vyZyspKVFWluroaTdN48eIFfX19+kY1TStIrmlaATFHjx4lFArR0tLC4OAgT548we/3k81m0TQNn89XUEPR4ktM+rJPASklNput6I8mEgmklMTjceLxuG6fnZ2lp6cHh8OBzWZDSkkqleLUqVMApFIpcrlz+PbtGw6HAwBFUXC73aytrQHoCvidGVDqFCibgIO6lEM6nWZhYYHOzk5u3ryp2ycnJ7l79y5zc3MEAgEuXLjA9PQ0AwMDdHV1sbW1RSKRQNM02tvb9XX37t0jnU7T2Nio5z537hyAroCJiQmWl5cNddy4cePA+krJvNQ3goEAKaVhUOXj6dOnSClpaWkx2AOBANFolFgsRiAQ4Pz589y5c4eHDx9y//59AFwuF7du3aKxsVFfd+TIETY3N1lYWMDhcHDx4kX6+/uBnwp4+fJlQR3FCCjV5XKPQdNhvQ43Nzdz7do1fZNjY2OGy1BHR4dOzrNnz/6fl6FYLFbU9/z587JyHFoF/Ff46/8Q+esJ+A78YvHUKzu/UAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/pause_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADwklEQVRYheWY3WvkZBTGf6nTjrLCpOxQWL8my1JdFewUBPdmtxnwwpu1s+D9vGXBGy+aPyHzH6SCCIL2nav1rpmrvVjECYL1xjZVS6Wyu0FrWwoLGdfOtN1d6kWTTOYrnYpQah8IQ845Oe95nzznJBnl8PDwkHOModMu4LSROu0C/i1uK0qX7ctAzEm+TpxZAgDygMKRjH88gS+OM03AMK1NdiKV4ItjaElRCI8VVeV+scjjWq1n8Iqq0nTdLvu6rrPUQ3ZLisK6rkfnz3yf+8VitN5aPh+ttWWaxGuJH/0wDIwEvyfxxZFqAulcjjEh2Pc8tisVtqtV3n34kLSmRYE7UvJ3vc6GZTEuZVuSA6DZI3kzKCLEWrFI3XF4aXYWgEe2zZCqAvAkiB8rldrWTUKSAkJff/qOkGoAaU3jNdME4IKuszozw4aUXAlsAL9LSQPYsG0u+z6poHCAPaDRI3kDSMfOtxyH0akpLlsWAK+aZpTnSRCfFYLRmGqSkLTJgVugCezHDapKE3ga34jnsek4ZEslHtfrbNl2W5J9+isgnptcjk3HYTu4Pk7i0yD+2TEFx5HiiIReMg99xw25oV3gL99np1bjgZQsmya7wFixGAX9alnsAq+bJuRy/BLcwRB7wG6P5LuBL8SElBxkMnx76xbf6Do7sVlzEMTfKxS4oyjcURR+jimwF8IN9iMgPJKQagCNlRU2CwUARjIZrs3PM5rPR0GrUnJpepoLmsYrQrBcLvPIdbkYxCS1QJyAMV3nQ8/jB8Pgt0oFr1Dgxvw840JELTBeKvFiMAOyx7TCMEcS7zcDhhhgBjSB7MQE14O7+nLHomtSUq/X0TSNP2s1XtA0msCyZfF+MAyThuBBh21EVbkhJW8ZBl9PTvK9aTIuRNQCV4ToqqEfkjY5MAEN4FBV+y7qBsNvcW6Oxbm5yL5q21z3fdKqCqpKA9hxXcYCVey47pEqYn2+H8YD2Xyei1NT/OE4QGsInmQGJG0yleBri+saVDH4nse64/De7CwfxPrelZLqzAxrtk1eCN4Ugp+qVb7Sda4ZBnu+jysl+8CkYUTX3TUMfM9D0/Uo9xvT00DrMbgkJQ863kP0PrNgkMfgcU+BVCOBgO8siwbwjhBt9rwQLBgGNcsiLwRXi0U+Wljgnmlyt1wG4NLEBDdNEy2mrOdUlW3PY61c5vlMhrdLJW4GxIYKWKxUuupIIiBJAYMQoJzVz+HbisIntAj4lPaPoY9pEfA5/9OPoc8SfF8MmOPMKuC/wrn/Q+TcE/APuGhlNl9y9I4AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/play_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAEJElEQVRYheWXbUyVZRjHf/dzzuFwIA7ydjqKQ5TJFHG0tDal6EMT59JmSXPDii0wzXKylmtztLXR0sack9qYY81Vy+YbyaIPYKUZOhBcLd7iRIC8iigQR41T931OH46cOOE5POAHO+u/3R+e67r+931d/+d6rj238Hg8Hv7H0B50Ag8aIS/AviMtXB36Y878kBegvnWE1JwKTpzrnxM/5AUwaALlEeQWfUdRedus+boEyCio963M3Y0UfuSgsX3c588vaSOjoF7XgZm7G2nvveNnc95RZO5uJL+kTZd9KoQAg9FMuHU++482kv1mra48JqFLACkltmgDr26cz1MZ0ZxtHCZvfxP9N1wAKKWQUs64z5na64w5XXxS7d+uUREGdmxaQF3LCGdqr/vs+491MuZ0sXdrUuACNIGmCayxdmLsKZy73EP6SzX0DU/oKU2/APZYE69vTuL9gqUUv5KClJKKC4OAfgFOfz+IlJKay9cZv+Mf/3L2AmzzjBw+1QVA//AEp88PsGlNHMuSIgPuKYRA0zTCTEYessZiX7yS3/qdpG+roq5lbMac9AmgFEop33NUhAGpFG639xdCKYWc4r8X+oYnuNR8k2czbYw6XZxtGJ4Ws+/FJfQM3ebwqS72lrViMQveeD45eAFCoAmB2WTEbDISEW4hcdFyPJqFrJ1VfPnDteD8oN67kFIy4nRR1zLCyfMDHDzegZSSdavjAX0d8HFVN1JK9uQk83CMifKq7mkx61YnsDo1ivKvurjYdIO89YksTAgPXoAmEJogLMzgW5YIC0kpadgWLCbn7Wr2lDYH5s9cvleApo5RthTVUXj4J7oHnJS8lkZachSgT4Avvunh6UfjWJhgYUuWnaaOUVq6xqfFFb6whNHxCSxhkP9M4G9/EuJuB5hMRr9lMAjcSoLHK1IgGGc8AVBSsWKxleLt6QCsXRnn71dulAz8CRz/tpexcReJ8eFcarrJwoRwlFQcqeyktPARv9g16XEoqVieNA9rpGnG3CaHoNlk8NncSvGro5m/XLepPLiBjWttAfm6BJBSEhmuTSt8EjN1wOfV3vYvq3BQVuHw2atq+yjevoLofxUqpfSbOcEg8M6BMJO3lFvO33G0/UyM1Uz9Z5uZH2cOytctQLCEJgU48GmLn/2JDBtJ9ggu/HiNnc8t5cCuf972sZpudpU08PXFfnKzk2d13lRomobQBEajxtBgHx3trTy5ahFnD2Xq4usUQKGUO6BfKTdSKt472uRn35eXztitP5FSkZu9yM+Xm53MW6VX+PDEL/cQIPh5UzE5A652Oujv7WLPtlV8sGOZLi6ACPXr8NZ3r1B5rp151kiOvpPJhsfjZ8XX1QH/aQhBarKNmkNZ2GPDZk8P9Q6obhhh/WOxc+aHvAD3i5C/Dt8v/gYj07joKVyTbwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/play_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADyklEQVRYheWXMWwTVxjHf+f4cBIlxh6CqUTsi9QmJgOxgoIEQ+tEsliCmqVSO2HUThloVgZUFxg6MJgBlgwYhooqCFwECCFBbamERsQOGJGAFRk7kiMESuQQW8F3CWY4nNg1dl5goFb/0hvue9937/v/3/+900mFQqHA/xiGz93A50bdC3Dt2jEWF1MfXV/3AqRS/3D8+JdMTf3xUfV1L4AkScAqo6M/cP36sS3XCwkwNiatj2DQwr17Q7x6FVqfD4XcjI1JQgsGgxYymYdlMU3LEAxaCIXcQvFSSBIYjWA2F7hx4zfOnu0X6qMIIQFUFWTZQVfXL9hsQySTf3L7dj+5XPJ9o3rOZkgkAuRyS8zM+MvismzB6fSRTodJJALr8cnJEXK5JXp6/FSDJIHBAFYr2GwwPR3i1KmvyGTmRKiJC2AyKezZ42P//gD79p1HVSEe15tdXRUT4NmzAKoKiUQQVc2UzTmdI2zb5iAS8QGQzSZ5+vQCdvthrFZXdQIGXQRZBrMZFAUWFmY5edJJMvn3pj0JC6BpG8+ybEFVYW1NfxZxwPJykrm5MIpymGx2iefPgxU5fX1+FhdTTE76uHvXC2zH5fLVfG/RAbKsj8ZGsNvBaFzh9Omvefy49uUoLEAulyGdDjEzE+D+fR+qCg7HECDmgKkpP6oKe/f6MJkcRKOVtlaUIdraviES8ZNKhenuHqG1ValNoMQBxdHUBB0dsHNngXPnvufKlZ+q12/KHp3c/PwjLl3q5+bNIywsJBkYOE9bm25NEQfEYgHs9m8xmxU6O73Mzz/i5cuHFXl9fT6y2SUkaTsu14hIe2UOKI6GBnj7FgoFMBiqX9BGkQXyedixowePR981h8NdNq9pek41xGIBXr9eorlZIZUK0dKikM/DxISfQ4cCZbnt7W7yebDZXJhMlk17K3VAEWtrMDsLKytGjh79ne7u76rWCwmgaWA0WiqIF7G6Wn5H/BvRaABNg/HxM4yPn1mPP3kSxOPJ0NhYTlTT9HeKQJI2PoUAy8sQj0Nzs4UTJ2KYze0164UdUItg0QF37vjK4h0dbqxWhXg8zIEDPzM4uHHuo9EAly8fYXo6SG+vd0vrlaJ4CTY0wIsX+s7v3t3L8HBEqF7YAbV2pOiAW7d+LYt7PPDmTQZNo4Jkb6+Xq1dHCIf9FXNbcUDxCCSTkE5LHDz4I4ODo2LFgFTvv8MXLw7w4MFftLQ04fVeoKur+nn/EIQc8N9GgV27vmB4eILW1trn/UOoewfE42N0dm5t10tR9wJ8Kur+d/hT8Q4KGoLMFNqDmgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/play_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADnklEQVRYheWYT2gcZRjGf7OJia2NGRtBK8QdaQKtlWTNxR40mQWDiJQsYrABYSc0B8FDR28RSqeUQA8WJvVQIdZ8FQkkPTiBImpBZyVqljZ1E0ghEHG3UCuI7YwoMePKeNhNsuu6O5P2UBcfmMv75/ve95nnfWFG8n3f53+MyL0u4F6j7gkYfW+U3E+5O86vewLmr83T8XIH019M31F+3RMgRSTyfp6ht4cYnRjddn4oAqRj0uYjj8kkphLYP9ibfvWcinRMCnWhPCaTuZkpszl/OMhjMuo5NZS9ooMm8Nt8Tr1/ivib8VB1lKYHYx2iO6Mc7z1OoiPBbGaW+Nk42dvZgv/PQkwQxBWB67qYX5lldvl+GaPXILWSQlwRm3Z9Vi/Ev2hSFRGgAXgUUMBO23S+1sn1n6+Hai0cAR4oLQpGv4F4VTD5yiR4INLFYvOFmCCIeQEeWN9ZOGtOmU9/Tie6K4rxiQFA9laW89+eJxlLEnssVv1QqdhFM9AGHIDVG6vsG9rH3LW5wJpCK6C0QblZLtjyRYNHoAKyv2RJLadIPp3EdV2sjFURYw6Y5G7mMC4aaEKjNdKK8YJR++AGtghoBnYBT8Ja0xq9I71Mz9VejqEV4PzqYK/YiK8FxscGeJDoShT8IRRgfm6CB8ZLBtGWKOZnlbJOdCfoe6IP81OT1HIKvU9HaVNqH1yqgI2nBegCf6/P4bcOM/LuSNX00ApYXF0kfjLO8Nlhsj9mmUxOEnu8KM0QO0B8KRh4agDlYQXtoMbi6iKZXKYizjhk4DourQ2t6P16cG0RKgloBhqBvwohUkP1Bd0YfAOwDt1KN6ZWeGvqAbXcHzACwha4t10UWcFetlF2K7AO5kUT8YYoi1X3q7AOsb0x5J1ycG2lBGwgDyxA4++NTJ2ZYvDgYNX0cAR4IDfJlY2XXlhjBMQlAR6MW+OMW+ObdmvOwtEc5Af+0ajH1n4JQukIANwC0iA/KLP04RLtu9trpodWQM0ZLyrA+MgoM6tdKsojCqmFFEcTRzFf35p7cUkwfHoY6xsLrV/b3n2l2FDAfcD3wFXoeaaHhXcWQqWHVkDNN1JUwIkPTpTbk+D85oAH2vNamUvr19DP6JgzZiUB21HABgFLIK1IHEkeYWJkImQy4Nc54ifjPs/i7zi0w5+5PLPt/HAK+A/Dx2dP5x7Sp9O0P1R73v8Nku/X9w+RC1cvMNhTfcsHoe4JuFvU/efw3eJvwJswMInEJWIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/play_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAD70lEQVRYheWYTSh0bxjGf3MYw5iIWWChmVA0Gdkgo1n5KCJipTQ2StZWNpSNbAyyQkmTnQULJArJMMlHPiYsiBJSGIlzzmDexdtMJq+Zw7t4/9P/qlPn3M99Pee+r3Od5+kclc/n8/E/hvCvC/jXiHgBhoeHubm5+TE/4gU4PDykvr6epaWlH/EjXgBBEHh/f6ejo4PR0dFv86OVJHV3dwfONRoNRqORoqIijEYjAOPj45yfn9PZ2Rl2rt7eXpqbm0lNTQ3ERFFkYGCA1NRUmpubw8Y/QqVSodFo0Ol0jIyM4Ha76evrU9IWoNABkiQRFxdHSUkJWVlZ7O3tMTIywv39PQBerxdJksLOs729zePjI2tra0Hx2NhYrFYrJycnbG9vB+IzMzM8Pj5SUVHxdQOCgCAIpKSkYDQa2djYoKmpidvbWyWtKRdAp9NRWlpKQ0MDdXV1SJLE5uYmoFwAl8uFJEns7Ozw8vISNGaxWNBqtczNzQFwd3fH+vo6ZrOZtLS0L+dUqVSoVCrUajVJSUmYTCYuLy9pbGzE7XaHrUmxALIsB641Gg2SJPH6+gqALMthBbi7u8PtdpOfn4/H42Fvb+9TTk1NDdfX18zOzuJwOBAEIeTTh98CCIKAWq1GrVYTFxdHdnY20dHRtLS0sLq6GpKvWACPx8Px8TFOp5OpqSkkScJsNgPKHLCwsIAkSVRWVqLT6Zifn/+Uk5eXh8FgYH5+nsPDQ6xWK8nJyaEbEISAA/yHVqvFZDJhMBhob29ncHDwa76C/pFlmdPTU3p6ehgeHubq6gqbzUZ6ejoAr6+vQQ75E5aXl8nNzUWv11NUVMTp6SkXFxef8qqrq/F4PERFRVFaWhq2to+vwMdDEATe3t5+Nyl83aaiXUAURQwGQ2AlNplMQeOyLCOK4pf8lZUV7u/vSUxMxO12k5SUhCiKzMzM0NbWFpSbk5ODKIpkZGSg1WrD1uZfBGNiYgKxt7c39vf3eX5+ZmBggOLi4i/5igSQZZmYmJhPjfvh9XpDOmBxcRFZlpmenmZ6ejoQX1tbw2azER8f/+l+Xq9XSWkAgTUA4OHhgd3dXRISEnA4HOj1+pBcxQ4I1aDfARMTE0Fxs9lMSkoKW1tb1NbW0traGhhbWFjAbrfjdDopLy//1v0+wr8GREVFcXFxwcHBAYWFhdjtdkV8xQ4I9UT8DhgbGwuK22w2np6ekGWZsrKyoLHy8nKGhoaYnJz8JMB3HODfBY6Ojjg7O8NmswUJHRa+CEdXV5fPYrH4qqqqfC6X69t8RQ74ryMzM5P+/v6wW+afoPL5IvuHyObmJgUFBT/mR7wAf4uI/xz+W/wCOnmf4nT7HYQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/play_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wNw8tFYYAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADjElEQVRYheWYT2gUZxjGf7Omlvwp+YRYjJruWIzGgk1qFS+iu7TgqbgXQU/ZoBRKD87BS0rBUS+5ObkUioeMl4B6cCPSenMGhCitaWapElP/TKKmJdU6Q2Sm0dXxkNm4uzE7Ez3YpQ98h33nffZ732ef94VZKQiCgP8xEu+6gHeNmhfgp95eHk9MvDG/5gWwr1zh+/XryZ8+/Ub8mhcgIUkEhQI/7N/Pxd7epfPjJI1I0vyxhOB2JsOMYcw/H0+lGJGkWBdaQuCPjpbFnjsOlhCMp1Kx4qWQgHpgbRBwrq+PH9PpWHUUEUsAH3iRTNJy5AgNmQx/DQ2RT6eZtW0AnoY5UZjWdZ64Lvc1rSy+TAhWqip/mybTuj4fv6MoPHFd1lTkVzaQANqAT4C8YdDX3o47ORmntXgCeACyzEeqSruus25gAA+4Hxb7bzEnApO6PsfL5Sg4Ttmz1YrCi2SSm6oKgG/b2KdOIbq7aezqWvQ7pfC8B6wEtgEPb93iWEcHk5cvR9YU2wGzpSQh8IFC+HmWaAd4ts2UadLS3c2M6/JnLrcgp13TeDwxwU1VZSSbpdDczLpQkGoNJIDl4WkCPgMafJ++nTu5EbEcYztgxnGYNgzu6jqjqooHfJjJAHMCRDlgTNPwgA2qipRMcv01tl6VydC0axe/axr3TJM2RaFBliPrSzDngOJpArYCHUHAiX37OH/wYFVuJDxgyrK4kE5zqaeHh7bN5wMDrAitGWcEbug6LXv20CjLrM1mmbIs/qlYhgCbVBXXdSk0N7NBUSJrS/BqBEqPBDwr5lRZ0HWRNzBn75bOTnaEv9qaiq0cNQJjuo7rusiyzAPDoF6W8YHfNI0vSpYeQGsqhQ+s6OpiuRCRtUm8ckARBeAXYKaujsODg2zcu3dRfiwBPCAQYkHjRUSNwGi4/Ib7+xnu75+PX8/l2OE4vF/RqEf5zqmG0iUI8AgYBhqF4Hg+zwdtbVX5sR1QraCiA8yKhZVMpRCyzLhpsv3QIXaXzL2l6wz19DCWy9GZzS7pvlIUR2AZcBv4Ffh0yxa+vnYtFj+2A6IE8ICfjx4ti38J+I6DB2yuaLIzm+WcomBo2gIBluqABGABY5LEVwcOsPvkyZhsIKhxDKbTwbcQfFdfH/xx5syS+bEc8F+GFATIra18c/UqjRHzvgi/tv8QuXP2LB9X2fJRqHkB3hY1/zr8tngJ3kU5hNPkqc8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/prev_blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////L1+/H0+/Dz+uTr+OHn9Nji9Nfh9NXf8tPd8NHb7svY8crX8MnW78jV7sfU7cbT7MXS68TR6sPQ6sHP6brK6rbH57LD463B56zA5qq+5Km945614pqy3pax45Sv4ZKt35Cr3Y6p24yn2omn34ql2Iij1oah1ISf0nyd3Hmb2neVz2+T2GyR1mGGzF+H01yE0FmBzVZ9ylV6wlN6x055zE10wUdzxUpxv0Ryy0Rvw0ZuvDpsykFsvz1rxDNlxDZkvi5jxy9hwDJhuipfxCtdvCZbwCtatCdZuSJXvB5TuCBSshpPtRxOrxZLsRJHrQ5Dqgk/pv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFIALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGUlKLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0GsPCwLgh6sQTwpAYILs7MLJEEGgwZBJKJEOR8qREQEAB9EKh8vRC2CDEQvH9gfBAfOg8gHokYwghhGIAAgRg2CNUaCDeaGNT+DPzWjSTGCFUkhACFJHAAQ4EOIIAf9DHFIkgFAhiQcRim58UDDDSUIAIiYKKOIEg2CHigZqUTGIAElAchQImAUk5dMkGwQNIKJDiBMOgyCwITGiBEzB7lgwtMFKSc9IkQgVMJJhARIB0VwUuKQBSdDnFgg9cSGIRNPJAAAa0KQhCdlDy15sqQUFByGSU5AmQBgwJEmBQBMeHui74m8glZAWVEqyg5DKKJQEHQhygwAFKJInrxYkIIoClRp3sx50OTPUTqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/prev_gold.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////r67/n57/j47/f37/T03+7u3+/vz+7uz+rqz+rqv+joz+jov+fnv+Xlz+Xlv+Tkv+Liv+Dgv9/fv9/fr93dv9zcv9nZr9ran9jYn9bWn9PTr9TUn9TUf9LSj9HRf87Of8/Pb8zMj8vLf8jIf8rKX8XFf8bGX8LCf8TET7+/f7y8f8DAT7m5f7q6P7Ozb7a2P7GxP7CwT7CwL62tP6+vH6+vD6ioP6qqAKamL6WlH6SkD6SkAKGhL5+fP56eT5qaP5ubL56eD56eAJqaH5aWP5iYD5iYAJSUH5OTD5KSAImJH4yMAIeHD4WFAIGBD4CAAHl5AHNzAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmzisNikKgh2sODYlAYIKs7MKITgHgwc4IaI8NR8nPDwFAB88Jx8uPCyCDDwuH9gfBQjOg8gIokMwghhDIAAgQw2CM0OCDeaGMzuDOzOjRzGCFEcjACNHHgAQoEOIoAf9DHk4kgFAhiMeRinJAUFDDiUJAJCYSMOIEg2CICgZqYTGoAElAdBQMmAUk5dMknAQZIJJDyJMRAyKwOSGCRMzB8lgwlMGKSdBJEgghMKJhAVIB0lwguLQBSdInFwgBcWHIRVQJgAAq0LQBChlDzWB0qRUFCCGSVZEqQCAwJInBgBUeLui74q8gl5EeVFKShFDLaRYELRByg8AFqRInrxYkAMpDlRp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/prev_green.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP///+/27+/37+/17+/079/u39/o38/mz8/lz8/hz8/fz8/bz7/ev7/bv7/cv7/Zv7/Yv7/Wv7/Uv7/Tv7/Qv7/Rv6/Qr6/Kr6/Er5/Jn5/Gn5/En5/Cn4+9j3+9f4+3j3+6f3+3f3+zf3+wf2+1b3+tf3+qf3+nf3+kf3+gf1+tX1+oX0+lT2+Yb0+gTz+XP0+OTz+TPz+NPz+JPz+EPy+KL099Tz97Px+GHy9/Lz92Py96Lz9xPw+EDx96Hy90Lw93Dx9wHwB8AA9xDx9qHwB1AA9rDwBvAA9mDx9fHwBoAABiAA9aDwBcAA9UDwBVAABQAABJAABCAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0KsPSwMgh6sQj0qAoIMs7MMJEIHgwdCJKJFOCArRUUFACBFKyAvRS6CDkUvINggBQjOg8gIokcxghlHIQAhRw2CNUeCDeaGNUCDQDWjSjKCFkoiACJKHgAI4GOIoAf9DHVQogGABiUdRi3JAWFDjiUJAIyYOMPIkg2CICwZuWTGoAElAcxYMmBUk5dNkHAQVKLJjiBNPgyK0IRGiRIzB8FowhMGqSc/JEggZOKJBAVIB0l4YuLQhSdEnlwgBeWGoRNQJgAAe0LQBChlDzGBwqRUFB2GSVBEqQCAQBInBgBUeIuiL4q8glpEaVFKCg9DKaRQEIRBig0AFKRInrxY0AIpC1Rp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/prev_grey.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////f39/b29vX19fT09O7u7ujo6Ofn5+bm5uLi4t/f397e3tzc3Nra2tjY2NfX19XV1dPT09HR0dDQ0MrKysjIyMXFxcTExMPDw8DAwL6+vry8vLm5ubi4uLW1tbKysrCwsK+vr6ysrKurq6ioqKSkpKOjo6GhoZubm5iYmJaWlpGRkZCQkI2NjYuLi4qKioiIiIeHh4GBgX5+fn19fXx8fHt7e3p6enZ2dnV1dXNzc3JycnFxcW5ubmxsbGtra2hoaGVlZV9fX1tbW1dXV1RUVFFRUUlJSUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGSUmLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmzKsMCQKghmsMjAgAYIKs7MKHTIHgwcyHaI3LxsiNzcFABs3IhsoNyaCCzcoG9gbBQjOg8gIojoqghQ6HAAcOgyCLTqCDOaGLTaDNi2jPiyCEj4eAB4+GgAQMCOHoAb9DGnwUQFABR8aRgWR4cCCjCAJAHyY6KJHEAuCHAQZGcTFoAElAbgIMmCUkJdCgGAQFEJIjR1Czgl6ICRGiBAzB60QwnMFKSI4IEAgNIIIBAVIB0EgMuIQBSI/iFAgZaSGIRJGIgAAS0JQBCNlDw0xMqTUERyGSUockQCAgJAiBgBIeFuib4m8glIcSVEKCQ9DJ5BMEHQBCQ0AE5BInrz4HZJ1qjJr3izoiOfPnjmLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/images/prev_red.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////rv7/nv7/zv7/fv7/jf3+/f3/bPz/TPz+7Pz+vPz+XPz/C/v/K/v+6/v+u/v+m/v+a/v+G/v+S/v9+/v92/v+evr92vr9Svr+Wfn+Kfn92fn9qfn92Pj9SPj+Z/f+F/f9x/f9h/f9J/f81/f8l/f8R/f79/f7p/f+Nvb7dvb+BfX9pfX9xPT9ZPT7tPT6BPT9M/P8s/P8Q/P7w/P7Q/P6Y/P58/P5g/P8cvL7YvL64vL6cvL8sfH7ofH6gfH6AfH9APD48fH74PD7YPD6sPD6IPD80AAJAPD8QAAIcPD7oAALEAAKYAAJwAAJMAAIkAAIAAAHYAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0esQS0Ngh+sR0ErA4INs7MNKUcHgwdHKaJJPSAsSUkFACBJLCAxSS6CDEkxINggBQjOg8gIoksyghlLIQAhSw6COUuCDuaGOUODQzmjTDOCFkwiACJMHgAI4IOIoAf9DHVgogGABiYdRjXRAWGDjiYJAIyYSKNIkw2CIDQZ2YTGIAElAdBoImCUk5dOjHAQRMLJjh9OPAyK4KQGCRIzB71wwvMFqSc8JkwgVOLJBAVIB014UuLQhSdAnlwgBcWGIRNQJAAAa0KQBChlDyGBgqRUlBuGSU5EoQCAgBAlBgBQeHui74m8glREUVFKCg5DKKRUEIRBCgwAFaRInrxY0AIpC1Rp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/lytebox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I2xiT3ZlcmxheSB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB6LWluZGV4OiA5OTk5ODsgd2lkdGg6IDEwMCU7IGhlaWdodDogNTAwcHg7IH0NCgkjbGJPdmVybGF5LmdyZXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9DQoJI2xiT3ZlcmxheS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMwMDAwOyB9DQoJI2xiT3ZlcmxheS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6ICMwMDMzMDA7IH0NCgkjbGJPdmVybGF5LmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDExRDUwOyB9DQoJI2xiT3ZlcmxheS5nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjogIzY2NjYwMDsgfQ0KDQojbGJNYWluIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgei1pbmRleDogOTk5OTk7IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDA7IH0NCiNsYk1haW4gYSBpbWcgeyBib3JkZXI6IG5vbmU7IH0NCg0KI2xiT3V0ZXJDb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgbWFyZ2luOiAwIGF1dG87IH0NCgkjbGJPdXRlckNvbnRhaW5lci5ncmV5IHsgYm9yZGVyOiAzcHggc29saWQgIzg4ODg4ODsgfQ0KCSNsYk91dGVyQ29udGFpbmVyLnJlZCB7IGJvcmRlcjogM3B4IHNvbGlkICNERDAwMDA7IH0NCgkjbGJPdXRlckNvbnRhaW5lci5ncmVlbiB7IGJvcmRlcjogM3B4IHNvbGlkICMwMEIwMDA7IH0NCgkjbGJPdXRlckNvbnRhaW5lci5ibHVlIHsgYm9yZGVyOiAzcHggc29saWQgIzVGODlEODsgfQ0KCSNsYk91dGVyQ29udGFpbmVyLmdvbGQgeyBib3JkZXI6IDNweCBzb2xpZCAjQjBCMDAwOyB9DQoNCiNsYkRldGFpbHNDb250YWluZXIgewlmb250OiAxMHB4IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDEwMCU7IGxpbmUtaGVpZ2h0OiAxLjRlbTsJb3ZlcmZsb3c6IGF1dG87IG1hcmdpbjogMCBhdXRvOyB9DQoJI2xiRGV0YWlsc0NvbnRhaW5lci5ncmV5IHsgYm9yZGVyOiAzcHggc29saWQgIzg4ODg4ODsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIucmVkIHsgYm9yZGVyOiAzcHggc29saWQgI0REMDAwMDsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIuZ3JlZW4geyBib3JkZXI6IDNweCBzb2xpZCAjMDBCMDAwOyBib3JkZXItdG9wOiBub25lOyB9DQoJI2xiRGV0YWlsc0NvbnRhaW5lci5ibHVlIHsgYm9yZGVyOiAzcHggc29saWQgIzVGODlEODsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIuZ29sZCB7IGJvcmRlcjogM3B4IHNvbGlkICNCMEIwMDA7IGJvcmRlci10b3A6IG5vbmU7IH0NCg0KI2xiSW1hZ2VDb250YWluZXIsICNsYklmcmFtZUNvbnRhaW5lciB7IHBhZGRpbmc6IDEwcHg7IH0NCiNsYkxvYWRpbmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0NSU7IGxlZnQ6IDAlOyBoZWlnaHQ6IDMycHg7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAwOyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2xvYWRpbmcuZ2lmKSBjZW50ZXIgbm8tcmVwZWF0Ow0KfQ0KDQojbGJIb3Zlck5hdiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB6LWluZGV4OiAxMDsgfQ0KI2xiSW1hZ2VDb250YWluZXI+I2xiSG92ZXJOYXYgeyBsZWZ0OiAwOyB9DQojbGJIb3Zlck5hdiBhIHsgb3V0bGluZTogbm9uZTsgfQ0KDQojbGJQcmV2IHsgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoaW1hZ2VzL2JsYW5rLmdpZikgbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgbGVmdDogMDsgZmxvYXQ6IGxlZnQ7IH0NCgkjbGJQcmV2LmdyZXk6aG92ZXIsICNsYlByZXYuZ3JleTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wcmV2X2dyZXkuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LnJlZDpob3ZlciwgI2xiUHJldi5yZWQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvcHJldl9yZWQuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LmdyZWVuOmhvdmVyLCAjbGJQcmV2LmdyZWVuOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3ByZXZfZ3JlZW4uZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LmJsdWU6aG92ZXIsICNsYlByZXYuYmx1ZTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wcmV2X2JsdWUuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LmdvbGQ6aG92ZXIsICNsYlByZXYuZ29sZDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wcmV2X2dvbGQuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkNCiNsYk5leHQgeyB3aWR0aDogNDklOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChpbWFnZXMvYmxhbmsuZ2lmKSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyByaWdodDogMDsgZmxvYXQ6IHJpZ2h0OyB9DQoJI2xiTmV4dC5ncmV5OmhvdmVyLCAjbGJOZXh0LmdyZXk6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvbmV4dF9ncmV5LmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQ0KCSNsYk5leHQucmVkOmhvdmVyLCAjbGJOZXh0LnJlZDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9uZXh0X3JlZC5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJOZXh0LmdyZWVuOmhvdmVyLCAjbGJOZXh0LmdyZWVuOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL25leHRfZ3JlZW4uZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiTmV4dC5ibHVlOmhvdmVyLCAjbGJOZXh0LmJsdWU6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvbmV4dF9ibHVlLmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQ0KCSNsYk5leHQuZ29sZDpob3ZlciwgI2xiTmV4dC5nb2xkOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL25leHRfZ29sZC5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0NCg0KI2xiUHJldjIsICNsYk5leHQyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmb250LXdlaWdodDogYm9sZDsgfQ0KCSNsYlByZXYyLmdyZXksICNsYk5leHQyLmdyZXksICNsYlNwYWNlci5ncmV5IHsgY29sb3I6ICMzMzMzMzM7IH0NCgkjbGJQcmV2Mi5yZWQsICNsYk5leHQyLnJlZCwgI2xiU3BhY2VyLnJlZCB7IGNvbG9yOiAjNjIwMDAwOyB9DQoJI2xiUHJldjIuZ3JlZW4sICNsYk5leHQyLmdyZWVuLCAjbGJTcGFjZXIuZ3JlZW4geyBjb2xvcjogIzAwMzMwMDsgfQ0KCSNsYlByZXYyLmJsdWUsICNsYk5leHQyLmJsdWUsICNsYlNwYWNlci5ibHVlIHsgY29sb3I6ICMwMTM3OUU7IH0NCgkjbGJQcmV2Mi5nb2xkLCAjbGJOZXh0Mi5nb2xkLCAjbGJTcGFjZXIuZ29sZCB7IGNvbG9yOiAjNjY2NjAwOyB9DQoJDQojbGJQcmV2Ml9PZmYsICNsYk5leHQyX09mZiB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQoJI2xiUHJldjJfT2ZmLmdyZXksICNsYk5leHQyX09mZi5ncmV5IHsgY29sb3I6ICNDQ0NDQ0M7IH0NCgkjbGJQcmV2Ml9PZmYucmVkLCAjbGJOZXh0Ml9PZmYucmVkIHsgY29sb3I6ICNGRkNDQ0M7IH0NCgkjbGJQcmV2Ml9PZmYuZ3JlZW4sICNsYk5leHQyX09mZi5ncmVlbiB7IGNvbG9yOiAjODJGRjgyOyB9DQoJI2xiUHJldjJfT2ZmLmJsdWUsICNsYk5leHQyX09mZi5ibHVlIHsgY29sb3I6ICNCN0NBRUU7IH0NCgkjbGJQcmV2Ml9PZmYuZ29sZCwgI2xiTmV4dDJfT2ZmLmdvbGQgeyBjb2xvcjogI0UxRTEwMDsgfQ0KCQ0KI2xiRGV0YWlsc0RhdGEgeyBwYWRkaW5nOiAwIDEwcHg7IH0NCgkjbGJEZXRhaWxzRGF0YS5ncmV5IHsgY29sb3I6ICMzMzMzMzM7IH0NCgkjbGJEZXRhaWxzRGF0YS5yZWQgeyBjb2xvcjogIzYyMDAwMDsgfQ0KCSNsYkRldGFpbHNEYXRhLmdyZWVuIHsgY29sb3I6ICMwMDMzMDA7IH0NCgkjbGJEZXRhaWxzRGF0YS5ibHVlIHsgY29sb3I6ICMwMTM3OUU7IH0NCgkjbGJEZXRhaWxzRGF0YS5nb2xkIHsgY29sb3I6ICM2NjY2MDA7IH0NCg0KI2xiRGV0YWlscyB7IHdpZHRoOiA2MCU7IGZsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiBsZWZ0OyB9DQojbGJDYXB0aW9uIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQojbGJOdW1iZXJEaXNwbGF5IHsgZmxvYXQ6IGxlZnQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWJvdHRvbTogMS4wZW07IH0NCiNsYk5hdkRpc3BsYXkgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctYm90dG9tOiAxLjBlbTsgfQ0KDQojbGJDbG9zZSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9DQoJI2xiQ2xvc2UuZ3JleSB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvY2xvc2VfZ3JleS5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYkNsb3NlLnJlZCB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvY2xvc2VfcmVkLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiQ2xvc2UuZ3JlZW4geyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2Nsb3NlX2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiQ2xvc2UuYmx1ZSB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvY2xvc2VfYmx1ZS5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYkNsb3NlLmdvbGQgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2Nsb3NlX2dvbGQucG5nKSBuby1yZXBlYXQ7IH0NCg0KI2xiUGxheSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9DQoJI2xiUGxheS5ncmV5IHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wbGF5X2dyZXkucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQbGF5LnJlZCB7IGJhY2tncm91bmQ6IHVybChpbWFnZXMvcGxheV9yZWQucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQbGF5LmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wbGF5X2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiUGxheS5ibHVlIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wbGF5X2JsdWUucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQbGF5LmdvbGQgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3BsYXlfZ29sZC5wbmcpIG5vLXJlcGVhdDsgfQ0KCQ0KI2xiUGF1c2UgeyB3aWR0aDogNjRweDsgaGVpZ2h0OiAyOHB4OyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDFweDsgfQ0KCSNsYlBhdXNlLmdyZXkgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3BhdXNlX2dyZXkucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQYXVzZS5yZWQgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3BhdXNlX3JlZC5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBhdXNlLmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wYXVzZV9ncmVlbi5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBhdXNlLmJsdWUgeyBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3BhdXNlX2JsdWUucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQYXVzZS5nb2xkIHsgYmFja2dyb3VuZDogdXJsKGltYWdlcy9wYXVzZV9nb2xkLnBuZykgbm8tcmVwZWF0OyB9]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/lytebox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8vCUx5dGVCb3ggdjMuMjINCi8vDQovLwkgQXV0aG9yOiBNYXJrdXMgRi4gSGF5DQovLyAgV2Vic2l0ZTogaHR0cDovL3d3dy5kb2xlbS5jb20vbHl0ZWJveA0KLy8JICAgRGF0ZTogT2N0b2JlciAyLCAyMDA3DQovLwlMaWNlbnNlOiBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uIDMuMCBMaWNlbnNlIChodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvKQ0KLy8gQnJvd3NlcnM6IFRlc3RlZCBzdWNjZXNzZnVsbHkgb24gV2luWFAgd2l0aCB0aGUgZm9sbG93aW5nIGJyb3dzZXJzICh1c2luZyBubyBET0NUWVBFIGFuZCBTdHJpY3QvVHJhbnNpdGlvbmFsL0xvb3NlIERPQ1RZUEVTKToNCi8vCQkJCSogRmlyZWZveDogMi4wLjAuNywgMS41LjAuMTINCi8vCQkJCSogSW50ZXJuZXQgRXhwbG9yZXI6IDcuMCwgNi4wIFNQMiwgNS41IFNQMg0KLy8JCQkJKiBPcGVyYTogOS4yMw0KLy8NCi8vIFJlbGVhc2VzOiBGb3IgdXAtdG8tZGF0ZSBhbmQgY29tcGxldGUgcmVsZWFzZSBpbmZvcm1hdGlvbiwgdmlzaXQgaHR0cDovL3d3dy5kb2xlbS5jb20vZm9ydW0vc2hvd3RocmVhZC5waHA/dGlkPTYyDQovLwkJCQkqIHYzLjIyICgxMC8wMi8wNykNCi8vCQkJCSogdjMuMjEgKDA5LzMwLzA3KQ0KLy8JCQkJKiB2My4yMCAoMDcvMTIvMDcpDQovLwkJCQkqIHYzLjEwICgwNS8yOC8wNykNCi8vCQkJCSogdjMuMDAgKDA1LzE1LzA3KQ0KLy8JCQkJKiB2Mi4wMiAoMTEvMTMvMDYpDQovLw0KLy8gICBDcmVkaXQ6IEx5dGVCb3ggd2FzIG9yaWdpbmFsbHkgZGVyaXZlZCBmcm9tIHRoZSBMaWdodGJveCBjbGFzcyAodjIuMDIpIHRoYXQgd2FzIHdyaXR0ZW4gYnkgTG9rZXNoIERoYWthci4gRm9yIG1vcmUNCi8vCQkJIGluZm9ybWF0aW9uIHBsZWFzZSB2aXNpdCBodHRwOi8vaHVkZGxldG9nZXRoZXIuY29tL3Byb2plY3RzL2xpZ2h0Ym94Mi8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQpBcnJheS5wcm90b3R5cGUucmVtb3ZlRHVwbGljYXRlcyA9IGZ1bmN0aW9uICgpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7IGlmICh0aGlzW2ldWzBdID09IHRoaXNbaS0xXVswXSkgeyB0aGlzLnNwbGljZShpLDEpOyB9IH0gfQ0KQXJyYXkucHJvdG90eXBlLmVtcHR5ID0gZnVuY3Rpb24gKCkgeyBmb3IgKHZhciBpID0gMDsgaSA8PSB0aGlzLmxlbmd0aDsgaSsrKSB7IHRoaXMuc2hpZnQoKTsgfSB9DQpTdHJpbmcucHJvdG90eXBlLnRyaW0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJyk7IH0NCg0KZnVuY3Rpb24gTHl0ZUJveCgpIHsNCgkvKioqIFN0YXJ0IEdsb2JhbCBDb25maWd1cmF0aW9uICoqKi8NCgkJdGhpcy50aGVtZQkJCQk9ICdncmV5JzsJLy8gdGhlbWVzOiBncmV5IChkZWZhdWx0KSwgcmVkLCBncmVlbiwgYmx1ZSwgZ29sZA0KCQl0aGlzLmhpZGVGbGFzaAkJCT0gdHJ1ZTsJCS8vIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IEZsYXNoIG9iamVjdHMgc2hvdWxkIGJlIGhpZGRlbg0KCQl0aGlzLm91dGVyQm9yZGVyCQk9IHRydWU7CQkvLyBjb250cm9scyB3aGV0aGVyIHRvIHNob3cgdGhlIG91dGVyIGdyZXkgKG9yIHRoZW1lKSBib3JkZXINCgkJdGhpcy5yZXNpemVTcGVlZAkJPSA1OwkJLy8gY29udHJvbHMgdGhlIHNwZWVkIG9mIHRoZSBpbWFnZSByZXNpemluZyAoMT1zbG93ZXN0IGFuZCAxMD1mYXN0ZXN0KQ0KCQl0aGlzLm1heE9wYWNpdHkJCQk9IDgwOwkJLy8gaGlnaGVyIG9wYWNpdHkgPSBkYXJrZXIgb3ZlcmxheSwgbG93ZXIgb3BhY2l0eSA9IGxpZ2h0ZXIgb3ZlcmxheQ0KCQl0aGlzLm5hdlR5cGUJCQk9IDE7CQkvLyAxID0gIlByZXYvTmV4dCIgYnV0dG9ucyBvbiB0b3AgbGVmdCBhbmQgbGVmdCAoZGVmYXVsdCksIDIgPSAiPDwgcHJldiB8IG5leHQgPj4iIGxpbmtzIG5leHQgdG8gaW1hZ2UgbnVtYmVyDQoJCXRoaXMuYXV0b1Jlc2l6ZQkJCT0gdHJ1ZTsJCS8vIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IGltYWdlcyBzaG91bGQgYmUgcmVzaXplZCBpZiBsYXJnZXIgdGhhbiB0aGUgYnJvd3NlciB3aW5kb3cgZGltZW5zaW9ucw0KCQl0aGlzLmRvQW5pbWF0aW9ucwkJPSB0cnVlOwkJLy8gY29udHJvbHMgd2hldGhlciBvciBub3QgImFuaW1hdGUiIEx5dGVib3gsIGkuZS4gcmVzaXplIHRyYW5zaXRpb24gYmV0d2VlbiBpbWFnZXMsIGZhZGUgaW4vb3V0IGVmZmVjdHMsIGV0Yy4NCgkJDQoJCXRoaXMuYm9yZGVyU2l6ZQkJCT0gMTI7CQkvLyBpZiB5b3UgYWRqdXN0IHRoZSBwYWRkaW5nIGluIHRoZSBDU1MsIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHRoaXMgdmFyaWFibGUgLS0gb3RoZXJ3aXNlLCBsZWF2ZSB0aGlzIGFsb25lLi4uDQoJLyoqKiBFbmQgR2xvYmFsIENvbmZpZ3VyYXRpb24gKioqLw0KCQ0KCS8qKiogQ29uZmlndXJlIFNsaWRlc2hvdyBPcHRpb25zICoqKi8NCgkJdGhpcy5zbGlkZUludGVydmFsCQk9IDQwMDA7CQkvLyBDaGFuZ2UgdmFsdWUgKG1pbGxpc2Vjb25kcykgdG8gaW5jcmVhc2UvZGVjcmVhc2UgdGhlIHRpbWUgYmV0d2VlbiAic2xpZGVzIiAoMTAwMDAgPSAxMCBzZWNvbmRzKQ0KCQl0aGlzLnNob3dOYXZpZ2F0aW9uCQk9IHRydWU7CQkvLyB0cnVlIHRvIGRpc3BsYXkgTmV4dC9QcmV2IGJ1dHRvbnMvdGV4dCBkdXJpbmcgc2xpZGVzaG93LCBmYWxzZSB0byBoaWRlDQoJCXRoaXMuc2hvd0Nsb3NlCQkJPSB0cnVlOwkJLy8gdHJ1ZSB0byBkaXNwbGF5IHRoZSBDbG9zZSBidXR0b24sIGZhbHNlIHRvIGhpZGUNCgkJdGhpcy5zaG93RGV0YWlscwkJPSB0cnVlOwkJLy8gdHJ1ZSB0byBkaXNwbGF5IGltYWdlIGRldGFpbHMgKGNhcHRpb24sIGNvdW50KSwgZmFsc2UgdG8gaGlkZQ0KCQl0aGlzLnNob3dQbGF5UGF1c2UJCT0gdHJ1ZTsJCS8vIHRydWUgdG8gZGlzcGxheSBwYXVzZS9wbGF5IGJ1dHRvbnMgbmV4dCB0byBjbG9zZSBidXR0b24sIGZhbHNlIHRvIGhpZGUNCgkJdGhpcy5hdXRvRW5kCQkJPSB0cnVlOwkJLy8gdHJ1ZSB0byBhdXRvbWF0aWNhbGx5IGNsb3NlIEx5dGVib3ggYWZ0ZXIgdGhlIGxhc3QgaW1hZ2UgaXMgcmVhY2hlZCwgZmFsc2UgdG8ga2VlcCBvcGVuDQoJCXRoaXMucGF1c2VPbk5leHRDbGljawk9IGZhbHNlOwkvLyB0cnVlIHRvIHBhdXNlIHRoZSBzbGlkZXNob3cgd2hlbiB0aGUgIk5leHQiIGJ1dHRvbiBpcyBjbGlja2VkDQogICAgICAgIHRoaXMucGF1c2VPblByZXZDbGljayAJPSB0cnVlOwkJLy8gdHJ1ZSB0byBwYXVzZSB0aGUgc2xpZGVzaG93IHdoZW4gdGhlICJQcmV2IiBidXR0b24gaXMgY2xpY2tlZA0KCS8qKiogRW5kIFNsaWRlc2hvdyBDb25maWd1cmF0aW9uICoqKi8NCgkNCglpZih0aGlzLnJlc2l6ZVNwZWVkID4gMTApIHsgdGhpcy5yZXNpemVTcGVlZCA9IDEwOyB9DQoJaWYodGhpcy5yZXNpemVTcGVlZCA8IDEpIHsgcmVzaXplU3BlZWQgPSAxOyB9DQoJdGhpcy5yZXNpemVEdXJhdGlvbiA9ICgxMSAtIHRoaXMucmVzaXplU3BlZWQpICogMC4xNTsNCgl0aGlzLnJlc2l6ZVdUaW1lckFycmF5CQk9IG5ldyBBcnJheSgpOw0KCXRoaXMucmVzaXplV1RpbWVyQ291bnQJCT0gMDsNCgl0aGlzLnJlc2l6ZUhUaW1lckFycmF5CQk9IG5ldyBBcnJheSgpOw0KCXRoaXMucmVzaXplSFRpbWVyQ291bnQJCT0gMDsNCgl0aGlzLnNob3dDb250ZW50VGltZXJBcnJheQk9IG5ldyBBcnJheSgpOw0KCXRoaXMuc2hvd0NvbnRlbnRUaW1lckNvdW50CT0gMDsNCgl0aGlzLm92ZXJsYXlUaW1lckFycmF5CQk9IG5ldyBBcnJheSgpOw0KCXRoaXMub3ZlcmxheVRpbWVyQ291bnQJCT0gMDsNCgl0aGlzLmltYWdlVGltZXJBcnJheQkJPSBuZXcgQXJyYXkoKTsNCgl0aGlzLmltYWdlVGltZXJDb3VudAkJPSAwOw0KCXRoaXMudGltZXJJREFycmF5CQkJPSBuZXcgQXJyYXkoKTsNCgl0aGlzLnRpbWVySURDb3VudAkJCT0gMDsNCgl0aGlzLnNsaWRlc2hvd0lEQXJyYXkJCT0gbmV3IEFycmF5KCk7DQoJdGhpcy5zbGlkZXNob3dJRENvdW50CQk9IDA7DQoJdGhpcy5pbWFnZUFycmF5CSA9IG5ldyBBcnJheSgpOw0KCXRoaXMuYWN0aXZlSW1hZ2UgPSBudWxsOw0KCXRoaXMuc2xpZGVBcnJheQkgPSBuZXcgQXJyYXkoKTsNCgl0aGlzLmFjdGl2ZVNsaWRlID0gbnVsbDsNCgl0aGlzLmZyYW1lQXJyYXkJID0gbmV3IEFycmF5KCk7DQoJdGhpcy5hY3RpdmVGcmFtZSA9IG51bGw7DQoJdGhpcy5jaGVja0ZyYW1lKCk7DQoJdGhpcy5pc1NsaWRlc2hvdyA9IGZhbHNlOw0KCXRoaXMuaXNMeXRlZnJhbWUgPSBmYWxzZTsNCgkvKkBjY19vbg0KCQkvKkBpZiAoQF9qc2NyaXB0KQ0KCQkJdGhpcy5pZSA9IChkb2N1bWVudC5hbGwgJiYgIXdpbmRvdy5vcGVyYSkgPyB0cnVlIDogZmFsc2U7DQoJCS8qQGVsc2UgQCovDQoJCQl0aGlzLmllID0gZmFsc2U7DQoJCS8qQGVuZA0KCUAqLw0KCXRoaXMuaWU3ID0gKHRoaXMuaWUgJiYgd2luZG93LlhNTEh0dHBSZXF1ZXN0KTsJDQoJdGhpcy5pbml0aWFsaXplKCk7DQp9DQpMeXRlQm94LnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24oKSB7DQoJdGhpcy51cGRhdGVMeXRlYm94SXRlbXMoKTsNCgl2YXIgb2JqQm9keSA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IikuaXRlbSgwKTsJDQoJaWYgKHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk92ZXJsYXknKSkgew0KCQlvYmpCb2R5LnJlbW92ZUNoaWxkKHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCJsYk92ZXJsYXkiKSk7DQoJCW9iakJvZHkucmVtb3ZlQ2hpbGQodGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoImxiTWFpbiIpKTsNCgl9DQoJdmFyIG9iak92ZXJsYXkgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCgkJb2JqT3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJPdmVybGF5Jyk7DQoJCW9iak92ZXJsYXkuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCWlmICgodGhpcy5pZSAmJiAhdGhpcy5pZTcpIHx8ICh0aGlzLmllNyAmJiB0aGlzLmRvYy5jb21wYXRNb2RlID09ICdCYWNrQ29tcGF0JykpIHsNCgkJCW9iak92ZXJsYXkuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOw0KCQl9DQoJCW9iak92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgkJb2JqQm9keS5hcHBlbmRDaGlsZChvYmpPdmVybGF5KTsNCgl2YXIgb2JqTHl0ZWJveCA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQlvYmpMeXRlYm94LnNldEF0dHJpYnV0ZSgnaWQnLCdsYk1haW4nKTsNCgkJb2JqTHl0ZWJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCQlvYmpCb2R5LmFwcGVuZENoaWxkKG9iakx5dGVib3gpOw0KCXZhciBvYmpPdXRlckNvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQlvYmpPdXRlckNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJPdXRlckNvbnRhaW5lcicpOw0KCQlvYmpPdXRlckNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsNCgkJb2JqTHl0ZWJveC5hcHBlbmRDaGlsZChvYmpPdXRlckNvbnRhaW5lcik7DQoJdmFyIG9iaklmcmFtZUNvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQlvYmpJZnJhbWVDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsJ2xiSWZyYW1lQ29udGFpbmVyJyk7DQoJCW9iaklmcmFtZUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCQlvYmpPdXRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJZnJhbWVDb250YWluZXIpOw0KCXZhciBvYmpJZnJhbWUgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsNCgkJb2JqSWZyYW1lLnNldEF0dHJpYnV0ZSgnaWQnLCdsYklmcmFtZScpOw0KCQlvYmpJZnJhbWUuc2V0QXR0cmlidXRlKCduYW1lJywnbGJJZnJhbWUnKTsNCgkJb2JqSWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCW9iaklmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJZnJhbWUpOw0KCXZhciBvYmpJbWFnZUNvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQlvYmpJbWFnZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJJbWFnZUNvbnRhaW5lcicpOw0KCQlvYmpPdXRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJbWFnZUNvbnRhaW5lcik7DQoJdmFyIG9iakx5dGVib3hJbWFnZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImltZyIpOw0KCQlvYmpMeXRlYm94SW1hZ2Uuc2V0QXR0cmlidXRlKCdpZCcsJ2xiSW1hZ2UnKTsNCgkJb2JqSW1hZ2VDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqTHl0ZWJveEltYWdlKTsNCgl2YXIgb2JqTG9hZGluZyA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQlvYmpMb2FkaW5nLnNldEF0dHJpYnV0ZSgnaWQnLCdsYkxvYWRpbmcnKTsNCgkJb2JqT3V0ZXJDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqTG9hZGluZyk7DQoJdmFyIG9iakRldGFpbHNDb250YWluZXIgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCgkJb2JqRGV0YWlsc0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJEZXRhaWxzQ29udGFpbmVyJyk7DQoJCW9iakRldGFpbHNDb250YWluZXIuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCW9iakx5dGVib3guYXBwZW5kQ2hpbGQob2JqRGV0YWlsc0NvbnRhaW5lcik7DQoJdmFyIG9iakRldGFpbHNEYXRhID10aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCgkJb2JqRGV0YWlsc0RhdGEuc2V0QXR0cmlidXRlKCdpZCcsJ2xiRGV0YWlsc0RhdGEnKTsNCgkJb2JqRGV0YWlsc0RhdGEuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCW9iakRldGFpbHNDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqRGV0YWlsc0RhdGEpOw0KCXZhciBvYmpEZXRhaWxzID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQoJCW9iakRldGFpbHMuc2V0QXR0cmlidXRlKCdpZCcsJ2xiRGV0YWlscycpOw0KCQlvYmpEZXRhaWxzRGF0YS5hcHBlbmRDaGlsZChvYmpEZXRhaWxzKTsNCgl2YXIgb2JqQ2FwdGlvbiA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsNCgkJb2JqQ2FwdGlvbi5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJDYXB0aW9uJyk7DQoJCW9iakRldGFpbHMuYXBwZW5kQ2hpbGQob2JqQ2FwdGlvbik7DQoJdmFyIG9iakhvdmVyTmF2ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQoJCW9iakhvdmVyTmF2LnNldEF0dHJpYnV0ZSgnaWQnLCdsYkhvdmVyTmF2Jyk7DQoJCW9iakltYWdlQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iakhvdmVyTmF2KTsNCgl2YXIgb2JqQm90dG9tTmF2ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQoJCW9iakJvdHRvbU5hdi5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJCb3R0b21OYXYnKTsNCgkJb2JqRGV0YWlsc0RhdGEuYXBwZW5kQ2hpbGQob2JqQm90dG9tTmF2KTsNCgl2YXIgb2JqUHJldiA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsNCgkJb2JqUHJldi5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJQcmV2Jyk7DQoJCW9ialByZXYuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCW9ialByZXYuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOw0KCQlvYmpIb3Zlck5hdi5hcHBlbmRDaGlsZChvYmpQcmV2KTsNCgl2YXIgb2JqTmV4dCA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsNCgkJb2JqTmV4dC5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJOZXh0Jyk7DQoJCW9iak5leHQuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCW9iak5leHQuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOw0KCQlvYmpIb3Zlck5hdi5hcHBlbmRDaGlsZChvYmpOZXh0KTsNCgl2YXIgb2JqTnVtYmVyRGlzcGxheSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsNCgkJb2JqTnVtYmVyRGlzcGxheS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJOdW1iZXJEaXNwbGF5Jyk7DQoJCW9iakRldGFpbHMuYXBwZW5kQ2hpbGQob2JqTnVtYmVyRGlzcGxheSk7DQoJdmFyIG9iak5hdkRpc3BsYXkgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIik7DQoJCW9iak5hdkRpc3BsYXkuc2V0QXR0cmlidXRlKCdpZCcsJ2xiTmF2RGlzcGxheScpOw0KCQlvYmpOYXZEaXNwbGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCW9iakRldGFpbHMuYXBwZW5kQ2hpbGQob2JqTmF2RGlzcGxheSk7DQoJdmFyIG9iakNsb3NlID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiYSIpOw0KCQlvYmpDbG9zZS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJDbG9zZScpOw0KCQlvYmpDbG9zZS5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsNCgkJb2JqQ2xvc2Uuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOw0KCQlvYmpCb3R0b21OYXYuYXBwZW5kQ2hpbGQob2JqQ2xvc2UpOw0KCXZhciBvYmpQYXVzZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsNCgkJb2JqUGF1c2Uuc2V0QXR0cmlidXRlKCdpZCcsJ2xiUGF1c2UnKTsNCgkJb2JqUGF1c2Uuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCW9ialBhdXNlLnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnKTsNCgkJb2JqUGF1c2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgkJb2JqQm90dG9tTmF2LmFwcGVuZENoaWxkKG9ialBhdXNlKTsNCgl2YXIgb2JqUGxheSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsNCgkJb2JqUGxheS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJQbGF5Jyk7DQoJCW9ialBsYXkuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7DQoJCW9ialBsYXkuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOw0KCQlvYmpQbGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCW9iakJvdHRvbU5hdi5hcHBlbmRDaGlsZChvYmpQbGF5KTsNCn07DQpMeXRlQm94LnByb3RvdHlwZS51cGRhdGVMeXRlYm94SXRlbXMgPSBmdW5jdGlvbigpIHsJDQoJdmFyIGFuY2hvcnMgPSAodGhpcy5pc0ZyYW1lKSA/IHdpbmRvdy5wYXJlbnQuZnJhbWVzW3dpbmRvdy5uYW1lXS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpIDogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTsNCglmb3IgKHZhciBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoOyBpKyspIHsNCgkJdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07DQoJCXZhciByZWxBdHRyaWJ1dGUgPSBTdHJpbmcoYW5jaG9yLmdldEF0dHJpYnV0ZSgncmVsJykpOw0KCQlpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpKSB7DQoJCQlpZiAocmVsQXR0cmlidXRlLnRvTG93ZXJDYXNlKCkubWF0Y2goJ2x5dGVib3gnKSkgew0KCQkJCWFuY2hvci5vbmNsaWNrID0gZnVuY3Rpb24gKCkgeyBteUx5dGVib3guc3RhcnQodGhpcywgZmFsc2UsIGZhbHNlKTsgcmV0dXJuIGZhbHNlOyB9DQoJCQl9IGVsc2UgaWYgKHJlbEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLm1hdGNoKCdseXRlc2hvdycpKSB7DQoJCQkJYW5jaG9yLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7IG15THl0ZWJveC5zdGFydCh0aGlzLCB0cnVlLCBmYWxzZSk7IHJldHVybiBmYWxzZTsgfQ0KCQkJfSBlbHNlIGlmIChyZWxBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5tYXRjaCgnbHl0ZWZyYW1lJykpIHsNCgkJCQlhbmNob3Iub25jbGljayA9IGZ1bmN0aW9uICgpIHsgbXlMeXRlYm94LnN0YXJ0KHRoaXMsIGZhbHNlLCB0cnVlKTsgcmV0dXJuIGZhbHNlOyB9DQoJCQl9DQoJCX0NCgl9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUuc3RhcnQgPSBmdW5jdGlvbihpbWFnZUxpbmssIGRvU2xpZGUsIGRvRnJhbWUpIHsNCglpZiAodGhpcy5pZSAmJiAhdGhpcy5pZTcpIHsJdGhpcy50b2dnbGVTZWxlY3RzKCdoaWRlJyk7CX0NCglpZiAodGhpcy5oaWRlRmxhc2gpIHsgdGhpcy50b2dnbGVGbGFzaCgnaGlkZScpOyB9DQoJdGhpcy5pc0x5dGVmcmFtZSA9IChkb0ZyYW1lID8gdHJ1ZSA6IGZhbHNlKTsNCgl2YXIgcGFnZVNpemUJPSB0aGlzLmdldFBhZ2VTaXplKCk7DQoJdmFyIG9iak92ZXJsYXkJPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdmVybGF5Jyk7DQoJdmFyIG9iakJvZHkJCT0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKS5pdGVtKDApOw0KCW9iak92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gcGFnZVNpemVbMV0gKyAicHgiOw0KCW9iak92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICcnOw0KCXRoaXMuYXBwZWFyKCdsYk92ZXJsYXknLCAodGhpcy5kb0FuaW1hdGlvbnMgPyAwIDogdGhpcy5tYXhPcGFjaXR5KSk7DQoJdmFyIGFuY2hvcnMgPSAodGhpcy5pc0ZyYW1lKSA/IHdpbmRvdy5wYXJlbnQuZnJhbWVzW3dpbmRvdy5uYW1lXS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpIDogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTsNCglpZiAodGhpcy5pc0x5dGVmcmFtZSkgew0KCQl0aGlzLmZyYW1lQXJyYXkgPSBbXTsNCgkJdGhpcy5mcmFtZU51bSA9IDA7DQoJCWlmICgoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykgPT0gJ2x5dGVmcmFtZScpKSB7DQoJCQl2YXIgcmV2ID0gaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmV2Jyk7DQoJCQl0aGlzLmZyYW1lQXJyYXkucHVzaChuZXcgQXJyYXkoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpLCBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCd0aXRsZScpLCAocmV2ID09IG51bGwgfHwgcmV2ID09ICcnID8gJ3dpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgc2Nyb2xsaW5nOiBhdXRvOycgOiByZXYpKSk7DQoJCX0gZWxzZSB7DQoJCQlpZiAoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykuaW5kZXhPZignbHl0ZWZyYW1lJykgIT0gLTEpIHsNCgkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoOyBpKyspIHsNCgkJCQkJdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07DQoJCQkJCWlmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJykgJiYgKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3JlbCcpID09IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpKSkgew0KCQkJCQkJdmFyIHJldiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3JldicpOw0KCQkJCQkJdGhpcy5mcmFtZUFycmF5LnB1c2gobmV3IEFycmF5KGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwgYW5jaG9yLmdldEF0dHJpYnV0ZSgndGl0bGUnKSwgKHJldiA9PSBudWxsIHx8IHJldiA9PSAnJyA/ICd3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IHNjcm9sbGluZzogYXV0bzsnIDogcmV2KSkpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCXRoaXMuZnJhbWVBcnJheS5yZW1vdmVEdXBsaWNhdGVzKCk7DQoJCQkJd2hpbGUodGhpcy5mcmFtZUFycmF5W3RoaXMuZnJhbWVOdW1dWzBdICE9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgeyB0aGlzLmZyYW1lTnVtKys7IH0NCgkJCX0NCgkJfQ0KCX0gZWxzZSB7DQoJCXRoaXMuaW1hZ2VBcnJheSA9IFtdOw0KCQl0aGlzLmltYWdlTnVtID0gMDsNCgkJdGhpcy5zbGlkZUFycmF5ID0gW107DQoJCXRoaXMuc2xpZGVOdW0gPSAwOw0KCQlpZiAoKGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpID09ICdseXRlYm94JykpIHsNCgkJCXRoaXMuaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJyksIGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTsNCgkJfSBlbHNlIHsNCgkJCWlmIChpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKS5pbmRleE9mKCdseXRlYm94JykgIT0gLTEpIHsNCgkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoOyBpKyspIHsNCgkJCQkJdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07DQoJCQkJCWlmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJykgJiYgKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3JlbCcpID09IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpKSkgew0KCQkJCQkJdGhpcy5pbWFnZUFycmF5LnB1c2gobmV3IEFycmF5KGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwgYW5jaG9yLmdldEF0dHJpYnV0ZSgndGl0bGUnKSkpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCXRoaXMuaW1hZ2VBcnJheS5yZW1vdmVEdXBsaWNhdGVzKCk7DQoJCQkJd2hpbGUodGhpcy5pbWFnZUFycmF5W3RoaXMuaW1hZ2VOdW1dWzBdICE9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgeyB0aGlzLmltYWdlTnVtKys7IH0NCgkJCX0NCgkJCWlmIChpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKS5pbmRleE9mKCdseXRlc2hvdycpICE9IC0xKSB7DQoJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgaSsrKSB7DQoJCQkJCXZhciBhbmNob3IgPSBhbmNob3JzW2ldOw0KCQkJCQlpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpICYmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSkpIHsNCgkJCQkJCXRoaXMuc2xpZGVBcnJheS5wdXNoKG5ldyBBcnJheShhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJyksIGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQl0aGlzLnNsaWRlQXJyYXkucmVtb3ZlRHVwbGljYXRlcygpOw0KCQkJCXdoaWxlKHRoaXMuc2xpZGVBcnJheVt0aGlzLnNsaWRlTnVtXVswXSAhPSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJykpIHsgdGhpcy5zbGlkZU51bSsrOyB9DQoJCQl9DQoJCX0NCgl9DQoJdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk1haW4nKTsNCgkJb2JqZWN0LnN0eWxlLnRvcCA9ICh0aGlzLmdldFBhZ2VTY3JvbGwoKSArIChwYWdlU2l6ZVszXSAvIDE1KSkgKyAicHgiOw0KCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCWlmICghdGhpcy5vdXRlckJvcmRlcikgew0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlciA9ICdub25lJzsNCgkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlsc0NvbnRhaW5lcicpLnN0eWxlLmJvcmRlciA9ICdub25lJzsNCgl9IGVsc2Ugew0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlckJvdHRvbSA9ICcnOw0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOw0KCX0NCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdmVybGF5Jykub25jbGljayA9IGZ1bmN0aW9uKCkgeyBteUx5dGVib3guZW5kKCk7IHJldHVybiBmYWxzZTsgfQ0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk1haW4nKS5vbmNsaWNrID0gZnVuY3Rpb24oZSkgew0KCQl2YXIgZSA9IGU7DQoJCWlmICghZSkgew0KCQkJaWYgKHdpbmRvdy5wYXJlbnQuZnJhbWVzW3dpbmRvdy5uYW1lXSAmJiAocGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmcmFtZXNldCcpLmxlbmd0aCA8PSAwKSkgew0KCQkJCWUgPSB3aW5kb3cucGFyZW50LndpbmRvdy5ldmVudDsNCgkJCX0gZWxzZSB7DQoJCQkJZSA9IHdpbmRvdy5ldmVudDsNCgkJCX0NCgkJfQ0KCQl2YXIgaWQgPSAoZS50YXJnZXQgPyBlLnRhcmdldC5pZCA6IGUuc3JjRWxlbWVudC5pZCk7DQoJCWlmIChpZCA9PSAnbGJNYWluJykgeyBteUx5dGVib3guZW5kKCk7IHJldHVybiBmYWxzZTsgfQ0KCX0NCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJDbG9zZScpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbXlMeXRlYm94LmVuZCgpOyByZXR1cm4gZmFsc2U7IH0NCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQYXVzZScpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQYXVzZSIsICJsYlBsYXkiKTsgcmV0dXJuIGZhbHNlOyB9DQoJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQbGF5IiwgImxiUGF1c2UiKTsgcmV0dXJuIGZhbHNlOyB9CQ0KCXRoaXMuaXNTbGlkZXNob3cgPSBkb1NsaWRlOw0KCXRoaXMuaXNQYXVzZWQgPSAodGhpcy5zbGlkZU51bSAhPSAwID8gdHJ1ZSA6IGZhbHNlKTsNCglpZiAodGhpcy5pc1NsaWRlc2hvdyAmJiB0aGlzLnNob3dQbGF5UGF1c2UgJiYgdGhpcy5pc1BhdXNlZCkgew0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQbGF5Jykuc3R5bGUuZGlzcGxheSA9ICcnOw0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQYXVzZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJfQ0KCWlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7DQoJCXRoaXMuY2hhbmdlQ29udGVudCh0aGlzLmZyYW1lTnVtKTsNCgl9IGVsc2Ugew0KCQlpZiAodGhpcy5pc1NsaWRlc2hvdykgew0KCQkJdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuc2xpZGVOdW0pOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuaW1hZ2VOdW0pOw0KCQl9DQoJfQ0KfTsNCkx5dGVCb3gucHJvdG90eXBlLmNoYW5nZUNvbnRlbnQgPSBmdW5jdGlvbihpbWFnZU51bSkgew0KCWlmICh0aGlzLmlzU2xpZGVzaG93KSB7DQoJCWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGlkZXNob3dJRENvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNsaWRlc2hvd0lEQXJyYXlbaV0pOyB9DQoJfQ0KCXRoaXMuYWN0aXZlSW1hZ2UgPSB0aGlzLmFjdGl2ZVNsaWRlID0gdGhpcy5hY3RpdmVGcmFtZSA9IGltYWdlTnVtOw0KCWlmICghdGhpcy5vdXRlckJvcmRlcikgew0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlciA9ICdub25lJzsNCgkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlsc0NvbnRhaW5lcicpLnN0eWxlLmJvcmRlciA9ICdub25lJzsNCgl9IGVsc2Ugew0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlckJvdHRvbSA9ICcnOw0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOw0KCX0NCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJMb2FkaW5nJykuc3R5bGUuZGlzcGxheSA9ICcnOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkltYWdlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWUnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYklmcmFtZUNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlsc0NvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTnVtYmVyRGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJaWYgKHRoaXMubmF2VHlwZSA9PSAyIHx8IHRoaXMuaXNMeXRlZnJhbWUpIHsNCgkJb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpOw0KCQlvYmplY3QuaW5uZXJIVE1MID0gJyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIGlkPSJsYlByZXYyX09mZiIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBjbGFzcz0iJyArIHRoaXMudGhlbWUgKyAnIj4mbGFxdW87IHByZXY8L3NwYW4+PGEgaHJlZj0iIyIgaWQ9ImxiUHJldjIiIGNsYXNzPSInICsgdGhpcy50aGVtZSArICciIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JmxhcXVvOyBwcmV2PC9hPiA8YiBpZD0ibGJTcGFjZXIiIGNsYXNzPSInICsgdGhpcy50aGVtZSArICciPnx8PC9iPiA8c3BhbiBpZD0ibGJOZXh0Ml9PZmYiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgY2xhc3M9IicgKyB0aGlzLnRoZW1lICsgJyI+bmV4dCAmcmFxdW87PC9zcGFuPjxhIGhyZWY9IiMiIGlkPSJsYk5leHQyIiBjbGFzcz0iJyArIHRoaXMudGhlbWUgKyAnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPm5leHQgJnJhcXVvOzwvYT4nOw0KCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgl9DQoJaWYgKHRoaXMuaXNMeXRlZnJhbWUpIHsNCgkJdmFyIGlmcmFtZSA9IG15THl0ZWJveC5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSWZyYW1lJyk7DQoJCXZhciBzdHlsZXMgPSB0aGlzLmZyYW1lQXJyYXlbdGhpcy5hY3RpdmVGcmFtZV1bMl07DQoJCXZhciBhU3R5bGVzID0gc3R5bGVzLnNwbGl0KCc7Jyk7DQoJCWZvciAodmFyIGkgPSAwOyBpIDwgYVN0eWxlcy5sZW5ndGg7IGkrKykgew0KCQkJaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignd2lkdGg6JykgPj0gMCkgew0KCQkJCXZhciB3ID0gYVN0eWxlc1tpXS5yZXBsYWNlKCd3aWR0aDonLCAnJyk7DQoJCQkJaWZyYW1lLndpZHRoID0gdy50cmltKCk7DQoJCQl9IGVsc2UgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignaGVpZ2h0OicpID49IDApIHsNCgkJCQl2YXIgaCA9IGFTdHlsZXNbaV0ucmVwbGFjZSgnaGVpZ2h0OicsICcnKTsNCgkJCQlpZnJhbWUuaGVpZ2h0ID0gaC50cmltKCk7DQoJCQl9IGVsc2UgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignc2Nyb2xsaW5nOicpID49IDApIHsNCgkJCQl2YXIgcyA9IGFTdHlsZXNbaV0ucmVwbGFjZSgnc2Nyb2xsaW5nOicsICcnKTsNCgkJCQlpZnJhbWUuc2Nyb2xsaW5nID0gcy50cmltKCk7DQoJCQl9IGVsc2UgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignYm9yZGVyOicpID49IDApIHsNCgkJCQkvLyBOb3QgaW1wbGVtZW50ZWQgeWV0LCBhcyB0aGVyZSBhcmUgY3Jvc3MtcGxhdGZvcm0gaXNzdWVzIHdpdGggc2V0dGluZyB0aGUgYm9yZGVyIChmcm9tIGEgR1VJIHN0YW5kcG9pbnQpDQoJCQkJLy92YXIgYiA9IGFTdHlsZXNbaV0ucmVwbGFjZSgnYm9yZGVyOicsICcnKTsNCgkJCQkvL2lmcmFtZS5zdHlsZS5ib3JkZXIgPSBiLnRyaW0oKTsNCgkJCX0NCgkJfQ0KCQl0aGlzLnJlc2l6ZUNvbnRhaW5lcihwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KSk7DQoJfSBlbHNlIHsNCgkJaW1nUHJlbG9hZGVyID0gbmV3IEltYWdlKCk7DQoJCWltZ1ByZWxvYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCgkJCXZhciBpbWFnZVdpZHRoID0gaW1nUHJlbG9hZGVyLndpZHRoOw0KCQkJdmFyIGltYWdlSGVpZ2h0ID0gaW1nUHJlbG9hZGVyLmhlaWdodDsNCgkJCWlmIChteUx5dGVib3guYXV0b1Jlc2l6ZSkgew0KCQkJCXZhciBwYWdlc2l6ZSA9IG15THl0ZWJveC5nZXRQYWdlU2l6ZSgpOw0KCQkJCXZhciB4ID0gcGFnZXNpemVbMl0gLSAxNTA7DQoJCQkJdmFyIHkgPSBwYWdlc2l6ZVszXSAtIDE1MDsNCgkJCQlpZiAoaW1hZ2VXaWR0aCA+IHgpIHsNCgkJCQkJaW1hZ2VIZWlnaHQgPSBNYXRoLnJvdW5kKGltYWdlSGVpZ2h0ICogKHggLyBpbWFnZVdpZHRoKSk7DQoJCQkJCWltYWdlV2lkdGggPSB4OyANCgkJCQkJaWYgKGltYWdlSGVpZ2h0ID4geSkgeyANCgkJCQkJCWltYWdlV2lkdGggPSBNYXRoLnJvdW5kKGltYWdlV2lkdGggKiAoeSAvIGltYWdlSGVpZ2h0KSk7DQoJCQkJCQlpbWFnZUhlaWdodCA9IHk7IA0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmIChpbWFnZUhlaWdodCA+IHkpIHsgDQoJCQkJCWltYWdlV2lkdGggPSBNYXRoLnJvdW5kKGltYWdlV2lkdGggKiAoeSAvIGltYWdlSGVpZ2h0KSk7DQoJCQkJCWltYWdlSGVpZ2h0ID0geTsgDQoJCQkJCWlmIChpbWFnZVdpZHRoID4geCkgew0KCQkJCQkJaW1hZ2VIZWlnaHQgPSBNYXRoLnJvdW5kKGltYWdlSGVpZ2h0ICogKHggLyBpbWFnZVdpZHRoKSk7DQoJCQkJCQlpbWFnZVdpZHRoID0geDsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJCXZhciBsYkltYWdlID0gbXlMeXRlYm94LmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJbWFnZScpDQoJCQlsYkltYWdlLnNyYyA9IChteUx5dGVib3guaXNTbGlkZXNob3cgPyBteUx5dGVib3guc2xpZGVBcnJheVtteUx5dGVib3guYWN0aXZlU2xpZGVdWzBdIDogbXlMeXRlYm94LmltYWdlQXJyYXlbbXlMeXRlYm94LmFjdGl2ZUltYWdlXVswXSk7DQoJCQlsYkltYWdlLndpZHRoID0gaW1hZ2VXaWR0aDsNCgkJCWxiSW1hZ2UuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7DQoJCQlteUx5dGVib3gucmVzaXplQ29udGFpbmVyKGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTsNCgkJCWltZ1ByZWxvYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHt9Ow0KCQl9DQoJCWltZ1ByZWxvYWRlci5zcmMgPSAodGhpcy5pc1NsaWRlc2hvdyA/IHRoaXMuc2xpZGVBcnJheVt0aGlzLmFjdGl2ZVNsaWRlXVswXSA6IHRoaXMuaW1hZ2VBcnJheVt0aGlzLmFjdGl2ZUltYWdlXVswXSk7DQoJfQ0KfTsNCkx5dGVCb3gucHJvdG90eXBlLnJlc2l6ZUNvbnRhaW5lciA9IGZ1bmN0aW9uKGltZ1dpZHRoLCBpbWdIZWlnaHQpIHsNCgl0aGlzLndDdXIgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLm9mZnNldFdpZHRoOw0KCXRoaXMuaEN1ciA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykub2Zmc2V0SGVpZ2h0Ow0KCXRoaXMueFNjYWxlID0gKChpbWdXaWR0aCAgKyAodGhpcy5ib3JkZXJTaXplICogMikpIC8gdGhpcy53Q3VyKSAqIDEwMDsNCgl0aGlzLnlTY2FsZSA9ICgoaW1nSGVpZ2h0ICArICh0aGlzLmJvcmRlclNpemUgKiAyKSkgLyB0aGlzLmhDdXIpICogMTAwOw0KCXZhciB3RGlmZiA9ICh0aGlzLndDdXIgLSB0aGlzLmJvcmRlclNpemUgKiAyKSAtIGltZ1dpZHRoOw0KCXZhciBoRGlmZiA9ICh0aGlzLmhDdXIgLSB0aGlzLmJvcmRlclNpemUgKiAyKSAtIGltZ0hlaWdodDsNCglpZiAoIShoRGlmZiA9PSAwKSkgew0KCQl0aGlzLmhEb25lID0gZmFsc2U7DQoJCXRoaXMucmVzaXplSCgnbGJPdXRlckNvbnRhaW5lcicsIHRoaXMuaEN1ciwgaW1nSGVpZ2h0ICsgdGhpcy5ib3JkZXJTaXplKjIsIHRoaXMuZ2V0UGl4ZWxSYXRlKHRoaXMuaEN1ciwgaW1nSGVpZ2h0KSk7DQoJfSBlbHNlIHsNCgkJdGhpcy5oRG9uZSA9IHRydWU7DQoJfQ0KCWlmICghKHdEaWZmID09IDApKSB7DQoJCXRoaXMud0RvbmUgPSBmYWxzZTsNCgkJdGhpcy5yZXNpemVXKCdsYk91dGVyQ29udGFpbmVyJywgdGhpcy53Q3VyLCBpbWdXaWR0aCArIHRoaXMuYm9yZGVyU2l6ZSoyLCB0aGlzLmdldFBpeGVsUmF0ZSh0aGlzLndDdXIsIGltZ1dpZHRoKSk7DQoJfSBlbHNlIHsNCgkJdGhpcy53RG9uZSA9IHRydWU7DQoJfQ0KCWlmICgoaERpZmYgPT0gMCkgJiYgKHdEaWZmID09IDApKSB7DQoJCWlmICh0aGlzLmllKXsgdGhpcy5wYXVzZSgyNTApOyB9IGVsc2UgeyB0aGlzLnBhdXNlKDEwMCk7IH0gDQoJfQ0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYnKS5zdHlsZS5oZWlnaHQgPSBpbWdIZWlnaHQgKyAicHgiOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQnKS5zdHlsZS5oZWlnaHQgPSBpbWdIZWlnaHQgKyAicHgiOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHNDb250YWluZXInKS5zdHlsZS53aWR0aCA9IChpbWdXaWR0aCArICh0aGlzLmJvcmRlclNpemUgKiAyKSArICh0aGlzLmllICYmIHRoaXMuZG9jLmNvbXBhdE1vZGUgPT0gIkJhY2tDb21wYXQiICYmIHRoaXMub3V0ZXJCb3JkZXIgPyAyIDogMCkpICsgInB4IjsNCgl0aGlzLnNob3dDb250ZW50KCk7DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUuc2hvd0NvbnRlbnQgPSBmdW5jdGlvbigpIHsNCglpZiAodGhpcy53RG9uZSAmJiB0aGlzLmhEb25lKSB7DQoJCWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zaG93Q29udGVudFRpbWVyQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2hvd0NvbnRlbnRUaW1lckFycmF5W2ldKTsgfQ0KCQlpZiAodGhpcy5vdXRlckJvcmRlcikgew0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3V0ZXJDb250YWluZXInKS5zdHlsZS5ib3JkZXJCb3R0b20gPSAnbm9uZSc7DQoJCX0NCgkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTG9hZGluZycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCWlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7DQoJCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWUnKS5zdHlsZS5kaXNwbGF5ID0gJyc7DQoJCQl0aGlzLmFwcGVhcignbGJJZnJhbWUnLCAodGhpcy5kb0FuaW1hdGlvbnMgPyAwIDogMTAwKSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJbWFnZScpLnN0eWxlLmRpc3BsYXkgPSAnJzsNCgkJCXRoaXMuYXBwZWFyKCdsYkltYWdlJywgKHRoaXMuZG9BbmltYXRpb25zID8gMCA6IDEwMCkpOw0KCQkJdGhpcy5wcmVsb2FkTmVpZ2hib3JJbWFnZXMoKTsNCgkJfQ0KCQlpZiAodGhpcy5pc1NsaWRlc2hvdykgew0KCQkJaWYodGhpcy5hY3RpdmVTbGlkZSA9PSAodGhpcy5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpKSB7DQoJCQkJaWYgKHRoaXMuYXV0b0VuZCkgew0KCQkJCQl0aGlzLnNsaWRlc2hvd0lEQXJyYXlbdGhpcy5zbGlkZXNob3dJRENvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LmVuZCgnc2xpZGVzaG93JykiLCB0aGlzLnNsaWRlSW50ZXJ2YWwpOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJaWYgKCF0aGlzLmlzUGF1c2VkKSB7DQoJCQkJCXRoaXMuc2xpZGVzaG93SURBcnJheVt0aGlzLnNsaWRlc2hvd0lEQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guY2hhbmdlQ29udGVudCgiKyh0aGlzLmFjdGl2ZVNsaWRlKzEpKyIpIiwgdGhpcy5zbGlkZUludGVydmFsKTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJIb3Zlck5hdicpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93TmF2aWdhdGlvbiAmJiB0aGlzLm5hdlR5cGUgPT0gMSA/ICcnIDogJ25vbmUnKTsNCgkJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkNsb3NlJykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLnNob3dDbG9zZSA/ICcnIDogJ25vbmUnKTsNCgkJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHMnKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuc2hvd0RldGFpbHMgPyAnJyA6ICdub25lJyk7DQoJCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQYXVzZScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93UGxheVBhdXNlICYmICF0aGlzLmlzUGF1c2VkID8gJycgOiAnbm9uZScpOw0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93UGxheVBhdXNlICYmICF0aGlzLmlzUGF1c2VkID8gJ25vbmUnIDogJycpOw0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93TmF2aWdhdGlvbiAmJiB0aGlzLm5hdlR5cGUgPT0gMiA/ICcnIDogJ25vbmUnKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkhvdmVyTmF2Jykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLm5hdlR5cGUgPT0gMSAmJiAhdGhpcy5pc0x5dGVmcmFtZSA/ICcnIDogJ25vbmUnKTsNCgkJCWlmICgodGhpcy5uYXZUeXBlID09IDIgJiYgIXRoaXMuaXNMeXRlZnJhbWUgJiYgdGhpcy5pbWFnZUFycmF5Lmxlbmd0aCA+IDEpIHx8ICh0aGlzLmZyYW1lQXJyYXkubGVuZ3RoID4gMSAmJiB0aGlzLmlzTHl0ZWZyYW1lKSkgew0KCQkJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gJyc7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCQkJfQ0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiQ2xvc2UnKS5zdHlsZS5kaXNwbGF5ID0gJyc7DQoJCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJEZXRhaWxzJykuc3R5bGUuZGlzcGxheSA9ICcnOw0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGF1c2UnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCX0NCgkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSW1hZ2VDb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuaXNMeXRlZnJhbWUgPyAnbm9uZScgOiAnJyk7DQoJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYklmcmFtZUNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5pc0x5dGVmcmFtZSA/ICcnIDogJ25vbmUnKTsNCgkJdHJ5IHsNCgkJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYklmcmFtZScpLnNyYyA9IHRoaXMuZnJhbWVBcnJheVt0aGlzLmFjdGl2ZUZyYW1lXVswXTsNCgkJfSBjYXRjaChlKSB7IH0NCgl9IGVsc2Ugew0KCQl0aGlzLnNob3dDb250ZW50VGltZXJBcnJheVt0aGlzLnNob3dDb250ZW50VGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5zaG93Q29udGVudCgpIiwgMjAwKTsNCgl9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUudXBkYXRlRGV0YWlscyA9IGZ1bmN0aW9uKCkgew0KCXZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJDYXB0aW9uJyk7DQoJdmFyIHNUaXRsZSA9ICh0aGlzLmlzU2xpZGVzaG93ID8gdGhpcy5zbGlkZUFycmF5W3RoaXMuYWN0aXZlU2xpZGVdWzFdIDogKHRoaXMuaXNMeXRlZnJhbWUgPyB0aGlzLmZyYW1lQXJyYXlbdGhpcy5hY3RpdmVGcmFtZV1bMV0gOiB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZV1bMV0pKTsNCglvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCW9iamVjdC5pbm5lckhUTUwgPSAoc1RpdGxlID09IG51bGwgPyAnJyA6IHNUaXRsZSk7DQoJdGhpcy51cGRhdGVOYXYoKTsNCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJEZXRhaWxzQ29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICcnOw0KCW9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk51bWJlckRpc3BsYXknKTsNCglpZiAodGhpcy5pc1NsaWRlc2hvdyAmJiB0aGlzLnNsaWRlQXJyYXkubGVuZ3RoID4gMSkgew0KCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCQlvYmplY3QuaW5uZXJIVE1MID0gIkltYWdlICIgKyBldmFsKHRoaXMuYWN0aXZlU2xpZGUgKyAxKSArICIgb2YgIiArIHRoaXMuc2xpZGVBcnJheS5sZW5ndGg7DQoJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMubmF2VHlwZSA9PSAyICYmIHRoaXMuc2hvd05hdmlnYXRpb24gPyAnJyA6ICdub25lJyk7DQoJfSBlbHNlIGlmICh0aGlzLmltYWdlQXJyYXkubGVuZ3RoID4gMSAmJiAhdGhpcy5pc0x5dGVmcmFtZSkgew0KCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCQlvYmplY3QuaW5uZXJIVE1MID0gIkltYWdlICIgKyBldmFsKHRoaXMuYWN0aXZlSW1hZ2UgKyAxKSArICIgb2YgIiArIHRoaXMuaW1hZ2VBcnJheS5sZW5ndGg7DQoJCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMubmF2VHlwZSA9PSAyID8gJycgOiAnbm9uZScpOw0KCX0gZWxzZSBpZiAodGhpcy5mcmFtZUFycmF5Lmxlbmd0aCA+IDEgJiYgdGhpcy5pc0x5dGVmcmFtZSkgew0KCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCQlvYmplY3QuaW5uZXJIVE1MID0gIlBhZ2UgIiArIGV2YWwodGhpcy5hY3RpdmVGcmFtZSArIDEpICsgIiBvZiAiICsgdGhpcy5mcmFtZUFycmF5Lmxlbmd0aDsNCgkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAnJzsNCgl9IGVsc2Ugew0KCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOYXZEaXNwbGF5Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgl9DQoJdGhpcy5hcHBlYXIoJ2xiRGV0YWlsc0NvbnRhaW5lcicsICh0aGlzLmRvQW5pbWF0aW9ucyA/IDAgOiAxMDApKTsNCn07DQpMeXRlQm94LnByb3RvdHlwZS51cGRhdGVOYXYgPSBmdW5jdGlvbigpIHsNCglpZiAodGhpcy5pc1NsaWRlc2hvdykgew0KCQlpZiAodGhpcy5hY3RpdmVTbGlkZSAhPSAwKSB7DQoJCQl2YXIgb2JqZWN0ID0gKHRoaXMubmF2VHlwZSA9PSAyID8gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldjInKSA6IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYnKSk7DQoJCQkJb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsNCgkJCQlvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAobXlMeXRlYm94LnBhdXNlT25QcmV2Q2xpY2spIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQYXVzZSIsICJsYlBsYXkiKTsgfQ0KCQkJCQlteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlU2xpZGUgLSAxKTsgcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJfSBlbHNlIHsNCgkJCWlmICh0aGlzLm5hdlR5cGUgPT0gMikgeyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2Ml9PZmYnKS5zdHlsZS5kaXNwbGF5ID0gJyc7IH0NCgkJfQ0KCQlpZiAodGhpcy5hY3RpdmVTbGlkZSAhPSAodGhpcy5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpKSB7DQoJCQl2YXIgb2JqZWN0ID0gKHRoaXMubmF2VHlwZSA9PSAyID8gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDInKSA6IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQnKSk7DQoJCQkJb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsNCgkJCQlvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAobXlMeXRlYm94LnBhdXNlT25OZXh0Q2xpY2spIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQYXVzZSIsICJsYlBsYXkiKTsgfQ0KCQkJCQlteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlU2xpZGUgKyAxKTsgcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJfSBlbHNlIHsNCgkJCWlmICh0aGlzLm5hdlR5cGUgPT0gMikgeyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0Ml9PZmYnKS5zdHlsZS5kaXNwbGF5ID0gJyc7IH0NCgkJfQ0KCX0gZWxzZSBpZiAodGhpcy5pc0x5dGVmcmFtZSkgew0KCQlpZih0aGlzLmFjdGl2ZUZyYW1lICE9IDApIHsNCgkJCXZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2MicpOw0KCQkJCW9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7DQoJCQkJb2JqZWN0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsNCgkJCQkJbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUZyYW1lIC0gMSk7IHJldHVybiBmYWxzZTsNCgkJCQl9DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2Ml9PZmYnKS5zdHlsZS5kaXNwbGF5ID0gJyc7DQoJCX0NCgkJaWYodGhpcy5hY3RpdmVGcmFtZSAhPSAodGhpcy5mcmFtZUFycmF5Lmxlbmd0aCAtIDEpKSB7DQoJCQl2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDInKTsNCgkJCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCQkJCW9iamVjdC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7DQoJCQkJCW15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVGcmFtZSArIDEpOyByZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQl9IGVsc2Ugew0KCQkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDJfT2ZmJykuc3R5bGUuZGlzcGxheSA9ICcnOw0KCQl9CQkNCgl9IGVsc2Ugew0KCQlpZih0aGlzLmFjdGl2ZUltYWdlICE9IDApIHsNCgkJCXZhciBvYmplY3QgPSAodGhpcy5uYXZUeXBlID09IDIgPyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2MicpIDogdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldicpKTsNCgkJCQlvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOw0KCQkJCW9iamVjdC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7DQoJCQkJCW15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVJbWFnZSAtIDEpOyByZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQl9IGVsc2Ugew0KCQkJaWYgKHRoaXMubmF2VHlwZSA9PSAyKSB7IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYyX09mZicpLnN0eWxlLmRpc3BsYXkgPSAnJzsgfQ0KCQl9DQoJCWlmKHRoaXMuYWN0aXZlSW1hZ2UgIT0gKHRoaXMuaW1hZ2VBcnJheS5sZW5ndGggLSAxKSkgew0KCQkJdmFyIG9iamVjdCA9ICh0aGlzLm5hdlR5cGUgPT0gMiA/IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQyJykgOiB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0JykpOw0KCQkJCW9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7DQoJCQkJb2JqZWN0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsNCgkJCQkJbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUltYWdlICsgMSk7IHJldHVybiBmYWxzZTsNCgkJCQl9DQoJCX0gZWxzZSB7DQoJCQlpZiAodGhpcy5uYXZUeXBlID09IDIpIHsgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDJfT2ZmJykuc3R5bGUuZGlzcGxheSA9ICcnOyB9DQoJCX0NCgl9DQoJdGhpcy5lbmFibGVLZXlib2FyZE5hdigpOw0KfTsNCkx5dGVCb3gucHJvdG90eXBlLmVuYWJsZUtleWJvYXJkTmF2ID0gZnVuY3Rpb24oKSB7IGRvY3VtZW50Lm9ua2V5ZG93biA9IHRoaXMua2V5Ym9hcmRBY3Rpb247IH07DQpMeXRlQm94LnByb3RvdHlwZS5kaXNhYmxlS2V5Ym9hcmROYXYgPSBmdW5jdGlvbigpIHsgZG9jdW1lbnQub25rZXlkb3duID0gJyc7IH07DQpMeXRlQm94LnByb3RvdHlwZS5rZXlib2FyZEFjdGlvbiA9IGZ1bmN0aW9uKGUpIHsNCgl2YXIga2V5Y29kZSA9IGtleSA9IGVzY2FwZSA9IG51bGw7DQoJa2V5Y29kZQk9IChlID09IG51bGwpID8gZXZlbnQua2V5Q29kZSA6IGUud2hpY2g7DQoJa2V5CQk9IFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTsNCgllc2NhcGUgID0gKGUgPT0gbnVsbCkgPyAyNyA6IGUuRE9NX1ZLX0VTQ0FQRTsNCglpZiAoKGtleSA9PSAneCcpIHx8IChrZXkgPT0gJ2MnKSB8fCAoa2V5Y29kZSA9PSBlc2NhcGUpKSB7DQoJCW15THl0ZWJveC5lbmQoKTsNCgl9IGVsc2UgaWYgKChrZXkgPT0gJ3AnKSB8fCAoa2V5Y29kZSA9PSAzNykpIHsNCgkJaWYgKG15THl0ZWJveC5pc1NsaWRlc2hvdykgew0KCQkJaWYobXlMeXRlYm94LmFjdGl2ZVNsaWRlICE9IDApIHsNCgkJCQlteUx5dGVib3guZGlzYWJsZUtleWJvYXJkTmF2KCk7DQoJCQkJbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZVNsaWRlIC0gMSk7DQoJCQl9DQoJCX0gZWxzZSBpZiAobXlMeXRlYm94LmlzTHl0ZWZyYW1lKSB7DQoJCQlpZihteUx5dGVib3guYWN0aXZlRnJhbWUgIT0gMCkgew0KCQkJCW15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsNCgkJCQlteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlRnJhbWUgLSAxKTsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJCWlmKG15THl0ZWJveC5hY3RpdmVJbWFnZSAhPSAwKSB7DQoJCQkJbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOw0KCQkJCW15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVJbWFnZSAtIDEpOw0KCQkJfQ0KCQl9DQoJfSBlbHNlIGlmICgoa2V5ID09ICduJykgfHwgKGtleWNvZGUgPT0gMzkpKSB7DQoJCWlmIChteUx5dGVib3guaXNTbGlkZXNob3cpIHsNCgkJCWlmKG15THl0ZWJveC5hY3RpdmVTbGlkZSAhPSAobXlMeXRlYm94LnNsaWRlQXJyYXkubGVuZ3RoIC0gMSkpIHsNCgkJCQlteUx5dGVib3guZGlzYWJsZUtleWJvYXJkTmF2KCk7DQoJCQkJbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZVNsaWRlICsgMSk7DQoJCQl9DQoJCX0gZWxzZSBpZiAobXlMeXRlYm94LmlzTHl0ZWZyYW1lKSB7DQoJCQlpZihteUx5dGVib3guYWN0aXZlRnJhbWUgIT0gKG15THl0ZWJveC5mcmFtZUFycmF5Lmxlbmd0aCAtIDEpKSB7DQoJCQkJbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOw0KCQkJCW15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVGcmFtZSArIDEpOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJaWYobXlMeXRlYm94LmFjdGl2ZUltYWdlICE9IChteUx5dGVib3guaW1hZ2VBcnJheS5sZW5ndGggLSAxKSkgew0KCQkJCW15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsNCgkJCQlteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlSW1hZ2UgKyAxKTsNCgkJCX0NCgkJfQ0KCX0NCn07DQpMeXRlQm94LnByb3RvdHlwZS5wcmVsb2FkTmVpZ2hib3JJbWFnZXMgPSBmdW5jdGlvbigpIHsNCglpZiAodGhpcy5pc1NsaWRlc2hvdykgew0KCQlpZiAoKHRoaXMuc2xpZGVBcnJheS5sZW5ndGggLSAxKSA+IHRoaXMuYWN0aXZlU2xpZGUpIHsNCgkJCXByZWxvYWROZXh0SW1hZ2UgPSBuZXcgSW1hZ2UoKTsNCgkJCXByZWxvYWROZXh0SW1hZ2Uuc3JjID0gdGhpcy5zbGlkZUFycmF5W3RoaXMuYWN0aXZlU2xpZGUgKyAxXVswXTsNCgkJfQ0KCQlpZih0aGlzLmFjdGl2ZVNsaWRlID4gMCkgew0KCQkJcHJlbG9hZFByZXZJbWFnZSA9IG5ldyBJbWFnZSgpOw0KCQkJcHJlbG9hZFByZXZJbWFnZS5zcmMgPSB0aGlzLnNsaWRlQXJyYXlbdGhpcy5hY3RpdmVTbGlkZSAtIDFdWzBdOw0KCQl9DQoJfSBlbHNlIHsNCgkJaWYgKCh0aGlzLmltYWdlQXJyYXkubGVuZ3RoIC0gMSkgPiB0aGlzLmFjdGl2ZUltYWdlKSB7DQoJCQlwcmVsb2FkTmV4dEltYWdlID0gbmV3IEltYWdlKCk7DQoJCQlwcmVsb2FkTmV4dEltYWdlLnNyYyA9IHRoaXMuaW1hZ2VBcnJheVt0aGlzLmFjdGl2ZUltYWdlICsgMV1bMF07DQoJCX0NCgkJaWYodGhpcy5hY3RpdmVJbWFnZSA+IDApIHsNCgkJCXByZWxvYWRQcmV2SW1hZ2UgPSBuZXcgSW1hZ2UoKTsNCgkJCXByZWxvYWRQcmV2SW1hZ2Uuc3JjID0gdGhpcy5pbWFnZUFycmF5W3RoaXMuYWN0aXZlSW1hZ2UgLSAxXVswXTsNCgkJfQ0KCX0NCn07DQpMeXRlQm94LnByb3RvdHlwZS50b2dnbGVQbGF5UGF1c2UgPSBmdW5jdGlvbihoaWRlSUQsIHNob3dJRCkgew0KCWlmICh0aGlzLmlzU2xpZGVzaG93ICYmIGhpZGVJRCA9PSAibGJQYXVzZSIpIHsNCgkJZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWRlc2hvd0lEQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2xpZGVzaG93SURBcnJheVtpXSk7IH0NCgl9DQoJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaGlkZUlEKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCXRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKHNob3dJRCkuc3R5bGUuZGlzcGxheSA9ICcnOw0KCWlmIChoaWRlSUQgPT0gImxiUGxheSIpIHsNCgkJdGhpcy5pc1BhdXNlZCA9IGZhbHNlOw0KCQlpZiAodGhpcy5hY3RpdmVTbGlkZSA9PSAodGhpcy5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpKSB7DQoJCQl0aGlzLmVuZCgpOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuYWN0aXZlU2xpZGUgKyAxKTsNCgkJfQ0KCX0gZWxzZSB7DQoJCXRoaXMuaXNQYXVzZWQgPSB0cnVlOw0KCX0NCn07DQpMeXRlQm94LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihjYWxsZXIpIHsNCgl2YXIgY2xvc2VDbGljayA9IChjYWxsZXIgPT0gJ3NsaWRlc2hvdycgPyBmYWxzZSA6IHRydWUpOw0KCWlmICh0aGlzLmlzU2xpZGVzaG93ICYmIHRoaXMuaXNQYXVzZWQgJiYgIWNsb3NlQ2xpY2spIHsgcmV0dXJuOyB9DQoJdGhpcy5kaXNhYmxlS2V5Ym9hcmROYXYoKTsNCgl0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJNYWluJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgl0aGlzLmZhZGUoJ2xiT3ZlcmxheScsICh0aGlzLmRvQW5pbWF0aW9ucyA/IHRoaXMubWF4T3BhY2l0eSA6IDApKTsNCgl0aGlzLnRvZ2dsZVNlbGVjdHMoJ3Zpc2libGUnKTsNCglpZiAodGhpcy5oaWRlRmxhc2gpIHsgdGhpcy50b2dnbGVGbGFzaCgndmlzaWJsZScpOyB9DQoJaWYgKHRoaXMuaXNTbGlkZXNob3cpIHsNCgkJZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWRlc2hvd0lEQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2xpZGVzaG93SURBcnJheVtpXSk7IH0NCgl9DQoJaWYgKHRoaXMuaXNMeXRlZnJhbWUpIHsNCgkJIHRoaXMuaW5pdGlhbGl6ZSgpOw0KCX0NCn07DQpMeXRlQm94LnByb3RvdHlwZS5jaGVja0ZyYW1lID0gZnVuY3Rpb24oKSB7DQoJaWYgKHdpbmRvdy5wYXJlbnQuZnJhbWVzW3dpbmRvdy5uYW1lXSAmJiAocGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmcmFtZXNldCcpLmxlbmd0aCA8PSAwKSkgew0KCQl0aGlzLmlzRnJhbWUgPSB0cnVlOw0KCQl0aGlzLmx5dGVib3ggPSAid2luZG93LnBhcmVudC4iICsgd2luZG93Lm5hbWUgKyAiLm15THl0ZWJveCI7DQoJCXRoaXMuZG9jID0gcGFyZW50LmRvY3VtZW50Ow0KCX0gZWxzZSB7DQoJCXRoaXMuaXNGcmFtZSA9IGZhbHNlOw0KCQl0aGlzLmx5dGVib3ggPSAibXlMeXRlYm94IjsNCgkJdGhpcy5kb2MgPSBkb2N1bWVudDsNCgl9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUuZ2V0UGl4ZWxSYXRlID0gZnVuY3Rpb24oY3VyLCBpbWcpIHsNCgl2YXIgZGlmZiA9IChpbWcgPiBjdXIpID8gaW1nIC0gY3VyIDogY3VyIC0gaW1nOw0KCWlmIChkaWZmID49IDAgJiYgZGlmZiA8PSAxMDApIHsgcmV0dXJuIDEwOyB9DQoJaWYgKGRpZmYgPiAxMDAgJiYgZGlmZiA8PSAyMDApIHsgcmV0dXJuIDE1OyB9DQoJaWYgKGRpZmYgPiAyMDAgJiYgZGlmZiA8PSAzMDApIHsgcmV0dXJuIDIwOyB9DQoJaWYgKGRpZmYgPiAzMDAgJiYgZGlmZiA8PSA0MDApIHsgcmV0dXJuIDI1OyB9DQoJaWYgKGRpZmYgPiA0MDAgJiYgZGlmZiA8PSA1MDApIHsgcmV0dXJuIDMwOyB9DQoJaWYgKGRpZmYgPiA1MDAgJiYgZGlmZiA8PSA2MDApIHsgcmV0dXJuIDM1OyB9DQoJaWYgKGRpZmYgPiA2MDAgJiYgZGlmZiA8PSA3MDApIHsgcmV0dXJuIDQwOyB9DQoJaWYgKGRpZmYgPiA3MDApIHsgcmV0dXJuIDQ1OyB9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUuYXBwZWFyID0gZnVuY3Rpb24oaWQsIG9wYWNpdHkpIHsNCgl2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlOw0KCW9iamVjdC5vcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOw0KCW9iamVjdC5Nb3pPcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOw0KCW9iamVjdC5LaHRtbE9wYWNpdHkgPSAob3BhY2l0eSAvIDEwMCk7DQoJb2JqZWN0LmZpbHRlciA9ICJhbHBoYShvcGFjaXR5PSIgKyAob3BhY2l0eSArIDEwKSArICIpIjsNCglpZiAob3BhY2l0eSA9PSAxMDAgJiYgKGlkID09ICdsYkltYWdlJyB8fCBpZCA9PSAnbGJJZnJhbWUnKSkgew0KCQl0cnkgeyBvYmplY3QucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKTsgfSBjYXRjaChlKSB7fQkvKiBGaXggYWRkZWQgZm9yIElFIEFscGhhIE9wYWNpdHkgRmlsdGVyIGJ1Zy4gKi8NCgkJdGhpcy51cGRhdGVEZXRhaWxzKCk7DQoJfSBlbHNlIGlmIChvcGFjaXR5ID49IHRoaXMubWF4T3BhY2l0eSAmJiBpZCA9PSAnbGJPdmVybGF5Jykgew0KCQlmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3ZlcmxheVRpbWVyQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMub3ZlcmxheVRpbWVyQXJyYXlbaV0pOyB9DQoJCXJldHVybjsNCgl9IGVsc2UgaWYgKG9wYWNpdHkgPj0gMTAwICYmIGlkID09ICdsYkRldGFpbHNDb250YWluZXInKSB7DQoJCXRyeSB7IG9iamVjdC5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpOyB9IGNhdGNoKGUpIHt9CS8qIEZpeCBhZGRlZCBmb3IgSUUgQWxwaGEgT3BhY2l0eSBGaWx0ZXIgYnVnLiAqLw0KCQlmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW1hZ2VUaW1lckNvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmltYWdlVGltZXJBcnJheVtpXSk7IH0NCgkJdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3ZlcmxheScpLnN0eWxlLmhlaWdodCA9IHRoaXMuZ2V0UGFnZVNpemUoKVsxXSArICJweCI7DQoJfSBlbHNlIHsNCgkJaWYgKGlkID09ICdsYk92ZXJsYXknKSB7DQoJCQl0aGlzLm92ZXJsYXlUaW1lckFycmF5W3RoaXMub3ZlcmxheVRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guYXBwZWFyKCciICsgaWQgKyAiJywgIiArIChvcGFjaXR5KzIwKSArICIpIiwgMSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmltYWdlVGltZXJBcnJheVt0aGlzLmltYWdlVGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5hcHBlYXIoJyIgKyBpZCArICInLCAiICsgKG9wYWNpdHkrMTApICsgIikiLCAxKTsNCgkJfQ0KCX0NCn07DQpMeXRlQm94LnByb3RvdHlwZS5mYWRlID0gZnVuY3Rpb24oaWQsIG9wYWNpdHkpIHsNCgl2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlOw0KCW9iamVjdC5vcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOw0KCW9iamVjdC5Nb3pPcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOw0KCW9iamVjdC5LaHRtbE9wYWNpdHkgPSAob3BhY2l0eSAvIDEwMCk7DQoJb2JqZWN0LmZpbHRlciA9ICJhbHBoYShvcGFjaXR5PSIgKyBvcGFjaXR5ICsgIikiOw0KCWlmIChvcGFjaXR5IDw9IDApIHsNCgkJdHJ5IHsNCgkJCW9iamVjdC5kaXNwbGF5ID0gJ25vbmUnOw0KCQl9IGNhdGNoKGVycikgeyB9DQoJfSBlbHNlIGlmIChpZCA9PSAnbGJPdmVybGF5Jykgew0KCQl0aGlzLm92ZXJsYXlUaW1lckFycmF5W3RoaXMub3ZlcmxheVRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guZmFkZSgnIiArIGlkICsgIicsICIgKyAob3BhY2l0eS0yMCkgKyAiKSIsIDEpOw0KCX0gZWxzZSB7DQoJCXRoaXMudGltZXJJREFycmF5W3RoaXMudGltZXJJRENvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LmZhZGUoJyIgKyBpZCArICInLCAiICsgKG9wYWNpdHktMTApICsgIikiLCAxKTsNCgl9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUucmVzaXplVyA9IGZ1bmN0aW9uKGlkLCBjdXJXLCBtYXhXLCBwaXhlbHJhdGUsIHNwZWVkKSB7DQoJaWYgKCF0aGlzLmhEb25lKSB7DQoJCXRoaXMucmVzaXplV1RpbWVyQXJyYXlbdGhpcy5yZXNpemVXVGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5yZXNpemVXKCciICsgaWQgKyAiJywgIiArIGN1clcgKyAiLCAiICsgbWF4VyArICIsICIgKyBwaXhlbHJhdGUgKyAiKSIsIDEwMCk7DQoJCXJldHVybjsNCgl9DQoJdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKGlkKTsNCgl2YXIgdGltZXIgPSBzcGVlZCA/IHNwZWVkIDogKHRoaXMucmVzaXplRHVyYXRpb24vMik7DQoJdmFyIG5ld1cgPSAodGhpcy5kb0FuaW1hdGlvbnMgPyBjdXJXIDogbWF4Vyk7DQoJb2JqZWN0LnN0eWxlLndpZHRoID0gKG5ld1cpICsgInB4IjsNCglpZiAobmV3VyA8IG1heFcpIHsNCgkJbmV3VyArPSAobmV3VyArIHBpeGVscmF0ZSA+PSBtYXhXKSA/IChtYXhXIC0gbmV3VykgOiBwaXhlbHJhdGU7DQoJfSBlbHNlIGlmIChuZXdXID4gbWF4Vykgew0KCQluZXdXIC09IChuZXdXIC0gcGl4ZWxyYXRlIDw9IG1heFcpID8gKG5ld1cgLSBtYXhXKSA6IHBpeGVscmF0ZTsNCgl9DQoJdGhpcy5yZXNpemVXVGltZXJBcnJheVt0aGlzLnJlc2l6ZVdUaW1lckNvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LnJlc2l6ZVcoJyIgKyBpZCArICInLCAiICsgbmV3VyArICIsICIgKyBtYXhXICsgIiwgIiArIHBpeGVscmF0ZSArICIsICIgKyAodGltZXIrMC4wMikgKyAiKSIsIHRpbWVyKzAuMDIpOw0KCWlmIChwYXJzZUludChvYmplY3Quc3R5bGUud2lkdGgpID09IG1heFcpIHsNCgkJdGhpcy53RG9uZSA9IHRydWU7DQoJCWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5yZXNpemVXVGltZXJDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZXNpemVXVGltZXJBcnJheVtpXSk7IH0NCgl9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUucmVzaXplSCA9IGZ1bmN0aW9uKGlkLCBjdXJILCBtYXhILCBwaXhlbHJhdGUsIHNwZWVkKSB7DQoJdmFyIHRpbWVyID0gc3BlZWQgPyBzcGVlZCA6ICh0aGlzLnJlc2l6ZUR1cmF0aW9uLzIpOw0KCXZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZChpZCk7DQoJdmFyIG5ld0ggPSAodGhpcy5kb0FuaW1hdGlvbnMgPyBjdXJIIDogbWF4SCk7DQoJb2JqZWN0LnN0eWxlLmhlaWdodCA9IChuZXdIKSArICJweCI7DQoJaWYgKG5ld0ggPCBtYXhIKSB7DQoJCW5ld0ggKz0gKG5ld0ggKyBwaXhlbHJhdGUgPj0gbWF4SCkgPyAobWF4SCAtIG5ld0gpIDogcGl4ZWxyYXRlOw0KCX0gZWxzZSBpZiAobmV3SCA+IG1heEgpIHsNCgkJbmV3SCAtPSAobmV3SCAtIHBpeGVscmF0ZSA8PSBtYXhIKSA/IChuZXdIIC0gbWF4SCkgOiBwaXhlbHJhdGU7DQoJfQ0KCXRoaXMucmVzaXplSFRpbWVyQXJyYXlbdGhpcy5yZXNpemVIVGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5yZXNpemVIKCciICsgaWQgKyAiJywgIiArIG5ld0ggKyAiLCAiICsgbWF4SCArICIsICIgKyBwaXhlbHJhdGUgKyAiLCAiICsgKHRpbWVyKy4wMikgKyAiKSIsIHRpbWVyKy4wMik7DQoJaWYgKHBhcnNlSW50KG9iamVjdC5zdHlsZS5oZWlnaHQpID09IG1heEgpIHsNCgkJdGhpcy5oRG9uZSA9IHRydWU7DQoJCWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5yZXNpemVIVGltZXJDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZXNpemVIVGltZXJBcnJheVtpXSk7IH0NCgl9DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUuZ2V0UGFnZVNjcm9sbCA9IGZ1bmN0aW9uKCkgew0KCWlmIChzZWxmLnBhZ2VZT2Zmc2V0KSB7DQoJCXJldHVybiB0aGlzLmlzRnJhbWUgPyBwYXJlbnQucGFnZVlPZmZzZXQgOiBzZWxmLnBhZ2VZT2Zmc2V0Ow0KCX0gZWxzZSBpZiAodGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50ICYmIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Apew0KCQlyZXR1cm4gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsNCgl9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkpIHsNCgkJcmV0dXJuIHRoaXMuZG9jLmJvZHkuc2Nyb2xsVG9wOw0KCX0NCn07DQpMeXRlQm94LnByb3RvdHlwZS5nZXRQYWdlU2l6ZSA9IGZ1bmN0aW9uKCkgewkNCgl2YXIgeFNjcm9sbCwgeVNjcm9sbCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodDsNCglpZiAod2luZG93LmlubmVySGVpZ2h0ICYmIHdpbmRvdy5zY3JvbGxNYXhZKSB7DQoJCXhTY3JvbGwgPSB0aGlzLmRvYy5zY3JvbGxXaWR0aDsNCgkJeVNjcm9sbCA9ICh0aGlzLmlzRnJhbWUgPyBwYXJlbnQuaW5uZXJIZWlnaHQgOiBzZWxmLmlubmVySGVpZ2h0KSArICh0aGlzLmlzRnJhbWUgPyBwYXJlbnQuc2Nyb2xsTWF4WSA6IHNlbGYuc2Nyb2xsTWF4WSk7DQoJfSBlbHNlIGlmICh0aGlzLmRvYy5ib2R5LnNjcm9sbEhlaWdodCA+IHRoaXMuZG9jLmJvZHkub2Zmc2V0SGVpZ2h0KXsNCgkJeFNjcm9sbCA9IHRoaXMuZG9jLmJvZHkuc2Nyb2xsV2lkdGg7DQoJCXlTY3JvbGwgPSB0aGlzLmRvYy5ib2R5LnNjcm9sbEhlaWdodDsNCgl9IGVsc2Ugew0KCQl4U2Nyb2xsID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5pdGVtKDApLm9mZnNldFdpZHRoOw0KCQl5U2Nyb2xsID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5pdGVtKDApLm9mZnNldEhlaWdodDsNCgkJeFNjcm9sbCA9ICh4U2Nyb2xsIDwgdGhpcy5kb2MuYm9keS5vZmZzZXRXaWR0aCkgPyB0aGlzLmRvYy5ib2R5Lm9mZnNldFdpZHRoIDogeFNjcm9sbDsNCgkJeVNjcm9sbCA9ICh5U2Nyb2xsIDwgdGhpcy5kb2MuYm9keS5vZmZzZXRIZWlnaHQpID8gdGhpcy5kb2MuYm9keS5vZmZzZXRIZWlnaHQgOiB5U2Nyb2xsOw0KCX0NCglpZiAoc2VsZi5pbm5lckhlaWdodCkgew0KCQl3aW5kb3dXaWR0aCA9ICh0aGlzLmlzRnJhbWUpID8gcGFyZW50LmlubmVyV2lkdGggOiBzZWxmLmlubmVyV2lkdGg7DQoJCXdpbmRvd0hlaWdodCA9ICh0aGlzLmlzRnJhbWUpID8gcGFyZW50LmlubmVySGVpZ2h0IDogc2VsZi5pbm5lckhlaWdodDsNCgl9IGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7DQoJCXdpbmRvd1dpZHRoID0gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOw0KCQl3aW5kb3dIZWlnaHQgPSB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0Ow0KCX0gZWxzZSBpZiAoZG9jdW1lbnQuYm9keSkgew0KCQl3aW5kb3dXaWR0aCA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIikuaXRlbSgwKS5jbGllbnRXaWR0aDsNCgkJd2luZG93SGVpZ2h0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5pdGVtKDApLmNsaWVudEhlaWdodDsNCgkJd2luZG93V2lkdGggPSAod2luZG93V2lkdGggPT0gMCkgPyB0aGlzLmRvYy5ib2R5LmNsaWVudFdpZHRoIDogd2luZG93V2lkdGg7DQoJCXdpbmRvd0hlaWdodCA9ICh3aW5kb3dIZWlnaHQgPT0gMCkgPyB0aGlzLmRvYy5ib2R5LmNsaWVudEhlaWdodCA6IHdpbmRvd0hlaWdodDsNCgl9DQoJdmFyIHBhZ2VIZWlnaHQgPSAoeVNjcm9sbCA8IHdpbmRvd0hlaWdodCkgPyB3aW5kb3dIZWlnaHQgOiB5U2Nyb2xsOw0KCXZhciBwYWdlV2lkdGggPSAoeFNjcm9sbCA8IHdpbmRvd1dpZHRoKSA/IHdpbmRvd1dpZHRoIDogeFNjcm9sbDsNCglyZXR1cm4gbmV3IEFycmF5KHBhZ2VXaWR0aCwgcGFnZUhlaWdodCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCk7DQp9Ow0KTHl0ZUJveC5wcm90b3R5cGUudG9nZ2xlRmxhc2ggPSBmdW5jdGlvbihzdGF0ZSkgew0KCXZhciBvYmplY3RzID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpOw0KCWZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykgew0KCQlvYmplY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOw0KCX0NCgl2YXIgZW1iZWRzID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImVtYmVkIik7DQoJZm9yICh2YXIgaSA9IDA7IGkgPCBlbWJlZHMubGVuZ3RoOyBpKyspIHsNCgkJZW1iZWRzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOw0KCX0NCglpZiAodGhpcy5pc0ZyYW1lKSB7DQoJCWZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50LmZyYW1lcy5sZW5ndGg7IGkrKykgew0KCQkJdHJ5IHsNCgkJCQlvYmplY3RzID0gcGFyZW50LmZyYW1lc1tpXS53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpOw0KCQkJCWZvciAodmFyIGogPSAwOyBqIDwgb2JqZWN0cy5sZW5ndGg7IGorKykgew0KCQkJCQlvYmplY3RzW2pdLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOw0KCQkJCX0NCgkJCX0gY2F0Y2goZSkgeyB9DQoJCQl0cnkgew0KCQkJCWVtYmVkcyA9IHBhcmVudC5mcmFtZXNbaV0ud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpOw0KCQkJCWZvciAodmFyIGogPSAwOyBqIDwgZW1iZWRzLmxlbmd0aDsgaisrKSB7DQoJCQkJCWVtYmVkc1tqXS5zdHlsZS52aXNpYmlsaXR5ID0gKHN0YXRlID09ICJoaWRlIikgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJzsNCgkJCQl9DQoJCQl9IGNhdGNoKGUpIHsgfQ0KCQl9DQoJfQ0KfTsNCkx5dGVCb3gucHJvdG90eXBlLnRvZ2dsZVNlbGVjdHMgPSBmdW5jdGlvbihzdGF0ZSkgew0KCXZhciBzZWxlY3RzID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOw0KCWZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKyApIHsNCgkJc2VsZWN0c1tpXS5zdHlsZS52aXNpYmlsaXR5ID0gKHN0YXRlID09ICJoaWRlIikgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJzsNCgl9DQoJaWYgKHRoaXMuaXNGcmFtZSkgew0KCQlmb3IgKHZhciBpID0gMDsgaSA8IHBhcmVudC5mcmFtZXMubGVuZ3RoOyBpKyspIHsNCgkJCXRyeSB7DQoJCQkJc2VsZWN0cyA9IHBhcmVudC5mcmFtZXNbaV0ud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsNCgkJCQlmb3IgKHZhciBqID0gMDsgaiA8IHNlbGVjdHMubGVuZ3RoOyBqKyspIHsNCgkJCQkJc2VsZWN0c1tqXS5zdHlsZS52aXNpYmlsaXR5ID0gKHN0YXRlID09ICJoaWRlIikgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJzsNCgkJCQl9DQoJCQl9IGNhdGNoKGUpIHsgfQ0KCQl9DQoJfQ0KfTsNCkx5dGVCb3gucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24obnVtYmVyTWlsbGlzKSB7DQoJdmFyIG5vdyA9IG5ldyBEYXRlKCk7DQoJdmFyIGV4aXRUaW1lID0gbm93LmdldFRpbWUoKSArIG51bWJlck1pbGxpczsNCgl3aGlsZSAodHJ1ZSkgew0KCQlub3cgPSBuZXcgRGF0ZSgpOw0KCQlpZiAobm93LmdldFRpbWUoKSA+IGV4aXRUaW1lKSB7IHJldHVybjsgfQ0KCX0NCn07DQppZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHsNCgl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsaW5pdEx5dGVib3gsZmFsc2UpOw0KfSBlbHNlIGlmICh3aW5kb3cuYXR0YWNoRXZlbnQpIHsNCgl3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsaW5pdEx5dGVib3gpOw0KfSBlbHNlIHsNCgl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7aW5pdEx5dGVib3goKTt9DQp9DQpmdW5jdGlvbiBpbml0THl0ZWJveCgpIHsgbXlMeXRlYm94ID0gbmV3IEx5dGVCb3goKTsgfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/lytebox/v3.22.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/slimbox/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/slimbox/css/closelabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODdhQgAWAO4AAP7+/v///3p6etvb28DAwMHBwZ2dnVlZWdLS0oODg6+vr/X19eTk5IyMjLi4uFBQUJSUlFRUVFZWVtzc3MnJyVJSUlhYWFFRUVNTU+zs7FVVVf39/erq6vb29szMzN3d3Xt7e2BgYFdXV6Kiovr6+qampk9PT0xMTPf392ZmZl9fX+Dg4EtLS97e3qGhofz8/PDw8Ovr6/v7+7W1tWxsbJWVlXh4eMrKys3NzXl5efHx8WRkZFpaWufn5+/v77Ozs7GxsePj44eHh2lpaU5OTnNzc01NTZaWlmdnZ3x8fOXl5WNjY5KSkqmpqYiIiN/f37m5ubS0tHBwcIaGhmVlZe3t7XZ2dm1tbZiYmJeXl25ubm9vb46OjtXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAQgAWAAAH/4ABgoOEhYaHiImKi4yNjo+MAJKTlJWWl5eQAS+NmJ6fmJGSATJYXQGWAR4GJKigr6CiAChZJzsfrgCCOConRx2UGQMMsAAMw5cLAwO6i6M/LAcYVAOuqiERBydNkggNAuANCAAEAsyVBAngAgkElA7rCTcBBevrg6McAiYHD0hPgjyowHCAyBQYACgIaEBhAIUECsiZq6RAAAQEAxBAEBBRooKMJTrQ41igZAF8+UA8OBCBxgoc2A4YEYICVYIECybllHhOEgMBBioZmDiUkqB6Ew4ZzQCCn4Yr2Cw8cCISwAAB7iyV68mz0lUHACo62HlUQFJDlQLESFLhgAQRB/8qcKkpaeslu5OKWgIKIIM6ASUYlK1hoLADlEZhWNFwwEKEEa0m4UU3Ma+AS3wBLCDwzexIwoYRTwrgYwtjlhB0TUKA9W5lSfDGUWKdVTLHkWcLpV1RJJsGCXFdbHC14OZOYzknW81smZjmSUBxKx3dgsYFaUNSSLBQYcRwSQoZOkzQYDNHAuiZVbyYcSPYsOxLCDhZT4HJAlUEUU9x/YGNIDdIsN0FwrniTTzjlGNPVums00BtDYJz2Ej2eGbNBylUwMMDIHAgCBQCWnDBCC9Qcoxzr5x4yTI5RRLABEus5F8MqAgywwUiiMBCFMX0mIozAegAQQUmCOChUTNg8IAwFB/46OQozugiAxM5ZJALlEBoocSVT8IiSwAkVHXJBj1w2eUrsjTjiX5n+phmj4EAADs=]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/css/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhHwAfANUAAP///5qamiYmJuTk5Ly8vMzMzKqqqrCwsKKioujo6NTU1Pb29qioqKCgoK6urtLS0tzc3NjY2Li4uObm5nBwcMbGxmhoaEZGRkhISDIyMvj4+Pr6+lBQUDY2NsTExFZWVpKSkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAHwAfAAAG/0CAcEhMPAgOBKDDoQQKxKh0CJEErleAYLu1HDRT6YCALWu5XEolPIwYymY0GmNgAxrwuJybCUcaAHlYZ3sCdxFRA28BgVgHBQMLAAkeIB9ojQYDRGSDAQwKYRsIF4ZlBFR5AJt2a3kQQlZlDBN2QxMMcBKTeaG2Qwp5RnAHv1EHcEdwUMZDBXBIcKzNq3BJcJLUAAtwStrNCNjf3GUIDtLfA9adWMzUz6cPxN/IZQ8JvdTBcAkAsli0jOHSJQSCqmlhNr0awo7RJ19TFORqdAXVEEVZyjyKtG1AgXoZA2iK8oeiKkFZGiCaggelSTiA2LhxidLASjZjBL2siNBOFQ84LyXA+mYEiRJzBO7ZCQIAIfkEAQoAIQAsEAAAAA8ADwAABldAhIPwSISOyGRguZRAAEkkc0oYREPTqSESzU4bXe8ylDEgF4PCYRoSCDCVKEDBCLTdAormasXjD1chFRd+AhaBIQiFAgWBGx+FdoEghRSIHoUciAmFHUEAIfkEAQoAIQAsFgAFAAkAFQAABlnAkDDUiAyHgYBhcEwmCQCh0wkJTRjTgESoyAYSIcAh+xAWsgThIOsQLrKIo1yYENjtHaHnbucIQXwCFCEbH4EBIQiBAgUVF4EWQosHQ3wUGkd2GBVzGQZDQQAh+QQBCgAhACwQABAADwAPAAAGWcCQcChcBI5HBJE4QB4dy2HBGSBEQ4AD9XFVUAOJ6IRBlUQroS+EuEFcBGkkARBKeEAfgR5+NAyEe4F6IQ0RQ4KBGUuIehgGi4gUaJB7FgcaVx0cFAEFV0NBACH5BAEKACEALAUAFgAVAAkAAAZUwJAwVBkajYOjUHBBbJQhgIIROAqugg/IkwgtBoVDYFxdYs+CEHk9DmXQZzWb3DBg4Ff53BAhUvB6awRJQhoHFmiBARIQAFAFARQcHSEIDgQPXUZBACH5BAEKACEALAAAEAAPAA8AAAZZwI5gOEyEjsgjhzj0JJMUpgD0RAakn001VJAKENuQRXqpbA/e0KCqiRJDAYYC8KxghvCA/lAYLJAGGXl6hHpPDYWJTxEGiYRVAwSOAVsAEBKKYSEJDwQOCEEAIfkEAQoAIQAsAAAFAAkAFQAABlnAkNCQERpDFYxAcNRQlkvjAQoVWqiCS6WAFSBCAexnE3pSQUIO1iPsYBPHuBARqNcXQoe9PhAS9gEFQg+ABwAhCYABCkISgAwTIRCKQgB/dkcDBnVyEQ1HQQAh+QQBCgAhACwAAAAADwAPAAAGWMCQcEgsBCicDnGoOVgEUOgyVKFEr0sD5oolZrjdUKQRAkeFA0MgUI5+QJ5ECEBYr8sXxIYIsdupUxJ+AQwTUwmDAQpTIQ+DBwCMdX4FjCEOgwOWCIMLlkEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/css/nextlabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAMQcAHp6eqqqqs7OzmFhYfPz89DQ0MLCwtvb221tbZ6enpycnFVVVYaGhra2tufn59bW1oeHh8/Pz76+vvr6+sHBwZKSkvn5+d/f383NzXJycklJSf///zMzMwAAAAAAAAAAACH5BAEAABwALAAAAAA/ACAAAAXfIMdtZGmeaKquLDq2cCzPdG3feK7vfO//wKBwSCwaj8igRsMwATSk53IJ2DA0gVJAU9lOpwIfuPSMYgPoxoYw0Bw2jsWAIFAoMhqI3SFuz82AKAIaVU9hWhqHP4RbCYFlKQlMGo4mW4piVQiJG5BPAKAAaiRsGn+WnECEGwemBJ6EoaOsY6iYPasbjbAqCAsHcgS2SlUkmwtQncknW1mNw6rFtEtmaNa0CCWbipfEqMlSXwTbJYOn3Unp6ukTEQXv8O8YF+stFhQG+fr5Eg/1/wADChxIsOCLgjBEIIQRAgA7]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/css/prevlabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAMQaALGxsYSEhNLS0v39/WJiYm1tbenp6dzc3MfHx7q6upqamo+Pj6Wlpby8vN3d3Xl5efT09OXl5bu7u9ra2v7+/ra2tvv7+8zMzFdXV////zMzMwAAAAAAAAAAAAAAAAAAACH5BAEAABoALAAAAAA/ACAAAAXwYCaOZGmeaKqamra+cPy6cm3feK7vfO//wKBwSCwaj8jkDoBpYh4IkbO5cGQE06ZAgWmQGhhAkKkAMAgYQwZTAJgJhCsm4HYbHE9SID3GCEQIYWsBIwx+WGIlD3wZBhgLQkx/GYFicyMLaYgmYIlMUX1lZ3wYBAEBBZdYBaenIhAEBSIFspFOpqClAWgAEHKsrSNcDpVDkiaXZCKbJngMXGq2kySXGalqzCYPqZDGfsiEcoRYdHXTYBig0uCYh1mCr7FK8/T1IhETB/r7+gP2KxcqJBhIMIEEC/9UUBjAsGHDhBAjSpxIseIQGhZTtAgBADs=]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/css/slimbox2.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU0xJTUJPWCAqLwoKI2xiT3ZlcmxheSB7Cglwb3NpdGlvbjogZml4ZWQ7Cgl6LWluZGV4OiA5OTk5OwoJbGVmdDogMDsKCXRvcDogMDsKCXdpZHRoOiAxMDAlOwoJaGVpZ2h0OiAxMDAlOwoJYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKCWN1cnNvcjogcG9pbnRlcjsKfQoKI2xiQ2VudGVyLCAjbGJCb3R0b21Db250YWluZXIgewoJcG9zaXRpb246IGFic29sdXRlOwoJei1pbmRleDogOTk5OTsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9CgoubGJMb2FkaW5nIHsKCWJhY2tncm91bmQ6ICNmZmYgdXJsKGxvYWRpbmcuZ2lmKSBuby1yZXBlYXQgY2VudGVyOwp9CgojbGJJbWFnZSB7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwOwoJdG9wOiAwOwoJYm9yZGVyOiAxMHB4IHNvbGlkICNmZmY7CgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owp9CgojbGJQcmV2TGluaywgI2xiTmV4dExpbmsgewoJZGlzcGxheTogYmxvY2s7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDA7Cgl3aWR0aDogNTAlOwoJb3V0bGluZTogbm9uZTsKfQoKI2xiUHJldkxpbmsgewoJbGVmdDogMDsKfQoKI2xiUHJldkxpbms6aG92ZXIgewoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKHByZXZsYWJlbC5naWYpIG5vLXJlcGVhdCAwIDE1JTsKfQoKI2xiTmV4dExpbmsgewoJcmlnaHQ6IDA7Cn0KCiNsYk5leHRMaW5rOmhvdmVyIHsKCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChuZXh0bGFiZWwuZ2lmKSBuby1yZXBlYXQgMTAwJSAxNSU7Cn0KCiNsYkJvdHRvbSB7Cglmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwoJZm9udC1zaXplOiAxMHB4OwoJY29sb3I6ICM2NjY7CglsaW5lLWhlaWdodDogMS40ZW07Cgl0ZXh0LWFsaWduOiBsZWZ0OwoJYm9yZGVyOiAxMHB4IHNvbGlkICNmZmY7Cglib3JkZXItdG9wLXN0eWxlOiBub25lOwp9CgojbGJDbG9zZUxpbmsgewoJZGlzcGxheTogYmxvY2s7CglmbG9hdDogcmlnaHQ7Cgl3aWR0aDogNjZweDsKCWhlaWdodDogMjJweDsKCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChjbG9zZWxhYmVsLmdpZikgbm8tcmVwZWF0IGNlbnRlcjsKCW1hcmdpbjogNXB4IDA7CglvdXRsaW5lOiBub25lOwp9CgojbGJDYXB0aW9uLCAjbGJOdW1iZXIgewoJbWFyZ2luLXJpZ2h0OiA3MXB4Owp9CgojbGJDYXB0aW9uIHsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/example.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+U2xpbWJveCAyIGV4YW1wbGUgcGFnZTwvdGl0bGU+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuMy9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL3NsaW1ib3gyLmpzIj48L3NjcmlwdD4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NsaW1ib3gyLmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJCWJvZHkgewoJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwoJCQlmb250LWZhbWlseTogYXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsKCQkJY29sb3I6ICMwMDA7CgkJfQoJCWgxLCBwIHsKCQkJdGV4dC1hbGlnbjogY2VudGVyOwoJCX0KCQlwIHsKCQkJbWFyZ2luLXRvcDogMTAwcHg7CgkJfQoJCWEgewoJCQlmb250LXdlaWdodDogYm9sZDsKCQkJY29sb3I6ICNmMDA7CgkJfQoJPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCTxoMT5TbGltYm94IDIgZXhhbXBsZSBwYWdlPC9oMT4KCTxwPgoJCTxhIGhyZWY9ImV4YW1wbGUuanBnIiByZWw9ImxpZ2h0Ym94IiB0aXRsZT0iQmVhdXRpZnVsLCBpc24ndCBpdD8iPkNsaWNrIGhlcmU8L2E+IHRvIHZpZXcgYSBwaWN0dXJlIGluc2lkZSBTbGltYm94LgoJPC9wPgo8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/example.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/extra/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/slimbox/extra/autoactivation.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKCVdpdGggdGhlIGZvbGxvd2luZyBjb2RlLCBTbGltYm94IHdpbGwgYWN0aXZhdGUgaXRzZWxmIGF1dG9tYXRpY2FsbHkgb24gYWxsIGxpbmtzIHBvaW50aW5nIHRvIGltYWdlcywKCW9yIG1vcmUgc3BlY2lmaWNhbGx5IGFsbCBsaW5rcyBoYXZpbmcgVVJMcyBlbmRpbmcgd2l0aDogIi5qcGciIG9yICIucG5nIiBvciAiLmdpZiIuCglBcyBhIHJlc3VsdCwgeW91IHdpbGwgbm90IG5lZWQgdG8gc2V0IHRoZSByZWw9ImxpZ2h0Ym94IiBhdHRyaWJ1dGUgb24gYW55IGxpbmsgdG8gYWN0aXZhdGUgU2xpbWJveC4KCUZ1cnRoZXJtb3JlLCBhbGwgaW1hZ2UgbGlua3MgY29udGFpbmVkIGluIHRoZSBzYW1lIGJsb2NrIG9yIHBhcmFncmFwaCAoaGF2aW5nIHRoZSBzYW1lIHBhcmVudCBlbGVtZW50KQoJd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gYSBnYWxsZXJ5LCBzbyB5b3Ugd2lsbCBub3QgbmVlZCB0byBzcGVjaWZ5IGdyb3VwcyBlaXRoZXIuCglJbWFnZXMgdGhhdCBhcmUgYWxvbmUgaW4gdGhlaXIgYmxvY2sgb3IgcGFyYWdyYXBoIHdpbGwgYmUgZGlzcGxheWVkIGluZGl2aWR1YWxseS4KCglSZXBsYWNlIHRoZSBkZWZhdWx0IGF1dG9sb2FkIGNvZGUgYmxvY2sgd2l0aCB0aGlzIG9uZS4KKi8KCmpRdWVyeShmdW5jdGlvbigkKSB7CgkkKCJhW2hyZWZdIikuZmlsdGVyKGZ1bmN0aW9uKCkgewoJCXJldHVybiAvXC4oanBnfHBuZ3xnaWYpJC9pLnRlc3QodGhpcy5ocmVmKTsKCX0pLnNsaW1ib3goe30sIG51bGwsIGZ1bmN0aW9uKGVsKSB7CgkJcmV0dXJuICh0aGlzID09IGVsKSB8fCAodGhpcy5wYXJlbnROb2RlICYmICh0aGlzLnBhcmVudE5vZGUgPT0gZWwucGFyZW50Tm9kZSkpOwoJfSk7Cn0pOw==]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/extra/flickr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKCVRoaXMgY29kZSBhdXRvbWF0aWNhbGx5IGludGVncmF0ZXMgRmxpY2tyIHRodW1ibmFpbHMgd2l0aCBTbGltYm94LgoJSXQgd2lsbCBzY2FuIGZvciBhbGwgbGlua3MgYXJvdW5kIHRodW1ibmFpbCBpbWFnZXMgcG9pbnRpbmcgdG8gRmxpY2tyIHBob3RvIFBBR0VTLgoJTm90ZSB0aGF0IHlvdSBkb24ndCBuZWVkIHRvIGFkZCByZWw9ImxpZ2h0Ym94IiB0byB0aGVzZSBsaW5rcy4KCVdoZW4gY2xpY2tpbmcgb24gYSBGbGlja3IgdGh1bWJuYWlsLCBTbGltYm94IHdpbGwgb3BlbiBhbmQgZGlzcGxheSB0aGUgbWVkaXVtLXNpemVkIGltYWdlLgoJVGhlIHRpdGxlIGF0dHJpYnV0ZSBvZiB0aGUgbGluayAob3IgdGhlIGFsdCBhdHRyaWJ1dGUgb2YgdGhlIHRodW1ibmFpbCBpZiBub3QgYXZhaWxhYmxlKSB3aWxsIGJlIHVzZWQKCWFzIGRlc2NyaXB0aW9uIHRleHQsIGFuZCBhIGxpbmsgdG8gdGhlIEZsaWNrciBwaG90byBwYWdlIHdpbGwgYmUgYWRkZWQgdW5kZXIgdGhlIGRlc2NyaXB0aW9uLgoKCUFkZCB0aGUgZm9sbG93aW5nIGNvZGUgdG8gdGhlIGF1dG9sb2FkIGNvZGUgYmxvY2suCiovCgpqUXVlcnkoZnVuY3Rpb24oJCkgewoJJCgiYVtocmVmXj0naHR0cDovL3d3dy5mbGlja3IuY29tL3Bob3Rvcy8nXSA+IGltZzpmaXJzdC1jaGlsZFtzcmNdIikucGFyZW50KCkuc2xpbWJveCh7fSwgZnVuY3Rpb24oZWwpIHsKCQlyZXR1cm4gW2VsLmZpcnN0Q2hpbGQuc3JjLnJlcGxhY2UoL19bbXRzXVwuKFx3KykkLywgIi4kMSIpLAoJCQkoZWwudGl0bGUgfHwgZWwuZmlyc3RDaGlsZC5hbHQpICsgJzxiciAvPjxhIGhyZWY9IicgKyBlbC5ocmVmICsgJyI+RmxpY2tyIHBhZ2U8L2E+J107Cgl9KTsKfSk7]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/extra/picasaweb.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKCVRoaXMgY29kZSBhdXRvbWF0aWNhbGx5IGludGVncmF0ZXMgUGljYXNhIFdlYiBBbGJ1bXMgdGh1bWJuYWlscyB3aXRoIFNsaW1ib3guCglJdCB3aWxsIHNjYW4gZm9yIGFsbCBsaW5rcyBhcm91bmQgdGh1bWJuYWlsIGltYWdlcyBwb2ludGluZyB0byBQaWNhc2EgV2ViIEFsYnVtcyBwaG90byBQQUdFUy4KCU5vdGUgdGhhdCB5b3UgZG9uJ3QgbmVlZCB0byBhZGQgcmVsPSJsaWdodGJveCIgdG8gdGhlc2UgbGlua3MuCglXaGVuIGNsaWNraW5nIG9uIGEgUGljYXNhIFdlYiBBbGJ1bXMgdGh1bWJuYWlsLCBTbGltYm94IHdpbGwgb3BlbiBhbmQgZGlzcGxheSB0aGUgbWVkaXVtLXNpemVkIGltYWdlLgoJVGhlIHRpdGxlIGF0dHJpYnV0ZSBvZiB0aGUgbGluayAob3IgdGhlIGFsdCBhdHRyaWJ1dGUgb2YgdGhlIHRodW1ibmFpbCBpZiBub3QgYXZhaWxhYmxlKSB3aWxsIGJlIHVzZWQKCWFzIGRlc2NyaXB0aW9uIHRleHQsIGFuZCBhIGxpbmsgdG8gdGhlIFBpY2FzYSBXZWIgQWxidW1zIHBob3RvIHBhZ2Ugd2lsbCBiZSBhZGRlZCB1bmRlciB0aGUgZGVzY3JpcHRpb24uCgoJQWRkIHRoZSBmb2xsb3dpbmcgY29kZSB0byB0aGUgYXV0b2xvYWQgY29kZSBibG9jay4KKi8KCmpRdWVyeShmdW5jdGlvbigkKSB7CgkkKCJhW2hyZWZePSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS4nXSA+IGltZzpmaXJzdC1jaGlsZFtzcmNdIikucGFyZW50KCkuc2xpbWJveCh7fSwgZnVuY3Rpb24oZWwpIHsKCQlyZXR1cm4gW2VsLmZpcnN0Q2hpbGQuc3JjLnJlcGxhY2UoL1wvc1xkKyg/OlwtYyk/XC8oW15cL10rKSQvLCAiL3M1MTIvJDEiKSwKCQkJKGVsLnRpdGxlIHx8IGVsLmZpcnN0Q2hpbGQuYWx0KSArICc8YnIgLz48YSBocmVmPSInICsgZWwuaHJlZiArICciPlBpY2FzYSBXZWIgQWxidW1zIHBhZ2U8L2E+J107Cgl9KTsKfSk7]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/slimbox/js/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS4zLjIKICogaHR0cDovL2pxdWVyeS5jb20vCiAqCiAqIENvcHlyaWdodCAoYykgMjAwOSBKb2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UKICoKICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKICogUmV2aXNpb246IDYyNDYKICovCihmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4kLG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0vXltePF0qKDwoLnxccykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZuPW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVUeXBlKXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1cm4gdGhpc31pZih0eXBlb2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7RT1vLmNsZWFuKFtHWzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10pO2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNvbnRleHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVybiBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2VsZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1FLmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXkoRSkpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpOnRoaXNbRV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZPYmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24oRSl7dGhpcy5sZW5ndGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1bmN0aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4gdGhpc1swXSYmb1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMsRixvLnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYpe2lmKChFPT0id2lkdGgifHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJjdXJDU1MiKX0sdGV4dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXtyZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChGfHx0aGlzLGZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0UrPXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5vd25lckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhpc1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZpcnN0Q2hpbGR9cmV0dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndyYXBBbGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQoRSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2VydEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmluZChFLHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoby5tYXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6ZnVuY3Rpb24oRyl7dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIgSj10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQoIioiKS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRzIik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtLXVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gRi5ub2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVudE5vZGU7RisrfX0pfSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSksIm5vdCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5ndGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gRj9vLmluQXJyYXkodGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5nIj9vKEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gISFFJiZvLm11bHRpRmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMuaXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYoby5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIpKXt2YXIgST1FLnNlbGVjdGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0dXJuIG51bGx9Zm9yKHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtGXTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1yZXR1cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJldHVybiBnfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0xKXtyZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhpcy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFycmF5KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgTj1vLm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPShvLmluQXJyYXkodGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtpZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0pfSxodG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBlbmQoRSl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgpfSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rpb24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihKLE0sTCl7aWYodGhpc1swXSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9by5jbGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5maXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxsKEsodGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28uZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUoTiwidGFibGUiKSYmby5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihFLEYpe2lmKEYuc3JjKXtvLmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9iYWxFdmFsKEYudGV4dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5vZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3IERhdGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7Sj1hcmd1bWVudHNbMV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9uKEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVudHNbSF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07aWYoSj09PUwpe2NvbnRpbnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5kKEUsS3x8KEwubGVuZ3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJldHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1cm4gb30saXNGdW5jdGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVuY3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgQXJyYXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9PT05JiZFLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGlsZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9kZU5hbWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5hcHBseShHW0VdLEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHkoR1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lmKEsuY2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2YXIgSj1HWzBdO0g8SSYmSy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lmKG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRkOmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYoRS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUrPShFLmNsYXNzTmFtZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4oIiAiKToiIn19LGhhczpmdW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5nKCkuc3BsaXQoL1xzKy8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIgRiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFyIEYgaW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJvdHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhlaWdodDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigpe2lmKCFFKXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7TCs9cGFyc2VGbG9hdChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFyc2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYoSC5vZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2YXIgTCxFPUkuc3R5bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRyKEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9d31pZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIE09cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXtyZXR1cm4gTy50b1VwcGVyQ2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4KT8kL2kudGVzdChMKSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUubGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7TD1FLnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2YXIgSD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0ZUVsZW1lbnQoSFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMpe2lmKHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlwZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rpb24oVSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxzKy8sIiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQiKSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5kZXhPZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8ubWF0Y2goL148KHRoZWFkfHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjx0ciIpJiZbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRleE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJlsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsxXStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkpe3ZhciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikmJiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6W107Zm9yKHZhciBNPU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHkiKSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChOW01dKX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9by5tYWtlQXJyYXkoTC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8ubWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShHW0pdLCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHW0pdKTpHW0pdKX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtKKzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxhdHRyOmZ1bmN0aW9uKEosRyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8uaXNYTUxEb2MoSiksTD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0vaHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtKLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihMKXtpZihHPT0idHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0idGFiSW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7cmV0dXJuIEkmJkkuc3BlY2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKS9pKT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8uYXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciBFPSFvLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJpYnV0ZShHKTtyZXR1cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNpdHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBoYVwoW14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhhKG9wYWNpdHk9IitLKjEwMCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFyc2VGbG9hdChKLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1HLnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2UoKX0pO2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXtyZXR1cm4oRXx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEchPW51bGwpe3ZhciBGPUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNGdW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdbRl19fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0wLEY9SC5sZW5ndGg7RTxGO0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7dmFyIEY9MCxHLEk9SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkhPW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10pIT1udWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2YXIgRj1bXSxFPXt9O3RyeXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT10cnVlO0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5jdGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZighRSE9IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVsbCl7RltGLmxlbmd0aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2goLy4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0sc2FmYXJpOi93ZWJraXQvLnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEvLnRlc3QoQyksbW96aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxwYXJlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9LG5leHQ6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwicHJldmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZyYW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VBcnJheShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8ubWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFyIEk9KEs+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJKTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHtyZW1vdmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRkKHRoaXMsRSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFvLmNsYXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxyZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRoaXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4oKS5yZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0cnVlKSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRhOmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYoRSYmIW8uY2FjaGVbSF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVbSF1bRV07RT0iIjtmb3IoRSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVsZXRlIEZbaF19Y2F0Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgpfX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwiZngiKSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXkoSCkpe0c9by5kYXRhKEYsRSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpmdW5jdGlvbihILEcpe3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIpe0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihFLEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7aWYoRz09PWcpe3ZhciBGPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRoaXMubGVuZ3RoKXtGPW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEoSFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBdLEddKS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6ZnVuY3Rpb24oRSxGKXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXtyZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgRz1vLnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1swXS5jYWxsKHRoaXMpfX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUodGhpcyxFKX0pfX0pOwovKgogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYwLjkuMwogKiAgQ29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVqcy5jb20vCiAqLwooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9kZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmluZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJpZ2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTImJkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBdXT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRpdmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3AoKSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFyZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXthaT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lmKCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUkucmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0iW29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVUeXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2RlVHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixhYyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3IodmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2UoYWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5bXX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtpZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vic3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTticmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZLFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4gSS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJbYWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5wcmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRydWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFmKXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRydWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihhaCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3JldHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJPUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyciXSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVybiBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3ZhciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYmIVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYoKFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFbV109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEsdHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgmJiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5hbWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmlsdGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRjaCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYsVyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3RyaW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJldmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVvZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlkKFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFtZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0sVEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9nLCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtpZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTApKXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJRDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUsVCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJvZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0rKFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgsVSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10pe1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4gWH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNoKFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxzZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1yZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQodHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2FibGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4gVC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRydWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBULnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFkaW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1ULnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1XLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihVLFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBUWzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJuIFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxaLmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZbM107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2goWil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5vZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2FzZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTApe3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUhPT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFyIGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0wJiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRBdHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2RlVHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhVLmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRUUjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1ZdKFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTtyZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgtVS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtpZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEkubWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpfWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVjdCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgubGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhbVl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFyIEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJjZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1lbHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVjdE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJIVE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtULmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWKSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9uKFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3ZhciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9yKHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31yZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlwZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcpe1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgucXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1ULm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlvdXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1ddO2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1VdO3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVha31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVOYW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxhYyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkpe1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUhPT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQub3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIgVz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVbVF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVybiBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3RvcnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2VsZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxULm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3JldHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4gRi5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcmJlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtvLm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5vZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5wdXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlvbihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJbnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxvLmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJlZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgiLiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05dO2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwoSSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVjaWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5hZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxsfSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYoSD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGluIEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4iKTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigiLipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtmb3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2FsbChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxvLmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZlbnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNlKX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5kbGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIgTD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3ZhciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChvLkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xpY2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlzLmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxILm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRhKEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0kucmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRjaChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3ZhciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEssRix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4iKTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIoXnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEodGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVmYXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtleSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYoSFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVuZ3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgudGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxhdGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUmJkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkkuc2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYmKChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNoPUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1ILmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1FfHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1GLmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpCLHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUsRil7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtFKyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5jdGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUmJkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlwZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUucmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9wYWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5jdGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJlbnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIsbW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxFKXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5ldmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxGKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5wcmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlzWzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGljayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dnbGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNSZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhpc30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNlbGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixFKTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlzLnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlzfX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxHPXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEksSil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtpZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBvLmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYsZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNlKXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIsRixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5kKHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkpe28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24oKXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJufXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFsc2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxsZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwudG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5lYWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1vdXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3VzZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5zcGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJpbmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBGPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVhZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5jc3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RDaGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgib25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5zdHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19sb2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXtyZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNsaWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5jdGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShKKTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlmaWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEvaS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYubmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWpheFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQiLnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJpbmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8uZ2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtIPUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUse30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIpe00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIpe2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtNLmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5kYXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2goRil8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRhKyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIpO00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlwZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNlJiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkvLCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVjKE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1sb2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFyc2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4gZ312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0uYXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRyeXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBlKX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8ubGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVmb3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lmKEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYoSi5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNoKFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5sYXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1MKCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihKJiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMpe28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYoTS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFuZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3RhdHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihHLEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcuc3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhNTDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJyb3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJLEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rpb24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28uZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBpbiBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYiKS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xpY2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNle2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlzcGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxzZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtpZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVybiBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcykuaXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixILEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRlbiIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwpe3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYmdGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMuc3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUiP0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1dPSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwxKS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMToxKSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5lbGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRlcXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVwOnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oRyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNGdW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZIfTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNvbXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVxdWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlvbihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZsb2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNlRmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxILEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3ZhciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYoRigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8udGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0sMSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0uc3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJhdGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRydWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5oaWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1KL3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5nfHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtvLmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lmKEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnByb3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24oKXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5ib2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNsaWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1vZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxsZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zmc2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFyZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNjcm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYoRS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRUb3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNjcm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRNTD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RDaGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJvcmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJLm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNldFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVDaGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIgRz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3QoR1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdpblRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lkdGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNbMF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVzdChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJlbnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3JvbGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhPZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5ib2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcpe3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgpO28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixmYWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpc1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1lbnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNldCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5ndGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpLKyJweCIpfX0pfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/js/slimbox2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKCVNsaW1ib3ggdjIuMDIgLSBUaGUgdWx0aW1hdGUgbGlnaHR3ZWlnaHQgTGlnaHRib3ggY2xvbmUgZm9yIGpRdWVyeQoJKGMpIDIwMDctMjAwOSBDaHJpc3RvcGhlIEJleWxzIDxodHRwOi8vd3d3LmRpZ2l0YWxpYS5iZT4KCU1JVC1zdHlsZSBsaWNlbnNlLgoqLwooZnVuY3Rpb24odyl7dmFyIEU9dyh3aW5kb3cpLHUsZyxGPS0xLG8seCxELHYseSxMLHMsbj0hd2luZG93LlhNTEh0dHBSZXF1ZXN0LGU9d2luZG93Lm9wZXJhJiYoZG9jdW1lbnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiKSYmKHcuYnJvd3Nlci52ZXJzaW9uPj05LjMpLG09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGw9e30sdD1uZXcgSW1hZ2UoKSxKPW5ldyBJbWFnZSgpLEgsYSxoLHEsSSxkLEcsYyxBLEs7dyhmdW5jdGlvbigpe3coImJvZHkiKS5hcHBlbmQodyhbSD13KCc8ZGl2IGlkPSJsYk92ZXJsYXkiIC8+JylbMF0sYT13KCc8ZGl2IGlkPSJsYkNlbnRlciIgLz4nKVswXSxHPXcoJzxkaXYgaWQ9ImxiQm90dG9tQ29udGFpbmVyIiAvPicpWzBdXSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpKTtoPXcoJzxkaXYgaWQ9ImxiSW1hZ2UiIC8+JykuYXBwZW5kVG8oYSkuYXBwZW5kKHE9dygnPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyIgLz4nKS5hcHBlbmQoW0k9dygnPGEgaWQ9ImxiUHJldkxpbmsiIGhyZWY9IiMiIC8+JykuY2xpY2soQilbMF0sZD13KCc8YSBpZD0ibGJOZXh0TGluayIgaHJlZj0iIyIgLz4nKS5jbGljayhmKVswXV0pWzBdKVswXTtjPXcoJzxkaXYgaWQ9ImxiQm90dG9tIiAvPicpLmFwcGVuZFRvKEcpLmFwcGVuZChbdygnPGEgaWQ9ImxiQ2xvc2VMaW5rIiBocmVmPSIjIiAvPicpLmFkZChIKS5jbGljayhDKVswXSxBPXcoJzxkaXYgaWQ9ImxiQ2FwdGlvbiIgLz4nKVswXSxLPXcoJzxkaXYgaWQ9ImxiTnVtYmVyIiAvPicpWzBdLHcoJzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyIgLz4nKVswXV0pWzBdfSk7dy5zbGltYm94PWZ1bmN0aW9uKE8sTixNKXt1PXcuZXh0ZW5kKHtsb29wOmZhbHNlLG92ZXJsYXlPcGFjaXR5OjAuOCxvdmVybGF5RmFkZUR1cmF0aW9uOjQwMCxyZXNpemVEdXJhdGlvbjo0MDAscmVzaXplRWFzaW5nOiJzd2luZyIsaW5pdGlhbFdpZHRoOjI1MCxpbml0aWFsSGVpZ2h0OjI1MCxpbWFnZUZhZGVEdXJhdGlvbjo0MDAsY2FwdGlvbkFuaW1hdGlvbkR1cmF0aW9uOjQwMCxjb3VudGVyVGV4dDoiSW1hZ2Uge3h9IG9mIHt5fSIsY2xvc2VLZXlzOlsyNyw4OCw2N10scHJldmlvdXNLZXlzOlszNyw4MF0sbmV4dEtleXM6WzM5LDc4XX0sTSk7aWYodHlwZW9mIE89PSJzdHJpbmciKXtPPVtbTyxOXV07Tj0wfXk9RS5zY3JvbGxUb3AoKSsoKGU/bS5jbGllbnRIZWlnaHQ6RS5oZWlnaHQoKSkvMik7TD11LmluaXRpYWxXaWR0aDtzPXUuaW5pdGlhbEhlaWdodDt3KGEpLmNzcyh7dG9wOk1hdGgubWF4KDAseS0ocy8yKSksd2lkdGg6TCxoZWlnaHQ6cyxtYXJnaW5MZWZ0Oi1MLzJ9KS5zaG93KCk7dj1ufHwoSC5jdXJyZW50U3R5bGUmJihILmN1cnJlbnRTdHlsZS5wb3NpdGlvbiE9ImZpeGVkIikpO2lmKHYpe0guc3R5bGUucG9zaXRpb249ImFic29sdXRlIn13KEgpLmNzcygib3BhY2l0eSIsdS5vdmVybGF5T3BhY2l0eSkuZmFkZUluKHUub3ZlcmxheUZhZGVEdXJhdGlvbik7eigpO2soMSk7Zz1PO3UubG9vcD11Lmxvb3AmJihnLmxlbmd0aD4xKTtyZXR1cm4gYihOKX07dy5mbi5zbGltYm94PWZ1bmN0aW9uKE0sUCxPKXtQPVB8fGZ1bmN0aW9uKFEpe3JldHVybltRLmhyZWYsUS50aXRsZV19O089T3x8ZnVuY3Rpb24oKXtyZXR1cm4gdHJ1ZX07dmFyIE49dGhpcztyZXR1cm4gTi51bmJpbmQoImNsaWNrIikuY2xpY2soZnVuY3Rpb24oKXt2YXIgUz10aGlzLFU9MCxULFE9MCxSO1Q9dy5ncmVwKE4sZnVuY3Rpb24oVyxWKXtyZXR1cm4gTy5jYWxsKFMsVyxWKX0pO2ZvcihSPVQubGVuZ3RoO1E8UjsrK1Epe2lmKFRbUV09PVMpe1U9UX1UW1FdPVAoVFtRXSxRKX1yZXR1cm4gdy5zbGltYm94KFQsVSxNKX0pfTtmdW5jdGlvbiB6KCl7dmFyIE49RS5zY3JvbGxMZWZ0KCksTT1lP20uY2xpZW50V2lkdGg6RS53aWR0aCgpO3coW2EsR10pLmNzcygibGVmdCIsTisoTS8yKSk7aWYodil7dyhIKS5jc3Moe2xlZnQ6Tix0b3A6RS5zY3JvbGxUb3AoKSx3aWR0aDpNLGhlaWdodDpFLmhlaWdodCgpfSl9fWZ1bmN0aW9uIGsoTSl7dygib2JqZWN0IikuYWRkKG4/InNlbGVjdCI6ImVtYmVkIikuZWFjaChmdW5jdGlvbihPLFApe2lmKE0pe3cuZGF0YShQLCJzbGltYm94IixQLnN0eWxlLnZpc2liaWxpdHkpfVAuc3R5bGUudmlzaWJpbGl0eT1NPyJoaWRkZW4iOncuZGF0YShQLCJzbGltYm94Iil9KTt2YXIgTj1NPyJiaW5kIjoidW5iaW5kIjtFW05dKCJzY3JvbGwgcmVzaXplIix6KTt3KGRvY3VtZW50KVtOXSgia2V5ZG93biIscCl9ZnVuY3Rpb24gcChPKXt2YXIgTj1PLmtleUNvZGUsTT13LmluQXJyYXk7cmV0dXJuKE0oTix1LmNsb3NlS2V5cyk+PTApP0MoKTooTShOLHUubmV4dEtleXMpPj0wKT9mKCk6KE0oTix1LnByZXZpb3VzS2V5cyk+PTApP0IoKTpmYWxzZX1mdW5jdGlvbiBCKCl7cmV0dXJuIGIoeCl9ZnVuY3Rpb24gZigpe3JldHVybiBiKEQpfWZ1bmN0aW9uIGIoTSl7aWYoTT49MCl7Rj1NO289Z1tGXVswXTt4PShGfHwodS5sb29wP2cubGVuZ3RoOjApKS0xO0Q9KChGKzEpJWcubGVuZ3RoKXx8KHUubG9vcD8wOi0xKTtyKCk7YS5jbGFzc05hbWU9ImxiTG9hZGluZyI7bD1uZXcgSW1hZ2UoKTtsLm9ubG9hZD1qO2wuc3JjPW99cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGooKXthLmNsYXNzTmFtZT0iIjt3KGgpLmNzcyh7YmFja2dyb3VuZEltYWdlOiJ1cmwoIitvKyIpIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6IiJ9KTt3KHEpLndpZHRoKGwud2lkdGgpO3coW3EsSSxkXSkuaGVpZ2h0KGwuaGVpZ2h0KTt3KEEpLmh0bWwoZ1tGXVsxXXx8IiIpO3coSykuaHRtbCgoKChnLmxlbmd0aD4xKSYmdS5jb3VudGVyVGV4dCl8fCIiKS5yZXBsYWNlKC97eH0vLEYrMSkucmVwbGFjZSgve3l9LyxnLmxlbmd0aCkpO2lmKHg+PTApe3Quc3JjPWdbeF1bMF19aWYoRD49MCl7Si5zcmM9Z1tEXVswXX1MPWgub2Zmc2V0V2lkdGg7cz1oLm9mZnNldEhlaWdodDt2YXIgTT1NYXRoLm1heCgwLHktKHMvMikpO2lmKGEub2Zmc2V0SGVpZ2h0IT1zKXt3KGEpLmFuaW1hdGUoe2hlaWdodDpzLHRvcDpNfSx1LnJlc2l6ZUR1cmF0aW9uLHUucmVzaXplRWFzaW5nKX1pZihhLm9mZnNldFdpZHRoIT1MKXt3KGEpLmFuaW1hdGUoe3dpZHRoOkwsbWFyZ2luTGVmdDotTC8yfSx1LnJlc2l6ZUR1cmF0aW9uLHUucmVzaXplRWFzaW5nKX13KGEpLnF1ZXVlKGZ1bmN0aW9uKCl7dyhHKS5jc3Moe3dpZHRoOkwsdG9wOk0rcyxtYXJnaW5MZWZ0Oi1MLzIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiIifSk7dyhoKS5jc3Moe2Rpc3BsYXk6Im5vbmUiLHZpc2liaWxpdHk6IiIsb3BhY2l0eToiIn0pLmZhZGVJbih1LmltYWdlRmFkZUR1cmF0aW9uLGkpfSl9ZnVuY3Rpb24gaSgpe2lmKHg+PTApe3coSSkuc2hvdygpfWlmKEQ+PTApe3coZCkuc2hvdygpfXcoYykuY3NzKCJtYXJnaW5Ub3AiLC1jLm9mZnNldEhlaWdodCkuYW5pbWF0ZSh7bWFyZ2luVG9wOjB9LHUuY2FwdGlvbkFuaW1hdGlvbkR1cmF0aW9uKTtHLnN0eWxlLnZpc2liaWxpdHk9IiJ9ZnVuY3Rpb24gcigpe2wub25sb2FkPW51bGw7bC5zcmM9dC5zcmM9Si5zcmM9bzt3KFthLGgsY10pLnN0b3AodHJ1ZSk7dyhbSSxkLGgsR10pLmhpZGUoKX1mdW5jdGlvbiBDKCl7aWYoRj49MCl7cigpO0Y9eD1EPS0xO3coYSkuaGlkZSgpO3coSCkuc3RvcCgpLmZhZGVPdXQodS5vdmVybGF5RmFkZUR1cmF0aW9uLGspfXJldHVybiBmYWxzZX19KShqUXVlcnkpOwoKLy8gQVVUT0xPQUQgQ09ERSBCTE9DSyAoTUFZIEJFIENIQU5HRUQgT1IgUkVNT1ZFRCkKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCSQoImFbcmVsXj0nbGlnaHRib3gnXSIpLnNsaW1ib3goey8qIFB1dCBjdXN0b20gb3B0aW9ucyBoZXJlICovfSwgbnVsbCwgZnVuY3Rpb24oZWwpIHsKCQlyZXR1cm4gKHRoaXMgPT0gZWwpIHx8ICgodGhpcy5yZWwubGVuZ3RoID4gOCkgJiYgKHRoaXMucmVsID09IGVsLnJlbCkpOwoJfSk7Cn0pOw==]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/README.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[U0xJTUJPWCBWMi4wMiBSRUFETUUKPT09PT09PT09PT09PT09PT09PT0KVGhlIHVsdGltYXRlIGxpZ2h0d2VpZ2h0IExpZ2h0Ym94IGNsb25lCi4uLiBub3cgdXNpbmcgdGhlIGpRdWVyeSBqYXZhc2NyaXB0IGxpYnJhcnkKCihjKSBDaHJpc3RvcGhlIEJleWxzIDIwMDctMjAwOQpNSVQtc3R5bGUgbGljZW5zZQoKaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3NsaW1ib3gvCgoKSW5jbHVkZWQgZmlsZXM6CgpleGFtcGxlLmh0bWwJCUEgc2ltcGxlIGV4YW1wbGUgcGFnZSBkZW1vbnN0cmF0aW5nIGhvdyB0byB1c2UgU2xpbWJveCB3aXRoIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uCmV4YW1wbGUuanBnCQlBbiBleGFtcGxlIGltYWdlIHVzZWQgb24gdGhlIGV4YW1wbGUgcGFnZS4KUkVBRE1FLnR4dAkJVGhlIGZpbGUgeW91IGFyZSByZWFkaW5nLgpjc3MvKgkJCVRoZSBTbGltYm94IHN0eWxlc2hlZXQgYW5kIGl0cyBhc3NvY2lhdGVkIGltYWdlcy4gWW91IGNhbiBlZGl0IHRoZW0gdG8gY3VzdG9taXplIFNsaW1ib3ggYXBwZWFyYW5jZS4KanMvc2xpbWJveDIuanMJCVRoZSBtaW5pZmllZCB2ZXJzaW9uIG9mIFNsaW1ib3ggMiwgcGx1cyB0aGUgZWRpdGFibGUgYXV0b2xvYWRpbmcgY29kZSB1c2luZyBkZWZhdWx0IG9wdGlvbnMuCnNyYy9zbGltYm94Mi5qcwkJVGhlIFNsaW1ib3ggMiBzb3VyY2UuIENvbnRhaW5zIG1hbnkgY29tbWVudHMgYW5kIGlzIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UgKG5lZWRzIHRvIGJlIG1pbmlmaWVkIGZpcnN0KS4KZXh0cmEvKgkJCVNvbWUgZXh0cmEgc2NyaXB0cyB0aGF0IHlvdSBjYW4gYWRkIHRvIHRoZSBhdXRvbG9hZCBjb2RlIGJsb2NrIGluc2lkZSBzbGltYm94Mi5qcyB0byBhZGQgc3BlY2lhbCBmdW5jdGlvbmFsaXR5LgoKClNsaW1ib3ggMiByZXF1aXJlcyB0aGUgalF1ZXJ5IGxpYnJhcnkgKHZlcnNpb24gMS4yLjYgb3IgbW9yZSByZWNlbnQpIHRvIGJlIGluc3RhbGxlZCBvbiB5b3VyIHdlYnNpdGUgaW4gb3JkZXIgdG8gd29yayBwcm9wZXJseS4KCllvdSBjYW4gcmVtb3ZlIG9yIGN1c3RvbWl6ZSB0aGUgcHJvdmlkZWQgYXV0b2xvYWQgY29kZSBibG9jayBieSBlZGl0aW5nIHRoZSBzbGltYm94Mi5qcyBmaWxlLiBCeSBkZWZhdWx0LCBpdCBiZWhhdmVzIGxpa2UgTGlnaHRib3guCldoZW4gZGVwbG95aW5nIHNsaW1ib3gyLmpzLCB5b3UgTVVTVCBhbHdheXMgcHJlc2VydmUgdGhlIGNvcHlyaWdodCBub3RpY2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZS4KCklmIHlvdSBhcmUgYSBkZXZlbG9wZXIgYW5kIHdhbnQgdG8gZWRpdCB0aGUgcHJvdmlkZWQgc291cmNlIGNvZGUsIGl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIG1pbmlmeSB0aGUgc2NyaXB0IHVzaW5nICJZVUkgQ29tcHJlc3NvciIKYnkgSnVsaWVuIExlY29tdGUgYmVmb3JlIGRpc3RyaWJ1dGlvbi4gSXQgd2lsbCBzdHJpcCBzcGFjZXMgYW5kIGNvbW1lbnRzIGFuZCBzaHJpbmsgdGhlIHZhcmlhYmxlIG5hbWVzIGluIG9yZGVyIHRvIG9idGFpbiB0aGUgc21hbGxlc3QgZmlsZSBzaXplLgoKRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWFkIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBvZmZpY2lhbCBwcm9qZWN0IHBhZ2UuCgoKRW5qb3kh]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/src/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/slimbox/src/autoload.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQVVUT0xPQUQgQ09ERSBCTE9DSyAoTUFZIEJFIENIQU5HRUQgT1IgUkVNT1ZFRCkKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCSQoImFbcmVsXj0nbGlnaHRib3gnXSIpLnNsaW1ib3goey8qIFB1dCBjdXN0b20gb3B0aW9ucyBoZXJlICovfSwgbnVsbCwgZnVuY3Rpb24oZWwpIHsKCQlyZXR1cm4gKHRoaXMgPT0gZWwpIHx8ICgodGhpcy5yZWwubGVuZ3RoID4gOCkgJiYgKHRoaXMucmVsID09IGVsLnJlbCkpOwoJfSk7Cn0pOw==]]></data>
	</file>
	<file>
	  <filename>/templates/slimbox/src/slimbox2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCglTbGltYm94IHYyLjAyIC0gVGhlIHVsdGltYXRlIGxpZ2h0d2VpZ2h0IExpZ2h0Ym94IGNsb25lIGZvciBqUXVlcnkKCShjKSAyMDA3LTIwMDkgQ2hyaXN0b3BoZSBCZXlscyA8aHR0cDovL3d3dy5kaWdpdGFsaWEuYmU+CglNSVQtc3R5bGUgbGljZW5zZS4KKi8KCihmdW5jdGlvbigkKSB7CgoJLy8gR2xvYmFsIHZhcmlhYmxlcywgYWNjZXNzaWJsZSB0byBTbGltYm94IG9ubHkKCXZhciB3aW4gPSAkKHdpbmRvdyksIG9wdGlvbnMsIGltYWdlcywgYWN0aXZlSW1hZ2UgPSAtMSwgYWN0aXZlVVJMLCBwcmV2SW1hZ2UsIG5leHRJbWFnZSwgY29tcGF0aWJsZU92ZXJsYXksIG1pZGRsZSwgY2VudGVyV2lkdGgsIGNlbnRlckhlaWdodCwgaWU2ID0gIXdpbmRvdy5YTUxIdHRwUmVxdWVzdCwKCQlvcGVyYUZpeCA9IHdpbmRvdy5vcGVyYSAmJiAoZG9jdW1lbnQuY29tcGF0TW9kZSA9PSAiQ1NTMUNvbXBhdCIpICYmICgkLmJyb3dzZXIudmVyc2lvbiA+PSA5LjMpLCBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCgoJLy8gUHJlbG9hZCBpbWFnZXMKCXByZWxvYWQgPSB7fSwgcHJlbG9hZFByZXYgPSBuZXcgSW1hZ2UoKSwgcHJlbG9hZE5leHQgPSBuZXcgSW1hZ2UoKSwKCgkvLyBET00gZWxlbWVudHMKCW92ZXJsYXksIGNlbnRlciwgaW1hZ2UsIHNpemVyLCBwcmV2TGluaywgbmV4dExpbmssIGJvdHRvbUNvbnRhaW5lciwgYm90dG9tLCBjYXB0aW9uLCBudW1iZXI7CgoJLyoKCQlJbml0aWFsaXphdGlvbgoJKi8KCgkkKGZ1bmN0aW9uKCkgewoJCS8vIEFwcGVuZCB0aGUgU2xpbWJveCBIVE1MIGNvZGUgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZG9jdW1lbnQKCQkkKCJib2R5IikuYXBwZW5kKAoJCQkkKFsKCQkJCW92ZXJsYXkgPSAkKCc8ZGl2IGlkPSJsYk92ZXJsYXkiIC8+JylbMF0sCgkJCQljZW50ZXIgPSAkKCc8ZGl2IGlkPSJsYkNlbnRlciIgLz4nKVswXSwKCQkJCWJvdHRvbUNvbnRhaW5lciA9ICQoJzxkaXYgaWQ9ImxiQm90dG9tQ29udGFpbmVyIiAvPicpWzBdCgkJCV0pLmNzcygiZGlzcGxheSIsICJub25lIikKCQkpOwoKCQlpbWFnZSA9ICQoJzxkaXYgaWQ9ImxiSW1hZ2UiIC8+JykuYXBwZW5kVG8oY2VudGVyKS5hcHBlbmQoCgkJCXNpemVyID0gJCgnPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyIgLz4nKS5hcHBlbmQoWwoJCQkJcHJldkxpbmsgPSAkKCc8YSBpZD0ibGJQcmV2TGluayIgaHJlZj0iIyIgLz4nKS5jbGljayhwcmV2aW91cylbMF0sCgkJCQluZXh0TGluayA9ICQoJzxhIGlkPSJsYk5leHRMaW5rIiBocmVmPSIjIiAvPicpLmNsaWNrKG5leHQpWzBdCgkJCV0pWzBdCgkJKVswXTsKCgkJYm90dG9tID0gJCgnPGRpdiBpZD0ibGJCb3R0b20iIC8+JykuYXBwZW5kVG8oYm90dG9tQ29udGFpbmVyKS5hcHBlbmQoWwoJCQkkKCc8YSBpZD0ibGJDbG9zZUxpbmsiIGhyZWY9IiMiIC8+JykuYWRkKG92ZXJsYXkpLmNsaWNrKGNsb3NlKVswXSwKCQkJY2FwdGlvbiA9ICQoJzxkaXYgaWQ9ImxiQ2FwdGlvbiIgLz4nKVswXSwKCQkJbnVtYmVyID0gJCgnPGRpdiBpZD0ibGJOdW1iZXIiIC8+JylbMF0sCgkJCSQoJzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyIgLz4nKVswXQoJCV0pWzBdOwoJfSk7CgoKCS8qCgkJQVBJCgkqLwoKCS8vIE9wZW4gU2xpbWJveCB3aXRoIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycwoJJC5zbGltYm94ID0gZnVuY3Rpb24oX2ltYWdlcywgc3RhcnRJbWFnZSwgX29wdGlvbnMpIHsKCQlvcHRpb25zID0gJC5leHRlbmQoewoJCQlsb29wOiBmYWxzZSwJCQkJLy8gQWxsb3dzIHRvIG5hdmlnYXRlIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgaW1hZ2VzCgkJCW92ZXJsYXlPcGFjaXR5OiAwLjgsCQkJLy8gMSBpcyBvcGFxdWUsIDAgaXMgY29tcGxldGVseSB0cmFuc3BhcmVudCAoY2hhbmdlIHRoZSBjb2xvciBpbiB0aGUgQ1NTIGZpbGUpCgkJCW92ZXJsYXlGYWRlRHVyYXRpb246IDQwMCwJCS8vIER1cmF0aW9uIG9mIHRoZSBvdmVybGF5IGZhZGUtaW4gYW5kIGZhZGUtb3V0IGFuaW1hdGlvbnMgKGluIG1pbGxpc2Vjb25kcykKCQkJcmVzaXplRHVyYXRpb246IDQwMCwJCQkvLyBEdXJhdGlvbiBvZiBlYWNoIG9mIHRoZSBib3ggcmVzaXplIGFuaW1hdGlvbnMgKGluIG1pbGxpc2Vjb25kcykKCQkJcmVzaXplRWFzaW5nOiAic3dpbmciLAkJCS8vICJzd2luZyIgaXMgalF1ZXJ5J3MgZGVmYXVsdCBlYXNpbmcKCQkJaW5pdGlhbFdpZHRoOiAyNTAsCQkJLy8gSW5pdGlhbCB3aWR0aCBvZiB0aGUgYm94IChpbiBwaXhlbHMpCgkJCWluaXRpYWxIZWlnaHQ6IDI1MCwJCQkvLyBJbml0aWFsIGhlaWdodCBvZiB0aGUgYm94IChpbiBwaXhlbHMpCgkJCWltYWdlRmFkZUR1cmF0aW9uOiA0MDAsCQkJLy8gRHVyYXRpb24gb2YgdGhlIGltYWdlIGZhZGUtaW4gYW5pbWF0aW9uIChpbiBtaWxsaXNlY29uZHMpCgkJCWNhcHRpb25BbmltYXRpb25EdXJhdGlvbjogNDAwLAkJLy8gRHVyYXRpb24gb2YgdGhlIGNhcHRpb24gYW5pbWF0aW9uIChpbiBtaWxsaXNlY29uZHMpCgkJCWNvdW50ZXJUZXh0OiAiSW1hZ2Uge3h9IG9mIHt5fSIsCS8vIFRyYW5zbGF0ZSBvciBjaGFuZ2UgYXMgeW91IHdpc2gsIG9yIHNldCBpdCB0byBmYWxzZSB0byBkaXNhYmxlIGNvdW50ZXIgdGV4dCBmb3IgaW1hZ2UgZ3JvdXBzCgkJCWNsb3NlS2V5czogWzI3LCA4OCwgNjddLAkJLy8gQXJyYXkgb2Yga2V5Y29kZXMgdG8gY2xvc2UgU2xpbWJveCwgZGVmYXVsdDogRXNjICgyNyksICd4JyAoODgpLCAnYycgKDY3KQoJCQlwcmV2aW91c0tleXM6IFszNywgODBdLAkJCS8vIEFycmF5IG9mIGtleWNvZGVzIHRvIG5hdmlnYXRlIHRvIHRoZSBwcmV2aW91cyBpbWFnZSwgZGVmYXVsdDogTGVmdCBhcnJvdyAoMzcpLCAncCcgKDgwKQoJCQluZXh0S2V5czogWzM5LCA3OF0JCQkvLyBBcnJheSBvZiBrZXljb2RlcyB0byBuYXZpZ2F0ZSB0byB0aGUgbmV4dCBpbWFnZSwgZGVmYXVsdDogUmlnaHQgYXJyb3cgKDM5KSwgJ24nICg3OCkKCQl9LCBfb3B0aW9ucyk7CgoJCS8vIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGEgc2luZ2xlIGltYWdlLCB3aXRoIFVSTCBhbmQgVGl0bGUgYXMgZmlyc3QgdHdvIGFyZ3VtZW50cwoJCWlmICh0eXBlb2YgX2ltYWdlcyA9PSAic3RyaW5nIikgewoJCQlfaW1hZ2VzID0gW1tfaW1hZ2VzLCBzdGFydEltYWdlXV07CgkJCXN0YXJ0SW1hZ2UgPSAwOwoJCX0KCgkJbWlkZGxlID0gd2luLnNjcm9sbFRvcCgpICsgKChvcGVyYUZpeCA/IGRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgOiB3aW4uaGVpZ2h0KCkpIC8gMik7CgkJY2VudGVyV2lkdGggPSBvcHRpb25zLmluaXRpYWxXaWR0aDsKCQljZW50ZXJIZWlnaHQgPSBvcHRpb25zLmluaXRpYWxIZWlnaHQ7CgkJJChjZW50ZXIpLmNzcyh7dG9wOiBNYXRoLm1heCgwLCBtaWRkbGUgLSAoY2VudGVySGVpZ2h0IC8gMikpLCB3aWR0aDogY2VudGVyV2lkdGgsIGhlaWdodDogY2VudGVySGVpZ2h0LCBtYXJnaW5MZWZ0OiAtY2VudGVyV2lkdGgvMn0pLnNob3coKTsKCQljb21wYXRpYmxlT3ZlcmxheSA9IGllNiB8fCAob3ZlcmxheS5jdXJyZW50U3R5bGUgJiYgKG92ZXJsYXkuY3VycmVudFN0eWxlLnBvc2l0aW9uICE9ICJmaXhlZCIpKTsKCQlpZiAoY29tcGF0aWJsZU92ZXJsYXkpIG92ZXJsYXkuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwoJCSQob3ZlcmxheSkuY3NzKCJvcGFjaXR5Iiwgb3B0aW9ucy5vdmVybGF5T3BhY2l0eSkuZmFkZUluKG9wdGlvbnMub3ZlcmxheUZhZGVEdXJhdGlvbik7CgkJcG9zaXRpb24oKTsKCQlzZXR1cCgxKTsKCgkJaW1hZ2VzID0gX2ltYWdlczsKCQlvcHRpb25zLmxvb3AgPSBvcHRpb25zLmxvb3AgJiYgKGltYWdlcy5sZW5ndGggPiAxKTsKCQlyZXR1cm4gY2hhbmdlSW1hZ2Uoc3RhcnRJbWFnZSk7Cgl9OwoKCS8qCgkJb3B0aW9uczoJT3B0aW9uYWwgb3B0aW9ucyBvYmplY3QsIHNlZSBqUXVlcnkuc2xpbWJveCgpCgkJbGlua01hcHBlcjoJT3B0aW9uYWwgZnVuY3Rpb24gdGFraW5nIGEgbGluayBET00gZWxlbWVudCBhbmQgYW4gaW5kZXggYXMgYXJndW1lbnRzIGFuZCByZXR1cm5pbmcgYW4gYXJyYXkgY29udGFpbmluZyAyIGVsZW1lbnRzOgoJCQkJdGhlIGltYWdlIFVSTCBhbmQgdGhlIGltYWdlIGNhcHRpb24gKG1heSBjb250YWluIEhUTUwpCgkJbGlua3NGaWx0ZXI6CU9wdGlvbmFsIGZ1bmN0aW9uIHRha2luZyBhIGxpbmsgRE9NIGVsZW1lbnQgYW5kIGFuIGluZGV4IGFzIGFyZ3VtZW50cyBhbmQgcmV0dXJuaW5nIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZgoJCQkJdGhlIGltYWdlIGNvbGxlY3Rpb24gdGhhdCB3aWxsIGJlIHNob3duIG9uIGNsaWNrLCBmYWxzZSBpZiBub3QuICJ0aGlzIiByZWZlcnMgdG8gdGhlIGVsZW1lbnQgdGhhdCB3YXMgY2xpY2tlZC4KCQkJCVRoaXMgZnVuY3Rpb24gbXVzdCBhbHdheXMgcmV0dXJuIHRydWUgd2hlbiB0aGUgRE9NIGVsZW1lbnQgYXJndW1lbnQgaXMgInRoaXMiLgoJKi8KCSQuZm4uc2xpbWJveCA9IGZ1bmN0aW9uKF9vcHRpb25zLCBsaW5rTWFwcGVyLCBsaW5rc0ZpbHRlcikgewoJCWxpbmtNYXBwZXIgPSBsaW5rTWFwcGVyIHx8IGZ1bmN0aW9uKGVsKSB7CgkJCXJldHVybiBbZWwuaHJlZiwgZWwudGl0bGVdOwoJCX07CgoJCWxpbmtzRmlsdGVyID0gbGlua3NGaWx0ZXIgfHwgZnVuY3Rpb24oKSB7CgkJCXJldHVybiB0cnVlOwoJCX07CgoJCXZhciBsaW5rcyA9IHRoaXM7CgoJCXJldHVybiBsaW5rcy51bmJpbmQoImNsaWNrIikuY2xpY2soZnVuY3Rpb24oKSB7CgkJCS8vIEJ1aWxkIHRoZSBsaXN0IG9mIGltYWdlcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkCgkJCXZhciBsaW5rID0gdGhpcywgc3RhcnRJbmRleCA9IDAsIGZpbHRlcmVkTGlua3MsIGkgPSAwLCBsZW5ndGg7CgkJCWZpbHRlcmVkTGlua3MgPSAkLmdyZXAobGlua3MsIGZ1bmN0aW9uKGVsLCBpKSB7CgkJCQlyZXR1cm4gbGlua3NGaWx0ZXIuY2FsbChsaW5rLCBlbCwgaSk7CgkJCX0pOwoKCQkJLy8gV2UgY2Fubm90IHVzZSBqUXVlcnkubWFwKCkgYmVjYXVzZSBpdCBmbGF0dGVucyB0aGUgcmV0dXJuZWQgYXJyYXkKCQkJZm9yIChsZW5ndGggPSBmaWx0ZXJlZExpbmtzLmxlbmd0aDsgaSA8IGxlbmd0aDsgKytpKSB7CgkJCQlpZiAoZmlsdGVyZWRMaW5rc1tpXSA9PSBsaW5rKSBzdGFydEluZGV4ID0gaTsKCQkJCWZpbHRlcmVkTGlua3NbaV0gPSBsaW5rTWFwcGVyKGZpbHRlcmVkTGlua3NbaV0sIGkpOwoJCQl9CgoJCQlyZXR1cm4gJC5zbGltYm94KGZpbHRlcmVkTGlua3MsIHN0YXJ0SW5kZXgsIF9vcHRpb25zKTsKCQl9KTsKCX07CgoKCS8qCgkJSW50ZXJuYWwgZnVuY3Rpb25zCgkqLwoKCWZ1bmN0aW9uIHBvc2l0aW9uKCkgewoJCXZhciBsID0gd2luLnNjcm9sbExlZnQoKSwgdyA9IG9wZXJhRml4ID8gZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogd2luLndpZHRoKCk7CgkJJChbY2VudGVyLCBib3R0b21Db250YWluZXJdKS5jc3MoImxlZnQiLCBsICsgKHcgLyAyKSk7CgkJaWYgKGNvbXBhdGlibGVPdmVybGF5KSAkKG92ZXJsYXkpLmNzcyh7bGVmdDogbCwgdG9wOiB3aW4uc2Nyb2xsVG9wKCksIHdpZHRoOiB3LCBoZWlnaHQ6IHdpbi5oZWlnaHQoKX0pOwoJfQoKCWZ1bmN0aW9uIHNldHVwKG9wZW4pIHsKCQkkKCJvYmplY3QiKS5hZGQoaWU2ID8gInNlbGVjdCIgOiAiZW1iZWQiKS5lYWNoKGZ1bmN0aW9uKGluZGV4LCBlbCkgewoJCQlpZiAob3BlbikgJC5kYXRhKGVsLCAic2xpbWJveCIsIGVsLnN0eWxlLnZpc2liaWxpdHkpOwoJCQllbC5zdHlsZS52aXNpYmlsaXR5ID0gb3BlbiA/ICJoaWRkZW4iIDogJC5kYXRhKGVsLCAic2xpbWJveCIpOwoJCX0pOwoJCXZhciBmbiA9IG9wZW4gPyAiYmluZCIgOiAidW5iaW5kIjsKCQl3aW5bZm5dKCJzY3JvbGwgcmVzaXplIiwgcG9zaXRpb24pOwoJCSQoZG9jdW1lbnQpW2ZuXSgia2V5ZG93biIsIGtleURvd24pOwoJfQoKCWZ1bmN0aW9uIGtleURvd24oZXZlbnQpIHsKCQl2YXIgY29kZSA9IGV2ZW50LmtleUNvZGUsIGZuID0gJC5pbkFycmF5OwoJCS8vIFByZXZlbnQgZGVmYXVsdCBrZXlib2FyZCBhY3Rpb24gKGxpa2UgbmF2aWdhdGluZyBpbnNpZGUgdGhlIHBhZ2UpCgkJcmV0dXJuIChmbihjb2RlLCBvcHRpb25zLmNsb3NlS2V5cykgPj0gMCkgPyBjbG9zZSgpCgkJCTogKGZuKGNvZGUsIG9wdGlvbnMubmV4dEtleXMpID49IDApID8gbmV4dCgpCgkJCTogKGZuKGNvZGUsIG9wdGlvbnMucHJldmlvdXNLZXlzKSA+PSAwKSA/IHByZXZpb3VzKCkKCQkJOiBmYWxzZTsKCX0KCglmdW5jdGlvbiBwcmV2aW91cygpIHsKCQlyZXR1cm4gY2hhbmdlSW1hZ2UocHJldkltYWdlKTsKCX0KCglmdW5jdGlvbiBuZXh0KCkgewoJCXJldHVybiBjaGFuZ2VJbWFnZShuZXh0SW1hZ2UpOwoJfQoKCWZ1bmN0aW9uIGNoYW5nZUltYWdlKGltYWdlSW5kZXgpIHsKCQlpZiAoaW1hZ2VJbmRleCA+PSAwKSB7CgkJCWFjdGl2ZUltYWdlID0gaW1hZ2VJbmRleDsKCQkJYWN0aXZlVVJMID0gaW1hZ2VzW2FjdGl2ZUltYWdlXVswXTsKCQkJcHJldkltYWdlID0gKGFjdGl2ZUltYWdlIHx8IChvcHRpb25zLmxvb3AgPyBpbWFnZXMubGVuZ3RoIDogMCkpIC0gMTsKCQkJbmV4dEltYWdlID0gKChhY3RpdmVJbWFnZSArIDEpICUgaW1hZ2VzLmxlbmd0aCkgfHwgKG9wdGlvbnMubG9vcCA/IDAgOiAtMSk7CgoJCQlzdG9wKCk7CgkJCWNlbnRlci5jbGFzc05hbWUgPSAibGJMb2FkaW5nIjsKCgkJCXByZWxvYWQgPSBuZXcgSW1hZ2UoKTsKCQkJcHJlbG9hZC5vbmxvYWQgPSBhbmltYXRlQm94OwoJCQlwcmVsb2FkLnNyYyA9IGFjdGl2ZVVSTDsKCQl9CgoJCXJldHVybiBmYWxzZTsKCX0KCglmdW5jdGlvbiBhbmltYXRlQm94KCkgewoJCWNlbnRlci5jbGFzc05hbWUgPSAiIjsKCQkkKGltYWdlKS5jc3Moe2JhY2tncm91bmRJbWFnZTogInVybCgiICsgYWN0aXZlVVJMICsgIikiLCB2aXNpYmlsaXR5OiAiaGlkZGVuIiwgZGlzcGxheTogIiJ9KTsKCQkkKHNpemVyKS53aWR0aChwcmVsb2FkLndpZHRoKTsKCQkkKFtzaXplciwgcHJldkxpbmssIG5leHRMaW5rXSkuaGVpZ2h0KHByZWxvYWQuaGVpZ2h0KTsKCgkJJChjYXB0aW9uKS5odG1sKGltYWdlc1thY3RpdmVJbWFnZV1bMV0gfHwgIiIpOwoJCSQobnVtYmVyKS5odG1sKCgoKGltYWdlcy5sZW5ndGggPiAxKSAmJiBvcHRpb25zLmNvdW50ZXJUZXh0KSB8fCAiIikucmVwbGFjZSgve3h9LywgYWN0aXZlSW1hZ2UgKyAxKS5yZXBsYWNlKC97eX0vLCBpbWFnZXMubGVuZ3RoKSk7CgoJCWlmIChwcmV2SW1hZ2UgPj0gMCkgcHJlbG9hZFByZXYuc3JjID0gaW1hZ2VzW3ByZXZJbWFnZV1bMF07CgkJaWYgKG5leHRJbWFnZSA+PSAwKSBwcmVsb2FkTmV4dC5zcmMgPSBpbWFnZXNbbmV4dEltYWdlXVswXTsKCgkJY2VudGVyV2lkdGggPSBpbWFnZS5vZmZzZXRXaWR0aDsKCQljZW50ZXJIZWlnaHQgPSBpbWFnZS5vZmZzZXRIZWlnaHQ7CgkJdmFyIHRvcCA9IE1hdGgubWF4KDAsIG1pZGRsZSAtIChjZW50ZXJIZWlnaHQgLyAyKSk7CgkJaWYgKGNlbnRlci5vZmZzZXRIZWlnaHQgIT0gY2VudGVySGVpZ2h0KSB7CgkJCSQoY2VudGVyKS5hbmltYXRlKHtoZWlnaHQ6IGNlbnRlckhlaWdodCwgdG9wOiB0b3B9LCBvcHRpb25zLnJlc2l6ZUR1cmF0aW9uLCBvcHRpb25zLnJlc2l6ZUVhc2luZyk7CgkJfQoJCWlmIChjZW50ZXIub2Zmc2V0V2lkdGggIT0gY2VudGVyV2lkdGgpIHsKCQkJJChjZW50ZXIpLmFuaW1hdGUoe3dpZHRoOiBjZW50ZXJXaWR0aCwgbWFyZ2luTGVmdDogLWNlbnRlcldpZHRoLzJ9LCBvcHRpb25zLnJlc2l6ZUR1cmF0aW9uLCBvcHRpb25zLnJlc2l6ZUVhc2luZyk7CgkJfQoJCSQoY2VudGVyKS5xdWV1ZShmdW5jdGlvbigpIHsKCQkJJChib3R0b21Db250YWluZXIpLmNzcyh7d2lkdGg6IGNlbnRlcldpZHRoLCB0b3A6IHRvcCArIGNlbnRlckhlaWdodCwgbWFyZ2luTGVmdDogLWNlbnRlcldpZHRoLzIsIHZpc2liaWxpdHk6ICJoaWRkZW4iLCBkaXNwbGF5OiAiIn0pOwoJCQkkKGltYWdlKS5jc3Moe2Rpc3BsYXk6ICJub25lIiwgdmlzaWJpbGl0eTogIiIsIG9wYWNpdHk6ICIifSkuZmFkZUluKG9wdGlvbnMuaW1hZ2VGYWRlRHVyYXRpb24sIGFuaW1hdGVDYXB0aW9uKTsKCQl9KTsKCX0KCglmdW5jdGlvbiBhbmltYXRlQ2FwdGlvbigpIHsKCQlpZiAocHJldkltYWdlID49IDApICQocHJldkxpbmspLnNob3coKTsKCQlpZiAobmV4dEltYWdlID49IDApICQobmV4dExpbmspLnNob3coKTsKCQkkKGJvdHRvbSkuY3NzKCJtYXJnaW5Ub3AiLCAtYm90dG9tLm9mZnNldEhlaWdodCkuYW5pbWF0ZSh7bWFyZ2luVG9wOiAwfSwgb3B0aW9ucy5jYXB0aW9uQW5pbWF0aW9uRHVyYXRpb24pOwoJCWJvdHRvbUNvbnRhaW5lci5zdHlsZS52aXNpYmlsaXR5ID0gIiI7Cgl9CgoJZnVuY3Rpb24gc3RvcCgpIHsKCQlwcmVsb2FkLm9ubG9hZCA9IG51bGw7CgkJcHJlbG9hZC5zcmMgPSBwcmVsb2FkUHJldi5zcmMgPSBwcmVsb2FkTmV4dC5zcmMgPSBhY3RpdmVVUkw7CgkJJChbY2VudGVyLCBpbWFnZSwgYm90dG9tXSkuc3RvcCh0cnVlKTsKCQkkKFtwcmV2TGluaywgbmV4dExpbmssIGltYWdlLCBib3R0b21Db250YWluZXJdKS5oaWRlKCk7Cgl9CgoJZnVuY3Rpb24gY2xvc2UoKSB7CgkJaWYgKGFjdGl2ZUltYWdlID49IDApIHsKCQkJc3RvcCgpOwoJCQlhY3RpdmVJbWFnZSA9IHByZXZJbWFnZSA9IG5leHRJbWFnZSA9IC0xOwoJCQkkKGNlbnRlcikuaGlkZSgpOwoJCQkkKG92ZXJsYXkpLnN0b3AoKS5mYWRlT3V0KG9wdGlvbnMub3ZlcmxheUZhZGVEdXJhdGlvbiwgc2V0dXApOwoJCX0KCgkJcmV0dXJuIGZhbHNlOwoJfQoKfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/templates/template_fancybox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBGYW5jeWJveCAgLSAgaHR0cDovL3d3dy5mYW5jeWJveC5uZXQvIC0tPg0KPGRpdiBjbGFzcz0iZ2FsbGVyeSI+DQp7aWYgaXNzZXQoJG1vZHVsZV9tZXNzYWdlKX08aDI+eyRtb2R1bGVfbWVzc2FnZXxlc2NhcGV9PC9oMj57L2lmfQ0Ke2lmIGlzc2V0KCRnYWxsZXJ5dGl0bGUpfTxoMz57JGdhbGxlcnl0aXRsZX08L2gzPnsvaWZ9DQp7aWYgaXNzZXQoJGdhbGxlcnljb21tZW50KX08ZGl2IGNsYXNzPSJnYWxsZXJ5Y29tbWVudCI+eyRnYWxsZXJ5Y29tbWVudH08L2Rpdj57L2lmfQ0KPHA+eyRpbWFnZWNvdW50fTwvcD4NCjxkaXYgY2xhc3M9InBhZ2VuYXZpZ2F0aW9uIj4NCntpZiAkcGFnZXMgPiAxfQ0KPGRpdiBjbGFzcz0icHJldnBhZ2UiPnskcHJldnBhZ2V9PC9kaXY+DQo8ZGl2IGNsYXNzPSJuZXh0cGFnZSI+eyRuZXh0cGFnZX08L2Rpdj4NCnsvaWZ9DQp7aWYgaXNzZXQoJHBhcmVudGxpbmspfTxkaXYgY2xhc3M9InBhcmVudGxpbmsiPnskcGFyZW50bGlua308L2Rpdj57L2lmfQ0Ke2lmICRwYWdlcyA+IDF9PGRpdiBjbGFzcz0icGFnZWxpbmtzIj57JHBhZ2VsaW5rc308L2Rpdj57L2lmfQ0KPC9kaXY+DQoNCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQ0KCTxkaXYgY2xhc3M9ImltZyI+DQoJe2lmICRpbWFnZS0+aXNkaXJ9DQoJCTxhIGhyZWY9InskaW1hZ2UtPmZpbGV9IiB0aXRsZT0ieyRpbWFnZS0+dGl0bGV9Ij48aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz48L2E+PGJyIC8+DQoJCXskaW1hZ2UtPnRpdGxlfQ0KCXtlbHNlfQ0KICAgPGEgY2xhc3M9Imdyb3VwIiBocmVmPSJ7JGltYWdlLT5maWxlfSIgdGl0bGU9InskaW1hZ2UtPnRpdGxlfSIgcmVsPSJnYWxsZXJ5Ij48aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz48L2E+DQoJey9pZn0NCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvZGl2Pg0KDQoNCnsqLS0tLS0tLS0tLQ0KLmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOw0KCXdpZHRoOiA1MHB4Ow0KCWhlaWdodDogMzlweDsNCglmbG9hdDogbGVmdDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQovKiBGQU5DWUJPWCAqLw0KDQpkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGZpeGVkOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjNjY2Ow0KCWRpc3BsYXk6IG5vbmU7DQoJei1pbmRleDogMzA7DQp9DQoNCiogaHRtbCBkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWhlaWdodDogZXhwcmVzc2lvbihkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ID8gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgOiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCArICdweCcpOw0KfQ0KDQpkaXYjZmFuY3lfd3JhcCB7DQoJdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KZGl2I2ZhbmN5X2xvYWRpbmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgloZWlnaHQ6IDQwcHg7DQoJd2lkdGg6IDQwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IG5vbmU7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCgl6LWluZGV4OiAxMDA7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nIGRpdiB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiA0MHB4Ow0KCWhlaWdodDogNDgwcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9wcm9ncmVzcy5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nX292ZXJsYXkgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOw0KCXotaW5kZXg6IDMwOw0KfQ0KDQpkaXYjZmFuY3lfbG9hZGluZ19pY29uIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYmFja2dyb3VuZDogdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9sb2FkaW5nLmdpZicpIG5vLXJlcGVhdDsNCgl6LWluZGV4OiAzNTsNCgl3aWR0aDogMTZweDsNCgloZWlnaHQ6IDE2cHg7DQp9DQoNCmRpdiNmYW5jeV9vdXRlciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXotaW5kZXg6IDkwOw0KCXBhZGRpbmc6IDE4cHggMThweCAzM3B4IDE4cHg7DQoJbWFyZ2luOiAwOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KZGl2I2ZhbmN5X2lubmVyIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJd2lkdGg6MTAwJTsNCgloZWlnaHQ6MTAwJTsNCglib3JkZXI6IDFweCBzb2xpZCAjQkJCOw0KCWJhY2tncm91bmQ6ICMwMDA7DQp9DQoNCmRpdiNmYW5jeV9jb250ZW50IHsNCgltYXJnaW46IDA7DQoJei1pbmRleDogMTAwOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCn0NCg0KZGl2I2ZhbmN5X2RpdiB7DQoJYmFja2dyb3VuZDogIzAwMDsNCgljb2xvcjogI0ZGRjsNCgloZWlnaHQ6IDEwMCU7DQoJd2lkdGg6IDEwMCU7DQoJei1pbmRleDogMTAwOw0KfQ0KDQppbWcjZmFuY3lfaW1nIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJYm9yZGVyOjA7DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQoJei1pbmRleDogMTAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCn0NCg0KZGl2I2ZhbmN5X2Nsb3NlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAtMTJweDsNCglyaWdodDogLTE1cHg7DQoJaGVpZ2h0OiAzMHB4Ow0KCXdpZHRoOiAzMHB4Ow0KCWJhY2tncm91bmQ6IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfY2xvc2Vib3gucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0Ow0KCWN1cnNvcjogcG9pbnRlcjsNCgl6LWluZGV4OiAxODE7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KI2ZhbmN5X2ZyYW1lIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiNmYW5jeV9hamF4IHsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDEwMCU7DQoJb3ZlcmZsb3c6IGF1dG87DQp9DQoNCmEjZmFuY3lfbGVmdCwgYSNmYW5jeV9yaWdodCB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWJvdHRvbTogMHB4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMzUlOw0KCWN1cnNvcjogcG9pbnRlcjsNCgl6LWluZGV4OiAxMTE7DQoJZGlzcGxheTogbm9uZTsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LEFBQUEpOw0KCW91dGxpbmU6IG5vbmU7DQp9DQoNCmEjZmFuY3lfbGVmdCB7DQoJbGVmdDogMHB4Ow0KfQ0KDQphI2ZhbmN5X3JpZ2h0IHsNCglyaWdodDogMHB4Ow0KfQ0KDQpzcGFuLmZhbmN5X2ljbyB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogNTAlOw0KCW1hcmdpbi10b3A6IC0xNXB4Ow0KCXdpZHRoOiAzMHB4Ow0KCWhlaWdodDogMzBweDsNCgl6LWluZGV4OiAxMTI7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpzcGFuI2ZhbmN5X2xlZnRfaWNvIHsNCglsZWZ0OiAtOTk5OXB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfbGVmdC5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCnNwYW4jZmFuY3lfcmlnaHRfaWNvIHsNCglyaWdodDogLTk5OTlweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3JpZ2h0LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KYSNmYW5jeV9sZWZ0OmhvdmVyIHsNCiAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCn0NCg0KYSNmYW5jeV9yaWdodDpob3ZlciB7DQogIHZpc2liaWxpdHk6IHZpc2libGU7DQp9DQoNCmEjZmFuY3lfbGVmdDpob3ZlciBzcGFuIHsNCglsZWZ0OiAyMHB4Ow0KfQ0KDQphI2ZhbmN5X3JpZ2h0OmhvdmVyIHNwYW4gew0KCXJpZ2h0OiAyMHB4Ow0KfQ0KDQouZmFuY3lfYmlnSWZyYW1lIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpkaXYjZmFuY3lfYmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7IGxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCXotaW5kZXg6IDcwOw0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCn0NCg0KZGl2LmZhbmN5X2JnIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJZGlzcGxheTogYmxvY2s7DQoJei1pbmRleDogNzA7DQoJYm9yZGVyOiAwOw0KCXBhZGRpbmc6IDA7DQoJbWFyZ2luOiAwOw0KfQ0KDQpkaXYuZmFuY3lfYmdfbiB7DQoJdG9wOiAtMThweDsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9zaGFkb3dfbi5wbmcnKSByZXBlYXQteDsNCn0NCg0KZGl2LmZhbmN5X2JnX25lIHsNCgl0b3A6IC0xOHB4Ow0KCXJpZ2h0OiAtMTNweDsNCgl3aWR0aDogMTNweDsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9mYW5jeWJveC9mYW5jeV9zaGFkb3dfbmUucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfZSB7DQoJcmlnaHQ6IC0xM3B4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMTNweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19lLnBuZycpIHJlcGVhdC15Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfc2Ugew0KCWJvdHRvbTogLTE4cHg7DQoJcmlnaHQ6IC0xM3B4Ow0KCXdpZHRoOiAxM3B4Ow0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19zZS5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdi5mYW5jeV9iZ19zIHsNCglib3R0b206IC0xOHB4Ow0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19zLnBuZycpIHJlcGVhdC14Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfc3cgew0KCWJvdHRvbTogLTE4cHg7DQoJbGVmdDogLTEzcHg7DQoJd2lkdGg6IDEzcHg7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfc2hhZG93X3N3LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KZGl2LmZhbmN5X2JnX3cgew0KCWxlZnQ6IC0xM3B4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMTNweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd193LnBuZycpIHJlcGVhdC15Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfbncgew0KCXRvcDogLTE4cHg7DQoJbGVmdDogLTEzcHg7DQoJd2lkdGg6IDEzcHg7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vZmFuY3lib3gvZmFuY3lfc2hhZG93X253LnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYm90dG9tOiAtMzNweDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCXotaW5kZXg6IDEwMDsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQpkaXYjZmFuY3lfdGl0bGUgZGl2IHsNCgljb2xvcjogI0ZGRjsNCglmb250OiBib2xkIDEycHggQXJpYWw7DQoJcGFkZGluZy1ib3R0b206IDNweDsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHRhYmxlIHsNCgltYXJnaW46IDAgYXV0bzsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHRhYmxlIHRyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIHRhYmxlIHRkIHsNCglwYWRkaW5nOiAwOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQoJYm9yZGVyOiBub25lOw0KfQ0KDQp0ZCNmYW5jeV90aXRsZV9sZWZ0IHsNCgloZWlnaHQ6IDMycHg7DQoJd2lkdGg6IDE0cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX2xlZnQucG5nKSByZXBlYXQteDsNCn0NCg0KdGQjZmFuY3lfdGl0bGVfbWFpbiB7DQoJaGVpZ2h0OiAzMnB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9mYW5jeWJveC9mYW5jeV90aXRsZV9tYWluLnBuZykgcmVwZWF0LXg7DQp9DQoNCnRkI2ZhbmN5X3RpdGxlX3JpZ2h0IHsNCgloZWlnaHQ6IDMycHg7DQoJd2lkdGg6IDE0cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX3JpZ2h0LnBuZykgcmVwZWF0LXg7DQp9DQoNCnsqLS0tLS0tLS0tLQ0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9qcXVlcnkvanF1ZXJ5LmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvZmFuY3lib3gvanF1ZXJ5LmZhbmN5Ym94LmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvanF1ZXJ5L2pxdWVyeS5lYXNpbmcuanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCgkkKCJhLmdyb3VwIikuZmFuY3lib3goew0KCQknem9vbU9wYWNpdHknOgl0cnVlLA0KCQknem9vbVNwZWVkSW4nOgkzMDAsDQoJCSd6b29tU3BlZWRPdXQnOgkzMDAsDQoJCSdvdmVybGF5U2hvdyc6CXRydWUsDQoJCSdvdmVybGF5T3BhY2l0eSc6CTAuNQ0KCX0pOw0KfSk7DQo8L3NjcmlwdD4NCip9]]></data>
	</file>
	<file>
	  <filename>/templates/template_lightbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZ2FsbGVyeSI+DQp7aWYgaXNzZXQoJG1vZHVsZV9tZXNzYWdlKX08aDI+eyRtb2R1bGVfbWVzc2FnZXxlc2NhcGV9PC9oMj57L2lmfQ0Ke2lmIGlzc2V0KCRnYWxsZXJ5dGl0bGUpfTxoMz57JGdhbGxlcnl0aXRsZX08L2gzPnsvaWZ9DQp7aWYgaXNzZXQoJGdhbGxlcnljb21tZW50KX08ZGl2IGNsYXNzPSJnYWxsZXJ5Y29tbWVudCI+eyRnYWxsZXJ5Y29tbWVudH08L2Rpdj57L2lmfQ0KPHA+eyRpbWFnZWNvdW50fTwvcD4NCjxkaXYgY2xhc3M9InBhZ2VuYXZpZ2F0aW9uIj4NCntpZiAkcGFnZXMgPiAxfQ0KPGRpdiBjbGFzcz0icHJldnBhZ2UiPnskcHJldnBhZ2V9PC9kaXY+DQo8ZGl2IGNsYXNzPSJuZXh0cGFnZSI+eyRuZXh0cGFnZX08L2Rpdj4NCnsvaWZ9DQp7aWYgaXNzZXQoJHBhcmVudGxpbmspfTxkaXYgY2xhc3M9InBhcmVudGxpbmsiPnskcGFyZW50bGlua308L2Rpdj57L2lmfQ0Ke2lmICRwYWdlcyA+IDF9PGRpdiBjbGFzcz0icGFnZWxpbmtzIj57JHBhZ2VsaW5rc308L2Rpdj57L2lmfQ0KPC9kaXY+DQoNCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQ0KCTxkaXYgY2xhc3M9ImltZyI+DQoJe2lmICRpbWFnZS0+aXNkaXJ9DQoJCTxhIGhyZWY9InskaW1hZ2UtPmZpbGV9IiB0aXRsZT0ieyRpbWFnZS0+dGl0bGV9Ij48aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz48L2E+PGJyIC8+DQoJCXskaW1hZ2UtPnRpdGxlfQ0KCXtlbHNlfQ0KICAgPGEgaHJlZj0ieyRpbWFnZS0+ZmlsZX0iIHRpdGxlPSJ7JGltYWdlLT50aXRsZX0iIHJlbD0ibGlnaHRib3hbZ2FsbGVyeV0iPjxpbWcgc3JjPSJ7JGltYWdlLT50aHVtYn0iIGFsdD0ieyRpbWFnZS0+dGl0bGV9IiAvPjwvYT4NCgl7L2lmfQ0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9kaXY+DQoNCnsqLS0tLS0tLS0tLQ0KLmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQojbGlnaHRib3h7CXBvc2l0aW9uOiBhYnNvbHV0ZTsJbGVmdDogMDsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDEwMDsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDt9DQojbGlnaHRib3ggaW1neyB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvO30NCiNsaWdodGJveCBhIGltZ3sgYm9yZGVyOiBub25lOyB9DQoNCiNvdXRlckltYWdlQ29udGFpbmVyeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsgbWFyZ2luOiAwIGF1dG87IH0NCiNpbWFnZUNvbnRhaW5lcnsgcGFkZGluZzogMTBweDsgfQ0KDQojbG9hZGluZ3sgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQwJTsgbGVmdDogMCU7IGhlaWdodDogMjUlOyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDsgfQ0KI2hvdmVyTmF2eyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgei1pbmRleDogMTA7IH0NCiNpbWFnZUNvbnRhaW5lcj4jaG92ZXJOYXZ7IGxlZnQ6IDA7fQ0KI2hvdmVyTmF2IGF7IG91dGxpbmU6IG5vbmU7fQ0KDQojcHJldkxpbmssICNuZXh0TGlua3sgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LEFBQUEpOyAvKiBUcmljayBJRSBpbnRvIHNob3dpbmcgaG92ZXIgKi8gZGlzcGxheTogYmxvY2s7IH0NCiNwcmV2TGluayB7IGxlZnQ6IDA7IGZsb2F0OiBsZWZ0O30NCiNuZXh0TGluayB7IHJpZ2h0OiAwOyBmbG9hdDogcmlnaHQ7fQ0KI3ByZXZMaW5rOmhvdmVyLCAjcHJldkxpbms6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9saWdodGJveC9pbWFnZXMvcHJldmxhYmVsLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9DQojbmV4dExpbms6aG92ZXIsICNuZXh0TGluazp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2xpZ2h0Ym94L2ltYWdlcy9uZXh0bGFiZWwuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoNCiNpbWFnZURhdGFDb250YWluZXJ7IGZvbnQ6IDEwcHggVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBtYXJnaW46IDAgYXV0bzsgbGluZS1oZWlnaHQ6IDEuNGVtOyBvdmVyZmxvdzogYXV0bzsgd2lkdGg6IDEwMCUJOyB9DQoNCiNpbWFnZURhdGF7CXBhZGRpbmc6MCAxMHB4OyBjb2xvcjogIzY2NjsgfQ0KI2ltYWdlRGF0YSAjaW1hZ2VEZXRhaWxzeyB3aWR0aDogNzAlOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogbGVmdDsgfQkNCiNpbWFnZURhdGEgI2NhcHRpb257IGZvbnQtd2VpZ2h0OiBib2xkOwl9DQojaW1hZ2VEYXRhICNudW1iZXJEaXNwbGF5eyBkaXNwbGF5OiBibG9jazsgY2xlYXI6IGxlZnQ7IHBhZGRpbmctYm90dG9tOiAxLjBlbTsJfQkJCQ0KI2ltYWdlRGF0YSAjYm90dG9tTmF2Q2xvc2V7IHdpZHRoOiA2NnB4OyBmbG9hdDogcmlnaHQ7ICBwYWRkaW5nLWJvdHRvbTogMC43ZW07IG91dGxpbmU6IG5vbmU7fQkgCQ0KDQojb3ZlcmxheXsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHotaW5kZXg6IDkwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MDBweDsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgfQ0KDQp7Ki0tLS0tLS0tLS0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvbGlnaHRib3gvanMvcHJvdG90eXBlLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvbGlnaHRib3gvanMvc2NyaXB0YWN1bG91cy5qcz9sb2FkPWVmZmVjdHMsYnVpbGRlciI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2xpZ2h0Ym94L2pzL2xpZ2h0Ym94LmpzIj48L3NjcmlwdD4NCip9]]></data>
	</file>
	<file>
	  <filename>/templates/template_lytebox_slideshow.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSAgaHR0cDovL3d3dy5kb2xlbS5jb20vbHl0ZWJveC8gIC0tPg0KDQo8ZGl2IGNsYXNzPSJnYWxsZXJ5Ij4NCntpZiBpc3NldCgkbW9kdWxlX21lc3NhZ2UpfTxoMj57JG1vZHVsZV9tZXNzYWdlfGVzY2FwZX08L2gyPnsvaWZ9DQp7aWYgaXNzZXQoJGdhbGxlcnl0aXRsZSl9PGgzPnskZ2FsbGVyeXRpdGxlfTwvaDM+ey9pZn0NCntpZiBpc3NldCgkZ2FsbGVyeWNvbW1lbnQpfTxkaXYgY2xhc3M9ImdhbGxlcnljb21tZW50Ij57JGdhbGxlcnljb21tZW50fTwvZGl2PnsvaWZ9DQo8cD57JGltYWdlY291bnR9PC9wPg0KPGRpdiBjbGFzcz0icGFnZW5hdmlnYXRpb24iPg0Ke2lmICRwYWdlcyA+IDF9DQo8ZGl2IGNsYXNzPSJwcmV2cGFnZSI+eyRwcmV2cGFnZX08L2Rpdj4NCjxkaXYgY2xhc3M9Im5leHRwYWdlIj57JG5leHRwYWdlfTwvZGl2Pg0Key9pZn0NCntpZiBpc3NldCgkcGFyZW50bGluayl9PGRpdiBjbGFzcz0icGFyZW50bGluayI+eyRwYXJlbnRsaW5rfTwvZGl2PnsvaWZ9DQp7aWYgJHBhZ2VzID4gMX08ZGl2IGNsYXNzPSJwYWdlbGlua3MiPnskcGFnZWxpbmtzfTwvZGl2PnsvaWZ9DQo8L2Rpdj4NCg0Ke2ZvcmVhY2ggZnJvbT0kaW1hZ2VzIGl0ZW09aW1hZ2V9DQoJPGRpdiBjbGFzcz0iaW1nIj4NCgl7aWYgJGltYWdlLT5pc2Rpcn0NCgkJPGEgaHJlZj0ieyRpbWFnZS0+ZmlsZX0iIHRpdGxlPSJ7JGltYWdlLT50aXRsZX0iPjxpbWcgc3JjPSJ7JGltYWdlLT50aHVtYn0iIGFsdD0ieyRpbWFnZS0+dGl0bGV9IiAvPjwvYT48YnIgLz4NCgkJeyRpbWFnZS0+dGl0bGV9DQoJe2Vsc2V9DQogICA8YSBocmVmPSJ7JGltYWdlLT5maWxlfSIgdGl0bGU9InskaW1hZ2UtPnRpdGxlfSIgcmVsPSJseXRlc2hvd1tnYWxsZXJ5XSI+PGltZyBzcmM9InskaW1hZ2UtPnRodW1ifSIgYWx0PSJ7JGltYWdlLT50aXRsZX0iIC8+PC9hPg0KCXsvaWZ9DQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L2Rpdj4NCg0KeyotLS0tLS0tLS0tDQouZ2FsbGVyeSAuaW1nIHsNCglmbG9hdDogbGVmdDsNCgltYXJnaW46IDNweDsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiB7DQoJaGVpZ2h0OiA1MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgYSwgLmdhbGxlcnkgLnByZXZwYWdlIGVtIHsNCglkaXNwbGF5OiBibG9jazsNCgl3aWR0aDogNTBweDsNCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvcHJldmlvdXMucG5nKSB0cmFuc3BhcmVudCBuby1yZXBlYXQgMCAwOw0KfQ0KDQouZ2FsbGVyeSAubmV4dHBhZ2UgYSwgLmdhbGxlcnkgLm5leHRwYWdlIGVtIHsNCglkaXNwbGF5OiBibG9jazsNCgl3aWR0aDogNTBweDsNCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAwIDZweCAwIDA7DQoJdGV4dC1pbmRlbnQ6IC0xMDAwcHg7DQoJYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9uZXh0LnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLnBhcmVudGxpbmsgYSB7DQoJZGlzcGxheTogYmxvY2s7DQoJd2lkdGg6IDUwcHg7DQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvdXBwYWdlLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VuYXZpZ2F0aW9uIGE6aG92ZXIgew0KCWJhY2tncm91bmQtcG9zaXRpb246IDAgLTQwcHg7DQp9DQoNCi5nYWxsZXJ5IC5wcmV2cGFnZSBlbSwgLmdhbGxlcnkgLm5leHRwYWdlIGVtIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIHsNCglmbG9hdDogcmlnaHQ7DQoJYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzY2NjsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyBhLCAuZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgltYXJnaW4tdG9wOiA2cHg7DQoJcGFkZGluZzogMCA2cHg7DQoJYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjNjY2Ow0KCXRleHQtYWxpZ246IGNlbnRlcjsNCglmb250OiBib2xkIDExcHggdmVyZGFuYTsgY29sb3I6ICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgZW0gew0KCWNvbG9yOiAjMDAwOw0KfQ0KDQoNCi8qIExZVEVCT1ggKi8NCg0KI2xiT3ZlcmxheSB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB6LWluZGV4OiA5OTk5ODsgd2lkdGg6IDEwMCU7IGhlaWdodDogNTAwcHg7IH0NCgkjbGJPdmVybGF5LmdyZXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9DQoJI2xiT3ZlcmxheS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMwMDAwOyB9DQoJI2xiT3ZlcmxheS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6ICMwMDMzMDA7IH0NCgkjbGJPdmVybGF5LmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDExRDUwOyB9DQoJI2xiT3ZlcmxheS5nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjogIzY2NjYwMDsgfQ0KDQojbGJNYWluIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgei1pbmRleDogOTk5OTk7IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDA7IH0NCiNsYk1haW4gYSBpbWcgeyBib3JkZXI6IG5vbmU7IH0NCg0KI2xiT3V0ZXJDb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgbWFyZ2luOiAwIGF1dG87IH0NCgkjbGJPdXRlckNvbnRhaW5lci5ncmV5IHsgYm9yZGVyOiAzcHggc29saWQgIzg4ODg4ODsgfQ0KCSNsYk91dGVyQ29udGFpbmVyLnJlZCB7IGJvcmRlcjogM3B4IHNvbGlkICNERDAwMDA7IH0NCgkjbGJPdXRlckNvbnRhaW5lci5ncmVlbiB7IGJvcmRlcjogM3B4IHNvbGlkICMwMEIwMDA7IH0NCgkjbGJPdXRlckNvbnRhaW5lci5ibHVlIHsgYm9yZGVyOiAzcHggc29saWQgIzVGODlEODsgfQ0KCSNsYk91dGVyQ29udGFpbmVyLmdvbGQgeyBib3JkZXI6IDNweCBzb2xpZCAjQjBCMDAwOyB9DQoNCiNsYkRldGFpbHNDb250YWluZXIgewlmb250OiAxMHB4IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDEwMCU7IGxpbmUtaGVpZ2h0OiAxLjRlbTsJb3ZlcmZsb3c6IGF1dG87IG1hcmdpbjogMCBhdXRvOyB9DQoJI2xiRGV0YWlsc0NvbnRhaW5lci5ncmV5IHsgYm9yZGVyOiAzcHggc29saWQgIzg4ODg4ODsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIucmVkIHsgYm9yZGVyOiAzcHggc29saWQgI0REMDAwMDsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIuZ3JlZW4geyBib3JkZXI6IDNweCBzb2xpZCAjMDBCMDAwOyBib3JkZXItdG9wOiBub25lOyB9DQoJI2xiRGV0YWlsc0NvbnRhaW5lci5ibHVlIHsgYm9yZGVyOiAzcHggc29saWQgIzVGODlEODsgYm9yZGVyLXRvcDogbm9uZTsgfQ0KCSNsYkRldGFpbHNDb250YWluZXIuZ29sZCB7IGJvcmRlcjogM3B4IHNvbGlkICNCMEIwMDA7IGJvcmRlci10b3A6IG5vbmU7IH0NCg0KI2xiSW1hZ2VDb250YWluZXIsICNsYklmcmFtZUNvbnRhaW5lciB7IHBhZGRpbmc6IDEwcHg7IH0NCiNsYkxvYWRpbmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0NSU7IGxlZnQ6IDAlOyBoZWlnaHQ6IDMycHg7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAwOyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvbG9hZGluZy5naWYpIGNlbnRlciBuby1yZXBlYXQ7DQp9DQoNCiNsYkhvdmVyTmF2IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDEwOyB9DQojbGJJbWFnZUNvbnRhaW5lcj4jbGJIb3Zlck5hdiB7IGxlZnQ6IDA7IH0NCiNsYkhvdmVyTmF2IGEgeyBvdXRsaW5lOiBub25lOyB9DQoNCiNsYlByZXYgeyB3aWR0aDogNDklOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9seXRlYm94L2ltYWdlcy9ibGFuay5naWYpIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IGxlZnQ6IDA7IGZsb2F0OiBsZWZ0OyB9DQoJI2xiUHJldi5ncmV5OmhvdmVyLCAjbGJQcmV2LmdyZXk6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wcmV2X2dyZXkuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LnJlZDpob3ZlciwgI2xiUHJldi5yZWQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wcmV2X3JlZC5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQ0KCSNsYlByZXYuZ3JlZW46aG92ZXIsICNsYlByZXYuZ3JlZW46dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wcmV2X2dyZWVuLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiUHJldi5ibHVlOmhvdmVyLCAjbGJQcmV2LmJsdWU6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wcmV2X2JsdWUuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0NCgkjbGJQcmV2LmdvbGQ6aG92ZXIsICNsYlByZXYuZ29sZDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL3ByZXZfZ29sZC5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQ0KDQojbGJOZXh0IHsgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvYmxhbmsuZ2lmKSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyByaWdodDogMDsgZmxvYXQ6IHJpZ2h0OyB9DQoJI2xiTmV4dC5ncmV5OmhvdmVyLCAjbGJOZXh0LmdyZXk6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9uZXh0X2dyZXkuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiTmV4dC5yZWQ6aG92ZXIsICNsYk5leHQucmVkOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvbmV4dF9yZWQuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiTmV4dC5ncmVlbjpob3ZlciwgI2xiTmV4dC5ncmVlbjp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL25leHRfZ3JlZW4uZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiTmV4dC5ibHVlOmhvdmVyLCAjbGJOZXh0LmJsdWU6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9uZXh0X2JsdWUuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoJI2xiTmV4dC5nb2xkOmhvdmVyLCAjbGJOZXh0LmdvbGQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9uZXh0X2dvbGQuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9DQoNCiNsYlByZXYyLCAjbGJOZXh0MiB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCgkjbGJQcmV2Mi5ncmV5LCAjbGJOZXh0Mi5ncmV5LCAjbGJTcGFjZXIuZ3JleSB7IGNvbG9yOiAjMzMzMzMzOyB9DQoJI2xiUHJldjIucmVkLCAjbGJOZXh0Mi5yZWQsICNsYlNwYWNlci5yZWQgeyBjb2xvcjogIzYyMDAwMDsgfQ0KCSNsYlByZXYyLmdyZWVuLCAjbGJOZXh0Mi5ncmVlbiwgI2xiU3BhY2VyLmdyZWVuIHsgY29sb3I6ICMwMDMzMDA7IH0NCgkjbGJQcmV2Mi5ibHVlLCAjbGJOZXh0Mi5ibHVlLCAjbGJTcGFjZXIuYmx1ZSB7IGNvbG9yOiAjMDEzNzlFOyB9DQoJI2xiUHJldjIuZ29sZCwgI2xiTmV4dDIuZ29sZCwgI2xiU3BhY2VyLmdvbGQgeyBjb2xvcjogIzY2NjYwMDsgfQ0KDQojbGJQcmV2Ml9PZmYsICNsYk5leHQyX09mZiB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQoJI2xiUHJldjJfT2ZmLmdyZXksICNsYk5leHQyX09mZi5ncmV5IHsgY29sb3I6ICNDQ0NDQ0M7IH0NCgkjbGJQcmV2Ml9PZmYucmVkLCAjbGJOZXh0Ml9PZmYucmVkIHsgY29sb3I6ICNGRkNDQ0M7IH0NCgkjbGJQcmV2Ml9PZmYuZ3JlZW4sICNsYk5leHQyX09mZi5ncmVlbiB7IGNvbG9yOiAjODJGRjgyOyB9DQoJI2xiUHJldjJfT2ZmLmJsdWUsICNsYk5leHQyX09mZi5ibHVlIHsgY29sb3I6ICNCN0NBRUU7IH0NCgkjbGJQcmV2Ml9PZmYuZ29sZCwgI2xiTmV4dDJfT2ZmLmdvbGQgeyBjb2xvcjogI0UxRTEwMDsgfQ0KDQojbGJEZXRhaWxzRGF0YSB7IHBhZGRpbmc6IDAgMTBweDsgfQ0KCSNsYkRldGFpbHNEYXRhLmdyZXkgeyBjb2xvcjogIzMzMzMzMzsgfQ0KCSNsYkRldGFpbHNEYXRhLnJlZCB7IGNvbG9yOiAjNjIwMDAwOyB9DQoJI2xiRGV0YWlsc0RhdGEuZ3JlZW4geyBjb2xvcjogIzAwMzMwMDsgfQ0KCSNsYkRldGFpbHNEYXRhLmJsdWUgeyBjb2xvcjogIzAxMzc5RTsgfQ0KCSNsYkRldGFpbHNEYXRhLmdvbGQgeyBjb2xvcjogIzY2NjYwMDsgfQ0KDQojbGJEZXRhaWxzIHsgd2lkdGg6IDYwJTsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGxlZnQ7IH0NCiNsYkNhcHRpb24geyBkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiNsYk51bWJlckRpc3BsYXkgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctYm90dG9tOiAxLjBlbTsgfQ0KI2xiTmF2RGlzcGxheSB7IGZsb2F0OiBsZWZ0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1ib3R0b206IDEuMGVtOyB9DQoNCiNsYkNsb3NlIHsgd2lkdGg6IDY0cHg7IGhlaWdodDogMjhweDsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tYm90dG9tOiAxcHg7IH0NCgkjbGJDbG9zZS5ncmV5IHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL2Nsb3NlX2dyZXkucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJDbG9zZS5yZWQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvY2xvc2VfcmVkLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiQ2xvc2UuZ3JlZW4geyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvY2xvc2VfZ3JlZW4ucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJDbG9zZS5ibHVlIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL2Nsb3NlX2JsdWUucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJDbG9zZS5nb2xkIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL2Nsb3NlX2dvbGQucG5nKSBuby1yZXBlYXQ7IH0NCg0KI2xiUGxheSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9DQoJI2xiUGxheS5ncmV5IHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL3BsYXlfZ3JleS5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBsYXkucmVkIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL3BsYXlfcmVkLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiUGxheS5ncmVlbiB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wbGF5X2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9DQoJI2xiUGxheS5ibHVlIHsgYmFja2dyb3VuZDogdXJsKC4uL2x5dGVib3gvaW1hZ2VzL3BsYXlfYmx1ZS5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBsYXkuZ29sZCB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wbGF5X2dvbGQucG5nKSBuby1yZXBlYXQ7IH0NCg0KI2xiUGF1c2UgeyB3aWR0aDogNjRweDsgaGVpZ2h0OiAyOHB4OyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDFweDsgfQ0KCSNsYlBhdXNlLmdyZXkgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcGF1c2VfZ3JleS5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBhdXNlLnJlZCB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wYXVzZV9yZWQucG5nKSBuby1yZXBlYXQ7IH0NCgkjbGJQYXVzZS5ncmVlbiB7IGJhY2tncm91bmQ6IHVybCguLi9seXRlYm94L2ltYWdlcy9wYXVzZV9ncmVlbi5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBhdXNlLmJsdWUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcGF1c2VfYmx1ZS5wbmcpIG5vLXJlcGVhdDsgfQ0KCSNsYlBhdXNlLmdvbGQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vbHl0ZWJveC9pbWFnZXMvcGF1c2VfZ29sZC5wbmcpIG5vLXJlcGVhdDsgfQ0KDQp7Ki0tLS0tLS0tLS0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvbHl0ZWJveC9seXRlYm94LmpzIj48L3NjcmlwdD4NCip9]]></data>
	</file>
	<file>
	  <filename>/templates/template_slimbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZ2FsbGVyeSI+DQp7aWYgaXNzZXQoJG1vZHVsZV9tZXNzYWdlKX08aDI+eyRtb2R1bGVfbWVzc2FnZXxlc2NhcGV9PC9oMj57L2lmfQ0Ke2lmIGlzc2V0KCRnYWxsZXJ5dGl0bGUpfTxoMz57JGdhbGxlcnl0aXRsZX08L2gzPnsvaWZ9DQp7aWYgaXNzZXQoJGdhbGxlcnljb21tZW50KX08ZGl2IGNsYXNzPSJnYWxsZXJ5Y29tbWVudCI+eyRnYWxsZXJ5Y29tbWVudH08L2Rpdj57L2lmfQ0KPHA+eyRpbWFnZWNvdW50fTwvcD4NCjxkaXYgY2xhc3M9InBhZ2VuYXZpZ2F0aW9uIj4NCntpZiAkcGFnZXMgPiAxfQ0KPGRpdiBjbGFzcz0icHJldnBhZ2UiPnskcHJldnBhZ2V9PC9kaXY+DQo8ZGl2IGNsYXNzPSJuZXh0cGFnZSI+eyRuZXh0cGFnZX08L2Rpdj4NCnsvaWZ9DQp7aWYgaXNzZXQoJHBhcmVudGxpbmspfTxkaXYgY2xhc3M9InBhcmVudGxpbmsiPnskcGFyZW50bGlua308L2Rpdj57L2lmfQ0Ke2lmICRwYWdlcyA+IDF9PGRpdiBjbGFzcz0icGFnZWxpbmtzIj57JHBhZ2VsaW5rc308L2Rpdj57L2lmfQ0KPC9kaXY+DQoNCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQ0KCTxkaXYgY2xhc3M9ImltZyI+DQoJe2lmICRpbWFnZS0+aXNkaXJ9DQoJCTxhIGhyZWY9InskaW1hZ2UtPmZpbGV9IiB0aXRsZT0ieyRpbWFnZS0+dGl0bGV9Ij48aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz48L2E+PGJyIC8+DQoJCXskaW1hZ2UtPnRpdGxlfQ0KCXtlbHNlfQ0KICAgPGEgaHJlZj0ieyRpbWFnZS0+ZmlsZX0iIHRpdGxlPSJ7JGltYWdlLT50aXRsZX0iIHJlbD0ibGlnaHRib3hbZ2FsbGVyeV0iPjxpbWcgc3JjPSJ7JGltYWdlLT50aHVtYn0iIGFsdD0ieyRpbWFnZS0+dGl0bGV9IiAvPjwvYT4NCgl7L2lmfQ0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9kaXY+DQoNCnsqLS0tLS0tLS0tLQ0KLmdhbGxlcnkgLmltZyB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAzcHg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gew0KCWhlaWdodDogNTBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGEsIC5nYWxsZXJ5IC5wcmV2cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3ByZXZpb3VzLnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCn0NCg0KLmdhbGxlcnkgLm5leHRwYWdlIGEsIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJZGlzcGxheTogYmxvY2s7IA0KCXdpZHRoOiA1MHB4OyANCgloZWlnaHQ6IDM5cHg7DQoJZmxvYXQ6IGxlZnQ7IA0KCW1hcmdpbjogMCA2cHggMCAwOw0KCXRleHQtaW5kZW50OiAtMTAwMHB4Ow0KCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbmV4dC5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYXJlbnRsaW5rIGEgew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL3VwcGFnZS5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4Ow0KfQ0KDQouZ2FsbGVyeSAucHJldnBhZ2UgZW0sIC5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICM2NjY7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3MgYSwgLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJbWFyZ2luLXRvcDogNnB4Ow0KCXBhZGRpbmc6IDAgNnB4Ow0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsNCgljb2xvcjogIzAwMDsNCn0NCg0KDQovKiBTTElNQk9YICovDQoNCiNsYk92ZXJsYXkgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgl6LWluZGV4OiA5OTk5Ow0KCWxlZnQ6IDA7DQoJdG9wOiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KI2xiQ2VudGVyLCAjbGJCb3R0b21Db250YWluZXIgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl6LWluZGV4OiA5OTk5Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCn0NCg0KLmxiTG9hZGluZyB7DQoJYmFja2dyb3VuZDogI2ZmZiB1cmwoLi4vc2xpbWJveC9jc3MvbG9hZGluZy5naWYpIG5vLXJlcGVhdCBjZW50ZXI7DQp9DQoNCiNsYkltYWdlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbGVmdDogMDsNCgl0b3A6IDA7DQoJYm9yZGVyOiAxMHB4IHNvbGlkICNmZmY7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCn0NCg0KI2xiUHJldkxpbmssICNsYk5leHRMaW5rIHsNCglkaXNwbGF5OiBibG9jazsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCXdpZHRoOiA1MCU7DQoJb3V0bGluZTogbm9uZTsNCn0NCg0KI2xiUHJldkxpbmsgew0KCWxlZnQ6IDA7DQp9DQoNCiNsYlByZXZMaW5rOmhvdmVyIHsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vc2xpbWJveC9jc3MvcHJldmxhYmVsLmdpZikgbm8tcmVwZWF0IDAgMTUlOw0KfQ0KDQojbGJOZXh0TGluayB7DQoJcmlnaHQ6IDA7DQp9DQoNCiNsYk5leHRMaW5rOmhvdmVyIHsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vc2xpbWJveC9jc3MvbmV4dGxhYmVsLmdpZikgbm8tcmVwZWF0IDEwMCUgMTUlOw0KfQ0KDQojbGJCb3R0b20gew0KCWZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJZm9udC1zaXplOiAxMHB4Ow0KCWNvbG9yOiAjNjY2Ow0KCWxpbmUtaGVpZ2h0OiAxLjRlbTsNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KCWJvcmRlcjogMTBweCBzb2xpZCAjZmZmOw0KCWJvcmRlci10b3Atc3R5bGU6IG5vbmU7DQp9DQoNCiNsYkNsb3NlTGluayB7DQoJZGlzcGxheTogYmxvY2s7DQoJZmxvYXQ6IHJpZ2h0Ow0KCXdpZHRoOiA2NnB4Ow0KCWhlaWdodDogMjJweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vc2xpbWJveC9jc3MvY2xvc2VsYWJlbC5naWYpIG5vLXJlcGVhdCBjZW50ZXI7DQoJbWFyZ2luOiA1cHggMDsNCglvdXRsaW5lOiBub25lOw0KfQ0KDQojbGJDYXB0aW9uLCAjbGJOdW1iZXIgew0KCW1hcmdpbi1yaWdodDogNzFweDsNCn0NCg0KI2xiQ2FwdGlvbiB7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoNCnsqLS0tLS0tLS0tLQ0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy9qcXVlcnkvanF1ZXJ5LmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvc2xpbWJveC9qcy9zbGltYm94Mi5qcyI+PC9zY3JpcHQ+DQoqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/template_thickbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZ2FsbGVyeSI+DQp7aWYgaXNzZXQoJG1vZHVsZV9tZXNzYWdlKX08aDI+eyRtb2R1bGVfbWVzc2FnZXxlc2NhcGV9PC9oMj57L2lmfQ0Ke2lmIGlzc2V0KCRnYWxsZXJ5dGl0bGUpfTxoMz57JGdhbGxlcnl0aXRsZX08L2gzPnsvaWZ9DQp7aWYgaXNzZXQoJGdhbGxlcnljb21tZW50KX08ZGl2IGNsYXNzPSJnYWxsZXJ5Y29tbWVudCI+eyRnYWxsZXJ5Y29tbWVudH08L2Rpdj57L2lmfQ0KPHA+eyRpbWFnZWNvdW50fTwvcD4NCjxkaXYgY2xhc3M9InBhZ2VuYXZpZ2F0aW9uIj4NCntpZiAkcGFnZXMgPiAxfQ0KPGRpdiBjbGFzcz0icHJldnBhZ2UiPnskcHJldnBhZ2V9PC9kaXY+DQo8ZGl2IGNsYXNzPSJuZXh0cGFnZSI+eyRuZXh0cGFnZX08L2Rpdj4NCnsvaWZ9DQp7aWYgaXNzZXQoJHBhcmVudGxpbmspfTxkaXYgY2xhc3M9InBhcmVudGxpbmsiPnskcGFyZW50bGlua308L2Rpdj57L2lmfQ0Ke2lmICRwYWdlcyA+IDF9PGRpdiBjbGFzcz0icGFnZWxpbmtzIj57JHBhZ2VsaW5rc308L2Rpdj57L2lmfQ0KPC9kaXY+DQoNCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQ0KCTxkaXYgY2xhc3M9ImltZyI+DQoJe2lmICRpbWFnZS0+aXNkaXJ9DQoJCTxhIGhyZWY9InskaW1hZ2UtPmZpbGV9IiB0aXRsZT0ieyRpbWFnZS0+dGl0bGV9Ij48aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz48L2E+PGJyIC8+DQoJCXskaW1hZ2UtPnRpdGxlfQ0KCXtlbHNlfQ0KICAgPGEgaHJlZj0ieyRpbWFnZS0+ZmlsZX0iIHRpdGxlPSJ7JGltYWdlLT50aXRsZX0iIGNsYXNzPSJ0aGlja2JveCIgcmVsPSJnYWxsZXJ5Ij48aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ9IiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz48L2E+DQoJey9pZn0NCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvZGl2Pg0KDQp7Ki0tLS0tLS0tLS0NCi5nYWxsZXJ5IC5pbWcgew0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogM3B4Ow0KCXRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VuYXZpZ2F0aW9uIHsNCgloZWlnaHQ6IDUwcHg7DQp9DQoNCi5nYWxsZXJ5IC5wcmV2cGFnZSBhLCAuZ2FsbGVyeSAucHJldnBhZ2UgZW0gew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgltYXJnaW46IDA7DQoJdGV4dC1pbmRlbnQ6IC0xMDAwcHg7DQoJYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9wcmV2aW91cy5wbmcpIHRyYW5zcGFyZW50IG5vLXJlcGVhdCAwIDA7DQp9DQoNCi5nYWxsZXJ5IC5uZXh0cGFnZSBhLCAuZ2FsbGVyeSAubmV4dHBhZ2UgZW0gew0KCWRpc3BsYXk6IGJsb2NrOyANCgl3aWR0aDogNTBweDsgDQoJaGVpZ2h0OiAzOXB4Ow0KCWZsb2F0OiBsZWZ0OyANCgltYXJnaW46IDAgNnB4IDAgMDsNCgl0ZXh0LWluZGVudDogLTEwMDBweDsNCgliYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL25leHQucG5nKSB0cmFuc3BhcmVudCBuby1yZXBlYXQgMCAwOw0KfQ0KDQouZ2FsbGVyeSAucGFyZW50bGluayBhIHsNCglkaXNwbGF5OiBibG9jazsgDQoJd2lkdGg6IDUwcHg7IA0KCWhlaWdodDogMzlweDsNCglmbG9hdDogbGVmdDsgDQoJdGV4dC1pbmRlbnQ6IC0xMDAwcHg7DQoJYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy91cHBhZ2UucG5nKSB0cmFuc3BhcmVudCBuby1yZXBlYXQgMCAwOw0KfQ0KDQouZ2FsbGVyeSAucGFnZW5hdmlnYXRpb24gYTpob3ZlciB7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDsNCn0NCg0KLmdhbGxlcnkgLnByZXZwYWdlIGVtLCAuZ2FsbGVyeSAubmV4dHBhZ2UgZW0gew0KCWJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHg7DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbGlua3Mgew0KCWZsb2F0OiByaWdodDsNCglib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGEsIC5nYWxsZXJ5IC5wYWdlbGlua3MgZW0gew0KCW1hcmdpbi10b3A6IDZweDsNCglwYWRkaW5nOiAwIDZweDsNCglib3JkZXItbGVmdDogMnB4IHNvbGlkICM2NjY7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWZvbnQ6IGJvbGQgMTFweCB2ZXJkYW5hOyBjb2xvcjogIzY2NjsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQoJY29sb3I6ICMwMDA7DQp9DQoNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovKiAtLS0tLS0tLS0tPj4+IGdsb2JhbCBzZXR0aW5ncyBuZWVkZWQgZm9yIHRoaWNrYm94IDw8PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KKntwYWRkaW5nOiAwOyBtYXJnaW46IDA7fQ0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi8qIC0tLS0tLS0tLS0+Pj4gdGhpY2tib3ggc3BlY2lmaWMgbGluayBhbmQgZm9udCBzZXR0aW5ncyA8PDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQojVEJfd2luZG93IHsNCglmb250OiAxMnB4IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJY29sb3I6ICMzMzMzMzM7DQp9DQoNCiNUQl9zZWNvbmRMaW5lIHsNCglmb250OiAxMHB4IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJY29sb3I6IzY2NjY2NjsNCn0NCg0KI1RCX3dpbmRvdyBhOmxpbmsge2NvbG9yOiAjNjY2NjY2O30NCiNUQl93aW5kb3cgYTp2aXNpdGVkIHtjb2xvcjogIzY2NjY2Njt9DQojVEJfd2luZG93IGE6aG92ZXIge2NvbG9yOiAjMDAwO30NCiNUQl93aW5kb3cgYTphY3RpdmUge2NvbG9yOiAjNjY2NjY2O30NCiNUQl93aW5kb3cgYTpmb2N1c3tjb2xvcjogIzY2NjY2Njt9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyogLS0tLS0tLS0tLT4+PiB0aGlja2JveCBzZXR0aW5ncyA8PDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCiNUQl9vdmVybGF5IHsNCglwb3NpdGlvbjogZml4ZWQ7DQoJei1pbmRleDoxMDA7DQoJdG9wOiAwcHg7DQoJbGVmdDogMHB4Ow0KCWhlaWdodDoxMDAlOw0KCXdpZHRoOjEwMCU7DQp9DQoNCi5UQl9vdmVybGF5TWFjRkZCR0hhY2sge2JhY2tncm91bmQ6IHVybChtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL3RoaWNrYm94L21hY0ZGQmdIYWNrLnBuZykgcmVwZWF0O30NCi5UQl9vdmVybGF5Qkcgew0KCWJhY2tncm91bmQtY29sb3I6IzAwMDsNCglmaWx0ZXI6YWxwaGEob3BhY2l0eT03NSk7DQoJLW1vei1vcGFjaXR5OiAwLjc1Ow0KCW9wYWNpdHk6IDAuNzU7DQp9DQoNCiogaHRtbCAjVEJfb3ZlcmxheSB7IC8qIGllNiBoYWNrICovDQogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgaGVpZ2h0OiBleHByZXNzaW9uKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgPyBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA6IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ICsgJ3B4Jyk7DQp9DQoNCiNUQl93aW5kb3cgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgliYWNrZ3JvdW5kOiAjZmZmZmZmOw0KCXotaW5kZXg6IDEwMjsNCgljb2xvcjojMDAwMDAwOw0KCWRpc3BsYXk6bm9uZTsNCglib3JkZXI6IDRweCBzb2xpZCAjNTI1MjUyOw0KCXRleHQtYWxpZ246bGVmdDsNCgl0b3A6NTAlOw0KCWxlZnQ6NTAlOw0KfQ0KDQoqIGh0bWwgI1RCX3dpbmRvdyB7IC8qIGllNiBoYWNrICovDQpwb3NpdGlvbjogYWJzb2x1dGU7DQptYXJnaW4tdG9wOiBleHByZXNzaW9uKDAgLSBwYXJzZUludCh0aGlzLm9mZnNldEhlaWdodCAvIDIpICsgKFRCV2luZG93TWFyZ2luID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApICsgJ3B4Jyk7DQp9DQoNCiNUQl93aW5kb3cgaW1nI1RCX0ltYWdlIHsNCglkaXNwbGF5OmJsb2NrOw0KCW1hcmdpbjogMTVweCAwIDAgMTVweDsNCglib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjOw0KCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOw0KCWJvcmRlci10b3A6IDFweCBzb2xpZCAjNjY2Ow0KCWJvcmRlci1sZWZ0OiAxcHggc29saWQgIzY2NjsNCn0NCg0KI1RCX2NhcHRpb257DQoJaGVpZ2h0OjI1cHg7DQoJcGFkZGluZzo3cHggMzBweCAxMHB4IDI1cHg7DQoJZmxvYXQ6bGVmdDsNCn0NCg0KI1RCX2Nsb3NlV2luZG93ew0KCWhlaWdodDoyNXB4Ow0KCXBhZGRpbmc6MTFweCAyNXB4IDEwcHggMDsNCglmbG9hdDpyaWdodDsNCn0NCg0KI1RCX2Nsb3NlQWpheFdpbmRvd3sNCglwYWRkaW5nOjdweCAxMHB4IDVweCAwOw0KCW1hcmdpbi1ib3R0b206MXB4Ow0KCXRleHQtYWxpZ246cmlnaHQ7DQoJZmxvYXQ6cmlnaHQ7DQp9DQoNCiNUQl9hamF4V2luZG93VGl0bGV7DQoJZmxvYXQ6bGVmdDsNCglwYWRkaW5nOjdweCAwIDVweCAxMHB4Ow0KCW1hcmdpbi1ib3R0b206MXB4Ow0KfQ0KDQojVEJfdGl0bGV7DQoJYmFja2dyb3VuZC1jb2xvcjojZThlOGU4Ow0KCWhlaWdodDoyN3B4Ow0KfQ0KDQojVEJfYWpheENvbnRlbnR7DQoJY2xlYXI6Ym90aDsNCglwYWRkaW5nOjJweCAxNXB4IDE1cHggMTVweDsNCglvdmVyZmxvdzphdXRvOw0KCXRleHQtYWxpZ246bGVmdDsNCglsaW5lLWhlaWdodDoxLjRlbTsNCn0NCg0KI1RCX2FqYXhDb250ZW50LlRCX21vZGFsew0KCXBhZGRpbmc6MTVweDsNCn0NCg0KI1RCX2FqYXhDb250ZW50IHB7DQoJcGFkZGluZzo1cHggMHB4IDVweCAwcHg7DQp9DQoNCiNUQl9sb2Fkew0KCXBvc2l0aW9uOiBmaXhlZDsNCglkaXNwbGF5Om5vbmU7DQoJaGVpZ2h0OjEzcHg7DQoJd2lkdGg6MjA4cHg7DQoJei1pbmRleDoxMDM7DQoJdG9wOiA1MCU7DQoJbGVmdDogNTAlOw0KCW1hcmdpbjogLTZweCAwIDAgLTEwNHB4OyAvKiAtaGVpZ2h0LzIgMCAwIC13aWR0aC8yICovDQp9DQoNCiogaHRtbCAjVEJfbG9hZCB7IC8qIGllNiBoYWNrICovDQpwb3NpdGlvbjogYWJzb2x1dGU7DQptYXJnaW4tdG9wOiBleHByZXNzaW9uKDAgLSBwYXJzZUludCh0aGlzLm9mZnNldEhlaWdodCAvIDIpICsgKFRCV2luZG93TWFyZ2luID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApICsgJ3B4Jyk7DQp9DQoNCiNUQl9IaWRlU2VsZWN0ew0KCXotaW5kZXg6OTk7DQoJcG9zaXRpb246Zml4ZWQ7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJYmFja2dyb3VuZC1jb2xvcjojZmZmOw0KCWJvcmRlcjpub25lOw0KCWZpbHRlcjphbHBoYShvcGFjaXR5PTApOw0KCS1tb3otb3BhY2l0eTogMDsNCglvcGFjaXR5OiAwOw0KCWhlaWdodDoxMDAlOw0KCXdpZHRoOjEwMCU7DQp9DQoNCiogaHRtbCAjVEJfSGlkZVNlbGVjdCB7IC8qIGllNiBoYWNrICovDQogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgaGVpZ2h0OiBleHByZXNzaW9uKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgPyBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA6IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ICsgJ3B4Jyk7DQp9DQoNCiNUQl9pZnJhbWVDb250ZW50ew0KCWNsZWFyOmJvdGg7DQoJYm9yZGVyOm5vbmU7DQoJbWFyZ2luLWJvdHRvbTotMXB4Ow0KCW1hcmdpbi10b3A6MXB4Ow0KCV9tYXJnaW4tYm90dG9tOjFweDsNCn0NCg0KeyotLS0tLS0tLS0tDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL2pxdWVyeS9qcXVlcnkuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibW9kdWxlcy9HYWxsZXJ5L3RlbXBsYXRlcy90aGlja2JveC90aGlja2JveC5qcyI+PC9zY3JpcHQ+DQoqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/thickbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/thickbox/loadingAnimation.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/thickbox/macFFBgHack.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUANy8xNi8wN1qn/wsAAAAoSURBVEiJ7c1BAQAwCAAhtH+nVVsKf0cBBs+xvQ5KSkpKSkpKSkrAB1nRAPEf/J+FAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/thickbox/thickbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qIC0tLS0tLS0tLS0+Pj4gZ2xvYmFsIHNldHRpbmdzIG5lZWRlZCBmb3IgdGhpY2tib3ggPDw8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKntwYWRkaW5nOiAwOyBtYXJnaW46IDA7fQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qIC0tLS0tLS0tLS0+Pj4gdGhpY2tib3ggc3BlY2lmaWMgbGluayBhbmQgZm9udCBzZXR0aW5ncyA8PDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI1RCX3dpbmRvdyB7Cglmb250OiAxMnB4IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cgljb2xvcjogIzMzMzMzMzsKfQoKI1RCX3NlY29uZExpbmUgewoJZm9udDogMTBweCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwoJY29sb3I6IzY2NjY2NjsKfQoKI1RCX3dpbmRvdyBhOmxpbmsge2NvbG9yOiAjNjY2NjY2O30KI1RCX3dpbmRvdyBhOnZpc2l0ZWQge2NvbG9yOiAjNjY2NjY2O30KI1RCX3dpbmRvdyBhOmhvdmVyIHtjb2xvcjogIzAwMDt9CiNUQl93aW5kb3cgYTphY3RpdmUge2NvbG9yOiAjNjY2NjY2O30KI1RCX3dpbmRvdyBhOmZvY3Vze2NvbG9yOiAjNjY2NjY2O30KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAtLS0tLS0tLS0tPj4+IHRoaWNrYm94IHNldHRpbmdzIDw8PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNUQl9vdmVybGF5IHsKCXBvc2l0aW9uOiBmaXhlZDsKCXotaW5kZXg6MTAwOwoJdG9wOiAwcHg7CglsZWZ0OiAwcHg7CgloZWlnaHQ6MTAwJTsKCXdpZHRoOjEwMCU7Cn0KCi5UQl9vdmVybGF5TWFjRkZCR0hhY2sge2JhY2tncm91bmQ6IHVybChtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL3RoaWNrYm94L21hY0ZGQmdIYWNrLnBuZykgcmVwZWF0O30KLlRCX292ZXJsYXlCRyB7CgliYWNrZ3JvdW5kLWNvbG9yOiMwMDA7CglmaWx0ZXI6YWxwaGEob3BhY2l0eT03NSk7CgktbW96LW9wYWNpdHk6IDAuNzU7CglvcGFjaXR5OiAwLjc1Owp9CgoqIGh0bWwgI1RCX292ZXJsYXkgeyAvKiBpZTYgaGFjayAqLwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBoZWlnaHQ6IGV4cHJlc3Npb24oZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCA/IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0IDogZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgKyAncHgnKTsKfQoKI1RCX3dpbmRvdyB7Cglwb3NpdGlvbjogZml4ZWQ7CgliYWNrZ3JvdW5kOiAjZmZmZmZmOwoJei1pbmRleDogMTAyOwoJY29sb3I6IzAwMDAwMDsKCWRpc3BsYXk6bm9uZTsKCWJvcmRlcjogNHB4IHNvbGlkICM1MjUyNTI7Cgl0ZXh0LWFsaWduOmxlZnQ7Cgl0b3A6NTAlOwoJbGVmdDo1MCU7Cn0KCiogaHRtbCAjVEJfd2luZG93IHsgLyogaWU2IGhhY2sgKi8KcG9zaXRpb246IGFic29sdXRlOwptYXJnaW4tdG9wOiBleHByZXNzaW9uKDAgLSBwYXJzZUludCh0aGlzLm9mZnNldEhlaWdodCAvIDIpICsgKFRCV2luZG93TWFyZ2luID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApICsgJ3B4Jyk7Cn0KCiNUQl93aW5kb3cgaW1nI1RCX0ltYWdlIHsKCWRpc3BsYXk6YmxvY2s7CgltYXJnaW46IDE1cHggMCAwIDE1cHg7Cglib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjOwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Cglib3JkZXItdG9wOiAxcHggc29saWQgIzY2NjsKCWJvcmRlci1sZWZ0OiAxcHggc29saWQgIzY2NjsKfQoKI1RCX2NhcHRpb257CgloZWlnaHQ6MjVweDsKCXBhZGRpbmc6N3B4IDMwcHggMTBweCAyNXB4OwoJZmxvYXQ6bGVmdDsKfQoKI1RCX2Nsb3NlV2luZG93ewoJaGVpZ2h0OjI1cHg7CglwYWRkaW5nOjExcHggMjVweCAxMHB4IDA7CglmbG9hdDpyaWdodDsKfQoKI1RCX2Nsb3NlQWpheFdpbmRvd3sKCXBhZGRpbmc6N3B4IDEwcHggNXB4IDA7CgltYXJnaW4tYm90dG9tOjFweDsKCXRleHQtYWxpZ246cmlnaHQ7CglmbG9hdDpyaWdodDsKfQoKI1RCX2FqYXhXaW5kb3dUaXRsZXsKCWZsb2F0OmxlZnQ7CglwYWRkaW5nOjdweCAwIDVweCAxMHB4OwoJbWFyZ2luLWJvdHRvbToxcHg7Cn0KCiNUQl90aXRsZXsKCWJhY2tncm91bmQtY29sb3I6I2U4ZThlODsKCWhlaWdodDoyN3B4Owp9CgojVEJfYWpheENvbnRlbnR7CgljbGVhcjpib3RoOwoJcGFkZGluZzoycHggMTVweCAxNXB4IDE1cHg7CglvdmVyZmxvdzphdXRvOwoJdGV4dC1hbGlnbjpsZWZ0OwoJbGluZS1oZWlnaHQ6MS40ZW07Cn0KCiNUQl9hamF4Q29udGVudC5UQl9tb2RhbHsKCXBhZGRpbmc6MTVweDsKfQoKI1RCX2FqYXhDb250ZW50IHB7CglwYWRkaW5nOjVweCAwcHggNXB4IDBweDsKfQoKI1RCX2xvYWR7Cglwb3NpdGlvbjogZml4ZWQ7CglkaXNwbGF5Om5vbmU7CgloZWlnaHQ6MTNweDsKCXdpZHRoOjIwOHB4OwoJei1pbmRleDoxMDM7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCW1hcmdpbjogLTZweCAwIDAgLTEwNHB4OyAvKiAtaGVpZ2h0LzIgMCAwIC13aWR0aC8yICovCn0KCiogaHRtbCAjVEJfbG9hZCB7IC8qIGllNiBoYWNrICovCnBvc2l0aW9uOiBhYnNvbHV0ZTsKbWFyZ2luLXRvcDogZXhwcmVzc2lvbigwIC0gcGFyc2VJbnQodGhpcy5vZmZzZXRIZWlnaHQgLyAyKSArIChUQldpbmRvd01hcmdpbiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSArICdweCcpOwp9CgojVEJfSGlkZVNlbGVjdHsKCXotaW5kZXg6OTk7Cglwb3NpdGlvbjpmaXhlZDsKCXRvcDogMDsKCWxlZnQ6IDA7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Cglib3JkZXI6bm9uZTsKCWZpbHRlcjphbHBoYShvcGFjaXR5PTApOwoJLW1vei1vcGFjaXR5OiAwOwoJb3BhY2l0eTogMDsKCWhlaWdodDoxMDAlOwoJd2lkdGg6MTAwJTsKfQoKKiBodG1sICNUQl9IaWRlU2VsZWN0IHsgLyogaWU2IGhhY2sgKi8KICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgaGVpZ2h0OiBleHByZXNzaW9uKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgPyBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA6IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ICsgJ3B4Jyk7Cn0KCiNUQl9pZnJhbWVDb250ZW50ewoJY2xlYXI6Ym90aDsKCWJvcmRlcjpub25lOwoJbWFyZ2luLWJvdHRvbTotMXB4OwoJbWFyZ2luLXRvcDoxcHg7CglfbWFyZ2luLWJvdHRvbToxcHg7Cn0K]]></data>
	</file>
	<file>
	  <filename>/templates/thickbox/thickbox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIFRoaWNrYm94IDMuMSAtIE9uZSBCb3ggVG8gUnVsZSBUaGVtIEFsbC4NCiAqIEJ5IENvZHkgTGluZGxleSAoaHR0cDovL3d3dy5jb2R5bGluZGxleS5jb20pDQogKiBDb3B5cmlnaHQgKGMpIDIwMDcgY29keSBsaW5kbGV5DQogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwDQoqLw0KCQkgIA0KdmFyIHRiX3BhdGhUb0ltYWdlID0gIm1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvdGhpY2tib3gvbG9hZGluZ0FuaW1hdGlvbi5naWYiOw0KDQovKiEhISEhISEhISEhISEhISEhIGVkaXQgYmVsb3cgdGhpcyBsaW5lIGF0IHlvdXIgb3duIHJpc2sgISEhISEhISEhISEhISEhISEhISEhISEqLw0KDQovL29uIHBhZ2UgbG9hZCBjYWxsIHRiX2luaXQNCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7ICAgDQoJdGJfaW5pdCgnYS50aGlja2JveCwgYXJlYS50aGlja2JveCwgaW5wdXQudGhpY2tib3gnKTsvL3Bhc3Mgd2hlcmUgdG8gYXBwbHkgdGhpY2tib3gNCglpbWdMb2FkZXIgPSBuZXcgSW1hZ2UoKTsvLyBwcmVsb2FkIGltYWdlDQoJaW1nTG9hZGVyLnNyYyA9IHRiX3BhdGhUb0ltYWdlOw0KfSk7DQoNCi8vYWRkIHRoaWNrYm94IHRvIGhyZWYgJiBhcmVhIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGNsYXNzIG9mIC50aGlja2JveA0KZnVuY3Rpb24gdGJfaW5pdChkb21DaHVuayl7DQoJJChkb21DaHVuaykuY2xpY2soZnVuY3Rpb24oKXsNCgl2YXIgdCA9IHRoaXMudGl0bGUgfHwgdGhpcy5uYW1lIHx8IG51bGw7DQoJdmFyIGEgPSB0aGlzLmhyZWYgfHwgdGhpcy5hbHQ7DQoJdmFyIGcgPSB0aGlzLnJlbCB8fCBmYWxzZTsNCgl0Yl9zaG93KHQsYSxnKTsNCgl0aGlzLmJsdXIoKTsNCglyZXR1cm4gZmFsc2U7DQoJfSk7DQp9DQoNCmZ1bmN0aW9uIHRiX3Nob3coY2FwdGlvbiwgdXJsLCBpbWFnZUdyb3VwKSB7Ly9mdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gYSB0aGlja2JveCBsaW5rDQoNCgl0cnkgew0KCQlpZiAodHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGUubWF4SGVpZ2h0ID09PSAidW5kZWZpbmVkIikgey8vaWYgSUUgNg0KCQkJJCgiYm9keSIsImh0bWwiKS5jc3Moe2hlaWdodDogIjEwMCUiLCB3aWR0aDogIjEwMCUifSk7DQoJCQkkKCJodG1sIikuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpOw0KCQkJaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUQl9IaWRlU2VsZWN0IikgPT09IG51bGwpIHsvL2lmcmFtZSB0byBoaWRlIHNlbGVjdCBlbGVtZW50cyBpbiBpZTYNCgkJCQkkKCJib2R5IikuYXBwZW5kKCI8aWZyYW1lIGlkPSdUQl9IaWRlU2VsZWN0Jz48L2lmcmFtZT48ZGl2IGlkPSdUQl9vdmVybGF5Jz48L2Rpdj48ZGl2IGlkPSdUQl93aW5kb3cnPjwvZGl2PiIpOw0KCQkJCSQoIiNUQl9vdmVybGF5IikuY2xpY2sodGJfcmVtb3ZlKTsNCgkJCX0NCgkJfWVsc2V7Ly9hbGwgb3RoZXJzDQoJCQlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVEJfb3ZlcmxheSIpID09PSBudWxsKXsNCgkJCQkkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdUQl9vdmVybGF5Jz48L2Rpdj48ZGl2IGlkPSdUQl93aW5kb3cnPjwvZGl2PiIpOw0KCQkJCSQoIiNUQl9vdmVybGF5IikuY2xpY2sodGJfcmVtb3ZlKTsNCgkJCX0NCgkJfQ0KCQkNCgkJaWYodGJfZGV0ZWN0TWFjWEZGKCkpew0KCQkJJCgiI1RCX292ZXJsYXkiKS5hZGRDbGFzcygiVEJfb3ZlcmxheU1hY0ZGQkdIYWNrIik7Ly91c2UgcG5nIG92ZXJsYXkgc28gaGlkZSBmbGFzaA0KCQl9ZWxzZXsNCgkJCSQoIiNUQl9vdmVybGF5IikuYWRkQ2xhc3MoIlRCX292ZXJsYXlCRyIpOy8vdXNlIGJhY2tncm91bmQgYW5kIG9wYWNpdHkNCgkJfQ0KCQkNCgkJaWYoY2FwdGlvbj09PW51bGwpe2NhcHRpb249IiI7fQ0KCQkkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdUQl9sb2FkJz48aW1nIHNyYz0nIitpbWdMb2FkZXIuc3JjKyInIC8+PC9kaXY+Iik7Ly9hZGQgbG9hZGVyIHRvIHRoZSBwYWdlDQoJCSQoJyNUQl9sb2FkJykuc2hvdygpOy8vc2hvdyBsb2FkZXINCgkJDQoJCXZhciBiYXNlVVJMOw0KCSAgIGlmKHVybC5pbmRleE9mKCI/IikhPT0tMSl7IC8vZmYgdGhlcmUgaXMgYSBxdWVyeSBzdHJpbmcgaW52b2x2ZWQNCgkJCWJhc2VVUkwgPSB1cmwuc3Vic3RyKDAsIHVybC5pbmRleE9mKCI/IikpOw0KCSAgIH1lbHNleyANCgkgICAJCWJhc2VVUkwgPSB1cmw7DQoJICAgfQ0KCSAgIA0KCSAgIHZhciB1cmxTdHJpbmcgPSAvXC5qcGckfFwuanBlZyR8XC5wbmckfFwuZ2lmJHxcLmJtcCQvOw0KCSAgIHZhciB1cmxUeXBlID0gYmFzZVVSTC50b0xvd2VyQ2FzZSgpLm1hdGNoKHVybFN0cmluZyk7DQoNCgkJaWYodXJsVHlwZSA9PSAnLmpwZycgfHwgdXJsVHlwZSA9PSAnLmpwZWcnIHx8IHVybFR5cGUgPT0gJy5wbmcnIHx8IHVybFR5cGUgPT0gJy5naWYnIHx8IHVybFR5cGUgPT0gJy5ibXAnKXsvL2NvZGUgdG8gc2hvdyBpbWFnZXMNCgkJCQkNCgkJCVRCX1ByZXZDYXB0aW9uID0gIiI7DQoJCQlUQl9QcmV2VVJMID0gIiI7DQoJCQlUQl9QcmV2SFRNTCA9ICIiOw0KCQkJVEJfTmV4dENhcHRpb24gPSAiIjsNCgkJCVRCX05leHRVUkwgPSAiIjsNCgkJCVRCX05leHRIVE1MID0gIiI7DQoJCQlUQl9pbWFnZUNvdW50ID0gIiI7DQoJCQlUQl9Gb3VuZFVSTCA9IGZhbHNlOw0KCQkJaWYoaW1hZ2VHcm91cCl7DQoJCQkJVEJfVGVtcEFycmF5ID0gJCgiYVtyZWw9IitpbWFnZUdyb3VwKyJdIikuZ2V0KCk7DQoJCQkJZm9yIChUQl9Db3VudGVyID0gMDsgKChUQl9Db3VudGVyIDwgVEJfVGVtcEFycmF5Lmxlbmd0aCkgJiYgKFRCX05leHRIVE1MID09PSAiIikpOyBUQl9Db3VudGVyKyspIHsNCgkJCQkJdmFyIHVybFR5cGVUZW1wID0gVEJfVGVtcEFycmF5W1RCX0NvdW50ZXJdLmhyZWYudG9Mb3dlckNhc2UoKS5tYXRjaCh1cmxTdHJpbmcpOw0KCQkJCQkJaWYgKCEoVEJfVGVtcEFycmF5W1RCX0NvdW50ZXJdLmhyZWYgPT0gdXJsKSkgewkJCQkJCQ0KCQkJCQkJCWlmIChUQl9Gb3VuZFVSTCkgew0KCQkJCQkJCQlUQl9OZXh0Q2FwdGlvbiA9IFRCX1RlbXBBcnJheVtUQl9Db3VudGVyXS50aXRsZTsNCgkJCQkJCQkJVEJfTmV4dFVSTCA9IFRCX1RlbXBBcnJheVtUQl9Db3VudGVyXS5ocmVmOw0KCQkJCQkJCQlUQl9OZXh0SFRNTCA9ICI8c3BhbiBpZD0nVEJfbmV4dCc+Jm5ic3A7Jm5ic3A7PGEgaHJlZj0nIyc+TmV4dCAmZ3Q7PC9hPjwvc3Bhbj4iOw0KCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCVRCX1ByZXZDYXB0aW9uID0gVEJfVGVtcEFycmF5W1RCX0NvdW50ZXJdLnRpdGxlOw0KCQkJCQkJCQlUQl9QcmV2VVJMID0gVEJfVGVtcEFycmF5W1RCX0NvdW50ZXJdLmhyZWY7DQoJCQkJCQkJCVRCX1ByZXZIVE1MID0gIjxzcGFuIGlkPSdUQl9wcmV2Jz4mbmJzcDsmbmJzcDs8YSBocmVmPScjJz4mbHQ7IFByZXY8L2E+PC9zcGFuPiI7DQoJCQkJCQkJfQ0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQlUQl9Gb3VuZFVSTCA9IHRydWU7DQoJCQkJCQkJVEJfaW1hZ2VDb3VudCA9ICJJbWFnZSAiICsgKFRCX0NvdW50ZXIgKyAxKSArIiBvZiAiKyAoVEJfVGVtcEFycmF5Lmxlbmd0aCk7CQkJCQkJCQkJCQkNCgkJCQkJCX0NCgkJCQl9DQoJCQl9DQoNCgkJCWltZ1ByZWxvYWRlciA9IG5ldyBJbWFnZSgpOw0KCQkJaW1nUHJlbG9hZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCl7CQkNCgkJCWltZ1ByZWxvYWRlci5vbmxvYWQgPSBudWxsOw0KCQkJCQ0KCQkJLy8gUmVzaXppbmcgbGFyZ2UgaW1hZ2VzIC0gb3JnaW5hbCBieSBDaHJpc3RpYW4gTW9udG95YSBlZGl0ZWQgYnkgbWUuDQoJCQl2YXIgcGFnZXNpemUgPSB0Yl9nZXRQYWdlU2l6ZSgpOw0KCQkJdmFyIHggPSBwYWdlc2l6ZVswXSAtIDE1MDsNCgkJCXZhciB5ID0gcGFnZXNpemVbMV0gLSAxNTA7DQoJCQl2YXIgaW1hZ2VXaWR0aCA9IGltZ1ByZWxvYWRlci53aWR0aDsNCgkJCXZhciBpbWFnZUhlaWdodCA9IGltZ1ByZWxvYWRlci5oZWlnaHQ7DQoJCQlpZiAoaW1hZ2VXaWR0aCA+IHgpIHsNCgkJCQlpbWFnZUhlaWdodCA9IGltYWdlSGVpZ2h0ICogKHggLyBpbWFnZVdpZHRoKTsgDQoJCQkJaW1hZ2VXaWR0aCA9IHg7IA0KCQkJCWlmIChpbWFnZUhlaWdodCA+IHkpIHsgDQoJCQkJCWltYWdlV2lkdGggPSBpbWFnZVdpZHRoICogKHkgLyBpbWFnZUhlaWdodCk7IA0KCQkJCQlpbWFnZUhlaWdodCA9IHk7IA0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoaW1hZ2VIZWlnaHQgPiB5KSB7IA0KCQkJCWltYWdlV2lkdGggPSBpbWFnZVdpZHRoICogKHkgLyBpbWFnZUhlaWdodCk7IA0KCQkJCWltYWdlSGVpZ2h0ID0geTsgDQoJCQkJaWYgKGltYWdlV2lkdGggPiB4KSB7IA0KCQkJCQlpbWFnZUhlaWdodCA9IGltYWdlSGVpZ2h0ICogKHggLyBpbWFnZVdpZHRoKTsgDQoJCQkJCWltYWdlV2lkdGggPSB4Ow0KCQkJCX0NCgkJCX0NCgkJCS8vIEVuZCBSZXNpemluZw0KCQkJDQoJCQlUQl9XSURUSCA9IGltYWdlV2lkdGggKyAzMDsNCgkJCVRCX0hFSUdIVCA9IGltYWdlSGVpZ2h0ICsgNjA7DQoJCQkkKCIjVEJfd2luZG93IikuYXBwZW5kKCI8YSBocmVmPScnIGlkPSdUQl9JbWFnZU9mZicgdGl0bGU9J0Nsb3NlJz48aW1nIGlkPSdUQl9JbWFnZScgc3JjPSciK3VybCsiJyB3aWR0aD0nIitpbWFnZVdpZHRoKyInIGhlaWdodD0nIitpbWFnZUhlaWdodCsiJyBhbHQ9JyIrY2FwdGlvbisiJy8+PC9hPiIgKyAiPGRpdiBpZD0nVEJfY2FwdGlvbic+IitjYXB0aW9uKyI8ZGl2IGlkPSdUQl9zZWNvbmRMaW5lJz4iICsgVEJfaW1hZ2VDb3VudCArIFRCX1ByZXZIVE1MICsgVEJfTmV4dEhUTUwgKyAiPC9kaXY+PC9kaXY+PGRpdiBpZD0nVEJfY2xvc2VXaW5kb3cnPjxhIGhyZWY9JyMnIGlkPSdUQl9jbG9zZVdpbmRvd0J1dHRvbicgdGl0bGU9J0Nsb3NlJz5jbG9zZTwvYT4gb3IgRXNjIEtleTwvZGl2PiIpOyAJCQ0KCQkJDQoJCQkkKCIjVEJfY2xvc2VXaW5kb3dCdXR0b24iKS5jbGljayh0Yl9yZW1vdmUpOw0KCQkJDQoJCQlpZiAoIShUQl9QcmV2SFRNTCA9PT0gIiIpKSB7DQoJCQkJZnVuY3Rpb24gZ29QcmV2KCl7DQoJCQkJCWlmKCQoZG9jdW1lbnQpLnVuYmluZCgiY2xpY2siLGdvUHJldikpeyQoZG9jdW1lbnQpLnVuYmluZCgiY2xpY2siLGdvUHJldik7fQ0KCQkJCQkkKCIjVEJfd2luZG93IikucmVtb3ZlKCk7DQoJCQkJCSQoImJvZHkiKS5hcHBlbmQoIjxkaXYgaWQ9J1RCX3dpbmRvdyc+PC9kaXY+Iik7DQoJCQkJCXRiX3Nob3coVEJfUHJldkNhcHRpb24sIFRCX1ByZXZVUkwsIGltYWdlR3JvdXApOw0KCQkJCQlyZXR1cm4gZmFsc2U7CQ0KCQkJCX0NCgkJCQkkKCIjVEJfcHJldiIpLmNsaWNrKGdvUHJldik7DQoJCQl9DQoJCQkNCgkJCWlmICghKFRCX05leHRIVE1MID09PSAiIikpIHsJCQ0KCQkJCWZ1bmN0aW9uIGdvTmV4dCgpew0KCQkJCQkkKCIjVEJfd2luZG93IikucmVtb3ZlKCk7DQoJCQkJCSQoImJvZHkiKS5hcHBlbmQoIjxkaXYgaWQ9J1RCX3dpbmRvdyc+PC9kaXY+Iik7DQoJCQkJCXRiX3Nob3coVEJfTmV4dENhcHRpb24sIFRCX05leHRVUkwsIGltYWdlR3JvdXApOwkJCQkNCgkJCQkJcmV0dXJuIGZhbHNlOwkNCgkJCQl9DQoJCQkJJCgiI1RCX25leHQiKS5jbGljayhnb05leHQpOw0KCQkJCQ0KCQkJfQ0KDQoJCQlkb2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbihlKXsgCQ0KCQkJCWlmIChlID09IG51bGwpIHsgLy8gaWUNCgkJCQkJa2V5Y29kZSA9IGV2ZW50LmtleUNvZGU7DQoJCQkJfSBlbHNlIHsgLy8gbW96aWxsYQ0KCQkJCQlrZXljb2RlID0gZS53aGljaDsNCgkJCQl9DQoJCQkJaWYoa2V5Y29kZSA9PSAyNyl7IC8vIGNsb3NlDQoJCQkJCXRiX3JlbW92ZSgpOw0KCQkJCX0gZWxzZSBpZihrZXljb2RlID09IDE5MCl7IC8vIGRpc3BsYXkgcHJldmlvdXMgaW1hZ2UNCgkJCQkJaWYoIShUQl9OZXh0SFRNTCA9PSAiIikpew0KCQkJCQkJZG9jdW1lbnQub25rZXlkb3duID0gIiI7DQoJCQkJCQlnb05leHQoKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSBpZihrZXljb2RlID09IDE4OCl7IC8vIGRpc3BsYXkgbmV4dCBpbWFnZQ0KCQkJCQlpZighKFRCX1ByZXZIVE1MID09ICIiKSl7DQoJCQkJCQlkb2N1bWVudC5vbmtleWRvd24gPSAiIjsNCgkJCQkJCWdvUHJldigpOw0KCQkJCQl9DQoJCQkJfQkNCgkJCX07DQoJCQkNCgkJCXRiX3Bvc2l0aW9uKCk7DQoJCQkkKCIjVEJfbG9hZCIpLnJlbW92ZSgpOw0KCQkJJCgiI1RCX0ltYWdlT2ZmIikuY2xpY2sodGJfcmVtb3ZlKTsNCgkJCSQoIiNUQl93aW5kb3ciKS5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pOyAvL2ZvciBzYWZhcmkgdXNpbmcgY3NzIGluc3RlYWQgb2Ygc2hvdw0KCQkJfTsNCgkJCQ0KCQkJaW1nUHJlbG9hZGVyLnNyYyA9IHVybDsNCgkJfWVsc2V7Ly9jb2RlIHRvIHNob3cgaHRtbA0KCQkJDQoJCQl2YXIgcXVlcnlTdHJpbmcgPSB1cmwucmVwbGFjZSgvXlteXD9dK1w/Py8sJycpOw0KCQkJdmFyIHBhcmFtcyA9IHRiX3BhcnNlUXVlcnkoIHF1ZXJ5U3RyaW5nICk7DQoNCgkJCVRCX1dJRFRIID0gKHBhcmFtc1snd2lkdGgnXSoxKSArIDMwIHx8IDYzMDsgLy9kZWZhdWx0cyB0byA2MzAgaWYgbm8gcGFyYW1hdGVycyB3ZXJlIGFkZGVkIHRvIFVSTA0KCQkJVEJfSEVJR0hUID0gKHBhcmFtc1snaGVpZ2h0J10qMSkgKyA0MCB8fCA0NDA7IC8vZGVmYXVsdHMgdG8gNDQwIGlmIG5vIHBhcmFtYXRlcnMgd2VyZSBhZGRlZCB0byBVUkwNCgkJCWFqYXhDb250ZW50VyA9IFRCX1dJRFRIIC0gMzA7DQoJCQlhamF4Q29udGVudEggPSBUQl9IRUlHSFQgLSA0NTsNCgkJCQ0KCQkJaWYodXJsLmluZGV4T2YoJ1RCX2lmcmFtZScpICE9IC0xKXsvLyBlaXRoZXIgaWZyYW1lIG9yIGFqYXggd2luZG93CQkNCgkJCQkJdXJsTm9RdWVyeSA9IHVybC5zcGxpdCgnVEJfJyk7DQoJCQkJCSQoIiNUQl9pZnJhbWVDb250ZW50IikucmVtb3ZlKCk7DQoJCQkJCWlmKHBhcmFtc1snbW9kYWwnXSAhPSAidHJ1ZSIpey8vaWZyYW1lIG5vIG1vZGFsDQoJCQkJCQkkKCIjVEJfd2luZG93IikuYXBwZW5kKCI8ZGl2IGlkPSdUQl90aXRsZSc+PGRpdiBpZD0nVEJfYWpheFdpbmRvd1RpdGxlJz4iK2NhcHRpb24rIjwvZGl2PjxkaXYgaWQ9J1RCX2Nsb3NlQWpheFdpbmRvdyc+PGEgaHJlZj0nIycgaWQ9J1RCX2Nsb3NlV2luZG93QnV0dG9uJyB0aXRsZT0nQ2xvc2UnPmNsb3NlPC9hPiBvciBFc2MgS2V5PC9kaXY+PC9kaXY+PGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgaHNwYWNlPScwJyBzcmM9JyIrdXJsTm9RdWVyeVswXSsiJyBpZD0nVEJfaWZyYW1lQ29udGVudCcgbmFtZT0nVEJfaWZyYW1lQ29udGVudCIrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjEwMDApKyInIG9ubG9hZD0ndGJfc2hvd0lmcmFtZSgpJyBzdHlsZT0nd2lkdGg6IisoYWpheENvbnRlbnRXICsgMjkpKyJweDtoZWlnaHQ6IisoYWpheENvbnRlbnRIICsgMTcpKyJweDsnID4gPC9pZnJhbWU+Iik7DQoJCQkJCX1lbHNley8vaWZyYW1lIG1vZGFsDQoJCQkJCSQoIiNUQl9vdmVybGF5IikudW5iaW5kKCk7DQoJCQkJCQkkKCIjVEJfd2luZG93IikuYXBwZW5kKCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyBoc3BhY2U9JzAnIHNyYz0nIit1cmxOb1F1ZXJ5WzBdKyInIGlkPSdUQl9pZnJhbWVDb250ZW50JyBuYW1lPSdUQl9pZnJhbWVDb250ZW50IitNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwMCkrIicgb25sb2FkPSd0Yl9zaG93SWZyYW1lKCknIHN0eWxlPSd3aWR0aDoiKyhhamF4Q29udGVudFcgKyAyOSkrInB4O2hlaWdodDoiKyhhamF4Q29udGVudEggKyAxNykrInB4Oyc+IDwvaWZyYW1lPiIpOw0KCQkJCQl9DQoJCQl9ZWxzZXsvLyBub3QgYW4gaWZyYW1lLCBhamF4DQoJCQkJCWlmKCQoIiNUQl93aW5kb3ciKS5jc3MoImRpc3BsYXkiKSAhPSAiYmxvY2siKXsNCgkJCQkJCWlmKHBhcmFtc1snbW9kYWwnXSAhPSAidHJ1ZSIpey8vYWpheCBubyBtb2RhbA0KCQkJCQkJJCgiI1RCX3dpbmRvdyIpLmFwcGVuZCgiPGRpdiBpZD0nVEJfdGl0bGUnPjxkaXYgaWQ9J1RCX2FqYXhXaW5kb3dUaXRsZSc+IitjYXB0aW9uKyI8L2Rpdj48ZGl2IGlkPSdUQl9jbG9zZUFqYXhXaW5kb3cnPjxhIGhyZWY9JyMnIGlkPSdUQl9jbG9zZVdpbmRvd0J1dHRvbic+Y2xvc2U8L2E+IG9yIEVzYyBLZXk8L2Rpdj48L2Rpdj48ZGl2IGlkPSdUQl9hamF4Q29udGVudCcgc3R5bGU9J3dpZHRoOiIrYWpheENvbnRlbnRXKyJweDtoZWlnaHQ6IithamF4Q29udGVudEgrInB4Jz48L2Rpdj4iKTsNCgkJCQkJCX1lbHNley8vYWpheCBtb2RhbA0KCQkJCQkJJCgiI1RCX292ZXJsYXkiKS51bmJpbmQoKTsNCgkJCQkJCSQoIiNUQl93aW5kb3ciKS5hcHBlbmQoIjxkaXYgaWQ9J1RCX2FqYXhDb250ZW50JyBjbGFzcz0nVEJfbW9kYWwnIHN0eWxlPSd3aWR0aDoiK2FqYXhDb250ZW50VysicHg7aGVpZ2h0OiIrYWpheENvbnRlbnRIKyJweDsnPjwvZGl2PiIpOwkNCgkJCQkJCX0NCgkJCQkJfWVsc2V7Ly90aGlzIG1lYW5zIHRoZSB3aW5kb3cgaXMgYWxyZWFkeSB1cCwgd2UgYXJlIGp1c3QgbG9hZGluZyBuZXcgY29udGVudCB2aWEgYWpheA0KCQkJCQkJJCgiI1RCX2FqYXhDb250ZW50IilbMF0uc3R5bGUud2lkdGggPSBhamF4Q29udGVudFcgKyJweCI7DQoJCQkJCQkkKCIjVEJfYWpheENvbnRlbnQiKVswXS5zdHlsZS5oZWlnaHQgPSBhamF4Q29udGVudEggKyJweCI7DQoJCQkJCQkkKCIjVEJfYWpheENvbnRlbnQiKVswXS5zY3JvbGxUb3AgPSAwOw0KCQkJCQkJJCgiI1RCX2FqYXhXaW5kb3dUaXRsZSIpLmh0bWwoY2FwdGlvbik7DQoJCQkJCX0NCgkJCX0NCgkJCQkJDQoJCQkkKCIjVEJfY2xvc2VXaW5kb3dCdXR0b24iKS5jbGljayh0Yl9yZW1vdmUpOw0KCQkJDQoJCQkJaWYodXJsLmluZGV4T2YoJ1RCX2lubGluZScpICE9IC0xKXsJDQoJCQkJCSQoIiNUQl9hamF4Q29udGVudCIpLmFwcGVuZCgkKCcjJyArIHBhcmFtc1snaW5saW5lSWQnXSkuY2hpbGRyZW4oKSk7DQoJCQkJCSQoIiNUQl93aW5kb3ciKS51bmxvYWQoZnVuY3Rpb24gKCkgew0KCQkJCQkJJCgnIycgKyBwYXJhbXNbJ2lubGluZUlkJ10pLmFwcGVuZCggJCgiI1RCX2FqYXhDb250ZW50IikuY2hpbGRyZW4oKSApOyAvLyBtb3ZlIGVsZW1lbnRzIGJhY2sgd2hlbiB5b3UncmUgZmluaXNoZWQNCgkJCQkJfSk7DQoJCQkJCXRiX3Bvc2l0aW9uKCk7DQoJCQkJCSQoIiNUQl9sb2FkIikucmVtb3ZlKCk7DQoJCQkJCSQoIiNUQl93aW5kb3ciKS5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pOyANCgkJCQl9ZWxzZSBpZih1cmwuaW5kZXhPZignVEJfaWZyYW1lJykgIT0gLTEpew0KCQkJCQl0Yl9wb3NpdGlvbigpOw0KCQkJCQlpZigkLmJyb3dzZXIuc2FmYXJpKXsvL3NhZmFyaSBuZWVkcyBoZWxwIGJlY2F1c2UgaXQgd2lsbCBub3QgZmlyZSBpZnJhbWUgb25sb2FkDQoJCQkJCQkkKCIjVEJfbG9hZCIpLnJlbW92ZSgpOw0KCQkJCQkJJCgiI1RCX3dpbmRvdyIpLmNzcyh7ZGlzcGxheToiYmxvY2sifSk7DQoJCQkJCX0NCgkJCQl9ZWxzZXsNCgkJCQkJJCgiI1RCX2FqYXhDb250ZW50IikubG9hZCh1cmwgKz0gIiZyYW5kb209IiArIChuZXcgRGF0ZSgpLmdldFRpbWUoKSksZnVuY3Rpb24oKXsvL3RvIGRvIGEgcG9zdCBjaGFuZ2UgdGhpcyBsb2FkIG1ldGhvZA0KCQkJCQkJdGJfcG9zaXRpb24oKTsNCgkJCQkJCSQoIiNUQl9sb2FkIikucmVtb3ZlKCk7DQoJCQkJCQl0Yl9pbml0KCIjVEJfYWpheENvbnRlbnQgYS50aGlja2JveCIpOw0KCQkJCQkJJCgiI1RCX3dpbmRvdyIpLmNzcyh7ZGlzcGxheToiYmxvY2sifSk7DQoJCQkJCX0pOw0KCQkJCX0NCgkJCQ0KCQl9DQoNCgkJaWYoIXBhcmFtc1snbW9kYWwnXSl7DQoJCQlkb2N1bWVudC5vbmtleXVwID0gZnVuY3Rpb24oZSl7IAkNCgkJCQlpZiAoZSA9PSBudWxsKSB7IC8vIGllDQoJCQkJCWtleWNvZGUgPSBldmVudC5rZXlDb2RlOw0KCQkJCX0gZWxzZSB7IC8vIG1vemlsbGENCgkJCQkJa2V5Y29kZSA9IGUud2hpY2g7DQoJCQkJfQ0KCQkJCWlmKGtleWNvZGUgPT0gMjcpeyAvLyBjbG9zZQ0KCQkJCQl0Yl9yZW1vdmUoKTsNCgkJCQl9CQ0KCQkJfTsNCgkJfQ0KCQkNCgl9IGNhdGNoKGUpIHsNCgkJLy9ub3RoaW5nIGhlcmUNCgl9DQp9DQoNCi8vaGVscGVyIGZ1bmN0aW9ucyBiZWxvdw0KZnVuY3Rpb24gdGJfc2hvd0lmcmFtZSgpew0KCSQoIiNUQl9sb2FkIikucmVtb3ZlKCk7DQoJJCgiI1RCX3dpbmRvdyIpLmNzcyh7ZGlzcGxheToiYmxvY2sifSk7DQp9DQoNCmZ1bmN0aW9uIHRiX3JlbW92ZSgpIHsNCiAJJCgiI1RCX2ltYWdlT2ZmIikudW5iaW5kKCJjbGljayIpOw0KCSQoIiNUQl9jbG9zZVdpbmRvd0J1dHRvbiIpLnVuYmluZCgiY2xpY2siKTsNCgkkKCIjVEJfd2luZG93IikuZmFkZU91dCgiZmFzdCIsZnVuY3Rpb24oKXskKCcjVEJfd2luZG93LCNUQl9vdmVybGF5LCNUQl9IaWRlU2VsZWN0JykudHJpZ2dlcigidW5sb2FkIikudW5iaW5kKCkucmVtb3ZlKCk7fSk7DQoJJCgiI1RCX2xvYWQiKS5yZW1vdmUoKTsNCglpZiAodHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGUubWF4SGVpZ2h0ID09ICJ1bmRlZmluZWQiKSB7Ly9pZiBJRSA2DQoJCSQoImJvZHkiLCJodG1sIikuY3NzKHtoZWlnaHQ6ICJhdXRvIiwgd2lkdGg6ICJhdXRvIn0pOw0KCQkkKCJodG1sIikuY3NzKCJvdmVyZmxvdyIsIiIpOw0KCX0NCglkb2N1bWVudC5vbmtleWRvd24gPSAiIjsNCglkb2N1bWVudC5vbmtleXVwID0gIiI7DQoJcmV0dXJuIGZhbHNlOw0KfQ0KDQpmdW5jdGlvbiB0Yl9wb3NpdGlvbigpIHsNCiQoIiNUQl93aW5kb3ciKS5jc3Moe21hcmdpbkxlZnQ6ICctJyArIHBhcnNlSW50KChUQl9XSURUSCAvIDIpLDEwKSArICdweCcsIHdpZHRoOiBUQl9XSURUSCArICdweCd9KTsNCglpZiAoICEoalF1ZXJ5LmJyb3dzZXIubXNpZSAmJiBqUXVlcnkuYnJvd3Nlci52ZXJzaW9uIDwgNykpIHsgLy8gdGFrZSBhd2F5IElFNg0KCQkkKCIjVEJfd2luZG93IikuY3NzKHttYXJnaW5Ub3A6ICctJyArIHBhcnNlSW50KChUQl9IRUlHSFQgLyAyKSwxMCkgKyAncHgnfSk7DQoJfQ0KfQ0KDQpmdW5jdGlvbiB0Yl9wYXJzZVF1ZXJ5ICggcXVlcnkgKSB7DQogICB2YXIgUGFyYW1zID0ge307DQogICBpZiAoICEgcXVlcnkgKSB7cmV0dXJuIFBhcmFtczt9Ly8gcmV0dXJuIGVtcHR5IG9iamVjdA0KICAgdmFyIFBhaXJzID0gcXVlcnkuc3BsaXQoL1s7Jl0vKTsNCiAgIGZvciAoIHZhciBpID0gMDsgaSA8IFBhaXJzLmxlbmd0aDsgaSsrICkgew0KICAgICAgdmFyIEtleVZhbCA9IFBhaXJzW2ldLnNwbGl0KCc9Jyk7DQogICAgICBpZiAoICEgS2V5VmFsIHx8IEtleVZhbC5sZW5ndGggIT0gMiApIHtjb250aW51ZTt9DQogICAgICB2YXIga2V5ID0gdW5lc2NhcGUoIEtleVZhbFswXSApOw0KICAgICAgdmFyIHZhbCA9IHVuZXNjYXBlKCBLZXlWYWxbMV0gKTsNCiAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC9cKy9nLCAnICcpOw0KICAgICAgUGFyYW1zW2tleV0gPSB2YWw7DQogICB9DQogICByZXR1cm4gUGFyYW1zOw0KfQ0KDQpmdW5jdGlvbiB0Yl9nZXRQYWdlU2l6ZSgpew0KCXZhciBkZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsNCgl2YXIgdyA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IHNlbGYuaW5uZXJXaWR0aCB8fCAoZGUmJmRlLmNsaWVudFdpZHRoKSB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoOw0KCXZhciBoID0gd2luZG93LmlubmVySGVpZ2h0IHx8IHNlbGYuaW5uZXJIZWlnaHQgfHwgKGRlJiZkZS5jbGllbnRIZWlnaHQpIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0Ow0KCWFycmF5UGFnZVNpemUgPSBbdyxoXTsNCglyZXR1cm4gYXJyYXlQYWdlU2l6ZTsNCn0NCg0KZnVuY3Rpb24gdGJfZGV0ZWN0TWFjWEZGKCkgew0KICB2YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOw0KICBpZiAodXNlckFnZW50LmluZGV4T2YoJ21hYycpICE9IC0xICYmIHVzZXJBZ2VudC5pbmRleE9mKCdmaXJlZm94JykhPS0xKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCn0NCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/thumbs/</filename>
	  <isdir>1</isdir>
	</file>
</module>
