<?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>CompanyDirectory</name>
	<version>1.19.2</version>
  <mincmsversion>1.11.6</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21wYW5pZXMuICBVc3VhbGx5IHRoaXMgaXMgdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gYW5kIGEgbG9nbywgYnV0IGl0IGlzIGZsZXhpYmlsZSBlbm91Z2ggdG8gYWxsb3cgZm9yIGV4dGVuZGFibGUgZmllbGRzLCBhbmQgZGlzY3JpbWluYXRpbmcgcHVibGljIGZyb20gcHJpdmF0ZSBkYXRhLjwvcD4KPHA+VGhpcyBtb2R1bGUgY291bGQgYmUgdXNlZCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLiBJbmNsdWRpbmcgYSByZWdpb25hbCB0b3VyaXNtIHNpdGUsIGEgc3VwcGxpZXJzIGxpc3QsIG9yIGEgY29udGFjdCBsaXN0LiAgSXQgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgcmUtdXNlZCBmb3IgbWFueSBkaWZmZXJlbnQgcHVycG9zZXMuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+VGhlIGVhc2llc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyBieSBwbGFjaW5nIHRoZSA8Y29kZT57Q29tcGFueURpcmVjdG9yeX08L2NvZGU+IHRhZyBpbnRvIGVpdGhlciB5b3VyIHBhZ2UgdGVtcGxhdGUgb3IgcGFnZSBjb250ZW50LiAgWW91IHdvdWxkIHRoZW4gc3RhcnQgZWRpdGluZyByZWNvcmRzIGluIHRoZSAmcXVvdDtDb21wYW55IERpcmVjdG9yeSZxdW90OyBhZG1pbiBpbnRlcmZhY2UuICBFeHBsb3JlIHRoZSB2YXJpb3VzIHBhcmFtZXRlcnMgKGRlc2NyaWJlZCBiZWxvdykgZm9yIHdheXMgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPkN1c3RvbSBGaWVsZHMKICAgIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCB0aGUgYmFzaWMgZGF0YWJhc2UgbW9kZWwgYnkgYWRpbmcgY3VzdG9tIGZpZWxkcyB0byB0aGUgc3RydWN0dXJlLiAgVGhlcmUgYXJlIG51bWVyb3VzIGRpZmZlcmVudCB0eXBlcyBvZiBjdXN0b20gZmllbGRzLCBhbmQgc29tZSBtb2R1bGVzIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgdHlwZXMuICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hcmsgY3VzdG9tZiBpZWxkcyBhcyBlZGl0YWJsZSBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlIG9ubHksIG9yIGFzIG5vbiBwdWJsaWMgKG5vdCBhdmFpbGFibGUgZm9yIGZyb250ZW5kIGRpc3BsYXkpLjwvcD4KICA8L2xpPgogIDxsaT5HZW9sb2NhdGlvbmcKICAgIDxwPklmIGEgc3VpdGFibGUgbW9kdWxlIDxlbT4oQ0dHb29nbGVNYXBzIG9yIENHR29vZ2xlTWFwczIpIGlzIGluc3RhbGxlZCwgdGhlbiB0aGlzIG1vZHVsZSBpcyBjYXBhYmxlIG9mIGNvbnZlcnRpbmcgbWFueSBhZGRyZXNzIGZvcm1hdHMgdG8gbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBzbyB0aGF0IG1hcHMgY2FuIGJlIGJ1aWx0IGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgZGF0YS48L3A+CiAgPGxpPgogIDxsaT5LTUwgSW1wb3J0CiAgICA8cD5UaGlzIG1vZHVsZSBjYW4gaW1wb3J0IGJhc2ljIGNvbXBhbnkgZGF0YSBmcm9tIEtNTCBmb3JtYXQuPC9wPgogIDwvbGk+CiAgPGxpPkZsZXhpYmxlIEFTQ0lJIEltcG9ydCBhbmQgRXhwb3J0CiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBpbXBvcnQgY29tcGFuaWVzLCBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGNhdGVnb3JpZXMgZnJvbSBhIGZsZXhpYmxlIChzZW1pLXVzZXItZGVmaW5hYmxlKSBBU0NJSSBmb3JtYXQuPC9wPgogIDwvbGk+CiAgPGxpPkZsZXhpYmxlIENhdGVnb3JpemF0aW9uCiAgICA8cD5UaGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGNhbiBjcmVhdGUgYSBoaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmUuICBFYWNoIENvbXBhbnkgcmVjb3JkIGNhbiBiZSBhc3NvY2lhdGVkIHRvIGEgcGxhY2UgaW5zaWRlIHRoYXQgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlIHRvIGFsbG93IGZvciBmaWx0ZXJpbmcsIG9yIGRyaWxsIGRvd24gc2VhcmNlcy48L3A+CiAgICA8cD5BZGRpdGlvbmFsbHksIHRoZSBzaXRlIGFkbWluaXN0cmF0b3IgY2FuIGNyZWF0ZSBhIGxpc3Qgb2YgJnF1b3Q7Y2F0ZWdvcmllcyZxdW90Oy4gIEVhY2ggY29tcGFueSBsb2NhdGlvbiBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRpcGxlIGNhdGVnb3JpZXMuICBUaGlzIGlzIHVzZWZ1bCBmb3Igc2VhcmNoaW5nIGFuZCBmaWx0ZXJpbmcgZnVuY3Rpb25hbGl0eS4gIEZvciBkaXNwbGF5IHB1cnBvc2VzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGNhdGVnb3J5ICh0aHJlZSB1c2VyIGRlZmluZWQgYXJlYXMpLiAgQW5kIHdoZW4gZWRpdGluZyBhIGNvbXBhbnkgcmVjb3JkLCBjYXRlZ29yeSBpbmZvcm1hdGlvbiBjYW4gYmUgb3ZlcnJpZGVuIGZvciBlYWNoIHJlY29yZC48L3A+CiAgPC9saT4KICA8bGk+RmxleGlibGUgVVJMIG1lY2hhbmlzbXM8L2xpPgogICAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGZvciB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIHRvIHNwZWNpZnkgYSB1bmlxdWUgU0VPIGZyaWVuZGx5IFVSTCBmb3IgdGhlIGRldGFpbCB2aWV3IG9mIGVhY2ggY29tcGFueSByZWNvcmQuICBUaGlzIFVSTCB3b3JrcyBpbiBhZGRpdGlvbiB0byB0aGUgb3RoZXIgU0VPIGZyaWVuZGx5IG1lY2hhbmlzbXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgYSBjb21wYW55IGRldGFpbCByZWNvcmQuPC9wPgogICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBXaGVuIHVzaW5nIFNFTyBmcmllbmRseSBVUkxTIGl0IGlzIGltcG9ydGFudCB0byB1c2UgY2Fub25pY2FsIFVSTFMuPC9wPgogIDxsaT5Gcm9udGVuZCBFZGl0aW5nCiAgICA8cD5UaGUgQ29tcGFueURpcmVjdG9yeSBtb2R1bGUgaXMgY2FwYWJsZSBvZiBhbGxvd2luZyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIDxlbT4oc2VlIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSk8L2VtPiB0byBhZGQgYW5kIG1hbmFnZSAoZXZlbiBpbXBvcnQgZnJvbSBDU1YpIENvbXBhbnkgcmVjb3Jkcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBidWlsZGluZyBhIGRpcmVjdG9yeSBzaXRlLCBmb3IgZXhhbXBsZSBmb3IgYSByZWdpb25hbCB0b3VyaXNtIGJvYXJkIHdoZXJlIGluZGl2aWR1YWwgc3Vic2NyaWJlcnMgbWF5IG1hbmFnZSB0aGUgdmlzaWJsZSBwdWJsaWMgaW5mb3JtYXRpb24gZm9yIG9uZSBvciBtb3JlIGNvbXBhbmllcy48L3A+CiAgPC9saT4KICA8bGk+TnVtZXJvdXMgZGlzcGxheSBtZWNoYW5pc21zPC9saT4KICA8bGk+QWR2YW5jZWQgU2VhcmNoIGFuZCBGaWx0ZXJpbmcgQ2FwYWJpbGl0aWVzPC9saT4KICA8bGk+RmxleGlibGUgVGVtcGxhdGluZyBDYXBhYmlsaXRpZXM8L2xpPgo8L3VsPgoKCjxoMz5TbWFydHkgVGFnczwvaDM+CjxwPlRoaXMgbW9kdWxlIHNoYXJlcyBudW1lcm91cyBzbWFydHkgcGx1Z2lucyB0byBtYWtlIHRlbXBsYXRlIGRlc2lnbiBhbmQgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgc2ltcGxlcjo8L3A+Cjx1bD4KPGxpPjxzdHJvbmc+e2NkX2hpZXJicmVhZGNydW1iIGhpZXI9aW50IFtvcHRpb25zXX08L3N0cm9uZz4gLSBDcmVhdGUgYSBzZXJpZXMgb2YgbGlua3MgcmVwcmVzZW50aW5nIHRoZSBicmVhZGNydW1iIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQuICBFYWNoIGxpbmsgd2lsbCBnZW5lcmF0ZSBhIHN1bW1hcnkgdmlldyBvZiBjb21wYW5pZXMgaW4gdGhhdCBoaWVyYXJjaHkuPGJyLz5PcHRpb25zOgogIDx1bD4KICAgIDxsaT5oaWVyPWludGVnZXIgLSA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+IC0gVGhlIENvbXBhbnlEaXJlY3RvcnkgaGllcmFyY2h5IGlkIHRvIGJ1aWxkIGEgYnJlYWRjcnVtYiB0by48L2xpPgogICAgPGxpPnBhZ2U9c3RyaW5nIC0gQSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSBmb3IgdGhlIHN1bW1hcnkgdmlldy4gIElmIG5vbmUgaXMgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBwYWdlIGlzIHVzZWQuPC9saT4KICAgIDxsaT5kZWxpbT1zdHJpbmcgLSBUaGUgZGVsaW1pdGVyIGJldHdlZW4gZWFjaCBzdHJpbmcuICBCeSBkZWZhdWx0IGEgcGlwZSBjaGFyYWN0ZXIgc3Vycm91bmRlZCBieSBzcGFjZXMgaXMgdXNlZC48L2xpPgogICAgPGxpPmNsYXNzPXN0cmluZyAtIEFuIG9wdGlvbmFsIGNsYXNzIChvciBzZXJpZXMgb2YgY2xhc3NlcykgdG8gYXNzaWduIHRvIGVhY2ggbGluay48L2xpPgogICAgPGxpPnJhdz1ib29sZWFuIC0gSWYgZW5hYmxlZCwgYW4gYXJyYXkgb2YgaGllcmFyY2h5IGRhdGEgcmVwcmVzZW50aW5nIHRoZSBwYXRoIHRvIHRoZSBoaWVyYXJjaHkgc3BlY2lmaWVkIHdpbGwgYmUgcmV0dXJuZWQuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGFsbG93IGJ1aWxkaW5nIHlvdXIgb3duIGxpbmtzLiAgSWYgdGhpcyBpcyBzcGVjaWZpZWQsIHRoZSBkZWxpbSBhbmQgY2xhc3MgYXJndW1lbnRzIGFyZSBpZ25vcmVkIGFzIGxpbmtzIHdpbGwgbm90IGJlIHJldHVybmVkLjwvbGk+CiAgICA8bGk+YXNzaWduPXN0cmluZyAtIFRoZSBuYW1lIG9mIGEgc21hcnR5IHZhcmlhYmxlIHRvIGFzc2lnbiB0aGUgb3V0cHV0IHRvLjwvbGk+CiAgPC91bD4KICA8cD5BZGRpdGlvbmFsbHksIHRoaXMgdGFnIGFjY2VwdHMgYW55IHBhcmFtZXRlcnMgdGhhdCB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcgd2lsbCBhY2NlcHQgKGkuZTogc29ydGluZyBvcHRpb25zLCBwYWdlIGxpbWl0KSBhbmQgdGhleSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdXJsIGJ1aWxkaW5nIHByb2Nlc3MuPC9wPgogIDxwPkV4YW1wbGUgPGVtPihzdWl0YWJsZSBmb3IgYSBkZXRhaWwgdGVtcGxhdGUpPC9lbT46IHtjZF9oaWVyYnJlYWRjcnVtYiBoaWVyPSRlbnRyeS0+aGllcl9pZCBoaWVyX2NoaWxkcmVuPTEgcGFnZWxpbWl0PTUwfTwvY29kZT48L3A+CjwvbGk+CjxsaT48c3Ryb25nPntjZF9zZWxjYXRlZ29yeSBbb3B0aW9uc119PC9zdHJvbmc+IC0gQ3JlYXRlIGEgZm9ybSBkcm9wZG93biBvciBtdWx0aS1zZWxlY3QgYXJlYSBmb3IgQ29tcGFueURpcmVjdG9yeSBjYXRlZ29yaWVzLjxici8+T3B0aW9uczoKICA8dWw+CiAgICAgPGxpPnByZWZpeD1zdHJpbmcgLSBQcm92aWRlIGEgcHJlZml4IHRvIHRoZSBzZWxlY3QgZWxlbWVudCBuYW1lLjwvbGk+CiAgICAgPGxpPm5hbWU9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IG5hbWUuPC9saT4KICAgICA8bGk+aWQ9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IGlkLjwvbGk+CiAgICAgPGxpPnNlbGVjdGVkIC0gQW4gYXJyYXksIG9yIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IGlkcyB0byBpbmRpY2F0ZSB3aGljaCBpdGVtcyBzaG91bGQgYmUgc2VsZWN0ZWQuPC9saT4KICAgICA8bGk+Y2xhc3M9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IGNsYXNzLjwvbGk+CiAgICAgPGxpPm11bHRpcGxlPWFueXRoaW5nIC0gSWYgc2V0LCBpbmRpY2F0ZXMgdG8gYWxsb3cgc2VsZWN0aW5nIG11bHRpcGxlIHZhbHVlcyBpbnN0ZWFkIG9mIGEgc2luZ2xlIHZhbHVlLjwvbGk+CiAgICAgPGxpPnNpemU9aW50ZWdlciAtIElmIG11bHRpcGxlIGlzIHNldCBpbmRpY2F0ZXMgdGhlIHNpemUgb2YgdGhlIG11bHRpLXNlbGVjdCBhcmVhLjwvbGk+CiAgICAgPGxpPmFzc2lnbj1zdHJpbmcgLSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZTogPGNvZGU+e2NkX3NlbGNhdGVnb3J5IHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nY2RfY2F0ZWdvcnknIHNlbGVjdGVkPSRjZF9jYXRlZ29yeX08L2NvZGU+PC9wPgo8L2xpPgo8bGk+PHN0cm9uZz57Y2Rfc2VsaGllcmFyY2h5IFtvcHRpb25zXX08L3N0cm9uZz4gLSBQcm92aWRlIGEgZHJvcGRvd24gY29udHJvbCBmb3Igc2VsZWN0aW5nIGEgQ29tcGFueURpcmVjdG9yeSBIaWVyYXJjaHkuPGJyLz5PcHRpb25zOgogIDx1bD4KICAgIDxsaT5wcmVmaXg9c3RyaW5nIC0gQSBwcmVmaXggZm9yIHRoZSBzZWxlY3QgZWxlbWVudHMgbmFtZS48L2xpPgogICAgPGxpPmlkPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBpZC48L2xpPgogICAgPGxpPm5hbWU9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IG5hbWUuPC9saT4KICAgIDxsaT5zZWxlY3RlZD1pbnRlZ2VyIC0gVGhlIHNlbGVjdGVkIGhpZXJhcmNoeSBpZDwvbGk+CiAgICA8bGk+bm9uZT1pbnRlZ2VyIC0gV2V0aGVyICZxdW90O25vbmUmcXVvdDsgaXMgYSB2YWxpZCBvcHRpb24gaW4gdGhlIHNlbGVjdCBlbGVtZW50LjwvbGk+CiAgICA8bGk+YXNzaWduPXN0cmluZyAtIEFzc2lnbiB0aGUgZ2VuZXJhdGVkIFhIVE1MIG91dHB1dCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLjwvbGk+CiAgPC91bD4KICA8cD5FeGFtcGxlOiA8Y29kZT57Y2Rfc2VsaGllcmFyY2h5IHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nY2RfaGllcmFyY2h5JyBzZWxlY3RlZD0kbXlfaGllcn08L2NvZGU+PC9wPgo8L2xpPgo8bGk+PHN0cm9uZz57Y2RfZ2V0Y29tcGFueSBpZD1pbnRlZ2VyIFthc3NpZ249c3RyaW5nXX08L3N0cm9uZz4gLSBSZXR1cm4gYW4gb2JqZWN0IGZpbGxlZCB3aXRoIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGNvbXBhbnk8YnIvPk9wdGlvbnM6CiAgPHVsPgogIDxsaT48c3Ryb25nPmlkPWludGVnZXI8L3N0cm9uZz4gLSBUaGUgY29tcGFueSBpZCAocmVxdWlyZWQpLjwvbGk+CiAgPGxpPmFzc2lnbj1zdHJpbmcgLSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZToge2NkX2dldGNvbXBhbnkgaWQ9JGNvbXBhbnlfaWQgYXNzaWduPSd0bXAnfSZsdDtwcmUmZ3Q7eyR0bXB8QHByaW50X3J9Jmx0Oy9wcmUmZ3Q7PC9wPgo8L2xpPgo8L3VsPgoKPGgzPkZpZWxkczwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gZHluYW1pY2FsbHkgZXh0ZW5kIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHN5c3RlbSBieSBhZGRpbmcgZmllbGRzIHRvIGFzc29jaWF0ZSB3aXRoIGVhY2ggZGF0YSByZWNvcmQuICBUaGVzZSBmaWVsZHMgY2FuIGJlIGFkZHJlc3NlZCBpbiB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLiAgVGhlIGZpZWxkcyBjYW4gYmUgZWRpdGVkIGluIHRoZSB2YXJpb3VzIGZvcm1zIGFuZCBzZWFyY2hlZC48L3A+CiAgPHA+VmFyaW91cyBtb2R1bGVzIGNhbiBwcm92aWRlIGRpZmZlcmVudCBmaWVsZCB0eXBlcyB0byB0aGUgQ29tcGFueURpcmVjdG9yeSBtb2R1bGUuICBpLmU6IFdoZW4gdGhlIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIGFuICZxdW90O0FjdGl2aXR5JnF1b3Q7IGZpZWxkIHR5cGUgaXMgYXZhaWxhYmxlLiAgV2hlbiBlaXRoZXIgQ0dHb29nbGVNYXBzIG9yIENHR29vZ2xlTWFwczIgYXJlIGluc3RhbGxlZCwgYW4gJnF1b3Q7aWNvbiZxdW90OyBmaWVsZCB0eXBlIGlzIGF2YWlsYWJsZS4mcXVvdDsKICA8cD5JbiB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHRlbXBsYXRlcyB0aGUgZmllbGRzIHRoYXQgYXJlIHZhbGlkIGZvciBhIGNvbXBhbnkgYXJlIGF2YWlsYWJsZSB2aWEgc21hcnR5IGluIHRoZSB7JGVudHJ5LT5maWVsZHN9IGFzc29jaWF0aXZlIGFycmF5LiAgVGhlIGtleXMgdG8gdGhpcyBhcnJheSBhcmUgdGhlIGZpZWxkIG5hbWVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgb2JqZWN0cyB0aGF0IHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpZWxkLCBpbmNsdWRpbmcgaXRzIHZhbHVlKHMpLjwvcD4KICA8cD5UbyBzZWUgd2hhdCBmaWVsZHMgYXJlIGF2YWlsYWJsZSwgYW5kIHRoZSB2YWx1ZXMgb2YgdGhlIHZhcmlvdXMgb2JqZWN0cyB5b3UgY2FuIGFkZCB0aGlzIHRvIHlvdXIgc21hcnR5IHRlbXBsYXRlOjwvcD4KICA8cHJlPjxjb2RlPiZsdDtwcmUmZ3Q7eyRlbnRyeS0+ZmllbGRzfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvY29kZT48L3ByZT4KICA8cD5UbyBzZWUgdGhlIGRhdGEgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIGZpZWxkIHlvdSBjYW4gYWRkIHRoaXMgPGVtPih0ZW1wb3JhcmlseSk8L2VtPiB0byB5b3VyIHNtYXJ0eSB0ZW1wbGF0ZTo8L3A+CiAgPHByZT48Y29kZT4mbHQ7cHJlJmd0O3skZW50cnktPmZpZWxkczxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+LkZJRUxETkFNRTwvc3Bhbj58QHByaW50X3J9Jmx0Oy9wcmUmZ3Q7PC9jb2RlPjwvcHJlPgogIDxwPlRvIG91dHB1dCB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgZmllbGQgeW91IGNhbiBhZGR0aGlzIHRvIHlvdXIgc21hcnR5IHRlbXBsYXRlOjwvcD4KICA8cHJlPjxjb2RlPiZsdDtwcmUmZ3Q7eyRlbnRyeS0+ZmllbGRzPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4uRklFTEROQU1FPC9zcGFuPi0+dmFsdWUmbHQ7L3ByZSZndDs8L2NvZGU+PC9wcmU+Cgo8aDM+QWxidW1zPC9oMz4KICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBhbGxvd3MgYXNzb2NpYXRpbmcgbXVsdGlwbGUgaW1hZ2VzIHdpdGggYSBzaW5nbGUgY29tcGFueSBlbnRyeS4gIFRoZXkgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIGFzIGEgc2ltcGxlIGFycmF5IG9mIGZpbGVuYW1lcy4gIFlvdSBtYXkgYnVpbGQgeW91ciBvd24gZGlzcGxheSBtZWNoYW5pc20gZnJvbSB0aGlzLjwvcD4KICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBkb2VzIG5vdCBwcm92aWRlIGFueSBpbWFnZSBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy4gIEltYWdlIHByb2Nlc3Npbmcgc3VjaCBhcyB3YXRlcm1hcmtpbmcgb3IgdGh1bWJuYWlsaW5nIGNhbiBiZSBkb25lIGF0IHRoZSB0aWVtIG9mIGRpc3BsYXkgd2l0aCBhbiBhZGRvbiBtb2R1bGUgbGlrZSBDR1NtYXJ0SW1hZ2UuPC9wPgo8aDQ+U2FtcGxlIEdhbGxlcnk8L2g0PgogIDxwPlRoZSBjb2RlIGJlbG93IGlsbHVzdHJhdGVzIGhvdyBhIHNpbXBsZSBhbGJ1bSBjYW4gYmUgY3JlYXRlZCBmcm9tIHdpdGhpbiB0aGUgQ29tcGFueURpcmVjdG9yeSBzdW1tYXJ5IG9yIGRldGFpbCB0ZW1wbGF0ZS4gIFRoaXMgZXhhbXBsZSB1c2VzIENHU21hcnRJbWFnZSB0byBzaXplIHRoZSB0aHVtYm5haWxzLCBhbmQgdGFyZ2V0IGltYWdlcywgYW5kIGdpdmVzIGVhY2ggbGluayBhIGNsYXNzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBqYXZhc2NyaXB0IHBvcHVwIHdpbmRvdy48L3A+CjxwcmU+PGNvZGU+CntpZiBpc3NldCg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiRlbnRyeS0+ZmllbGRzLkFsYnVtPC9zcGFuPil9CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPntKUXVlcnlUb29scyBhY3Rpb249cmVxdWlyZSBsaWI9ZmFuY3lib3h9PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPnsqIHNlZSB0aGUgaGVscCBmb3IgdGhlIEpRdWVyeVRvb2xzIG1vZHVsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiAqfTwvc3Bhbj4KICAmbHQ7aDMmZ3Q7R2FsbGVyeSZsdDsvaDMmZ3Q7CiAgJmx0O2RpdiBjbGFzcz0iZ2FsbGVyeSImZ3Q7CiAge2ZvcmVhY2ggZnJvbT08c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiRlbnRyeS0+ZmllbGRzLkFsYnVtLT52YWx1ZTwvc3Bhbj4gaXRlbT0naW1nJ30KJmx0O2EgY2xhc3M9ImZhbmN5Ym94IiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMTBweDsiIGhyZWY9IjxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57Q0dTbWFydEltYWdlIHNyYzE9JGVudHJ5LT5maWVsZHMuQWxidW0tPnBpY3R1cmVfcGF0aCBzcmMyPSRpbWcgd2lkdGg9NTAwIGhlaWdodD01MDAgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiIvJmd0OzxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57Q0dTbWFydEltYWdlIHNyYzE9JGVudHJ5LT5maWVsZHMuQWxidW0tPnBpY3R1cmVfcGF0aCBzcmMyPSRpbWcgd2lkdGg9MTAwIGhlaWdodD0xMDB9PC9zcGFuPiZsdDsvYSZndDsKICB7L2ZvcmVhY2h9CiAgJmx0O2RpdiBzdHlsZT0iY2xlYXI6IGJvdGg7IiZndDsmbHQ7L2RpdiZndDsKICAmbHQ7L2RpdiZndDsKey9pZn0KPC9jb2RlPjwvcHJlPgo8aDM+U2VjdXJpdHk8L2gzPgo8cD5JbiBvcmRlciB0byBtYW5hZ2UgdGhlIGNvbXBhbmllcyBpbnNpZGUgdGhpcyBtb2R1bGUsIHRoZSBhZG1pbmlzdHJhdG9yIG11c3QgaGF2ZSB0aGUgJzxlbT5Nb2RpZnkgQ29tcGFueSBEaXJlY3Rvcnk8L2VtPicgcGVybWlzc2lvbi48L3A+CjxwPkluIG9yZGVyIHRvIGVkaXQgdGhlIGJ1aWx0IGluIHRlbXBsYXRlcyB0aGF0IGNvbnRyb2wgdGhlIGxheW91dCBvZiB0aGUgY29tcGFueWRpcmVjdG9yeSBpbmZvcm1hdGlvbiwgdGhlIGFkbWluaXN0cmF0b3IgbmVlZHMgdGhlICc8ZW0+TW9kaWZ5IFRlbXBsYXRlczwvZW0+JyBwZXJtaXNzaW9uLjwvcD4KPHA+VG8gYWRqdXN0IHRoZSB2YXJpb3VzIHNldHRpbmdzLCB0aGUgJzxlbT5Nb2RpZnkgU2l0ZSBQcmVmZXJlbmNlczwvZW0+JyBwZXJtaXNzaW9uIGlzIHJlcXVpcmVkLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMiwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjM1LjE8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAxLjU8L2xpPjxsaT5KUXVlcnlUb29scyA9Jmd0OyAxLjI8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IiAtIERldGVybWluZSB0aGUgcHJpbWFyeSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOgo8dWw+CiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPgogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gRGlzcGxheSBjb21wYW5pZXMgaW4gYSBzdW1tYXJ5IG1vZGUuPC9saT4KICA8bGk+ZGV0YWlscyAtLSBEaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPgogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LiA8ZW0gc3R5bGU9ImNvbG9yOiByZWQ7Ij4oZGVwcmVjYXRlZCk8L2VtPjwvbGk+CiAgPGxpPmZlX2VkaXQyIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+CiAgPGxpPmZlX2VkaXRfYWxidW0gLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBhbGJ1bSBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuCiAgIDxwPlRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHRyaWdnZXJlZCBmcm9tIHRoZSBmZV9lZGl0MiBhY3Rpb24gb3IgdGhlIGZyb250ZW5kIGxpc3QgYWN0aW9uLiAgIEl0IGFjY2VwdHMgdGhlIGNvbXBhbnlpZCxjZF9mZGlkLGFuZCBvcHRpb25hbGx5IG90aGVyIHBhcmFtZXRlcnMgdG8gcGVyZm9ybSBudW1lcm91cyBhamF4IGFjdGlvbnMuICAgU2VlIHRoZSBzYW1wbGUgY29udGVudCBmb3IgdGhlIGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KICA8L2xpPgo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPgogIDxsaT5zZWFyY2ggIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBmb3Igc3BlY2lmaWMgY29tcGFuaWVzLjwvbGk+CiAgPGxpPmJyb3dzZWhpZXIgLS0gRGlzcGxheSBhIGxpc3Qgb2YgaGllcmFyY2hpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUgYW5kIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4KICAgCjwvdWw+CjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY29tcGFueWlkPSIiIC0gUmVxdWlyZWQgZm9yIHRoZSBmcm9udGVuZCBlZGl0aW5nIGFuZCBkZXRhaWwgbW9kZXMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgd2hpY2ggY29tcGFueSByZWNvcmQgdG8gZWRpdCBvciB2aWV3LjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGV0YWlscGFnZT0iIiAtIFNwZWNpZnkgYSBwYWdlIGFsaWFzIChieSBuYW1lKSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgYSBkZXRhaWwgcmVjb3JkLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnlsaXN0dGVtcGxhdGU9IiIgLSBTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGNhdGVnb3J5IGxpc3Qgdmlldy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZXJsaXN0dGVtcGxhdGU9IiIgLSBTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGhpZXJhcmNoeSBsaXN0IHZpZXcuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzZWFyY2hmb3JtdGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWx0ZW1wbGF0ZT0iIiAtIFNwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZnJvbnRlbmRmb3JtdGVtcGxhdGU9IiIgLSBTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGZyb250IGVuZCBjb21wYW55IGVkaXQgZm9ybS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZyb250ZW5kYWxidW10ZW1wbGF0ZT0iIiAtIFNwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFuIGFsYnVtIG9mIGltYWdlcyBhc3NvY2lhdGVkIHdpdGggYSBjb21wYW55LjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZnJvbnRlbmRsaXN0dGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5mcm9udGVuZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgZnJvbnRlbmQgbGlzdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHJlbmRlcmluZyB0aGUgb3V0cHV0PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdW1tYXJ5dGVtcGxhdGU9IiIgLSBTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIHN1bW1hcnkgdmlldy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaG93YWxsPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQsIHRoZW4gZXZlbiBjYXRlZ29yaWVzIHdpdGggbm8gbWF0Y2hpbmcgY29tcGFuaWVzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBvdXRwdXQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNvcnRieT0iY29tcGFueV9uYW1lIiAtIEFwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBjb21wYW5pZXMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CjxsaT5pZCAtLSBUaGUgaW50ZXJuYWwgY29tcGFueSBpZDwvbGk+CiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4KICA8bGk+cGhvbmU8L2xpPgogIDxsaT5mYXg8L2xpPgogIDxsaT5lbWFpbDwvbGk+CiAgPGxpPndlYnNpdGUgLS0gVGhlIHdlYnNpdGUgdXJsPC9saT4KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KICA8bGk+c3RhdHVzPC9saT4KICA8bGk+cmFuZG9tIC0tIFNvcnQgdGhlIGl0ZW1zIHJhbmRvbWx5LjwvbGk+CiAgPGxpPmY6ZmllbGQgbmFtZSAtLSBTb3J0IGJ5IHB1YmxpYyBjdXN0b20gZmllbGRzLiBUaGUgb3V0cHV0IHdpbGwgYmUgc29ydGVkIGJ5IHRoZSBuYW1lZCBjdXN0b20gZmllbGQuPGJyLz4KICA8bGk+bW9zdGNoZWNraW5zIC0tIDxlbT4oT25seSB3aGVuIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQpPC9lbT4gU29ydCBvdXRwdXQgYnkgdGhlIGNvbXBhbmllcyAobG9jYXRpb25zKSB0aGF0IGhhdmUgdGhlIG1vc3QgY2hlY2tpbnMuPC9saT4KICA8bGk+bW9zdGZhdm9yaXRlIC0tIDxlbT4oT25seSB3aGVuIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQpPC9lbT4gU29ydCBvdXRwdXQgYnkgdGhlIGNvbXBhbmllcyAobG9jYXRpb25zKSB0aGF0IGhhdmUgdGhlIG1vc3QgZmF2b3JpdGVzLjwvbGk+CiAgPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gWW91IG1heSBuZWVkIHRvIHVzZSBxdW90ZXMgaWYgdGhlIGZpZWxkIG5hbWUgaGFzIHNwYWNlcy48YnIvPgogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoZSBmaWVsZCBzcGVjaWZpZWQgbXVzdCBiZSBtYXJrZWQgYXMgcHVibGljLgogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFdoZW4gdXNpbmcgY3VzdG9tIGZpZWxkIHNvcnRpbmcsIFlvdSBtYXkgYWxzbyBzcGVjaWZ5IGEgZmxhZyBhZnRlciB0aGUgZmllbGQgbmFtZSB0byBpbmRpY2F0ZSB0aGF0IGludGVnZXIgc29ydGluZyBzaG91bGQgYmUgcGVyZm9ybWVkLiAgaS5lOiA8Y29kZT5zb3J0Ynk9ZjpjdXN0b21fb3JkZXJpbmc6aTwvY29kZT48YnIvPjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0b3JkZXI9ImFzYyIgLSBTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNlYXJjaGFkZHJlc3M9IjAiIC0gV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIGlmIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIHRoZSBhZGRyZXNzIGZpZWxkIHdpbGwgYWxzbyBiZSBzZWFyY2hlZCBmb3IgdGhlIG1hdGNoaW5nIHN0cmluZzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcG9zdGFsY2hhcnM9IjAiIC0gV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgb3B0aW9uIGFsbG93cyBsaW1pdGluZyB0aGUgZWZmZWN0aXZlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9uZiB0aGUgcG9zdGFsIGNvZGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZXI9IiIgLSBBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+LCA8ZW0+c2VhcmNoPC9lbT4sIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPixhbmQgPGVtPmhpZXJsaXN0PC9lbT4gYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBoaWVyYXJjaHkgbmFtZSBvZiBjb21wYW5pZXMgdG8gZGlzcGxheS4gIEluIHRoZSBkZWZhdWx0LCBhbmQgc2VhcmNoIGFjdGlvbnMsIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhlbiBhbnkgaGllcmFyY2h5IGNob3NlbiBpbiB0aGUgc2VhcmNoIGZvcm0gd2lsbCBiZSBpZ25vcmVkLiAgSG93ZXZlciBpbiB0aGUgaGllcmxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtdXN0IGNvbnRhaW4gdGhlIHVuaXF1ZSBuYW1lIG9mIGEgaGllcmFyY2h5IHBvc2l0aW9uLCBhbmQgd2lsbCBzcGVjaWZ5IHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IGRpc3BsYXkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWVyX2NoaWxkcmVuPSIiIC0gQXBwbGljYWJsZSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgYm9vbGVhbiAoMCBvciAxKSB2YWx1ZSBpbmRpY2F0aW5nIHdldGhlciBjaGlsZCBoaWVyYXJjaGllcyBzaG91bGQgYmUgaW5jbHVkZWQgd2hlbiBnZW5lcmF0aW5nIGEgc3VtbWFyeSB2aWV3IGZvciBhIHNwZWNpZmljIGhpZXJhcmNoeTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaWRsaXN0PSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgY29tcGFueSBpZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZC4gIE5vdGUsIG9ubHkgcHVibGlzaGVkIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCB1bmxlc3Mgc3BlY2lmaWVkIGRpZmZlcmVudGx5IGJ5IGFub3RoZXIgcGFyYW1ldGVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBuYW1lPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90OzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGF0PSIiIC0gU3BlY2lmeSB0aGUgY2VudGVyIGxhdGl0dWRlIGNvb3JkaW5hdGUgZm9yIGEgcmFkaXVzIHNlYXJjaCwgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvbmcgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbG9uZz0iIiAtIFNwZWNpZnkgdGhlIGNlbnRlciBsb25naXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbGF0IGFuZCByYWRpdXMgcGFyYW1ldGVycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJhZGl1cz0iIiAtIFNwZWNpZnkgdGhlIHJhZGl1cyAoaW4gbWlsZXMpIGZvciBhIHJhZGl1cyBzZWFyY2guICBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbGF0IGFuZCBsb25nIHBhcmFtZXRlcnMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeWlkPSIiIC0gV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBvbiBhIHNpbmdsZSBjYXRlZ29yeSBieSBzcGVjaWZ5aW5nIGl0cyBpbnRlZ2VyIGlkLiAgVGhpcyBwYXJhbWV0ZXIgY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnksY2F0ZWdvcnkyLCBvciBvdGhlciBjYXRlZ29yeSBmaWx0ZXJpbmcgcGFyYW1ldGVycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGl2aXR5aWQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCBhbmQgb25seSB3aGVuIHRoZSBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkLCBjb25maWd1cmVkLCBhbmQgcG9wdWxhdGVkIHdpdGggZGF0YS4gIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRob3NlIHdobyBoYXZlIGNoZWNraW5zIHdpdGggdGhlIHNwZWNpZmllZCAoaW50ZWdlcikgYWN0aXZpdHkgaWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpdml0eWNoaWxkcmVuPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgYW5kIG9ubHkgd2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIHBvcHVsYXRlZCB3aXRoIGRhdGEuICBUaGlzIHBhcmFtZXRlciB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBhY3Rpdml0eWlkIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aG9zZSB3aG8gaGF2ZSBjaGVja2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgKGludGVnZXIpIGFjdGl2aXR5IGlkIGFuZCB0aGVpciBjaGlsZCBhY3Rpdml0aWVzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnk9IiIgLSBXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpLiAgV2hlbiB1c2VkIGluIHRoZSA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIHRvIGZpbHRlciB0aGUgcmVzdWx0cyBieS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5Mj0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PSdyZWdpb25fbm9ydGgscmVnaW9uX3NvdXRoJyBjYXRlZ29yeTI9J2NhcnMsdHJ1Y2tzJ30gd291bGQgcmV0dXJuIG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgd2VyZSBpbiB0aGUgZWl0aGVyIG9mIHRoZSByZWdpb24gbm9ydGggb3IgcmVnaW9uIHNvdXRoIGNhdGVnb3JpZXMgQU5EIEFMU08gaW4gZWl0aGVyIG9mIHRoZSBjYXJzIG9yIHRydWNrcyBjYXRlZ29yaWVzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeTM9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnkyPC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgeWV0IGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuIFNlZSB0aGUgaGVscCBmb3IgdGhlIGNhdGVnb3J5MiBwYXJhbWV0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb248L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlubGluZT0iMCIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcGFnZWxpbWl0PSIiIC0gV2hlbiB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBhY3Rpb24sIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlc3VsdHBhZ2U9IiIgLSBBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+c2VhcmNoPC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB3aGF0IHBhZ2Ugc2hvdWxkIGJlIHVzZWQgZm9yIGRpc3BsYXlpbmcgbWF0Y2hpbmcgcmVzdWx0cy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcHJldHR5PSIiIC0gQXBwbGljYWJsZSB0byBhbGwgdmlld3MgKHRob3VnaCBzdGlsbCBpbiBlYXJseSBkZXZlbG9wbWVudCkgdGhpcyBwYXJhbWV0ZXIgd2lsbCB0dXJuIG9mZiBwcmV0dHkgdXJsIGdlbmVyYXRpb248L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBUZWQgS3VscCAmbHQ7dGVkQHRlbjM5LmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjE5LjI8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPjEuMSAtIFNlcHRlbWJlciwgMjAwNyA8ZW0+KHJjYW1wYmVsbEBza2lubnlmaXNobWVkaWEuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBwcmV0dHkgdXJsczwvbGk+CiAgICAgIDxsaT5GaWxsZWQgb3V0IHRoZSBoZWxwPC9saT4KICAgICAgPGxpPkFkZGVkIGEgY2F0ZWdvcnkgbGlzdCBtb2RlPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIHB1YmxpYyBhbmQgYWRtaW4gb25seSBmaWVsZHMgaW4gY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIGRpZmZlcmVudCBzb3J0aW5nIGNhcGFiaWxpdGllcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgICA8bGk+Q2hhbmdlZCBNaW5pbXVtIENNUyBWZXJzaW9uIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB0aGUgMS4xIHNlcmllczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS4xIC0gTm92ZW1iZXIsIDIwMDcgPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggdGhlIGRldGFpbCBsaW5rcyBpbiBzdW1tYXJ5IG1vZGUgd2hlbiBwcmV0dHkgdXJscyB3ZXJlIGRpc2FibGVkLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS4yIC0gTm92ZW1iZXIsIDIwMDcgPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Tm93IHVzZSBjbXNfbW92ZV91cGxvYWRlZF9maWxlIGluc3RlYWQgb2YgbW92ZV91cGxvYWRlZF9maWxlPC9saT4KICAgICAgPGxpPlJlcXVpcmUgQ01TIDEuMi4xIG9yIGxhdGVyPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjMgLSBGZWJydWFyeSwgMjAwOCA8ZW0+KHJjYW1wYmVsbEBza2lubnlmaXNobWVkaWEuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gdG8gc3VtbWFyeSB2aWV3PC9saT4KICAgICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIHByZXR0eSB1cmxzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgc29ydCBvcmRlciBwcmVmZXJlbmNlczwvbGk+CiAgICAgIDxsaT4oX1NqRykgLSBJbXBsZW1lbnRzIHRzd1wncyBwYXRjaCBmb3IgY3VzdG9tIGZpZWxkcyBpbiB0aGUgc3VtbWFyeSB0ZW1wbGF0ZTwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS40IC0gSnVuZSwgMjAwOCA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCB0byB0aGUgdGFiczwvbGk+CiAgICAgIDxsaT5NaW5vciBmaXggdG8gdGhlIHN0YXR1cyBmaWVsZCB3aGVuIGVkaXRpbmcgYSBjb21wYW55LjwvbGk+CiAgICAgIDxsaT5NaW5vciBmaXggdG8gdGhlIGNoZWNrYm94IGN1c3RvbSBmaWVsZHMgd2hlbiBlZGl0aW5nIGEgY29tcGFueS48L2xpPgogICAgICA8bGk+Rml4IHRvIENTViBFeHBvcnQuPC9saT4KICAgICAgPGxpPkZpeCB0byB0aGUgcHJlZmVyZW5jZXMgdGFiLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS41IC0gSnVuZSwgMjAwOCA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCBhIG1pbm9yIGlzc3VlIHdpdGggcHJlZmVyZW5jZXM8L2xpPgogICAgICA8bGk+Rml4IHNvbWUgcXVlcmllcyB0aGF0IHdlcmUgbm90IHVzaW5nIGNtc19kYl9wcmVmaXg8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNiAtIEp1bHksIDIwMDggPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGQgdGhlIHNob3dhbGwgcGFyYW1ldGVyIHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvbGk+CiAgICAgIDxsaT5TcGxpdCBvdXQgYSBjb3VwbGUgb2YgbW9yZSBmaWxlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNyAtIEZlYnJ1YXJ5LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4ZWQgZGVsZXRlIGNvbXBhbnkgc3R1ZmYuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjggLSBBcHJpbCwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZCBNb3JlIEluZGV4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4yIC0gTWF5LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkZWQgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIGNhcGFiaWxpdHkgdG8gbG9va3VwIGxhdHRpdHVkZSBhbmQgbG9uZ2l0dWRlIGlmIENHR29vZ2xlTWFwIGlzIGluc3RhbGxlZC48L2xpPgogICAgICA8bGk+QWRkZWQgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIHdpdGggemlwY29kZSBsb29rdXAgKHJlcXVpcmVzIHRoZSBwb3N0Y29kZSBtb2R1bGUpLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBleHBvcnQgdG8gY3N2IGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgICAgPGxpPlJld3JpdGUgaW1wb3J0IGZyb20gY3N2IGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4zIC0gSnVseSwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIHByZXR0eSB1cmxzPC9saT4KICAgICAgPGxpPkZpbGxlZCBvdXQgdGhlIGhlbHA8L2xpPgogICAgICA8bGk+QWRkZWQgYSBjYXRlZ29yeSBsaXN0IG1vZGU8L2xpPgogICAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgZnJvbnRlbmQgZWRpdGluZyBvZiBjb21wYW5pZXM8L2xpPgogICAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgcHVibGljIGFuZCBhZG1pbiBvbmx5IGZpZWxkcyBpbiBjb21wYW5pZXM8L2xpPgogICAgICA8bGk+QWRkZWQgZGlmZmVyZW50IHNvcnRpbmcgY2FwYWJpbGl0aWVzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DaGFuZ2VkIE1pbmltdW0gQ01TIFZlcnNpb24gYW5kIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSAxLjEgc2VyaWVzPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4zLjIgLSBBdWd1c3QsIDIwMDkgPGVtPihjYWxndXkxMDAwQGhvdG1haWwuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggbWlub3IgZXJyb3IgaW4gdGhlIGluc3RhbGxlci48L2xpPgogICAgICA8bGk+SW4gc3VtbWFyeSBtb2RlLCBlbnN1cmUgdGhhdCBhIGNvbXBhbnkgaXMgb25seSBvdXRwdXQgb25jZS48L2xpPgogICAgPC91bD4gIAogIDwvbGk+CiAgPGxpPjEuMy4zIC0gQXVndXN0LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4IGVycm9ycyB3aXRoIGVudGl0aWVzIGluIGZyb250ZW5kIHd5c2l3eWdzLjwvbGk+CiAgICAgIDxsaT5GaXggZXJyb3IgaW4gYm91bmRpbmcgYm94IGNhbGN1bGF0aW9uLjwvbGk+CiAgICAgIDxsaT5OdW1lcm91cyBvdGhlciBzbWFsbCBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+ICAKICA8L2xpPgogIDxsaT4xLjMuNCAtIFNlcHRlbWJlciwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCBzb21lIG1vcmUgc21hbGwgaXNzdWVzIHdpdGggZnJvbnRlbmQgc3VibWl0PC9saT4KICAgIDwvdWw+ICAKICA8L2xpPgogIDxsaT4xLjQgLSBPY3QsIDIwMDkgPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgPGxpPkFkZGVkIEtNTCBJbXBvcnQ8L2xpPgogICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS40LjEgLSBPY3RvYmVyLCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIGltcG9ydCBmaWVsZHMgZnJvbSBLTUwuPC9saT4KICAgICAgPGxpPkFkZHMgZmllbGQgdHlwZSB0byB0aGUgb3V0cHV0IGZvciBjdXN0b20gZmllbGRzLjwvbGk+CiAgICA8L3VsPiAgCiAgPC9saT4KICA8bGk+MS41IC0gSmFudWFyeSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSBmb3IgZnJvbnRlbmQgdXNlcnMgdG8gYWRkL2VkaXQvZGVsZXRlIHRoZWlyIG93biBjb21wYW55IGxpc3RpbmdzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS4xIC0gSmFudWFyeSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBicm93c2UgYnkgaGllcmFyY2h5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS4yIC0gSmFudWFyeSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+UmV3cml0ZSBvZiBDU1YgaW1wb3J0IHN0dWZmLjwvbGk+CiAgICAgIDxsaT5BZGRzIGZyb250ZW5kIGltcG9ydGluZyBmcm9tIGNzdi48L2xpPgogICAgICA8bGk+QWRkcyBmcm9udGVuZCBkZWxldGUgYWN0aW9uLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS4zIC0gTWFyY2gsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkltcHJvdmVtZW50cyB0byBzZWFyY2guPC9saT4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuNCAtIE1heSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBzb3J0aW5nIGJ5IHB1YmxpYyBjdXN0b20gZmllbGRzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS41IC0gTWF5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjcgLSBNYXksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuOCAtIE1heSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBjYXRlZ29yeSBpbmZvcm1hdGlvbiBmb3IgZWFjaCBtYXRjaGluZyBwcm9kdWN0IGluIHN1bW1hcnkgdmlldy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYgLSBKdW5lLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5GaXhlcyBhIG1pbm9yIGlzc3VlIHdpdGggdGhlIHNlYXJjaCBmdW5jdGlvbiAoY29weS9wYXN0ZSBlcnJvcik8L2xpPgogICAgICA8bGk+QWRkcyBjb21wYW55IG5hbWUgaW5mb3JtYXRpb24gdG8gdGhlIGRldGFpbCB1cmwuPC9saT4KICAgICAgPGxpPkFkZHMgJnF1b3Q7YmFjayZxdW90OyBsaW5rIHRvIHRoZSBzZXR0aW5ncyBhbmQgdGVtcGxhdGUgcGFnZXMuPC9saT4KICAgICAgPGxpPkFkZHMgZnVuY3Rpb25hbGl0eSB0byBhbGxvdyBkdXBsaWNhdGluZyBhIGNvbXBhbnkgcmVjb3JkLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi4xIC0gSnVuZSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBleHRyYSBmaWVsZHMgdG8gY2F0ZWdvcmllcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuMiAtIEp1bHksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuMyAtIEp1bHksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuNCAtIEp1bHksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPlNvcnQgZmllbGQgZGVmaW5pdGlvbnMgYnkgbmFtZS48L2xpPgogICAgICA8bGk+QWRkcyBjYXRlZ29yeSBzcGVjaWZpYyBleHRyYTEsZXh0cmEyLGV4dHJhMyBmaWVsZHMgYXNzb2NpYXRlZCB3aXRoIENvbXBhbmllcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuNSAtIEF1Z3VzdCwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBpZCBvcHRpb24gdG8gc29ydGJ5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi43IC0gQXVndXN0LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIGludGVnZXIgc29ydGluZyBieSB0aGUgc29ydGJ5PWY6ZmllbGRfbmFtZSBzdHVmZi48L2xpPgogICAgICA8bGk+TWlub3IgaW1wcm92ZW1lbnQgdG8gdGhlIHNlYXJjaCBzdHVmZiB3cnQgY2F0ZWdvcmllcy48L2xpPgogICAgICA8bGk+U29ydCB0aGUgY2F0ZWdvcmllcyBvdXRwdXQgdG8gdGhlIHNlYXJjaCBmb3JtLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi44IC0gU2VwdGVtYmVyLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5GaXhlcyB0byBzZWFyY2ggYWN0aW9uLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNi45IC0gU2VwdGVtYmVyLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5DU1YgSW1wb3J0IEltcHJvdmVtZW50cy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjcgLSBTZXB0ZW1iZXIsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgaGllcmFyY2h5IGNhcGFiaWxpdGllcyB0byBzZWFyY2ggYWN0aW9uLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNy4yIC0gU2VwdGVtYmVyLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRvIGEgTElLRSBzZWFyY2ggb24gdGhlIGFkZHJlc3MgZmllbGQgd2hlbiBkb2luZyBhIHBvc3Rjb2RlIHNlYXJjaC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjcuMyAtIEphbnVhcnksIDIwMTEKICAgPHVsPgogICAgIDxsaT5NYW55IG1pbm9yIGJ1ZyBmaXhlcywgaW5jbHVkaW5nIGNoYW5nZXMgdG8gd29yayB3aXRoIG5ldyBDR0dNPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjggLSBKYW51YXJ5LCAyMDExCiAgIDx1bD4KICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgY29tcGFueSBVUkxTIChhbGEgQ01TTVMgMS45KSB3aGVuIGNvbXBhbmllcyBhcmUgdXBkYXRlZCBmcm9tIHRoZSBhZG1pbiBpbnRlcmZhY2UuPC9saT4KICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgZG9pbmcgYSAzMDEgcmVkaXJlY3QgdG8gdGhlIG5ldyBVUkwgaWYgYSBjb21wYW55IGlzIGFjY2Vzc2VkIHZpYSB0aGUgb2xkIFVSTCBhbmQgYSBuZXcgVVJMIGV4aXN0cy48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBwYXNzIHRoZSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGluIHRvIHRoZSBzZWFyY2guPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjguMSAtIE1hcmNoLCAyMDExCiAgIDx1bD4KICAgPGxpPkJ1ZyBmaXhlcy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuOC4yIC0gTWFyY2gsIDIwMTEKICAgPHVsPgogICA8bGk+QWRkcyAkZW50cnktPmZpZWxkcyB0byB0aGUgZGV0YWlsIGFuZCBzdW1tYXJ5IHZpZXdzLjwvbGk+CiAgIDxsaT5PZmZpY2lhbGx5IGRlcHJlY2F0ZSB0aGUgY3VzdG9tZmllbGRzYnluYW1lIHN0dWZmLjwvbGk+CiAgIDxsaT5BZGQgJGVudHJ5LT5jYW5vbmljYWwgdG8gdGhlIGRldGFpbCB2aWV3LjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS45IC0gQXVndXN0LCAyMDExCiAgIDx1bD4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gdXBkYXRlIGNvbXBhbnkgcmVjb3JkcyB2aWEgY3N2IGZpbGVzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMCAtIFNlcHRlbWJlciwgMjAxMQogICA8dWw+CiAgIDxsaT5BZGRzIG5ldyBmaWx0ZXIsIHF1ZXJ5LCBhbmQgcGFnaW5hdGlvbiBjbGFzc2VzLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHByZWxvYWQgZmllbGQgYW5kIGNhdGVnb3J5IGluZm9ybWF0aW9uIGZvciBzZWxlY3RlZCBjb21wYW5pZXMuPC9saT4KICAgPGxpPlJld3JpdGUgc3VtbWFyeSB2aWV3IHRvIHVzZSBuZXcgY2xhc3Nlcy48L2xpPgogICA8bGk+UmVtb3ZlcyB0aGUgY2F0ZWdvcnkgZm9ybSBmcm9tIHRoZSBzdW1tYXJ5IHZpZXcuLi4gbWFueSBiZXR0ZXIgd2F5cyB0byBoYW5kbGUgdGhpcy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMTAuMSAtIFNlcHRlbWJlciwgMjAxMQogICA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEwLjEwIC0gTm92ZW1iZXIsIDIwMTEKICAgPHVsPgogICA8bGk+Rml4ZXMgYW4gaXNzdWUgd2l0aCBpbWFnZSB1cGxvYWQgZmllbGRzIHdoZW4gZWRpdGluZyBjb21wYW5pZXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEwLjExIC0gTm92ZW1iZXIsIDIwMTEKICAgPHVsPgogICAgIDxsaT5DYXRlZ29yeSBuYW1lcyBtdXN0IG5vdyBvbmx5IGhhdmUgdmFsaWQgY2hhcnMuPC9saT4KICAgICA8bGk+TWlub3IgZml4ZXMuPC9saT4gCiAgIDwvdWw+CiAgPGxpPiAgCiAgPGxpPjEuMTEgLSBEZWNlbWJlciwgMjAxMQogICA8dWw+CiAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgIDxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIGRldGFpbCB2aWV3IChzb21lIHRlbXBsYXRlcyBtYXkgbmVlZCBjaGFuZ2luZykuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEyIC0gRGVjZW1iZXIsIDIwMTEKICAgPHVsPgogICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgICA8bGk+QWRkcyBmaWx0ZXJpbmcgdG8gdGhlIGNvbXBhbnkgbGlzdCBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlLjwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGNhdGVnb3J5MiBhbmQgY2F0ZWdvcnkzIHBhcmFtZXRlcnMuPC9saT4KICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGEgY2F0ZWdvcnkgT1IgYSBoaWVyIHBhcmFtZXRlciB0byB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICAgPC91bD4KICA8L2xpPgogPGxpPjEuMTMgLSBKYW51YXJ5LCAyMDEyCiAgIDx1bD4KICAgICA8bGk+QWRkcyBmaWxlIGZpZWxkIHR5cGUuPC9saT4KICAgICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIGxvZ28gYW5kIHBpY3R1cmUgZmlsZXMgYmVpbmcgZGVsZXRlZC48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjEzLjEgLSBNYXJjaCwgMjAxMgogICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTMuMiAtIEFwcmlsLCAyMDEyCiAgIDx1bD4KICAgIDxsaT5Nb3JlIGF1ZGl0IGxpbmVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQgLSBNYXksIDIwMTIKICAgPHVsPgogICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSBjZF9jb21wYW55IGNsYXNzLjwvbGk+CiAgIDxsaT5BZGQgY29tcGFueSAoYWRtaW4pIGlzIG5vdyBnZXR0aW5nIG1vcmUgb29waWZpZWQuPC9saT4KICAgPGxpPkVkaXQgY29tcGFueSAoYWRtaW4pIGlzIG5vdyBnZXR0aW5nIG1vcmUgb29waWZpZWQuPC9saT4KICAgPGxpPk1pbm9yIGZpeCB0byB0aGUgaGllcmFyY2h5IHRhYi48L2xpPgogICA8bGk+TmV3IEV2ZW50cyAoT25BZGRDb21wYW55LCBPbkVkaXRDb21wYW55LCBPbkRlbGV0ZUNvbXBhbnkpIC0tIGluIHByb2dyZXNzPC9saT4KICAgPGxpPkV4dHJhIGZpZWxkcyBhcmUgbm93IGFkZGVkIHRvIHRoZSBzZWFyY2ggdGVybXMgKHRleHQgYW5kIHRleHRhcmVhIGZpZWxkcyBvbmx5KS4gLS0gaW4gcHJvZ3Jlc3M8L2xpPgogICA8bGk+U2VhcmNoIHJlLWluZGV4IG5vdyBvb3BpZmllZCBhbmQgZmFzdGVyLjwvbGk+CiAgIDxsaT5Gcm9udGVuZCBlZGl0aW5nIGNvbXBsZXRlbHkgcmV3cml0dGVuIAogICAgICA8dWw+CiAgICAgICAgPGxpPlVzZSB0aGUgbmV3IGFjdGlvbiAodGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBhZG1pbiBwYW5lbCk8L2xpPgogICAgICAgIDxsaT5TdXBwb3J0cyBlZGl0aW5nIGN1c3RvbSBmaWVsZHMgKHB1YmxpYyBvbmx5KS48L2xpPgogICAgICAgIDxsaT5TdXBwb3J0cyBmaWxlIHVwbG9hZHMsIGltYWdlIHByb2Nlc3NpbmcgYWxhIENHRXh0ZW5zaW9uczwvbGk+CiAgICAgICAgPGxpPkVuaGFuY2VkIHNlY3VyaXR5LjwvbGk+CiAgICAgICAgPGxpPkRlZmF1bHQgdGVtcGxhdGUgaW5jbHVkZXMgbG9va3VwIGZ1bmN0aW9uYWxpdHkgKGlmIENHR00gaXMgYXZhaWxhYmxlKTwvbGk+CiAgICAgICAgPGxpPlNlYXJjaGFibGUuPC9saT4KICAgICAgPC91bD4KICAgICAgPC9saT4KICAgPGxpPkZpeGVzIHRvIEtNTCBJbXBvcnQuPC9saT4KICAgPGxpPkFkZHMgdGhlIGhpZXJhcmNoeSBpbmZvIHRvIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuPC9saT4KICAgPGxpPkFkZHMgcmFkaXVzIHNlYXJjaGluZyBjYXBhYmlsaXRpZXMsIGFuZCBzb3J0aW5nIGJ5IGRpc3RhbmNlLjwvbGk+CiAgIDxsaT5BZGRzIHJlZ2V4cCBzZWFyY2ggZm9yIG5hbWUgcGFyYW1ldGVyLjwvbGk+CiAgIDxsaT5GaXhlcyBhIGJ1ZyBpbiBDU1YgaW1wb3J0IHdydCBsYXQvbG9uZyB2YWx1ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNC4xIC0gSnVuZSwgMjAxMgogICA8dWw+CiAgIDxsaT5FZGl0IENvbXBhbnkgKGFkbWluIHNpZGUpIEZpeGVzLjwvbGk+CiAgIDxsaT5Db21wYXkgQ29tcGFueSBGaXhlcy48L2xpPgogICA8bGk+TW92ZWQgaGVscCBvdXQgb2YgbGFuZyBmaWxlLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQuMiAtIEp1bmUsIDIwMTIKICAgPHVsPgogICA8bGk+Rml4ZXMgaXNzdWUgd2l0aCBkcmFmdCBzdGF0dXMuPC9saT4KICAgPGxpPmZpeGVzIGlzc3VlIHdpdGggY2RfY29tcGFueV9xdWVyeSwgc3RhdHVzLCBhbmQgZnJvbnRlbmQgdmlld3MuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNC4zIC0gSnVseSwgMjAxMgogICA8dWw+CiAgIDxsaT5DYXRlZ29yaWVzIGFyZSBub3cgb3V0cHV0IGluIGFzY2VuZGluZyBvcmRlciBieSBuYW1lLCBldmVyeXdoZXJlLjwvbGk+CiAgIDxsaT5Nb3JlIGZ1bmN0aW9ucyBpbiBjZF91dGlscy48L2xpPgogICA8bGk+TWlub3IgYnVnZml4IHRvIGFjY2VwdGluZyBodG1sIGluIHRoZSBkZXRhaWwgdmlldy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE0LjQgLSBKdWx5LCAyMDEyCiAgIDx1bD4KICAgPGxpPkJ1Z2ZpeDogU2V0IG93bmVyIGlkIHRvIC0xIGZvciBpbXBvcnRlZCBpdGVtcy48L2xpPgogICA8L3VsPgogPC9paT4KIDxsaT4xLjE1LngKICAgPHVsPgogICA8bGk+QmVnaW4gd29yayBvbiBuZXcgc2VhcmNoIGFjdGlvbi48L2xpPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDxsaT5BZGRzIGFiaWxpdHkgdG8gb3V0cHV0IGNvbXBhbnkgc2VhcmNoZXMgYXMgYW4gYXJyYXkuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNi54CiAgIDx1bD4KICAgPGxpPkFkZCB0aGUge2NkX2dldGNvbXBhbnl9IHRhZy48L2xpPgogICA8bGk+Rml4ZXMgYSBidW5jaCBvZiBtaW5vciBidWdzLjwvbGk+CiAgIDxsaT5Pbmx5IGNsZWFuIHZhbHVlcyBpbiBjZF9jb21wYW55IGZvciBhZG1pbiByZXF1ZXN0cy4uLiBzZWUgaG93IHRoYXQgd29ya3Mgb3V0LjwvbGk+CiAgIDxsaT5DU1YgaW1wb3J0IGltcHJvdmVtZW50cy48bGxpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE3LngKICAgPHVsPgogICA8bGk+UmF0aW9uYWxpemF0aW9uIG9mIGFkbWluIGludGVyZmFjZSB0YWJzLjwvbGk+CiAgIDxsaT5NaW5vciBvcHRpbXphdGlvbnMuPC9saT4KICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgdGhlIGFsYnVtIGZpZWxkIHR5cGUgaW5jbHVkaW5nIGZvciBmcm9udGVuZCBlZGl0aW5nLgogICAgIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGFsbG93cyBhc3NvY2lhdGluZyBtdWx0aXBsZSBpbWFnZXMgd2l0aCBhIHNpbmdsZSBjb21wYW55IGVudHJ5LiAgVGhleSBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIHN1bW1hcnkgYW5kIGRldGFpbCB0ZW1wbGF0ZXMgYXMgYSBzaW1wbGUgYXJyYXkgb2YgZmlsZW5hbWVzLiAgWW91IG1heSBidWlsZCB5b3VyIG93biBkaXNwbGF5IG1lY2hhbmlzbSBmcm9tIHRoaXMuPC9wPgogICAgIDxwPlRoZSBhbGJ1bSBmaWVsZCB0eXBlIGRvZXMgbm90IHByb3ZpZGUgYW55IGltYWdlIHByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzLiAgSW1hZ2UgcHJvY2Vzc2luZyBzdWNoIGFzIHdhdGVybWFya2luZyBvciB0aHVtYm5haWxpbmcgY2FuIGJlIGRvbmUgYXQgdGhlIHRpZW0gb2YgZGlzcGxheSB3aXRoIGFuIGFkZG9uIG1vZHVsZSBsaWtlIENHU21hcnRJbWFnZS48L3A+CiAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJbiBvcmRlciB0byBzZWUgdGhlIGFsYnVtIGZpZWxkIHR5cGVzIHlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIGEgbmV3ICZxdW90O0Zyb250ZW5kIEVkaXQgQ29tcGFueSZxdW90OyB0ZW1wbGF0ZSBmcm9tIGRlZmF1bHRzIChhZnRlciByZXN0b3JpbmcgdGhlIGRlZmF1bHQgdGVtcGxhdGUgdG8gZmFjdG9yeSBkZWZhdWx0cyBpbiB0aGUgZGVmYXVsdCB0ZW1wbGF0ZXMgdGFiLjwvcD4KICAgICA8cD5BZGRpdGlvbmFsbHkgeW91IHdpbGwgbmVlZCB0byBjcmVhdGUgbmV3IGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlcy48L3A+CiAgIDwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTgueAogICA8dWw+CiAgICAgPGxpPk1vZGlmaWVzIHRoZSBjZF9jb21wYW55X2ZpbHRlciBhbmQgY2RfY29tcGFueV9xdWVyeSBjbGFzc2VzIHRvIGFsbG93IHF1ZXJ5aW5nIGxvY2F0aW9ucyBieSBhY3Rpdml0eSwgbW9zdCBjaGVja2lucywgb3IgbW9zdCBmYXZvcml0ZXMgKHJlcXVpcmVzIHRoZSBDR1NvY2lhbEFwcCBtb2R1bGUpLjwvbGk+CiAgICAgPGxpPkNvZGUgY2xlYW51cHMsIGFuZCBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xOS54CiAgIDx1bD4KICAgICA8bGk+QWRkcyBhbiBJY29uIGZpZWxkIHR5cGUgKGZyb20gQ0dHb29nbGVNYXBzIG9yIENHR29vZ2xlTWFwczIpPC9saT4KICAgICA8bGk+QWRkcyBhbiBBY3Rpdml0eSBmaWVsZCB0eXBlIChmcm9tIENHU29jaWFsQXBwKTwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcmUtb3JkZXIgY2F0ZWdvcmllcyBhbmQgaGllcmFyY2h5IGl0ZW1zLjwvbGk+CiAgICAgPGxpPk1vcmUgY29kZSBjbGVhbnVwcy48L2xpPgogICAgIDxsaT5IaWVyYXJjaHkgb3B0aW1pemF0aW9ucy48L2xpPgogICAgIDxsaT5BZGRzIHRoZSB7Y2RfaGllcmJyZWFkY3J1bWJ9IHBsdWdpbi48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBoaWVyX2NoaWxkcmVuIHBhcmFtZXRlci48L2xpPgogICAgIDxsaT5Nb3JlIGluZGV4ZXMgZm9yIHByZWZvcm1hbmNlLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A directory like module for companies.  Allows adding/editing/importing/exporting company definitions, and various ways of displaying the company entries including search.  This module integrates well with CGGoogleMaps.]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.35.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.5</requiredversion>
	</requires>
	<requires>
	  <requiredname>JQueryTools</requiredname>
	  <requiredversion>1.2</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkKTsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKJGNhdGlkID0gJyc7CiR0bXBkaXIgPSAnJzsKJGRlc3RkaXIgPSAnJzsKJGltYWdlID0gJyc7CiRkZXNjcmlwdGlvbiA9ICcnOwokbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CmlmKCBpc3NldCgkcGFyYW1zWydkZXNjcmlwdGlvbiddKSApICRkZXNjcmlwdGlvbiA9ICRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ107CgokZXh0cmExID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydleHRyYTEnXSkgKSAkZXh0cmExID0gJHBhcmFtc1snZXh0cmExJ107CgokZXh0cmEyID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydleHRyYTInXSkgKSAkZXh0cmEyID0gJHBhcmFtc1snZXh0cmEyJ107CgokZXh0cmEzID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydleHRyYTMnXSkgKSAkZXh0cmEzID0gJHBhcmFtc1snZXh0cmEzJ107CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgJGVycm9yID0gJyc7CiAgaWYoICRuYW1lID09ICcnICkgJGVycm9yID0gJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJyk7CiAgaWYoICRlcnJvciA9PSAnJyAmJiBwcmVnX21hdGNoKCcvW15cdyBdLycsJG5hbWUpICkgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2JhZG5hbWVnaXZlbicpOwoJICAKICBpZiggISRlcnJvciApIHsKCS8vIGhhbmRsZSBpbWFnZSB1cGxvYWQuCgkkdG1wZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ3UnLiR1c2VyaWQpOwoJJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJGlkLCR0bXBkaXIpOwoJJHRtcCA9ICR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkKCdpbWFnZScsRkFMU0UsRkFMU0UpOwoJaWYoICEkdG1wICYmICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgewoJICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJfQoJZWxzZSB7CgkgIGNnZV9kaXI6Om1rZGlycigkdG1wZGlyKTsKCSAgJGltYWdlID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdpbWFnZScpOwoJICBpZiggISRpbWFnZSAmJiAkdXBsb2FkZXItPmdldF9lcnJvcigpICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSk7Cgl9CglpZiggJGltYWdlID09PSAwICkgJGltYWdlID0gJyc7CiAgfQoKICBpZiggISRlcnJvciApIHsKCSRxdWVyeSA9ICdTRUxFQ1QgQ09BTEVTQ0UoTUFYKGlvcmRlciksMCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyc7CgkkaW9yZGVyID0gKGludCkkZGItPkdldE9uZSgkcXVlcnkpOwoJJGlvcmRlcisrOwoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIAogICAgICAgICAgICAgIChuYW1lLCBpbWFnZSwgZGVzY3JpcHRpb24sIGV4dHJhMSwgZXh0cmEyLCBleHRyYTMsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlLCBpb3JkZXIpIAogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sTk9XKCksTk9XKCksPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkaW1hZ2UsICRkZXNjcmlwdGlvbiwgJGV4dHJhMSwgJGV4dHJhMiwgJGV4dHJhMywgJGlvcmRlcikgKTsKCglpZiggISRkYnIgKSAKCSAgJGVycm9yID0gJGRiLT5FcnJvck1zZygpLicgLS0gJy4kZGItPnNxbDsKCWVsc2UKCSAgJGNhdGlkID0gJGRiLT5JbnNlcnRfSUQoKTsKICB9CiAgCiAgLy8gbW92ZSBpbWFnZXMgaW50byBmaW5hbCBkZXN0aW5hdGlvbnMKICBpZiggISRlcnJvciAmJiAkY2F0aWQgJiYgJGltYWdlICYmICR0bXBkaXIgJiYgaXNfZGlyKCR0bXBkaXIpKSB7CgkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdjYXQnLiRjYXRpZCk7CgljZ2VfZGlyOjpta2RpcnIoJGRlc3RkaXIpOwoKCSRmaWxlcyA9IGdsb2IoJHRtcGRpci4nLyouKicpOwoJZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkgewoJICAkYm4gPSBiYXNlbmFtZSgkZmlsZSk7CgkgIEByZW5hbWUoJGZpbGUsY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkYm4pKTsKCX0KCWNnZV9kaXI6OnJlY3Vyc2l2ZV9ybWRpcigkdG1wZGlyKTsKCSR0bXBkaXIgPSAnJzsKICB9CgogIGlmKCAhJGVycm9yICkgewoJYXVkaXQoJGNhdGlkLCR0aGlzLT5HZXROYW1lKCksJ0FkZGVkIGNhdGVnb3J5ICcuJG5hbWUpOwoJLy8gbm8gZXJyb3JzLCBnZXQgb3V0YSBoZXJlLgoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnlhZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICB9CgogIC8vIGRpc3BsYXkgZXJyb3JzCiAgaWYoICR0bXBkaXIgJiYgaXNfZGlyKCR0bXBkaXIpICkgY2dlX2Rpcjo6cmVjdXJzaXZlX3JtZGlyKCR0bXBkaXIpOwogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9yKTsKfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZScsJGltYWdlKTsKJHNtYXJ0eS0+YXNzaWduKCdkZXNjcmlwdGlvbicsJGRlc2NyaXB0aW9uKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZXh0cmExJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdleHRyYTEnLCAkZXh0cmExLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRleHRyYTInLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2V4dHJhMicsICRleHRyYTIsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGV4dHJhMycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZXh0cmEzJywgJGV4dHJhMywgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5fZ2VvY29kZScsY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjYXRlZ29yeS50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.addcompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7Cn0KCiRjb21wYW55X25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2V4X2NvbXBhbnlfbmFtZSddKSkgewogICRjb21wYW55X25hbWUgPSAkcGFyYW1zWydleF9jb21wYW55X25hbWUnXTsKfQoKJHVybCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1sndXJsJ10pKSB7CiAgJHVybCA9ICRwYXJhbXNbJ3VybCddOwp9CgokYWRkcmVzcyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWRkcmVzcyddKSkgewogICRhZGRyZXNzID0gJHBhcmFtc1snYWRkcmVzcyddOwp9CgokbGF0aXR1ZGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2xhdGl0dWRlJ10pKSB7CiAgJGxhdGl0dWRlID0gJHBhcmFtc1snbGF0aXR1ZGUnXTsKfQoKJGxvbmdpdHVkZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbG9uZ2l0dWRlJ10pKSB7CiAgJGxvbmdpdHVkZSA9ICRwYXJhbXNbJ2xvbmdpdHVkZSddOwp9CgokaGllcnBvcyA9ICcnOwppZiggaXNzZXQoJHBhcmFtc1snaGllcnBvcyddKSApIHsKICAkaGllcnBvcyA9IChpbnQpJHBhcmFtc1snaGllcnBvcyddOwp9CgokdGVsZXBob25lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd0ZWxlcGhvbmUnXSkpIHsKICAkdGVsZXBob25lID0gJHBhcmFtc1sndGVsZXBob25lJ107Cn0KCiRmYXggPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZheCddKSkgewogICRmYXggPSAkcGFyYW1zWydmYXgnXTsKfQoKJGNvbnRhY3RfZW1haWwgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbnRhY3RfZW1haWwnXSkpIHsKICAkY29udGFjdF9lbWFpbCA9ICRwYXJhbXNbJ2NvbnRhY3RfZW1haWwnXTsKfQoKJHdlYnNpdGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3dlYnNpdGUnXSkpIHsKICAkd2Vic2l0ZSA9ICRwYXJhbXNbJ3dlYnNpdGUnXTsKfQoKJGRldGFpbHMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHMnXSkpIHsKICAkZGV0YWlscyA9ICRwYXJhbXNbJ2RldGFpbHMnXTsKfQoKJHN0YXR1cyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snc3RhdHVzJ10pKSB7CiAgJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwp9Cgokb3duZXJfaWQgPSAtMTsKaWYgKGlzc2V0KCRwYXJhbXNbJ293bmVyX2lkJ10pKSB7CiAgJG93bmVyX2lkID0gJHBhcmFtc1snb3duZXJfaWQnXTsKfQoKJGZpZWxkZGVmcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKHRydWUpOwoKZnVuY3Rpb24gaGFuZGxlX2luaXRpYWxfdXBsb2FkKCRpZCwgJGZpZWxkbmFtZSkKewoJZ2xvYmFsICRnQ21zOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCglpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScpKSB7CgkJQG1rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5Jyk7Cgl9CglpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcpKSB7CgkJQG1rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndG1wJyk7Cgl9CgkKCUBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJGlkIC4gJGZpZWxkbmFtZV1bJ3RtcF9uYW1lJ10sICRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndG1wJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiBiYXNlbmFtZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyduYW1lJ10pKTsKCQoJcmV0dXJuIGJhc2VuYW1lKCRfRklMRVNbJGlkIC4gJGZpZWxkbmFtZV1bJ25hbWUnXSk7Cn0KCmZ1bmN0aW9uIGhhbmRsZV90bXBfdXBsb2FkKCRpZCwgJGl0ZW1pZCwgJGZpbGVuYW1lKQp7CiAgZ2xvYmFsICRnQ21zOwogICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgogIGlmICghaXNfZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaWQnIC4gJGl0ZW1pZCkpIHsKCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQpOwogIH0KICBAcmVuYW1lKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndG1wJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWUsICRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaWQnIC4gJGl0ZW1pZCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWUpOwp9CgokaW1hZ2UgPSAnJzsKaWYgKGlzc2V0KCRfRklMRVNbJGlkIC4gJ2ltYWdldXBsb2FkJ10pICYmICRfRklMRVNbJGlkIC4gJ2ltYWdldXBsb2FkJ11bJ3RtcF9uYW1lJ10gIT0gJycpIHsKICAkaW1hZ2UgPSBoYW5kbGVfaW5pdGlhbF91cGxvYWQoJGlkLCAnaW1hZ2V1cGxvYWQnKTsKfQogZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snaW1hZ2VjdXJyZW50J10pKSB7CiAgICRpbWFnZSA9ICRwYXJhbXNbJ2ltYWdlY3VycmVudCddOwp9CgokbG9nbyA9ICcnOwppZiAoaXNzZXQoJF9GSUxFU1skaWQgLiAnbG9nb3VwbG9hZCddKSAmJiAkX0ZJTEVTWyRpZCAuICdsb2dvdXBsb2FkJ11bJ3RtcF9uYW1lJ10gIT0gJycpIHsKICAkbG9nbyA9IGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICdsb2dvdXBsb2FkJyk7Cn0KZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snbG9nb2N1cnJlbnQnXSkpIHsKICAkbG9nbyA9ICRwYXJhbXNbJ2xvZ29jdXJyZW50J107Cn0KCiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgLy8gc3VibWl0IGlzIHByZXNzZWQuCiAgJGVycm9yID0gJyc7CgogIGlmKCAkY29tcGFueV9uYW1lID09ICcnICkgewoJJGVycm9yID0gJHRoaXMtPkxhbmcoJ25vY29tcGFueW5hbWVnaXZlbicpOwogIH0KCiAgaWYoICEkZXJyb3IgJiYgY2RfdXRpbHM6OmNvbXBhbnlfbmFtZV9leGlzdHMoJGNvbXBhbnlfbmFtZSkgKSB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknKTsKICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgPT0gJycgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkgKSB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfdXJscmVxdWlyZWQnKTsKICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgPT0gJycgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9hdXRvY3JlYXRlJywwKSApIHsKCSR1cmwgPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRjb21wYW55X25hbWUpOwoJaWYoICEkdXJsICkgewoJICAkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKTsKCX0KICB9CgogIGlmKCAhJGVycm9yICYmICR1cmwgIT0gJycgKSB7CgkkcmVzID0gY2RfdXRpbHM6OnZhbGlkYXRlX3VybCgkdXJsKTsKCWlmKCAhJHJlcyApIHsKCSAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1cmwnKTsKCX0KICB9CgogIHRyeSB7CgkkdGhlX2NvbXBhbnkgPSBuZXcgY2RfY29tcGFueTsKCSR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lID0gJGNvbXBhbnlfbmFtZTsKCSR0aGVfY29tcGFueS0+dXJsID0gJHVybDsKCSR0aGVfY29tcGFueS0+YWRkcmVzcyA9ICRhZGRyZXNzOwoJJHRoZV9jb21wYW55LT50ZWxlcGhvbmUgPSAkdGVsZXBob25lOwoJJHRoZV9jb21wYW55LT5mYXggPSAkZmF4OwoJJHRoZV9jb21wYW55LT5jb250YWN0X2VtYWlsID0gJGNvbnRhY3RfZW1haWw7CgkkdGhlX2NvbXBhbnktPndlYnNpdGUgPSAkd2Vic2l0ZTsKCSR0aGVfY29tcGFueS0+ZGV0YWlscyA9ICRkZXRhaWxzOwoJJHRoZV9jb21wYW55LT5waWN0dXJlX2xvY2F0aW9uID0gJGltYWdlOwoJJHRoZV9jb21wYW55LT5sb2dvX2xvY2F0aW9uID0gJGxvZ287CgkkdGhlX2NvbXBhbnktPnN0YXR1cyA9ICRzdGF0dXM7CgkkdGhlX2NvbXBhbnktPmxhdGl0dWRlID0gJGxhdGl0dWRlOwoJJHRoZV9jb21wYW55LT5sb25naXR1ZGUgPSAkbG9uZ2l0dWRlOwoJJHRoZV9jb21wYW55LT5vd25lcl9pZCA9ICRvd25lcl9pZDsKCSR0aGVfY29tcGFueS0+aGllcl9pZCA9ICRoaWVycG9zOwogIH0KICBjYXRjaCggRXhjZXB0aW9uICRlICkgewoJJGVycm9yID0gJGUtPkdldE1lc3NhZ2UoKTsKICB9CgogIGlmICggJGVycm9yICkgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3IpOwogIH0KICBlbHNlIHsKCSR0aGVfY29tcGFueS0+c2F2ZShGQUxTRSk7IC8vIHNhdmUsIGJ1dCBubyBmaWVsZCBkYXRhIGV0Yy4gYW5kIGRvbid0IHNlbmQgZXZlbnRzCgkkY2lkID0gJHRoZV9jb21wYW55LT5pZDsKCQoJJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywnaWQnLiRjaWQpOwoJaWYoIGNvdW50KCRmaWVsZGRlZnMpICkgewoJICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWVsZGRlZiApIHsKCQkkZmllbGRkZWYgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkZmllbGRkZWYpOwoJCXN3aXRjaCggJGZpZWxkZGVmLT50eXBlICkgewoJCWNhc2UgJ2ZpbGUnOgoJCWNhc2UgJ2ltYWdlJzoKCQkgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CgkJICAkdXBsb2FkZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJGRlc3RkaXIpOwoJCSAgaWYoIGlzc2V0KCRmaWVsZGRlZi0+ZGF0YSkgJiYgJGZpZWxkZGVmLT5kYXRhICE9ICcnICkgewoJCQkkdXBsb2FkZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJGZpZWxkZGVmLT5kYXRhKTsKCQkgIH0KCQkgICR0bXAgPSAkdXBsb2FkZXItPmhhbmRsZV91cGxvYWQoJ2N1c3RvbWZpZWxkJywnJywnZmllbGQtJy4kZmllbGRkZWYtPmlkKTsKCQkgIGlmKCAhJHRtcCApIHsKCQkJaWYoICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgewoJCQkgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSk7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCQkgIGVsc2UgewoJCQkkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdID0gJHRtcDsKCQkgIH0KCQkgIGJyZWFrOwoKCQljYXNlICdtdWx0aXNlbGVjdCc6CgkJICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkgJiYgCgkJCSAgaXNfYXJyYXkoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkgKSB7CgkJCSRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0gPSBpbXBsb2RlKCd+ficsJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSk7CgkJICB9CgkJICBicmVhazsKCQl9CgkgIH0KCSAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10pKSB7CgkJZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpIHsKCQkgIGlmIChzdGFydHN3aXRoKCRrLCAnZmllbGQtJykpIHsKCQkJJGZpZCA9IHN1YnN0cigkaywgNik7CgkJCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRmaWQsJHYpOwoJCSAgfQoJCX0KCSAgfQoJfSAvLyBpZiBjb3VudCBmaWVsZGRlZnMKCQkKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeSddKSkgewoJICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeSddIGFzICRrPT4kdikgewoJCWlmIChzdGFydHN3aXRoKCRrLCAnaWQtJykpIHsKCQkgICRmaWQgPSBzdWJzdHIoJGssIDMpOwoJCSAgJGV4dHJhMSA9ICcnOwoJCSAgJGV4dHJhMiA9ICcnOwoJCSAgJGV4dHJhMyA9ICcnOwoJCSAgaWYoIGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMSddWyRrXSkgKSB7CgkJCSRleHRyYTEgPSAkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTEnXVska107CgkJICB9CgkJICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmEyJ11bJGtdKSApIHsKCQkJJGV4dHJhMiA9ICRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMiddWyRrXTsKCQkgIH0KCQkgIGlmKCBpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTMnXVska10pICkgewoJCQkkZXh0cmEzID0gJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmEzJ11bJGtdOwoJCSAgfQoKCQkgICR0aGVfY29tcGFueS0+c2V0X2NhdGVnb3J5KCRmaWQsMSwkZXh0cmExLCRleHRyYTIsJGV4dHJhMyk7CgkJfQoJICB9Cgl9CgoJJHRoZV9jb21wYW55LT5zYXZlKCk7CgkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJHRoZV9jb21wYW55LT5pZCk7CgoJaWYgKCRpbWFnZSAhPSAnJykgewoJICAvLyBkZXByZWNhdGVkLCB1c2UgdGhlIHVwbG9hZGVyIHN0dWZmLgoJICBoYW5kbGVfdG1wX3VwbG9hZCgkaWQsICRjaWQsICRpbWFnZSk7Cgl9CgkKCWlmICgkbG9nbyAhPSAnJykgewoJICAvLyBkZXByZWNhdGVkLCB1c2UgdGhlIHVwbG9hZGVyIHN0dWZmLgoJICBoYW5kbGVfdG1wX3VwbG9hZCgkaWQsICRjaWQsICRsb2dvKTsKCX0KCQkKCS8vVXBkYXRlIHNlYXJjaCBpbmRleAoJaWYoICR0aGVfY29tcGFueS0+c3RhdHVzICE9ICdkcmFmdCcgKSB7CgkgICRtb2R1bGUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkgewoJCSRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksJHRoZV9jb21wYW55LT5pZCwnY29tcGFueScsJHRoZV9jb21wYW55LT5nZXRfc2VhcmNoX3dvcmRzKCkpOwoJICB9Cgl9CgoJYXVkaXQoJGNpZCwkdGhpcy0+R2V0TmFtZSgpLCdBZGRlZCBDb21wYW55ICcuJGNvbXBhbnlfbmFtZSk7CgkKCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2NvbXBhbnlhZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAnY29tcGFuaWVzJyk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICB9Cn0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKCmlmIChjb3VudCgkZmllbGRkZWZzKSA+IDApIHsKICBmb3JlYWNoICgkZmllbGRkZWZzIGFzICRmaWVsZGRlZikgewoJJGZpZWxkZGVmID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGZpZWxkZGVmKTsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKCSR2YWx1ZSA9ICcnOwoJaWYgKGlzc2V0KCRmaWVsZGRlZi0+dmFsdWUpKSB7CgkgICR2YWx1ZSA9ICRmaWVsZGRlZi0+dmFsdWU7Cgl9CgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKQoJICAkdmFsdWUgPSAkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdOwoJJGZpZWxkLT50eXBlID0gJGZpZWxkZGVmLT50eXBlOwoJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CgkkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7Cglzd2l0Y2ggKCRmaWVsZGRlZi0+dHlwZSkgewoJY2FzZSAnZHJvcGRvd24nOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyxhcnJheV9mbGlwKCRmaWVsZGRlZi0+b3B0aW9ucyksLTEsJHZhbHVlKTsKCSAgYnJlYWs7CgoJY2FzZSAnbXVsdGlzZWxlY3QnOgoJICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBleHBsb2RlKCd+ficsJHZhbHVlKTsKCSAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW10nLAoJCQkJCQkJCQkJCQkJICAgYXJyYXlfZmxpcCgkZmllbGRkZWYtPm9wdGlvbnMpLAoJCQkJCQkJCQkJCQkJICAgJHZhbHVlLG1pbig1LGNvdW50KCR2YWx1ZSkpKTsKCSAgYnJlYWs7CgoJY2FzZSAnZmlsZSc6CgljYXNlICdpbWFnZSc6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSInLiRpZC4nY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddIiB2YWx1ZT0iIiBzaXplPSI4MCIvPic7CgkgIGlmKCAkdmFsdWUgKSB7CgkJJGZpZWxkLT5pbnB1dF9ib3ggLj0gIjxici8+eyR2YWx1ZX06Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ7JGlkfWRlbGV0ZWZpbGVbZmllbGQteyRmaWVsZGRlZi0+aWR9XVwiIHZhbHVlPVwiMVwiLz4oeyR0aGlzLT5MYW5nKCdkZWxldGUnKX0pIjsKCSAgfQoJICBicmVhazsKCgljYXNlICdjaGVja2JveCc6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkaWQgLiAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyAuICciIHZhbHVlPSJmYWxzZSIgLz4nLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlID09ICd0cnVlJyk7CgkgIGJyZWFrOwoKCWNhc2UgJ3RleHRhcmVhJzoKCSAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkdmFsdWUsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKCSAgYnJlYWs7CgoJY2FzZSAnYWN0aXZpdHknOgoJICAkY2dzb2MgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHU29jaWFsQXBwJyk7CgkgIGlmKCBpc19vYmplY3QoJGNnc29jKSApIHsKCQkkb3B0aW9ucyA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYWxsX2FzX2Ryb3Bkb3duKEZBTFNFKTsKCQlpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBleHBsb2RlKCd+ficsJHZhbHVlKTsKCQkkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bXScsCgkJCQkJCQkJCQkJCQkJIGFycmF5X2ZsaXAoJG9wdGlvbnMpLAoJCQkJCQkJCQkJCQkJCSAkdmFsdWUsbWluKDUsY291bnQoJHZhbHVlKSkpOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ2ljb24nOgoJICBpZiggKCRpY29ucyA9IGNkX3V0aWxzOjpnZXRfaWNvbl9saXN0KCkpICkgewoJCSRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCRpY29ucywnJywkdmFsdWUpOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ3RleHRib3gnOgoJZGVmYXVsdDoKCSAgJG1heGxlbmd0aCA9ICRmaWVsZGRlZi0+bWF4X2xlbmd0aDsKCSAgJHNpemUgPSBtaW4oJG1heGxlbmd0aCw4MCk7CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICRzaXplLCAkbWF4bGVuZ3RoKTsKCSAgYnJlYWs7Cgl9CgkkZmllbGRhcnJheVtdID0gJGZpZWxkOwogIH0KfQoKCi8vIGdldCB1c2VyIGluZm9ybWF0aW9uCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoIGlzX29iamVjdCgkZmV1KSApIHsKICAkdG1wID0gJGZldS0+R2V0VXNlcnNJbkdyb3VwKCk7CiAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJJHVzZXJzID0gYXJyYXkoKTsKCSR1c2Vyc1stMV0gPSAkdGhpcy0+TGFuZygnbm9uZScpOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkgICR1c2Vyc1skdG1wWyRpXVsnaWQnXV0gPSAkdG1wWyRpXVsndXNlcm5hbWUnXTsKCX0KCSRzbWFydHktPmFzc2lnbignZmV1X3VzZXJzJywkdXNlcnMpOwogIH0KfQoKJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwokY2F0YXJyYXkgPSBhcnJheSgpOwoKaWYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApIHsKICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkb25lY2F0KSB7CgkkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCgkkdmFsdWUgPSAnZmFsc2UnOwoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J11bJ2lkLScuJG9uZWNhdC0+aWRdKSkKCSAgJHZhbHVlID0gJ3RydWUnOwoJCgkkZmllbGQtPmlkID0gJG9uZWNhdC0+aWQ7CgkkZmllbGQtPm5hbWUgPSAkb25lY2F0LT5uYW1lOwoJJGZpZWxkLT5jaGVja2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2NhdGVnb3J5W2lkLScuJG9uZWNhdC0+aWQuJ10nLCAkdmFsdWUsICd0cnVlJyk7CgkkZmllbGQtPmV4dHJhMSA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjYXRlZ29yeV9leHRyYTFbaWQtJy4kb25lY2F0LT5pZC4nXScsICcnLDYwLDI1NSk7CgkkZmllbGQtPmV4dHJhMiA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjYXRlZ29yeV9leHRyYTJbaWQtJy4kb25lY2F0LT5pZC4nXScsICcnLDYwLDI1NSk7CgkkZmllbGQtPmV4dHJhMyA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjYXRlZ29yeV9leHRyYTNbaWQtJy4kb25lY2F0LT5pZC4nXScsICcnLDYwLDI1NSk7CgoJJGNhdGFycmF5W10gPSAkZmllbGQ7CiAgfQp9CgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRkY29tcGFueScsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb21wYW55X25hbWUnLCRjb21wYW55X25hbWUpOwokc21hcnR5LT5hc3NpZ24oJ3VybCcsJHVybCk7Cgokc21hcnR5LT5hc3NpZ24oJ293bmVyX2lkJywkb3duZXJfaWQpOwokc21hcnR5LT5hc3NpZ24oJ2FkZHJlc3N0ZXh0JywgJHRoaXMtPkxhbmcoJ2FkZHJlc3MnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRhZGRyZXNzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhZGRyZXNzJywgJGFkZHJlc3MsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxhdGl0dWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsYXRpdHVkZScsICRsYXRpdHVkZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bG9uZ2l0dWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsb25naXR1ZGUnLCAkbG9uZ2l0dWRlLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRoaWVycG9zJywkdGhpcy0+Q3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLC0xLCRoaWVycG9zLCdoaWVycG9zJykpOwokc21hcnR5LT5hc3NpZ24oJ3RlbGVwaG9uZXRleHQnLCAkdGhpcy0+TGFuZygndGVsZXBob25lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dGVsZXBob25lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0ZWxlcGhvbmUnLCAkdGVsZXBob25lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZmF4dGV4dCcsICR0aGlzLT5MYW5nKCdmYXgnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRmYXgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZheCcsICRmYXgsIDMwLCAyNTUpKTsKCiRzbWFydHktPmFzc2lnbignZW1haWx0ZXh0JywgJHRoaXMtPkxhbmcoJ2NvbnRhY3RlbWFpbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVtYWlsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjb250YWN0X2VtYWlsJywgJGNvbnRhY3RfZW1haWwsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWJzaXRldGV4dCcsICR0aGlzLT5MYW5nKCd3ZWJzaXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0d2Vic2l0ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnd2Vic2l0ZScsICR3ZWJzaXRlLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZGV0YWlsc3RleHQnLCAkdGhpcy0+TGFuZygnZGV0YWlscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkZGV0YWlscywgJ2RldGFpbHMnLCAnJywgJycsICcnLCAnJywgJzgwJywgJzUnKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2V1cGxvYWQnLCAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwgJ2ltYWdldXBsb2FkJywgJycsIDgwKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VjdXJyZW50JywgJGltYWdlKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZXRleHQnLCAkdGhpcy0+TGFuZygnaW1hZ2V0ZXh0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlY3VycmVudGhpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdpbWFnZWN1cnJlbnQnLCAkcmV0dXJuaWQsICRpbWFnZSkpOwokc21hcnR5LT5hc3NpZ24oJ2xvZ291cGxvYWQnLCAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwgJ2xvZ291cGxvYWQnLCAnJywgODApKTsKJHNtYXJ0eS0+YXNzaWduKCdsb2dvY3VycmVudCcsICRsb2dvKTsKJHNtYXJ0eS0+YXNzaWduKCdsb2dvY3VycmVudGhpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsb2dvY3VycmVudCcsICRyZXR1cm5pZCwgJGxvZ28pKTsKJHNtYXJ0eS0+YXNzaWduKCdsb2dvdGV4dCcsICR0aGlzLT5MYW5nKCdsb2dvdGV4dCcpKTsKCiRzdGF0dXNlcyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKT0+J3B1Ymxpc2hlZCcsCgkJICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywKCQkgICR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpPT4nZGlzYWJsZWQnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXN0ZXh0JywkdGhpcy0+TGFuZygnc3RhdHVzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0c3RhdHVzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3N0YXR1cycsCgkJCQkJICAgJHN0YXR1c2VzLC0xLCRzdGF0dXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2N1c3RvbWZpZWxkcycsICRmaWVsZGFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21maWVsZHNjb3VudCcsIGNvdW50KCRmaWVsZGFycmF5KSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsICRjYXRhcnJheSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllc2NvdW50JywgY291bnQoJGNhdGFycmF5KSk7Cgokc21hcnR5LT5hc3NpZ24oJ3VybF9yZXF1aXJlZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3VybF9hdXRvY3JlYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX2F1dG9jcmVhdGUnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5fZ2VvY29kZScsY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjb21wYW55LnRwbCcpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.addfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CgokbmFtZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnbmFtZScpOwokdHlwZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywndHlwZScpOwokbWF4X2xlbmd0aCA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnbWF4X2xlbmd0aCcsMjU1KTsKJGFkbWlub25seSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnYWRtaW5vbmx5JywwKTsKJHB1YmxpYyA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywncHVibGljJywwKTsKCiRkcm9wZG93bl9kYXRhID0gJyc7CmlmKCAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBpc3NldCgkcGFyYW1zWydkcm9wZG93bl9vcHRpb25zJ10pICkgewogICRkcm9wZG93bl9kYXRhID0gdHJpbSgkcGFyYW1zWydkcm9wZG93bl9vcHRpb25zJ10pOwp9CiRkYXRhID0gJyc7CmlmKCAoJHR5cGUgPT0gJ2ZpbGUnIHx8ICR0eXBlID09ICdpbWFnZScgfHwgJHR5cGUgPT0gJ2FsYnVtJykgJiYgaXNzZXQoJHBhcmFtc1snZXh0ZW5zaW9ucyddKSApIHsKICAkZGF0YSA9IHRyaW0oJHBhcmFtc1snZXh0ZW5zaW9ucyddKTsKfQoKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCiRzdGF0dXMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogIGlmKCBlbXB0eSgkbmFtZSkgKSAkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ25vbmFtZ2l2ZW4nKTsKICBpZiggZW1wdHkoJHN0YXR1cykgJiYgJHR5cGUgPT0gJ3RleHRib3gnICYmICFpc19udW1lcmljKCRtYXhfbGVuZ3RoKSApIHsKCSRzdGF0dXMgPSAkdGhpcy0+TGFuZygnZXJyb3Jfbm9sZW5ndGgnKTsKICB9CgogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBlbXB0eSgkZHJvcGRvd25fZGF0YSkgKSB7Cgkkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJyk7CiAgfQoKICBpZiggZW1wdHkoJHN0YXR1cykgJiYgJHR5cGUgPT0gJ2FsYnVtJyApIHsKCSRmZCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2J5X25hbWUoVFJVRSxUUlVFKTsKCSRmbmQgPSBmYWxzZTsKCWlmKGlzX2FycmF5KCRmZCkgJiYgY291bnQoJGZkKSApIHsKCSAgZm9yZWFjaCggJGZkIGFzICR0aGVfaWQgPT4gJHRoZV9yZWMgKSB7CgkJaWYoICR0aGVfcmVjWyd0eXBlJ10gPT0gJ2FsYnVtJyApIHsKCQkgICRmbmQgPSB0cnVlOwoJCSAgYnJlYWs7CgkJfQoJICB9Cgl9CglpZiggJGZuZCApIHsKICAgICAgJHN0YXR1cyA9ICR0aGlzLT5MYW5nKCdlcnJvcl9hbGJ1bWZpZWxkZXhpc3RzJyk7Cgl9CiAgfQoKICBpZiggZW1wdHkoJHN0YXR1cykgKSB7CgkkbWF4ID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBtYXgoaXRlbV9vcmRlcikgKyAxIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIAogICAgICAgICAgICAgIChuYW1lLCB0eXBlLCBtYXhfbGVuZ3RoLCBpdGVtX29yZGVyLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgCiAgICAgICAgICAgICAgIGFkbWluX29ubHksIHB1YmxpYywgZHJvcGRvd25fZGF0YSwgZGF0YSkgCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/KSc7CgkkcGFybXMgPSBhcnJheSgkbmFtZSwgJHR5cGUsICRtYXhfbGVuZ3RoLCAkbWF4LCAKCQkJCQkgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIAoJCQkJCSB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwKCQkJCQkgJGFkbWlub25seSwgJHB1YmxpYywgJGRyb3Bkb3duX2RhdGEsICRkYXRhKTsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcGFybXMgKTsKCWlmKCAhJGRiciApIGRpZSgkZGItPnNxbC4nIC0gJy4kZGItPkVycm9yTXNnKCkpOwoKCWF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0FkZGVkIGZpZWxkIGRlZmluaXRpb24gJy4kbmFtZS4nIG9mIHR5cGUgJy4kdHlwZSk7CgkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnZmllbGRkZWZhZGRlZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKICB9CgogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHN0YXR1cyk7Cn0KCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZGRmaWVsZGRlZicsICRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3R5cGUnKSk7CiRzbWFydHktPmFzc2lnbignbWF4bGVuZ3RodGV4dCcsICR0aGlzLT5MYW5nKCdtYXhsZW5ndGgnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHR5cGVzJywkdGhpcy0+R2V0RmllbGRUeXBlcygpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG1heGxlbmd0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbWF4X2xlbmd0aCcsICRtYXhfbGVuZ3RoLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbigndXNlcmVkaXR0ZXh0JywkdGhpcy0+TGFuZygnYWRtaW5fb25seScpKTsKJHNtYXJ0eS0+YXNzaWduKCd1c2Vydmlld3RleHQnLCR0aGlzLT5MYW5nKCdwdWJsaWMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlcmVkaXQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FkbWlub25seScsIDEsICRhZG1pbm9ubHkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VydmlldycsJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYykpOwokc21hcnR5LT5hc3NpZ24oJ2ZsZHR5cGUnLCR0eXBlKTsKJHNtYXJ0eS0+YXNzaWduKCdkcm9wZG93bl9kYXRhJywkZHJvcGRvd25fZGF0YSk7CiRzbWFydHktPmFzc2lnbigndmFsaWRfZXh0ZW5zaW9ucycsJGRhdGEpOwoKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRmaWVsZGRlZi50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_addhier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wX2NhbmNlbGxlZCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICcnLCAnJywgJ2FkbWluX3NldHRpbmdzJyk7Cn0KCiRwYXJlbnQgPSAtMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmVudCddKSkgewogICRwYXJlbnQgPSAkcGFyYW1zWydwYXJlbnQnXTsKfQoKJG5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpIHsKICAkbmFtZSA9ICRwYXJhbXNbJ25hbWUnXTsKICBpZiAoJG5hbWUgIT0gJycpIHsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciAobmFtZSwgcGFyZW50X2lkKSBWQUxVRVMgKD8sPyknOwoJJHBhcm1zID0gYXJyYXkoJG5hbWUsaW50dmFsKCRwYXJlbnQpKTsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcGFybXMpOwoJaWYoICEkZGJyICkgewoJICBkaWUoJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwoJfQoJJHRoaXMtPlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpOwoJJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19oaWVyYWRkZWQnKSk7CgkkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICcnLCAnJywgJ2FkbWluX3NldHRpbmdzJyk7CiAgfQogIGVsc2UgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgfQp9CgojRGlzcGxheSB0ZW1wbGF0ZQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkaGllcicsICRyZXR1cm5pZCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAyMCwgMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFyZW50ZHJvcGRvd24nLCAkdGhpcy0+Q3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLCAtMSwgLTEpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFyZW50dGV4dCcsIGxhbmcoJ3BhcmVudCcpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0aGllci50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_categoryorder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydjYXQnXSkgKSBleGl0OwoKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBTRVQgaW9yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwokY2F0cyA9ICRwYXJhbXNbJ2NhdCddOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0cyk7ICRpKysgKSB7CiAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGkrMSwoaW50KSRjYXRzWyRpXSkpOwp9CgpleGl0OwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_hierorder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyJ10pICkgZXhpdDsKCi8vIGZpcnN0IHBhc3MuLi4gY2hhbmdlIGFsbCB0aGUgJ3Jvb3QnIHZhbHVlcyB0byAtMSBhbmQgY29udmVydCB2YWx1ZXMgdG8gYSBoYXNoCiRoaWVyID0gYXJyYXkoKTsKewogICR0bXAgPSAkcGFyYW1zWydoaWVyJ107CiAgZm9yZWFjaCggJHRtcCBhcyAkcmlkID0+ICRwYXJlbnRfaWQgKSB7CglpZiggJHBhcmVudF9pZCA9PSAncm9vdCcgKSAkcGFyZW50X2lkID0gLTE7CgkkaGllclskcmlkXSA9IGFycmF5KCdwYXJlbnRfaWQnPT4kcGFyZW50X2lkKTsKICB9Cn0KCi8vIHNlY29uZCBwYXNzLi4uIGNhbGN1bGF0ZSBpb3JkZXIgdmFsdWVzIGZvciBhbGwgaXRlbXMuCiRjYWxjX2lvcmRlciA9IGZ1bmN0aW9uKCYkaGllciwkcGFyZW50X2lkID0gLTEpIHVzZSAoJiRjYWxjX2lvcmRlcikgewogICRpb3JkZXIgPSAxOwogIGZvcmVhY2goICRoaWVyIGFzICRyaWQgPT4gJiRyb3cgKSB7CglpZiggJHJvd1sncGFyZW50X2lkJ10gPT0gJHBhcmVudF9pZCApIHsKCSAgJHJvd1snaW9yZGVyJ10gPSAkaW9yZGVyKys7CgkgICRjYWxjX2lvcmRlcigkaGllciwkcmlkKTsKCX0KICB9Cn07CiRjYWxjX2lvcmRlcigkaGllcik7CgovLyB0aGlyZCBwYXNzLi4uIHVwZGF0ZSBwYXJlbnQgaWQsIGFuZCBpb3JkZXIgaWQKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBTRVQgcGFyZW50X2lkID0gPywgaW9yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwpmb3JlYWNoKCAkaGllciBhcyAkcmlkID0+ICRyb3cgKSB7CiAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJvd1sncGFyZW50X2lkJ10sJHJvd1snaW9yZGVyJ10sJHJpZCkpOwp9CgovLyA0dGguLi4gdXBkYXRlIGhpZXJhcmNoeSBwb3NpdGlvbnMuCmNkX3V0aWxzOjp1cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwpleGl0OwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulk.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LTIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IG1hbmFnZW1lbnQgb2YgYW5kIHZhcmlvdXMgd2F5cyB0byBkaXNwbGF5CiMgIGNvbXBhbnkgaW5mb3JtYXRpb24gZm9yIHVzZSBpbiBkaXJlY3RvcmllcyBldGMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NvbXBhbmllcycpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2J1bGtfc3VibWl0J10pICkgewogIGlmKCAhaXNzZXQoJHBhcmFtc1snYnVsayddKSB8fCAhaXNfYXJyYXkoJHBhcmFtc1snYnVsayddKSB8fCBjb3VudCgkcGFyYW1zWydidWxrJ10pID09IDAgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQogIGlmKCAhaXNzZXQoJHBhcmFtc1snYnVsa2FjdGlvbiddKSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CiAgc3dpdGNoKCRwYXJhbXNbJ2J1bGthY3Rpb24nXSkgewogIGNhc2UgJ2RlbGV0ZSc6CiAgICAkbmRlbCA9IDA7CiAgICBmb3JlYWNoKCAkcGFyYW1zWydidWxrJ10gYXMgJG9uZSApIHsKICAgICAgdHJ5IHsKCWNkX2NvbXBhbnk6OmRlbGV0ZSgoaW50KSRvbmUpOwoJJG5kZWwrKzsKICAgICAgfQogICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewoJLy8gaWdub3JlCiAgICAgIH0KICAgIH0KICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfYnVsa2RlbCcsJG5kZWwpKTsKICAgIGJyZWFrOwoKICBjYXNlICdkaXNhYmxlJzoKICAgIGZvcmVhY2goICRwYXJhbXNbJ2J1bGsnXSBhcyAmJG9uZSApIHsKICAgICAgJG9uZSA9IChpbnQpJG9uZTsKICAgIH0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUIHN0YXR1cyA9ID8KICAgICAgICAgICAgICAgV0hFUkUgaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHBhcmFtc1snYnVsayddKS4nKSc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgnZGlzYWJsZWQnKSk7CiAgICBicmVhazsKCiAgY2FzZSAncHVibGlzaCc6CiAgICBmb3JlYWNoKCAkcGFyYW1zWydidWxrJ10gYXMgJiRvbmUgKSB7CiAgICAgICRvbmUgPSAoaW50KSRvbmU7CiAgICB9CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFNFVCBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgIFdIRVJFIGlkIElOICgnLmltcGxvZGUoJywnLCRwYXJhbXNbJ2J1bGsnXSkuJyknOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ3B1Ymxpc2hlZCcpKTsKICAgIGJyZWFrOwoKICBkZWZhdWx0OgogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICBicmVhazsKICB9Cn0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKJGFjdGlvbiA9ICRuYW1lOwovLyB0aGlzIHRhYiBjYW4gYmUgYWN0aXZhdGVkIGJ5IGFqYXguCgokY2F0ZWdvcmllcyA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcygpOwppZiggaXNfYXJyYXkoJGNhdGVnb3JpZXMpICYmIGNvdW50KCRjYXRlZ29yaWVzKSApIHsKICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAmJG9uZXJvdyApIHsKICAgICRvbmVyb3ctPmVkaXRfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdlZGl0Y2F0ZWdvcnknLCRyZXR1cm5pZCxhcnJheSgnY2F0aWQnPT4kb25lcm93LT5pZCkpOzsKICAgICRvbmVyb3ctPmRlbGV0ZV91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlbGV0ZWNhdGVnb3J5JywkcmV0dXJuaWQsYXJyYXkoJ2NhdGlkJz0+JG9uZXJvdy0+aWQpKTsKICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRjYXRlZ29yaWVzKTsKfQoKCi8vIFNldHVwIGxpbmtzCiRzbWFydHktPmFzc2lnbigndXJsX2FkZF9jYXRlZ29yeScsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdhZGRjYXRlZ29yeScsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld2ZvbGRlci5naWYnLCAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkY2F0ZWdvcnknLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhZGRjYXRlZ29yeScpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCAkdGhpcy0+TGFuZygnY2F0ZWdvcnknKSk7CmlmKCAkYWN0aW9uID09ICdhZG1pbl9jYXRlZ29yaWVzX3RhYicgKSAkc21hcnR5LT5hc3NpZ24oJ2FqYXgnLDEpOwoKLy8gRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2NhdGVnb3J5bGlzdC50cGwnKTsJCgppZiggJGFjdGlvbiA9PSAnYWRtaW5fY2F0ZWdvcmllc190YWInICkgZXhpdDsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_delhier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSBleGl0OwoKJGNhdGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYXRpZCddKSkKICB7CiAgICAkY2F0aWQgPSAkcGFyYW1zWydjYXRpZCddOwogIH0KCi8vIEdldCB0aGUgY2F0ZWdvcnkgZGV0YWlscwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllcgogICAgICAgICAgIFdIRVJFIGlkID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdyggJHF1ZXJ5LCBhcnJheSggJGNhdGlkICkgKTsKaWYoICEkcm93ICkKICB7CiAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignaGllcicpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAnJywgJycsICdhZG1pbl9zZXR0aW5ncycpOwogIH0KCi8vUmVzZXQgYWxsIGNhdGVnb3JpZXMgdXNpbmcgdGhpcyBwYXJlbnQgdG8gaGF2ZSBubyBwYXJlbnQgKC0xKQokcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFNFVCBwYXJlbnRfaWQ9PyBXSEVSRSBwYXJlbnRfaWQ9Pyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KC0xLCAkY2F0aWQpKTsKCi8vTm93IHJlbW92ZSB0aGUgY2F0ZWdvcnkKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIFdIRVJFIGlkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjYXRpZCkpOwoKLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGFydGljbGVzCiRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBTRVQgaGllcl9pZCA9IC0xIFdIRVJFIGhpZXJfaWQgPSA/IjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgkKJHRoaXMtPlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpOwokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJkZWxldGVkJykpOwokdGhpcy0+U2V0Q3VycmVudFRhYignaGllcicpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICcnLCAnJywgJ2FkbWluX3NldHRpbmdzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_doimporttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApIGV4aXQoKTsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmcm9udGVuZGltcG9ydF90ZW1wbGF0ZScpOwppZiggaXNzZXQoJHBhcmFtc1snZmVpbXBvcnRfc3VibWl0J10pICkKICB7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwKCQkgICAgICAgdHJpbSgkcGFyYW1zWydmZWltcG9ydF90ZW1wbGF0ZSddKSk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydmZWltcG9ydF9yZXNldCddKSApCiAgewogICAgICMgU2V0dXAgZGVmYXVsdCBmcm9udGVuZCBpbXBvcnQgdGVtcGxhdGUKICAgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZnJvbnRlbmRpbXBvcnRfdGVtcGxhdGUudHBsJyk7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewoJJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJJHRoaXMtPlNldFRlbXBsYXRlKENPTVBBTllESVJfRlJPTlRFTkRJTVBPUlRfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgfQogIH0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnJywnJywnYWRtaW5fdGVtcGxhdGVzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_edithier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICAkdGhpcy0+U2V0Q3VycmVudFRhYigkdGhpcy0+TGFuZygnb3BfY2FuY2VsbGVkJykpOwogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKfQoKJGNhdGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYXRpZCddKSkgewogICRjYXRpZCA9ICRwYXJhbXNbJ2NhdGlkJ107Cn0KCiRwYXJlbnRpZCA9ICctMSc7CmlmIChpc3NldCgkcGFyYW1zWydwYXJlbnQnXSkpIHsKICAkcGFyZW50aWQgPSAkcGFyYW1zWydwYXJlbnQnXTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkgewogICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107Cn0KCiRuYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKSB7CiAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107CiAgaWYgKCRuYW1lICE9ICcnKSB7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFNFVCBuYW1lID0gPywgcGFyZW50X2lkID0gPyBXSEVSRSBpZCA9ID8nOwoJJHBhcm1zID0gYXJyYXkoJG5hbWUsJHBhcmVudGlkLCAkY2F0aWQpOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zKTsKCSR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCgkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJ1cGRhdGVkJykpOwoJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAnJywgJycsICdhZG1pbl9zZXR0aW5ncycpOwogIH0KICBlbHNlIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogIH0KfQplbHNlIHsKICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgaWQgPSA/JzsKICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgogICBpZiAoJHJvdykgewoJICRuYW1lID0gJHJvd1snbmFtZSddOwoJICRwYXJlbnRpZCA9ICRyb3dbJ3BhcmVudF9pZCddOwogICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9lZGl0aGllcicsICRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAyMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbigncGFyZW50ZHJvcGRvd24nLCAkdGhpcy0+Q3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLCAkY2F0aWQsICRwYXJlbnRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsIAoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjYXRpZCcsICRjYXRpZCkuCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnb3JpZ25hbWUnLCRuYW1lKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CiRzbWFydHktPmFzc2lnbigncGFyZW50dGV4dCcsIGxhbmcoJ3BhcmVudCcpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0aGllci50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_hiertab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKJGFjdGlvbiA9ICRuYW1lOwovLyB0aGlzIHRhYiBjYW4gYmUgYWN0aXZhdGVkIGJ5IGFqYXguCgoKI1B1dCB0b2dldGhlciBhIGxpc3Qgb2YgY3VycmVudCBjYXRlZ29yaWVzLi4uCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCiRoaWVyID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHkoVFJVRSk7CmlmKCBpc19hcnJheSgkaGllcikgJiYgY291bnQoJGhpZXIpICkgJHNtYXJ0eS0+YXNzaWduKCdoaWVyJywkaGllcik7CiRzbWFydHktPmFzc2lnbignaGllcicsJGhpZXIpOwkKCQojU2V0dXAgbGlua3MKJHNtYXJ0eS0+YXNzaWduKCdhZGRfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2FkZGhpZXInLCRyZXR1cm5pZCkpOwppZiggJGFjdGlvbiA9PSAnYWRtaW5faGllcnRhYicgKSAkc21hcnR5LT5hc3NpZ24oJ2FqYXgnLDEpOwoJCiNEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnaGllcmxpc3QudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoICRnQ21zICkgKSByZXR1cm47CgoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICByZXR1cm47CiAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApCiAgewoJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdwcmVmcycsJycsJ2FkbWluX3NldHRpbmdzJyk7CiAgfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9vbGRzZWFyY2gnLChpbnQpJHBhcmFtc1sndXNlX29sZHNlYXJjaCddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydzb3J0b3JkZXInXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCRwYXJhbXNbJ3NvcnRvcmRlciddKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snc29ydGJ5J10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc29ydGJ5JywkcGFyYW1zWydzb3J0YnknXSk7CiAgfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NvbGxlY3RzdGF0cycsJHBhcmFtc1snaW5wdXRfY29sbGVjdHN0YXRzJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcycsKGludCkkcGFyYW1zWydhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJlcGVuZF93ZWJzaXRlX2h0dHAnLChpbnQpJHBhcmFtc1sncHJlcGVuZF93ZWJzaXRlX2h0dHAnXSk7CgppZiggaXNzZXQoJHBhcmFtc1snZnJvbnRlbmRjcmVhdGUnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jcmVhdGUnLChpbnQpJHBhcmFtc1snZnJvbnRlbmRjcmVhdGUnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZGVsZXRlJywoaW50KSRwYXJhbXNbJ2Zyb250ZW5kZGVsZXRlJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Zyb250ZW5kX251bXJlY29yZHMnLChpbnQpJHBhcmFtc1snZnJvbnRlbmRudW1yZWNvcmRzJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Zyb250ZW5kX25ld3N0YXR1cycsJHBhcmFtc1snZnJvbnRlbmRuZXdzdGF0dXMnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfY2hhbmdlc3RhdHVzJywkcGFyYW1zWydmcm9udGVuZGNoYW5nZXN0YXR1cyddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9pbXBvcnQnLCRwYXJhbXNbJ2Zyb250ZW5kaW1wb3J0J10pOwoKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9zaG93ZXhwaXJlZCcsJHBhcmFtc1snZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxvbmFkZCcsJHBhcmFtc1snZnJvbnRlbmRfZW1haWxvbmFkZCddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uZWRpdCcsJHBhcmFtc1snZnJvbnRlbmRfZW1haWxvbmVkaXQnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxncm91cCcsJHBhcmFtc1snZnJvbnRlbmRfZW1haWxncm91cCddKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lZGl0b3IyJywoaW50KSRwYXJhbXNbJ2Zyb250ZW5kX2VkaXRvcjInXSk7CiAgfQoKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19zZXR0aW5nc19jaGFuZ2VkJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ3ByZWZzJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_email_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdlbWFpbF90ZW1wbGF0ZScpOwppZiggaXNzZXQoJHBhcmFtc1sncmVzZXQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcsJHRoaXMtPkxhbmcoJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0JykpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX2ZlZWRpdF9lbWFpbF9pc2h0bWwnLDEpOwoKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlLnRwbCc7CiAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApCiAgICAgIHsKCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJHRoaXMtPlNldFRlbXBsYXRlKCdhZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUnLCR0ZW1wbGF0ZSk7CiAgICAgIH0KCiAgfQplbHNlIGlmICggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX2lzaHRtbCcsKGludCkkcGFyYW1zWydlbWFpbF9pc2h0bWwnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3N1YmplY3QnLHRyaW0oJHBhcmFtc1snZW1haWxfc3ViamVjdCddKSk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2FkbWluX2ZlZWRpdF9lbWFpbF90ZW1wbGF0ZScsdHJpbSgkcGFyYW1zWydlbWFpbF90ZW1wbGF0ZSddKSk7CiAgfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCcnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiR0YWIgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpIHsKICAkdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOwogICR0aGlzLT5TZXRDdXJyZW50VGFiKCR0YWIpOwp9CgplY2hvICc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDgwJTsiPicuCiR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwKCQkJCQkgICAkdGhpcy0+TGFuZygnbGJsX2JhY2snKSwnaWNvbnMvc3lzdGVtL2JhY2suZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKS4nPC9kaXY+PGJyLz4nOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZzJywkdGhpcy0+TGFuZygnZmllbGRkZWZzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3JpZXMnLCR0aGlzLT5MYW5nKCdjYXRlZ29yaWVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2hpZXInLCR0aGlzLT5MYW5nKCdoaWVyYXJjaHknKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZW1haWxfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdlbWFpbF90ZW1wbGF0ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd1cmxzJywkdGhpcy0+TGFuZygndXJscycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmcycsJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzJykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmaWVsZGRlZnMnLCAkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZzdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yaWVzJywgJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl9jYXRlZ29yaWVzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgojIEhpZXJhcmNoeSBUYWIKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hpZXInLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9hY3Rpb24uYWRtaW5faGllcnRhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgojIEFkbWluIEVtYWlsIFRlbXBsYXRlIFRhYgplY2hvICR0aGlzLT5TdGFydFRhYignZW1haWxfdGVtcGxhdGUnLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9lbWFpbF90ZW1wbGF0ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKIyBVUkxTIHRhYgplY2hvICR0aGlzLT5TdGFydFRhYigndXJscycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3VybHN0YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKIyBQcmVmcyB0YWIKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZzJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fcHJlZnN0YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgVGVtcGxhdGVzJyApICkgZXhpdCgpOwoKJHRhYiA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkKewoJJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKCSR0aGlzLT5TZXRDdXJyZW50VGFiKCR0YWIpOwp9CgplY2hvICc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDgwJTsiPicuCiR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwKCQkgICAgICAgJHRoaXMtPkxhbmcoJ2xibF9iYWNrJyksJ2ljb25zL3N5c3RlbS9iYWNrLmdpZicsYXJyYXkoKSwnJywnJyxmYWxzZSkuJzwvZGl2Pjxici8+JzsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3N1bW1hcnlfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdzdW1tYXJ5dGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2RldGFpbF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2RldGFpbHRlbXBsYXRlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaGllcmxpc3RfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdoaWVyYXJjaHlsaXN0dGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlYXJjaGZvcm1fdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdzZWFyY2hmb3JtdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ25ld3NlYXJjaF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ25ld3NlYXJjaHRlbXBsYXRlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmcm9udGVuZGxpc3RfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZnJvbnRlbmRmb3JtX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnZnJvbnRlbmRmb3JtdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zyb250ZW5kYWxidW1fdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdmcm9udGVuZGFsYnVtdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygnZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkZWZhdWx0X3RlbXBsYXRlcycsJHRoaXMtPkxhbmcoJ2RlZmF1bHR0ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwplY2hvICR0aGlzLT5TdGFydFRhYignc3VtbWFyeV90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdzdW1tYXJ5XycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURSwKCQkJICAgICAgICdzdW1tYXJ5X3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoJCgplY2hvICR0aGlzLT5TdGFydFRhYignZGV0YWlsX3RlbXBsYXRlJywgJHBhcmFtcyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ2RldGFpbF8nLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX05FV0RFVEFJTF9URU1QTEFURSwKCQkJICAgICAgICdkZXRhaWxfdGVtcGxhdGUnLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX0RGTFRERVRBSUxfVEVNUExBVEUsCgkJCSAgICAgICAkdGhpcy0+TGFuZygnZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnLCAkcGFyYW1zKTsKewogIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnY2F0ZWdvcnlsaXN0XycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFLAoJCQkgICAgICAgJ2NhdGVnb3J5bGlzdF90ZW1wbGF0ZScsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0JyksCgkJCSAgICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignaGllcmxpc3RfdGVtcGxhdGUnLCAkcGFyYW1zKTsKewogIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnaGllcmxpc3RfJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ORVdISUVSTElTVF9URU1QTEFURSwKCQkJICAgICAgICdoaWVybGlzdF90ZW1wbGF0ZScsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfREZMVEhJRVJMSVNUX1RFTVBMQVRFLAoJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2hpZXJsaXN0dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzZWFyY2hmb3JtX3RlbXBsYXRlJywgJHBhcmFtcyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ3NlYXJjaGZvcm1fJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ORVdTRUFSQ0hGT1JNX1RFTVBMQVRFLAoJCQkgICAgICAgJ3NlYXJjaGZvcm1fdGVtcGxhdGUnLAoJCQkgICAgICAgQ09NUEFOWURJUl9QUkVGX0RGTFRTRUFSQ0hGT1JNX1RFTVBMQVRFLAoJCQkgICAgICAgJHRoaXMtPkxhbmcoJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0JyksCgkJCSAgICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignbmV3c2VhcmNoX3RlbXBsYXRlJywgJHBhcmFtcyk7CnsKICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ25ld3NlYXJjaF8nLAoJCQkgICAgICAgQ09NUEFOWURJUl9TRUFSQ0hGT1JNX1NZU0RGTFRURU1QTEFURSwKCQkJICAgICAgICduZXdzZWFyY2hfdGVtcGxhdGUnLAoJCQkgICAgICAgQ09NUEFOWURJUl9TRUFSQ0hGT1JNX0RGTFRURU1QTEFURU5BTUUsCgkJCSAgICAgICAkdGhpcy0+TGFuZygnbmV3c2VhcmNodGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmcm9udGVuZGxpc3RfdGVtcGxhdGUnLCAkcGFyYW1zKTsKewogIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnZnJvbnRlbmRsaXN0XycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRMSVNUX1RFTVBMQVRFLAoJCQkgICAgICAgJ2Zyb250ZW5kbGlzdF90ZW1wbGF0ZScsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ETElTVF9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdmcm9udGVuZGxpc3R0ZW1wbGF0ZV9hZGRlZGl0JyksCgkJCSAgICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2Zyb250ZW5kZm9ybV90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdmcm9udGVuZGZvcm1fJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREZPUk1fVEVNUExBVEUsCgkJCSAgICAgICAnZnJvbnRlbmRmb3JtX3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRGT1JNX1RFTVBMQVRFLAoJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnKSwKCQkJICAgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYignZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZScsICRwYXJhbXMpOwp7CiAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdmcm9udGVuZGFsYnVtXycsCgkJCSAgICAgICBDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRBTEJVTV9URU1QTEFURSwKCQkJICAgICAgICdmcm9udGVuZGFsYnVtX3RlbXBsYXRlJywKCQkJICAgICAgIENPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRBTEJVTV9URU1QTEFURSwKCQkJICAgICAgICR0aGlzLT5MYW5nKCdmcm9udGVuZGFsYnVtdGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwp9CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmcm9udGVuZGltcG9ydF90ZW1wbGF0ZScsJHBhcmFtcyk7CiRzbWFydHktPmFzc2lnbignaWZvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZG9pbXBvcnR0ZW1wbGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignZmVpbXBvcnRfdGVtcGxhdGUnLCR0aGlzLT5HZXRUZW1wbGF0ZShDT01QQU5ZRElSX0ZST05URU5ESU1QT1JUX1RFTVBMQVRFKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZnJvbnRlbmRpbXBvcnRfZm9ybS50cGwnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgICAKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RlZmF1bHRfdGVtcGxhdGVzJyk7CnsKICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fZGZsdF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdkZWZhdWx0X3RlbXBsYXRlX25vdGljZScpKTsKCiAgJHBhcnRzID0gYXJyYXkoKTsKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURSwnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnKSwKCQkJCQkJCQkJCQkJICAgJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnKTsKCgogICRwYXJ0c1tdID0gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc3RhcnRfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJycsCgkJCQkJCQkJCQkJCSAgIENPTVBBTllESVJfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsJ2FkbWluX3RlbXBsYXRlcycsJ2RlZmF1bHRfdGVtcGxhdGVzJywKCQkJCQkJCQkJCQkJICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnKSwKCQkJCQkJCQkJCQkJICAgJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcpOwoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKCiAgJHBhcnRzW10gPSBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV0hJRVJMSVNUX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnKSwKCQkJCQkJCQkJCQkJICAgJ29yaWdfaGllcmxpc3RfdGVtcGxhdGUudHBsJyk7CgogICRwYXJ0c1tdID0gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc3RhcnRfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJycsCgkJCQkJCQkJCQkJCSAgIENPTVBBTllESVJfUFJFRl9ORVdTRUFSQ0hGT1JNX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZScpLAoJCQkJCQkJCQkJCQkgICAnb3JpZ19zZWFyY2hmb3JtX3RlbXBsYXRlLnRwbCcpOwoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRMSVNUX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9mcm9udGVuZGxpc3RfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX2Zyb250ZW5kbGlzdF90ZW1wbGF0ZS50cGwnKTsKCiAgJHBhcnRzW10gPSBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJCQkJCQkJICAgQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ERk9STV9URU1QTEFURSwnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZScpLAoJCQkJCQkJCQkJCQkgICAnb3JpZ19mcm9udGVuZGZvcm1fdGVtcGxhdGUudHBsJyk7CgogICRwYXJ0c1tdID0gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc3RhcnRfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJycsCgkJCQkJCQkJCQkJCSAgIENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREFMQlVNX1RFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZScpLAoJCQkJCQkJCQkJCQkgICAnb3JpZ19mcm9udGVuZGFsYnVtX3RlbXBsYXRlLnRwbCcpOwoKICAkcGFydHNbXSA9IGNnZV90ZW1wbGF0ZV9hZG1pbjo6Z2V0X3N0YXJ0X3RlbXBsYXRlX2Zvcm0oJHRoaXMsJGlkLCcnLAoJCQkJCQkJCQkJCQkgICBDT01QQU5ZRElSX1NFQVJDSEZPUk1fU1lTREZMVFRFTVBMQVRFLCdhZG1pbl90ZW1wbGF0ZXMnLCdkZWZhdWx0X3RlbXBsYXRlcycsCgkJCQkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCd0aXRsZV9uZXdzZWFyY2hfZGZsdHRlbXBsYXRlJyksCgkJCQkJCQkJCQkJCSAgICdvcmlnX25ld3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKCiAgJHNtYXJ0eS0+YXNzaWduKCdkZmx0X3RwbF9wYXJ0cycsJHBhcnRzKTsKCiAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdkZmx0X3RlbXBsYXRlcy50cGwnKTsKfQplY2hvICR0aGlzLT5FbmRUYWIoKTsKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_urlstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxfcmVxdWlyZWQnLChpbnQpJHBhcmFtc1sndXJsX3JlcXVpcmVkJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VybF9hdXRvY3JlYXRlJywoaW50KSRwYXJhbXNbJ3VybF9hdXRvY3JlYXRlJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VybF9jcmVhdGVvbmNvcHknLChpbnQpJHBhcmFtc1sndXJsX2NyZWF0ZW9uY29weSddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxfcmVkaXJlY3RvbGQnLChpbnQpJHBhcmFtc1sndXJsX3JlZGlyZWN0b2xkJ10pOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY3JlYXRldXJscyddKSApCiAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxjb21wYW55X25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIFVSTCA9ID8nOwoJJGxpc3QgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgnJykpOwoJJG51bV91cGRhdGVkID0gMDsKCSRudW1fZXJyb3JzID0gMDsKCWlmKCBpc19hcnJheSgkbGlzdCkgKQoJICB7CgkJZm9yZWFjaCggJGxpc3QgYXMgJG9uZSApCgkJICB7CgkJCSR1cmwgPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRvbmVbJ2NvbXBhbnlfbmFtZSddKTsKCQkJaWYoICEkdXJsICkKCQkJICB7CgkJCQkkbnVtX2Vycm9ycysrOwoJCQkJY29udGludWU7CgkJCSAgfQoJCQlpZiggIWNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHVybCkgKQoJCQkgIHsKCQkJCSRudW1fZXJyb3JzKys7CgkJCQljb250aW51ZTsKCQkJICB9CgoJCQkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUIHVybCA9ID8gV0hFUkUgaWQgPSA/JzsKCQkJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVybCwkb25lWydpZCddKSk7CgkJCWlmKCAhJGRiciApCgkJCSAgewoJCQkJJG51bV9lcnJvcnMrKzsKCQkJCWNvbnRpbnVlOwoJCQkgIH0KCgkJCSRudW1fdXBkYXRlZCsrOwoJCSAgfQoJICB9CgoJaWYoICRudW1fdXBkYXRlZCApCgkgIHsKCQkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnaW5mb19iYXRjaHVybGNyZWF0ZScsJG51bV91cGRhdGVkKSk7CgkgIH0KCWlmKCAkbnVtX2Vycm9ycyApCgkgIHsKCQkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2JhdGNodXJsY3JlYXRlJywkbnVtX2Vycm9ycykpOwoJICB9CiAgfQoKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwndXJscycsJycsJ2FkbWluX3NldHRpbmdzJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgZXhpdDsKaWYoICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddICE9ICdQT1NUJyApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGlkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmZGlkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmaWxlbmFtZSddKSApIGV4aXQ7CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwokZmRpZCA9IChpbnQpJHBhcmFtc1snZmRpZCddOwokZmlsZW5hbWUgPSB0cmltKCRwYXJhbXNbJ2ZpbGVuYW1lJ10pOwoKJHRoZV9jb21wYW55ID0gY2RfY29tcGFueTo6bG9hZF9ieV9pZCgkY29tcGlkKTsKaWYoIGlzX29iamVjdCgkdGhlX2NvbXBhbnkpICkgewogICRmaWVsZCA9ICR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRmZGlkKTsKICBpZiggaXNfb2JqZWN0KCRmaWVsZCkgJiYgJGZpZWxkLT50eXBlID09ICdhbGJ1bScgKSB7CiAgICBpZiggJGZpZWxkLT52YWx1ZSApIHsKICAgICAgJGZpbGVzID0gdW5zZXJpYWxpemUoJGZpZWxkLT52YWx1ZSk7CiAgICAgIGlmKCBpc19hcnJheSgkZmlsZXMpICYmIGNvdW50KCRmaWxlcykgKSB7CgkvLyB0aGVyZSBhcmUgZmlsZXMgaW4gdGhlIGxpc3QuLi4gc28gbGV0cyBkZWxldGUgaXQuCgkkbmV3ZmlsZXMgPSBhcnJheSgpOwoJZm9yZWFjaCggJGZpbGVzIGFzICRvbmUgKSB7CgkgIGlmKCAkb25lICE9ICRmaWxlbmFtZSApIHsKCSAgICAkbmV3ZmlsZXNbXSA9ICRvbmU7CgkgIH0KCX0KCSR2YWx1ZSA9ICcnOwoJaWYoIGNvdW50KCRuZXdmaWxlcykgPiAwICkgewoJICAkdmFsdWUgPSBzZXJpYWxpemUoJG5ld2ZpbGVzKTsKCX0KCS8vIGFjdHVhbGx5IHVubGluayB0aGUgZmlsZQoJJGZzID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkLCdhbGJ1bV8nLiRmZGlkLCRmaWxlbmFtZSk7CglAdW5saW5rKCRmcyk7CgkkdGhlX2NvbXBhbnktPnNldF9maWVsZCgkZmRpZCwkdmFsdWUpOwoJJHRoZV9jb21wYW55LT5zYXZlKCk7CglhdWRpdCgkY29tcGlkLCR0aGlzLT5HZXROYW1lKCksJ0RlbGV0ZWQgZmlsZSAnLiRmaWxlbmFtZS4nIGZyb20gYWxidW0gZmllbGQgJy4kZmRpZC4nIGZvciBjb21wYW55ICcuJGNvbXBpZCk7CiAgICAgIH0KICAgIH0KICB9Cn0KZXhpdDsKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_gallery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkgKSBleGl0OwoKJGNvbXBpZCA9IChpbnQpJHBhcmFtc1snY29tcGlkJ107CiRmZGlkID0gKGludCkkcGFyYW1zWydmZGlkJ107CiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCiRiYXNlX2RpciA9IGNtc19qb2luX3BhdGgoJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCwnYWxidW1fJy4kZmRpZCk7CiR1cGxvYWRfZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkYmFzZV9kaXIpOwokdXBsb2FkX3VybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2lkeyRjb21waWR9L2FsYnVtXyRmZGlkIjsKJHNtYXJ0eS0+YXNzaWduKCdiYXNlX2RpcicsJGJhc2VfZGlyKTsKJHNtYXJ0eS0+YXNzaWduKCd1cGxvYWRfdXJsJywkdXBsb2FkX3VybCk7Cgokc21hcnR5LT5hc3NpZ24oJ3RyYXNoY2FuJywkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpLicvaWNvbnMvZGVsZXRlLmdpZicpOwoKJHRoZV9jb21wYW55ID0gY2RfY29tcGFueTo6bG9hZF9ieV9pZCgkY29tcGlkKTsKaWYoIGlzX29iamVjdCgkdGhlX2NvbXBhbnkpICkgewogICRmaWVsZCA9ICR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRmZGlkKTsKICBpZiggaXNfb2JqZWN0KCRmaWVsZCkgKSB7CiAgICAkZmlsZXMgPSBhcnJheSgpOwogICAgaWYoIGlzc2V0KCRmaWVsZC0+dmFsdWUpICYmICRmaWVsZC0+dmFsdWUgKSAkZmlsZXMgPSB1bnNlcmlhbGl6ZSgkZmllbGQtPnZhbHVlKTsKICAgIGlmKCBjb3VudCgkZmlsZXMpICkgewogICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpbGVzJywkZmlsZXMpOwogICAgfQogIH0KfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y29tcGFueV9nYWxsZXJ5LnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_selcompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYoICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddICE9ICdQT1NUJyApIGV4aXQ7Cgokb3V0ID0gJyc7CmlmKCBpc3NldCgkX1BPU1RbJ2NvbXBpZCddKSApIHsKICAkY29tcGFueSA9IGNkX3V0aWxzOjpnZXRfY29tcGFueSgoaW50KSRfUE9TVFsnY29tcGlkJ10pOwogIGlmKCBpc19vYmplY3QoJGNvbXBhbnkpICkgewoJJG91dCA9ICRjb21wYW55LT5jb21wYW55X25hbWU7CiAgfQp9IC8vIGlmIGlzc2V0IGNvbXBpZAplbHNlIGlmKCBpc3NldCgkX1BPU1RbJ3Rlcm0nXSkgKSB7CiAgJG1vZGUgPSAnc3RhcnRzd2l0aCc7CiAgaWYoIGlzc2V0KCRfUE9TVFsnbW9kZSddKSApIHsKCSR0bW9kZSA9IHN0cnRvbG93ZXIoJF9QT1NUWydtb2RlJ10pOwoJc3dpdGNoKCAkdG1vZGUgKSB7CgljYXNlICdlbmRzd2l0aCc6CgljYXNlICdhbnknOgoJY2FzZSAnc3RhcnRzd2l0aCc6CgkgICRtb2RlID0gJHRtb2RlOwoJICBicmVhazsKCX0KICB9CiAgJHRlcm0gPSB0cmltKCRfUE9TVFsndGVybSddKTsKICAKICBzd2l0Y2goICRtb2RlICkgewogIGNhc2UgJ2FueSc6CglpZiggIXN0YXJ0c3dpdGgoJHRlcm0sJyonKSApICR0ZXJtID0gJyonLiR0ZXJtOwoJaWYoICFlbmRzd2l0aCgkdGVybSwnKicpICkgJHRlcm0gLj0gJyonOwoJYnJlYWs7CiAgY2FzZSAnZW5kc3dpdGgnOgoJaWYoICFzdGFydHN3aXRoKCR0ZXJtLCcqJykgKSAkdGVybSA9ICcqJy4kdGVybTsKCWJyZWFrOwogIGNhc2UgJ3N0YXJ0c3dpdGgnOgogIGRlZmF1bHQ6CglpZiggIWVuZHN3aXRoKCR0ZXJtLCcqJykgKSAkdGVybSAuPSAnKic7CglicmVhazsKICB9CiAgJHRlcm0gPSAnOjonLiR0ZXJtOwogICRmaWx0ZXIgPSBuZXcgY2RfY29tcGFueV9maWx0ZXIoYXJyYXkoJ25hbWUnPT4kdGVybSwncGFnZWxpbWl0Jz0+MjUsJ2RlZXAnPT5mYWxzZSkpOwogICRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwogIAogICRuID0gJHF1ZXJ5LT5nZXRfcmVzdWx0X2NvdW50KCk7CiAgaWYoICRuID09IDAgKSBleGl0OwogICRvdXQgPSBhcnJheSgpOwogIHdoaWxlKCAhJHF1ZXJ5LT5FT0YgKSB7Cgkkcm93ID0gJHF1ZXJ5LT5maWVsZHM7Cgkkb3V0W10gPSBhcnJheSgnbGFiZWwnPT4kcm93Wydjb21wYW55X25hbWUnXSwndmFsdWUnPT4kcm93WydpZCddKTsKCSRxdWVyeS0+TW92ZU5leHQoKTsKICB9Cn0gLy8gaWYgaXNzZXQgdGVybQoKZWNobyBqc29uX2VuY29kZSgkb3V0KTsgCmV4aXQ7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_sort.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgZXhpdDsKaWYoICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddICE9ICdQT1NUJyApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGlkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmZGlkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydvcmRlciddKSApIGV4aXQ7CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwokZmRpZCA9IChpbnQpJHBhcmFtc1snZmRpZCddOwokb3JkZXIgPSAkcGFyYW1zWydvcmRlciddOwppZiggIWlzX2FycmF5KCRvcmRlcikgfHwgIWNvdW50KCRvcmRlcikgKSByZXR1cm47CgokdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQpOwppZiggaXNfb2JqZWN0KCR0aGVfY29tcGFueSkgKSB7CiAgJGZpZWxkID0gJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZkaWQpOwogIGlmKCBpc19vYmplY3QoJGZpZWxkKSAmJiAkZmllbGQtPnR5cGUgPT0gJ2FsYnVtJyApIHsKICAgIGlmKCAkZmllbGQtPnZhbHVlICkgewogICAgICAkZmlsZXMgPSB1bnNlcmlhbGl6ZSgkZmllbGQtPnZhbHVlKTsKICAgICAgaWYoIGlzX2FycmF5KCRmaWxlcykgJiYgY291bnQoJGZpbGVzKSA9PSBjb3VudCgkb3JkZXIpICkgewoJJG5ld2ZpbGVzID0gYXJyYXkoKTsKCWZvcmVhY2goICRvcmRlciBhcyAkb25lICkgewoJICAkbmV3ZmlsZXNbXSA9ICRmaWxlc1skb25lXTsKCX0KCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRmZGlkLHNlcmlhbGl6ZSgkbmV3ZmlsZXMpKTsKCSR0aGVfY29tcGFueS0+c2F2ZSgpOwoJYXVkaXQoJGNvbXBpZCwkdGhpcy0+R2V0TmFtZSgpLCdTb3J0ZWQgZmlsZXMgaW4gYWxidW0gJy4kZmRpZCk7CiAgICAgIH0KICAgIH0KICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_upload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgZXhpdDsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJGNvbXBpZCA9IChpbnQpJHBhcmFtc1snY29tcGlkJ107CiRmZGlkID0gKGludCkkcGFyYW1zWydmZGlkJ107CgovLyBnZXQgdGhlIG5hbWUgb2YgdGhlIGFsYnVtLi4uIGFuZCBjb252ZXJ0IGl0IHRvIGFuIGFsaWFzCiRvcHRpb25zID0gYXJyYXkoJ3BhcmFtX25hbWUnPT4naW1hZ2VfdXBsb2FkJyk7CiRvcHRpb25zWydjb21waWQnXSA9ICRjb21waWQ7CiRvcHRpb25zWydmZGlkJ10gPSAkZmRpZDsKJG9wdGlvbnNbJ3VwbG9hZF9kaXInXSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCwnYWxidW1fJy4kZmRpZCkuJy8nOwokb3B0aW9uc1sndXBsb2FkX3VybCddID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvaWR7JGNvbXBpZH0vYWxidW1fJGZkaWQiOwokdXBsb2FkX2hhbmRsZXIgPSBuZXcgQ29tcGFueURpcmVjdG9yeUpRdWVyeVVwbG9hZEhhbmRsZXIoJG9wdGlvbnMpOwoKaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7CmhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZSwgbm8tY2FjaGUnKTsKaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJmaWxlcy5qc29uIicpOwpoZWFkZXIoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYnKTsKaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IConKTsKaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzOiBPUFRJT05TLCBIRUFELCBHRVQsIFBPU1QsIFBVVCwgREVMRVRFJyk7CmhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogWC1GaWxlLU5hbWUsIFgtRmlsZS1UeXBlLCBYLUZpbGUtU2l6ZScpOwoKc3dpdGNoICgkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSkgewogICAgY2FzZSAnT1BUSU9OUyc6CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdIRUFEJzoKICAgIGNhc2UgJ0dFVCc6CiAgICAgICAgJHVwbG9hZF9oYW5kbGVyLT5nZXQoKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ1BPU1QnOgogICAgICAgICR1cGxvYWRfaGFuZGxlci0+cG9zdCgpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnREVMRVRFJzoKICAgICAgJHVwbG9hZF9oYW5kbGVyLT5kZWxldGUoKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkJyk7Cn0KCmV4aXQ7CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.browsehier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIGZ1bmN0aW9ucwppZiggIWZ1bmN0aW9uX2V4aXN0cygnY2RfZXhwbG9kZUhhc2hUb1RyZWUnKSkgewogIGZ1bmN0aW9uIGNkX2V4cGxvZGVIYXNoVG9UcmVlKCRoYXNoLCAkZGVsaW1pdGVyID0gJy4nLCAkYmFzZXZhbCA9IGZhbHNlKQogIHsKICAgIGlmKCFpc19hcnJheSgkaGFzaCkpIHJldHVybiBmYWxzZTsKICAgICRzcGxpdFJFICAgPSAnLycgLiBwcmVnX3F1b3RlKCRkZWxpbWl0ZXIsICcvJykgLiAnLyc7CiAgICAkcmV0dXJuQXJyID0gYXJyYXkoKTsKICAgIGZvcmVhY2ggKCRoYXNoIGFzICRrZXkgPT4gJHZhbCkgewoJICAvLyBHZXQgcGFyZW50IHBhcnRzIGFuZCB0aGUgY3VycmVudCBsZWFmCgkgICRwYXJ0cyAgICA9IHByZWdfc3BsaXQoJHNwbGl0UkUsICRrZXksIC0xLCBQUkVHX1NQTElUX05PX0VNUFRZKTsKCSAgJGxlYWZQYXJ0ID0gYXJyYXlfcG9wKCRwYXJ0cyk7CgoJICAvLyBCdWlsZCBwYXJlbnQgc3RydWN0dXJlIAoJICAvLyBNaWdodCBiZSBzbG93IGZvciByZWFsbHkgZGVlcCBhbmQgbGFyZ2Ugc3RydWN0dXJlcwoJICAkcGFyZW50QXJyID0gJiRyZXR1cm5BcnI7CgkgIGZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkgewoJCWlmICghaXNzZXQoJHBhcmVudEFyclskcGFydF0pKSB7CgkJICAkcGFyZW50QXJyWyRwYXJ0XSA9IGFycmF5KCk7CgkJfSBlbHNlaWYgKCFpc19hcnJheSgkcGFyZW50QXJyWyRwYXJ0XSkpIHsKCQkgIGlmICgkYmFzZXZhbCkgewoJCQkkcGFyZW50QXJyWyRwYXJ0XSA9IGFycmF5KCdfX2Jhc2VfdmFsJyA9PiAkcGFyZW50QXJyWyRwYXJ0XSk7CgkJICB9IGVsc2UgewoJCQkkcGFyZW50QXJyWyRwYXJ0XSA9IGFycmF5KCk7IAoJCSAgfQoJCX0KCQkkcGFyZW50QXJyID0gJiRwYXJlbnRBcnJbJHBhcnRdOwoJICB9CgoJICAvLyBBZGQgdGhlIGZpbmFsIHBhcnQgdG8gdGhlIHN0cnVjdHVyZQoJICBpZiAoZW1wdHkoJHBhcmVudEFyclskbGVhZlBhcnRdKSkgewoJCSRwYXJlbnRBcnJbJGxlYWZQYXJ0XSA9ICR2YWw7CgkgIH0gZWxzZWlmICgkYmFzZXZhbCAmJiBpc19hcnJheSgkcGFyZW50QXJyWyRsZWFmUGFydF0pKSB7CgkJJHBhcmVudEFyclskbGVhZlBhcnRdWydfX2Jhc2VfdmFsJ10gPSAkdmFsOwoJICB9CiAgICB9CiAgICByZXR1cm4gJHJldHVybkFycjsKICB9Cn0gLy8gaWYKCi8vIGluaXRpYWxpemF0aW9uCiR0aGV0ZW1wbGF0ZSA9ICdoaWVybGlzdF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUSElFUkxJU1RfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snaGllcmxpc3R0ZW1wbGF0ZSddICkgKSAkdGhldGVtcGxhdGUgPSAnaGllcmxpc3RfJy4kcGFyYW1zWydoaWVybGlzdHRlbXBsYXRlJ107CgokY2F0ZWdvcnkgPSAnJzsKJGNhdGVnb3J5X2luZm8gPSAnJzsKJHdoZXJlID0gYXJyYXkoKTsKJHBhcm1zID0gYXJyYXkoKTsKJHF1ZXJ5c3RhcnQgPSAnU0VMRUNUIGNoLiosY291bnQoY2MuaWQpIGFzIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgY2ggTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgY2MgT04gY2guaWQgPSBjYy5oaWVyX2lkJzsKJHF1ZXJ5ZW5kID0gJ0dST1VQIEJZIGNoLmlkIE9SREVSIEJZIGhpZXJhcmNoeSc7CgovLyBnZXQgcGFyYW0gZGF0YQppZiggaXNzZXQoJHBhcmFtc1snaGllciddKSApICRoaWVyID0gdHJpbSgkcGFyYW1zWydoaWVyJ10pOwppZiggIWVtcHR5KCRoaWVyKSApIHsKICAkcXVlcnkgPSAnU0VMRUNUIGlkLGhpZXJhcmNoeSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIFdIRVJFIG5hbWUgPSA/JzsKICAkaGllcl9pbmZvID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRoaWVyKSk7Cn0KCmlmKCBpc3NldCgkaGllcl9pbmZvKSAmJiBpc19hcnJheSgkaGllcl9pbmZvKSApIHsKICAkd2hlcmVbXSA9ICdoaWVyYXJjaHkgTElLRSA/JzsKICAkcGFybXNbXSA9ICRoaWVyX2luZm9bJ2hpZXJhcmNoeSddLicuJSc7Cn0KCi8vIGJ1aWxkIHRoZSBxdWVyeQokcXVlcnkgPSAkcXVlcnlzdGFydDsKaWYoIGNvdW50KCR3aGVyZSkgKSB7CiAgJHF1ZXJ5IC49ICcgV0hFUkUgJy5pbXBsb2RlKCcgQU5EICcsJHdoZXJlKTsKfQokcXVlcnkgLj0gJyAnIC4gJHF1ZXJ5ZW5kOwoKLy8gZ2V0IHRoZSBkYXRhCiR0bXAxID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJHBhcm1zKSk7CmlmKCAhJHRtcDEgKSByZXR1cm47Cgokc3VicXVlcnkgPSAnU0VMRUNUIGhpZXJfaWQsQ09VTlQoaWQpIEFTIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgICAgV0hFUkUgc3RhdHVzID0gPyBBTkQgIUlTTlVMTChoaWVyX2lkKSBHUk9VUCBCWSBoaWVyX2lkJzsKJHRtcDIgPSAkZGItPkdldEFycmF5KCRzdWJxdWVyeSxhcnJheSgncHVibGlzaGVkJykpOwokdG1wMyA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wMiwnaGllcl9pZCcpOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wMSk7ICRpKysgKSB7CiAgJHJlYyA9JiAkdG1wMVskaV07CiAgJHJlY1snY291bnQnXSA9IDA7CiAgJHJlY1snZGVwdGgnXSA9IGNvdW50KGV4cGxvZGUoJy4nLCRyZWNbJ2hpZXJhcmNoeSddKSk7CiAgaWYoIGlzc2V0KCR0bXAzWyRyZWNbJ2lkJ11dKSApICRyZWNbJ2NvdW50J10gPSAkdG1wM1skcmVjWydpZCddXVsnY291bnQnXTsKCiAgJHBhcm1zID0gYXJyYXkoJ2hpZXInPT4kcmVjWyduYW1lJ10pOwogIGlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkgKSAkcGFybXNbJ3N1bW1hcnl0ZW1wbGF0ZSddID0gJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107CiAgJHJlY1sndXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLGFycmF5KCdoaWVyJz0+JHJlY1snbmFtZSddKSk7Cn0KCiR0bXAxID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAxLCdoaWVyYXJjaHknKTsKJGRhdGEgPSBhcnJheSgpOwpmb3JlYWNoKCAkdG1wMSBhcyAka2V5ID0+ICR2YWwgKSB7CiAgJGRhdGFbJGtleV0gPSBhcnJheSgnbm9kZSc9PiR2YWwpOwp9CgovLyBub3cgbWFrZSBpdCBpbnRvIGEgdHJlZSBzdHJ1Y3R1cmUsIGlmIHBvc3NpYmxlLgokZGF0YSA9IGNkX2V4cGxvZGVIYXNoVG9UcmVlKCRkYXRhLCAnLicsIHRydWUpOwoKLy8gYW5kIGdpdmUgaXQgdG8gc21hcnR5CiRzbWFydHktPmFzc2lnbignaGllcmRhdGEnLCRkYXRhKTsKCi8vIGFuZCBwcm9jZXNzIHRoZSB0ZW1wbGF0ZS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoZXRlbXBsYXRlID0gJ2NhdGVnb3J5bGlzdF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gKSApIHsKICAkdGhldGVtcGxhdGUgPSAnY2F0ZWdvcnlsaXN0XycuJHBhcmFtc1snY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXTsKfQoKJHF1ZXJ5ID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydzaG93YWxsJ10pICkKICB7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGEuKiwgYmIuY291bnQgCiAgICAgICAgICAgICAgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBhIAogICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiAKICAgICAgICAgICAgICAgKFNFTEVDVCBhLmNhdGVnb3J5X2lkLGNvdW50KGIuaWQpIEFTIGNvdW50IAogICAgICAgICAgICAgICAgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIGEgCiAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBiIE9OIGEuY29tcGFueV9pZCA9IGIuaWQgCiAgICAgICAgICAgICAgICAgV0hFUkUgYi5zdGF0dXMgPSBcJ3B1Ymxpc2hlZFwnIAogICAgICAgICAgICAgICAgR1JPVVAgYnkgYS5jYXRlZ29yeV9pZCkgYmIgCiAgICAgICAgICAgICAgT04gYS5pZCA9IGJiLmNhdGVnb3J5X2lkIE9SREVSIEJZIGEubmFtZSBBU0MnOwp9CmVsc2UgewogICRzdWJxdWVyeSA9ICcnOwogIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pICkgewoJJHN1cWJxdWVyeSA9ICdTRUxFQ1QgY29tcGFueV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgV0hFUkUgY2F0ZWdvcnlfaWQgPSAnLihpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddOwogIH0KICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeSddKSApIHsKCSRpZHMgPSBjZF9jb21wYW55X3F1ZXJ5OjpnZXRfY2F0ZWdvcnlfaWRzKCRwYXJhbXNbJ2NhdGVnb3J5J10pOwoJaWYoIGlzX2FycmF5KCRpZHMpICYmIGNvdW50KCRpZHMpICkgewoJICAkc3VicXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIGNvbXBhbnlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRpZHMpLicpJzsKCX0KICB9CiAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snaGllciddKSApIHsKCSRoaWVyYXJjaHkgPSBodG1sX2VudGl0eV9kZWNvZGUodHJpbSgkcGFyYW1zWydoaWVyJ10pKTsKCSRoaWVyYXJjaHkgPSB0cmltKCRoaWVyYXJjaHkpOwoJJGhpZXJhcmNoeSA9IHRyaW0oc3RyX3JlcGxhY2UoIiciLCdfJywkaGllcmFyY2h5KSk7CgoJaWYoIHN0cnBvcygkaGllcmFyY2h5LCd8JykgIT09IEZBTFNFIHx8IHN0cnBvcygkaGllcmFyY2h5LCcqJykgIT09IEZBTFNFICkgewoJICAkaGllcmFyY2h5ID0gdHJpbShzdHJfcmVwbGFjZSgnKicsJyUnLCRoaWVyYXJjaHkpKTsKCSAgJHN1YnF1ZXJ5ID0gJ1NFTEVDVCBESVNUSU5DVCBDTy5pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgQ08gCiAgICAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgQ0gKICAgICAgICAgICAgICAgICAgICAgT04gQ0guaWQgPSBDTy5oaWVyX2lkIAogICAgICAgICAgICAgICAgICAgV0hFUkUgdXBwZXIoQ0gubG9uZ19uYW1lKSBMSUtFIHVwcGVyKCcuJGRiLT5xc3RyKCRoaWVyYXJjaHkpLicpJzsKCX0KCWVsc2UgewoJICAkc3VicXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIENPLmlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBDTyAKICAgICAgICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBDSAogICAgICAgICAgICAgICAgICAgT04gQ0guaWQgPSBDTy5oaWVyX2lkIAogICAgICAgICAgICAgICAgICAgV0hFUkUgQ0gubmFtZSA9ICcuJGRiLT5xc3RyKCRoaWVyYXJjaHkpOwoJfQogIH0KCiAgJHF1ZXJ5ID0gJ1NFTEVDVCBDLiosY291bnQoQkIuaWQpIEFTIGNvdW50IAogICAgICAgICAgICBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQSAKICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgQkIgCiAgICAgICAgICAgIE9OIEEuY29tcGFueV9pZCA9IEJCLmlkIEFORCBCQi5zdGF0dXMgPSBcJ3B1Ymxpc2hlZFwnJzsKICBpZiggJHN1YnF1ZXJ5ICkgJHF1ZXJ5IC49ICcgQU5EIEJCLmlkIElOICgnLiRzdWJxdWVyeS4iKVxuIjs7CiAgJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIEMgT04gQy5pZCA9IEEuY2F0ZWdvcnlfaWQnOyAKICAkcXVlcnkgLj0gJyBHUk9VUCBCWSBBLmNhdGVnb3J5X2lkIE9SREVSIEJZIEMubmFtZSBBU0MnOwp9CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CgokcmVzdWx0cyA9IGFycmF5KCk7CiRkZXRhaWxwYWdlID0gJHJldHVybmlkOwovLyR1cmxmbXQgPSAiY29tcGFuaWVzL2J5Y2F0ZWdvcnkvJWQvIi4oJGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCk7CiR1cmxmbXQgPSAiY29tcGFuaWVzL2J5Y2F0ZWdvcnkvJWQvIi4kcmV0dXJuaWQ7CiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKd2hpbGUoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkgewogICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICBmb3JlYWNoKCAkcm93IGFzICRrID0+ICR2ICkgewoJJG9iai0+JGsgPSAkdjsKICB9CiAgaWYoIGlzX251bGwoJG9iai0+Y291bnQpICkgJG9iai0+Y291bnQgPSAwOwogIGlmKCAkb2JqLT5pbWFnZSApIHsKCSRwYXRoID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2NhdCcuJG9iai0+aWQpOwoJaWYoIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJHBhdGgsJG9iai0+aW1hZ2UpKSApIHsKCSAgJG9iai0+aW1hZ2VfdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvY2F0eyRvYmotPmlkfS97JG9iai0+aW1hZ2V9IjsKCSAgaWYoIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJHBhdGgsJ3RodW1iXycuJG9iai0+aW1hZ2UpKSApIHsKCQkkb2JqLT50aHVtYl91cmwgPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLiIvY29tcGFueWRpcmVjdG9yeS9jYXR7JG9iai0+aWR9L3RodW1iX3skb2JqLT5pbWFnZX0iOwoJICB9Cgl9CiAgfQoKICB7CgkvLyBhbiB1bi1wcmV0dHkgdmVyc2lvbiBvZiB0aGUgc3VtbWFyeSB1cmwuICAgVGhpcyB3aWxsIHBhc3MgZG93biB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gKGxpa2UgdGhlIGhpZXIpCgkkcGFybXMyID0gJHBhcmFtczsKCXVuc2V0KCRwYXJtczJbJ2NhdGVnb3J5aWQnXSk7CglpZiggaXNzZXQoJHBhcm1zMlsnY2F0ZWdvcnknXSkgKSAkcGFybXMyWydjYXRlZ29yeTInXSA9ICRyb3dbJ25hbWUnXTsgLy8gYWxyZWFkeSBoYXZlIGEgY2F0ZWdvcnksIGhhdmUgdG8gdXNlIGNhdGVnb3J5MgoKCSRvYmotPnN0ZHN1bW1hcnlfdXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywoJGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCksCgkJCQkJCQkJCQkJICcnLCRwYXJtczIsJycsdHJ1ZSx0cnVlLCcnKTsKICB9CgogIHsKCS8vIHRoZSBvbGQsIHN0YW5kYXJkLCBwcmV0dHkgdXJsIChieSBjYXRlZ29yeSkuCgkkcGFyYW1zMyA9ICRwYXJhbXM7CglpZiggaXNzZXQoJHBhcmFtczNbJ2NhdGVnb3J5J10pICkgdW5zZXQoJHBhcmFtczNbJ2NhdGVnb3J5J10pOwoJJHBhcmFtczNbJ2NhdGVnb3J5aWQnXT0kcm93WydpZCddOwoJJHByZXR0eXVybCA9IHNwcmludGYoJHVybGZtdCwkcm93WydpZCddKTsKCSRvYmotPnN1bW1hcnlfdXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywoJGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCksCgkJCQkJCQkJCQkgICcnLCRwYXJhbXMzLAoJCQkJCQkJCQkJICAnJyx0cnVlLHRydWUsJycsdHJ1ZSk7CiAgfQoKICAkcmVzdWx0c1tdID0gJG9iajsKfQppZiggJGRicmVzdWx0ICkgJGRicmVzdWx0LT5DbG9zZSgpOwoKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeWxpc3QnLCRyZXN1bHRzKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.checkurl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHR1cmwgPSAnJzsKJHRuYW1lID0gJyc7CiRvdXRwdXQgPSBuZXcgU3RkQ2xhc3MoKTsKCmlmKCBpc3NldCgkcGFyYW1zWydjZF9uYW1lJ10pICkgJHRuYW1lID0gdHJpbSgkcGFyYW1zWydjZF9uYW1lJ10pOwppZiggaXNzZXQoJHBhcmFtc1snY2RfdXJsJ10pICkgJHR1cmwgPSB0cmltKCRwYXJhbXNbJ2NkX3VybCddKTsKCmlmKCAkdG5hbWUgPT0gJycgKQogIHsKICAgICRvdXRwdXQtPnN0YXR1cyA9ICdFUlJPUic7CiAgICAkb3V0cHV0LT5lcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbmFtZScpOwogICAgZWNobyBqc29uX2VuY29kZSgkb3V0cHV0KTsKICAgIGV4aXQoKTsKICB9CgokdG5hbWUgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCR0bmFtZSk7CiR0dXJsID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkdHVybCk7CgovLyBpZiB3ZSBoYXZlIGEgdXJsLCB3ZSBqdXN0IGNoZWNrIHRoZSBvbmUgcHJvdmlkZWQKLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHVybCwgd2UgY2FsY3VsYXRlIG9uZS4KaWYoICEkdHVybCApICR0dXJsID0gY2RfdXRpbHM6OmdlbmVyYXRlX3VybCgkdG5hbWUpOwppZiggISR0dXJsICkKICB7Cgkkb3V0cHV0LT5zdGF0dXMgPSAnRVJST1InOwoJJG91dHB1dC0+ZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKTsKCWVjaG8ganNvbl9lbmNvZGUoJG91dHB1dCk7CglleGl0KCk7CiAgfQoKJHJlcyA9IGNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHR1cmwpOwppZiggISRyZXMgKQogIHsKCSRvdXRwdXQtPnN0YXR1cyA9ICdFUlJPUic7Cgkkb3V0cHV0LT5lcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJyk7CgllY2hvIGpzb25fZW5jb2RlKCRvdXRwdXQpOwoJZXhpdCgpOwogIH0KCiRvdXRwdXQtPnN0YXR1cyA9ICdPSyc7CiRvdXRwdXQtPnVybCA9ICR0dXJsOwplY2hvIGpzb25fZW5jb2RlKCRvdXRwdXQpOwpleGl0KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.copycompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKQp7CiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpKTsKICByZXR1cm47Cn0KCi8vIGluaXRpYWxpemF0aW9uCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKJGNvbXBpZCA9ICcnOwokc3JjZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkKTsKCi8vIGdldCBwYXJhbXMKaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgIHJldHVybjsKICB9CiRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwoKLy8KLy8gZ2V0IGFsbCB0aGUgZGF0YQovLwoKLy8gZ2V0IHRoZSBjb21wYW55IGluZm8uCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JzsKJGNvbXBhbnkgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNvbXBpZCkpOwppZiggISRjb21wYW55ICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Jlc3VsdHNmb3VuZCcpKTsKICAgIHJldHVybjsKICB9CgovLyBnZXQgdGhlIGZpZWxkcy4KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyBXSEVSRSBjb21wYW55X2lkID0gPyc7CiRmaWVsZHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY29tcGlkKSk7CgovLyBnZXQgdGhlIGNhdGVnb3JpZXMuCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgV0hFUkUgY29tcGFueV9pZCA9ID8nOwokY2F0ZWdvcmllcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRjb21waWQpKTsKCi8vIGdldCB0aGUgZmlsZXMuCiRzcmNmaWxlcyA9IGdsb2IoJHNyY2Rpci4nLyouKicpOwoKLy8KLy8gZG8gdGhlIGNvcHkKLy8KaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVxdWlyZWQnLDApIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfY3JlYXRlb25jb3B5JykgKQogIHsKCS8vIEdvdHRhIEdlbmVyYXRlIGEgVVJMCgkkbmV3X3VybCA9IGNkX3V0aWxzOjpnZW5lcmF0ZV91cmwoJGNvbXBhbnlbJ2NvbXBhbnlfbmFtZSddKTsKCWlmKCAhJG5ld191cmwgKQoJICB7CgkJLy8gZXJyb3IKCQkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRuYW1lJykpOwoJCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgkgIH0KCWlmKCAhY2RfdXRpbHM6OnZhbGlkYXRlX3VybCgkbmV3X3VybCkgKQoJICB7CgkJLy8gZXJyb3IuCgkJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJykpOwoJCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgkgIH0KCSRjb21wYW55Wyd1cmwnXSA9ICRuZXdfdXJsOwogIH0KZWxzZQogIHsKCS8vIFdlIGRvbid0IG5lZWQgYSBVUkwsIHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGNyZWF0ZSBhIGNvcHkgb2YgYW4gZXhpc3Rpbmcgb25lLgoJJGNvbXBhbnlbJ3VybCddID0gJyc7CiAgfQoKJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgKGNvbXBhbnlfbmFtZSwgdXJsLCBhZGRyZXNzLCB0ZWxlcGhvbmUsIAogICAgICAgICAgICBmYXgsIGNvbnRhY3RfZW1haWwsIHdlYnNpdGUsIGRldGFpbHMsIHBpY3R1cmVfbG9jYXRpb24sIGxvZ29fbG9jYXRpb24sIGNyZWF0ZV9kYXRlLCAKICAgICAgICAgICAgbW9kaWZpZWRfZGF0ZSwgc3RhdHVzLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBvd25lcl9pZCxoaWVyX2lkKSAKICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSw/LD8sPyw/LD8pJzsKJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksCgkJICAgIGFycmF5KCRjb21wYW55Wydjb21wYW55X25hbWUnXSwKCQkJCSAgJGNvbXBhbnlbJ3VybCddLAoJCQkgICRjb21wYW55WydhZGRyZXNzJ10sCgkJCSAgJGNvbXBhbnlbJ3RlbGVwaG9uZSddLAoJCQkgICRjb21wYW55WydmYXgnXSwKCQkJICAkY29tcGFueVsnY29udGFjdF9lbWFpbCddLAoJCQkgICRjb21wYW55Wyd3ZWJzaXRlJ10sCgkJCSAgJGNvbXBhbnlbJ2RldGFpbHMnXSwKCQkJICAkY29tcGFueVsncGljdHVyZV9sb2NhdGlvbiddLAoJCQkgICRjb21wYW55Wydsb2dvX2xvY2F0aW9uJ10sCgkJCSAgJGNvbXBhbnlbJ3N0YXR1cyddLAoJCQkgICRjb21wYW55WydsYXRpdHVkZSddLAoJCQkgICRjb21wYW55Wydsb25naXR1ZGUnXSwKCQkJICAkY29tcGFueVsnb3duZXJfaWQnXSwKCQkJICAkY29tcGFueVsnaGllcl9pZCddKSk7CmlmKCAhJGRiciApCiAgewogICAgZGllKCRkYi0+c3FsLic8YnIvPicuJGRiLT5FcnJvck1zZygpKTsKICB9CiRuZXdfY29tcGlkID0gJGRiLT5JbnNlcnRfSUQoKTsKCgppZiggaXNfYXJyYXkoJGZpZWxkcykgJiYgY291bnQoJGZpZWxkcykgKQogIHsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIAogICAgICAgICAgICAgICAoY29tcGFueV9pZCxmaWVsZGRlZl9pZCx2YWx1ZSxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sTk9XKCksTk9XKCkpJzsKICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJGZpZWxkICkKICAgICAgewoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksCgkJCSAgICBhcnJheSgkbmV3X2NvbXBpZCwkZmllbGRbJ2ZpZWxkZGVmX2lkJ10sJGZpZWxkWyd2YWx1ZSddKSk7CglpZiggISRkYnIgKQoJICB7CgkgICAgZGllKCRkYi0+c3FsLic8YnIvPicuJGRiLT5FcnJvck1zZygpKTsKCSAgfQogICAgICB9CiAgfQoKaWYoIGlzX2FycmF5KCRjYXRlZ29yaWVzKSAmJiBjb3VudCgkY2F0ZWdvcmllcykgKQogIHsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxjYXRlZ29yeV9pZCxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LE5PVygpLE5PVygpKSc7CiAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkY2F0ZWdvcnkgKQogICAgICB7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmV3X2NvbXBpZCwkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ10pKTsKCWlmKCAhJGRiciApCgkgIHsKCSAgICBkaWUoJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwoJICB9CiAgICAgIH0KICB9CgovLyBjb3B5IGZpbGVzCmlmKCBjb3VudCgkc3JjZmlsZXMpICkgewogICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJywkbmV3X2NvbXBpZCk7CiAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKICBmb3JlYWNoKCAkc3JjZmlsZXMgYXMgJG9uZWZpbGUgKSB7CgkkYm4gPSBiYXNlbmFtZSgkb25lZmlsZSk7CglAY29weSgkc3JjZmlsZSxjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRibikpOwogIH0KfQogIAovLyB1cGRhdGUgc2VhcmNoIGluZGV4LgokbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKaWYgKCRtb2R1bGUgIT0gRkFMU0UpCiAgewogICAgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGNpZCwgJ2NvbXBhbnknLCAKCQkgICAgICBpbXBsb2RlKCcgJywgYXJyYXkoJGNvbXBhbnlbJ2NvbXBhbnlfbmFtZSddLCAKCQkJCQkgJGNvbXBhbnlbJ2NvbXBhbnlfbmFtZSddLCAKCQkJCQkgJGNvbXBhbnlbJ2FkZHJlc3MnXSwgCgkJCQkJICRjb21wYW55WyckdGVsZXBob25lJ10sIAoJCQkJCSAkY29tcGFueVsnJGZheCddLCAKCQkJCQkgJGNvbXBhbnlbJ2RldGFpbHMnXSkpKTsKICB9CgogIAovLyBhbmQgcmVkaXJlY3Qgc29tZXdoZXJlLgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2NvbXBhbnljb3BpZWQnKSk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjb21wYW55JywnJyxhcnJheSgnY29tcGlkJz0+JG5ld19jb21waWQsJ25vY2FuY2VsJz0+MSkpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRwbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkgKQkkdHBsID0gdHJpbSgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSk7CmlmKCAhJHRwbCApIHJldHVybjsKJHRoZV90ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHRwbDsKCiRjYWNoZV9pZCA9ICd8Y2dzJy5tZDUoc2VyaWFsaXplKCRwYXJhbXMpKTsKJGNvbXBpbGVfaWQgPSAnJzsKCnRyeSB7CiAgaWYoICEkc21hcnR5LT5pc0NhY2hlZCgkdGhpcy0+R2V0RGF0YWJhc2VSZXNvdXJjZSgkdGhlX3RlbXBsYXRlKSwkY2FjaGVfaWQsJGNvbXBpbGVfaWQpICkgewoJJGZpbHRlciA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigkcGFyYW1zKTsKCSRmaWx0ZXJbJ3JldHVybmlkJ10gPSAkcmV0dXJuaWQ7CgkkZmlsdGVyWydpZCddID0gJGlkOwoJJHF1ZXJ5ID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CgkkcGFnaW5hdGlvbiA9ICRxdWVyeS0+Z2V0X3BhZ2luYXRpb24oKTsKCSRwYWdlID0gJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKTsKCgkkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkcXVlcnktPmdldF9yZXN1bHRzKCRpZCwkcmV0dXJuaWQpKTsKCSRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywkcXVlcnktPmdldF9yZXN1bHRfY291bnQoKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ3BhZ2luYXRpb24nLCRwYWdpbmF0aW9uKTsKCgkkc21hcnR5LT5hc3NpZ24oJ3BhZ2V0ZXh0JywkdGhpcy0+TGFuZygncGFnZScpKTsKCSRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywkdGhpcy0+TGFuZygnb2YnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdjdXJwYWdlJywkcGFnZSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9saXN0JyxhcnJheV9mbGlwKGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5X2xpc3QoKSkpOwoJaWYoICRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpID4gMSApIHsKCSAgaWYoICRwYWdlID09IDEgKSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSk7CgkJJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJykpOwoJICB9CgkgIGVsc2UgewoJCSRzbWFydHktPmFzc2lnbignZmlyc3RsaW5rJywkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfbGluaygxLCR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSkpOwoJCSRzbWFydHktPmFzc2lnbigncHJldmxpbmsnLCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9saW5rKCRwYWdpbmF0aW9uLT5nZXRfY3VycmVudF9wYWdlKCktMSwkdGhpcy0+TGFuZygncHJldnBhZ2UnKSkpOwoJICB9CgkgIGlmKCAkcGFnZSA9PSAkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfY291bnQoKSApIHsKCQkkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSk7CgkJJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpOwoJICB9CgkgIGVsc2UgewoJCSRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9saW5rKCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpLCR0aGlzLT5MYW5nKCdsYXN0cGFnZScpKSk7CgkJJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHBhZ2luYXRpb24tPmdldF9wYWdlX2xpbmsoJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKSsxLCR0aGlzLT5MYW5nKCduZXh0cGFnZScpKSk7CgkgIH0KCX0KICB9CgogIGVjaG8gJHNtYXJ0eS0+ZmV0Y2goJHRoaXMtPkdldERhdGFiYXNlUmVzb3VyY2UoJHRoZV90ZW1wbGF0ZSksJGNhY2hlX2lkLCRjb21waWxlX2lkKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogIGVjaG8gJzwhLS0gJy4kdGhpcy0+R2V0TmFtZSgpLicgRVJST1I6ICcuJGUtPkdldG1lc3NhZ2UoKS4nIC0tPic7CiAgcmV0dXJuOwp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRhYiA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkKewoJJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKCSR0aGlzLT5TZXRDdXJyZW50VGFiKCR0YWIpOwp9CgovLyB0aGUgdG9wIG5hdiBiYXIKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSB8fAogICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCiAgewogICAgZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nOwogICAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogICAgICB7CgllY2hvICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9zZXR0aW5ncycsJHJldHVybmlkLAoJCQkJICAgICR0aGlzLT5MYW5nKCdsYmxfc2V0dGluZ3MnKSwKCQkJCSAgICAnaWNvbnMvdG9wZmlsZXMvcHJlZmVyZW5jZXMuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKTsKICAgICAgfQogICAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgICAgIHsKCWVjaG8gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX3RlbXBsYXRlcycsJHJldHVybmlkLAoJCQkJICAgICR0aGlzLT5MYW5nKCdsYmxfdGVtcGxhdGVzJyksCgkJCQkgICAgJ2ljb25zL3RvcGZpbGVzL3RlbXBsYXRlLmdpZicsYXJyYXkoKSwnJywnJyxmYWxzZSk7CiAgICAgIH0KICAgIGVjaG8gJzwvZGl2Pic7CiAgfQoKI1RoZSB0YWJzCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKQp7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb21wYW5pZXMnLCR0aGlzLT5MYW5nKCdjb21wYW5pZXMnKSk7CiAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb2xsZWN0c3RhdHMnLDApICkKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZWFyY2hlcycsJHRoaXMtPkxhbmcoJ3NlYXJjaGVzJykpOwogICAgfQp9CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCiNUaGUgY29udGVudCBvZiB0aGUgdGFicwplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKQp7CQogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjb21wYW5pZXMnLCAkcGFyYW1zKTsKICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fY29tcGFuaWVzdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoJCiAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb2xsZWN0c3RhdHMnLDApICkKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NlYXJjaGVzJywgJHBhcmFtcyk7CiAgICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zZWFyY2hlc3RhYi5waHAnKTsKICAgICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgICB9Cn0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaulturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGFjdGlvbiA9ICdkZXRhaWxzJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgKQogIHsKICAgICRhY3Rpb24gPSAnZGVmYXVsdCc7CiAgfQoKJHRoaXMtPkRvQWN0aW9uKCRhY3Rpb24sJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKCiMgdmltOnRzPTQgc3c9NCBub2V0Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRjYXRpZCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkpCnsKCSRjYXRpZCA9ICRwYXJhbXNbJ2NhdGlkJ107Cn0KCi8vIEdldCB0aGUgY2F0ZWdvcnkgZGV0YWlscwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSggJGNhdGlkKSk7CgovL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCiRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgU0VUIGlvcmRlciA9IGlvcmRlciAtIDEgV0hFUkUgaW9yZGVyID4gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJvd1snaW9yZGVyJ10pKTsKCi8vIGFuZCBpdCdzIGltYWdlcyBhbmQgYXR0YWNobWVudHMKJGNvbmZpZyA9Y21zbXMoKS0+R2V0Q29uZmlnKCk7CiRjYXRkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdjb21wYW55ZGlyZWN0b3J5JywnY2F0Jy4kY2F0aWQpOwpjZ2VfZGlyOjpyZWN1cnNpdmVfcm1kaXIoJGNhdGRpcik7CgovL0FuZCByZW1vdmUgaXQgZnJvbSBhbnkgZW50cmllcwokcXVlcnkgPSAiREVMRVRFIEZST00gbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNhdGVnb3J5X2lkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjYXRpZCkpOwoKYXVkaXQoJGNhdGlkLCR0aGlzLT5HZXROYW1lKCksJ0RlbGV0ZWQgQ2F0ZWdvcnknKTsKJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnlkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJyk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdhZG1pbl9zZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deletecompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NvbXBhbmllcycpOwokY29tcGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjb21waWQnXSkpICRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwoKY2RfY29tcGFueTo6ZGVsZXRlKCRjb21waWQpOwoKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2NvbXBhbnlkZWxldGVkJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGZkaWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkpCnsKCSRmZGlkID0gJHBhcmFtc1snZmRpZCddOwp9CgovLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9Ob3cgcmVtb3ZlIHRoZSBjYXRlZ29yeQokcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGVudHJpZXMKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgV0hFUkUgZmllbGRkZWZfaWQgPSA/IjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKCiRkYi0+RXhlY3V0ZSgnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/JywgYXJyYXkoJHJvd1snaXRlbV9vcmRlciddKSk7CgphdWRpdCgkZmRpZCwkdGhpcy0+R2V0TmFtZSgpLCdEZWxldGVkIGZpZWxkIGRlZmluaXRpb24nKTsKJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnZmllbGRkZWZkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoZV90ZW1wbGF0ZSA9ICdkZXRhaWxfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVERFVEFJTF9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddICkgKSAkdGhlX3RlbXBsYXRlID0gJ2RldGFpbF8nLiRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CgokY2FjaGVfaWQgPSAnfGNncycubWQ1KHNlcmlhbGl6ZSgkcGFyYW1zKSk7CiRjb21waWxlX2lkID0gJyc7CgppZiggISRzbWFydHktPmlzQ2FjaGVkKCR0aGlzLT5HZXREYXRhYmFzZVJlc291cmNlKCR0aGVfdGVtcGxhdGUpLCRjYWNoZV9pZCwkY29tcGlsZV9pZCkgKSB7CiAgJGNvbXBhbnkgPSBjZF91dGlsczo6Z2V0X2NvbXBhbnkoJHBhcmFtc1snY29tcGFueWlkJ10sJHJldHVybmlkLFRSVUUpOwogIGlmKCBpc19vYmplY3QoJGNvbXBhbnkpICkgewoJJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfbGlzdCcsYXJyYXlfZmxpcChjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9saXN0KCkpKTsKCSRzbWFydHktPmFzc2lnbignZW50cnknLCAkY29tcGFueSk7CglpZiggaXNzZXQoJGNvbXBhbnktPmNhdGVnb3JpZXMpICYmIGlzX2FycmF5KCRjb21wYW55LT5jYXRlZ29yaWVzKSApIHsKCSAgJHRtcCA9IGFycmF5X2tleXMoJGNvbXBhbnktPmNhdGVnb3JpZXMpOwoJICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSAkc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5dGV4dCcsIGltcGxvZGUoIiwgIiwkdG1wKSk7CgkgICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsICRjb21wYW55LT5jYXRlZ29yaWVzKTsKCSAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzY291bnQnLCBjb3VudCgkY29tcGFueS0+Y2F0ZWdvcmllcykpOwoJfQogIH0KfQplY2hvICRzbWFydHktPmZldGNoKCR0aGlzLT5HZXREYXRhYmFzZVJlc291cmNlKCR0aGVfdGVtcGxhdGUpLCRjYWNoZV9pZCwkY29tcGlsZV9pZCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.do_importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiMKIyBDYWNoZWQgZGF0YQojCiRfaGllcl9jYWNoZSA9IG51bGw7CiRfZmllbGRkZWZfY2FjaGUgPSBudWxsOwokX2NhdGVnb3J5X2NhY2hlID0gbnVsbDsKJF9lcnJvciA9ICcnOwokX251bV9oaWVyID0gMDsKCgojCiMgSW5pdGlhbGl6YXRpb24KIwokZGVsaW1pdGVyID0gJyc7CiRkb19sb29rdXAgPSAwOwoKIwojIEdldCBGb3JtIERhdGEKIwokaW1wb3J0ZXIgPSBuZXcgY2RfYXNjaWlfaW1wb3J0ZXIoJHRoaXMpOwppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKICB7CiAgICAkdGhpcy0+Q0dSZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydkZWxpbWV0ZXInXSkgKQogIHsKICAgICRkZWxpbWV0ZXIgPSB0cmltKCRwYXJhbXNbJ2RlbGltZXRlciddKTsKICAgICRpbXBvcnRlci0+c2V0X2RlbGltaXRlcigkZGVsaW1ldGVyKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfZGVsaW1pdGVyJywkZGVsaW1ldGVyKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydkb19maWVsZGRlZnMnXSkgKQogIHsKICAgICRkb19maWVsZGRlZnMgPSAoaW50KXRyaW0oJHBhcmFtc1snZG9fZmllbGRkZWZzJ10pOwogICAgJGltcG9ydGVyLT5kb19maWVsZGRlZnMoJGRvX2ZpZWxkZGVmcyk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ZpZWxkZGVmcycsJGRvX2ZpZWxkZGVmcyk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snZG9fZmllbGR2YWxzJ10pICkKICB7CiAgICAkZG9fZmllbGR2YWxzID0gKGludCl0cmltKCRwYXJhbXNbJ2RvX2ZpZWxkdmFscyddKTsKICAgICRpbXBvcnRlci0+ZG9fZmllbGR2YWxzKCRkb19maWVsZHZhbHMpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZHZhbHMnLCRkb19maWVsZHZhbHMpOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2RvX2NhdGVnb3J5ZGVmcyddKSApCiAgewogICAgJGRvX2NhdGVnb3J5ZGVmcyA9IChpbnQpdHJpbSgkcGFyYW1zWydkb19jYXRlZ29yeWRlZnMnXSk7CiAgICAkaW1wb3J0ZXItPmRvX2NhdGVnb3J5ZGVmcygkZG9fY2F0ZWdvcnlkZWZzKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnlkZWZzJywkZG9fY2F0ZWdvcnlkZWZzKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydkb19oaWVyYXJjaHlkZWZzJ10pICkKICB7CiAgICAkZG9faGllcmFyY2h5ZGVmcyA9IChpbnQpdHJpbSgkcGFyYW1zWydkb19oaWVyYXJjaHlkZWZzJ10pOwogICAgJGltcG9ydGVyLT5kb19oaWVyYXJjaHlkZWZzKCRkb19oaWVyYXJjaHlkZWZzKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfaGllcmFyY2h5ZGVmcycsJGRvX2hpZXJhcmNoeWRlZnMpOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2RvX2hpZXJhcmNoeXZhbHMnXSkgKQogIHsKICAgICRkb19oaWVyYXJjaHl2YWxzID0gKGludCl0cmltKCRwYXJhbXNbJ2RvX2hpZXJhcmNoeXZhbHMnXSk7CiAgICAkaW1wb3J0ZXItPmRvX2hpZXJhcmNoeXZhbHMoJGRvX2hpZXJhcmNoeXZhbHMpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9oaWVyYXJjaHl2YWxzJywkZG9faGllcmFyY2h5dmFscyk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snZG9fY2F0ZWdvcnl2YWxzJ10pICkKICB7CiAgICAkZG9fY2F0ZWdvcnl2YWxzID0gKGludCl0cmltKCRwYXJhbXNbJ2RvX2NhdGVnb3J5dmFscyddKTsKICAgICRpbXBvcnRlci0+ZG9fY2F0ZWdvcnl2YWxzKCRkb19jYXRlZ29yeXZhbHMpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jYXRlZ29yeXZhbHMnLCRkb19jYXRlZ29yeXZhbHMpOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5Y29sdW1uJ10pICkKICB7CgkkY2F0ZWdvcnljb2x1bW4gPSB0cmltKCRwYXJhbXNbJ2NhdGVnb3J5Y29sdW1uJ10pOwoJJGltcG9ydGVyLT5zZXRfY2F0ZWdvcnljb2x1bW4oJGNhdGVnb3J5Y29sdW1uKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnljb2x1bW4nLCRjYXRlZ29yeWNvbHVtbik7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snZG9fbG9va3VwJ10pICkKICB7CiAgICAkZG9fbG9va3VwID0gKGludCl0cmltKCRwYXJhbXNbJ2RvX2xvb2t1cCddKTsKICAgICRpbXBvcnRlci0+ZG9fbGF0bG9uZ19sb29rdXAoJGRvX2xvb2t1cCk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2xvb2t1cGxhdGxvbmcnLCRkb19sb29rdXApOwogIH0KJGNyZWF0ZV91cmwgPSAwOwppZiggaXNzZXQoJHBhcmFtc1snY3JlYXRlX3VybCddKSApCiAgewogICAgJGNyZWF0ZV91cmwgPSAoaW50KXRyaW0oJHBhcmFtc1snY3JlYXRlX3VybCddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlX3VybCcsJGRvX2xvb2t1cCk7CiAgfQokaW1wb3J0ZXItPmNyZWF0ZV91cmwoJGNyZWF0ZV91cmwgfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NoZWNrX2R1cGxpY2F0ZXMnXSkgKQogIHsKICAgICRjaGVja19kdXBsaWNhdGVzID0gdHJpbSgkcGFyYW1zWydjaGVja19kdXBsaWNhdGVzJ10pOwogICAgJGltcG9ydGVyLT5jaGVja19kdXBsaWNhdGVfY29tcGFuaWVzKCRjaGVja19kdXBsaWNhdGVzKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2hlY2tkdXBsaWNhdGVzJywkY2hlY2tfZHVwbGljYXRlcyk7CiAgfQoKaWYoICRkZWxpbWV0ZXIgPT0gJycgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPkNHUmVkaXJlY3QoJGlkLCdpbXBvcnRjc3YnLCRyZXR1cm5pZCk7CiAgfQplbHNlIGlmKCAhaXNzZXQoJF9GSUxFU1skaWQuJ2NzdmZpbGUnXSkgfHwgJF9GSUxFU1skaWQuJ2NzdmZpbGUnXVsnc2l6ZSddID09IDAgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3VwbG9hZCcpKTsKICAgICR0aGlzLT5DR1JlZGlyZWN0KCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQpOwogIH0KZWxzZSBpZiggJF9GSUxFU1skaWQuJ2NzdmZpbGUnXVsnZXJyb3InXSAhPSAwICkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2JhZHVwbG9hZCcpKTsKICAgICR0aGlzLT5DR1JlZGlyZWN0KCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQpOwogIH0KJGZpbGVuYW1lID0gJF9GSUxFU1skaWQuJ2NzdmZpbGUnXVsndG1wX25hbWUnXTsKCiRyZXMgPSAkaW1wb3J0ZXItPmltcG9ydF9maWxlKCRmaWxlbmFtZSk7CiRlcnJvcnMgPSAkaW1wb3J0ZXItPmdldF9lcnJvcnMoKTsKaWYoIGNvdW50KCRlcnJvcnMpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vycm9ycycsJGVycm9ycyk7CiAgfQokcmVzdWx0cyA9ICRpbXBvcnRlci0+Z2V0X3Jlc3VsdHMoKTsKJHNtYXJ0eS0+YXNzaWduKCdudW1fY29tcGFuaWVzJywkcmVzdWx0c1snbnVtX2NvbXBhbmllcyddKTsKJHNtYXJ0eS0+YXNzaWduKCdudW1fY2F0ZWdvcmllcycsJHJlc3VsdHNbJ251bV9jYXRlZ29yaWVzJ10pOwokc21hcnR5LT5hc3NpZ24oJ251bV9maWVsZGRlZnMnLCRyZXN1bHRzWydudW1fZmllbGRkZWZzJ10pOwokc21hcnR5LT5hc3NpZ24oJ251bV9oaWVyJywkcmVzdWx0c1snbnVtX2hpZXInXSk7CiRzbWFydHktPmFzc2lnbigncmV0dXJuX3VybCcsJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKSk7CgppZiggJHJlc3VsdHNbJ251bV9jb21wYW5pZXMnXSA+IDAgfHwgJHJlc3VsdHNbJ251bV9jYXRlZ29yaWVzJ10gPiAwIHx8IAoJJHJlc3VsdHNbJ251bV9maWVsZGRlZnMnXSA+IDAgfHwgJHJlc3VsdHNbJ251bV9oaWVyJ10gPiAwICkKICB7CglhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLAoJCSAgc3ByaW50ZignSW1wb3J0ZWQgZGF0YSBmcm9tIENTViAoJWQgY29tcGFuaWVzLCAlZCBjYXRlZ29yaWVzLCAlZCBmaWVsZCBkZWZzLCAlZCBoaWVyKScsCgkJCQkgICRyZXN1bHRzWydudW1fY29tcGFuaWVzJ10sICRyZXN1bHRzWydudW1fY2F0ZWdvcmllcyddLCAKCQkJCSAgJHJlc3VsdHNbJ251bV9maWVsZGRlZnMnXSwgJHJlc3VsdHNbJ251bV9oaWVyJ10pKTsKICB9CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RvX2ltcG9ydGNzdi50cGwnKTsKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.do_search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKIwojIEluaXRpYWxpemF0aW9uCiMKJGNvdW50cnkgPSAnVVMnOwokYWRkcmVzcyA9ICcnOwokaGF2ZV9sYXRsb25nID0gMDsKJGxhdGl0dWRlID0gJyc7CiRsb25naXR1ZGUgPSAnJzsKJHBvc3RhbCA9ICcnOwokcmFkaXVzID0gJzUwJzsKJHVuaXRzICA9ICdtaWxlcyc7CiRjb21wYW55X25hbWUgPSAnJzsKJG5hbWVfdHlwZSA9ICdleGFjdCc7CiR1c2VfY2F0ZWdvcmllcyA9ICcnOwokZXJyb3JzID0gYXJyYXkoKTsKJGJhc2VfbGF0ID0gJyc7CiRiYXNlX2xvbmcgPSAnJzsKJHBvc3Rjb2RlID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdQb3N0Y29kZScpOwokZG9femlwX3NlYXJjaCA9IDA7CiRwb3N0YWxfZGF0YSA9ICcnOwokYm91bmRpbmdfYm94ID0gJyc7CiRzb3J0b3JkZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CiRzb3J0YnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywnY29tcGFueV9uYW1lJyk7CiRkZXRhaWxwYWdlID0gJHJldHVybmlkOwokaW5saW5lID0gMDsKJHBhZ2UgPSAxOwokcGFnZWxpbWl0ID0gMTAwMDAwOwokY291bnQgPSAwOwokbnVtcGFnZXMgPSAwOwokc3VtbWFyeXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFKTsKLy8kdXJsZm10ID0gJ2NvbXBhbmllcy8lZC8nLigkZGV0YWlscGFnZSE9Jyc/JGRldGFpbHBhZ2U6JHJldHVybmlkKTsKJGVudHJ5YXJyYXkgPSBhcnJheSgpOwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwokc3RvcmVkX2NhdGVnb3JpZXMgPSAnJzsKJGhpZXJhcmNoeSA9ICcnOwokc2VhcmNoX2FkZHJlc3MgPSAwOwokcG9zdGFsX2NoYXJzID0gJyc7CiRpbmxpbmUgPSAwOwoKIwojIFNldHVwCiMKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywtMSk7CmlmKCAkdG1wID4gMCApICRkZXRhaWxwYWdlID0gJHRtcDsKaWYoIGlzc2V0KCAkcGFyYW1zWydwYWdlJ10gKSApICRwYWdlID0gKGludCkkcGFyYW1zWydwYWdlJ107CmlmKCBpc3NldCggJHBhcmFtc1sncGFnZWxpbWl0J10gKSApICRwYWdlbGltaXQgPSAoaW50KSRwYXJhbXNbJ3BhZ2VsaW1pdCddOwppZiggaXNzZXQoICRwYXJhbXNbJ2lubGluZSddICkgJiYgJHBhcmFtc1snaW5saW5lJ10gIT0gMCApICRpbmxpbmUgPSAxOwppZiggaXNzZXQoICRwYXJhbXNbJ2RldGFpbHBhZ2UnXSApICkgewogICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogIGlmKCAkdG1wICkgewoJJGRldGFpbHBhZ2UgPSAkdG1wOwoJJGlubGluZSA9IDA7CiAgfQp9CmlmKCBpc3NldCgkcGFyYW1zWydzZWFyY2hhZGRyZXNzJ10pICYmICRwYXJhbXNbJ3NlYXJjaGFkZHJlc3MnXSApICRzZWFyY2hfYWRkcmVzcyA9IDE7CmlmKCBpc3NldCgkcGFyYW1zWydwb3N0YWxjaGFycyddKSAmJiAkcGFyYW1zWydwb3N0YWxjaGFycyddICkgJHBvc3RhbF9jaGFycyA9IChpbnQpJHBhcmFtc1sncG9zdGFsY2hhcnMnXTsKaWYoIGlzc2V0KCAkcGFyYW1zWydzb3J0b3JkZXInXSApICkgewogIHN3aXRjaCggJHBhcmFtc1snc29ydG9yZGVyJ10gKSB7CiAgY2FzZSAnYXNjJzoKICBjYXNlICdkZXNjJzoKCSRzb3J0b3JkZXIgPSAkcGFyYW1zWydzb3J0b3JkZXInXTsKICB9Cn0KaWYoIGlzc2V0KCAkcGFyYW1zWydzb3J0YnknXSApICkgewogIHN3aXRjaCggJHBhcmFtc1snc29ydGJ5J10gKSB7CiAgY2FzZSAnY29tcGFueV9uYW1lJzoKCSRzb3J0YnkgPSAnY29tcGFueV9uYW1lJzsKCWJyZWFrOwogIGNhc2UgJ3Bob25lJzoKCSRzb3J0YnkgPSAndGVsZXBob25lJzsKCWJyZWFrOwogIGNhc2UgJ2ZheCc6Cgkkc29ydGJ5ID0gJ2ZheCc7CglicmVhazsKICBjYXNlICdlbWFpbCc6Cgkkc29ydGJ5ID0gJ2NvbnRhY3RfZW1haWwnOwoJYnJlYWs7CiAgY2FzZSAnd2Vic2l0ZSc6Cgkkc29ydGJ5ID0gJ3dlYnNpdGUnOwoJYnJlYWs7CiAgY2FzZSAnY3JlYXRlZCc6Cgkkc29ydGJ5ID0gJ2NyZWF0ZV9kYXRlJzsKCWJyZWFrOwogIGNhc2UgJ21vZGlmaWVkJzoKCSRzb3J0YnkgPSAnbW9kaWZpZWRfZGF0ZSc7CglicmVhazsKICBjYXNlICdzdGF0dXMnOgoJJHNvcnRieSA9ICdzdGF0dXMnOwoJYnJlYWs7CiAgY2FzZSAncmFuZG9tJzoKCSRzb3J0YnkgPSAnUkFORCgpJzsKCSRzb3J0b3JkZXIgPSAnJzsKCWJyZWFrOwogIGNhc2UgJ2Rpc3RhbmNlJzoKCSRzb3J0YnkgPSAnZGlzdGFuY2UnOwoJYnJlYWs7CiAgfQp9CmlmKCAkc29ydGJ5ID09ICdyYW5kb20nICkgewogICRzb3J0YnkgPSAnUkFORCgpJzsKICAkc29ydG9yZGVyID0gJyc7Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddICkgKSAkc3VtbWFyeXRlbXBsYXRlID0gJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107CmlmKCBpc3NldCgkcGFyYW1zWydoaWVyJ10pICkgJGhpZXJhcmNoeSA9IHRyaW0oJHBhcmFtc1snaGllciddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3N0b3JlZF9jYXRlZ29yaWVzJ10pICkgJHN0b3JlZF9jYXRlZ29yaWVzID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snY2Rfc3RvcmVkX2NhdGVnb3JpZXMnXSk7CgoKIwojIEhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KIwppZiggaXNzZXQoJHBhcmFtc1snY2RfY2FuY2VsJ10pICkgewogICRkZXN0cGFnZSA9ICRyZXR1cm5pZDsKICBpZiggaXNzZXQoJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSkgKSAkZGVzdHBhZ2UgPSAoaW50KSRwYXJhbXNbJ2NkX29yaWdwYWdlJ107CiAgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkZGVzdHBhZ2UpOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydjZF9kb3NlYXJjaCddKSApIHsKICAvLwogIC8vIGdldCB0aGUgZGF0YQogIC8vCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX2NvdW50cnknXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2NkX2NvdW50cnknXSkgKSB7CgkkY291bnRyeSA9IHRyaW0oJHBhcmFtc1snY2RfY291bnRyeSddKTsKICB9CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Bvc3RhbCddKSAmJiAhZW1wdHkoJHBhcmFtc1snY2RfcG9zdGFsJ10pICkgewoJJHBvc3RhbCA9IHRyaW0oJHBhcmFtc1snY2RfcG9zdGFsJ10pOwoJJGRvX3ppcF9zZWFyY2ggPSAxOwogIH0KICBpZiggaXNzZXQoJHBhcmFtc1snY2RfbGF0aXR1ZGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snY2RfbG9uZ2l0dWRlJ10pICYmCgkgICFlbXB0eSgkcGFyYW1zWydjZF9sYXRpdHVkZSddKSAmJiAhZW1wdHkoJHBhcmFtc1snY2RfbG9uZ2l0dWRlJ10pICkgewoJJGhhdmVfbGF0bG9uZyA9IDE7CgkkbGF0aXR1ZGUgPSAoZmxvYXQpZmxvYXR2YWwoJHBhcmFtc1snY2RfbGF0aXR1ZGUnXSk7CgkkbG9uZ2l0dWRlID0gKGZsb2F0KWZsb2F0dmFsKCRwYXJhbXNbJ2NkX2xvbmdpdHVkZSddKTsKICB9CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX2FkZHJlc3MnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2NkX2FkZHJlc3MnXSkgKSB7CgkkYWRkcmVzcyA9IHRyaW0oJHBhcmFtc1snY2RfYWRkcmVzcyddKTsKICB9CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3JhZGl1cyddKSAmJiAhZW1wdHkoJHBhcmFtc1snY2RfcmFkaXVzJ10pICkgewoJJHJhZGl1cyA9IChpbnQpJHBhcmFtc1snY2RfcmFkaXVzJ107CiAgfQogIGlmKCBpc3NldCgkcGFyYW1zWydjZF91bml0cyddKSAmJiAhZW1wdHkoJHBhcmFtc1snY2RfdW5pdHMnXSkgKSB7CgkkdW5pdHMgPSBzdHJ0b2xvd2VyKHRyaW0oJHBhcmFtc1snY2RfdW5pdHMnXSkpOwogIH0KICBpZiggaXNzZXQoICRwYXJhbXNbJ2NkX2lubGluZSddICkgJiYgJHBhcmFtc1snY2RfaW5saW5lJ10gIT0gMCApIHsKCSRpbmxpbmUgPSAxOwoJJHBhcmFtc1snaW5saW5lJ10gPSAkaW5saW5lOwogIH0KICBpZiggaXNzZXQoJHBhcmFtc1snY2RfbmFtZSddKSAmJiAkcGFyYW1zWydjZF9uYW1lJ10gIT0gJycgKSB7CgkkY29tcGFueV9uYW1lID0gdHJpbSgkcGFyYW1zWydjZF9uYW1lJ10pOwogIH0KICBpZiggaXNzZXQoJHBhcmFtc1snY2RfbmFtZV90eXBlJ10pICYmICRwYXJhbXNbJ2NkX25hbWVfdHlwZSddICE9ICcnICkgewoJJG5hbWVfdHlwZSA9IHN0cnRvbG93ZXIodHJpbSgkcGFyYW1zWydjZF9uYW1lX3R5cGUnXSkpOwogIH0KICBpZiggJGhpZXJhcmNoeSA9PSAnJyAmJiBpc3NldCgkcGFyYW1zWydjZF9oaWVyJ10pICYmICRwYXJhbXNbJ2NkX2hpZXInXSAhPSAnJyApIHsKCWlmKCAkcGFyYW1zWydjZF9oaWVyJ10gIT0gJycgJiYgJHBhcmFtc1snY2RfaGllciddICE9ICctMScgKSB7CgkgICRoaWVyYXJjaHkgPSB0cmltKCRwYXJhbXNbJ2NkX2hpZXInXSk7CgkgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9oaWVyX2NoaWxkcmVuJ10pICYmIChpbnQpJHBhcmFtc1snY2RfaGllcl9jaGlsZHJlbiddICE9IDAgKSB7CgkJLy8gd2UncmUgaW5jbHVkaW5nIGNoaWxkcmVuLgoJCSRoaWVyYXJjaHkgLj0gJyonOwoJICB9Cgl9CiAgfQogIGlmKCBpc3NldCgkcGFyYW1zWydjZF91c2VfY2F0ZWdvcmllcyddKSApIHsKCSR0bXAgPSAkcGFyYW1zWydjZF91c2VfY2F0ZWdvcmllcyddOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJICAkdXNlX2NhdGVnb3JpZXMgPSAkdG1wOwoJICAkcGFyYW1zWydjZF9zdG9yZWRfY2F0ZWdvcmllcyddID0gaW1wbG9kZSgnLCcsJHVzZV9jYXRlZ29yaWVzKTsKCSAgdW5zZXQoJHBhcmFtc1snY2RfdXNlX2NhdGVnb3JpZXMnXSk7Cgl9CgllbHNlIGlmKCAkdG1wICE9ICcnICkgewoJICAkdXNlX2NhdGVnb3JpZXMgPSBhcnJheSgkdG1wKTsKCSAgJHBhcmFtc1snY2Rfc3RvcmVkX2NhdGVnb3JpZXMnXSA9ICR0bXA7CgkgIHVuc2V0KCRwYXJhbXNbJ2NkX3VzZV9jYXRlZ29yaWVzJ10pOwoJfQogIH0KICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydjZF9kb3NlYXJjaCddKSkgewoJLy8gY29tcGluZyBmcm9tIGEgbGluawoJJHVzZV9jYXRlZ29yaWVzID0gJHN0b3JlZF9jYXRlZ29yaWVzOwogIH0KICBpZiggaXNzZXQoJHBhcmFtc1snY2Rfc3VibWl0J10pICkgewoJdW5zZXQoJHBhcmFtc1snY2Rfc3VibWl0J10pOwoJJHBhcmFtc1snY2RfZG9zZWFyY2gnXSA9IDE7CiAgfQoKICAvLwogIC8vIHZhbGlkYXRlIHRoZSBkYXRhCiAgLy8KICBpZiggJHVuaXRzICE9ICdtaWxlcycgJiYgJHVuaXRzICE9ICdrbScgKSB7CgkvLyBpbnZhbGlkIHVuaXRzCgkkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJ2NkX3VuaXRzJyk7CiAgfQogIGlmKCAkcmFkaXVzIDw9IDAgKSB7CgkvLyBpbnZhbGlkIHVuaXRzCgkkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJ2NkX3JhZGl1cycpOwogIH0KICBpZiggJGRvX3ppcF9zZWFyY2ggJiYgJHBvc3Rjb2RlICkgewoJaWYoICRjb3VudHJ5PT0gJycgKSAkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJ2NkX2NvdW50cnknKTsKICB9CiAgaWYoICRuYW1lX3R5cGUgIT0gJ2V4YWN0JyAmJiAkbmFtZV90eXBlICE9ICdsaWtlJykgewoJLy8gaW52YWxpZCB1bml0cwoJJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfcGFyYW0nLCdjZF9uYW1lX3R5cGUnKTsKICB9CgkKICAvLyBjb252ZXJ0IGRpc3RhbmNlIHRvIG1pbGVzCiAgaWYoIGVtcHR5KCRlcnJvcnMpICYmICR1bml0cyA9PSAna20nICkgJHJhZGl1cyA9IChmbG9hdCkkcmFkaXVzICogMC42MjEzNzExOTI7CgogIC8vIGlmIHdlIGNhbiBmaW5kIHRoZSBQb3N0Y29kZSBtb2R1bGUgbm93IHdlIGNhbiBmaW5kIGEgYmFzZSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlLgogIGlmKCBlbXB0eSgkZXJyb3JzKSAmJiAhJGhhdmVfbGF0bG9uZyAmJiAhZW1wdHkoJHBvc3RhbCkgJiYgJHBvc3Rjb2RlICYmICRkb196aXBfc2VhcmNoICApIHsKCSRwb3N0YWxfZGF0YSA9ICRwb3N0Y29kZS0+TG9va3VwX1ppcCgkY291bnRyeSwkcG9zdGFsLCRwb3N0YWxfY2hhcnMpOwoJaWYoICFpc19hcnJheSgkcG9zdGFsX2RhdGEpICYmICEkc2VhcmNoX2FkZHJlc3MgKSB7CgkgIC8vIGl0IGRpZG4ndCB3b3JrCgkgICRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wb3N0Y29kZV9sb29rdXAnLCRwb3N0YWwpOwoJfQoJJGxhdGl0dWRlID0gJHBvc3RhbF9kYXRhWydsYXRpdHVkZSddOwoJJGxvbmdpdHVkZSA9ICRwb3N0YWxfZGF0YVsnbG9uZ2l0dWRlJ107CgkkaGF2ZV9sYXRsb25nID0gMTsKICB9CgogIGlmKCBlbXB0eSgkZXJyb3JzKSAmJiAhJGhhdmVfbGF0bG9uZyAmJiAhZW1wdHkoJGFkZHJlc3MpKSB7CgkvLyB3ZSBkb24ndCBoYXZlIGEgYm91bmRpbmcgYm94IHlldCwgbWF5YmUgd2UgY2FuIGRvIGEgbGF0L2xvbmcgbG9va3VwIGZyb20gdGhlIGFkZHJlc3MgYW5kIGdldCBvbmUuCgkkY29vcmRzID0gY2RfdXRpbHM6Omdlb2xvY2F0ZSgkYWRkcmVzcyk7CglpZiggJGNvb3JkcyAhPT0gZmFsc2UgKSB7CgkgICRsYXRpdHVkZSA9ICRjb29yZHNbJ2xhdCddOwoJICAkbG9uZ2l0dWRlID0gJGNvb3Jkc1snbG9uJ107CgkgICRoYXZlX2xhdGxvbmcgPSAxOwoJfQogIH0KCiAgLy8gd2VyZSB3ZSBnaXZlbiBhIGxhdGl0dWRlIGFuZCBsb25naXR1ZGU/CiAgaWYoIGVtcHR5KCRlcnJvcnMpICYmICRoYXZlX2xhdGxvbmcgKSAkYm91bmRpbmdfYm94ID0gJHRoaXMtPkdldEJvdW5kaW5nQm94KCRsYXRpdHVkZSwkbG9uZ2l0dWRlLCRyYWRpdXMpOwoKICAvLwogIC8vIGJ1aWxkIHRoZSBxdWVyeQogIC8vCiAgaWYoIGVtcHR5KCRlcnJvcnMpICkgewoJJHFwYXJtczEgPSBhcnJheSgpOwoJJHFwYXJtczIgPSBhcnJheSgpOwoJJHdoZXJlID0gYXJyYXkoKTsKCSRxdWVyeSA9ICcnOwoKCWlmKCBpc19hcnJheSgkYm91bmRpbmdfYm94KSApIHsKCSAgLy8gY2FsY3VsYXRlIGEgZGlzdGFuY2UgZm9yIHVzIHRvby4KCSAgJHF1ZXJ5IC49ICdTRUxFQ1QgYy4qLCggMzk1OSAqIGFjb3MoIGNvcyggcmFkaWFucyg/KSApIAogICAgICAgICAgICAgICAgICogY29zKCByYWRpYW5zKCBjLmxhdGl0dWRlICkgKSAKICAgICAgICAgICAgICAgICAqIGNvcyggcmFkaWFucyggYy5sb25naXR1ZGUgKSAtIHJhZGlhbnMoPykgKSAKICAgICAgICAgICAgICAgICArIHNpbiggcmFkaWFucyg/KSApIAogICAgICAgICAgICAgICAgICogc2luKCByYWRpYW5zKCBjLmxhdGl0dWRlICkgKSApICkgQVMgZGlzdGFuY2UKICAgICAgICAgICAgICAgICBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgYyc7CgkgICRxcGFybXMxW10gPSAkbGF0aXR1ZGU7CgkgICRxcGFybXMxW10gPSAkbG9uZ2l0dWRlOwoJICAkcXBhcm1zMVtdID0gJGxhdGl0dWRlOwoJfQoJZWxzZSB7CgkgICRxdWVyeSA9ICdTRUxFQ1QgYy4qIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBjJzsKCX0KCSRxdWVyeTIgPSAnU0VMRUNUIGNvdW50KCopIEFTIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBjJzsKCgkkd2hlcmVbXSA9ICcoYy5zdGF0dXMgPSA/KSc7CgkkcXBhcm1zMVtdID0gJ3B1Ymxpc2hlZCc7CgkkcXBhcm1zMltdID0gJ3B1Ymxpc2hlZCc7CgoJaWYoICRzZWFyY2hfYWRkcmVzcyAmJiAhZW1wdHkoJHBvc3RhbCkgKSB7CgkgICR0cG9zdGFsID0gJHBvc3RhbDsKCSAgaWYoICRwb3N0YWxfY2hhcnMgPiAwICkgJHRwb3N0YWwgPSBzdWJzdHIoJHBvc3RhbCwwLCRwb3N0YWxfY2hhcnMpOwoKCSAgLy8gc2VhcmNoaW5nIGFkZHJlc3NlcwoJICAkdG1wID0gYXJyYXkoKTsKCSAgJHRtcFtdID0gJyhjLmFkZHJlc3MgTElLRSA/KSc7CgkgICRxcGFybXMxW10gPSAnJScuJHRwb3N0YWwuJyUnOwoJICAkcXBhcm1zMltdID0gJyUnLiR0cG9zdGFsLiclJzsKCgkgIGlmKCBpc19hcnJheSgkYm91bmRpbmdfYm94KSApIHsKCQkkdG1wW10gPSAnKGMubGF0aXR1ZGUgQkVUV0VFTiA/IEFORCA/KSBBTkQgKGMubG9uZ2l0dWRlIEJFVFdFRU4gPyBBTkQgPyknOwoJCSRxcGFybXMxW10gPSAkYm91bmRpbmdfYm94WzBdOwoJCSRxcGFybXMxW10gPSAkYm91bmRpbmdfYm94WzFdOwoJCSRxcGFybXMxW10gPSAkYm91bmRpbmdfYm94WzJdOwoJCSRxcGFybXMxW10gPSAkYm91bmRpbmdfYm94WzNdOwoJCSRxcGFybXMyW10gPSAkYm91bmRpbmdfYm94WzBdOwoJCSRxcGFybXMyW10gPSAkYm91bmRpbmdfYm94WzFdOwoJCSRxcGFybXMyW10gPSAkYm91bmRpbmdfYm94WzJdOwoJCSRxcGFybXMyW10gPSAkYm91bmRpbmdfYm94WzNdOwoJICB9CgoJICAkd2hlcmVbXSA9ICcoJyAuIGltcGxvZGUoJyBPUiAnLCR0bXApIC4nKSc7Cgl9CgllbHNlIHsKCSAgaWYoIGlzX2FycmF5KCRib3VuZGluZ19ib3gpICkgewoJCSR3aGVyZVtdID0gJyhjLmxhdGl0dWRlIEJFVFdFRU4gPyBBTkQgPykgQU5EIChjLmxvbmdpdHVkZSBCRVRXRUVOID8gQU5EID8pJzsKCQkkcXBhcm1zMVtdID0gJGJvdW5kaW5nX2JveFswXTsKCQkkcXBhcm1zMVtdID0gJGJvdW5kaW5nX2JveFsxXTsKCQkkcXBhcm1zMVtdID0gJGJvdW5kaW5nX2JveFsyXTsKCQkkcXBhcm1zMVtdID0gJGJvdW5kaW5nX2JveFszXTsKCQkkcXBhcm1zMltdID0gJGJvdW5kaW5nX2JveFswXTsKCQkkcXBhcm1zMltdID0gJGJvdW5kaW5nX2JveFsxXTsKCQkkcXBhcm1zMltdID0gJGJvdW5kaW5nX2JveFsyXTsKCQkkcXBhcm1zMltdID0gJGJvdW5kaW5nX2JveFszXTsKCSAgfQoJfQoJaWYoICFlbXB0eSgkY29tcGFueV9uYW1lKSApIHsKCSAgc3dpdGNoKCAkbmFtZV90eXBlICkgewoJICBjYXNlICdleGFjdCc6CgkJJHdoZXJlW10gPSAnKGMuY29tcGFueV9uYW1lID0gPyknOwoJCSRxcGFybXMxW10gPSAkY29tcGFueV9uYW1lOwoJCSRxcGFybXMyW10gPSAkY29tcGFueV9uYW1lOwoJCWJyZWFrOwoJICBjYXNlICdsaWtlJzoKCQkkcXBhcm1zMVtdID0gJyUnLiRjb21wYW55X25hbWUuJyUnOwoJCSRxcGFybXMyW10gPSAnJScuJGNvbXBhbnlfbmFtZS4nJSc7CgkJJHdoZXJlW10gPSAnKGMuY29tcGFueV9uYW1lIExJS0UgPyknOwoJICB9Cgl9CglpZiggJGhpZXJhcmNoeSAhPSAnJyApIHsKCSAgLy8gZG9pbmcgaGllcmFyY2h5IHNlYXJjaC4KCSAgJHN0ciA9ICcgTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIGNoIE9OIGNoLmlkID0gYy5oaWVyX2lkJzsKCSAgJHF1ZXJ5IC49ICRzdHI7CgkgICRxdWVyeTIgLj0gJHN0cjsKCSAgJGhpZXJhcmNoeSA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUodHJpbSgkaGllcmFyY2h5KSk7CgkgICRoaWVyYXJjaHkgPSB0cmltKCRoaWVyYXJjaHkpOwoJICAkaGllcmFyY2h5ID0gdHJpbShzdHJfcmVwbGFjZSgiJyIsJ18nLCRoaWVyYXJjaHkpKTsKCSAgaWYgKHN0cnBvcygkaGllcmFyY2h5LCAnfCcpICE9PSBGQUxTRSB8fCBzdHJwb3MoJGhpZXJhcmNoeSwgJyonKSAhPT0gRkFMU0UpIHsKCQkvLyB3aWxkY2FyZHMKCQkkaGllcmFyY2h5ID0gdHJpbShzdHJfcmVwbGFjZSgnKicsJyUnLCRoaWVyYXJjaHkpKTsKCQkkd2hlcmVbXSA9ICJ1cHBlcihjaC5sb25nX25hbWUpIExJS0UgdXBwZXIoPykiOwoJICB9CgkgIGVsc2UgewoJCS8vIGhhcmQgY29kZWQgaGllcmFyY2h5IG5hbWUKCQkkd2hlcmVbXSA9ICdjaC5uYW1lID0gPyc7CgkgIH0KCSAgJHFwYXJtczFbXSA9ICRoaWVyYXJjaHk7CgkgICRxcGFybXMyW10gPSAkaGllcmFyY2h5OwoJfQoJaWYoIGlzX2FycmF5KCR1c2VfY2F0ZWdvcmllcykgJiYgY291bnQoJHVzZV9jYXRlZ29yaWVzKSApIHsKCSAgJHN0ciA9ICIgSU5ORVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIGNjIE9OIGNjLmNvbXBhbnlfaWQgPSBjLmlkIjsKCSAgJHF1ZXJ5IC49ICRzdHI7CgkgICRxdWVyeTIgLj0gJHN0cjsKCSAgJHdoZXJlW10gPSAnY2MuY2F0ZWdvcnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHVzZV9jYXRlZ29yaWVzKS4nKSc7Cgl9CgoJLy8KCS8vIGFzc2VtYmx5CgkvLwoJaWYoIGNvdW50KCR3aGVyZSkgKSB7CgkgICRxdWVyeSA9ICRxdWVyeSAuICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywkd2hlcmUgKTsKCSAgJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsJHdoZXJlICk7Cgl9CgkkcXVlcnkgLj0gJyBPUkRFUiBCWSAnLiRzb3J0YnkuJyAnLiRzb3J0b3JkZXI7CgoJLy8KCS8vIG1vcmUgc2V0dXAKCS8vCgkkc3RhcnRlbGVtZW50ID0gKCRwYWdlLTEpKiRwYWdlbGltaXQ7CgoJLy8KCS8vIEV4ZWN1dGlvbgoJLy8KCSRjb3VudCA9ICRkYi0+R2V0T25lKCRxdWVyeTIsJHFwYXJtczIpOwoJaWYoICRjb3VudCApIHsKCSAgJGRiciA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCRwYWdlbGltaXQsJHN0YXJ0ZWxlbWVudCwkcXBhcm1zMSk7CgkgIGlmKCAhJGRiciApIHsKCQllY2hvICdGQVRBTCBFUlJPUjxici8+JzsKCQllY2hvICRkYi0+RXJyb3JNc2coKS4nPGJyLz4nOwoJCWVjaG8gJGRiLT5zcWw7CgkJcmV0dXJuOwoJICB9CgoJICAvLyBkZXRlcm1pbmUgbnVtYmVyIG9mIHBhZ2VzCgkgICRudW1wYWdlcyA9IChpbnQpKCRjb3VudCAvICRwYWdlbGltaXQpOwoJICBpZiggJGNvdW50ICUgJHBhZ2VsaW1pdCAhPSAwICkgJG51bXBhZ2VzKys7CgoJICAvLwoJICAvLyBub3cgYnVpbGQgdGhlIG9iamVjdCBsaXN0LgoJICAvLwoJICAkaWRsaXN0ID0gYXJyYXkoKTsKCSAgd2hpbGUoICRkYnIgJiYgJHJvdyA9ICRkYnItPkZldGNoUm93KCkgKSB7CgkJJGlkbGlzdFtdID0gJHJvd1snaWQnXTsKCgkJJG9uZXJvdyA9IG5ldyBzdGRDbGFzczsKCQlmb3JlYWNoKCAkcm93IGFzICRrZXkgPT4gJHZhbHVlICkgewoJCSAgJG9uZXJvdy0+JGtleSA9ICR2YWx1ZTsKCQl9CgkJaWYoICR1bml0cyA9PSAnbWlsZXMnICYmICRvbmVyb3ctPmRpc3RhbmNlICkgJG9uZXJvdy0+ZGlzdGFuY2UgKj0gMS8wLjYyMTM3MTE5MjsKCgkJJHBhcm1zID0gYXJyYXkoKTsKCQkkcGFybXNbJ2NvbXBhbnlpZCddID0gJHJvd1snaWQnXTsKCQlpZiggaXNzZXQoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkgKSB7CgkJICAkcGFybXNbJ2RldGFpbHRlbXBsYXRlJ10gPSAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwoJCX0KCgkJJHVybCA9ICJjb21wYW5pZXMveyRyb3dbJ2lkJ119L3skcmV0dXJuaWR9LyIubXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93Wydjb21wYW55X25hbWUnXSk7CgkJJG9uZXJvdy0+ZGV0YWlsX3VybCA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZXRhaWxzJywkZGV0YWlscGFnZSwkcGFybXMsZmFsc2UsJHVybCk7CgkJJG9uZXJvdy0+cGljdHVyZV9wYXRoID0gJGNvbmZpZ1sncm9vdF91cmwnXS4nL3VwbG9hZHMvY29tcGFueWRpcmVjdG9yeS9pZCcuJHJvd1snaWQnXS4nLycuJHJvd1sncGljdHVyZV9sb2NhdGlvbiddOwoJCSRvbmVyb3ctPmxvZ29fcGF0aCA9ICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnL3VwbG9hZHMvY29tcGFueWRpcmVjdG9yeS9pZCcuJHJvd1snaWQnXS4nLycuJHJvd1snbG9nb19sb2NhdGlvbiddOwoKCQkvLyBnZXQgdGhlIGN1c3RvbSBmaWVsZHMKCQkkZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmc0ZvckNvbXBhbnkoJHJvd1snaWQnXSk7CgkJJGZpZWxkYXJyYXkgPSBhcnJheSgpOwoJCSRvbmVyb3ctPmN1c3RvbWZpZWxkc2NvdW50ID0gY291bnQoJGZpZWxkZGVmcyk7CgkJJG9uZXJvdy0+Y3VzdG9tZmllbGRzYnluYW1lID0gYXJyYXkoKTsKCQlpZiAoJG9uZXJvdy0+Y3VzdG9tZmllbGRzY291bnQgPiAwKSB7CgkJICBmb3JlYWNoICgkZmllbGRkZWZzIGFzICRmaWVsZGRlZikgewoJCQkkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CgkJCSRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKCQkJJGZpZWxkLT52YWx1ZSA9ICRmaWVsZGRlZi0+dmFsdWU7CgkJCSRmaWVsZGFycmF5WyRmaWVsZC0+aWRdID0gJGZpZWxkOwoJCQkkb25lcm93LT5jdXN0b21maWVsZHNieW5hbWVbJGZpZWxkZGVmLT5uYW1lXSA9ICRmaWVsZGRlZi0+dmFsdWU7CgkJICB9CgkJICAkb25lcm93LT5jdXN0b21maWVsZHMgPSAkZmllbGRhcnJheTsKCQl9CgoJCSRlbnRyeWFycmF5W10gPSAkb25lcm93OwoJICB9IC8vIHdoaWxlCgoJCS8vIHVwZGF0ZSBzZWFyY2ggc3RhdHMKCSAgaWYoIGNvdW50KCRpZGxpc3QpICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb2xsZWN0c3RhdHMnLDApICkgewoJCSRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0cwogICAgICAgICAgICAgICAgICAgIChjb21wYW55X2lkLGRhdGVfc2VhcmNoZWQscG9zdGNvZGUpIFZBTFVFUyAoPywkbm93LD8pIjsKCQlmb3JlYWNoKCAkaWRsaXN0IGFzICRvbmUgKSB7CgkJICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRvbmUsJHBvc3RhbCkpOwoJCX0KCSAgfQoJfSAvLyBjb3VudAogIH0gLy8gbm8gZXJyb3JzCn0gLy8gc3VibWl0CgojCiMgR2l2ZSBFdmVyeXRoaW5nIHRvIFNtYXJ0eQojCmlmKCBjb3VudCgkZXJyb3JzKSApICRzbWFydHktPmFzc2lnbignZXJyb3JzJywkZXJyb3JzKTsKaWYoIGNvdW50KCRlbnRyeWFycmF5KSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkZW50cnlhcnJheSk7Cn0KZWxzZSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkdGhpcy0+TGFuZygnZXJyb3Jfbm9yZXN1bHRzZm91bmQnKSk7Cn0KaWYoIGlzX2FycmF5KCRwb3N0YWxfZGF0YSkgKSAkc21hcnR5LT5hc3NpZ24oJ3Bvc3RhbF9kYXRhJywkcG9zdGFsX2RhdGEpOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsY291bnQoJGVudHJ5YXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2V0ZXh0JywkdGhpcy0+TGFuZygncGFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRudW1wYWdlcyk7CiRzbWFydHktPmFzc2lnbignY3VycGFnZScsJHBhZ2UpOwppZiggJG51bXBhZ2VzICkgewogIGlmKCAkcGFnZSA9PSAxKSB7Cgkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKCSRzbWFydHktPmFzc2lnbigncHJldmxpbmsnLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpKTsKICB9CiAgZWxzZSB7CgkkcGFybXMgPSAkcGFyYW1zOwoJJHBhcm1zWydwYWdlJ10gPSAxOwoJJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLAoJCQkJCQkJCQkJCQkgICR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSwKCQkJCQkJCQkJCQkJICAkcGFybXMpKTsKCSRwYXJtc1sncGFnZSddID0gJHBhZ2UgLSAxOwoJJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCQkJCQkJCSAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSwKCQkJCQkJCQkJCQkJICRwYXJtcykpOwogIH0KICBpZiggJHBhZ2UgPT0gJG51bXBhZ2VzICkgewoJJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwoJJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpOwogIH0KICBlbHNlIHsKCSRwYXJtcyA9ICRwYXJhbXM7CgkkcGFybXNbJ3BhZ2UnXSA9ICRudW1wYWdlczsKCSRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLAoJCQkJCQkJCQkJCQkgJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJyksCgkJCQkJCQkJCQkJCSAkcGFybXMpKTsKCSRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwoJJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCQkJCQkJCSAkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwKCQkJCQkJCQkJCQkJICRwYXJtcykpOwogIH0KfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdzdW1tYXJ5XycuJHN1bW1hcnl0ZW1wbGF0ZSk7CgojCiMgRU9GCiMgCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkpOwoJcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnl1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJyk7CiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX3NldHRpbmdzJywgJHJldHVybmlkLCRwYXJhbXMpOwp9CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CiR0bXBkaXIgPSAnJzsKJGltYWdlID0gbnVsbDsKJGRlc2NyaXB0aW9uID0gJyc7CiRkZWxpbWFnZSA9IDA7CiRjYXRpZCA9ICcnOwokbmFtZSA9ICcnOwokZXh0cmExID0gJyc7CiRleHRyYTIgPSAnJzsKJGV4dHJhMyA9ICcnOwoKaWYgKCFpc3NldCgkcGFyYW1zWydjYXRpZCddKSkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KCiRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKJGNhdGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdjYXQnLiRjYXRpZCk7CgovLyBsb2FkIHRoZSBpbmZvLgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKaWYgKCRyb3cpCiAgewoJJG5hbWUgPSAkcm93WyduYW1lJ107CgkkaW1hZ2UgPSAkcm93WydpbWFnZSddOwoJJGRlc2NyaXB0aW9uID0gJHJvd1snZGVzY3JpcHRpb24nXTsKCSRleHRyYTEgPSAkcm93WydleHRyYTEnXTsKCSRleHRyYTIgPSAkcm93WydleHRyYTInXTsKCSRleHRyYTMgPSAkcm93WydleHRyYTMnXTsKICB9CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQp7CiAgJGVycm9yID0gJyc7CgogIC8vIGdldCB0aGUgaW5mbwogIGlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKQoJewoJICAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKCX0KCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ10pICkKCXsKCSAgJGRlc2NyaXB0aW9uID0gJHBhcmFtc1snZGVzY3JpcHRpb24nXTsKCX0KCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGltYWdlJ10pICkKCXsKCSAgJGRlbGltYWdlID0gMTsKCX0KCiAgaWYgKGlzc2V0KCRwYXJhbXNbJ2V4dHJhMSddKSkKCXsKCSAgJGV4dHJhMSA9ICRwYXJhbXNbJ2V4dHJhMSddOwoJfQoKICBpZiAoaXNzZXQoJHBhcmFtc1snZXh0cmEyJ10pKQoJewoJICAkZXh0cmEyID0gJHBhcmFtc1snZXh0cmEyJ107Cgl9CgogIGlmIChpc3NldCgkcGFyYW1zWydleHRyYTMnXSkpCgl7CgkgICRleHRyYTMgPSAkcGFyYW1zWydleHRyYTMnXTsKCX0KCiAgLy8gdmFsaWRhdGUgdGhlIGluZm8KICBpZiAoJG5hbWUgPT0gJycpCgl7CgkgICRlcnJvciA9ICR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpOwoJfQogIGlmKCAkZXJyb3IgPT0gJycgJiYgcHJlZ19tYXRjaCgnL1teXHcgXS8nLCRuYW1lKSApCgl7CgkgICRlcnJvciA9ICR0aGlzLT5MYW5nKCdiYWRuYW1lZ2l2ZW4nKTsKCX0KCgogIC8vIGhhbmRsZSB0aGUgaW5mbwogIGlmKCAhJGVycm9yICYmICRkZWxpbWFnZSA9PSAxKQoJewoJICAvLyBkZWxldGUgZXhpc3RpbmcgaW1hZ2UgKGFuZCBkaXIpCgkgIC8vIHRoaXMgd291bGQgaGF2ZSB0byBjaGFuZ2UgaWYgbW9yZSB0aGFuIG9uZSBpbWFnZSB3YXMgYWxsb3dlZC4KCSAgY2dlX2Rpcjo6cmVjdXJzaXZlX3JtZGlyKCRjYXRkaXIpOwoJICAkaW1hZ2UgPSBudWxsOwoJfQoKICBpZiggISRlcnJvciApCgl7CgkgIC8vIGhhbmRsZSBmaWxlIHVwbG9hZCAoaWYgYW55KSAodG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5KQoJICAkdG1wZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ3UnLiR1c2VyaWQpOwoJICAkdXBsb2FkZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJHRtcGRpcik7CgkgICRyZXMgPSAkdXBsb2FkZXItPmNoZWNrX3VwbG9hZCgnaW1hZ2UnLEZBTFNFLEZBTFNFKTsKCSAgaWYoICEkcmVzICYmICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkKCQl7CgkJICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJCX0KCSAgZWxzZQoJCXsKCQkgIGNnZV9kaXI6Om1rZGlycigkdG1wZGlyKTsKCQkgICRpbWFnZSA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnaW1hZ2UnKTsKCQkgIGlmKCAhJGltYWdlICYmICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkKCQkJewoJCQkgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSk7CgkJCX0KCQl9Cgl9CgogIGlmKCAhJGVycm9yICkKCXsKCSAgLy8gZGF0YWJhc2Ugd29yay4KCSAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyAKICAgICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgZGVzY3JpcHRpb24gPSA/LCBpbWFnZSA9ID8sIGV4dHJhMSA9ID8sIGV4dHJhMiA9ID8sIGV4dHJhMyA9ID8sIG1vZGlmaWVkX2RhdGUgPSBOT1coKQogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkZGVzY3JpcHRpb24sICRpbWFnZSwgJGV4dHJhMSwgJGV4dHJhMiwgJGV4dHJhMywgJGNhdGlkKSk7CgoJICBpZiggISRkYnIgKQoJCXsKCQkgICRlcnJvciA9ICRkYi0+RXJyb3JNc2coKS4nIC0tICcuJGRiLT5zcWw7CgkJfQoJfQoKICBpZiggISRlcnJvciAmJiAkaW1hZ2UgJiYgJHRtcGRpciAmJiBpc19kaXIoJHRtcGRpcikgKQoJewoJICBjZ2VfZGlyOjpyZWN1cnNpdmVfcm1kaXIoJGNhdGRpcik7IC8vIG51a2UgYWxsIGZpbGVzLi4uIGp1c3QgdG8gYmUgc2FmZSwgd2Ugb25seSBhbGxvdyBvbmUgYXRtLgoJICBjZ2VfZGlyOjpta2RpcnIoJGNhdGRpcik7CgoJICAkZmlsZXMgPSBnbG9iKCR0bXBkaXIuJy8qLionKTsKCSAgZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkKCQl7CgkJICAkYm4gPSBiYXNlbmFtZSgkZmlsZSk7CgkJICBAcmVuYW1lKCRmaWxlLGNtc19qb2luX3BhdGgoJGNhdGRpciwkYm4pKTsKCQl9CgkgIGNnZV9kaXI6OnJlY3Vyc2l2ZV9ybWRpcigkdG1wZGlyKTsKCSAgJHRtcGRpciA9ICcnOwoJfQoKICBpZiggISRlcnJvciApCgl7CgkgIC8vIG5vIGVycm9ycywgZ2V0IG91dGEgaGVyZS4KCSAgYXVkaXQoJGNhdGlkLCR0aGlzLT5HZXROYW1lKCksJ0VkaXRlZCBDYXRlZ29yeSAnLiRuYW1lKTsKCSAgJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnl1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJyk7CgkgICR0aGlzLT5SZWRpcmVjdCgkaWQsICdhZG1pbl9zZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyk7CQkJCgl9CgogIC8vIGRpc3BsYXkgZXJyb3JzCiAgaWYoICR0bXBkaXIgJiYgaXNfZGlyKCR0bXBkaXIpICkKCXsKCSAgY2dlX2Rpcjo6cmVjdXJzaXZlX3JtZGlyKCR0bXBkaXIpOwoJfQogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9yKTsKCn0KCi8vIERpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlJywkaW1hZ2UpOwokc21hcnR5LT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywkZGVzY3JpcHRpb24pOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDIwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGV4dHJhMScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZXh0cmExJywgJGV4dHJhMSwgNjAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZXh0cmEyJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdleHRyYTInLCAkZXh0cmEyLCA2MCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRleHRyYTMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2V4dHJhMycsICRleHRyYTMsIDYwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY2F0aWQnLCAkY2F0aWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.editcompany.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgcmV0dXJuOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7CgokY29tcGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjb21waWQnXSkpICRjb21waWQgPSAoaW50KSRwYXJhbXNbJ2NvbXBpZCddOwoKJGNvbXBhbnlfbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZXhfY29tcGFueV9uYW1lJ10pKSAkY29tcGFueV9uYW1lID0gJHBhcmFtc1snZXhfY29tcGFueV9uYW1lJ107CgokYWRkcmVzcyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWRkcmVzcyddKSkgJGFkZHJlc3MgPSAkcGFyYW1zWydhZGRyZXNzJ107CgokdXJsID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd1cmwnXSkpICR1cmwgPSAkcGFyYW1zWyd1cmwnXTsKCiRsYXRpdHVkZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbGF0aXR1ZGUnXSkpICRsYXRpdHVkZSA9ICRwYXJhbXNbJ2xhdGl0dWRlJ107CgokbG9uZ2l0dWRlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydsb25naXR1ZGUnXSkpICRsb25naXR1ZGUgPSAkcGFyYW1zWydsb25naXR1ZGUnXTsKCiRoaWVycG9zID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydoaWVycG9zJ10pKSAkaGllcnBvcyA9ICRwYXJhbXNbJ2hpZXJwb3MnXTsKCiR0ZWxlcGhvbmUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbGVwaG9uZSddKSkgJHRlbGVwaG9uZSA9ICRwYXJhbXNbJ3RlbGVwaG9uZSddOwoKJGZheCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZmF4J10pKSAkZmF4ID0gJHBhcmFtc1snZmF4J107CgokY29udGFjdF9lbWFpbCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snY29udGFjdF9lbWFpbCddKSkgJGNvbnRhY3RfZW1haWwgPSAkcGFyYW1zWydjb250YWN0X2VtYWlsJ107Cgokd2Vic2l0ZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snd2Vic2l0ZSddKSkgJHdlYnNpdGUgPSAkcGFyYW1zWyd3ZWJzaXRlJ107CgokZGV0YWlscyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscyddKSkgJGRldGFpbHMgPSAkcGFyYW1zWydkZXRhaWxzJ107Cgokc3RhdHVzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpICRzdGF0dXMgPSAkcGFyYW1zWydzdGF0dXMnXTsKCiRvd25lcl9pZCA9IC0xOwppZiAoaXNzZXQoJHBhcmFtc1snb3duZXJfaWQnXSkpICRvd25lcl9pZCA9ICRwYXJhbXNbJ293bmVyX2lkJ107Cgokb3JpZ25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ29yaWduYW1lJ10pKSAkb3JpZ25hbWUgPSAkcGFyYW1zWydvcmlnbmFtZSddOwoKJGNhbl9jYW5jZWwgPSAxOwppZiggaXNzZXQoJHBhcmFtc1snbm9jYW5jZWwnXSkgKSAkY2FuX2NhbmNlbCA9IDA7CgoKJGZpZWxkZGVmcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2Zvcl9jb21wYW55KCRjb21waWQsVFJVRSk7CiRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkKTsKCmZ1bmN0aW9uIGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICRmaWVsZG5hbWUpCnsKCWdsb2JhbCAkZ0NtczsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknKSkgewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScpOwoJfQoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnKSkgewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcpOwoJfQoJCglAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyd0bXBfbmFtZSddLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gYmFzZW5hbWUoJF9GSUxFU1skaWQgLiAkZmllbGRuYW1lXVsnbmFtZSddKSk7CgkKCXJldHVybiBiYXNlbmFtZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyduYW1lJ10pOwp9CgpmdW5jdGlvbiBoYW5kbGVfdG1wX3VwbG9hZCgkaWQsICRpdGVtaWQsICRmaWxlbmFtZSwgJGZpZWxkbmFtZSwgJiRkYikKewoJZ2xvYmFsICRnQ21zOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCglpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQpKSB7CgkgIEBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQpOwoJfQoJaWYgKCRmaWxlbmFtZSA9PSAnZGVsZXRlbWUnKSB7CgkgICRvbGRmaWxlbmFtZSA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgJyAuICRmaWVsZG5hbWUgLiAnIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8nLCBhcnJheSgkaXRlbWlkKSk7CgkgIGlmIChpc19maWxlKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaWQnIC4gJGl0ZW1pZCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkb2xkZmlsZW5hbWUpKSB7CgkJdW5saW5rKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjb21wYW55ZGlyZWN0b3J5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaWQnIC4gJGl0ZW1pZCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkb2xkZmlsZW5hbWUpOwoJICB9CgkgICRkYi0+RXhlY3V0ZSgnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUICcgLiAkZmllbGRuYW1lIC4gJyA9ID8gV0hFUkUgaWQgPSA/JywgYXJyYXkoJycsICRpdGVtaWQpKTsKCX0KCWVsc2UgaWYgKGlzX2ZpbGUoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSkpIHsKCSAgJG9sZGZpbGVuYW1lID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCAnIC4gJGZpZWxkbmFtZSAuICcgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPycsIGFycmF5KCRpdGVtaWQpKTsKCSAgaWYgKGlzX2ZpbGUoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRvbGRmaWxlbmFtZSkpIHsKCQl1bmxpbmsoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRvbGRmaWxlbmFtZSk7CgkgIH0KCSAgQHJlbmFtZSgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lKTsKCSAgJGRiLT5FeGVjdXRlKCdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBTRVQgJyAuICRmaWVsZG5hbWUgLiAnID0gPyBXSEVSRSBpZCA9ID8nLCBhcnJheSgkZmlsZW5hbWUsICRpdGVtaWQpKTsKCX0KfQoKJGltYWdlID0gJyc7CmlmIChpc3NldCgkX0ZJTEVTWyRpZCAuICdpbWFnZXVwbG9hZCddKSAmJiAkX0ZJTEVTWyRpZCAuICdpbWFnZXVwbG9hZCddWyd0bXBfbmFtZSddICE9ICcnKSB7CiAgJGltYWdlID0gaGFuZGxlX2luaXRpYWxfdXBsb2FkKCRpZCwgJ2ltYWdldXBsb2FkJyk7Cn0KZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlaW1hZ2UnXSkpIHsKICAkaW1hZ2UgPSAnZGVsZXRlbWUnOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ltYWdlY3VycmVudCddKSkgewogICRpbWFnZSA9ICRwYXJhbXNbJ2ltYWdlY3VycmVudCddOwp9CgokbG9nbyA9ICcnOwppZiAoaXNzZXQoJF9GSUxFU1skaWQgLiAnbG9nb3VwbG9hZCddKSAmJiAkX0ZJTEVTWyRpZCAuICdsb2dvdXBsb2FkJ11bJ3RtcF9uYW1lJ10gIT0gJycpIHsKICAkbG9nbyA9IGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICdsb2dvdXBsb2FkJyk7Cn0KZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlbG9nbyddKSkgewogICRsb2dvID0gJ2RlbGV0ZW1lJzsKfQplbHNlIGlmIChpc3NldCgkcGFyYW1zWydsb2dvY3VycmVudCddKSkgewogICRsb2dvID0gJHBhcmFtc1snbG9nb2N1cnJlbnQnXTsKfQoKJGZpZWxkYXJyYXkgPSBhcnJheSgpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogIC8vIHN1Ym1pdCBpcyBwcmVzc2VkLgogICRlcnJvciA9ICcnOwoKICBpZiggJGNvbXBhbnlfbmFtZSA9PSAnJyApICRlcnJvciA9ICR0aGlzLT5MYW5nKCdub2NvbXBhbnluYW1lZ2l2ZW4nKTsKCiAgaWYoICEkZXJyb3IgJiYgY2RfdXRpbHM6OmNvbXBhbnlfbmFtZV9leGlzdHMoJGNvbXBhbnlfbmFtZSwkY29tcGlkKSApIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY29tcGFueScpOwogIH0KCiAgaWYoICRlcnJvciA9PSAnJyAmJiAkdXJsID09ICcnICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVxdWlyZWQnLDApICkgewoJJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VybHJlcXVpcmVkJyk7CiAgfQoKICBpZiggISRlcnJvciAmJiAkdXJsID09ICcnICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfYXV0b2NyZWF0ZScsMCkgKSB7CgkkdXJsID0gY2RfdXRpbHM6OmdlbmVyYXRlX3VybCgkY29tcGFueV9uYW1lKTsKCWlmKCAhJHVybCApICRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbmFtZScpOwogIH0KCiAgaWYoICEkZXJyb3IgJiYgJHVybCAhPSAnJyApIHsKCSRyZXMgPSBjZF91dGlsczo6dmFsaWRhdGVfdXJsKCR1cmwpOwoJaWYoICEkcmVzICkgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1cmwnKTsKICB9CiAgCiAgLy8gY2hlY2sgZmlsZSB1cGxvYWRzIGZyb20gZmllbGRkZWZzCiAgaWYoICEkZXJyb3IgJiYgY291bnQoJGZpZWxkZGVmcykgKSB7Cglmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWVsZGRlZiApIHsKCSAgJGZpZWxkZGVmID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGZpZWxkZGVmKTsKCSAgc3dpdGNoKCAkZmllbGRkZWYtPnR5cGUgKSB7CgkgIGNhc2UgJ2ZpbGUnOgoJICBjYXNlICdpbWFnZSc6CgkJY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKCQkkdXBsb2FkZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJGRlc3RkaXIpOwoJCWlmKCBpc3NldCgkZmllbGRkZWYtPmRhdGEpICYmICRmaWVsZGRlZi0+ZGF0YSAhPSAnJyApIHsKCQkgICR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkZmllbGRkZWYtPmRhdGEpOwoJCX0KCQkkdG1wID0gJHVwbG9hZGVyLT5jaGVja191cGxvYWQoJ2N1c3RvbWZpZWxkJywnZmllbGQtJy4kZmllbGRkZWYtPmlkKTsKCQlpZiggISR0bXAgJiYgJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkJICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJCSAgYnJlYWs7CgkJfQoJCWJyZWFrOwoJICB9Cgl9CiAgfQoKICB0cnkgewoJLy8gZ2V0IHRoZSBjb21wYW55CgkkdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQsVFJVRSk7CgkkdGhlX2NvbXBhbnktPmNvbXBhbnlfbmFtZSA9ICRjb21wYW55X25hbWU7CgkkdGhlX2NvbXBhbnktPnVybCA9ICR1cmw7CgkkdGhlX2NvbXBhbnktPmFkZHJlc3MgPSAkYWRkcmVzczsKCSR0aGVfY29tcGFueS0+dGVsZXBob25lID0gJHRlbGVwaG9uZTsKCSR0aGVfY29tcGFueS0+ZmF4ID0gJGZheDsKCSR0aGVfY29tcGFueS0+Y29udGFjdF9lbWFpbCA9ICRjb250YWN0X2VtYWlsOwoJJHRoZV9jb21wYW55LT53ZWJzaXRlID0gJHdlYnNpdGU7CgkkdGhlX2NvbXBhbnktPmRldGFpbHMgPSAkZGV0YWlsczsKCWlmKCAkaW1hZ2UgKSAkdGhlX2NvbXBhbnktPnBpY3R1cmVfbG9jYXRpb24gPSAkaW1hZ2U7CglpZiggJGxvZ28gKSAkdGhlX2NvbXBhbnktPmxvZ29fbG9jYXRpb24gPSAkbG9nbzsKCSR0aGVfY29tcGFueS0+c3RhdHVzID0gJHN0YXR1czsKCSR0aGVfY29tcGFueS0+bGF0aXR1ZGUgPSAkbGF0aXR1ZGU7CgkkdGhlX2NvbXBhbnktPmxvbmdpdHVkZSA9ICRsb25naXR1ZGU7CgkkdGhlX2NvbXBhbnktPm93bmVyX2lkID0gJG93bmVyX2lkOwoJJHRoZV9jb21wYW55LT5oaWVyX2lkID0gJGhpZXJwb3M7CiAgfQogIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CgkkZXJyb3IgPSAkZS0+R2V0TWVzc2FnZSgpOwogIH0KCiAgLy8gaGFuZGxlIGVycm9ycwogIGlmKCAkZXJyb3IgKSB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcik7CiAgfQogIGVsc2UgewoJLy8gaGFuZGxlIGZpbGUgdXBsb2FkIGN1c3RvbSBmaWVsZHMuCglpZiggY291bnQoJGZpZWxkZGVmcykgKSB7CgkgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmICkgewoJCSRmaWVsZGRlZiA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRmaWVsZGRlZik7CgkJc3dpdGNoKCAkZmllbGRkZWYtPnR5cGUgKSB7CgkJY2FzZSAnZmlsZSc6CgkJICAvLyBoYW5kbGUgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHVzZXIgaGFzIGNob3NlbiB0byBkZWxldGUgdGhlIGZpbGUuCgkJICBpZiggaXNzZXQoJHBhcmFtc1snZGVsZXRlZmlsZSddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSAmJiAkZmllbGRkZWYtPnZhbHVlICE9ICcnICkgewoJCQkvLyB3ZSd2ZSBiZWVuIHRvbGQgdG8gZGVsZXRlIHRoZSBmaWxlLgoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQl1bnNldCgkcGFyYW1zWydjdXN0b21maWVsZCddWydmaWVsZF8nLiRmaWVsZGRlZi0+aWRdKTsKCQkJJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSA9ICdfX0RFTEVURV9fJzsKCQkgIH0KCQkgICR1cGxvYWRlciA9IGNnZV9zZXR1cDo6Z2V0X3VwbG9hZGVyKCRpZCwkZGVzdGRpcik7CgkJICAkdG1wID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdjdXN0b21maWVsZCcsJycsJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZCk7CgkJICBpZiggISR0bXAgKSB7CgkJCWlmKCAkdXBsb2FkZXItPmdldF9lcnJvcigpICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApIHsKCQkJICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJCQkgIGJyZWFrOwoJCQl9CgkJICB9CgkJICBlbHNlIHsKCQkJLy8gd2UncmUgdXBsb2FkaW5nIGEgbmV3IGZpbGUgc28gZGVsZXRlIHRoZSBvbGQgb25lLgoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kZmllbGRkZWYtPnZhbHVlKSk7CgkJCSRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0gPSAkdG1wOwoJCSAgfQoJCSAgYnJlYWs7CgoJCWNhc2UgJ2ltYWdlJzoKCQkgIC8vIGhhbmRsZSB0aGUgcG9zc2liaWxpdHkgd2hlcmUgdGhlIHVzZXIgaGFzIGNob3NlbiB0byBkZWxldGUgYSBmaWxlLgoJCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWZpbGUnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkgJiYgJGZpZWxkZGVmLT52YWx1ZSAhPSAnJyApIHsKCQkJLy8gd2UndmUgYmVlbiB0b2xkIHRvIGRlbGV0ZSB0aGUgZmlsZS4KCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRmaWVsZGRlZi0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRmaWVsZGRlZi0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCdwcmV2aWV3XycuJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQkkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdID0gJ19fREVMRVRFX18nOwoJCSAgfQoJCSAgJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJGlkLCRkZXN0ZGlyKTsKCQkgICR0bXAgPSAkdXBsb2FkZXItPmhhbmRsZV91cGxvYWQoJ2N1c3RvbWZpZWxkJywnJywnZmllbGQtJy4kZmllbGRkZWYtPmlkKTsKCQkgIGlmKCAhJHRtcCApIHsKCQkJaWYoICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgewoJCQkgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSk7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCQkgIGVsc2UgewoJCQkvLyB3ZSdyZSB1cGxvYWRpbmcgYSBuZXcgZmlsZSBzbyBkZWxldGUgdGhlIG9sZCBvbmUuCgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkZmllbGRkZWYtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGVzdGRpciwndGh1bWJfJy4kZmllbGRkZWYtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiRmaWVsZGRlZi0+dmFsdWUpKTsKCQkJJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSA9ICR0bXA7CgkJICB9CgkJICBicmVhazsKCgkJY2FzZSAnbXVsdGlzZWxlY3QnOgoJCSAgaWYoIGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pICYmIAoJCQkgIGlzX2FycmF5KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pICkgewoJCQkkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdID0gaW1wbG9kZSgnfn4nLCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pOwoJCSAgfQoJCSAgYnJlYWs7CgkJfQoJICB9CgkgIGlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddKSkgewoJCWZvcmVhY2ggKCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10gYXMgJGs9PiR2KSB7CgkJICBpZiAoc3RhcnRzd2l0aCgkaywgJ2ZpZWxkLScpKSB7CgkJCWlmKCAkdiA9PSAnX19ERUxFVEVfXycgKSAkdiA9IG51bGw7CgkJCSRmaWQgPSBzdWJzdHIoJGssIDYpOwoJCQkkdGhlX2NvbXBhbnktPnNldF9maWVsZCgkZmlkLCR2KTsKCQkgIH0KCQl9CgkgIH0KCX0gLy8gaWYgY291bnQgZmllbGRkZWZzCgoJLy8gcmVzZXQgY2F0ZWdvcmllcyB0byBub25lLgoJLy8gYW5kIGZpbGwgdGhlbSBiYWNrIGluIGJhc2VkIG9uIHdoYXQncyBpbiB0aGUgZm9ybS4KCSR0aGVfY29tcGFueS0+cmVzZXRfY2F0ZWdvcmllcygpOwoKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeSddKSkgewoJICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeSddIGFzICRrPT4kdikgewoJCWlmIChzdGFydHN3aXRoKCRrLCAnaWQtJykpIHsKCQkgICRmaWQgPSBzdWJzdHIoJGssIDMpOwoKCQkgICRleHRyYTEgPSAnJzsKCQkgICRleHRyYTIgPSAnJzsKCQkgICRleHRyYTMgPSAnJzsKCQkgIGlmKCBpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTEnXVska10pICkgewoJCQkkZXh0cmExID0gJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmExJ11bJGtdOwoJCSAgfQoJCSAgaWYoIGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMiddWyRrXSkgKSB7CgkJCSRleHRyYTIgPSAkX1JFUVVFU1RbJGlkLidjYXRlZ29yeV9leHRyYTInXVska107CgkJICB9CgkJICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnlfZXh0cmEzJ11bJGtdKSApIHsKCQkJJGV4dHJhMyA9ICRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5X2V4dHJhMyddWyRrXTsKCQkgIH0KCgkJICAkdGhlX2NvbXBhbnktPnNldF9jYXRlZ29yeSgkZmlkLDEsJGV4dHJhMSwkZXh0cmEyLCRleHRyYTMpOwoJCX0KCSAgfQoJfQoKCSR0aGVfY29tcGFueS0+c2F2ZSgpOwoKCWlmICgkaW1hZ2UgIT0gJycpIGhhbmRsZV90bXBfdXBsb2FkKCRpZCwgJGNvbXBpZCwgJGltYWdlLCAncGljdHVyZV9sb2NhdGlvbicsICRkYik7CgkgIC8vIGRlcHJlY2F0ZWQsIHVzZSB0aGUgdXBsb2FkZXIgc3R1ZmYuCgkKCWlmICgkbG9nbyAhPSAnJykgaGFuZGxlX3RtcF91cGxvYWQoJGlkLCAkY29tcGlkLCAkbG9nbywgJ2xvZ29fbG9jYXRpb24nLCAkZGIpOwoJICAvLyBkZXByZWNhdGVkLCB1c2UgdGhlIHVwbG9hZGVyIHN0dWZmLgoJCQoJLy9VcGRhdGUgc2VhcmNoIGluZGV4CglpZiggJHRoZV9jb21wYW55LT5zdGF0dXMgIT0gJ2RyYWZ0JyApIHsKCSAgJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CgkgIGlmICgkbW9kdWxlICE9IEZBTFNFKSB7CgkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwkdGhlX2NvbXBhbnktPmlkLCdjb21wYW55JywkdGhlX2NvbXBhbnktPmdldF9zZWFyY2hfd29yZHMoKSk7CgkgIH0KCX0KCglhdWRpdCgkY29tcGlkLCR0aGlzLT5HZXROYW1lKCksJ0VkaXRlZCBjb21wYW55ICcuJGNvbXBhbnlfbmFtZSk7CgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdjb21wYW55dXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAnY29tcGFuaWVzJyk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsJCQkKICB9Cn0KZWxzZSB7CiAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8nOwogICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCiAgaWYgKCRyb3cpIHsKCSRjb21wYW55X25hbWUgPSAkcm93Wydjb21wYW55X25hbWUnXTsKCSR1cmwgPSAkcm93Wyd1cmwnXTsKCSRhZGRyZXNzID0gJHJvd1snYWRkcmVzcyddOwoJJGxhdGl0dWRlID0gJHJvd1snbGF0aXR1ZGUnXTsKCSRsb25naXR1ZGUgPSAkcm93Wydsb25naXR1ZGUnXTsKCSRoaWVycG9zID0gJHJvd1snaGllcl9pZCddOwoJJHRlbGVwaG9uZSA9ICRyb3dbJ3RlbGVwaG9uZSddOwoJJGZheCA9ICRyb3dbJ2ZheCddOwoJJHN0YXR1cyA9ICRyb3dbJ3N0YXR1cyddOwoJJGNvbnRhY3RfZW1haWwgPSAkcm93Wydjb250YWN0X2VtYWlsJ107Cgkkd2Vic2l0ZSA9ICRyb3dbJ3dlYnNpdGUnXTsKCSRkZXRhaWxzID0gJHJvd1snZGV0YWlscyddOwoJJGltYWdlID0gJHJvd1sncGljdHVyZV9sb2NhdGlvbiddOwoJJGxvZ28gPSAkcm93Wydsb2dvX2xvY2F0aW9uJ107Cgkkb3JpZ25hbWUgPSAkcm93Wydjb21wYW55X25hbWUnXTsKCSRvd25lcl9pZCA9ICRyb3dbJ293bmVyX2lkJ107CiAgfQogIGVsc2UgewoJZGllKCdyb3cgbm90IGZvdW5kJyk7CiAgfQp9CgokZmllbGRhcnJheSA9IGFycmF5KCk7CiRpbWFnZWRpciA9ICcnOwokaW1hZ2V1cmwgPSAnJzsKaWYoICRjb21waWQgPiAwICkgewogICRpbWFnZWRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCk7CiAgJGltYWdldXJsID0gJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvaWR7JGNvbXBpZH0iOwp9CgokbmVlZF9pY29ucyA9IDA7CmlmIChjb3VudCgkZmllbGRkZWZzKSA+IDApIHsKICBmb3JlYWNoICgkZmllbGRkZWZzIGFzICRmaWVsZGRlZikgewoJJGZpZWxkZGVmID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGZpZWxkZGVmKTsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKCSR2YWx1ZSA9ICcnOwoJaWYgKGlzc2V0KCRmaWVsZGRlZi0+dmFsdWUpKSAkdmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSkgewoJICAkdmFsdWUgPSAkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdOwoJfQoKCSRmaWVsZC0+dmFsdWUgPSAkdmFsdWU7CgkkZmllbGQtPmlkID0gJGZpZWxkZGVmLT5pZDsKCSRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKCSRmaWVsZC0+dHlwZSA9ICRmaWVsZGRlZi0+dHlwZTsKCglzd2l0Y2ggKCRmaWVsZGRlZi0+dHlwZSkgewoJY2FzZSAnZHJvcGRvd24nOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyxhcnJheV9mbGlwKCRmaWVsZGRlZi0+b3B0aW9ucyksLTEsJHZhbHVlKTsKCSAgYnJlYWs7CgoJY2FzZSAnbXVsdGlzZWxlY3QnOgoJICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBleHBsb2RlKCd+ficsJHZhbHVlKTsKCSAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW10nLAoJCQkJCQkJCQkJCQkJICAgYXJyYXlfZmxpcCgkZmllbGRkZWYtPm9wdGlvbnMpLAoJCQkJCQkJCQkJCQkJICAgJHZhbHVlLG1pbig1LGNvdW50KCR2YWx1ZSkpKTsKCSAgYnJlYWs7CgoJY2FzZSAnZmlsZSc6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJyc7CgkgIGlmKCAkdmFsdWUgKSB7CgkJJGZpZWxkLT5pbnB1dF9ib3ggLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicuJGlkLidjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10iIHZhbHVlPSInLiR2YWx1ZS4nIi8+JzsKCQkkZmllbGQtPmlucHV0X2JveCAuPSAiPGJyLz57JHZhbHVlfTombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInskaWR9ZGVsZXRlZmlsZVtmaWVsZC17JGZpZWxkZGVmLT5pZH1dXCIgdmFsdWU9XCIxXCIvPih7JHRoaXMtPkxhbmcoJ2RlbGV0ZScpfSkiOwoJICB9CgkgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iJy4kaWQuJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXSIgdmFsdWU9IiIgc2l6ZT0iODAiLz4nOwoJICBpZiggJGltYWdlZGlyICkgewoJCSRmbiA9IGNtc19qb2luX3BhdGgoJGltYWdlZGlyLCR2YWx1ZSk7CgkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkJICAkZmllbGQtPmZpbGVfdXJsID0gJGltYWdldXJsLicvJy4kdmFsdWU7CgkJfQoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ2ltYWdlJzoKCSAgJGZpZWxkLT5pbnB1dF9ib3ggPSAnJzsKCSAgaWYoICR2YWx1ZSApIHsKCQkkZmllbGQtPmlucHV0X2JveCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJy4kaWQuJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXSIgdmFsdWU9IicuJHZhbHVlLiciLz4nOwoJCSRmaWVsZC0+aW5wdXRfYm94IC49ICI8YnIvPnskdmFsdWV9OiZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwieyRpZH1kZWxldGVmaWxlW2ZpZWxkLXskZmllbGRkZWYtPmlkfV1cIiB2YWx1ZT1cIjFcIi8+KHskdGhpcy0+TGFuZygnZGVsZXRlJyl9KSI7CgkgIH0KCSAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSInLiRpZC4nY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddIiB2YWx1ZT0iIiBzaXplPSI4MCIvPic7CgkgIGlmKCAkaW1hZ2VkaXIgKSB7CgkJJGZuID0gY21zX2pvaW5fcGF0aCgkaW1hZ2VkaXIsJ3RodW1iXycuJHZhbHVlKTsKCQlpZiggZmlsZV9leGlzdHMoJGZuKSApICRmaWVsZC0+dGh1bWJfdXJsID0gJGltYWdldXJsLicvdGh1bWJfJy4kdmFsdWU7CgkJJGZuID0gY21zX2pvaW5fcGF0aCgkaW1hZ2VkaXIsJ3ByZXZpZXcnLiR2YWx1ZSk7CgkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSAkZmllbGQtPnByZXZpZXdfdXJsID0gJGltYWdldXJsLicvcHJldmlld18nLiR2YWx1ZTsKCQkkZm4gPSBjbXNfam9pbl9wYXRoKCRpbWFnZWRpciwkdmFsdWUpOwoJCWlmKCBmaWxlX2V4aXN0cygkZm4pICkgJGZpZWxkLT5pbWFnZV91cmwgPSAkaW1hZ2V1cmwuJy8nLiR2YWx1ZTsKCSAgfQoJICBicmVhazsKCgljYXNlICdjaGVja2JveCc6CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkaWQgLiAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyAuICciIHZhbHVlPSJmYWxzZSIgLz4nIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywgJ3RydWUnLCAkdmFsdWUgKTsKCSAgYnJlYWs7CgoJY2FzZSAndGV4dGFyZWEnOgoJICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR2YWx1ZSwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwoJICBicmVhazsKCgljYXNlICdhY3Rpdml0eSc6CgkgICRjZ3NvYyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dTb2NpYWxBcHAnKTsKCSAgaWYoIGlzX29iamVjdCgkY2dzb2MpICkgewoJCSRvcHRpb25zID0gY2dzYV9hY3Rpdml0eTo6bG9hZF9hbGxfYXNfZHJvcGRvd24oRkFMU0UpOwoJCWlmKCAhaXNfYXJyYXkoJHZhbHVlKSApICR2YWx1ZSA9IGV4cGxvZGUoJ35+JywkdmFsdWUpOwoJCSRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtdJywKCQkJCQkJCQkJCQkJCQkgYXJyYXlfZmxpcCgkb3B0aW9ucyksCgkJCQkJCQkJCQkJCQkJICR2YWx1ZSxtaW4oNSxjb3VudCgkdmFsdWUpKSk7CgkgIH0KCSAgYnJlYWs7CgoJY2FzZSAnaWNvbic6CgkgIGlmKCAoJGljb25zID0gY2RfdXRpbHM6OmdldF9pY29uX2xpc3QoKSkgKSB7CgkJJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJGljb25zLCcnLCR2YWx1ZSk7CgkJJG5lZWRfaWNvbnMgPSAxOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ3RleHRib3gnOgoJZGVmYXVsdDoKCSAgJG1heGxlbmd0aCA9ICRmaWVsZGRlZi0+bWF4X2xlbmd0aDsKCSAgJHNpemUgPSBtaW4oJG1heGxlbmd0aCw4MCk7CgkgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICRzaXplLCAkbWF4bGVuZ3RoKTsKCSAgYnJlYWs7Cgl9CgoJJGZpZWxkYXJyYXlbXSA9ICRmaWVsZDsKICB9Cn0KCi8vIGZpbmQgYWxsICdvcnBoYW5lZCcgZmlsZXMgaW4gdGhlIGRlc3RkaXIgKGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZW0pLgokZmlsZXMgPSBnbG9iKCRkZXN0ZGlyLicvKicpOwppZiggaXNfYXJyYXkoJGZpbGVzKSAmJiBjb3VudCgkZmlsZXMpICkgewogICRkZWxmaWxlcyA9IGFycmF5KCk7CiAgZm9yKCAkaiA9IDA7ICRqIDwgY291bnQoJGZpbGVzKTsgJGorKyApIHsKCSRibiA9IGJhc2VuYW1lKCRmaWxlc1skal0pOwoJJG9ibiA9ICRibjsKCWlmKCBzdGFydHN3aXRoKCRibiwndGh1bWJfJykgKSAkYm4gPSBzdWJzdHIoJGJuLDYpOwoJaWYoIHN0YXJ0c3dpdGgoJGJuLCdwcmV2aWV3XycpICkgJGJuID0gc3Vic3RyKCRibiw4KTsKCQkKCSRmbmQgPSAwOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkYXJyYXkpOyAkaSsrICkgewoJICAkZmxkID0gJGZpZWxkYXJyYXlbJGldOwoJICBpZiggJGZsZC0+dHlwZSAhPSAnaW1hZ2UnICYmICRmbGQtPnR5cGUgIT0gJ2ZpbGUnICkgY29udGludWU7CgkgIGlmKCAkZmxkLT52YWx1ZSA9PSAkYm4gKSB7CgkJJGZuZCA9IDE7CgkJYnJlYWs7CgkgIH0KCX0KCglpZiggISRmbmQgKSB7CgkgIC8vIGNoZWNrIHRoZSBsb2dvIGFuZCBpbWFnZSBzdHVmZi4KCSAgaWYoICRibiA9PSAkbG9nbyB8fCAkYm4gPT0gJGltYWdlICkgJGZuZCA9IDE7Cgl9CgoJaWYoICEkZm5kICkgJGRlbGZpbGVzW10gPSAkb2JuOwogIH0KICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGVsZmlsZXMpOyAkaSsrICkgewoJQHVubGluaygkZGVzdGRpci4nLycuJGRlbGZpbGVzWyRpXSk7CiAgfQp9CgovLyBnZXQgdXNlciBpbmZvcm1hdGlvbgokZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCBpc19vYmplY3QoJGZldSkgKSB7CiAgJHRtcCA9ICRmZXUtPkdldFVzZXJzSW5Hcm91cCgpOwogIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCSR1c2VycyA9IGFycmF5KCk7CgkkdXNlcnNbLTFdID0gJHRoaXMtPkxhbmcoJ25vbmUnKTsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJICAkdXNlcnNbJHRtcFskaV1bJ2lkJ11dID0gJHRtcFskaV1bJ3VzZXJuYW1lJ107Cgl9Cgkkc21hcnR5LT5hc3NpZ24oJ2ZldV91c2VycycsJHVzZXJzKTsKICB9Cn0KJHNtYXJ0eS0+YXNzaWduKCdvd25lcl9pZCcsJG93bmVyX2lkKTsKCiRjYXRlZ29yaWVzID0gJHRoaXMtPkdldENhdGVnb3JpZXNGb3JDb21wYW55KCRjb21waWQpOwokY2F0YXJyYXkgPSBhcnJheSgpOwoKaWYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApIHsKICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkb25lY2F0KSB7CgkkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCgkkdmFsdWUgPSAnJzsKCWlmIChpc3NldCgkb25lY2F0LT52YWx1ZSkpICR2YWx1ZSA9ICRvbmVjYXQtPnZhbHVlOwoKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeSddKSkgewoJICBpZiAoaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnknXVsnaWQtJy4kb25lY2F0LT5pZF0pKQoJCSR2YWx1ZSA9ICd0cnVlJzsKCSAgZWxzZQoJCSR2YWx1ZSA9ICdmYWxzZSc7Cgl9CgoJJGZpZWxkLT52YWx1ZSA9ICR2YWx1ZTsKCSRmaWVsZC0+aWQgPSAkb25lY2F0LT5pZDsKCSRmaWVsZC0+bmFtZSA9ICRvbmVjYXQtPm5hbWU7CgkkZmllbGQtPmNoZWNrYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2F0ZWdvcnlbaWQtJy4kb25lY2F0LT5pZC4nXScsICR2YWx1ZSwgJ3RydWUnKTsKCSRmaWVsZC0+ZXh0cmExID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2NhdGVnb3J5X2V4dHJhMVtpZC0nLiRvbmVjYXQtPmlkLiddJywgJG9uZWNhdC0+ZXh0cmExLDYwLDI1NSk7CgkkZmllbGQtPmV4dHJhMiA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjYXRlZ29yeV9leHRyYTJbaWQtJy4kb25lY2F0LT5pZC4nXScsICRvbmVjYXQtPmV4dHJhMiw2MCwyNTUpOwoJJGZpZWxkLT5leHRyYTMgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY2F0ZWdvcnlfZXh0cmEzW2lkLScuJG9uZWNhdC0+aWQuJ10nLCAkb25lY2F0LT5leHRyYTMsNjAsMjU1KTsKCgkkY2F0YXJyYXlbXSA9ICRmaWVsZDsKICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiRwb3N0X21heF9zaXplID0gY2dlX3N0cmluZzo6c3RyX3RvX2J5dGVzKGluaV9nZXQoJ3Bvc3RfbWF4X3NpemUnKSk7CiR1cGxvYWRfbWF4X2ZpbGVzaXplID0gY2dlX3N0cmluZzo6c3RyX3RvX2J5dGVzKGluaV9nZXQoJ3VwbG9hZF9tYXhfZmlsZXNpemUnKSk7CiRzbWFydHktPmFzc2lnbignbWF4X2NodW5rc2l6ZScsbWluKCR1cGxvYWRfbWF4X2ZpbGVzaXplLCRwb3N0X21heF9zaXplLTEwMjQpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRjb21wYW55JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbXBhbnlfbmFtZScsJGNvbXBhbnlfbmFtZSk7CiRzbWFydHktPmFzc2lnbignYWRkcmVzc3RleHQnLCAkdGhpcy0+TGFuZygnYWRkcmVzcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd1cmwnLCR1cmwpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0YWRkcmVzcycsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYWRkcmVzcycsICRhZGRyZXNzLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRsYXRpdHVkZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbGF0aXR1ZGUnLCAkbGF0aXR1ZGUsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxvbmdpdHVkZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbG9uZ2l0dWRlJywgJGxvbmdpdHVkZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0aGllcnBvcycsJHRoaXMtPkNyZWF0ZVBhcmVudERyb3Bkb3duKCRpZCwtMSwkaGllcnBvcywnaGllcnBvcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd0ZWxlcGhvbmV0ZXh0JywgJHRoaXMtPkxhbmcoJ3RlbGVwaG9uZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHRlbGVwaG9uZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndGVsZXBob25lJywgJHRlbGVwaG9uZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2ZheHRleHQnLCAkdGhpcy0+TGFuZygnZmF4JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZmF4JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYXgnLCAkZmF4LCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZW1haWx0ZXh0JywgJHRoaXMtPkxhbmcoJ2NvbnRhY3RlbWFpbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGVtYWlsJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjb250YWN0X2VtYWlsJywgJGNvbnRhY3RfZW1haWwsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWJzaXRldGV4dCcsICR0aGlzLT5MYW5nKCd3ZWJzaXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0d2Vic2l0ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnd2Vic2l0ZScsICR3ZWJzaXRlLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignZGV0YWlsc3RleHQnLCAkdGhpcy0+TGFuZygnZGV0YWlscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkZGV0YWlscywgJ2RldGFpbHMnLCAnJywgJycsICcnLCAnJywgJzgwJywgJzUnKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2V1cGxvYWQnLCAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwgJ2ltYWdldXBsb2FkJywgJycsIDgwKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VjdXJyZW50JywgJGltYWdlKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZWN1cnJlbnRoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnaW1hZ2VjdXJyZW50JywgJHJldHVybmlkLCAkaW1hZ2UpIC4gJyAtLSAnIC4gJHRoaXMtPkxhbmcoJ2RlbGV0ZScpIC4gJzonIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZGVsZXRlaW1hZ2UnLCAnY2hlY2tlZCcsICcnKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2V0ZXh0JywgJHRoaXMtPkxhbmcoJ2ltYWdldGV4dCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdsb2dvdXBsb2FkJywgJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsICdsb2dvdXBsb2FkJywgJycsIDgwKSk7CiRzbWFydHktPmFzc2lnbignbG9nb2N1cnJlbnQnLCAkbG9nbyk7CiRzbWFydHktPmFzc2lnbignbG9nb2N1cnJlbnRoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbG9nb2N1cnJlbnQnLCAkcmV0dXJuaWQsICRsb2dvKSAuICcgLS0gJyAuICR0aGlzLT5MYW5nKCdkZWxldGUnKSAuICc6JyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2RlbGV0ZWxvZ28nLCAnY2hlY2tlZCcsICcnKSk7CiRzbWFydHktPmFzc2lnbignbG9nb3RleHQnLCAkdGhpcy0+TGFuZygnbG9nb3RleHQnKSk7CiRzbWFydHktPmFzc2lnbigndXJsX3JlcXVpcmVkJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSk7Cgokc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLAoJCQkJICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywKCQkJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc3RhdHVzJywkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwoKJHNtYXJ0eS0+YXNzaWduKCdpZHRleHQnLCR0aGlzLT5MYW5nKCdpZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb21waWQnLCRjb21waWQpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsIAoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NvbXBpZCcsICRjb21waWQpLgoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ29yaWduYW1lJywgJG9yaWduYW1lKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CgppZiggJGNhbl9jYW5jZWwgKSAkc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2N1c3RvbWZpZWxkcycsICRmaWVsZGFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21maWVsZHNjb3VudCcsIGNvdW50KCRmaWVsZGFycmF5KSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsICRjYXRhcnJheSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllc2NvdW50JywgY291bnQoJGNhdGFycmF5KSk7CiRzbWFydHktPmFzc2lnbignY2FuX2dlb2NvZGUnLGNkX3V0aWxzOjpjYW5fZ2VvbG9jYXRlKCkpOwoKJGZ0ID0gJHRoaXMtPkdldEZpZWxkVHlwZXMoKTsKaWYoIGlzc2V0KCRmdFsnYWxidW0nXSkgJiYgaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgY291bnQoJGZpZWxkZGVmcykgKSB7CiAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkZmRpZCA9PiAkcmVjICkgewoJaWYoICRyZWMtPnR5cGUgPT0gJ2FsYnVtJyApIHsKCSAgJHNtYXJ0eS0+YXNzaWduKCdhbGJ1bV9maWVsZF9leGlzdHMnLCRmZGlkKTsKCSAgYnJlYWs7Cgl9CiAgfQp9CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNvbXBhbnkudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkpOwogIHJldHVybjsKfQoKCi8vCi8vIEluaXRpYWxpemF0aW9uCi8vCiRuYW1lID0gJyc7CiR0eXBlID0gJyc7CiRtYXhfbGVuZ3RoID0gMjU1Owokb3JpZ25hbWUgPSAnJzsKJGFkbWluX29ubHkgPSAwOwokcHVibGljID0gMDsKJGRyb3Bkb3duX2RhdGEgPSAnJzsKJGRhdGEgPSAnJzsKCi8vCi8vIFNldHVwCi8vCiRmZGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkpICRmZGlkID0gJHBhcmFtc1snZmRpZCddOwoKCi8vCi8vIEdldCBEYXRhCi8vCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgV0hFUkUgaWQgPSA/JzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKaWYgKCRyb3cpIHsKICAkbmFtZSA9ICRyb3dbJ25hbWUnXTsKICAkdHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAkbWF4X2xlbmd0aCA9ICRyb3dbJ21heF9sZW5ndGgnXTsKICAkb3JpZ25hbWUgPSAkcm93WyduYW1lJ107CiAgJGFkbWluX29ubHkgPSAkcm93WydhZG1pbl9vbmx5J107CiAgJHB1YmxpYyA9ICRyb3dbJ3B1YmxpYyddOwogICRkcm9wZG93bl9kYXRhID0gJHJvd1snZHJvcGRvd25fZGF0YSddOwogICRkYXRhID0gJHJvd1snZGF0YSddOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107CmlmIChpc3NldCgkcGFyYW1zWyd0eXBlJ10pKSAkdHlwZSA9ICRwYXJhbXNbJ3R5cGUnXTsKaWYgKGlzc2V0KCRwYXJhbXNbJ21heF9sZW5ndGgnXSkpICRtYXhfbGVuZ3RoID0gKGludCkkcGFyYW1zWydtYXhfbGVuZ3RoJ107CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkgJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2FkbWluX29ubHknXSkgKSAkYWRtaW5fb25seSA9IChpbnQpJHBhcmFtc1snYWRtaW5fb25seSddOwppZiggaXNzZXQoJHBhcmFtc1sncHVibGljJ10pICkgJHB1YmxpYyA9IChpbnQpJHBhcmFtc1sncHVibGljJ107CmlmKCAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBpc3NldCgkcGFyYW1zWydkcm9wZG93bl9vcHRpb25zJ10pICkgJGRyb3Bkb3duX2RhdGEgPSB0cmltKCRwYXJhbXNbJ2Ryb3Bkb3duX29wdGlvbnMnXSk7CmlmKCAoJHR5cGUgPT0gJ2ZpbGUnIHx8ICR0eXBlID09ICdpbWFnZScgfHwgJHR5cGUgPT0gJ2FsYnVtJykgJiYgaXNzZXQoJHBhcmFtc1snZXh0ZW5zaW9ucyddKSApICRkYXRhID0gdHJpbSgkcGFyYW1zWydleHRlbnNpb25zJ10pOwoKJHN0YXR1cyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgaWYoIGVtcHR5KCRuYW1lKSApICRzdGF0dXMgPSAkdGhpcy0+TGFuZygnbm9uYW1naXZlbicpOwogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAkdHlwZSA9PSAndGV4dGJveCcgJiYgIWlzX251bWVyaWMoJG1heF9sZW5ndGgpICkgJHN0YXR1cyA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2xlbmd0aCcpOwogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAoJHR5cGUgPT0gJ2Ryb3Bkb3duJyB8fCAkdHlwZSA9PSAnbXVsdGlzZWxlY3QnKSAmJiBlbXB0eSgkZHJvcGRvd25fZGF0YSkgKSB7Cgkkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJyk7CiAgfQogIAogIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAkdHlwZSA9PSAnYWxidW0nICkgewoJJGZkID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnNfYnlfbmFtZShUUlVFLFRSVUUpOwoJJGZuZCA9IGZhbHNlOwoJaWYoaXNfYXJyYXkoJGZkKSAmJiBjb3VudCgkZmQpICkgewoJICBmb3JlYWNoKCAkZmQgYXMgJHRoZV9pZCA9PiAkdGhlX3JlYyApIHsKCQlpZiggJHRoZV9yZWNbJ3R5cGUnXSA9PSAnYWxidW0nICYmICR0aGVfcmVjWydpZCddICE9ICRmZGlkICkgewoJCSAgJGZuZCA9IHRydWU7CgkJICBicmVhazsKCQl9CgkgIH0KCX0KCWlmKCAkZm5kICkgewogICAgICAkc3RhdHVzID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnKTsKCX0KICB9CiAgaWYoIGVtcHR5KCRzdGF0dXMpICkgewoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIAogICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgdHlwZSA9ID8sIG1heF9sZW5ndGggPSA/LCBtb2RpZmllZF9kYXRlID0gJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywgCiAgICAgICAgICAgICAgICAgIGFkbWluX29ubHkgPSA/LCBwdWJsaWMgPSA/LCBkcm9wZG93bl9kYXRhID0gPywgZGF0YSA9ID8KICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkdHlwZSwgJG1heF9sZW5ndGgsICRhZG1pbl9vbmx5LCAkcHVibGljLCAkZHJvcGRvd25fZGF0YSwgJGRhdGEsICRmZGlkKSk7CglpZiggISRyZXMgKSBkaWUoICRkYi0+RXJyb3JNc2coKSApOwoKCWF1ZGl0KCRmZGlkLCR0aGlzLT5HZXROYW1lKCksJ0VkaXRlZCBmaWVsZCBkZWZpbml0aW9uICcuJG5hbWUuJyBvZiB0eXBlICcuJHR5cGUpOwoJJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2ZpZWxkZGVmdXBkYXRlZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKICB9CiAgCiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkc3RhdHVzKTsKfQoKCiNEaXNwbGF5IHRlbXBsYXRlCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsICR0aGlzLT5MYW5nKCd0eXBlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21heGxlbmd0aHRleHQnLCAkdGhpcy0+TGFuZygnbWF4X2xlbmd0aCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMjAsIDI1NSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0bWF4bGVuZ3RoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtYXhfbGVuZ3RoJywgJG1heF9sZW5ndGgsIDIwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCd1c2VyZWRpdHRleHQnLCR0aGlzLT5MYW5nKCdhZG1pbl9vbmx5JykpOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJ2aWV3dGV4dCcsJHRoaXMtPkxhbmcoJ3B1YmxpYycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VyZWRpdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYWRtaW5fb25seScsMCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYWRtaW5fb25seScsIDEsICRhZG1pbl9vbmx5KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlcnZpZXcnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3B1YmxpYycsMCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYykpOwokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkdHlwZXMnLCR0aGlzLT5HZXRGaWVsZFR5cGVzKCkpOwokc21hcnR5LT5hc3NpZ24oJ2ZsZHR5cGUnLCR0eXBlKTsKJHNtYXJ0eS0+YXNzaWduKCdkcm9wZG93bl9kYXRhJywkZHJvcGRvd25fZGF0YSk7CiRzbWFydHktPmFzc2lnbignZXh0ZW5zaW9ucycsJGRhdGEpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmRpZCcsICRmZGlkKS4KCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZmllbGRkZWYudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.exportcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmdW5jdGlvbiBwcm9jZXNzX2ZpZWxkKCR0eHQsJGRlbGltID0gJ3wnKQp7CiAgJHR4dCA9IHRyaW0oJHR4dCk7CiAgJHR4dCA9IHN0cl9yZXBsYWNlKCRkZWxpbSwnLSUlLScsJHR4dCk7CiAgJHR4dCA9IHN0cl9yZXBsYWNlKCJcclxuIiwiXG4iLCR0eHQpOwogICR0eHQgPSBzdHJfcmVwbGFjZSgiXHIiLCJcbiIsJHR4dCk7CiAgJHR4dCA9IHN0cl9yZXBsYWNlKCJcbiIsJ15eJywkdHh0KTsKICBpZiggc3Ryc3RyKCR0eHQsJyAnKSAhPT0gRkFMU0UgKQogICAgewogICAgICAkdHh0ID0gJyInLiR0eHQuJyInOwogICAgfQogIHJldHVybiAkdHh0Owp9CgokZGVsaW0gPSAnfCc7CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIE9SREVSIEJZIGl0ZW1fb3JkZXIgQVNDJzsKJGZpZWxkZGVmcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCi8vIDEuIEJ1aWxkIHRoZSBoZWFkZXIgbGluZQokaGVhZGVyID0gJyNDT01QQU5ZPUMnLiRkZWxpbTsKCi8vIDEuMSBHZXQgdGhlIGNvbXBhbmllcyBoZWFkZXIuCiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgT1JERVIgQlkgY29tcGFueV9uYW1lIExJTUlUIDEiOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5KTsKdW5zZXQoJHJvd1snY3JlYXRlX2RhdGUnXSk7CnVuc2V0KCRyb3dbJ21vZGlmaWVkX2RhdGUnXSk7CnVuc2V0KCRyb3dbJ2lkJ10pOwp1bnNldCgkcm93Wydvd25lcl9pZCddKTsKdW5zZXQoJHJvd1sncGljdHVyZV9sb2NhdGlvbiddKTsKdW5zZXQoJHJvd1snbG9nb19sb2NhdGlvbiddKTsKdW5zZXQoJHJvd1snaGllcl9pZCddKTsKJHJvd1snaGllcmFyY2h5J10gPSAxOwokY29tcGFueV9maWVsZHMgPSBhcnJheV9rZXlzKCRyb3cpOwokaGVhZGVyIC49IGltcGxvZGUoJGRlbGltLCRjb21wYW55X2ZpZWxkcyk7CiRoZWFkZXIgLj0gJGRlbGltOwoKLy8gMS4xLjEgR2V0IHRoZSBmaWVsZCBkZWZpbml0aW9uIG5hbWVzCmlmKCAkZmllbGRkZWZzICYmIGlzX2FycmF5KCRmaWVsZGRlZnMpICkKICB7CiAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmUgKQogICAgICB7CglpZiggc3Ryc3RyKCRvbmVbJ25hbWUnXSwnICcpICE9PSBGQUxTRSApCgkgIHsKCSAgICAkaGVhZGVyIC49ICdGSUVMRDoiJy50cmltKCRvbmVbJ25hbWUnXSkuJyInLiRkZWxpbTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJGhlYWRlciAuPSAnRklFTEQ6Jy50cmltKCRvbmVbJ25hbWUnXSkuJGRlbGltOwoJICB9CiAgICAgIH0KICAgICRoZWFkZXIgPSBzdWJzdHIoJGhlYWRlciwwLC0xKnN0cmxlbigkZGVsaW0pKTsKICB9CgovLyAxLjEuMiBHZXQgdGhlIGNhdGVnb3J5IG5hbWVzCiRxdWVyeSA9ICdTRUxFQ1QgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIE9SREVSIEJZIGlvcmRlciBBU0MnOyAKJG5hbWVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwppZiggJG5hbWVzICYmIGlzX2FycmF5KCRuYW1lcykgKQogIHsKICAgICRoZWFkZXIgLj0gJGRlbGltOwogICAgZm9yZWFjaCggJG5hbWVzIGFzICRvbmUgKQogICAgICB7CglpZiggc3Ryc3RyKCRvbmVbJ25hbWUnXSwnICcpICE9PSBGQUxTRSApCgkgIHsKCSAgICAkaGVhZGVyIC49ICdDQVQ6IicudHJpbSgkb25lWyduYW1lJ10pLiciJy4kZGVsaW07CgkgIH0KCWVsc2UKCSAgewoJICAgICRoZWFkZXIgLj0gJ0NBVDonLnRyaW0oJG9uZVsnbmFtZSddKS4kZGVsaW07CgkgIH0KICAgICAgfQogICAgJGhlYWRlciA9IHN1YnN0cigkaGVhZGVyLDAsLTEqc3RybGVuKCRkZWxpbSkpOwogIH0KCi8vIDEuMiBHZXQgdGhlIGZpZWxkIGRlZmluaXRpb24gaGVhZGVyCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgT1JERVIgQlkgaXRlbV9vcmRlciBMSU1JVCAxJzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSk7CmlmKCAkcm93ICkKICB7CiAgICB1bnNldCgkcm93WydpZCddKTsKICAgIHVuc2V0KCRyb3dbJ2l0ZW1fb3JkZXInXSk7CiAgICB1bnNldCgkcm93WydjcmVhdGVfZGF0ZSddKTsKICAgIHVuc2V0KCRyb3dbJ21vZGlmaWVkX2RhdGUnXSk7CiAgICAkZmllbGRkZWZfZmllbGRzID0gYXJyYXlfa2V5cygkcm93KTsKICAgICRoZWFkZXIgLj0gIlxuI0ZJRUxEREVGPUYiLiRkZWxpbS5pbXBsb2RlKCRkZWxpbSwkZmllbGRkZWZfZmllbGRzKTsKICAgIC8vJGhlYWRlciA9IHN1YnN0cigkaGVhZGVyLDAsLTEqc3RybGVuKCRkZWxpbSkpLiJcbiI7CiAgfQoKLy8gMS4zIEdldCB0aGUgY2F0ZWdvcmllcyBkZWZpbml0aW9uIGhlYWRlcgokaGVhZGVyIC49ICJcbiNDQVRFR09SWT1UIi4kZGVsaW0uIm5hbWVcbiI7CgovLyAxLjQgR2V0IHRoZSBoaWVyYXJjaHkgZGVmaW5pdGlvbiBoZWFkZXIKJGhlYWRlciAuPSAiI0hJRVJBUkNIWT1IIi4kZGVsaW0uImxvbmdfbmFtZVxuIjsKCi8vIDIgYmVnaW4gb3V0cHV0LgokY3N2X291dHB1dCA9ICRoZWFkZXIuIlxuIjsKCi8vIDIuMSBvdXRwdXQgdGhlIGZpZWxkIGRlZmluaXRpb25zCmZvcmVhY2goICRmaWVsZGRlZnMgYXMgJHJvdyApCiAgewogICAgJGxpbmUgPSAnRicuJGRlbGltOwogICAgZm9yZWFjaCggJGZpZWxkZGVmX2ZpZWxkcyBhcyAkZm4gKQogICAgICB7CgkkZGF0YSA9IHByb2Nlc3NfZmllbGQoJHJvd1skZm5dLCRkZWxpbSk7CgkkbGluZSAuPSAkZGF0YS4kZGVsaW07CiAgICAgIH0KICAgICRsaW5lID0gc3Vic3RyKCRsaW5lLDAsLTEqc3RybGVuKCRkZWxpbSkpLiJcbiI7CiAgICAkY3N2X291dHB1dCAuPSAkbGluZTsKICB9CgovLyAyLjIgb3V0cHV0IHRoZSBjYXRlZ29yaWVzCiRjc3Zfb3V0cHV0IC49ICJcbiI7CiRxdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIE9SREVSIEJZIGlvcmRlciBBU0MnOwokZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CndoaWxlKCAkZGJyICYmICRyb3cgPSAkZGJyLT5GZXRjaFJvdygpICkKICB7CiAgICAkbGluZSA9ICdUJy4kZGVsaW07CiAgICAkdHh0ID0gcHJvY2Vzc19maWVsZCgkcm93WyduYW1lJ10sJGRlbGltKTsKICAgICRsaW5lIC49ICR0eHQuJGRlbGltOwogICAgJGxpbmUgPSBzdWJzdHIoJGxpbmUsMCwtMSpzdHJsZW4oJGRlbGltKSkuIlxuIjsKICAgICRjc3Zfb3V0cHV0IC49ICRsaW5lOwogIH0KCi8vIDIuMyBvdXRwdXQgdGhlIGhpZXJhcmNoaWVzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIE9SREVSIEJZIGhpZXJhcmNoeSc7CiRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKd2hpbGUoICRkYnIgJiYgJHJvdyA9ICRkYnItPkZldGNoUm93KCkgKQogIHsKICAgICRsaW5lID0gJ0gnLiRkZWxpbTsKICAgICR0eHQgPSBwcm9jZXNzX2ZpZWxkKCRyb3dbJ2xvbmdfbmFtZSddLCRkZWxpbSk7CiAgICAkbGluZSAuPSAkdHh0LiRkZWxpbTsKICAgICRsaW5lID0gc3Vic3RyKCRsaW5lLDAsLTEqc3RybGVuKCRkZWxpbSkpLiJcbiI7CiAgICAkY3N2X291dHB1dCAuPSAkbGluZTsKICB9CgoKLy8gMi40IG91dHB1dCB0aGUgY29tcGFuaWVzLgokY3N2X291dHB1dCAuPSAiXG4iOwokcXVlcnkgPSAiU0VMRUNUIGMuKixoLmxvbmdfbmFtZSBhcyBoaWVyYXJjaHkgCiAgICAgICAgICAgIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBjCiAgICAgICAgICAgIExFRlQgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfaGllciBoCiAgICAgICAgICAgICAgT04gYy5oaWVyX2lkID0gaC5pZCBPUkRFUiBCWSBjLmNvbXBhbnlfbmFtZSI7CiRmcXVlcnkgPSAnU0VMRUNUIEEuaWQsQS5uYW1lLEIudmFsdWUgCiAgICAgICAgICAgICBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgQQogICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgQgogICAgICAgICAgICAgICBPTiBBLmlkID0gQi5maWVsZGRlZl9pZAogICAgICAgICAgICBXSEVSRSBCLmNvbXBhbnlfaWQgPSA/JzsKJGNxdWVyeSA9ICdTRUxFQ1QgY29tcGFueV9pZCxuYW1lIAogICAgICAgICAgICAgRlJPTSAoU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNvbXBhbnlfaWQgPSA/KSBBUyBzdWIgCiAgICAgICAgICAgIFJJR0hUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgQVMgYyBPTiBjLmlkID0gc3ViLmNhdGVnb3J5X2lkCiAgICAgICAgICAgIE9SREVSIEJZIG5hbWUgQVNDJzsKCiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCnsKICAvLyAyLjEuMSBvdXRwdXQgY29tcGFueSBmaWVsZHMuCiAgJGxpbmUgPSAnQycuJGRlbGltOwogIGZvcmVhY2goICRjb21wYW55X2ZpZWxkcyBhcyAkZm4gKQogICAgewogICAgICAkbGluZSAuPSBwcm9jZXNzX2ZpZWxkKCRyb3dbJGZuXSwkZGVsaW0pLiRkZWxpbTsKICAgIH0KCiAgLy8gMi4xLjIgbm93IG91dHB1dCB0aGlzIGNvbXBhbmllcyBmaWVsZHMuCiAgJHRtcDEgPSAkZGItPkdldEFycmF5KCRmcXVlcnksYXJyYXkoJHJvd1snaWQnXSkpOwogICR0bXAyID0gY2dlX2FycmF5Ojp0b19oYXNoKCAkdG1wMSwgJ25hbWUnICk7CiAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkb25lX2RlZiApCiAgICB7CiAgICAgICRuYW1lID0gJG9uZV9kZWZbJ25hbWUnXTsKICAgICAgJHZhbCA9ICcnOwogICAgICBpZiggaXNzZXQoJHRtcDJbJG5hbWVdKSApCgl7CgkgICR2YWwgPSAkdG1wMlskbmFtZV1bJ3ZhbHVlJ107Cgl9CiAgICAgICRsaW5lIC49IHByb2Nlc3NfZmllbGQoJHZhbCwkZGVsaW0pLiRkZWxpbTsKICAgIH0KICAKICAvLyAyLjEuMyBub3cgb3V0cHV0IHRoaXMgY29tcGFuaWVzIGNhdGVnb3JpZXMKICAkdG1wID0gJGRiLT5HZXRBcnJheSgkY3F1ZXJ5LGFycmF5KCRyb3dbJ2lkJ10pKTsKICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKQogICAgewogICAgICAkdmFsID0gMDsKICAgICAgaWYoICRvbmVbJ2NvbXBhbnlfaWQnXSA+IDAgKQoJJHZhbCA9IDE7CiAgICAgICRsaW5lIC49ICR2YWwuJGRlbGltOwogICAgfQogIAogICRsaW5lID0gc3Vic3RyKCRsaW5lLDAsLTEqc3RybGVuKCRkZWxpbSkpLiJcbiI7CiAgJGNzdl9vdXRwdXQgLj0gJGxpbmU7Cn0KCgovL0hhY2sgdG8gbWFrZSBzdXJlIGFsbCBvZiB0aGUgQ01TIGJ1ZmZlcnMgYXJlIG9mZgphdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdFeHBvcnRlZCBjb21wYW55IGRhdGEgdG8gY3N2Jyk7CiRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsgCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CgovL1RoZW4gZm9yY2UgdGhlIG91dHB1dCBub3JtYWxseSBhbmQgZXhpdCBzbyB3ZSBkb24ndCBnZXQgYSBmb290ZXIKaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1jb21wYW55X2RpcmVjdG9yeS4iIC4gZGF0ZSgiWS1tLWQiKSAuICIuY3N2Iik7CmhlYWRlcigiQ29udGVudC10eXBlOiB0ZXh0L2NzdiIpOwpwcmludCAkY3N2X291dHB1dDsKCmV4aXQ7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggIWlzX29iamVjdCgkZmV1KSApIHJldHVybjsgLy8gbm8gZmV1IG1vZHVsZS4KJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CmlmKCAkZmV1X3VpZCA8PSAwICkgcmV0dXJuOyAvLyBub3QgbG9nZ2VkIGluCmlmKCAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2RlbGV0ZScsMSkgKSByZXR1cm47IC8vIG5vIHBlcm1pc3Npb24KCmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGFueWlkJ10pICkgIHJldHVybjsgLy8gbm8gY29tcGFueSBpZC4KJGNvbXBhbnlpZCA9IChpbnQpJHBhcmFtc1snY29tcGFueWlkJ107CgovLyBva2F5LCBmaW5kIHRoZSByZWNvcmQgaWQgYW5kIG1ha2Ugc3VyZSBpdCBtYXRjaGVzIHRoZSBvd25lci4KJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgb3duZXJfaWQgPSA/IGFuZCBpZCA9ID8nOwokdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRmZXVfdWlkLCRjb21wYW55aWQpKTsKaWYoICEkdG1wICkgcmV0dXJuOyAvLyByZWNvcmQgbm90IGZvdW5kLgoKY2RfY29tcGFueTo6ZGVsZXRlKCRjb21wYW55aWQpOwoKJHRoaXMtPlNlbmRFdmVudCgnT25EZWxldGVDb21wYW55JyxhcnJheSgnd2hvJz0+JGZldV91aWQsJ2NpZCc9PiRjb21wYW55aWQpKTsKCi8vIG5vdyB3ZSdyZSBkb25lLCByZWRpcmVjdCBiYWNrIHRvIHRoZSBvcmlnaW5hdGluZyBwYWdlLgphdWRpdCgkY29tcGFueWlkLCR0aGlzLT5HZXROYW1lKCksJ0RlbGV0ZWQgY29tcGFueSB2aWEgdGhlIGZyb250ZW5kIChGRVUgaWQgJy4kZmV1X3VpZC4nKScpOwokdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgICAgCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLwovLyBUSElTIENPREUgSVMgREVQUkVDQVRFRCAoTWF5LCAyMDEyKQovLyBtYXkgYmUgcmVtb3ZlZCBhdCBhbnkgdGltZS4KLy8gdGhpcyBjb2RlIGRvZXMgbm90IHNlbmQgZXZlbnRzLgovLyAKCi8vIE5PVEUgSUYgTk9UIFVTRUQgUFJPUEVSTFkgVEhJUyBDT1VMRCBBTExPVyBBTllCT0RZIFRPCi8vIEVESVQgQU5ZQk9EWSBFTFNFUyBSRUNPUkRTCi8vIFRPRE86IENIRUNLIElGIExPR0dFRCBJTiBBTkQgU0lMRU5UTFkgRkFJTCBJRiBOT1QKLy8gQU4gT1BUSU9OQUwgREVQRU5ERU5DWSBPTiBGRVUKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggISRmZXUgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmV1JykuIjwvZm9udD48L2gzPlxuIjsKICByZXR1cm47Cn0KZWxzZSBpZiggISRmZXUtPkxvZ2dlZEluKCkgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZldV9sb2dnZWRpbicpLiI8L2ZvbnQ+PC9oMz5cbiI7Cn0KJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CgokdGhldGVtcGxhdGUgPSAnZnJvbnRlbmRmb3JtXycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREZPUk1fVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ10gKSApIHsKICAkdGhldGVtcGxhdGUgPSAnZnJvbnRlbmRmb3JtXycuJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107Cn0KCmZ1bmN0aW9uIGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICRmaWVsZG5hbWUpCnsKCWdsb2JhbCAkZ0NtczsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknKSkgewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScpOwoJfQoJaWYgKCFpc19kaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnKSkgewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcpOwoJfQoJCglAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyd0bXBfbmFtZSddLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gYmFzZW5hbWUoJF9GSUxFU1skaWQgLiAkZmllbGRuYW1lXVsnbmFtZSddKSk7CgkKCXJldHVybiBiYXNlbmFtZSgkX0ZJTEVTWyRpZCAuICRmaWVsZG5hbWVdWyduYW1lJ10pOwp9CgpmdW5jdGlvbiBoYW5kbGVfdG1wX3VwbG9hZCgkaWQsICRpdGVtaWQsICRmaWxlbmFtZSwgJGZpZWxkbmFtZSwgJiRkYikKewoJZ2xvYmFsICRnQ21zOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCglpZiAoIWlzX2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQpKQoJewoJCUBta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQpOwoJfQoJaWYgKCRmaWxlbmFtZSA9PSAnZGVsZXRlbWUnKQoJewoJCSRvbGRmaWxlbmFtZSA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgJyAuICRmaWVsZG5hbWUgLiAnIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8nLCBhcnJheSgkaXRlbWlkKSk7CgkJaWYgKGlzX2ZpbGUoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRvbGRmaWxlbmFtZSkpCgkJewoJCQl1bmxpbmsoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpZCcgLiAkaXRlbWlkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRvbGRmaWxlbmFtZSk7CgkJfQoJCSRkYi0+RXhlY3V0ZSgnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUICcgLiAkZmllbGRuYW1lIC4gJyA9ID8gV0hFUkUgaWQgPSA/JywgYXJyYXkoJycsICRpdGVtaWQpKTsKCX0KCWVsc2UgaWYgKGlzX2ZpbGUoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbXBhbnlkaXJlY3RvcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bXAnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSkpCgl7CgkJJG9sZGZpbGVuYW1lID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCAnIC4gJGZpZWxkbmFtZSAuICcgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPycsIGFycmF5KCRpdGVtaWQpKTsKCQlpZiAoaXNfZmlsZSgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJG9sZGZpbGVuYW1lKSkKCQl7CgkJCXVubGluaygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJG9sZGZpbGVuYW1lKTsKCQl9CgkJQHJlbmFtZSgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3RtcCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY29tcGFueWRpcmVjdG9yeScgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2lkJyAuICRpdGVtaWQgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lKTsKCQkkZGItPkV4ZWN1dGUoJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFNFVCAnIC4gJGZpZWxkbmFtZSAuICcgPSA/IFdIRVJFIGlkID0gPycsIGFycmF5KCRmaWxlbmFtZSwgJGl0ZW1pZCkpOwoJfQp9CgovLwovLyBTdHJpcCBhbGwgcGFyYW1zIG9mIHRoZSBjZF8gcHJlZml4Ci8vCiRwMiA9IGFycmF5KCk7CmZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKQp7CiAgJHQgPSBzdWJzdHIoJGtleSwwLDMpOwogIGlmKCAkdCA9PSAnY2RfJyApCiAgICB7CiAgICAgICRuZXdrZXkgPSBzdWJzdHIoJGtleSwzKTsKICAgICAgJHAyWyRuZXdrZXldID0gJHZhbHVlOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgJHAyWyRrZXldID0gJHZhbHVlOwogICAgfQp9CiRwYXJhbXMgPSAkcDI7CgovLyBnZXQgdGhlIGNvbXBhbnkgaWQuCiRjb21wYW55aWQgPSAtMTsKaWYoIGlzc2V0KCAkcGFyYW1zWydjb21wYW55aWQnXSApICkKICB7CiAgICAkY29tcGFueWlkID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKICB9CiRzZWxfY2F0ZWdvcmllcyA9IGFycmF5KCk7CgovLyBnZXQgZmllbGQgZGVmaW5pdGlvbnMuCiRmaWVsZGRlZnMgPSBhcnJheSgpOwppZiggJGNvbXBhbnlpZCA+IDAgKQogIHsKICAgICR0bXAgPSAkdGhpcy0+R2V0RmllbGREZWZzRm9yQ29tcGFueSgkY29tcGFueWlkLGZhbHNlLGZhbHNlKTsKICB9CmVsc2UKICB7CiAgICAkdG1wID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoZmFsc2UsZmFsc2UpOwogIH0KaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkKICB7Cglmb3JlYWNoKCAkdG1wIGFzICRvbmUgKQoJICB7CgkJJGZpZWxkZGVmc1skb25lWydpZCddXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRvbmUpOwoJICB9CiAgfQoKLy8gZ2V0IGNhdGVnb3JpZXMuCiRjYXRlZ29yaWVzID0gYXJyYXkoKTsKaWYoICRjb21wYW55aWQgPiAwICkKICB7CiAgICAkY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzRm9yQ29tcGFueSgkY29tcGFueWlkLGZhbHNlKTsKICB9CmVsc2UKICB7CiAgICAkY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CiAgfQoKCiRpbWFnZSA9ICcnOwppZiAoaXNzZXQoJF9GSUxFU1skaWQgLiAnY2RfaW1hZ2V1cGxvYWQnXSkgJiYgJF9GSUxFU1skaWQgLiAnY2RfaW1hZ2V1cGxvYWQnXVsndG1wX25hbWUnXSAhPSAnJykKewkKCSRpbWFnZSA9IGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICdjZF9pbWFnZXVwbG9hZCcpOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2NkX2RlbGV0ZWltYWdlJ10pKQp7CgkkaW1hZ2UgPSAnZGVsZXRlbWUnOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2NkX2ltYWdlY3VycmVudCddKSkKewoJJGltYWdlID0gJHBhcmFtc1snY2RfaW1hZ2VjdXJyZW50J107Cn0KCgokdXJsID0gJyc7CiRsb2dvID0gJyc7CmlmIChpc3NldCgkX0ZJTEVTWyRpZCAuICdjZF9sb2dvdXBsb2FkJ10pICYmIAogICAgJF9GSUxFU1skaWQgLiAnY2RfbG9nb3VwbG9hZCddWyd0bXBfbmFtZSddICE9ICcnKQp7CgkkbG9nbyA9IGhhbmRsZV9pbml0aWFsX3VwbG9hZCgkaWQsICdjZF9sb2dvdXBsb2FkJyk7Cn0KZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snY2RfZGVsZXRlbG9nbyddKSkKewoJJGxvZ28gPSAnZGVsZXRlbWUnOwp9CmVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2NkX2xvZ29jdXJyZW50J10pKQp7CgkkbG9nbyA9ICRwYXJhbXNbJ2NkX2xvZ29jdXJyZW50J107Cn0KCiRzdGF0dXMgPSAnZHJhZnQnOwppZiggJGNvbXBhbnlpZCA8PSAwICkKICB7CiAgICAkc3RhdHVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX25ld3N0YXR1cycsJ2RyYWZ0Jyk7CiAgfQppZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2NoYW5nZXN0YXR1cycpICYmIGlzc2V0KCRwYXJhbXNbJ3N0YXR1cyddKSApCiAgewogICAgJHN0YXR1cyA9IHRyaW0oJHBhcmFtc1snc3RhdHVzJ10pOwogIH0KCiRjb21wYW55X25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbXBhbnlfbmFtZSddKSkKewoJJGNvbXBhbnlfbmFtZSA9ICRwYXJhbXNbJ2NvbXBhbnlfbmFtZSddOwp9CgokYWRkcmVzcyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWRkcmVzcyddKSkKewoJJGFkZHJlc3MgPSAkcGFyYW1zWydhZGRyZXNzJ107Cn0KCiR0ZWxlcGhvbmUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbGVwaG9uZSddKSkKewoJJHRlbGVwaG9uZSA9ICRwYXJhbXNbJ3RlbGVwaG9uZSddOwp9CgokaGllcl9pZCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snaGllcl9pZCddKSkKewoJJGhpZXJfaWQgPSAkcGFyYW1zWydoaWVyX2lkJ107Cn0KCiRsYXRpdHVkZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbGF0aXR1ZGUnXSkpCnsKCSRsYXRpdHVkZSA9ICRwYXJhbXNbJ2xhdGl0dWRlJ107Cn0KCiRsb25naXR1ZGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2xvbmdpdHVkZSddKSkKewoJJGxvbmdpdHVkZSA9ICRwYXJhbXNbJ2xvbmdpdHVkZSddOwp9CgokZmF4ID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydmYXgnXSkpCnsKCSRmYXggPSAkcGFyYW1zWydmYXgnXTsKfQoKJGNvbnRhY3RfZW1haWwgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbnRhY3RfZW1haWwnXSkpCnsKCSRjb250YWN0X2VtYWlsID0gJHBhcmFtc1snY29udGFjdF9lbWFpbCddOwp9Cgokd2Vic2l0ZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snd2Vic2l0ZSddKSkKewoJJHdlYnNpdGUgPSAkcGFyYW1zWyd3ZWJzaXRlJ107Cn0KCiRkZXRhaWxzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxzJ10pKQp7CgkkZGV0YWlscyA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1snZGV0YWlscyddKTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkKewoJJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKfQoKJGJlaGF2aW91ciA9ICcnOwoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXQnXSApICkKICB7CiAgICAkZXJyb3IgPSBmYWxzZTsKICAgIGlmKCAkY29tcGFueV9uYW1lID09ICcnICkKICAgICAgewoJCSRzbWFydHktPmFzc2lnbignbWVzc2FnZScsJHRoaXMtPkxhbmcoJ2Vycm9yX2NvbXBhbnluYW1lJykpOwoJCSRlcnJvciA9IHRydWU7CiAgICAgIH0KCgogICAgaWYoICEkZXJyb3IgJiYgJGNvbXBhbnlfbmFtZSAhPSAkb3JpZ25hbWUgKQogICAgICB7CgkJaWYoIGNkX3V0aWxzOjpjb21wYW55X25hbWVfZXhpc3RzKCRjb21wYW55X25hbWUsJGNvbXBhbnlpZCkgKQoJCSAgewoJCQkkc21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCR0aGlzLT5MYW5nKCdlcnJvcl9jb21wYW55bmFtZV9pbnVzZScpKTsKCQkJJGVycm9yID0gdHJ1ZTsKCQkgIH0KICAgICAgfQoKCWlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSAmJiAkY29tcGFueWlkIDw9IDAgKQoJICB7CgkJJHVybCA9IGNkX3V0aWxzOjpnZW5lcmF0ZV91cmwoJGNvbXBhbnlfbmFtZSk7CgkJaWYoICEkdXJsICkKCQkgIHsKCQkJJGVycm9yID0gdHJ1ZTsKCQkgIH0KCSAgfQoKCWlmKCAkd2Vic2l0ZSA9PSAnJyAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJlcGVuZF93ZWJzaXRlX2h0dHAnKSApCgkgIHsKCQlpZiggIXN0YXJ0c3dpdGgoJHdlYnNpdGUsJ2h0dHAnKSB8fCAhc3RhcnRzd2l0aCgkd2Vic2l0ZSwnZnRwJykgKQoJCSAgewoJCQkkd2Vic2l0ZSA9ICdodHRwOi8vJy4kd2Vic2l0ZTsKCQkgIH0KCSAgfQoKICAgIGlmKCAhJGVycm9yICkKICAgICAgewoJJG5vdyA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCInIik7CglpZiggJGNvbXBhbnlpZCA8PSAwICkKCSAgewoJICAgIC8vIAoJICAgIC8vIGluc2VydCB0aGUgY29tcGFueSByZWNvcmQKCSAgICAvLwoJICAgICRiZWhhdmlvdXIgPSAnaW5zZXJ0JzsKCSAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgICAgICAgICAgICAgIChjb21wYW55X25hbWUsdXJsLGFkZHJlc3MsdGVsZXBob25lLGhpZXJfaWQsbGF0aXR1ZGUsbG9uZ2l0dWRlLGZheCxjb250YWN0X2VtYWlsLAogICAgICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlLGRldGFpbHMsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLG93bmVyX2lkKQogICAgICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPykiOwoJICAgICRwYXJtcyA9IGFycmF5KCRjb21wYW55X25hbWUsJHVybCwkYWRkcmVzcywkdGVsZXBob25lLCRoaWVyX2lkLCRsYXRpdHVkZSwkbG9uZ2l0dWRlLCRmYXgsJGNvbnRhY3RfZW1haWwsCgkJCSAgICR3ZWJzaXRlLCRkZXRhaWxzLCRub3csJG5vdywkc3RhdHVzLCRmZXVfdWlkKTsKCSAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkcGFybXMpOwoJICAgICRjb21wYW55aWQgPSAkZGItPkluc2VydF9JRCgpOwoJICAgIGlmKCAhJGRiciApCgkgICAgICB7CgkJZGllKCRkYi0+c3FsLic8YnIvPicuJGRiLT5FcnJvck1zZygpKTsKCSAgICAgIH0KCSAgfQoJZWxzZQoJICB7CgkgICAgLy8KCSAgICAvLyB1cGRhdGUgdGhlIGNvbXBhbnkgcmVjb3JkCgkgICAgLy8KCSAgICAkYmVoYXZpb3VyID0gJ3VwZGF0ZSc7CgkgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnKSApCgkgICAgICB7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIGNvbXBhbnlfbmFtZSA9ID8sIGFkZHJlc3MgPSA/LCB0ZWxlcGhvbmUgPSA/LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGllcl9pZCA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGl0dWRlID0gPywgbG9uZ2l0dWRlID0gPywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmF4ID0gPywgY29udGFjdF9lbWFpbCA9ID8sIHdlYnNpdGUgPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gPywgc3RhdHVzID0gPywgbW9kaWZpZWRfZGF0ZSA9ID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/IEFORCBvd25lcl9pZCA9ID8nOwoJCSRwYXJtcyA9IGFycmF5KCRjb21wYW55X25hbWUsJGFkZHJlc3MsJHRlbGVwaG9uZSwkaGllcl9pZCwKCQkJICAgICAgICRsYXRpdHVkZSwkbG9uZ2l0dWRlLCRmYXgsJGNvbnRhY3RfZW1haWwsCgkJCSAgICAgICAkd2Vic2l0ZSwkZGV0YWlscywkc3RhdHVzLCRub3csJGNvbXBhbnlpZCwkZmV1X3VpZCk7CgkJJGRiLT5FeGVjdXRlKCAkcXVlcnksICRwYXJtcyApOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkvLyBoYWNrLi4uIHNob3VsZCByZWFkIHRoZSByZWNvcmQgZmlyc3QsIHRoZW4gbWVyZ2UgZGF0YSwKCQkvLyB0aGVuIHdyaXRlLgoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCBjb21wYW55X25hbWUgPSA/LCBhZGRyZXNzID0gPywgdGVsZXBob25lID0gPywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZXJfaWQgPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpdHVkZSA9ID8sIGxvbmdpdHVkZSA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZheCA9ID8sIGNvbnRhY3RfZW1haWwgPSA/LCB3ZWJzaXRlID0gPywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9ID8sIG1vZGlmaWVkX2RhdGUgPSA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPyBBTkQgb3duZXJfaWQgPSA/JzsKCQkkcGFybXMgPSBhcnJheSgkY29tcGFueV9uYW1lLCRhZGRyZXNzLCR0ZWxlcGhvbmUsJGhpZXJfaWQsCgkJCSAgICAgICAkbGF0aXR1ZGUsJGxvbmdpdHVkZSwkZmF4LCRjb250YWN0X2VtYWlsLAoJCQkgICAgICAgJHdlYnNpdGUsJGRldGFpbHMsJG5vdywkY29tcGFueWlkLCRmZXVfdWlkKTsKCQkkZGItPkV4ZWN1dGUoICRxdWVyeSwgJHBhcm1zICk7CgkgICAgICB9CgkgIH0KCQoJLy8KCS8vIFVwZGF0ZSB0aGUgY3VzdG9tIGZpZWxkcwoJLy8KCWlmKCBjb3VudCgkZmllbGRkZWZzKSApCgkgIHsKCSAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWQgPT4gJGZpZWxkZGVmICkKCSAgICAgIHsKCQkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBhbnlpZCk7CgkJc3dpdGNoKCAkZmllbGRkZWYtPnR5cGUgKQoJCSAgewoJCSAgY2FzZSAnaW1hZ2UnOgoJCSAgICAvLyBoYW5kbGUgdGhlIHBvc3NpYmlsaXR5IHdoZXJlIHRoZSB1c2VyIGhhcyBjaG9zZW4gdG8gZGVsZXRlIGEgZmlsZS4KCQkgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWZpbGUnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkgJiYgJGZpZWxkZGVmLT52YWx1ZSAhPSAnJyApCgkJICAgICAgewoJCQkvLyB3ZSd2ZSBiZWVuIHRvbGQgdG8gZGVsZXRlIHRoZSBmaWxlLgoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kZmllbGRkZWYtPnZhbHVlKSk7CgkJCXVuc2V0KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pOwoJCSAgICAgIH0KCQkgICAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKCQkgICAgJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJGlkLCRkZXN0ZGlyKTsKCQkgICAgJHRtcCA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWVsZGRlZi0+aWQpOwoJCSAgICBpZiggISR0bXAgKQoJCSAgICAgIHsKCQkJaWYoICR1cGxvYWRlci0+Z2V0X2Vycm9yKCkgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkKCQkJICB7CgkJCSAgICAkZXJyb3IgPSAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpOwoJCQkgICAgYnJlYWs7CgkJCSAgfQoJCSAgICAgIH0KCQkgICAgZWxzZQoJCSAgICAgIHsKCQkJLy8gd2UncmUgdXBsb2FkaW5nIGEgbmV3IGZpbGUgc28gZGVsZXRlIHRoZSBvbGQgb25lLgoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGZpZWxkZGVmLT52YWx1ZSkpOwoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kZmllbGRkZWYtPnZhbHVlKSk7CgkJCQoJCQkkcGFyYW1zWydjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdID0gJHRtcDsKCQkgICAgICB9CgkJICB9CgkgICAgICB9CgoJICAgICRkYi0+RXhlY3V0ZSgnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscwogICAgICAgICAgICAgICAgICAgV0hFUkUgY29tcGFueV9pZCA9ID8nLCBhcnJheSgkY29tcGFueWlkKSk7CgkgICAgaWYoIGlzc2V0KCAkcGFyYW1zWydjdXN0b21maWVsZCddICkgKQoJICAgICAgewoJCWZvcmVhY2goICRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGs9PiR2ICkKCQkgIHsKCQkgICAgaWYoc3RhcnRzd2l0aCgkaywnZmllbGQtJykpIHsKCQkgICAgICAkZmlkID0gc3Vic3RyKCRrLDYpOwoJCSAgICAgIAoJCSAgICAgIC8vIGRvIGFuIGVudGl0eSBkZWNvZGUgb24gdGV4dCBhcmVhIGZpZWxkcwoJCSAgICAgIGlmKCAkZmllbGRkZWZzWyRmaWRdLT50eXBlID09ICd0ZXh0YXJlYScgfHwgJGZpZWxkZGVmc1skZmlkXS0+dHlwZSA9PSAndGV4dGJveCcgKQoJCQl7CgkJCSAgJHYgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCR2KTsKCQkJfQoJCSAgICAgIAoJCSAgICAgICRmaWVsZGRlZnNbJGZpZF0tPnZhbHVlID0gJHY7CgoJCSAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzCiAgICAgICAgICAgICAgICAgICAgICAgICAoY29tcGFueV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPyw/LD8pJzsKCQkgICAgICAkcGFybXMgPSBhcnJheSggJGNvbXBhbnlpZCwgJGZpZCwgJHYsICRub3csICRub3cgKTsKCQkgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksICRwYXJtcyApOwoJCSAgICB9CgkJICB9CgkgICAgICB9CgkgIH0KCgkvLwoJLy8gVXBkYXRlIHRoZSBjYXRlZ29yaWVzCgkvLwoJJGRiLT5FeGVjdXRlKCdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNvbXBhbnlfaWQgPSA/JywgYXJyYXkoJGNvbXBhbnlpZCkpOwoJCglpZiggaXNzZXQoICRwYXJhbXNbJ2NhdGVnb3JpZXMnXSApICkKCSAgewoJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIAogICAgICAgICAgICAgICAgICAgICAgKGNvbXBhbnlfaWQsIGNhdGVnb3J5X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSApCiAgICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8pJzsKCSAgICBmb3JlYWNoKCAkcGFyYW1zWydjYXRlZ29yaWVzJ10gYXMgJGs9PiR2ICkKCSAgICAgIHsKCQkKCQkkcGFybXMgPSBhcnJheSgkY29tcGFueWlkLCR2LCRub3csJG5vdyk7CgkJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksJHBhcm1zKTsKCSAgICAgIH0KCSAgfQoKCS8vCgkvLyBIYW5kbGUgYW55IGltYWdlIHN0dWZmCgkvLwoJaWYgKCRpbWFnZSAhPSAnJykKCSAgewoJICAgIGhhbmRsZV90bXBfdXBsb2FkKCRpZCwgJGNvbXBhbnlpZCwgJGltYWdlLCAncGljdHVyZV9sb2NhdGlvbicsICRkYik7CgkgIH0KCQoJaWYgKCRsb2dvICE9ICcnKQoJICB7CgkgICAgaGFuZGxlX3RtcF91cGxvYWQoJGlkLCAkY29tcGFueWlkLCAkbG9nbywgJ2xvZ29fbG9jYXRpb24nLCAkZGIpOwoJICB9CgoJLy8KCS8vIFVwZGF0ZSBTZWFyY2gKCS8vCgkkbW9kdWxlID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CglpZiAoJG1vZHVsZSAhPSBGQUxTRSkKCSAgewoJICAgICRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjb21wYW55aWQsICdjb21wYW55JywgaW1wbG9kZSgnICcsIGFycmF5KCRjb21wYW55X25hbWUsICRjb21wYW55X25hbWUsICRhZGRyZXNzLCAkdGVsZXBob25lLCAkZmF4LCAkZGV0YWlscykpKTsKCSAgfQoJCiAgICAgIH0gLy8gaWYoICEkZXJyb3IgKQoKICAgIGlmKCAoJGdyb3VwaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxncm91cCcsLTEpKSA+IDAgKQogICAgICB7CgkkYWRkcmVzc2VzID0gYXJyYXkoKTsKCSR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgkkdXNlcnMgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkZ3JvdXBpZCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdXNlcnMpOyAkaSsrICkKCSAgewoJICAgICR1c2VyID0gJHVzZXJzWyRpXTsKCSAgICBpZiggIWVtcHR5KCR1c2VyLT5lbWFpbCkgKQoJICAgICAgewoJCSRhZGRyZXNzZXNbXSA9ICR1c2VyLT5lbWFpbDsKCSAgICAgIH0KCSAgfQoKCWlmKCBjb3VudCgkYWRkcmVzc2VzKSApCgkgIHsKCSAgICBpZiggKCRiZWhhdmlvdXIgPT0gJ2luc2VydCcgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VtYWlsb25hZGQnKSkgfHwKCQkoJGJlaGF2aW91ciA9PSAndXBkYXRlJyAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxvbmVkaXQnKSkgKQoJICAgICAgewoJCS8vIHdlIGNhbiBzZW5kIHNvbWV0aGluZyB0byBzb21lYm9keS4KCQkkdmFycyA9IGFycmF5KCdjb21wYW55X25hbWUnLCdhZGRyZXNzJywndGVsZXBob25lJywnbGF0aXR1ZGUnLCdsb25naXR1ZGUnLAoJCQkgICAgICAnZmF4JywnY29udGFjdF9lbWFpbCcsJ3dlYnNpdGUnLCdkZXRhaWxzJywnZmV1X3VpZCcpOwoJCWZvcmVhY2goICR2YXJzIGFzICRvbmUgKQoJCSAgewoJCSAgICAkc21hcnR5LT5hc3NpZ24oJG9uZSwkJG9uZSk7CgkJICB9CgkJaWYoIGNvdW50KCRmaWVsZGRlZnMpICkKCQkgIHsKCQkgICAgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZGRlZnMpOwoJCSAgfQoJCWlmKCBpc3NldCggJHBhcmFtc1snY2F0ZWdvcmllcyddICkgJiYgY291bnQoJGNhdGVnb3JpZXMpICkKCQkgIHsKCQkgICAgJGNhdHMgPSBhcnJheSgpOwoJCSAgICBmb3JlYWNoKCAkcGFyYW1zWydjYXRlZ29yaWVzJ10gYXMgJGsgPT4gJHYgKQoJCSAgICAgIHsKCQkJJGNhdHNbXSA9ICR2OwoJCSAgICAgIH0KCgkJICAgICRjYXRuYW1lcyA9IGFycmF5KCk7CgkJICAgIGZvcmVhY2goICRjYXRlZ29yaWVzIGFzICRvbmVjYXQgKQoJCSAgICAgIHsKCQkJaWYoIGluX2FycmF5KCRvbmVjYXQtPmlkLCRjYXRzKSApCgkJCSAgewoJCQkgICAgJGNhdG5hbWVzW10gPSAkb25lY2F0LT5uYW1lOwoJCQkgIH0KCQkgICAgICB9CgkJICAgICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdG5hbWVzKTsKCQkgIH0KCQkKCQkkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJJHJlcyA9ICRmZXUtPkdldFVzZXJJbmZvKCRmZXVfdWlkKTsKCQlpZiggJHJlc1swXSA9PSBUUlVFICkKCQkgIHsKCQkgICAgJHNtYXJ0eS0+YXNzaWduKCd1c2VyaW5mbycsJHJlc1sxXSk7CgkJICB9CgoJCSRib2R5ID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlJyk7CgkJJHN1YmplY3QgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3N1YmplY3QnKTsKCQkKCQkkbWFpbGVyID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDTVNNYWlsZXInKTsKCQkkbWFpbGVyLT5yZXNldCgpOwoJCSRtYWlsZXItPlNldFN1YmplY3QoJHN1YmplY3QpOwoJCSRtYWlsZXItPklzSFRNTCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX2lzaHRtbCcpKTsKCQkkbWFpbGVyLT5TZXRCb2R5KCRib2R5KTsKCQlmb3JlYWNoKCAkYWRkcmVzc2VzIGFzICRvbmUgKQoJCSAgewoJCSAgICAkbWFpbGVyLT5BZGRBZGRyZXNzKCRvbmUpOwoJCSAgfQoJCSRtYWlsZXItPnNlbmQoKTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICAKCWF1ZGl0KCRjb21wYW55aWQsJHRoaXMtPkdldE5hbWUoKSwnRWRpdGVkIENvbXBhbnkgJy4kY29tcGFueV9uYW1lLicgdmlhIHRoZSBmcm9udGVuZCcpOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3JlZmVyZXInXSkgKQogICAgICB7CgkJcmVkaXJlY3QoJHBhcmFtc1sncmVmZXJlciddKTsKICAgICAgfQogIH0KZWxzZSBpZiAoJGNvbXBhbnlpZCA+IDAgKQogIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JzsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjb21wYW55aWQpKTsKICAgIGlmKCAkcm93ICkKICAgICAgewoJJGNvbXBhbnlfbmFtZSA9ICRyb3dbJ2NvbXBhbnlfbmFtZSddOwoJJGFkZHJlc3MgPSAkcm93WydhZGRyZXNzJ107CgkkdGVsZXBob25lID0gJHJvd1sndGVsZXBob25lJ107CgkkaGllcl9pZCA9ICRyb3dbJ2hpZXJfaWQnXTsKCSRsYXRpdHVkZSA9ICRyb3dbJ2xhdGl0dWRlJ107CgkkbG9uZ2l0dWRlID0gJHJvd1snbG9uZ2l0dWRlJ107CgkkZmF4ID0gJHJvd1snZmF4J107CgkkY29udGFjdF9lbWFpbCA9ICRyb3dbJ2NvbnRhY3RfZW1haWwnXTsKCSR3ZWJzaXRlID0gJHJvd1snd2Vic2l0ZSddOwoJJGRldGFpbHMgPSAkcm93WydkZXRhaWxzJ107CgkkaW1hZ2UgPSAkcm93WydwaWN0dXJlX2xvY2F0aW9uJ107CgkkbG9nbyA9ICRyb3dbJ2xvZ29fbG9jYXRpb24nXTsKCSRvcmlnbmFtZSA9ICRyb3dbJ2NvbXBhbnlfbmFtZSddOwoJJHN0YXR1cyA9ICRyb3dbJ3N0YXR1cyddOwoKCSRxdWVyeSA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSR0bXAgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGNvbXBhbnlpZCkpOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApID4gMCApCgkgIHsKCSAgICAkc2VsX2NhdGVnb3JpZXMgPSAkdG1wOwoJICB9CiAgICAgIH0JCiAgfQoKCi8vCi8vIEdldCB0aGUgZmllbGQgZGVmaW5pdGlvbnMKLy8KJGZpZWxkYXJyYXkgPSBhcnJheSgpOwoKaWYgKGNvdW50KCRmaWVsZGRlZnMpID4gMCkKICB7CiAgICAkaW1hZ2VkaXIgPSAnJzsKICAgICRpbWFnZXVybCA9ICcnOwogICAgaWYoICRjb21wYW55aWQgPiAwICkKICAgICAgewoJJGltYWdlZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGFueWlkKTsKCSRpbWFnZXVybCA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2lkeyRjb21wYW55aWR9IjsKICAgICAgfQoKICAgIGZvcmVhY2ggKCRmaWVsZGRlZnMgYXMgJGZpZCA9PiAkZmllbGRkZWYpCiAgICAgIHsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoJICAgIAoJJHZhbHVlID0gJyc7CglpZiAoaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkpCgkgIHsKCSAgICAkdmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoJICB9CgkgICAgCglpZiAoaXNzZXQoJHBhcmFtc1snY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXSkpCgkgICR2YWx1ZSA9ICRwYXJhbXNbJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF07CgoJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CgkkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7Cglzd2l0Y2ggKCRmaWVsZGRlZi0+dHlwZSkKCSAgewoJICBjYXNlICdpbWFnZSc6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAnPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9IicuJGlkLidjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10iIHZhbHVlPSIiIHNpemU9IjgwIi8+JzsKCSAgICBpZiggJHZhbHVlICkKCSAgICAgIHsKCQkkZmllbGQtPmlucHV0X2JveCAuPSAiPGJyLz57JHZhbHVlfTombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInskaWR9Y2RfZGVsZXRlZmlsZVtmaWVsZC17JGZpZWxkZGVmLT5pZH1dXCIgdmFsdWU9XCIxXCIvPih7JHRoaXMtPkxhbmcoJ2RlbGV0ZScpfSkiOwoJICAgICAgfQoJICAgIGlmKCAkaW1hZ2VkaXIgKQoJICAgICAgewoJCSRmbiA9IGNtc19qb2luX3BhdGgoJGltYWdlZGlyLCd0aHVtYl8nLiR2YWx1ZSk7CgkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKQoJCSAgewoJCSAgICAkZmllbGQtPnRodW1iX3VybCA9ICRpbWFnZXVybC4nL3RodW1iXycuJHZhbHVlOwoJCSAgfQoJCSRmbiA9IGNtc19qb2luX3BhdGgoJGltYWdlZGlyLCdwcmV2aWV3Jy4kdmFsdWUpOwoJCWlmKCBmaWxlX2V4aXN0cygkZm4pICkKCQkgIHsKCQkgICAgJGZpZWxkLT5wcmV2aWV3X3VybCA9ICRpbWFnZXVybC4nL3ByZXZpZXdfJy4kdmFsdWU7CgkJICB9CgkJJGZuID0gY21zX2pvaW5fcGF0aCgkaW1hZ2VkaXIsJHZhbHVlKTsKCQlpZiggZmlsZV9leGlzdHMoJGZuKSApCgkJICB7CgkJICAgICRmaWVsZC0+aW1hZ2VfdXJsID0gJGltYWdldXJsLicvJy4kdmFsdWU7CgkJICB9CgkgICAgICB9CgkgICAgYnJlYWs7CgoJICBjYXNlICdjaGVja2JveCc6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJyAuICRpZCAuICdjZF9jdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nIC4gJyIgdmFsdWU9ImZhbHNlIiAvPicgLiAKCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2NkX2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgCgkJCQkJICR2YWx1ZSk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ3RleHRhcmVhJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR2YWx1ZSwgJ2NkX2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwoJICAgIGJyZWFrOwoJICBjYXNlICd0ZXh0Ym94JzoKCSAgZGVmYXVsdDoKCSAgICAkbWF4bGVuZ3RoID0gJGZpZWxkZGVmLT5tYXhfbGVuZ3RoOwoJICAgICRzaXplID0gbWluKCRtYXhsZW5ndGgsODApOwoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjZF9jdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICRzaXplLCAkbWF4bGVuZ3RoKTsKCSAgICBicmVhazsKCSAgfQoJICAgIAoJJGZpZWxkYXJyYXlbXSA9ICRmaWVsZDsKICAgICAgfQogIH0KCgovLwovLyBHZXQgdGhlIGNhdGVnb3JpZXMKLy8KJGNhdGFycmF5ID0gYXJyYXkoKTsKJGNhdG5hbWVzID0gYXJyYXkoKTsKaWYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApCiAgewogICAgZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJGZpZWxkZGVmKQogICAgICB7CgkkZmllbGQgPSBuZXcgc3RkQ2xhc3M7CiAJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CiAJJGZpZWxkLT5uYW1lID0gJGZpZWxkZGVmLT5uYW1lOwogCSRmaWVsZC0+Y2hlY2tib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjZF9jYXRlZ29yeVtpZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICd0cnVlJyk7CgoJJGNhdG5hbWVzWyRmaWVsZGRlZi0+aWRdID0gJGZpZWxkZGVmLT5uYW1lOwogCSRjYXRhcnJheVtdID0gJGZpZWxkOwogICAgICB9CiAgfQoKCi8vCi8vIFBvcHVsYXRlIFRoZSBUZW1wbGF0ZQovLwokcGFybXMgPSBhcnJheSgpOwppZiggaXNzZXQoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSAmJiAhaXNzZXQoJHBhcmFtc1sncmVmZXJlciddKSkgewogICRwYXJtc1snY2RfcmVmZXJlciddID0gJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddOwp9CiRwYXJtc1snY29tcGFueWlkJ10gPSAkY29tcGFueWlkOwokcGFybXNbJ2NkX29yaWduYW1lJ10gPSAkb3JpZ25hbWU7CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywKCQkJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2ZlX2VkaXQnLCRyZXR1cm5pZCwKCQkJCQkJCQkJCSAkcGFybXMsCgkJCQkJCQkJCQkgZmFsc2UsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY2RfY29tcGFueV9uYW1lJywkY29tcGFueV9uYW1lLCAzMCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdhZGRyZXNzdGV4dCcsICR0aGlzLT5MYW5nKCdhZGRyZXNzJykpOwokc21hcnR5LT5hc3NpZ24oJ2FkZHJlc3MnLCRhZGRyZXNzKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGFkZHJlc3MnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NkX2FkZHJlc3MnLCAkYWRkcmVzcywgMzApKTsKCiRzbWFydHktPmFzc2lnbigndGVsZXBob25ldGV4dCcsICR0aGlzLT5MYW5nKCd0ZWxlcGhvbmUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXR0ZWxlcGhvbmUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NkX3RlbGVwaG9uZScsICR0ZWxlcGhvbmUsIDMwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0aGllcicsJHRoaXMtPkNyZWF0ZVBhcmVudERyb3Bkb3duKCRpZCwtMSwkaGllcl9pZCwnY2RfaGllcl9pZCcpKTsKCiRzbWFydHktPmFzc2lnbignbGF0aXR1ZGUnLCRsYXRpdHVkZSk7CiRzbWFydHktPmFzc2lnbignbG9uZ2l0dWRlJywkbG9uZ2l0dWRlKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGxhdGl0dWRlJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY2RfbGF0aXR1ZGUnLCRsYXRpdHVkZSwxMCwxMCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bG9uZ2l0dWRlJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY2RfbG9uZ2l0dWRlJywkbG9uZ2l0dWRlLDEwLDEwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2ZheHRleHQnLCAkdGhpcy0+TGFuZygnZmF4JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZmF4JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjZF9mYXgnLCAkZmF4LCAzMCwgMjU1KSk7Cgokc21hcnR5LT5hc3NpZ24oJ2VtYWlsdGV4dCcsICR0aGlzLT5MYW5nKCdjb250YWN0ZW1haWwnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRlbWFpbCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2RfY29udGFjdF9lbWFpbCcsICRjb250YWN0X2VtYWlsLCAzMCkpOwoKJHNtYXJ0eS0+YXNzaWduKCd3ZWJzaXRldGV4dCcsICR0aGlzLT5MYW5nKCd3ZWJzaXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0d2Vic2l0ZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2Rfd2Vic2l0ZScsICR3ZWJzaXRlLCAzMCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICRkZXRhaWxzLCAnY2RfZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnNScpKTsKCiRzbWFydHktPmFzc2lnbignZGVsZXRldGV4dCcsJHRoaXMtPkxhbmcoJ2RlbGV0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZXVwbG9hZCcsICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCAnY2RfaW1hZ2V1cGxvYWQnLCcnLDgwKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VjdXJyZW50JywgJGltYWdlKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZWN1cnJlbnRoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY2RfaW1hZ2VjdXJyZW50JywgJHJldHVybmlkLCAkaW1hZ2UpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZWN1cnJlbnRkZWxldGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjZF9kZWxldGVpbWFnZScsICdjaGVja2VkJywgJycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZXRleHQnLCAkdGhpcy0+TGFuZygnaW1hZ2V0ZXh0JykpOwoKJHNtYXJ0eS0+YXNzaWduKCdsb2dvdXBsb2FkJywgJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsICdjZF9sb2dvdXBsb2FkJywnJyw4MCkpOwokc21hcnR5LT5hc3NpZ24oJ2xvZ29jdXJyZW50JywgJGxvZ28pOwokc21hcnR5LT5hc3NpZ24oJ2xvZ29jdXJyZW50aGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NkX2xvZ29jdXJyZW50JywgJHJldHVybmlkLCAkbG9nbykpOwokc21hcnR5LT5hc3NpZ24oJ2xvZ29jdXJyZW50ZGVsZXRlJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjZF9kZWxldGVsb2dvJywgJ2NoZWNrZWQnLCAnJykpOwokc21hcnR5LT5hc3NpZ24oJ2xvZ290ZXh0JywgJHRoaXMtPkxhbmcoJ2xvZ290ZXh0JykpOwoKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnKSApCiAgewogICAgJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICAgICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0Jyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0c3RhdHVzJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjZF9zdGF0dXMnLAoJCQkJCSAgICAgICAkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwogIH0KCiRzbWFydHktPmFzc2lnbignY29tcGFueWlkJywkY29tcGFueWlkKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2Rfc3VibWl0JywgCgkJCQkJCQkgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2N1c3RvbWZpZWxkcycsICRmaWVsZGFycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjdXN0b21maWVsZHNjb3VudCcsIGNvdW50KCRmaWVsZGFycmF5KSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCAkY2F0YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdG5hbWVzJywkY2F0bmFtZXMpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXNjb3VudCcsIGNvdW50KCRjYXRhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ3NlbF9jYXRlZ29yaWVzJywkc2VsX2NhdGVnb3JpZXMpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICEkZmV1ICkgewogIGVjaG8gJzxoMz48Zm9udCBjb2xvcj0icmVkIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZldScpLiI8L2ZvbnQ+PC9oMz5cbiI7CiAgcmV0dXJuOwp9CmVsc2UgaWYoICEkZmV1LT5Mb2dnZWRJbigpICkgewogIGVjaG8gJzxoMz48Zm9udCBjb2xvcj0icmVkIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9mZXVfbG9nZ2VkaW4nKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKCiR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZGZvcm1fJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ERk9STV9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSApICkgJHRoZXRlbXBsYXRlID0gJ2Zyb250ZW5kZm9ybV8nLiRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddOwoKLy8KLy8gU3RyaXAgYWxsIHBhcmFtcyBvZiB0aGUgY2RfIHByZWZpeAovLwokcDIgPSBhcnJheSgpOwpmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICR0ID0gc3Vic3RyKCRrZXksMCwzKTsKICBpZiggJHQgPT0gJ2NkXycgKSB7CgkkbmV3a2V5ID0gc3Vic3RyKCRrZXksMyk7CgkkcDJbJG5ld2tleV0gPSAkdmFsdWU7CiAgfQogIGVsc2UgewoJJHAyWyRrZXldID0gJHZhbHVlOwogIH0KfQokcGFyYW1zID0gJHAyOwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJHRoZV9jb21wYW55ID0gJyc7CiR1cGxvYWRlciA9ICcnOwokY29tcGFueWlkID0gLTE7CiR0bXAgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhmYWxzZSx0cnVlKTsKJGZpZWxkZGVmcyA9IGFycmF5KCk7CiRoYXZlX2FsYnVtID0gbnVsbDsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJJHJlYyA9ICR0bXBbJGldOwoJaWYoICRyZWNbJ3R5cGUnXSA9PSAnYWxidW0nICkgewoJICAkaGF2ZV9hbGJ1bSA9ICRyZWNbJ2lkJ107Cgl9CgkkZmllbGRkZWZzWyRyZWNbJ25hbWUnXV0gPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcmVjKTsKICB9Cn0KJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwokb3JpZ25hbWUgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NvbXBhbnlpZCddKSAmJiAoaW50KSRwYXJhbXNbJ2NvbXBhbnlpZCddID4gMCApIHsKICAkY29tcGFueWlkID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKICAkdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21wYW55aWQpOwogIGlmKCAkdGhlX2NvbXBhbnktPm93bmVyX2lkICE9ICRmZXVfdWlkICkgewogICAgLy8gdGhpcyB1c2VyIGRvZXMgbm90IGhhdmUgcmlnaHRzIHRvIHRoaXMgcmVjb3JkLi4uCiAgICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3JfZmV1X2xvZ2dlZGluJykuIjwvZm9udD48L2gzPlxuIjsKCXJldHVybjsKICB9CiAgJG9yaWduYW1lID0gJHRoZV9jb21wYW55LT5jb21wYW55X25hbWU7Cn0KZWxzZSB7CiAgJHRoZV9jb21wYW55ID0gbmV3IGNkX2NvbXBhbnk7CiAgJHRoZV9jb21wYW55LT5zdGF0dXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfbmV3c3RhdHVzJywnZHJhZnQnKTsKfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXQnXSApICkgewogIC8vCiAgLy8gaGFuZGxlIGZvcm0gcGFyYW1zCiAgLy8KICBpZiAoaXNzZXQoJHBhcmFtc1snb3JpZ25hbWUnXSkpICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107CgogICRlcnJvciA9IGZhbHNlOwogIHRyeSB7CgkvLwoJLy8gY2hlY2sgZmlsZSB1cGxvYWRzIGZvciBlcnJvcnMuCgkvLwoJaWYoIGlzX2FycmF5KCRfRklMRVMpICYmIGNvdW50KCRfRklMRVMpICkgewoJICAkdXBsb2FkZXIgPSBuZXcgY2RfdXBsb2FkX2hhbmRsZXIoJGlkKTsKCSAgZm9yZWFjaCggJF9GSUxFUyBhcyAka2V5ID0+ICRkYXRhICkgewoJCSRuYW1lID0gc3Vic3RyKCRrZXksc3RybGVuKCRpZCkpOwoJCSR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygpOyAvLyBzZXQgYmFjayB0byBkZWZhdWx0IGZpbGUgdHlwZXMuCgkJaWYoIHN0YXJ0c3dpdGgoJG5hbWUsJ2NkX2ZpZWxkXycpICkgewoJCSAgJGZpZCA9IChpbnQpc3Vic3RyKCRuYW1lLHN0cmxlbignY2RfZmllbGRfJykpOwoJCSAgJHJlYyA9ICRmaWVsZGRlZnNbJGZpZF07IC8vIGl0IGhhZCBiZXR0ZXIgZXhpc3QuLgoJCSAgaWYoICgkcmVjLT50eXBlID09ICdmaWxlJyB8fCAkcmVjLT50eXBlID09ICdpbWFnZScpICYmICRyZWMtPmRhdGEgKSB7CgkJCSR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkcmVjLT5kYXRhKTsKCQkgIH0KCQl9CgoJCWlmKCAhJHVwbG9hZGVyLT5jaGVja191cGxvYWQoJG5hbWUsRkFMU0UsRkFMU0UpICkgewoJCSAgJHJlcyA9ICR1cGxvYWRlci0+Z2V0X2Vycm9yKCk7CgkJICBpZiggJHJlcyAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkJCXRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHJlcykpOwoJCSAgfQoJCX0KCSAgfQoJfQoKCS8vCgkvLyBmaWxsIHRoZSBjb21wYW55IGZyb20gcGFyYW1zCgkvLwoJaWYoICRjb21wYW55aWQgPT0gLTEgKSB7CgkgIC8vIGl0J3MgYSBuZXcgY29tcGFueQoJICAkdGhlX2NvbXBhbnktPnNldHVwX2ZpZWxkc19hbmRfY2F0cygpOwoJfQoJZWxzZSB7CgkgIC8vIGl0J3MgYW4gZWRpdAoJICAkdGhlX2NvbXBhbnktPnJlc2V0X2NhdGVnb3JpZXMoKTsKCX0KCglmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJICBpZiggY2RfY29tcGFueTo6aXNfdmFsaWRfa2V5KCRrZXksJ3J3JykgKSB7CgkJc3dpdGNoKCAka2V5ICkgewoJCWNhc2UgJ3N0YXR1cyc6CgkJICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2NoYW5nZXN0YXR1cycpICkgJHRoZV9jb21wYW55LT4ka2V5ID0gJHZhbHVlOwoJCSAgYnJlYWs7CgoJCWRlZmF1bHQ6CgkJICAkdGhlX2NvbXBhbnktPiRrZXkgPSAkdmFsdWU7CgkJICBicmVhazsKCQl9CgkgIH0KCSAgZWxzZSBpZiggJGtleSA9PSAnY2F0ZWdvcmllcycgJiYgaXNfYXJyYXkoJHZhbHVlKSAmJiBjb3VudCgkdmFsdWUpICkgewoJCS8vIGhhbmRsZSBzZWxlY3RlZCBjYXRlZ29yaWVzLgoJCWZvcmVhY2goICR2YWx1ZSBhcyAkY2F0aWQgKSB7CgkJICAkdGhlX2NvbXBhbnktPnNldF9jYXRlZ29yeSgkY2F0aWQpOwoJCX0KCSAgfQoJICBlbHNlIGlmKCBzdGFydHN3aXRoKCRrZXksJ2ZpZWxkXycpICkgewoJCSRrMiA9IHN1YnN0cigka2V5LHN0cmxlbignZmllbGRfJykpOwoJCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRrMiwkdmFsdWUpOwoJICB9Cgl9CgoJLy8KCS8vIGVycm9yIGNoZWNraW5nLCBmaWxsIGluIG1pc3NpbmcgZGF0YS4KCS8vCgkkdGhlX2NvbXBhbnktPnZhbGlkYXRlKCk7CgoJaWYoICR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lICE9ICRvcmlnbmFtZSAmJiAKCQljZF91dGlsczo6Y29tcGFueV9uYW1lX2V4aXN0cygkdGhlX2NvbXBhbnktPmNvbXBhbnlfbmFtZSwkdGhlX2NvbXBhbnktPmlkKSApIHsKCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJykpOwoJfQoKCWlmKCAhJHRoZV9jb21wYW55LT5pZCAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSApIHsKCSAgJHRoZV9jb21wYW55LT51cmwgPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRjb21wYW55X25hbWUpOwoJICBpZiggISR0aGVfY29tcGFueS0+dXJsICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2dlbmVyYXRldXJsJykpOwoJfQoKCS8vIHRvZG86IG5lZWQgYSBjb21wYW55IGlkIGhlcmUuCgkkdGhlX2NvbXBhbnktPnNhdmUoKTsKCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kdGhlX2NvbXBhbnktPmlkKTsKCgkvLwoJLy8gbW92ZSBsb2dvIGFuZCBpbWFnZSBub3cKCS8vCglpZiggaXNfb2JqZWN0KCR1cGxvYWRlcikgKSB7CgkgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CgkgICR1cGxvYWRlci0+c2V0X2Rlc3RfZGlyKCRkZXN0ZGlyKTsKCSAgJHVwbG9hZGVyLT5zZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCk7IC8vIHNldCBiYWNrIHRvIGRlZmF1bHQgZmlsZSB0eXBlcy4KCgkgICR1cGxvYWRlci0+c2V0X2N1cnJlbnRfdmFsdWUoJHRoZV9jb21wYW55LT5sb2dvX2xvY2F0aW9uKTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWxvZ28nXSkgKSB7CgkJJHVwbG9hZGVyLT5kZWxldGVfdXBsb2FkcygpOwoJCSR0aGVfY29tcGFueS0+bG9nb19sb2NhdGlvbiA9ICcnOwoJICB9CgkgICRyZXMgPSAkdXBsb2FkZXItPmhhbmRsZV91cGxvYWQoJ2NkX2xvZ28nKTsKCSAgaWYoICEkcmVzICkgewoJCSRlcnIgPSAkdXBsb2FkZXItPmdldF9lcnJvcigpOwoJCWlmKCAkZXJyICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApIHsKCQkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwoJCX0KCSAgfQoJICBlbHNlIHsKCQkkdGhlX2NvbXBhbnktPmxvZ29fbG9jYXRpb24gPSAkcmVzOwoJICB9CgkgICR1cGxvYWRlci0+cmVzZXQoKTsKCgkgICR1cGxvYWRlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygpOyAvLyBzZXQgYmFjayB0byBkZWZhdWx0IGZpbGUgdHlwZXMuCgkgICR1cGxvYWRlci0+c2V0X2N1cnJlbnRfdmFsdWUoJHRoZV9jb21wYW55LT5waWN0dXJlX2xvY2F0aW9uKTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWltYWdlJ10pICkgewoJCSR1cGxvYWRlci0+ZGVsZXRlX3VwbG9hZHMoKTsKCQkkdGhlX2NvbXBhbnktPnBpY3R1cmVfbG9jYXRpb24gPSAnJzsKCSAgfQoJICAkcmVzID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdjZF9pbWFnZScpOwoJICBpZiggISRyZXMgKSB7CgkJJGVyciA9ICR1cGxvYWRlci0+Z2V0X2Vycm9yKCk7CgkJaWYoICRlcnIgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgewoJCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSk7CgkJfQoJICB9CgkgIGVsc2UgewoJCSR0aGVfY29tcGFueS0+cGljdHVyZV9sb2NhdGlvbiA9ICRyZXM7CgkgIH0KCSAgJHVwbG9hZGVyLT5yZXNldCgpOwoJfQoKCSAgCgkvLwoJLy8gbW92ZSBmaWxlcyBmcm9tIGN1c3RvbSBmaWVsZHMuCgkvLwoJZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkZmlkID0+ICRmaWVsZGRlZiApIHsKCSAgaWYoICRmaWVsZGRlZi0+dHlwZSAhPSAnZmlsZScgJiYgJGZpZWxkZGVmLT50eXBlICE9ICdpbWFnZScgKSB7CgkJY29udGludWU7CgkgIH0KCSAgJGZsZCA9ICR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRmaWVsZGRlZi0+aWQpOwoJICBpZiggaXNzZXQoJGZsZC0+dmFsdWUpICYmICRmbGQtPnZhbHVlICkgewoJCSR1cGxvYWRlci0+c2V0X2N1cnJlbnRfdmFsdWUoJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZpZWxkZGVmLT5pZCktPnZhbHVlKTsKCSAgfQoJICBpZiggaXNzZXQoJHBhcmFtc1snZGVsZXRlZmllbGRfJy4kZmllbGRkZWYtPmlkXSkgKSB7CgkJLy8gaGFuZGxlIGRlbGV0aW9ucwoJCSR1cGxvYWRlci0+ZGVsZXRlX3VwbG9hZHMoKTsKCQkvLyR0aGVfY29tcGFueS0+ZGVsZXRlX2ZpZWxkKCRmaWVsZGRlZi0+aWQpOwoJCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCRmaWVsZGRlZi0+aWQsJycpOwoJICB9CgkgIGlmKCAkZmllbGRkZWYtPmRhdGEgKSB7CgkJJHVwbG9hZGVyLT5zZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCRmaWVsZGRlZi0+ZGF0YSk7CgkgIH0KCSAgZWxzZSB7CgkJJHVwbG9hZGVyLT5zZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCk7CgkgIH0KCSAgJHJlcyA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnY2RfZmllbGRfJy4kZmllbGRkZWYtPmlkKTsKCSAgaWYoICRyZXMgKSAkdGhlX2NvbXBhbnktPnNldF9maWVsZCgkZmllbGRkZWYtPmlkLCRyZXMpOwoJICAkdXBsb2FkZXItPnJlc2V0KCk7Cgl9CgoJLy8KCS8vIHNhdmUgaXQuLgoJLy8KCSR0aGVfY29tcGFueS0+c2F2ZSgpOwoKCS8vCgkvLyB1cGRhdGUgc2VhcmNoIHN0dWZmCgkvLwoJJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CglpZiAoJG1vZHVsZSAhPSBGQUxTRSkgewoJICAkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkdGhlX2NvbXBhbnktPmlkLCAnY29tcGFueScsICR0aGVfY29tcGFueS0+Z2V0X3NlYXJjaF93b3JkcygpICk7Cgl9CgoJLy8KCS8vIGRvIGVtYWlsIHN0dWZmCgkvLwoJaWYoICgkZ3JvdXBpZCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbGdyb3VwJywtMSkpID4gMCApIHsKCSAgJGFkZHJlc3NlcyA9IGFycmF5KCk7CgkgICR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgkgICR1c2VycyA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCRncm91cGlkKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHVzZXJzKTsgJGkrKyApIHsKCQkkdXNlciA9ICR1c2Vyc1skaV07CgkJaWYoICFlbXB0eSgkdXNlci0+ZW1haWwpICkgewoJCSAgJGFkZHJlc3Nlc1tdID0gJHVzZXItPmVtYWlsOwoJCX0KCSAgfQoKCSAgaWYoIGNvdW50KCRhZGRyZXNzZXMpICkgewoJCWlmKCAoJGJlaGF2aW91ciA9PSAnaW5zZXJ0JyAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxvbmFkZCcpKSB8fAoJCQkoJGJlaGF2aW91ciA9PSAndXBkYXRlJyAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxvbmVkaXQnKSkgKSB7CgkJICAvLyB3ZSBjYW4gc2VuZCBzb21ldGhpbmcgdG8gc29tZWJvZHkuCgkJICAkdmFycyA9IGFycmF5KCdjb21wYW55X25hbWUnLCdhZGRyZXNzJywndGVsZXBob25lJywnbGF0aXR1ZGUnLCdsb25naXR1ZGUnLAoJCQkJCQknZmF4JywnY29udGFjdF9lbWFpbCcsJ3dlYnNpdGUnLCdkZXRhaWxzJywnZmV1X3VpZCcpOwoJCSAgZm9yZWFjaCggJHZhcnMgYXMgJG9uZSApIHsKCQkJJHNtYXJ0eS0+YXNzaWduKCRvbmUsJCRvbmUpOwoJCSAgfQoJCSAgaWYoIGNvdW50KCRmaWVsZGRlZnMpICkgewoJCQkkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkcycsJGZpZWxkZGVmcyk7CgkJICB9CgkJICBpZiggaXNzZXQoICRwYXJhbXNbJ2NhdGVnb3JpZXMnXSApICYmIGNvdW50KCRjYXRlZ29yaWVzKSApIHsKCQkJJGNhdHMgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCAkcGFyYW1zWydjYXRlZ29yaWVzJ10gYXMgJGsgPT4gJHYgKSB7CgkJCSAgJGNhdHNbXSA9ICR2OwoJCQl9CgoJCQkkY2F0bmFtZXMgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkb25lY2F0ICkgewoJCQkgIGlmKCBpbl9hcnJheSgkb25lY2F0LT5pZCwkY2F0cykgKSB7CgkJCQkkY2F0bmFtZXNbXSA9ICRvbmVjYXQtPm5hbWU7CgkJCSAgfQoJCQl9CgkJCSRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdG5hbWVzKTsKCQkgIH0KCgkJICAkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJICAkcmVzID0gJGZldS0+R2V0VXNlckluZm8oJGZldV91aWQpOwoJCSAgaWYoICRyZXNbMF0gPT0gVFJVRSApICRzbWFydHktPmFzc2lnbigndXNlcmluZm8nLCRyZXNbMV0pOwoKCQkgICRib2R5ID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlJyk7CgkJICAkc3ViamVjdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcpOwoKCQkgICRtYWlsZXIgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwoJCSAgJG1haWxlci0+cmVzZXQoKTsKCQkgICRtYWlsZXItPlNldFN1YmplY3QoJHN1YmplY3QpOwoJCSAgJG1haWxlci0+SXNIVE1MKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfaXNodG1sJykpOwoJCSAgJG1haWxlci0+U2V0Qm9keSgkYm9keSk7CgkJICBmb3JlYWNoKCAkYWRkcmVzc2VzIGFzICRvbmUgKSB7CgkJCSRtYWlsZXItPkFkZEFkZHJlc3MoJG9uZSk7CgkJICB9CgkJICAkbWFpbGVyLT5zZW5kKCk7CgkJfQoJICB9Cgl9IC8vIGVuZCBvZiBlbWFpbCBzdHVmZgoJCgkvLwoJLy8gc2VuZCB0aGUgZXZlbnQKCS8vCgkkdGhlX2NvbXBhbnktPnNldF9yZWFkb25seSgpOwoJJHRoaXMtPlNlbmRFdmVudCgnT25FZGl0Q29tcGFueScsYXJyYXkoJ2Zyb250ZW5kdXNlcic9PiRmZXVfdWlkLCdvYmplY3QnPT4kdGhlX2NvbXBhbnkpKTsKCglhdWRpdCgkdGhlX2NvbXBhbnktPmlkLCR0aGlzLT5HZXROYW1lKCksJ0VkaXRlZCBjb21wYW55ICcuJHRoZV9jb21wYW55LT5jb21wYW55X25hbWUuJyB2aWEgdGhlIGZyb250ZW5kIChGRVUgaWQgPSAnLiRmZXVfdWlkLicpJyk7CgoJLy8gCgkvLyByZWRpcmVjdCBvdXRhIGhlcmUKCS8vCglpZiggaXNzZXQoJHBhcmFtc1sncmVmZXJlciddKSApIHsKCSAgcmVkaXJlY3QoJHBhcmFtc1sncmVmZXJlciddKTsKCX0KCiAgfQogIGNhdGNoKENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24gJGUpIHsKCWlmKCAkY29tcGFueWlkID09IC0xICkgewoJICAvLyBkbyB3ZSByZWFsbHkgd2FubmEgZGVsZXRlIHRoZSBjb21wYW55PyBvciBnbyBiYWNrIGludG8gZWRpdCBtb2RlPwoJfQoJJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkZS0+Z2V0TWVzc2FnZSgpKTsKCSRlcnJvciA9IHRydWU7CiAgfQp9IC8vIHN1Ym1pdAoKLy8KLy8gUG9wdWxhdGUgVGhlIFRlbXBsYXRlCi8vCiRwYXJtcyA9IGFycmF5KCk7CmlmKCBpc3NldCgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pICYmICFpc3NldCgkcGFyYW1zWydyZWZlcmVyJ10pKSAkcGFybXNbJ2NkX3JlZmVyZXInXSA9ICRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsKJHBhcm1zWydjb21wYW55aWQnXSA9ICRjb21wYW55aWQ7CiRwYXJtc1snY2Rfb3duZXJfaWQnXSA9ICRmZXVfdWlkOwokcGFybXNbJ2NkX29yaWduYW1lJ10gPSAkb3JpZ25hbWU7CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdmZV9lZGl0MicsJHJldHVybmlkLAoJCQkJCQkJCQkJCQkJICRwYXJtcywnZmFsc2UnLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aGVfY29tcGFueScsJHRoZV9jb21wYW55KTsKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnKSApIHsKICAkc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLCR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnKTsKICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1c2VzJyxhcnJheV9mbGlwKCRzdGF0dXNlcykpOwp9CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2xpc3QnLGFycmF5X2ZsaXAoY2RfdXRpbHM6OmdldF9oaWVyYXJjaHlfbGlzdCgpKSk7CmlmKCBpc19hcnJheSgkY2F0ZWdvcmllcykgJiYgY291bnQoJGNhdGVnb3JpZXMpICkgewogICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGVnb3JpZXMpOwogICRjYXRuYW1lcyA9IGFycmF5KCk7CiAgZm9yZWFjaCggJGNhdGVnb3JpZXMgYXMgJG9uZWNhdCApIHsKICAgICRjYXRuYW1lc1skb25lY2F0LT5pZF0gPSAkb25lY2F0LT5uYW1lOwogIH0KICAkc21hcnR5LT5hc3NpZ24oJ2NhdG5hbWVzJywkY2F0bmFtZXMpOwogICR0bXAgPSAkdGhlX2NvbXBhbnktPmxpc3RfY2F0ZWdvcmllcygpOwogICRzZWxfY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJZm9yZWFjaCggJHRtcCBhcyAkdCApIHsKCSAgJHQyID0gJHRoZV9jb21wYW55LT5nZXRfY2F0ZWdvcnkoJHQpOwoJICAkc2VsX2NhdGVnb3JpZXNbXSA9ICR0Mi0+aWQ7Cgl9CiAgfQogICRzbWFydHktPmFzc2lnbignc2VsX2NhdGVnb3JpZXMnLCRzZWxfY2F0ZWdvcmllcyk7Cn0KCmlmKCBpc19hcnJheSgkZmllbGRkZWZzKSAmJiBjb3VudCgkZmllbGRkZWZzKSApICRzbWFydHktPmFzc2lnbignZmllbGRkZWZzJywkZmllbGRkZWZzKTsKaWYoICRoYXZlX2FsYnVtICkgJHNtYXJ0eS0+YXNzaWduKCdhbGJ1bV9pZCcsJGhhdmVfYWxidW0pOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICEkZmV1ICkgewogIGVjaG8gJzxoMz48Zm9udCBjb2xvcj0icmVkIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZldScpLiI8L2ZvbnQ+PC9oMz5cbiI7CiAgcmV0dXJuOwp9CmVsc2UgaWYoICEkZmV1LT5Mb2dnZWRJbigpICkgewogIGVjaG8gJzxoMz48Zm9udCBjb2xvcj0icmVkIj4nLiR0aGlzLT5MYW5nKCdlcnJvcl9mZXVfbG9nZ2VkaW4nKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKCiRzdWJhY3Rpb24gPSAnZnVsbHRlbXBsYXRlJzsKCi8vCi8vIFN0cmlwIGFsbCBwYXJhbXMgb2YgdGhlIGNkXyBwcmVmaXgKLy8KJHAyID0gYXJyYXkoKTsKZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAkdCA9IHN1YnN0cigka2V5LDAsMyk7CiAgaWYoICR0ID09ICdjZF8nICkgewogICAgJG5ld2tleSA9IHN1YnN0cigka2V5LDMpOwogICAgJHAyWyRuZXdrZXldID0gJHZhbHVlOwogIH0KICBlbHNlIHsKICAgICRwMlska2V5XSA9ICR2YWx1ZTsKICB9Cn0KJHBhcmFtcyA9ICRwMjsKCi8vCi8vIGluaXRpYWxpemF0aW9uCi8vCmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGFueWlkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmbGRpZCddKSApIHsKICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykuIjwvZm9udD48L2gzPlxuIjsKICByZXR1cm47Cn0KJGZsZGlkID0gKGludCkkcGFyYW1zWydmbGRpZCddOwokY29tcGlkID0gKGludCkkcGFyYW1zWydjb21wYW55aWQnXTsKaWYoICRjb21waWQgPD0gMCApIHsKICBlY2hvICc8aDM+PGZvbnQgY29sb3I9InJlZCI+Jy4kdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGNvbXBpZCkuIjwvZm9udD48L2gzPlxuIjsKICByZXR1cm47Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1YmFjdGlvbiddKSApIHsKICAkc3ViYWN0aW9uID0gdHJpbSgkcGFyYW1zWydzdWJhY3Rpb24nXSk7Cn0KJHRtcCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKGZhbHNlLHRydWUpOwppZiggIWlzX2FycmF5KCR0bXApIHx8IGNvdW50KCR0bXApID09IDAgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJywkcGFyYW1zWydmbGRpZCddKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQokZm5kID0gZmFsc2U7CmZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICBpZiggJG9uZVsnaWQnXSA9PSAkZmxkaWQgJiYgJG9uZVsndHlwZSddID09ICdhbGJ1bScgKSB7CiAgICAkZm5kID0gdHJ1ZTsKICAgIGJyZWFrOwogIH0KfQppZiggISRmbmQgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJywkcGFyYW1zWydmbGRpZCddKS4iPC9mb250PjwvaDM+XG4iOwogIHJldHVybjsKfQoKJHNtYXJ0eS0+YXNzaWduKCdjb21wYW55aWQnLCRjb21waWQpOwokc21hcnR5LT5hc3NpZ24oJ2ZsZGlkJywkZmxkaWQpOwokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRiYXNlZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkLCdhbGJ1bV8nLiRmbGRpZCk7CiRiYXNldXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvaWR7JGNvbXBpZH0vYWxidW1feyRmbGRpZH0iOwokc21hcnR5LT5hc3NpZ24oJ2Jhc2VfZGlyJywkYmFzZWRpcik7CiRzbWFydHktPmFzc2lnbignYmFzZV91cmwnLCRiYXNldXJsKTsKCiRzbWFydHktPmFzc2lnbignc3ViYWN0aW9uJywkc3ViYWN0aW9uKTsKc3dpdGNoKCAkc3ViYWN0aW9uICkgewogY2FzZSAnZ2FsbGVyeSc6CiAgICR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJGNvbXBpZCxUUlVFKTsKICAgJGZpZWxkID0gJHRoZV9jb21wYW55LT5nZXRfZmllbGQoJGZsZGlkKTsKICAgaWYoIGlzX29iamVjdCgkZmllbGQpICYmIGlzc2V0KCRmaWVsZC0+dmFsdWUpICYmICRmaWVsZC0+dmFsdWUgKSB7CgkgJGZpbGVzID0gdW5zZXJpYWxpemUoJGZpZWxkLT52YWx1ZSk7CgkgJHNtYXJ0eS0+YXNzaWduKCdmaWxlcycsJGZpbGVzKTsKICAgfQogICAvLyBmYWxsIHRocm91Z2gKIGNhc2UgJ2Z1bGx0ZW1wbGF0ZSc6CiAgICR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZGFsYnVtXycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREFMQlVNX1RFTVBMQVRFKTsKICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Zyb250ZW5kYWxidW0nXSApICkgewoJICR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZGFsYnVtXycuJHBhcmFtc1snZnJvbnRlbmRhbGJ1bSddOwogICB9CiAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwogICBicmVhazsKCiBjYXNlICdzb3J0JzoKICAgaWYoIGlzc2V0KCRwYXJhbXNbJ29yZGVyJ10pICYmIGNvdW50KCRwYXJhbXNbJ29yZGVyJ10pICkgewoJICR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJGNvbXBpZCxUUlVFKTsKCSAkZmllbGQgPSAkdGhlX2NvbXBhbnktPmdldF9maWVsZCgkZmxkaWQpOwoJIGlmKCBpc19vYmplY3QoJGZpZWxkKSAmJiBpc3NldCgkZmllbGQtPnZhbHVlKSAmJiAkZmllbGQtPnZhbHVlICkgewoJICAgJGZpbGVzID0gdW5zZXJpYWxpemUoJGZpZWxkLT52YWx1ZSk7CgkgICBpZiggY291bnQoJGZpbGVzKSA9PSBjb3VudCgkcGFyYW1zWydvcmRlciddKSApIHsKCQkgJG5ld19maWxlcyA9IGFycmF5KCk7CgkJIGZvcmVhY2goICRwYXJhbXNbJ29yZGVyJ10gYXMgJGlkeCApIHsKCQkgICAkbmV3X2ZpbGVzW10gPSAkZmlsZXNbJGlkeF07CgkJIH0KCQkgJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJGZsZGlkLHNlcmlhbGl6ZSgkbmV3X2ZpbGVzKSk7CgkJICR0aGVfY29tcGFueS0+c2F2ZSgpOwoJICAgfQoJIH0KICAgfQogICBleGl0OwoKIGNhc2UgJ2RlbGV0ZSc6CiAgICRpZHggPSAoaW50KSRwYXJhbXNbJ2lkeCddOwogICAkdGhlX2NvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKCRjb21waWQsVFJVRSk7CiAgICRmaWVsZCA9ICR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRmbGRpZCk7CiAgIGlmKCBpc19vYmplY3QoJGZpZWxkKSAmJiBpc3NldCgkZmllbGQtPnZhbHVlKSAmJiAkZmllbGQtPnZhbHVlICkgewoJICRmaWxlcyA9IHVuc2VyaWFsaXplKCRmaWVsZC0+dmFsdWUpOwoJIGlmKCAkaWR4ID49IDAgJiYgJGlkeCA8IGNvdW50KCRmaWxlcykgKSB7CgkgICAkZmlsZW5hbWUgPSAkZmlsZXNbJGlkeF07CgkgICAkYmFzZWRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCwnYWxidW1fJy4kZmxkaWQpOwoJICAgQHVubGluayhjbXNfam9pbl9wYXRoKCRiYXNlZGlyLCRmaWxlbmFtZSkpOwoJICAgYXJyYXlfc3BsaWNlKCRmaWxlcywkaWR4LDEpOwoJICAgJHRoZV9jb21wYW55LT5zZXRfZmllbGQoJGZsZGlkLHNlcmlhbGl6ZSgkZmlsZXMpKTsKCSAgICR0aGVfY29tcGFueS0+c2F2ZSgpOwoJIH0KICAgfQogICBleGl0OwoKIGNhc2UgJ3VwbG9hZCc6CiAgIC8vIGFqYXggdXBsb2FkCiAgICRvcHRpb25zID0gYXJyYXkoJ3BhcmFtX25hbWUnPT4naW1hZ2VfdXBsb2FkJyk7CiAgICRvcHRpb25zWydjb21waWQnXSA9ICRjb21waWQ7CiAgICRvcHRpb25zWydmZGlkJ109ICRmbGRpZDsKICAgJG9wdGlvbnNbJ3VwbG9hZF9kaXInXSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBpZCwnYWxidW1fJy4kZmxkaWQpLicvJzsKICAgJG9wdGlvbnNbJ3VwbG9hZF91cmwnXSA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2lkeyRjb21waWR9L2FsYnVtX3skZmxkaWR9IjsKICAgJHVwbG9hZF9oYW5kbGVyID0gbmV3IENvbXBhbnlEaXJlY3RvcnlKUXVlcnlVcGxvYWRIYW5kbGVyKCRvcHRpb25zKTsKCiAgIHRyeSB7CgkgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7CgkgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlLCBuby1jYWNoZScpOwoJIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0iZmlsZXMuanNvbiInKTsKCSBoZWFkZXIoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYnKTsKCSBoZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKicpOwoJIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kczogT1BUSU9OUywgSEVBRCwgR0VULCBQT1NULCBQVVQsIERFTEVURScpOwoJIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogWC1GaWxlLU5hbWUsIFgtRmlsZS1UeXBlLCBYLUZpbGUtU2l6ZScpOwoKCSBzd2l0Y2ggKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddKSB7CgkgY2FzZSAnT1BUSU9OUyc6CgkgICBicmVhazsKCSBjYXNlICdIRUFEJzoKCSBjYXNlICdHRVQnOgoJICAgJHVwbG9hZF9oYW5kbGVyLT5nZXQoKTsKCSAgIGJyZWFrOwoJIGNhc2UgJ1BPU1QnOgoJICAgJHVwbG9hZF9oYW5kbGVyLT5wb3N0KCk7CgkgICBicmVhazsKCSBjYXNlICdERUxFVEUnOgoJICAgJHVwbG9hZF9oYW5kbGVyLT5kZWxldGUoKTsKCSAgIGJyZWFrOwoJIGRlZmF1bHQ6CgkgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNSBNZXRob2QgTm90IEFsbG93ZWQnKTsKCSB9CiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKCSBkZWJ1Z190b19sb2coJGUtPkdldE1lc3NhZ2UoKSk7CiAgIH0KICAgZXhpdDsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.fe_importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9pbXBvcnQnLDApICkgcmV0dXJuOwoKLy8gCi8vIGluaXRpYWxpemF0aW9uCi8vCiRmaWxlc3RyID0gJGlkLidjZF9jc3ZmaWxlJzsKJG1lc3NhZ2UgPSAnJzsKJGVycm9ycyA9IGFycmF5KCk7CiRkZWxpbWl0ZXIgPSAnJzsKJGZyb250ZW5kdXNlcnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCAhJGZyb250ZW5kdXNlcnMgKSBleGl0KCk7CiRmZXVfdWlkID0gJGZyb250ZW5kdXNlcnMtPkxvZ2dlZEluSWQoKTsKaWYoICRmZXVfdWlkIDw9IDAgKSBleGl0KCk7IC8vIG5vdCBsb2dnZWQgaW4uCgokbWF4cmVjb3JkcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9udW1yZWNvcmRzJywwKTsKJHF1ZXJ5ID0gJ1NFTEVDVCBDT1VOVChpZCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgV0hFUkUgb3duZXJfaWQgPSA/JzsKJG51bXJlY29yZHMgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGZldV91aWQpKTsKCmlmKCAkbWF4cmVjb3JkcyAtICRudW1yZWNvcmRzIDw9IDAgKQogIHsKICAgICRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vc3BvdHNsZWZ0Jyk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjZF9zdWJtaXQnXSkgKQogIHsKICAgICRkZWxpbWl0ZXIgPSB0cmltKCRwYXJhbXNbJ2NkX2RlbGltaXRlciddKTsKICAgIGlmKCAkZGVsaW1pdGVyID09ICcnICkKICAgICAgewoJJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2RlbGltaXRlcicpOwogICAgICB9CiAgICBlbHNlIGlmKCAhaXNzZXQoJF9GSUxFUykgfHwgCgkgICAgICFpc3NldCgkX0ZJTEVTWyRmaWxlc3RyXSkgIHx8CgkgICAgICRfRklMRVNbJGZpbGVzdHJdWydlcnJvciddICE9IDAgfHwgCgkgICAgICRfRklMRVNbJGZpbGVzdHJdWydzaXplJ10gPT0gMCApCiAgICAgIHsKCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl91cGxvYWQnKTsKICAgICAgfQoKICAgIGlmKCBjb3VudCgkZXJyb3JzKSA9PSAwICkKICAgICAgewoJJGltcG9ydGVyID0gbmV3IGNkX2FzY2lpX2ltcG9ydGVyKCR0aGlzKTsKCSRpbXBvcnRlci0+c2V0X2RlbGltaXRlcigkZGVsaW1pdGVyKTsKCSRpbXBvcnRlci0+c2V0X21heF9jb21wYW5pZXMoJG1heHJlY29yZHMgLSAkbnVtcmVjb3Jkcyk7CgkkaW1wb3J0ZXItPmRvX2ZpZWxkZGVmcyhmYWxzZSk7CgkkaW1wb3J0ZXItPmRvX2ZpZWxkdmFscyh0cnVlKTsKCSRpbXBvcnRlci0+ZG9fY2F0ZWdvcnlkZWZzKGZhbHNlKTsKCSRpbXBvcnRlci0+ZG9fY2F0ZWdvcnl2YWxzKHRydWUpOwoJJGltcG9ydGVyLT5kb19sYXRsb25nX2xvb2t1cChmYWxzZSk7CgkkaW1wb3J0ZXItPmNoZWNrX2R1cGxpY2F0ZV9jb21wYW5pZXModHJ1ZSk7CgkkaW1wb3J0ZXItPmRvX2hpZXJhcmNoeWRlZnMoZmFsc2UpOwoJJGltcG9ydGVyLT5kb19oaWVyYXJjaHl2YWxzKHRydWUpOwoJJGltcG9ydGVyLT5zZXRfdXNlcigkZmV1X3VpZCk7CgkkaW1wb3J0ZXItPmNyZWF0ZV91cmwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkpOwoKCSRyZXMgPSAkaW1wb3J0ZXItPmltcG9ydF9maWxlKCRfRklMRVNbJGZpbGVzdHJdWyd0bXBfbmFtZSddKTsKCSRlcnJvcnMgPSAkaW1wb3J0ZXItPmdldF9lcnJvcnMoKTsKCgkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdtc2dfaW1wb3J0X2NvbXBsZXRlJyk7CgoJJHF1ZXJ5ID0gJ1NFTEVDVCBDT1VOVChpZCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgICAgIFdIRVJFIG93bmVyX2lkID0gPyc7CgkkbnVtcmVjb3JkcyA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkZmV1X3VpZCkpOwoKCWlmKCAkbnVtcmVjb3JkcyA+IDAgKQoJICB7CgkJYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnSW1wb3J0ZWQgJy4kbnVtcmVjb3Jkcy4nIGZyb20gY3N2IHZpYSB0aGUgZnJvbnRlbmQnKTsKCSAgfQoKICAgICAgfQogIH0KICAKCi8vCi8vIGdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkKLy8KaWYoIGNvdW50KCRlcnJvcnMpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vycm9ycycsJGVycm9ycyk7CiAgfQppZiggJG1lc3NhZ2UgIT0gJycgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCdtYXhyZWNvcmRzJywkbWF4cmVjb3Jkcyk7CiRzbWFydHktPmFzc2lnbignbnVtcmVjb3JkcycsJG51bXJlY29yZHMpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZmVfaW1wb3J0Y3N2JywkcmV0dXJuaWQsYXJyYXkoKSxmYWxzZSwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.frontendlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLwovLyBJbml0aWFsaXphdGlvbgovLwokdGhldGVtcGxhdGUgPSAnZnJvbnRlbmRsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVORExJU1RfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snZnJvbnRlbmRsaXN0dGVtcGxhdGUnXSApICkgewogICR0aGV0ZW1wbGF0ZSA9ICdmcm9udGVuZGxpc3RfJy4kcGFyYW1zWydmcm9udGVuZGxpc3R0ZW1wbGF0ZSddOwp9CiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICFpc19vYmplY3QoJGZldSkgKSByZXR1cm47IC8vIG5vIGZldSBtb2R1bGUuCiRtYXhfcmVjb3JkcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9udW1yZWNvcmRzJywwKTsKaWYoICRtYXhfcmVjb3JkcyA9PSAwICkgcmV0dXJuOyAvLyAwIHJlY29yZHMKJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CmlmKCAkZmV1X3VpZCA8PSAwICkgcmV0dXJuOyAvLyBub3QgbG9nZ2VkIGluCgoKLy8gCi8vIEdldCBkYXRhIAovLwokdG1wID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoZmFsc2UsdHJ1ZSk7CiRoYXZlX2FsYnVtID0gbnVsbDsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKCWlmKCAkb25lWyd0eXBlJ10gPT0gJ2FsYnVtJyApIHsKCSAgLy8gd2UgaGF2ZSBhIHB1YmxpYyBhbGJ1bS4KCSAgJGhhdmVfYWxidW0gPSAkb25lWydpZCddOwoJICBicmVhazsKCX0KICB9Cn0KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcwogICAgICAgICAgIFdIRVJFIG93bmVyX2lkID0gPyBPUkRFUiBCWSBtb2RpZmllZF9kYXRlIExJTUlUICcuJG1heF9yZWNvcmRzOwokZGF0YSA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRmZXVfdWlkKSk7CiRudW1fbGlzdGluZ3MgPSAwOwppZiggaXNfYXJyYXkoJGRhdGEpICkgJG51bV9saXN0aW5ncyA9IGNvdW50KCRkYXRhKTsKCi8vCi8vIEdpdmUgZGF0YSB0byBzbWFydHkKLy8KaWYoICRudW1fbGlzdGluZ3MgPiAwICkgewogIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRkYXRhKTsgJGkrKyApIHsKCSRyZWMgPSYgJGRhdGFbJGldOwoJJHBhcm1zID0gYXJyYXkoKTsKCSRwYXJtc1snY29tcGFueWlkJ10gPSAkcmVjWydpZCddOwoJJHRhY3QgPSAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2VkaXRvcjInLDApKT8nZmVfZWRpdDInOidmZV9lZGl0JzsgLy8gcmVtb3ZlIG1lIGF0IDEuMTUgb3IgbGF0ZXIuCgkkcmVjWydlZGl0X3VybCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJHRhY3QsJHJldHVybmlkLCRwYXJtcyk7CgoJaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9kZWxldGUnLDEpICkgewoJICAkcmVjWydkZWxldGVfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZmVfZGVsZXRlJywkcmV0dXJuaWQsJHBhcm1zKTsKCX0KCgkkcGFybXNbJ2NkX2FsYnVtaWQnXSA9ICRoYXZlX2FsYnVtOwoJJHJlY1snZ2FsbGVyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdmZV9lZGl0X2dhbGxlcnknLCRyZXR1cm5pZCwkcGFybXMpOwogIH0KICAkc21hcnR5LT5hc3NpZ24oJ3JlY29yZHMnLCRkYXRhKTsKfQoKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jcmVhdGUnLDApICYmIAogICAgKCRudW1fbGlzdGluZ3MgPCAkbWF4X3JlY29yZHMpICkgewogICR0YWN0ID0gKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lZGl0b3IyJywwKSk/J2ZlX2VkaXQyJzonZmVfZWRpdCc7IC8vIHJlbW92ZSBtZSBhdCAxLjE1IG9yIGxhdGVyLgogICRzbWFydHktPmFzc2lnbignZmVfYWRkX3VybCcsJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJHRhY3QsJHJldHVybmlkKSk7CiAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9pbXBvcnQnLDApICkgewoJJHNtYXJ0eS0+YXNzaWduKCdmZV9pbXBvcnRfdXJsJywkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZmVfaW1wb3J0Y3N2JywkcmV0dXJuaWQpKTsKICB9Cn0KJHNtYXJ0eS0+YXNzaWduKCdmcm9udGVuZF9kZWxldGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9kZWxldGUnLDEpKTsKCi8vCi8vIFByb2Nlc3MgdGhlIHRlbXBsYXRlLgovLwokc21hcnR5LT5hc3NpZ24oJ2hhdmVfYWxidW0nLCRoYXZlX2FsYnVtKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.geolocate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYoICFjZF91dGlsczo6Y2FuX2dlb2xvY2F0ZSgpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydhZGRyZXNzJ10pICkgZXhpdDsKJGFkZHJlc3MgPSB0cmltKCRwYXJhbXNbJ2FkZHJlc3MnXSk7CmlmKCAhJGFkZHJlc3MgKSBleGl0OwoKJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyAKZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KJGNvb3JkcyA9IGNkX3V0aWxzOjpnZW9sb2NhdGUoJGFkZHJlc3MpOwppZiggaXNfYXJyYXkoJGNvb3JkcykgJiYgY291bnQoJGNvb3JkcykgKSB7CiAgJGNvb3Jkc1snc3RhdHVzJ10gPSAnc3VjY2Vzcyc7Cn0KZWxzZSB7CiAgJGNvb3JkcyA9IGFycmF5KCdzdGF0dXMnPT4nZXJyb3InKTsKfQoKaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOwpoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlJyxmYWxzZSk7CmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CmVjaG8ganNvbl9lbmNvZGUoJGNvb3Jkcyk7CmV4aXQ7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.handle_oldroute.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiggIWlzc2V0KCRwYXJhbXNbJ2FjdGlvbiddKSApCiAgewogICAgLy8gZG8gYSA0MDQKICAgIGNnZV9yZWRpcmVjdDo6cmVkaXJlY3Q0MDQoKTsKICB9CgppZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVkaXJlY3RvbGQnLDApIHx8ICFpc3NldCgkcGFyYW1zWydjb21wYW55aWQnXSkgKQogIHsKICAgIC8vIHNvbWVob3cgd2UgZ290IGhlcmUsIGV2ZW4gdGhvdWdoIHRoZSBwcmVmZXJlbmNlIGlzIG9mZi4KICAgIC8vIGdvdHRhIHJlZGlyZWN0IDQwNCwgY3V6IHdlIGRvbid0IGtub3cgd2hlcmUgd2UncmUgc3VwcG9zZWQgdG8gZ28uCiAgICBjZ2VfcmVkaXJlY3Q6OnJlZGlyZWN0NDA0KCk7CiAgfQoKLy8gd2UncmUgcmVkaXJlY3RpbmcgdG8gYW4gaXRlbSB0aGF0IHNob3VsZCBoYXZlIGEgVVJMLgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyBBTkQgdXJsICE9ID8nOwokcmVjID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRwYXJhbXNbJ2NvbXBhbnlpZCddLCcnKSk7CgppZiggISRyZWMgKQogIHsKICAgIC8vIGNvdWxkbid0IGZpbmQgdGhlIHJlY29yZCwgb3IgaXQgZXhpc3RzIGhhcyBhbiBlbXB0eSBVUkwuCiAgICAvLyBkbyB0aGUgb3JpZ2luYWwgYWN0aW9uLgogICAgaWYoICFpc3NldCgkcGFyYW1zWydvcmlnYWN0aW9uJ10pICkKICAgICAgewoJY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDQwNCgpOwogICAgICB9CgogICAgJHBhcmFtc1snYWN0aW9uJ10gPSAkcGFyYW1zWydvcmlnYWN0aW9uJ107CiAgICB1bnNldCgkcGFyYW1zWydvcmlnYWN0aW9uJ10pOwogICAgcmV0dXJuICR0aGlzLT5Eb0FjdGlvbigkcGFyYW1zWydhY3Rpb24nXSwkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KCmNnZV90bXBkYXRhOjpzZXQoJ2NvbXBhbnlkaXJfJy4kcmVjWydpZCddLCRyZWMpOwokZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywtMSk7CmlmKCAkZGV0YWlscGFnZSA9PSAtMSApCiAgewogICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgJGRldGFpbHBhZ2UgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICB9CiR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RldGFpbHMnLCRkZXRhaWxwYWdlLCRwYXJhbXMpOwpjZ2VfcmVkaXJlY3Q6OnJlZGlyZWN0X2FiczMwMSgkdXJsKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkb19pbXBvcnRjc3YnLCRyZXR1cm5pZCxhcnJheSgpLAoJCQkJCQkgICAgIGZhbHNlLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJG9wdHMgPSBhcnJheSgpOwokb3B0c1swXSA9ICR0aGlzLT5MYW5nKCdubycpOwokb3B0c1sxXSA9ICR0aGlzLT5MYW5nKCd5ZXMnKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZXNub29wdHMnLCRvcHRzKTsKCiRjYW5fbG9va3VwID0gY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5fbG9va3VwJywkY2FuX2xvb2t1cCk7Cgokb3B0cyA9IGFycmF5KCk7CiRvcHRzWydlcnJvciddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZScpOwokb3B0c1snaWdub3JlJ10gPSAkdGhpcy0+TGFuZygnaWdub3JlJyk7CiRvcHRzWyd1cGRhdGUnXSA9ICR0aGlzLT5MYW5nKCdvdmVyd3JpdGUnKTsKJHNtYXJ0eS0+YXNzaWduKCdkdXBsaWNhdGVfb3B0cycsJG9wdHMpOwoKJHNtYXJ0eS0+YXNzaWduKCd1cmxfb3B0aW9uYWwnLCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlcXVpcmVkJywwKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydGNzdi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.importkml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCi8vCi8vIGZ1bmN0aW9ucwovLwpmdW5jdGlvbiBfZ2V0X2NoaWxkbm9kZSgmJHBhcmVudCwkbm9kZW5hbWUpCnsKICAkY2hpbGRyZW4gPSAkcGFyZW50LT5jaGlsZE5vZGVzOwogIGZvcmVhY2goICRjaGlsZHJlbiBhcyAkY2hpbGRub2RlICkgewoJaWYoICRjaGlsZG5vZGUtPm5vZGVOYW1lID09ICRub2RlbmFtZSApIHsKCSAgcmV0dXJuICRjaGlsZG5vZGU7Cgl9CiAgfQogIHJldHVybiBOVUxMOwp9CgpmdW5jdGlvbiBfZ2V0X2NoaWxkbm9kZV92YWx1ZSgmJHBhcmVudCwkbm9kZW5hbWUpCnsKICAkb2IgPSBfZ2V0X2NoaWxkbm9kZSgkcGFyZW50LCRub2RlbmFtZSk7CiAgaWYoIGlzX29iamVjdCgkb2IpICkgcmV0dXJuICRvYi0+bm9kZVZhbHVlOwp9CgovLwovLyBpbml0aWFsaXplCi8vCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKJGlnbm9yZV9hZGRyZXNzID0gMDsKJGRvX2NvbnZlcnRfYWRkcmVzcyA9IDA7CiRzdGF0dXMgPSAnZHJhZnQnOwokaW1wb3J0ZWQgPSAwOwokY2F0ZWdvcnkgPSAtMTsKJGhpZXJhcmNoeSA9IC0xOwokY2hlY2tfZHVwbGljYXRlX25hbWUgPSAwOwokZXJyb3JzID0gYXJyYXkoKTsKJGNhbl9kb19sb29rdXBzID0gY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKTsKCi8vCi8vIGhhbmRsZSBmb3JtIGRhdGEKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICBzZXRfdGltZV9saW1pdCgwKTsKCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ3N0YXR1cyddKSApICRzdGF0dXMgPSB0cmltKCRwYXJhbXNbJ3N0YXR1cyddKTsKICBpZiggaXNzZXQoJHBhcmFtc1snaWdub3JlX2FkZHJlc3MnXSkgKSAkaWdub3JlX2FkZHJlc3MgPSAoaW50KSRwYXJhbXNbJ2lnbm9yZV9hZGRyZXNzJ107CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RvX2NvbnZlcnRfYWRkcmVzcyddKSApICRkb19jb252ZXJ0X2FkZHJlc3MgPSAoaW50KSRwYXJhbXNbJ2RvX2NvbnZlcnRfYWRkcmVzcyddOwogIGlmKCBpc3NldCgkcGFyYW1zWydjaGVja19kdXBsaWNhdGVfbmFtZSddKSApICRjaGVja19kdXBsaWNhdGVfbmFtZSA9IChpbnQpJHBhcmFtc1snY2hlY2tfZHVwbGljYXRlX25hbWUnXTsKICBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgKSAkY2F0ZWdvcnkgPSAoaW50KSRwYXJhbXNbJ2NhdGVnb3J5J107CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKSApICRoaWVyYXJjaHkgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeSddOwoKICAkbmFtZSA9ICRpZC4na21sZmlsZSc7CiAgaWYoICFpc3NldCgkX0ZJTEVTKSB8fAoJICAhaXNzZXQoJF9GSUxFU1skbmFtZV0pIHx8IAoJICAkX0ZJTEVTWyRuYW1lXVsnZXJyb3InXSA+IDAgfHwKCSAgJF9GSUxFU1skbmFtZV1bJ3NpemUnXSA9PSAwICkgewogICAgLy9iYWQgdXBsb2FkCiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VwbG9hZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CiAgfQoKICAkZG9jID0gbmV3IERvbURvY3VtZW50KCk7CiAgJGRvYy0+bG9hZCgkX0ZJTEVTWyRuYW1lXVsndG1wX25hbWUnXSk7CiAgJHBsYWNlcyA9ICRkb2MtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdQbGFjZW1hcmsnKTsKICBpZiggJHBsYWNlcy0+bGVuZ3RoID09IDAgKSB7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ttbF9ub3BsYWNlbWFya3MnKSk7CgkkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwogIH0KCiAgZm9yKCAkaWR4ID0gMDsgJGlkeCA8ICRwbGFjZXMtPmxlbmd0aDsgJGlkeCsrICkgewoJJG5vZGUgPSAkcGxhY2VzLT5pdGVtKCRpZHgpOwoJaWYoICEkbm9kZSApIGNvbnRpbnVlOwoKCSRhZGRyZXNzID0gJyc7CgkkbmFtZSA9ICcnOwoJJGRlc2NyaXB0aW9uID0gJyc7CgkkbGF0aXR1ZGUgPSAnJzsKCSRsb25naXR1ZGUgPSAnJzsKCSRwaG9uZSA9ICcnOwoKCSRuYW1lICAgID0gX2dldF9jaGlsZG5vZGVfdmFsdWUoJG5vZGUsJ25hbWUnKTsKCSRkZXNjICAgID0gX2dldF9jaGlsZG5vZGVfdmFsdWUoJG5vZGUsJ2Rlc2NyaXB0aW9uJyk7CgkkcGhvbmUgICA9IF9nZXRfY2hpbGRub2RlX3ZhbHVlKCRub2RlLCdwaG9uZW51bWJlcicpOwoKCS8vIGdldCB0aGUgYWRkcmVzcy4KCWlmKCAhJGlnbm9yZV9hZGRyZXNzICkgewoJICAkX2FkZHJlc3NfTiA9IF9nZXRfY2hpbGRub2RlKCRub2RlLCdhZGRyZXNzJyk7CgkgIGlmKCAhJF9hZGRyZXNzX04gKSB7CgkJJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ttbGltcG9ydF9ub2FkZHJlc3MnLCRpZHgpOwoJCWNvbnRpbnVlOwoJICB9CgkJCgkgICRhZGRyZXNzID0gJF9hZGRyZXNzX04tPm5vZGVWYWx1ZTsKCX0KCgkvLyBnZXQgdGhlIGNvb3JkaW5hdGVzLgoJewoJICAkX3BvaW50X04gID0gX2dldF9jaGlsZG5vZGUoJG5vZGUsJ1BvaW50Jyk7CgkgIGlmKCAhJF9wb2ludF9OICkgewoJCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9rbWxpbXBvcnRfbm9wb2ludCcsJGlkeCk7CgkJY29udGludWU7CgkgIH0KCSAgJF9jb29yZHNfTiAgPSBfZ2V0X2NoaWxkbm9kZSgkX3BvaW50X04sJ2Nvb3JkaW5hdGVzJyk7CgkgIGlmKCAhJF9jb29yZHNfTiApIHsKCQkkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3Jfa21saW1wb3J0X25vcG9pbnQnLCRpZHgpOwoJCWNvbnRpbnVlOwoJICB9CgkgICRjb29yZHMgPSAkX2Nvb3Jkc19OLT5ub2RlVmFsdWU7CgkgIGxpc3QoJGxvbmdpdHVkZSwkbGF0aXR1ZGUpID0gZXhwbG9kZSgnLCcsJGNvb3Jkcyk7Cgl9CgoJaWYoICRhZGRyZXNzICE9ICcnICYmICgkbGF0aXR1ZGUgPT0gJycgfHwgJGxvbmdpdHVkZSA9PSAnJykgJiYgJGRvX2NvbnZlcnRfYWRkcmVzcyA9PSAxICkgewoJICAkY29vcmRzID0gY2RfdXRpbHM6Omdlb2xvY2F0ZSgkYWRkcmVzcyk7CgkgIGlmKCBpc19hcnJheSgkY29vcmRzKSApIHsKCQkkbGF0aXR1ZGUgPSAkY29vcmRzWydsYXQnXTsKCQkkbG9uZ2l0dWRlID0gJGNvb3Jkc1snbG9uJ107CgkgIH0KCX0KCgkvLyBnb3QgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGFkZCBhIG5vZGUuCglpZiggJG5hbWUgIT0gJycgJiYgKCRhZGRyZXNzICE9ICcnIHx8ICgkbGF0aXR1ZGUgIT0gJycgJiYgJGxvbmdpdHVkZSAhPSAnJykpICkgewoJICBpZiggJGNoZWNrX2R1cGxpY2F0ZV9uYW1lICkgewoJCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgICAgIFdIRVJFIGNvbXBhbnlfbmFtZSA9ID8nOwoJCSR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJG5hbWUpKTsKCQlpZiggJHRtcCApIHsKCQkgIC8vIGl0J3MgYSBkdXBsaWNhdGUKCQkgIC8vIGNvbnRpbnVlIHdpdGhvdXQgZXJyb3IKCQkgIGNvbnRpbnVlOwoJCX0KCSAgfQoKCSAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMKICAgICAgICAgICAgICAgIChjb21wYW55X25hbWUsIGFkZHJlc3MsIHRlbGVwaG9uZSwgZGV0YWlscywgc3RhdHVzLCBoaWVyX2lkLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LE5PVygpLE5PVygpKSc7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCRhZGRyZXNzLCRwaG9uZSwkZGVzYywkc3RhdHVzLCRoaWVyYXJjaHksJGxhdGl0dWRlLCRsb25naXR1ZGUpKTsKCSAgaWYoICEkZGJyICkgewoJCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9rbWxpbXBvcnRfZGJlcnJvcicsJGlkeCk7CgkJY29udGludWU7CgkgIH0KCSAgJG5ld19pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJICBpZiggJGNhdGVnb3J5ID4gMCApIHsKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcwogICAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxjYXRlZ29yeV9pZCxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyxOT1coKSxOT1coKSknOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuZXdfaWQsJGNhdGVnb3J5KSk7CgkgIH0KCgkgICRpbXBvcnRlZCsrOwoJfQogIH0KCiAgLy8gd29vdCwgZG9uZQogIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ltcG9ydGVkICcuJGltcG9ydGVkLicgY29tcGFuaWVzIGZyb20gS01MJyk7CiAgJHNtYXJ0eS0+YXNzaWduKCdmaW5pc2hlZCcsMSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRlZCcsJGltcG9ydGVkKTsKICBpZiggY291bnQoJGVycm9ycykgKSB7Cgkkc21hcnR5LT5hc3NpZ24oJ2Vycm9yY291bnQnLGNvdW50KCRlcnJvcnMpKTsKCSRzbWFydHktPmFzc2lnbignZXJyb3JzJywkZXJyb3JzKTsKICB9Cn0KCi8vCi8vIGJ1aWxkIHRoZSBmb3JtCi8vCiRzdGF0dXNlcyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKT0+J3B1Ymxpc2hlZCcsCgkJICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywKCQkgICR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpPT4nZGlzYWJsZWQnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXN0ZXh0JywkdGhpcy0+TGFuZygnc3RhdHVzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0c3RhdHVzJywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3N0YXR1cycsICRzdGF0dXNlcywtMSwnZHJhZnQnKSk7CiRzbWFydHktPmFzc2lnbignY2FuX2RvX2xvb2t1cHMnLCRjYW5fZG9fbG9va3Vwcyk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2ltcG9ydGttbCcsJycsYXJyYXkoKSwKCQkJCQkJCQkJCSBmYWxzZSwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0bXAgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkY2F0bGlzdCA9IGFycmF5KC0xPT4kdGhpcy0+TGFuZygnbm9uZScpKTsKICBmb3JlYWNoKCAkdG1wIGFzICRpZCA9PiAkb25lICkgewoJJGNhdGxpc3RbJGlkXSA9ICRvbmUtPm5hbWU7CiAgfQogICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGxpc3QpOwp9CiR0bXAgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9saXN0KCk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoaWVzJyxhcnJheV9mbGlwKCR0bXApKTsKfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdpbXBvcnRrbWwudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJG9yZGVyID0gMTsKJGZkaWQgPSAkcGFyYW1zWydmZGlkJ107CgojR3JhYiBuZWNlc3NhcnkgaW5mbyBmb3IgZml4aW5nIHRoZSBpdGVtX29yZGVyCiRvcmRlciA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgaXRlbV9vcmRlciBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgV0hFUkUgaWQgPSA/IiwgYXJyYXkoJGZkaWQpKTsKJHRpbWUgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CgppZiAoJHBhcmFtc1snZGlyJ10gPT0gImRvd24iKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpLCBtb2RpZmllZF9kYXRlID0gJy4kdGltZS4nIFdIRVJFIGl0ZW1fb3JkZXIgPSA/JzsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvcmRlciArIDEpKTsKCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBTRVQgaXRlbV9vcmRlciA9IChpdGVtX29yZGVyICsgMSksIG1vZGlmaWVkX2RhdGUgPSAnLiR0aW1lLicgV0hFUkUgaWQgPSA/JzsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmZGlkKSk7Cn0KZWxzZSBpZiAoJHBhcmFtc1snZGlyJ10gPT0gInVwIikKewoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgLSAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpLCBtb2RpZmllZF9kYXRlID0gJy4kdGltZS4nIFdIRVJFIGlkID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwp9CgokcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.oldsearch.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKIwojIEluaXRpYWxpemF0aW9uCiMKJGlubGluZSA9IDA7CiRyZXN1bHRwYWdlID0gJHJldHVybmlkOwokdGhldGVtcGxhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNFQVJDSEZPUk1fVEVNUExBVEUpOwoKIwojIEdldCBwYXJhbWV0ZXJzCiMKaWYoIGlzc2V0KCRwYXJhbXNbJ2lubGluZSddKSAmJiAkcGFyYW1zWydpbmxpbmUnXSAhPSAwICkKICB7CiAgICAkaW5saW5lID0gMTsKICAgIHVuc2V0KCRwYXJhbXNbJ2lubGluZSddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pICkKICB7CiAgICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1sncmVzdWx0cGFnZSddKTsKICAgIGlmKCAkdG1wICkKICAgICAgewoJJHJlc3VsdHBhZ2UgPSAkdG1wOwoJJGlubGluZSA9IDA7CiAgICAgIH0KICAgIHVuc2V0KCRwYXJhbXNbJ3Jlc3VsdHBhZ2UnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snc2VhcmNoZm9ybXRlbXBsYXRlJ10pICkKICB7CiAgICAkdGhldGVtcGxhdGUgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKICB9CgojCiMgR2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQojCiRxdWVyeSA9ICdTRUxFQ1QgaWQsbG9uZ19uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgT1JERVIgYnkgaGllcmFyY2h5JzsKJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKaWYoIGlzX2FycmF5KCR0bXApICkKICB7CgkkdG1wMiA9IGFycmF5KCk7CgkkdG1wMlsnJ10gPSAkdGhpcy0+TGFuZygnYW55Jyk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCgkgIHsKCQkkdG1wMlskdG1wWyRpXVsnbG9uZ19uYW1lJ11dID0gJHRtcFskaV1bJ2xvbmdfbmFtZSddOwoJICB9Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoaWVzJywkdG1wMik7CiAgfQokdG1wID0gJHRoaXMtPkdldENhdGVnb3JpZXMoKTsKaWYoIGlzX2FycmF5KCR0bXApICkKICB7CiAgICAkY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKQogICAgICB7CgkJJGNhdGVnb3JpZXNbJG9uZS0+aWRdID0gJG9uZS0+bmFtZTsKICAgICAgfQoJYXNvcnQoJGNhdGVnb3JpZXMpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywkY2F0ZWdvcmllcyk7CiAgfQoKJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSA9ICRyZXR1cm5pZDsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2RvX3NlYXJjaCcsJHJlc3VsdHBhZ2UsJHBhcmFtcywkaW5saW5lKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY291bnRyeScsJHRoaXMtPkNyZWF0ZUlucHV0Q291bnRyeURyb3Bkb3duKCRpZCwnY2RfY291bnRyeScpKTsKCiMKIyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQojCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnc2VhcmNoZm9ybV8nLiR0aGV0ZW1wbGF0ZSk7CgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJG9sZHNlYXJjaCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2Vfb2xkc2VhcmNoJywwKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ29sZHNlYXJjaCddKSApICRvbGRzZWFyY2ggPSAoaW50KSRwYXJhbXNbJ29sZHNlYXJjaCddOwppZiggJG9sZHNlYXJjaCApIHsKICAvLyB1c2luZyB0aGUgb2xkIHNlYXJjaCBzdHVmZi4uLgogIGluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FjdGlvbi5vbGRzZWFyY2gucGhwJyk7CiAgcmV0dXJuOwp9CgoKIwojIEluaXRpYWxpemF0aW9uCiMKJHJlc3VsdHBhZ2UgPSAkcmV0dXJuaWQ7CiRlcnJvcnMgPSBhcnJheSgpOwoKIwojIEdldCBwYXJhbWV0ZXJzCiMKaWYoIGlzc2V0KCRwYXJhbXNbJ3Jlc3VsdHBhZ2UnXSkgKSB7CiAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ3Jlc3VsdHBhZ2UnXSk7CiAgaWYoICR0bXAgKSAkcmVzdWx0cGFnZSA9ICR0bXA7CiAgdW5zZXQoJHBhcmFtc1sncmVzdWx0cGFnZSddKTsKfQoKIwojIEhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KIwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydkb3NlYXJjaCddKSApIHsKICB0cnkgewoJLy8KCS8vIGZpcnN0IHBhcnNlIG9mIHBhcmFtZXRlcnMKCS8vCgkkbmV3cGFybXMgPSBhcnJheSgpOwoJJHBvc3RhbHBhcm1zID0gYXJyYXkoKTsKCSRmaWVsZHBhcm1zID0gYXJyYXkoKTsKCglmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJICBpZiggc3RhcnRzd2l0aCgka2V5LCdjZF8nKSApICRrZXkgPSBzdWJzdHIoJGtleSwzKTsKCSAgaWYoICFpc19hcnJheSgkdmFsdWUpICkgJHZhbHVlID0gdHJpbSgkdmFsdWUpOwoJICBpZiggZW1wdHkoJHZhbHVlKSApIGNvbnRpbnVlOwoKCSAgc3dpdGNoKCAka2V5ICkgewoJICBjYXNlICduYW1lJzoKCQkkbmV3cGFybXNbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgoJICBjYXNlICdhZGRyZXNzJzoKCSAgY2FzZSAnY2F0ZWdvcnknOgoJCSRuZXdwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCgkgIGNhc2UgJ2xhdCc6CgkgIGNhc2UgJ2xhdGl0dWRlJzoKCQkvLyB2YWxpZGF0ZSBmbG9hdAoJCWlmKCAkdmFsdWUgIT0gJycgJiYgKGZsb2F0KSR2YWx1ZSA9PSAwLjAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGtleSkpOwoJCSRrZXkgPSAnbGF0JzsKCQkkbmV3cGFybXNbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgoJICBjYXNlICdsb25nJzoKCSAgY2FzZSAnbG9uZ2l0dWRlJzoKCQkvLyB2YWxpZGF0ZSBmbG9hdAoJCWlmKCAkdmFsdWUgIT0gJycgJiYgKGZsb2F0KSR2YWx1ZSA9PSAwLjAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGtleSkpOwoJCSRrZXkgPSAnbG9uZyc7CgkJJG5ld3Bhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoKCSAgY2FzZSAnbmFtZV90eXBlJzoKCQkkdmFsdWUgPSBzdHJ0b2xvd2VyKCR2YWx1ZSk7CgkJaWYoICFpbl9hcnJheSgkdmFsdWUsYXJyYXkoJ2V4YWN0JywnbGlrZScpKSApIHsKCQkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX3BhcmFtJywka2V5KS4nOiAnLiR2YWx1ZSk7CgkJfQoJCSRuZXdwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCgkgIGNhc2UgJ2FkZHJfdHlwZSc6CgkgIGNhc2UgJ2FkZHJlc3NfdHlwZSc6CgkJJHZhbHVlID0gc3RydG9sb3dlcigkdmFsdWUpOwoJCWlmKCAhaW5fYXJyYXkoJHZhbHVlLGFycmF5KCdzdWJzdHInLCdsb29rdXAnKSkgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9wYXJhbScsJGtleSkpOwoJCSRrZXkgPSAnYWRkcl90eXBlJzsKCQkkbmV3cGFybXNbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgoJICBjYXNlICdyYWRpdXMnOgoJCS8vIHZhbGlkYXRlIGZsb2F0LgoJCWlmKCAoZmxvYXQpJHZhbHVlID09IDAuMCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX3BhcmFtJywka2V5KS4nOiAnLiR2YWx1ZSk7CgkJJG5ld3Bhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoKCSAgY2FzZSAndW5pdHMnOgoJCS8vIHZhbGlkYXRlIG1pbGVzIG9yIGtpbG9tZXRlcnMKCQkkdmFsdWUgPSBzdHJ0b2xvd2VyKCR2YWx1ZSk7CgkJaWYoICFpbl9hcnJheSgkdmFsdWUsYXJyYXkoJ21pJywnbWlsZScsJ21pbGVzJywna20nLCdrJykpICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9pbnZhbGlkdW5pdHMnKSk7CgkJJG5ld3Bhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoKCSAgY2FzZSAnb3JpZ3BhZ2UnOgoJICBjYXNlICdzdWJtaXQnOgoJICBjYXNlICdjYW5jZWwnOgoJICBjYXNlICdyZXN1bHRwYWdlJzoKCSAgY2FzZSAnc3VtbWFyeXRlbXBsYXRlJzoKCSAgY2FzZSAnZGV0YWlscGFnZSc6CgkgIGNhc2UgJ2RldGFpbHRlbXBsYXRlJzoKCSAgY2FzZSAnYWN0aW9uJzoKCSAgY2FzZSAnbW9kdWxlJzoKCSAgY2FzZSAnZG9zZWFyY2gnOgoJICBjYXNlICdjZHhfZmllbGQnOgoJCS8vIGRvIG5vdGhpbmcuCgkJYnJlYWs7CgoJICBjYXNlICdwb3N0YWwnOgoJICBjYXNlICdwb3N0YWxjaGFycyc6CgkgIGNhc2UgJ2NvdW50cnknOgoJICBjYXNlICdzZWFyY2hhZGRyZXNzJzoKCQkvLyBkb2luZyBhIHBvc3RhbCBzZWFyY2ggKHVubGVzcyBsYXQvbG9uZyBhcmUgYWxzbyBzcGVjaWZpZWQpCgkJJHBvc3RhbHBhcm1zWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwoKCSAgZGVmYXVsdDoKCQkkbmV3cGFybXNbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgkgIH0KCX0KCglpZiggaXNzZXQoJHBhcmFtc1snY2R4X2ZpZWxkJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ2NkeF9maWVsZCddKSAmJiBjb3VudCgkcGFyYW1zWydjZHhfZmllbGQnXSkgKSB7CgkgICR2YWx1ZSA9ICRwYXJhbXNbJ2NkeF9maWVsZCddOwoJICAkdG1wID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJHZhbHVlIGFzICRvbmUgKSB7CgkJaWYoICFpc19hcnJheSgkb25lKSApIGNvbnRpbnVlOwoJCWlmKCAhaXNzZXQoJG9uZVsnZmxkbmFtZSddKSB8fCBlbXB0eSgkb25lWydmbGRuYW1lJ10pICkgY29udGludWU7CgkJaWYoICFpc3NldCgkb25lWydmbGR2YWwnXSkgfHwgZW1wdHkoJG9uZVsnZmxkdmFsJ10pICkgY29udGludWU7CgkJaWYoICFpc3NldCgkb25lWydleHByJ10pIHx8IGVtcHR5KCRvbmVbJ2V4cHInXSkgKSAkb25lWydleHByJ10gPSAnQVVUTyc7CgkJJHRtcFtdID0gJG9uZTsKCSAgfQoJICAkbmV3cGFybXNbJ2ZpZWxkJ10gPSAkdG1wOwoJfQoKCSRjYW5fc2VhcmNoID0gVFJVRTsKCgkvLyBkbyBhbiBhZGRyZXNzIGxvb2t1cCBpZiB3ZSBuZWVkIHRvLgoJLy8gYW5kIHdlIGRvbid0IGFscmVkeSBoYXZlIGxhdGl0dWRlL2xvbmdpdHVkZQoJaWYoIGlzc2V0KCRuZXdwYXJtc1snYWRkcmVzcyddKSAmJiBpc3NldCgkbmV3cGFybXNbJ2FkZHJfdHlwZSddKSAmJiAkbmV3cGFybXNbJ2FkZHJfdHlwZSddID09ICdsb29rdXAnICkgewoJICBpZiggIWlzc2V0KCRuZXdwYXJtc1snbGF0J10pICYmICFpc3NldCgkbmV3cGFybXNbJ2xvbmcnXSkgKSB7CgkJJGNvb3JkcyA9IGNkX3V0aWxzOjpnZW9sb2NhdGUoJG5ld3Bhcm1zWydhZGRyZXNzJ10pOwoJCWlmKCAkY29vcmRzICE9PSBmYWxzZSApIHsKCQkgICRuZXdwYXJtc1snbGF0J10gPSAkY29vcmRzWydsYXQnXTsKCQkgICRuZXdwYXJtc1snbG9uZyddID0gJGNvb3Jkc1snbG9uJ107CgkJICB1bnNldCgkbmV3cGFybXNbJ2FkZHJlc3MnXSk7IC8vIGRvbid0IHdhbm5hIHVzZSB0aGUgYWRkcmVzcyBhZ2FpbiBmb3IgZmlsdGVyaW5nLgoJCX0KCQllbHNlIHsKCQkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9hZGRyZXNzX2xvb2t1cCcsJGFkZHJlc3MpKTsKCQl9CgkgIH0KCX0KCgkvLyBkbyBwb3N0Y29kZSBzZWFyY2ggaWYgbmVjZXNzYXJ5IChpZiB3ZSBkb24ndCBhbHJlZHkgaGF2ZSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlKQoJaWYoIGNvdW50KCRwb3N0YWxwYXJtcykgJiYgaXNzZXQoJHBvc3RhbHBhcm1zWydwb3N0YWwnXSkgJiYgJHBvc3RhbHBhcm1zWydwb3N0YWwnXSAhPSAnJyApIHsKCSAgJHNlYXJjaGFkZHJlc3MgPSAwOwoJICBpZiggaXNzZXQoJHBvc3RhbHBhcm1zWydzZWFyY2hhZGRyZXNzJ10pICkgJHNlYXJjaGFkZHJlc3MgPSAoaW50KSRwb3N0YWxwYXJtc1snc2VhcmNoYWRkcmVzcyddOwoJICBpZiggIWlzc2V0KCRuZXdwYXJtc1snbGF0J10pICYmICFpc3NldCgkbmV3cGFybXNbJ2xvbmcnXSkgKSB7CgkJLy8gd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGEgbGF0aXR1ZGUvbG9uZ2l0dWRlCgkJJHBvc3RhbCA9ICRwb3N0YWxwYXJtc1sncG9zdGFsJ107CgkJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUG9zdGNvZGUnKTsKCQlpZiggJG1vZCApIHsKCQkgIC8vIGZvdW5kIHRoZSBwb3N0Y29kZSBtb2R1bGUuCgkJICAkY291bnRyeSA9ICdVUyc7CgkJICAkcG9zdGNoYXJzID0gJyc7CgkJICBpZiggaXNzZXQoJHBvc3RhbHBhcm1zWydjb3VudHJ5J10pICYmIHN0cmxlbigkcG9zdGFscGFybXNbJ2NvdW50cnknXSkgPT0gMiApICRjb3VudHJ5ID0gc3RydG91cHBlcigkcG9zdGFscGFybXNbJ2NvdW50cnknXSk7CgkJICBpZiggaXNzZXQoJHBvc3RhbHBhcm1zWydwb3N0Y2hhcnMnXSkgJiYgaXNfaW50KCRwb3N0YWxwYXJtc1sncG9zdGNoYXJzJ10pICkgJHBvc3RjaGFycyA9IChpbnQpJHBvc3RhbHBhcm1zWydwb3N0Y2hhcnMnXTsKCgkJICAkcG9zdGFsX2RhdGEgPSAkbW9kLT5Mb29rdXBfWmlwKCRjb3VudHJ5LCRwb3N0YWwsJHBvc3RjaGFycyk7CgkJICBpZiggIWlzX2FycmF5KCRwb3N0YWxfZGF0YSkgKSB7CgkJCS8vIGl0IGRpZG4ndCB3b3JrCgkJCXRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wb3N0Y29kZV9sb29rdXAnLCRwb3N0YWwpKTsKCQkgIH0KCQkgIGVsc2UgewoJCQkkbmV3cGFybXNbJ2xhdCddID0gJHBvc3RhbF9kYXRhWydsYXRpdHVkZSddOwoJCQkkbmV3cGFybXNbJ2xvbmcnXSA9ICRwb3N0YWxfZGF0YVsnbG9uZ2l0dWRlJ107CgkJICB9CgkJfQoJICB9CgkgIGlmKCAkc2VhcmNoYWRkcmVzcyApICRuZXdwYXJtc1snYWRkcmVzczInXSA9ICRwb3N0YWw7Cgl9CgoJLy8gdmFsaWRhdGUgbmV3cGFybXMKCWlmKCBpc3NldCgkbmV3cGFybXNbJ25hbWUnXSkgKSB7CgkgIGlmKCBpc3NldCgkbmV3cGFybXNbJ25hbWVfdHlwZSddKSAmJiAkbmV3cGFybXNbJ25hbWVfdHlwZSddID09ICdsaWtlJyApIHsKCQkkbmV3cGFybXNbJ25hbWUnXSA9ICc6OionLiRuZXdwYXJtc1snbmFtZSddLicqJzsKCQl1bnNldCgkbmV3cGFybXNbJ25hbWVfdHlwZSddKTsKCSAgfQoJfQoJaWYoIGlzc2V0KCRuZXdwYXJtc1snbmFtZV90eXBlJ10pICkgdW5zZXQoJG5ld3Bhcm1zWyduYW1lX3R5cGUnXSk7CglpZiggaXNzZXQoJG5ld3Bhcm1zWydhZGRyX3R5cGUnXSkgKSB1bnNldCgkbmV3cGFybXNbJ2FkZHJfdHlwZSddKTsKCWlmKCBlbXB0eSgkbmV3cGFybXNbJ2xhdCddKSB8fCBlbXB0eSgkbmV3cGFybXNbJ2xvbmcnXSkgKSB7CgkgIHVuc2V0KCRuZXdwYXJtc1snbGF0J10pOwoJICB1bnNldCgkbmV3cGFybXNbJ2xvbmcnXSk7CgkgIHVuc2V0KCRuZXdwYXJtc1sncmFkaXVzJ10pOwoJICB1bnNldCgkbmV3cGFybXNbJ3VuaXRzJ10pOwoJfQoJZWxzZSBpZiggIWlzc2V0KCRuZXdwYXJtc1sncmFkaXVzJ10pICkgewoJICB1bnNldCgkbmV3cGFybXNbJ2xhdCddKTsKCSAgdW5zZXQoJG5ld3Bhcm1zWydsb25nJ10pOwoJICB1bnNldCgkbmV3cGFybXNbJ3JhZGl1cyddKTsKCSAgdW5zZXQoJG5ld3Bhcm1zWyd1bml0cyddKTsKCX0KCWVsc2UgaWYoIGlzc2V0KCRuZXdwYXJtc1sndW5pdHMnXSkgKSB7CgkgICRuZXdwYXJtc1sncmFkaXVzJ10gLj0gJG5ld3Bhcm1zWyd1bml0cyddOwoJICB1bnNldCgkbmV3cGFybXNbJ3VuaXRzJ10pOwoJfQoJaWYoIGlzc2V0KCRuZXdwYXJtc1snYWRkcmVzcyddKSApICRuZXdwYXJtc1snYWRkcmVzcyddID0gJyonLiRuZXdwYXJtc1snYWRkcmVzcyddLicqJzsKCgkkZmllbGRzID0gbnVsbDsKCWlmKCBpc3NldCgkbmV3cGFybXNbJ2ZpZWxkJ10pICkgewoJICAkZmllbGRzID0gJG5ld3Bhcm1zWydmaWVsZCddOwoJICB1bnNldCgkbmV3cGFybXNbJ2ZpZWxkJ10pOwoJfQoKCS8vIGNyZWF0ZSB0aGUgZmlsdGVyIG9iamVjdCBhbmQgcXVlcnkuCgkkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKCRuZXdwYXJtcyk7CglpZiggaXNfYXJyYXkoJGZpZWxkcykgJiYgY291bnQoJGZpZWxkcykgKSB7CgkgIGZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKCQkkZXhwciA9ICcnOwoJCWlmKCBpc3NldCgkb25lWydleHByJ10pICkgJGV4cHIgPSAkb25lWydleHByJ107CgkJJGZpbHRlci0+YWRkX2ZpZWxkX2V4cHIoJG9uZVsnZmxkbmFtZSddLCRvbmVbJ2ZsZHZhbCddLCRleHByKTsKCSAgfQoJfQoKCSRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwoJJHBhZ2luYXRpb24gPSAkcXVlcnktPmdldF9wYWdpbmF0aW9uKCk7CgkkcGFnaW5hdGlvbi0+c2V0X2V4dHJhcGFyYW1zKGFycmF5KCdjZF9kb3NlYXJjaCc9PjEpKTsKCSRwYWdlID0gJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKTsKCgkvLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5LgoJJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXInLCRmaWx0ZXIpOwoJJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsJHF1ZXJ5LT5nZXRfcmVzdWx0cygkaWQsJHJldHVybmlkKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsJHF1ZXJ5LT5nZXRfcmVzdWx0X2NvdW50KCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdwYWdpbmF0aW9uJywkcGFnaW5hdGlvbik7CgoJJHNtYXJ0eS0+YXNzaWduKCdwYWdldGV4dCcsJHRoaXMtPkxhbmcoJ3BhZ2UnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ29mdGV4dCcsJHRoaXMtPkxhbmcoJ29mJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpKTsKCSRzbWFydHktPmFzc2lnbignY3VycGFnZScsJHBhZ2UpOwoJJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfbGlzdCcsYXJyYXlfZmxpcChjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9saXN0KCkpKTsKCglpZiggJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkgPiAxICkgewoJICBpZiggJHBhZ2UgPT0gMSApIHsKCQkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CgkgIH0KCSAgZWxzZSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCRwYWdpbmF0aW9uLT5nZXRfcGFnZV9saW5rKDEsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKSk7CgkJJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsJHBhZ2luYXRpb24tPmdldF9wYWdlX2xpbmsoJHBhZ2luYXRpb24tPmdldF9jdXJyZW50X3BhZ2UoKS0xLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpKSk7CgkgIH0KCSAgaWYoICRwYWdlID09ICRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpICkgewoJCSRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5MYW5nKCdsYXN0cGFnZScpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSk7CgkgIH0KCSAgZWxzZSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHBhZ2luYXRpb24tPmdldF9wYWdlX2xpbmsoJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCksJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpKTsKCQkkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfbGluaygkcGFnaW5hdGlvbi0+Z2V0X2N1cnJlbnRfcGFnZSgpKzEsJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpKTsKCSAgfQoJfQoKCSR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFKTsKCWlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkgKSAkdGhldGVtcGxhdGUgPSAnc3VtbWFyeV8nLnRyaW0oJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ10pOwoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CglyZXR1cm47CiAgfQogIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CgkkZXJyb3JzW10gPSAkZS0+R2V0TWVzc2FnZSgpOwogIH0KfSAvLyBzdWJtaXQgb3IgZG9fc2VhcmNoCgojCiMgR2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQojCmlmKCBjb3VudCgkZXJyb3JzKSApICRzbWFydHktPmFzc2lnbignZXJyb3JzJywkZXJyb3JzKTsKJHRtcCA9IGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5X2xpc3QoLTEsRkFMU0UpOwppZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgJHRtcDIgPSBhcnJheSgtMT0+JHRoaXMtPkxhbmcoJ2FueScpKTsKICBmb3JlYWNoKCAkdG1wIGFzICRrID0+ICR2ICkgJHRtcDJbJHZdID0gJGs7IC8vIGJhY2t3YXJkcyBpbnRlbnRpb25hbGx5LgogICRzbWFydHktPmFzc2lnbignaGllcmFyY2hpZXMnLCR0bXAyKTsKfQoKJHRtcCA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CmlmKCBpc19hcnJheSgkdG1wKSApIHsKICAkY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewoJJGNhdGVnb3JpZXNbJG9uZS0+aWRdID0gJG9uZS0+bmFtZTsKICB9CiAgYXNvcnQoJGNhdGVnb3JpZXMpOwogICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGVnb3JpZXMpOwp9CgppZiggIWlzc2V0KCRwYXJhbXNbJ2NkX29yaWdwYWdlJ10pICkgJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSA9ICRyZXR1cm5pZDsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ3NlYXJjaCcsJHJlc3VsdHBhZ2UsJHBhcmFtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NvdW50cnknLCR0aGlzLT5DcmVhdGVJbnB1dENvdW50cnlEcm9wZG93bigkaWQsJ2NkX2NvdW50cnknKSk7CgojCiMgUHJvY2VzcyB0aGUgdGVtcGxhdGUKIwokdGhldGVtcGxhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1NFQVJDSEZPUk1fREZMVFRFTVBMQVRFTkFNRSk7CmlmKCBpc3NldCgkcGFyYW1zWydzZWFyY2hmb3JtdGVtcGxhdGUnXSkgKSAkdGhldGVtcGxhdGUgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCduZXdzZWFyY2hfJy4kdGhldGVtcGxhdGUpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT4xLjEgLSBTZXB0ZW1iZXIsIDIwMDcgPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgcHJldHR5IHVybHM8L2xpPgogICAgICA8bGk+RmlsbGVkIG91dCB0aGUgaGVscDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhIGNhdGVnb3J5IGxpc3QgbW9kZTwvbGk+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBmcm9udGVuZCBlZGl0aW5nIG9mIGNvbXBhbmllczwvbGk+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBwdWJsaWMgYW5kIGFkbWluIG9ubHkgZmllbGRzIGluIGNvbXBhbmllczwvbGk+CiAgICAgIDxsaT5BZGRlZCBkaWZmZXJlbnQgc29ydGluZyBjYXBhYmlsaXRpZXMgaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgICAgPGxpPkNoYW5nZWQgTWluaW11bSBDTVMgVmVyc2lvbiBhbmQgYWRkZWQgc3VwcG9ydCBmb3IgdGhlIDEuMSBzZXJpZXM8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuMSAtIE5vdmVtYmVyLCAyMDA3IDxlbT4ocmNhbXBiZWxsQHNraW5ueWZpc2htZWRpYS5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIHRoZSBkZXRhaWwgbGlua3MgaW4gc3VtbWFyeSBtb2RlIHdoZW4gcHJldHR5IHVybHMgd2VyZSBkaXNhYmxlZC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuMiAtIE5vdmVtYmVyLCAyMDA3IDxlbT4ocmNhbXBiZWxsQHNraW5ueWZpc2htZWRpYS5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPk5vdyB1c2UgY21zX21vdmVfdXBsb2FkZWRfZmlsZSBpbnN0ZWFkIG9mIG1vdmVfdXBsb2FkZWRfZmlsZTwvbGk+CiAgICAgIDxsaT5SZXF1aXJlIENNUyAxLjIuMSBvciBsYXRlcjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS4zIC0gRmVicnVhcnksIDIwMDggPGVtPihyY2FtcGJlbGxAc2tpbm55ZmlzaG1lZGlhLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBwYWdpbmF0aW9uIHRvIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBwcmV0dHkgdXJscyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIHNvcnQgb3JkZXIgcHJlZmVyZW5jZXM8L2xpPgogICAgICA8bGk+KF9TakcpIC0gSW1wbGVtZW50cyB0c3dcJ3MgcGF0Y2ggZm9yIGN1c3RvbSBmaWVsZHMgaW4gdGhlIHN1bW1hcnkgdGVtcGxhdGU8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNCAtIEp1bmUsIDIwMDggPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggdG8gdGhlIHRhYnM8L2xpPgogICAgICA8bGk+TWlub3IgZml4IHRvIHRoZSBzdGF0dXMgZmllbGQgd2hlbiBlZGl0aW5nIGEgY29tcGFueS48L2xpPgogICAgICA8bGk+TWlub3IgZml4IHRvIHRoZSBjaGVja2JveCBjdXN0b20gZmllbGRzIHdoZW4gZWRpdGluZyBhIGNvbXBhbnkuPC9saT4KICAgICAgPGxpPkZpeCB0byBDU1YgRXhwb3J0LjwvbGk+CiAgICAgIDxsaT5GaXggdG8gdGhlIHByZWZlcmVuY2VzIHRhYi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEuNSAtIEp1bmUsIDIwMDggPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggYSBtaW5vciBpc3N1ZSB3aXRoIHByZWZlcmVuY2VzPC9saT4KICAgICAgPGxpPkZpeCBzb21lIHF1ZXJpZXMgdGhhdCB3ZXJlIG5vdCB1c2luZyBjbXNfZGJfcHJlZml4PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjYgLSBKdWx5LCAyMDA4IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgICA8bGk+QWRkIHRoZSBzaG93YWxsIHBhcmFtZXRlciB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbi48L2xpPgogICAgICA8bGk+U3BsaXQgb3V0IGEgY291cGxlIG9mIG1vcmUgZmlsZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xLjcgLSBGZWJydWFyeSwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeGVkIGRlbGV0ZSBjb21wYW55IHN0dWZmLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMS44IC0gQXByaWwsIDIwMDkgPGVtPihjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGQgTW9yZSBJbmRleGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMiAtIE1heSwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZGVkIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgZmllbGRzLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBjYXBhYmlsaXR5IHRvIGxvb2t1cCBsYXR0aXR1ZGUgYW5kIGxvbmdpdHVkZSBpZiBDR0dvb2dsZU1hcCBpcyBpbnN0YWxsZWQuPC9saT4KICAgICAgPGxpPkFkZGVkIHNlYXJjaCBmdW5jdGlvbmFsaXR5LCB3aXRoIHppcGNvZGUgbG9va3VwIChyZXF1aXJlcyB0aGUgcG9zdGNvZGUgbW9kdWxlKS48L2xpPgogICAgICA8bGk+QWRkZWQgZXhwb3J0IHRvIGNzdiBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICAgIDxsaT5SZXdyaXRlIGltcG9ydCBmcm9tIGNzdiBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMyAtIEp1bHksIDIwMDkgPGVtPihjYWxndXkxMDAwQGhvdG1haWwuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBwcmV0dHkgdXJsczwvbGk+CiAgICAgIDxsaT5GaWxsZWQgb3V0IHRoZSBoZWxwPC9saT4KICAgICAgPGxpPkFkZGVkIGEgY2F0ZWdvcnkgbGlzdCBtb2RlPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIHB1YmxpYyBhbmQgYWRtaW4gb25seSBmaWVsZHMgaW4gY29tcGFuaWVzPC9saT4KICAgICAgPGxpPkFkZGVkIGRpZmZlcmVudCBzb3J0aW5nIGNhcGFiaWxpdGllcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgICA8bGk+Q2hhbmdlZCBNaW5pbXVtIENNUyBWZXJzaW9uIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB0aGUgMS4xIHNlcmllczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMy4yIC0gQXVndXN0LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSk8L2VtPgogICAgPHVsPgogICAgICA8bGk+Rml4IG1pbm9yIGVycm9yIGluIHRoZSBpbnN0YWxsZXIuPC9saT4KICAgICAgPGxpPkluIHN1bW1hcnkgbW9kZSwgZW5zdXJlIHRoYXQgYSBjb21wYW55IGlzIG9ubHkgb3V0cHV0IG9uY2UuPC9saT4KICAgIDwvdWw+ICAKICA8L2xpPgogIDxsaT4xLjMuMyAtIEF1Z3VzdCwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkZpeCBlcnJvcnMgd2l0aCBlbnRpdGllcyBpbiBmcm9udGVuZCB3eXNpd3lncy48L2xpPgogICAgICA8bGk+Rml4IGVycm9yIGluIGJvdW5kaW5nIGJveCBjYWxjdWxhdGlvbi48L2xpPgogICAgICA8bGk+TnVtZXJvdXMgb3RoZXIgc21hbGwgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPiAgCiAgPC9saT4KICA8bGk+MS4zLjQgLSBTZXB0ZW1iZXIsIDIwMDkgPGVtPihjYWxndXkxMDAwQGhvdG1haWwuY29tKTwvZW0+CiAgICA8dWw+CiAgICAgIDxsaT5GaXggc29tZSBtb3JlIHNtYWxsIGlzc3VlcyB3aXRoIGZyb250ZW5kIHN1Ym1pdDwvbGk+CiAgICA8L3VsPiAgCiAgPC9saT4KICA8bGk+MS40IC0gT2N0LCAyMDA5IDxlbT4oY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyk8L2VtPgogICAgPHVsPgogICAgIDxsaT5BZGRlZCBLTUwgSW1wb3J0PC9saT4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNC4xIC0gT2N0b2JlciwgMjAwOSA8ZW0+KGNhbGd1eTEwMDBAaG90bWFpbC5jb20pPC9lbT4KICAgIDx1bD4KICAgICAgPGxpPkFkZHMgYWJpbGl0eSB0byBpbXBvcnQgZmllbGRzIGZyb20gS01MLjwvbGk+CiAgICAgIDxsaT5BZGRzIGZpZWxkIHR5cGUgdG8gdGhlIG91dHB1dCBmb3IgY3VzdG9tIGZpZWxkcy48L2xpPgogICAgPC91bD4gIAogIDwvbGk+CiAgPGxpPjEuNSAtIEphbnVhcnksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgZm9yIGZyb250ZW5kIHVzZXJzIHRvIGFkZC9lZGl0L2RlbGV0ZSB0aGVpciBvd24gY29tcGFueSBsaXN0aW5ncy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuMSAtIEphbnVhcnksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYnJvd3NlIGJ5IGhpZXJhcmNoeS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuMiAtIEphbnVhcnksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPlJld3JpdGUgb2YgQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogICAgICA8bGk+QWRkcyBmcm9udGVuZCBpbXBvcnRpbmcgZnJvbSBjc3YuPC9saT4KICAgICAgPGxpPkFkZHMgZnJvbnRlbmQgZGVsZXRlIGFjdGlvbi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuMyAtIE1hcmNoLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5JbXByb3ZlbWVudHMgdG8gc2VhcmNoLjwvbGk+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjQgLSBNYXksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgc29ydGluZyBieSBwdWJsaWMgY3VzdG9tIGZpZWxkcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjUuNSAtIE1heSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuNS43IC0gTWF5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS41LjggLSBNYXksIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgY2F0ZWdvcnkgaW5mb3JtYXRpb24gZm9yIGVhY2ggbWF0Y2hpbmcgcHJvZHVjdCBpbiBzdW1tYXJ5IHZpZXcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42IC0gSnVuZSwgMjAxMAogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgYSBtaW5vciBpc3N1ZSB3aXRoIHRoZSBzZWFyY2ggZnVuY3Rpb24gKGNvcHkvcGFzdGUgZXJyb3IpPC9saT4KICAgICAgPGxpPkFkZHMgY29tcGFueSBuYW1lIGluZm9ybWF0aW9uIHRvIHRoZSBkZXRhaWwgdXJsLjwvbGk+CiAgICAgIDxsaT5BZGRzICZxdW90O2JhY2smcXVvdDsgbGluayB0byB0aGUgc2V0dGluZ3MgYW5kIHRlbXBsYXRlIHBhZ2VzLjwvbGk+CiAgICAgIDxsaT5BZGRzIGZ1bmN0aW9uYWxpdHkgdG8gYWxsb3cgZHVwbGljYXRpbmcgYSBjb21wYW55IHJlY29yZC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuMSAtIEp1bmUsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgZXh0cmEgZmllbGRzIHRvIGNhdGVnb3JpZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjIgLSBKdWx5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjMgLSBKdWx5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjQgLSBKdWx5LCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5Tb3J0IGZpZWxkIGRlZmluaXRpb25zIGJ5IG5hbWUuPC9saT4KICAgICAgPGxpPkFkZHMgY2F0ZWdvcnkgc3BlY2lmaWMgZXh0cmExLGV4dHJhMixleHRyYTMgZmllbGRzIGFzc29jaWF0ZWQgd2l0aCBDb21wYW5pZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS42LjUgLSBBdWd1c3QsIDIwMTAKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgaWQgb3B0aW9uIHRvIHNvcnRieS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuNyAtIEF1Z3VzdCwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyBpbnRlZ2VyIHNvcnRpbmcgYnkgdGhlIHNvcnRieT1mOmZpZWxkX25hbWUgc3R1ZmYuPC9saT4KICAgICAgPGxpPk1pbm9yIGltcHJvdmVtZW50IHRvIHRoZSBzZWFyY2ggc3R1ZmYgd3J0IGNhdGVnb3JpZXMuPC9saT4KICAgICAgPGxpPlNvcnQgdGhlIGNhdGVnb3JpZXMgb3V0cHV0IHRvIHRoZSBzZWFyY2ggZm9ybS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuOCAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gc2VhcmNoIGFjdGlvbi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjYuOSAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+Q1NWIEltcG9ydCBJbXByb3ZlbWVudHMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS43IC0gU2VwdGVtYmVyLCAyMDEwCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIGhpZXJhcmNoeSBjYXBhYmlsaXRpZXMgdG8gc2VhcmNoIGFjdGlvbi48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjcuMiAtIFNlcHRlbWJlciwgMjAxMAogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkbyBhIExJS0Ugc2VhcmNoIG9uIHRoZSBhZGRyZXNzIGZpZWxkIHdoZW4gZG9pbmcgYSBwb3N0Y29kZSBzZWFyY2guPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS43LjMgLSBKYW51YXJ5LCAyMDExCiAgIDx1bD4KICAgICA8bGk+TWFueSBtaW5vciBidWcgZml4ZXMsIGluY2x1ZGluZyBjaGFuZ2VzIHRvIHdvcmsgd2l0aCBuZXcgQ0dHTTwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS44IC0gSmFudWFyeSwgMjAxMQogICA8dWw+CiAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGNvbXBhbnkgVVJMUyAoYWxhIENNU01TIDEuOSkgd2hlbiBjb21wYW5pZXMgYXJlIHVwZGF0ZWQgZnJvbSB0aGUgYWRtaW4gaW50ZXJmYWNlLjwvbGk+CiAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGRvaW5nIGEgMzAxIHJlZGlyZWN0IHRvIHRoZSBuZXcgVVJMIGlmIGEgY29tcGFueSBpcyBhY2Nlc3NlZCB2aWEgdGhlIG9sZCBVUkwgYW5kIGEgbmV3IFVSTCBleGlzdHMuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcGFzcyB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBpbiB0byB0aGUgc2VhcmNoLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS44LjEgLSBNYXJjaCwgMjAxMQogICA8dWw+CiAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjguMiAtIE1hcmNoLCAyMDExCiAgIDx1bD4KICAgPGxpPkFkZHMgJGVudHJ5LT5maWVsZHMgdG8gdGhlIGRldGFpbCBhbmQgc3VtbWFyeSB2aWV3cy48L2xpPgogICA8bGk+T2ZmaWNpYWxseSBkZXByZWNhdGUgdGhlIGN1c3RvbWZpZWxkc2J5bmFtZSBzdHVmZi48L2xpPgogICA8bGk+QWRkICRlbnRyeS0+Y2Fub25pY2FsIHRvIHRoZSBkZXRhaWwgdmlldy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuOSAtIEF1Z3VzdCwgMjAxMQogICA8dWw+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHVwZGF0ZSBjb21wYW55IHJlY29yZHMgdmlhIGNzdiBmaWxlcy48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPjEuMTAgLSBTZXB0ZW1iZXIsIDIwMTEKICAgPHVsPgogICA8bGk+QWRkcyBuZXcgZmlsdGVyLCBxdWVyeSwgYW5kIHBhZ2luYXRpb24gY2xhc3Nlcy48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBwcmVsb2FkIGZpZWxkIGFuZCBjYXRlZ29yeSBpbmZvcm1hdGlvbiBmb3Igc2VsZWN0ZWQgY29tcGFuaWVzLjwvbGk+CiAgIDxsaT5SZXdyaXRlIHN1bW1hcnkgdmlldyB0byB1c2UgbmV3IGNsYXNzZXMuPC9saT4KICAgPGxpPlJlbW92ZXMgdGhlIGNhdGVnb3J5IGZvcm0gZnJvbSB0aGUgc3VtbWFyeSB2aWV3Li4uIG1hbnkgYmV0dGVyIHdheXMgdG8gaGFuZGxlIHRoaXMuPC9saT4KICAgPC91bD4KICA8L2xpPgogIDxsaT4xLjEwLjEgLSBTZXB0ZW1iZXIsIDIwMTEKICAgPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMC4xMCAtIE5vdmVtYmVyLCAyMDExCiAgIDx1bD4KICAgPGxpPkZpeGVzIGFuIGlzc3VlIHdpdGggaW1hZ2UgdXBsb2FkIGZpZWxkcyB3aGVuIGVkaXRpbmcgY29tcGFuaWVzLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMC4xMSAtIE5vdmVtYmVyLCAyMDExCiAgIDx1bD4KICAgICA8bGk+Q2F0ZWdvcnkgbmFtZXMgbXVzdCBub3cgb25seSBoYXZlIHZhbGlkIGNoYXJzLjwvbGk+CiAgICAgPGxpPk1pbm9yIGZpeGVzLjwvbGk+IAogICA8L3VsPgogIDxsaT4gIAogIDxsaT4xLjExIC0gRGVjZW1iZXIsIDIwMTEKICAgPHVsPgogICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSBkZXRhaWwgdmlldyAoc29tZSB0ZW1wbGF0ZXMgbWF5IG5lZWQgY2hhbmdpbmcpLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+MS4xMiAtIERlY2VtYmVyLCAyMDExCiAgIDx1bD4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgPGxpPkFkZHMgZmlsdGVyaW5nIHRvIHRoZSBjb21wYW55IGxpc3QgaW4gdGhlIGFkbWluIGludGVyZmFjZS48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBjYXRlZ29yeTIgYW5kIGNhdGVnb3J5MyBwYXJhbWV0ZXJzLjwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIGNhdGVnb3J5IE9SIGEgaGllciBwYXJhbWV0ZXIgdG8gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KIDxsaT4xLjEzIC0gSmFudWFyeSwgMjAxMgogICA8dWw+CiAgICAgPGxpPkFkZHMgZmlsZSBmaWVsZCB0eXBlLjwvbGk+CiAgICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCBsb2dvIGFuZCBwaWN0dXJlIGZpbGVzIGJlaW5nIGRlbGV0ZWQuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xMy4xIC0gTWFyY2gsIDIwMTIKICAgPHVsPgogICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjEzLjIgLSBBcHJpbCwgMjAxMgogICA8dWw+CiAgICA8bGk+TW9yZSBhdWRpdCBsaW5lcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE0IC0gTWF5LCAyMDEyCiAgIDx1bD4KICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgY2RfY29tcGFueSBjbGFzcy48L2xpPgogICA8bGk+QWRkIGNvbXBhbnkgKGFkbWluKSBpcyBub3cgZ2V0dGluZyBtb3JlIG9vcGlmaWVkLjwvbGk+CiAgIDxsaT5FZGl0IGNvbXBhbnkgKGFkbWluKSBpcyBub3cgZ2V0dGluZyBtb3JlIG9vcGlmaWVkLjwvbGk+CiAgIDxsaT5NaW5vciBmaXggdG8gdGhlIGhpZXJhcmNoeSB0YWIuPC9saT4KICAgPGxpPk5ldyBFdmVudHMgKE9uQWRkQ29tcGFueSwgT25FZGl0Q29tcGFueSwgT25EZWxldGVDb21wYW55KSAtLSBpbiBwcm9ncmVzczwvbGk+CiAgIDxsaT5FeHRyYSBmaWVsZHMgYXJlIG5vdyBhZGRlZCB0byB0aGUgc2VhcmNoIHRlcm1zICh0ZXh0IGFuZCB0ZXh0YXJlYSBmaWVsZHMgb25seSkuIC0tIGluIHByb2dyZXNzPC9saT4KICAgPGxpPlNlYXJjaCByZS1pbmRleCBub3cgb29waWZpZWQgYW5kIGZhc3Rlci48L2xpPgogICA8bGk+RnJvbnRlbmQgZWRpdGluZyBjb21wbGV0ZWx5IHJld3JpdHRlbiAKICAgICAgPHVsPgogICAgICAgIDxsaT5Vc2UgdGhlIG5ldyBhY3Rpb24gKHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgYWRtaW4gcGFuZWwpPC9saT4KICAgICAgICA8bGk+U3VwcG9ydHMgZWRpdGluZyBjdXN0b20gZmllbGRzIChwdWJsaWMgb25seSkuPC9saT4KICAgICAgICA8bGk+U3VwcG9ydHMgZmlsZSB1cGxvYWRzLCBpbWFnZSBwcm9jZXNzaW5nIGFsYSBDR0V4dGVuc2lvbnM8L2xpPgogICAgICAgIDxsaT5FbmhhbmNlZCBzZWN1cml0eS48L2xpPgogICAgICAgIDxsaT5EZWZhdWx0IHRlbXBsYXRlIGluY2x1ZGVzIGxvb2t1cCBmdW5jdGlvbmFsaXR5IChpZiBDR0dNIGlzIGF2YWlsYWJsZSk8L2xpPgogICAgICAgIDxsaT5TZWFyY2hhYmxlLjwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDwvbGk+CiAgIDxsaT5GaXhlcyB0byBLTUwgSW1wb3J0LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBoaWVyYXJjaHkgaW5mbyB0byB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLjwvbGk+CiAgIDxsaT5BZGRzIHJhZGl1cyBzZWFyY2hpbmcgY2FwYWJpbGl0aWVzLCBhbmQgc29ydGluZyBieSBkaXN0YW5jZS48L2xpPgogICA8bGk+QWRkcyByZWdleHAgc2VhcmNoIGZvciBuYW1lIHBhcmFtZXRlci48L2xpPgogICA8bGk+Rml4ZXMgYSBidWcgaW4gQ1NWIGltcG9ydCB3cnQgbGF0L2xvbmcgdmFsdWVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQuMSAtIEp1bmUsIDIwMTIKICAgPHVsPgogICA8bGk+RWRpdCBDb21wYW55IChhZG1pbiBzaWRlKSBGaXhlcy48L2xpPgogICA8bGk+Q29tcGF5IENvbXBhbnkgRml4ZXMuPC9saT4KICAgPGxpPk1vdmVkIGhlbHAgb3V0IG9mIGxhbmcgZmlsZS48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE0LjIgLSBKdW5lLCAyMDEyCiAgIDx1bD4KICAgPGxpPkZpeGVzIGlzc3VlIHdpdGggZHJhZnQgc3RhdHVzLjwvbGk+CiAgIDxsaT5maXhlcyBpc3N1ZSB3aXRoIGNkX2NvbXBhbnlfcXVlcnksIHN0YXR1cywgYW5kIGZyb250ZW5kIHZpZXdzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTQuMyAtIEp1bHksIDIwMTIKICAgPHVsPgogICA8bGk+Q2F0ZWdvcmllcyBhcmUgbm93IG91dHB1dCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgbmFtZSwgZXZlcnl3aGVyZS48L2xpPgogICA8bGk+TW9yZSBmdW5jdGlvbnMgaW4gY2RfdXRpbHMuPC9saT4KICAgPGxpPk1pbm9yIGJ1Z2ZpeCB0byBhY2NlcHRpbmcgaHRtbCBpbiB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNC40IC0gSnVseSwgMjAxMgogICA8dWw+CiAgIDxsaT5CdWdmaXg6IFNldCBvd25lciBpZCB0byAtMSBmb3IgaW1wb3J0ZWQgaXRlbXMuPC9saT4KICAgPC91bD4KIDwvaWk+CiA8bGk+MS4xNS54CiAgIDx1bD4KICAgPGxpPkJlZ2luIHdvcmsgb24gbmV3IHNlYXJjaCBhY3Rpb24uPC9saT4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8bGk+QWRkcyBhYmlsaXR5IHRvIG91dHB1dCBjb21wYW55IHNlYXJjaGVzIGFzIGFuIGFycmF5LjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTYueAogICA8dWw+CiAgIDxsaT5BZGQgdGhlIHtjZF9nZXRjb21wYW55fSB0YWcuPC9saT4KICAgPGxpPkZpeGVzIGEgYnVuY2ggb2YgbWlub3IgYnVncy48L2xpPgogICA8bGk+T25seSBjbGVhbiB2YWx1ZXMgaW4gY2RfY29tcGFueSBmb3IgYWRtaW4gcmVxdWVzdHMuLi4gc2VlIGhvdyB0aGF0IHdvcmtzIG91dC48L2xpPgogICA8bGk+Q1NWIGltcG9ydCBpbXByb3ZlbWVudHMuPGxsaT4KICAgPC91bD4KIDwvbGk+CiA8bGk+MS4xNy54CiAgIDx1bD4KICAgPGxpPlJhdGlvbmFsaXphdGlvbiBvZiBhZG1pbiBpbnRlcmZhY2UgdGFicy48L2xpPgogICA8bGk+TWlub3Igb3B0aW16YXRpb25zLjwvbGk+CiAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIHRoZSBhbGJ1bSBmaWVsZCB0eXBlIGluY2x1ZGluZyBmb3IgZnJvbnRlbmQgZWRpdGluZy4KICAgICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBhbGxvd3MgYXNzb2NpYXRpbmcgbXVsdGlwbGUgaW1hZ2VzIHdpdGggYSBzaW5nbGUgY29tcGFueSBlbnRyeS4gIFRoZXkgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIGFzIGEgc2ltcGxlIGFycmF5IG9mIGZpbGVuYW1lcy4gIFlvdSBtYXkgYnVpbGQgeW91ciBvd24gZGlzcGxheSBtZWNoYW5pc20gZnJvbSB0aGlzLjwvcD4KICAgICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBkb2VzIG5vdCBwcm92aWRlIGFueSBpbWFnZSBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy4gIEltYWdlIHByb2Nlc3Npbmcgc3VjaCBhcyB3YXRlcm1hcmtpbmcgb3IgdGh1bWJuYWlsaW5nIGNhbiBiZSBkb25lIGF0IHRoZSB0aWVtIG9mIGRpc3BsYXkgd2l0aCBhbiBhZGRvbiBtb2R1bGUgbGlrZSBDR1NtYXJ0SW1hZ2UuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gSW4gb3JkZXIgdG8gc2VlIHRoZSBhbGJ1bSBmaWVsZCB0eXBlcyB5b3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyAmcXVvdDtGcm9udGVuZCBFZGl0IENvbXBhbnkmcXVvdDsgdGVtcGxhdGUgZnJvbSBkZWZhdWx0cyAoYWZ0ZXIgcmVzdG9yaW5nIHRoZSBkZWZhdWx0IHRlbXBsYXRlIHRvIGZhY3RvcnkgZGVmYXVsdHMgaW4gdGhlIGRlZmF1bHQgdGVtcGxhdGVzIHRhYi48L3A+CiAgICAgPHA+QWRkaXRpb25hbGx5IHlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIG5ldyBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZXMuPC9wPgogICA8L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT4xLjE4LngKICAgPHVsPgogICAgIDxsaT5Nb2RpZmllcyB0aGUgY2RfY29tcGFueV9maWx0ZXIgYW5kIGNkX2NvbXBhbnlfcXVlcnkgY2xhc3NlcyB0byBhbGxvdyBxdWVyeWluZyBsb2NhdGlvbnMgYnkgYWN0aXZpdHksIG1vc3QgY2hlY2tpbnMsIG9yIG1vc3QgZmF2b3JpdGVzIChyZXF1aXJlcyB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlKS48L2xpPgogICAgIDxsaT5Db2RlIGNsZWFudXBzLCBhbmQgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPjEuMTkueAogICA8dWw+CiAgICAgPGxpPkFkZHMgYW4gSWNvbiBmaWVsZCB0eXBlIChmcm9tIENHR29vZ2xlTWFwcyBvciBDR0dvb2dsZU1hcHMyKTwvbGk+CiAgICAgPGxpPkFkZHMgYW4gQWN0aXZpdHkgZmllbGQgdHlwZSAoZnJvbSBDR1NvY2lhbEFwcCk8L2xpPgogICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlLW9yZGVyIGNhdGVnb3JpZXMgYW5kIGhpZXJhcmNoeSBpdGVtcy48L2xpPgogICAgIDxsaT5Nb3JlIGNvZGUgY2xlYW51cHMuPC9saT4KICAgICA8bGk+SGllcmFyY2h5IG9wdGltaXphdGlvbnMuPC9saT4KICAgICA8bGk+QWRkcyB0aGUge2NkX2hpZXJicmVhZGNydW1ifSBwbHVnaW4uPC9saT4KICAgICA8bGk+QWRkcyB0aGUgaGllcl9jaGlsZHJlbiBwYXJhbWV0ZXIuPC9saT4KICAgICA8bGk+TW9yZSBpbmRleGVzIGZvciBwcmVmb3JtYW5jZS48L2xpPgogICA8L3VsPgogPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/CompanyDirectory.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2IC0gMjAxMyBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdzdW1tYXJ5X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRzdW1tYXJ5X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0RFVEFJTF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdkZXRhaWxfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVERFVEFJTF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0Y2F0ZWdvcnlsaXN0X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0hJRVJMSVNUX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX25ld2hpZXJsaXN0X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX0RGTFRISUVSTElTVF9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0aGllcmxpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfTkVXU0VBUkNIRk9STV9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdzZWFyY2hmb3JtX3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX0RGTFRTRUFSQ0hGT1JNX1RFTVBMQVRFJywnY29tcGFueWRpcl9wcmVmX2RmbHRzZWFyY2hmb3JtX3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ERk9STV9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9uZXdmcm9udGVuZGZvcm1fdGVtcGxhdGUnKTsKZGVmaW5lKCdDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ERk9STV9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0ZnJvbnRlbmRmb3JtX3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5EQUxCVU1fVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfbmV3ZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ERkxURlJPTlRFTkRBTEJVTV9URU1QTEFURScsJ2NvbXBhbnlkaXJfcHJlZl9kZmx0ZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVORExJU1RfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfbmV3ZnJvbnRlbmRsaXN0X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVORExJU1RfVEVNUExBVEUnLCdjb21wYW55ZGlyX3ByZWZfZGZsdGZyb250ZW5kbGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfRlJPTlRFTkRJTVBPUlRfVEVNUExBVEUnLCdjb21wYW55ZGlyX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlJyk7CmRlZmluZSgnQ09NUEFOWURJUl9TRUFSQ0hGT1JNX0RGTFRURU1QTEFURU5BTUUnLCdwcmVmX25ld3NlYXJjaGZvcm1fdGVtcGxhdGVfbmFtZScpOwpkZWZpbmUoJ0NPTVBBTllESVJfU0VBUkNIRk9STV9TWVNERkxUVEVNUExBVEUnLCdkZmx0c2VhcmNoZm9ybV90ZW1wbGF0ZScpOwoKY2xhc3MgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7fQoKZmluYWwgY2xhc3MgQ29tcGFueURpcmVjdG9yeSBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgdmFyICRfY29tcGFueV9uYW1lX2NhY2hlOwogIHByaXZhdGUgJF9jYXRlZ29yeV9wcmVsb2FkOwoKICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoJJHRoaXMtPl9jb21wYW55X25hbWVfY2FjaGUgPSBhcnJheSgpOwoJJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwoKCSRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKCSRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjb21wZGlyX2luaXRqcycsYXJyYXkoJ2NkX3V0aWxzJywnc21hcnR5X2luaXRqcycpKTsKCSRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9zZWxjYXRlZ29yeScsYXJyYXkoJ2NkX3V0aWxzJywnc21hcnR5X3NlbGNhdGVnb3J5JykpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX3NlbGhpZXJhcmNoeScsYXJyYXkoJ2NkX3V0aWxzJywnc21hcnR5X3NlbGhpZXJhcmNoeScpKTsKCSRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9nZXRjb21wYW55JyxhcnJheSgnY2RfdXRpbHMnLCdzbWFydHlfZ2V0Y29tcGFueScpKTsKICB9CgogIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnQ29tcGFueURpcmVjdG9yeSc7IH0KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnY29tcGFueWRpcmVjdG9yeScpOyB9CiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CiAgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICBmdW5jdGlvbiBIYXNBZG1pbigpIHsJcmV0dXJuIHRydWU7IH0KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMTkuMic7IH0KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsgcmV0dXJuICcxLjExLjYnOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3ByZXVuaW5zdGFsbCcpOyB9CiAgZnVuY3Rpb24gR2V0SGVscCgkbGFuZz0nZW5fVVMnKSB7IHJldHVybiBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvaGVscC5pbmMnKTsgfQogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdjb250ZW50JzsgfQogIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQogIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKSB7IHJldHVybiBGQUxTRTsgfQogIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgcmV0dXJuICdUZWQgS3VscCc7IH0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCXsgcmV0dXJuICd0ZWRAdGVuMzkuY29tJzsgfQogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oICRldmVudG5hbWUgKSB7IHJldHVybiAkdGhpcy0+bGFuZygnZXZlbnRkZXNjLScgLiAkZXZlbnRuYW1lKTsgfQogIGZ1bmN0aW9uIEdldEV2ZW50SGVscCggJGV2ZW50bmFtZSApIHsJcmV0dXJuICR0aGlzLT5sYW5nKCdldmVudGhlbHAtJyAuICRldmVudG5hbWUpOyAgfQoKICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKCXJldHVybiBhcnJheSgnQ0dFeHRlbnNpb25zJz0+JzEuMzUuMScsJ0NHU2ltcGxlU21hcnR5Jz0+JzEuNScsJ0pRdWVyeVRvb2xzJz0+JzEuMicpOwogIH0KCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CglyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykgfHwKCSAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpIHx8CgkgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplRnJvbnRlbmQoKQogIHsKCSR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwoJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKCSRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKCWlmKCAkZGV0YWlscGFnZSA9PSAtMSApIHsKCSAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoJICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwoJfQoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRwYXJtcyA9IGFycmF5KCdwdWJsaXNoZWQnLCcnKTsKCSRxdWVyeSA9ICdTRUxFQ1QgaWQsdXJsIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBzdGF0dXMgPSA/IEFORCB1cmwgIT0gPyc7CgkvLyB0b2RvOiBkb24ndCBhZGQgcm91dGVzIGZvciByZWNvcmRzIG93bmVkIGJ5IGV4cGlyZWQgRkVVJ3MuLi4gYnV0IHdlJ2xsIGxldCBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MgaGFuZGxlIHRoaXMgYXRtLgoJJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCRwYXJtcyk7CglpZiggaXNfYXJyYXkoJHRtcCkgKSB7CgkgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKCQkkcGFybXMgPSBhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlLCdjb21wYW55aWQnPT4kb25lWydpZCddKTsKCQkkcm91dGUgPSBuZXcgQ21zUm91dGUoJG9uZVsndXJsJ10sJHRoaXMtPkdldE5hbWUoKSwkcGFybXMsVFJVRSk7CgkJY21zX3JvdXRlX21hbmFnZXI6OnJlZ2lzdGVyKCRyb3V0ZSk7CgkgIH0KCX0KCgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY29tcGFueWlkJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHBhZ2UnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGllcmxpc3R0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzZWFyY2hmb3JtdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGV0YWlsdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZnJvbnRlbmRmb3JtdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Zyb250ZW5kbGlzdHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1bW1hcnl0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93YWxsJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRieScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0b3JkZXInLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2VhcmNoYWRkcmVzcycsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwb3N0YWxjaGFycycsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoaWVyJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJfY2hpbGRyZW4nLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbmFtZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpZGxpc3QnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnknLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnkyJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5MycsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmxpbmUnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZWxpbWl0JyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5aWQnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aXZpdHlpZCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhY3Rpdml0eWNoaWxkcmVuJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvY2R4Xy4qLycsQ0xFQU5fTk9ORSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9jZF8uKi8nLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZScsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXN1bHRwYWdlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2p1bmsnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnb3JpZ2FjdGlvbicsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsYXQnLENMRUFOX1NUUklORyk7IC8vIGZsb2F0CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9uZycsQ0xFQU5fU1RSSU5HKTsgLy8gZmxvYXQKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyYWRpdXMnLENMRUFOX1NUUklORyk7IC8vIGZsb2F0CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9wcmV0dHknLENMRUFOX0lOVCk7IC8vIGZsb2F0CgkKCS8vIEZyaWVuZGx5IFVSTCBzdHVmZgoJLy8gdG9kbywgYWRkIGRlZmF1bHRzIGhlcmUKCWlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3JlZGlyZWN0b2xkJywwKSApIHsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcL2QsKD9QPGRldGFpbHRlbXBsYXRlPi4qPykkLycsCgkJCQkJCSAgIGFycmF5KCdhY3Rpb24nPT4naGFuZGxlX29sZHJvdXRlJywnb3JpZ2FjdGlvbic9PidkZXRhaWxzJykpOwoJICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tjQ11vbXBhbmllc1wvKD9QPGNvbXBhbnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywKCQkJCQkJICAgYXJyYXkoJ2FjdGlvbic9PidoYW5kbGVfb2xkcm91dGUnLCdvcmlnYWN0aW9uJz0+J2RldGFpbHMnKSk7CgkgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC8oP1A8Y29tcGFueWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLAoJCQkJCQkgICBhcnJheSgnYWN0aW9uJz0+J2hhbmRsZV9vbGRyb3V0ZScsJ29yaWdhY3Rpb24nPT4nZGV0YWlscycpKTsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKSQvJywKCQkJCQkJICAgYXJyYXkoJ2FjdGlvbic9PidoYW5kbGVfb2xkcm91dGUnLCdvcmlnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7Cgl9CgllbHNlIHsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcL2QsKD9QPGRldGFpbHRlbXBsYXRlPi4qPykkLycpOyAvLyBkZXByZWNhdGVkLgoJICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tjQ11vbXBhbmllc1wvKD9QPGNvbXBhbnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CgkgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC8oP1A8Y29tcGFueWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCSAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcLyg/UDxjb21wYW55aWQ+WzAtOV0rKSQvJyk7Cgl9CgkvLyBzdW1tYXJ5IHZpZXdzLgoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcL2J5Y2F0ZWdvcnlcLyg/UDxjYXRlZ29yeWlkPlswLTldKykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bY0Ndb21wYW5pZXNcL2J5Y2F0ZWdvcnlcLyg/UDxjYXRlZ29yeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2NDXW9tcGFuaWVzXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyk7CgoJJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2hpZXJicmVhZGNydW1iJyxhcnJheSgnY2RfdXRpbHMnLCdzbWFydHlfaGllcmJyZWFkY3J1bWInKSk7CiAgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogIHsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGlvbicsJ2RlZmF1bHQnLCR0aGlzLT5MYW5nKCdwYXJhbV9hY3Rpb24nKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjb21wYW55aWQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jb21wYW55aWQnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXRhaWxwYWdlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZGV0YWlscGFnZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdoaWVybGlzdHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcmxpc3R0ZW1wbGF0ZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NlYXJjaGZvcm10ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2RldGFpbHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZGV0YWlsdGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmcm9udGVuZGZvcm10ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZnJvbnRlbmRsaXN0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9mcm9udGVuZGxpc3R0ZW1wbGF0ZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3N1bW1hcnl0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3dhbGwnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zaG93YWxsJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydGJ5JywnY29tcGFueV9uYW1lJywkdGhpcy0+TGFuZygncGFyYW1fc29ydGJ5JykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydG9yZGVyJywnYXNjJywkdGhpcy0+TGFuZygncGFyYW1fc29ydG9yZGVyJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2VhcmNoYWRkcmVzcycsJzAnLCR0aGlzLT5MYW5nKCdwYXJhbV9zZWFyY2hhZGRyZXNzJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncG9zdGFsY2hhcnMnLCcwJywkdGhpcy0+TGFuZygncGFyYW1fcG9zdGFsY2hhcnMnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdoaWVyJywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcicpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hpZXJfY2hpbGRyZW4nLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9oaWVyX2NoaWxkcmVuJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaWRsaXN0JywnJywkdGhpcy0+TGFuZygncGFyYW1faWRsaXN0JykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbmFtZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25hbWUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdsYXQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9sYXQnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdsb25nJywnJywkdGhpcy0+TGFuZygncGFyYW1fbG9uZycpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3JhZGl1cycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3JhZGl1cycpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5aWQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWlkJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aXZpdHlpZCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FjdGl2aXR5aWQnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpdml0eWNoaWxkcmVuJywnJywkdGhpcy0+TGFuZygncGFyYW1fYWN0aXZpdHljaGlsZHJlbicpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5JywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnknKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeTInLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeTInKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeTMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeTMnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpbmxpbmUnLDAsJHRoaXMtPkxhbmcoJ3BhcmFtX2lubGluZScpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhZ2VsaW1pdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3BhZ2VsaW1pdCcpKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Jlc3VsdHBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9yZXN1bHRwYWdlJykpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9wcmV0dHknLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub3ByZXR0eScpKTsKICB9CgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewoJJGZuID0gX19ESVJfXy4nL2NoYW5nZWxvZy5pbmMnOwoJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkgICR0ID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSAgcmV0dXJuICR0OwoJfQogIH0KCiAgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgewoJJG9iaiA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnSlF1ZXJ5VG9vbHMnLCcxLjInKTsKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKCSR0eHQgPSAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSInLiR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkuJy9jc3MvYWRtaW4uY3NzIi8+JzsKICAgIGlmKCBpc19vYmplY3QoJG9iaikgKXsKICAgICAgJHRtcGwgID0gIntKUXVlcnlUb29scyBhY3Rpb249J3JlcXVpcmUnIGxpYj0ndGFibGVzb3J0ZXIsanF1ZXJ5dG9vbHMsZmFuY3lib3gsZmlsZXVwbG9hZCd9IjsKICAgICAgJHRtcGwgLj0gIntKUXVlcnlUb29scyBhY3Rpb249J3BsYWNlbWFya2VyJyBub19yZWFkeT0xfSI7CiAgICB9CiAgICAkdHh0IC49ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wbCk7CiAgICByZXR1cm4gJHR4dDsKICB9CQoKICBmdW5jdGlvbiBHZXRGaWVsZFR5cGVzKCkKICB7CgkkYXJyID0gYXJyYXkoJ3RleHRib3gnICA9PiAkdGhpcy0+TGFuZygnZmllbGRfdGV4dGJveCcpLAoJCQkJICdjaGVja2JveCcgPT4gJHRoaXMtPkxhbmcoJ2ZpZWxkX2NoZWNrYm94JyksCgkJCQkgJ3RleHRhcmVhJyA9PiAkdGhpcy0+TGFuZygnZmllbGRfdGV4dGFyZWEnKSwKCQkJCSAnZHJvcGRvd24nID0+ICR0aGlzLT5MYW5nKCdmaWVsZF9kcm9wZG93bicpLAoJCQkJICdtdWx0aXNlbGVjdCcgPT4gJHRoaXMtPkxhbmcoJ2ZpZWxkX211bHRpc2VsZWN0JyksCgkJCQkgJ2ltYWdlJyA9PiAkdGhpcy0+TGFuZygnZmllbGRfaW1hZ2UnKSwKCQkJCSAnZmlsZScgPT4gJHRoaXMtPkxhbmcoJ2ZpZWxkX2ZpbGUnKSk7CgkkYXJyWydhbGJ1bSddID0gJHRoaXMtPkxhbmcoJ2ZpZWxkX2FsYnVtJyk7CgkkY2dzb2MgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHU29jaWFsQXBwJyk7CglpZiggaXNfb2JqZWN0KCRjZ3NvYykgKSAkYXJyWydhY3Rpdml0eSddID0gJHRoaXMtPkxhbmcoJ2ZpZWxkX2FjdGl2aXR5Jyk7CglpZiggY2RfdXRpbHM6OmNhbl9nZW9sb2NhdGUoKSApCSRhcnJbJ2ljb24nXSA9ICR0aGlzLT5MYW5nKCdmaWVsZF9pY29uJyk7CglyZXR1cm4gJGFycjsKICB9CgkKICBmdW5jdGlvbiBHZXRDYXRlZ29yaWVzKCRhc0hhc2ggPSBGQUxTRSwkYnlOYW1lID0gRkFMU0UpCiAgewoJcmV0dXJuIGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcygkYXNIYXNoLCRieU5hbWUpOwogIH0KCQogIGZ1bmN0aW9uIHByZWxvYWRDYXRlZ29yeURhdGEoJGlkcykKICB7CglpZiggIWlzX2FycmF5KCRpZHMpICYmIGlzX251bWVyaWMoJGlkcykgKSAkaWRzID0gYXJyYXkoJGlkcyk7CgoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSR0bXAgPSBhcnJheSgpOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGlkcyk7ICRpKysgKSB7CgkgICRuID0gKGludCkkaWRzWyRpXTsKCSAgaWYoICRuIDwgMCApIGNvbnRpbnVlOwoJICBpZiggaXNfYXJyYXkoJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkKSAmJiBpc3NldCgkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWRbJG5dKSApIGNvbnRpbnVlOyAKCSAgJHRtcFtdID0gJG47Cgl9CglpZiggIWlzX2FycmF5KCR0bXApIHx8ICFjb3VudCgkdG1wKSApIHJldHVybjsKCXNvcnQoJHRtcCk7IC8vIGRlYnVnLi4uIGJ1dCBuaWNlLgoJJGlkbGlzdCA9IGFycmF5X3VuaXF1ZSgkdG1wKTsKCgkvLyBpbml0aWFsaXplIHRoZSBzdHVmZiB3ZSBkb24ndCBoYXZlIHRvIGVtcHR5LgoJaWYoICFpc19hcnJheSgkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWQpICkgJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkID0gYXJyYXkoKTsKCSRjYXRlZ29yaWVzID0gJHRoaXMtPkdldENhdGVnb3JpZXMoVFJVRSk7Cglmb3JlYWNoKCAkaWRsaXN0IGFzICRjb21waWQgKSB7CgkgIGlmKCBpc3NldCgkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWRbJGNvbXBpZF0pICkgY29udGludWU7CgoJICAkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWRbJGNvbXBpZF0gPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkb25lY2F0ICkgewoJCSRvYmogPSBjbG9uZSAkb25lY2F0OwoJCSRvYmotPnZhbHVlID0gZmFsc2U7CgkJJG9iai0+ZXh0cmExID0gbnVsbDsKCQkkb2JqLT5leHRyYTIgPSBudWxsOwoJCSRvYmotPmV4dHJhMyA9IG51bGw7CgkJJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkWyRjb21waWRdWyRvYmotPmlkXSA9ICRvYmo7CgkgIH0KCX0KCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIEMgd2hlcmUgQy5jb21wYW55X2lkIElOICgnLmltcGxvZGUoJywnLCRpZGxpc3QpLicpIE9SREVSIEJZIEMuY29tcGFueV9pZCc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CglpZiggISRkYnIgKSByZXR1cm47CgoJd2hpbGUoICEkZGJyLT5FT0YgKSB7CgkgICRjb21waWQgPSAkZGJyLT5maWVsZHNbJ2NvbXBhbnlfaWQnXTsKCSAgJGNhdGlkID0gJGRici0+ZmllbGRzWydjYXRlZ29yeV9pZCddOwoJICBpZiggIWlzc2V0KCRjYXRlZ29yaWVzWyRjYXRpZF0pICkgewoJCSRkYnItPk1vdmVOZXh0KCk7CgkJY29udGludWU7CgkgIH0KCgkgICRvYmogPSYgJHRoaXMtPl9jYXRlZ29yeV9wcmVsb2FkWyRjb21waWRdWyRjYXRpZF07CgkgICRvYmotPnZhbHVlID0gdHJ1ZTsKCSAgJG9iai0+ZXh0cmExID0gJGRici0+ZmllbGRzWydleHRyYTEnXTsKCSAgJG9iai0+ZXh0cmEyID0gJGRici0+ZmllbGRzWydleHRyYTInXTsKCSAgJG9iai0+ZXh0cmEzID0gJGRici0+ZmllbGRzWydleHRyYTMnXTsKCSAgaWYoICRvYmotPmltYWdlICkgewoJCSRwYXRoID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2NhdCcuJGNhdGlkKTsKCQlpZiggZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkcGF0aCwkb2JqLT5pbWFnZSkpICkgewoJCSAgJG9iai0+aW1hZ2VfdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvY2F0eyRjYXRpZH0vIi4kb2JqLT5pbWFnZTsKCQl9CgkJaWYoIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJHBhdGgsJ3RodW1iXycuJG9iai0+aW1hZ2UpKSApIHsKCQkgICRvYmotPnRodW1iX3VybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9jb21wYW55ZGlyZWN0b3J5L2NhdHskY2F0aWR9L3RodW1iXyIuJG9iai0+aW1hZ2U7CgkJfQoJICB9CgkgICRkYnItPk1vdmVOZXh0KCk7Cgl9CiAgfQoKICBmdW5jdGlvbiBHZXRDYXRlZ29yaWVzRm9yQ29tcGFueSgkaWQpCiAgewoJJHRoaXMtPnByZWxvYWRDYXRlZ29yeURhdGEoJGlkKTsKCWlmKCBpc19hcnJheSgkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWQpICYmIGlzc2V0KCR0aGlzLT5fY2F0ZWdvcnlfcHJlbG9hZFskaWRdKSApIHJldHVybiAkdGhpcy0+X2NhdGVnb3J5X3ByZWxvYWRbJGlkXTsKCglkaWUoJ0ludGVybmFsIEVycm9yOiBHZXRDYXRlZ29yaWVzRm9yQ29tcGFueSB3YXMgbm90IHByZWxvYWRlZCcpOwogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkRGVmc0ZvckNvbXBhbnkoJGlkLCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlKQogIHsKCXJldHVybiBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmc19mb3JfY29tcGFueSgkaWQsJGFkbWluLCRwdWJsaWMpOwogIH0KCQogIGZ1bmN0aW9uIFNlYXJjaFJlc3VsdFdpdGhQYXJhbXMoJHJldHVybmlkLCAkY29tcGFueWlkLCAkYXR0ciA9ICcnLCAkcGFyYW1zID0gYXJyYXkoKSkKICB7CgkkZ0NtcyA9IGNtc21zKCk7CgkkcmVzdWx0ID0gYXJyYXkoKTsKCglpZiAoJGF0dHIgIT0gJ2NvbXBhbnknKSByZXR1cm4gJHJlc3VsdDsKCgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRxID0gIlNFTEVDVCBjb21wYW55X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGNvbXBhbnlpZCApICk7CglpZiAoJGRicmVzdWx0KSB7CgkgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgoJICAkZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywtMSk7CgkgIGlmKCAkZGV0YWlscGFnZSA+IDEgKSAkcmV0dXJuaWQgPSAkZGV0YWlscGFnZTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSB7CgkJJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKHRyaW0oJHBhcmFtc1snZGV0YWlscGFnZSddKSk7CgkJaWYoICR0bXAgPiAwICkgJHJldHVybmlkID0gJHRtcDsKCSAgfQoKCSAgLy8wIHBvc2l0aW9uIGlzIHRoZSBwcmVmaXggZGlzcGxheWVkIGluIHRoZSBsaXN0IHJlc3VsdHMuCgkgICRyZXN1bHRbMF0gPSAkdGhpcy0+R2V0RnJpZW5kbHlOYW1lKCk7CgoJICAvLzEgcG9zaXRpb24gaXMgdGhlIHRpdGxlCgkgICRyZXN1bHRbMV0gPSAkcm93Wydjb21wYW55X25hbWUnXTsKCgkgIC8vMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSB0aXRsZS4KCSAgJHVybCA9ICJjb21wYW5pZXMvJGNvbXBhbnlpZC8kcmV0dXJuaWQvIi5tdW5nZV9zdHJpbmdfdG9fdXJsKCRyb3dbJ2NvbXBhbnlfbmFtZSddKTsKCSAgCgkgIGlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSApICR1cmwgLj0gJy9kLCcudHJpbSgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKTsKCgkgICRyZXN1bHRbMl0gPSAkdGhpcy0+Q3JlYXRlVVJMKCdjbnRudDAxJywnZGV0YWlscycsJHJldHVybmlkLGFycmF5KCdjb21wYW55aWQnPT4kY29tcGFueWlkKSxmYWxzZSwKCQkJCQkJCQkJJHVybCk7Cgl9CgoJcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBTZWFyY2hSZWluZGV4KCYkbW9kdWxlKQogIHsKCSRkYiA9ICR0aGlzLT5HZXREYigpOwoKCSRwYXJtcyA9IGFycmF5KCdzdGF0dXMnPT4ncHVibGlzaGVkJyk7CgkkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKCRwYXJtcyk7CgljZF9jb21wYW55X3F1ZXJ5OjpzZXRfcmVzdWx0X21vZGUoY2RfY29tcGFueV9xdWVyeTo6UkVTVUxUU19DRF9DT01QQU5ZKTsKCSRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwoJJGl0ZW1zID0gJHF1ZXJ5LT5nZXRfcmVzdWx0cygpOwoJaWYoIGlzX2FycmF5KCRpdGVtcykgJiYgY291bnQoJGl0ZW1zKSApIHsKCSAgZm9yZWFjaCggJGl0ZW1zIGFzICRvbmVpdGVtICkgewoJCSRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksJG9uZWl0ZW0tPmlkLCdjb21wYW55Jywkb25laXRlbS0+Z2V0X3NlYXJjaF93b3JkcygpKTsKCSAgfQoJfQogIH0KCiAgZnVuY3Rpb24gQ3JlYXRlQ29tcGFueVB1bGxkb3duKCRpZCwkbmFtZSwkc2VsZWN0ZWQgPSAnJykKICB7CgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRxdWVyeSA9ICdTRUxFQ1QgaWQsY29tcGFueV9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBzdGF0dXMgPSBcJ3B1Ymxpc2hlZFwnJzsKCgkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgKTsKCSRjb21wYW5pZXMgPSBhcnJheSgpOwoJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKSApIHsKCSAgJGNvbXBhbmllc1skcm93Wydjb21wYW55X25hbWUnXV0gPSAkcm93WydpZCddOwoJfQoKCSRhZGR0ZXh0ID0gJyc7CglpZihjb3VudCgkY29tcGFuaWVzKSA9PSAwICkgJGFkZHRleHQ9J2Rpc2FibGVkJzsKCSRmbGQgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93biggJGlkLCAkbmFtZSwgJGNvbXBhbmllcywgLTEsICRzZWxlY3RlZCwgJGFkZHRleHQgKTsKCXJldHVybiAkZmxkOwogIH0KCQogIGZ1bmN0aW9uIEdldENvbXBhbnlOYW1lRnJvbUlkKCAkaWQgKQogIHsKCWlmKCAhaXNzZXQoICR0aGlzLT5fY29tcGFueV9uYW1lX2NhY2hlWyRpZF0gKSApIHsKCSAgJGRiID0gJHRoaXMtPkdldERiKCk7CgkgICRxdWVyeSA9ICJTRUxFQ1QgY29tcGFueV9uYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBpZCA9ID8iOwoJICAkbmFtZSA9ICRkYi0+R2V0T25lKCAkcXVlcnksIGFycmF5KCAkaWQgKSApOwoJICBpZighJG5hbWUpIHJldHVybiBGQUxTRTsKCSAgJHRoaXMtPl9jb21wYW55X25hbWVfY2FjaGVbJGlkXSA9ICRuYW1lOwoJfQoKCXJldHVybiAkdGhpcy0+X2NvbXBhbnlfbmFtZV9jYWNoZVskaWRdOwogIH0KCiAgLy8gcmFkaXVzIGluIG1pbGVzLgogIGZ1bmN0aW9uIEdldEJvdW5kaW5nQm94KCRsYXRpdHVkZSwkbG9uZ2l0dWRlLCRyYWRpdXMpIAogIHsKCSRsbmdfbWluID0gJGxvbmdpdHVkZSAtICRyYWRpdXMgLyBhYnMoY29zKGRlZzJyYWQoJGxhdGl0dWRlKSkgKiA2OSk7CgkkbG5nX21heCA9ICRsb25naXR1ZGUgKyAkcmFkaXVzIC8gYWJzKGNvcyhkZWcycmFkKCRsYXRpdHVkZSkpICogNjkpOwoJJGxhdF9taW4gPSAkbGF0aXR1ZGUgLSAoJHJhZGl1cyAvIDY5KTsKCSRsYXRfbWF4ID0gJGxhdGl0dWRlICsgKCRyYWRpdXMgLyA2OSk7CgoJJHRtcCA9IGFycmF5KCRsYXRfbWluLCRsYXRfbWF4LCRsbmdfbWluLCRsbmdfbWF4KTsKCXJldHVybiAkdG1wOwogIH0KCiAgZnVuY3Rpb24gVXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCkKICB7CgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRxdWVyeSA9ICJTRUxFQ1QgaWQsIG5hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfaGllciI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSAiIjsKCSAgJGN1cnJlbnRfbG9uZ19uYW1lID0gIiI7CgkgICRjb250ZW50X2lkID0gJHJvd1snaWQnXTsKCSAgJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvd1snaWQnXTsKCSAgJGNvdW50ID0gMDsKCSAgCgkgIHdoaWxlICgkY3VycmVudF9wYXJlbnRfaWQgPiAtMSkgewoJCSRxdWVyeSA9ICJTRUxFQ1QgaWQsIG5hbWUsIHBhcmVudF9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIFdIRVJFIGlkID0gPyI7CgkJJHJvdzIgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjdXJyZW50X3BhcmVudF9pZCkpOwoJCWlmICgkcm93MikgewoJCSAgJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3RyX3BhZCgkcm93MlsnaWQnXSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpIC4gIi4iIC4gJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uOwoJCSAgJGN1cnJlbnRfbG9uZ19uYW1lID0gJHJvdzJbJ25hbWUnXSAuICcgfCAnIC4gJGN1cnJlbnRfbG9uZ19uYW1lOwoJCSAgJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwoJCSAgJGNvdW50Kys7CgkJfQoJCWVsc2UgewoJCSAgJGN1cnJlbnRfcGFyZW50X2lkID0gMDsKCQl9CgkgIH0KCSAgCgkgIGlmIChzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSA+IDApIHsKCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOwoJICB9CgkgIAoJICBpZiAoc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgPiAwKSAkY3VycmVudF9sb25nX25hbWUgPSBzdWJzdHIoJGN1cnJlbnRfbG9uZ19uYW1lLCAwLCBzdHJsZW4oJGN1cnJlbnRfbG9uZ19uYW1lKSAtIDMpOwoJICAkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIFNFVCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyI7CgkgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiwgJGN1cnJlbnRfbG9uZ19uYW1lLCAkY29udGVudF9pZCkpOwoJfQogIH0KCiAgZnVuY3Rpb24gQ3JlYXRlUGFyZW50RHJvcGRvd24oJGlkLCAkY2F0aWQgPSAtMSwgJHNlbGVjdGVkdmFsdWUgPSAtMSwgJG5hbWUgPSAncGFyZW50JykKICB7CgkkaXRlbXMgPSBjZF91dGlsczo6Z2V0X2hpZXJhcmNoeV9saXN0KCRjYXRpZCk7CglyZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkbmFtZSwgJGl0ZW1zLCAtMSwgJHNlbGVjdGVkdmFsdWUpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wcmV0dHlfdXJsKCRpZCwkYWN0aW9uLCRyZXR1cm5pZD0nJywkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSkKICB7CglnbG9iYWwgJENNU19BRE1JTl9QQUdFOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ25vcHJldHR5J10pICkgcmV0dXJuICcnOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ2p1bmsnXSkgKSB1bnNldCgkcGFyYW1zWydqdW5rJ10pOwoKCSR1cmwgPSAnJzsKCXN3aXRjaCggJGFjdGlvbiApIHsKCWNhc2UgJ2RldGFpbCc6IC8vIHN5bm9ueW0KCWNhc2UgJ2RldGFpbHMnOgoJICAkdGhlX2NvbXBhbnkgPSBudWxsOwoJICBpZiggaXNzZXQoJHBhcmFtc1snY29tcGlkJ10pICkgJHRoZV9jb21wYW55ID0gKGludCkkcGFyYW1zWydjb21waWQnXTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NvbXBhbnlpZCddKSApICR0aGVfY29tcGFueSA9IChpbnQpJHBhcmFtc1snY29tcGFueWlkJ107CgkgIGlmKCAhJHRoZV9jb21wYW55ICkgcmV0dXJuOwoKCSAgLy8gZ2V0IHJhdyBkYXRhYmFzZSBkYXRhIG91dCBvZiBjYWNoZSwgaWYgd2UgY2Fubm90IGZpbmQgdGhpcyBkYXRhIGluIHRoZSBjYWNoZSwgd2UgY2Fubm90IGJ1aWxkIGEgcHJldHR5IHVybC4KCSAgaWYoICFjZ2VfdG1wZGF0YTo6ZXhpc3RzKCdjb21wYW55ZGlyXycuJHRoZV9jb21wYW55KSApIHJldHVybjsKCSAgJHJlYyA9IGNnZV90bXBkYXRhOjpnZXQoJ2NvbXBhbnlkaXJfJy4kdGhlX2NvbXBhbnkpOwoJICBpZiggaXNfYXJyYXkoJHJlYykgJiYgaXNzZXQoJHJlY1snaWQnXSkgKSAkcmVjID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJlYyk7CgkgIGlmKCAhaXNfb2JqZWN0KCRyZWMpIHx8ICFpc3NldCgkcmVjLT5pZCkgfHwgJHJlYy0+aWQgIT0gJHRoZV9jb21wYW55ICkgcmV0dXJuOwoKCSAgaWYoIGlzc2V0KCRyZWMtPnVybCkgJiYgJHJlYy0+dXJsICE9ICcnICkgewoJCS8vIHdvb3QsIHdlIGhhdmUgYSB1cmwuCgkJJHVybCA9ICRyZWMtPnVybDsKCSAgfQoJICBlbHNlIHsKCQkvLyBvbGQgdWdsaWVyIHVybHMKCQkkdXJsID0gImNvbXBhbmllcy97JHJlYy0+aWR9LyRyZXR1cm5pZC8iLm11bmdlX3N0cmluZ190b191cmwoJHJlYy0+Y29tcGFueV9uYW1lKTsKCQlpZiggaXNzZXQoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkgKSAkdXJsIC49ICcvZCwnLiRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CgkgIH0KCSAgYnJlYWs7CgoJZGVmYXVsdDoKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgJiYgIWlzc2V0KCRwYXJhbXNbJ3JhZGl1cyddKSAmJiAhaXNzZXQoJHBhcmFtc1snaGllciddKSApIHsKCQkkdXJsID0gImNvbXBhbmllcy9ieWNhdGVnb3J5LyIuKGludCkkcGFyYW1zWydjYXRlZ29yeWlkJ10uIi97JHJldHVybmlkfSI7CgkJJGNhdHMgPSBjZF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CgkJaWYoIGlzc2V0KCRjYXRzWyhpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddXSkgKSAkdXJsIC49ICcvJy4kY2F0c1soaW50KSRwYXJhbXNbJ2NhdGVnb3J5aWQnXV0tPm5hbWU7CgkgIH0KCSAgYnJlYWs7Cgl9CgoJcmV0dXJuICR1cmw7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4=]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LnBhZ2VvcHRpb25zIHsgCiAgaGVpZ2h0OiBpbmhlcml0OwogIGxpbmUtaGVpZ2h0OiBpbmhlcml0Owp9Ci5yb3cxIHsKICBiYWNrZ3JvdW5kOiAjZjJmMmYyOwp9Ci5yb3cyIHsKICBiYWNrZ3JvdW5kOiAjZmFmYWZhOwp9Ci5yb3cxaG92ZXIsIC5yb3cyaG92ZXIsIC5yb3cxOmhvdmVyLCAucm93Mjpob3ZlciB7IAogIGJhY2tncm91bmQ6ICNkZGQ7Cn0KCgpkaXYjaGllcmxpc3QgdWwgeyAKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KZGl2I2hpZXJsaXN0IHVsLm5vaW5kZW50IHsKICBtYXJnaW46IDA7Cn0KZGl2I2hpZXJsaXN0IGRpdi5oaWVybm9kZSB7CiAgaGVpZ2h0OiAzNnB4OwogIGxpbmUtaGVpZ2h0OiAzNnB4OwogIGZvbnQtc2l6ZTogMTJweDsKICB3aWR0aDogMTAwJTsKfQpkaXYjaGllcmxpc3Qgc3BhbiB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KZGl2I2hpZXJsaXN0IGRpdi5oaWVybmFtZSB7CiAgaGVpZ2h0OiBpbmhlcml0OwogIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogIGZsb2F0OiBsZWZ0OwogIHBhZGRpbmctbGVmdDogNXB4OwogIHBhZGRpbmctcmlnaHQ6IDVweDsKfQpkaXYjaGllcmxpc3QgZGl2LmhpZXJpY29uIHsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IHJpZ2h0OwogIG1pbi13aWR0aDogMTZweDsKICBwYWRkaW5nLWxlZnQ6IDVweDsKICBwYWRkaW5nLXJpZ2h0OiA1cHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CmRpdiNoaWVybGlzdCBkaXYuaGllcmljb24gaW1nIHsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9CmRpdiNoaWVybGlzdF9oZWFkZXIgewogIG1hcmdpbi10b3A6IDVweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyMzIzOwogIGNvbG9yOiAjZmE4MDA0OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIHBhZGRpbmctbGVmdDogNXB4OwogIHBhZGRpbmctcmlnaHQ6IDVweDsKICBoZWlnaHQ6IDQ1cHg7CiAgbGluZS1oZWlnaHQ6IDQ1cHg7CiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7Cn0KZGl2I2hpZXJsaXN0IGEgeyAKICBjb2xvcjogIzIzMjMyMzsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KZGl2I2hpZXJsaXN0IGE6aG92ZXIgeyAKICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_companiestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LTIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IG1hbmFnZW1lbnQgb2YgYW5kIHZhcmlvdXMgd2F5cyB0byBkaXNwbGF5CiMgIGNvbXBhbnkgaW5mb3JtYXRpb24gZm9yIHVzZSBpbiBkaXJlY3RvcmllcyBldGMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHVpZCA9IGdldF91c2VyaWQoKTsKJGZpbHRlciA9IGFycmF5KCk7CiRmaWx0ZXJbJ25hbWUnXSA9ICcnOwokZmlsdGVyWydhZGRyZXNzJ10gPSAnJzsKJGZpbHRlclsncGFnZWxpbWl0J10gPSA1MDsKJGZpbHRlclsncGFnZSddID0gMTsKJGZpbHRlclsnc29ydGJ5J10gPSAnY29tcGFueV9uYW1lJzsKJGZpbHRlclsnc29ydG9yZGVyJ10gPSAnYXNjJzsKJGZpbHRlclsnc3RhdHVzJ10gPSAtMTsKJGZpbHRlclsnaGllciddID0gJyc7CiRmaWx0ZXJbJ2NhdGVnb3J5aWQnXSA9IC0xOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9zdWJtaXQnXSkgKSB7CiAgJGZpbHRlclsnbmFtZSddID0gdHJpbSgkcGFyYW1zWydmaWx0ZXJfbmFtZSddKTsKICAkZmlsdGVyWydhZGRyZXNzJ10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9hZGRyZXNzJ10pOwogICRmaWx0ZXJbJ3BhZ2VsaW1pdCddID0gKGludCkkcGFyYW1zWydmaWx0ZXJfcGFnZWxpbWl0J107CiAgJGZpbHRlclsnc29ydGJ5J10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9zb3J0YnknXSk7CiAgJGZpbHRlclsnc29ydG9yZGVyJ10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9zb3J0b3JkZXInXSk7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9jYXRlZ29yeWlkJ10pICkgewoJJGZpbHRlclsnY2F0ZWdvcnlpZCddID0gKGludCkkcGFyYW1zWydmaWx0ZXJfY2F0ZWdvcnlpZCddOwogIH0KICAkZmlsdGVyWydzdGF0dXMnXSA9IHRyaW0oJHBhcmFtc1snZmlsdGVyX3N0YXR1cyddKTsKICAkZmlsdGVyWydoaWVyJ10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9oaWVyYXJjaHknXSk7CiAgJHBhZ2UgPSAkZmlsdGVyWydwYWdlJ107CiAgdW5zZXQoJGZpbHRlclsncGFnZSddKTsKICBpZiggJGZpbHRlclsnbmFtZSddICE9ICcnIHx8ICRmaWx0ZXJbJ2FkZHJlc3MnXSAhPSAnJyB8fCAKCSAgJGZpbHRlclsnY2F0ZWdvcnlpZCddID4gMCB8fCAkZmlsdGVyWydoaWVyJ10gPiAwICkgewoJJGZpbHRlclsnYXBwbGllZCddID0gMTsKICB9CiAgZWxzZSB7Cgl1bnNldCgkZmlsdGVyWydhcHBsaWVkJ10pOwogIH0KICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdjb21wYW55ZF9maWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7CiAgJGZpbHRlclsncGFnZSddID0gJHBhZ2U7Cn0KZWxzZWlmKCBpc3NldCgkcGFyYW1zWydmaWx0ZXJfcmVzZXQnXSkgKSB7CiAgdW5zZXQoJGZpbHRlclsnYXBwbGllZCddKTsKICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdjb21wYW55ZF9maWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7Cn0KZWxzZSB7CiAgLy8gZ2V0IGl0IGZyb20gdGhlIHByZWZlcmVuY2UuCiAgJHRtcCA9IGdldF9wcmVmZXJlbmNlKCR1aWQsJ2NvbXBhbnlkX2ZpbHRlcicpOwogIGlmKCAkdG1wICkgewoJJGZpbHRlciA9IHVuc2VyaWFsaXplKCR0bXApOwogIH0KICBpZiggaXNzZXQoJHBhcmFtc1sncGFnZSddKSApIHsKCSRmaWx0ZXJbJ3BhZ2UnXSA9IChpbnQpJHBhcmFtc1sncGFnZSddOwogIH0KfQoKJGZpbHRlcl9vYiA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigkZmlsdGVyKTsKJGZpbHRlcl9vYlsnZGVlcCddID0gMDsKJGZpbHRlcl9vYlsnZXhwaXJlZG93bmVycyddID0gMTsKJHF1ZXJ5ID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcl9vYik7CiRwYWdpbmF0aW9uID0gJHF1ZXJ5LT5nZXRfcGFnaW5hdGlvbigpOwokcGFnaW5hdGlvbi0+c2V0X2FjdGlvbignZGVmYXVsdGFkbWluJyk7CgokZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiRlbnRyeWFycmF5ID0gJHF1ZXJ5LT5nZXRfcmVzdWx0cygkaWQsJHJldHVybmlkKTsKaWYoIGlzX2FycmF5KCRlbnRyeWFycmF5KSAmJiBjb3VudCgkZW50cnlhcnJheSkgKSB7CiAgJGtleXMgPSBhcnJheV9rZXlzKCRlbnRyeWFycmF5KTsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgka2V5cyk7ICRpKysgKSB7Cgkkcm93ID0mICRlbnRyeWFycmF5WyRrZXlzWyRpXV07Cgkkcm93LT5wbGFpbl9jb21wYW55X25hbWUgPSAkcm93LT5jb21wYW55X25hbWU7Cgkkcm93LT5jb21wYW55X25hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0Y29tcGFueScsICRyZXR1cm5pZCwgJHJvdy0+cGxhaW5fY29tcGFueV9uYW1lLCBhcnJheSgnY29tcGlkJz0+JHJvdy0+aWQpKTsKCWlmKCBpc19vYmplY3QoJGZldSkgJiYgJHJvdy0+b3duZXJfaWQgPiAwICkgewoJICAkcm93LT5vd25lciA9ICRmZXUtPkdldFVzZXJOYW1lKCRyb3ctPm93bmVyX2lkKTsKCX0KCSRyb3ctPmNvcHlsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdjb3B5Y29tcGFueScsJHJldHVybmlkLCRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vY29weS5naWYnLCR0aGlzLT5MYW5nKCdjb3B5JyksJycsJycsJ3N5c3RlbWljb24nKSxhcnJheSgnY29tcGlkJz0+JHJvdy0+aWQpKTsKCSRyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGNvbXBhbnknLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdjb21waWQnPT4kcm93LT5pZCkpOwoJCQoJJHJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZWNvbXBhbnknLCAkcmV0dXJuaWQsIAoJCQkJCQkJCQkJICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCAKCQkJCQkJCQkJCSBhcnJheSgnY29tcGlkJz0+JHJvdy0+aWQpLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKICB9Cn0KCgokc21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpdGVtcycsICRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjb21wYW55JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygnYWRkY29tcGFueScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsICcnKSAuJyAnLiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjb21wYW55JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkY29tcGFueScpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKaWYoIGNvdW50KCRlbnRyeWFycmF5KSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2V4cG9ydGNzdicsICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdleHBvcnRjc3YnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnZXhwb3J0Y3N2JyksJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRjc3YnLCAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2ltcG9ydGNzdicpLCdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZicsYXJyYXkoKSwnJywnJyxmYWxzZSkpOwokc21hcnR5LT5hc3NpZ24oJ2ltcG9ydGttbCcsICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdpbXBvcnRrbWwnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnaW1wb3J0a21sJyksJ2ljb25zL3N5c3RlbS9pbXBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbignY29tcGFueXRleHQnLCAkdGhpcy0+TGFuZygnY29tcGFueScpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWJzaXRldGV4dCcsICR0aGlzLT5MYW5nKCd3ZWJzaXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2ZpbHRlcl9mb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHRhZG1pbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignYnVsa19mb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2J1bGsnKSk7CiRzbWFydHktPmFzc2lnbignYnVsa19mb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXInLCRmaWx0ZXIpOwoKJHNvcnRieSA9IGFycmF5KCk7CiRzb3J0YnlbJ2lkJ10gPSAkdGhpcy0+TGFuZygnaWQnKTsKJHNvcnRieVsnY29tcGFueV9uYW1lJ10gPSAkdGhpcy0+TGFuZygnY29tcGFueW5hbWUnKTsKJHNvcnRieVsncGhvbmUnXSA9ICR0aGlzLT5MYW5nKCd0ZWxlcGhvbmUnKTsKJHNvcnRieVsnZmF4J10gPSAkdGhpcy0+TGFuZygnZmF4Jyk7CiRzb3J0YnlbJ2VtYWlsJ10gPSAkdGhpcy0+TGFuZygnY29udGFjdGVtYWlsJyk7CiRzb3J0YnlbJ3dlYnNpdGUnXSA9ICR0aGlzLT5MYW5nKCd3ZWJzaXRlJyk7CiRzb3J0YnlbJ2FkZHJlc3MnXSA9ICR0aGlzLT5MYW5nKCdhZGRyZXNzJyk7CiRzb3J0YnlbJ2NyZWF0ZWQnXSA9ICR0aGlzLT5MYW5nKCdjcmVhdGVkZGF0ZScpOwokc29ydGJ5Wydtb2RpZmllZCddID0gJHRoaXMtPkxhbmcoJ21vZGlmaWVkZGF0ZScpOwokc21hcnR5LT5hc3NpZ24oJ3NvcnRpbmdzJywkc29ydGJ5KTsKJHNvcnRvcmRlcnMgPSBhcnJheSgpOwokc29ydG9yZGVyc1snYXNjJ10gPSAkdGhpcy0+TGFuZygnYXNjZW5kaW5nJyk7CiRzb3J0b3JkZXJzWydkZXNjJ10gPSAkdGhpcy0+TGFuZygnZGVzY2VuZGluZycpOwokc21hcnR5LT5hc3NpZ24oJ3NvcnRvcmRlcnMnLCRzb3J0b3JkZXJzKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlbGltaXRzJyxhcnJheSg1PT41LDI1PT4yNSw1MD0+NTAsMTAwPT4xMDAsMjUwPT4yNTAsMTAwMD0+MTAwMCkpOwokc3RhdHVzZXMgPSBhcnJheSgpOwokc3RhdHVzZXNbJy0xJ10gPSAkdGhpcy0+TGFuZygnYW55Jyk7CiRzdGF0dXNlc1snZHJhZnQnXSA9ICR0aGlzLT5MYW5nKCdkcmFmdCcpOwokc3RhdHVzZXNbJ3B1Ymxpc2hlZCddID0gJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpOwokc3RhdHVzZXNbJ2Rpc2FibGVkJ10gPSAkdGhpcy0+TGFuZygnZGlzYWJsZWQnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXNlcycsJHN0YXR1c2VzKTsKewogICR0bXAgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwogIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCSRjYXRzID0gYXJyYXkoKTsKCSRjYXRzWy0xXSA9ICR0aGlzLT5MYW5nKCdhbnknKTsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJICAkcm93ID0mICR0bXBbJGldOwoJICAkY2F0c1skcm93LT5pZF0gPSAkcm93LT5uYW1lOwoJfQoJJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywkY2F0cyk7CiAgfQp9CgppZiggJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCkgPiAxICkgewogICRzbWFydHktPmFzc2lnbignbmF2JywkcGFnaW5hdGlvbik7Cn0KCgojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2NvbXBhbnlsaXN0LnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_email_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlX2VtYWlsX3RlbXBsYXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VtYWlsX3N1YmplY3QnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWFpbF90ZW1wbGF0ZScsJHRoaXMtPkdldFRlbXBsYXRlKCdhZG1pbl9mZWVkaXRfZW1haWxfdGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbignZW1haWxfaXNodG1sJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX2lzaHRtbCcpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZW1haWxfdGVtcGxhdGVfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCQokbWF4ID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBtYXgoaXRlbV9vcmRlcikgYXMgbWF4X2l0ZW1fb3JkZXIgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIik7CgkKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyIjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkKJHJvd2NsYXNzID0gJ3JvdzEnOwoJCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkJCiAgICAkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CiAgICAkb25lcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCAkcm93WyduYW1lJ10sIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSkpOwogICAgJG9uZXJvdy0+dHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAgICRvbmVyb3ctPm1heF9sZW5ndGggPSAkcm93WydtYXhfbGVuZ3RoJ107CiAgICAkb25lcm93LT5pdGVtX29yZGVyID0gJHJvd1snaXRlbV9vcmRlciddOwoJCQogICAgaWYgKCRvbmVyb3ctPml0ZW1fb3JkZXIgPiAwKQogICAgICB7Cgkkb25lcm93LT51cGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtb3ZlZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCAkdGhpcy0+TGFuZygndXAnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10sICdkaXInPT4ndXAnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG9uZXJvdy0+dXBsaW5rID0gJyc7CiAgICAgIH0KICAgIGlmICgkbWF4ID4gJG9uZXJvdy0+aXRlbV9vcmRlcikKICAgICAgewoJJG9uZXJvdy0+ZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtb3ZlZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCAkdGhpcy0+TGFuZygnZG93bicpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSwgJ2Rpcic9Pidkb3duJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRvbmVyb3ctPmRvd25saW5rID0gJyc7CiAgICAgIH0KCQogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSkpOwoKICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVmaWVsZGRlZicsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwoJCQogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoKJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCQokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkZmllbGRkZWYnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgkKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZGRlZnRleHQnLCAkdGhpcy0+TGFuZygnZmllbGRkZWYnKSk7CiRzbWFydHktPmFzc2lnbigndHlwZXRleHQnLCAkdGhpcy0+TGFuZygndHlwZScpKTsKCQojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ZpZWxkZGVmbGlzdC50cGwnKTsKCQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKZ2xvYmFsICRnQ21zOwokY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKJHNvcnRvcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdhc2MnKTsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdjb21wYW55X25hbWUnKTsKCiRzbWFydHktPmFzc2lnbigndXNlX29sZHNlYXJjaCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9vbGRzZWFyY2gnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlcHJlZnMnLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kX2VkaXRvcjInLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lZGl0b3IyJywwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWxwYWdlJywkdGhpcy0+TGFuZygncHJvbXB0X2RldGFpbHBhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZGV0YWlscGFnZScsCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpLCRpZC4nZGV0YWlscGFnZScpKTsKCiRzb3J0b3JkZXJzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2FzY2VuZGluZycpPT4nYXNjJywkdGhpcy0+TGFuZygnZGVzY2VuZGluZycpPT4nZGVzYycpOwokc21hcnR5LT5hc3NpZ24oJ3NvcnRvcmRlcnMnLGFycmF5X2ZsaXAoJHNvcnRvcmRlcnMpKTsKJHNtYXJ0eS0+YXNzaWduKCdzb3J0b3JkZXInLCRzb3J0b3JkZXIpOwoKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggaXNfb2JqZWN0KCRmZXUpICkgewogICRzbWFydHktPmFzc2lnbignZnJvbnRlbmRjcmVhdGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9jcmVhdGUnLDEpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kZGVsZXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZGVsZXRlJywxKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdmcm9udGVuZGNoYW5nZXN0YXR1cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2NoYW5nZXN0YXR1cycsMCkpOwoKICAkbnVtcyA9IGFycmF5KCk7CiAgZm9yKCAkaSA9IDA7ICRpIDwgMTAwOyAkaT0kaSs1ICkgewoJJG51bXNbJGkrMV0gPSAkaSsxOwogIH0KICAkbnVtc1snMjUwJ10gPSAnMjUwJzsKICAkbnVtc1snNTAwJ10gPSAnNTAwJzsKICAkbnVtc1snMTAwMCddID0gJzEwMDAnOwogICRudW1zWycxMDAwMCddID0gJzEwMDAwJzsKICAkc21hcnR5LT5hc3NpZ24oJ251bXMnLCRudW1zKTsKICAkc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kbnVtcmVjb3JkcycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX251bXJlY29yZHMnLDApKTsKICAKICAkc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLCR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnKTsKICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1c2VzJywkc3RhdHVzZXMpOwogICRzbWFydHktPmFzc2lnbignZnJvbnRlbmRuZXdzdGF0dXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9uZXdzdGF0dXMnLCdkcmFmdCcpKTsKfQogICAgCiRzb3J0aW5ncyA9IGFycmF5KCR0aGlzLT5MYW5nKCdjb21wYW55bmFtZScpPT4nY29tcGFueV9uYW1lJywKCQkJCSAgJHRoaXMtPkxhbmcoJ2FkZHJlc3MnKT0+J2FkZHJlc3MnLAoJCQkJICAkdGhpcy0+TGFuZygndGVsZXBob25lJyk9Pid0ZWxlcGhvbmUnLAoJCQkJICAkdGhpcy0+TGFuZygnZmF4Jyk9PidmYXgnLAoJCQkJICAkdGhpcy0+TGFuZygnY29udGFjdGVtYWlsJyk9Pidjb250YWN0X2VtYWlsJywKCQkJCSAgJHRoaXMtPkxhbmcoJ3dlYnNpdGUnKT0+J3dlYnNpdGUnLAoJCQkJICAkdGhpcy0+TGFuZygnY3JlYXRlZGRhdGUnKT0+J2NyZWF0ZV9kYXRlJywKCQkJCSAgJHRoaXMtPkxhbmcoJ21vZGlmaWVkZGF0ZScpPT4nbW9kaWZpZWRfZGF0ZScsCgkJCQkgICR0aGlzLT5MYW5nKCdyYW5kb20nKT0+J3JhbmRvbScpOwokcXVlcnkgPSAnU0VMRUNUIG5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIE9SREVSIEJZIG5hbWUgQVNDJzsKJHRtcCA9ICRkYi0+R2V0Q29sKCRxdWVyeSk7CmlmKCBpc19hcnJheSgkdG1wKSApIHsKICBmb3JlYWNoKCR0bXAgYXMgJG9uZSkgewoJJHNvcnRpbmdzWyRvbmVdID0gJ2Y6Jy4kb25lOwogIH0KfQokc21hcnR5LT5hc3NpZ24oJ3NvcnRpbmdzJyxhcnJheV9mbGlwKCRzb3J0aW5ncykpOwokc21hcnR5LT5hc3NpZ24oJ3NvcnRieScsJHNvcnRieSk7Cgokc21hcnR5LT5hc3NpZ24oJ2NvbGxlY3RzdGF0cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NvbGxlY3RzdGF0cycsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kaW1wb3J0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfaW1wb3J0JywwKSk7CiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfc2hvd2V4cGlyZWQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9zaG93ZXhwaXJlZCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kX2VtYWlsb25hZGQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uYWRkJywwKSk7CiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfZW1haWxvbmVkaXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uZWRpdCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzJywxKSk7CiRzbWFydHktPmFzc2lnbigncHJlcGVuZF93ZWJzaXRlX2h0dHAnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcmVwZW5kX3dlYnNpdGVfaHR0cCcsMCkpOwoKJGdyb3Vwb3BzID0gJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOwokYWxsZ3JvdXBzID0gJGdyb3Vwb3BzLT5Mb2FkR3JvdXBzKCk7CiRncm91cGxpc3QgPSBhcnJheSgpOwokZ3JvdXBsaXN0Wy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7CmZvcmVhY2goICRhbGxncm91cHMgYXMgJG9uZWdyb3VwICkgewogICRncm91cGxpc3RbJG9uZWdyb3VwLT5pZF0gPSAkb25lZ3JvdXAtPm5hbWU7Cn0KJHNtYXJ0eS0+YXNzaWduKCdncm91cGxpc3QnLCRncm91cGxpc3QpOwokc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kX2VtYWlsZ3JvdXAnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbGdyb3VwJywtMSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcmVmcy50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_searchestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKZWNobyAnVE9ETyc7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_urlstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl91cmxzdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3VybF9yZXF1aXJlZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3VybF9hdXRvY3JlYXRlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX2F1dG9jcmVhdGUnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCd1cmxfcmVkaXJlY3RvbGQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcmVkaXJlY3RvbGQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCd1cmxfY3JlYXRlb25jb3B5JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX2NyZWF0ZW9uY29weScsMCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl91cmxzdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21wYW5pZXMuICBVc3VhbGx5IHRoaXMgaXMgdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gYW5kIGEgbG9nbywgYnV0IGl0IGlzIGZsZXhpYmlsZSBlbm91Z2ggdG8gYWxsb3cgZm9yIGV4dGVuZGFibGUgZmllbGRzLCBhbmQgZGlzY3JpbWluYXRpbmcgcHVibGljIGZyb20gcHJpdmF0ZSBkYXRhLjwvcD4KPHA+VGhpcyBtb2R1bGUgY291bGQgYmUgdXNlZCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLiBJbmNsdWRpbmcgYSByZWdpb25hbCB0b3VyaXNtIHNpdGUsIGEgc3VwcGxpZXJzIGxpc3QsIG9yIGEgY29udGFjdCBsaXN0LiAgSXQgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgcmUtdXNlZCBmb3IgbWFueSBkaWZmZXJlbnQgcHVycG9zZXMuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+VGhlIGVhc2llc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyBieSBwbGFjaW5nIHRoZSA8Y29kZT57Q29tcGFueURpcmVjdG9yeX08L2NvZGU+IHRhZyBpbnRvIGVpdGhlciB5b3VyIHBhZ2UgdGVtcGxhdGUgb3IgcGFnZSBjb250ZW50LiAgWW91IHdvdWxkIHRoZW4gc3RhcnQgZWRpdGluZyByZWNvcmRzIGluIHRoZSAmcXVvdDtDb21wYW55IERpcmVjdG9yeSZxdW90OyBhZG1pbiBpbnRlcmZhY2UuICBFeHBsb3JlIHRoZSB2YXJpb3VzIHBhcmFtZXRlcnMgKGRlc2NyaWJlZCBiZWxvdykgZm9yIHdheXMgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPkN1c3RvbSBGaWVsZHMKICAgIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCB0aGUgYmFzaWMgZGF0YWJhc2UgbW9kZWwgYnkgYWRpbmcgY3VzdG9tIGZpZWxkcyB0byB0aGUgc3RydWN0dXJlLiAgVGhlcmUgYXJlIG51bWVyb3VzIGRpZmZlcmVudCB0eXBlcyBvZiBjdXN0b20gZmllbGRzLCBhbmQgc29tZSBtb2R1bGVzIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgdHlwZXMuICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hcmsgY3VzdG9tZiBpZWxkcyBhcyBlZGl0YWJsZSBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlIG9ubHksIG9yIGFzIG5vbiBwdWJsaWMgKG5vdCBhdmFpbGFibGUgZm9yIGZyb250ZW5kIGRpc3BsYXkpLjwvcD4KICA8L2xpPgogIDxsaT5HZW9sb2NhdGlvbmcKICAgIDxwPklmIGEgc3VpdGFibGUgbW9kdWxlIDxlbT4oQ0dHb29nbGVNYXBzIG9yIENHR29vZ2xlTWFwczIpIGlzIGluc3RhbGxlZCwgdGhlbiB0aGlzIG1vZHVsZSBpcyBjYXBhYmxlIG9mIGNvbnZlcnRpbmcgbWFueSBhZGRyZXNzIGZvcm1hdHMgdG8gbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBzbyB0aGF0IG1hcHMgY2FuIGJlIGJ1aWx0IGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgZGF0YS48L3A+CiAgPGxpPgogIDxsaT5LTUwgSW1wb3J0CiAgICA8cD5UaGlzIG1vZHVsZSBjYW4gaW1wb3J0IGJhc2ljIGNvbXBhbnkgZGF0YSBmcm9tIEtNTCBmb3JtYXQuPC9wPgogIDwvbGk+CiAgPGxpPkZsZXhpYmxlIEFTQ0lJIEltcG9ydCBhbmQgRXhwb3J0CiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBpbXBvcnQgY29tcGFuaWVzLCBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGNhdGVnb3JpZXMgZnJvbSBhIGZsZXhpYmxlIChzZW1pLXVzZXItZGVmaW5hYmxlKSBBU0NJSSBmb3JtYXQuPC9wPgogIDwvbGk+CiAgPGxpPkZsZXhpYmxlIENhdGVnb3JpemF0aW9uCiAgICA8cD5UaGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGNhbiBjcmVhdGUgYSBoaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmUuICBFYWNoIENvbXBhbnkgcmVjb3JkIGNhbiBiZSBhc3NvY2lhdGVkIHRvIGEgcGxhY2UgaW5zaWRlIHRoYXQgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlIHRvIGFsbG93IGZvciBmaWx0ZXJpbmcsIG9yIGRyaWxsIGRvd24gc2VhcmNlcy48L3A+CiAgICA8cD5BZGRpdGlvbmFsbHksIHRoZSBzaXRlIGFkbWluaXN0cmF0b3IgY2FuIGNyZWF0ZSBhIGxpc3Qgb2YgJnF1b3Q7Y2F0ZWdvcmllcyZxdW90Oy4gIEVhY2ggY29tcGFueSBsb2NhdGlvbiBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRpcGxlIGNhdGVnb3JpZXMuICBUaGlzIGlzIHVzZWZ1bCBmb3Igc2VhcmNoaW5nIGFuZCBmaWx0ZXJpbmcgZnVuY3Rpb25hbGl0eS4gIEZvciBkaXNwbGF5IHB1cnBvc2VzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGNhdGVnb3J5ICh0aHJlZSB1c2VyIGRlZmluZWQgYXJlYXMpLiAgQW5kIHdoZW4gZWRpdGluZyBhIGNvbXBhbnkgcmVjb3JkLCBjYXRlZ29yeSBpbmZvcm1hdGlvbiBjYW4gYmUgb3ZlcnJpZGVuIGZvciBlYWNoIHJlY29yZC48L3A+CiAgPC9saT4KICA8bGk+RmxleGlibGUgVVJMIG1lY2hhbmlzbXM8L2xpPgogICAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGZvciB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIHRvIHNwZWNpZnkgYSB1bmlxdWUgU0VPIGZyaWVuZGx5IFVSTCBmb3IgdGhlIGRldGFpbCB2aWV3IG9mIGVhY2ggY29tcGFueSByZWNvcmQuICBUaGlzIFVSTCB3b3JrcyBpbiBhZGRpdGlvbiB0byB0aGUgb3RoZXIgU0VPIGZyaWVuZGx5IG1lY2hhbmlzbXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgYSBjb21wYW55IGRldGFpbCByZWNvcmQuPC9wPgogICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBXaGVuIHVzaW5nIFNFTyBmcmllbmRseSBVUkxTIGl0IGlzIGltcG9ydGFudCB0byB1c2UgY2Fub25pY2FsIFVSTFMuPC9wPgogIDxsaT5Gcm9udGVuZCBFZGl0aW5nCiAgICA8cD5UaGUgQ29tcGFueURpcmVjdG9yeSBtb2R1bGUgaXMgY2FwYWJsZSBvZiBhbGxvd2luZyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIDxlbT4oc2VlIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSk8L2VtPiB0byBhZGQgYW5kIG1hbmFnZSAoZXZlbiBpbXBvcnQgZnJvbSBDU1YpIENvbXBhbnkgcmVjb3Jkcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBidWlsZGluZyBhIGRpcmVjdG9yeSBzaXRlLCBmb3IgZXhhbXBsZSBmb3IgYSByZWdpb25hbCB0b3VyaXNtIGJvYXJkIHdoZXJlIGluZGl2aWR1YWwgc3Vic2NyaWJlcnMgbWF5IG1hbmFnZSB0aGUgdmlzaWJsZSBwdWJsaWMgaW5mb3JtYXRpb24gZm9yIG9uZSBvciBtb3JlIGNvbXBhbmllcy48L3A+CiAgPC9saT4KICA8bGk+TnVtZXJvdXMgZGlzcGxheSBtZWNoYW5pc21zPC9saT4KICA8bGk+QWR2YW5jZWQgU2VhcmNoIGFuZCBGaWx0ZXJpbmcgQ2FwYWJpbGl0aWVzPC9saT4KICA8bGk+RmxleGlibGUgVGVtcGxhdGluZyBDYXBhYmlsaXRpZXM8L2xpPgo8L3VsPgoKCjxoMz5TbWFydHkgVGFnczwvaDM+CjxwPlRoaXMgbW9kdWxlIHNoYXJlcyBudW1lcm91cyBzbWFydHkgcGx1Z2lucyB0byBtYWtlIHRlbXBsYXRlIGRlc2lnbiBhbmQgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgc2ltcGxlcjo8L3A+Cjx1bD4KPGxpPjxzdHJvbmc+e2NkX2hpZXJicmVhZGNydW1iIGhpZXI9aW50IFtvcHRpb25zXX08L3N0cm9uZz4gLSBDcmVhdGUgYSBzZXJpZXMgb2YgbGlua3MgcmVwcmVzZW50aW5nIHRoZSBicmVhZGNydW1iIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQuICBFYWNoIGxpbmsgd2lsbCBnZW5lcmF0ZSBhIHN1bW1hcnkgdmlldyBvZiBjb21wYW5pZXMgaW4gdGhhdCBoaWVyYXJjaHkuPGJyLz5PcHRpb25zOgogIDx1bD4KICAgIDxsaT5oaWVyPWludGVnZXIgLSA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+IC0gVGhlIENvbXBhbnlEaXJlY3RvcnkgaGllcmFyY2h5IGlkIHRvIGJ1aWxkIGEgYnJlYWRjcnVtYiB0by48L2xpPgogICAgPGxpPnBhZ2U9c3RyaW5nIC0gQSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSBmb3IgdGhlIHN1bW1hcnkgdmlldy4gIElmIG5vbmUgaXMgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBwYWdlIGlzIHVzZWQuPC9saT4KICAgIDxsaT5kZWxpbT1zdHJpbmcgLSBUaGUgZGVsaW1pdGVyIGJldHdlZW4gZWFjaCBzdHJpbmcuICBCeSBkZWZhdWx0IGEgcGlwZSBjaGFyYWN0ZXIgc3Vycm91bmRlZCBieSBzcGFjZXMgaXMgdXNlZC48L2xpPgogICAgPGxpPmNsYXNzPXN0cmluZyAtIEFuIG9wdGlvbmFsIGNsYXNzIChvciBzZXJpZXMgb2YgY2xhc3NlcykgdG8gYXNzaWduIHRvIGVhY2ggbGluay48L2xpPgogICAgPGxpPnJhdz1ib29sZWFuIC0gSWYgZW5hYmxlZCwgYW4gYXJyYXkgb2YgaGllcmFyY2h5IGRhdGEgcmVwcmVzZW50aW5nIHRoZSBwYXRoIHRvIHRoZSBoaWVyYXJjaHkgc3BlY2lmaWVkIHdpbGwgYmUgcmV0dXJuZWQuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGFsbG93IGJ1aWxkaW5nIHlvdXIgb3duIGxpbmtzLiAgSWYgdGhpcyBpcyBzcGVjaWZpZWQsIHRoZSBkZWxpbSBhbmQgY2xhc3MgYXJndW1lbnRzIGFyZSBpZ25vcmVkIGFzIGxpbmtzIHdpbGwgbm90IGJlIHJldHVybmVkLjwvbGk+CiAgICA8bGk+YXNzaWduPXN0cmluZyAtIFRoZSBuYW1lIG9mIGEgc21hcnR5IHZhcmlhYmxlIHRvIGFzc2lnbiB0aGUgb3V0cHV0IHRvLjwvbGk+CiAgPC91bD4KICA8cD5BZGRpdGlvbmFsbHksIHRoaXMgdGFnIGFjY2VwdHMgYW55IHBhcmFtZXRlcnMgdGhhdCB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcgd2lsbCBhY2NlcHQgKGkuZTogc29ydGluZyBvcHRpb25zLCBwYWdlIGxpbWl0KSBhbmQgdGhleSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdXJsIGJ1aWxkaW5nIHByb2Nlc3MuPC9wPgogIDxwPkV4YW1wbGUgPGVtPihzdWl0YWJsZSBmb3IgYSBkZXRhaWwgdGVtcGxhdGUpPC9lbT46IHtjZF9oaWVyYnJlYWRjcnVtYiBoaWVyPSRlbnRyeS0+aGllcl9pZCBoaWVyX2NoaWxkcmVuPTEgcGFnZWxpbWl0PTUwfTwvY29kZT48L3A+CjwvbGk+CjxsaT48c3Ryb25nPntjZF9zZWxjYXRlZ29yeSBbb3B0aW9uc119PC9zdHJvbmc+IC0gQ3JlYXRlIGEgZm9ybSBkcm9wZG93biBvciBtdWx0aS1zZWxlY3QgYXJlYSBmb3IgQ29tcGFueURpcmVjdG9yeSBjYXRlZ29yaWVzLjxici8+T3B0aW9uczoKICA8dWw+CiAgICAgPGxpPnByZWZpeD1zdHJpbmcgLSBQcm92aWRlIGEgcHJlZml4IHRvIHRoZSBzZWxlY3QgZWxlbWVudCBuYW1lLjwvbGk+CiAgICAgPGxpPm5hbWU9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IG5hbWUuPC9saT4KICAgICA8bGk+aWQ9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IGlkLjwvbGk+CiAgICAgPGxpPnNlbGVjdGVkIC0gQW4gYXJyYXksIG9yIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IGlkcyB0byBpbmRpY2F0ZSB3aGljaCBpdGVtcyBzaG91bGQgYmUgc2VsZWN0ZWQuPC9saT4KICAgICA8bGk+Y2xhc3M9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IGNsYXNzLjwvbGk+CiAgICAgPGxpPm11bHRpcGxlPWFueXRoaW5nIC0gSWYgc2V0LCBpbmRpY2F0ZXMgdG8gYWxsb3cgc2VsZWN0aW5nIG11bHRpcGxlIHZhbHVlcyBpbnN0ZWFkIG9mIGEgc2luZ2xlIHZhbHVlLjwvbGk+CiAgICAgPGxpPnNpemU9aW50ZWdlciAtIElmIG11bHRpcGxlIGlzIHNldCBpbmRpY2F0ZXMgdGhlIHNpemUgb2YgdGhlIG11bHRpLXNlbGVjdCBhcmVhLjwvbGk+CiAgICAgPGxpPmFzc2lnbj1zdHJpbmcgLSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZTogPGNvZGU+e2NkX3NlbGNhdGVnb3J5IHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nY2RfY2F0ZWdvcnknIHNlbGVjdGVkPSRjZF9jYXRlZ29yeX08L2NvZGU+PC9wPgo8L2xpPgo8bGk+PHN0cm9uZz57Y2Rfc2VsaGllcmFyY2h5IFtvcHRpb25zXX08L3N0cm9uZz4gLSBQcm92aWRlIGEgZHJvcGRvd24gY29udHJvbCBmb3Igc2VsZWN0aW5nIGEgQ29tcGFueURpcmVjdG9yeSBIaWVyYXJjaHkuPGJyLz5PcHRpb25zOgogIDx1bD4KICAgIDxsaT5wcmVmaXg9c3RyaW5nIC0gQSBwcmVmaXggZm9yIHRoZSBzZWxlY3QgZWxlbWVudHMgbmFtZS48L2xpPgogICAgPGxpPmlkPXN0cmluZyAtIFRoZSBzZWxlY3QgZWxlbWVudCBpZC48L2xpPgogICAgPGxpPm5hbWU9c3RyaW5nIC0gVGhlIHNlbGVjdCBlbGVtZW50IG5hbWUuPC9saT4KICAgIDxsaT5zZWxlY3RlZD1pbnRlZ2VyIC0gVGhlIHNlbGVjdGVkIGhpZXJhcmNoeSBpZDwvbGk+CiAgICA8bGk+bm9uZT1pbnRlZ2VyIC0gV2V0aGVyICZxdW90O25vbmUmcXVvdDsgaXMgYSB2YWxpZCBvcHRpb24gaW4gdGhlIHNlbGVjdCBlbGVtZW50LjwvbGk+CiAgICA8bGk+YXNzaWduPXN0cmluZyAtIEFzc2lnbiB0aGUgZ2VuZXJhdGVkIFhIVE1MIG91dHB1dCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLjwvbGk+CiAgPC91bD4KICA8cD5FeGFtcGxlOiA8Y29kZT57Y2Rfc2VsaGllcmFyY2h5IHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nY2RfaGllcmFyY2h5JyBzZWxlY3RlZD0kbXlfaGllcn08L2NvZGU+PC9wPgo8L2xpPgo8bGk+PHN0cm9uZz57Y2RfZ2V0Y29tcGFueSBpZD1pbnRlZ2VyIFthc3NpZ249c3RyaW5nXX08L3N0cm9uZz4gLSBSZXR1cm4gYW4gb2JqZWN0IGZpbGxlZCB3aXRoIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGNvbXBhbnk8YnIvPk9wdGlvbnM6CiAgPHVsPgogIDxsaT48c3Ryb25nPmlkPWludGVnZXI8L3N0cm9uZz4gLSBUaGUgY29tcGFueSBpZCAocmVxdWlyZWQpLjwvbGk+CiAgPGxpPmFzc2lnbj1zdHJpbmcgLSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogIDwvdWw+CiAgPHA+RXhhbXBsZToge2NkX2dldGNvbXBhbnkgaWQ9JGNvbXBhbnlfaWQgYXNzaWduPSd0bXAnfSZsdDtwcmUmZ3Q7eyR0bXB8QHByaW50X3J9Jmx0Oy9wcmUmZ3Q7PC9wPgo8L2xpPgo8L3VsPgoKPGgzPkZpZWxkczwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gZHluYW1pY2FsbHkgZXh0ZW5kIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHN5c3RlbSBieSBhZGRpbmcgZmllbGRzIHRvIGFzc29jaWF0ZSB3aXRoIGVhY2ggZGF0YSByZWNvcmQuICBUaGVzZSBmaWVsZHMgY2FuIGJlIGFkZHJlc3NlZCBpbiB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLiAgVGhlIGZpZWxkcyBjYW4gYmUgZWRpdGVkIGluIHRoZSB2YXJpb3VzIGZvcm1zIGFuZCBzZWFyY2hlZC48L3A+CiAgPHA+VmFyaW91cyBtb2R1bGVzIGNhbiBwcm92aWRlIGRpZmZlcmVudCBmaWVsZCB0eXBlcyB0byB0aGUgQ29tcGFueURpcmVjdG9yeSBtb2R1bGUuICBpLmU6IFdoZW4gdGhlIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIGFuICZxdW90O0FjdGl2aXR5JnF1b3Q7IGZpZWxkIHR5cGUgaXMgYXZhaWxhYmxlLiAgV2hlbiBlaXRoZXIgQ0dHb29nbGVNYXBzIG9yIENHR29vZ2xlTWFwczIgYXJlIGluc3RhbGxlZCwgYW4gJnF1b3Q7aWNvbiZxdW90OyBmaWVsZCB0eXBlIGlzIGF2YWlsYWJsZS4mcXVvdDsKICA8cD5JbiB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHRlbXBsYXRlcyB0aGUgZmllbGRzIHRoYXQgYXJlIHZhbGlkIGZvciBhIGNvbXBhbnkgYXJlIGF2YWlsYWJsZSB2aWEgc21hcnR5IGluIHRoZSB7JGVudHJ5LT5maWVsZHN9IGFzc29jaWF0aXZlIGFycmF5LiAgVGhlIGtleXMgdG8gdGhpcyBhcnJheSBhcmUgdGhlIGZpZWxkIG5hbWVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgb2JqZWN0cyB0aGF0IHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpZWxkLCBpbmNsdWRpbmcgaXRzIHZhbHVlKHMpLjwvcD4KICA8cD5UbyBzZWUgd2hhdCBmaWVsZHMgYXJlIGF2YWlsYWJsZSwgYW5kIHRoZSB2YWx1ZXMgb2YgdGhlIHZhcmlvdXMgb2JqZWN0cyB5b3UgY2FuIGFkZCB0aGlzIHRvIHlvdXIgc21hcnR5IHRlbXBsYXRlOjwvcD4KICA8cHJlPjxjb2RlPiZsdDtwcmUmZ3Q7eyRlbnRyeS0+ZmllbGRzfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvY29kZT48L3ByZT4KICA8cD5UbyBzZWUgdGhlIGRhdGEgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIGZpZWxkIHlvdSBjYW4gYWRkIHRoaXMgPGVtPih0ZW1wb3JhcmlseSk8L2VtPiB0byB5b3VyIHNtYXJ0eSB0ZW1wbGF0ZTo8L3A+CiAgPHByZT48Y29kZT4mbHQ7cHJlJmd0O3skZW50cnktPmZpZWxkczxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+LkZJRUxETkFNRTwvc3Bhbj58QHByaW50X3J9Jmx0Oy9wcmUmZ3Q7PC9jb2RlPjwvcHJlPgogIDxwPlRvIG91dHB1dCB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgZmllbGQgeW91IGNhbiBhZGR0aGlzIHRvIHlvdXIgc21hcnR5IHRlbXBsYXRlOjwvcD4KICA8cHJlPjxjb2RlPiZsdDtwcmUmZ3Q7eyRlbnRyeS0+ZmllbGRzPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4uRklFTEROQU1FPC9zcGFuPi0+dmFsdWUmbHQ7L3ByZSZndDs8L2NvZGU+PC9wcmU+Cgo8aDM+QWxidW1zPC9oMz4KICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBhbGxvd3MgYXNzb2NpYXRpbmcgbXVsdGlwbGUgaW1hZ2VzIHdpdGggYSBzaW5nbGUgY29tcGFueSBlbnRyeS4gIFRoZXkgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIGFzIGEgc2ltcGxlIGFycmF5IG9mIGZpbGVuYW1lcy4gIFlvdSBtYXkgYnVpbGQgeW91ciBvd24gZGlzcGxheSBtZWNoYW5pc20gZnJvbSB0aGlzLjwvcD4KICA8cD5UaGUgYWxidW0gZmllbGQgdHlwZSBkb2VzIG5vdCBwcm92aWRlIGFueSBpbWFnZSBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy4gIEltYWdlIHByb2Nlc3Npbmcgc3VjaCBhcyB3YXRlcm1hcmtpbmcgb3IgdGh1bWJuYWlsaW5nIGNhbiBiZSBkb25lIGF0IHRoZSB0aWVtIG9mIGRpc3BsYXkgd2l0aCBhbiBhZGRvbiBtb2R1bGUgbGlrZSBDR1NtYXJ0SW1hZ2UuPC9wPgo8aDQ+U2FtcGxlIEdhbGxlcnk8L2g0PgogIDxwPlRoZSBjb2RlIGJlbG93IGlsbHVzdHJhdGVzIGhvdyBhIHNpbXBsZSBhbGJ1bSBjYW4gYmUgY3JlYXRlZCBmcm9tIHdpdGhpbiB0aGUgQ29tcGFueURpcmVjdG9yeSBzdW1tYXJ5IG9yIGRldGFpbCB0ZW1wbGF0ZS4gIFRoaXMgZXhhbXBsZSB1c2VzIENHU21hcnRJbWFnZSB0byBzaXplIHRoZSB0aHVtYm5haWxzLCBhbmQgdGFyZ2V0IGltYWdlcywgYW5kIGdpdmVzIGVhY2ggbGluayBhIGNsYXNzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBqYXZhc2NyaXB0IHBvcHVwIHdpbmRvdy48L3A+CjxwcmU+PGNvZGU+CntpZiBpc3NldCg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiRlbnRyeS0+ZmllbGRzLkFsYnVtPC9zcGFuPil9CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPntKUXVlcnlUb29scyBhY3Rpb249cmVxdWlyZSBsaWI9ZmFuY3lib3h9PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPnsqIHNlZSB0aGUgaGVscCBmb3IgdGhlIEpRdWVyeVRvb2xzIG1vZHVsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiAqfTwvc3Bhbj4KICAmbHQ7aDMmZ3Q7R2FsbGVyeSZsdDsvaDMmZ3Q7CiAgJmx0O2RpdiBjbGFzcz0iZ2FsbGVyeSImZ3Q7CiAge2ZvcmVhY2ggZnJvbT08c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiRlbnRyeS0+ZmllbGRzLkFsYnVtLT52YWx1ZTwvc3Bhbj4gaXRlbT0naW1nJ30KJmx0O2EgY2xhc3M9ImZhbmN5Ym94IiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMTBweDsiIGhyZWY9IjxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57Q0dTbWFydEltYWdlIHNyYzE9JGVudHJ5LT5maWVsZHMuQWxidW0tPnBpY3R1cmVfcGF0aCBzcmMyPSRpbWcgd2lkdGg9NTAwIGhlaWdodD01MDAgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiIvJmd0OzxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57Q0dTbWFydEltYWdlIHNyYzE9JGVudHJ5LT5maWVsZHMuQWxidW0tPnBpY3R1cmVfcGF0aCBzcmMyPSRpbWcgd2lkdGg9MTAwIGhlaWdodD0xMDB9PC9zcGFuPiZsdDsvYSZndDsKICB7L2ZvcmVhY2h9CiAgJmx0O2RpdiBzdHlsZT0iY2xlYXI6IGJvdGg7IiZndDsmbHQ7L2RpdiZndDsKICAmbHQ7L2RpdiZndDsKey9pZn0KPC9jb2RlPjwvcHJlPgo8aDM+U2VjdXJpdHk8L2gzPgo8cD5JbiBvcmRlciB0byBtYW5hZ2UgdGhlIGNvbXBhbmllcyBpbnNpZGUgdGhpcyBtb2R1bGUsIHRoZSBhZG1pbmlzdHJhdG9yIG11c3QgaGF2ZSB0aGUgJzxlbT5Nb2RpZnkgQ29tcGFueSBEaXJlY3Rvcnk8L2VtPicgcGVybWlzc2lvbi48L3A+CjxwPkluIG9yZGVyIHRvIGVkaXQgdGhlIGJ1aWx0IGluIHRlbXBsYXRlcyB0aGF0IGNvbnRyb2wgdGhlIGxheW91dCBvZiB0aGUgY29tcGFueWRpcmVjdG9yeSBpbmZvcm1hdGlvbiwgdGhlIGFkbWluaXN0cmF0b3IgbmVlZHMgdGhlICc8ZW0+TW9kaWZ5IFRlbXBsYXRlczwvZW0+JyBwZXJtaXNzaW9uLjwvcD4KPHA+VG8gYWRqdXN0IHRoZSB2YXJpb3VzIHNldHRpbmdzLCB0aGUgJzxlbT5Nb2RpZnkgU2l0ZSBQcmVmZXJlbmNlczwvZW0+JyBwZXJtaXNzaW9uIGlzIHJlcXVpcmVkLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMiwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/false.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANUAAP/U1P7S0v7MzP7Ly/7Dw/7CwvzBwf+9vf68vP25uf63t/23t/y1tfu0tPyzs/+ysvyysvutrf+srP2pqf+oqP+np/2mpv2jo/Sfn/+bm/SdnfyZmfScnPSamvSbm/Obm/Kbm/OZmfaZmfKamvOamvGZmfCZmfKZmeyZmeuZmeqZmeWZmeaZmeGZmeCZmeKZmd+Zmd2ZmdyZmduZmdmZmdiZmdeZmdqZmdaZmdWZmdSZmdOZmc+Zmc2ZmdGZmf///yH5BAEHAD8ALAAAAAAUABQAAAaXwJ9wSCwaj8jkDdlKyg4qIwuAOroei8SM6Ao4KqyiTAIBgRY04UyAAUUoTWJrVCqNFrAVu85xHVt1dgwDGnwxSS+BJR98aUk/MSeKJX6PPzIGig07ljcIHpMTOEk2BB11JCeqJxY8VgUhsSE5NKsnFzJFOgqys0IyqxsZo0SJda5DNSYiKT1HMiY+RjoqzkjSR9iW29xHQQA7]]></data>
	</file>
	<file>
	  <filename>/icons/recycle_sm.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAAEQlJREFUeNrlm3m03EWVxz/33up+S/Z9w2iAHCFEGUVwXJkjmBFGBA94FGZQcAMEQ8RBB8eZg7IJqDCKgiyi7DMQQZaIDowgqxBAjBrZhCSQDAmBJO+9vLzXXXXnj9+v+3V3+r3XL8s4x7nnVFf9fr/6Ld/vvXWr6lY1/D8X2dEPvP0XlxMssGnzxkJX76a2UiyZu6u74+44TvIUPLllx4nKteQJ3JPjJfdESll93MtAb7u1l0upzJeP++7/PQIO//K+AJRjuThxzKSJu07bba+xnePnFkJxLu5viilO9kySeyq6e8Fx3BOpQo4n3D26e19eJq+zJXlam9yXuaf/9JQeRaTvjIU//vMTUAEO7AocBvwN8DqgoKIb2gptL0wbP+OlmRNmzVbVA1NKkxvANRIwUKZiGTXX8A0pxSuTp9NF2PSNL9zw5yOgBvwC4AJgz2bPdPeNqnrvLpNmPzRj/IwFydP+7km9AXhqAO5NjlPWZErufpKpXVqOJb516uJtxhC2i75MZgBfA+YNyrLIOHf/0Mp1L7xl/aZ1P959+tz1Ah9OnmzAEmqsgebga84V3H1hf7nvboHntufjbVtvPPSUfVj7cjedncVFCEeLyLDWJCLj+mP/Wzf0vPbw2I6xryZPu8cUiR6JqUxMkZQiyfN86OOpMcXUV+67a78D5vrS/9o2Hra5CRyy6K2Av0VFbhGV2aKCirT0RMd7xrSPuX76uGnvd/fX1/YEtb1Fra9o8AOVeuvd00dB7k4e6S9HRCg67CKwCihddcavhvyWbWoCB5+4N+X+cruaLnJhtjqIg4ujKsgwRAgyqntL94FdxY6H2gvtM5OnQt7dDTjERlKqhJBfA3ef5PgXY0pLyzF2ichbcE4QYZWpnRE97XgLWHDcfMwUd/+wiFwlKqNFpApctFJmWCJM7bZpYydPdPd3DeX4Bgigxhqq5/rc03nJfQxwJHgR+BBw//VnPzQsnhFbQIyJGNNUVTlFVEarZ6Ddc+Cel0UQJUuDuIeY4pzN/b0XFjTs4Z4m1YGuAoXG81lO5Vyb46e5uzku7iwWkaWt4hkRAfsfswcTpo5i/ZruY9x5pzq4gLoj0kCCCupZWQRUt7KGMnA17leVY+nNCV84AJKtATdYQcNxBccW4Fp335JaMP8RE5Ci8/KqjW8SlePVRSuAszz3Aw4qFZ+Q5aoZoAb/cCdw6ZZSX6lg4bvJ/X3uPr+pth1SXoaMgEHkEeAegJvPe2zHEvCOI3ej1F8umsnJ4jon03wGbFDtNzQJz8kQ4UUROQvY4A69pb5nTfQCx7+f3NtqrWBIuA36AW4AXhuJUrWVSvseMYdsnuILYvKPpJhIKRFjIkUnRSdWUyLFRExZnhryGFM5Rb9w9zdOejgl57qzH8DdiZ7+oxTj7dm4IJEqjrB1LH8EbgdYfO6jLd/UkgXkHz5ZVU5Rl7EuAxpu5vzcc+to7h+WoHrFH5at5bYLHwegt9xP0UI3cD7w18CskWgxl8Vkff+IZFgL2PtDu2AW8JSOTjG9t6rhPN+qnOrPxeikVLWSFSn6GaVSeUMqx+o7bvvmE5Xir4FLYCSKB2A1cBOMTPstEZBiondz7xtjTJ+LKVkFXG2qM/mGc9V6KZVSTBc89/SLSz05d1z0ZPUdNZOqaXlqzYUPyBLg9yO8B2ihCXjWz/SReNDdp7rI2MyUterUqiavWS4150Sq5TtQfrTL66dx58XLGsEbsD/ZpOqdrSimRjYC1wNxpNpviYDfLVnD/INmvJCSf1aE6xA+n9wPEKW9vt1nfmEQ/7DCXc6KZTbWurUcvAIfAU4jiymU8u9qdaJ2H/Bw5WCvg2bg7kFF3ovIJtyXigrL7li9bQQA/O5na5j3t9P7RPXn7v6gIx+UmE4Slf3EJVS6PXepOjwZIKZfVc5/Zc2mpVOmj+e+q59q9op7gd8CY4CxwARgEjCxJk0CxuXXxwKjcpKuATav+tM63vzBWaSYZovqQhE+JSIPq9rHwDcOhm3Ec4F5C6ZRaCsQy3GKiHwU4TgRmSciuvV8QFCVm9T0k+7e9dD1I5uy1vgGycG2AR1Ae05WB/D0a690d69dvaEDOExEThWRvxIVUZV+EfmcJ79CTHj85pXbT0BF9jpoJht7E+M7dbbAMQjHisgb6kgQfV5UDgeeEHEeufGFbX1d82/4wHRiTBKCzReRUxEOV5FOUaUyPReVJ1XlUGDFIzc+v20E1Ggi5KyPze99afXKV33ja72iyp4Cx4vIx0SZIqL9onJKb1fv90aN6+Sxn6zYYcDnLZiOBgX3CYgcLcIiEZnTQP6AJaqc2dFZ/Ne+LSV/8LpntybgsC/tQ3SXgmpBkE4y85oITCULec3K00wGuqp1wFHA84vPfZT5B8/EnSDCviIsFJFeVTnZna4nb3txh4HP32MivEvgNBE5QFQKgzQ/RBUVeUlUDgNfev81z9QTcPRX33Nw9LRfjHFm9DjTYQowOdfyaKDI4N3SV4BzIBuAzNl/KqNHBTyzkoIIm/o29vD0/YP6oNa1ftBMgkJyZgmciPBpFZnSYO4VjdcfZ+VrTPUz7r7lnh/9sfrcAKwWmKOqH/HkHa1EUWrkKOBaYCXA8/eurZzvzdMO0zpQcOcQEf5JRPYRFa2ClFzTg4NHVQ4VkZtwfnrgZ/birsuycZM6/htVPU5FPm6qj5roSBiYBxwBdX5ih4tkaayo/KOq7qumaqqoKdXcBDXBVPJjRavXFFUZYyaLisUw2WzA9ek1Z95PqT9uAW4S0S+Y6qsqLQ/EFPg42zZ5aVlUhWJ7Yb2q3qCm0WqB1eb5ebVM+2oyQExW5z2qclSKzsEn7V0FQEd7kb3f8EaC2gJTmxxUGQEJ84EPw86zgidvf6kSULnRVJ4cGnytVTQcq5qantDWWZyrqgMEBDWeWb3iTcHsE6aGiTECEgw4hqy32GliqrS1F9ao6ZVmEmvNvTYNaLy2SQzkarqHqZzQ1hHssC++DTvx7INpL3Za8vQVyZa48hlMNWslLDEVeBZ4bN67Z7H8gdXD1R+xrF6+gdfNn4iqrFLT95nqzIq5W625axOr0AaCVHdH5EERVqqJ4Z72DRo+qhowNUwVM8PUCNKSJQTgkzkRO01UlWJbWGOml6lpuam5N2sSVucMUZUpIpwsKqO1va2z3TQcbxqmBs1AmxgmmuVWIWHYQeM+wN/BzvMFD1z3DCCoys1q+tjw5t5oHVmXmI9/3w3soSL6HrNwiGnANBA0VLVvqhkRagSx4UioWMGknWoFJhTbwloz+aGqloc095qybB2WD0BBg9iepmHcAOhGEjIiNLeMJiQsB34B9ABv39lW8MsfLq8Mc28x06WN4OubwsAqVRPpAtarang1aCibBsxCExJ0wBpyEmpWevqBc8k2RhwB3AwcQjaf32kiKhSLYa2aXKoqJW1sClubezNZ5u6r1NSeNLWXQ8UBVknIiMiSEqokKGGAhAeAW8mGvXeSDYrOYTuW3VuRn1+8LB/e6q1m+uvGQdAwwAG2BAs3/+SSpb0hqD2VXH4F/MPQwdhy/dXElki8VNHXyh4r0dg+4PEdCbYmbKZAuRL3E1UKJuuTc7mKvF2UwnCLsRUJFn6+39x3rDniuiODIvSr2tVmYWPV9KuWUF8O1eZgmNo9JrZEVUYcih4heMg89n6112678HFEBTO5XU0ebkHrAC4id+89Z58/jOkYu3l91ytlVTFU7V5TuzlUQQ80gwFCrIYE7Qmql7QX2jaZ7lRrB5gOfJ1syF0nkrXz9QiXkFnf4MjxTaZ27T677ffU+M4JU6Knx9wd/crxFyPQp6LfMQ2rglWsIHOKWusLKoMjtbtM7S5T5Zoz798pqGtM/0SykPmkmvNA3SLIEjJ/1Az4BuDOKWOmnv/2ue9oG90+5jAnXZ9i3IxIFhVWVcaMGvXEpu7uyyB8zR0Zwhtsip6uXb95Y0dQKx7+5X373SmlcooxppRickS447u/2V7wAAcAx+flKc3qJk+Y2AbHLyKLZAVBIsKGghVWTRg1ccWMCTOmdxQ7jzUNuwJXqNh9ySMnHPn1gVZz3uWfB2SWe7olxvi2cixTTuV881KZcsw2MZVi/53/vXFtt7vvRdb3b/ZEb4ypO8XUHWPqSjF1l2PqjuXUnaJ3xex8d4xxcyyn3hTT5hhTjyd/CehbtmR1MwJmAv9O1v4B7ibbitcJdAa1zqChs2A2KljoCBrGqNr0YGF0wQptxdAmhdA2vhgKrw9WGBesKCEU1pjaoY4/uvDobwB16wIK+EsidqGZXJaHtSp2BAoCr7za0/OKux9O7XW85jcTqb+YyJb4S1BNrwFHk60HNoI3YCHwrppL7wPeC+Q9vOROX7KAiQih4rMsZEFRyUIpkpcFrikW2x7r7x9wF9VZzpc+/W9kDlFvUbUlwbIHhZpewOHXPX09e9aDbwq69rgS0y/k2htHFnOcDYytvanG9N8PfKbhkZI/wyRHP5C0PpHlKlIlQkSeBi7v7d2cPn/0OVsTAFCwgCA9Kvpt0/ByLQnBwqsbN2/6U/K0ZzPk27DAoDmgRtkF+BeyqHRTEfKoLwMkqDQrV8BrAi7v6t34dOOH1hFw8jHno6IUrPCwql5pGghWyCzAwjNdW7pG5WHz1qT6Mm9mIkqNJeXaD8AisgXSwR/bFLzWlVU0r6MIslRErulsG82iT5w3OAEAXzj2myRPScV+kA2TAyFrU38qxdII5/tSk3sj+UIWcq81/Q8Anxr6ic20XQGvNVrPIsUi0gdcVCqX1jQb6TaNdKgGgBdU7UKz0GdaAJH17j5+eG3XSqNbrLis6olaa5oNfBUY/B259qVG+9XmUEdKrU+Qu0B+qqKccuy3WyNg4cfPwcxQ1cWmdkfuVRPN2+zWWIeUakUBiiEYZJZwCtl0ekipM31kK8dX3xRkA/CdmEqbfNDnDSJmBkiXqn7L1NaFUBiNDLFzQwY5KY2X6yp2dI4qQub4Pjgc+Gaa38of1JHCYhW9R0Q49VMXjIyAzx11JqpCsMJDqnZZW6F9ioltGOYLm/IwRA/R0dPdB7ACuIJsfDD442WgCWjT7k+q3Z+IrAK+Vyr393/p098Z9JlDRjtP/PuzSCm5ql5cCMW1nW2jBgn3yjDHg14qppgAInARcOPQ/A7V5dX0+RmsK0d1TvjNcB30sOHefMz1YsHCdTMmznzO8bVb1WkRe5NqnSLCU799EbIQ1enAE4Pe0+gAm6SMBB4HuWJT1yt+2nHf2z4CTjjy66gIpvbArEmv+4WJ3doaxJakaFr3Cc8A/ww0Ible49rg7Wu6wA3AWeVy/8pWtlm2tPRz3Me+Rkyx77MLTnwc4Szgl4PoKNsdOeyLq2bSsW5dtnReM7W9EziPLN44cEeDsxOaNoPNwDkqdquI8tUTfjAstpajGbfddA/L9T7cfQPZ3Hs6sBv5hKqyqdlTvsU1eeVPDXm5WeL3ZnKrmvraZ7tZ/sBq5r17FsAy4A3A3lVNiWKqbmopiLppiKYhBg1bzKzfxJ5X1TNU7JJyKpdOP+mKlnCNeAhfM2obQzZf3xWv/I/ASeV8g2Q51u8dLjduroyaoi+PpbhEg/rvfram8R27kW1+fpsgmOrzQcO3C2brgoUULPQUrBCDFbYEK8SgYWUhFFellPzMk69qGc8O/+fojpAakg8ErlaR6SZ2n6ke7E73dWc/sB1Pr5eR7Mj8X5OKP0iku4HzBIkqEkUkDb9C9xdAQIWEgDnOpSp6g4j0qWi5hX/n/WUQAHDjuY/QVij2qOrpIvIrd0R2cKvdEf8c3amSL80/J8j3BUo72m39D1IGeyVTr7s8AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEzLTAxLTAzVDE5OjE5OjEzLTA3OjAwLOYYFgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMy0wMS0wM1QxOToxOToxMy0wNzowMF27oKoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/true.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgASAOYAAPb68vT58fD56PD17+L5y935wdz5wdz5wNz4wNjn09nn09Phz7HOpofTR4bSR4bSRoTRRoXRRnnFP3jEPnjFPnfDPXfDPo+0hnS8Q3K6QIaufYaufHC6Pm+5Pm+5PHW2TnC5PnC5P3S1S3W1TXO1THO1S3S1TXS1TGy4OWy3OnO0THS0TW23On+pdXGuUX2ocnCuT3GtUHCtT2+tTm2sSnajam2oUmSsOW2nUnOhZ3ShaGaoQmqiVm+eY2agUWmdWWqeWWqbXmmbXWSXV1ucPWOWVleOSU+MPFCJQiqVKiaTJiWTJRaLFheLFxOKExKJEg+IDwuFCwqFCgiECAKBAgCAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFYALAAAAAAWABIAAAfDgFaCg4SFggpVAYaLhQpRO1QAjIwJUTQlGVUCk4UJTDQiGBINVZyDnjOhFKQFgwsDi6gnHBQOVa2CC1JPsISeMicgtVUGgwNSLRpNvVYJTTMjIBO2xYIDVT0XGzVOC81LMCYhEw/EhFVG2i85Q1AMSjAfHeRVB4ZTRS86QkA+STEkPFgoZ29RFSRBfvCwEUMFCgsR6nGqcoQHDhcqUkCsgsCUlSpEXKxIUSFiR48fb7CoAIEjykFVWLp8CXMmzUEEUAYCADs=]]></data>
	</file>
	<file>
	  <filename>/icons/upload_sm.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAADblJREFUeNrtWltsJNlZ/s6lu9rubtttj+2Z9Uwm7EzYoEgLD4lgtVGAIBFQyBKFCKREEImXINASKYlQeEAClIe8EKRlJRQEPCzkDQEPJEA2UdAGgTYBBcRlxjPR7syOZ7K+xTtjd1V1V/3/z8Opy6lL2x4uGon4SG1Xnzr1n/N///dfzqkGztpZO2tn7aydtbP23drUrBvvfudV3Lp1G89+7FfM+vqahlIPI9cJVgIhwe7eHv3qxz/LP/XjT+ILL/7bo9b5ZAD+8s8+i5RobjRa+lAQdN+jtRk4/VXl0TomIgAg7hriOgQqJdqJ4+hPNze/9ZW11XP8cx/+9Uetd9FsW+e51RVM4sl7B4P+c9ba+YcV6pQvv3XQgbXm3VevPP4znY79+qNW2m+63vHCH/8Wnn7XM+h0u08ZYx5KeYFApKp8TgprzcVu0HlqYXH4qHU+HoD+oI/Pv/D8nDH6beqUft+uuDiXcH8AAMaYt/32b35Gff6FTz9qvYtW0fCDz7wDv/zsR5FMk7cvjRb/ylq7fpLipdJFD1CJBTkIQJKkWw/uP/iFrbt3/77Xm89mFyhvvBLlrpQnL5unnE8qciGAgspgB5QSMANQLg4xCw6+c0Cf+NTv83t++K340kubTQB+73c/iWd++idw/drNtw+Gg88EQffHZjHAX1RTcW+E3ymAiCBN0y0m+g8BeLbsemcbEFLIF8kYmDMR8L4DgKg0pZ04jv/oAz/7qZc+9/wn8UvP/o4D4F3vfBIA8ImP/yKYeOPc6spfBEHwjoruma714JZPVLFGMTnKBfiMaLGgL7dp5SYTGuOkup7qOkrQppPpvx8c3H+f0vrWH/zhn2eME8HffOG5ueGgfzGK0x/V2j6ntQ4KJHMLCCro5nO6aymu/UWUlvEUP2HRNY5l9JYaM9rHVx5quc/MUwAfG40WvnJ4eLT1/g/+WqS++uLnLqyurnw66AU/Cag+syyUD6pKlFCFKOX1HRcoy3si4guordezWt21GtdScYmyz3ONBrvyPobW+gGA8SSe/PXu7t5v2KXR4kf7g/5HtNYG/yctX1zVp9qMXoBbKKhqzwuQB8mi/5jrGoszQywAWNBafWRxafGOtdY8+b+tfJPSzb7Kd/EoLjW6t91rU+yU9725jdHqSQtgIiI4bc6f1YgIRAxAoLXO+jif2usj5CvSRgMCEFNBYaM1BAATFe7sxkkmD9BaQRuT1R5ykqLtfSJgkYlVUEf/EysTEe7c2cLO9g6YGCKCjYsbUErhzp0tKIWiDwJsbW1BKQXhrA9enwg2NjYgAO7WxjEz7t27B0BBa4XV1VVsXHysAOxUQPixhgUAjqxSavywSvvttdt3cHfrLjYuXsLi4iKUVuh2OwCA/mBYFCh532C4UDCgG3QAkaJPpBw3HAyR69DtWgiA4cIimBn337iPu1tbYGZcvnypmX1alK8DkbFnbIlo7Mqn0yns9yVJgr29Pbzp8mVcetNFoBaF53pBmcGz53q9bi6oSKe9XrdMq5mMXtAplMmp3gu6AARLi0NoDexs7+DChfOw1pxs8VofMyNNyQEgEMk3t6cJYPDo76w6gAhXfdLxrBLAGtbxqHtqGme2Ggz62NkGUkphjG4q7a2jtY9Z0jQdW2IeiwiLSCUTnBS1nXMDzAJh9mnVHtFbrvOyIH/uOKUrfUqBmcHCZTHmFV2tLKiByyJMTGMLYCzZqJmpqe07M5TWWF5ehrX29AB4c0TxBIAgCIJGSX0cpUUExlgsLY2gMjCOtbhfueZ1ArEIy9gqpXIGnC4He9+1UhgOhzDWOBacRGOPPVEY4tp/bkIgeOv3PYG5uTkIsyd+th8DgDEag0HfsahScs9W3u9jEVYKYw2RUETIt4Cc9Mkon6YpXnnlFRw+OHTyPVeofzh7DgDCcYhr1zYRxSHiKML1a5sIx2GhAGdy2JNX7zs8PMKtV28jTdNyXu9/Pp9z0WpfJodEJLTTaRIxc5oXKqf14RxUF4E9ZY+hsVIK43GI69dvII5CWGsBCKIwxPXrm3jiibeg1+s1XKnVj0VgrIbAgVvdHhd8b7Ayl8nM6XSaRDpJ01hYklNZvvaBOHSZuN36OdqZAmGmaBSNHXBZ5rDWZCDcQBhGJWN8FvhWFQEzOcsKPEuX/4WlMr58jvNPkqZppJkoYuH01Ir7SilgtLyMbtCt0NxXIAcqDB3Vo3AMa4xbqBfBHQhjbF6/gSiMMnDrypdzdDpdjEaj1kzkr6VQuulSKRHFVkQiEUkqMeCkIJbTUoBOpwPlKNWatgAgimJsbt5AFIZFxmgGOMAYiygaY3PzJt7yvVecOxTBtVxb/pS11tUauYfMyBhtwVREEggiq7WOhSVlL4r7SswGw5213bt3F+fPr2NurufSUc1v4zjG5uZNT3ku01ElpEgW3R0TbmzexNWrV4oU6c+roHD44BDbOztYWlpozHmaqpCZU6VVbJMknRLRxBjTehw184hK8nzs6MyZ/+X3FIAojnFj8yaiKIS1xgOoNFlbYNXGIByPcWPzW7hy9fEShFy2chQ3xoA4PymYkf5m9BHRJE3SqY3jKCGiCRdUqkbPQnUp0ctX7xR329QchLxNkwSvvnIb02SaRXa3xWWmGbWFm0NrA6U1jDGYJlPcuvUa3vw9l2GtKao+pRSIqPR9VZXVLH2bOjHzZDKZJDYK44SIYt+HKxY5prwUEayuriIIuk6xWvq6dOkilNZFAb/9+uvY3d0uzx58VxCARbC0vIL1tfViDiJyFvZjjABz8/PQ2pQu5d0rFZ7dR0RxPJkkdjKZJsw8qU9QUr7W5/mriCBJpjBaFWcBuQwlQNDtlOzJrMQs0AoVy+QSJStprdVFnW+MC5r5YUguP5lOkUynYBJP0Zaq0WNBSV4Bk0ySaZJYojRhlrg+QUNYPR5kqO/t7mM4HGDQ7xepr12OArGrF1jrVnpKlqNTomaw9OdXwOHhIY6OjrA0Wqy4UNXqM2IBABGOiSixRJQwc8UF/Ndc9SPvOqJaa7AIKM/VLQDm9X+enzXXwPaALvM+N9fgASAi2dxcGKVJ95ri3nzMEhNzare2vi1Xrj4eEnVKmpzg93VgmNhZd8amJG9FPV9bTEHLrFghYscAX6EaqM7lAMld4KQSvpYiU0rD3Z1dtl/68lf56ad/MOIuNa3SKI5q1gCwsnIO2mgQkcccry73GJBnCq2Ut8BSVp5VHFDsYVet7wF3tDbfJ5DwTCVbXTm7R0TRyy//E9uv/cNtfvGLz4dEXFD7uE1EPRA+eHAfxhgEwUrGgJo/FmNVUftzY0G5XIEItwJQL56Ojg6Rpil6QbdhlBOvBWDi8MsvvcoWuAdiDonJX0vVip7CVV9UiKIYxmi3aJ71zs8BkOdtKF2pLQqK+wzg8jitHn+UUoiiKKsFuNyFVgzku07t2mWjcPfbfwf7zW+8BAhCJs5fyjR8Zxa9gOxkLNsR5tvSNhcqjrFYoFRZEXqhsgiixL47NWms3Fm7Ow3yd6ae3zdcwWeSCAQS/vM3vgn7xhv3kRJFlAFQpcwx5WSmlMr8mTLaNqvIcqw70zdQZSFQAyF7Jgdzxhrc+0gFrcr6oyKnJcBWrl3gjg6PxrBpmiJJkpCCbvFyog3FehDMxS8uLjmrpdRwl9LF3TOLS0sYDhd9e1QzDlyRRPWUXNHLfR8uuE1Q7rpt+5XqZfldWJCmFFJKsGmSIk3TiIigK74pDQXqwURBYX9/H2ma4rGNC5Us0AaeAmBMBd+GYs46gllBLG97e3swWmN17VwlmNbHtj3LwiCmiIhgkzQFE4fMzKKg6xFcqtIqYCioXFh5MnvaoiRfXtv4Y67zQoiJyhjAReA6UXmBQFiYmUMici4gIiETi6tQa4VOnaYeNZVSUFCYxFNQysV7QP/5Ki3r8UGqi62lvQqXvNvCgul0ivlOxxVC4p1D1OmFVh0EgAMgSRIIxDEAMM2oL9U11QLK3Nw8dnd3sLOzg9HyCFrVfhRRBK6cflVL5grlM+XvEv15cmCdOMbBwX1EcYyVc+fAUtvFNljWbO5IXIVEDJtME4jIhIhSDXROSnv1HWMQdLG2dh7b269jf38fSmkE3S6WV5ax/fq2y9MQ9PsD9Pt97OxsF3JGoxFEgIOD7xRvmtbWVnE0HmN8NAYUoJXG+voa9vf3MZ1OszQKrK2tIwiCzPUqtj6xiUhKKU1YsYsBwjwh4kQpNXdc9G2WpgDAWFgYot/vY5okYGYoKNiOwfkLjxWytFbQWuPChY3ilZgx7ih+bm4+s7I7Zu92AiwtLhVzdzoGq+fWiiKo07FZCqRTKdwAgCVJiSZKKVhyMSBm5pRZVWv4FspXKsUCHeeD3U7+y1uXa3tBp1rNicD0uiW7sv/WlL/XzI/ZAFMAIMLoBrbyneR01m4FAJIyc+wAcIVESMxTxaqmZJUJs46dSkxqBUgtAM4uU+tPVf4g30c8dFPVn3PljVkmzDJWClAihA+8/0fO/8D3P/En83PBDykoEQ+E6nF5bV9QB6iikAeBVHsaXc0OtIcxVY5v+8mZNyb/cbvyUFBQEBEVRvHX/+Vfb/z8F//25XsKjmvLK8sLTw2H8282WqtqNqor+N+nXrH25uXsQQ/dVKF8AxZXOsuDo/C1g4PDfwSwp7J7AYAeWn48/f+0MYBJ9jlrZ+2snbWz9l3b/gt22O/HSV3GsgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMy0wMS0wM1QxOToxNzoyOS0wNzowMBjQcAgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTMtMDEtMDNUMTk6MTc6MjktMDc6MDBpjci0AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/jquery.fileupload.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEZpbGUgVXBsb2FkIFBsdWdpbiA1LjUuNAogKiBodHRwczovL2dpdGh1Yi5jb20vYmx1ZWltcC9qUXVlcnktRmlsZS1VcGxvYWQKICoKICogQ29weXJpZ2h0IDIwMTAsIFNlYmFzdGlhbiBUc2NoYW4KICogaHR0cHM6Ly9ibHVlaW1wLm5ldAogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6CiAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUCiAqLwoKLypqc2xpbnQgbm9tZW46IHRydWUsIHVucGFyYW06IHRydWUsIHJlZ2V4cDogdHJ1ZSAqLwovKmdsb2JhbCBkb2N1bWVudCwgWE1MSHR0cFJlcXVlc3RVcGxvYWQsIEJsb2IsIEZpbGUsIEZvcm1EYXRhLCBsb2NhdGlvbiwgalF1ZXJ5ICovCgooZnVuY3Rpb24gKCQpIHsKICAgICd1c2Ugc3RyaWN0JzsKCiAgICAvLyBUaGUgZmlsZXVwbG9hZCB3aWRnZXQgbGlzdGVucyBmb3IgY2hhbmdlIGV2ZW50cyBvbiBmaWxlIGlucHV0IGZpZWxkcyBkZWZpbmVkCiAgICAvLyB2aWEgZmlsZUlucHV0IHNldHRpbmcgYW5kIHBhc3RlIG9yIGRyb3AgZXZlbnRzIG9mIHRoZSBnaXZlbiBkcm9wWm9uZS4KICAgIC8vIEluIGFkZGl0aW9uIHRvIHRoZSBkZWZhdWx0IGpRdWVyeSBXaWRnZXQgbWV0aG9kcywgdGhlIGZpbGV1cGxvYWQgd2lkZ2V0CiAgICAvLyBleHBvc2VzIHRoZSAiYWRkIiBhbmQgInNlbmQiIG1ldGhvZHMsIHRvIGFkZCBvciBkaXJlY3RseSBzZW5kIGZpbGVzIHVzaW5nCiAgICAvLyB0aGUgZmlsZXVwbG9hZCBBUEkuCiAgICAvLyBCeSBkZWZhdWx0LCBmaWxlcyBhZGRlZCB2aWEgZmlsZSBpbnB1dCBzZWxlY3Rpb24sIHBhc3RlLCBkcmFnICYgZHJvcCBvcgogICAgLy8gImFkZCIgbWV0aG9kIGFyZSB1cGxvYWRlZCBpbW1lZGlhdGVseSwgYnV0IGl0IGlzIHBvc3NpYmxlIHRvIG92ZXJyaWRlCiAgICAvLyB0aGUgImFkZCIgY2FsbGJhY2sgb3B0aW9uIHRvIHF1ZXVlIGZpbGUgdXBsb2Fkcy4KICAgICQud2lkZ2V0KCdibHVlaW1wLmZpbGV1cGxvYWQnLCB7CgogICAgICAgIG9wdGlvbnM6IHsKICAgICAgICAgICAgLy8gVGhlIG5hbWVzcGFjZSB1c2VkIGZvciBldmVudCBoYW5kbGVyIGJpbmRpbmcgb24gdGhlIGRyb3Bab25lIGFuZAogICAgICAgICAgICAvLyBmaWxlSW5wdXQgY29sbGVjdGlvbnMuCiAgICAgICAgICAgIC8vIElmIG5vdCBzZXQsIHRoZSBuYW1lIG9mIHRoZSB3aWRnZXQgKCJmaWxldXBsb2FkIikgaXMgdXNlZC4KICAgICAgICAgICAgbmFtZXNwYWNlOiB1bmRlZmluZWQsCiAgICAgICAgICAgIC8vIFRoZSBkcm9wIHRhcmdldCBjb2xsZWN0aW9uLCBieSB0aGUgZGVmYXVsdCB0aGUgY29tcGxldGUgZG9jdW1lbnQuCiAgICAgICAgICAgIC8vIFNldCB0byBudWxsIG9yIGFuIGVtcHR5IGNvbGxlY3Rpb24gdG8gZGlzYWJsZSBkcmFnICYgZHJvcCBzdXBwb3J0OgogICAgICAgICAgICBkcm9wWm9uZTogJChkb2N1bWVudCksCiAgICAgICAgICAgIC8vIFRoZSBmaWxlIGlucHV0IGZpZWxkIGNvbGxlY3Rpb24sIHRoYXQgaXMgbGlzdGVuZWQgZm9yIGNoYW5nZSBldmVudHMuCiAgICAgICAgICAgIC8vIElmIHVuZGVmaW5lZCwgaXQgaXMgc2V0IHRvIHRoZSBmaWxlIGlucHV0IGZpZWxkcyBpbnNpZGUKICAgICAgICAgICAgLy8gb2YgdGhlIHdpZGdldCBlbGVtZW50IG9uIHBsdWdpbiBpbml0aWFsaXphdGlvbi4KICAgICAgICAgICAgLy8gU2V0IHRvIG51bGwgb3IgYW4gZW1wdHkgY29sbGVjdGlvbiB0byBkaXNhYmxlIHRoZSBjaGFuZ2UgbGlzdGVuZXIuCiAgICAgICAgICAgIGZpbGVJbnB1dDogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCB0aGUgZmlsZSBpbnB1dCBmaWVsZCBpcyByZXBsYWNlZCB3aXRoIGEgY2xvbmUgYWZ0ZXIKICAgICAgICAgICAgLy8gZWFjaCBpbnB1dCBmaWVsZCBjaGFuZ2UgZXZlbnQuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGlmcmFtZSB0cmFuc3BvcnQKICAgICAgICAgICAgLy8gcXVldWVzIGFuZCBhbGxvd3MgY2hhbmdlIGV2ZW50cyB0byBiZSBmaXJlZCBmb3IgdGhlIHNhbWUgZmlsZQogICAgICAgICAgICAvLyBzZWxlY3Rpb24sIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nIG9wdGlvbiB0byBmYWxzZToKICAgICAgICAgICAgcmVwbGFjZUZpbGVJbnB1dDogdHJ1ZSwKICAgICAgICAgICAgLy8gVGhlIHBhcmFtZXRlciBuYW1lIGZvciB0aGUgZmlsZSBmb3JtIGRhdGEgKHRoZSByZXF1ZXN0IGFyZ3VtZW50IG5hbWUpLgogICAgICAgICAgICAvLyBJZiB1bmRlZmluZWQgb3IgZW1wdHksIHRoZSBuYW1lIHByb3BlcnR5IG9mIHRoZSBmaWxlIGlucHV0IGZpZWxkIGlzCiAgICAgICAgICAgIC8vIHVzZWQsIG9yICJmaWxlc1tdIiBpZiB0aGUgZmlsZSBpbnB1dCBuYW1lIHByb3BlcnR5IGlzIGFsc28gZW1wdHk6CiAgICAgICAgICAgIHBhcmFtTmFtZTogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBlYWNoIGZpbGUgb2YgYSBzZWxlY3Rpb24gaXMgdXBsb2FkZWQgdXNpbmcgYW4gaW5kaXZpZHVhbAogICAgICAgICAgICAvLyByZXF1ZXN0IGZvciBYSFIgdHlwZSB1cGxvYWRzLiBTZXQgdG8gZmFsc2UgdG8gdXBsb2FkIGZpbGUKICAgICAgICAgICAgLy8gc2VsZWN0aW9ucyBpbiBvbmUgcmVxdWVzdCBlYWNoOgogICAgICAgICAgICBzaW5nbGVGaWxlVXBsb2FkczogdHJ1ZSwKICAgICAgICAgICAgLy8gVG8gbGltaXQgdGhlIG51bWJlciBvZiBmaWxlcyB1cGxvYWRlZCB3aXRoIG9uZSBYSFIgcmVxdWVzdCwKICAgICAgICAgICAgLy8gc2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIDA6CiAgICAgICAgICAgIGxpbWl0TXVsdGlGaWxlVXBsb2FkczogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gdHJ1ZSB0byBpc3N1ZSBhbGwgZmlsZSB1cGxvYWQgcmVxdWVzdHMKICAgICAgICAgICAgLy8gaW4gYSBzZXF1ZW50aWFsIG9yZGVyOgogICAgICAgICAgICBzZXF1ZW50aWFsVXBsb2FkczogZmFsc2UsCiAgICAgICAgICAgIC8vIFRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY29uY3VycmVudCB1cGxvYWRzLAogICAgICAgICAgICAvLyBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gMDoKICAgICAgICAgICAgbGltaXRDb25jdXJyZW50VXBsb2FkczogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gdHJ1ZSB0byBmb3JjZSBpZnJhbWUgdHJhbnNwb3J0IHVwbG9hZHM6CiAgICAgICAgICAgIGZvcmNlSWZyYW1lVHJhbnNwb3J0OiBmYWxzZSwKICAgICAgICAgICAgLy8gU2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIHRoZSBsb2NhdGlvbiBvZiBhIHBvc3RNZXNzYWdlIHdpbmRvdywKICAgICAgICAgICAgLy8gdG8gZW5hYmxlIHBvc3RNZXNzYWdlIHRyYW5zcG9ydCB1cGxvYWRzOgogICAgICAgICAgICBwb3N0TWVzc2FnZTogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBYSFIgZmlsZSB1cGxvYWRzIGFyZSBzZW50IGFzIG11bHRpcGFydC9mb3JtLWRhdGEuCiAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGlzIGFsd2F5cyB1c2luZyBtdWx0aXBhcnQvZm9ybS1kYXRhLgogICAgICAgICAgICAvLyBTZXQgdG8gZmFsc2UgdG8gZW5hYmxlIG5vbi1tdWx0aXBhcnQgWEhSIHVwbG9hZHM6CiAgICAgICAgICAgIG11bHRpcGFydDogdHJ1ZSwKICAgICAgICAgICAgLy8gVG8gdXBsb2FkIGxhcmdlIGZpbGVzIGluIHNtYWxsZXIgY2h1bmtzLCBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb24KICAgICAgICAgICAgLy8gdG8gYSBwcmVmZXJyZWQgbWF4aW11bSBjaHVuayBzaXplLiBJZiBzZXQgdG8gMCwgbnVsbCBvciB1bmRlZmluZWQsCiAgICAgICAgICAgIC8vIG9yIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkIEJsb2IgQVBJLCBmaWxlcyB3aWxsCiAgICAgICAgICAgIC8vIGJlIHVwbG9hZGVkIGFzIGEgd2hvbGUuCiAgICAgICAgICAgIG1heENodW5rU2l6ZTogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBXaGVuIGEgbm9uLW11bHRpcGFydCB1cGxvYWQgb3IgYSBjaHVua2VkIG11bHRpcGFydCB1cGxvYWQgaGFzIGJlZW4KICAgICAgICAgICAgLy8gYWJvcnRlZCwgdGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSB1cGxvYWQgYnkgc2V0dGluZwogICAgICAgICAgICAvLyBpdCB0byB0aGUgc2l6ZSBvZiB0aGUgYWxyZWFkeSB1cGxvYWRlZCBieXRlcy4gVGhpcyBvcHRpb24gaXMgbW9zdAogICAgICAgICAgICAvLyB1c2VmdWwgd2hlbiBtb2RpZnlpbmcgdGhlIG9wdGlvbnMgb2JqZWN0IGluc2lkZSBvZiB0aGUgImFkZCIgb3IKICAgICAgICAgICAgLy8gInNlbmQiIGNhbGxiYWNrcywgYXMgdGhlIG9wdGlvbnMgYXJlIGNsb25lZCBmb3IgZWFjaCBmaWxlIHVwbG9hZC4KICAgICAgICAgICAgdXBsb2FkZWRCeXRlczogdW5kZWZpbmVkLAogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBmYWlsZWQgKGFib3J0IG9yIGVycm9yKSBmaWxlIHVwbG9hZHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUKICAgICAgICAgICAgLy8gZ2xvYmFsIHByb2dyZXNzIGNhbGN1bGF0aW9uLiBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gZmFsc2UgdG8KICAgICAgICAgICAgLy8gcHJldmVudCByZWNhbGN1bGF0aW5nIHRoZSBnbG9iYWwgcHJvZ3Jlc3MgZGF0YToKICAgICAgICAgICAgcmVjYWxjdWxhdGVQcm9ncmVzczogdHJ1ZSwKCiAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgZm9ybSBkYXRhIHRvIGJlIHNlbnQgYWxvbmcgd2l0aCB0aGUgZmlsZSB1cGxvYWRzIGNhbiBiZSBzZXQKICAgICAgICAgICAgLy8gdXNpbmcgdGhpcyBvcHRpb24sIHdoaWNoIGFjY2VwdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIG5hbWUgYW5kCiAgICAgICAgICAgIC8vIHZhbHVlIHByb3BlcnRpZXMsIGEgZnVuY3Rpb24gcmV0dXJuaW5nIHN1Y2ggYW4gYXJyYXksIGEgRm9ybURhdGEKICAgICAgICAgICAgLy8gb2JqZWN0IChmb3IgWEhSIGZpbGUgdXBsb2FkcyksIG9yIGEgc2ltcGxlIG9iamVjdC4KICAgICAgICAgICAgLy8gVGhlIGZvcm0gb2YgdGhlIGZpcnN0IGZpbGVJbnB1dCBpcyBnaXZlbiBhcyBwYXJhbWV0ZXIgdG8gdGhlIGZ1bmN0aW9uOgogICAgICAgICAgICBmb3JtRGF0YTogZnVuY3Rpb24gKGZvcm0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBmb3JtLnNlcmlhbGl6ZUFycmF5KCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvLyBUaGUgYWRkIGNhbGxiYWNrIGlzIGludm9rZWQgYXMgc29vbiBhcyBmaWxlcyBhcmUgYWRkZWQgdG8gdGhlIGZpbGV1cGxvYWQKICAgICAgICAgICAgLy8gd2lkZ2V0ICh2aWEgZmlsZSBpbnB1dCBzZWxlY3Rpb24sIGRyYWcgJiBkcm9wLCBwYXN0ZSBvciBhZGQgQVBJIGNhbGwpLgogICAgICAgICAgICAvLyBJZiB0aGUgc2luZ2xlRmlsZVVwbG9hZHMgb3B0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY2FsbGJhY2sgd2lsbCBiZQogICAgICAgICAgICAvLyBjYWxsZWQgb25jZSBmb3IgZWFjaCBmaWxlIGluIHRoZSBzZWxlY3Rpb24gZm9yIFhIUiBmaWxlIHVwbGFvZHMsIGVsc2UKICAgICAgICAgICAgLy8gb25jZSBmb3IgZWFjaCBmaWxlIHNlbGVjdGlvbi4KICAgICAgICAgICAgLy8gVGhlIHVwbG9hZCBzdGFydHMgd2hlbiB0aGUgc3VibWl0IG1ldGhvZCBpcyBpbnZva2VkIG9uIHRoZSBkYXRhIHBhcmFtZXRlci4KICAgICAgICAgICAgLy8gVGhlIGRhdGEgb2JqZWN0IGNvbnRhaW5zIGEgZmlsZXMgcHJvcGVydHkgaG9sZGluZyB0aGUgYWRkZWQgZmlsZXMKICAgICAgICAgICAgLy8gYW5kIGFsbG93cyB0byBvdmVycmlkZSBwbHVnaW4gb3B0aW9ucyBhcyB3ZWxsIGFzIGRlZmluZSBhamF4IHNldHRpbmdzLgogICAgICAgICAgICAvLyBMaXN0ZW5lcnMgZm9yIHRoaXMgY2FsbGJhY2sgY2FuIGFsc28gYmUgYm91bmQgdGhlIGZvbGxvd2luZyB3YXk6CiAgICAgICAgICAgIC8vIC5iaW5kKCdmaWxldXBsb2FkYWRkJywgZnVuYyk7CiAgICAgICAgICAgIC8vIGRhdGEuc3VibWl0KCkgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IGFuZCBhbGxvd3MgdG8gYXR0YWNoIGFkZGl0aW9uYWwKICAgICAgICAgICAgLy8gaGFuZGxlcnMgdXNpbmcgalF1ZXJ5J3MgRGVmZXJyZWQgY2FsbGJhY2tzOgogICAgICAgICAgICAvLyBkYXRhLnN1Ym1pdCgpLmRvbmUoZnVuYykuZmFpbChmdW5jKS5hbHdheXMoZnVuYyk7CiAgICAgICAgICAgIGFkZDogZnVuY3Rpb24gKGUsIGRhdGEpIHsKICAgICAgICAgICAgICAgIGRhdGEuc3VibWl0KCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvLyBPdGhlciBjYWxsYmFja3M6CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB0aGUgc3VibWl0IGV2ZW50IG9mIGVhY2ggZmlsZSB1cGxvYWQ6CiAgICAgICAgICAgIC8vIHN1Ym1pdDogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHN1Ym1pdCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgdGhlIHN0YXJ0IG9mIGVhY2ggZmlsZSB1cGxvYWQgcmVxdWVzdDoKICAgICAgICAgICAgLy8gc2VuZDogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHNlbmQnLCBmdW5jKTsKICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIHN1Y2Nlc3NmdWwgdXBsb2FkczoKICAgICAgICAgICAgLy8gZG9uZTogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRvbmUnLCBmdW5jKTsKICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIGZhaWxlZCAoYWJvcnQgb3IgZXJyb3IpIHVwbG9hZHM6CiAgICAgICAgICAgIC8vIGZhaWw6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRmYWlsJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBjb21wbGV0ZWQgKHN1Y2Nlc3MsIGFib3J0IG9yIGVycm9yKSByZXF1ZXN0czoKICAgICAgICAgICAgLy8gYWx3YXlzOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkYWx3YXlzJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnRzOgogICAgICAgICAgICAvLyBwcm9ncmVzczogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHByb2dyZXNzJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBnbG9iYWwgdXBsb2FkIHByb2dyZXNzIGV2ZW50czoKICAgICAgICAgICAgLy8gcHJvZ3Jlc3NhbGw6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRwcm9ncmVzc2FsbCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgdXBsb2FkcyBzdGFydCwgZXF1aXZhbGVudCB0byB0aGUgZ2xvYmFsIGFqYXhTdGFydCBldmVudDoKICAgICAgICAgICAgLy8gc3RhcnQ6IGZ1bmN0aW9uIChlKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRzdGFydCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgdXBsb2FkcyBzdG9wLCBlcXVpdmFsZW50IHRvIHRoZSBnbG9iYWwgYWpheFN0b3AgZXZlbnQ6CiAgICAgICAgICAgIC8vIHN0b3A6IGZ1bmN0aW9uIChlKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRzdG9wJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBjaGFuZ2UgZXZlbnRzIG9mIHRoZSBmaWxlSW5wdXQgY29sbGVjdGlvbjoKICAgICAgICAgICAgLy8gY2hhbmdlOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkY2hhbmdlJywgZnVuYyk7CiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBwYXN0ZSBldmVudHMgdG8gdGhlIGRyb3Bab25lIGNvbGxlY3Rpb246CiAgICAgICAgICAgIC8vIHBhc3RlOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkcGFzdGUnLCBmdW5jKTsKICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIGRyb3AgZXZlbnRzIG9mIHRoZSBkcm9wWm9uZSBjb2xsZWN0aW9uOgogICAgICAgICAgICAvLyBkcm9wOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkZHJvcCcsIGZ1bmMpOwogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgZHJhZ292ZXIgZXZlbnRzIG9mIHRoZSBkcm9wWm9uZSBjb2xsZWN0aW9uOgogICAgICAgICAgICAvLyBkcmFnb3ZlcjogZnVuY3Rpb24gKGUpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRyYWdvdmVyJywgZnVuYyk7CgogICAgICAgICAgICAvLyBUaGUgcGx1Z2luIG9wdGlvbnMgYXJlIHVzZWQgYXMgc2V0dGluZ3Mgb2JqZWN0IGZvciB0aGUgYWpheCBjYWxscy4KICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgalF1ZXJ5IGFqYXggc2V0dGluZ3MgcmVxdWlyZWQgZm9yIHRoZSBmaWxlIHVwbG9hZHM6CiAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSwKICAgICAgICAgICAgY29udGVudFR5cGU6IGZhbHNlLAogICAgICAgICAgICBjYWNoZTogZmFsc2UKICAgICAgICB9LAoKICAgICAgICAvLyBBIGxpc3Qgb2Ygb3B0aW9ucyB0aGF0IHJlcXVpcmUgYSByZWZyZXNoIGFmdGVyIGFzc2lnbmluZyBhIG5ldyB2YWx1ZToKICAgICAgICBfcmVmcmVzaE9wdGlvbnNMaXN0OiBbJ25hbWVzcGFjZScsICdkcm9wWm9uZScsICdmaWxlSW5wdXQnXSwKCiAgICAgICAgX2lzWEhSVXBsb2FkOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICB2YXIgdW5kZWYgPSAndW5kZWZpbmVkJzsKICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmZvcmNlSWZyYW1lVHJhbnNwb3J0ICYmCiAgICAgICAgICAgICAgICB0eXBlb2YgWE1MSHR0cFJlcXVlc3RVcGxvYWQgIT09IHVuZGVmICYmIHR5cGVvZiBGaWxlICE9PSB1bmRlZiAmJgogICAgICAgICAgICAgICAgKCFvcHRpb25zLm11bHRpcGFydCB8fCB0eXBlb2YgRm9ybURhdGEgIT09IHVuZGVmKTsKICAgICAgICB9LAoKICAgICAgICBfZ2V0Rm9ybURhdGE6IGZ1bmN0aW9uIChvcHRpb25zKSB7CiAgICAgICAgICAgIHZhciBmb3JtRGF0YTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZvcm1EYXRhID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mb3JtRGF0YShvcHRpb25zLmZvcm0pOwogICAgICAgICAgICB9IGVsc2UgaWYgKCQuaXNBcnJheShvcHRpb25zLmZvcm1EYXRhKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZm9ybURhdGE7CiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5mb3JtRGF0YSkgewogICAgICAgICAgICAgICAgZm9ybURhdGEgPSBbXTsKICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZvcm1EYXRhLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YS5wdXNoKHtuYW1lOiBuYW1lLCB2YWx1ZTogdmFsdWV9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1EYXRhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9LAoKICAgICAgICBfZ2V0VG90YWw6IGZ1bmN0aW9uIChmaWxlcykgewogICAgICAgICAgICB2YXIgdG90YWwgPSAwOwogICAgICAgICAgICAkLmVhY2goZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgewogICAgICAgICAgICAgICAgdG90YWwgKz0gZmlsZS5zaXplIHx8IDE7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gdG90YWw7CiAgICAgICAgfSwKCiAgICAgICAgX29uUHJvZ3Jlc3M6IGZ1bmN0aW9uIChlLCBkYXRhKSB7CiAgICAgICAgICAgIGlmIChlLmxlbmd0aENvbXB1dGFibGUpIHsKICAgICAgICAgICAgICAgIHZhciB0b3RhbCA9IGRhdGEudG90YWwgfHwgdGhpcy5fZ2V0VG90YWwoZGF0YS5maWxlcyksCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkID0gcGFyc2VJbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGUubG9hZGVkIC8gZS50b3RhbCAqIChkYXRhLmNodW5rU2l6ZSB8fCB0b3RhbCksCiAgICAgICAgICAgICAgICAgICAgICAgIDEwCiAgICAgICAgICAgICAgICAgICAgKSArIChkYXRhLnVwbG9hZGVkQnl0ZXMgfHwgMCk7CiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWQgKz0gbG9hZGVkIC0gKGRhdGEubG9hZGVkIHx8IGRhdGEudXBsb2FkZWRCeXRlcyB8fCAwKTsKICAgICAgICAgICAgICAgIGRhdGEubGVuZ3RoQ29tcHV0YWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgICBkYXRhLmxvYWRlZCA9IGxvYWRlZDsKICAgICAgICAgICAgICAgIGRhdGEudG90YWwgPSB0b3RhbDsKICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgYSBjdXN0b20gcHJvZ3Jlc3MgZXZlbnQgd2l0aCBhIHRvdGFsIGRhdGEgcHJvcGVydHkgc2V0CiAgICAgICAgICAgICAgICAvLyB0byB0aGUgZmlsZSBzaXplKHMpIG9mIHRoZSBjdXJyZW50IHVwbG9hZCBhbmQgYSBsb2FkZWQgZGF0YQogICAgICAgICAgICAgICAgLy8gcHJvcGVydHkgY2FsY3VsYXRlZCBhY2NvcmRpbmdseToKICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ3Byb2dyZXNzJywgZSwgZGF0YSk7CiAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGEgZ2xvYmFsIHByb2dyZXNzIGV2ZW50IGZvciBhbGwgY3VycmVudCBmaWxlIHVwbG9hZHMsCiAgICAgICAgICAgICAgICAvLyBpbmNsdWRpbmcgYWpheCBjYWxscyBxdWV1ZWQgZm9yIHNlcXVlbnRpYWwgZmlsZSB1cGxvYWRzOgogICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcigncHJvZ3Jlc3NhbGwnLCBlLCB7CiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRoaXMuX2xvYWRlZCwKICAgICAgICAgICAgICAgICAgICB0b3RhbDogdGhpcy5fdG90YWwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRQcm9ncmVzc0xpc3RlbmVyOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICAgICAgICB4aHIgPSBvcHRpb25zLnhociA/IG9wdGlvbnMueGhyKCkgOiAkLmFqYXhTZXR0aW5ncy54aHIoKTsKICAgICAgICAgICAgLy8gQWNjZXNzcyB0byB0aGUgbmF0aXZlIFhIUiBvYmplY3QgaXMgcmVxdWlyZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVycwogICAgICAgICAgICAvLyBmb3IgdGhlIHVwbG9hZCBwcm9ncmVzcyBldmVudDoKICAgICAgICAgICAgaWYgKHhoci51cGxvYWQpIHsKICAgICAgICAgICAgICAgICQoeGhyLnVwbG9hZCkuYmluZCgncHJvZ3Jlc3MnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIHZhciBvZSA9IGUub3JpZ2luYWxFdmVudDsKICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHByb2dyZXNzIGV2ZW50IHByb3BlcnRpZXMgZ2V0IGNvcGllZCBvdmVyOgogICAgICAgICAgICAgICAgICAgIGUubGVuZ3RoQ29tcHV0YWJsZSA9IG9lLmxlbmd0aENvbXB1dGFibGU7CiAgICAgICAgICAgICAgICAgICAgZS5sb2FkZWQgPSBvZS5sb2FkZWQ7CiAgICAgICAgICAgICAgICAgICAgZS50b3RhbCA9IG9lLnRvdGFsOwogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uUHJvZ3Jlc3MoZSwgb3B0aW9ucyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIG9wdGlvbnMueGhyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB4aHI7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRYSFJEYXRhOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICB2YXIgZm9ybURhdGEsCiAgICAgICAgICAgICAgICBmaWxlID0gb3B0aW9ucy5maWxlc1swXTsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLm11bHRpcGFydCB8fCBvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgIC8vIEZvciBub24tbXVsdGlwYXJ0IHVwbG9hZHMgYW5kIGNodW5rZWQgdXBsb2FkcywKICAgICAgICAgICAgICAgIC8vIGZpbGUgbWV0YSBkYXRhIGlzIG5vdCBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHksCiAgICAgICAgICAgICAgICAvLyBzbyB3ZSB0cmFuc21pdCB0aGlzIGRhdGEgYXMgcGFydCBvZiB0aGUgSFRUUCBoZWFkZXJzLgogICAgICAgICAgICAgICAgLy8gRm9yIGNyb3NzIGRvbWFpbiByZXF1ZXN0cywgdGhlc2UgaGVhZGVycyBtdXN0IGJlIGFsbG93ZWQKICAgICAgICAgICAgICAgIC8vIHZpYSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIG9yIHJlbW92ZWQgdXNpbmcKICAgICAgICAgICAgICAgIC8vIHRoZSBiZWZvcmVTZW5kIGNhbGxiYWNrOgogICAgICAgICAgICAgICAgb3B0aW9ucy5oZWFkZXJzID0gJC5leHRlbmQob3B0aW9ucy5oZWFkZXJzLCB7CiAgICAgICAgICAgICAgICAgICAgJ1gtRmlsZS1OYW1lJzogZmlsZS5uYW1lLAogICAgICAgICAgICAgICAgICAgICdYLUZpbGUtVHlwZSc6IGZpbGUudHlwZSwKICAgICAgICAgICAgICAgICAgICAnWC1GaWxlLVNpemUnOiBmaWxlLnNpemUKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgICAgICAvLyBOb24tY2h1bmtlZCBub24tbXVsdGlwYXJ0IHVwbG9hZDoKICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNvbnRlbnRUeXBlID0gZmlsZS50eXBlOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGF0YSA9IGZpbGU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLm11bHRpcGFydCkgewogICAgICAgICAgICAgICAgICAgIC8vIENodW5rZWQgbm9uLW11bHRpcGFydCB1cGxvYWQ6CiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5jb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGF0YSA9IG9wdGlvbnMuYmxvYjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aXBhcnQgJiYgdHlwZW9mIEZvcm1EYXRhICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucG9zdE1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyB3aW5kb3cucG9zdE1lc3NhZ2UgZG9lcyBub3QgYWxsb3cgc2VuZGluZyBGb3JtRGF0YQogICAgICAgICAgICAgICAgICAgIC8vIG9iamVjdHMsIHNvIHdlIGp1c3QgYWRkIHRoZSBGaWxlL0Jsb2Igb2JqZWN0cyB0bwogICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmb3JtRGF0YSBhcnJheSBhbmQgbGV0IHRoZSBwb3N0TWVzc2FnZSB3aW5kb3cKICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIEZvcm1EYXRhIG9iamVjdCBvdXQgb2YgdGhpcyBhcnJheToKICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBvcHRpb25zLnBhcmFtTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb25zLmJsb2IKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMuZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5wYXJhbU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcm1EYXRhIGluc3RhbmNlb2YgRm9ybURhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEgPSBvcHRpb25zLmZvcm1EYXRhOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaCh0aGlzLl9nZXRGb3JtRGF0YShvcHRpb25zKSwgZnVuY3Rpb24gKGluZGV4LCBmaWVsZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpZWxkLm5hbWUsIGZpZWxkLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmJsb2IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG9wdGlvbnMucGFyYW1OYW1lLCBvcHRpb25zLmJsb2IpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGZpbGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpbGUgb2JqZWN0cyBhcmUgYWxzbyBCbG9iIGluc3RhbmNlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgYWxsb3dzIHRoZSB0ZXN0cyB0byBydW4gd2l0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVtbXkgb2JqZWN0czoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWxlIGluc3RhbmNlb2YgQmxvYikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChvcHRpb25zLnBhcmFtTmFtZSwgZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG9wdGlvbnMuZGF0YSA9IGZvcm1EYXRhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEJsb2IgcmVmZXJlbmNlIGlzIG5vdCBuZWVkZWQgYW55bW9yZSwgZnJlZSBtZW1vcnk6CiAgICAgICAgICAgIG9wdGlvbnMuYmxvYiA9IG51bGw7CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRJZnJhbWVTZXR0aW5nczogZnVuY3Rpb24gKG9wdGlvbnMpIHsKICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgZGF0YVR5cGUgdG8gaWZyYW1lIGVuYWJsZXMgdGhlIGlmcmFtZSB0cmFuc3BvcnQ6CiAgICAgICAgICAgIG9wdGlvbnMuZGF0YVR5cGUgPSAnaWZyYW1lICcgKyAob3B0aW9ucy5kYXRhVHlwZSB8fCAnJyk7CiAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGFjY2VwdHMgYSBzZXJpYWxpemVkIGFycmF5IGFzIGZvcm0gZGF0YToKICAgICAgICAgICAgb3B0aW9ucy5mb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKG9wdGlvbnMpOwogICAgICAgIH0sCgogICAgICAgIF9pbml0RGF0YVNldHRpbmdzOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICBpZiAodGhpcy5faXNYSFJVcGxvYWQob3B0aW9ucykpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY2h1bmtlZFVwbG9hZChvcHRpb25zLCB0cnVlKSkgewogICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5kYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRYSFJEYXRhKG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0UHJvZ3Jlc3NMaXN0ZW5lcihvcHRpb25zKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnBvc3RNZXNzYWdlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgZGF0YVR5cGUgdG8gcG9zdG1lc3NhZ2UgZW5hYmxlcyB0aGUKICAgICAgICAgICAgICAgICAgICAvLyBwb3N0TWVzc2FnZSB0cmFuc3BvcnQ6CiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kYXRhVHlwZSA9ICdwb3N0bWVzc2FnZSAnICsgKG9wdGlvbnMuZGF0YVR5cGUgfHwgJycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5faW5pdElmcmFtZVNldHRpbmdzKG9wdGlvbnMsICdpZnJhbWUnKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9pbml0Rm9ybVNldHRpbmdzOiBmdW5jdGlvbiAob3B0aW9ucykgewogICAgICAgICAgICAvLyBSZXRyaWV2ZSBtaXNzaW5nIG9wdGlvbnMgZnJvbSB0aGUgaW5wdXQgZmllbGQgYW5kIHRoZQogICAgICAgICAgICAvLyBhc3NvY2lhdGVkIGZvcm0sIGlmIGF2YWlsYWJsZToKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmZvcm0gfHwgIW9wdGlvbnMuZm9ybS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9ybSA9ICQob3B0aW9ucy5maWxlSW5wdXQucHJvcCgnZm9ybScpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW9wdGlvbnMucGFyYW1OYW1lKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLnBhcmFtTmFtZSA9IG9wdGlvbnMuZmlsZUlucHV0LnByb3AoJ25hbWUnKSB8fAogICAgICAgICAgICAgICAgICAgICdmaWxlc1tdJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW9wdGlvbnMudXJsKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLnVybCA9IG9wdGlvbnMuZm9ybS5wcm9wKCdhY3Rpb24nKSB8fCBsb2NhdGlvbi5ocmVmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kIG11c3QgYmUgIlBPU1QiIG9yICJQVVQiOgogICAgICAgICAgICBvcHRpb25zLnR5cGUgPSAob3B0aW9ucy50eXBlIHx8IG9wdGlvbnMuZm9ybS5wcm9wKCdtZXRob2QnKSB8fCAnJykKICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICBpZiAob3B0aW9ucy50eXBlICE9PSAnUE9TVCcgJiYgb3B0aW9ucy50eXBlICE9PSAnUFVUJykgewogICAgICAgICAgICAgICAgb3B0aW9ucy50eXBlID0gJ1BPU1QnOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX2dldEFKQVhTZXR0aW5nczogZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgdGhpcy5vcHRpb25zLCBkYXRhKTsKICAgICAgICAgICAgdGhpcy5faW5pdEZvcm1TZXR0aW5ncyhvcHRpb25zKTsKICAgICAgICAgICAgdGhpcy5faW5pdERhdGFTZXR0aW5ncyhvcHRpb25zKTsKICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7CiAgICAgICAgfSwKCiAgICAgICAgLy8gTWFwcyBqcVhIUiBjYWxsYmFja3MgdG8gdGhlIGVxdWl2YWxlbnQKICAgICAgICAvLyBtZXRob2RzIG9mIHRoZSBnaXZlbiBQcm9taXNlIG9iamVjdDoKICAgICAgICBfZW5oYW5jZVByb21pc2U6IGZ1bmN0aW9uIChwcm9taXNlKSB7CiAgICAgICAgICAgIHByb21pc2Uuc3VjY2VzcyA9IHByb21pc2UuZG9uZTsKICAgICAgICAgICAgcHJvbWlzZS5lcnJvciA9IHByb21pc2UuZmFpbDsKICAgICAgICAgICAgcHJvbWlzZS5jb21wbGV0ZSA9IHByb21pc2UuYWx3YXlzOwogICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICB9LAoKICAgICAgICAvLyBDcmVhdGVzIGFuZCByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgZW5oYW5jZWQgd2l0aAogICAgICAgIC8vIHRoZSBqcVhIUiBtZXRob2RzIGFib3J0LCBzdWNjZXNzLCBlcnJvciBhbmQgY29tcGxldGU6CiAgICAgICAgX2dldFhIUlByb21pc2U6IGZ1bmN0aW9uIChyZXNvbHZlT3JSZWplY3QsIGNvbnRleHQsIGFyZ3MpIHsKICAgICAgICAgICAgdmFyIGRmZCA9ICQuRGVmZXJyZWQoKSwKICAgICAgICAgICAgICAgIHByb21pc2UgPSBkZmQucHJvbWlzZSgpOwogICAgICAgICAgICBjb250ZXh0ID0gY29udGV4dCB8fCB0aGlzLm9wdGlvbnMuY29udGV4dCB8fCBwcm9taXNlOwogICAgICAgICAgICBpZiAocmVzb2x2ZU9yUmVqZWN0ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBkZmQucmVzb2x2ZVdpdGgoY29udGV4dCwgYXJncyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZU9yUmVqZWN0ID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgZGZkLnJlamVjdFdpdGgoY29udGV4dCwgYXJncyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHJvbWlzZS5hYm9ydCA9IGRmZC5wcm9taXNlOwogICAgICAgICAgICByZXR1cm4gdGhpcy5fZW5oYW5jZVByb21pc2UocHJvbWlzZSk7CiAgICAgICAgfSwKCiAgICAgICAgLy8gVXBsb2FkcyBhIGZpbGUgaW4gbXVsdGlwbGUsIHNlcXVlbnRpYWwgcmVxdWVzdHMKICAgICAgICAvLyBieSBzcGxpdHRpbmcgdGhlIGZpbGUgdXAgaW4gbXVsdGlwbGUgYmxvYiBjaHVua3MuCiAgICAgICAgLy8gSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdHJ1ZSwgb25seSB0ZXN0cyBpZiB0aGUgZmlsZQogICAgICAgIC8vIHNob3VsZCBiZSB1cGxvYWRlZCBpbiBjaHVua3MsIGJ1dCBkb2VzIG5vdCBpbnZva2UgYW55CiAgICAgICAgLy8gdXBsb2FkIHJlcXVlc3RzOgogICAgICAgIF9jaHVua2VkVXBsb2FkOiBmdW5jdGlvbiAob3B0aW9ucywgdGVzdE9ubHkpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgICAgICAgZmlsZSA9IG9wdGlvbnMuZmlsZXNbMF0sCiAgICAgICAgICAgICAgICBmcyA9IGZpbGUuc2l6ZSwKICAgICAgICAgICAgICAgIHViID0gb3B0aW9ucy51cGxvYWRlZEJ5dGVzID0gb3B0aW9ucy51cGxvYWRlZEJ5dGVzIHx8IDAsCiAgICAgICAgICAgICAgICBtY3MgPSBvcHRpb25zLm1heENodW5rU2l6ZSB8fCBmcywKICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgQmxvYiBtZXRob2RzIHdpdGggdGhlIHNsaWNlIGltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAvLyBhY2NvcmRpbmcgdG8gdGhlIFczQyBCbG9iIEFQSSBzcGVjaWZpY2F0aW9uOgogICAgICAgICAgICAgICAgc2xpY2UgPSBmaWxlLndlYmtpdFNsaWNlIHx8IGZpbGUubW96U2xpY2UgfHwgZmlsZS5zbGljZSwKICAgICAgICAgICAgICAgIHVwbG9hZCwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBqcVhIUiwKICAgICAgICAgICAgICAgIHBpcGU7CiAgICAgICAgICAgIGlmICghKHRoaXMuX2lzWEhSVXBsb2FkKG9wdGlvbnMpICYmIHNsaWNlICYmICh1YiB8fCBtY3MgPCBmcykpIHx8CiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kYXRhKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRlc3RPbmx5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodWIgPj0gZnMpIHsKICAgICAgICAgICAgICAgIGZpbGUuZXJyb3IgPSAndXBsb2FkZWRCeXRlcyc7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0WEhSUHJvbWlzZSgKICAgICAgICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgW251bGwsICdlcnJvcicsIGZpbGUuZXJyb3JdCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIG4gaXMgdGhlIG51bWJlciBvZiBibG9icyB0byB1cGxvYWQsCiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZWQgdmlhIGZpbGVzaXplLCB1cGxvYWRlZCBieXRlcyBhbmQgbWF4IGNodW5rIHNpemU6CiAgICAgICAgICAgIG4gPSBNYXRoLmNlaWwoKGZzIC0gdWIpIC8gbWNzKTsKICAgICAgICAgICAgLy8gVGhlIGNodW5rIHVwbG9hZCBtZXRob2QgYWNjZXB0aW5nIHRoZSBjaHVuayBudW1iZXIgYXMgcGFyYW1ldGVyOgogICAgICAgICAgICB1cGxvYWQgPSBmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgaWYgKCFpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX2dldFhIUlByb21pc2UodHJ1ZSwgb3B0aW9ucy5jb250ZXh0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIFVwbG9hZCB0aGUgYmxvYnMgaW4gc2VxdWVudGlhbCBvcmRlcjoKICAgICAgICAgICAgICAgIHJldHVybiB1cGxvYWQoaSAtPSAxKS5waXBlKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAvLyBDbG9uZSB0aGUgb3B0aW9ucyBvYmplY3QgZm9yIGVhY2ggY2h1bmsgdXBsb2FkOgogICAgICAgICAgICAgICAgICAgIHZhciBvID0gJC5leHRlbmQoe30sIG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIG8uYmxvYiA9IHNsaWNlLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHViICsgaSAqIG1jcywKICAgICAgICAgICAgICAgICAgICAgICAgdWIgKyAoaSArIDEpICogbWNzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCBjaHVuayBzaXplLCBhcyB0aGUgYmxvYiBpdHNlbGYKICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIGRlcmVmZXJlbmNlZCBhZnRlciBkYXRhIHByb2Nlc3Npbmc6CiAgICAgICAgICAgICAgICAgICAgby5jaHVua1NpemUgPSBvLmJsb2Iuc2l6ZTsKICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSB1cGxvYWQgZGF0YSAodGhlIGJsb2IgYW5kIHBvdGVudGlhbCBmb3JtIGRhdGEpOgogICAgICAgICAgICAgICAgICAgIHRoYXQuX2luaXRYSFJEYXRhKG8pOwogICAgICAgICAgICAgICAgICAgIC8vIEFkZCBwcm9ncmVzcyBsaXN0ZW5lcnMgZm9yIHRoaXMgY2h1bmsgdXBsb2FkOgogICAgICAgICAgICAgICAgICAgIHRoYXQuX2luaXRQcm9ncmVzc0xpc3RlbmVyKG8pOwogICAgICAgICAgICAgICAgICAgIGpxWEhSID0gKCQuYWpheChvKSB8fCB0aGF0Ll9nZXRYSFJQcm9taXNlKGZhbHNlLCBvLmNvbnRleHQpKQogICAgICAgICAgICAgICAgICAgICAgICAuZG9uZShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBwcm9ncmVzcyBldmVudCBpZiB1cGxvYWQgaXMgZG9uZSBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIHByb2dyZXNzIGV2ZW50IGhhcyBiZWVuIGludm9rZWQgZm9yIHRoaXMgY2h1bms6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW8ubG9hZGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25Qcm9ncmVzcygkLkV2ZW50KCdwcm9ncmVzcycsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiBvLmNodW5rU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWw6IG8uY2h1bmtTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIG8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51cGxvYWRlZEJ5dGVzID0gby51cGxvYWRlZEJ5dGVzICs9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgby5jaHVua1NpemU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBqcVhIUjsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBSZXR1cm4gdGhlIHBpcGVkIFByb21pc2Ugb2JqZWN0LCBlbmhhbmNlZCB3aXRoIGFuIGFib3J0IG1ldGhvZCwKICAgICAgICAgICAgLy8gd2hpY2ggaXMgZGVsZWdhdGVkIHRvIHRoZSBqcVhIUiBvYmplY3Qgb2YgdGhlIGN1cnJlbnQgdXBsb2FkLAogICAgICAgICAgICAvLyBhbmQganFYSFIgY2FsbGJhY2tzIG1hcHBlZCB0byB0aGUgZXF1aXZhbGVudCBQcm9taXNlIG1ldGhvZHM6CiAgICAgICAgICAgIHBpcGUgPSB1cGxvYWQobik7CiAgICAgICAgICAgIHBpcGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4ganFYSFIuYWJvcnQoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VuaGFuY2VQcm9taXNlKHBpcGUpOwogICAgICAgIH0sCgogICAgICAgIF9iZWZvcmVTZW5kOiBmdW5jdGlvbiAoZSwgZGF0YSkgewogICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlID09PSAwKSB7CiAgICAgICAgICAgICAgICAvLyB0aGUgc3RhcnQgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gdXBsb2FkIHN0YXJ0cwogICAgICAgICAgICAgICAgLy8gYW5kIG5vIG90aGVyIHVwbG9hZHMgYXJlIGN1cnJlbnRseSBydW5uaW5nLAogICAgICAgICAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGUgZ2xvYmFsIGFqYXhTdGFydCBldmVudDoKICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ3N0YXJ0Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5fYWN0aXZlICs9IDE7CiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCBwcm9ncmVzcyB2YWx1ZXM6CiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCArPSBkYXRhLnVwbG9hZGVkQnl0ZXMgfHwgMDsKICAgICAgICAgICAgdGhpcy5fdG90YWwgKz0gdGhpcy5fZ2V0VG90YWwoZGF0YS5maWxlcyk7CiAgICAgICAgfSwKCiAgICAgICAgX29uRG9uZTogZnVuY3Rpb24gKHJlc3VsdCwgdGV4dFN0YXR1cywganFYSFIsIG9wdGlvbnMpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1hIUlVwbG9hZChvcHRpb25zKSkgewogICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgcHJvZ3Jlc3MgZXZlbnQgZm9yIGVhY2ggaWZyYW1lIGxvYWQ6CiAgICAgICAgICAgICAgICB0aGlzLl9vblByb2dyZXNzKCQuRXZlbnQoJ3Byb2dyZXNzJywgewogICAgICAgICAgICAgICAgICAgIGxlbmd0aENvbXB1dGFibGU6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAxLAogICAgICAgICAgICAgICAgICAgIHRvdGFsOiAxCiAgICAgICAgICAgICAgICB9KSwgb3B0aW9ucyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgb3B0aW9ucy5yZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgICAgIG9wdGlvbnMudGV4dFN0YXR1cyA9IHRleHRTdGF0dXM7CiAgICAgICAgICAgIG9wdGlvbnMuanFYSFIgPSBqcVhIUjsKICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcignZG9uZScsIG51bGwsIG9wdGlvbnMpOwogICAgICAgIH0sCgogICAgICAgIF9vbkZhaWw6IGZ1bmN0aW9uIChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24sIG9wdGlvbnMpIHsKICAgICAgICAgICAgb3B0aW9ucy5qcVhIUiA9IGpxWEhSOwogICAgICAgICAgICBvcHRpb25zLnRleHRTdGF0dXMgPSB0ZXh0U3RhdHVzOwogICAgICAgICAgICBvcHRpb25zLmVycm9yVGhyb3duID0gZXJyb3JUaHJvd247CiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ2ZhaWwnLCBudWxsLCBvcHRpb25zKTsKICAgICAgICAgICAgaWYgKG9wdGlvbnMucmVjYWxjdWxhdGVQcm9ncmVzcykgewogICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBmYWlsZWQgKGVycm9yIG9yIGFib3J0KSBmaWxlIHVwbG9hZCBmcm9tCiAgICAgICAgICAgICAgICAvLyB0aGUgZ2xvYmFsIHByb2dyZXNzIGNhbGN1bGF0aW9uOgogICAgICAgICAgICAgICAgdGhpcy5fbG9hZGVkIC09IG9wdGlvbnMubG9hZGVkIHx8IG9wdGlvbnMudXBsb2FkZWRCeXRlcyB8fCAwOwogICAgICAgICAgICAgICAgdGhpcy5fdG90YWwgLT0gb3B0aW9ucy50b3RhbCB8fCB0aGlzLl9nZXRUb3RhbChvcHRpb25zLmZpbGVzKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9vbkFsd2F5czogZnVuY3Rpb24gKGpxWEhSb3JSZXN1bHQsIHRleHRTdGF0dXMsIGpxWEhSb3JFcnJvciwgb3B0aW9ucykgewogICAgICAgICAgICB0aGlzLl9hY3RpdmUgLT0gMTsKICAgICAgICAgICAgb3B0aW9ucy50ZXh0U3RhdHVzID0gdGV4dFN0YXR1czsKICAgICAgICAgICAgaWYgKGpxWEhSb3JFcnJvciAmJiBqcVhIUm9yRXJyb3IuYWx3YXlzKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLmpxWEhSID0ganFYSFJvckVycm9yOwogICAgICAgICAgICAgICAgb3B0aW9ucy5yZXN1bHQgPSBqcVhIUm9yUmVzdWx0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgb3B0aW9ucy5qcVhIUiA9IGpxWEhSb3JSZXN1bHQ7CiAgICAgICAgICAgICAgICBvcHRpb25zLmVycm9yVGhyb3duID0ganFYSFJvckVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ2Fsd2F5cycsIG51bGwsIG9wdGlvbnMpOwogICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlID09PSAwKSB7CiAgICAgICAgICAgICAgICAvLyBUaGUgc3RvcCBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBhbGwgdXBsb2FkcyBoYXZlCiAgICAgICAgICAgICAgICAvLyBiZWVuIGNvbXBsZXRlZCwgZXF1aXZhbGVudCB0byB0aGUgZ2xvYmFsIGFqYXhTdG9wIGV2ZW50OgogICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcignc3RvcCcpOwogICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGdsb2JhbCBwcm9ncmVzcyB2YWx1ZXM6CiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWQgPSB0aGlzLl90b3RhbCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfb25TZW5kOiBmdW5jdGlvbiAoZSwgZGF0YSkgewogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICAgICAgICBqcVhIUiwKICAgICAgICAgICAgICAgIHNsb3QsCiAgICAgICAgICAgICAgICBwaXBlLAogICAgICAgICAgICAgICAgb3B0aW9ucyA9IHRoYXQuX2dldEFKQVhTZXR0aW5ncyhkYXRhKSwKICAgICAgICAgICAgICAgIHNlbmQgPSBmdW5jdGlvbiAocmVzb2x2ZSwgYXJncykgewogICAgICAgICAgICAgICAgICAgIHRoYXQuX3NlbmRpbmcgKz0gMTsKICAgICAgICAgICAgICAgICAgICBqcVhIUiA9IGpxWEhSIHx8ICgKICAgICAgICAgICAgICAgICAgICAgICAgKHJlc29sdmUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3RyaWdnZXIoJ3NlbmQnLCBlLCBvcHRpb25zKSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKHRoYXQuX2NodW5rZWRVcGxvYWQob3B0aW9ucykgfHwgJC5hamF4KG9wdGlvbnMpKSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fZ2V0WEhSUHJvbWlzZShmYWxzZSwgb3B0aW9ucy5jb250ZXh0LCBhcmdzKQogICAgICAgICAgICAgICAgICAgICkuZG9uZShmdW5jdGlvbiAocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vbkRvbmUocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUiwgb3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgfSkuZmFpbChmdW5jdGlvbiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX29uRmFpbChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24sIG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgIH0pLmFsd2F5cyhmdW5jdGlvbiAoanFYSFJvclJlc3VsdCwgdGV4dFN0YXR1cywganFYSFJvckVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3NlbmRpbmcgLT0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25BbHdheXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqcVhIUm9yUmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpxWEhSb3JFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyA+IHRoYXQuX3NlbmRpbmcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSBuZXh0IHF1ZXVlZCB1cGxvYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGhhcyBub3QgYmVlbiBhYm9ydGVkOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRTbG90ID0gdGhhdC5fc2xvdHMuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0U2xvdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dFNsb3QuaXNSZWplY3RlZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTbG90LnJlc29sdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTbG90ID0gdGhhdC5fc2xvdHMuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBqcVhIUjsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRoaXMuX2JlZm9yZVNlbmQoZSwgb3B0aW9ucyk7CiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VxdWVudGlhbFVwbG9hZHMgfHwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmxpbWl0Q29uY3VycmVudFVwbG9hZHMgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyA8PSB0aGlzLl9zZW5kaW5nKSkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5saW1pdENvbmN1cnJlbnRVcGxvYWRzID4gMSkgewogICAgICAgICAgICAgICAgICAgIHNsb3QgPSAkLkRlZmVycmVkKCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2xvdHMucHVzaChzbG90KTsKICAgICAgICAgICAgICAgICAgICBwaXBlID0gc2xvdC5waXBlKHNlbmQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBwaXBlID0gKHRoaXMuX3NlcXVlbmNlID0gdGhpcy5fc2VxdWVuY2UucGlwZShzZW5kLCBzZW5kKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBSZXR1cm4gdGhlIHBpcGVkIFByb21pc2Ugb2JqZWN0LCBlbmhhbmNlZCB3aXRoIGFuIGFib3J0IG1ldGhvZCwKICAgICAgICAgICAgICAgIC8vIHdoaWNoIGlzIGRlbGVnYXRlZCB0byB0aGUganFYSFIgb2JqZWN0IG9mIHRoZSBjdXJyZW50IHVwbG9hZCwKICAgICAgICAgICAgICAgIC8vIGFuZCBqcVhIUiBjYWxsYmFja3MgbWFwcGVkIHRvIHRoZSBlcXVpdmFsZW50IFByb21pc2UgbWV0aG9kczoKICAgICAgICAgICAgICAgIHBpcGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbdW5kZWZpbmVkLCAnYWJvcnQnLCAnYWJvcnQnXTsKICAgICAgICAgICAgICAgICAgICBpZiAoIWpxWEhSKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbG90KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LnJlamVjdFdpdGgoYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbmQoZmFsc2UsIGFyZ3MpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4ganFYSFIuYWJvcnQoKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZW5oYW5jZVByb21pc2UocGlwZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHNlbmQoKTsKICAgICAgICB9LAoKICAgICAgICBfb25BZGQ6IGZ1bmN0aW9uIChlLCBkYXRhKSB7CiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywKICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWUsCiAgICAgICAgICAgICAgICBvcHRpb25zID0gJC5leHRlbmQoe30sIHRoaXMub3B0aW9ucywgZGF0YSksCiAgICAgICAgICAgICAgICBsaW1pdCA9IG9wdGlvbnMubGltaXRNdWx0aUZpbGVVcGxvYWRzLAogICAgICAgICAgICAgICAgZmlsZVNldCwKICAgICAgICAgICAgICAgIGk7CiAgICAgICAgICAgIGlmICghKG9wdGlvbnMuc2luZ2xlRmlsZVVwbG9hZHMgfHwgbGltaXQpIHx8CiAgICAgICAgICAgICAgICAgICAgIXRoaXMuX2lzWEhSVXBsb2FkKG9wdGlvbnMpKSB7CiAgICAgICAgICAgICAgICBmaWxlU2V0ID0gW2RhdGEuZmlsZXNdOwogICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnNpbmdsZUZpbGVVcGxvYWRzICYmIGxpbWl0KSB7CiAgICAgICAgICAgICAgICBmaWxlU2V0ID0gW107CiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YS5maWxlcy5sZW5ndGg7IGkgKz0gbGltaXQpIHsKICAgICAgICAgICAgICAgICAgICBmaWxlU2V0LnB1c2goZGF0YS5maWxlcy5zbGljZShpLCBpICsgbGltaXQpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhLm9yaWdpbmFsRmlsZXMgPSBkYXRhLmZpbGVzOwogICAgICAgICAgICAkLmVhY2goZmlsZVNldCB8fCBkYXRhLmZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGVsZW1lbnQpIHsKICAgICAgICAgICAgICAgIHZhciBmaWxlcyA9IGZpbGVTZXQgPyBlbGVtZW50IDogW2VsZW1lbnRdLAogICAgICAgICAgICAgICAgICAgIG5ld0RhdGEgPSAkLmV4dGVuZCh7fSwgZGF0YSwge2ZpbGVzOiBmaWxlc30pOwogICAgICAgICAgICAgICAgbmV3RGF0YS5zdWJtaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgbmV3RGF0YS5qcVhIUiA9IHRoaXMuanFYSFIgPQogICAgICAgICAgICAgICAgICAgICAgICAodGhhdC5fdHJpZ2dlcignc3VibWl0JywgZSwgdGhpcykgIT09IGZhbHNlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vblNlbmQoZSwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuanFYSFI7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgcmV0dXJuIChyZXN1bHQgPSB0aGF0Ll90cmlnZ2VyKCdhZGQnLCBlLCBuZXdEYXRhKSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0sCgogICAgICAgIC8vIEZpbGUgTm9ybWFsaXphdGlvbiBmb3IgR2Vja28gMS45LjEgKEZpcmVmb3ggMy41KSBzdXBwb3J0OgogICAgICAgIF9ub3JtYWxpemVGaWxlOiBmdW5jdGlvbiAoaW5kZXgsIGZpbGUpIHsKICAgICAgICAgICAgaWYgKGZpbGUubmFtZSA9PT0gdW5kZWZpbmVkICYmIGZpbGUuc2l6ZSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBmaWxlLm5hbWUgPSBmaWxlLmZpbGVOYW1lOwogICAgICAgICAgICAgICAgZmlsZS5zaXplID0gZmlsZS5maWxlU2l6ZTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9yZXBsYWNlRmlsZUlucHV0OiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIGlucHV0Q2xvbmUgPSBpbnB1dC5jbG9uZSh0cnVlKTsKICAgICAgICAgICAgJCgnPGZvcm0+PC9mb3JtPicpLmFwcGVuZChpbnB1dENsb25lKVswXS5yZXNldCgpOwogICAgICAgICAgICAvLyBEZXRhY2hpbmcgYWxsb3dzIHRvIGluc2VydCB0aGUgZmlsZUlucHV0IG9uIGFub3RoZXIgZm9ybQogICAgICAgICAgICAvLyB3aXRob3V0IGxvb3NpbmcgdGhlIGZpbGUgaW5wdXQgdmFsdWU6CiAgICAgICAgICAgIGlucHV0LmFmdGVyKGlucHV0Q2xvbmUpLmRldGFjaCgpOwogICAgICAgICAgICAvLyBBdm9pZCBtZW1vcnkgbGVha3Mgd2l0aCB0aGUgZGV0YWNoZWQgZmlsZSBpbnB1dDoKICAgICAgICAgICAgJC5jbGVhbkRhdGEoaW5wdXQudW5iaW5kKCdyZW1vdmUnKSk7CiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIG9yaWdpbmFsIGZpbGUgaW5wdXQgZWxlbWVudCBpbiB0aGUgZmlsZUlucHV0CiAgICAgICAgICAgIC8vIGNvbGxlY3Rpb24gd2l0aCB0aGUgY2xvbmUsIHdoaWNoIGhhcyBiZWVuIGNvcGllZCBpbmNsdWRpbmcKICAgICAgICAgICAgLy8gZXZlbnQgaGFuZGxlcnM6CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5maWxlSW5wdXQgPSB0aGlzLm9wdGlvbnMuZmlsZUlucHV0Lm1hcChmdW5jdGlvbiAoaSwgZWwpIHsKICAgICAgICAgICAgICAgIGlmIChlbCA9PT0gaW5wdXRbMF0pIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5wdXRDbG9uZVswXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBlbDsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIC8vIElmIHRoZSB3aWRnZXQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgb24gdGhlIGZpbGUgaW5wdXQgaXRzZWxmLAogICAgICAgICAgICAvLyBvdmVycmlkZSB0aGlzLmVsZW1lbnQgd2l0aCB0aGUgZmlsZSBpbnB1dCBjbG9uZToKICAgICAgICAgICAgaWYgKGlucHV0WzBdID09PSB0aGlzLmVsZW1lbnRbMF0pIHsKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IGlucHV0Q2xvbmU7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfb25DaGFuZ2U6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0aGF0ID0gZS5kYXRhLmZpbGV1cGxvYWQsCiAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgIGZpbGVzOiAkLmVhY2goJC5tYWtlQXJyYXkoZS50YXJnZXQuZmlsZXMpLCB0aGF0Ll9ub3JtYWxpemVGaWxlKSwKICAgICAgICAgICAgICAgICAgICBmaWxlSW5wdXQ6ICQoZS50YXJnZXQpLAogICAgICAgICAgICAgICAgICAgIGZvcm06ICQoZS50YXJnZXQuZm9ybSkKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmICghZGF0YS5maWxlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaWxlcyBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlLCB0aGUgYnJvd3NlciBkb2VzIG5vdAogICAgICAgICAgICAgICAgLy8gc3VwcG9ydCB0aGUgRmlsZSBBUEkgYW5kIHdlIGFkZCBhIHBzZXVkbyBGaWxlIG9iamVjdCB3aXRoCiAgICAgICAgICAgICAgICAvLyB0aGUgaW5wdXQgdmFsdWUgYXMgbmFtZSB3aXRoIHBhdGggaW5mb3JtYXRpb24gcmVtb3ZlZDoKICAgICAgICAgICAgICAgIGRhdGEuZmlsZXMgPSBbe25hbWU6IGUudGFyZ2V0LnZhbHVlLnJlcGxhY2UoL14uKlxcLywgJycpfV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5yZXBsYWNlRmlsZUlucHV0KSB7CiAgICAgICAgICAgICAgICB0aGF0Ll9yZXBsYWNlRmlsZUlucHV0KGRhdGEuZmlsZUlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodGhhdC5fdHJpZ2dlcignY2hhbmdlJywgZSwgZGF0YSkgPT09IGZhbHNlIHx8CiAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25BZGQoZSwgZGF0YSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfb25QYXN0ZTogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBlLmRhdGEuZmlsZXVwbG9hZCwKICAgICAgICAgICAgICAgIGNiZCA9IGUub3JpZ2luYWxFdmVudC5jbGlwYm9hcmREYXRhLAogICAgICAgICAgICAgICAgaXRlbXMgPSAoY2JkICYmIGNiZC5pdGVtcykgfHwgW10sCiAgICAgICAgICAgICAgICBkYXRhID0ge2ZpbGVzOiBbXX07CiAgICAgICAgICAgICQuZWFjaChpdGVtcywgZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7CiAgICAgICAgICAgICAgICB2YXIgZmlsZSA9IGl0ZW0uZ2V0QXNGaWxlICYmIGl0ZW0uZ2V0QXNGaWxlKCk7CiAgICAgICAgICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICAgICAgICAgIGRhdGEuZmlsZXMucHVzaChmaWxlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlmICh0aGF0Ll90cmlnZ2VyKCdwYXN0ZScsIGUsIGRhdGEpID09PSBmYWxzZSB8fAogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uQWRkKGUsIGRhdGEpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX29uRHJvcDogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBlLmRhdGEuZmlsZXVwbG9hZCwKICAgICAgICAgICAgICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyID0gZS5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2ZlciwKICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgZmlsZXM6ICQuZWFjaCgKICAgICAgICAgICAgICAgICAgICAgICAgJC5tYWtlQXJyYXkoZGF0YVRyYW5zZmVyICYmIGRhdGFUcmFuc2Zlci5maWxlcyksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX25vcm1hbGl6ZUZpbGUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAodGhhdC5fdHJpZ2dlcignZHJvcCcsIGUsIGRhdGEpID09PSBmYWxzZSB8fAogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uQWRkKGUsIGRhdGEpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB9LAoKICAgICAgICBfb25EcmFnT3ZlcjogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBlLmRhdGEuZmlsZXVwbG9hZCwKICAgICAgICAgICAgICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyID0gZS5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2ZlcjsKICAgICAgICAgICAgaWYgKHRoYXQuX3RyaWdnZXIoJ2RyYWdvdmVyJywgZSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGFUcmFuc2ZlcikgewogICAgICAgICAgICAgICAgZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSBkYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfSwKCiAgICAgICAgX2luaXRFdmVudEhhbmRsZXJzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBucyA9IHRoaXMub3B0aW9ucy5uYW1lc3BhY2U7CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5kcm9wWm9uZQogICAgICAgICAgICAgICAgLmJpbmQoJ2RyYWdvdmVyLicgKyBucywge2ZpbGV1cGxvYWQ6IHRoaXN9LCB0aGlzLl9vbkRyYWdPdmVyKQogICAgICAgICAgICAgICAgLmJpbmQoJ2Ryb3AuJyArIG5zLCB7ZmlsZXVwbG9hZDogdGhpc30sIHRoaXMuX29uRHJvcCkKICAgICAgICAgICAgICAgIC5iaW5kKCdwYXN0ZS4nICsgbnMsIHtmaWxldXBsb2FkOiB0aGlzfSwgdGhpcy5fb25QYXN0ZSk7CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5maWxlSW5wdXQKICAgICAgICAgICAgICAgIC5iaW5kKCdjaGFuZ2UuJyArIG5zLCB7ZmlsZXVwbG9hZDogdGhpc30sIHRoaXMuX29uQ2hhbmdlKTsKICAgICAgICB9LAoKICAgICAgICBfZGVzdHJveUV2ZW50SGFuZGxlcnM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG5zID0gdGhpcy5vcHRpb25zLm5hbWVzcGFjZTsKICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyb3Bab25lCiAgICAgICAgICAgICAgICAudW5iaW5kKCdkcmFnb3Zlci4nICsgbnMsIHRoaXMuX29uRHJhZ092ZXIpCiAgICAgICAgICAgICAgICAudW5iaW5kKCdkcm9wLicgKyBucywgdGhpcy5fb25Ecm9wKQogICAgICAgICAgICAgICAgLnVuYmluZCgncGFzdGUuJyArIG5zLCB0aGlzLl9vblBhc3RlKTsKICAgICAgICAgICAgdGhpcy5vcHRpb25zLmZpbGVJbnB1dAogICAgICAgICAgICAgICAgLnVuYmluZCgnY2hhbmdlLicgKyBucywgdGhpcy5fb25DaGFuZ2UpOwogICAgICAgIH0sCgogICAgICAgIF9iZWZvcmVTZXRPcHRpb246IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7CiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgfSwKCiAgICAgICAgX2FmdGVyU2V0T3B0aW9uOiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkgewogICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmZpbGVJbnB1dCkgewogICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQgPSAkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFvcHRpb25zLmRyb3Bab25lKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLmRyb3Bab25lID0gJCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX2luaXRFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgfSwKCiAgICAgICAgX3NldE9wdGlvbjogZnVuY3Rpb24gKGtleSwgdmFsdWUpIHsKICAgICAgICAgICAgdmFyIHJlZnJlc2ggPSAkLmluQXJyYXkoa2V5LCB0aGlzLl9yZWZyZXNoT3B0aW9uc0xpc3QpICE9PSAtMTsKICAgICAgICAgICAgaWYgKHJlZnJlc2gpIHsKICAgICAgICAgICAgICAgIHRoaXMuX2JlZm9yZVNldE9wdGlvbihrZXksIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5jYWxsKHRoaXMsIGtleSwgdmFsdWUpOwogICAgICAgICAgICBpZiAocmVmcmVzaCkgewogICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJTZXRPcHRpb24oa2V5LCB2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfY3JlYXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zOwogICAgICAgICAgICBvcHRpb25zLm5hbWVzcGFjZSA9IG9wdGlvbnMubmFtZXNwYWNlIHx8IHRoaXMud2lkZ2V0TmFtZTsKICAgICAgICAgICAgaWYgKG9wdGlvbnMuZmlsZUlucHV0ID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlsZUlucHV0ID0gdGhpcy5lbGVtZW50LmlzKCdpbnB1dDpmaWxlJykgPwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgOiB0aGlzLmVsZW1lbnQuZmluZCgnaW5wdXQ6ZmlsZScpOwogICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLmZpbGVJbnB1dCkgewogICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQgPSAkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFvcHRpb25zLmRyb3Bab25lKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zLmRyb3Bab25lID0gJCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX3Nsb3RzID0gW107CiAgICAgICAgICAgIHRoaXMuX3NlcXVlbmNlID0gdGhpcy5fZ2V0WEhSUHJvbWlzZSh0cnVlKTsKICAgICAgICAgICAgdGhpcy5fc2VuZGluZyA9IHRoaXMuX2FjdGl2ZSA9IHRoaXMuX2xvYWRlZCA9IHRoaXMuX3RvdGFsID0gMDsKICAgICAgICAgICAgdGhpcy5faW5pdEV2ZW50SGFuZGxlcnMoKTsKICAgICAgICB9LAoKICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgICAgICQuV2lkZ2V0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICQuV2lkZ2V0LnByb3RvdHlwZS5lbmFibGUuY2FsbCh0aGlzKTsKICAgICAgICAgICAgdGhpcy5faW5pdEV2ZW50SGFuZGxlcnMoKTsKICAgICAgICB9LAoKICAgICAgICBkaXNhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lFdmVudEhhbmRsZXJzKCk7CiAgICAgICAgICAgICQuV2lkZ2V0LnByb3RvdHlwZS5kaXNhYmxlLmNhbGwodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgZXhwb3NlZCB0byB0aGUgd2lkZ2V0IEFQSSBhbmQgYWxsb3dzIGFkZGluZyBmaWxlcwogICAgICAgIC8vIHVzaW5nIHRoZSBmaWxldXBsb2FkIEFQSS4gVGhlIGRhdGEgcGFyYW1ldGVyIGFjY2VwdHMgYW4gb2JqZWN0IHdoaWNoCiAgICAgICAgLy8gbXVzdCBoYXZlIGEgZmlsZXMgcHJvcGVydHkgYW5kIGNhbiBjb250YWluIGFkZGl0aW9uYWwgb3B0aW9uczoKICAgICAgICAvLyAuZmlsZXVwbG9hZCgnYWRkJywge2ZpbGVzOiBmaWxlc0xpc3R9KTsKICAgICAgICBhZGQ6IGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAgIGlmICghZGF0YSB8fCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhLmZpbGVzID0gJC5lYWNoKCQubWFrZUFycmF5KGRhdGEuZmlsZXMpLCB0aGlzLl9ub3JtYWxpemVGaWxlKTsKICAgICAgICAgICAgdGhpcy5fb25BZGQobnVsbCwgZGF0YSk7CiAgICAgICAgfSwKCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgZXhwb3NlZCB0byB0aGUgd2lkZ2V0IEFQSSBhbmQgYWxsb3dzIHNlbmRpbmcgZmlsZXMKICAgICAgICAvLyB1c2luZyB0aGUgZmlsZXVwbG9hZCBBUEkuIFRoZSBkYXRhIHBhcmFtZXRlciBhY2NlcHRzIGFuIG9iamVjdCB3aGljaAogICAgICAgIC8vIG11c3QgaGF2ZSBhIGZpbGVzIHByb3BlcnR5IGFuZCBjYW4gY29udGFpbiBhZGRpdGlvbmFsIG9wdGlvbnM6CiAgICAgICAgLy8gLmZpbGV1cGxvYWQoJ3NlbmQnLCB7ZmlsZXM6IGZpbGVzTGlzdH0pOwogICAgICAgIC8vIFRoZSBtZXRob2QgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IGZvciB0aGUgZmlsZSB1cGxvYWQgY2FsbC4KICAgICAgICBzZW5kOiBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICBpZiAoZGF0YSAmJiAhdGhpcy5vcHRpb25zLmRpc2FibGVkKSB7CiAgICAgICAgICAgICAgICBkYXRhLmZpbGVzID0gJC5lYWNoKCQubWFrZUFycmF5KGRhdGEuZmlsZXMpLCB0aGlzLl9ub3JtYWxpemVGaWxlKTsKICAgICAgICAgICAgICAgIGlmIChkYXRhLmZpbGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vblNlbmQobnVsbCwgZGF0YSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFhIUlByb21pc2UoZmFsc2UsIGRhdGEgJiYgZGF0YS5jb250ZXh0KTsKICAgICAgICB9CgogICAgfSk7Cgp9KGpRdWVyeSkpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/jquery.iframe-transport.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IElmcmFtZSBUcmFuc3BvcnQgUGx1Z2luIDEuMi41CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlaW1wL2pRdWVyeS1GaWxlLVVwbG9hZAogKgogKiBDb3B5cmlnaHQgMjAxMSwgU2ViYXN0aWFuIFRzY2hhbgogKiBodHRwczovL2JsdWVpbXAubmV0CiAqCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZToKICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKICovCgovKmpzbGludCB1bnBhcmFtOiB0cnVlLCBub21lbjogdHJ1ZSAqLwovKmdsb2JhbCBqUXVlcnksIGRvY3VtZW50ICovCgooZnVuY3Rpb24gKCQpIHsKICAgICd1c2Ugc3RyaWN0JzsKCiAgICAvLyBIZWxwZXIgdmFyaWFibGUgdG8gY3JlYXRlIHVuaXF1ZSBuYW1lcyBmb3IgdGhlIHRyYW5zcG9ydCBpZnJhbWVzOgogICAgdmFyIGNvdW50ZXIgPSAwOwoKICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGFjY2VwdHMgdGhyZWUgYWRkaXRpb25hbCBvcHRpb25zOgogICAgLy8gb3B0aW9ucy5maWxlSW5wdXQ6IGEgalF1ZXJ5IGNvbGxlY3Rpb24gb2YgZmlsZSBpbnB1dCBmaWVsZHMKICAgIC8vIG9wdGlvbnMucGFyYW1OYW1lOiB0aGUgcGFyYW1ldGVyIG5hbWUgZm9yIHRoZSBmaWxlIGZvcm0gZGF0YSwKICAgIC8vICBvdmVycmlkZXMgdGhlIG5hbWUgcHJvcGVydHkgb2YgdGhlIGZpbGUgaW5wdXQgZmllbGQocykKICAgIC8vIG9wdGlvbnMuZm9ybURhdGE6IGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBuYW1lIGFuZCB2YWx1ZSBwcm9wZXJ0aWVzLAogICAgLy8gIGVxdWl2YWxlbnQgdG8gdGhlIHJldHVybiBkYXRhIG9mIC5zZXJpYWxpemVBcnJheSgpLCBlLmcuOgogICAgLy8gIFt7bmFtZTogJ2EnLCB2YWx1ZTogMX0sIHtuYW1lOiAnYicsIHZhbHVlOiAyfV0KICAgICQuYWpheFRyYW5zcG9ydCgnaWZyYW1lJywgZnVuY3Rpb24gKG9wdGlvbnMpIHsKICAgICAgICBpZiAob3B0aW9ucy5hc3luYyAmJiAob3B0aW9ucy50eXBlID09PSAnUE9TVCcgfHwgb3B0aW9ucy50eXBlID09PSAnR0VUJykpIHsKICAgICAgICAgICAgdmFyIGZvcm0sCiAgICAgICAgICAgICAgICBpZnJhbWU7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBzZW5kOiBmdW5jdGlvbiAoXywgY29tcGxldGVDYWxsYmFjaykgewogICAgICAgICAgICAgICAgICAgIGZvcm0gPSAkKCc8Zm9ybSBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9mb3JtPicpOwogICAgICAgICAgICAgICAgICAgIC8vIGphdmFzY3JpcHQ6ZmFsc2UgYXMgaW5pdGlhbCBpZnJhbWUgc3JjCiAgICAgICAgICAgICAgICAgICAgLy8gcHJldmVudHMgd2FybmluZyBwb3B1cHMgb24gSFRUUFMgaW4gSUU2LgogICAgICAgICAgICAgICAgICAgIC8vIElFIHZlcnNpb25zIGJlbG93IElFOCBjYW5ub3Qgc2V0IHRoZSBuYW1lIHByb3BlcnR5IG9mCiAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgRE9NLAogICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNldCB0aGUgbmFtZSBhbG9uZyB3aXRoIHRoZSBpZnJhbWUgSFRNTCBtYXJrdXA6CiAgICAgICAgICAgICAgICAgICAgaWZyYW1lID0gJCgKICAgICAgICAgICAgICAgICAgICAgICAgJzxpZnJhbWUgc3JjPSJqYXZhc2NyaXB0OmZhbHNlOyIgbmFtZT0iaWZyYW1lLXRyYW5zcG9ydC0nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3VudGVyICs9IDEpICsgJyI+PC9pZnJhbWU+JwogICAgICAgICAgICAgICAgICAgICkuYmluZCgnbG9hZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVJbnB1dENsb25lczsKICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudW5iaW5kKCdsb2FkJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kKCdsb2FkJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXcmFwIGluIGEgdHJ5L2NhdGNoIGJsb2NrIHRvIGNhdGNoIGV4Y2VwdGlvbnMgdGhyb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0cnlpbmcgdG8gYWNjZXNzIGNyb3NzLWRvbWFpbiBpZnJhbWUgY29udGVudHM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBpZnJhbWUuY29udGVudHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR29vZ2xlIENocm9tZSBhbmQgRmlyZWZveCBkbyBub3QgdGhyb3cgYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhjZXB0aW9uIHdoZW4gY2FsbGluZyBpZnJhbWUuY29udGVudHMoKSBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNvIHdlIHVuaWZ5IHRoZSByZXNwb25zZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5sZW5ndGggfHwgIXJlc3BvbnNlWzBdLmZpcnN0Q2hpbGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNvbXBsZXRlIGNhbGxiYWNrIHJldHVybnMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWZyYW1lIGNvbnRlbnQgZG9jdW1lbnQgYXMgcmVzcG9uc2Ugb2JqZWN0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlQ2FsbGJhY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2lmcmFtZSc6IHJlc3BvbnNlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRml4IGZvciBJRSBlbmRsZXNzIHByb2dyZXNzIGJhciBhY3Rpdml0eSBidWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoaGFwcGVucyBvbiBmb3JtIHN1Ym1pdHMgdG8gaWZyYW1lIHRhcmdldHMpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJzxpZnJhbWUgc3JjPSJqYXZhc2NyaXB0OmZhbHNlOyI+PC9pZnJhbWU+JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGZvcm0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ3RhcmdldCcsIGlmcmFtZS5wcm9wKCduYW1lJykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgnYWN0aW9uJywgb3B0aW9ucy51cmwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgnbWV0aG9kJywgb3B0aW9ucy50eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZm9ybURhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZvcm1EYXRhLCBmdW5jdGlvbiAoaW5kZXgsIGZpZWxkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9ImhpZGRlbiIvPicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wKCduYW1lJywgZmllbGQubmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChmaWVsZC52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGZvcm0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZmlsZUlucHV0ICYmIG9wdGlvbnMuZmlsZUlucHV0Lmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9PT0gJ1BPU1QnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlSW5wdXRDbG9uZXMgPSBvcHRpb25zLmZpbGVJbnB1dC5jbG9uZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IGEgY2xvbmUgZm9yIGVhY2ggZmlsZSBpbnB1dCBmaWVsZDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlsZUlucHV0LmFmdGVyKGZ1bmN0aW9uIChpbmRleCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxlSW5wdXRDbG9uZXNbaW5kZXhdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5wYXJhbU5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGVJbnB1dC5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wcm9wKCduYW1lJywgb3B0aW9ucy5wYXJhbU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kaW5nIHRoZSBmaWxlIGlucHV0IGZpZWxkcyB0byB0aGUgaGlkZGVuIGZvcm0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZXMgdGhlbSBmcm9tIHRoZWlyIG9yaWdpbmFsIGxvY2F0aW9uOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQob3B0aW9ucy5maWxlSW5wdXQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ2VuY3R5cGUnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5jdHlwZSBtdXN0IGJlIHNldCBhcyBlbmNvZGluZyBmb3IgSUU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ2VuY29kaW5nJywgJ211bHRpcGFydC9mb3JtLWRhdGEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIGZpbGUgaW5wdXQgZmllbGRzIGF0IHRoZWlyIG9yaWdpbmFsIGxvY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5IHJlcGxhY2luZyB0aGUgY2xvbmVzIHdpdGggdGhlIG9yaWdpbmFsczoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVJbnB1dENsb25lcyAmJiBmaWxlSW5wdXRDbG9uZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGVJbnB1dC5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaW5wdXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2xvbmUgPSAkKGZpbGVJbnB1dENsb25lc1tpbmRleF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaW5wdXQpLnByb3AoJ25hbWUnLCBjbG9uZS5wcm9wKCduYW1lJykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lLnJlcGxhY2VXaXRoKGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgZm9ybS5hcHBlbmQoaWZyYW1lKS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChpZnJhbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gamF2YXNjcmlwdDpmYWxzZSBhcyBpZnJhbWUgc3JjIGFib3J0cyB0aGUgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgcHJldmVudHMgd2FybmluZyBwb3B1cHMgb24gSFRUUFMgaW4gSUU2LgogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25jYXQgaXMgdXNlZCB0byBhdm9pZCB0aGUgIlNjcmlwdCBVUkwiIEpTTGludCBlcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudW5iaW5kKCdsb2FkJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wKCdzcmMnLCAnamF2YXNjcmlwdCcuY29uY2F0KCc6ZmFsc2U7JykpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybSkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9KTsKCiAgICAvLyBUaGUgaWZyYW1lIHRyYW5zcG9ydCByZXR1cm5zIHRoZSBpZnJhbWUgY29udGVudCBkb2N1bWVudCBhcyByZXNwb25zZS4KICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRkcyBjb252ZXJ0ZXJzIGZyb20gaWZyYW1lIHRvIHRleHQsIGpzb24sIGh0bWwsIGFuZCBzY3JpcHQ6CiAgICAkLmFqYXhTZXR1cCh7CiAgICAgICAgY29udmVydGVyczogewogICAgICAgICAgICAnaWZyYW1lIHRleHQnOiBmdW5jdGlvbiAoaWZyYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJChpZnJhbWVbMF0uYm9keSkudGV4dCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICAnaWZyYW1lIGpzb24nOiBmdW5jdGlvbiAoaWZyYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5wYXJzZUpTT04oJChpZnJhbWVbMF0uYm9keSkudGV4dCgpKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ2lmcmFtZSBodG1sJzogZnVuY3Rpb24gKGlmcmFtZSkgewogICAgICAgICAgICAgICAgcmV0dXJuICQoaWZyYW1lWzBdLmJvZHkpLmh0bWwoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ2lmcmFtZSBzY3JpcHQnOiBmdW5jdGlvbiAoaWZyYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5nbG9iYWxFdmFsKCQoaWZyYW1lWzBdLmJvZHkpLnRleHQoKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKCn0oalF1ZXJ5KSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Jlb3JkZXJfbW9kZSddID0gJ1Jlb3JkZXIgbW9kZSBoYXMgYmVlbiBhY3RpdmF0ZWQuICBEcmFnIHRoZSBpdGVtcyBpbnRvIHRoZWlyIGRlc2lyZWQgb3JkZXIuICBUbyBhYm9ydCB0aGUgb3BlcmF0aW9uIGNsaWNrICZxdW90O2NhbmNlbCZxdW90Oy4gIFRvIHNhdmUgdGhlIGNoYW5nZXMgY2xpY2sgJnF1b3Q7c3VibWl0JnF1b3Q7JzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyJzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnSWNvbic7CiRsYW5nWydmaWVsZF9pY29uJ10gPSAnSWNvbiAoQ0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9hY3Rpdml0eSddID0gJ0FjdGl2aXRpZXMgKENHU29jaWFsQXBwKSc7CiRsYW5nWydwYXJhbV9pZGxpc3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBjb21wYW55IGlkcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkLiAgTm90ZSwgb25seSBwdWJsaXNoZWQgY29tcGFuaWVzIHdpbGwgYmUgZGlzcGxheWVkIHVubGVzcyBzcGVjaWZpZWQgZGlmZmVyZW50bHkgYnkgYW5vdGhlciBwYXJhbWV0ZXInOwokbGFuZ1snZXZlbnRkZXNjLU9uQWRkQ29tcGFueSddID0gJ0V2ZW50IHNlbnQgYWZ0ZXIgYSBuZXcgY29tcGFueSBpcyBhZGRlZCB0byB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFdmVudCBzZW50IGFmdGVyIGFuIGV4aXN0aW5nIGNvbXBhbnkgcmVjb3JkIGlzIHVwZGF0ZWQgaW4gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkRlbGV0ZUNvbXBhbnknXSA9ICdFdmVudCBzZW50IGJlZm9yZSBhIGNvbXBhbnkgcmVjb3JkIGlzIGRlbGV0ZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1PbkFkZENvbXBhbnknXSA9ICc8cD5TZW50IGFmdGVyIGEgY29tcGFueSBpcyBhZGRlZCB0byB0aGUgZGF0YWJhc2UuPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CiAgPGxpPiJ3aG8iIC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+CiAgPGxpPiJvYmplY3QiIC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPgo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25FZGl0Q29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIHVwZGF0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvcD4KPGg0PlBhcmFtZXRlcnM6PC9oND4KPHVsPgogIDxsaT4id2hvIiAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPgogIDxsaT4ib2JqZWN0IiAtIFRoZSBjZF9jb21wYW55IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGEgdGhhdCB3YXMgc2F2ZWQuPC9saT4KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLU9uRGVsZXRlQ29tcGFueSddID0gJzxwPlNlbnQgYmVmb3JlIGEgY29tcGFueSBpcyBkZWxldGVkIGZyb20gdGhlICBkYXRhYmFzZS48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KICA8bGk+IndobyIgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4KICA8bGk+ImNpZCIgLSBJZCBvZiB0aGUgY29tcGFueSByZWNvcmQgdG8gYmUgZGVsZXRlZC48L2xpPgo8L3VsPic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIEZyb250ZW5kIEVkaXQgQWxidW0gVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRhbGJ1bV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEZyb250ZW5kIEVkaXQgQWxidW0gVGVtcGxhdGUnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIEVkaXQgQWxidW0gVGVtcGxhdGVzJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdF9hbGJ1bSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBlZGl0IHRoZSBhbGJ1bS4gIEFueSBlZGl0cyB0byB0aGUgY29tcGFueSBwcm9wZXJ0aWVzIHdpbGwgbm90IGJlIHNhdmVkISc7CiRsYW5nWydlZGl0X2FsYnVtJ10gPSAnRWRpdCBQaG90byBBbGJ1bSc7CiRsYW5nWydlcnJvcl9maWVsZGRlZl9ub3Rmb3VuZCddID0gJ0ZpZWxkIGRlZmluaXRpb24gd2l0aCBpZCAlZCBub3QgZm91bmQnOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIEdhbGxlcnkgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZ2FsbGVyeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEdhbGxlcnkgVGVtcGxhdGUnOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlcyddID0gJ0dhbGxlcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ29wX2NhbmNlbGxlZCddID0gJ0NhbmNlbGxlZCc7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0FkZCBvciBFZGl0IGEgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1sncHVibGlzaCddID0gJ1B1Ymxpc2gnOwokbGFuZ1snbXNnX2J1bGtkZWwnXSA9ICclZCBjb21wYW5pZXMgZGVsZXRlZCc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOb3RoaW5nIFNlbGVjdGVkJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdXaXRoIFNlbGVjdGVkJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdEaXNhYmxlJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdTZWxlY3QgQWxsJzsKJGxhbmdbJ21zZ19zZXR0aW5nc19jaGFuZ2VkJ10gPSAnU2V0dGluZ3MgQ2hhbmdlZCc7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZW0gbG9va2luZyB1cCBhZGRyZXNzOiAlcyc7CiRsYW5nWydlcnJfaW52YWxpZHVuaXRzJ10gPSAnVW5pdHMgc3BlY2lmaWVkIGFyZSBpbnZhbGlkLiAgdmFsaWQgdmFsdWVzIGFyZSBtaSxtaWxlLG1pbGVzLGttLGsnOwokbGFuZ1sndGl0bGVfbmV3c2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgU2VhcmNoIFRlbXBsYXRlJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlcyddID0gJ1NlYXJjaCBGb3JtIFRlbXBsYXRlcyc7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyduZXdzZWFyY2hfdGVtcGxhdGUnXSA9ICdTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfdXNlX29sZHNlYXJjaCddID0gJ1VzZSBvbGQgc2VhcmNoIGFjdGlvbiAoZG9lcyBub3Qgc3VwcG9ydCBxdWVyeWluZyBvbiBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGRvZXMgbm90IHJldHVybiBjYXRlZ29yeSBpbmZvcm1hdGlvbiBpbiByZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX211bHRpc2VsZWN0J10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snaW5mb191c2VyZWRpdCddID0gJ0lmIGVuYWJsZWQsIG9ubHkgYWRtaW5pc3RyYXRvcnMgY2FuIGVkaXQgdGhpcyBmaWVsZCBmb3IgZWFjaCBlbnRyeS4gIFRoaXMgaXMgdXNlZnVsIGlmIGFsbG93aW5nIGZyb250ZW5kIGFkZGluZy9lZGl0aW5nIG9mIGNvbXBhbnkgcmVjb3JkcyB0byBwcm92aWRlIGZpZWxkcyB0aGF0IHRoZSBvd25lci9lZGl0b3IgY2Fubm90IGVkaXQuJzsKJGxhbmdbJ2luZm9fdXNlcnZpZXcnXSA9ICdJZiBlbmFibGVkLCBhbGwgdXNlcnMgY2FuIHZpZXcgdGhpcyBmaWVsZCBmb3IgZWFjaCBlbnRyeS4gIElmIGRpc2FibGVkIG9ubHkgdGhlIG93bmVyIGFuZCBhZG1pbmlzdHJhdG9ycyBjYW4gdmlldyB0aGUgZmllbGQnOwokbGFuZ1snaW5mb19hbGJ1bV9maWVsZHR5cGUnXSA9ICdPbmx5IG9uZSBhbGJ1bSBmaWVsZCB0eXBlIGlzIHBlcm1pdHRlZC4gIEFsbG93aW5nIHVwbG9hZGluZyBvZiBudW1lcm91cyBpbWFnZXMgdG8gYXNzb2NpYXRlIHdpdGggYSBzcGVjaWZpYyBkYXRhYmFzZSBlbnRyeS4gIEltYWdlcyBjYW4gb25seSBiZSB1cGxvYWRlZCB0byBhbiBhbGJ1bSBmaWVsZCBmb3IgYW4gZXhpc3RpbmcgZW50cnkgKHdoZW4gZWRpdGluZyBhbiBlbnRyeSkgbm90IHdoZW4gaW5pdGlhbGx5IGFkZGluZyB0aGUgZW50cnkuJzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnQ29vcmRpbmF0ZXMnOwokbGFuZ1sndGh1bWJuYWlsJ10gPSAnVGh1bWJuYWlsJzsKJGxhbmdbJ2RyYWdfZHJvcF91cGxvYWQnXSA9ICdEcmFnIGFuZCBEcm9wIFVwbG9hZCc7CiRsYW5nWydkcm9wX2hlcmUnXSA9ICdEcm9wIGZpbGVzIGhlcmUnOwokbGFuZ1snaW5mb19kcmFnX2Ryb3AnXSA9ICdXaXRoIG1vc3QgbW9kZXJuIGJyb3dzZXJzIChleGNlcHQgSUUpIHlvdSBjYW4gZHJhZyBtdWx0aXBsZSBmaWxlcyBpbnRvIHRoZSBhZGphY2VudCBkcm9wIHpvbmUuICBUaGV5IHdpbGwgYmUgYXV0b21hdGljYWxseSB1cGxvYWRlZCBhbmQgYWRkZWQgdG8gdGhlIGFsYnVtJzsKJGxhbmdbJ2FsYnVtJ10gPSAnQWxidW0nOwokbGFuZ1snZXJyb3JfYWxidW1maWVsZGV4aXN0cyddID0gJ0FuIGFsYnVtIGZpZWxkIGFscmVhZHkgZXhpc3RzLiAgT25seSBvbmUgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnTm8gYWRkcmVzcyBmb3VuZCBpbiByZWNvcmQnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0Vycm9ycyc7CiRsYW5nWydwcm9tcHRfbnVtZXJyb3JzJ10gPSAnTnVtYmVyIG9mIGVycm9ycyBmb3VuZCc7CiRsYW5nWydwYXJhbV9yYWRpdXMnXSA9ICdTcGVjaWZ5IHRoZSByYWRpdXMgKGluIG1pbGVzKSBmb3IgYSByYWRpdXMgc2VhcmNoLiAgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxhdCBhbmQgbG9uZyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxvbmdpdHVkZSBjb29yZGluYXRlIGZvciBhIHJhZGl1cyBzZWFyY2gsIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sYXQnXSA9ICdTcGVjaWZ5IHRoZSBjZW50ZXIgbGF0aXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbG9uZyBhbmQgcmFkaXVzIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ2luZm9fZWRpdG9yMiddID0gJ1VzZSB0aGUgbmV3IGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVycmVkIHRvIGFzIGZlZWRpdDIpPC9lbT4gTm90ZTogVGhlIG9sZCBlZGl0b3Igd2lsbCBiZSByZW1vdmVkIGluIENvbXBhbnlEaXJlY3RvcnkgMS4xNSBvciBiZXlvbmQuJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnVXNlIG5ldyBGcm9udGVuZCBFZGl0b3InOwokbGFuZ1snZXJyb3JfZ2VuZXJhdGV1cmwnXSA9ICdQcm9ibGVtIG9jY3VycmVkIGdlbmVyYXRpbmcgYSBVUkwnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBPcmRlcic7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnTm8gY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCc7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdFZGl0aW5nIENvbXBhbnknOwokbGFuZ1sncHJvbXB0X2FkZGNvbXBhbnknXSA9ICdBZGRpbmcgYSBuZXcgY29tcGFueSc7CiRsYW5nWydvcmdhbml6YXRpb24nXSA9ICdPcmdhbml6YXRpb24nOwokbGFuZ1snZmllbGRzJ10gPSAnRmllbGRzJzsKJGxhbmdbJ2ZpZWxkX2FsYnVtJ10gPSAnQWxidW0gKGdyb3VwIG9mIHBpY3R1cmVzKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnUHJlcGVuZCB3ZWJzaXRlIHZhbHVlcyB3aXRoIGh0dHA6Ly8nOwokbGFuZ1snaW5mb19wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ0lmIGEgd2Vic2l0ZSB2YWx1ZSBpcyBzcGVjaWZpZWQsIGFuZCBkb2VzIG5vdCBiZWdpbiB3aXRoIGEgdXJscHJlZml4IChodHRwLCBodHRwcywgZnRwKS4uICBodHRwOi8vIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGl0cyB2YWx1ZSBvbiBzYXZlJzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdPd25lciBpZCBpcyBub3Qgc2V0IG9yIGlzIGludmFsaWQnOwokbGFuZ1sncHJvbXB0X2V4dGVuc2lvbnMnXSA9ICdWYWxpZCBGaWxlIEV4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19leHRlbnNpb25zJ10gPSAnUHJvdmlkZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyAoY2FzZSBpbnNlbnNpdGl2ZSkuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBDR0V4dGVuc2lvbnMgZGVmYXVsdCB2YWx1ZXMgd2lsbCBiZSB1c2VkLic7CiRsYW5nWydwcm9tcHRfYWRkZWRpdGZpZWxkJ10gPSAnQWRkL0VkaXQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZF9maWxlJ10gPSAnRmlsZSc7CiRsYW5nWydpbnVzZSddID0gJ2luIHVzZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9oaWVyYXJjaHknXSA9ICdTcGVjaWZ5IGEgaGllcmFyY2h5IHN0cmluZyAob3IgcG9ydGlvbikgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQsIGFuZCBtYXkgaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy4gIGkuZTogJnF1b3Q7Q2FycyomcXVvdDsuIFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9fZmlsdGVyX2FkZHJlc3MnXSA9ICdTcGVjaWZ5IGFuIGFkZHJlc3Mgc3RyaW5nIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLiAgaS5lOiAmcXVvdDsqVGV4YXMqJnF1b3Q7LiBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9uYW1lJ10gPSAnU3BlY2lmeSBhIGNvbXBhbnkgbmFtZSAob3IgcGFydGlhbCBjb21wYW55IG5hbWUgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypyZXN0YXJhdW50JnF1b3Q7IFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ05vIGRhdGFiYXNlIGVudHJpZXMgbWF0Y2hlZCB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkJzsKJGxhbmdbJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnXSA9ICdXZSBhcmUgc29ycnksIG5vIGNvbXBhbmllcyBtYXRjaGVkIHlvdXIgY3JpdGVyaWEuJzsKJGxhbmdbJ2VkaXRfZmlsdGVyJ10gPSAnRWRpdCBGaWx0ZXInOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydCBCeSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1sncmVzZXQnXSA9ICdSZXNldCc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiAgaS5lOiB7Q29tcGFueURpcmVjdG9yeSBjYXRlZ29yeT1cJ3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGhcJyBjYXRlZ29yeTI9XCdjYXJzLHRydWNrc1wnfSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXMnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkzJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgdmlldywgYW5kIG9ubHkgd2hlbiB0aGUgPGVtPmNhdGVnb3J5MjwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHlldCBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiBTZWUgdGhlIGhlbHAgZm9yIHRoZSBjYXRlZ29yeTIgcGFyYW1ldGVyIGZvciBtb3JlIGluZm9ybWF0aW9uJzsKJGxhbmdbJ2JhZG5hbWVnaXZlbiddID0gJ1RoZSBuYW1lIHNwZWNpZmllZCBpcyBpbnZhbGlkIChnZW5lcmFsbHkgbmFtZXMgc2hvdWxkIGJlIHVybCBmcmllbmRseSknOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0N1cnJlbnQgVmFsdWUnOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRsaXN0dGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5mcm9udGVuZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgZnJvbnRlbmQgbGlzdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHJlbmRlcmluZyB0aGUgb3V0cHV0JzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+c2VhcmNoPC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB3aGF0IHBhZ2Ugc2hvdWxkIGJlIHVzZWQgZm9yIGRpc3BsYXlpbmcgbWF0Y2hpbmcgcmVzdWx0cy4nOwokbGFuZ1sncGFyYW1fbmFtZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpPC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aGVpciBuYW1lLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWxsb3dlZC4gIGkuZTogbmFtZT0mcXVvdDthKiZxdW90Oy4gIEFkZGl0aW9uYWxseSwgcmVndWxhciBleHByZXNzaW9ucyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHByZWZpeGluZyB0aGUgdmFsdWUgd2l0aCA6Oi4gIGkuZTogbmFtZT0mcXVvdDs6OlswLTldLiomcXVvdDsnOwokbGFuZ1sncGFyYW1fbm9wcmV0dHknXSA9ICdBcHBsaWNhYmxlIHRvIGFsbCB2aWV3cyAodGhvdWdoIHN0aWxsIGluIGVhcmx5IGRldmVsb3BtZW50KSB0aGlzIHBhcmFtZXRlciB3aWxsIHR1cm4gb2ZmIHByZXR0eSB1cmwgZ2VuZXJhdGlvbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdHZW5lcmF0ZSBlcnJvciAoYnV0IGNvbnRpbnVlKSc7CiRsYW5nWydlcnJvcl91cGRhdGVfY29tcGFueSddID0gJ0Vycm9yIG9jY3VycmVkIHVwZGF0aW5nIGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ2lnbm9yZSddID0gJ0lnbm9yZSc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnQ2F0ZWdvcnkgRGVsZXRlZCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ0NyZWF0ZSBVUkxTIGZvciByZWNvcmRzIHdpdGhvdXQgVVJMUyc7CiRsYW5nWydpbmZvX2NyZWF0ZV91cmwnXSA9ICdJZiBubyBVUkwgaXMgc3BlY2lmaWVkIGZvciBhIHJlY29yZCwgdGhpcyBvcHRpb24gd2lsbCBlbnN1cmUgdGhhdCB0aGV5IGFyZSBnZW5lcmF0ZWQuIElmIHRoZSAmcXVvdDtSZXF1aXJlIFVSTFMmcXVvdDsgcHJlZmVyZW5jZSBpcyBzZXQsIFVSTFMgd2lsbCBiZSBlbnN1cmVkIHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdDcmVhdGUgVVJMUyBPbiBDb3B5JzsKJGxhbmdbJ2luZm9fdXJsX2NyZWF0ZW9uY29weSddID0gJ1doZW4gY29weWluZyBjb21wYW5pZXMsIHNob3VsZCBhIFVSTCBiZSBjcmVhdGVkIGZvciB0aGUgZGVzdGluYXRpb24gcmVjb3JkLiAgVGhpcyBvbmx5IGFwcGxpZXMgaWYgVVJMUyBhcmUgbm90IHJlcXVpcmVkLic7CiRsYW5nWydlcnJvcl9iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiBlbmNvdW50ZXJlZCAlZCBlcnJvcnMnOwokbGFuZ1snaW5mb19iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiB1cGRhdGVkICVkIHJlY29yZHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1RoZSBVUkwgc3BlY2lmaWVkIChvciBjYWxjdWxhdGVkKSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRuYW1lJ10gPSAnVGhlIENvbXBhbnkgTmFtZSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnVGhlIFVSTCBmaWVsZCBpcyBub3QgZW1wdHkuLi4gY2Fubm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyB2YWx1ZSc7CiRsYW5nWydlcnJvcl91cmxyZXF1aXJlZCddID0gJ0EgVVJMIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2dldHVybCddID0gJ0NhbGN1bGF0ZSBVUkwnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnQSBVUkwgaXMgcmVxdWlyZWQnOwokbGFuZ1snaW5mb191cmxfcmVxdWlyZWQnXSA9ICdTaG91bGQgdGhlIFVSTCBmaWVsZCBiZSByZXF1aXJlZCB0byBiZSB2YWxpZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgY29tcGFueT8nOwokbGFuZ1snY2hlY2snXSA9ICdDaGVjayc7CiRsYW5nWyd1cmwnXSA9ICdVUkwnOwokbGFuZ1snY3JlYXRldXJscyddID0gJ0NyZWF0ZSBVUkxTJzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdBdXRvbWF0aWNhbGx5IENyZWF0ZSBVUkxTIEZvciBleGlzdGluZyByZWNvcmRzIHdpdGggbm8gVVJMJzsKJGxhbmdbJ3VybF9yZWRpcmVjdG9sZCddID0gJ0RvIDMwMSBSZWRpcmVjdCB0byBuZXcgVVJMUyc7CiRsYW5nWydpbmZvX3VybF9yZWRpcmVjdG9sZCddID0gJ09uIGFuIGluY29taW5nIHJlcXVlc3QgZm9yIGEgY29tcGFueSB1c2luZyB0aGUgb2xkIFVSTCBwYXR0ZXJucywgcGVyZm9ybSBhIDMwMSByZWRpcmVjdCB0byB0aGUgbmV3IFVSTC4gIFRoaXMgd2lsbCBvbmx5IHdvcmsgZm9yIGVudHJpZXMgdGhhdCBoYXZlIFVSTFMgY3JlYXRlZC4nOwokbGFuZ1snaW5mb191cmxfYXV0b2NyZWF0ZSddID0gJ1doZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBjb21wYW55IGRlZmluaXRpb24sIGlmIHRoZSBVUkwgZmllbGQgaXMgYmxhbmsgb25lIHdpbGwgYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIGNvbXBhbnkgbmFtZS4gIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gZnJvbnRlbmQgZWRpdGluZyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHVuaXF1ZSBVUkxTJzsKJGxhbmdbJ3VybHMnXSA9ICdVUkxTJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGFkZHJlc3MnXSA9ICdXaGVuIGRvaW5nIGEgcG9zdGFsIGNvZGUgc2VhcmNoLCB1c2luZyB0aGUgc2VhcmNoIGFjdGlvbiwgaWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgdGhlIGFkZHJlc3MgZmllbGQgd2lsbCBhbHNvIGJlIHNlYXJjaGVkIGZvciB0aGUgbWF0Y2hpbmcgc3RyaW5nJzsKJGxhbmdbJ3BhcmFtX3Bvc3RhbGNoYXJzJ10gPSAnV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgb3B0aW9uIGFsbG93cyBsaW1pdGluZyB0aGUgZWZmZWN0aXZlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9uZiB0aGUgcG9zdGFsIGNvZGUnOwokbGFuZ1snbGFiZWxfaW5jbHVkZWNoaWxkcmVuJ10gPSAnSW5jbHVkZSBDaGlsZCBIaWVyYXJjaGllcyc7CiRsYW5nWydhbnknXSA9ICdBbnknOwokbGFuZ1snaW5mb19jYXRlZ29yeWNvbHVtbiddID0gJ1NwZWNpZnkgdGhlIG5hbWUgb2YgYSBjb2x1bW4gdGhhdCBzcGVjaWZpZXMgb25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXMgKHNlcGFyYXRlZCBieSBhIGNvbW1hIDxlbT4oLCk8ZW0+IFRoYXQgY2FuIGJlIHVzZWQgdG8gcXVpY2tseSBwb3B1bGF0ZSB0aGUgY2F0ZWdvcmllcyBmb3IgZWFjaCByZWNvcmQuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0NhdGVnb3JpZXMgQ29sdW1uJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnQ2F0ZWdvcnkgY29sdW1uICVzIG5vdCBmb3VuZCc7CiRsYW5nWydleHBpcmVzJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydyZXNldF90b19mYWN0b3J5J10gPSAnUmVzZXQgdG8gRmFjdG9yeSBEZWZhdWx0cyc7CiRsYW5nWydwcm9tcHRfZW1haWxfaXNodG1sJ10gPSAnRW1haWwgaXMgaW4gSFRNTCBmb3JtYXQnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0JzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1snZmVlZGl0X2VtYWlsX3N1YmplY3QnXSA9ICdBIGNoYW5nZSBoYXMgb2NjdXJyZWQgdG8gYSBDb21wYW55RGlyZWN0b3J5IGVudHJ5JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGVsZXRlJ10gPSAnQWxsb3cgRnJvbnRlbmQgdXNlcnMgZGVsZXRlIHRvIHJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbGdyb3VwJ10gPSAnQWRtaW5pc3RyYXRpdmUgZ3JvdXAgdG8gcmVjZWl2ZSBub3RpZmljYXRpb24gZW1haWxzPyc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25hZGQnXSA9ICdTZW5kIGFuIGVtYWlsIHdoZW4gYSBmcm9udGVuZCB1c2VyIGFkZHMgYSBuZXcgY29tcGFueSByZWNvcmQnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1NlbmQgYW4gZW1haWwgd2hlbiBhIGZyb250ZW5kIHVzZXIgbW9kaWZpZXMgYW4gZXhpc3RpbmcgY29tcGFueSByZWNvcmQnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZ3JvdXAnXSA9ICdBZG1pbiBncm91cCB0byBzZW5kIGVtYWlscyB0byc7CiRsYW5nWydwcm9tcHRfZmV1X2Rpc3BsYXlfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9mcm9udGVuZF9zaG93ZXhwaXJlZCddID0gJ1Nob3cgcmVjb3JkcyBvd25lZCBieSBleHBpcmVkIEZyb250ZW5kIFVzZXJzJzsKJGxhbmdbJ2ZpZWxkX2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEgRGF0YSAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIERhdGEgMic7CiRsYW5nWydleHRyYTMnXSA9ICdFeHRyYSBEYXRhIDMnOwokbGFuZ1snbGJsX2JhY2snXSA9ICdCYWNrJzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnQ29tcGFueSBjb3BpZWQuLi4gcGxlYXNlIGVkaXQgdGhlIGRldGFpbHMgZm9yIHRoZSBuZXcgY29tcGFueSByZWNvcmQnOwokbGFuZ1snY29weSddID0gJ0NvcHknOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIGRpcmVjdG9yeSBsaWtlIG1vZHVsZSBmb3IgY29tcGFuaWVzLiAgQWxsb3dzIGFkZGluZy9lZGl0aW5nL2ltcG9ydGluZy9leHBvcnRpbmcgY29tcGFueSBkZWZpbml0aW9ucywgYW5kIHZhcmlvdXMgd2F5cyBvZiBkaXNwbGF5aW5nIHRoZSBjb21wYW55IGVudHJpZXMgaW5jbHVkaW5nIHNlYXJjaC4gIFRoaXMgbW9kdWxlIGludGVncmF0ZXMgd2VsbCB3aXRoIENHR29vZ2xlTWFwcy4nOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0ltcG9ydCBvcGVyYXRpb24gc3VjY2Vzc2Z1bCc7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdIaWVyYXJjaHkgUG9zaXRpb25zIENyZWF0ZWQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBSZWNvcmRzJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5dmFscyddID0gJ0ltcG9ydCBIaWVyYXJjaHkgVmFsdWVzJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9oaWVyYXJjaHknXSA9ICdFcnJvciBjcmVhdGluZyBoaWVyYXJjaHkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSB3aXRoIGxvbmcgbmFtZSAmcXVvdDslcyZxdW90OyBhbHJlYWR5IGV4aXN0cy4nOwokbGFuZ1snY29tcGFueWRlbGV0ZWQnXSA9ICdDb21wYW55IERlbGV0ZWQnOwokbGFuZ1snZXJyb3JfdXBsb2FkJ10gPSAnRXJyb3IgdXBsb2FkaW5nIGZpbGUnOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnWW91IG11c3Qgc3BlY2lmeSBhIGZpZWxkIGRlbGltaXRlcic7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ1lvdSBoYXZlIG5vIHJlbWFpbmluZyBjb21wYW55IHNsb3RzJzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdZb3UgaGF2ZSB1c2VkICVkIG9mICVkIGNvbXBhbnkgc2xvdHMnOwokbGFuZ1snaW1wb3J0X2ZpbGVuYW1lJ10gPSAnU2VsZWN0IENTViBGaWxlJzsKJGxhbmdbJ2RlbGltaXRlciddID0gJ0ZpZWxkIERlbGltaXRlcic7CiRsYW5nWydpbmZvX2NzdmZpbGUnXSA9ICdJdCBpcyBwb3NzaWJsZSB0byBpbXBvcnQgY29tcGFueSBpbmZvcm1hdGlvbiBkaXJlY3RseSBmcm9tIGFuIEFTQ0lJIGZpbGUuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfdGVtcGxhdGUnXSA9ICdUaGlzIHRlbXBsYXRlIGRlc2NyaWJlcyBhIGZvcm0gdGhhdCBpcyB1c2VkIHRvIGFsbG93IGF1dGhvcml6ZWQgZnJvbnRlbmQgdXNlcnMgdG8gaW1wb3J0IGRhdGEgZnJvbSBhIHByb3Blcmx5IGZvcm1hdHRlZCBDU1YgZmlsZSc7CiRsYW5nWydmcm9udGVuZGltcG9ydHRlbXBsYXRlJ10gPSAnRnJvbnRlbmQgQ1NWIEltcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZmV1X2ltcG9ydCddID0gJ0FsbG93IEZyb250ZW5kVXNlcnMgdG8gaW1wb3J0IHJlY29yZHMgZnJvbSBDU1Y/JzsKJGxhbmdbJ3BhcmFtX2hpZXJsaXN0dGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGhpZXJhcmNoeSBsaXN0IHZpZXcuJzsKJGxhbmdbJ2hpZXJsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgSGllcmFyY2h5IExpc3QgVGVtcGxhdGUnOwokbGFuZ1snaGllcmFyY2h5bGlzdHRlbXBsYXRlcyddID0gJ0hpZXJhcmNoeSBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydwYXJhbV9oaWVyJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiwgPGVtPnNlYXJjaDwvZW0+LCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCwgYW5kIHNlYXJjaCBhY3Rpb25zLCBXaWxkY2FyZHMgYXJlIGFjY2VwdGVkLCBpLmU6ICZxdW90Oypzb21laGllcmFyY2h5bmFtZSomcXVvdDsuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoZW4gYW55IGhpZXJhcmNoeSBjaG9zZW4gaW4gdGhlIHNlYXJjaCBmb3JtIHdpbGwgYmUgaWdub3JlZC4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9oaWVyX2NoaWxkcmVuJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgYm9vbGVhbiAoMCBvciAxKSB2YWx1ZSBpbmRpY2F0aW5nIHdldGhlciBjaGlsZCBoaWVyYXJjaGllcyBzaG91bGQgYmUgaW5jbHVkZWQgd2hlbiBnZW5lcmF0aW5nIGEgc3VtbWFyeSB2aWV3IGZvciBhIHNwZWNpZmljIGhpZXJhcmNoeSc7CiRsYW5nWydtc2dfaGllcmRlbGV0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gZGVsZXRlZCc7CiRsYW5nWydtc2dfaGllcnVwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gdXBkYXRlZCc7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIGFkZGVkJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdBZGQgSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0FkZC9FZGl0IENhdGVnb3J5JzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ1NldHRpbmdzJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snb3duZXInXSA9ICdPd25lcic7CiRsYW5nWydjcmVhdGVkJ10gPSAnQ3JlYXRlZCc7CiRsYW5nWydtb2RpZmllZCddID0gJ01vZGlmaWVkJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQgb3IgRWRpdCBhIEZyb250ZW5kIExpc3QgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9jaGFuZ2Vfc3RhdHVzJ10gPSAnQ2FuIGZyb250ZW5kIHVzZXJzIGNoYW5nZSBhIGNvbW1wYW55IHN0YXR1cz8nOwokbGFuZ1sncHJvbXB0X2ZldV9uZXdfc3RhdHVzJ10gPSAnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyByZWNvcmRzIGNyZWF0ZWQgb24gdGhlIGZyb250ZW5kJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kbGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEZyb250ZW5kIExpc3QgVGVtcGxhdGUnOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVzJ10gPSAnRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9mZXVfZWRpdF9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIEVkaXRpbmcgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdDYW4gRnJvbnRFbmRVc2VycyBDcmVhdGUgbmV3IFJlY29yZHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbnVtcmVjb3JkcyddID0gJ01heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGEgRkVVIGFjY291bnQnOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnTnVtYmVyIG9mIEltcG9ydGVkIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVkIHJlY29yZCc7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdJZ25vcmUgYWRkcmVzcyBmaWVsZCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnQ29udmVydCBBZGRyZXNzZXMgdG8gY29vcmRpbmF0ZXMgKGlmIHRoZXJlIGFyZSBubyBjb29yZGluYXRlcyknOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwgRmlsZSB0byBJbXBvcnQnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0IEtNTCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0IEtNTCBGaWxlJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnVG8gdXNlIHRoaXMgZnVuY3Rpb24geW91IG11c3QgYmUgbG9nZ2VkIGluIHRvIHRoZSBmcm9udGVuZCBvZiB0aGUgd2Vic2l0ZSc7CiRsYW5nWydhY3RpdmUnXSA9ICdBY3RpdmUnOwokbGFuZ1snYWRkbGluayddID0gJ0FkZCBMaW5rJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZGRyZXNzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRkcmVzcyc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FkZCBDYXRlZ29yeSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnQWRkIENvbXBhbnknOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZGQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnVmlzaWJsZSBUbyBBZG1pbiBPbmx5JzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIHRoaXM/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0FzY2VuZGluZyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICdDYW4gZnJvbnRlbmQgdXNlcnMgZWRpdCB0aGlzIGZpZWxkPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0NhbiBmcm9udGVuZCB1c2VycyB2aWV3IHRoaXMgZmllbGQ/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2F0ZWdvcnl0ZXh0J10gPSAnQ2F0ZWdvcnknOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0NhdGVnb3J5IEFkZGVkJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IFVwZGF0ZWQnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgQ2F0ZWdvcnkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdDYXRlZ29yeSBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdDYXRlZ29yeSBMaXN0IFVwZGF0ZWQnOwokbGFuZ1snY29tcGFueSddID0gJ0NvbXBhbnknOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnQ29tcGFueSBBZGRlZCc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0NvbXBhbnkgbmFtZSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0NvbXBhbnkgVXBkYXRlZCc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdDb21wYW5pZXMnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICdDb21wYW55JzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICdDb21wYW55IERpcmVjdG9yeSc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdDb250YWN0IEVtYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0ZSBFbnRlcmVkJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdEZWZhdWx0IFRlbXBsYXRlcyc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gPDw8RU9UCjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGNvbnRlbnRzIG9mIHRoZXNlIHRleHQgYXJlYXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGNvbnRlbnQgb2YgdGVtcGxhdGVzIHdoZW4geW91IGNsaWNrICZxdW90O0FkZCBUZW1wbGF0ZSZxdW90OyBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuCkVPVDsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ0RlbGV0ZSBDYXRlZ29yeSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnRGVsZXRlIENvbXBhbnknOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdEZWxldGUgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGluZyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhaWxzJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnRGV0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEZXRhaWwgVGVtcGxhdGUgVXBkYXRlZCc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FibGVkJzsKJGxhbmdbJ2Rvd24nXSA9ICdEb3duJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRHJhZnQnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ0VkaXQgQ29tcGFueSc7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZGl0IEZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZW1haWx0ZXh0J10gPSAnRW1haWwnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggdGhlIHVwbG9hZGVkIGZpbGUnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWUnXSA9ICdDb21wYW55IE5hbWUgaXMgSW52YWxpZCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0EgQ29tcGFueSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnQSBjYXRlZ29yeSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdBIGNvbXBhbnkgd2l0aCB0aGF0IG5hbWUgKCVzKSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdBIGZpZWxkIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdBIGJhZCB2YWx1ZSB3YXMgZm91bmQgZm9yIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1cGxpY2F0ZSAlcyBydWxlIGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpY2F0ZSBydWxlIGlkZW50aWZpZXIgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0RvbnQga25vdyBob3cgdG8gaGFuZGxlIGxpbmUgJWQgd2l0aCB0aGUgcnVsZSBpZGVudGlmaWVyICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducnVsZSddID0gJ1Vua25vd24gcnVsZSBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY2F0ZWdvcnkgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY29tcGFueSBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgZmllbGQgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnTm8gZmlsZSB3YXMgdXBsb2FkZWQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCB2YWx1ZSB3YXMgbWlzc2luZyBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnTm8gRHJvcGRvd24vTXVsdGlzZWxlY3Qgb3B0aW9ucyBzdXBwbGllZCc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWydlcnJvcl9ub2xlbmd0aCddID0gJ05vIG1heGltdW0gbGVuZ3RoIGZpZWxkIHN1cHBsaWVkJzsKJGxhbmdbJ2Vycm9yX25vcmVzdWx0c2ZvdW5kJ10gPSAnTm8gcmVjb3JkcyBtYXRjaGluZyB5b3VyIGNyaXRlcmlhIGNvdWxkIGJlIGZvdW5kIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9wb3N0Y29kZV9sb29rdXAnXSA9ICdDb3VsZCBub3QgZmluZCBhbnkgaW5mb3JtYXRpb24gZm9yIHBvc3RhbC96aXAgY29kZSAlcyc7CiRsYW5nWydlcnJvcl9wcmVmaXhfbXNnJ10gPSAnQW4gZXJyb3Igb2NjdXJyZWQgYXQgbGluZSAlZDogJXMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0IENTVic7CiRsYW5nWydmYXgnXSA9ICdGYXgnOwokbGFuZ1snZmF4dGV4dCddID0gJ0ZheCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmllbGQgRGVmaW5pdGlvbnMnOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBBZGRlZCc7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdGaWVsZCBEZWZpbml0aW9uIFVwZGF0ZWQnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBEZWxldGVkJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snZmllbGRfZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmbHQ7Jmx0Oyc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBGcm9udGVuZCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIEVkaXQgQ29tcGFueSBUZW1wbGF0ZXMnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnRWRpdCBDb21wYW55IFRlbXBsYXRlIFVwZGF0ZWQnOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbmZvX2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdTcGVjaWZ5IHRoZSBvcHRpb25zIGZvciB0aGUgZHJvcGRvd24gb3IgbXVsdGlzZWxlY3QgY29udHJvbC4gIE9uZSBsaW5lIHBlciBlbnRyeS4gIFNlcGVyYXRlIGtleXMgZnJvbSB2YWx1ZXMgd2l0aCB0aGUgPS4gIGkuZToga2V5PXZhbHVlJzsKJGxhbmdbJ2ltYWdlY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbWFnZSc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnQgQ1NWJzsKCiRsYW5nWydsYXRpdHVkZSddID0gJ0xhdGl0dWRlJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmd0OyZndDsnOwokbGFuZ1snbG9nb2N1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdMb2dvJzsKJGxhbmdbJ2xvbmdpdHVkZSddID0gJ0xvbmdpdHVkZSc7CiRsYW5nWydsb29rdXAnXSA9ICdMb29rdXAgQ29vcmRpbmF0ZXMnOwoKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0ZSBMYXN0IE1vZGlmaWVkJzsKCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgXCclc1wnIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IGZ1bmN0aW9uLic7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05vIENvbXBhbnkgTmFtZSBHaXZlbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05vIE5hbWUgR2l2ZW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ05vdCBhIE51bWJlcic7CiRsYW5nWyduZXh0cGFnZSddID0gJyZndDsnOwoKJGxhbmdbJ29mJ10gPSAnT2YnOwoKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdlJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RldGVybWluZSB0aGUgcHJpbWFyeSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOgo8dWw+CiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPgogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gRGlzcGxheSBjb21wYW5pZXMgaW4gYSBzdW1tYXJ5IG1vZGUuPC9saT4KICA8bGk+ZGV0YWlscyAtLSBEaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPgogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LiA8ZW0gc3R5bGU9ImNvbG9yOiByZWQ7Ij4oZGVwcmVjYXRlZCk8L2VtPjwvbGk+CiAgPGxpPmZlX2VkaXQyIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+CiAgPGxpPmZlX2VkaXRfYWxidW0gLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBhbGJ1bSBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuCiAgIDxwPlRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHRyaWdnZXJlZCBmcm9tIHRoZSBmZV9lZGl0MiBhY3Rpb24gb3IgdGhlIGZyb250ZW5kIGxpc3QgYWN0aW9uLiAgIEl0IGFjY2VwdHMgdGhlIGNvbXBhbnlpZCxjZF9mZGlkLGFuZCBvcHRpb25hbGx5IG90aGVyIHBhcmFtZXRlcnMgdG8gcGVyZm9ybSBudW1lcm91cyBhamF4IGFjdGlvbnMuICAgU2VlIHRoZSBzYW1wbGUgY29udGVudCBmb3IgdGhlIGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KICA8L2xpPgo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPgogIDxsaT5zZWFyY2ggIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBmb3Igc3BlY2lmaWMgY29tcGFuaWVzLjwvbGk+CiAgPGxpPmJyb3dzZWhpZXIgLS0gRGlzcGxheSBhIGxpc3Qgb2YgaGllcmFyY2hpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUgYW5kIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4KICAgCjwvdWw+Cic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWlkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgYW5kIG9ubHkgd2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIHBvcHVsYXRlZCB3aXRoIGRhdGEuICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aG9zZSB3aG8gaGF2ZSBjaGVja2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgKGludGVnZXIpIGFjdGl2aXR5IGlkLic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWNoaWxkcmVuJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgYW5kIG9ubHkgd2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIHBvcHVsYXRlZCB3aXRoIGRhdGEuICBUaGlzIHBhcmFtZXRlciB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBhY3Rpdml0eWlkIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aG9zZSB3aG8gaGF2ZSBjaGVja2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgKGludGVnZXIpIGFjdGl2aXR5IGlkIGFuZCB0aGVpciBjaGlsZCBhY3Rpdml0aWVzLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1doZW4gdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCBvciB0aGUgPGVtPnNlYXJjaDwvZW0+IG1vZGUsIHRoaXMgd2lsbCBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmllZCBudW1iZXIuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5aWQnXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIG9uIGEgc2luZ2xlIGNhdGVnb3J5IGJ5IHNwZWNpZnlpbmcgaXRzIGludGVnZXIgaWQuICBUaGlzIHBhcmFtZXRlciBjYW5ub3QgYmUgdXNlZCB3aXRoIHRoZSBjYXRlZ29yeSxjYXRlZ29yeTIsIG9yIG90aGVyIGNhdGVnb3J5IGZpbHRlcmluZyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCkuICBXaGVuIHVzZWQgaW4gdGhlIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgdG8gZmlsdGVyIHRoZSByZXN1bHRzIGJ5Lic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgY2F0ZWdvcnkgbGlzdCB2aWV3Lic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdSZXF1aXJlZCBmb3IgdGhlIGZyb250ZW5kIGVkaXRpbmcgYW5kIGRldGFpbCBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB3aGljaCBjb21wYW55IHJlY29yZCB0byBlZGl0IG9yIHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcGVjaWZ5IGEgcGFnZSBhbGlhcyAoYnkgbmFtZSkgdG8gdXNlIGZvciBkaXNwbGF5aW5nIGEgZGV0YWlsIHJlY29yZC4gPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGRldGFpbCB2aWV3LiAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgYW4gYWxidW0gb2YgaW1hZ2VzIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBhbnkuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBmcm9udCBlbmQgY29tcGFueSBlZGl0IGZvcm0uJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCwgdGhlbiBldmVuIGNhdGVnb3JpZXMgd2l0aCBubyBtYXRjaGluZyBjb21wYW5pZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIG91dHB1dCc7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IGNvbXBhbmllcy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KPGxpPmlkIC0tIFRoZSBpbnRlcm5hbCBjb21wYW55IGlkPC9saT4KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz48L2xpPgogIDxsaT5waG9uZTwvbGk+CiAgPGxpPmZheDwvbGk+CiAgPGxpPmVtYWlsPC9saT4KICA8bGk+d2Vic2l0ZSAtLSBUaGUgd2Vic2l0ZSB1cmw8L2xpPgogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5zdGF0dXM8L2xpPgogIDxsaT5yYW5kb20gLS0gU29ydCB0aGUgaXRlbXMgcmFuZG9tbHkuPC9saT4KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnQgYnkgcHVibGljIGN1c3RvbSBmaWVsZHMuIFRoZSBvdXRwdXQgd2lsbCBiZSBzb3J0ZWQgYnkgdGhlIG5hbWVkIGN1c3RvbSBmaWVsZC48YnIvPgogIDxsaT5tb3N0Y2hlY2tpbnMgLS0gPGVtPihPbmx5IHdoZW4gQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCk8L2VtPiBTb3J0IG91dHB1dCBieSB0aGUgY29tcGFuaWVzIChsb2NhdGlvbnMpIHRoYXQgaGF2ZSB0aGUgbW9zdCBjaGVja2lucy48L2xpPgogIDxsaT5tb3N0ZmF2b3JpdGUgLS0gPGVtPihPbmx5IHdoZW4gQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCk8L2VtPiBTb3J0IG91dHB1dCBieSB0aGUgY29tcGFuaWVzIChsb2NhdGlvbnMpIHRoYXQgaGF2ZSB0aGUgbW9zdCBmYXZvcml0ZXMuPC9saT4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBZb3UgbWF5IG5lZWQgdG8gdXNlIHF1b3RlcyBpZiB0aGUgZmllbGQgbmFtZSBoYXMgc3BhY2VzLjxici8+CiAgPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gVGhlIGZpZWxkIHNwZWNpZmllZCBtdXN0IGJlIG1hcmtlZCBhcyBwdWJsaWMuCiAgPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gV2hlbiB1c2luZyBjdXN0b20gZmllbGQgc29ydGluZywgWW91IG1heSBhbHNvIHNwZWNpZnkgYSBmbGFnIGFmdGVyIHRoZSBmaWVsZCBuYW1lIHRvIGluZGljYXRlIHRoYXQgaW50ZWdlciBzb3J0aW5nIHNob3VsZCBiZSBwZXJmb3JtZWQuICBpLmU6IDxjb2RlPnNvcnRieT1mOmN1c3RvbV9vcmRlcmluZzppPC9jb2RlPjxici8+PC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CgokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdQb3N0YWwvWmlwIGNvZGUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBzdWNjZXNzZnVsbHkgdW5pbnN0YWxsZWQuICBBbGwgYXNzb2NpYXRlZCBjb21wYW55IGRhdGEgaGFzIGJlZW4gZXJhc2VkJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IFVuaW5zdGFsbGluZyB0aGlzIG1vZHVsZSB3aWxsIHBlcm1hbmVudGx5IGVyYXNlIGFsbCBhc3NvY2lhdGVkIGNvbXBhbnkgZGF0YS4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICcmbHQ7JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnQ2F0ZWdvcmllcyBJbXBvcnRlZCc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ0NoZWNrIGZvciBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ0NvbGxlY3QgU2VhcmNoIFN0YXRpc3RpY3MnOwokbGFuZ1sncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCddID0gJ0NvbXBhbmllcyBJbXBvcnRlZCc7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnRmllbGQgRGVsaW1ldGVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVGhlIGRlZmF1bHQgcGFnZSB0byB1c2UgZm9yIGRldGFpbCB2aWV3cy4gIElmIHNldCB0byAmcXVvdDtOb25lJnF1b3Q7IHRoZSBjYWxsaW5nIHBhZ2Ugd2lsbCBiZSB1c2VkLic7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duL011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ0ZpZWxkIERlZmluaXRpb25zIEltcG9ydGVkJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnQ3JlYXRlIG1pc3NpbmcgY2F0ZWdvcmllcyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeXZhbHMnXSA9ICdQb3B1cGxhdGUgY2F0ZWdvcnkgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdVcGxvYWQgQ1NWIEZpbGUnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICZxdW90O2FkZGl0aW9uYWwgZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdMb29rdXAgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgaWYgbWlzc2luZyc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnVGhlIG51bWJlciBvZiByZWNvcmRzIHRvIHZpZXcgcGVyIHBhZ2UgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgc29ydGluZyBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdUaGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHN1bW1hcnkgbW9kZSA8ZW0+KGRvZXMgbm90IGFwcGx5IHdoZW4gc29ydGluZyBpcyBcJ3JhbmRvbVwnPC9lbT4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1sncHVibGljJ10gPSAnUHVibGljJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2hlZCc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKCiRsYW5nWydyYWRpdXMnXSA9ICdSYWRpdXMnOwokbGFuZ1sncmFuZG9tJ10gPSAnUmFuZG9tJzsKJGxhbmdbJ3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIERlZmF1bHRzJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAnVGhpcyBvcGVyYXRpb24gd2lsbCByZXN0b3JlIHRoZSB0ZW1wbGF0ZSBjb250ZW50cyB0byB0aGVpciBzeXN0ZW0gZGVmYXVsdHMuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VkZT8nOwoKJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7CiRsYW5nWydzZWFyY2hlcyddID0gJ1NlYXJjaGVzJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZXMnXSA9ICdPbGQgU2VhcmNoIEZvcm0gVGVtcGxhdGVzJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gT2xkIFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlIFVwZGF0ZWQnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZXN0b3JlIHRvIGRlZmF1bHRzJzsKCiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlcGhvbmUnOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ1RlbGVwaG9uZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBDYXRlZ29yeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBGcm9udGVuZCBFZGl0IENvbXBhbnkgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ0NTViBJbXBvcnQgUmVwb3J0JzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCAob2xkKSBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1R5cGUnOwoKJGxhbmdbJ3VwJ10gPSAnVXAnOwoKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ0dvIHRvIHRoZSB3ZWJzaXRlJzsKCiRsYW5nWyd3ZWJzaXRlJ10gPSAnV2Vic2l0ZSc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1dlYnNpdGUnOwoKJGxhbmdbJ3llcyddID0gJ1llcyc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2biZpYWN1dGU7JzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdQxZlpZGF0IG9ka2F6JzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlc2EnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZHJlc2EnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQxZlpZGF0IGthdGVnb3JpaSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnUMWZaWRhdCBzcG9sZcSNbm9zdCc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1DFmWlkYXQgZGVmaW5pY2kgZm9ybXVsJmFhY3V0ZTvFmW92JmVhY3V0ZTtobyBwb2xlJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaWRpdGVsbiZlYWN1dGU7IHBvdXplIHBybyBhZG1pbmlzdHImYWFjdXRlO3RvcnknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0pzdGUgc2kgamlzdGkgb2RlYnImYWFjdXRlO24maWFjdXRlO20gdCZlYWN1dGU7dG8gcG9sb8W+a3k/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Z6ZXN0dXBuxJsnOwokbGFuZ1snY2FuY2VsJ10gPSAnU3Rvcm5vJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnTW9ob3UgdcW+aXZhdGVsJmVhY3V0ZTsgc3RyJmFhY3V0ZTtuZWsgZWRpdG92YXQgdG90byBwb2xlPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ01vaG91IHXFvml2YXRlbCZlYWN1dGU7IHN0ciZhYWN1dGU7bmVrIHByb2hsJmlhY3V0ZTvFvmV0IHRvdG8gcG9sZT8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpZSBwxZlpZCZhYWN1dGU7bmEnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmllIGFrdHVhbGl6b3YmYWFjdXRlO25hJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQxZlpZGF0L1VwcmF2aXQgJnNjYXJvbjthYmxvbnUgc2V6bmFtdSBrYXRlZ29yaSZpYWN1dGU7JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb255IHNlem5hbXUga2F0ZWdvcmkmaWFjdXRlOyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdTZXpuYW0ga2F0ZWdvcmkmaWFjdXRlOyB1cHJhdmVuJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdTcG9sZcSNbm9zdCc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdTcG9sZcSNbm9zdCBwxZlpZCZhYWN1dGU7bmEnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdKbSZlYWN1dGU7bm8gc3BvbGXEjW5vc3RpJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnU3BvbGXEjW5vc3QgYWt0dWFsaXpvdiZhYWN1dGU7bmEnOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnU3BvbGXEjW5vc3RpJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnU3BvbGXEjW5vc3QnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0FkcmVzJmFhY3V0ZTvFmSBzcG9sZcSNbm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ0tvbnRha3RuJmlhY3V0ZTsgZS1tYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdmxvxb5lbiZpYWN1dGU7JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbnknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlBvem4mYWFjdXRlO21rYTo8L3N0cm9uZz4gT2JzYWggdMSbY2h0byBmb3JtbCZhYWN1dGU7xZlvdiZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTsgamUgcG91xb4maWFjdXRlO3YmYWFjdXRlO24gayB1csSNZW4maWFjdXRlOyB2JnlhY3V0ZTtjaG96JmlhY3V0ZTtobyBvYnNhaHUgJnNjYXJvbjthYmxvbiwga2R5xb4ga2xpa25ldGUgbmEgJmFtcDtxdW90O1DFmWlkYXQgJnNjYXJvbjthYmxvbnUmYW1wO3F1b3Q7IHYgeiZhYWN1dGU7bG/FvmNlIHDFmSZpYWN1dGU7c2x1JnNjYXJvbjtuJmVhY3V0ZTtobyB0eXB1ICZzY2Fyb247YWJsb255LiAmVWFjdXRlO3ByYXZhIHTEm2NodG8gcG9sJmlhY3V0ZTsgbmVidWRlIG0maWFjdXRlO3Qgxb4mYWFjdXRlO2RuJnlhY3V0ZTsgb2thbcW+aXQmeWFjdXRlOyAmdWFjdXRlO8SNaW5layBuYSB2YSZzY2Fyb247aSBzdHImYWFjdXRlO25rdS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnU21hemF0IGthdGVnb3JpaSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnU21hemF0IHNwb2xlxI1ub3N0JzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnU21hemF0IGRlZmluaWNpIHBvbGUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1Nlc3R1cG7Emyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ1BvcGlzZWsnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHknOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhaWx5JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQxZlpZGF0L1VwcmF2aXQgJnNjYXJvbjthYmxvbnUgZGV0YWlsdSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibG9ueSBkZXRhaWx1JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJyZTY2Fyb247YWJsb25hIGRldGFpbHUgYnlsYSBha3R1YWxpem92JmFhY3V0ZTtuYSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0RlYWt0aXZvdiZhYWN1dGU7bm8nOwokbGFuZ1snZG93biddID0gJ0RvbMWvJzsKJGxhbmdbJ2RyYWZ0J10gPSAnTiZhYWN1dGU7dnJoJzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdml0JzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ1VwcmF2aXQga2F0ZWdvcmlpJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnVXByYXZpdCBrYXRlZ29yaWknOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnVXByYXZpdCBkZWZpbmljaSBwb2xlJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0ptJmVhY3V0ZTtubyBzcG9sZcSNbm9zdGkgamUgbmVwbGF0biZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnU3BvbGXEjW5vc3QgdG9ob3RvIGptJmVhY3V0ZTtuYSBqZSBqaSZ5YWN1dGU7IHYgZGF0YWImYWFjdXRlO3ppJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTW9kdWwgRnJvbnRFbmRVc2VycyBuZWJ5bCBuYWxlemVuJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydG92YXQgamFrbyBDU1YnOwokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljZSBwb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNlIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbmljZSBwb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdEZWZpbmljZSBwb2xlIGJ5bGEgcMWZaWQmYWFjdXRlO25hJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0RlZmluaWNlIHBvbGUgYnlsYSBha3R1YWxpem92JmFhY3V0ZTtuYSc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdEZWZpbmljZSBwb2xlIGJ5bGEgc21heiZhYWN1dGU7bmEnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ1DFmWlkYXQvVXByYXZpdCAmc2Nhcm9uO2FibG9udSBmb3JtdWwmYWFjdXRlO8WZZSBuYSBzdHImYWFjdXRlO25jZSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdVcHJhdml0ICZzY2Fyb247YWJsb255IHNwb2xlxI1ub3N0aSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICcmU2Nhcm9uO2FibG9ueSBwcm8gJnVhY3V0ZTtwcmF2dSBzcG9sZcSNbm9zdGkgYWt0dWFsaXpvdiZhYWN1dGU7bnknOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnT2JyJmFhY3V0ZTt6ZWsnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW0mYWFjdXRlO2xuJmlhY3V0ZTsgZCZlYWN1dGU7bGthJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdNYXhpbSZhYWN1dGU7bG4maWFjdXRlOyBkJmVhY3V0ZTtsa2EnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heGltJmFhY3V0ZTtsbiZpYWN1dGU7IGQmZWFjdXRlO2xrYSc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdTbWF6YXQgZGF0dW0gcG9zbGVkbiZpYWN1dGU7IG1vZGlmaWthY2UnOwokbGFuZ1snbmFtZSddID0gJ0ptJmVhY3V0ZTtubyc7CiRsYW5nWyduYW1ldGV4dCddID0gJ0ptJmVhY3V0ZTtubyc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmIzAzOTslcyYjMDM5OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBmdW5jdGlvbi4nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnTmVieWxvIHphZCZhYWN1dGU7bm8gxb4mYWFjdXRlO2RuJmVhY3V0ZTsgam0mZWFjdXRlO25vIHNwb2xlxI1ub3N0aSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0ptJmVhY3V0ZTtubyBuZWJ5bG8gemFkJmFhY3V0ZTtubyc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAnVG90byBuZW4maWFjdXRlOyDEjSZpYWN1dGU7c2xvJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0ciZhYWN1dGU7bmthJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RldGVybWluZSB0aGUgcHJpbWFyeSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOg0KPHVsPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZGQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogICANCjwvdWw+DQonOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVpcmVkIGZvciB0aGUgZnJvbnRlbmQgZWRpdGluZyBhbmQgZGV0YWlsIG1vZGVzLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGNvbXBhbnkgcmVjb3JkIHRvIGVkaXQgb3Igdmlldy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZWNpZnkgYSBwYWdlIGFsaWFzIChieSBuYW1lKSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgYSBkZXRhaWwgcmVjb3JkLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1VyxI1pdCAmc2Nhcm9uO2FibG9udSAocG9kbGUgam0mZWFjdXRlO25hKSwga3RlciZhYWN1dGU7IHNlIHBvdcW+aWplLCBrZHnFviBzZSB6b2JyYXp1amUgZWRpdGHEjW4maWFjdXRlOyBwb2xlIHZlIGZyb250LWVuZHUuJzsKJGxhbmdbJ3BhcmFtX3NlbGVjdGNhdGVnb3J5J10gPSAnSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGEgZm9ybSB3aWxsIGJlIGdlbmVyYXRlZCBhbGxvd2luZyB1c2VycyB0byBpbnRlcmFjdGl2ZWx5IGZpbHRlciBjb21wYW55IHJlY29yZHMgb24gYSBzaW5nbGUgY2F0ZWdvcnkuICBUaGlzIGZsYWcgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICYjMDM5O2NhdGVnb3J5JiMwMzk7IHBhcmFtZXRlci4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgc3VtbWFyeSB2aWV3LiAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bCAmcXVvdDtBZHJlcyZhYWN1dGU7xZkgc3BvbGXEjW5vc3QmaWFjdXRlOyZxdW90OyBieWwgJnVhY3V0ZTtzcMSbJnNjYXJvbjtuxJsgbmFpbnN0YWxvdiZhYWN1dGU7bic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWwgJnF1b3Q7QWRyZXMmYWFjdXRlO8WZIHNwb2xlxI1ub3N0JmlhY3V0ZTsmcXVvdDsgYnlsICZ1YWN1dGU7c3DEmyZzY2Fyb247bsSbIG9kaW5zdGFsb3YmYWFjdXRlO24uIFYmc2Nhcm9uO2VjaG5hIHMgbiZpYWN1dGU7bSBzdiZhYWN1dGU7emFuJmFhY3V0ZTsgZGF0YSBvIHNwb2xlxI1ub3N0ZWNoIGJ5bGEgc21heiZhYWN1dGU7bmEuJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ09wcmF2ZHUgY2hjZXRlIG9kaW5zdGFsb3ZhdCB0ZW50byBtb2R1bD8gUMWZaSBvZGluc3RhbGFjaSBtb2R1bHUgZG9qZGUgayB2eW1heiZhYWN1dGU7biZpYWN1dGU7IHYmc2Nhcm9uO2VjaCB1bG/FvmVuJnlhY3V0ZTtjaCBkYXQgbyBzcG9sZcSNbm9zdGVjaC4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7IHN0ciZhYWN1dGU7bmthLCBwb3XFvml0JmFhY3V0ZTsgcHJvIHpvYnJhemVuJmlhY3V0ZTsgbSZvYWN1dGU7ZHUgcG9kcm9ibm9zdCZpYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdQb8SNZXQgeiZhYWN1dGU7em5hbcWvIG5hIHN0ciZhYWN1dGU7bmt1IHYgbSZvYWN1dGU7ZHUgc2hybnV0JmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7IHTFmSZpYWN1dGU7ZMSbbiZpYWN1dGU7IHYgbSZvYWN1dGU7ZHUgc2hybnV0JmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdUaGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHN1bW1hcnkgbW9kZSA8ZW0+KGRvZXMgbm90IGFwcGx5IHdoZW4gc29ydGluZyBpcyAmIzAzOTtyYW5kb20mIzAzOTs8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSc7CiRsYW5nWydwdWJsaWMnXSA9ICdWZcWZZWpuJmVhY3V0ZTsnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlrb3YmYWFjdXRlO25vJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydyYW5kb20nXSA9ICdOJmFhY3V0ZTtob2RuJnlhY3V0ZTsnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdOYXN0YXZpdCBuYSB2JnlhY3V0ZTtjaG96JmlhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ1RhdG8gb3BlcmFjZSB2ciZhYWN1dGU7dCZpYWN1dGU7IG9ic2FoICZzY2Fyb247YWJsb24gZG8gcMWvdm9kbiZpYWN1dGU7IHBvb2J5LiBPcHJhdmR1IGNoY2V0ZSBwb2tyYcSNb3ZhdD8nOwokbGFuZ1snc2VhcmNoJ10gPSAnSGxlZGF0JzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXYnOwokbGFuZ1snc3VibWl0J10gPSAnVmxvxb5pdCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1DFmWlkYXQvVXByYXZpdCAmc2Nhcm9uO2FibG9udSBzaHJudXQmaWFjdXRlOy4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb255IHNocm51dCZpYWN1dGU7JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICcmU2Nhcm9uO2FibG9uYSBzaHJudXQmaWFjdXRlOyBieWxhIGFrdHVhbGl6b3YmYWFjdXRlO25hJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnT2Jub3ZpdCBwxa92b2RuJmlhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgc2V6bmFtdSBrYXRlZ29yaSZpYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7ICZzY2Fyb247YWJsb25hIGZvcm11bCZhYWN1dGU7xZllIGZyb250ZW5kdSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSBzaHJudXQmaWFjdXRlOyc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1R5cGUnOwokbGFuZ1sndXAnXSA9ICdOYWhvcnUnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1dlYic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDMwMjQ2MTQuMzAxLjY4LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My44ODAyNjc4MzcuMTE4MDk5MTY2OS4xMjAzMDY3ODU2LjEyMDMwNzEwMDIuMzA1JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2V2ZW50ZGVzYy1PbkFkZENvbXBhbnknXSA9ICdFcmVpZ25pcyBnZXNlbmRldCBuYWNoIGRlbSBlaW4gVW50ZXJuZWhtZW4gaW4gZGllIERhdGVuYmFuayBoaW56dWdlZiZ1dW1sO2d0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkVkaXRDb21wYW55J10gPSAnRXJlaWduaXMgZ2VzZW5kZXQgbmFjaCBkZW0gZWluIGJlcmVpdCB2b3JoYW5kZW5lcyBVbnRlcm5laG1lbiBiZWFyYmVpdGV0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkRlbGV0ZUNvbXBhbnknXSA9ICdFcmVpZ25pcyBnZXNlbmRldCBiZXZvciBlaW4gVW50ZXJuZWhtZW4gZ2VsJm91bWw7c2NodCB3dXJkZSc7CiRsYW5nWydldmVudGhlbHAtT25BZGRDb21wYW55J10gPSAnPHA+R2VzZW5kZXQgbmFjaCBkZW0gZWluIFVudGVybmVobWVuIGluIGRpZSBEYXRlbmJhbmsgaGluenVnZWYmdXVtbDtndCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O29iamVjdCZxdW90OyAtIFRoZSBjZF9jb21wYW55IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGEgdGhhdCB3YXMgc2F2ZWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscC1PbkVkaXRDb21wYW55J10gPSAnPHA+R2VzZW5kZXQgbmFjaCBkZW0gZWluIGJlcmVpdCB2b3JoYW5kZW5lcyBVbnRlcm5laG1lbiBiZWFyYmVpdGV0IHd1cmRlLjwvcD4NCjxoND5QYXJhbWV0ZXI6PC9oND4NCjx1bD4NCiAgPGxpPiZxdW90O3dobyZxdW90OyAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+JnF1b3Q7b2JqZWN0JnF1b3Q7IC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLU9uRGVsZXRlQ29tcGFueSddID0gJzxwPkdlc2VuZGV0IGJldm9yIGVpbiBVbnRlcm5laG1lbiBnZWwmb3VtbDtzY2h0IHd1cmRlLjwvcD4NCjxoND5QYXJhbWV0ZXI6PC9oND4NCjx1bD4NCiAgPGxpPiZxdW90O3dobyZxdW90OyAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+JnF1b3Q7Y2lkJnF1b3Q7IC0gSWQgb2YgdGhlIGNvbXBhbnkgcmVjb3JkIHRvIGJlIGRlbGV0ZWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmcm9udGVuZGFsYnVtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0Zyb250ZW5kIEFsYnVtIGJlYXJiZWl0ZW4gVGVtcGxhdGUgaGluenVmJnV1bWw7Z2VuIG9kZXIgYmVhcmJlaXRlbic7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgRnJvbnRlbmQgQWxidW0gYmVhcmJlaXRlbiBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGFsYnVtdGVtcGxhdGVzJ10gPSAnRnJvbnRlbmQgQWxidW0gYmVhcmJlaXRlbiBUZW1wbGF0ZXMnOwokbGFuZ1snY29uZmlybV9lZGl0X2FsYnVtJ10gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBkYXMgQWxidW0gYmVhcmJlaXRlbiBtJm91bWw7Y2h0ZW4uIEFsbGUgJkF1bWw7bmRlcnVuZ2VuIGRlciBVbnRlcm5laG1lbi1FaWdlbnNjaGFmdGVuIHdlcmRlbiBuaWNodCBnZXNwZWljaGVydCEnOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ0ZvdG8gQWxidW0gYmVhcmJlaXRlbic7CiRsYW5nWydlcnJvcl9maWVsZGRlZl9ub3Rmb3VuZCddID0gJ0ZlbGRkZWZpbml0aW9uIG1pdCBpZCAlZCB3dXJkZSBuaWNodCBnZWZ1bmRlbic7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0dhbGxlcnkgVGVtcGxhdGUgaGluenVmJnV1bWw7Z2VuIG9kZXIgYmVhcmJlaXRlbic7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgR2FsbGVyeSBUZW1wbGF0ZSc7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVzJ10gPSAnR2FsbGVyeSBUZW1wbGF0ZXMnOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQWJnZWJyb2NoZW4nOwokbGFuZ1snYWRkZWRpdF9oaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllIEVpbnRyYWcgaGluenVmJnV1bWw7Z2VuIG9kZXIgYmVhcmJlaXRlbic7CiRsYW5nWydwdWJsaXNoJ10gPSAnVmVyJm91bWw7ZmZlbnRsaWNoZW4nOwokbGFuZ1snbXNnX2J1bGtkZWwnXSA9ICclZCBVbnRlcm5laG1lbiBnZWwmb3VtbDtzY2h0JzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ05pY2h0cyBhdXNnZXcmYXVtbDtobHQnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ01pdCBhdXNnZXcmYXVtbDtobHRlbic7CiRsYW5nWydkaXNhYmxlJ10gPSAnRGVha3RpdmllcmVuJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdBbGxlIGF1c3cmYXVtbDtobGVuJzsKJGxhbmdbJ21zZ19zZXR0aW5nc19jaGFuZ2VkJ10gPSAnRWluc3RlbGx1bmdlbiBnZSZhdW1sO25kZXJ0JzsKJGxhbmdbJ2Vycm9yX2FkZHJlc3NfbG9va3VwJ10gPSAnUHJvYmxlbSBsb29raW5nIHVwIGFkZHJlc3M6ICVzJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdVbml0cyBzcGVjaWZpZWQgYXJlIGludmFsaWQuICB2YWxpZCB2YWx1ZXMgYXJlIG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWyd0aXRsZV9uZXdzZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBTdWNoLVRlbXBsYXRlJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlcyddID0gJ1N1Y2hmb3JtdWxhciBUZW1wbGF0ZXMnOwokbGFuZ1snbmV3c2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ1N1Y2hmb3JtdWxhciBUZW1wbGF0ZSBoaW56dWYmdXVtbDtnZW4gb2RlciAmYXVtbDtuZGVybic7CiRsYW5nWyduZXdzZWFyY2hfdGVtcGxhdGUnXSA9ICdTdWNoZm9ybXVsYXIgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3VzZV9vbGRzZWFyY2gnXSA9ICdVc2Ugb2xkIHNlYXJjaCBhY3Rpb24gKGRvZXMgbm90IHN1cHBvcnQgcXVlcnlpbmcgb24gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBkb2VzIG5vdCByZXR1cm4gY2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gcmVzdWx0cyc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdJZiBlbmFibGVkLCBvbmx5IGFkbWluaXN0cmF0b3JzIGNhbiBlZGl0IHRoaXMgZmllbGQgZm9yIGVhY2ggZW50cnknOwokbGFuZ1snaW5mb191c2VydmlldyddID0gJ0lmIGVuYWJsZWQsIGFsbCB1c2VycyBjYW4gdmlldyB0aGlzIGZpZWxkIGZvciBlYWNoIGVudHJ5LiAgSWYgZGlzYWJsZWQgb25seSB0aGUgb3duZXIgYW5kIGFkbWluaXN0cmF0b3JzIGNhbiB2aWV3IHRoZSBmaWVsZCc7CiRsYW5nWydpbmZvX2FsYnVtX2ZpZWxkdHlwZSddID0gJ09ubHkgb25lIGFsYnVtIGZpZWxkIHR5cGUgaXMgcGVybWl0dGVkLiAgQWxsb3dpbmcgdXBsb2FkaW5nIG9mIG51bWVyb3VzIGltYWdlcyB0byBhc3NvY2lhdGUgd2l0aCBhIHNwZWNpZmljIGRhdGFiYXNlIGVudHJ5LiAgSW1hZ2VzIGNhbiBvbmx5IGJlIHVwbG9hZGVkIHRvIGFuIGFsYnVtIGZpZWxkIGZvciBhbiBleGlzdGluZyBlbnRyeSAod2hlbiBlZGl0aW5nIGFuIGVudHJ5KSBub3Qgd2hlbiBpbml0aWFsbHkgYWRkaW5nIHRoZSBlbnRyeS4nOwokbGFuZ1snY29vcmRpbmF0ZXMnXSA9ICdLb29yZGluYXRlbic7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdUaHVtYm5haWwnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0RyYWcgdW5kIERyb3AgVXBsb2FkJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0RhdGVpZW4gaGllciBhYmxlZ2VuJzsKJGxhbmdbJ2luZm9fZHJhZ19kcm9wJ10gPSAnV2l0aCBtb3N0IG1vZGVybiBicm93c2VycyAoZXhjZXB0IElFKSB5b3UgY2FuIGRyYWcgbXVsdGlwbGUgZmlsZXMgaW50byB0aGUgYWRqYWNlbnQgZHJvcCB6b25lLiAgVGhleSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgdXBsb2FkZWQgYW5kIGFkZGVkIHRvIHRoZSBhbGJ1bSc7CiRsYW5nWydhbGJ1bSddID0gJ0FsYnVtJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdBbGJ1bSBGZWxkIGV4aXN0aWVydCBiZXJlaXRzLiAgTnVyIGVpbiBGZWxkIGlzdCBlcmxhdWJ0JzsKJGxhbmdbJ2Vycm9yX2ttbGltcG9ydF9ub2FkZHJlc3MnXSA9ICdFcyB3dXJkIGtlaW5lIEFkcmVzc2UgZiZ1dW1sO3IgZGllc2VuIEVpbnRyYWcgZ2VmdW5kZW4nOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlaGxlcic7CiRsYW5nWydwcm9tcHRfbnVtZXJyb3JzJ10gPSAnTnVtYmVyIG9mIGVycm9ycyBmb3VuZCc7CiRsYW5nWydwYXJhbV9yYWRpdXMnXSA9ICdTcGVjaWZ5IHRoZSByYWRpdXMgKGluIG1pbGVzKSBmb3IgYSByYWRpdXMgc2VhcmNoLiAgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxhdCBhbmQgbG9uZyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxvbmdpdHVkZSBjb29yZGluYXRlIGZvciBhIHJhZGl1cyBzZWFyY2gsIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sYXQnXSA9ICdTcGVjaWZ5IHRoZSBjZW50ZXIgbGF0aXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbG9uZyBhbmQgcmFkaXVzIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ2luZm9fZWRpdG9yMiddID0gJ1VzZSB0aGUgbmV3IGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVycmVkIHRvIGFzIGZlZWRpdDIpPC9lbT4gTm90ZTogVGhlIG9sZCBlZGl0b3Igd2lsbCBiZSByZW1vdmVkIGluIENvbXBhbnlEaXJlY3RvcnkgMS4xNSBvciBiZXlvbmQuJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnVXNlIG5ldyBGcm9udGVuZCBFZGl0b3InOwokbGFuZ1snZXJyb3JfZ2VuZXJhdGV1cmwnXSA9ICdQcm9ibGVtIG9jY3VycmVkIGdlbmVyYXRpbmcgYSBVUkwnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydGllci1SZWloZW5mb2xnZSc7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnTm8gY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCc7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdFZGl0aW5nIENvbXBhbnknOwokbGFuZ1sncHJvbXB0X2FkZGNvbXBhbnknXSA9ICdBZGRpbmcgYSBuZXcgY29tcGFueSc7CiRsYW5nWydvcmdhbml6YXRpb24nXSA9ICdPcmdhbml6YXRpb24nOwokbGFuZ1snZmllbGRzJ10gPSAnRmllbGRzJzsKJGxhbmdbJ2ZpZWxkX2FsYnVtJ10gPSAnQWxidW0gKGdyb3VwIG9mIHBpY3R1cmVzKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnUHJlcGVuZCB3ZWJzaXRlIHZhbHVlcyB3aXRoIGh0dHA6Ly8nOwokbGFuZ1snaW5mb19wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ0lmIGEgd2Vic2l0ZSB2YWx1ZSBpcyBzcGVjaWZpZWQsIGFuZCBkb2VzIG5vdCBiZWdpbiB3aXRoIGEgdXJscHJlZml4IChodHRwLCBodHRwcywgZnRwKS4uICBodHRwOi8vIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGl0cyB2YWx1ZSBvbiBzYXZlJzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdPd25lciBpZCBpcyBub3Qgc2V0IG9yIGlzIGludmFsaWQnOwokbGFuZ1sncHJvbXB0X2V4dGVuc2lvbnMnXSA9ICdFcmxhdWJ0ZSBEYXRlaS1FbmR1bmdlbic7CiRsYW5nWydpbmZvX2V4dGVuc2lvbnMnXSA9ICdQcm92aWRlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zIChjYXNlIGluc2Vuc2l0aXZlKS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIENHRXh0ZW5zaW9ucyBkZWZhdWx0IHZhbHVlcyB3aWxsIGJlIHVzZWQuJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdGZWxkZGVmaW5pdGlvbiBoaW56dWYmdXVtbDtnZW4gb2RlciBiZWFyYmVpdGVuJzsKJGxhbmdbJ2ZpZWxkX2ZpbGUnXSA9ICdEYXRlaSc7CiRsYW5nWydpbnVzZSddID0gJ2luIHZlcndlbmR1bmcnOwokbGFuZ1snaW5mb19maWx0ZXJfaGllcmFyY2h5J10gPSAnU3BlY2lmeSBhIGhpZXJhcmNoeSBzdHJpbmcgKG9yIHBvcnRpb24pIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLCBhbmQgbWF5IGluY2x1ZGUgY2hpbGQgaGllcmFyY2hpZXMuICBpLmU6ICZxdW90O0NhcnMqJnF1b3Q7LiBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9hZGRyZXNzJ10gPSAnU3BlY2lmeSBhbiBhZGRyZXNzIHN0cmluZyB0byBzZWFyY2ggb24uICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhY2NlcHRlZC4gIGkuZTogJnF1b3Q7KlRleGFzKiZxdW90Oy4gVGhpcyBmaWVsZCBpcyBub3QgY2FzZSBzZW5zaXRpdmUnOwokbGFuZ1snaW5mb19maWx0ZXJfbmFtZSddID0gJ1NwZWNpZnkgYSBjb21wYW55IG5hbWUgKG9yIHBhcnRpYWwgY29tcGFueSBuYW1lIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLiAgaS5lOiAmcXVvdDsqcmVzdGFyYXVudCZxdW90OyBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnXSA9ICdObyBkYXRhYmFzZSBlbnRyaWVzIG1hdGNoZWQgdGhlIGNyaXRlcmlhIHNwZWNpZmllZCc7CiRsYW5nWydlZGl0X2ZpbHRlciddID0gJ0VkaXQgRmlsdGVyJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnQgQnknOwokbGFuZ1sncGFnZWxpbWl0J10gPSAnSXRlbXMgUGVyIFBhZ2UnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkyJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgdmlldywgYW5kIG9ubHkgd2hlbiB0aGUgPGVtPmNhdGVnb3J5PC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYW4gYWRkaXRpb25hbCBBTkQgZXhwcmVzc2lvbiB0byBpbmRpY2F0ZSBhZGRpdGlvbmFsIChjb21tYSBzZXBhcmF0ZWQpIGNhdGVnb3JpZXMgdGhhdCB0aGUgcmVzdWx0IHNob3VsZCBiZSBhIG1lbWJlciBvZi4gIGkuZToge0NvbXBhbnlEaXJlY3RvcnkgY2F0ZWdvcnk9JiMwMzk7cmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aCYjMDM5OyBjYXRlZ29yeTI9JiMwMzk7Y2Fycyx0cnVja3MmIzAzOTt9IHdvdWxkIHJldHVybiBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IHdlcmUgaW4gdGhlIGVpdGhlciBvZiB0aGUgcmVnaW9uIG5vcnRoIG9yIHJlZ2lvbiBzb3V0aCBjYXRlZ29yaWVzIEFORCBBTFNPIGluIGVpdGhlciBvZiB0aGUgY2FycyBvciB0cnVja3MgY2F0ZWdvcmllcyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnkyPC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgeWV0IGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuIFNlZSB0aGUgaGVscCBmb3IgdGhlIGNhdGVnb3J5MiBwYXJhbWV0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24nOwokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnVGhlIG5hbWUgc3BlY2lmaWVkIGlzIGludmFsaWQgKGdlbmVyYWxseSBuYW1lcyBzaG91bGQgYmUgdXJsIGZyaWVuZGx5KSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnQ3VycmVudCBWYWx1ZSc7CiRsYW5nWydwYXJhbV9mcm9udGVuZGxpc3R0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmZyb250ZW5kbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBmcm9udGVuZCBsaXN0IHRlbXBsYXRlIHRvIHVzZSBmb3IgcmVuZGVyaW5nIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdoYXQgcGFnZSBzaG91bGQgYmUgdXNlZCBmb3IgZGlzcGxheWluZyBtYXRjaGluZyByZXN1bHRzLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90Oyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdHZW5lcmF0ZSBlcnJvciAoYnV0IGNvbnRpbnVlKSc7CiRsYW5nWydlcnJvcl91cGRhdGVfY29tcGFueSddID0gJ0Vycm9yIG9jY3VycmVkIHVwZGF0aW5nIGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ2lnbm9yZSddID0gJ0lnbm9yZSc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnQ2F0ZWdvcnkgRGVsZXRlZCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ0NyZWF0ZSBVUkxTIGZvciByZWNvcmRzIHdpdGhvdXQgVVJMUyc7CiRsYW5nWydpbmZvX2NyZWF0ZV91cmwnXSA9ICdJZiBubyBVUkwgaXMgc3BlY2lmaWVkIGZvciBhIHJlY29yZCwgdGhpcyBvcHRpb24gd2lsbCBlbnN1cmUgdGhhdCB0aGV5IGFyZSBnZW5lcmF0ZWQuIElmIHRoZSAmcXVvdDtSZXF1aXJlIFVSTFMmcXVvdDsgcHJlZmVyZW5jZSBpcyBzZXQsIFVSTFMgd2lsbCBiZSBlbnN1cmVkIHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdDcmVhdGUgVVJMUyBPbiBDb3B5JzsKJGxhbmdbJ2luZm9fdXJsX2NyZWF0ZW9uY29weSddID0gJ1doZW4gY29weWluZyBjb21wYW5pZXMsIHNob3VsZCBhIFVSTCBiZSBjcmVhdGVkIGZvciB0aGUgZGVzdGluYXRpb24gcmVjb3JkLiAgVGhpcyBvbmx5IGFwcGxpZXMgaWYgVVJMUyBhcmUgbm90IHJlcXVpcmVkLic7CiRsYW5nWydlcnJvcl9iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiBlbmNvdW50ZXJlZCAlZCBlcnJvcnMnOwokbGFuZ1snaW5mb19iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiB1cGRhdGVkICVkIHJlY29yZHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1RoZSBVUkwgc3BlY2lmaWVkIChvciBjYWxjdWxhdGVkKSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRuYW1lJ10gPSAnVGhlIENvbXBhbnkgTmFtZSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnVGhlIFVSTCBmaWVsZCBpcyBub3QgZW1wdHkuLi4gY2Fubm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyB2YWx1ZSc7CiRsYW5nWydlcnJvcl91cmxyZXF1aXJlZCddID0gJ0EgVVJMIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2dldHVybCddID0gJ0NhbGN1bGF0ZSBVUkwnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnQSBVUkwgaXMgcmVxdWlyZWQnOwokbGFuZ1snaW5mb191cmxfcmVxdWlyZWQnXSA9ICdTaG91bGQgdGhlIFVSTCBmaWVsZCBiZSByZXF1aXJlZCB0byBiZSB2YWxpZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgY29tcGFueT8nOwokbGFuZ1snY2hlY2snXSA9ICdDaGVjayc7CiRsYW5nWyd1cmwnXSA9ICdVUkwnOwokbGFuZ1snY3JlYXRldXJscyddID0gJ1VSTFMgZXJzdGVsbGVuJzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdBdXRvbWF0aWNhbGx5IENyZWF0ZSBVUkxTIEZvciBleGlzdGluZyByZWNvcmRzIHdpdGggbm8gVVJMJzsKJGxhbmdbJ3VybF9yZWRpcmVjdG9sZCddID0gJ0RvIDMwMSBSZWRpcmVjdCB0byBuZXcgVVJMUyc7CiRsYW5nWydpbmZvX3VybF9yZWRpcmVjdG9sZCddID0gJ09uIGFuIGluY29taW5nIHJlcXVlc3QgZm9yIGEgY29tcGFueSB1c2luZyB0aGUgb2xkIFVSTCBwYXR0ZXJucywgcGVyZm9ybSBhIDMwMSByZWRpcmVjdCB0byB0aGUgbmV3IFVSTC4gIFRoaXMgd2lsbCBvbmx5IHdvcmsgZm9yIGVudHJpZXMgdGhhdCBoYXZlIFVSTFMgY3JlYXRlZC4nOwokbGFuZ1snaW5mb191cmxfYXV0b2NyZWF0ZSddID0gJ1doZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBjb21wYW55IGRlZmluaXRpb24sIGlmIHRoZSBVUkwgZmllbGQgaXMgYmxhbmsgb25lIHdpbGwgYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIGNvbXBhbnkgbmFtZS4gIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gZnJvbnRlbmQgZWRpdGluZyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHVuaXF1ZSBVUkxTJzsKJGxhbmdbJ3VybHMnXSA9ICdVUkxTJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGFkZHJlc3MnXSA9ICdXaGVuIGRvaW5nIGEgcG9zdGFsIGNvZGUgc2VhcmNoLCB1c2luZyB0aGUgc2VhcmNoIGFjdGlvbiwgaWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgdGhlIGFkZHJlc3MgZmllbGQgd2lsbCBhbHNvIGJlIHNlYXJjaGVkIGZvciB0aGUgbWF0Y2hpbmcgc3RyaW5nJzsKJGxhbmdbJ3BhcmFtX3Bvc3RhbGNoYXJzJ10gPSAnV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgb3B0aW9uIGFsbG93cyBsaW1pdGluZyB0aGUgZWZmZWN0aXZlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9uZiB0aGUgcG9zdGFsIGNvZGUnOwokbGFuZ1snbGFiZWxfaW5jbHVkZWNoaWxkcmVuJ10gPSAnSW5jbHVkZSBDaGlsZCBIaWVyYXJjaGllcyc7CiRsYW5nWydhbnknXSA9ICdBbGxlJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnljb2x1bW4nXSA9ICdTcGVjaWZ5IHRoZSBuYW1lIG9mIGEgY29sdW1uIHRoYXQgc3BlY2lmaWVzIG9uZSBvciBtb3JlIGNhdGVnb3J5IG5hbWVzIChzZXBhcmF0ZWQgYnkgYSBjb21tYSA8ZW0+KCwpPGVtPiBUaGF0IGNhbiBiZSB1c2VkIHRvIHF1aWNrbHkgcG9wdWxhdGUgdGhlIGNhdGVnb3JpZXMgZm9yIGVhY2ggcmVjb3JkLic7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnljb2x1bW4nXSA9ICdLYXRlZ29yaWUgc3BhbHRlJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnS2F0ZWdvcmllIHNwYWx0ZSAlcyB3dXJkZSBuaWNodCBnZWZ1bmRlbic7CiRsYW5nWydleHBpcmVzJ10gPSAnRyZ1dW1sO2x0aWcgYmlzJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmcgenVyJnV1bWw7Y2tzZXR6ZW4nOwokbGFuZ1sncHJvbXB0X2VtYWlsX2lzaHRtbCddID0gJ0VtYWlsIGlzdCBpbSBIVE1MLUZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsLUJldHJlZmYnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwtVGVtcGxhdGUnOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbC1UZW1wbGF0ZSc7CiRsYW5nWydmZWVkaXRfZW1haWxfc3ViamVjdCddID0gJ0JlaSBlaW5lbSBDb21wYW55RGlyZWN0b3J5LUVpbnRyYWcgd3VyZGUgZWluZSAmQXVtbDtuZGVydW5nIHZvcmdlbm9tbWVuJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ0FkbWluaXN0cmF0b3ItR3J1cHBlLCBkaWUgZGllIEJlbmFjaHJpY2h0aWd1bmdzLUVtYWlscyBlbXBmYW5nZW4gc29sbD8nOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uYWRkJ10gPSAnRWluZSBFbWFpbCB2ZXJzZW5kZW4sIHdlbm4gJnV1bWw7YmVyIGRpZSBXZWJzZWl0ZSBlaW4gbmV1ZXMgVW50ZXJuZWhtZW4gZWluZ2VnZWJlbiB3dXJkZSc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25lZGl0J10gPSAnRWluZSBFbWFpbCB2ZXJzZW5kZW4sIHdlbm4gJnV1bWw7YmVyIGRpZSBXZWJzZWl0ZSBlaW4gVW50ZXJuZWhtZW5zZGF0ZW5zYXR6IGdlJmF1bWw7bmRlcnQgd3VyZGUnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZ3JvdXAnXSA9ICdBZG1pbmlzdHJhdG9yLUdydXBwZSwgYW4gZGllIGRpZSBFbWFpbHMgZ2VzYW5kdCB3ZXJkZW4gc29sbGVuJzsKJGxhbmdbJ3Byb21wdF9mZXVfZGlzcGxheV9zZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gZiZ1dW1sO3IgZGllIEFuemVpZ2UgYXVmIGRlciBXZWJzZWl0ZSc7CiRsYW5nWydwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSA9ICdEYXRlbnMmYXVtbDt0emUgZGVyIGFiZ2VsYXVmZW5lbiBGcm9udGVuZC1CZW51dHplciBhbnplaWdlbic7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ0JpbGQnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEtRGF0ZW4gMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYS1EYXRlbiAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0V4dHJhLURhdGVuIDMnOwokbGFuZ1snbGJsX2JhY2snXSA9ICdadXImdXVtbDtjayc7CiRsYW5nWydtc2dfY29tcGFueWNvcGllZCddID0gJ0RpZSBVbnRlcm5laG1lbnNkYXRlbiB3dXJkZW4ga29waWVydCAuLi4gU2llIGsmb3VtbDtubmVuIGpldHp0IGRpZSBEZXRhaWxzIGYmdXVtbDtyIGRlbiBuZXVlbiBVbnRlcm5laG1lbnNlaW50cmFnIGJlYXJiZWl0ZW4nOwokbGFuZ1snY29weSddID0gJ0tvcGllcmVuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIHZlcnplaWNobmlzJmF1bWw7aG5saWNoZXMgTW9kdWwgZiZ1dW1sO3IgVW50ZXJuZWhtZW4uIEVzIGsmb3VtbDtubmVuIERhdGVucyZhdW1sO3R6ZSBmJnV1bWw7ciBVbnRlcm5laG1lbiBoaW56dWdlZiZ1dW1sO2d0L2JlYXJiZWl0ZXQvaW1wb3J0aWVydC9leHBvcnRpZXJ0IHVuZCBhdWYgdmVyc2NoaWVkZW5lbiBXZWdlbiBhbmdlemVpZ3Qgd2VyZGVuIChlaW5zY2hsaWUmc3psaWc7bGljaCBlaW5lciBTdWNoZSkuIERpZXNlcyBNb2R1bCBrYW5uIGluIFZlcmJpbmR1bmcgbWl0IGRlbSBDR0dvb2dsZU1hcHMtTW9kdWwgdmVyd2VuZGV0IHdlcmRlbi4nOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0RlciBEYXRlbmltcG9ydCB3YXIgZXJmb2xncmVpY2gnOwokbGFuZ1sncHJvbXB0X2hpZXJhcmNoaWVzX2ltcG9ydGVkJ10gPSAnSGllcmFyY2hpZS1Qb3NpdGlvbmVuIGVyc3RlbGx0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcyddID0gJ0hpZXJhcmNoaWUtRGF0ZW5zJmF1bWw7dHplIGltcG9ydGllcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5dmFscyddID0gJ0hpZXJhcmNoaWUtV2VydGUgaW1wb3J0aWVyZW4nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0ZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXIgSGllcmFyY2hpZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnRWluZSBIaWVyYXJjaGllIG1pdCBkZW0gTGFuZ25hbWVuICZxdW90OyVzJnF1b3Q7IGV4aXN0aWVydCAgYmVyZWl0cy4nOwokbGFuZ1snY29tcGFueWRlbGV0ZWQnXSA9ICdEYXMgVW50ZXJuZWhtZW4gd3VyZGUgZ2VsJm91bWw7c2NodCc7CiRsYW5nWydlcnJvcl91cGxvYWQnXSA9ICdGZWhsZXIgYmVpbSBIb2NobGFkZW4gZGVyIERhdGVpJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1NpZSBtJnV1bWw7c3NlbiBlaW5lbiBGZWxkdHJlbm5lciBhbmdlYmVuJzsKJGxhbmdbJ2Vycm9yX25vc3BvdHNsZWZ0J10gPSAnU2llIGhhYmVuIGtlaW5lIHZlcmJsZWliZW5kZW4gVW50ZXJuZWhtZW5zZmVsZGVyJzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdTaWUgaGFiZW4gJWQgdm9uICVkIFVudGVybmVobWVucy1GZWxkZXJuIHZlcndlbmRldCc7CiRsYW5nWydpbXBvcnRfZmlsZW5hbWUnXSA9ICdDU1YtRGF0ZWkgYXVzdyZhdW1sO2hsZW4nOwokbGFuZ1snZGVsaW1pdGVyJ10gPSAnRmVsZHRyZW5uZXInOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnVW50ZXJuZWhtZW5zaW5mb3JtYXRpb25lbiBrJm91bWw7bm5lbiBkaXJla3QgYXVzIGVpbmVyIEFTQ0lJLURhdGVpIGltcG9ydGllcnQgd2VyZGVuLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnTWl0IGRpZXNlbSBUZW1wbGF0ZSB3aXJkIGRhcyBGb3JtdWxhciBlcnN0ZWxsdCwgJnV1bWw7YmVyIGRhcyBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZXN1Y2hlciBEYXRlbiAmdXVtbDtiZXIgZWluZSBlbnRzcHJlY2hlbmQgZm9ybWF0aWVydGUgQ1NWLURhdGVpIGltcG9ydGllcmVuIGsmb3VtbDtubmVuJzsKJGxhbmdbJ2Zyb250ZW5kaW1wb3J0dGVtcGxhdGUnXSA9ICdXZWJzZWl0ZW4tQ1NWLUltcG9ydC1UZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZmV1X2ltcG9ydCddID0gJ0JlcmVjaHRpZ3RlbiBXZWJzZWl0ZW5iZXN1Y2hlcm4gZXJsYXViZW4sIERhdGVucyZhdW1sO3R6ZSB2aWEgQ1NWIGltcG9ydGllcmVuPyc7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnR2ViZW4gU2llIGVpbmVuIFRlbXBsYXRlLU5hbWVuIGFuLCBkZXIgZiZ1dW1sO3IgZGllIEFuemVpZ2UgZGVyIEhpZXJhcmNoaWUtTGlzdGVuLUFuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLic7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdIaWVyYXJjaGllLUxpc3Rlbi1UZW1wbGF0ZSBoaW56dWYmdXVtbDtnZW4vYmVhcmJlaXRlbic7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1IaWVyYXJjaGllLUxpc3Rlbi1UZW1wbGF0ZSc7CiRsYW5nWydoaWVyYXJjaHlsaXN0dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZS1MaXN0ZW4tVGVtcGxhdGVzJzsKJGxhbmdbJ3BhcmFtX2hpZXInXSA9ICdLYW5uIGYmdXVtbDtyIGRpZSA8ZW0+ZGVmYXVsdDwvZW0+IHVuZCBkaWUgPGVtPmhpZXJsaXN0PC9lbT4gQWt0aW9uIHZlcndlbmRldCB3ZXJkZW4uICZVdW1sO2JlciBkaWVzZW4gUGFyYW1ldGVyIGthbm4gZGVyIE5hbWUgZGVyIEhpZXJhcmNoaWUgdm9yZ2VnZWJlbiB3ZXJkZW4sIGRlc3NlbiBVbnRlcm5laG1lbiBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4gRGllIDxlbT5kZWZhdWx0PC9lbT4gQWt0aW9uIGthbm4gaW4gVmVyYmluZHVuZyBtaXQgSm9rZXJ6ZWljaGVuIHZlcndlbmRldCB3ZXJkZW4sIHouQnNwLiAmcXVvdDsqZWluaGllcmFyY2hpZW5hbWUqJnF1b3Q7LiBNaXQgZGVyIDxlbT5oaWVybGlzdDwvZW0+IEFrdGlvbiBtdXNzIGRpZXNlciBQYXJhbWV0ZXIgZGVuIGVpbmRldXRpZ2VuIE5hbWVuIGVpbmVyIEhpZXJhcmNoaWUgZW50aGFsdGVuLCBkZXIgZGVuIFN0YXJ0cHVua3QgZiZ1dW1sO3IgZGllIEhpZXJhcmNoaWUtQW56ZWlnZSBmZXN0bGVndC4nOwokbGFuZ1snbXNnX2hpZXJkZWxldGVkJ10gPSAnSGllcmFyY2hpZS1Qb3NpdGlvbiBnZWwmb3VtbDtzY2h0JzsKJGxhbmdbJ21zZ19oaWVydXBkYXRlZCddID0gJ0hpZXJhcmNoaWUtUG9zaXRpb24gYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ21zZ19oaWVyYWRkZWQnXSA9ICdIaWVyYXJjaGllLVBvc2l0aW9uIGhpbnp1Z2VmJnV1bWw7Z3QnOwokbGFuZ1snYWRkaGllciddID0gJ0hpZXJhcmNoaWUgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWUnOwokbGFuZ1snYWRkX2VkaXRfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgaGluenVmJnV1bWw7Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzICc7CiRsYW5nWydub25lJ10gPSAnS2VpbmUnOwokbGFuZ1snb3duZXInXSA9ICdFaWdlbnQmdXVtbDttZXInOwokbGFuZ1snY3JlYXRlZCddID0gJ0Vyc3RlbGx0JzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnR2UmYXVtbDtuZGVydCc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRWluIFdlYnNlaXRlbi1MaXN0ZW4tVGVtcGxhdGUgaGluenVmJnV1bWw7Z2VuIG9kZXIgYmVhcmJlaXRlbic7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdEJnV1bWw7cmZlbiBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW4tQmVudXR6ZXIgZGVuIEZpcm1lbnN0YXR1cyAmYXVtbDtuZGVybj8nOwokbGFuZ1sncHJvbXB0X2ZldV9uZXdfc3RhdHVzJ10gPSAnVm9yZWluZ2VzdGVsbHRlciBTdGF0dXMgZiZ1dW1sO3IgbmV1ZSwgdmlhIFdlYnNlaXRlIGVyc3RlbGx0ZSBEYXRlbnMmYXVtbDt0emUnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgV2Vic2VpdGVuLUxpc3Rlbi1UZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdXZWJzZWl0ZW4tTGlzdGVuLVRlbXBsYXRlcyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsbGdlbWVpbmUgRWluc3RlbGx1bmdlbic7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdFaW5zdGVsbHVuZ2VuIGYmdXVtbDtyIGRpZSBCZWFyYmVpdHVuZyB2aWEgV2Vic2VpdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdEJnV1bWw7cmZlbiBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZXN1Y2hlciAoRnJvbnRlbmRVc2VycykgbmV1ZSBEYXRlbnMmYXVtbDt0emUgZXJzdGVsbGVuPyc7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYXhpbWFsZSBBbnphaGwgZGVyIERhdGVucyZhdW1sO3R6ZSwgZGllIGVpbmVtIEZFVS1Lb250byB6dWdlb3JkbmV0IHdlcmRlbiBrJm91bWw7bm5lbic7CiRsYW5nWydwcm9tcHRfbnVtaW1wb3J0ZWQnXSA9ICdBbnphaGwgZGVyIGltcG9ydGllcnRlbiBEYXRlbnMmYXVtbDt0emUnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnTmFtZW4gZGVyIFVudGVybmVobWVuIGF1ZiBEdXBsaWthdGUgcHImdXVtbDtmZW4nOwokbGFuZ1sncHJvbXB0X3N0YXR1cyddID0gJ1N0YXR1cyBmJnV1bWw7ciBpbXBvcnRpZXJ0ZSBEYXRlbnMmYXVtbDt0emUnOwokbGFuZ1sncHJvbXB0X2lnbm9yZV9hZGRyZXNzJ10gPSAnQWRyZXNzZmVsZCBpZ25vcmllcmVuJzsKJGxhbmdbJ3Byb21wdF9jb252ZXJ0X2FkZHJlc3MnXSA9ICdBZHJlc3NlbiBpbiBLb29yZGluYXRlbiB1bXdhbmRlbG4gKGZhbGxzIG5vY2gga2VpbmUgS29vcmRpbmF0ZW4gZWluZ2VnZWJlbiB3dXJkZW4pJzsKJGxhbmdbJ3Byb21wdF9rbWxmaWxlJ10gPSAnWnUgaW1wb3J0aWVyZW5kZSBLTUwtRGF0ZWknOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnS01MIGltcG9ydGllcmVuJzsKJGxhbmdbJ2ltcG9ydF9rbWwnXSA9ICdLTUwtRGF0ZWkgaW1wb3J0aWVyZW4nOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnSWhyZSBBdXN3YWhsJzsKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ1VtIGRpZXNlIEZ1bmt0aW9uIHZlcndlbmRlbiB6dSBrJm91bWw7bm5lbiwgbSZ1dW1sO3NzZW4gU2llIGF1ZiBkaWVzZXIgV2Vic2VpdGUgYW5nZW1lbGRldCBzZWluLic7CiRsYW5nWydhY3RpdmUnXSA9ICdBa3Rpdic7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGluayBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzc2UnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydhZGRjb21wYW55J10gPSAnVW50ZXJuZWhtZW4gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdOdXIgZiZ1dW1sO3IgZGVuIEFkbWluaXN0cmF0b3Igc2ljaHRiYXInOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dvbGxlbiBTaWUgZGllcyB3aXJrbGljaCBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0F1ZnN0ZWlnZW5kJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FiYnJlY2hlbic7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0QmdXVtbDtyZmVuIFdlYnNlaXRlbmJlc3VjaGVyIGRpZXNlcyBGZWxkIGJlYXJiZWl0ZW4gayZvdW1sO25uZW4/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnU29sbCBkaWVzZXMgRmVsZCBkZW4gV2Vic2VpdGVuYmVzdWNoZXJuIGFuZ2V6ZWlndCB3ZXJkZW4/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVuJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmllIGhpbnp1Z2VmJnV1bWw7Z3QnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmllIGFrdHVhbGlzaWVydCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnS2F0ZWdvcmllLUxpc3Rlbi1UZW1wbGF0ZSBoaW56dWYmdXVtbDtnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaWUtTGlzdGVuLVRlbXBsYXRlcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWVuLUxpc3RlbiBha3R1YWxpc2llcnQnOwokbGFuZ1snY29tcGFueSddID0gJ1VudGVybmVobWVuJzsKJGxhbmdbJ2NvbXBhbnlhZGRlZCddID0gJ0RhcyBVbnRlcm5laG1lbiB3dXJkZSBoaW56dWdlZiZ1dW1sO2d0JzsKJGxhbmdbJ2NvbXBhbnluYW1lJ10gPSAnTmFtZSBkZXMgVW50ZXJuZWhtZW5zJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnRGllIFVudGVybmVobWVuc2RhdGVuIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdVbnRlcm5laG1lbic7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ1VudGVybmVobWVuJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICdVbnRlcm5laG1lbnN2ZXJ6ZWljaG5pcyc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdLb250YWt0LUVtYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRWluZ2FiZWRhdHVtJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZC1UZW1wbGF0ZXMnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZSBJbmhhbHRlIGRpZXNlciBUZXh0YmVyZWljaGUgd2VyZGVuIHZlcndlbmRldCwgdW0gZGVuIFN0YW5kYXJkaW5oYWx0IGZlc3R6dWxlZ2VuLCBkZXIgYXV0b21hdGlzY2ggZWluZ2VmJnV1bWw7Z3Qgd2lyZCwgd2VubiBTaWUgaW4gZGVyIGpld2VpbGlnZW4gUmVnaXN0ZXJrYXJ0ZSAmcXVvdDtUZW1wbGF0ZSBoaW56dWYmdXVtbDtnZW4mcXVvdDsga2xpY2tlbi4gRGllIEJlYXJiZWl0dW5nIGRpZXNlciBUZXh0YmVyZWljaGUgaGF0IGtlaW5lIEF1c3dpcmt1bmdlbiBhdWYgSWhyZSBXZWJzZWl0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnTCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGwmb3VtbDtzY2hlbic7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnVW50ZXJuZWhtZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBYnN0ZWlnZW5kJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVzY2hyZWlidW5nJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhaWxzICc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0RldGFpbHMgJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEZXRhaWwtVGVtcGxhdGUgaGluenVmJnV1bWw7Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsLVRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEYXMgRGV0YWlsLVRlbXBsYXRlIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0RlYWt0aXZpZXJ0JzsKJGxhbmdbJ2Rvd24nXSA9ICdOYWNoIHVudGVuJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRW50d3VyZic7CiRsYW5nWydlZGl0J10gPSAnQmVhcmJlaXRlbic7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ1VudGVybmVobWVuIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24gYmVhcmJlaXRlbic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ2Vycm9yX2JhZHVwbG9hZCddID0gJ01pdCBkZXIgaG9jaGdlbGFkZW5lbiBEYXRlaSBpc3QgZWluIFByb2JsZW0gYXVmZ2V0cmV0ZW4nOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWUnXSA9ICdEZXIgVW50ZXJuZWhtZW5zbmFtZSBpc3QgdW5nJnV1bWw7bHRpZyc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0VpbiBVbnRlcm5laG1lbiBtaXQgZGllc2VtIE5hbWVuIGlzdCBiZXJlaXRzIGluIGRlciBEYXRlbmJhbmsgdm9yaGFuZGVuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9jYXRlZ29yeSddID0gJ0VpbmUgS2F0ZWdvcmllIG1pdCBkaWVzZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55J10gPSAnRWluIFVudGVybmVobWVuIG1pdCBkaWVzZW0gTmFtZW4gKCVzKSBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnRWluIEZlbGQgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdTY2hsZWNodGVyIERhdGVuc2F0eiBpbiBaZWlsZSAlZCBnZWZ1bmRlbi4gRmVobHQgZWluZSBSZWdlbD8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRWluIHNjaGxlY2h0ZXIgV2VydCB3dXJkZSBmJnV1bWw7ciAlcyBGZWxkIGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlJ10gPSAnRHVwbGlrYXQgJXMgUmVnZWwgaW4gWmVpbGUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpa2F0LVJlZ2VsIGluIFplaWxlICVkIGlkZW50aWZpemllcnQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25yb3cnXSA9ICdFcyBpc3QgbmljaHQgYmVrYW5udCwgd2llIFplaWxlICVkIG1pdCBkZXIgUmVnZWwgJXMgdmVyYXJiZWl0ZXQgd2VyZGVuIHNvbGwnOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25ydWxlJ10gPSAnVW5iZWthbm50ZSBSZWdlbCBpbiBaZWlsZSAlZCc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY2F0ZWdvcnknXSA9ICdCZWltIEVpbmYmdXVtbDtnZW4gZGVyIEthdGVnb3JpZWJlc2NocmVpYnVuZyBpc3QgZWluIERhdGVuYmFua2ZlaGxlciBhdWZnZXRyZXRlbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0JlaW0gRWluZiZ1dW1sO2dlbiBkZXIgVW50ZXJuZWhtZW5zYmVzY2hyZWlidW5nIGlzdCBlaW4gRGF0ZW5iYW5rZmVobGVyIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0JlaW0gRWluZiZ1dW1sO2dlbiBkZXIgRmVsZGRlZmluaXRpb24gaXN0IGVpbiBEYXRlbmJhbmtmZWhsZXIgYXVmZ2V0cmV0ZW4nOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ0RlciBmJnV1bWw7ciAlcyBlaW5nZWdlYmVuZSBXZXJ0IGlzdCB1bmcmdXVtbDtsdGlnJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdFcyB3dXJkZSBrZWluZSBEYXRlaSBob2NoZ2VsYWRlbic7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdJbSBGb3JtdWxhciB3dXJkZSBlaW4gUGZsaWNodGZlbGQgbmljaHQgYXVzZ2VmJnV1bWw7bGx0JzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnRXMgd3VyZGUga2VpbmUgTGlzdGVuZmVsZC1PcHRpb24gYXVzZ2V3JmF1bWw7aGx0JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS29ubnRlIGRhcyBGcm9udEVuZFVzZXJzLU1vZHVsIG5pY2h0IGZpbmRlbic7CiRsYW5nWydlcnJvcl9ub2xlbmd0aCddID0gJ0VzIHd1cmRlIGtlaW5lIG1heGltYWxlIEZlbGRsJmF1bWw7bmdlIGFuZ2VnZWJlbic7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ0luIGRlciBEYXRlbmJhbmsgd3VyZGVuIGtlaW5lIERhdGVuIGdlZnVuZGVuLCBkaWUgbWl0IElocmVuIEtyaXRlcmllbiAmdXVtbDtiZXJlaW5zdGltbWVuJzsKJGxhbmdbJ2Vycm9yX3Bvc3Rjb2RlX2xvb2t1cCddID0gJ0tvbm50ZSBrZWluZSBJbmZvcm1hdGlvbmVuIGYmdXVtbDtyIGRpZSBQb3N0bGVpdHphaGwgJXMgZmluZGVuJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdJbiBaZWlsZSAlZCBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbjogJXMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnQWxzIENTVi1EYXRlaSBleHBvcnRpZXJlbic7CiRsYW5nWydmYXgnXSA9ICdGYXggJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXggJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmVsZGRlZmluaXRpb25lbic7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdGZWxkZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGllIEZlbGRkZWZpbml0aW9uIHd1cmRlIGhpbnp1Z2VmJnV1bWw7Z3QnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRGllIEZlbGRkZWZpbml0aW9uIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdEaWUgRmVsZGRlZmluaXRpb24gd3VyZGUgZ2VsJm91bWw7c2NodCc7CiRsYW5nWydmaWVsZF9jaGVja2JveCddID0gJ0tvbnRyb2xsZmVsZCc7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZmllbGRfdGV4dGFyZWEnXSA9ICdUZXh0YmVyZWljaCc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dGVpbmdhYmUnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwgJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdGcm9udGVuZC1Gb3JtdWxhci1UZW1wbGF0ZSBmJnV1bWw7ciBkaWUgV2Vic2VpdGUgaGluenVmJnV1bWw7Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnVW50ZXJuZWhtZW5zLVRlbXBsYXRlcyBiZWFyYmVpdGVuJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ1VudGVybmVobWVucy1UZW1wbGF0ZXMgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnSGllciBrJm91bWw7bm5lbiBTaWUgZGllIE9wdGlvbmVuIGYmdXVtbDtyIGRpZSBMaXN0ZW5mZWxkLUtvbnRyb2xsZSBlaW5nZWJlbiwgamV3ZWlscyBlaW5lIFplaWxlIHBybyBFaW50cmFnLiBUcmVubmVuIFNpZSBTY2hsJnV1bWw7c3NlbCB1bmQgV2VydGUgbWl0IGVpbmVtID0uIEJlaXNwaWVsOiBTY2hsJnV1bWw7c3NlbD1XZXJ0JzsKJGxhbmdbJ2ltYWdlY3VycmVudGhpZGRlbiddID0gJyAgJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGQnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnQ1NWIGltcG9ydGllcmVuJzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnQnJlaXRlbmdyYWQnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+PiAnOwokbGFuZ1snbG9nb2N1cnJlbnRoaWRkZW4nXSA9ICcgICc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1VudGVybmVobWVuc2xvZ28nOwokbGFuZ1snbG9uZ2l0dWRlJ10gPSAnTCZhdW1sO25nZW5ncmFkJzsKJGxhbmdbJ2xvb2t1cCddID0gJ0tvb3JkaW5hdGVuIHN1Y2hlbic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbWFsZSBMJmF1bWw7bmdlJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdNYXhpbWFsZSBMJmF1bWw7bmdlJzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdNYXhpbWFsZSBMJmF1bWw7bmdlJzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdHVtIGRlciBsZXR6dGVuIEJlYXJiZWl0dW5nJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1lICc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUgJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnVW0gZGllc2UgRnVua3Rpb24gYXVzZiZ1dW1sO2hyZW4genUgayZvdW1sO25uZW4sIGJlbiZvdW1sO3RpZ2VuIFNpZSBkaWUgQmVyZWNodGlndW5nICYjMDM5OyVzJiMwMzk7Lic7CiRsYW5nWydubyddID0gJ05laW4nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnRXMgd3VyZGUga2VpbiBGaXJtZW5uYW1lIGVpbmdlZ2ViZW4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdFcyB3dXJkZSBrZWluIE5hbWUgZWluZ2VnZWJlbic7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAnRXMgd3VyZGUga2VpbmUgWmFobCBlaW5nZWdlYmVuJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPiAnOwokbGFuZ1snb2YnXSA9ICd2b24nOwokbGFuZ1sncGFnZSddID0gJ1NlaXRlJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ01pdCBkaWVzZW0gUGFyYW1ldGVyIHdpcmQgZGFzIHByaW0mYXVtbDtyZSBWZXJoYWx0ZW4gZGVzIE1vZHVscyBmZXN0Z2VsZWd0LiBGb2xnZW5kZSBXZXJ0ZSBzaW5kIG0mb3VtbDtnbGljaDoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBaZWlndCBlaW5lIExpc3RlIGRlciBLYXRlZ29yaWVuLiBEaWUgQmVzdWNoZXIgayZvdW1sO25uZW4gZGFubiBpbiBkZW4gWnVzYW1tZW5mYXNzdW5ncy1BbnNpY2h0IHVuZCB3ZWl0ZXIgaW4gZGllIERldGFpbC1BbnNpY2h0IHdlY2hzZWxuLjwvbGk+DQogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gRGllIFVudGVybmVobWVuIHdlcmRlbiBpbiBlaW5lbSBadXNhbW1lbmZhc3N1bmdzLU1vZHVzIGFuZ2V6ZWlndC48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBaZWlndCBkZXRhaWxpZXJ0ZSBJbmZvcm1hdGlvbmVuICZ1dW1sO2JlciBlaW4gYmVzdGltbXRlcyBVbnRlcm5laG1lbiBhbi48L2xpPg0KICA8bGk+ZmVfZWRpdCAtLSBaZWlndCBhdWYgZGVyIFdlYnNlaXRlIGVpbiBGb3JtdWxhciBhbiwgJnV1bWw7YmVyIGRhcyBkaWUgSW5mb3JtYXRpb25lbiBlaW5lcyBiZXN0aW1tdGVuIFVudGVybmVobWVucyBiZWFyYmVpdGV0IHdlcmRlbiBrJm91bWw7bm5lbi48L2xpPg0KICAgPGxpPmZyb250ZW5kbGlzdCAtLSBaZWlndCBhdWYgZGVyIFdlYnNlaXRlIGVpbmUgTGlzdGUgYWxsZXIgVW50ZXJuZWhtZW5zZGF0ZW4gYW4sIG1pdCBkZXIgb3B0aW9uYWxlbiBNJm91bWw7Z2xpY2hrZWl0LCBEYXRlbiBoaW56dXp1ZiZ1dW1sO2dlbi48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBaZWlndCBlaW4gRm9ybXVsYXIgZiZ1dW1sO3IgZGllIFN1Y2hlIG5hY2ggZWluZW0gYmVzdGltbXRlbiBVbnRlcm5laG1lbiBhbi48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBaZWlndCBlaW5lIExpc3RlIGRlciBIaWVyYXJjaGllbiBhbi4gRGllIEJlc3VjaGVyIGsmb3VtbDtubmVuIGRhbm4gaW4gZGVuIFp1c2FtbWVuZmFzc3VuZ3MtQW5zaWNodCB1bmQgd2VpdGVyIGluIGRpZSBEZXRhaWwtQW5zaWNodCB3ZWNoc2Vsbi48L2xpPg0KDQo8L3VsPg0KJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0thbm4gbnVyIG1pdCBkZW0gPGVtPmRlZmF1bHQ8L2VtPiBadXNhbW1lbmZhc3N1bmdzLSB1bmQgZGVtIDxlbT5zZWFyY2g8L2VtPiBNb2R1cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGZlc3RnZWxlZ3Qgd2VyZGVuLCBvYiBkaWUgRXJnZWJuaXNzZSBkZW4gU3RhbmRhcmQtSW5oYWx0c2Jsb2NrIG9kZXIgZGVuIE1vZHVsLVRhZyAoaW5saW5lKSBlcnNldHplbiBzb2xsZW4uJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0thbm4gbnVyIGltIDxlbT5zZWFyY2g8L2VtPiBNb2R1cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGVpbiB2b24gZGVyIFZvcmVpbnN0ZWxsdW5nIGFid2VpY2hlbmRlcyBUZW1wbGF0ZSBmJnV1bWw7ciBkYXMgU3VjaGZvcm11bGFyIGZlc3RnZWxlZ3Qgd2VyZGVuLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaXJkIGRpZXMgbWl0IGRlbSA8ZW0+ZGVmYXVsdDwvZW0+IFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgb2RlciBkZW0gPGVtPnNlYXJjaDwvZW0+IE1vZHVzIHZlcndlbmRldCwga2FubiBtaXQgZGllc2VtIFdlcnQgZGllIEFuemFobCBkZXIgYXVzZ2VnZWJlbmVuIEVyZ2Vibmlzc2UgZmVzdGdlbGVndCB3ZXJkZW4uJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnQmVpIFZlcndlbmR1bmcgaW0gPGVtPmRlZmF1bHQ8L2VtPiBadXNhbW1lbmZhc3N1bmdzLU1vZHVzIHdlcmRlbiBtaXQgZGllc2VtIFBhcmFtZXRlciBkaWUgS2F0ZWdvcmllbiAoZGVyIG1pdCBkZW4gZXhpc3RpZXJlbmRlbiBLYXRlZ29yaWUgJnV1bWw7YmVyZWluc3RpbW1lbiBzb2xsdGVuKSBmZXN0Z2VsZWd0LCBkZXNzZW4gVW50ZXJuZWhtZW4gYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uIERpZSBLYXRlZ29yaWVuIHNpbmQgZHVyY2ggS29tbWF0YSB2b25laW5hbmRlciBnZXRyZW5udCBhbnp1Z2ViZW4uJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnTGVndCBkYXMgVGVtcGxhdGUgZmVzdCAoYWxzIE5hbWUpLCBtaXQgZGVtIGRpZSBLYXRlZ29yaWVubGlzdGUgYW5nZXplaWd0IHdlcmRlbiBzb2xsLic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIGxlZ3QgZmVzdCwgd2VsY2hlciBGaXJtZW4tRGF0ZW5zYXR6IGJlYXJiZWl0ZXQgb2RlciBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuIElzdCBmJnV1bWw7ciBkaWUgQmVhcmJlaXR1bmcgdm9uIERhdGVuIGltIEZyb250ZW5kIHVuZCBpbSBEZXRhaWwtTW9kdXMgZXJmb3JkZXJsaWNoLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnTGVndCBlaW5lbiBTZWl0ZW4tQWxpYXMgZmVzdCAoYWxzIE5hbWUpLCBhdWYgZGVzc2VuIFNlaXRlIGRpZSBEZXRhaWxkYXRlbiBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4gPHN0cm9uZz5IaW53ZWlzOjwvc3Ryb25nPiBEaWVzZXIgUGFyYW1ldGVyIGlzdCBtaXQgUHJldHR5IFVSTHMgbmljaHQga29tcGF0aWJlbC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdMZWd0IGRhcyBUZW1wbGF0ZSBmZXN0IChhbHMgTmFtZSksIHdlbGNoZXMgZiZ1dW1sO3IgZGllIERldGFpbGFuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiA8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZXNlciBQYXJhbWV0ZXIgaXN0IG1pdCBQcmV0dHkgVVJMcyBuaWNodCBrb21wYXRpYmVsLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGFsYnVtdGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBhbiBhbGJ1bSBvZiBpbWFnZXMgYXNzb2NpYXRlZCB3aXRoIGEgY29tcGFueS4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRmb3JtdGVtcGxhdGUnXSA9ICdMZWd0IGRhcyBUZW1wbGF0ZSBmZXN0IChhbHMgTmFtZSksIHdlbGNoZXMgZiZ1dW1sO3IgZGllIEFuemVpZ2UgZGVzIEJlYXJiZWl0dW5nc2Zvcm11bGFycyBhdWYgZGVyIFdlYnNlaXRlIHZlcndlbmRldCB3ZXJkZW4gc29sbC4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0thbm4gbnVyIG1pdCBkZXIgY2F0ZWdvcnlsaXN0IEFrdGlvbiB2ZXJ3ZW5kZXQgd2VyZGVuLiBXZW5uIGRpZXNlciBQYXJhbWV0ZXIgZ2VzZXR6dCB3dXJkZSwgd2VyZGVuIGFsbGUgS2F0ZWdvcmllbiBtaXQgbmljaHQgJnV1bWw7YmVyZWluc3RpbW1lbmRlbiBGaXJtZW4gYXVzZ2VnZWJlbi4gJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ0xlZ3QgZGllIFNvcnRpZXJ1bmcgZGVyIEZlbGRlciBpbiBkZXIgWnVzYW1tZW5mYXNzdW5nc2Fuc2ljaHQgZmVzdC4gTSZvdW1sO2dsaWNoZSBXZXJ0ZSBzaW5kOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXVmc3RlaWdlbmQ8L2xpPg0KICA8bGk+ZGVzYyAtLSBBYnN0ZWlnZW5kPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ051ciBpbSBadXNhbW1lbmZhc3N1bmdzLU1vZHVzIGFud2VuZGJhci4gRGllc2VyIFBhcmFtZXRlciBsZWd0IGZlc3QsIHdvbmFjaCBkaWUgVW50ZXJuZWhtZW4gc29ydGllcnQgd2VyZGVuIHNvbGxlbi4gRXMgc2luZCBmb2xnZW5kZSBXZXJ0ZSBtJm91bWw7Z2xpY2g6DQo8dWw+DQo8bGk+aWQgLS0gRGllIGludGVybmUgVW50ZXJuZWhtZW5zLUlEPC9saT4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+IC0tIERlciBVbnRlcm5laG1lbnNuYW1lPC9saT4NCiAgPGxpPnBob25lIC0tIGRpZSBUZWxlZm9ubnVtbWVyPC9saT4NCiAgPGxpPmZheCAtLSBkaWUgRmF4bnVtbWVyPC9saT4NCiAgPGxpPmVtYWlsIC0tIGRpZSBFbWFpbC1BZHJlc3NlPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gRGllIFdlYnNlaXRlbi1VUkw8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBEYXMgRXJzdGVsbHVuZ3NkYXR1bSBkZXMgVW50ZXJuZWhtZW5zZGF0ZW5zYXR6ZXM8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gRGFzIEJlYXJiZWl0dW5nc2RhdHVtIGRlcyBVbnRlcm5laG1lbnNkYXRlbnNhdHplczwvbGk+DQogIDxsaT5zdGF0dXMgLS0gZGVyIFN0YXR1cyBkZXMgVW50ZXJuZWhtZW5zZGF0ZW5zYXR6ZXM8L2xpPg0KICA8bGk+cmFuZG9tIC0tIGRpZSBFaW50ciZhdW1sO2dlIHp1ZiZhdW1sO2xsaWcgc29ydGllcmVuLjwvbGk+DQogIDxsaT5mOkZlbGRuYW1lIC0tIG5hY2ggJm91bWw7ZmZlbnRsaWNoZW4genVzJmF1bWw7dHpsaWNoZW4gRmVsZGVybiBzb3J0aWVyZW4uIERpZSBBdXNnYWJlIGVyZm9sZ3Qgc29ydGllcnQgbmFjaCBkZW0gYmVuYW5udGVuIHp1cyZhdW1sO3R6bGljaGVuIEZlbGQuPGJyIC8+DQogIDxzdHJvbmc+SGlud2VpcyAxOjwvc3Ryb25nPiBXZW5uIGRpZSBGZWxkbmFtZW4gTGVlcnplaWNoZW4gZW50aGFsdGVuLCBtJnV1bWw7c3NlbiBTaWUgQW5mJnV1bWw7aHJ1bmdzemVpY2hlbiB2ZXJ3ZW5kZW4uPGJyIC8+DQogIDxzdHJvbmc+SGlud2VpcyAyOjwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy48L2xpPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0xlZ3QgZmVzdCwgd2VsY2hlcyBUZW1wbGF0ZSBmJnV1bWw7ciBkaWUgQW56ZWlnZSBkZXIgWnVzYW1tZW5mYXNzdW5nIHZlcndlbmRldCB3ZXJkZW4gc29sbCAoTmFtZSBkZXMgVGVtcGxhdGVzKS4gPHN0cm9uZz5IaW53ZWlzOjwvc3Ryb25nPiBEaWVzZXIgUGFyYW1ldGVyIGZ1bmt0aW9uaWVydCBuaWNodCBtaXQgUHJldHR5IFVSTHMuJzsKJGxhbmdbJ3Bvc3RhbF9jb2RlJ10gPSAnUG9zdGxlaXR6YWhsIChQTFopJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGFzIENvbXBhbnktRGlyZWN0b3J5LU1vZHVsIChVbnRlcm5laG1lbnN2ZXJ6ZWljaG5pcykgd3VyZGUgaW5zdGFsbGllcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RhcyBDb21wYW55LURpcmVjdG9yeS1Nb2R1bCAoVW50ZXJuZWhtZW5zdmVyemVpY2huaXMpIHd1cmRlIGRlaW5zdGFsbGllcnQuIFMmYXVtbDttdGxpY2hlIFVudGVybmVobWVuc2RhdGVuIHd1cmRlbiBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdXb2xsZW4gU2llIGRpZXNlcyBNb2R1bCB3aXJrbGljaCBkZWluc3RhbGxpZXJlbj8gTWl0IGRlciBEZWluc3RhbGxhdGlvbiBkZXMgTW9kdWxzIHdlcmRlbiBzJmF1bWw7bXRsaWNoZSBVbnRlcm5laG1lbnNkYXRlbiBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydwcmV2cGFnZSddID0gJzwgJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnS2F0ZWdvcmllbiBpbXBvcnRpZXJ0JzsKJGxhbmdbJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJ10gPSAnQXVmIER1cGxpa2F0ZSB2b24gVW50ZXJuZWhtZW5zbmFtZW4gcHImdXVtbDtmZW4/JzsKJGxhbmdbJ3Byb21wdF9jb2xsZWN0c3RhdHMnXSA9ICdTdWNoLVN0YXRpc3Rpa2VuIGVyc3RlbGxlbic7CiRsYW5nWydwcm9tcHRfY29tcGFuaWVzX2ltcG9ydGVkJ10gPSAnRmlybWVuIGltcG9ydGllcnQnOwokbGFuZ1sncHJvbXB0X2RlbGltZXRlciddID0gJ0ZlbGR0cmVubmVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnRGllIHZvcmVpbmdlc3RlbGx0ZSBTZWl0ZSwgYXVmIGRlciBkaWUgQXVzZ2FiZSBkZXIgRGV0YWlscyBlcmZvbGdlbiBzb2xsJzsKJGxhbmdbJ3Byb21wdF9kcm9wZG93bl9vcHRpb25zJ10gPSAnTGlzdGVuZmVsZC1PcHRpb25lbic7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnRmVsZGRlZmluaXRpb25lbiBpbXBvcnRpZXJ0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnRmVobGVuZGUgS2F0ZWdvcmllbiBiZWltIEltcG9ydCBlcnN0ZWxsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeXZhbHMnXSA9ICdLYXRlZ29yaWV3ZXJ0ZSBiZWltIEltcG9ydCBmJnV1bWw7bGxlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdDU1YtRGF0ZWkgaG9jaGxhZGVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJ10gPSAnRmVobGVuZGUgRGVmaW5pdGlvbmVuIGYmdXVtbDtyIHp1cyZhdW1sO3R6bGljaGUgRmVsZGVyIGJlaW0gSW1wb3J0IGVyc3RlbGxlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1dlcnRlIGYmdXVtbDtyIHp1cyZhdW1sO3R6bGljaGUgRmVsZGVyIGJlaW0gSW1wb3J0IGYmdXVtbDtsbGVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfbG9va3VwbGF0bG9uZyddID0gJ0JyZWl0ZW4tIHVuZCBMJmF1bWw7bmdlbmdyYWQgZXJtaXR0ZWxuLCBmYWxscyBuaWNodCBhbmdlZ2ViZW4nOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0RpZSBBbnphaGwgZGVyIERhdGVucyZhdW1sO3R6ZSwgZGllIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgcHJvIFNlaXRlIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbGVuJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYXJkLVNvcnRpZXJ1bmcgaW0gWnVzYW1tZW5mYXNzdW5ncy1Nb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ0RpZSBTdGFuZGFyZC1Tb3J0aWVycmVpaGVuZm9sZ2UgaW0gWnVzYW1tZW5mYXNzdW5ncy1Nb2R1cyA8ZW0+KGZ1bmt0aW9uaWVydCBuaWNodCwgd2VubiBkaWUgU29ydGllcnVuZyBhdWYgJiMwMzk7cmFuZG9tJiMwMzk7IGdlc2V0enQgd3VyZGUpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgJzsKJGxhbmdbJ3B1YmxpYyddID0gJyZPdW1sO2ZmZW50bGljaCc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdWZXImb3VtbDtmZmVudGxpY2h0JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydyYWRpdXMnXSA9ICdSYWRpdXMgJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1p1ZiZhdW1sO2xsaWcnOwokbGFuZ1sncmV0dXJuJ10gPSAnWnVyJnV1bWw7Y2snOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXImdXVtbDtja3NldHplbic7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ01pdCBkaWVzZXIgRnVua3Rpb24gayZvdW1sO25uZW4gU2llIGRpZSBJbmhhbHRlIGRlciBUZW1wbGF0ZXMgYXVmIGRpZSBwcm9ncmFtbXNlaXRpZ2VuIFZvcmVpbnN0ZWxsdW5nZW4genVyJnV1bWw7Y2tzZXR6ZW4uIFdvbGxlbiBTaWUgZGllcyB3aXJrbGljaD8nOwokbGFuZ1snc2VhcmNoJ10gPSAnU3VjaGUnOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdTdWNoZW4nOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ1N1Y2hmb3JtdWxhci1UZW1wbGF0ZXMnOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdFaW4gU3VjaGZvcm11bGFyLVRlbXBsYXRlIGhpbnp1ZiZ1dW1sO2dlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnQWJzZW5kZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlIGhpbnp1ZiZ1dW1sO2dlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAnWnVzYW1tZW5mYXNzdW5ncy1UZW1wbGF0ZSBha3R1YWxpc2llcnQnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdBdWYgZGllIFZvcmVpbnN0ZWxsdW5nZW4genVyJnV1bWw7Y2tzZXR6ZW4nOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsZWZvbic7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZWZvbic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBLYXRlZ29yaWVsaXN0ZW4tVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgRGV0YWlsLVRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5nZXN0ZWxsdGVzIFdlYnNlaXRlbi1Gb3JtdWxhci1UZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWLUltcG9ydC1CZXJpY2h0JzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBTdWNoZm9ybXVsYXItVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5nZXN0ZWxsdGVzIFp1c2FtbWVuZmFzc3VuZ3MtVGVtcGxhdGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1R5cCc7CiRsYW5nWyd1cCddID0gJ05hY2ggb2Jlbic7CiRsYW5nWyd3ZWJzaXRlJ10gPSAnV2Vic2VpdGUnOwokbGFuZ1snd2Vic2l0ZXRleHQnXSA9ICdXZWJzZWl0ZSc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjcyNTUxOTUxMS4xMzU5OTI5MTc3LjEzNTk5MjkxNzcuMTM1OTkyOTE3Ny4xJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzU5OTI5MTc3LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2YSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWdyZWdhciBFbmxhY2UnOwokbGFuZ1snYWRkcmVzcyddID0gJ0RpcmVjY2kmb2FjdXRlO24nOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWdyZWdhciBDYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdBZ3JlZ2FyIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZ3JlZ2FyIERlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmxlIHNvbG8gcGFyYSBBZG1pbmlzdHJhZG9yZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJyZpcXVlc3Q7RXN0JmFhY3V0ZTsgc2VndXJvIGRlIHF1ZXJlciBib3JyYXIgZXN0bz8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaWVudGUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsYXInOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICcmaXF1ZXN0O1B1ZWRlbiBsb3MgdXN1YXJpb3MgZGVsIG0mb2FjdXRlO2R1bG8gRkVVIGVkaXRhciBlc3RlIGNhbXBvPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJyZpcXVlc3Q7UHVlZGVuIGxvcyB1c3VhcmlvcyBkZWwgbSZvYWN1dGU7ZHVsbyBGRVUgdmVyIGVzdGUgY2FtcG8/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmlhcyc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdDYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yJmlhY3V0ZTthIEFncmVnYWRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IEFjdHVhbGl6YWRhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ3JlZ2FyL0JvcnJhciBQbGFudGlsbGEgZGUgTGlzdGFkbyBwb3IgQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdQbGFudGlsbGFzIGRlIExpc3RhZG8gcG9yIENhdGVnb3ImaWFjdXRlO2EnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnTGlzdGFkbyBwb3IgQ2F0ZWdvciZpYWN1dGU7YSBBY3R1YWxpemFkbyc7CiRsYW5nWydjb21wYW55J10gPSAnQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdDb21wYSZudGlsZGU7JmlhY3V0ZTthIEFncmVnYWRhJzsKJGxhbmdbJ2NvbXBhbnluYW1lJ10gPSAnTm9tYnJlIGRlIGxhIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdDb21wYSZudGlsZGU7JmlhY3V0ZTthIEFjdHVhbGl6YWRhJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0NvbXBhJm50aWxkZTsmaWFjdXRlO2FzJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnRGlyZWN0b3JpbyBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthcyc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdDb3JyZW8gZGUgQ29udGFjdG8nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdGZWNoYSBkZSBJbmdyZXNvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQbGFudGlsbGFzIHBvciBkZWZlY3RvJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBFbCBjb250ZW5pZG8gZGUgZXN0b3MgY2FtcG9yIGRlIHRleHRvIHNvbiB1dGlsaXphZG9zIHBhcmEgZGV0ZXJtaW5hciBlbCBjb250ZW5pZG8gcG9yIGRlZmVjdG8gZGUgbGFzIHBsYW50aWxsYXMgY3VhbmRvIHByZXNpb25hcyBlbCBib3Qmb2FjdXRlO24gJnF1b3Q7QWdyZWdhciBQbGFudGlsbGEmcXVvdDsgZW4gbGEgcGVzdGEmbnRpbGRlO2EgYXByb3BpYWRhLiAgRWRpdGFyIHVubyBkZSBlc3RvcyBjYW1wb3MgZGUgdGV4dG8gbm8gdGllbmVuIG5pbmcmdWFjdXRlO24gZWZlY3RvIGlubWVkaWF0byBlbiB0dSBzaXRpby4nOwokbGFuZ1snZGVsZXRlJ10gPSAnQm9ycmFyJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnQm9ycmFyIENhdGVnb3ImaWFjdXRlO2EnOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ0JvcnJhciBDb21wYSZudGlsZGU7JmlhY3V0ZTthJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnQm9ycmFyIERlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kaWVudGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwY2kmb2FjdXRlO24nOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsbGVzJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnRGV0YWxsZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvQm9ycmFyIFBsYW50aWxsYSBkZSBEZXRhbGxlJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1BsYW50aWxsYXMgZGUgRGV0YWxsZSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdQbGFudGlsbGEgZGUgRGV0YWxsZSBBY3R1YWxpemFkYSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rlc2FiaWxpdGFkbyc7CiRsYW5nWydkb3duJ10gPSAnQWJham8nOwokbGFuZ1snZHJhZnQnXSA9ICdCb3NxdWVqbyc7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ0VkaXRhciBDYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnRWRpdGFyIENvbXBhJm50aWxkZTsmaWFjdXRlO2EnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnRWRpdGFyIERlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0NvcnJlby1FJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRWwgbm9tYnJlIGRlIGxhIENvbXBhJm50aWxkZTsmaWFjdXRlO2Egbm8gZXMgdiZhYWN1dGU7bGlkbyc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ1lhIGV4aXN0ZSB1bmEgQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSBjb24gZXNlIG5vbWJyZSBlbiBsYSBiYXNlIGRlIGRhdG9zJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTm8gc2UgZW5jb250ciZvYWN1dGU7IGVsIG0mb2FjdXRlO2R1bG8gRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRhciBDU1YnOwokbGFuZ1snZmF4J10gPSAnRmF4ICc7CiRsYW5nWydmYXh0ZXh0J10gPSAnRmF4ICc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluaWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNpb25lcyBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbmljaSZvYWN1dGU7biBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGVmaW5pY2kmb2FjdXRlO24gZGUgQ2FtcG8gQWdyZWdhZGEnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRGVmaW5pY2kmb2FjdXRlO24gZGUgQ2FtcG8gQWN0dWFsaXphZGEnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnRGVmaW5pY2kmb2FjdXRlO24gZGUgQ2FtcG8gQm9ycmFkYSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCAnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvQm9ycmFyIFBsYW50aWxsYSBkZSBsYSBmb3JtYSBGcm9udGVuZCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdFZGl0YXIgUGxhbnRpbGxhcyBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ1BsYW50aWxsYSBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthIEFjdHVhbGl6YWRhJzsKJGxhbmdbJ2lkJ10gPSAnSWQgJzsKJGxhbmdbJ2ltYWdlY3VycmVudGhpZGRlbiddID0gJyAnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2VuJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4gJzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnICc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ290aXBvJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ00mYWFjdXRlO3hpbWEgTG9uZ2l0dWQnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ00mYWFjdXRlO3hpbWEgTG9uZ2l0dWQnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ00mYWFjdXRlO3hpbWEgTG9uZ2l0dWQnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRmVjaGEgZGUgJlVhY3V0ZTtsdGltYSBNb2RpZmljYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21icmUnOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOb21icmUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdOZWNlc2l0YSBlbCBwZXJtaXNvICYjMDM5OyVzJiMwMzk7IHBhcmEgZWplY3V0YXIgZXNhIGZ1bmNpJm9hY3V0ZTtuJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05vIHNlIGluZ3JlcyZvYWN1dGU7IE5vbWJyZSBkZSBDb21wYSZudGlsZGU7JmlhY3V0ZTthJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gc2UgaW5ncmVzJm9hY3V0ZTsgTm9tYnJlJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdObyBlcyB1biBOJnVhY3V0ZTttZXJvJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPiAnOwokbGFuZ1snb2YnXSA9ICdEZSAnOwokbGFuZ1sncGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RldGVybWluZSB0aGUgcHJpbWFyeSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOg0KPHVsPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZGQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogICANCjwvdWw+DQonOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdDdWFuZG8gc2UgdXNhIGNvbiBlbCBtb2RvIHN1bWFyaW8gKGVzdGFibGVjaWRvIHBvciBkZWZlY3RvKSwgZXN0ZSBwYXJhbWV0cm8gKHF1ZSBkZWJlIHNlciBpZ3VhbCBhbCBub21icmUgZGUgdW5hIGNhdGVnb3JpYSBleGlzdGVudGUpIHNlciZhYWN1dGU7IHVzYWRvIHBhcmEgbW9zdHJhciBzb2xvIGFxdWVsbGFzIGNvbXBhJm50aWxkZTsmaWFjdXRlO2FzIHF1ZSBwZXJ0ZW5lY2VuIGEgZGljaGEgY2F0ZWdvcmlhLiAoU2UgcHVlZGUgcHJvdmVlciB1bmEgbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0VzcGVjaWZpY2FyIHVuYSBwbGFudGlsbGEgKHBvciBub21icmUpIHBhcmEgdXNhciBjdWFuZG8gc2UgbXVlc3RyYSBlbCBsaXN0YWRvIGRlIGNhdGVnb3JpYXMuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVlcmlkbyBwYXJhIGVsIG0mb2FjdXRlO2R1bG8gRkVVIHkgbW9kb3MgZGUgZGV0YWxsZS4gRXN0ZSBwYXImYWFjdXRlO21ldHJvIGRldGVybWluYSBxdWUgcmVnaXN0cm8gZGUgY29tcGEmbnRpbGRlOyZpYWN1dGU7YSBlZGl0YXIgbyB2ZXIuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdFc3BlY2lmaWNhciB1biBhbGlhcyBkZSBwJmFhY3V0ZTtnaW5hIChwb3Igbm9tYnJlKSBwYXJhIHVzYXIgYWwgbW9zdHJhciB1biByZWdpc3RybyBkZSBkZXRhbGxlLiA8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IEVzdGUgcGFyJmFhY3V0ZTttZXRybyBubyBlcyBjb21wYXRpYmxlIGNvbiBVUkxzIGFtaWdhYmxlcy4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdFcGVjaWZpY2FyIHVuYSBwbGFudGlsbGEgKHBvciBub21icmUpIHBhcmEgdXNhciBjdWFuZG8gc2UgZGVzcGxpZWdhIGxhIHZpc3RhIGRldGFsbGFkYS4gPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBFc3RlIHBhciZhYWN1dGU7bWV0cm8gbm8gZXMgY29tcGF0aWJsZSBjb24gVVJMcyBhbWlnYWJsZXMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnRXNwZWNpZmljYXIgdW5hIHBsYW50aWxsYSAocG9yIG5vbWJyZSkgcGFyYSB1c2FyIGN1YW5kbyBzZSBkZXNwbGllZ2EgbGEgZm9ybWEgZGUgZWRpY2kmb2FjdXRlO24gZGUgY29tcGEmbnRpbGRlO2lhcyBkZSBGRVUuJzsKJGxhbmdbJ3BhcmFtX3NlbGVjdGNhdGVnb3J5J10gPSAnSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGEgZm9ybSB3aWxsIGJlIGdlbmVyYXRlZCBhbGxvd2luZyB1c2VycyB0byBpbnRlcmFjdGl2ZWx5IGZpbHRlciBjb21wYW55IHJlY29yZHMgb24gYSBzaW5nbGUgY2F0ZWdvcnkuICBUaGlzIGZsYWcgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICYjMDM5O2NhdGVnb3J5JiMwMzk7IHBhcmFtZXRlci4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0VzcGVjaWZpcXVlIHVuYSBwbGFudGlsbGEgKHBvciBub21icmUpICBwYXJhIHVzYXIgY3VhbmRvIHNlIGRlc3BsaWVnZSBsYSB2aXN0YSBTdW1hcmlhLiA8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IEVzdCZlYWN1dGU7IHBhcmFtZXRybyBubyBlcyBjb21wYXRpYmxlIGNvbiBVUkxzIEFtaXN0b3Nhcy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdFbCBNJm9hY3V0ZTtkdWxvICYjMDM5O0NvbXBhbnkgRGlyZWN0b3J5JiMwMzk7IGhhIHNpZG8gaW5zdGFsYWRvIGV4aXRvc2FtZW50ZSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRWwgTSZvYWN1dGU7ZHVsbyAmIzAzOTtDb21wYW55IERpcmVjdG9yeSYjMDM5OyBoYSBzaWRvIGRlc2luc3RhbGFkbyBleGl0b3NhbWVudGUuIFRvZGEgbGEgaW5mb3JtYWNpJm9hY3V0ZTtuIGFzb2NpYWRhIGEgZXN0ZSBoYSBzaWRvIGJvcnJhZGEuJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ0VzdCZhYWN1dGU7IHNlZ3VybyBkZSBxdWVyZXIgZGVzaW5zdGFsYXIgZXN0ZSBtJm9hY3V0ZTtkdWxvPyBTaSBsbyBoYWNlIGJvcnJhciZhYWN1dGU7IHBlcm1hbmVudGVtZW50ZSB0b2RhIGxhIGluZm9ybWFjaSZvYWN1dGU7biBhc29jaWFkYSBhIGVzdGUgbSZvYWN1dGU7ZHVsby4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8ICc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0xhIHAmYWFjdXRlO2dpbmEgYSBsYSBxdWUgc2UgcmVkaXJlY2Npb25hIGVuIG1vZG8gRGV0YWxsZSc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnRWwgbiZ1YWN1dGU7bWVybyBkZSByZWdpc3Ryb3MgYSB2ZXIgcG9yIHAmYWFjdXRlO2dpbmEgZW4gbW9kbyBTdW1hcmlvJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ09yZGVuIHBvciBkZWZlY3RvIGVuIGVsIG1vZG8gU3VtYXJpbyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1RoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gc3VtbWFyeSBtb2RlIDxlbT4oZG9lcyBub3QgYXBwbHkgd2hlbiBzb3J0aW5nIGlzICYjMDM5O3JhbmRvbSYjMDM5OzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSc7CiRsYW5nWydwdWJsaWMnXSA9ICdQJnVhY3V0ZTtibGljYSc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaWNhZG8nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNpYXMnOwokbGFuZ1sncmFuZG9tJ10gPSAnQWwgQXphcic7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1JlYWp1c3RhciBhIHZhbG9yZXMgcG9yIGRlZmVjdG8nOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdTZSByZXN0YXVyYXImYWFjdXRlOyBlbCBjb250ZW5pZG8gZGUgbGEgUGxhbnRpbGxhIGEgc3UgdmFsb3IgcG9yIGRlZmVjdG8uIEVzdCZhYWN1dGU7IHNlZ3VybyBxdWUgZGVzZWEgY29udGludWFyPyc7CiRsYW5nWydzZWFyY2gnXSA9ICdCdXNjYXInOwokbGFuZ1snc3RhdHVzJ10gPSAnRXN0YWRvJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudmlhcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvQm9ycmFyIFBsYW50aWxsYSBTdW1hcmlhJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdQbGFudGlsbGEgU3VtYXJpYXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1BsYW50aWxsYSBTdW1hcmlhIEFjdHVhbGl6YWRhJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnUmVzdGF1cmFyIHZhbG9yZXMgcG9yIGRlZmVjdG8nOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsJmVhY3V0ZTtmb25vJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWwmZWFjdXRlO2Zvbm8nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBwb3IgZGVmZWN0byBkZSBMaXN0YWRvcyBwb3IgQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBvciBkZWZlY3RvIGRlIERldGFsbGVzJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgbGEgRm9ybWEgZGVsIG1vZHVsbyBGRVUgcG9yIGRlZmVjdG8nOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgcG9yIGRlZmVjdG8gZGUgU3VtYXJpbyc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1RpcG8nOwokbGFuZ1sndXAnXSA9ICdBcnJpYmEnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1NpdGlvIFdlYic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1NpdGlvIFdlYic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDE4MjgzOTcuMjk5LjgyLnV0bWNjbj0ob3JnYW5pYyl8dXRtY3NyPWdvb2dsZXx1dG1jdHI9Y21zbXMgcHJldHR5IHVybHN8dXRtY21kPW9yZ2FuaWMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMjgzMTkwMTc3LjExOTI1NzI4MDkuMTIwMTgyODM5Ny4xMjAzNjMyMzI5LjMwMCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21zZ19zZXR0aW5nc19jaGFuZ2VkJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgbW9kaWZpJmVhY3V0ZTtzJzsKJGxhbmdbJ2Vycm9yX2FkZHJlc3NfbG9va3VwJ10gPSAnUHJvYmwmZWdyYXZlO21lIGxvcnMgZGUgbGEgcmVjaGVyY2hlIGRlIGwmIzAzOTthZHJlc3NlIDogJXMnOwokbGFuZ1snZXJyX2ludmFsaWR1bml0cyddID0gJ0wmIzAzOTt1bml0JmVhY3V0ZTsgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO2UgZXN0IGludmFsaWRlLiBWYWxldXJzIHZhbGlkZXMgOiBtaSxtaWxlLG1pbGVzLGttLGsnOwokbGFuZ1sndGl0bGVfbmV3c2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXRzIGRlIHJlY2hlcmNoZSBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBmb3JtIHJlY2hlcmNoZSc7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciB1biBnYWJhcml0IGRlIGZvcm11bGFpcmUgcmVjaGVyY2hlJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgZm9ybSByZWNoZXJjaGUnOwokbGFuZ1sncHJvbXB0X3VzZV9vbGRzZWFyY2gnXSA9ICdVdGlsaXNlciBsJiMwMzk7YW5jaWVubmUgZm9uY3Rpb24gZGUgcmVjaGVyY2hlIChuZSBzdXBwb3J0ZSBwYXMgbGVzIHJlcXUmZWNpcmM7dGVzIHN1ciBsZXMgZCZlYWN1dGU7ZmluaXRpb25zIGRlIGNoYW1wcywgZXQgbmUgZG9ubmUgcGFzIGQmIzAzOTtpbmZvcm1hdGlvbnMgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgZGFucyBsZXMgciZlYWN1dGU7c3VsdGF0cyknOwokbGFuZ1snZmllbGRfbXVsdGlzZWxlY3QnXSA9ICdTJmVhY3V0ZTtsZWN0aW9uIG11bHRpcGxlJzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdTaSBhY3RpdiZlYWN1dGU7LCBzZXVscyBsZXMgYWRtaW5zIHBldXZlbnQgJmVhY3V0ZTtkaXRlciBjZSBjaGFtcCBwb3VyIGNoYXF1ZSBlbnRyJmVhY3V0ZTtlJzsKJGxhbmdbJ2luZm9fdXNlcnZpZXcnXSA9ICdTaSBhY3RpdiZlYWN1dGU7LCB0b3VzIGxlcyB1dGlsaXNhdGV1cnMgcGV1dmVudCB2b2lyIGNlIGNoYW1wLiBTaSBkJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOywgc2V1bHMgbCYjMDM5O2FkbWluIGV0IGxlIHByb3ByaSZlYWN1dGU7dGFpcmUgcGV1dmVudCBsZSB2b2lyJzsKJGxhbmdbJ2luZm9fYWxidW1fZmllbGR0eXBlJ10gPSAnT25seSBvbmUgYWxidW0gZmllbGQgdHlwZSBpcyBwZXJtaXR0ZWQuICBBbGxvd2luZyB1cGxvYWRpbmcgb2YgbnVtZXJvdXMgaW1hZ2VzIHRvIGFzc29jaWF0ZSB3aXRoIGEgc3BlY2lmaWMgZGF0YWJhc2UgZW50cnkuICBJbWFnZXMgY2FuIG9ubHkgYmUgdXBsb2FkZWQgdG8gYW4gYWxidW0gZmllbGQgZm9yIGFuIGV4aXN0aW5nIGVudHJ5ICh3aGVuIGVkaXRpbmcgYW4gZW50cnkpIG5vdCB3aGVuIGluaXRpYWxseSBhZGRpbmcgdGhlIGVudHJ5Lic7CiRsYW5nWydjb29yZGluYXRlcyddID0gJ0Nvb3Jkb25uJmVhY3V0ZTtlcyc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR1cmUnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0Vudm9pIHBhciBnbGlzc2VyL2QmZWFjdXRlO3Bvc2VyJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0QmZWFjdXRlO3Bvc2V6IGxlcyBmaWNoaWVycyBpY2knOwokbGFuZ1snaW5mb19kcmFnX2Ryb3AnXSA9ICdBdmVjIGxhIHBsdXBhcnQgZGVzIG5hdmlnYXRldXJzIG1vZGVybmVzICgmYWdyYXZlOyBsJiMwMzk7ZXhjZXB0aW9uIGQmIzAzOTtJRSksIHZvdXMgcG91dmV6IGdsaXNzZXIgcGx1c2lldXJzIGZpY2hpZXJzIGRhbnMgbGEgem9uZSBkZSBkJmVhY3V0ZTtwJm9jaXJjO3QuIElscyBzZXJvbnQgYXV0b21hdGlxdWVtZW50IGVudm95JmVhY3V0ZTtzIGV0IGFqb3V0JmVhY3V0ZTtzICZhZ3JhdmU7IGwmIzAzOTthbGJ1bSBwaG90b3MnOwokbGFuZ1snYWxidW0nXSA9ICdQaG90b3MnOwokbGFuZ1snZXJyb3JfYWxidW1maWVsZGV4aXN0cyddID0gJ1VuIGNoYW1wIEFsYnVtIGV4aXN0ZSBkJmVhY3V0ZTtqJmFncmF2ZTsuIFZvdXMgbmUgcG91dmV6IGVuIHV0aWxpc2VyIHF1JiMwMzk7dW4gc2V1bCc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnQXVjdW5lIGFkcmVzc2UgdHJvdXYmZWFjdXRlO2UnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0VycmV1cnMnOwokbGFuZ1sncHJvbXB0X251bWVycm9ycyddID0gJ05vbWJyZSBkJiMwMzk7ZXJyZXVycyByZW5jb250ciZlYWN1dGU7ZXMnOwokbGFuZ1sncGFyYW1fcmFkaXVzJ10gPSAnU3AmZWFjdXRlO2NpZmlleiBsZSByYXlvbiAoZW4gbWlsZXMpIHBvdXIgbGEgcmVjaGVyY2hlIHBhciByYXlvbi4gRG9pdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IGVuIGNvbmpvbmN0aW9uIGF2ZWMgbGVzIHBhcmFtJmVncmF2ZTt0cmVzIGxhdGl0dWRlL2xvbmdpdHVkZS4nOwokbGFuZ1sncGFyYW1fbG9uZyddID0gJ1NwZWNpZnkgdGhlIGNlbnRlciBsb25naXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbGF0IGFuZCByYWRpdXMgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fbGF0J10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxhdGl0dWRlIGNvb3JkaW5hdGUgZm9yIGEgcmFkaXVzIHNlYXJjaCwgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvbmcgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydpbmZvX2VkaXRvcjInXSA9ICdVc2UgdGhlIG5ldyBmcm9udGVuZCBlZGl0b3IgPGVtPihyZWZlcnJlZCB0byBhcyBmZWVkaXQyKTwvZW0+IE5vdGU6IFRoZSBvbGQgZWRpdG9yIHdpbGwgYmUgcmVtb3ZlZCBpbiBDb21wYW55RGlyZWN0b3J5IDEuMTUgb3IgYmV5b25kLic7CiRsYW5nWydwcm9tcHRfZWRpdG9yMiddID0gJ1V0aWxpc2VyIGxlIG5vdXZlbCAmZWFjdXRlO2RpdGV1ciBzdXIgbGUgc2l0ZSc7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ1VuIHByb2JsJmVncmF2ZTttZSBlc3Qgc3VydmVudSBsb3JzIGRlIGxhIGcmZWFjdXRlO24mZWFjdXRlO3JhdGlvbiBkZSBsJiMwMzk7VVJMJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ09yZHJlIGRlIHRyaSc7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnQXVjdW4gY2hhbXAgbiYjMDM5O2VzdCBkJmVhY3V0ZTtmaW5pJzsKJGxhbmdbJ3Byb21wdF9lZGl0Y29tcGFueSddID0gJ0VkaXRpb24gZGUgbCYjMDM5O2VudHJlcHJpc2UnOwokbGFuZ1sncHJvbXB0X2FkZGNvbXBhbnknXSA9ICdBam91dCBkJiMwMzk7dW5lIG5vdXZlbGxlIGVudHJlcHJpc2UnOwokbGFuZ1snb3JnYW5pemF0aW9uJ10gPSAnT3JnYW5pc2F0aW9uJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0NoYW1wcyc7CiRsYW5nWydmaWVsZF9hbGJ1bSddID0gJ0FsYnVtIChncm91cGUgZCYjMDM5O2ltYWdlcyknOwokbGFuZ1sncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJ10gPSAnQXV0b3Jpc2VyIGxlcyBub21zIGQmIzAzOTtlbnRyZXByaXNlIGVuIGRvdWJsZSA/JzsKJGxhbmdbJ3Byb21wdF9wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ1ByJmVhY3V0ZTtmaXhlciBsZXMgVVJMcyBkZSBzaXRlcyBhdmVjIGh0dHA6Ly8nOwokbGFuZ1snaW5mb19wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ1NpIHVuZSBhZHJlc3NlIGRlIHNpdGUgZXN0IHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlLCBldCBxdSYjMDM5O2VsbGUgbmUgY29tbWVuY2UgcGFzIHBhciBodHRwLCBodHRwcywgZnRwLi4uIGh0dHA6Ly8gc2VyYSBham91dCZlYWN1dGU7IGxvcnMgZGUgbGEgc2F1dmVnYXJkZSc7CiRsYW5nWydlcnJvcl9ub293bmVyJ10gPSAnT3duZXIgaWQgaXMgbm90IHNldCBvciBpcyBpbnZhbGlkJzsKJGxhbmdbJ3Byb21wdF9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyBkZSBmaWNoaWVycyB2YWxpZGVzJzsKJGxhbmdbJ2luZm9fZXh0ZW5zaW9ucyddID0gJ1Byb3ZpZGUgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgKGNhc2UgaW5zZW5zaXRpdmUpLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgQ0dFeHRlbnNpb25zIGRlZmF1bHQgdmFsdWVzIHdpbGwgYmUgdXNlZC4nOwokbGFuZ1sncHJvbXB0X2FkZGVkaXRmaWVsZCddID0gJ0Fqb3V0L0VkaXRpb24gZCYjMDM5O3VuZSBkJmVhY3V0ZTtmaW5pdGlvbiBkZSBjaGFtcCc7CiRsYW5nWydmaWVsZF9maWxlJ10gPSAnRmljaGllcic7CiRsYW5nWydpbnVzZSddID0gJ2luIHVzZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9oaWVyYXJjaHknXSA9ICdTcGVjaWZ5IGEgaGllcmFyY2h5IHN0cmluZyAob3IgcG9ydGlvbikgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQsIGFuZCBtYXkgaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy4gIGkuZTogJnF1b3Q7Q2FycyomcXVvdDsuIFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9fZmlsdGVyX2FkZHJlc3MnXSA9ICdTcGVjaWZ5IGFuIGFkZHJlc3Mgc3RyaW5nIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLiAgaS5lOiAmcXVvdDsqVGV4YXMqJnF1b3Q7LiBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9uYW1lJ10gPSAnU3BlY2lmeSBhIGNvbXBhbnkgbmFtZSAob3IgcGFydGlhbCBjb21wYW55IG5hbWUgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypyZXN0YXJhdW50JnF1b3Q7IFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ05vIGRhdGFiYXNlIGVudHJpZXMgbWF0Y2hlZCB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkJzsKJGxhbmdbJ2VkaXRfZmlsdGVyJ10gPSAnRmlsdHJlIGQmIzAzOTthZmZpY2hhZ2UnOwokbGFuZ1snc29ydGJ5J10gPSAnVHJpZXIgcGFyJzsKJGxhbmdbJ3BhZ2VsaW1pdCddID0gJ0VudHJlcHJpc2VzIHBhciBwYWdlJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyZSc7CiRsYW5nWydyZXNldCddID0gJ1ImZWFjdXRlO2luaXRpYWxpc2VyJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PSYjMDM5O3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGgmIzAzOTsgY2F0ZWdvcnkyPSYjMDM5O2NhcnMsdHJ1Y2tzJiMwMzk7fSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXMnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkzJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgdmlldywgYW5kIG9ubHkgd2hlbiB0aGUgPGVtPmNhdGVnb3J5MjwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHlldCBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiBTZWUgdGhlIGhlbHAgZm9yIHRoZSBjYXRlZ29yeTIgcGFyYW1ldGVyIGZvciBtb3JlIGluZm9ybWF0aW9uJzsKJGxhbmdbJ2JhZG5hbWVnaXZlbiddID0gJ1RoZSBuYW1lIHNwZWNpZmllZCBpcyBpbnZhbGlkIChnZW5lcmFsbHkgbmFtZXMgc2hvdWxkIGJlIHVybCBmcmllbmRseSknOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1ZhbGV1ciBjb3VyYW50ZSc7CiRsYW5nWydwYXJhbV9mcm9udGVuZGxpc3R0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmZyb250ZW5kbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBmcm9udGVuZCBsaXN0IHRlbXBsYXRlIHRvIHVzZSBmb3IgcmVuZGVyaW5nIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdoYXQgcGFnZSBzaG91bGQgYmUgdXNlZCBmb3IgZGlzcGxheWluZyBtYXRjaGluZyByZXN1bHRzLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZSddID0gJ0dlbmVyYXRlIGVycm9yIChidXQgY29udGludWUpJzsKJGxhbmdbJ2Vycm9yX3VwZGF0ZV9jb21wYW55J10gPSAnRXJyb3Igb2NjdXJyZWQgdXBkYXRpbmcgY29tcGFueSByZWNvcmQnOwokbGFuZ1snaWdub3JlJ10gPSAnSWdub3Jlcic7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdSZW1wbGFjZXInOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnQ2F0JmVhY3V0ZTtnb3JpZSBzdXBwcmltJmVhY3V0ZTtlJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVfdXJsJ10gPSAnQ3JlYXRlIFVSTFMgZm9yIHJlY29yZHMgd2l0aG91dCBVUkxTJzsKJGxhbmdbJ2luZm9fY3JlYXRlX3VybCddID0gJ0lmIG5vIFVSTCBpcyBzcGVjaWZpZWQgZm9yIGEgcmVjb3JkLCB0aGlzIG9wdGlvbiB3aWxsIGVuc3VyZSB0aGF0IHRoZXkgYXJlIGdlbmVyYXRlZC4gSWYgdGhlICZxdW90O1JlcXVpcmUgVVJMUyZxdW90OyBwcmVmZXJlbmNlIGlzIHNldCwgVVJMUyB3aWxsIGJlIGVuc3VyZWQgcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcnOwokbGFuZ1sndXJsX2NyZWF0ZW9uY29weSddID0gJ0NyJmVhY3V0ZTtlciBsZXMgVVJMcyBsb3JzIGRlIGxhIGNvcGllJzsKJGxhbmdbJ2luZm9fdXJsX2NyZWF0ZW9uY29weSddID0gJ1doZW4gY29weWluZyBjb21wYW5pZXMsIHNob3VsZCBhIFVSTCBiZSBjcmVhdGVkIGZvciB0aGUgZGVzdGluYXRpb24gcmVjb3JkLiAgVGhpcyBvbmx5IGFwcGxpZXMgaWYgVVJMUyBhcmUgbm90IHJlcXVpcmVkLic7CiRsYW5nWydlcnJvcl9iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiBlbmNvdW50ZXJlZCAlZCBlcnJvcnMnOwokbGFuZ1snaW5mb19iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiB1cGRhdGVkICVkIHJlY29yZHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1RoZSBVUkwgc3BlY2lmaWVkIChvciBjYWxjdWxhdGVkKSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRuYW1lJ10gPSAnVGhlIENvbXBhbnkgTmFtZSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnVGhlIFVSTCBmaWVsZCBpcyBub3QgZW1wdHkuLi4gY2Fubm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyB2YWx1ZSc7CiRsYW5nWydlcnJvcl91cmxyZXF1aXJlZCddID0gJ0EgVVJMIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2dldHVybCddID0gJ0NhbGN1bGVyIGwmIzAzOTtVUkwnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnVW5lIFVSTCBlc3QgcmVxdWlzZSc7CiRsYW5nWydpbmZvX3VybF9yZXF1aXJlZCddID0gJ1Nob3VsZCB0aGUgVVJMIGZpZWxkIGJlIHJlcXVpcmVkIHRvIGJlIHZhbGlkIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBjb21wYW55Pyc7CiRsYW5nWydjaGVjayddID0gJ1YmZWFjdXRlO3JpZmllcic7CiRsYW5nWyd1cmwnXSA9ICdVUkwnOwokbGFuZ1snY3JlYXRldXJscyddID0gJ0NyJmVhY3V0ZTtlciBsZXMgVVJMcyc7CiRsYW5nWydjb25maXJtX2F1dG9jcmVhdGVfdXJsJ10gPSAnQXV0b21hdGljYWxseSBDcmVhdGUgVVJMUyBGb3IgZXhpc3RpbmcgcmVjb3JkcyB3aXRoIG5vIFVSTCc7CiRsYW5nWyd1cmxfcmVkaXJlY3RvbGQnXSA9ICdGYWlyZSB1bmUgcmVkaXJlY3Rpb24gMzAxIHZlcnMgbGVzIG5vdXZlbGxlcyBVUkxzJzsKJGxhbmdbJ2luZm9fdXJsX3JlZGlyZWN0b2xkJ10gPSAnT24gYW4gaW5jb21pbmcgcmVxdWVzdCBmb3IgYSBjb21wYW55IHVzaW5nIHRoZSBvbGQgVVJMIHBhdHRlcm5zLCBwZXJmb3JtIGEgMzAxIHJlZGlyZWN0IHRvIHRoZSBuZXcgVVJMLiAgVGhpcyB3aWxsIG9ubHkgd29yayBmb3IgZW50cmllcyB0aGF0IGhhdmUgVVJMUyBjcmVhdGVkLic7CiRsYW5nWydpbmZvX3VybF9hdXRvY3JlYXRlJ10gPSAnV2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnkgZGVmaW5pdGlvbiwgaWYgdGhlIFVSTCBmaWVsZCBpcyBibGFuayBvbmUgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgY29tcGFueSBuYW1lLiAgVGhpcyBkb2VzIG5vdCBhcHBseSB0byBmcm9udGVuZCBlZGl0aW5nJzsKJGxhbmdbJ3VybF9hdXRvY3JlYXRlJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdW5pcXVlIFVSTFMnOwokbGFuZ1sndXJscyddID0gJ1VSTFMnOwokbGFuZ1sncGFyYW1fc2VhcmNoYWRkcmVzcyddID0gJ1doZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2gsIHVzaW5nIHRoZSBzZWFyY2ggYWN0aW9uLCBpZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgYWRkcmVzcyBmaWVsZCB3aWxsIGFsc28gYmUgc2VhcmNoZWQgZm9yIHRoZSBtYXRjaGluZyBzdHJpbmcnOwokbGFuZ1sncGFyYW1fcG9zdGFsY2hhcnMnXSA9ICdXaGVuIGRvaW5nIGEgcG9zdGFsIGNvZGUgc2VhcmNoLCB1c2luZyB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBvcHRpb24gYWxsb3dzIGxpbWl0aW5nIHRoZSBlZmZlY3RpdmUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb25mIHRoZSBwb3N0YWwgY29kZSc7CiRsYW5nWydsYWJlbF9pbmNsdWRlY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkIEhpZXJhcmNoaWVzJzsKJGxhbmdbJ2FueSddID0gJ0FueSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5Y29sdW1uJ10gPSAnU3BlY2lmeSB0aGUgbmFtZSBvZiBhIGNvbHVtbiB0aGF0IHNwZWNpZmllcyBvbmUgb3IgbW9yZSBjYXRlZ29yeSBuYW1lcyAoc2VwYXJhdGVkIGJ5IGEgY29tbWEgPGVtPigsKTxlbT4gVGhhdCBjYW4gYmUgdXNlZCB0byBxdWlja2x5IHBvcHVsYXRlIHRoZSBjYXRlZ29yaWVzIGZvciBlYWNoIHJlY29yZC4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5Y29sdW1uJ10gPSAnQ29sb25uZSBkZXMgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnljb2x1bW5fbm90Zm91bmQnXSA9ICdDYXRlZ29yeSBjb2x1bW4gJXMgbm90IGZvdW5kJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdFeHBpcmUnOwokbGFuZ1sncmVzZXRfdG9fZmFjdG9yeSddID0gJ1JlbWV0dHJlIGF1eCB2YWxldXJzIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdDb3VycmllbCBhdSBmb3JtYXQgSFRNTCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ1N1amV0IGR1IGNvdXJyaWVsJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgY291cnJpZWwnOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGNvdXJyaWVsJzsKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnQSBjaGFuZ2UgaGFzIG9jY3VycmVkIHRvIGEgQ29tcGFueURpcmVjdG9yeSBlbnRyeSc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsZ3JvdXAnXSA9ICdBZG1pbmlzdHJhdGl2ZSBncm91cCB0byByZWNlaXZlIG5vdGlmaWNhdGlvbiBlbWFpbHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmFkZCddID0gJ1NlbmQgYW4gZW1haWwgd2hlbiBhIGZyb250ZW5kIHVzZXIgYWRkcyBhIG5ldyBjb21wYW55IHJlY29yZCc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25lZGl0J10gPSAnU2VuZCBhbiBlbWFpbCB3aGVuIGEgZnJvbnRlbmQgdXNlciBtb2RpZmllcyBhbiBleGlzdGluZyBjb21wYW55IHJlY29yZCc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25ncm91cCddID0gJ0FkbWluIGdyb3VwIHRvIHNlbmQgZW1haWxzIHRvJzsKJGxhbmdbJ3Byb21wdF9mZXVfZGlzcGxheV9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2Zyb250ZW5kX3Nob3dleHBpcmVkJ10gPSAnU2hvdyByZWNvcmRzIG93bmVkIGJ5IGV4cGlyZWQgRnJvbnRlbmQgVXNlcnMnOwokbGFuZ1snZmllbGRfaW1hZ2UnXSA9ICdJbWFnZSc7CiRsYW5nWydleHRyYTEnXSA9ICdJbmZvIGV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnSW5mbyBleHRyYSAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0luZm8gZXh0cmEgMyc7CiRsYW5nWydsYmxfYmFjayddID0gJ1JldG91cic7CiRsYW5nWydtc2dfY29tcGFueWNvcGllZCddID0gJ0NvbXBhZ25pZSBjb3BpJmVhY3V0ZTtlLCB2ZXVpbGxleiAmZWFjdXRlO2RpdGVyIGxlcyBkJmVhY3V0ZTt0YWlscyBkJiMwMzk7ZW5yZWdpc3RyZW1lbnQgcG91ciBsZSBub3V2ZWxsZSBjb21wYWduaWUnOwokbGFuZ1snY29weSddID0gJ0NvcGllcic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgZGlyZWN0b3J5IGxpa2UgbW9kdWxlIGZvciBjb21wYW5pZXMuICBBbGxvd3MgYWRkaW5nL2VkaXRpbmcvaW1wb3J0aW5nL2V4cG9ydGluZyBjb21wYW55IGRlZmluaXRpb25zLCBhbmQgdmFyaW91cyB3YXlzIG9mIGRpc3BsYXlpbmcgdGhlIGNvbXBhbnkgZW50cmllcyBpbmNsdWRpbmcgc2VhcmNoLiAgVGhpcyBtb2R1bGUgaW50ZWdyYXRlcyB3ZWxsIHdpdGggQ0dHb29nbGVNYXBzLic7CiRsYW5nWydtc2dfaW1wb3J0X2NvbXBsZXRlJ10gPSAnT3AmZWFjdXRlO3JhdGlvbiBkJiMwMzk7aW1wb3J0YXRpb24gciZlYWN1dGU7YWxpcyZlYWN1dGU7ZSBhdmVjIHN1Y2MmZWdyYXZlO3MnOwokbGFuZ1sncHJvbXB0X2hpZXJhcmNoaWVzX2ltcG9ydGVkJ10gPSAnUG9zaXRpb25zIGhpJmVhY3V0ZTtyYXJjaGlxdWVzIGNyJmVhY3V0ZTtlcyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeWRlZnMnXSA9ICdJbXBvcnQgSGllcmFyY2h5IFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBWYWx1ZXMnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0Vycm9yIGNyZWF0aW5nIGhpZXJhcmNoeSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnSGllcmFyY2h5IHdpdGggbG9uZyBuYW1lICZxdW90OyVzJnF1b3Q7IGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0NvbXBhbmllIGVmZmFjJmVhY3V0ZTtlJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0VycmV1ciBkJiMwMzk7dXBsb2FkIGR1IGZpY2hpZXInOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnVm91cyBkZXZleiBzcCZlYWN1dGU7Y2lmaWVyIHVuIGQmZWFjdXRlO2xpbWl0ZXVyIGRlIGNoYW1wcyc7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ1lvdSBoYXZlIG5vIHJlbWFpbmluZyBjb21wYW55IHNsb3RzJzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdZb3UgaGF2ZSB1c2VkICVkIG9mICVkIGNvbXBhbnkgc2xvdHMnOwokbGFuZ1snaW1wb3J0X2ZpbGVuYW1lJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5lciBsZSBmaWNoaWVyIENTVic7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdEJmVhY3V0ZTtsaW1pdGV1ciBkZSBjaGFtcHMnOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnSXQgaXMgcG9zc2libGUgdG8gaW1wb3J0IGNvbXBhbnkgaW5mb3JtYXRpb24gZGlyZWN0bHkgZnJvbSBhbiBBU0NJSSBmaWxlLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBkZXNjcmliZXMgYSBmb3JtIHRoYXQgaXMgdXNlZCB0byBhbGxvdyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIHRvIGltcG9ydCBkYXRhIGZyb20gYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ1NWIGZpbGUnOwokbGFuZ1snZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZSddID0gJ0Zyb250ZW5kIENTViBJbXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdBbGxvdyBGcm9udGVuZFVzZXJzIHRvIGltcG9ydCByZWNvcmRzIGZyb20gQ1NWPyc7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBoaWVyYXJjaHkgbGlzdCB2aWV3Lic7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24sIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydtc2dfaGllcmRlbGV0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gZGVsZXRlZCc7CiRsYW5nWydtc2dfaGllcnVwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gdXBkYXRlZCc7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIGFkZGVkJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdBZGQgSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWUnOwokbGFuZ1snYWRkX2VkaXRfY2F0ZWdvcnknXSA9ICdBam91dGVyL01vZGlmaWVyIHVuZSBjYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ1ByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMnOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ0dhYmFyaXRzJzsKJGxhbmdbJ25vbmUnXSA9ICdBdWN1bic7CiRsYW5nWydvd25lciddID0gJ1Byb3ByaSZlYWN1dGU7dGFpcmUnOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyJmVhY3V0ZTsmZWFjdXRlOyc7CiRsYW5nWydtb2RpZmllZCddID0gJ01vZGlmaSZlYWN1dGU7JzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQgb3IgRWRpdCBhIEZyb250ZW5kIExpc3QgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9jaGFuZ2Vfc3RhdHVzJ10gPSAnQ2FuIGZyb250ZW5kIHVzZXJzIGNoYW5nZSBhIGNvbW1wYW55IHN0YXR1cz8nOwokbGFuZ1sncHJvbXB0X2ZldV9uZXdfc3RhdHVzJ10gPSAnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyByZWNvcmRzIGNyZWF0ZWQgb24gdGhlIGZyb250ZW5kJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kbGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEZyb250ZW5kIExpc3QgVGVtcGxhdGUnOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVzJ10gPSAnRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzIGcmZWFjdXRlO24mZWFjdXRlO3JhbGVzJzsKJGxhbmdbJ3Byb21wdF9mZXVfZWRpdF9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIEVkaXRpbmcgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdDYW4gRnJvbnRFbmRVc2VycyBDcmVhdGUgbmV3IFJlY29yZHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbnVtcmVjb3JkcyddID0gJ01heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGEgRkVVIGFjY291bnQnOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnTnVtYmVyIG9mIEltcG9ydGVkIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVkIHJlY29yZCc7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdJZ25vcmUgYWRkcmVzcyBmaWVsZCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnQ29udmVydCBBZGRyZXNzZXMgdG8gY29vcmRpbmF0ZXMgKGlmIHRoZXJlIGFyZSBubyBjb29yZGluYXRlcyknOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwgRmlsZSB0byBJbXBvcnQnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0IEtNTCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZXIgdW4gZmljaGllciBLTUwnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydlcnJvcl9mZXVfbG9nZ2VkaW4nXSA9ICdQb3VyIHV0aWxpc2VyIGNldHRlIGZvbmN0aW9uLCB2b3VzIGRldmV6ICZlY2lyYzt0cmUgY29ubmVjdCZlYWN1dGU7KGUpIGRlcHVpcyBmcm9udGVuZCBkdSBzaXRlJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGlmJzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdBam91dGVyIHVuIExpZW4nOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzc2UnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWpvdXRlciB1bmUgQ2F0JmVhY3V0ZTtnb3JpZSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnQWpvdXRlciB1bmUgRW50cmVwcmlzZSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0Fqb3V0ZXIgdW5lIGQmZWFjdXRlO2Zpbml0aW9uIGRlIGNoYW1wJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmxlIHVuaXF1ZW1lbnQgcGFyIGwmIzAzOTthZG1pbmlzdHJhdGV1cic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciBkZSBzdXBwcmltZXIgY2V0ICZlYWN1dGU7bCZlYWN1dGU7bWVudCA/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0FzY2VuZGFudCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnTGVzIHV0aWxpc2F0ZXVycyBGRVVzZXJzIHBldXZlbnQtaWxzICZlYWN1dGU7ZGl0ZXIgY2UgY2hhbXAgPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0xlcyB1dGlsaXNhdGV1cnMgRkVVc2VycyBwZXV2ZW50LWlscyB2b2lyIGNlIGNoYW1wID8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdDYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXQmZWFjdXRlO2dvcmllIEFqb3V0JmVhY3V0ZTtlJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdCZlYWN1dGU7Z29yaWUgTWlzZSAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIExlcyBHYWJhcml0cyBkZSBMaXN0ZSBkZSBDYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIExpc3RlIGRlIENhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnTGlzdGUgZGUgQ2F0JmVhY3V0ZTtnb3JpZSBNaXNlICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snY29tcGFueSddID0gJ0VudHJlcHJpc2UnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRW50cmVwcmlzZSBham91dCZlYWN1dGU7ZSc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ05vbSBkZSBsJiMwMzk7ZW50cmVwcmlzZSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0VudHJlcHJpc2UgTWlzZSAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0VudHJlcHJpc2VzJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnRW50cmVwcmlzZSc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnQW5udWFpcmUgZCYjMDM5O0VudHJlcHJpc2VzJzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ0NvdXJyaWVsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0ZSBkZSBDciZlYWN1dGU7YXRpb24nOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBMZXMgY29udGVudXMgZGUgY2VzIHpvbmVzIGRlIHRleHRlIHNvbnQgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgZCZlYWN1dGU7dGVybWluZXIgbGUgY29udGVudSBwYXIgZCZlYWN1dGU7ZmF1dCBkZXMgZ2FiYXJpdHMgbG9yc3F1ZSBsJiMwMzk7b24gY2xpcXVlIHN1ciAmcXVvdDtBam91dGVyIHVuIEdhYmFyaXQmcXVvdDsgZGFucyBsYSB0YWJ1bGF0aW9uIGRlIGdhYmFyaXQgYXBwcm9wcmkmZWFjdXRlO2UuIE1vZGlmaWVyIGxlIGNvbnRlbnUgZGUgY2VzIHpvbmVzIG4mIzAzOTthIHBhcyBkJiMwMzk7ZWZmZXQgaW1tJmVhY3V0ZTtkaWF0IHN1ciBsZSBzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdTdXBwcmltZXIgdW5lIENhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ1N1cHByaW1lciB1bmUgRW50cmVwcmlzZSc7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ1N1cHByaW1lciB1bmUgZCZlYWN1dGU7ZmluaXRpb24gZGUgY2hhbXAnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRhbnQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiZuYnNwOyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRCZlYWN1dGU7dGFpbHMnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciBsZSBHYWJhcml0IGRlIEQmZWFjdXRlO3RhaWwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgRCZlYWN1dGU7dGFpbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdHYWJhcml0IGRlIEQmZWFjdXRlO3RhaWwgTWlzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOyc7CiRsYW5nWydkb3duJ10gPSAnQmFzJzsKJGxhbmdbJ2RyYWZ0J10gPSAnQnJvdWlsbG9uJzsKJGxhbmdbJ2VkaXQnXSA9ICdNb2RpZmllcic7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICdNb2RpZmllciB1bmUgQ2F0JmVhY3V0ZTtnb3JpZSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ01vZGlmaWVyIHVuZSBFTnRyZXByaXNlJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ01vZGlmaWVyIGxhIGQmZWFjdXRlO2Zpbml0aW9uIGQmIzAzOTt1biBjaGFtcCc7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdDb3VycmllbCc7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdVbiBwcm9ibCZlZ3JhdmU7bWUgZXN0IHN1cnZlbnUgYXZlYyBsZSBmaWNoaWVyIGltcG9ydCZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnTGUgTm9tIGRlIGwmIzAzOTtlbnRyZXByaXNlIGVzdCBpbmNvcnJlY3QnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdVbmUgZW50cmVwcmlzZSBwb3J0YW50IGQmZWFjdXRlO2omYWdyYXZlOyBjZSBub20gZXN0IGRhbnMgbGEgYmFzZSBkZSBkb25uJmVhY3V0ZTtlLic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknXSA9ICdVbiBjYXQmZWFjdXRlO2dvcmllICZlYWN1dGU7cG9ueW1lIGV4aXN0ZSBkJmVhY3V0ZTtqJmFncmF2ZTsnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdVbmUgZW50cmVwcmlzZSBwb3J0YW50IGNlIG5vbSAoJXMpIGV4aXN0ZSBkJmVhY3V0ZTtqJmFncmF2ZTsnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnVW4gY2hhbXAgYXZlYyBjZSBub20gZXhpc3RlIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdVbmUgbWF1dmFpc2UgdmFsZXVyIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgdHJvdXYmZWFjdXRlO2UgZGFucyBsZSBjaGFtcCAlcyAnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGUnXSA9ICdEdXBsaWNhdGUgJXMgcnVsZSBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlX2lkZW50aWZpZXInXSA9ICdEdXBsaWNhdGUgcnVsZSBpZGVudGlmaWVyIGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25yb3cnXSA9ICdEb250IGtub3cgaG93IHRvIGhhbmRsZSBsaW5lICVkIHdpdGggdGhlIHJ1bGUgaWRlbnRpZmllciAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdSJmVncmF2ZTtnbGUgaW5jb25udWUgJmFncmF2ZTsgbGEgbGlnbmUgJWQnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2NhdGVnb3J5J10gPSAnQSBkYXRhYmFzZSBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gaW5zZXJ0IHRoZSBjYXRlZ29yeSBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jb21wYW55J10gPSAnQSBkYXRhYmFzZSBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gaW5zZXJ0IHRoZSBjb21wYW55IGRlZmluaXRpb24nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2ZpZWxkZGVmJ10gPSAnQSBkYXRhYmFzZSBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gaW5zZXJ0IHRoZSBmaWVsZCBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcGFyYW0nXSA9ICdMYSB2YWxldXIgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO2UgJXMgZXN0IGludmFsaWRlJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdBdWN1biBmaWNoaWVyIG4mIzAzOTthICZlYWN1dGU7dCZlYWN1dGU7IGltcG9ydCZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgdmFsdWUgd2FzIG1pc3NpbmcgZnJvbSB0aGUgZm9ybSBpbnB1dCc7CiRsYW5nWydlcnJvcl9ub2Ryb3Bkb3dub3B0aW9ucyddID0gJ0F1Y3VuZSBvcHRpb24gZGUgbWVudSBkJmVhY3V0ZTtyb3VsYW50IGZvdXJuaWUnOwokbGFuZ1snZXJyb3Jfbm9mZXUnXSA9ICdOZSBwZXV0IHBhcyB0cm91dmVyIGxlIG1vZHVsZSBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vbGVuZ3RoJ10gPSAnQXVjdW5lIGxvbmd1ZXVyIG1heGltdW0gZm91cm5pZSc7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ05vIHJlY29yZHMgbWF0Y2hpbmcgeW91ciBjcml0ZXJpYSBjb3VsZCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnQ291bGQgbm90IGZpbmQgYW55IGluZm9ybWF0aW9uIGZvciBwb3N0YWwvemlwIGNvZGUgJXMnOwokbGFuZ1snZXJyb3JfcHJlZml4X21zZyddID0gJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlICZhZ3JhdmU7IGxhIGxpZ25lIDogJWQ6ICVzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydCBhdSBmb3JtYXQgQ1NWJzsKJGxhbmdbJ2ZheCddID0gJ1QmZWFjdXRlO2wmZWFjdXRlO2NvcGllJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdUJmVhY3V0ZTtsJmVhY3V0ZTtjb3BpZSc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGR1IENoYW1wJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGRlcyBDaGFtcHMnOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnRCZlYWN1dGU7ZmluaXRpb24gZHUgQ2hhbXAnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGR1IENoYW1wIEFqb3V0JmVhY3V0ZTsnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRCZlYWN1dGU7ZmluaXRpb24gZHUgQ2hhbXAgTWlzZSAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGR1IENoYW1wIFN1cHByaW0mZWFjdXRlOyc7CiRsYW5nWydmaWVsZF9jaGVja2JveCddID0gJ0JvJmljaXJjO3RlICZhZ3JhdmU7IGNvY2hlcic7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ01lbnUgZCZlYWN1dGU7cm91bGFudCc7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1pvbmUgZGUgVGV4dGUnOwokbGFuZ1snZmllbGRfdGV4dGJveCddID0gJ0JvaXRlIGRlIFRleHRlJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8ICc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciBsZSBHYWJhcml0IGRlIEZvcm11bGFpcmUgZGUgbGEgcGFydGllIHB1YmxpcXVlIChGcm9udEVuZCknOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnR2FiYXJpdCBkJiMwMzk7JmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuZSBlbnRyZXByaXNlJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ0dhYmFyaXQgZGUgbCYjMDM5O0VudHJlcHJpc2UgTWlzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbmZvX2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbGVzIG9wdGlvbnMgcG91ciBsZSBtZW51IGQmZWFjdXRlO3JvdWxhbnQuIFVuZSBsaWduZSBwYXIgZW50ciZlYWN1dGU7ZS4gUyZlYWN1dGU7cGFyZXIgbGVzIGNsZWZzIGRlcyB2YWxldXJzIGF2ZWMgbGUgJnF1b3Q7PSZxdW90Oy4gRXggOiBjbGVmPXZhbGV1cic7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2UmbmJzcDsnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0ZXIgQ1NWJzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnTGF0aXR1ZGUgJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbG9nb2N1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdMb2dvJzsKJGxhbmdbJ2xvbmdpdHVkZSddID0gJ0xvbmdpdHVkZSc7CiRsYW5nWydsb29rdXAnXSA9ICdMb29rdXAgQ29vcmRpbmF0ZXMnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTG9uZ2V1ciBNYXgnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ0xvbmdldXIgTWF4JzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdMb25nZXVyIE1heCc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEZXJuaSZlZ3JhdmU7cmUgbW9kaWZpY2F0aW9uIGxlJzsKJGxhbmdbJ25hbWUnXSA9ICdOb20nOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOb20nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdWb3VzIGRldmV6IGF2b2lyIGxhIHBlcm1pc3Npb24gJiMwMzk7JXMmIzAzOTsgcG91ciBlZmZlY3R1ZXIgY2V0dGUgYWN0aW9uLic7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydub2NvbXBhbnluYW1lZ2l2ZW4nXSA9ICdBdWN1biBOb20gZCYjMDM5O0VudHJlcHJpc2UgZm91cm5pJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnQXVjdW4gTm9tIGZvdXJuaSc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAnQ2UgbiYjMDM5O2VzdCBwYXMgdW4gbm9tYnJlJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPiAnOwokbGFuZ1snb2YnXSA9ICdEZSc7CiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZXRlcm1pbmUgbGUgY29tcG9ydGVtZW50IHByaW1haXJlIGRlIGNlIG1vZHVsZS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQgOg0KPHVsPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIEFmZmljaGUgbGEgbGlzdGUgZGVzIGNhdCZlYWN1dGU7Z29yaWVzLiBMZXMgdXRpbGlzYXRldXJzIHBldXZlbnQgcGFzc2VyIGF1IG1vZGUgU29tbWFpcmUgcHVpcyBhdSBtb2RlIEQmZWFjdXRlO3RhaWwuPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBBZmZpY2hlIGxlcyBlbnRyZXByaXNlcyBlbiBtb2RlIFNvbW1haXJlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIEFmZmljaGUgbGVzIGluZm9ybWF0aW9ucyBEJmVhY3V0ZTt0YWlsbCZlYWN1dGU7ZXMgZCYjMDM5O3VuZSBlbnRyZXByaXNlIChtb2RlIEQmZWFjdXRlO3RhaWwpLjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIEFmZmljaGUgdW4gZm9ybXVsYWlyZSBwZXJtZXR0YW50IGRlIG1ldHRyZSAmYWdyYXZlOyBqb3VyIGxlcyBpbmZvcm1hdGlvbnMgZCYjMDM5O3VuZSBlbnRyZXByaXNlLjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5LCBhbmQgPGVtPnNlYXJjaDwvZW0+IG1vZGVzLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB3ZXRoZXIgdGhlIHJlc3VsdGluZyBkYXRhIHNob3VsZCByZXBsYWNlIHRoZSBkZWZhdWx0IGNvbnRlbnQgYmxvY2ssIG9yIHNob3VsZCByZXBsYWNlIHRoZSBvcmlnaW5hbCB0YWcgKGlubGluZSkuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPnNlYXJjaDwvZW0+IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1doZW4gdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgb3IgdGhlIDxlbT5zZWFyY2g8L2VtPiBtb2RlLCB0aGlzIHdpbGwgbGltaXQgdGhlIHJlc3VsdHMgdG8gYSBzcGVjaWZpZWQgbnVtYmVyLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ0xvcnNxdSYjMDM5O3V0aWxpcyZlYWN1dGU7IGF2ZWMgbGUgbW9kZSBTb21tYWlyZSA8ZW0+ZGVmYXVsdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlLCBxdWkgZG9pdCBjb3JyZXNwb25kcmUgYXUgbm9tIGQmIzAzOTt1bmUgY2F0JmVhY3V0ZTtnb3JpZSBleGlzdGFudGUsIHNlcmEgdXRpbGlzJmVhY3V0ZTsgcG91ciBhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGVudHJlcHJpc2VzIGRlIGNldHRlIGNhdCZlYWN1dGU7Z29yaWUuIChVbmUgbGlzdGUgcyZlYWN1dGU7cGFyJmVhY3V0ZTtlIHBhciBkZXMgdmlyZ3VsZXMgcGV1dCAmZWNpcmM7dHJlIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlKS4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgdW4gZ2FiYXJpdCAocGFyIG5vbSkgJmFncmF2ZTsgdXRpbGlzZXIgbG9ycyBkZSBsJiMwMzk7YWZmaWNoYWdlIGRlIGxhIFZ1ZSBlbiBMaXN0ZSBkZSBsYSBDYXQmZWFjdXRlO2dvcmllLic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdSZXF1aXMgcG91ciBsZXMgbW9kZXMgZCZlYWN1dGU7dGFpbCBldCAmZWFjdXRlO2RpdGlvbiBkdSBGcm9udEVuZCwgY2UgcGFyYW0mZWdyYXZlO3RyZSBkJmVhY3V0ZTt0ZXJtaW5lIHF1ZWwgZW5yZWdpc3RyZW1lbnQgZCYjMDM5O2VudHJlcHJpc2UgZG9pdCAmZWNpcmM7dHJlICZlYWN1dGU7ZGl0JmVhY3V0ZTsgb3UgdnUuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgdW4gYWxpYXMgZGUgcGFnZSAocGFyIG5vbSkgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBhZmZpY2hlciBsZSBkJmVhY3V0ZTt0YWlsIGQmIzAzOTt1biBlbnJlZ2lzdHJlbWVudC4gPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW0mZWdyYXZlO3RyZSBuJiMwMzk7ZXN0IHBhcyBjb21wYXRpYmxlIGF2ZWMgbGVzIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwJmVhY3V0ZTtjaWZpZSB1biBnYWJhcml0IChwYXIgbm9tKSAmYWdyYXZlOyB1dGlsaXNlciBsb3JzIGRlIGwmIzAzOTthZmZpY2hhZ2UgZGUgbGEgdnVlIGRlIEQmZWFjdXRlO3RhaWwuICA8c3Ryb25nPk5vdGUgOjwvc3Ryb25nPiBDZSBwYXJhbSZlZ3JhdmU7dHJlIG4mIzAzOTtlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3AmZWFjdXRlO2NpZmllIHVuIGdhYmFyaXQgKHBhciBub20pICZhZ3JhdmU7IHV0aWxpc2VyIGxvcnMgZGUgbCYjMDM5O2FmZmljaGFnZSBkdSBmb3JtdWxhaXJlIGQmIzAzOTsmZWFjdXRlO2RpdGlvbiBkJiMwMzk7ZW50cmVwcmlzZSBzdXIgbGUgRnJvbnRFbmQuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIHNldWxlbWVudCAmYWdyYXZlOyBsJiMwMzk7YWN0aW9uICYjMDM5O2NhdGVnb3J5bGlzdCYjMDM5Oywgc2kgY2UgcGFyYW0mZWdyYXZlO3RyZSBlc3Qgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOywgdG91dGVzIGxlcyBjYXQmZWFjdXRlO2dvcmllcyBzZXJvbnQgYWZmaWNoJmVhY3V0ZTtlcywgbSZlY2lyYzttZSBjZWxsZXMgc2FucyBlbnRyZXByaXNlLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZpZSBsJiMwMzk7b3JkcmUgZGUgdHJpIGRlcyBjaGFtcHMgZGFucyBsYSB2dWUgU29tbWFpcmUuIFZhbGV1cnMgcG9zc2libGVzIDoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIE9yZHJlIEFzY2VuZGFudDwvbGk+DQogIDxsaT5kZXNjIC0tIE9yZHJlIERlc2NlbmRhbnQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBzZXVsZW1lbnQgZW4gbW9kZSBTb21tYWlyZSwgY2UgcGFyYW0mZWdyYXZlO3RyZSBkJmVhY3V0ZTt0ZXJtaW5lIGxlIHRyaSBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZGVzIGVudHJlcHJpc2VzLiBWYWxldXJzIHBvc3NpYmxlcyA6DQo8dWw+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPiAtLSBOb20gZGUgbCYjMDM5O2VudHJlcHJpc2U8L2xpPg0KICA8bGk+cGhvbmUgLS0gVCZlYWN1dGU7bCZlYWN1dGU7cGhvbmU8L2xpPg0KICA8bGk+ZmF4IC0tIFQmZWFjdXRlO2wmZWFjdXRlO2NvcGllPC9saT4NCiAgPGxpPmVtYWlsIC0tIENvdXJyaWVsPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gQWRyZXNzZSBkdSBzaXRlIGludGVybmV0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGF0ZSBkZSBjciZlYWN1dGU7YXRpb248L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gRGF0ZSBkZSBtb2RpZmljYXRpb248L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3BlY2lmaWUgdW4gZ2FiYXJpdCAocGFyIG5vbSkgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBhZmZpY2hlciBsYSB2dWUgU29tbWFpcmUuIDxzdHJvbmc+Tm90ZSA6PC9zdHJvbmc+IENlIHBhcmFtJmVncmF2ZTt0cmUgbiYjMDM5O2VzdCBwYXMgY29tcGF0aWJsZSBhdmVjIGxlcyBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdDb2RlIFBvc3RhbCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0xlIG1vZHVsZSAmIzAzOTtBbm51YWlyZSBkJiMwMzk7ZW50cmVwcmlzZSYjMDM5OyBhICZlYWN1dGU7dCZlYWN1dGU7IGluc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0xlIG1vZHVsZSAmIzAzOTtBbm51YWlyZSBkJiMwMzk7ZW50cmVwcmlzZSYjMDM5OyBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuIFRvdXRlcyBsZXMgZW50cmVwcmlzZXMgb250ICZlYWN1dGU7dCZlYWN1dGU7IGVmZmFjJmVhY3V0ZTtlcy4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciBkZSB2b3Vsb2lyIGQmZWFjdXRlO3NpbnN0YWxsZXIgY2UgbW9kdWxlID8gTGEgZCZlYWN1dGU7c2luc3RhbGxhdGlvbiBlZmZhY2VyYSB0b3V0ZXMgbGVzIGVudHJlcHJpc2VzIGNyJmVhY3V0ZTtlcyBldCBsZXVycyBpbmZvcm1hdGlvbnMgYXNzb2NpJmVhY3V0ZTtlcy4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnQ2F0JmVhY3V0ZTtnb3JpZXMgaW1wb3J0JmVhY3V0ZTtlcyc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ1JlY2hlcmNoZXIgZGVzIG5vbXMgZGUgY29tcGFnbmllIGVuIGRvdWJsb24gPyc7CiRsYW5nWydwcm9tcHRfY29sbGVjdHN0YXRzJ10gPSAnQ29sbGVjdCBTZWFyY2ggU3RhdGlzdGljcyc7CiRsYW5nWydwcm9tcHRfY29tcGFuaWVzX2ltcG9ydGVkJ10gPSAnRW50cmVwcmlzZXMgaW1wb3J0JmVhY3V0ZTtlcyc7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnRCZlYWN1dGU7bGltaXRhdGV1ciBkZSBjaGFtcCc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0xhIHBhZ2UgcGFyIGQmZWFjdXRlO2ZhdXQgc3VyIGxhcXVlbGxlIGxhIHJlZGlyZWN0aW9uIHNlcmEgcGFyYW0mZWFjdXRlO3RyJmVhY3V0ZTtlIGVuIG1vZGUgRCZlYWN1dGU7dGFpbCc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ09wdGlvbnMgZHUgbWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ3Byb21wdF9maWVsZGRlZnNfaW1wb3J0ZWQnXSA9ICdEJmVhY3V0ZTtmaW5pdGlvbnMgZGUgY2hhbXBzIGltcG9ydCZlYWN1dGU7ZXMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeWRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyBjYXRlZ29yaWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ1BvcHVwbGF0ZSBjYXRlZ29yeSB2YWx1ZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZSddID0gJ0ltcG9ydGVyIHVuIGZpY2hpZXIgQ1NWJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJ10gPSAnQ3JlYXRlIG1pc3NpbmcgJnF1b3Q7YWRkaXRpb25hbCBmaWVsZCZxdW90OyBkZWZpbml0aW9ucyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZHZhbHMnXSA9ICdQb3B1bGF0ZSAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IHZhbHVlcyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9sb29rdXBsYXRsb25nJ10gPSAnTG9va3VwIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgdmFsdWVzIGlmIG1pc3NpbmcnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xlIG5vbWJyZSBkJiMwMzk7ZW5yZWdpc3RyZW1lbnRzICZhZ3JhdmU7IGFmZmljaGVyIGVuIG1vZGUgU29tbWFpcmUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnT3JkcmUgZGUgdHJpIHBhciBkJmVhY3V0ZTtmYXV0IGVuIG1vZGUgU29tbWFpcmUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdMJiMwMzk7b3JkcmUgZGUgdHJpIHBhciBkJmVhY3V0ZTtmYXV0IGVuIG1vZGUgU29tbWFpcmUgPGVtPihuZSBzJiMwMzk7YXBwbGlxdWUgcGFzIHNpIGwmIzAzOTtvcmRyZSBlc3QgJiMwMzk7cmFuZG9tJiMwMzk7IG91ICYjMDM5O2FsJmVhY3V0ZTthdG9pcmUmIzAzOTs8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdHYWJhcml0JzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmxpcXVlJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmxpJmVhY3V0ZTsnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzJzsKJGxhbmdbJ3JhZGl1cyddID0gJ1JheW9uJzsKJGxhbmdbJ3JhbmRvbSddID0gJ0FsJmVhY3V0ZTthdG9pcmUnOwokbGFuZ1sncmV0dXJuJ10gPSAnUmV0b3VyJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzdGF1cmVyIGxlcyBQYXJhbSZlZ3JhdmU7dHJlcyBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ0NldHRlIG9wJmVhY3V0ZTtyYXRpb24gdmEgciZlYWN1dGU7aW5pdGlhbGlzZXIgbGUgY29udGVudSBkdSBnYWJhcml0IGF2ZWMgY2VsdWkgcGFyIGQmZWFjdXRlO2ZhdXQuIFZvdWxlei12b3VzIGNvbnRpbnVlciA/JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1JlY2hlcmNoZXInOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdSZWNoZXJjaGVzJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZXMnXSA9ICdHYWJhcml0IGRlIGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXQnOwokbGFuZ1snc3VibWl0J10gPSAnRW52b3llcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvTW9kaWZpZXIgR2FiYXJpdCBkZSBTb21tYWlyZSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgU29tbWFpcmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ0dhYmFyaXQgZGUgU29tbWFpcmUgTWlzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZXN0YXVyZXIgbGVzIFBhcmFtJmVncmF2ZTt0cmVzIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1QmZWFjdXRlO2wmZWFjdXRlO3Bob25lJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUJmVhY3V0ZTtsJmVhY3V0ZTtwaG9uZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBkZSBMaXN0ZSBkZSBDYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGRlIEQmZWFjdXRlO3RhaWwnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgZHUgZm9ybXVsYWlyZSBGcm9udEVuZCc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnUmFwcG9ydCBkJiMwMzk7aW1wb3J0YXRpb24gQ1NWJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBkZSBsYSBSZWNoZXJjaGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGR1IFNvbW1haXJlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3R5cGV0ZXh0J10gPSAnVHlwZSc7CiRsYW5nWyd1cCddID0gJ0hhdXQnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1NpdGUgV2ViJzsKJGxhbmdbJ3dlYnNpdGV0ZXh0J10gPSAnU2l0ZSBXZWInOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjA3OTE4MTEzOC4xMzQ1NzEzODIzLjEzNDU3MTM4MjMuMTM0NTcxMzgyMy4xJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzQ1NzEzODIzLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0F0dGl2byc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWdnaXVuZ2kgQ29sbGVnYW1lbnRvJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdJbmRpcml6em8nOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdJbmRpcml6em8nOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZ2dpdW5naSBDYXRlZ29yaWEnOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0FnZ2l1bmdpIENvbXBhZ25pYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FnZ2l1bmdpIERlZmluaXppb25lIENhbXBvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmlsZSBTb2xvIGFnbGkgQW1taW5pc3RyYXRvcmknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIGNlcnRpIGRpIHZvbGVyZSByaW11b3ZlcmUgcXVlc3RvIGVsZW1lbnRvPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsbGEnOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICdDYW1wbyBtb2RpZmljYWJpbGUgZGFnbGkgdXRlbnRpIGZyb250ZW5kPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0NhbXBvIHZpc2liaWxlIGFnbGkgdXRlbnRpIGZyb250ZW5kPyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcmlhIEFnZ2l1bnRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpYSBBZ2dpb3JuYXRhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSBNb2RlbGxvIExpc3RhIENhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIExpc3RhIENhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdMaXN0YSBDYXRlZ29yaWUgQWdnaW9ybmF0YSc7CiRsYW5nWydjb21wYW55J10gPSAnQ29tcGFnbmlhJzsKJGxhbmdbJ2NvbXBhbnlhZGRlZCddID0gJ0NvbXBhZ25pYSBBZ2dpdW50YSc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ05vbWUgQ29tcGFnbmlhJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnQ29tcGFnbmlhIEFnZ2lvcm5hdGEnOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnQ29tcGFnbmllJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnQ29tcGFnbmlhJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICdDb21wYW55IERpcmVjdG9yeSc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdFbWFpbCBwZXIgQ29udGF0dGknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIGRpIGluc2VyaW1lbnRvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIFByZWRlZmluaXRpJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBJIGNvbnRlbnV0aSBkaSBxdWVzdGUgYXJlZSBkaSB0ZXN0byBzb25vIHV0aWxpenphdGkgcGVyIGRldGVybWluYXJlIGlsIGNvbnRlbnV0byBwcmVkZWZpbml0byBkZWkgbW9kZWxsaSBxdWFuZG8gc2kgc2VsZXppb25hICZxdW90O0FnZ2l1bmdpIE1vZGVsbG8mcXVvdDsgbmVsIHBhbm5lbGxvIGRlaSBtb2RlbGxpIGNvcnJpc3BvbmRlbnRlLiBNb2RpZmljYXJlIHVuYSBkaSBxdWVzdGUgYXJlZSBkaSB0ZXN0byBub24gY29tcG9ydGVyJmFncmF2ZTsgZWZmZXR0aSBpbW1lZGlhdGkgc3VsIHZvc3RybyBzaXRvJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmEnOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdFbGltaW5hIENhdGVnb3JpYSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnRWxpbWluYSBDb21wYWduaWEnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdFbGltaW5hIERlZmluaXppb25lIENhbXBvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEaXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXppb25lJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXR0YWdsaSc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0RldHRhZ2xpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSBNb2RlbGxvIERldHRhZ2xpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ01vZGVsbGkgRGV0dGFnbGknOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnTW9kZWxsbyBEZXR0YWdsaSBBZ2dpb3JuYXRvJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGlzYWJpbGl0YXRvJzsKJGxhbmdbJ2Rvd24nXSA9ICdHaSZ1Z3JhdmU7JzsKJGxhbmdbJ2RyYWZ0J10gPSAnQm96emEnOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ01vZGlmaWNhIGNhdGVnb3JpYSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ01vZGlmaWNhIENvbXBhZ25pYSc7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdNb2RpZmljYSBEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFLW1haWwnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWUnXSA9ICdJbCBOb21lIGRlbGxhIENvbXBhZ25pYSBub24gJmVncmF2ZTsgdmFsaWRvJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnRXNpc3RlIGdpJmFncmF2ZTsgdW5hIENvbXBhZ25pYSBjb24gcXVlc3RvIG5vbWUgbmVsIERhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTm9uIHJpZXNjbyBhIHRyb3ZhcmUgaWwgbW9kdWxvIEZyb250RW5kVXNlcnMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXNwb3J0YSBDU1YnOwokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbml6aW9uaSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8gQWdnaXVudGEnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8gQWdnaW9ybmF0YSc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyBFbGltaW5hdGEnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL01vZGlmaWNhIE1vZGVsbG8gZGVsIE1vZHVsbyBJbnRlcmZhY2NpYSBVdGVudGUgJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ01vZGlmaWNhIE1vZGVsbG8gQ29tcGFnbmlhJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ01vZGlmaWNhIE1vZGVsbG8gQWdnaW9ybmF0byBDb21wYWduaWEnOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1tYWdpbmUnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTHVuZ2hlenphIE1heCc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTHVuZ2hlenphIE1heCc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTHVuZ2hlenphIE1heCc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIFVsdGltYSBNb2RpZmljYSc7CiRsYW5nWyduYW1lJ10gPSAnTm9tZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05vbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdQZXIgYWNjZWRlcmUgYWxsYSBmdW56aW9uZSBzZXJ2b25vIGkgcGVybWVzc2kgJiMwMzk7JXMmIzAzOTsuJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05lc3N1biBub21lIENvbXBhZ25pYSBpbnNlcml0byc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05lc3N1biBOb21lIGluc2VyaXRvJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdOb24gJmVncmF2ZTsgdW4gbnVtZXJvJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ0RpJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdpbmEnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5hIGlsIGNvbXBvcnRhbWVudG8gcHJpbWFyaW8gZGVsIG1vZHVsby4gSSB2YWxvcmkgcG9zc2liaWxpIHBlciBxdWVzdG8gcGFyYW1ldHJvIHNvbm86DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gVmlzdWFsaXp6YSB1bmEgbGlzdGEgZGVsbGUgY2F0ZWdvcmllLiBHbGkgdXRlbnRpIHBvc3Nvbm8gc2NvcnJlcmUgdHJhIGxhIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpbyBlIGxhIG1vZGFsaXQmYWdyYXZlOyBkZXR0YWdsaS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIFZpc3VhbGl6emEgbGUgQ29tcGFnbmllIGluIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpby48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBWaXN1YWxpenphIGluZm9ybWF6aW9uaSBkZXR0YWdsaWF0ZSBzdSB1bmEgY29tcGFnbmlhIHNwZWNpZmljYS48L2xpPg0KICA8bGk+ZmVfZWRpdCAtLSBWaXN1YWxpenphIHVuIG1vZHVsbyBjaGUgcGVybWV0dGUgbGEgbW9kaWZpY2EgZGVsbGUgaW5mb3JtYXppb25pIHN1IHVuYSBjb21wYWduaWEgc3BlY2lmaWNhLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1F1YW5kbyBxdWVzdG8gcGFyYW1ldHJvIChjaGUgZG92cmViYmUgY29ycmlzcG9uZGVyZSBhbCBub21lIGRpIHVuYSBjYXRlZ29yaWEgZXNpc3RlbnRlKSB2aWVuZSB1dGlsaXp6YXRvIG5lbGxhIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpbyA8ZW0+ZGVmYXVsdDwvZW0+LCB2ZXJyYW5ubyB2aXN1YWxpenphdGUgc29sbyBsZSBjb21wYWduaWUgcHJlc2VudGkgaW4gcXVlbGxhIGNhdGVnb3JpYS4gKHB1Jm9ncmF2ZTsgZXNzZXJlIGRhdGEgdW5hIGxpc3RhIHNlcGFyYXRhIGRhIHZpcmdvbGUpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmaWNhIHVuIE1vZGVsbG8gKGlsIG5vbWUpIGRhIHV0aWxpenphcmUgcXVhbmRvIHNpIHVzYSBsYSB2aXN0YSBsaXN0YSBkaSBjYXRlZ29yaWEuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ05lY2Vzc2FyaW8gcGVyIGxlIG1vZGFsaXQmYWdyYXZlOyBkZXR0YWdsaW8gZSBtb2RpZmljYSBpbnRlcmZhY2NpYSwgcXVlc3RvIHBhcmFtZXRybyBkZXRlcm1pbmEgcXVhbGUgcmVjb3JkIGRpIGNvbXBhZ25pYSBtb2RpZmljYXJlIG8gdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcGVjaWZpY2EgdW4gYWxpYXMgZGkgcGFnaW5hIChpbCBub21lKSBkYSB1dGlsaXp6YXJlIHBlciB2aXN1YWxpenphcmUgaSBkZXR0YWdsaSBkaSB1biByZWNvcmQuIDxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gUXVlc3RvIHBhcmFtZXRybyBkaSB0YWcgbm9uICZlZ3JhdmU7IGNvbXBhdGliaWxlIGNvbiBpIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZmljYSB1biBtb2RlbGxvIGRhIHVzYXJlIG5lbGxhIHZpc3RhIGRldHRhZ2xpLiAgPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBRdWVzdG8gcGFyYW1ldHJvIGRpIHRhZyBub24gJmVncmF2ZTsgY29tcGF0aWJpbGUgY29uIGkgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNhIHVuIG1vZGVsbG8gKGlsIG5vbWUpIGRhIHV0aWxpenphcmUgcXVhbmRvIHNpIHZpc3VhbGl6emEgaWwgbW9kdWxvIGRpIG1vZGlmaWNhIGludGVyZmFjY2lhIGNvbXBhZ25pYSc7CiRsYW5nWydwYXJhbV9zZWxlY3RjYXRlZ29yeSddID0gJ1NlIHF1ZXN0byBwYXJhbWV0cm8gJmVncmF2ZTsgaW1wb3N0YXRvIHZlcnImYWdyYXZlOyBnZW5lcmF0byB1biBtb2R1bG8gY2hlIHBlcm1ldHRlIGFnbGkgdXRlbnRpIGRpIGZpbHRyYXJlIGludGVyYXR0aXZhbWVudGUgaSByZWNvcmQgZGVsbGUgY29tcGFnbmllIGluIHVuYSBzaW5nb2xhIGNhdGVnb3JpYS4gUXVlc3RvIGNvbnRyYXNzZWdubyBub24gZGV2ZSBlc3NlcmUgdXRpbGl6emF0byBpbiBjb250ZW1wb3JhbmVhbWVudGUgYWwgcGFyYW1ldHJvICZxdW90O2NhdGVnb3J5JnF1b3Q7Lic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJpbGUgc29sbyBhbGwmIzAzOTthemlvbmUgY2F0ZWdvcnlsaXN0LCBzZSBxdWVzdG8gcGFyYW1ldHJvICZlZ3JhdmU7IGNvbmZpZ3VyYXRvLCBhbGxvcmEgYW5jaGUgbGUgY2F0ZWdvcmllIGNoZSBub24gY29pbmNpZG9ubyBjb24gbGUgY29tcGFnbmllIHNhcmFubm8gdmlzdWFsaXp6YXRlIG5lbGwmIzAzOTt1c2NpdGEnOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmaWNhIGwmIzAzOTtvcmRpbmUgZGVpIGNhbXBpIGluIHZpc3RhIHNvbW1hcmlvLiBJIHZhbG9yaSBwZXJtZXNzaSBzb25vOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gT3JkaW5lIGFzY2VuZGVudGU8L2xpPg0KICA8bGk+ZGVzYyAtLSBPcmRpbmUgZGlzY2VuZGVudGU8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJpbGUgc29sbyBpbiBtb2RhbGl0JmFncmF2ZTsgc29tbWFyaW8sIHF1ZXN0byBwYXJhbWV0cm8gZGV0ZXJtaW5hIGwmIzAzOTtvcmRpbmFtZW50byBkZWxsZSBjb21wYWduaWUgdmlzdWFsaXp6YXRlLiBJIHZhbG9yaSBwb3NzaWJpbGkgc29ubzoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIGwmIzAzOTtpbmRpcml6em8gZGVsIHNpdG8gd2ViPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gbGEgZGF0YSBkaSBjcmVhemlvbmUgZGVsIHJlY29yZCBkaSBxdWVzdGEgY29tcGFnbmlhPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIExhIGRhdGEgZGkgbW9kaWZpY2EgZGVsIHJlY29yZCBkaSBxdWVzdGEgY29tcGFnbmlhPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1NwZWNpZmljYSB1biBtb2RlbGxvIChpbCBub21lKSBkYSB1dGlsaXp6YXJlIHF1YW5kbyBzaSB1c2EgbGEgdmlzdGEgc29tbWFyaW8uIDxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gUXVlc3RvIHBhcmFtZXRybyBkaSB0YWcgbm9uICZlZ3JhdmU7IGNvbXBhdGliaWxlIGNvbiBpIHByZXR0eSB1cmxzLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsbyBDb21wYW55IERpcmVjdG9yeSBpbnN0YWxsYXRvIGNvcnJldHRhbWVudGUnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsbyBDb21wYW55IERpcmVjdG9yeSBkaXNpbnN0YWxsYXRvIGNvcnJldHRhbWVudGUuIFR1dHRpIGkgZGF0aSBkZWxsZSBjb21wYWduaWUgY29sbGVnYXRlIHNvbm8gc3RhdGkgY2FuY2VsbGF0aSc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXJlIGRpc2luc3RhbGxhcmUgcXVlc3RvIG1vZHVsbz8gRmFjZW5kb2xvIGVsaW1pbmVyZXRlIHBlcm1hbmVudGVtZW50ZSB0dXR0aSBpIGRhdGkgZGVsbGUgY29tcGFnbmllIGNvbGxlZ2F0aS4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnTGEgcGFnaW5hIHByZWRlZmluaXRhIGEgY3VpIHJlaW5kaXJpenphcmUgaW4gbW9kYWxpdCZhZ3JhdmU7IGRldHRhZ2xpJzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdJbCBudW1lcm8gZGkgcmVjb3JkIGRhIHZpc3VhbGl6emFyZSBpbiBtb2RhbGl0JmFncmF2ZTsgc29tbWFyaW8nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnT3JkaW5hbWVudG8gcHJlZGVmaW5pdG8gaW4gbW9kYWxpdCZhZ3JhdmU7IHNvbW1hcmlvJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnTCYjMDM5O29yZGluYW1lbnRvIHByZWRlZmluaXRvIGluIG1vZGFsaXQmYWdyYXZlOyBzb21tYXJpbyA8ZW0+KG5vbiBhcHBsaWNhYmlsZSBxdWFuZG8gbCYjMDM5O29yZGluYW1lbnRvICZlZ3JhdmU7ICYjMDM5O3JhbmRvbSYjMDM5Oyk8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmJsaWNvJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmJsaWNhdG8nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbnplJzsKJGxhbmdbJ3JhbmRvbSddID0gJ0Nhc3VhbGUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZWltcG9zdGEgaSB2YWxvcmkgcHJlZGVmaW5pdGknOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdRdWVzdGEgb3BlcmF6aW9uZSByaXBvcnRlciZhZ3JhdmU7IGkgY29udGVudXRpIGRlbCBtb2RlbGxvIGFpIHZhbG9yaSBwcmVkZWZpbml0aSBkaSBzaXN0ZW1hLiAgU2lldGUgY2VydGkgZGkgdm9sZXJlIHByb2NlZGVyZT8nOwokbGFuZ1snc2VhcmNoJ10gPSAnQ2VyY2EnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdG8nOwokbGFuZ1snc3VibWl0J10gPSAnSW52aWEnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSBNb2RlbGxvIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxvIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdNb2RlbGxvIFNvbW1hcmlvIEFnZ2lvcm5hdG8nOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZWltcG9zdGEgYWkgdmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb25vJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9ubyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBMaXN0YSBDYXRlZ29yaWEgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gRGV0dGFnbGkgUHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gTW9kdWxvIEludGVyZmFjY2lhIFByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBTb21tYXJpbyBQcmVkZWZpbml0byc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1RpcG8nOwokbGFuZ1sndXAnXSA9ICdTdSc7CiRsYW5nWyd3ZWJzaXRlJ10gPSAnU2l0byB3ZWInOwokbGFuZ1snd2Vic2l0ZXRleHQnXSA9ICdTaXRvIHdlYic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjE0MTAyMDguNTYyLjkyLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywyNTcwNC4wLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTgwNzE1MTY0MC4xMTgyOTYwNDU2LjEyMjE5NDEyNjguMTIyMjExMTk0Ni41NjQnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Jlb3JkZXJfbW9kZSddID0gJ09tc29ydGVyIG1vZHVzIGhhciBibGl0dCBha3RpdmVydC4gRHJhIGVsZW1lbnRlbmUgdGlsIGRlbiAmb3NsYXNoO25za2V0IHJla2tlZiZvc2xhc2g7bGdlLiBGb3IgJmFyaW5nOyBhdmJyeXRlIG9wZXJhc2pvbmVuLCBrbGlrayAmcXVvdDthdmJyeXQmcXVvdDsuIEZvciAmYXJpbmc7IGxhZ3JlIGVuZHJpbmdlbmUga2xpa2sgJnF1b3Q7c2VuZCZxdW90Oyc7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21zb3J0ZXInOwokbGFuZ1sncHJvbXB0X2ljb24nXSA9ICdJa29uJzsKJGxhbmdbJ2ZpZWxkX2ljb24nXSA9ICdJa29uIChDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2FjdGl2aXR5J10gPSAnQWt0aXZpdGV0ZXIgKENHU29jaWFsQXBwKSc7CiRsYW5nWydwYXJhbV9pZGxpc3QnXSA9ICdHamVsZGVyIGJhcmUgdGlsIDxlbT5zdGFuZGFyZDwvZW0+IG9wcHN1bW1lcmluZ3NoYW5kbGluZywgb2cgZGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgJmFyaW5nOyBhbmdpIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgYXYgaGVsdGFsbCBmaXJtYSBJRGVyIHNvbSBza2FsIHZpc2VzLiBNZXJrLCBrdW4gcHVibGlzZXJ0ZSBmaXJtYSB2aXNlcyBtZWQgbWluZHJlIGFubmV0IGVyIHNwZXNpZmlzZXJ0IGF2IGVuIGFubmVuIHBhcmFtZXRlcic7CiRsYW5nWydldmVudGRlc2MtT25BZGRDb21wYW55J10gPSAnRW4gaGVuZGVsc2Ugc2VuZHQgZXR0ZXIgZXQgbnl0dCBmaXJtYSBlciBsYWd0IHRpbCBkYXRhYmFzZW4nOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFbiBoZW5kZWxzZSBzZW5kdCBldHRlciBlbiBla3Npc3RlcmVuZGUgZmlybWFvcHBmJm9zbGFzaDtyaW5nIGVyIG9wcGRhdGVydCBpIGRhdGFiYXNlbic7CiRsYW5nWydldmVudGRlc2MtT25EZWxldGVDb21wYW55J10gPSAnRW4gaGVuZGVsc2Ugc2VuZHQgZiZvc2xhc2g7ciBlbiBmaXJtYW9wcGYmb3NsYXNoO3Jpbmcgc2xldHRlcyc7CiRsYW5nWydldmVudGhlbHAtT25BZGRDb21wYW55J10gPSAnPHA+U2VudCBhZnRlciBhIGNvbXBhbnkgaXMgYWRkZWQgdG8gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O29iamVjdCZxdW90OyAtIFRoZSBjZF9jb21wYW55IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGEgdGhhdCB3YXMgc2F2ZWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscC1PbkVkaXRDb21wYW55J10gPSAnPHA+U2VudCBhZnRlciBhIGNvbXBhbnkgaXMgdXBkYXRlZCBpbiB0aGUgZGF0YWJhc2UuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCiAgPGxpPiZxdW90O3dobyZxdW90OyAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+JnF1b3Q7b2JqZWN0JnF1b3Q7IC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLU9uRGVsZXRlQ29tcGFueSddID0gJzxwPlNlbnQgYmVmb3JlIGEgY29tcGFueSBpcyBkZWxldGVkIGZyb20gdGhlICBkYXRhYmFzZS48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KICA8bGk+JnF1b3Q7d2hvJnF1b3Q7IC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+DQogIDxsaT4mcXVvdDtjaWQmcXVvdDsgLSBJZCBvZiB0aGUgY29tcGFueSByZWNvcmQgdG8gYmUgZGVsZXRlZC48L2xpPg0KPC91bD4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFzdCBvcHAnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGVuIEZyb250ZW5kIFJlZGlnZXJpbmdzIEFsYnVtIE1hbCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXIgRnJvbnRlbmQgUmVkaWdlcmluZ3MgQWxidW0gTWFsJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBSZWRpZ2VyaW5ncyBBbGJ1bSBNYWxlcic7CiRsYW5nWydjb25maXJtX2VkaXRfYWxidW0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIHJlZGlnZXJlIGFsYnVtZXQuIEVuaHZlciBlbmRyaW5nIGF2IGZpcm1hIGVnZW5za2FwZW5lIHZpbCBpa2tlIGJsaSBsYWdyZXQhJzsKJGxhbmdbJ2VkaXRfYWxidW0nXSA9ICdSZWRpZ2VyIEZvdG8gQWxidW0nOwokbGFuZ1snZXJyb3JfZmllbGRkZWZfbm90Zm91bmQnXSA9ICdGZWx0IGRlZmluaXNqb24gbWVkIGlkICVkIGJsZSBpa2tlIGZ1bm5ldCc7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgZW4gR2FsbGVyaW1hbCc7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEdhbGxlcmltYWwnOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlcyddID0gJ0dhbGxlcmltYWxlcic7CiRsYW5nWydvcF9jYW5jZWxsZWQnXSA9ICdBdmJydXR0JzsKJGxhbmdbJ2FkZGVkaXRfaGllcmFyY2h5J10gPSAnTGVnZyB0aWwgZWxlbHIgcmVkaWdlciBoaWVyYXJraSBlbmhldCc7CiRsYW5nWydwdWJsaXNoJ10gPSAnUHVibGlzZXInOwokbGFuZ1snbXNnX2J1bGtkZWwnXSA9ICclZCBmaXJtYWVyIHNsZXR0ZXQnOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnSW5nZW50aW5nIHZhbGd0JzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdNZWQgdmFsZ3RlJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdEZWFrdGl2ZXInOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1ZlbGcgYWxsZSc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ0luc3RpbGxpbmdlciBlbmRyZXQnOwokbGFuZ1snZXJyb3JfYWRkcmVzc19sb29rdXAnXSA9ICdQcm9ibGVtIG1lZCAmYXJpbmc7IHNsJmFyaW5nOyBvcHAgYWRyZXNzZTogJXMnOwokbGFuZ1snZXJyX2ludmFsaWR1bml0cyddID0gJ0VuaGV0ZXIgc3Blc2lmaXNlcnQgZXIgdWd5bGRpZ2UuIEd5bGRpZ2UgdmVyZGllciBlcjogbWksbWlsZSxtaWxlcyxrbSxrJzsKJGxhbmdbJ3RpdGxlX25ld3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzJm9zbGFzaDtrZW1hbCc7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTJm9zbGFzaDtrZXNramVtYW1hbGVyJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9SZWRpZ2VyIGVuIHMmb3NsYXNoO2tlc2tqZW1hbWFsJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ1Mmb3NsYXNoO2tlc2tqZW1hbWFsJzsKJGxhbmdbJ3Byb21wdF91c2Vfb2xkc2VhcmNoJ10gPSAnQmVueXR0IGdhbW1lbCBzJm9zbGFzaDtrZWhhbmRsaW5nIChzdCZvc2xhc2g7dHRlciBpa2tlIHNwJm9zbGFzaDtycmluZyBwJmFyaW5nOyBmZWx0ZGVmaW5pc2pvbmVyLCBvZyByZXR1cm5lcmVyIGlra2Uga2F0ZWdvcmlpbmZvcm1hc2pvbiBpIHJlc3VsdGF0ZW5lKSc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ0ZsZXJ2YWxnJzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdIdmlzIGFrdGl2ZXJ0LCBrYW4gYmFyZSBhZG1pbmlzdHJhdG9yZXIgcmVkaWdlcmUgZGV0dGUgZmVsdGV0IGZvciBodmVyIG9wcGYmb3NsYXNoO3JpbmcuIERldHRlIGVyIG55dHRpZyBodmlzIHRpbGxhdHQgZnJvbnRlbmQgbGVnZ2UgdGlsL3JlZGlnZXJpbmcgYXYgZmlybWFwb3N0ZXIgZm9yICZhcmluZzsgZ2kgZmVsdCBzb20gZWllci9yZWRha3Qmb3NsYXNoO3IgaWtrZSBrYW4gcmVkaWdlcmUuJzsKJGxhbmdbJ2luZm9fdXNlcnZpZXcnXSA9ICdIdmlzIGFrdGl2ZXJ0LCBrYW4gYWxsZSBicnVrZXJlIHNlIGRldHRlIGZlbHRldCBmb3IgaHZlciBvcHBmJm9zbGFzaDtyaW5nLiBIdmlzIGRldCBlciBkZWFrdGl2ZXJ0IGJhcmUgZWllcmVuIG9nIGFkbWluaXN0cmF0b3JlciBrYW4gc2UgZmVsdGV0JzsKJGxhbmdbJ2luZm9fYWxidW1fZmllbGR0eXBlJ10gPSAnQmFyZSBldHQgYWxidW0gZmVsdHR5cGUgZXIgdGlsbGF0dC4gVGlsYWx0ZXIgb3BwbGFzdGluZyBhdiBmbGVyZSBiaWxkZXIgc29tIHNrYWwga255dHRlcyB0aWwgZW4gYmVzdGVtdCBkYXRhYmFzZSBvcHBmJm9zbGFzaDtyaW5nLiBCaWxkZXIga2FuIGJhcmUgbGFzdGVzIG9wcCB0aWwgZXQgYWxidW1mZWx0IGZvciBlbiBla3Npc3RlcmVuZGUgb3BwZiZvc2xhc2g7cmluZyAobiZhcmluZztyIGR1IHJlZGlnZXJlciBlbiBvcHBmJm9zbGFzaDtyaW5nKSBvZyBpa2tlIG4mYXJpbmc7ciBlbiBmJm9zbGFzaDtyc3Qgb3BwcmV0dGVyIGVuIG55IG9wcGYmb3NsYXNoO3JpbmcuJzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnS29vcmRpbmF0ZXInOwokbGFuZ1sndGh1bWJuYWlsJ10gPSAnTWluaWF0eXJiaWxkZSc7CiRsYW5nWydkcmFnX2Ryb3BfdXBsb2FkJ10gPSAnRHJhIGdvIHNsaXBwIG9wcGxhc3RpbmcnOwokbGFuZ1snZHJvcF9oZXJlJ10gPSAnU2xpcHAgZmlsZXIgaGVyJzsKJGxhbmdbJ2luZm9fZHJhZ19kcm9wJ10gPSAnTWVkIGRlIGZsZXN0ZSBtb2Rlcm5lIG5ldHRsZXNlcmUgKHVubnRhdHQgSUUpIGthbiBkdSBkcmEgZmxlcmUgZmlsZXIgaW5uIGkgc2xpcHBzb25lbiBoZXIuIERlIHZpbCBibGkgYXV0b21hdGlzayBsYXN0ZXQgb3BwIG9nIGxhZ3QgdGlsIGFsYnVtZXQnOwokbGFuZ1snYWxidW0nXSA9ICdBbGJ1bSAnOwokbGFuZ1snZXJyb3JfYWxidW1maWVsZGV4aXN0cyddID0gJ0V0IGFsYnVtZmVsdCBla3Npc3RlcmVyIGFsbGVyZWRlLiBLdW4gZXQgZXIgdGlsbGF0dCc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnSW5nZW4gYWRyZXNzZSBibGUgZnVubmV0IGkgb3BwZiZvc2xhc2g7cmluZ2VuJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdGZWlsJzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdBbnRhbGwgZmVpbCBmdW5uZXQnOwokbGFuZ1sncGFyYW1fcmFkaXVzJ10gPSAnQW5naSByYWRpdXMgKGkgbWlsZXMpIGZvciBldCByYWRpdXMgcyZvc2xhc2g7ay4gTSZhcmluZzsgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxhdC4gb2cgbG9uZy4gcGFyYW1ldGVyZW5lLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3Blc2lmaXNlciBzZW50ZXIgbGVuZ2RlZ3JhZGVuIGtvb3JkaW5hdGVuIGZvciBldCByYWRpdXMgcyZvc2xhc2g7aywgbSZhcmluZzsgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxhdCBvZyByYWRpdXMgcGFyYW1ldGVyZW5lLic7CiRsYW5nWydwYXJhbV9sYXQnXSA9ICdTcGVzaWZpc2VyIHNlbnRlciBicmVkZGVncmFkIGtvb3JkaW5hdGVuIGZvciBldCByYWRpdXMgcyZvc2xhc2g7aywgbSZhcmluZzsgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxvbmcgb2cgcmFkaXVzIHBhcmFtZXRlcmVuZS4nOwokbGFuZ1snaW5mb19lZGl0b3IyJ10gPSAnQnJ1ayBkZW4gbnllIGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVyZXJ0IHRpbCBzb20gZmVlZGl0Mik8L2VtPiBNZXJrOiBEZW4gZ2FtbGUgcmVkaWdlcmVyZW4gdmlsIGJsaSBmamVybmV0IGkgQ29tcGFueURpcmVjdG9yeSAxLDE1IGVsbGVyIHV0b3Zlci4nOwokbGFuZ1sncHJvbXB0X2VkaXRvcjInXSA9ICdCcnVrIG55IGZyb250ZW5kIGVkaXRvcic7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ0V0IHByb2JsZW0gb3Bwc3RvZCB2ZWQgZ2VuZXJpbmcgYXYgZW4gVVJMJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1NvcnRlcmluZ3NyZWtrZWYmb3NsYXNoO2xnZSc7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnSW5nZW4gZWdlbmRlZmluZXJ0ZSBmZWx0IGVyIGRlZmluZXJ0JzsKJGxhbmdbJ3Byb21wdF9lZGl0Y29tcGFueSddID0gJ1JlZGlnZXIgZmlybWEnOwokbGFuZ1sncHJvbXB0X2FkZGNvbXBhbnknXSA9ICdMZWdnIHRpbCBldCBueXR0IGZpcm1hJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXNhc2pvbic7CiRsYW5nWydmaWVsZHMnXSA9ICdGZWx0ZXInOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoZ3J1cHBlIG1lZCBiaWxkZXIpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2R1cGxpY2F0ZWNvbXBhbnluYW1lcyddID0gJ1RpbGxhdGUgZHVwbGlrYXRlIGZpcm1hbmF2bj8nOwokbGFuZ1sncHJvbXB0X3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnRm9yYW5zdGlsbGUgbmV0dHN0ZWRzdmVyZGllciBtZWQgaHR0cDovLyc7CiRsYW5nWydpbmZvX3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnSHZpcyBlbiBuZXR0c2lkZSB2ZXJkaSBlciBzcGVzaWZpc2VydCwgb2cgaWtrZSBiZWd5bm5lciBtZWQgZW4gdXJscHJlZml4IChodHRwLCBodHRwcywgZnRwKSAuLiBkYSB2aWwgaHR0cDovLyBzZXR0ZXMgaW5uIGZvcmFuIHZlcmRpZW4gdmVkIGxhZ3JpbmcnOwokbGFuZ1snZXJyb3Jfbm9vd25lciddID0gJ093bmVyIGlkIGVyIGlra2Ugc2F0dCBlbGxlciB1Z3lsZGlnJzsKJGxhbmdbJ3Byb21wdF9leHRlbnNpb25zJ10gPSAnR3lsZGluZ2UgZmlsZW5kZWxzZXInOwokbGFuZ1snaW5mb19leHRlbnNpb25zJ10gPSAnR2kgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBvdmVyIGZpbHR5cGVyIChzbSZhcmluZzsgZWxsZXIgc3RvcmUgYm9rc3RhdmVyKS4gSHZpcyBpa2tlIGFuZ2l0dCwgdmlsIHN0YW5kYXJkdmVyZGllciBpIENHRXh0ZW5zaW9ucyBicnVrZXMuJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdMZWdnIHRpbC9SZWRpZ2VyIGZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2ZpZWxkX2ZpbGUnXSA9ICdGaWwnOwokbGFuZ1snaW51c2UnXSA9ICdpIGJydWsnOwokbGFuZ1snaW5mb19maWx0ZXJfaGllcmFyY2h5J10gPSAnQW5naSBlbiBoaWVyYXJraXN0cmVuZyAoZWxsZXIgZW4gZGVsKSAmYXJpbmc7IHMmb3NsYXNoO2tlIHAmYXJpbmc7LiBKb2tlcnRlZ24gZXIgdGlsbGF0dCwgb2cga2FuIG9tZmF0dGUgYmFybiBoaWVyYXJraWVyLiBmLmVrcy46ICZxdW90O0JpbGVyKiZxdW90Oy4gRGV0dGUgZmVsdGV0IGVyIGlra2UgZiZvc2xhc2g7bHNvbXQgZm9yIHN0b3JlIG9nIHNtJmFyaW5nOyBib2tzdGF2ZXInOwokbGFuZ1snaW5mb19maWx0ZXJfYWRkcmVzcyddID0gJ1NwZXNpZmlzZXJlIGVuIGFkcmVzc2VzdHJlbmcgJmFyaW5nOyBzJm9zbGFzaDtrZSBwJmFyaW5nOy4gSm9rZXJ0ZWduIGVyIHRpbGxhdHQuIGYuZWtzLjogJnF1b3Q7KlRleGFzKiZxdW90Oy4gRGV0dGUgZmVsdGV0IGVyIGlra2UgZiZvc2xhc2g7bHNvbXQgZm9yIHN0b3JlIG9nIHNtJmFyaW5nOyBib2tzdGF2ZXInOwokbGFuZ1snaW5mb19maWx0ZXJfbmFtZSddID0gJ1NwZXNpZmlzZXJlIGV0IGZpcm1hbmF2biAoZWxsZXIgZGVsdmlzIGZpcm1hbmF2biAmYXJpbmc7IHMmb3NsYXNoO2tlIHAmYXJpbmc7LiBKb2tlcnRlZ24gZXIgdGlsbGF0dCBmLmVrcy46Li4gJnF1b3Q7KnJlc3RhcmF1bnQmcXVvdDsgRGV0dGUgZmVsdGV0IGVyIGlra2UgZiZvc2xhc2g7bHNvbXQgZm9yIHN0b3JlIG9nIHNtJmFyaW5nOyBib2tzdGF2ZXInOwokbGFuZ1snZXJyb3Jfbm9maWx0ZXJtYXRjaGVzJ10gPSAnSW5nZW4gZGF0YWJhc2Ugb3BwZiZvc2xhc2g7cmluZ2VyIG1hdGNoZXQga3JpdGVyaWVuZSBzb20gZXIgc3Blc2lmaXNlcnQnOwokbGFuZ1snZXJyb3Jfbm9jb21wYW5pZXNtYXRjaCddID0gJ0Jla2xhZ2VyLCBpbmdlbiBmaXJtYWVyIHBhc3NldCBkaW5lIGtyaXRlcmllci4nOwokbGFuZ1snZWRpdF9maWx0ZXInXSA9ICdSZWRpZ2VyIGZpbHRlcic7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0ZXIgZXR0ZXInOwokbGFuZ1sncGFnZWxpbWl0J10gPSAnRW5oZXRlciBwZXIgc2lkZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXIgJzsKJGxhbmdbJ3Jlc2V0J10gPSAnTnVsbHN0aWxsJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0dqZWxkZXIgYmFyZSB0aWwgPGVtPnN0YW5kYXJkPC9lbT4gb3Bwc3VtbWVyaW5nIHZpc25pbmcsIG9nIGJhcmUgbiZhcmluZztyIDxlbT5rYXRlZ29yaTwvZW0+IHBhcmFtZXRlcmVuIG9ncyZhcmluZzsgZXIgb3BwZ2l0dC4gRGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgJmFyaW5nOyBzcGVzaWZpc2VyZSBldCBla3N0cmEgQU5kIHV0dHJ5a2sgZm9yICZhcmluZzsgaW5kaWtlcmUgeXR0ZXJsaWdlcmUgKGtvbW1hc2VwYXJlcnQpIGthdGVnb3JpZXIgc29tIHJlc3VsdGF0ZXQgYiZvc2xhc2g7ciB2JmFlbGlnO3JlIGV0IG1lZGxlbSBhdi4gRHZzLjoge0NvbXBhbnlEaXJlY3Rvcnkga2F0ZWdvcnk9JiMwMzk7cmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aCYjMDM5OyBDYXRlZ29yeTI9JiMwMzk7YmlsZXIsIGxhc3RlYmlsZXImIzAzOTt9IHZpbCByZXR1cm5lcmUgYmFyZSBkZSBmaXJtYWVuZSBzb20gdmFyIGkgZW50ZW4gcmVnaW9uIG5vcmQgZWxsZXIgcmVnaW9uIHMmb3NsYXNoO3Iga2F0ZWdvcmllbmUgT0cgT0dTJkFyaW5nOyBpIGVudGVuIGJpbGVyIGVsbGVyIGxhc3RlYmlsZXIga2F0ZWdvcmllbmUnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkzJ10gPSAnR2plbGRlciBiYXJlIGZvciA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmcgdmlzbmluZywgb2cgYmFyZSBuJmFyaW5nO3IgPGVtPkNhdGVnb3J5MjwvZW0+IHBhcmFtZXRlciBvZ3MmYXJpbmc7IGVyIGxldmVydC4gRGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgJmFyaW5nOyBzcGVzaWZpc2VyZSBlbmRhIGVuIGVrc3RyYSBBTkQgdXR0cnlrayBmb3IgJmFyaW5nOyBpbmRpa2VyZSB5dHRlcmxpZ2VyZSAoa29tbWFzZXBhcmVydGUpIGthdGVnb3JpZXIgc29tIHJlc3VsdGF0ZXQgc2thbCB2JmFlbGlnO3JlIG1lZGxlbSBhdi4gU2UgaGplbHBlbiBmb3IgQ2F0ZWdvcnkyIHBhcmFtZXRlciBmb3IgbWVyIGluZm9ybWFzam9uJzsKJGxhbmdbJ2JhZG5hbWVnaXZlbiddID0gJ05hdm5ldCBlciB1Z3lsZGlnICh2YW5saWd2aXMgYiZvc2xhc2g7ciBuYXZuZW5lIHYmYWVsaWc7cmUgdXJsIHZlbm5saWdlKSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnTiZhcmluZzt2JmFlbGlnO3JlbmRlIHZlcmRpJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kbGlzdHRlbXBsYXRlJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+ZnJvbnRlbmRsaXN0PC9lbT4gaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBhdCBkdSBhbmdpciBlbiBpa2tlLXN0YW5kYXJkIGZyb250ZW5kIGxpc3RlIG1hbCBzb20gc2thbCBicnVrZXMgZm9yICZhcmluZzsgZ2plbmdpIHV0ZGF0YSc7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnR2plbGRlciB0aWwgPGVtPnMmb3NsYXNoO2s8L2VtPiBoYW5kbGluZ2VuLCBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciAmYXJpbmc7IHNwZXNpZmlzZXJlIGh2aWxrZW4gc2lkZSBzb20gc2thbCBicnVrZXMgZm9yICZhcmluZzsgdmlzZSBzYW1zdmFyZW5kZSByZXN1bHRhdGVyLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnR2plbGRlciBiYXJlIHRpbCBzdGFuZGFyZCA8ZW0+KHN1bW1hcnkpPC9lbT4gaGFuZGxpbmdlbiwgZGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgZmlsdHJlcmluZyBhdiBmaXJtYWVyIGV0dGVyIGRlcmVzIG5hdm4uIEpva2VydGVnbiBlciB0aWxsYXR0LiBmLmVrcy46IG5hbWU9JnF1b3Q7YSomcXVvdDsuIEkgdGlsbGVnZyBrYW4gcmVndWwmYWVsaWc7cmUgdXR0cnlrayBhbmdpcyB2ZWQgJmFyaW5nOyBwcmVmaWtzZSB2ZXJkaWVuIG1lZCA6Oi4gZi5la3MuOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90Oyc7CiRsYW5nWydwYXJhbV9ub3ByZXR0eSddID0gJ0dqZWxkZXIgYWxsZSB2aXNuaW5nZXIgKG1lbiBmb3J0c2F0dCBpIHRpZGxpZyB1dHZpa2xpbmcpIGRlbm5lIHBhcmFtZXRlcmVuIHZpbCBzbCZhcmluZzsgYXYgdmFra2VyIHVybCBnZW5lcmVyaW5nJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZSddID0gJ0dlbmVyZXIgZmVpbCAobWVuIGZvcnRzZXR0KSc7CiRsYW5nWydlcnJvcl91cGRhdGVfY29tcGFueSddID0gJ0VuIGZlaWwgb3Bwc3RvZCB2ZWQgb3BwZGF0ZXJpbmcgYXYgZmlybWFwb3N0ZW4nOwokbGFuZ1snaWdub3JlJ10gPSAnSWdub3Jlcic7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdPdmVyc2tyaXYnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnS2F0ZWdvcmkgc2xldHRldCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ09wcHJldHQgVVJMZXIgZm9yIHBvc3RlciBzb20gaWtrZSBoYXIgVVJMZXInOwokbGFuZ1snaW5mb19jcmVhdGVfdXJsJ10gPSAnSHZpcyBpbmdlbiBVUkwgZXIgYW5naXR0IGZvciBlbiBwb3N0LCB2aWwgZGV0dGUgYWx0ZXJuYXRpdmV0IHNpa3JlIGF0IGRlIGJsaXIgZ2VuZXJlcnQuIEh2aXMgJnF1b3Q7S3JldiBVUkxlciZxdW90Oy1pbm5zdGlsbGluZ2VuIGVyIHNhdHQsIHZpbCBVUkxlciBzaWtyZXMgdWF2aGVuZ2lnIGF2IGRlbm5lIGlubnN0aWxsaW5nZW4nOwokbGFuZ1sndXJsX2NyZWF0ZW9uY29weSddID0gJ09wcHJldHQgVVJMZXIgdmVkIGtvcGllcmluZyc7CiRsYW5nWydpbmZvX3VybF9jcmVhdGVvbmNvcHknXSA9ICdOJmFyaW5nO3IgZHUga29waWVyZXIgZmlybWFlciwgYiZvc2xhc2g7ciBlbiBuZXR0YWRyZXNzZSBvcHByZXR0ZXMgZm9yIGRlc3RpbmFzam9uZW5zIHBvc3Rlbi4gRGV0dGUgZ2plbGRlciBiYXJlIGh2aXMgVVJMZXIgaWtrZSBlciBwJmFyaW5nO2tyZXZkLic7CiRsYW5nWydlcnJvcl9iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBvcHByZXR0ZWxzZSBvcHBkYWdldCAlZCBmZWlsJzsKJGxhbmdbJ2luZm9fYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgb3BwcmV0dGVsc2Ugb3BwZGF0ZXJ0ZSAlZCBwb3N0ZXInOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1VSTC1hZHJlc3NlbiBhbmdpdHQgKGVsbGVyIGthbGt1bGVydCkgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkbmFtZSddID0gJ0Zpcm1hbmF2bmV0IGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfdXJsbm90ZW1wdHknXSA9ICdVUkwtZmVsdGV0IGVyIGlra2UgdG9tdCAuLi4ga2FuIGlra2Ugb3ZlcnNrcml2ZSBlbiBla3Npc3RlcmVuZGUgdmVyZGknOwokbGFuZ1snZXJyb3JfdXJscmVxdWlyZWQnXSA9ICdFbiBVUkwgZXIgcCZhcmluZztrcmV2ZCc7CiRsYW5nWydnZXR1cmwnXSA9ICdLYWxrdWxlciBVUkwnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnRW4gVVJMIGVyIHAmYXJpbmc7a3JldmQnOwokbGFuZ1snaW5mb191cmxfcmVxdWlyZWQnXSA9ICdTa2FsIFVSTCBmZWx0ZXQgdiZhZWxpZztyZSBwJmFyaW5nO2tyZXZkICZhcmluZzsgdiZhZWxpZztyZSBneWxkaWcgbiZhcmluZztyIGVuIGxlZ2dlciB0aWwgZWxsZXIgcmVkaWdlcmVyIGV0IGZpcm1hPyc7CiRsYW5nWydjaGVjayddID0gJ1Rlc3QnOwokbGFuZ1sndXJsJ10gPSAnVVJMICc7CiRsYW5nWydjcmVhdGV1cmxzJ10gPSAnT3BwcmV0dCBVUkxlcic7CiRsYW5nWydjb25maXJtX2F1dG9jcmVhdGVfdXJsJ10gPSAnT3BwcmV0dCBhdXRvbWF0aXNrIFVSTGVyIGZvciBla3Npc3RlcmVuZGUgcG9zdGVyIHNvbSBpa2tlIGhhciBVUkwnOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnR2omb3NsYXNoO3IgMzAxIFJlZGlyZWN0IHRpbCBueWUgVVJMZXInOwokbGFuZ1snaW5mb191cmxfcmVkaXJlY3RvbGQnXSA9ICdQJmFyaW5nOyBlbiBpbm5rb21tZW5kZSBmb3Jlc3Amb3NsYXNoO3JzZWwgZm9yIGV0IGZpcm1hIG1lZCBkZSBnYW1sZSBuZXR0YWRyZXNzZW0mb3NsYXNoO25zdHJlLCB1dGYmb3NsYXNoO3IgZW4gMzAxLXZpZGVyZWtvYmxpbmcgdGlsIGRlbiBueWUgbmV0dGFkcmVzc2VuLiBEZXR0ZSB2aWwgYmFyZSBmdW5nZXJlIGZvciBvcHBmJm9zbGFzaDtyaW5nZXIgc29tIGhhciBVUkwgb3BwcmV0dGV0Lic7CiRsYW5nWydpbmZvX3VybF9hdXRvY3JlYXRlJ10gPSAnTiZhcmluZztyIGR1IGxlZ2dlciB0aWwgZWxsZXIgcmVkaWdlcmVyIGVuIGZpcm1hIGRlZmluaXNqb24sIGh2aXMgVVJMLWZlbHRldCBlciBibGFua3QgdmlsIGRldHRlIGJsaSBvcHByZXR0ZXQgYXV0b21hdGlzayBmcmEgc2Vsc2thcGV0cyBuYXZuLiBEZXR0ZSBnamVsZGVyIGlra2UgZnJvbnRlbmQgcmVkaWdlcmluZyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0F1dG9tYXRpc2sgb3BwcmV0dGUgdW5pa2UgVVJMZXInOwokbGFuZ1sndXJscyddID0gJ1VSTGVyJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGFkZHJlc3MnXSA9ICdOJmFyaW5nO3IgZHUgZ2omb3NsYXNoO3IgZXQgcG9zdG51bW1lciBzJm9zbGFzaDtrIHZlZCBoamVscCBhdiBzJm9zbGFzaDtrIGhhbmRsaW5nZW4sIGh2aXMgZGV0dGUgYWx0ZXJuYXRpdmV0IGVyIGFrdGl2ZXJ0LCB2aWwgZGV0IG9ncyZhcmluZzsgcyZvc2xhc2g7a2VzIGkgYWRyZXNzZWZlbHRldCBldHRlciBkZW4gbWF0Y2hlbmRlIHN0cmVuZ2VuJzsKJGxhbmdbJ3BhcmFtX3Bvc3RhbGNoYXJzJ10gPSAnTiZhcmluZztyIGR1IGdqJm9zbGFzaDtyIGV0IHBvc3RudW1tZXIgcyZvc2xhc2g7ayB2ZWQgaGplbHAgYXYgcyZvc2xhc2g7ayBoYW5kbGluZ2VuLCBsYXIgZGV0dGUgYWx0ZXJuYXRpdmV0IGJlZ3JlbnNlIGRldCBlZmZla3RpdmUgYW50YWxsIHRlZ24gcCZhcmluZzsgcG9zdG51bW1lcmV0JzsKJGxhbmdbJ2xhYmVsX2luY2x1ZGVjaGlsZHJlbiddID0gJ0lua2x1ZGVyIGJhcm4gSGllcmFya2llcic7CiRsYW5nWydhbnknXSA9ICdBbGxlJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnljb2x1bW4nXSA9ICdBbmdpIG5hdm5ldCBwJmFyaW5nOyBlbiBrb2xvbm5lIHNvbSBhbmdpciAmZWFjdXRlO24gZWxsZXIgZmxlcmUga2F0ZWdvcmluYXZuIChhdHNraWx0IG1lZCBldCBrb21tYSA8ZW0+KCwpPC9lbT4gc29tIGthbiBicnVrZXMgdGlsICZhcmluZzsgcmFza3QgZnlsbGUga2F0ZWdvcmllbmUgZm9yIGh2ZXIgcG9zdC4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5Y29sdW1uJ10gPSAnS2F0ZWdvcmkga29sb25uZSc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWNvbHVtbl9ub3Rmb3VuZCddID0gJ0thdGVnb3JpIGtvbG9ubmUgJXMgaWtrZSBmdW5uZXQnOwokbGFuZ1snZXhwaXJlcyddID0gJ1V0bCZvc2xhc2g7cGVyJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdUaWxiYWtlc3RpbGwgdGlsIHN0YW5kYXJkaW5uc3RpbGxpbmdlbmUnOwokbGFuZ1sncHJvbXB0X2VtYWlsX2lzaHRtbCddID0gJ0UtcG9zdCBlciBIVE1MLWZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0UtcG9zdCBlbW5lJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtcG9zdCBtYWwnOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdFLXBvc3QgbWFsJzsKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnRW4gZW5kcmluZyBoYXIgZnVubmV0IHN0ZWQgZm9yIGVuIENvbXBhbnlEaXJlY3RvcnkgcG9zdCc7CiRsYW5nWydwcm9tcHRfZmV1X2RlbGV0ZSddID0gJ1RpbGxhdCBmb3JzaWRlYnJ1a2VyZShGcm9udGVuZCBVc2VycykgJmFyaW5nOyBzbGV0dGUgcG9zdGVyJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ0FkbWluaXN0cmFzam9uc2dydXBwZSBzb20gc2thbCBtb3R0YSB2YXJzbGluZyBlLXBvc3Rlcj8nOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uYWRkJ10gPSAnU2VuZCBlbiBlLXBvc3QgbiZhcmluZztyIGVuIGZyb250ZW5kYnJ1a2VyIGxlZ2dlciB0aWwgZW4gbnkgZmlybXBvc3QoQ29tcGFueURpcmVjdG9yeSknOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1NlbmQgZW4gZS1wb3N0IG4mYXJpbmc7ciBlbiBmcm9udGVuZGJydWtlciBlbmRyZXIgZW4gZWtzaXN0ZXJlbmRlIGZpcm1wb3N0KENvbXBhbnlEaXJlY3RvcnkpIHBvc3QnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZ3JvdXAnXSA9ICdBZG1pbmdydXBwZSAmYXJpbmc7IHNlbmRlIGUtcG9zdCB0aWwnOwokbGFuZ1sncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgdmlzbmluZ3Npbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb21wdF9mcm9udGVuZF9zaG93ZXhwaXJlZCddID0gJ1ZpcyBwb3N0ZXIgc29tIGVyIGVpZXQgYXYgdXRsJm9zbGFzaDtwdGUgRnJvbnRlbmQgYnJ1a2VyZSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ0JpbGRlJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0Vrc3RyYWRhdGEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFa3N0cmFkYXRhIDInOwokbGFuZ1snZXh0cmEzJ10gPSAnRWtzdHJhZGF0YSAzJzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnVGlsYmFrZSc7CiRsYW5nWydtc2dfY29tcGFueWNvcGllZCddID0gJ0Zpcm1hIGtvcGllcnQuLi4gdmVubmxpZ3N0IHJlZGlnZXIgZGV0YWxqZW5lIGZvciBkZW4gbnllIGZpcm1hb3BwZiZvc2xhc2g7cmluZ2VuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpZXInOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFbiBtb2R1bCBhdiBrYXRhbG9ndHlwZW4gZm9yIGJlZHJpZnRlci4gVGlsYWx0ZXIgJmFyaW5nOyBsZWdnZSB0aWwvcmVkaWdlcmUvaW1wb3J0ZXJlL2Vrc3BvcnRlcmUgYmVkcmlmdHNkZWZpbmlzam9uZXIsIG9nIGZvcnNramVsbGlnZSBtJmFyaW5nO3RlciAmYXJpbmc7IHZpc2UgYmVkcmZzb3BwZiZvc2xhc2g7cmluZ2VuZSBpbmtsdWRlcnQgcyZvc2xhc2g7ay4gRGVubmUgbW9kdWxlbiBpbnRlZ3JlcmVyIHNlZyBnb2R0IG1lZCBDR0dvb2dsZU1hcHMgbW9kdWxlbi4nOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0ltcG9ydCBvcGVyYXNqb24gdmVsbHlra2V0JzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmtpcG9zaXNqb25lciBvcHByZXR0ZXQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnSW1wb3J0IGhpZXJhcmtpcG9zdGVyJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5dmFscyddID0gJ0ltcG9ydCBoaWVyYXJraXZlcmRpZXInOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0ZlaWwgdmVkIG9wcHJldHRlbHNlIGF2IGhpZXJhcmtpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9oaWVyYXJjaHknXSA9ICdIaWVyYXJraSBtZWQgZnVsbHQgbmF2biAmcXVvdDslcyZxdW90OyBla3Npc3RlcmVyIGFsbGVyZWRlLic7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Zpcm1hIHNsZXR0ZXQnOwokbGFuZ1snZXJyb3JfdXBsb2FkJ10gPSAnRmlsb3BwbGFzdGluZyBmZWlsZXQnOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnRHUgbSZhcmluZzsgc3Blc2lmaXNlcmUgZXQgZmVsdHNraWxsZXRlZ24nOwokbGFuZ1snZXJyb3Jfbm9zcG90c2xlZnQnXSA9ICdEdSBoYXIgaW5nZW4gZ2plbnYmYWVsaWc7cmVuZGUgZmlybWEtJmFyaW5nO3BuaW5nZXInOwokbGFuZ1snbXNnX3Nsb3RzdXNlZCddID0gJ0R1IGFociBiZW55dHRldCAlZCBhdiAlZCBmaXJtYS0mYXJpbmc7cG5pbmdlcic7CiRsYW5nWydpbXBvcnRfZmlsZW5hbWUnXSA9ICdWZWxnIENTVi1maWwnOwokbGFuZ1snZGVsaW1pdGVyJ10gPSAnRmVsdHNraWxsZXRlZ24nOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnRGV0IGVyIG11bGlnICZhcmluZzsgaW1wb3J0ZXJlIGZpcm1haW5mb3JtYXNqb24gZGlyZWt0ZSBmcmEgZW4gQVNDSUktZmlsLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnRGVubmUgbWFsZW4gYmVza3JpdmVyIGV0IHNramVtYSBzb20gYnJ1a2VzIGZvciAmYXJpbmc7IHRpbGxhdGUgYXV0b3Jpc2VydGUgZnJvbnRlbmQgYnJ1a2VyZSAmYXJpbmc7IGltcG9ydGVyZSBkYXRhIGZyYSBlbiByaWt0aWcgZm9ybWF0ZXJ0IENTVi1maWwnOwokbGFuZ1snZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZSddID0gJ0Zyb250ZW5kIENTViBpbXBvcnRtYWwnOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdUaWxsYXQgRnJvbnRlbmRVc2VycyAmYXJpbmc7IGltcG9ydGVyZSBwb3N0ZXIgZnJhIENTVj8nOwokbGFuZ1sncGFyYW1faGllcmxpc3R0ZW1wbGF0ZSddID0gJ1NwZXNpZmlzZXIgZW4gbWFsIChldHRlciBuYXZuKSAmYXJpbmc7IGJlbnl0dGUgbiZhcmluZztyIGVuIGhpZXJhcmtpbGlzdGUgc2thbCB2aXNlcyc7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGhpZXJhcmtpbGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfaGllcmxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgaGllcmFya2lsaXN0ZW1hbCc7CiRsYW5nWydoaWVyYXJjaHlsaXN0dGVtcGxhdGVzJ10gPSAnSGllcmFya2lsaXN0ZW1hbGVyJzsKJGxhbmdbJ3BhcmFtX2hpZXInXSA9ICdHamVsZGVyIHRpbCA8ZW0+ZGVmYXVsdDwvZW0+LCA8ZW0+c2VhcmNoPC9lbT4sIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPixvZyA8ZW0+aGllcmxpc3Q8L2VtPiBoYW5kbGluZ2VuZS4gRGVubmUgcGFyYW1ldGVyZW4ga2FuIGFuZ2kgZXQgaGllcmFya2luYXZuIHAmYXJpbmc7IHNlbHNrYXBlciBzb20gc2thbCB2aXNlcy4gSSBkZWZhdWx0IG9nIHNlYXJjaCBoYW5kbGluZ2VuZSBlciBKb2tlcmUgYWtzZXB0ZXJ0LCBkdnM6ICZxdW90Oyogc29tZWhpZXJhcmNoeW5hbWUgKiZxdW90Oy4gSHZpcyBkZW5uZSBwYXJhbWV0ZXJlbiBlciBhbmdpdHQgdGlsIHNlYXJjaCBoYW5kbGluZ2VuLCBkYSB2aWwgaGllcmFya2kgdmFsZ3QgaSBzJm9zbGFzaDtrZXNramVtYWV0IHZpbCBibGkgaWdub3JlcnQuIE1lbiBpIGhpZXJsaXN0IGhhbmRsaW5nLCBtJmFyaW5nOyBkZW5uZSBwYXJhbWV0ZXJlbiBpbm5laG9sZGVyIGRldCB1bmlrZSBuYXZuZXQgcCZhcmluZzsgZXQgaGllcmFya2kgcG9zaXNqb24sIG9nIHZpbCBzcGVzaWZpc2VyZSBzdGFydHBvc2lzam9uZW4gaSBoaWVyYXJraSB2aXNuaW5nZW4uJzsKJGxhbmdbJ3BhcmFtX2hpZXJfY2hpbGRyZW4nXSA9ICdHamVsZGVyIHRpbCA8ZW0+c3RhbmRhcmQ8L2VtPiBoYW5kbGluZ2VuLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIHRpbGxhdGVyICZhcmluZzsgYW5naSBlbiBib29sZWFuICgwIGVsbGVyIDEpIHZlcmRpIHNvbSBpbmRpa2VyZXIgb20gYmFybiBoaWVyYXJraWVyIGImb3NsYXNoO3IgaW5rbHVkZXJlcyB2ZWQgZ2VuZXJlcmluZyBhdiBlbiBzYW1tZW5kcmFnc3Zpc25pbmcgZm9yIGV0IGJlc3RlbXQgaGllcmFya2knOwokbGFuZ1snbXNnX2hpZXJkZWxldGVkJ10gPSAnSGllcmFya2lwb3Npc2pvbiBzbGV0dGV0JzsKJGxhbmdbJ21zZ19oaWVydXBkYXRlZCddID0gJ0hpZXJhcmtpcG9zaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ21zZ19oaWVyYWRkZWQnXSA9ICdIaWVyYXJraXBvc2lzam9uIGxhZ3QgdGlsJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdMZWdnIHRpbCBoaWVyYXJraSc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJraSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0xlZ2cgdGlsL3JlZGlnZXIga2F0ZWdvcmknOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnSW5uc3RpbGxpbmdlcic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTWFsZXInOwokbGFuZ1snbm9uZSddID0gJ0luZ2VuJzsKJGxhbmdbJ293bmVyJ10gPSAnRWllcic7CiRsYW5nWydjcmVhdGVkJ10gPSAnT3BwcmV0dGV0JzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnRW5kcmV0JzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbCBlbGxlciByZWRpZ2VyIGVuIEZyb250ZW5kIExpc3RlbWFsJzsKJGxhbmdbJ3Byb21wdF9mZXVfY2hhbmdlX3N0YXR1cyddID0gJ0thbiBmcm9udGVuZC1icnVrZXJlIGVuZHJlIGV0IGZpcm1hcyBzdGF0dXM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbmV3X3N0YXR1cyddID0gJ1N0YW5kYXJkIHN0YXR1cyBmb3IgbnllIHBvc3RlciBvcHByZXR0ZXQgZnJhIGZyb250ZW5kZW4nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEZyb250ZW5kIExpc3RlbWFsJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIExpc3RlbWFsZXInOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmVsbGUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBSZWRpZ2VyaW5nc2lubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdLYW4gRnJvbnRFbmRVc2VycyBvcHByZXR0ZSBueWUgcG9zdGVyPyc7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYWtzaW11bSBhbnRhbGwgcHNvdGVyIHNvbSBrYW4gYXNzb3NpZXJlcyBtZWQgZW4gRkVVLWtvbnRvJzsKJGxhbmdbJ3Byb21wdF9udW1pbXBvcnRlZCddID0gJ0FudGFsbCBpbXBvcnRlcnRlIHBvc3Rlcic7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlX25hbWUnXSA9ICdUZXN0IGZvciBkdXBsaWthdGUgZmlybWFuYXZuJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVydCBwb3N0JzsKJGxhbmdbJ3Byb21wdF9pZ25vcmVfYWRkcmVzcyddID0gJ0lnbm9yZXIgYWRyZXNzZWZlbHQnOwokbGFuZ1sncHJvbXB0X2NvbnZlcnRfYWRkcmVzcyddID0gJ0tvbnZlcnRlciBhZHJlc3NlciB0aWwga29vcmRpbmF0ZXIgKG9tIGluZ2VuIGtvb3JkaW5hdGVyIGVyIHRpbHN0ZWRlKSc7CiRsYW5nWydwcm9tcHRfa21sZmlsZSddID0gJ0tNTC1maWwgJmFyaW5nOyBpbXBvcnRlcmUnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0ZXIgS01MJzsKJGxhbmdbJ2ltcG9ydF9rbWwnXSA9ICdJbXBvcnRlciBLTUwtZmlsJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnRm9yICZhcmluZzsgYmVueXR0ZSBkZW5uZSBmdW5rc2pvbmVuIG0mYXJpbmc7IGR1IHYmYWVsaWc7cmUgaW5ubG9nZ2V0IHAmYXJpbmc7IG5ldHRzdGVkZXRzIGZyb250ZW5kJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2JzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdMZWdnIHRpbCBsZW5rZSc7CiRsYW5nWydhZGRyZXNzJ10gPSAnQWRyZXNzZSc7CiRsYW5nWydhZGRyZXNzdGV4dCddID0gJ0FkcmVzc2UnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMZWdnIHRpbCBrYXRlZ29yaSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnTGVnZyB0aWwgRmlybWEnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdMZWdnIHRpbCBmZWx0ZGVmaW5pc2pvbic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU3lubGlnIGt1biBmb3IgQWRtaW4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgc2xldHRlIGRldHRlPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnZW5kZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBdmJyeXQnOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICdLYW4gZm9ybnRlbmRicnVrZXJlIHJlZGlnZXJlIGRldHRlIGZlbHRldD8nOwokbGFuZ1snY2FudXNlcnZpZXcnXSA9ICdLYW4gZm9ybnRlbmRicnVrZXJlIHNlIGRldHRlIGZlbHRldD8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllcic7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmkgbGFndCB0aWwnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGthdGVnb3JpIExpc3RlbWFsJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUgbWFsJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0thdGVnb3JpbGlzdGUgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdGaXJtYSBsYWd0IHRpbCc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0Zpcm1hbmF2bic7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Zpcm1hIG9wcGRhdGVydCc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0Zpcm1hJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICdGaXJtYWthdGFsb2cnOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnS29udGFrdC1lcG9zdCc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0RhdG8gb3BwcmV0dGV0JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZCBtYWwnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk1lcms6PC9zdHJvbmc+IElubmhvbGRldCBpIGRpc3NlIHRla3N0b21yJmFyaW5nO2RlbmUgYmVueXR0ZXMgZm9yICZhcmluZzsgYmVzdGVtbWUgc3RhbmRhcmQgaW5uaG9sZCBpIG1hbGVuZSBuJmFyaW5nO3IgZHUga2xpa2tlciAmcXVvdDtMZWdnIHRpbCBtYWwmcXVvdDsgaSBkZW4gYWt0dWVsbGUgbWFsIGZsaWtlbi4gUmVkaWdlcmluZyBhdiBlbiBhdiBkaXNzZSB0ZWtzdG9tciZhcmluZztkZW5lIHZpbCBpa2tlIGhhIG5vZW4gdW1pZGRlbGJhciBlZmZla3QgcCZhcmluZzsgZGluIG5ldHRzaWRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0dCc7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ1NsZXR0IGthdGVnb3JpJzsKJGxhbmdbJ2RlbGV0ZWNvbXBhbnknXSA9ICdTbGV0dCBmaXJtYSc7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ1NsZXR0IGZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdTeW5rZW5kZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZlbHNlJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGplcic7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGRldGFsam1hbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGptYWxlcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEZXRhbGptYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnSW5ha3RpdmVydCc7CiRsYW5nWydkb3duJ10gPSAnTmVkJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGQnOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnZXInOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnUkVkaWdlciBrYXRlZ29yaSc7CiRsYW5nWydlZGl0Y29tcGFueSddID0gJ1JlZGlnZXIgZmlybWEnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnUmVkaWdlciBmZWx0ZGVmaW5pc2pvbic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFcG9zdCc7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdFdCBwcm9ibGVtIG9wcHN0b2QgbWVkIGRlbiBvcHBsYXN0ZWRlIGZpbGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRmlybWFuYXZuZXQgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0V0IGZpcm1hIG1lZCBkZXQgbmF2bmV0IGZpbm5lcyBhbGxlcmVkZSBpIGRhdGFiYXNlbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknXSA9ICdFbiBrYXRlZ29yaSBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55J10gPSAnRXQgZmlybWEgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdFdCBmZWx0IG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdVZ3lsZGlnIHBvc3QgZnVubmV0IHAmYXJpbmc7IGxpbmplICVkLiBFciBkZXQgZW4gcmVnZWwgc29tIG1hbmdsZXI/JzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9iYWR2YWx1ZSddID0gJ0VuIHVneWxkaWcgcmVnZWwgYmxlIGZ1bm5ldCBmb3IgZW4gYXYgZmVsdGVuZSc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1cGxpa2F0ZSAlcyByZWdsZXIgcCZhcmluZzsgbGluamUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpa2F0ZSByZWdlbGlkZW50aWZpa2F0b3JlciBwJmFyaW5nOyBsaW5qZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0ZvcnN0JmFyaW5nO3IgaWtrZSBodm9yZGFuIGxpbmplICVkIG1lZCByZWdlbGlkZW50aWZpa2F0b3JlbiAlcyBza2FsIGJlaGFuZGxlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdVa2plbnQgcmVnZWwgcCZhcmluZzsgbGluamUgJWQnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2NhdGVnb3J5J10gPSAnRW4gZGF0YWJhc2VmZWlsIG9wcHN0b2QgdW5kZXIgZm9ycyZvc2xhc2g7ayBwJmFyaW5nOyAmYXJpbmc7IHNldHRlIGlubiBrYXRlZ29yaWRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0VuIGRhdGFiYXNlZmVpbCBvcHBzdG9kIHVuZGVyIGZvcnMmb3NsYXNoO2sgcCZhcmluZzsgJmFyaW5nOyBzZXR0ZSBpbm4gZmlybWFkZWZpbmlzam9uZW4nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2ZpZWxkZGVmJ10gPSAnRW4gZGF0YWJhc2VmZWlsIG9wcHN0b2QgdW5kZXIgZm9ycyZvc2xhc2g7ayBwJmFyaW5nOyAmYXJpbmc7IHNldHRlIGlubiBmZWx0ZGVmaW5pc2pvbmVuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcGFyYW0nXSA9ICdWZXJkaWVuIHNwZXNpZmlzZXJ0IGZvciAlcyBlciB1Z3lsZGlnJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdJbmdlbiBmaWwgYmxlIGxhc3RldCBvcHAnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnRW4gcCZhcmluZztrcmV2ZCBwYXJhbWV0ZXIgbWFuZ2xldCBmcmEgc2tqZW1hdXRmeWxsaW5nZW4nOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdJbmdlbiBuZWR0cmVra3NvcHNqb25lciBlciBvcHBnaXR0JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS3VubmUgaWtrZSBmaW5uZSBGcm9udEVuZFVzZXItbW9kdWxlbic7CiRsYW5nWydlcnJvcl9ub2xlbmd0aCddID0gJ0luZ2VuIG1ha3NpbWFsbGVuZ2RlIGZvciBmZWx0IG9wcGdpdHQnOwokbGFuZ1snZXJyb3Jfbm9yZXN1bHRzZm91bmQnXSA9ICdJbmdlbiBwb3N0ZXIgc29tIHNhbXN2YXJ0ZSBtZWQga3JpdGVyaWVuZSBkaW5lIGJsZSBmdW5uZXQgaSBkYXRhYmFzZW4nOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnS3VubmUgaWtrZSBmaW5uZSBub2VuIGRhdGEgZm9yIHBvc3RudW1tZXIgJXMnOwokbGFuZ1snZXJyb3JfcHJlZml4X21zZyddID0gJ0VuIGZlaWwgb3Bwc3RvZCBwJmFyaW5nOyBsaW5qZSAlZDogJXMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRWtzcG9ydGVyIENTVic7CiRsYW5nWydmYXgnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmVsdGRlZmluaXNqb25lcic7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdGZWx0ZGVmaW5pc2pvbic7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRmVsdGRlZmluaXNqb24gbGFndCB0aWwnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRmVsdGRlZmluaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0ZlbHRkZWZpbmlzam9uIHNsZXR0ZXQnOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdBdmtyeXNuaW5nc2Jva3MnOwokbGFuZ1snZmllbGRfZHJvcGRvd24nXSA9ICdOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1Rla3N0b21yJmFyaW5nO2RlJzsKJGxhbmdbJ2ZpZWxkX3RleHRib3gnXSA9ICdUZWtzdGlubnNrcml2aW5nJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8ICc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBGcm9udGVuZHNramVtYSBtYWwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnUmVkaWdlciBmaXJtYW1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ1JlZGlnZXIgZmlybWFtYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnU3Blc2lmaXNlciBvcHNqb25lbmUgZm9yIG5lZHRyZWtrc2tvbnRyb2xsZXJlbi4gKkVuIGxpbmplIHBlciBpbm5sZWdnLiBBZHNraWxsIG4mb3NsYXNoO2tsZXIgZnJhIHZlcmRpZXIgbWVkICA9ICB0ZWduLiBGLmVrcy4gbiZvc2xhc2g7a2tlbD12ZXJkaSc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcgJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGRlJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydGVyIENTVic7CiRsYW5nWydsYXRpdHVkZSddID0gJ0JyZWRlZ3JhZChMYXRpdHVkZSknOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICcgPj4nOwokbGFuZ1snbG9nb2N1cnJlbnRoaWRkZW4nXSA9ICcgJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nbyAnOwokbGFuZ1snbG9uZ2l0dWRlJ10gPSAnTGVuZ2RlZ3JhZChMb25naXR1ZGUpJzsKJGxhbmdbJ2xvb2t1cCddID0gJ1NsJmFyaW5nOyBvcHAga29vcmRpbmF0ZW5lJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01ha3MgbGVuZ2RlJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdNYWtzIGxlbmdkZSc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTWFrcyBsZW5nZGUnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0byBzaXN0IGVuZHJldCc7CiRsYW5nWyduYW1lJ10gPSAnTmF2bic7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hdm4nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdEdSB0cmVuZ2VyICYjMDM5OyVzJiMwMzk7IHRpbGxhdGVsc2UgZm9yICZhcmluZzsgdXRmJm9zbGFzaDtyZSBkZW4gZnVua3Nqb25lbi4nOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnSW5nZW4gZmlybWFuYXZuIG9wcGdpdHQnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdJbmdlbiBuYXZuIG9wcGdpdHQnOwokbGFuZ1snbm90YW51bWJlciddID0gJ0VyIGlra2UgZXQgbnVtbWVyJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnID4nOwokbGFuZ1snb2YnXSA9ICdhdic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZWZpbmVyZXIgZGVuIHByaW0mYWVsaWc7cmUgb3BwZiZvc2xhc2g7cnNlbGVuIGZvciBtb2R1bGVuLiBNdWxpZyB2ZXJkaWVyIGZvciBkZW5uZSBwYXJhbWV0ZXIgZXI6DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gVmlzIGVuIGxpc3RlIG1lZCBrYXRlZ29pZXIuIEJydWtlcmUga2FuIGRyaWxsZSBuZWQgdGlsIHNhbW1lbmRyYWdzbW9kdXMsIG9nIHMmYXJpbmc7IHRpbCBkZXRhbGptb2R1cy48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIFZpcyBiZWRyaWZ0ZXIgaSBzYW1tZW5kcmFnc21vZHVzLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIFZpcyBkZXRhbGplcnQgaW5mb3JtYXNqb24gb20gZW4gc3Blc2lmaWtrIGJlZHJpZnQuPC9saT4NCiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuIDxlbSBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4oZGVwcmVjYXRlZCk8L2VtPjwvbGk+DQogIDxsaT5mZV9lZGl0MiAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICA8bGk+ZmVfZWRpdF9hbGJ1bSAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFsYnVtIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS4NCiAgIDxwPlRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHRyaWdnZXJlZCBmcm9tIHRoZSBmZV9lZGl0MiBhY3Rpb24gb3IgdGhlIGZyb250ZW5kIGxpc3QgYWN0aW9uLiAgIEl0IGFjY2VwdHMgdGhlIGNvbXBhbnlpZCxjZF9mZGlkLGFuZCBvcHRpb25hbGx5IG90aGVyIHBhcmFtZXRlcnMgdG8gcGVyZm9ybSBudW1lcm91cyBhamF4IGFjdGlvbnMuICAgU2VlIHRoZSBzYW1wbGUgY29udGVudCBmb3IgdGhlIGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4NCiAgPC9saT4NCjxsaT5mcm9udGVuZGxpc3QgLS0gVmkgbGlzdGUgbWVkIGFsbGUgYmVkcmZ0c29wcGYmb3NsYXNoO3JpbmdlciBmb3IgZW4gYnJ1a2VyIHAmYXJpbmc7IGZyb250ZW5kZW4sIG1lZCB2YWxnZnJpIG11bGlnaGV0IHRpbCAmYXJpbmc7IGxlZ2dlIHRpbCBmbGVyZS48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBWaXMgZXQgc2tqZW1hIGZvciAmYXJpbmc7IHRpbGxhdGUgcyZvc2xhc2g7ayBldHRlciBzcGVzaWZpa2tlIGJlZHJpZnRlci48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBWaXMgZW4gbGlzdGUgbWVkIGhpZXJhcmtpZXIuIEJydWtlcmUga2FuIGRyaWxsZSBuZWQgdGlsIHNhbW1lbmRyYWdzbW9kdXMgb2cgcyZhcmluZzsgdGlsIGRldGFsam1vZHVzLjwvbGk+DQogICANCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2FjdGl2aXR5aWQnXSA9ICdHamVsZGVyIGJhcmUgdGlsIDxlbT5zdGFuZGFyZDwvZW0+IG9wcHN1bW1lcmluZyBtb2R1cywgb2cgYmFyZSBuJmFyaW5nO3IgQ0dTb2NpYWxBcHAgbW9kdWxlbiBlciBpbnN0YWxsZXJ0LCBrb25maWd1cmVydCwgb2cgZnlsdCBtZWQgZGF0YS4gRGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgZmlsdHJlcmluZyBhdiBzZWxza2FwZXIgbWVkIGRlIHNvbSBoYXIgYXZrcnlzc2luZyBtZWQgc3Blc2lmaXNlcnQgKGhlbHRhbGwpIGFrdGl2aXRldCBpZC4nOwokbGFuZ1sncGFyYW1fYWN0aXZpdHljaGlsZHJlbiddID0gJ0dqZWxkZXIgYmFyZSB0aWwgPGVtPnN0YW5kYXJkPC9lbT4gb3Bwc3VtbWVyaW5nc21vZHVzLCBvZyBiYXJlIG4mYXJpbmc7ciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyIGluc3RhbGxlcnQsIGtvbmZpZ3VyZXJ0LCBvZyBmeWx0IG1lZCBkYXRhLiBEZW5uZSBwYXJhbWV0ZXJlbiBmdW5nZXJlciBzYW1tZW4gbWVkIGFjdGl2aXR5aWQgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgZmlsdHJlcmluZyBhdiBmaXJtYSBodm9yIGRlIHNvbSBoYXIgYXZrcnlzc2luZyBtZWQgZGVuIGFuZ2l0dGUgKGhlbHRhbGwpIGFrdGl2aXRldCBpZCBvZyBkZXJlcyBiYXJuLWFrdGl2aXRldGVyLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdHamVsZGVyIGJhcmUgZm9yIDxlbT5zdGFuZGFyZDwvZW0+IHNhbW1lbmRyYWcgb2cgPGVtPnMmb3NsYXNoO2tlIDwvZW0+IG1vZHVzZW5lLCBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYW5naSBvbSBkZSByZXN1bHRlcmVuZGUgZGF0YWVuZSBza2FsIGVyc3RhdHRlIHN0YW5kYXJkaW5uaG9sZHNibG9rayBlbGxlciBvbSBkZSBza2FsIGVyc3RhdHRlIGRlbiBvcHByaW5uZWxpZ2Uga29kZW4gKGlubGluZSkuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0dqZWxkZXIgYmFyZSBmb3IgPGVtPnMmb3NsYXNoO2tlPC9lbT4gbW9kdXMsIGRlbm5lIHBhcmFtZXRlcmVuIGthbiBhbmdpIGVuIHMmb3NsYXNoO2tqZXNramVtYSBtYWwgc29tIGlra2UgZXIgc3RhbmRhcmQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ04mYXJpbmc7ciBkZXQgYnJ1a2VzIG1lZCA8ZW0+c3RhbmRhcmQ8L2VtPiBzYW1tZW5kcmFnLCBlbGxlciA8ZW0+cyZvc2xhc2g7a2U8L2VtPi1tb2R1cywgdmlsIGRldHRlIGJlZ3JlbnNlIHJlc3VsdGF0ZW5lIHRpbCBldCBhbmdpdHQgYW50YWxsLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWlkJ10gPSAnTiZhcmluZztyIGRlbiBicnVrZXMgaSA8ZW0+c3RhbmRhcmQ8L2VtPiBzYW1tZW5kcmFnc21vZHVzLCBrYW4gZGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZSBmaWx0cmVyaW5nIHAmYXJpbmc7IGVuIGVua2VsdCBrYXRlZ29yaSB2ZWQgJmFyaW5nOyBhbmdpIGRlbnMgaGVsdGFsbCBpZC4gRGVubmUgcGFyYW1ldGVyZW4ga2FuIGlra2UgYnJ1a2VzIG1lZCBrYXRlZ29yaSxjYXRlZ29yaTIsIGVsbGVyIGVuIGFubmVuIGthdGVnb3JpIGZpbHRyZXJpbmcgcGFyYW1ldGVyZS4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdCZW55dHRldCBpIDxlbT5zdGFuZGFyZDwvZW0+IHNhbW1lbmRyYWdzbW9kdXMsIHZpbCBkZW5uZSBwYXJhbWV0ZXJlbiwgc29tIHNrYWwgaGEgc2FtbWUgbmF2biBzb20gZW4gZWtzaXN0ZXJlbmRlIGthdGVnb3JpLCBibGkgYmVueXR0ZXQgZm9yICZhcmluZzsgdmlzZSBrdW4gZGUgZmlybWEgc29tIGVyIGkgZGVuIGthdGVnb3JpZW4uIChlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIGthbiBhbmdpcykgTiZhcmluZztyIGRlbiBicnVrZXMgaSA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4gaGFuZGxpbmdlbiwgZGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgJmFyaW5nOyBzcGVzaWZpc2VyZSBlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIG92ZXIga2F0ZWdvcmluYXZuZW5lICZhcmluZzsgZmlsdHJlcmUgcmVzdWx0YXRlbmUgZXR0ZXIuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnT3BwZ2kgZW4gbWFsICh2ZWQgbmF2bikgc29tIHNrYWwgYmVueXR0ZXMgdmVkIHZpc25pbmcgYXYga2F0ZWdvcmlsaXN0ZS4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnS3JldmVzIGZvciBmcm9udGVuZCByZWRpZ2VyaW5nIG9nIGRldGFsaiBtb2R1cywgaHZvciBkZW5uZSBwYXJhbWV0ZXIgYmVzdGVtbWVyIGh2aWxrZW4gZmlybWFwb3N0IHNvbSBza2FsIHJlZGlnZXJlcyBlbGxlciB2aXNlcy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZXNpZmlzZXIgZW4gc2lkZWFsaWFzICh2ZWQgbmF2bikgJmFyaW5nOyBiZW55dHRlIHRpbCAmYXJpbmc7IHZpc2UgZGV0YWxqcG9zdGVuLiA8c3Ryb25nPk1lcms6PC9zdHJvbmc+IERlbm5lIHRhZ2dwYXJhbWV0ZXJlbiBlciBpa2tlIGtvbXBhdGliZWwgbWVkIHZha3JlIHVybCYjMDM5O2VyLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ09wcGdpIGVuIG1hbCAodmVkIG5hdm4pIHNvbSBza2FsIGJlbnl0dGVzIHZlZCB2aXNuaW5nIGF2IGRldGFsanZpc25pbmcgPHN0cm9uZz5NZXJrOjwvc3Ryb25nPiBEZW5uZSB0YWdncGFyYW1ldGVyZW4gZXIgaWtrZSBrb21wYXRpYmVsIG1lZCB2YWtyZSB1cmwmIzAzOTtlci4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJ10gPSAnU3Blc2lmaXNlciBlbiBtYWwgKHZlZCBuYXZuKSAmYXJpbmc7IGJlbnl0dGUgdmVkIHZpc25pbmcgYXYgc2tqZW1hZXQgZm9yICZhcmluZzsgdGlsbGF0ZSByZWRpZ2VyaW5nIGF2IGV0IGFsYnVtIG1lZCBiaWxkZXIgYXNzb3NpZXJ0IG1lZCBldCBmaXJtYS4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRmb3JtdGVtcGxhdGUnXSA9ICdPcHBnaSBlbiBtYWwgKHZlZCBuYXZuKSBzb20gc2thbCBiZW55dHRlcyB2ZWQgdmlzbmluZyAgIGF2IGZyb250ZW5kIGZpcm1hcmVkaWdlcmluZ3Mgc2tqZW1hLic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnS3VuIGd5bGRpZyBmb3IgY2F0ZWdvcnlsaXN0IGhhbmRsaW5nZW4sIG9tIGRlbm5lIHBhcmFtZXRlciBlciBzYXR0LCBkYSB2aWwgb2dzJmFyaW5nOyBrYXRlZ29yaWVyIHV0ZW4gc2Ftc3ZhcmVuZGUgZmlybWEgYmxpIHZpc3QgaSByZXN1bHRhdGV0JzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZXNpZmlzZXIgcmVra2VmJm9zbGFzaDtsZ2VuIHAmYXJpbmc7IHNvcnRlcnRlIGZlbHRlciBpIHNhbW1lbmRyYWdzdmlzbmluZy4gTXVsaWdlIHZlcmRpZXIgZXI6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBTdGlnZW5kZSByZWtrZWYmb3NsYXNoO2xnZTwvbGk+DQogIDxsaT5kZXNjIC0tIFN5bmtlbmRlIHJla2tlZiZvc2xhc2g7bGdlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0t1biBneWxkaWcgZm9yIHNhbW1lbmRyYWdzbW9kdXMsIGh2b3IgZGVubmUgcGFyYW1ldGVyIGF2Z2omb3NsYXNoO3Igc29ydGVyaW5nZW4gYXYgdXRkYXRhIGZpcm1hZXIuIERlIG11bGlnZSB2ZXJkaWVuZSBlcjoNCjx1bD4NCjxsaT5pZCAtLSBEZW4gaW50ZXJuZSBmaXJtYSBJRDwvbGk+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5waG9uZTwvbGk+DQogIDxsaT5mYXg8L2xpPg0KICA8bGk+ZW1haWw8L2xpPg0KICA8bGk+d2Vic2l0ZSAtLSBOZXR0c3RlZGV0cyB1cmw8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBPcHByZXR0ZWxzZXNkYXRvIGZvciBkZW5uZSBmaXJtYSBwb3N0ZW48L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gRW5kcmluZ3NkYXRvIGZvciBkZW5uZSBmaXJtYSBwb3N0ZW48L2xpPg0KICA8bGk+c3RhdHVzPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBTb3J0ZXIgcG9zdGVuZSB0aWxmZWxkaWcuPC9saT4NCiAgPGxpPmY6ZmllbGQgbmFtZSAtLSBTb3J0ZXIgZXR0ZXIgb2ZmZW50bGlnZSBlZ2VuZGVmaW5lcnRlIGZlbHRlci4gVXRkYXRhIHZpbCBibGkgc29ydGVydCBldHRlciBkZXQgbmF2bmdpdHRlIGVnZW5kZWZpbmVydGUgZmVsdGV0Ljxici8+DQogIDxsaT5tb3N0Y2hlY2tpbnMgLS0gPGVtPihLdW4gbiZhcmluZztyIENHU29jaWFsQXBwIG1vZHVsZW4gZXJpbnN0YWxsZXJ0KTwvZW0+IFNvcnRlciB1dGRhdGEgZXR0ZXIgZmlybWEgKGxvY2F0aW9ucykgc29tIGhhciBmbGVzdCBpbm5zamVra2luZ2VyLjwvbGk+DQogIDxsaT5tb3N0ZmF2b3JpdGUgLS0gPGVtPihLdW4gbiZhcmluZztyIENHU29jaWFsQXBwIG1vZHVsZW4gZXJpbnN0YWxsZXJ0KTwvZW0+IFNvcnRlciB1dGRhdGEgZXR0ZXIgZmlybWEgKGxvY2F0aW9ucykgc29tIGhhciBmbGVzdCBmYXZvdGl0dGVyLjwvbGk+DQogICA8c3Ryb25nPiBNZXJrOiA8LyBzdHJvbmc+IER1IG0mYXJpbmc7IGthbnNramUgYnJ1a2Ugc2l0YXRlciBkZXJzb20gZmVsdG5hdm5ldCBlciBtZWxsb21yb20gPGJyLz4uDQogICA8c3Ryb25nPiBNZXJrOiA8L3N0cm9uZz4gRGV0IGZlbHRldCBzb20gZXIgYW5naXR0IG0mYXJpbmc7IG1lcmtlcyBzb20gb2ZmZW50bGlnIDwvbGk+Lg0KICAgPHN0cm9uZz4gTWVyazogPC9zdHJvbmc+IE4mYXJpbmc7ciBkdSBicnVrZXIgZWdlbmRlZmluZXJ0IGZlbHQgc29ydGVyaW5nLCBrYW4gZHUgb2dzJmFyaW5nOyBhbmdpIGV0IGZsYWdnIGV0dGVyIGZlbHRuYXZuZXQgZm9yICZhcmluZzsgdmlzZSBhdCBoZWx0YWxsL2ludGVnZXIgc29ydGVyaW5nIHNrYWwgdXRmJm9zbGFzaDtyZXMuIGkuZTogPGNvZGU+IHNvcnRieT1mOmN1c3RvbV9vcmRlcmluZzppPC8gY29kZT4gPGJyLz4NCjwvIHVsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdPcHBnaSBlbiBtYWwgKHZlZCBuYXZuKSAmYXJpbmc7IGJlbnl0dGUgbiZhcmluZztyIHNhbW1lbmRyYWcgc2thbCB2aXNlcy4gIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsJiMwMzk7ZXIuJzsKJGxhbmdbJ3Bvc3RhbF9jb2RlJ10gPSAnUG9zdG51bW1lcic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0Zpcm1ha2F0YWxvZyBtb2R1bGVuIGJsZSB2ZWxseWtrZXQgaW5zdGFsbGVydCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlbiBibGUgYXZpbnN0YWxsZXJ0LiBBbGwgYXNzb3NpZXJ0IGZpcm1hZGF0YSBoYXIgYmxpdHQgc2xldHRldCc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIGF2aW5zdGFsbGVyZSBkZW5uZSBtb2R1bGVuPyAmQXJpbmc7IGF2aW5zdGFsbGVyZSBkZW5uZSBtb2R1bGVuIHZpbCBwZXJtYW5lbnQgc2xldHRlIGFsbCBhc3Nvc2llcnQgZmlybWFkYXRhIGkgZGVubmUgbW9kdWxlbi4gJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCAnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3JpZXNfaW1wb3J0ZWQnXSA9ICdLYXRlZ29yaWVyIGltcG9ydGVydCc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ1Rlc3QgZm9yIGR1cGxpa2F0ZSBmaXJtYW5hdm4/JzsKJGxhbmdbJ3Byb21wdF9jb2xsZWN0c3RhdHMnXSA9ICdTYW1sZSBzJm9zbGFzaDtrZXN0YXRpc3Rpa2snOwokbGFuZ1sncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCddID0gJ0Zpcm1hZXIgaW1wb3J0ZXJ0JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWV0ZXInXSA9ICdGZWx0IHNraWxsZXRlZ24nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNpZGUgJmFyaW5nOyByZXR1cm5lcmUgdGlsIGkgZGV0YWxqbW9kdXMuIEh2aXMgc2F0dCB0aWwgJnF1b3Q7Tm9uZSZxdW90OyB2aWwgc2lkZW4gc29tIGRldCBrYWxsZXMgZnJhIGJsaSBicnVrdC4nOwokbGFuZ1sncHJvbXB0X2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdOZWR0cmVra3NvcHNqb25lcic7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnRmVsdGRlZmluaXNqb25lciBpbXBvcnRlcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeWRlZnMnXSA9ICdPcHByZXR0IG1hbmdsZW5kZSBrYXRlZ29yaWVyIHZlZCBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeXZhbHMnXSA9ICdGeWxsIGthdGVnb3JpdmVyZGllciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZSddID0gJ0xhc3Qgb3BwIENTViBGaWwnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdPcHByZXR0IG1hbmdsZW5kZSAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXNqb25lciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGR2YWxzJ10gPSAnRnlsbCAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IHZlcmRpZXIgdmVkIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdTbCZhcmluZzsgb3BwIGxhdGl0dWRlIG9nIGxvbmdpdHVkZSB2ZXJkaWVyIG9tIGRlIG1hbmdsZXInOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0FudGFsbCBwb3N0ZXIgJmFyaW5nOyB2aXNlIHByLiBzaWRlIGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmcgaSBzYW1tZW5kcmFnc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nIGkgc2FtbWVuZHJhZ3Ntb2R1cyA8ZW0+KGhhciBpbmdlbiBmdW5rc2pvbiBuJmFyaW5nO3Igc29ydGVyaW5nIGVyICYjMDM5O3RpbGZlbGRpZyhyYW5kb20pJiMwMzk7PC9lbT4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTWFsJzsKJGxhbmdbJ3B1YmxpYyddID0gJ09mZmVudGxpZyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaXNlcnQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3JhZGl1cyddID0gJ1JhZGl1cyAnOwokbGFuZ1sncmFuZG9tJ10gPSAnVGlsZmVsZGlnJzsKJGxhbmdbJ3JldHVybiddID0gJ1RpbGJha2UnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdTZXR0IHRpbGJha2UgdGlsIGZhYnJpa2tpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAnRGVubmUgb3BlcmFzam9uIHZpbCBzZXR0ZSBtYWxlbnMgaW5uaG9sZCB0aWxiYWtlIHRpbCBzeXN0ZW0gc3RhbmRhcmQuIEVyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgZm9ydHNldHRlPyc7CiRsYW5nWydzZWFyY2gnXSA9ICdTJm9zbGFzaDtrJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnUyZvc2xhc2g7ayc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnUyZvc2xhc2g7ayBza2plbWFtYWxlcic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgcyZvc2xhc2g7a2Vza2plbWEgbWFsJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnVXJmJm9zbGFzaDtyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU2FtbWVuZHJhZ3NtYWwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1NhbW1lbmRyYWdzbWFsIG9wcGRhdGVydCc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJ1RpbGJha2VzdGlsbCB0aWwgc3RhbmRhcmQnOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsZWZvbic7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZWZvbic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQga2F0ZWdvcmlsaXN0ZSBtYWwnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIGRldGFsam1hbCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgRm9ybnRlbmRza2plbWEgbWFsJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9yZXBvcnQnXSA9ICdDU1YgaW1wb3J0IHJhcHBvcnQnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzJm9zbGFzaDtrZXNramVtYSBtYWwnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXBlICc7CiRsYW5nWyd1cCddID0gJ09wcCc7CiRsYW5nWyd2aWV3X3dlYnNpdGUnXSA9ICdHJmFyaW5nOyB0aWwgbmV0dHNpZGVuJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdOZXR0c3RlZCc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ05ldHRzdGVkJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTUzNjg0OTExNS0xMzA3OTgzNDk1MjEwJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzc0Njg4ODYzLjEzNzM1NzE4MjYuMTM3MzY1MTI5MS4xMzczNjY5ODUzLjUnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzczNTcxODI2LjEuMS51dG1jc3I9KGRpcmVjdCl8dXRtY2NuPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTM3MzY2OTg1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Jlb3JkZXJfbW9kZSddID0gJ1Jlb3JkZXIgbW9kZSBoYXMgYmVlbiBhY3RpdmF0ZWQuICBEcmFnIHRoZSBpdGVtcyBpbnRvIHRoZWlyIGRlc2lyZWQgb3JkZXIuICBUbyBhYm9ydCB0aGUgb3BlcmF0aW9uIGNsaWNrICZxdW90O2NhbmNlbCZxdW90Oy4gIFRvIHNhdmUgdGhlIGNoYW5nZXMgY2xpY2sgJnF1b3Q7c3VibWl0JnF1b3Q7JzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdIZXJzY2hpa2tlbic7CiRsYW5nWydwcm9tcHRfaWNvbiddID0gJ1BpY3RvZ3JhbSc7CiRsYW5nWydmaWVsZF9pY29uJ10gPSAnUGljdG9ncmFtIChDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2FjdGl2aXR5J10gPSAnQWN0aXZpdGVpdGVuIChDR1NvY2lhbEFwcCknOwokbGFuZ1sncGFyYW1faWRsaXN0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgY29tcGFueSBpZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZC4gIE5vdGUsIG9ubHkgcHVibGlzaGVkIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCB1bmxlc3Mgc3BlY2lmaWVkIGRpZmZlcmVudGx5IGJ5IGFub3RoZXIgcGFyYW1ldGVyJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkFkZENvbXBhbnknXSA9ICdFdmVudCB2ZXJzdHV1cmQgbmFkYXQgZWVuIG5pZXV3IGJlZHJpamYgaXMgdG9lZ2V2b2VnZCBhYW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFdmVudCB2ZXJzdHV1cmQgbmFkYXQgZWVuIGJlZHJpamYgaXMgZ2V3aWp6aWdkIGluIGRlIGRhdGFiYXNlJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkRlbGV0ZUNvbXBhbnknXSA9ICdFdmVudCB2ZXJzdHV1cmQgdm9vcmRhdCBlZW4gYmVkcmlqZiBpcyB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2V2ZW50aGVscC1PbkFkZENvbXBhbnknXSA9ICc8cD5TZW50IGFmdGVyIGEgY29tcGFueSBpcyBhZGRlZCB0byB0aGUgZGF0YWJhc2UuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCiAgPGxpPiZxdW90O3dobyZxdW90OyAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+JnF1b3Q7b2JqZWN0JnF1b3Q7IC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLU9uRWRpdENvbXBhbnknXSA9ICc8cD5TZW50IGFmdGVyIGEgY29tcGFueSBpcyB1cGRhdGVkIGluIHRoZSBkYXRhYmFzZS48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KICA8bGk+JnF1b3Q7d2hvJnF1b3Q7IC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+DQogIDxsaT4mcXVvdDtvYmplY3QmcXVvdDsgLSBUaGUgY2RfY29tcGFueSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIHRoYXQgd2FzIHNhdmVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25EZWxldGVDb21wYW55J10gPSAnPHA+U2VudCBiZWZvcmUgYSBjb21wYW55IGlzIGRlbGV0ZWQgZnJvbSB0aGUgIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O2NpZCZxdW90OyAtIElkIG9mIHRoZSBjb21wYW55IHJlY29yZCB0byBiZSBkZWxldGVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWyd1cGxvYWQnXSA9ICcgVXBsb2FkJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL1dpanppZ2VuIEZyb250ZW5kIHdpanppZyBBbGJ1bSBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBGcm9udGVuZCB3aWp6aWcgQWxidW0gU2phYmxvb24nOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIHdpanppZyBBbGJ1bSBzamFibG9uZW4nOwokbGFuZ1snY29uZmlybV9lZGl0X2FsYnVtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGVkaXQgdGhlIGFsYnVtLiAgQW55IGVkaXRzIHRvIHRoZSBjb21wYW55IHByb3BlcnRpZXMgd2lsbCBub3QgYmUgc2F2ZWQhJzsKJGxhbmdbJ2VkaXRfYWxidW0nXSA9ICdXaWp6aWcgUGhvdG8gQWxidW0nOwokbGFuZ1snZXJyb3JfZmllbGRkZWZfbm90Zm91bmQnXSA9ICdWZWxkZGVmaW5pdGUgbWV0IGlkICVkIG5pZXQgZ2V2b25kZW4nOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vV2lqemlnZW4gdmFuIEdhbGxlcnkgU2phYmxvb24nOwokbGFuZ1sndGl0bGVfZ2FsbGVyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgR2FsbGVyeSBTamFibG9vbic7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVzJ10gPSAnR2FsbGVyeSBTamFibG9uZW4nOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnR2Vhbm51bGVlcmQnOwokbGFuZ1snYWRkZWRpdF9oaWVyYXJjaHknXSA9ICdUb2V2b2VnZW4vV2lqemlnZW4gdmFuIEhpZXJhcmNoeSBhcnRpa2VsJzsKJGxhbmdbJ3B1Ymxpc2gnXSA9ICdQdWJsaWNlcmVuJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgaXRlbXMgdmVyd2lqZGVyZCc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOaWV0cyBnZXNlbGVjdGVlcmQnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ21ldCBnZXNlbGVjdGVlcmQnOwokbGFuZ1snZGlzYWJsZSddID0gJ1VpdHNjaGFrZWxlbic7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZWN0ZWVyIGFsbGVzJzsKJGxhbmdbJ21zZ19zZXR0aW5nc19jaGFuZ2VkJ10gPSAnSW5zdGVsbGluZ2VuIGdld2lqemlnZCc7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZWVtIGJpaiBvcHpvZWtlbiB2YW4gYWRyZXM6ICVzJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdVbml0cyBzcGVjaWZpZWQgYXJlIGludmFsaWQuICB2YWxpZCB2YWx1ZXMgYXJlIG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWyd0aXRsZV9uZXdzZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIFpvZWsgU2phYmxvb24nOwokbGFuZ1snbmV3c2VhcmNodGVtcGxhdGVzJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvbmVuJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vV2lqemlnZW4gWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snbmV3c2VhcmNoX3RlbXBsYXRlJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1sncHJvbXB0X3VzZV9vbGRzZWFyY2gnXSA9ICdVc2Ugb2xkIHNlYXJjaCBhY3Rpb24gKGRvZXMgbm90IHN1cHBvcnQgcXVlcnlpbmcgb24gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBkb2VzIG5vdCByZXR1cm4gY2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gcmVzdWx0cyc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ01lZXJ2b3VkaWdlIHNlbGVjdGllJzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdJbmRpZW4gZ2VhY3RpdmVlcmQga3VubmVuIGVua2VsIGFkbWluaXN0cmF0b3JzIGRpdCB2ZWxkIHdpanppZ2VuJzsKJGxhbmdbJ2luZm9fdXNlcnZpZXcnXSA9ICdJZiBlbmFibGVkLCBhbGwgdXNlcnMgY2FuIHZpZXcgdGhpcyBmaWVsZCBmb3IgZWFjaCBlbnRyeS4gIElmIGRpc2FibGVkIG9ubHkgdGhlIG93bmVyIGFuZCBhZG1pbmlzdHJhdG9ycyBjYW4gdmlldyB0aGUgZmllbGQnOwokbGFuZ1snaW5mb19hbGJ1bV9maWVsZHR5cGUnXSA9ICdPbmx5IG9uZSBhbGJ1bSBmaWVsZCB0eXBlIGlzIHBlcm1pdHRlZC4gIEFsbG93aW5nIHVwbG9hZGluZyBvZiBudW1lcm91cyBpbWFnZXMgdG8gYXNzb2NpYXRlIHdpdGggYSBzcGVjaWZpYyBkYXRhYmFzZSBlbnRyeS4gIEltYWdlcyBjYW4gb25seSBiZSB1cGxvYWRlZCB0byBhbiBhbGJ1bSBmaWVsZCBmb3IgYW4gZXhpc3RpbmcgZW50cnkgKHdoZW4gZWRpdGluZyBhbiBlbnRyeSkgbm90IHdoZW4gaW5pdGlhbGx5IGFkZGluZyB0aGUgZW50cnkuJzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnQ28mb3VtbDtyZGluYXRlbic7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR1dXInOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ1NsZWVwIGVuIFpldCBOZWVyIFVwbG9hZCc7CiRsYW5nWydkcm9wX2hlcmUnXSA9ICdTbGVlcCB1dyBiZXN0YW5kZW4gaGllciBvbSB0ZSB1cGxvYWRlbic7CiRsYW5nWydpbmZvX2RyYWdfZHJvcCddID0gJ1dpdGggbW9zdCBtb2Rlcm4gYnJvd3NlcnMgKGV4Y2VwdCBJRSkgeW91IGNhbiBkcmFnIG11bHRpcGxlIGZpbGVzIGludG8gdGhlIGFkamFjZW50IGRyb3Agem9uZS4gIFRoZXkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVwbG9hZGVkIGFuZCBhZGRlZCB0byB0aGUgYWxidW0nOwokbGFuZ1snYWxidW0nXSA9ICdBbGJ1bSAnOwokbGFuZ1snZXJyb3JfYWxidW1maWVsZGV4aXN0cyddID0gJ0VyIGlzIGFsIGVlbiBBbGJ1bSB2ZWxkLiBNZWVyIGthbiBoZWxhYXMgbmlldC4uLic7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnR2VlbiBhZHJlcyBnZXZvbmRlbiBpbiBkaXQgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdGb3V0ZW4nOwokbGFuZ1sncHJvbXB0X251bWVycm9ycyddID0gJ01lZXJkZXJlIGZvdXRlbiBnZXZvbmRlbic7CiRsYW5nWydwYXJhbV9yYWRpdXMnXSA9ICdTcGVjaWZ5IHRoZSByYWRpdXMgKGluIG1pbGVzKSBmb3IgYSByYWRpdXMgc2VhcmNoLiAgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxhdCBhbmQgbG9uZyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxvbmdpdHVkZSBjb29yZGluYXRlIGZvciBhIHJhZGl1cyBzZWFyY2gsIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sYXQnXSA9ICdTcGVjaWZ5IHRoZSBjZW50ZXIgbGF0aXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbG9uZyBhbmQgcmFkaXVzIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ2luZm9fZWRpdG9yMiddID0gJ1VzZSB0aGUgbmV3IGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVycmVkIHRvIGFzIGZlZWRpdDIpPC9lbT4gTm90ZTogVGhlIG9sZCBlZGl0b3Igd2lsbCBiZSByZW1vdmVkIGluIENvbXBhbnlEaXJlY3RvcnkgMS4xNSBvciBiZXlvbmQuJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnR2VicnVpayBuaWV1d2UgRnJvbnRlbmQgRWRpdG9yJzsKJGxhbmdbJ2Vycm9yX2dlbmVyYXRldXJsJ10gPSAnUHJvYmxlZW0gb3BnZXRyZWRlbiBiaWogZ2VuZXJlcmVuIHZhbiBVUkwnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydGVlciB2b2xnb3JkZSc7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnR2VlbiBleHRyYSB2ZWxkZW4gaW5nZXN0ZWxkJzsKJGxhbmdbJ3Byb21wdF9lZGl0Y29tcGFueSddID0gJ1dpanppZ2VuIGJlZHJpamYnOwokbGFuZ1sncHJvbXB0X2FkZGNvbXBhbnknXSA9ICdCZWRyaWpmIHRvZXZvZWdlbic7CiRsYW5nWydvcmdhbml6YXRpb24nXSA9ICdPcmdhbmlzYXRpZSc7CiRsYW5nWydmaWVsZHMnXSA9ICdWZWxkZW4nOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoQWFudGFsIGFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJ10gPSAnRHViYmVsZSBiZWRyaWpmc25hbWVuIHRvZXN0YWFuPyc7CiRsYW5nWydwcm9tcHRfcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdXZWJzaXRlbmFtZW4gdm9vcnppZW4gdmFuIGh0dHA6Ly8nOwokbGFuZ1snaW5mb19wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ0lmIGEgd2Vic2l0ZSB2YWx1ZSBpcyBzcGVjaWZpZWQsIGFuZCBkb2VzIG5vdCBiZWdpbiB3aXRoIGEgdXJscHJlZml4IChodHRwLCBodHRwcywgZnRwKS4uICBodHRwOi8vIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGl0cyB2YWx1ZSBvbiBzYXZlJzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdHZWVuIG9mIGVlbiB2ZXJrZWVyZGUgZWlnZW5hYXIgSUQnOwokbGFuZ1sncHJvbXB0X2V4dGVuc2lvbnMnXSA9ICdUb2VnZXN0YW5lIGJlc3RhbmQgZXh0ZW50aWVzJzsKJGxhbmdbJ2luZm9fZXh0ZW5zaW9ucyddID0gJ0dlZWYgZWVuIGxpanN0IG9wIG1ldCBrb21tYWdlc2NoZWlkZW4gd2FhcmRlbiBtZXQgYmVzdGFuZHNleHRlbnNpZXMgKGhvb2ZkbGV0dGVyZ2V2b2VsaWcpLiBJbmRpZW4gbmlldCBvcGdlZ2V2ZW4gd29yZGVuIGRlIHN0YW5kYWFyZHdhYXJkZW4gdmFuIENHRXh0ZW5zaW9ucyB3b3JkZW4gZ2VicnVpa3QuJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdWZWxkZGVmZW5pdGllIHRvZXZvZWdlbiBvZiBiZXdlcmtlbic7CiRsYW5nWydmaWVsZF9maWxlJ10gPSAnQmVzdGFuZCc7CiRsYW5nWydpbnVzZSddID0gJ2luIGdlYnJ1aWsnOwokbGFuZ1snaW5mb19maWx0ZXJfaGllcmFyY2h5J10gPSAnU3BlY2lmeSBhIGhpZXJhcmNoeSBzdHJpbmcgKG9yIHBvcnRpb24pIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLCBhbmQgbWF5IGluY2x1ZGUgY2hpbGQgaGllcmFyY2hpZXMuICBpLmU6ICZxdW90O0NhcnMqJnF1b3Q7LiBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSAnOwokbGFuZ1snaW5mb19maWx0ZXJfYWRkcmVzcyddID0gJ1NwZWNpZnkgYW4gYWRkcmVzcyBzdHJpbmcgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypUZXhhcyomcXVvdDsuIFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlICc7CiRsYW5nWydpbmZvX2ZpbHRlcl9uYW1lJ10gPSAnU3BlY2lmeSBhIGNvbXBhbnkgbmFtZSAob3IgcGFydGlhbCBjb21wYW55IG5hbWUgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypyZXN0YXJhdW50JnF1b3Q7IFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlICc7CiRsYW5nWydlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnXSA9ICdFciB6aWpuIGdlZW4gZGF0YWJhc2UgcmVjb3JkcyBnZXZvbmRlbiBkaWUgdm9sZG9lbiBhYW4gZGUgb3BnZWdldmVuIGNyaXRlcmVhLic7CiRsYW5nWydlcnJvcl9ub2NvbXBhbmllc21hdGNoJ10gPSAnU29ycnksIG1hYXIgZXIgemlqbiBnZWVuIGl0ZW1zIGdldm9uZGVuIGRpZSBhYW4gdXcgY3JpdGVyaWEgdm9sZG9lbic7CiRsYW5nWydlZGl0X2ZpbHRlciddID0gJ1dpanppZyBGaWx0ZXInOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydGVlciBvcCc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnaW5hJzsKJGxhbmdbJ2ZpbHRlciddID0gJyBGaWx0ZXInOwokbGFuZ1sncmVzZXQnXSA9ICcgUmVzZXQnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkyJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgdmlldywgYW5kIG9ubHkgd2hlbiB0aGUgPGVtPmNhdGVnb3J5PC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYW4gYWRkaXRpb25hbCBBTkQgZXhwcmVzc2lvbiB0byBpbmRpY2F0ZSBhZGRpdGlvbmFsIChjb21tYSBzZXBhcmF0ZWQpIGNhdGVnb3JpZXMgdGhhdCB0aGUgcmVzdWx0IHNob3VsZCBiZSBhIG1lbWJlciBvZi4gIGkuZToge0NvbXBhbnlEaXJlY3RvcnkgY2F0ZWdvcnk9JiMwMzk7cmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aCYjMDM5OyBjYXRlZ29yeTI9JiMwMzk7Y2Fycyx0cnVja3MmIzAzOTt9IHdvdWxkIHJldHVybiBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IHdlcmUgaW4gdGhlIGVpdGhlciBvZiB0aGUgcmVnaW9uIG5vcnRoIG9yIHJlZ2lvbiBzb3V0aCBjYXRlZ29yaWVzIEFORCBBTFNPIGluIGVpdGhlciBvZiB0aGUgY2FycyBvciB0cnVja3MgY2F0ZWdvcmllcyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnkyPC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgeWV0IGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuIFNlZSB0aGUgaGVscCBmb3IgdGhlIGNhdGVnb3J5MiBwYXJhbWV0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24gJzsKJGxhbmdbJ2JhZG5hbWVnaXZlbiddID0gJ0RlemUgbmFhbSBpcyBvbmdlbGRpZyAobmFtZW4gbW9ldGVuIFVSTC12cmllbmRlbGlqayB6aWpuKSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnSHVpZGlnZSB3YWFyZGUnOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRsaXN0dGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5mcm9udGVuZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgZnJvbnRlbmQgbGlzdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHJlbmRlcmluZyB0aGUgb3V0cHV0ICc7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgPGVtPnNlYXJjaDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2hhdCBwYWdlIHNob3VsZCBiZSB1c2VkIGZvciBkaXNwbGF5aW5nIG1hdGNoaW5nIHJlc3VsdHMuICc7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7ICc7CiRsYW5nWydwYXJhbV9ub3ByZXR0eSddID0gJ0FwcGxpY2FibGUgdG8gYWxsIHZpZXdzICh0aG91Z2ggc3RpbGwgaW4gZWFybHkgZGV2ZWxvcG1lbnQpIHRoaXMgcGFyYW1ldGVyIHdpbGwgdHVybiBvZmYgcHJldHR5IHVybCBnZW5lcmF0aW9uJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZSddID0gJ0ZvdXQgYmlqIGhldCBhYW5tYWtlbiAobWFhciBnYWF0IGRvb3IpJzsKJGxhbmdbJ2Vycm9yX3VwZGF0ZV9jb21wYW55J10gPSAnRm91dCBiaWogaGV0IGJpandlcmtlbiB2YW4gZWVuIGJlZHJpamZzcmVjb3JkJzsKJGxhbmdbJ2lnbm9yZSddID0gJ05lZ2Vlcic7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdPdmVyc2NocmlqZic7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yaWUgdmVyd2lqZGVyZCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ01hYWsgVVJMIHZvb3IgcmVjb3JkcyB6b25kZXIgVVJMJzsKJGxhbmdbJ2luZm9fY3JlYXRlX3VybCddID0gJ0FscyBlciBnZWVuIFVSTCBpcyBvcGdlZ2V2ZW4gdm9vciBlZW4gcmVjb3JkLCBkYW4gem9yZ3QgZGV6ZSBvcHRpZSBkYXQgZGUgVVJMIGFsc25vZyBhYW5nZW1hYWt0IHdvcmR0LiBJbmRpZW4gZGUgJiMwMzk7VmVyZWlzIFVSTCYjMDM5Oy1pbnN0ZWxsaW5nIGlzIGluZ2VzY2hha2VsZCwgZGFuIHp1bGxlbiBlciBVUkwmIzAzOTtzIHdvcmRlbiBhYW5nZW1hYWt0LCBvbmdlYWNodCBkZSB3YWFyZGUgdmFuIGRlemUgaW5zdGVsbGluZy4nOwokbGFuZ1sndXJsX2NyZWF0ZW9uY29weSddID0gJ0NyZSZldW1sO2VyIFVSTCYjMDM5O3MgYmlqIGhldCBrb3BpZXJlbic7CiRsYW5nWydpbmZvX3VybF9jcmVhdGVvbmNvcHknXSA9ICdXYW5uZWVyIHUgYmVkcmlqdmVuIGtvcGllZXJ0LCBkYW4gemFsIGVyIGVlbiBVUkwgd29yZGVuIGFhbmdlbWFha3Qgdm9vciBoZXQgYmVzdGVtbWluZ3NyZWNvcmQuIERpdCBpcyBhbGxlZW4gdmFuIHRvZXBhc3NpbmcgYWxzIFVSTCYjMDM5O3MgbmlldCB2ZXJlaXN0IHppam4uJzsKJGxhbmdbJ2Vycm9yX2JhdGNodXJsY3JlYXRlJ10gPSAnQmF0Y2ggVVJMIENyZWF0aW9uIHZlcm9vcnphYWt0ZSAlZCBmb3V0ZW4nOwokbGFuZ1snaW5mb19iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBDcmVhdGlvbiBoZWVmdCAlZCByZWNvcmRzIGJpamdld2Vya3QnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ0RlIG9wZ2VnZXZlbiAob2YgYmVyZWtlbmRlKSBVUkwgaXMgb25nZWxkaWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZG5hbWUnXSA9ICdEZSBiZWRyaWpmc25hYW0gaXMgb25nZWxkaWcnOwokbGFuZ1snZXJyb3JfdXJsbm90ZW1wdHknXSA9ICdIZXQgVVJMIHZlbGQgaXMgbmlldCBsZWVnLi4uIGthbiBnZWVuIGJlc3RhYW5kZSB3YWFyZGVuIG92ZXJzY2hyaWp2ZW4nOwokbGFuZ1snZXJyb3JfdXJscmVxdWlyZWQnXSA9ICdFZW4gVVJMIGludm9lcmVuIGlzIHZlcnBsaWNodCc7CiRsYW5nWydnZXR1cmwnXSA9ICdHZW5lcmVlciBVUkwnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnRWVuIFVSTCBpbnZvZXJlbiBpcyB2ZXJwbGljaHQnOwokbGFuZ1snaW5mb191cmxfcmVxdWlyZWQnXSA9ICdNb2V0IGhldCBVUkwgdmVsZCB2b2xkb2VuIGFhbiBlZW4gZ2VsZGlnaGVpZHN2ZXJlaXN0ZSBiaWogaGV0IHRvZXZvZWdlbiBvZiBiZXdlcmtlbiB2YW4gZWVuIGJlZHJpamY/JzsKJGxhbmdbJ2NoZWNrJ10gPSAnQ29udHJvbGVlcic7CiRsYW5nWyd1cmwnXSA9ICdVUkwgJzsKJGxhbmdbJ2NyZWF0ZXVybHMnXSA9ICdNYWFrIFVSTCYjMDM5O3MnOwokbGFuZ1snY29uZmlybV9hdXRvY3JlYXRlX3VybCddID0gJ0NyZSZldW1sO2VyIGF1dG9tYXRpc2NoIFVSTCYjMDM5O3Mgdm9vciBiZXN0YWFuZGUgcmVjb3JkcyB6b25kZXIgVVJMJzsKJGxhbmdbJ3VybF9yZWRpcmVjdG9sZCddID0gJ1ZlcnpvcmcgZWVuIDMwMSByZWRpcmVjdCBuYWFyIGRlIG5pZXV3ZSBVUkwmIzAzOTtzJzsKJGxhbmdbJ2luZm9fdXJsX3JlZGlyZWN0b2xkJ10gPSAnT24gYW4gaW5jb21pbmcgcmVxdWVzdCBmb3IgYSBjb21wYW55IHVzaW5nIHRoZSBvbGQgVVJMIHBhdHRlcm5zLCBwZXJmb3JtIGEgMzAxIHJlZGlyZWN0IHRvIHRoZSBuZXcgVVJMLiAgVGhpcyB3aWxsIG9ubHkgd29yayBmb3IgZW50cmllcyB0aGF0IGhhdmUgVVJMUyBjcmVhdGVkLic7CiRsYW5nWydpbmZvX3VybF9hdXRvY3JlYXRlJ10gPSAnV2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnkgZGVmaW5pdGlvbiwgaWYgdGhlIFVSTCBmaWVsZCBpcyBibGFuayBvbmUgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgY29tcGFueSBuYW1lLiAgVGhpcyBkb2VzIG5vdCBhcHBseSB0byBmcm9udGVuZCBlZGl0aW5nJzsKJGxhbmdbJ3VybF9hdXRvY3JlYXRlJ10gPSAnQ3JlZSZldW1sO3IgYXV0b21hdGlzY2ggdW5pZWtlIFVSTCYjMDM5O3MnOwokbGFuZ1sndXJscyddID0gJ1VybCYjMDM5O3MnOwokbGFuZ1sncGFyYW1fc2VhcmNoYWRkcmVzcyddID0gJ1doZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2gsIHVzaW5nIHRoZSBzZWFyY2ggYWN0aW9uLCBpZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgYWRkcmVzcyBmaWVsZCB3aWxsIGFsc28gYmUgc2VhcmNoZWQgZm9yIHRoZSBtYXRjaGluZyBzdHJpbmcnOwokbGFuZ1sncGFyYW1fcG9zdGFsY2hhcnMnXSA9ICdXaGVuIGRvaW5nIGEgcG9zdGFsIGNvZGUgc2VhcmNoLCB1c2luZyB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBvcHRpb24gYWxsb3dzIGxpbWl0aW5nIHRoZSBlZmZlY3RpdmUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb25mIHRoZSBwb3N0YWwgY29kZSc7CiRsYW5nWydsYWJlbF9pbmNsdWRlY2hpbGRyZW4nXSA9ICdWb2VnIGNoaWxkaGllcmFyY2hpZSZldW1sO24gdG9lJzsKJGxhbmdbJ2FueSddID0gJ0FsbGUnOwokbGFuZ1snaW5mb19jYXRlZ29yeWNvbHVtbiddID0gJ1NwZWNpZnkgdGhlIG5hbWUgb2YgYSBjb2x1bW4gdGhhdCBzcGVjaWZpZXMgb25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXMgKHNlcGFyYXRlZCBieSBhIGNvbW1hIDxlbT4oLCk8ZW0+IFRoYXQgY2FuIGJlIHVzZWQgdG8gcXVpY2tseSBwb3B1bGF0ZSB0aGUgY2F0ZWdvcmllcyBmb3IgZWFjaCByZWNvcmQuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0NhdGVnb3JpZSBLb2xvbSc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWNvbHVtbl9ub3Rmb3VuZCddID0gJ0NhdGVnb3JpZSBrb2xvbSAlcyBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdWZXJsb29wdCc7CiRsYW5nWydyZXNldF90b19mYWN0b3J5J10gPSAnUmVzZXQgbmFhciBzeXN0ZWVtIHN0YW5kYWFyZCc7CiRsYW5nWydwcm9tcHRfZW1haWxfaXNodG1sJ10gPSAnRS1tYWlsIGlzIGluIEhUTUwgb3Bib3V3JzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9zdWJqZWN0J10gPSAnRS1tYWlsIE9uZGVyd2VycCc7CiRsYW5nWydwcm9tcHRfZW1haWxfdGVtcGxhdGUnXSA9ICdFLW1haWwgU2phYmxvb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdFLW1haWwgU2phYmxvb24nOwokbGFuZ1snZmVlZGl0X2VtYWlsX3N1YmplY3QnXSA9ICdFciBpcyBlZW4gd2lqemlnaW5nIGFhbmdlYnJhY2h0IGFhbiBlZW4gQ29tcGFueURpcmVjdG9yeSBiZWRyaWpmJzsKJGxhbmdbJ3Byb21wdF9mZXVfZGVsZXRlJ10gPSAnU3RhIEZyb250ZW5kIEdlYnJ1aWtlcnMgdG9lIGl0ZW1zIHRlIHZlcndpamRlcmVuJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ1dlbGtlIEJlaGVlcmdyb2VwIG1vZXQgbm90aWZpY2F0aWUgZS1tYWlscyBvbnR2YW5nZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmFkZCddID0gJ1ZlcnN0dXVyIGVlbiBFLW1haWwgYWxzIGVlbiBGcm9udGVuZCBnZWJydWlrZXIgZWVuIG5pZXV3IGJlZHJpamYgYWFubWFha3QnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1ZlcnN0dXVyIGVlbiBFLW1haWwgYWxzIGVlbiBGcm9udGVuZCBnZWJydWlrZXIgZWVuIGJlc3RhYW5kIGJlZHJpamYgd2lqemlndCc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25ncm91cCddID0gJ0JlaGVlcmdyb2VwIG9tIEUtbWFpbHMgbmFhciB0ZSB2ZXJ6ZW5kZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgU2NoZXJtIEluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSA9ICdUb29uIGJlZHJpanZlbiBkaWUgYWFuZ2VtYWFrdCB6aWpuIGRvb3IgdmVybG9wZW4gRnJvbnRlbmQgVXNlcnMnOwokbGFuZ1snZmllbGRfaW1hZ2UnXSA9ICdBZmJlZWxkaW5nJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIGRhdGEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYSBkYXRhIDInOwokbGFuZ1snZXh0cmEzJ10gPSAnRXh0cmEgZGF0YSAzJzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnVGVydWcnOwokbGFuZ1snbXNnX2NvbXBhbnljb3BpZWQnXSA9ICdCZWRyaWpmIGdla29waWVlcmQuLi4gd2lqemlnIGRlIGJlZHJpamZzZ2VnZXZlbnMgdm9vciBkaXQgbmlldXdlIGJlZHJpamYnOwokbGFuZ1snY29weSddID0gJ0tvcGllZXInOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFZW4gbW9kdWxlIHZvb3IgaGV0IGJpamhvdWRlbiB2YW4gYmVkcmlqZnNnZWdldmVucy4gSGllcm1lZSBrdW50IHUgYmVkcmlqZnNnZWdldmVucyBiaWpob3VkZW4sIGltcG9ydGVuLCBleHBvcnRlcmVuLCBkb29yem9la2VuLCBlbiBpbiB2ZXJzY2hpbGxlbmRlIG1hbmllcmVuIG9wIGRlIHdlYnNpdGUgdG9uZW4uIERlemUgbW9kdWxlIHdlcmt0IGdvZWQgc2FtZW4gbWV0IENHR29vZ2xlTWFwcy4nOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0ltcG9ydGVyZW4gZ2VzbGFhZ2QnOwokbGFuZ1sncHJvbXB0X2hpZXJhcmNoaWVzX2ltcG9ydGVkJ10gPSAnSGllcmFyY2hpZSBQb3NpdGllcyBBYW5nZW1hYWt0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcyddID0gJ0ltcG9ydGVlciBIaWVyYXJjaGllIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0ZWVyIEhpZXJhcmNoaWUgV2FhcmRlbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfaGllcmFyY2h5J10gPSAnRm91dCBiaWogaGV0IGFhbm1ha2VuIHZhbiBoaWVyYXJjaGllICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9oaWVyYXJjaHknXSA9ICdFZW4gaGllcmFyY2hpZSBtZXQgZGUgbmFhbSAmcXVvdDslcyZxdW90OyBiZXN0YWF0IGFsLic7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0JlZHJpamYgdmVyd2lqZGVyZCc7CiRsYW5nWydlcnJvcl91cGxvYWQnXSA9ICdGb3V0IG9wZ2V0cmVkZW4gYmlqIGhldCB1cGxvYWRlbiB2YW4gaGV0IGJlc3RhbmQnOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnVSBtb2V0IGVlbiB2ZWxkc2NoZWlkaW5nc3Rla2VuIGJlbm9lbWVuJzsKJGxhbmdbJ2Vycm9yX25vc3BvdHNsZWZ0J10gPSAnVSBoZWVmdCBnZWVuIGxlZ2UgYmVkcmlqZnNwbGFhdHNlbiBtZWVyJzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdVIGhlZWZ0ICVkIHZhbiAlZCBiZWRyaWpmc3BsYWF0c2VuIGdlYnJ1aWt0JzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1NlbGVjdGVlciBDU1YgQmVzdGFuZCc7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdTY2hlaWRpbmdzdGVrZW4gdmVsZGVuJzsKJGxhbmdbJ2luZm9fY3N2ZmlsZSddID0gJ0hldCBpcyBtb2dlbGlqayBvbSBiZWRyaWpmc2luZm9ybWF0aWUgcmVjaHRzdHJlZWtzIHRlIGltcG9ydGVyZW4gdWl0IGVlbiBBU0NJSSBiZXN0YW5kLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnRGl0IHNqYWJsb29uIGlzIGVlbiBmb3JtdWxpZXIgZGllIGdlYnJ1aWt0IHdvcmR0IGRvb3IgZ2VhdXRvcmlzZWVyZGUgZnJvbnRlbmQgdXNlcnMgb20gZGF0YSB0ZSBpbXBvcnRlcmVuIHVpdCBlZW4gZ29lZCBvcGdlc3RlbGQgQ1NWIGJlc3RhbmQnOwokbGFuZ1snZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZSddID0gJ0Zyb250ZW5kIENTViBJbXBvcnRlZXIgU2phYmxvb24nOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdTdGEgRnJvbnRlbmRVc2VycyB0b2Ugb20gbWV0IENTViByZWNvcmRzIHRlIGltcG9ydGVyZW4/JzsKJGxhbmdbJ3BhcmFtX2hpZXJsaXN0dGVtcGxhdGUnXSA9ICdTcGVjaWZpY2VlciBlZW4gc2phYmxvb24gKG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiBpbiBkZSBoaWVyYXJjaGllIGxpanN0IG92ZXJ6aWNodGVuLic7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gSGllcmFyY2hpZSBMaWpzdCBTamFibG9uZW4nOwokbGFuZ1sndGl0bGVfaGllcmxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIEhpZXJhcmNoaWUgTGlqc3QgU2phYmxvbmVuJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaGllIExpanN0IFNqYWJsb25lbic7CiRsYW5nWydwYXJhbV9oaWVyJ10gPSAnVG9lcGFzYmFhciBpbiBkZSA8ZW0+ZGVmYXVsdDwvZW0+IGVuIDxlbT5oaWVybGlzdDwvZW0+IGFjdGllcywgZGV6ZSBwYXJhbWV0ZXIgc3RhYXQgaGV0IGJlbm9lbWVuIHZhbiBlZW4gaGllcmFyY2hpZSBuYWFtIHZhbiBiZWRyaWp2ZW4gdG9lLiAgSW4gZGUgZGVmYXVsdCBhY3RpZSwgd29yZGVuIHdpbGRjYXJkcyBnZWFjY2VwdGVlcmQsIGJpanYuOiAmcXVvdDsqc29tZWhpZXJhcmNoeW5hbWUqJnF1b3Q7LiAgQWwgaG9ld2VsIGluIGRlIGhpZXJsaXN0IGFjdGllLCBkZXplIHBhcmFtZXRlciBlZW4gdW5pZWtlIG5hYW0gb2YgaGllcmFyY2h5IHBvc2l0aWUgbW9ldCBiZXZhdHRlbiwgZW4gemFsIGRlIHN0YXJ0IGxvY2F0aWUgdmFuIGhldCBvdmVyemljaHQgYmVwYWxlbi4nOwokbGFuZ1sncGFyYW1faGllcl9jaGlsZHJlbiddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGJvb2xlYW4gKDAgb3IgMSkgdmFsdWUgaW5kaWNhdGluZyB3ZXRoZXIgY2hpbGQgaGllcmFyY2hpZXMgc2hvdWxkIGJlIGluY2x1ZGVkIHdoZW4gZ2VuZXJhdGluZyBhIHN1bW1hcnkgdmlldyBmb3IgYSBzcGVjaWZpYyBoaWVyYXJjaHknOwokbGFuZ1snbXNnX2hpZXJkZWxldGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIHZlcndpamRlcmQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIGJpamdld2Vya3QnOwokbGFuZ1snbXNnX2hpZXJhZGRlZCddID0gJ0hpZXJhcmNoaWUgcG9zaXRpZSB0b2VnZXZvZWdkJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdIaWVyYXJjaGllIHRvZXZvZWdlbic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2FkZF9lZGl0X2NhdGVnb3J5J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIENhdGVnb3JpZSc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4nOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ1NqYWJsb25lbic7CiRsYW5nWydub25lJ10gPSAnR2Vlbic7CiRsYW5nWydvd25lciddID0gJ0VpZ2VuYWFyJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdHZW1hYWt0JzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnR2V3aWp6aWdkJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4gb2Ygd2lqemlnZW4gdmFuIGVlbiBGcm9udGVuZCBMaWpzdCBTamFibG9vbic7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdNYWcgZWVuIGZyb250ZW5kIGdlYnJ1aWtlciBkZSBzdGF0dXMgdmFuIGVlbiBiZWRyaWpmIHdpanppZ2VuPyc7CiRsYW5nWydwcm9tcHRfZmV1X25ld19zdGF0dXMnXSA9ICdTdGFuZGFhcmQgc3RhdHVzIHZvb3IgbmlldXdlIHJlY29yZHMgYWFuZ2VtYWFrdCB2aWEgZGUgZnJvbnRlbmQnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBGcm9udGVuZCBMaWpzdCBTamFibG9vbic7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaWpzdCBTamFibG9uZW4nOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdBbGdlbWVuZSBpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9lZGl0X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgV2lqemlnaW5nc2luc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfZmV1X2NyZWF0ZSddID0gJ01hZyBlZW4gRnJvbnRFbmRVc2VycyBuaWV1d2UgcmVjb3JkcyBhYW5tYWtlbj8nOwokbGFuZ1sncHJvbXB0X2ZldV9udW1yZWNvcmRzJ10gPSAnTWF4aW1hYWwgYWFudGFsIHJlY29yZHMgZGF0IGthbiB3b3JkZW4gZ2Vhc3NvY2llZXJkIG1ldCBlZW4gRkVVIGFjY291bnQnOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnQWFudGFsIHRlIGltcG9ydGVyZW4gcmVjb3Jkcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlX25hbWUnXSA9ICdDb250cm9sZWVyIG9wIGR1YmJlbGUgYmVkcmlqZnNuYW1lbic7CiRsYW5nWydwcm9tcHRfc3RhdHVzJ10gPSAnU3RhdHVzIHZhbiBkZSBnZSZpdW1sO21wb3J0ZWVyZGUgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9pZ25vcmVfYWRkcmVzcyddID0gJ05lZ2VlciBhZHJlc3ZlbGQnOwokbGFuZ1sncHJvbXB0X2NvbnZlcnRfYWRkcmVzcyddID0gJ0NvbnZlcnRlZXIgYWRyZXNzZW4gbmFhciBjbyZvdW1sO3JkaW5hdGVuIChhbHMgZXIgZ2VlbiBjbyZvdW1sO3JkaW5hdGVuIHppam4gaW5nZXZvZXJkKSc7CiRsYW5nWydwcm9tcHRfa21sZmlsZSddID0gJ1RlIGltcG9ydGVyZW4gS01MIGJlc3RhbmQnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0ZWVyIEtNTCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZWVyIEtNTCBCZXN0YW5kJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ0tpZXMgJmVhY3V0ZTsmZWFjdXRlO24nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnT20gZGV6ZSBmdW5jdGllIHRlIGdlYnJ1aWtlbiBtb2V0IHUgaW5nZWxvZ2QgemlqbiBvcCBkZSB3ZWJzaXRlJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGllZic7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGluayB0b2V2b2VnZW4nOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWUgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdCZWRyaWpmIHRvZXZvZWdlbic7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdBbGxlZW4gemljaHRiYWFyIHZvb3IgYmVoZWVyZGVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGl0IHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ09wbG9wZW5kJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0t1bm5lbiBmcm9udGVuZCBnZWJydWlrZXJzIGRpdCB2ZWxkIGJld2Vya2VuPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0t1bm5lbiBmcm9udGVuZCBnZWJydWlrZXJzIGRpdCB2ZWxkIHppZW4/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUmZXVtbDtuJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcmllIHRvZWdldm9lZ2QnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnQ2F0ZWdvcmllIGJpamdld2Vya3QnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0NhdGVnb3JpZWxpanN0c2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3JpZWxpanN0c2phYmxvb24nOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnQ2F0ZWdvcmllbGlqc3QgYmlqZ2V3ZXJrdCc7CiRsYW5nWydjb21wYW55J10gPSAnQmVkcmlqZic7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdCZWRyaWpmIHRvZWdldm9lZ2QnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdCZWRyaWpmc25hYW0nOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdCZWRyaWpmIGJpamdld2Vya3QnOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnQmVkcmlqdmVuJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnQmVkcmlqZic7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnQ29tcGFueSBEaXJlY3RvcnkgJzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ0NvbnRhY3QgRS1tYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdG9lZ2V2b2VnZCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhYXJkc2phYmxvbmVuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5PcG1lcmtpbmc6PC9zdHJvbmc+IERlIGluaG91ZCB2YW4gZGV6ZSB0ZWtzdHZlbGRlbiB3b3JkZW4gZ2VicnVpa3Qgb20gZGUgc3RhbmRhYXJkIGluaG91ZCB2YW4gZGUgc2phYmxvbmVuIHRlIGJlcGFsZW4gYWxzIHUgJnF1b3Q7U2phYmxvb24gdG9ldm9lZ2VuJnF1b3Q7IGtsaWt0LCBpbiBoZXQganVpc3RlIHNqYWJsb29uIHRhYmJsYWQuIEJld2Vya2VuIHZhbiBlZW4gdmFuIGRlemUgdGVrc3RlbiB6YWwgZ2VlbiBkaXJlY3QgZWZmZWN0IGhlYmJlbiBvcCB1dyB3ZWJzaXRlLiAnOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWUgdmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ0JlZHJpamYgdmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdWZWxkZGVmaW5pdGllIHZlcndpamRlcmVuJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBZmxvcGVuZCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2NocmlqdmluZyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlscyAnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhaWxzICc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRGV0YWlsc2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFpbHNqYWJsb29uJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0RldGFpbHNqYWJsb29uIGJpamdld2Vya3QnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ2Rvd24nXSA9ICdOZWVyJzsKJGxhbmdbJ2RyYWZ0J10gPSAnQ29uY2VwdCc7CiRsYW5nWydlZGl0J10gPSAnQmV3ZXJrZW4nOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnQ2F0ZWdvcmllIGJld2Vya2VuJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnQmVkcmlqZiBiZXdlcmtlbic7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdWZWxkZGVmaW5pdGllIGJld2Vya2VuJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCAnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnRXIgaXMgZWVuIHByb2JsZWVtIG9wZ2V0cmVkZW4gYmlqIGhldCB1cGxvYWRlbiB2YW4gaGV0IGJlc3RhbmQnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWUnXSA9ICdCZWRyaWpmc25hYW0gaXMgb25nZWxkaWcnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdFZW4gYmVkcmlqZiBtZXQgZGV6ZSBuYWFtIGJlc3RhYXQgYWwgaW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gY2F0ZWdvcmllIG1ldCBkZXplIG5hYW0nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdFciBiZXN0YWF0IGFsIGVlbiBiZWRyaWpmIG1ldCBkZXplIG5hYW0gKCVzKSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdFciBiZXN0YWF0IGFsIGVlbiB2ZWxkIG1ldCBkZXplIG5hYW0nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdGb3V0ZSByZWNvcmQgZ2V2b25kZW4gaW4gcmVnZWwgJWQuICBNaXN0IGVyIGVlbiByZWdlbD8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRXIgaXMgZWVuIHZlcmtlZXJkZSB3YWFyZGUgZ2V2b25kZW4gdm9vciBoZXQgJXMgdmVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1YmJlbGUgJXMgcmVnZWwgYmlqIHJlZ2VsICVkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlX2lkZW50aWZpZXInXSA9ICdEdWJiZWxlIHJlZ2VsIGdldm9uZGVuIGJpaiByZWdlbCAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ09uZHVpZGVsaWprIGhvZSByZWdlbCAlZCBtZXQgcmVnZWwgc2xldXRlbCAlcyB2ZXJ3ZXJrdCBkaWVudCB0ZSB3b3JkZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25ydWxlJ10gPSAnT25iZWtlbmRlIHJlZ2VsIGJpaiByZWdlbCAlZCc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY2F0ZWdvcnknXSA9ICdFZW4gZGF0YWJhc2UgZm91dCBpcyBvcGdldHJlZGVuIHRpamRlbnMgaGV0IGFhbm1ha2VuIHZhbiBlZW4gY2F0ZWdvcmllIGRlZmluaXRpZSc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0VlbiBkYXRhYmFzZSBmb3V0IGlzIG9wZ2V0cmVkZW4gdGlqZGVucyBoZXQgYWFubWFrZW4gdmFuIGVlbiBiZWRyaWpmIGRlZmluaXRpZSc7CiRsYW5nWydlcnJvcl9pbnNlcnRfZmllbGRkZWYnXSA9ICdFZW4gZGF0YWJhc2UgZm91dCBpcyBvcGdldHJlZGVuIHRpamRlbnMgaGV0IGFhbm1ha2VuIHZhbiBlZW4gdmVsZCBkZWZpbml0aWUnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ0RlIGdlc3BlY2lmaWNlZXJkZSB3YWFyZGUgdm9vciAlcyBpcyBuaWV0IGNvcnJlY3QnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ0VyIGlzIGdlZW4gYmVzdGFuZCBnZSZ1dW1sO3Bsb2FkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiB2ZXJwbGljaHRlIHdhYXJkZSBpcyBuaWV0IGFhbndlemlnIGJpaiBkZSBmb3JtdWxpZXJpbmdhdmUnOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdHZWVuIGRyb3Bkb3duIG9wdGllcyBpbmdldm9lcmQnOwokbGFuZ1snZXJyb3Jfbm9mZXUnXSA9ICdLYW4gZGUgRnJvbnRFbmRVc2Vycy1tb2R1bGUgbmlldCB2aW5kZW4nOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdHZWVuIG1heGltdW0gdmVsZGxlbmd0ZSBpbmdldm9lcmQnOwokbGFuZ1snZXJyb3Jfbm9yZXN1bHRzZm91bmQnXSA9ICdFciBrYW4gZ2VlbiByZWNvcmQgd29yZGVuIGdldm9uZGVuIGluIGRlIGRhdGFiYXNlIGRpZSBhYW4gdXcgY3JpdGVyaWEgdm9sZG9ldCc7CiRsYW5nWydlcnJvcl9wb3N0Y29kZV9sb29rdXAnXSA9ICdLYW4gZ2VlbiBpbmZvcm1hdGllIHZpbmRlbiBiaWogZGUgcG9zdGNvZGUgJXMnOwokbGFuZ1snZXJyb3JfcHJlZml4X21zZyddID0gJ0VyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gYmlqIHJlZ2VsICVkOiAlcyc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRlcmVuIG5hYXIgQ1NWJzsKJGxhbmdbJ2ZheCddID0gJ0ZheCAnOwokbGFuZ1snZmF4dGV4dCddID0gJ0ZheCAnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdWZWxkZGVmaW5pdGllJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ1ZlbGRkZWZpbml0aWVzJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ1ZlbGRkZWZpbml0aWUnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ1ZlbGRkZWZpbml0aWUgdG9lZ2V2b2VnZCc7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdWZWxkZGVmaW5pdGllIGJpamdld2Vya3QnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnVmVsZGRlZmluaXRpZSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnVmlua3Zha2plJzsKJGxhbmdbJ2ZpZWxkX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24gJzsKJGxhbmdbJ2ZpZWxkX3RleHRhcmVhJ10gPSAnVGVrc3QgcnVpbXRlJzsKJGxhbmdbJ2ZpZWxkX3RleHRib3gnXSA9ICdUZWtzdCBJbnZvZXInOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwgJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdGcm9udGVuZC1mb3JtdWxpZXJzamFibG9vbiB0b2VnZXZvZWdkL2Jpamdld2Vya3QnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnQmVkcmlqZnNzamFibG9uZW4gYmV3ZXJrZW4nOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnQmVkcmlqZnNzamFibG9vbiBiaWpnZXdlcmt0JzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnU3BlY2lmaWNlZXIgZGUgb3B0aWVzIHZvb3IgZGUgZHJvcGRvd24gY29udHJvbGUuICBFZW4gcmVnZWwgcGVyIG9wdGllLiAgU2NoZWlkdCBkZSB2YXJpYWJlbGVuIHZhbiBkZSB3YWFyZGVzIG1ldCBlZW4gPS4gIGJpanYuOiB2YXJpYWJlbGU9d2FhcmRlJzsKJGxhbmdbJ2ltYWdlY3VycmVudGhpZGRlbiddID0gJyAnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnQWZiZWVsZGluZyc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnRlZXIgQ1NWJzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnTGF0aXR1ZGUgJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4gJzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnICc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28gJzsKJGxhbmdbJ2xvbmdpdHVkZSddID0gJ0xvbmdpdHVkZSAnOwokbGFuZ1snbG9va3VwJ10gPSAnQ28mb3VtbDtyZGluYXRlbiBvcHpvZWtlbic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXguIGxlbmd0ZSc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4LiBsZW5ndGUnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heC4gbGVuZ3RlJzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdHVtIGxhYXRzdGUgYWFucGFzc2luZyc7CiRsYW5nWyduYW1lJ10gPSAnTmFhbSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hYW0nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdVIGhlZWZ0ICYjMDM5OyVzJiMwMzk7IHJlY2h0ZW4gbm9kaWcgb20gZGV6ZSBmdW5jdGllIHVpdCB0ZSB2b2VyZW4uJzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ0dlZW4gYmVkcmlqZnNuYWFtIG9wZ2VnZXZlbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0dlZW4gbmFhbSBvcGdlZ2V2ZW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ0dlZW4gbnVtbWVyJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPiAnOwokbGFuZ1snb2YnXSA9ICdWYW4nOwokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdCZXBhYWwgaGV0IGhvb2ZkZ2VkcmFnIHZhbiBkZXplIG1vZHVsZS4gTW9nZWxpamtlIHdhYXJkZW4gdm9vciBkZXplIHBhcmFtZXRlciB6aWpuOg0KPHVsPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+DQogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gRGlzcGxheSBjb21wYW5pZXMgaW4gYSBzdW1tYXJ5IG1vZGUuPC9saT4NCiAgPGxpPmRldGFpbHMgLS0gRGlzcGxheSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCjxsaT5mcm9udGVuZGxpc3QgLS0gRGlzcGxheSBsaXN0IG9mIGFsbCBvZiBhIHVzZXJzIGNvbXBhbnkgZW50cmllcyBvbiB0aGUgZnJvbnRlbmQsIHdpdGggdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gYWRkIGl0ZW1zLjwvbGk+DQogIDxsaT5zZWFyY2ggIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBmb3Igc3BlY2lmaWMgY29tcGFuaWVzLjwvbGk+DQogIDxsaT5icm93c2VoaWVyIC0tIERpc3BsYXkgYSBsaXN0IG9mIGhpZXJhcmNoaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlIGFuZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+DQogICANCjwvdWw+DQoNCic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWlkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgYW5kIG9ubHkgd2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIHBvcHVsYXRlZCB3aXRoIGRhdGEuICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aG9zZSB3aG8gaGF2ZSBjaGVja2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgKGludGVnZXIpIGFjdGl2aXR5IGlkLic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWNoaWxkcmVuJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgYW5kIG9ubHkgd2hlbiB0aGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIHBvcHVsYXRlZCB3aXRoIGRhdGEuICBUaGlzIHBhcmFtZXRlciB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBhY3Rpdml0eWlkIHBhcmFtZXRlciBhbGxvd3MgZmlsdGVyaW5nIGNvbXBhbmllcyBieSB0aG9zZSB3aG8gaGF2ZSBjaGVja2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgKGludGVnZXIpIGFjdGl2aXR5IGlkIGFuZCB0aGVpciBjaGlsZCBhY3Rpdml0aWVzLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBbGxlZW4gdG9lcGFzYmFhciBpbiBkZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnksIGVuIDxlbT5zZWFyY2g8L2VtPiBtb2R1cywgZGV6ZSBwYXJhbWV0ZXIgbWFha3QgaGV0IG1vZ2VsaWprIG9tIHRlIHNwZWNpZmljZXJlbiBvZiBkZSByZXN1bHRhYXQgZ2VnZXZlbnMgaGV0IHN0YW5kYWFyZCBpbmhvdWRzIGJsb2sgZGllbnQgdGUgb3ZlcnNjaHJpanZlbiBvciBkZSBvcmlnaW5lbGUgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBbGxlZW4gdG9lcGFzYmFhciBpbiBkZSA8ZW0+c2VhcmNoPC9lbT4gbW9kdXMsIGRlemUgcGFyYW1ldGVyIHN0YWF0IGhldCBzcGVjaWZpY2VyZW4gdmFuIGVlbiBuaWV0LXN0YW5kYWFyZCB6b2VrZm9ybXVsaWVyIHNqYWJsb29uIHRvZS4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnSW5kaWVuIGdlYnJ1aWt0IGluIGRlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2R1cywgb2YgaW4gZGUgPGVtPnNlYXJjaDwvZW0+IG1vZHVzLCB6YWwgZGl0IGhldCByZXN1bHRhYXQgbGltaXRlcmVuIHRvdCBlZW4gZ2VzcGVjaWZpY2VlcmQgYWFudGFsLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWlkJ10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBvbiBhIHNpbmdsZSBjYXRlZ29yeSBieSBzcGVjaWZ5aW5nIGl0cyBpbnRlZ2VyIGlkLiAgVGhpcyBwYXJhbWV0ZXIgY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnksY2F0ZWdvcnkyLCBvciBvdGhlciBjYXRlZ29yeSBmaWx0ZXJpbmcgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdBbHMgZGV6ZSBwYXJhbWV0ZXIsIHdhYXJ2YW4gZGUgbmFhbSBnZWxpamsgbW9ldCB6aWpuIGFhbiBlZW4gYmVzdGFhbmRlIGNhdGVnb3JpZSwgaW4gZGUgPGVtPnN0YW5kYWFyZDwvZW0+c2FtZW52YXR0aW5nc21vZHVzIHdvcmR0IGdlYnJ1aWt0LCBkYW4gd29yZHQgZGV6ZSBwYXJhbWV0ZXIgYWxsZWVuIGJlbnV0IG9tIGRpZSBiZWRyaWp2ZW4gdGUgdG9uZW4gZGllIGluIGRlIGNhdGVnb3JpZSB6aXR0ZW4gKGVlbiBrb21tYWdlc2NoZWlkZW4gbGlqc3Qga2FuIGhpZXIgd29yZGVuIGdlYnJ1aWt0KS4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdHZWVmIGVlbiBzamFibG9vbiAoZGUgbmFhbSkgb3AgZGllIGdlYnJ1aWt0IHdvcmR0IGFscyBkZSBjYXRlZ29yaWVsaWpzdHdlZXJnYXZlIHdvcmR0IGdldG9vbmQuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1ZlcmVpc3Qgdm9vciBkZSBmcm9udC1lbmQgYmV3ZXJrLSBlbiBkZXRhaWxtb2RpLiBEZXplIHBhcmFtZXRlciBiZXBhYWx0IHdlbGsgYmVkcmlqdmVucmVjb3JkIGJld2Vya3Qgb2YgYmVrZWtlbiB3b3JkdC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZWNpZmljZWVyIGVlbiBwYWdpbmEtYWxpYXMgKGRlIG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiB2b29yIHdlZXJnYXZlIHZhbiBlZW4gZGV0YWlscmVjb3JkLiA8c3Ryb25nPk1lcmsgb3A6PC9zdHJvbmc+IGRlemUgdGFnLXBhcmFtZXRlciBpcyBuaWV0IGNvbXBhdGlibGUgbWV0IHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZmljZWVyIGVlbiBzamFibG9vbiAoZGUgbmFhbSkgb20gdGUgZ2VicnVpa2VuIHZvb3IgZGUgd2VlcmdhdmUgdmFuIGRlIGRldGFpbHdlZXJnYXZlLiAgPHN0cm9uZz5NZXJrIG9wOjwvc3Ryb25nPiBkZXplIHRhZy1wYXJhbWV0ZXIgaXMgbmlldCBjb21wYXRpYmxlIG1ldCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgYW4gYWxidW0gb2YgaW1hZ2VzIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBhbnkuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNlZXIgZWVuIHNqYWJsb29uIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciBoZXQgZnJvbnQtZW5kIGJlZHJpanZlbmJld2Vya2Zvcm11bGllci4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0Vua2VsIHRvZXBhc2JhYXIgb3AgZGUgY2F0ZWdvcnlsaXN0IGFrdGllLiBBbHMgZGV6ZSBwYXJhbWV0ZXIgd29yZHQgZ2V6ZXQsIHdvcmRlbiBvb2sgY2F0ZWdvcmllbiB2YW4gbmlldCBtYXRjaGVuZGUgYmVkcmlqdmVuIHdlZXJnZWdldmVuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZmljZWVyIGRlIHZvbGdvcmRlIHZhbiBkZSBzb3J0ZWVydmVsZGVuIGluIGRlIHNhbWVudmF0dGluZ3N3ZWVyZ2F2ZS4gTW9nZWxpamsgd2FhcmRlbiB6aWpuOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gb3Bsb3BlbmRlIHZvbGdvcmRlPC9saT4NCiAgPGxpPmRlc2MgLS0gYWZsb3BlbmRlIHZvbGdvcmRlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBjb21wYW5pZXMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOiANCjx1bD4NCjxsaT5pZCAtLSBUaGUgaW50ZXJuYWwgY29tcGFueSBpZDwvbGk+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5waG9uZTwvbGk+DQogIDxsaT5mYXg8L2xpPg0KICA8bGk+ZW1haWw8L2xpPg0KICA8bGk+d2Vic2l0ZSAtLSBUaGUgd2Vic2l0ZSB1cmw8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5zdGF0dXM8L2xpPg0KICA8bGk+cmFuZG9tIC0tIFNvcnQgdGhlIGl0ZW1zIHJhbmRvbWx5LjwvbGk+DQogIDxsaT5mOmZpZWxkIG5hbWUgLS0gU29ydCBieSBwdWJsaWMgY3VzdG9tIGZpZWxkcy4gVGhlIG91dHB1dCB3aWxsIGJlIHNvcnRlZCBieSB0aGUgbmFtZWQgY3VzdG9tIGZpZWxkLjxici8+DQogIDxsaT5tb3N0Y2hlY2tpbnMgLS0gPGVtPihPbmx5IHdoZW4gQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIGluc3RhbGxlZCk8L2VtPiBTb3J0IG91dHB1dCBieSB0aGUgY29tcGFuaWVzIChsb2NhdGlvbnMpIHRoYXQgaGF2ZSB0aGUgbW9zdCBjaGVja2lucy48L2xpPg0KICA8bGk+bW9zdGZhdm9yaXRlIC0tIDxlbT4oT25seSB3aGVuIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQpPC9lbT4gU29ydCBvdXRwdXQgYnkgdGhlIGNvbXBhbmllcyAobG9jYXRpb25zKSB0aGF0IGhhdmUgdGhlIG1vc3QgZmF2b3JpdGVzLjwvbGk+DQogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFlvdSBtYXkgbmVlZCB0byB1c2UgcXVvdGVzIGlmIHRoZSBmaWVsZCBuYW1lIGhhcyBzcGFjZXMuPGJyLz4NCiAgPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gVGhlIGZpZWxkIHNwZWNpZmllZCBtdXN0IGJlIG1hcmtlZCBhcyBwdWJsaWMuDQogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFdoZW4gdXNpbmcgY3VzdG9tIGZpZWxkIHNvcnRpbmcsIFlvdSBtYXkgYWxzbyBzcGVjaWZ5IGEgZmxhZyBhZnRlciB0aGUgZmllbGQgbmFtZSB0byBpbmRpY2F0ZSB0aGF0IGludGVnZXIgc29ydGluZyBzaG91bGQgYmUgcGVyZm9ybWVkLiAgaS5lOiA8Y29kZT5zb3J0Ynk9ZjpjdXN0b21fb3JkZXJpbmc6aTwvY29kZT48YnIvPjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdTcGVjaWZpY2VlciBlZW4gc2phYmxvb24gKGRlIG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiB2b29yIGRlIHdlZXJnYXZlIHZhbiBkZSBzYW1lbnZhdHRpbmdzd2VlcmdhdmUuICA8c3Ryb25nPk1lcmsgb3A6PC9zdHJvbmc+IGRlemUgdGFnLXBhcmFtZXRlciBpcyBuaWV0IGNvbXBhdGlibGUgbWV0IHByZXR0eSB1cmxzLic7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3Rjb2RlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGUgQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIGlzIGdlJml1bWw7bnN0YWxsZWVyZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGUgQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIGlzIGdlZGUmaXVtbDtuc3RhbGxlZXJkLiBBbGxlIGdla29wcGVsZGUgYmVkcmlqZnNnZWdldmVucyB6aWpuIHZlcndpamRlcmQnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnV2VldCB1IHpla2VyIGRhdCBkZXplIG1vZHVsZSBnZWRlJml1bWw7bnN0YWxsZWVyZCBtb2V0IHdvcmRlbj8gRGUmaXVtbDtuc3RhbGxlcmVuIHZlcndpamRlcnQgYWxsZSBnZWtvcHBlbGRlIGJlZHJpamZzZ2VnZXZlbnMgcGVybWFuZW50ISc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwgJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnQ2F0ZWdvcmkmZXVtbDtuIEdlJml1bWw7bXBvcnRlZXJkJzsKJGxhbmdbJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJ10gPSAnQ29udHJvbGVyZW4gb3AgZHViYmVsZSBiZWRyaWpmc25hbWVuPyc7CiRsYW5nWydwcm9tcHRfY29sbGVjdHN0YXRzJ10gPSAnVmVyemFtZWwgWm9layBTdGF0aXN0aWVrZW4nOwokbGFuZ1sncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCddID0gJ0JlZHJpanZlbiBnZSZpdW1sO21wb3J0ZWVyZCc7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnVmVsZCBTY2hlaWRpbmdzdGVrZW4nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZSBzdGFuZGFhcmRwYWdpbmEgd2Fhcm5hYXIgd29yZHQgdmVyd2V6ZW4gaW4gZGUgZGV0YWlsbW9kdXMnOwokbGFuZ1sncHJvbXB0X2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdEcm9wZG93biBPcHRpZXMnOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ1ZlbGQgZGVmaW5pdGllcyBnZSZpdW1sO21wb3J0ZWVyZCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5ZGVmcyddID0gJ05pZXQgYWFud2V6aWdlIGNhdGVnb3JpJmV1bWw7biBjcmUmZXVtbDtyZW4gYmlqIGhldCBpbXBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnVnVsbGVuIHZhbiBjYXRlZ29yaWUgd2FhcmRlbiBiaWogaW1wb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdVcGxvYWQgQ1NWIEJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdBYW5tYWtlbiBuaWV0IGFhbndlemlnZSAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpZXMgdGlqZGVucyBoZXQgaW1wb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1Z1bGxlbiB2YW4gJnF1b3Q7YWRkaXRpb25hbCBmaWVsZCZxdW90OyB3YWFyZGVuIGJpaiBpbXBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfbG9va3VwbGF0bG9uZyddID0gJ0xhdGl0dWRlIGVuIGxvbmdpdHVkZSB3YWFyZGVuIG9wem9la2VuIGluZGllbiBuaWV0IGFhbndlemlnJzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdIZXQgYWFudGFsIHdlZXJ0ZWdldmVuIHJlY29yZHMgcGVyIHBhZ2luYSBpbiBkZSBzYW1lbnZhdHRpbmdzbW9kdXMgJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYWFyZHNvcnRlcmluZyBpbiBkZSBzYW1lbnZhdHRpbmdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZSBzdGFuZGFhcmRzb3J0ZWVydm9sZ29yZGUgaW4gZGUgc2FtZW52YXR0aW5nc21vZHVzIDxlbT4oZ2VsZHQgbmlldCBhbHMgaGV0IHNvcnRlcmVuICYjMDM5O3JhbmRvbSYjMDM5OyBpczwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmxpZWsnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnR2VwdWJsaWNlZXJkJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVm9vcmtldXJlbic7CiRsYW5nWydyYWRpdXMnXSA9ICdSYWRpdXMgJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1dpbGxla2V1cmlnJzsKJGxhbmdbJ3JldHVybiddID0gJ1RlcnVnJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnSGVyc3RlbCBuYWFyIHN0YW5kYWFyZCc7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ0RlemUgYmV3ZXJraW5nIHphbCBkZSBzamFibG9vbmluaG91ZCBoZXJzdGVsbGVuIG5hYXIgZGUgc3lzdGVlbXN0YW5kYWFyZC4gV2VldCB1IHpla2VyIGRhdCB1IHZlcmRlciB3aWx0IGdhYW4/JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1pvZWsnOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdab2Vrb3BkcmFjaHRlbic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvbmVuJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuIC8gd2lqemlnZW4gdmFuIGVlbiBab2VrIEZvcm11bGllciBTamFibG9vbic7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMgJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1ZlcnN0dXJlbic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1NhbWVudmF0dGluZ3NzamFibG9vbiB0b2V2b2VnZW4vYmV3ZXJrZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbWVudmF0dGluZ3NzYWJsb25lbic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAnU2FtZW52YXR0aW5nc3NqYWJsb29uIGJpamdld2Vya3QnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdTdGFuZGFhcmR3YWFyZGVuIGhlcnN0ZWxsZW4nOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsZWZvb24nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ1RlbGVmb29uJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgQ2F0ZWdvcmllbGlqc3RzamFibG9vbic7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIERldGFpbHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRnJvbnRlbmQgZm9ybXVsaWVyc2phYmxvb24nOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ0NTViBJbXBvcnQgUmFwcG9ydCc7CiRsYW5nWyd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBab2VrIEZvcm11bGllciBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBTYW1lbnZhdHRpbmdzc2phYmxvb24nOwokbGFuZ1sndHlwZSddID0gJ1R5cGUgJzsKJGxhbmdbJ3R5cGV0ZXh0J10gPSAnVHlwZSAnOwokbGFuZ1sndXAnXSA9ICdPcCc7CiRsYW5nWyd2aWV3X3dlYnNpdGUnXSA9ICdHYSBuYWFyIGRlIHdlYnNpdGUnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYnNpdGUgJzsKJGxhbmdbJ3dlYnNpdGV0ZXh0J10gPSAnV2Vic2l0ZSAnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNTQzNTI4MjI3LjEzNzM2NTQ5MDYuMTM3MzY1NDkwNi4xMzczNjU0OTA2LjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzczNjU0OTA2LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdHl3bnknOwokbGFuZ1snYWRkbGluayddID0gJ0RvZGFqIGxpbmsnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdEb2RhaiBrYXRlZ29yacSZJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdEb2RhaiBmaXJtxJknOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdEb2RhaiBkZWZpbmljasSZIHBvbGEnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ1dpZG9jem5lIHR5bGtvIGRsYSBBZG1pbmEnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0N6eSBuYSBwZXdubyBjaGNlc3ogdG8gdXN1bsSFxIc/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Jvc27EhWNvJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1dyJm9hY3V0ZTvEhyc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0N6eSBVxbx5dGtvd25pY3kgRkVVIG1vZ8SFIGVkeXRvd2HEhyB0byBwb2xlPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0N6eSBVxbx5dGtvd25pY3kgRkVVIG1vZ8SFIG9nbMSFZGHEhyB0byBwb2xlPyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmlhIHpvc3RhxYJhIGRvZGFuYSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWEgem9zdGHFgmEgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnTGlzdGEga2F0ZWdvcmlpIHpvc3RhxYJhIHpha3R1YWxpem93YW5hJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdGaXJtYSBkb2RhbmEnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdOYXp3YSBmaXJteSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Zpcm1hIHpha3R1YWxpem93YW5hJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Zpcm15JzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnRmlybWEnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0thdGFsb2cgZmlybSc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdFbWFpbCBrb250YWt0b3d5JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnV3Bpc2FuYSBkYXRhJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBkb215xZtsbmUnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlV3YWdhOjwvc3Ryb25nPiBUcmXFm8SHIHR5Y2ggcCZvYWN1dGU7bCB0ZWtzdG93eWNoIGplc3QgdcW8eXdhbmEgYnkgb2tyZcWbbGnEhyBkb215xZtsbsSFIHRyZcWbxIcgc3phYmxvbnUgc3Ryb255LCBrdCZvYWN1dGU7cmEgcG9rYcW8ZSBzacSZLCBnZHkga2xpa25pZXN6ICZxdW90O0RvZGFqIHN6YWJsb24mcXVvdDsgdyBvZHBvd2llZG5pZWogemFrxYJhZGNlIHN6YWJsb24mb2FjdXRlO3cuIEVkeXRvd2FuaWUgamVkbmVnbyB6IHBvbmnFvHN6eWNoIHAmb2FjdXRlO2wgdGVrc3Rvd3ljaCBuaWUgYsSZZHppZSBtaWHFgm8gb2R6d2llcmNpZWRsZW5pYSBuYSBUd29qZWogc3Ryb25pZSBpbnRlcm5ldG93ZWogKGlubnltaSBzxYJvd3k6IGLEmWR6aWUgZG90eWN6ecWCbyBqZWR5bmllIHBhbmVsdSBhZG1pbmlzdHJhY3lqbmVnbykuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1VzdcWEJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnVXN1xYQga2F0ZWdvcmnEmSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnVXN1xYQgZmlybcSZJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnVXN1xYQgZGVmaW5pY2rEmSBwb2xhJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdNYWxlasSFY28nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdPcGlzJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ1N6Y3plZyZvYWN1dGU7xYJ5JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai9lZHl0dWogc3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1N6YWJsb255IHN6Y3plZyZvYWN1dGU7xYJvd2UnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnU3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5IHpha3R1YWxpem93YW55JzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnV3nFgsSFY3pvbmUnOwokbGFuZ1snZG93biddID0gJ0RvIGRvxYJ1JzsKJGxhbmdbJ2RyYWZ0J10gPSAnS29waWEgcm9ib2N6YSc7CiRsYW5nWydlZGl0J10gPSAnRWR5dHVqJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ0VkeXR1aiBrYXRlZ29yacSZJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnRWR5dHVqIGZpcm3EmSc7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZHl0dWogZGVmaW5pY2rEmSBwb2xhJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ05hendhIGZpcm15IGplc3QgbmllcHJhd2lkxYJvd2EnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdGaXJtYSBvIHRha2llaiBuYXp3aWUganXFvCBpc3RuaWVqZSB3IGthdGFsb2d1JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnTmllIHpuYWxlemlvbm8gbW9kdcWCdSBVxbx5dGtvd25payZvYWN1dGU7dyBGRVUgLSBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0Vrc3BvcnQgQ1NWJzsKJGxhbmdbJ2ZheCddID0gJ0Zha3MnOwokbGFuZ1snZmF4dGV4dCddID0gJ0Zha3MnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljamEgcG9sYSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbmljamUgcCZvYWN1dGU7bCc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdEZWZpbmljamEgcG9sYSc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGVmaW5pY2phIHBvbGEgZG9kYW5hJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0RlZmluaWNqYSBwb2xhIHpha3R1YWxpem93YW5hJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0RlZmluaWNqYSBwb2xhIHNrYXNrb3dhbmEnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL2VkeXR1aiBTemFibG9uIGZvcm11bGFyemEgdcW8eXRrb3duaWsmb2FjdXRlO3cnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnRWR5dHVqIHN6YWJsb255IGZpcm0nOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnU3phYmxvbiBmaXJtIHpha3R1YWxpem93YW55JzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09icmF6ZWsnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4IGTFgnVnb8WbxIcnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01heCBkxYJ1Z2/Fm8SHJzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdNYXggZMWCdWdvxZvEhyc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIG9zdGF0bmllaiBtb2R5ZmlrYWNqaSc7CiRsYW5nWyduYW1lJ10gPSAnTmF6d2EnOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOYXp3YSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1BvdHJ6ZWJ1amVzeiB1cHJhd25pZW5pYSAmIzAzOTslcyYjMDM5OyBieSB3eWtvbmHEhyB0xJkgb3BlcmFjasSZJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ05pZSBwb2Rhbm8gbmF6d3kgZmlybXknOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOaWUgcG9kYW5vIG5hend5JzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdUbyBuaWUgbnVtZXIhIChOYU4pJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0cm9uYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZXRlcm1pbmUgdGhlIHByaW1hcnkgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgcGFyYW1ldGVyIGFyZToNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmRkIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaXNwbGF5IGNvbXBhbmllcyBpbiBhIHN1bW1hcnkgbW9kZS48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBEaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICA8bGk+ZmVfZWRpdCAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICAgDQo8L3VsPg0KJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1d5Ymllcnogc3phYmxvbiAocG8gbmF6d2llKSwga3Qmb2FjdXRlO3J5IGLEmWR6aWUgdcW8eXdhbnkgcG9kY3phcyB3ecWbd2lldGxhbmlhIGxpc3R5a2F0ZWdvcmlpJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVpcmVkIGZvciB0aGUgZnJvbnRlbmQgZWRpdGluZyBhbmQgZGV0YWlsIG1vZGVzLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGNvbXBhbnkgcmVjb3JkIHRvIGVkaXQgb3Igdmlldy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZWNpZnkgYSBwYWdlIGFsaWFzIChieSBuYW1lKSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgYSBkZXRhaWwgcmVjb3JkLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZnJvbnQgZW5kIGNvbXBhbnkgZWRpdCBmb3JtLic7CiRsYW5nWydwYXJhbV9zZWxlY3RjYXRlZ29yeSddID0gJ0lmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCwgdGhlbiBhIGZvcm0gd2lsbCBiZSBnZW5lcmF0ZWQgYWxsb3dpbmcgdXNlcnMgdG8gaW50ZXJhY3RpdmVseSBmaWx0ZXIgY29tcGFueSByZWNvcmRzIG9uIGEgc2luZ2xlIGNhdGVnb3J5LiAgVGhpcyBmbGFnIHNob3VsZCBub3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmIzAzOTtjYXRlZ29yeSYjMDM5OyBwYXJhbWV0ZXIuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdSbyB1c3Rhd2llbmllIG1hIHR5bGtvIHpuYWN6ZW5pZSBkbGEgd2lkb2t1IGxpc3R5IGthdGVnb3JpaS4gR2R5IHRhIG9wY2phIGplc3Qgd8WCxIVjem9uYSwga2F0ZWdvcmllIGJleiBwYXN1asSFY3ljaCBmaXJtLCB0YWvFvGUgYsSZZMSFIHd5xZt3aWV0bGFuZS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgc3VtbWFyeSB2aWV3LiAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHRhZyBwYXJhbWV0ZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1xYIgS2F0YWxvZyBmaXJtIHpvc3RhxYIgcG9tecWbbG5pZSB6YWluc3RhbG93YW55JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1xYIgS2F0YWxvZyBmaXJtIHpvc3RhxYIgcG9tecWbbG5pZSBvZGluc3RhbG93YW55LiBXc3p5c3RraWUgZGFuZSB3cHJvd2Fkem9uZSBkbyBrYXRhbG9ndSB6b3N0YcWCeSBza2Fzb3dhbmUgeiBiYXp5IGRhbnljaC4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQ3p5IG5hIHBld25vIGNoY2VzeiBvZGluc3RhbG93YcSHIHRlbiBtb2R1xYI/IE9kaW5zdGFsb3dhbmllIHRlZ28gbW9kdcWCdSB1c3VuaWUgYmV6cG93cm90bmllIHdzenlzdGtpZSBkYW5lLCBrdCZvYWN1dGU7cmUgem9zdGHFgnkganXFvCB3cHJvd2Fkem9uZSBkbyBLYXRhbG9ndSBmaXJtLic7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEb215xZtsbmEgc3Ryb25hIHByemVraWVyb3dhbmlhIHcgd2lkb2t1IHN6Y3plZyZvYWN1dGU7xYImb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xpY3piYSByZWtvcmQmb2FjdXRlO3cgbmEgamVkbmVqIHN0cm9uaWUgdyB3aWRva3Ugb2cmb2FjdXRlO2xueW0nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRG9tecWbbG5lIHNvcnRvd2FuaWUgdyB3aWRva3Ugb2cmb2FjdXRlO2xueW0nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEb215xZtsbnkgcG9yesSFZGVrIHNvcnRvd2FuaWEgdyB3aWRva3Ugb2cmb2FjdXRlO2xueW0gPGVtPihuaWUgbWEgem5hY3plbmlhLCBnZHkgdXN0YXdpb25lIGplc3Qgc29ydG93YW5pZSB3IHRyeWJpZSAmIzAzOTtsb3Nvd28mIzAzOTspPC9lbT4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU3phYmxvbic7CiRsYW5nWydwdWJsaWMnXSA9ICdQdWJsaWN6bnknOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT3B1Ymxpa293YW55JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVXN0YXdpZW5pYSc7CiRsYW5nWydyYW5kb20nXSA9ICdMb3Nvd3knOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdQcnp5d3Imb2FjdXRlO8SHIHVzdGF3aWVuaWEgZG9tecWbbG5lJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAnVGEgb3BlcmFjamEgb2R0d29yenkgc3lzdGVtb3dlIHN6YWJsb255IGRvbXnFm2xuZSB0ZWdvIG1vZHXFgnUsIGthc3VqxIVjIGV3ZW50dWFsbmUgem1pYW55LiBDenkgbmEgcGV3bm8gY2hjZXN6IHd5a29uYcSHIHTEmSBvcGVyYWNqxJk/JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1N6dWthaic7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnV3nFm2xpaic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL2VkeXR1aiBzemFibG9uIG9nJm9hY3V0ZTtsbnknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N6YWJsb255IG9nJm9hY3V0ZTtsbmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1N6YWJsb24gb2cmb2FjdXRlO2xueSB6YWt0dWFsaXpvd2FueSc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJ1Byenl3ciZvYWN1dGU7xIcgZG9tecWbbG5lJzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb24nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ1RlbGVmb24nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RvbXnFm2xueSBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IHN6YWJsb24gc3pjemVnJm9hY3V0ZTvFgm93eSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IHN6YWJsb24gZm9ybXVsYXJ6YSB1xbx5dGtvd25pa2EnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgc3phYmxvbiBvZyZvYWN1dGU7bG55JzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdEbyBnJm9hY3V0ZTtyeSc7CiRsYW5nWyd3ZWJzaXRlJ10gPSAnU3Ryb25hIHd3dyc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1N0cm9uYSB3d3cnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMzU5MTQ1NDk3ODc4Njc2NTAwLjEyMTMyMDAyNzguMTIxOTA1ODY1OS4xMjE5MDYyNzQxLjg4JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxOTA1ODY1OS44Ny4xNi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ9CQ0LrRgtC40LLQvdC+JzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINGB0YHRi9C70LrRgyc7CiRsYW5nWydhZGRyZXNzJ10gPSAn0JDQtNGA0LXRgSc7CiRsYW5nWydhZGRyZXNzdGV4dCddID0gJ9CQ0LTRgNC10YEnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICfQlNC+0LHQsNCy0LjRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydhZGRjb21wYW55J10gPSAn0JTQvtCx0LDQstC40YLRjCDQutC+0LzQv9Cw0L3QuNGOJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQvtC/0YDQtdC00LXQu9C10L3QuNC1INC/0L7Qu9GPJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICfQktC40LTQuNGCINGC0L7Qu9GM0LrQviDQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICfQn9C+INCy0L7Qt9GA0LDRgdGC0LDQvdC40Y4nOwokbGFuZ1snY2FuY2VsJ10gPSAn0J7RgtC80LXQvdCwJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9C4INGE0YDQvtC90YLQtdC90LTQsCDQvNC+0LPRg9GCINGA0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGN0YLQviDQv9C+0LvQtT8nOwokbGFuZ1snY2FudXNlcnZpZXcnXSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0YTRgNC+0L3RgtC10L3QtNCwINC80L7Qs9GD0YIg0LLQuNC00LXRgtGMINGN0YLQviDQv9C+0LvQtT8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8nOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ9Ca0LDRgtC10LPQvtGA0LjQuCc7CiRsYW5nWydjYXRlZ29yeXRleHQnXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8nOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ9Ca0LDRgtC10LPQvtGA0LjRjyDQtNC+0LHQsNCy0LvQtdC90LAnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINC+0LHQvdC+0LLQu9C10L3QsCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAn0JTQvtCx0LDQstC40YLRjC/QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgdC/0LjRgdC+0Log0YjQsNCx0LvQvtC90L7QsiDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAn0KHQv9C40YHQvtC6INGI0LDQsdC70L7QvdC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ9Ch0L/QuNGB0L7QuiDQutCw0YLQtdCz0L7RgNC40Lkg0L7QsdC90L7QstC70ZHQvSc7CiRsYW5nWydjb21wYW55J10gPSAn0JrQvtC80L/QsNC90LjRjyc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICfQmtC+0LzQv9Cw0L3QuNGPINC00L7QsdCw0LLQu9C10L3QsCc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuCc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ9Ca0L7QvNC/0LDQvdC40Y8g0L7QsdC90L7QstC70LXQvdCwJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ9Ca0L7QvNC/0LDQvdC40LgnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICfQmtC+0LzQv9Cw0L3QuNGPJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICfQmtCw0YLQsNC70L7QsyDQutC+0LzQv9Cw0L3QuNC5JzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ9Ca0L7QvdGC0LDQutGC0L3Ri9C5IEVtYWlsJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAn0JTQsNGC0LAg0LfQsNC/0LjRgdC4JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPtCf0YDQuNC80LXRh9Cw0L3QuNC1Ojwvc3Ryb25nPiDQodC+0LTQtdGA0LbQsNC90LjQtSDRjdGC0LjRhSDRgtC10LrRgdGC0L7QstGL0YUg0L7QsdC70LDRgdGC0LXQuSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0YHQvtC00LXRgNC20LDQvdC40Y8g0YjQsNCx0LvQvtC90LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC90LDQttC80LjRgtC1INC60L3QvtC/0LrRgyAgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7INCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LXQvCDRiNCw0LHQu9C+0L0g0L3QsCDQstC60LvQsNC00LrQtS4g0JjQt9C80LXQvdC10L3QuNC1INGC0LXQutGB0YLQsCDQvtC00L3QvtC5INC40Lcg0Y3RgtC40YUg0L7QsdC70LDRgdGC0LXQuSDRgtC10LrRgdGCINC90LUg0LHRg9C00LXRgiDQuNC80LXRgtGMINC90LXQv9C+0YHRgNC10LTRgdGC0LLQtdC90L3QvtC1INCy0LvQuNGP0L3QuNC1INC90LAg0JLQsNGIINGB0LDQudGCLic7CiRsYW5nWydkZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjCc7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ9Cj0LTQsNC70LjRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAn0KPQtNCw0LvQuNGC0Ywg0LrQvtC80L/QsNC90LjRjic7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ9Cj0LTQsNC70LjRgtGMINC+0L/RgNC10LTQtdC70LXQvdC40LUg0L/QvtC70Y8nOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ9Cf0L4g0YPQsdGL0LLQsNC90LjRjic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ9Ce0L/QuNGB0LDQvdC40LUnOwokbGFuZ1snZGV0YWlscyddID0gJ9Cf0L7QtNGA0L7QsdC90L7RgdGC0LgnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICfQn9C+0LTRgNC+0LHQvdC+0YHRgtC4JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSBEZXRhaWwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC9IERldGFpbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICfQqNCw0LHQu9C+0L0gRGV0YWlsINC+0LHQvdC+0LLQu9GR0L0nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICfQntGC0LrQu9GO0YfQtdC90L4nOwokbGFuZ1snZG93biddID0gJ9CS0L3QuNC3JzsKJGxhbmdbJ2RyYWZ0J10gPSAn0KfQtdGA0L3QvtCy0LjQuic7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSc7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQutC+0LzQv9Cw0L3QuNGOJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0VkaXQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFbWFpbCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuCDQvdC1INCy0LXRgNC90L4nOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICfQmtC+0LzQv9Cw0L3QuNGPINGBINGC0LDQutC40Lwg0L3QsNC30LLQsNC90LjQtdC8INGD0LbQtSDQvdCw0YXQvtC00LjRgtGB0Y8g0LIg0LHQsNC30LUg0LTQsNC90L3Ri9GFJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvdCw0LnRgtC4INC80L7QtNGD0LvRjCBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ9Ct0LrRgdC/0L7RgNGCINCyIENTVic7CiRsYW5nWydmYXgnXSA9ICfQpNCw0LrRgSc7CiRsYW5nWydmYXh0ZXh0J10gPSAn0KTQsNC60YEnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ0ZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gQWRkZWQnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBVcGRhdGVkJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gRGVsZXRlZCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgRnJvbnRlbmQgRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdFZGl0IENvbXBhbnkgVGVtcGxhdGVzJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ0VkaXQgQ29tcGFueSBUZW1wbGF0ZSBVcGRhdGVkJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ9CY0LfQvtCx0YDQsNC20LXQvdC40LUnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ9Cb0L7Qs9C+JzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ9Cc0LDQutGBLiDQtNC70LjQvdCwJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICfQnNCw0LrRgS4g0LTQu9C40L3QsCc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAn0JzQsNC60YEuINC00LvQuNC90LAnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAn0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0LjQt9C80LXQvdC10L3QuNGPJzsKJGxhbmdbJ25hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1JzsKJGxhbmdbJ25hbWV0ZXh0J10gPSAn0J3QsNC30LLQsNC90LjQtSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ9CS0LDQvCDQvdGD0LbQvdC+INC40LzQtdGC0Ywg0L/RgNCw0LLQsCBcJyVzXCcg0LTQu9GPINGN0YLQvtCz0L4g0LTQtdC50YHRgtCy0LjRjy4nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAn0J3QtSDQt9Cw0LTQsNC90L4g0L3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAn0J3QtSDQt9Cw0LTQsNC90L4g0L3QsNC30LLQsNC90LjQtSc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAn0J3QtSDRh9C40YHQu9C+JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydvZiddID0gJ9CY0LcnOwokbGFuZ1sncGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5lIHRoZSBwcmltYXJ5IGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBhcmU6DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gRGlzcGxheSBhIGxpc3Qgb2YgY2F0ZWdvcmllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSwgYW5kZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+DQogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gRGlzcGxheSBjb21wYW5pZXMgaW4gYSBzdW1tYXJ5IG1vZGUuPC9saT4NCiAgPGxpPmRldGFpbHMgLS0gRGlzcGxheSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgIA0KPC91bD4NCic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIGNhdGVnb3J5IGxpc3Qgdmlldy4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnUmVxdWlyZWQgZm9yIHRoZSBmcm9udGVuZCBlZGl0aW5nIGFuZCBkZXRhaWwgbW9kZXMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgd2hpY2ggY29tcGFueSByZWNvcmQgdG8gZWRpdCBvciB2aWV3Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnU3BlY2lmeSBhIHBhZ2UgYWxpYXMgKGJ5IG5hbWUpIHRvIHVzZSBmb3IgZGlzcGxheWluZyBhIGRldGFpbCByZWNvcmQuIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBkZXRhaWwgdmlldy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB0YWcgcGFyYW1ldGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBmcm9udCBlbmQgY29tcGFueSBlZGl0IGZvcm0uJzsKJGxhbmdbJ3BhcmFtX3NlbGVjdGNhdGVnb3J5J10gPSAnSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGEgZm9ybSB3aWxsIGJlIGdlbmVyYXRlZCBhbGxvd2luZyB1c2VycyB0byBpbnRlcmFjdGl2ZWx5IGZpbHRlciBjb21wYW55IHJlY29yZHMgb24gYSBzaW5nbGUgY2F0ZWdvcnkuICBUaGlzIGZsYWcgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIFwnY2F0ZWdvcnlcJyBwYXJhbWV0ZXIuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IGNvbXBhbmllcy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5waG9uZTwvbGk+DQogIDxsaT5mYXg8L2xpPg0KICA8bGk+ZW1haWw8L2xpPg0KICA8bGk+d2Vic2l0ZSAtLSBUaGUgd2Vic2l0ZSB1cmw8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICfQo9C60LDQttC40YLQtSDRiNCw0LHQu9C+0L0gKNC/0L4g0L3QsNC30LLQsNC90LjRjiksINGH0YLQvtCx0Ysg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0YDQuCDQvtGC0L7QsdGA0LDQttC10L3QuNC4INGA0LXQt9GO0LzQtS4gPHN0cm9uZz7Qn9GA0LjQvNC10YfQsNC90LjQtTo8L3N0cm9uZz4g0K3RgtC+0YIg0L/QsNGA0LDQvNC10YLRgCDRgtC10LPQsCDQvdC1INGB0L7QstC80LXRgdGC0LjQvCDRgSDQutGA0LDRgdC40LLRi9C80LggVVJMLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ9Cc0L7QtNGD0LvRjCBDb21wYW55IERpcmVjdG9yeSDRg9GB0L/QtdGI0L3QviDRg9GB0YLQsNC90L7QstC70LXQvSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAn0JzQvtC00YPQu9GMIENvbXBhbnkgRGlyZWN0b3J5INGD0YHQv9C10YjQvdC+INGD0LTQsNC70ZHQvS4g0JLRgdC1INGB0LLRj9C30LDQvdC90YvQtSDQtNCw0L3QvdGL0LUg0LrQvtC80L/QsNC90LjQuSDQsdGL0LvQuCDRgdGC0ZHRgNGC0YsnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDQvNC+0LTRg9C70Yw/INCj0LTQsNC70LXQvdC40LUg0Y3RgtC+0LPQviDQvNC+0LTRg9C70Y8g0L3QsNCy0YHQtdCz0LTQsCDRgdC+0YLRgNGR0YIg0LLRgdC1INGB0LLRj9C30LDQvdC90YvQtSDRgSDQvdC40Lwg0LTQsNC90L3Ri9C1INC60L7QvNC/0LDQvdC40LkuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC/0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQsiDRgNC10LbQuNC8INC/0L7QtNGA0L7QsdC90L4nOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ9Cn0LjRgdC70L4g0LfQsNC/0LjRgdC10Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0LIg0YDQtdC20LjQvNC1INGA0LXQt9GO0LzQtSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICfQodC+0YDRgtC40YDQvtCy0LrQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDRgNC10LbQuNC80LUg0YDQtdC30Y7QvNC1JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnVGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiBzdW1tYXJ5IG1vZGUgPGVtPihkb2VzIG5vdCBhcHBseSB3aGVuIHNvcnRpbmcgaXMgXCdyYW5kb21cJzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSc7CiRsYW5nWydwdWJsaWMnXSA9ICfQntCx0YnQuNC5JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ9Ce0L/Rg9Cx0LvQuNC60L7QstCw0L3Qvic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ9Cf0LDRgNCw0LzQtdGC0YDRiyc7CiRsYW5nWydyYW5kb20nXSA9ICfQodC70YPRh9Cw0LnQvdC+JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAn0KHQsdGA0L7RgdC40YLRjCDQt9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAn0K3RgtCwINC+0L/QtdGA0LDRhtC40Y8g0LLQvtGB0YHRgtCw0L3QvtCy0LjRgiDRgdC+0LTQtdGA0LbQsNC90LjQtSDRiNCw0LHQu9C+0L3QsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQuNC3INGB0LjRgdGC0LXQvNGLLiDQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INC/0YDQvtC00L7Qu9C20LjRgtGMPyc7CiRsYW5nWydzZWFyY2gnXSA9ICfQn9C+0LjRgdC6JzsKJGxhbmdbJ3N0YXR1cyddID0gJ9Ch0YLQsNGC0YPRgSc7CiRsYW5nWydzdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSDRgNC10LfRjtC80LUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ9Co0LDQsdC70L7QvdGLINGA0LXQt9GO0LzQtSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAn0KjQsNCx0LvQvtC9INGA0LXQt9GO0LzQtSDQvtCx0L3QvtCy0LvRkdC9JzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAn0JLQvtGB0YHRgtCw0L3QvtCy0LjRgtGMINC30L3QsNGH0LXQvdC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGVsZXBob25lJ10gPSAn0KLQtdC70LXRhNC+0L0nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ9Ci0LXQu9C10YTQvtC9JzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0YHQv9C40YHQutCwINGI0LDQsdC70L7QvdC+0LInOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L/QvtC00YDQvtCx0L3Qvic7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAn0KTQvtGA0LzQsCDRiNCw0LHQu9C+0L3QsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YTRgNC+0L3RgtC10L3QtNCwJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDRgNC10LfRjtC80LUnOwokbGFuZ1sndHlwZSddID0gJ9Ci0LjQvyc7CiRsYW5nWyd0eXBldGV4dCddID0gJ9Ci0LjQvyc7CiRsYW5nWyd1cCddID0gJ9CS0LLQtdGA0YUnOwokbGFuZ1snd2Vic2l0ZSddID0gJ9CS0LXQsS3RgdCw0LnRgic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ9CS0LXQsS3RgdCw0LnRgic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkyNzM2OTEuMjAuNy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vZm9ydW0vZm9ydW0ucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEwNDU1NjY2MDAuMTE5MzE2NDQ0MC4xMTk5Njc3MDU5LjExOTk2ODU1NDMuMzgnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBkaXJlY3RvcnkgbGlrZSBtb2R1bGUgZm9yIGNvbXBhbmllcy4gIEFsbG93cyBhZGRpbmcvZWRpdGluZy9pbXBvcnRpbmcvZXhwb3J0aW5nIGNvbXBhbnkgZGVmaW5pdGlvbnMsIGFuZCB2YXJpb3VzIHdheXMgb2YgZGlzcGxheWluZyB0aGUgY29tcGFueSBlbnRyaWVzIGluY2x1ZGluZyBzZWFyY2guICBUaGlzIG1vZHVsZSBpbnRlZ3JhdGVzIHdlbGwgd2l0aCBDR0dvb2dsZU1hcHMuJzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdJbXBvcnRlcmluZ3Nwcm9jZXNzIGx5Y2thZGVzJzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmtpIFBvc2l0aW9uZXIgU2thcGFkZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeWRlZnMnXSA9ICdJbXBvcnQgSGllcmFyY2h5IFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBWYWx1ZXMnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0Vycm9yIGNyZWF0aW5nIGhpZXJhcmNoeSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnSGllcmFyY2h5IHdpdGggbG9uZyBuYW1lICZxdW90OyVzJnF1b3Q7IGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Ymb3VtbDtyZXRhZyByYWRlcmF0JzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0ZlbCB2aWQgZmlsdXBwbGFkZG5pbmcnOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnRHUgbSZhcmluZztzdGUgc3BlY2lmaWNlcmEgZW4gZiZhdW1sO2x0YXZnciZhdW1sO25zYXJlJzsKJGxhbmdbJ2Vycm9yX25vc3BvdHNsZWZ0J10gPSAnWW91IGhhdmUgbm8gcmVtYWluaW5nIGNvbXBhbnkgc2xvdHMnOwokbGFuZ1snbXNnX3Nsb3RzdXNlZCddID0gJ1lvdSBoYXZlIHVzZWQgJWQgb2YgJWQgY29tcGFueSBzbG90cyc7CiRsYW5nWydpbXBvcnRfZmlsZW5hbWUnXSA9ICdWJmF1bWw7bGogQ1NWIGZpbCc7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdGJmF1bWw7bHRhdmdyJmF1bWw7bnNhcmUnOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnRGV0ICZhdW1sO3IgbSZvdW1sO2psaWd0IGF0dCBpbXBvcnRlcmEgZiZvdW1sO3JldGFnc2luZm9ybWF0aW9uIGZyJmFyaW5nO24gZW4gQVNDSUkgZmlsLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBkZXNjcmliZXMgYSBmb3JtIHRoYXQgaXMgdXNlZCB0byBhbGxvdyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIHRvIGltcG9ydCBkYXRhIGZyb20gYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ1NWIGZpbGUnOwokbGFuZ1snZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZSddID0gJ0Zyb250ZW5kIENTViBJbXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdBbGxvdyBGcm9udGVuZFVzZXJzIHRvIGltcG9ydCByZWNvcmRzIGZyb20gQ1NWPyc7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBoaWVyYXJjaHkgbGlzdCB2aWV3Lic7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24sIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydtc2dfaGllcmRlbGV0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gZGVsZXRlZCc7CiRsYW5nWydtc2dfaGllcnVwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gdXBkYXRlZCc7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIGFkZGVkJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdBZGQgSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0wmYXVtbDtnZyB0aWxsL1JlZGlnZXJhIGthdGVnb3JpJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ0luc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTWFsbGFyJzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdhJzsKJGxhbmdbJ293bmVyJ10gPSAnJkF1bWw7Z2FyZSc7CiRsYW5nWydjcmVhdGVkJ10gPSAnU2thcGFkJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnJkF1bWw7bmRyYWQnOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZCBvciBFZGl0IGEgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdDYW4gZnJvbnRlbmQgdXNlcnMgY2hhbmdlIGEgY29tbXBhbnkgc3RhdHVzPyc7CiRsYW5nWydwcm9tcHRfZmV1X25ld19zdGF0dXMnXSA9ICdEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHJlY29yZHMgY3JlYXRlZCBvbiB0aGUgZnJvbnRlbmQnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsbG0mYXVtbDtubmEgSW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3Byb21wdF9mZXVfZWRpdF9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIEVkaXRpbmcgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdDYW4gRnJvbnRFbmRVc2VycyBDcmVhdGUgbmV3IFJlY29yZHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbnVtcmVjb3JkcyddID0gJ01heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGEgRkVVIGFjY291bnQnOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnTnVtYmVyIG9mIEltcG9ydGVkIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVkIHJlY29yZCc7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdJZ25vcmUgYWRkcmVzcyBmaWVsZCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnQ29udmVydCBBZGRyZXNzZXMgdG8gY29vcmRpbmF0ZXMgKGlmIHRoZXJlIGFyZSBubyBjb29yZGluYXRlcyknOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwgRmlsZSB0byBJbXBvcnQnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0ZXJhIEtNTCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1vcHJ0ZXJhIEtNTCBmaWwnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnViZhdW1sO2xqIEVuJzsKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ1RvIHVzZSB0aGlzIGZ1bmN0aW9uIHlvdSBtdXN0IGJlIGxvZ2dlZCBpbiB0byB0aGUgZnJvbnRlbmQgb2YgdGhlIHdlYnNpdGUnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWt0aXYnOwokbGFuZ1snYWRkbGluayddID0gJ0wmYXVtbDtnZyB0aWxsIGwmYXVtbDtuayc7CiRsYW5nWydhZGRyZXNzJ10gPSAnQWRyZXNzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXNzJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTCZhdW1sO2dnIHRpbGwga2F0ZWdvcmknOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0wmYXVtbDtnZyB0aWxsIGYmb3VtbDtyZXRhZyc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0wmYXVtbDtnZyB0aWxsIGYmYXVtbDtsdGRlZmluaXRpb24nOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0VuZGFzdCBzeW5saWcgZiZvdW1sO3IgYWRtaW4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGRldHRhPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnYW5kZSc7CiRsYW5nWydjYW5jZWwnXSA9ICcmQXJpbmc7bmdyYSc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0thbiBmcmFtc2lkZWFudiZhdW1sO25kYXJlICZhdW1sO25kcmEgZGV0dGEgZiZhdW1sO2x0ZXQ/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnS2FuIGZyYW1zaWRlYW52JmF1bWw7bmRhcmUgc2UgZGV0dGEgZiZhdW1sO2x0ZXQ/JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnl0ZXh0J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpIHRpbGxhZ2QnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgdXBwZGF0ZXJhZCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvJmF1bWw7bmRyYSBtYWxsZW4gZiZvdW1sO3Iga2F0ZWdvcmlsaXN0YSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdNYWxsIGYmb3VtbDtyIGthdGVnb3JpbGlzdGEnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnS2F0ZWdvcmlsaXN0YSB1cHBkYXRlcmFkJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGJm91bWw7cmV0YWcnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRiZvdW1sO3JldGFnIHRpbGxhZ3QnOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdGJm91bWw7cmV0YWdzbmFtbic7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Ymb3VtbDtyZXRhZyB1cHBkYXRlcmF0JzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Ymb3VtbDtyZXRhZyc7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0Ymb3VtbDtyZXRhZyc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2cnOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnRS1wb3N0YWRyZXNzJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdGlsbGFnZCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhcmRtYWxsYXInOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IElubmVoJmFyaW5nO2xsZXQgaSBkZXNzYSB0ZXh0cnV0b3IgYW52JmF1bWw7bmRzIGYmb3VtbDtyIGF0dCBhbmdlIHN0YW5kYXJkaW5uZWgmYXJpbmc7bGxldCBmJm91bWw7ciBtYWxsYXJuYSBuJmF1bWw7ciBkdSBrbGlja2FyIHAmYXJpbmc7ICZhbXA7cXVvdDtMJmF1bWw7Z2cgdGlsbCBtYWxsJmFtcDtxdW90OyBpIHJlc3Bla3RpdmUgbWFsbGZsaWsuIEF0dCAmYXVtbDtuZHJhIGRlc3NhIHRleHRydXRvciBoYXIgZGV0IGludGUgbiZhcmluZztnb24gJm91bWw7Z29uYmxpY2tsaWcgcCZhcmluZzt2ZXJrYW4gcCZhcmluZzsgZGluIHdlYmJzaWRhLic7CiRsYW5nWydkZWxldGUnXSA9ICdUYSBib3J0JzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnVGEgYm9ydCBrYXRlZ29yaSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnVGEgYm9ydCBmJm91bWw7cmV0YWcnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdUYSBib3J0IGYmYXVtbDtsdGRlZmluaXRpb24nOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0ZhbGxhbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3Jpdm5pbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnRGV0YWxqZXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3RhIGJvcnQgbWFsbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGptYWxsYXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnRGV0YWxqbWFsbCB1cHBkYXRlcmFkJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnQXZha3RpdmVyYWQnOwokbGFuZ1snZG93biddID0gJ05lZCc7CiRsYW5nWydkcmFmdCddID0gJ1V0a2FzdCc7CiRsYW5nWydlZGl0J10gPSAnJkF1bWw7bmRyYSc7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICcmQXVtbDtuZHJhIGthdGVnb3JpJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnJkF1bWw7bmRyYSBmJm91bWw7cmV0YWcnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRkZWZpbml0aW9uJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtcG9zdCc7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdFdHQgZmVsIHVwcHN0b2QgbWVkIGRlbiB1cHBsYWRkYWRlIGZpbGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRiZvdW1sO3JldGFnc25hbW5ldCAmYXVtbDtyIGludGUgZ2lsdGlndCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0V0dCBmJm91bWw7cmV0YWcgbWVkIGRldCBuYW1uZXQgZmlubnMgcmVkYW4gaSBkYXRhYmFzZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRW4ga2F0ZWdvcmkgbWVkIGRldCBuYW1uZXQgZXhpc3RlcmFyIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9jb21wYW55J10gPSAnRXR0IGYmb3VtbDtyZXRhZyBtZWQgZGV0IG5hbW5ldCAoJXMpIGV4aXN0ZXJhciByZWRhbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdFdHQgZiZhdW1sO2x0IG1lZCBkZXQgbmFtbmV0IGV4aXN0ZXJhciByZWRhbic7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdBIGJhZCB2YWx1ZSB3YXMgZm91bmQgZm9yIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1cGxpY2F0ZSAlcyBydWxlIGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpY2F0ZSBydWxlIGlkZW50aWZpZXIgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0RvbnQga25vdyBob3cgdG8gaGFuZGxlIGxpbmUgJWQgd2l0aCB0aGUgcnVsZSBpZGVudGlmaWVyICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducnVsZSddID0gJ09rJmF1bWw7bmQgcmVnZWwgcCZhcmluZzsgcmFkICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY2F0ZWdvcnkgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY29tcGFueSBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgZmllbGQgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSW5nZW4gZmlsIGxhZGRhZGVzIHVwcCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHZhbHVlIHdhcyBtaXNzaW5nIGZyb20gdGhlIGZvcm0gaW5wdXQnOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdObyBEcm9wZG93biBvcHRpb25zIHN1cHBsaWVkJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS3VuZGUgaW50ZSBoaXR0YSBtb2R1bGVuIEZyb250RW5kVXNlcnMnOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdObyBtYXhpbXVtIGxlbmd0aCBmaWVsZCBzdXBwbGllZCc7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ05vIHJlY29yZHMgbWF0Y2hpbmcgeW91ciBjcml0ZXJpYSBjb3VsZCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnS3VuZGUgaW50ZSBoaXR0YSBuJmFyaW5nO2dvbiBpbmZvcm1hdGlvbiBmJm91bWw7ciBwb3N0bnVtbWVyICVzJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdFdHQgZmVsIHVwcHN0b2QgcCZhcmluZzsgcmVhZCAlZDogJXMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0ZXJhIENTVi1maWwnOwokbGFuZ1snZmF4J10gPSAnRmF4bnVtbWVyJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXhudW1tZXInOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0YmYXVtbDtsdGRlZmluaXRpb25lcic7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uIHRpbGxhZ2QnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRiZhdW1sO2x0ZGVmaW5pdGlvbiB1cHBkYXRlcmFkJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0YmYXVtbDtsdGRlZmluaXRpb24gYm9ydHRhZ2VuJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snZmllbGRfZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvJmF1bWw7bmRyYSBtYWxsIGYmb3VtbDtyIGZyYW1zaWRlZm9ybXVsJmF1bWw7cic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdNYWxsYXIgZiZvdW1sO3IgJmF1bWw7bmRyYSBmJm91bWw7cmV0YWcnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnTWFsbGFyIGYmb3VtbDtyICZhdW1sO25kcmEgZiZvdW1sO3JldGFnIHVwcGRhdGVyYWRlJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnU3BlY2lmeSB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duIGNvbnRyb2wuICBPbmUgbGluZSBwZXIgZW50cnkuICBTZXBlcmF0ZSBrZXlzIGZyb20gdmFsdWVzIHdpdGggdGhlID0uICBpLmU6IGtleT12YWx1ZSc7CiRsYW5nWydpbWFnZWN1cnJlbnRoaWRkZW4nXSA9ICcnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnQmlsZCc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbW9wcnRlcmEgQ1NWJzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnTGF0aXR1ZCc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nb3R5cCc7CiRsYW5nWydsb25naXR1ZGUnXSA9ICdMb25naXR1ZCc7CiRsYW5nWydsb29rdXAnXSA9ICdMb29rdXAgQ29vcmRpbmF0ZXMnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXR1bSBmJm91bWw7ciBzZW5hc3QgJmF1bWw7bmRyYWQnOwokbGFuZ1snbmFtZSddID0gJ05hbW4nOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOYW1uJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgYmVoJm91bWw7dmVyIHImYXVtbDt0dGlnaGV0ZW4gJiMwMzk7JXMmIzAzOTsgZiZvdW1sO3IgYXR0IHV0ZiZvdW1sO3JhIGRlbiBoJmF1bWw7ciBmdW5rdGlvbmVuJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnSW5nZXQgZiZvdW1sO3JldGFnc25hbW4gYW5nZXR0JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnSW5nZXQgbmFtbiBhbmdldHQnOwokbGFuZ1snbm90YW51bWJlciddID0gJ0ludGUgZXR0IG51bW1lcic7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snb2YnXSA9ICdBdic7CiRsYW5nWydwYWdlJ10gPSAnU2lkYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdBbmdlciBtb2R1bGVucyBwcmltJmF1bWw7cmEgYmV0ZWVuZGUuIE0mb3VtbDtqbGlnYSB2JmF1bWw7cmRlbiBmJm91bWw7ciBkZW5uYSBwYXJhbWV0ZXIgJmF1bWw7cjoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBWaXNhciBlbiBsaXN0YSBtZWQga2F0ZWdvcmllci4gQW52JmF1bWw7bmRhcmUga2FuIGcmYXJpbmc7IHZpZGFyZSBuZXIgdGlsbCBzYW1tYW5mYXR0aW5nc2wmYXVtbDtnZXQgb2NoIHNlZGFuIHRpbGwgZGV0YWxqbCZhdW1sO2dldC48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIFZpc2FyIGYmb3VtbDtyZXRhZyBpIHNhbW1hbmZhdHRuaW5nc2wmYXVtbDtnZS48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBWaXNhciBkZXRhbGplcmFkIGluZm9ybWF0aW9uIG9tIGV0dCBzcGVjaWZpa3QgZiZvdW1sO3JldGFnLjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIFZpc2FyIGV0dCBmb3JtdWwmYXVtbDtyIGYmb3VtbDtyIGF0dCB0aWxsJmFyaW5nO3RhIHJlZGlnZXJpbmcgYXYgZXR0IHNwZWNpZmlrdCBmJm91bWw7cmV0YWcuPC9saT4NCiAgIA0KPC91bD4NCic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBtb2RlLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaGVuIHVzZWQgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdOJmF1bWw7ciBkZW4gYW52JmF1bWw7bmRzIGkgZGV0IDxlbT51cnNwcnVuZ2xpZ2EgPC9lbT4gc2FtbWFuZmF0dG5pbmdzbCZhdW1sO2dldCwgYW52JmF1bWw7bmRzIGRlbm5hIHBhcmFtZXRlciwgdmlsa2VuIGImb3VtbDtyIG1hdGNoYSBuYW1uZXQgcCZhcmluZzsgZW4gYmVmaW50bGlnIGthdGVnb3JpLCBmJm91bWw7ciBhdHQgdmlzYSBlbmJhcnQgZGUgZiZvdW1sO3JldGFnIHNvbSBmaW5ucyBpIGRlbiBrYXRlZ29yaW4gKGVuIGtvbW1hc2VwYXJlcmFkIGxpc3RhIGthbiBza2lja2FzIG1lZCkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBrYXRlZ29yaWxpc3R2eW4gdmlzYXMuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ0tyJmF1bWw7dnMgZiZvdW1sO3IgZnJhbXNpZGVyZWRpZ2VyaW5nc2wmYXVtbDtnZXQgb2NoIGRldGFsamwmYXVtbDtnZXQuIERlbm5hIHBhcmFtZXRlciBhbmdlciB2aWxrZW4gZiZvdW1sO3JldGFnc3Bvc3Qgc29tIHNrYSByZWRpZ2VyYXMgZWxsZXIgdmlzYXMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdBbmdlIGV0dCBzaWRhbGlhcyAobWVkIG5hbW4pIGF0dCBhbnYmYXVtbDtuZGEgZiZvdW1sO3IgYXR0IHZpc2EgZW4gZGV0YWxqcG9zdC4gPHN0cm9uZz5PQlMhPC9zdHJvbmc+IERlbm5hIHBhcmFtZXRlciAmYXVtbDtyIGludGUga29tcGF0aWJlbCBtZWQgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBkZXRhaWxqdnluIHZpc2FzLiA8c3Ryb25nPk9CUyE8L3N0cm9uZz4gRGVubmEgdGFnZ3BhcmFtZXRlciAmYXVtbDtyIGludGUga29tcGF0aWJlbCBtZWQgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBmb3JtdWwmYXVtbDtyZXQgZiZvdW1sO3IgJmF1bWw7bmRyaW5nIGF2IGYmb3VtbDtyZXRhZyBmciZhcmluZztuIGZyYW1zaWRhbiB2aXNhcy4nOwokbGFuZ1sncGFyYW1fc2VsZWN0Y2F0ZWdvcnknXSA9ICdPbSBkZW5uYSBwYXJhbWV0ZXIgYW52JmF1bWw7bmRzIGtvbW1lciBldHQgZm9ybXVsJmF1bWw7ciBhdHQgZ2VuZXJlcmFzIHNvbSBsJmFyaW5nO3RlciBhbnYmYXVtbDtuZGFyZSBpbnRlcmFrdGl2dCBmaWx0cmVyYSBmJm91bWw7cmV0YWdzcG9zdGVyIGVmdGVyIGVuIHZpc3Mga2F0ZWdvcmkuIERlbm5hIGZsYWdnYSBiJm91bWw7ciBpbnRlIGFudiZhdW1sO25kYXMgdGlsbHNhbW1hbnMgbWVkICYjMDM5O2thdGVnb3JpJiMwMzk7LXBhcmFtZXRlcm4uJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdHJmF1bWw7bGxlciBlbmRhc3QgZiZvdW1sO3IgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgb20gZGVubmEgcGFyYW1ldGVyICZhdW1sO3IgaW5zdCZhdW1sO2xsZCwgZCZhcmluZzsga29tbWVyICZhdW1sO3ZlbiBrYXRlZ29yaWVyIG1lZCBJbmdhIG1hdGNoYW5kZSBmJm91bWw7cmV0YWcgYXR0IHZpc2FzIGkgdXRkYXRhbic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdBbmdlIG9yZG5pbmdlbiBmJm91bWw7ciBzb3J0ZXJhZGUgZiZhdW1sO2x0IGkgc2FtbWFuZmF0dG5pbmdzdnluLiBNJm91bWw7amxpZ2EgdiZhdW1sO3JkZW4gJmF1bWw7cjoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIFN0aWdhbmRlPC9saT4NCiAgPGxpPmRlc2MgLS0gRmFsbGFuZGU8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnS2FuIGVuZGFzdCBhbnYmYXVtbDtuZGFzIGkgc2FtbWFuZmF0dG5pbmdzbCZhdW1sO2dldC4gRGVubmEgcGFyYW1ldGVyIGFuZ2VyIHNvcnRlcmluZ2VuIGF2IGYmb3VtbDtyZXRhZ2VuIHNvbSBsaXN0YXMuIE0mb3VtbDtqbGlnYSB2JmF1bWw7cmRlbiAmYXVtbDtyOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz4gLS0gRiZvdW1sO3JldGFnc25hbW48L2xpPg0KICA8bGk+cGhvbmUgLS0gVGVsZWZvbm51bWVyPC9saT4NCiAgPGxpPmZheCAtLSBGYXhudW1tZXI8L2xpPg0KICA8bGk+ZW1haWwgLS0gRS1wb3N0YWRyZXNzPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gVVJMIGYmb3VtbDtyIHdlYmJzaWRhPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGF0dW1ldCBkJmFyaW5nOyBkZW5uYSBmJm91bWw7cmV0YWdzcG9zdCBza2FwYWRlczwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBEYXR1bWV0IGQmYXJpbmc7IGRlbm5hIGYmb3VtbDtyZXRhZ3Nwb3N0ICZhdW1sO25kcmFkZXM8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnQW5nZSBlbiBtYWxsIChtZWQgbmFtbikgYXR0IGFudiZhdW1sO25kYSBuJmF1bWw7ciBzYW1tYW5mYXR0bmluZ3N2eW4gdmlzYXMuIDxzdHJvbmc+T0JTITwvc3Ryb25nPiBEZW5uYSB0YWdncGFyYW1ldGVyICZhdW1sO3IgaW50ZSBrb21wYXRpYmVsIG1lZCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdQb3N0bnVtbWVyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2dzbW9kdWxlbiBpbnN0YWxsZXJhZGVzIGZyYW1nJmFyaW5nO25nc3Jpa3QnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZW4gYXZpbnN0YWxsZXJhZC4gIEFsbGEgYm9sYWcgbWVkIGFzc29jaWVyYWRlIGRhdGEgaGFyIHJhZGVyYXRzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCBhdmluc3RhbGxlcmEgZGVubmEgbW9kdWw/IFZpZCBhdmluc3RhbGxhdGlvbiBhdiBkZW5uYSBtb2R1bCBzJmFyaW5nOyBrb21tZXIgZGVuIGF0dCBwZXJtYW5lbnQgcmFkZXJhIGFsbGEgbiZhdW1sO3JzdCZhcmluZztlbmRlIGJvbGFnIHVwcGdpZnRlci4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnS2F0ZWdvcmllciBJbXBvcnRlcmFkZSc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ0NoZWNrIGZvciBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ1NhbWxhIFMmb3VtbDtrc3RhdGlzdGlrJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdGJm91bWw7cmV0YWcgSW1wb3J0ZXJhZGUnOwokbGFuZ1sncHJvbXB0X2RlbGltZXRlciddID0gJ0YmYXVtbDtsdGF2Z3ImYXVtbDtuc2FyZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkc2lkYW4gc29tIHNrYSBvbWRpcmlnZXJhcyB0aWxsIGkgZGV0YWxqbCZhdW1sO2dldCc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMnOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ0YmYXVtbDtsdGRlZmluaXRpb25lciBJbXBvcnRlcmFkZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5ZGVmcyddID0gJ0NyZWF0ZSBtaXNzaW5nIGNhdGVnb3JpZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnUG9wdXBsYXRlIGNhdGVnb3J5IHZhbHVlcyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jc3ZmaWxlJ10gPSAnTGFkZGEgdXBwIENTViBmaWwnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICZxdW90O2FkZGl0aW9uYWwgZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdMb29rdXAgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgaWYgbWlzc2luZyc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnQW50YWxldCBwb3N0ZXIgYXR0IHZpc2EgcGVyIHNpZGEgaSBzYW1tYW5mYXR0bmluZ3NsJmF1bWw7Z2V0JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYXJkc29ydGVyaW5nIGkgc2FtbWFuZmF0dG5pbmdzbCZhdW1sO2dldCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYXJkc29ydGVyaW5nc29yZG5pbmcgaSBzYW1tYW5mYXR0bmluZ3NsJmF1bWw7Z2V0IDxlbT4oZyZhdW1sO2xsZXIgaW50ZSBuJmF1bWw7ciBzb3J0ZXJpbmcgJmF1bWw7ciAmIzAzOTtzbHVtcHZpcyYjMDM5Oyk8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWxsJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0FsbG0mYXVtbDtuJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmxpY2VyYWQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncmFkaXVzJ10gPSAnUmFkaWUnOwokbGFuZ1sncmFuZG9tJ10gPSAnU2x1bXB2aXMnOwokbGFuZ1sncmV0dXJuJ10gPSAnJkFyaW5nO3RlcnYmYXVtbDtuZCc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsIHRpbGwgc3RhbmRhcmR2JmF1bWw7cmRlbic7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ0Rlbm5hICZhcmluZzt0ZyZhdW1sO3JkIGtvbW1lciBhdHQgJmFyaW5nO3RlcnN0JmF1bWw7bGxhIG1hbGxhcm5hcyBpbm5laCZhcmluZztsbCB0aWxsIHN5c3RlbXN0YW5kYXJkaW5zdCZhdW1sO2xsbmluZ2VuLiAmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgZm9ydHMmYXVtbDt0dGE/JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1Mmb3VtbDtrJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnUyZvdW1sO2tuaW5nYXInOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ1NlYXJjaCBGb3JtIFRlbXBsYXRlcyc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NraWNrYSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIG1hbGwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbW1hbmZhdHRuaW5nc21hbGwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1NhbW1hbmZhdHRuaW5nc21hbGwgdXBwZGF0ZXJhZCc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsIHRpbGwgc3RhbmRhcmRpbnN0JmF1bWw7bGxuaW5nJzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb24nOwokbGFuZ1sndGVsZXBob25ldGV4dCddID0gJ1RlbGVmb24nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkbWFsbCBmJm91bWw7ciBrYXRlZ29yaWxpc3RhJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZG1hbGwgZiZvdW1sO3IgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkbWFsbCBmJm91bWw7ciBmcmFtc2lkZWZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ0NTViBJbXBvcnRlcmluZ3NyYXBwb3J0JzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkbWFsbCBmJm91bWw7ciBzYW1tYWZhdHRuaW5nJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdVcHAnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYmJzaWRhJzsKJGxhbmdbJ3dlYnNpdGV0ZXh0J10gPSAnV2ViYnNpZGEnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTIzMTg3MjMyNS0xMjY5MzU5MzIxMTk1JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTI2OTc3NzYwMy4xMjY5MzU5MzQyLjEyNjk3Nzg1MjkuMTI3MDA1MTgxOS42JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI3MDA1MTgxOS42LjUudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI3MDA1MTgxOSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnS29vcmRpbmF0bGFyJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ0smdXVtbDsmY2NlZGlsOyZ1dW1sO2sgUmVzaW0nOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ1MmdXVtbDtyJnV1bWw7a2xlIELEsXJhayBZJnV1bWw7a2xlbWUnOwokbGFuZ1snZHJvcF9oZXJlJ10gPSAnRG9zeWFsYXLEsSBidXJheWEgcyZ1dW1sO3ImdXVtbDtrbGUnOwokbGFuZ1snaW5mb19kcmFnX2Ryb3AnXSA9ICdXaXRoIG1vc3QgbW9kZXJuIGJyb3dzZXJzIChleGNlcHQgSUUpIHlvdSBjYW4gZHJhZyBtdWx0aXBsZSBmaWxlcyBpbnRvIHRoZSBhZGphY2VudCBkcm9wIHpvbmUuICBUaGV5IHdpbGwgYmUgYXV0b21hdGljYWxseSB1cGxvYWRlZCBhbmQgYWRkZWQgdG8gdGhlIGFsYnVtJzsKJGxhbmdbJ2FsYnVtJ10gPSAnQWxiJnV1bWw7bSc7CiRsYW5nWydlcnJvcl9hbGJ1bWZpZWxkZXhpc3RzJ10gPSAnQW4gYWxidW0gZmllbGQgYWxyZWFkeSBleGlzdHMuICBPbmx5IG9uZSBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX2ttbGltcG9ydF9ub2FkZHJlc3MnXSA9ICdObyBhZGRyZXNzIGZvdW5kIGluIHJlY29yZCc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnSGF0YWxhcic7CiRsYW5nWydwcm9tcHRfbnVtZXJyb3JzJ10gPSAnTnVtYmVyIG9mIGVycm9ycyBmb3VuZCc7CiRsYW5nWydwYXJhbV9yYWRpdXMnXSA9ICdTcGVjaWZ5IHRoZSByYWRpdXMgKGluIG1pbGVzKSBmb3IgYSByYWRpdXMgc2VhcmNoLiAgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxhdCBhbmQgbG9uZyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxvbmdpdHVkZSBjb29yZGluYXRlIGZvciBhIHJhZGl1cyBzZWFyY2gsIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sYXQnXSA9ICdTcGVjaWZ5IHRoZSBjZW50ZXIgbGF0aXR1ZGUgY29vcmRpbmF0ZSBmb3IgYSByYWRpdXMgc2VhcmNoLCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgbG9uZyBhbmQgcmFkaXVzIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ2luZm9fZWRpdG9yMiddID0gJ1VzZSB0aGUgbmV3IGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVycmVkIHRvIGFzIGZlZWRpdDIpPC9lbT4gTm90ZTogVGhlIG9sZCBlZGl0b3Igd2lsbCBiZSByZW1vdmVkIGluIENvbXBhbnlEaXJlY3RvcnkgMS4xNSBvciBiZXlvbmQuJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnVXNlIG5ldyBGcm9udGVuZCBFZGl0b3InOwokbGFuZ1snZXJyb3JfZ2VuZXJhdGV1cmwnXSA9ICdQcm9ibGVtIG9jY3VycmVkIGdlbmVyYXRpbmcgYSBVUkwnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU8SxcmFsYW1hJzsKJGxhbmdbJ2luZm9fbm9maWVsZHMnXSA9ICdObyBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkJzsKJGxhbmdbJ3Byb21wdF9lZGl0Y29tcGFueSddID0gJ0Zpcm1hIEQmdXVtbDt6ZW5sZW1lJzsKJGxhbmdbJ3Byb21wdF9hZGRjb21wYW55J10gPSAnWWVuaSBmaXJtYSBla2xlbWUnOwokbGFuZ1snb3JnYW5pemF0aW9uJ10gPSAnT3JnYW5pemFzeW9uJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0FsYW5sYXInOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoZ3JvdXAgb2YgcGljdHVyZXMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2R1cGxpY2F0ZWNvbXBhbnluYW1lcyddID0gJ0FsbG93IGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzPyc7CiRsYW5nWydwcm9tcHRfcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdQcmVwZW5kIHdlYnNpdGUgdmFsdWVzIHdpdGggaHR0cDovLyc7CiRsYW5nWydpbmZvX3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnSWYgYSB3ZWJzaXRlIHZhbHVlIGlzIHNwZWNpZmllZCwgYW5kIGRvZXMgbm90IGJlZ2luIHdpdGggYSB1cmxwcmVmaXggKGh0dHAsIGh0dHBzLCBmdHApLi4gIGh0dHA6Ly8gd2lsbCBiZSBwcmVwZW5kZWQgdG8gaXRzIHZhbHVlIG9uIHNhdmUnOwokbGFuZ1snZXJyb3Jfbm9vd25lciddID0gJ093bmVyIGlkIGlzIG5vdCBzZXQgb3IgaXMgaW52YWxpZCc7CiRsYW5nWydwcm9tcHRfZXh0ZW5zaW9ucyddID0gJ1ZhbGlkIEZpbGUgRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2V4dGVuc2lvbnMnXSA9ICdQcm92aWRlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zIChjYXNlIGluc2Vuc2l0aXZlKS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIENHRXh0ZW5zaW9ucyBkZWZhdWx0IHZhbHVlcyB3aWxsIGJlIHVzZWQuJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdBZGQvRWRpdCBGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkX2ZpbGUnXSA9ICdEb3N5YSc7CiRsYW5nWydpbnVzZSddID0gJ2luIHVzZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9oaWVyYXJjaHknXSA9ICdTcGVjaWZ5IGEgaGllcmFyY2h5IHN0cmluZyAob3IgcG9ydGlvbikgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQsIGFuZCBtYXkgaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy4gIGkuZTogJnF1b3Q7Q2FycyomcXVvdDsuIFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9fZmlsdGVyX2FkZHJlc3MnXSA9ICdTcGVjaWZ5IGFuIGFkZHJlc3Mgc3RyaW5nIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLiAgaS5lOiAmcXVvdDsqVGV4YXMqJnF1b3Q7LiBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ZpbHRlcl9uYW1lJ10gPSAnU3BlY2lmeSBhIGNvbXBhbnkgbmFtZSAob3IgcGFydGlhbCBjb21wYW55IG5hbWUgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypyZXN0YXJhdW50JnF1b3Q7IFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ05vIGRhdGFiYXNlIGVudHJpZXMgbWF0Y2hlZCB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkJzsKJGxhbmdbJ2VkaXRfZmlsdGVyJ10gPSAnRWRpdCBGaWx0ZXInOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydCBCeSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1sncmVzZXQnXSA9ICdSZXNldCc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiAgaS5lOiB7Q29tcGFueURpcmVjdG9yeSBjYXRlZ29yeT0mIzAzOTtyZWdpb25fbm9ydGgscmVnaW9uX3NvdXRoJiMwMzk7IGNhdGVnb3J5Mj0mIzAzOTtjYXJzLHRydWNrcyYjMDM5O30gd291bGQgcmV0dXJuIG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgd2VyZSBpbiB0aGUgZWl0aGVyIG9mIHRoZSByZWdpb24gbm9ydGggb3IgcmVnaW9uIHNvdXRoIGNhdGVnb3JpZXMgQU5EIEFMU08gaW4gZWl0aGVyIG9mIHRoZSBjYXJzIG9yIHRydWNrcyBjYXRlZ29yaWVzJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MyddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTI8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB5ZXQgYW4gYWRkaXRpb25hbCBBTkQgZXhwcmVzc2lvbiB0byBpbmRpY2F0ZSBhZGRpdGlvbmFsIChjb21tYSBzZXBhcmF0ZWQpIGNhdGVnb3JpZXMgdGhhdCB0aGUgcmVzdWx0IHNob3VsZCBiZSBhIG1lbWJlciBvZi4gU2VlIHRoZSBoZWxwIGZvciB0aGUgY2F0ZWdvcnkyIHBhcmFtZXRlciBmb3IgbW9yZSBpbmZvcm1hdGlvbic7CiRsYW5nWydiYWRuYW1lZ2l2ZW4nXSA9ICdUaGUgbmFtZSBzcGVjaWZpZWQgaXMgaW52YWxpZCAoZ2VuZXJhbGx5IG5hbWVzIHNob3VsZCBiZSB1cmwgZnJpZW5kbHkpJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdDdXJyZW50IFZhbHVlJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kbGlzdHRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZnJvbnRlbmRsaXN0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IGZyb250ZW5kIGxpc3QgdGVtcGxhdGUgdG8gdXNlIGZvciByZW5kZXJpbmcgdGhlIG91dHB1dCc7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgPGVtPnNlYXJjaDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2hhdCBwYWdlIHNob3VsZCBiZSB1c2VkIGZvciBkaXNwbGF5aW5nIG1hdGNoaW5nIHJlc3VsdHMuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgPGVtPihzdW1tYXJ5KTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhlaXIgbmFtZS4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQuICBpLmU6IG5hbWU9JnF1b3Q7YSomcXVvdDsuICBBZGRpdGlvbmFsbHksIHJlZ3VsYXIgZXhwcmVzc2lvbnMgY2FuIGJlIHNwZWNpZmllZCBieSBwcmVmaXhpbmcgdGhlIHZhbHVlIHdpdGggOjouICBpLmU6IG5hbWU9JnF1b3Q7OjpbMC05XS4qJnF1b3Q7JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZSddID0gJ0dlbmVyYXRlIGVycm9yIChidXQgY29udGludWUpJzsKJGxhbmdbJ2Vycm9yX3VwZGF0ZV9jb21wYW55J10gPSAnRXJyb3Igb2NjdXJyZWQgdXBkYXRpbmcgY29tcGFueSByZWNvcmQnOwokbGFuZ1snaWdub3JlJ10gPSAnSWdub3JlJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ092ZXJ3cml0ZSc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yeSBEZWxldGVkJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVfdXJsJ10gPSAnQ3JlYXRlIFVSTFMgZm9yIHJlY29yZHMgd2l0aG91dCBVUkxTJzsKJGxhbmdbJ2luZm9fY3JlYXRlX3VybCddID0gJ0lmIG5vIFVSTCBpcyBzcGVjaWZpZWQgZm9yIGEgcmVjb3JkLCB0aGlzIG9wdGlvbiB3aWxsIGVuc3VyZSB0aGF0IHRoZXkgYXJlIGdlbmVyYXRlZC4gSWYgdGhlICZxdW90O1JlcXVpcmUgVVJMUyZxdW90OyBwcmVmZXJlbmNlIGlzIHNldCwgVVJMUyB3aWxsIGJlIGVuc3VyZWQgcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcnOwokbGFuZ1sndXJsX2NyZWF0ZW9uY29weSddID0gJ0NyZWF0ZSBVUkxTIE9uIENvcHknOwokbGFuZ1snaW5mb191cmxfY3JlYXRlb25jb3B5J10gPSAnV2hlbiBjb3B5aW5nIGNvbXBhbmllcywgc2hvdWxkIGEgVVJMIGJlIGNyZWF0ZWQgZm9yIHRoZSBkZXN0aW5hdGlvbiByZWNvcmQuICBUaGlzIG9ubHkgYXBwbGllcyBpZiBVUkxTIGFyZSBub3QgcmVxdWlyZWQuJzsKJGxhbmdbJ2Vycm9yX2JhdGNodXJsY3JlYXRlJ10gPSAnQmF0Y2ggVVJMIENyZWF0aW9uIGVuY291bnRlcmVkICVkIGVycm9ycyc7CiRsYW5nWydpbmZvX2JhdGNodXJsY3JlYXRlJ10gPSAnQmF0Y2ggVVJMIENyZWF0aW9uIHVwZGF0ZWQgJWQgcmVjb3Jkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXJsJ10gPSAnVGhlIFVSTCBzcGVjaWZpZWQgKG9yIGNhbGN1bGF0ZWQpIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZG5hbWUnXSA9ICdUaGUgQ29tcGFueSBOYW1lIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfdXJsbm90ZW1wdHknXSA9ICdUaGUgVVJMIGZpZWxkIGlzIG5vdCBlbXB0eS4uLiBjYW5ub3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIHZhbHVlJzsKJGxhbmdbJ2Vycm9yX3VybHJlcXVpcmVkJ10gPSAnQSBVUkwgaXMgcmVxdWlyZWQnOwokbGFuZ1snZ2V0dXJsJ10gPSAnQ2FsY3VsYXRlIFVSTCc7CiRsYW5nWyd1cmxfcmVxdWlyZWQnXSA9ICdBIFVSTCBpcyByZXF1aXJlZCc7CiRsYW5nWydpbmZvX3VybF9yZXF1aXJlZCddID0gJ1Nob3VsZCB0aGUgVVJMIGZpZWxkIGJlIHJlcXVpcmVkIHRvIGJlIHZhbGlkIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBjb21wYW55Pyc7CiRsYW5nWydjaGVjayddID0gJ0NoZWNrJzsKJGxhbmdbJ3VybCddID0gJ1VSTCc7CiRsYW5nWydjcmVhdGV1cmxzJ10gPSAnQ3JlYXRlIFVSTFMnOwokbGFuZ1snY29uZmlybV9hdXRvY3JlYXRlX3VybCddID0gJ0F1dG9tYXRpY2FsbHkgQ3JlYXRlIFVSTFMgRm9yIGV4aXN0aW5nIHJlY29yZHMgd2l0aCBubyBVUkwnOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnRG8gMzAxIFJlZGlyZWN0IHRvIG5ldyBVUkxTJzsKJGxhbmdbJ2luZm9fdXJsX3JlZGlyZWN0b2xkJ10gPSAnT24gYW4gaW5jb21pbmcgcmVxdWVzdCBmb3IgYSBjb21wYW55IHVzaW5nIHRoZSBvbGQgVVJMIHBhdHRlcm5zLCBwZXJmb3JtIGEgMzAxIHJlZGlyZWN0IHRvIHRoZSBuZXcgVVJMLiAgVGhpcyB3aWxsIG9ubHkgd29yayBmb3IgZW50cmllcyB0aGF0IGhhdmUgVVJMUyBjcmVhdGVkLic7CiRsYW5nWydpbmZvX3VybF9hdXRvY3JlYXRlJ10gPSAnV2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnkgZGVmaW5pdGlvbiwgaWYgdGhlIFVSTCBmaWVsZCBpcyBibGFuayBvbmUgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgY29tcGFueSBuYW1lLiAgVGhpcyBkb2VzIG5vdCBhcHBseSB0byBmcm9udGVuZCBlZGl0aW5nJzsKJGxhbmdbJ3VybF9hdXRvY3JlYXRlJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdW5pcXVlIFVSTFMnOwokbGFuZ1sndXJscyddID0gJ1VSTFMnOwokbGFuZ1sncGFyYW1fc2VhcmNoYWRkcmVzcyddID0gJ1doZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2gsIHVzaW5nIHRoZSBzZWFyY2ggYWN0aW9uLCBpZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgYWRkcmVzcyBmaWVsZCB3aWxsIGFsc28gYmUgc2VhcmNoZWQgZm9yIHRoZSBtYXRjaGluZyBzdHJpbmcnOwokbGFuZ1sncGFyYW1fcG9zdGFsY2hhcnMnXSA9ICdXaGVuIGRvaW5nIGEgcG9zdGFsIGNvZGUgc2VhcmNoLCB1c2luZyB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBvcHRpb24gYWxsb3dzIGxpbWl0aW5nIHRoZSBlZmZlY3RpdmUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb25mIHRoZSBwb3N0YWwgY29kZSc7CiRsYW5nWydsYWJlbF9pbmNsdWRlY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkIEhpZXJhcmNoaWVzJzsKJGxhbmdbJ2FueSddID0gJ0FueSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5Y29sdW1uJ10gPSAnU3BlY2lmeSB0aGUgbmFtZSBvZiBhIGNvbHVtbiB0aGF0IHNwZWNpZmllcyBvbmUgb3IgbW9yZSBjYXRlZ29yeSBuYW1lcyAoc2VwYXJhdGVkIGJ5IGEgY29tbWEgPGVtPigsKTxlbT4gVGhhdCBjYW4gYmUgdXNlZCB0byBxdWlja2x5IHBvcHVsYXRlIHRoZSBjYXRlZ29yaWVzIGZvciBlYWNoIHJlY29yZC4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5Y29sdW1uJ10gPSAnQ2F0ZWdvcmllcyBDb2x1bW4nOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnljb2x1bW5fbm90Zm91bmQnXSA9ICdDYXRlZ29yeSBjb2x1bW4gJXMgbm90IGZvdW5kJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdFeHBpcmVzJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdSZXNldCB0byBGYWN0b3J5IERlZmF1bHRzJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFbWFpbCBpcyBpbiBIVE1MIGZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydmZWVkaXRfZW1haWxfc3ViamVjdCddID0gJ0EgY2hhbmdlIGhhcyBvY2N1cnJlZCB0byBhIENvbXBhbnlEaXJlY3RvcnkgZW50cnknOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbGdyb3VwJ10gPSAnQWRtaW5pc3RyYXRpdmUgZ3JvdXAgdG8gcmVjZWl2ZSBub3RpZmljYXRpb24gZW1haWxzPyc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25hZGQnXSA9ICdTZW5kIGFuIGVtYWlsIHdoZW4gYSBmcm9udGVuZCB1c2VyIGFkZHMgYSBuZXcgY29tcGFueSByZWNvcmQnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1NlbmQgYW4gZW1haWwgd2hlbiBhIGZyb250ZW5kIHVzZXIgbW9kaWZpZXMgYW4gZXhpc3RpbmcgY29tcGFueSByZWNvcmQnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZ3JvdXAnXSA9ICdBZG1pbiBncm91cCB0byBzZW5kIGVtYWlscyB0byc7CiRsYW5nWydwcm9tcHRfZmV1X2Rpc3BsYXlfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9mcm9udGVuZF9zaG93ZXhwaXJlZCddID0gJ1Nob3cgcmVjb3JkcyBvd25lZCBieSBleHBpcmVkIEZyb250ZW5kIFVzZXJzJzsKJGxhbmdbJ2ZpZWxkX2ltYWdlJ10gPSAnUmVzaW0nOwokbGFuZ1snZXh0cmExJ10gPSAnRWtzdHJhIERhdGEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFa3N0cmEgRGF0YSAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0Vrc3RyYSBEYXRhIDMnOwokbGFuZ1snbGJsX2JhY2snXSA9ICdHZXJpJzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnRmlybWEga29weWFsYW5kxLEuLi4gbCZ1dW1sO3RmZW4geWVuaSBmaXJtYSBrYXlkxLFuxLFuIGF5csSxbnTEsWxhcsSxbsSxIGQmdXVtbDt6ZW5sZXlpbml6JzsKJGxhbmdbJ2NvcHknXSA9ICdLb3B5YWxhJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBkaXJlY3RvcnkgbGlrZSBtb2R1bGUgZm9yIGNvbXBhbmllcy4gIEFsbG93cyBhZGRpbmcvZWRpdGluZy9pbXBvcnRpbmcvZXhwb3J0aW5nIGNvbXBhbnkgZGVmaW5pdGlvbnMsIGFuZCB2YXJpb3VzIHdheXMgb2YgZGlzcGxheWluZyB0aGUgY29tcGFueSBlbnRyaWVzIGluY2x1ZGluZyBzZWFyY2guICBUaGlzIG1vZHVsZSBpbnRlZ3JhdGVzIHdlbGwgd2l0aCBDR0dvb2dsZU1hcHMuJzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdpJmNjZWRpbDtlIGFrdGFybWEgacWfbGVtaSBiYcWfYXLEsWzEsSc7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdIaWVyYXJjaHkgUG9zaXRpb25zIENyZWF0ZWQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBSZWNvcmRzJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5dmFscyddID0gJ0ltcG9ydCBIaWVyYXJjaHkgVmFsdWVzJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9oaWVyYXJjaHknXSA9ICdFcnJvciBjcmVhdGluZyBoaWVyYXJjaHkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSB3aXRoIGxvbmcgbmFtZSAmcXVvdDslcyZxdW90OyBhbHJlYWR5IGV4aXN0cy4nOwokbGFuZ1snY29tcGFueWRlbGV0ZWQnXSA9ICdGaXJtYSBzaWxpbmRpJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0Vycm9yIHVwbG9hZGluZyBmaWxlJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1lvdSBtdXN0IHNwZWNpZnkgYSBmaWVsZCBkZWxpbWl0ZXInOwokbGFuZ1snZXJyb3Jfbm9zcG90c2xlZnQnXSA9ICdZb3UgaGF2ZSBubyByZW1haW5pbmcgY29tcGFueSBzbG90cyc7CiRsYW5nWydtc2dfc2xvdHN1c2VkJ10gPSAnWW91IGhhdmUgdXNlZCAlZCBvZiAlZCBjb21wYW55IHNsb3RzJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1NlbGVjdCBDU1YgRmlsZSc7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnSXQgaXMgcG9zc2libGUgdG8gaW1wb3J0IGNvbXBhbnkgaW5mb3JtYXRpb24gZGlyZWN0bHkgZnJvbSBhbiBBU0NJSSBmaWxlLic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBkZXNjcmliZXMgYSBmb3JtIHRoYXQgaXMgdXNlZCB0byBhbGxvdyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIHRvIGltcG9ydCBkYXRhIGZyb20gYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ1NWIGZpbGUnOwokbGFuZ1snZnJvbnRlbmRpbXBvcnR0ZW1wbGF0ZSddID0gJ0Zyb250ZW5kIENTViBJbXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdBbGxvdyBGcm9udGVuZFVzZXJzIHRvIGltcG9ydCByZWNvcmRzIGZyb20gQ1NWPyc7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBoaWVyYXJjaHkgbGlzdCB2aWV3Lic7CiRsYW5nWydoaWVybGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IEhpZXJhcmNoeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24sIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydtc2dfaGllcmRlbGV0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gZGVsZXRlZCc7CiRsYW5nWydtc2dfaGllcnVwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gdXBkYXRlZCc7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIGFkZGVkJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdBZGQgSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0FkZC9FZGl0IENhdGVnb3J5JzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ0F5YXJsYXInOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ8WeYWJsb25sYXInOwokbGFuZ1snbm9uZSddID0gJ1lvayc7CiRsYW5nWydvd25lciddID0gJ1NhaGlwJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdPbHXFn3R1cnVsZHUnOwokbGFuZ1snbW9kaWZpZWQnXSA9ICdEJnV1bWw7emVubGVuZGknOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZCBvciBFZGl0IGEgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdDYW4gZnJvbnRlbmQgdXNlcnMgY2hhbmdlIGEgY29tbXBhbnkgc3RhdHVzPyc7CiRsYW5nWydwcm9tcHRfZmV1X25ld19zdGF0dXMnXSA9ICdEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHJlY29yZHMgY3JlYXRlZCBvbiB0aGUgZnJvbnRlbmQnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVsIEF5YXJsYXInOwokbGFuZ1sncHJvbXB0X2ZldV9lZGl0X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgRWRpdGluZyBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfZmV1X2NyZWF0ZSddID0gJ0NhbiBGcm9udEVuZFVzZXJzIENyZWF0ZSBuZXcgUmVjb3Jkcz8nOwokbGFuZ1sncHJvbXB0X2ZldV9udW1yZWNvcmRzJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYSBGRVUgYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfbnVtaW1wb3J0ZWQnXSA9ICdOdW1iZXIgb2YgSW1wb3J0ZWQgUmVjb3Jkcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlX25hbWUnXSA9ICdDaGVjayBmb3IgZHVwbGljYXRlIGNvbXBhbnkgbmFtZXMnOwokbGFuZ1sncHJvbXB0X3N0YXR1cyddID0gJ1N0YXR1cyBmb3IgaW1wb3J0ZWQgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9pZ25vcmVfYWRkcmVzcyddID0gJ0lnbm9yZSBhZGRyZXNzIGZpZWxkJzsKJGxhbmdbJ3Byb21wdF9jb252ZXJ0X2FkZHJlc3MnXSA9ICdDb252ZXJ0IEFkZHJlc3NlcyB0byBjb29yZGluYXRlcyAoaWYgdGhlcmUgYXJlIG5vIGNvb3JkaW5hdGVzKSc7CiRsYW5nWydwcm9tcHRfa21sZmlsZSddID0gJ0tNTCBGaWxlIHRvIEltcG9ydCc7CiRsYW5nWydpbXBvcnRrbWwnXSA9ICdJbXBvcnQgS01MJzsKJGxhbmdbJ2ltcG9ydF9rbWwnXSA9ICdJbXBvcnQgS01MIEZpbGUnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnU2UmY2NlZGlsO2luaXonOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnVG8gdXNlIHRoaXMgZnVuY3Rpb24geW91IG11c3QgYmUgbG9nZ2VkIGluIHRvIHRoZSBmcm9udGVuZCBvZiB0aGUgd2Vic2l0ZSc7CiRsYW5nWydhY3RpdmUnXSA9ICdBa3RpZic7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGluayBFa2xlJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlcyc7CiRsYW5nWydhZGRyZXNzdGV4dCddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgRWtsZSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnRmlybWEgRWtsZSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1llbmkgYWxhbiBla2xlJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmxlIFRvIEFkbWluIE9ubHknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0thbGTEsXJtYWsgaXN0ZWRpxJ9pbml6ZSBlbWluIG1pc2luaXo/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0FydGFuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ8SwcHRhbCc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0NhbiBmcm9udGVuZCB1c2VycyBlZGl0IHRoaXMgZmllbGQ/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnQ2FuIGZyb250ZW5kIHVzZXJzIHZpZXcgdGhpcyBmaWVsZD8nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmlsZXInOwokbGFuZ1snY2F0ZWdvcnl0ZXh0J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpIEVrbGVuZGknOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgRyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnS2F0ZWdvcmkgTGlzdGVzaSDFnmFibG9udSBFa2xlL0QmdXVtbDt6ZW5sZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaSBMaXN0ZXNpIMWeYWJsb251JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0thdGVnb3JpIExpc3Rlc2kgRyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydjb21wYW55J10gPSAnRmlybWEnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRmlybWEgZWtsZW5kaSc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0Zpcm1hIGFkxLEnOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdGaXJtYSBnJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Zpcm1hbGFyJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnRmlybWEnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0Zpcm1hIERpemluaSc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdFbWFpbCc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0dpcmnFnyBUYXJpaGknOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1ZhcnNhecSxbGFuIMWeYWJsb25sYXInOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdTaWwnOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSBTaWwnOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ0Zpcm1hIFNpbCc7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ1RhbsSxbWzEsSBBbGFuIFNpbCc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnQXphbGFuJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQSZjY2VkaWw7xLFrbGFtYSc7CiRsYW5nWydkZXRhaWxzJ10gPSAnQXlyxLFudMSxbGFyJzsKJGxhbmdbJ2RldGFpbHN0ZXh0J10gPSAnQXlyxLFudMSxbGFyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdBeXLEsW50xLEgxZ5hYmxvbmxhcsSxJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0F5csSxbnTEsSDFnmFibG9udSBHJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnUGFzaWYnOwokbGFuZ1snZG93biddID0gJ0HFn2HEn8SxJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRHJhZnQnOwokbGFuZ1snZWRpdCddID0gJ0QmdXVtbDt6ZW5sZSc7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICdLYXRlZ29yaSBEJnV1bWw7emVubGUnOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdGaXJtYSBEJnV1bWw7emVubGUnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnQWxhbiBEJnV1bWw7emVubGUnOwokbGFuZ1snZW1haWx0ZXh0J10gPSAnRW1haWwnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggdGhlIHVwbG9hZGVkIGZpbGUnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWUnXSA9ICdGaXJtYSBBZMSxIEhhdGFsxLEnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdGaXJtYSBhZMSxIHZlcml0YWJhbsSxbmRhIHphdGVuIHZhcic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSB6YXRlbiB2YXInOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdBIGNvbXBhbnkgd2l0aCB0aGF0IG5hbWUgKCVzKSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdBIGZpZWxkIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdBIGJhZCB2YWx1ZSB3YXMgZm91bmQgZm9yIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1cGxpY2F0ZSAlcyBydWxlIGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpY2F0ZSBydWxlIGlkZW50aWZpZXIgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0RvbnQga25vdyBob3cgdG8gaGFuZGxlIGxpbmUgJWQgd2l0aCB0aGUgcnVsZSBpZGVudGlmaWVyICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducnVsZSddID0gJ1Vua25vd24gcnVsZSBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY2F0ZWdvcnkgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY29tcGFueSBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgZmllbGQgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSGkmY2NlZGlsOyBkb3N5YSB5JnV1bWw7a2xlbm1lZGknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCB2YWx1ZSB3YXMgbWlzc2luZyBmcm9tIHRoZSBmb3JtIGlucHV0JzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnTm8gRHJvcGRvd24gb3B0aW9ucyBzdXBwbGllZCc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWydlcnJvcl9ub2xlbmd0aCddID0gJ05vIG1heGltdW0gbGVuZ3RoIGZpZWxkIHN1cHBsaWVkJzsKJGxhbmdbJ2Vycm9yX25vcmVzdWx0c2ZvdW5kJ10gPSAnTm8gcmVjb3JkcyBtYXRjaGluZyB5b3VyIGNyaXRlcmlhIGNvdWxkIGJlIGZvdW5kIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9wb3N0Y29kZV9sb29rdXAnXSA9ICdDb3VsZCBub3QgZmluZCBhbnkgaW5mb3JtYXRpb24gZm9yIHBvc3RhbC96aXAgY29kZSAlcyc7CiRsYW5nWydlcnJvcl9wcmVmaXhfbXNnJ10gPSAnQW4gZXJyb3Igb2NjdXJyZWQgYXQgbGluZSAlZDogJXMnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0IENTVic7CiRsYW5nWydmYXgnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnQWxhbiBUYW7EsW1sYW1hJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0FsYW4gVGFuxLFtYWxhbGFyxLEnOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnQWxhbiBUYW7EsW1sYW1hJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdZZW5pIGFsYW4gZWtsZW5kaSc7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdUYW7EsW1sxLEgQWxhbiBnJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ1RhbsSxbWzEsSBBbGFuIHNpbGluZGknOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ2ZpZWxkX3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIEZyb250ZW5kIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnRWRpdCBDb21wYW55IFRlbXBsYXRlcyc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdFZGl0IENvbXBhbnkgVGVtcGxhdGUgVXBkYXRlZCc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1NwZWNpZnkgdGhlIG9wdGlvbnMgZm9yIHRoZSBkcm9wZG93biBjb250cm9sLiAgT25lIGxpbmUgcGVyIGVudHJ5LiAgU2VwZXJhdGUga2V5cyBmcm9tIHZhbHVlcyB3aXRoIHRoZSA9LiAgaS5lOiBrZXk9dmFsdWUnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ1Jlc2ltJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydCBDU1YnOwokbGFuZ1snbGF0aXR1ZGUnXSA9ICdMYXRpdHVkZSc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xvZ29jdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nbyc7CiRsYW5nWydsb25naXR1ZGUnXSA9ICdMb25naXR1ZGUnOwokbGFuZ1snbG9va3VwJ10gPSAnTG9va3VwIENvb3JkaW5hdGVzJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heCBMZW5ndGgnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0ZSBMYXN0IE1vZGlmaWVkJzsKJGxhbmdbJ25hbWUnXSA9ICdBZMSxJzsKJGxhbmdbJ25hbWV0ZXh0J10gPSAnQWTEsSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmIzAzOTslcyYjMDM5OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBmdW5jdGlvbi4nOwokbGFuZ1snbm8nXSA9ICdIYXnEsXInOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnRmlybWEgYWTEsSB2ZXJpbG1lZGknOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICfEsHNpbSB2ZXJpbG1lZGknOwokbGFuZ1snbm90YW51bWJlciddID0gJ1Jha2FtIG9sYW1heic7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snb2YnXSA9ICctJzsKJGxhbmdbJ3BhZ2UnXSA9ICdTYXlmYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZXRlcm1pbmUgdGhlIHByaW1hcnkgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgcGFyYW1ldGVyIGFyZToNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgZm9yIHNwZWNpZmljIGNvbXBhbmllcy48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBEaXNwbGF5IGEgbGlzdCBvZiBoaWVyYXJjaGllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICAgDQo8L3VsPg0KJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5LCBhbmQgPGVtPnNlYXJjaDwvZW0+IG1vZGVzLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB3ZXRoZXIgdGhlIHJlc3VsdGluZyBkYXRhIHNob3VsZCByZXBsYWNlIHRoZSBkZWZhdWx0IGNvbnRlbnQgYmxvY2ssIG9yIHNob3VsZCByZXBsYWNlIHRoZSBvcmlnaW5hbCB0YWcgKGlubGluZSkuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPnNlYXJjaDwvZW0+IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1doZW4gdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgb3IgdGhlIDxlbT5zZWFyY2g8L2VtPiBtb2RlLCB0aGlzIHdpbGwgbGltaXQgdGhlIHJlc3VsdHMgdG8gYSBzcGVjaWZpZWQgbnVtYmVyLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ1JlcXVpcmVkIGZvciB0aGUgZnJvbnRlbmQgZWRpdGluZyBhbmQgZGV0YWlsIG1vZGVzLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGNvbXBhbnkgcmVjb3JkIHRvIGVkaXQgb3Igdmlldy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZWNpZnkgYSBwYWdlIGFsaWFzIChieSBuYW1lKSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgYSBkZXRhaWwgcmVjb3JkLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZnJvbnQgZW5kIGNvbXBhbnkgZWRpdCBmb3JtLic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQsIHRoZW4gZXZlbiBjYXRlZ29yaWVzIHdpdGggbm8gbWF0Y2hpbmcgY29tcGFuaWVzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGQgbmFtZSAtLSBTb3J0IGJ5IHB1YmxpYyBjdXN0b20gZmllbGRzLiBUaGUgb3V0cHV0IHdpbGwgYmUgc29ydGVkIGJ5IHRoZSBuYW1lZCBjdXN0b20gZmllbGQuPGJyLz4NCiAgPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gWW91IG1heSBuZWVkIHRvIHVzZSBxdW90ZXMgaWYgdGhlIGZpZWxkIG5hbWUgaGFzIHNwYWNlcy48YnIvPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IHZpZXcuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdGFnIHBhcmFtZXRlciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzLic7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3RhIEtvZHUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBzdWNjZXNzZnVsbHkgdW5pbnN0YWxsZWQuICBBbGwgYXNzb2NpYXRlZCBjb21wYW55IGRhdGEgaGFzIGJlZW4gZXJhc2VkJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IFVuaW5zdGFsbGluZyB0aGlzIG1vZHVsZSB3aWxsIHBlcm1hbmVudGx5IGVyYXNlIGFsbCBhc3NvY2lhdGVkIGNvbXBhbnkgZGF0YS4nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnQ2F0ZWdvcmllcyBJbXBvcnRlZCc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ0NoZWNrIGZvciBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ0FyYW1hIGlzdGF0aXN0aWtsZXJpbmkga2F5ZGV0JzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdDb21wYW5pZXMgSW1wb3J0ZWQnOwokbGFuZ1sncHJvbXB0X2RlbGltZXRlciddID0gJ0ZpZWxkIERlbGltZXRlcic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1RoZSBkZWZhdWx0IHBhZ2UgdG8gcmVkaXJlY3QgdG8gaW4gZGV0YWlsIG1vZGUnOwokbGFuZ1sncHJvbXB0X2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdEcm9wZG93biBTZSZjY2VkaWw7ZW5la2xlcmknOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ0ZpZWxkIERlZmluaXRpb25zIEltcG9ydGVkJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnQ3JlYXRlIG1pc3NpbmcgY2F0ZWdvcmllcyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeXZhbHMnXSA9ICdQb3B1cGxhdGUgY2F0ZWdvcnkgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdVcGxvYWQgQ1NWIEZpbGUnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICZxdW90O2FkZGl0aW9uYWwgZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdMb29rdXAgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgaWYgbWlzc2luZyc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnVGhlIG51bWJlciBvZiByZWNvcmRzIHRvIHZpZXcgcGVyIHBhZ2UgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgc29ydGluZyBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdUaGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHN1bW1hcnkgbW9kZSA8ZW0+KGRvZXMgbm90IGFwcGx5IHdoZW4gc29ydGluZyBpcyAmIzAzOTtyYW5kb20mIzAzOTs8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICfFnmFibG9uJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0dlbmVsJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1lhecSxbmxhbmTEsSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0F5YXJsYXInOwokbGFuZ1sncmFkaXVzJ10gPSAnUmFkaXVzJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1Jhc3RnZWxlJzsKJGxhbmdbJ3JldHVybiddID0gJ0dlcmkgZCZvdW1sO24nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdWYXJzYXnEsWxhbmxhcmEgc8SxZsSxcmxhJzsKJGxhbmdbJ3Jlc3RvcmV0b2RlZmF1bHRzbXNnJ10gPSAnVGhpcyBvcGVyYXRpb24gd2lsbCByZXN0b3JlIHRoZSB0ZW1wbGF0ZSBjb250ZW50cyB0byB0aGVpciBzeXN0ZW0gZGVmYXVsdHMuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VkZT8nOwokbGFuZ1snc2VhcmNoJ10gPSAnQXJhbWEnOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdBcmFtYWxhcic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnQXJhbWEgRm9ybSDFnmFibG9ubGFyxLEnOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBcmFtYSBGb3JtIMWeYWJsb251IEVrbGUvRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ0R1cnVtJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0cmb3VtbDtuZGVyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnJk91bWw7emV0IMWeYWJsb251IEVrbGUvRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICcmT3VtbDt6ZXQgxZ5hYmxvbmxhcsSxJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICcmT3VtbDt6ZXQgxZ9hYmxvbnUgRyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJ1ZhcnNhecSxbGFubGFyYSBTxLFmxLFybGEnOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsZWZvbic7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZWZvbic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBDYXRlZ29yeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBGcm9udGVuZCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9yZXBvcnQnXSA9ICdDU1YgSW1wb3J0IFJlcG9ydCc7CiRsYW5nWyd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndHlwZSddID0gJ1RpcCc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1RpcCc7CiRsYW5nWyd1cCddID0gJ1l1a2FyxLEnOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYnNpdGUnOwokbGFuZ1snd2Vic2l0ZXRleHQnXSA9ICdXZWJzaXRlJzsKJGxhbmdbJ3llcyddID0gJ0V2ZXQnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yNjY0MjIzNjQuMTM0MjgyODk3NC4xMzQyODI4OTc0LjEzNDI4MjkwNjcuMic7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEyLjEwLjEzNDI4MjkwNjcnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzNDI4MjkwNjcuMi4yLnV0bWNzcj1mZWVkYnVybmVyfHV0bWNjbj1GZWVkOiBjbXNtYWRlc2ltcGxlL2Jsb2cgKENNUyBNYWRlIFNpbXBsZSl8dXRtY21kPWZlZWQnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cd_ascii_importer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9hc2NpaV9pbXBvcnRlcgp7CiAgcHJpdmF0ZSAkX2Vycm9yczsKICBwcml2YXRlICRfZGVsaW1pdGVyOwogIHByaXZhdGUgJF9tb2Q7CiAgcHJpdmF0ZSAkX2RvX2ZpZWxkZGVmczsKICBwcml2YXRlICRfZG9fZmllbGR2YWxzOwogIHByaXZhdGUgJF9kb19jYXRlZ29yeWRlZnM7CiAgcHJpdmF0ZSAkX2RvX2NhdGVnb3J5dmFsczsKICBwcml2YXRlICRfZG9fbGF0bG9uZ19sb29rdXA7CiAgcHJpdmF0ZSAkX2NyZWF0ZV91cmwgPSAwOwogIHByaXZhdGUgJF9jaGVja19kdXBsaWNhdGVfY29tcGFuaWVzOwogIHByaXZhdGUgJF9tYXhfcmVjb3JkczsKICBwcml2YXRlICRfZG9faGllcmRlZnM7CiAgcHJpdmF0ZSAkX2RvX2hpZXJ2YWxzOwogIHByaXZhdGUgJF90aGVfdXNlcjsKICBwcml2YXRlICRfY2F0ZWdvcnljb2x1bW47CgogIHByaXZhdGUgJF9udW1fY29tcGFuaWVzOwogIHByaXZhdGUgJF9udW1faGllcjsKICBwcml2YXRlICRfbnVtX2NhdGVnb3JpZXM7CiAgcHJpdmF0ZSAkX251bV9maWVsZGRlZnM7CiAgcHJpdmF0ZSAkX251bV9saW5lczsKICBwcml2YXRlICRfbGluZW51bSA9IDA7CgogIHByaXZhdGUgJF9oaWVyX2NhY2hlOwogIHByaXZhdGUgJF9maWVsZGRlZl9jYWNoZTsKICBwcml2YXRlICRfY2F0ZWdvcnlfY2FjaGU7CiAgcHJpdmF0ZSAkX3J1bGVzID0gYXJyYXkoKTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkbW9kLCRkZWxpbWl0ZXIgPSAnfCcpCiAgewogICAgJHRoaXMtPl9lcnJvcnMgPSBhcnJheSgpOwoKICAgICR0aGlzLT5fZG9fZmllbGRkZWZzID0gMDsKICAgICR0aGlzLT5fZG9fZmllbGR2YWxzID0gMDsKICAgICR0aGlzLT5fdGhlX3VzZXIgPSAtMTsKICAgIAogICAgJHRoaXMtPl9kb19jYXRlZ29yeWRlZnMgPSAwOwogICAgJHRoaXMtPl9kb19jYXRlZ29yeXZhbHMgPSAwOwoKICAgICR0aGlzLT5fZG9faGllcmRlZnMgPSAwOwogICAgJHRoaXMtPl9kb19oaWVydmFscyA9IDA7CgogICAgJHRoaXMtPl9kb19sYXRsb25nX2xvb2t1cCA9IDA7CiAgICAkdGhpcy0+X2NoZWNrX2R1cGxpY2F0ZV9jb21wYW5pZXMgPSAnZXJyb3InOwogICAgJHRoaXMtPl9tb2QgPSYgJG1vZDsKICAgICR0aGlzLT5fZGVsaW1pdGVyID0gJGRlbGltaXRlcjsKICAgICR0aGlzLT5fbWF4X3JlY29yZHMgPSAwOwoKICAgICR0aGlzLT5fbnVtX2NvbXBhbmllcyA9IDA7CiAgICAkdGhpcy0+X251bV9jYXRlZ29yaWVzID0gMDsKICAgICR0aGlzLT5fbnVtX2ZpZWxkZGVmcyA9IDA7CiAgICAkdGhpcy0+X251bV9oaWVyID0gMDsKICAgICR0aGlzLT5fbnVtX2xpbmVzID0gMDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcmVzdWx0cygpCiAgewogICAgcmV0dXJuIGFycmF5KCdudW1fY29tcGFuaWVzJz0+JHRoaXMtPl9udW1fY29tcGFuaWVzLAoJCSAnbnVtX2NhdGVnb3JpZXMnPT4kdGhpcy0+X251bV9jYXRlZ29yaWVzLAoJCSAnbnVtX2ZpZWxkZGVmcyc9PiR0aGlzLT5fbnVtX2ZpZWxkZGVmcywKCQkgJ251bV9oaWVyJz0+JHRoaXMtPl9udW1faGllciwKCQkgJ251bV9saW5lcyc9PiR0aGlzLT5fbnVtX2xpbmVzKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfdXNlcigkdWlkKQogIHsKICAgICR0aGlzLT5fdGhlX3VzZXIgPSAkdWlkOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9kZWxpbWl0ZXIoJGNoYXIpCiAgewogICAgJHRoaXMtPl9kZWxpbWl0ZXIgPSAkY2hhcjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWF4X2NvbXBhbmllcygkbnVtKQogIHsKICAgICR0aGlzLT5fbWF4X3JlY29yZHMgPSAkbnVtOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRvX2ZpZWxkZGVmcygkZmxhZyA9IHRydWUpCiAgewogICAgJHRoaXMtPl9kb19maWVsZGRlZnMgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkb19maWVsZHZhbHMoJGZsYWcgPSB0cnVlKQogIHsKICAgICR0aGlzLT5fZG9fZmllbGR2YWxzID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZG9fY2F0ZWdvcnlkZWZzKCRmbGFnID0gdHJ1ZSkKICB7CiAgICAkdGhpcy0+X2RvX2NhdGVnb3J5ZGVmcyA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRvX2NhdGVnb3J5dmFscygkZmxhZyA9IHRydWUpCiAgewogICAgJHRoaXMtPl9kb19jYXRlZ29yeXZhbHMgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkb19sYXRsb25nX2xvb2t1cCgkZmxhZyA9IHRydWUgKQogIHsKICAgICR0aGlzLT5fZG9fbGF0bG9uZ19sb29rdXAgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfdXJsKCRmbGFnID0gdHJ1ZSkKICB7CgkkdGhpcy0+X2NyZWF0ZV91cmwgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBjaGVja19kdXBsaWNhdGVfY29tcGFuaWVzKCRmbGFnID0gdHJ1ZSkKICB7CgkkdG1wID0gc3RydG9sb3dlcigkZmxhZyk7Cglzd2l0Y2goICR0bXAgKSB7CgljYXNlICdlcnJvcic6CgkgIC8vIGdlbmVyYXRlIGFuIGVycm9yIG9uIGR1cGxpY2F0ZSBjb21wYW5pZXMKCWNhc2UgJ2lnbm9yZSc6CgkgIC8vIGp1c3QgaWdub3JlIHRoZSB3aG9sZSByZWNvcmQsIHNpbGVudGx5CgljYXNlICd1cGRhdGUnOgoJICAvLyB1cGRhdGUgdGhlIGNvbXBhbnkuCgkgICR0aGlzLT5fY2hlY2tfZHVwbGljYXRlX2NvbXBhbmllcyA9ICR0bXA7CgkgIGJyZWFrOwoJfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRvX2hpZXJhcmNoeXZhbHMoJGZsYWcgPSB0cnVlKQogIHsKICAgICR0aGlzLT5fZG9faGllcnZhbHMgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkb19oaWVyYXJjaHlkZWZzKCRmbGFnID0gdHJ1ZSkKICB7CiAgICAkdGhpcy0+X2RvX2hpZXJkZWZzID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2NhdGVnb3J5Y29sdW1uKCRzdHIgPSBudWxsKQogIHsKCSR0aGlzLT5fY2F0ZWdvcnljb2x1bW4gPSAkc3RyOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldF9lcnJvcigkbXNnKQogIHsKICAgICRzdHIgPSAkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfcHJlZml4X21zZycsJHRoaXMtPl9saW5lbnVtLCRtc2cpOwogICAgJHRoaXMtPl9lcnJvcnNbXSA9ICRzdHI7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Vycm9ycygpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZXJyb3JzOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNsZWFyX2Vycm9ycygpCiAgewogICAgJHRoaXMtPl9lcnJvcnMgPSBhcnJheSgpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9maWVsZGRlZl9pZCgkbmFtZSwkaW5zZXJ0ID0gZmFsc2UpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZmllbGRkZWZfY2FjaGUpICkgewoJICAkcXVlcnkgPSAnU0VMRUNUIGlkLG5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIE9SREVSIEJZIGl0ZW1fb3JkZXInOwoJICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJICBpZiggaXNfYXJyYXkoJHRtcCkgKSB7CgkJJHRoaXMtPl9maWVsZGRlZl9jYWNoZSA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCduYW1lJyk7CgkgIH0KCX0KCiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZGRlZl9jYWNoZSkgJiYgaXNzZXQoJHRoaXMtPl9maWVsZGRlZl9jYWNoZVskbmFtZV0pICkgewoJICByZXR1cm4gJHRoaXMtPl9maWVsZGRlZl9jYWNoZVskbmFtZV1bJ2lkJ107Cgl9CgoJaWYoICRpbnNlcnQgKSB7CgkgIC8vIGluc2VydCB0aGF0IHJlY29yZAoJICAkaXRlbV9vcmRlciA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgbWF4KGl0ZW1fb3JkZXIpICsgMSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJyk7CgkgICRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzCiAgICAgICAgICAgICAgIChuYW1lLCB0eXBlLCBtYXhfbGVuZ3RoLCBhZG1pbl9vbmx5LCBwdWJsaWMsIGl0ZW1fb3JkZXIsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sTk9XKCksTk9XKCkpIjsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUsJ3RleHRib3gnLDI1NSwwLDEsJGl0ZW1fb3JkZXIpKTsKCSAgaWYoICEkZGJyICkgewoJCWRlYnVnX2Rpc3BsYXkoJGRiLT5zcWwpOwoJCWRlYnVnX2Rpc3BsYXkoJGRiLT5FcnJvck1zZygpKTsKCQlkaWUoKTsKCSAgfQoJCQoJICAkZmRfaWQgPSAkZGItPkluc2VydF9JRCgpOwoJICAkdGhpcy0+X2ZpZWxkZGVmX2NhY2hlWyRuYW1lXVsnaWQnXSA9ICRmZF9pZDsKCSAgJHRoaXMtPl9udW1fZmllbGRkZWZzKys7CgkgIHJldHVybiAkZmRfaWQ7Cgl9CgogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9oaWVyX2lkKCRsb25nX25hbWUsJHJlZnJlc2hfY2FjaGUgPSBmYWxzZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9oaWVyX2NhY2hlKSB8fCAkcmVmcmVzaF9jYWNoZSA9PSB0cnVlICkgewogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBPUkRFUiBCWSBoaWVyYXJjaHknOwogICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICBpZiggaXNfYXJyYXkoJHRtcCkgKSB7CgkJJHRtcDIgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnbG9uZ19uYW1lJyk7CgkJJHRoaXMtPl9oaWVyX2NhY2hlID0gJHRtcDI7CgkgIH0KICAgICAgZWxzZSB7CgkJcmV0dXJuIEZBTFNFOwoJICB9CiAgICB9CgogICAgaWYoICFpc3NldCgkdGhpcy0+X2hpZXJfY2FjaGVbJGxvbmdfbmFtZV0pICkgcmV0dXJuIEZBTFNFOwogICAgcmV0dXJuICR0aGlzLT5faGllcl9jYWNoZVskbG9uZ19uYW1lXVsnaWQnXTsKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0X2hpZXIoJGxvbmdfbmFtZSkKICB7CiAgICBpZiggZW1wdHkoJGxvbmdfbmFtZSkgKSByZXR1cm47CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllcgogICAgICAgICAgICAgIChuYW1lLHBhcmVudF9pZCxsb25nX25hbWUpIFZBTFVFUyAoPyw/LD8pJzsKICAgICRwb3MgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGxvbmdfbmFtZSwnIHwgJyk7CiAgICAkdG1wID0gYXJyYXkoKTsKICAgICRwYXJlbnQgPSAtMTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwb3MpOyAkaSsrICkgewoJICAkdG1wW10gPSAkcG9zWyRpXTsKCSAgJHRtcDIgPSBpbXBsb2RlKCcgfCAnLCR0bXApOwoJICAkbmFtZSA9IHRyaW0oJHBvc1skaV0pOwoJICAkdGhpc19pZCA9ICR0aGlzLT5nZXRfaGllcl9pZCgkdG1wMix0cnVlKTsKCSAgaWYoICR0aGlzX2lkID09PSBGQUxTRSAmJiAkbmFtZSAhPSAnJykgewoJICAgIC8vIGdvdHRhIGluc2VydCBpdC4KCSAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmFtZSwkcGFyZW50LCR0bXAyKSk7CgkgICAgJHRoaXMtPl9udW1faGllcisrOwoJICB9CgkgICRwYXJlbnQgPSAkdGhpcy0+Z2V0X2hpZXJfaWQoJHRtcDIsdHJ1ZSk7Cgl9CiAgfQogIAoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2lkKCRuYW1lLCRpbnNlcnQgPSBmYWxzZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSkgKSB7CgkgICRxdWVyeSA9ICdTRUxFQ1QgaWQsbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIE9SREVSIEJZIGlvcmRlcic7CgkgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CgkgIGlmKCBpc19hcnJheSgkdG1wKSApIHsKCQkkdGhpcy0+X2NhdGVnb3J5X2NhY2hlID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ25hbWUnKTsKCSAgfQoJfQoKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2NhdGVnb3J5X2NhY2hlKSAmJiBpc3NldCgkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRuYW1lXSkgKSB7CgkgIHJldHVybiAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRuYW1lXVsnaWQnXTsKCX0KCglpZiggJGluc2VydCApIHsKCSAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIAogICAgICAgICAgICAgICAgKG5hbWUsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyxOT1coKSxOT1coKSknOwoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmFtZSkpOwoJICBpZiggISRkYnIgKSB7CgkJZGVidWdfZGlzcGxheSgkZGItPnNxbCk7CgkJZGVidWdfZGlzcGxheSgkZGItPkVycm9yTXNnKCkpOwoJCWRpZSgpOwoJICB9CgkgICRuZXdfaWQgPSAkZGItPkluc2VydF9JRCgpOwoKCSAgJHRoaXMtPl9jYXRlZ29yeV9jYWNoZVskbmFtZV0gPSBhcnJheSgnaWQnPT4kbmV3X2lkLCduYW1lJz0+JG5hbWUpOwoJICAkdGhpcy0+X251bV9jYXRlZ29yaWVzKys7CgkgIHJldHVybiAkbmV3X2lkOwoJfQoKICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIHVucHJvY2Vzc19kYXRhKCRkYXRhKQogIHsKICAgIC8vIHN0cmlwIHF1b3RlcwogICAgJGRhdGEgPSB0cmltKCRkYXRhLCciJyk7CiAgICAKICAgIC8vIG5ld2xpbmVzCiAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCJeXiIsIlxuIiwkZGF0YSk7CiAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCItJSUtIiwkdGhpcy0+X2RlbGltaXRlciwkZGF0YSk7CiAgICAKICAgIHJldHVybiAkZGF0YTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIHByb2Nlc3NfZmllbGRkZWYoJGxpbmUsJHJ1bGUpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAvLyBicmVhayB0aGUgbGluZSBpbnRvIGZpZWxkcyBhZ2FpbgogICAgJGZpZWxkcyA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkbGluZSwkdGhpcy0+X2RlbGltaXRlcik7CgogICAgLy8gYnVpbGQgYSBuZXcgcmVjb3JkCiAgICAkcmVjb3JkID0gYXJyYXkoKTsKICAgICRyZWNvcmRbJ2Ryb3Bkb3duX2RhdGEnXSA9ICcnOwogICAgZm9yKCAkZmxkID0gMTsgJGZsZCA8IGNvdW50KCRydWxlWydmbGRzJ10pOyAkZmxkKysgKSB7CgkgIGlmKCAhaXNzZXQoJGZpZWxkc1skZmxkXSkgKSBjb250aW51ZTsKCSAgJGZuYW1lID0gJHJ1bGVbJ2ZsZHMnXVskZmxkXTsKCSAgJHJlY29yZFskZm5hbWVdID0gJHRoaXMtPnVucHJvY2Vzc19kYXRhKCRmaWVsZHNbJGZsZF0pOwoJfQoKICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGUKICAgICR0bXAgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX2lkKCRyZWNvcmRbJ25hbWUnXSk7CiAgICBpZiggJHRtcCApIHsKCSAgJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJykpOwoJICByZXR1cm4gRkFMU0U7Cgl9CgogICAgLy8gaW5zZXJ0IHRoYXQgcmVjb3JkCiAgICAkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpOwogICAgJGl0ZW1fb3JkZXIgPSAkZGItPkdldE9uZSgnU0VMRUNUIG1heChpdGVtX29yZGVyKSArIDEgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycpOwogICAgJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMKICAgICAgICAgICAgICAobmFtZSwgdHlwZSwgbWF4X2xlbmd0aCwgYWRtaW5fb25seSwgcHVibGljLCBkcm9wZG93bl9kYXRhLCBpdGVtX29yZGVyLCAKICAgICAgICAgICAgICAgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LCRub3csJG5vdykiOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksCgkJCQkJCWFycmF5KCRyZWNvcmRbJ25hbWUnXSwkcmVjb3JkWyd0eXBlJ10sJHJlY29yZFsnbWF4X2xlbmd0aCddLAoJCQkJCQkJICAkcmVjb3JkWydhZG1pbl9vbmx5J10sJHJlY29yZFsncHVibGljJ10sCgkJCQkJCQkgICRyZWNvcmRbJ2Ryb3Bkb3duX2RhdGEnXSwkaXRlbV9vcmRlcikpOwoKICAgIC8vIHRyYXAgdGhlIGVycm9yLgogICAgaWYoICEkZGJyICkgewoJICAkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9pbnNlcnRfZmllbGRkZWYnKSk7CgkgIHJldHVybiBGQUxTRTsKCX0KCgkkZmRfaWQgPSAkZGItPkluc2VydF9JRCgpOwoJaWYoICFpc19hcnJheSggJHRoaXMtPl9maWVsZGRlZl9jYWNoZSApICkgewoJICAkdGhpcy0+X2ZpZWxkZGVmX2NhY2hlID0gYXJyYXkoKTsKCX0KCSR0aGlzLT5fZmllbGRkZWZfY2FjaGVbJHJlY29yZFsnbmFtZSddXSA9IGFycmF5KCdpZCc9PiRmZF9pZCk7CgkkdGhpcy0+X251bV9maWVsZGRlZnMrKzsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBwcm9jZXNzX2hpZXJhcmNoeSgkbGluZSwkcnVsZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGZpZWxkcyA9IGV4cGxvZGUoJHRoaXMtPl9kZWxpbWl0ZXIsJGxpbmUpOwoKICAgICRyZWNvcmQgPSBhcnJheSgpOwogICAgZm9yKCAkZmxkID0gMTsgJGZsZCA8IGNvdW50KCRydWxlWydmbGRzJ10pOyAkZmxkKysgKSB7CgkgIGlmKCAhaXNzZXQoJGZpZWxkc1skZmxkXSkgKSBjb250aW51ZTsKCSAgJGZuYW1lID0gJHJ1bGVbJ2ZsZHMnXVskZmxkXTsKCSAgJHJlY29yZFskZm5hbWVdID0gJHRoaXMtPnVucHJvY2Vzc19kYXRhKCRmaWVsZHNbJGZsZF0pOwoJfQoKICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGUKICAgICR0bXAgPSAkdGhpcy0+Z2V0X2hpZXJfaWQoJHJlY29yZFsnbG9uZ19uYW1lJ10pOwogICAgaWYoICR0bXAgKSB7CgkgICR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9oaWVyYXJjaHknLCRyZWNvcmRbJ2xvbmdfbmFtZSddKSk7CgkgIHJldHVybiBGQUxTRTsKCX0KCiAgICAvLyBpbnNlcnQgdGhlIHJlY29yZAogICAgJHRtcCA9ICR0aGlzLT5pbnNlcnRfaGllcigkcmVjb3JkWydsb25nX25hbWUnXSk7CiAgICBpZiggJHRtcCApIHsKCSAgJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeScsJHJlY29yZFsnbG9uZ19uYW1lJ10pKTsKCSAgcmV0dXJuIEZBTFNFOwoJfQoKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gcHJvY2Vzc19jYXRlZ29yeSgkbGluZSwkcnVsZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIC8vIGJyZWFrIHRoZSBsaW5lIGludG8gZmllbGRzIGFnYWluCiAgICAkZmllbGRzID0gZXhwbG9kZSgkdGhpcy0+X2RlbGltaXRlciwkbGluZSk7CgogICAgLy8gYnVpbGQgYSBuZXcgcmVjb3JkCiAgICAkcmVjb3JkID0gYXJyYXkoKTsKICAgIGZvciggJGZsZCA9IDE7ICRmbGQgPCBjb3VudCgkcnVsZVsnZmxkcyddKTsgJGZsZCsrICkgewoJICBpZiggIWlzc2V0KCRmaWVsZHNbJGZsZF0pICkgY29udGludWU7CgkgICRmbmFtZSA9ICRydWxlWydmbGRzJ11bJGZsZF07CgkgICRyZWNvcmRbJGZuYW1lXSA9ICR0aGlzLT51bnByb2Nlc3NfZGF0YSgkZmllbGRzWyRmbGRdKTsKCX0KCiAgICAvLyBjaGVjayBmb3IgZHVwbGljYXRlCiAgICAkdG1wID0gJHRoaXMtPmdldF9jYXRlZ29yeV9pZCgkcmVjb3JkWyduYW1lJ10pOwogICAgaWYoICR0bXAgKSB7CgkgICR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9jYXRlZ29yeScpKTsKCSAgcmV0dXJuIEZBTFNFOwoJfQogIAogICAgLy8gaW5zZXJ0IHRoYXQgcmVjb3JkCiAgICAkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpOwogICAgJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgKG5hbWUsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICBWQUxVRVMgKD8sJG5vdywkbm93KSI7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcmVjb3JkWyduYW1lJ10pKTsKICAKICAgIC8vIHRyYXAgdGhlIGVycm9yLgogICAgaWYoICEkZGJyICkgewoJICAkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9pbnNlcnRfY2F0ZWdvcnknKSk7CgkgIHJldHVybiBGQUxTRTsKCX0KCgkkY2F0X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKCWlmKCBpc19hcnJheSgkdGhpcy0+X2NhdGVnb3J5X2NhY2hlKSApIHsKCSAgJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSA9IGFycmF5KCk7Cgl9CgkkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRyZWNvcmRbJ25hbWUnXV0gPSBhcnJheSgnaWQnPT4kY2F0X2lkKTsKCSR0aGlzLT5fbnVtX2NhdGVnb3JpZXMrKzsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBwcm9jZXNzX2NvbXBhbnkoJGZpZWxkcywkcnVsZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHVzZXJpZCA9ICR0aGlzLT5fdGhlX3VzZXI7CgogICAgLy8gYnVpbGQgYSBuZXcgcmVjb3JkCiAgICAkcmVjb3JkID0gYXJyYXkoKTsKICAgICRyZWNvcmRbJ2NvbnRhY3RfZW1haWwnXSA9ICcnOwoJJHJlY29yZFsndXJsJ10gPSAnJzsKICAgICRyZWNvcmRbJ2RldGFpbHMnXSA9ICcnOwogICAgJHJlY29yZFsnc3RhdHVzJ10gPSAncHVibGlzaGVkJzsKICAgICRyZWNvcmRbJ2xhdGl0dWRlJ10gPSAnJzsKICAgICRyZWNvcmRbJ2xvbmdpdHVkZSddID0gJyc7CiAgICAkcmVjb3JkWydoaWVyX2lkJ10gPSBudWxsOwoJJHJlY29yZFsndGVsZXBob25lJ10gPSAnJzsKCSRyZWNvcmRbJ3dlYnNpdGUnXSA9ICcnOwoJJHJlY29yZFsnZmF4J10gPSAnJzsKCiAgICAkZmllbGR2YWxzID0gYXJyYXkoKTsKICAgICRjYXRlZ29yaWVzID0gYXJyYXkoKTsKICAgIGZvciggJGZsZCA9IDE7ICRmbGQgPCBjb3VudCgkcnVsZVsnZmxkcyddKTsgJGZsZCsrICkgewoJICBpZiggIWlzc2V0KCRmaWVsZHNbJGZsZF0pICkgY29udGludWU7CgkgICRmbmFtZSA9ICRydWxlWydmbGRzJ11bJGZsZF07CgkJCgkgIC8vIHByaW1hcnkgY29sdW1uIGhhbmRsaW5nLgoJICBpZiggc3RhcnRzd2l0aChzdHJ0b3VwcGVyKCRmbmFtZSksJ0ZJRUxEOicpICkgewoJCSRmaWVsZHZhbHNbc3Vic3RyKCRmbmFtZSw2KV0gPSAkZmllbGRzWyRmbGRdOwoJICB9CgkgIGVsc2UgaWYoIHN0YXJ0c3dpdGgoc3RydG91cHBlcigkZm5hbWUpLCdDQVQ6JykgKSB7CgkJJGNhdGVnb3JpZXNbc3Vic3RyKCRmbmFtZSw0KV0gPSAkZmllbGRzWyRmbGRdOwoJICB9CgkgIGVsc2UgaWYoICRmbmFtZSA9PSAnaGllcmFyY2h5JyAmJiAkdGhpcy0+X2RvX2hpZXJ2YWxzKSB7CgkJJHRtcCA9ICR0aGlzLT51bnByb2Nlc3NfZGF0YSgkZmllbGRzWyRmbGRdKTsKCQkkaGllcl9pZCA9ICR0aGlzLT5nZXRfaGllcl9pZCgkdG1wKTsKCQlpZiggJGhpZXJfaWQgPT09IEZBTFNFICYmICR0aGlzLT5fZG9faGllcnZhbHMgKSB7CgkJICAkdGhpcy0+aW5zZXJ0X2hpZXIoJHRtcCk7CgkJfQoJCSRoaWVyX2lkID0gJHRoaXMtPmdldF9oaWVyX2lkKCR0bXApOwoJCWlmKCAkaGllcl9pZCAhPT0gRkFMU0UgKQoJCSAgJHJlY29yZFsnaGllcl9pZCddID0gJGhpZXJfaWQ7CgkgIH0KCSAgZWxzZSB7CgkJJHJlY29yZFskZm5hbWVdID0gJHRoaXMtPnVucHJvY2Vzc19kYXRhKCRmaWVsZHNbJGZsZF0pOwoJICB9CgoJICAvLyBhZGRpdGlvbmFsIGhhbmRsaW5nIG9mIHRoaXMgY29sdW1uCgkgIGlmKCAkdGhpcy0+X2NhdGVnb3J5Y29sdW1uICE9ICcnICYmICRmbmFtZSA9PSAkdGhpcy0+X2NhdGVnb3J5Y29sdW1uICkgewoJCSRjYXRzID0gY2dlX2FycmF5OjpzbWFydF9leHBsb2RlKCRmaWVsZHNbJGZsZF0sJywnKTsKCQlmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkgewoJICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwoJCSAgJGNhdGVnb3JpZXNbJG9uZV0gPSAxOwoJCX0KCSAgfQoKCX0gLy9mb3IKCiAgCiAgICAvLyBkYXRhIHZhbGlkYXRpb24KICAgIGlmKCAhaXNzZXQoJHJlY29yZFsnY29tcGFueV9uYW1lJ10pIHx8IGVtcHR5KCRyZWNvcmRbJ2NvbXBhbnlfbmFtZSddKSApIHsKCSAgJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfaW1wb3J0X2JhZHZhbHVlJywnY29tcGFueV9uYW1lJykpOwoJICByZXR1cm4gRkFMU0U7Cgl9CgogICAgLy8gZG8gb3B0aW9uYWwgbGF0L2xvbmcgbG9va3VwCiAgICBpZiggJHRoaXMtPl9kb19sYXRsb25nX2xvb2t1cCApIHsKCSAgaWYoIGVtcHR5KCRyZWNvcmRbJ2xhdGl0dWRlJ10pIHx8IGVtcHR5KCRyZWNvcmRbJ2xvbmdpdHVkZSddKSAmJiAKCQkgICFlbXB0eSgkcmVjb3JkWydhZGRyZXNzJ10pICkgewoJCSRkYXRhID0gY2RfdXRpbHM6Omdlb2xvY2F0ZSgkcmVjb3JkWydhZGRyZXNzJ10pOwoJCWlmKCAkZGF0YSAmJiAkZGF0YVsnbGF0J10gIT0gMCAmJiAkZGF0YVsnbG9uJ10gIT0gMCApIHsKCQkgICRyZWNvcmRbJ2xhdGl0dWRlJ10gPSAkZGF0YVsnbGF0J107CgkJICAkcmVjb3JkWydsb25naXR1ZGUnXSA9ICRkYXRhWydsb24nXTsKCQl9CgkgIH0KCX0KCgkvLyBoYW5kbGUgdXJsCglpZiggJHJlY29yZFsndXJsJ10gPT0gJycgJiYgJHRoaXMtPl9jcmVhdGVfdXJsICkgewoJICAkcmVjb3JkWyd1cmwnXSA9IGNkX3V0aWxzOjpnZW5lcmF0ZV91cmwoJHJlY29yZFsnY29tcGFueV9uYW1lJ10pOwoJfQoJaWYoICRyZWNvcmRbJ3VybCddICE9ICcnICkgewoJICB3aGlsZSggIWNkX3V0aWxzOjp2YWxpZGF0ZV91cmwoJHJlY29yZFsndXJsJ10sVFJVRSkgKSB7CgkJJHJlY29yZFsndXJsJ10gPSBjZF91dGlsczo6Z2VuZXJhdGVfdXJsKCRyZWNvcmRbJ2NvbXBhbnlfbmFtZSddKTsKCSAgfQoJfQoJCiAgICAvLyBjaGVjayBmb3IgZHVwbGljYXRlPwoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgY29tcGFueV9uYW1lID0gPyc7CgkkZWlkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRyZWNvcmRbJ2NvbXBhbnlfbmFtZSddKSk7CglpZiggJGVpZCApIHsKCSAgc3dpdGNoKCAkdGhpcy0+X2NoZWNrX2R1cGxpY2F0ZV9jb21wYW5pZXMgKSB7CgkgIGNhc2UgJ2Vycm9yJzoKCQkkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY29tcGFueScsJHJlY29yZFsnY29tcGFueV9uYW1lJ10pKTsKCQlyZXR1cm4gRkFMU0U7CgkgIGNhc2UgJ2lnbm9yZSc6CgkJcmV0dXJuIEZBTFNFOwoJICBjYXNlICd1cGRhdGUnOgoJCS8vIG92ZXJ3cml0aW5nLi4uIGtlZXAgZ29pbmcuCgkJYnJlYWs7CgkgIH0KCX0KICAKICAgIC8vIGluc2VydCB0aGF0IHJlY29yZAogICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKCSRkYnIgPSBUUlVFOwoJaWYoICRlaWQgKSB7CgkgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyAKICAgICAgICAgICAgICAgIFNFVCB1cmwgPSA/LCBhZGRyZXNzID0gPywgdGVsZXBob25lID0gPywgZmF4ID0gPywgY29udGFjdF9lbWFpbCA9ID8sIAogICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgPSA/LCBkZXRhaWxzID0gPywgc3RhdHVzID0gPywgbGF0aXR1ZGUgPSA/LAogICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZSA9ID8sIG93bmVyX2lkID0gPywgaGllcl9pZCA9ID8sIG1vZGlmaWVkX2RhdGUgPSA/IFdIRVJFIGlkID0gPyI7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LAoJCQkJCQkgIGFycmF5KCRyZWNvcmRbJ3VybCddLCRyZWNvcmRbJ2FkZHJlc3MnXSwkcmVjb3JkWyd0ZWxlcGhvbmUnXSwKCQkJCQkJCQkkcmVjb3JkWydmYXgnXSwkcmVjb3JkWydjb250YWN0X2VtYWlsJ10sJHJlY29yZFsnd2Vic2l0ZSddLAoJCQkJCQkJCSRyZWNvcmRbJ2RldGFpbHMnXSwkcmVjb3JkWydzdGF0dXMnXSwKCQkJCQkJCQkkcmVjb3JkWydsYXRpdHVkZSddLCRyZWNvcmRbJ2xvbmdpdHVkZSddLAoJCQkJCQkJCSR1c2VyaWQsJHJlY29yZFsnaGllcl9pZCddLCRub3csJGVpZCkpOwoKCSAgaWYoICEkZGJyICkgewoJCSR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX3VwZGF0ZV9jb21wYW55JykpOwoJCXJldHVybiBGQUxTRTsKCSAgfQoKCSAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgV0hFUkUgY29tcGFueV9pZCA9ID8nOwoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZWlkKSk7CgoJICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBXSEVSRSBjb21wYW55X2lkID0gPyc7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRlaWQpKTsKCgkgICRjb21wYW55X2lkID0gJGVpZDsKCX0KCWVsc2UgewoJICAkcXVlcnkgPSAgIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgCiAgICAgICAgICAgICAgICAgKGNvbXBhbnlfbmFtZSx1cmwsYWRkcmVzcyx0ZWxlcGhvbmUsZmF4LGNvbnRhY3RfZW1haWwsd2Vic2l0ZSxkZXRhaWxzLHN0YXR1cywKICAgICAgICAgICAgICAgICAgbGF0aXR1ZGUsbG9uZ2l0dWRlLG93bmVyX2lkLCBoaWVyX2lkLGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPywkbm93LCRub3cpIjsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJlY29yZFsnY29tcGFueV9uYW1lJ10sJHJlY29yZFsndXJsJ10sJHJlY29yZFsnYWRkcmVzcyddLAoJCQkJCQkJCQkgICAkcmVjb3JkWyd0ZWxlcGhvbmUnXSwkcmVjb3JkWydmYXgnXSwKCQkJCQkJCQkJICAgJHJlY29yZFsnY29udGFjdF9lbWFpbCddLCRyZWNvcmRbJ3dlYnNpdGUnXSwKCQkJCQkJCQkJICAgJHJlY29yZFsnZGV0YWlscyddLCRyZWNvcmRbJ3N0YXR1cyddLAoJCQkJCQkJCQkgICAkcmVjb3JkWydsYXRpdHVkZSddLCRyZWNvcmRbJ2xvbmdpdHVkZSddLAoJCQkJCQkJCQkgICAkdXNlcmlkLCRyZWNvcmRbJ2hpZXJfaWQnXSkpOwoJICBpZiggISRkYnIgKSB7CgkJJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfaW5zZXJ0X2NvbXBhbnknKSk7CgkJcmV0dXJuIEZBTFNFOwoJICB9CgkgICRjb21wYW55X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKCX0KCgkvLyBpbnNlcnQgZmllbGR2YWxzCglpZiggY291bnQoJGZpZWxkdmFscykgJiYgJHRoaXMtPl9kb19maWVsZHZhbHMgKSB7CgkgIGZvcmVhY2goICRmaWVsZHZhbHMgYXMgJG5hbWUgPT4gJHZhbHVlICkgewoJCWlmKCBlbXB0eSgkdmFsdWUpICkgY29udGludWU7CgkJJGZpZWxkZGVmX2lkID0gJHRoaXMtPmdldF9maWVsZGRlZl9pZCgkbmFtZSwkdGhpcy0+X2RvX2ZpZWxkZGVmcyk7CgkJaWYoICRmaWVsZGRlZl9pZCA9PT0gRkFMU0UgKSBjb250aW51ZTsKCQkJCgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgCiAgICAgICAgICAgICAgICAgIChjb21wYW55X2lkLCBmaWVsZGRlZl9pZCwgdmFsdWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LCRub3csJG5vdykiOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjb21wYW55X2lkLCRmaWVsZGRlZl9pZCwkdmFsdWUpKTsKCSAgfQoJfQogIAoJLy8gaW5zZXJ0IGNhdGVnb3JpZXMKCWlmKCBjb3VudCgkY2F0ZWdvcmllcykgJiYgJHRoaXMtPl9kb19jYXRlZ29yeXZhbHMgKSB7CgkgIGZvcmVhY2goJGNhdGVnb3JpZXMgYXMgJG5hbWUgPT4gJHZhbHVlICkgewoJCWlmKCAkdmFsdWUgPT0gMCApIGNvbnRpbnVlOwoJCSRjYXRlZ29yeV9pZCA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfaWQoJG5hbWUsJHRoaXMtPl9kb19jYXRlZ29yeWRlZnMpOwoJCWlmKCAkY2F0ZWdvcnlfaWQgPT09IEZBTFNFICkgY29udGludWU7CgkJCQoJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAgIChjb21wYW55X2lkLGNhdGVnb3J5X2lkLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LCRub3csJG5vdykiOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNvbXBhbnlfaWQsJGNhdGVnb3J5X2lkKSk7CgkgIH0KCX0KCQogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwcml2YXRlIGZ1bmN0aW9uIF9pc19oZWFkZXIoJGxpbmUsJGFkZCA9IEZBTFNFKQogIHsKCSRmaWVsZHMgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGxpbmUsJHRoaXMtPl9kZWxpbWl0ZXIpOwoJaWYoICFpc19hcnJheSgkZmllbGRzKSB8fCBjb3VudCgkZmllbGRzKSA9PSAwICkgcmV0dXJuIEZBTFNFOwoJZm9yZWFjaCggJGZpZWxkcyBhcyAmJGZsZCApICRmbGQgPSB0cmltKCRmbGQpOwoJJGtleSA9ICRmaWVsZHNbMF07CgoJaWYoc3RhcnRzd2l0aCgkZmllbGRzWzBdLCcjQ09NUEFOWScpKSB7CgkgIC8vIGNvbXBhbnkgcnVsZQoJICBpZiggaXNzZXQoJHRoaXMtPl9ydWxlc1snY29tcGFueSddKSAmJiAkYWRkID09IFRSVUUpIHsKCQkvLyB0aGlzIGlzIGJhZC4KCQkkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZScsJ0NPTVBBTlknLCR0aGlzLT5fbGluZW51bSkpOwoJCXJldHVybiBUUlVFOwoJICB9CgoJICBpZiggJHRoaXMtPl9jYXRlZ29yeWNvbHVtbiAhPSAnJyAmJiAhaW5fYXJyYXkoJHRoaXMtPl9jYXRlZ29yeWNvbHVtbiwkZmllbGRzKSAmJiAkYWRkID09IFRSVUUgKSB7CgkJJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfY2F0ZWdvcnljb2x1bW5fbm90Zm91bmQnLCR0aGlzLT5fY2F0ZWdvcnljb2x1bW4pKTsKCQlyZXR1cm4gVFJVRTsKCSAgfQoKCSAgaWYoICRhZGQgKSB7CgkJJHRtcCA9IGV4cGxvZGUoJz0nLCRmaWVsZHNbMF0sMik7CgkJJGlkZW50aWZpZXIgPSAkdG1wWzFdOwoKCQkkdGhpcy0+X3J1bGVzWydjb21wYW55J10gPSBhcnJheSgpOwoJCSR0aGlzLT5fcnVsZXNbJ2NvbXBhbnknXVsncnVsZSddID0gJGxpbmU7CgkJJHRoaXMtPl9ydWxlc1snY29tcGFueSddWydpZGVudGlmaWVyJ10gPSAkaWRlbnRpZmllcjsKCQkkdGhpcy0+X3J1bGVzWydjb21wYW55J11bJ2ZsZHMnXSA9ICRmaWVsZHM7CgkgIH0KCSAgcmV0dXJuIFRSVUU7Cgl9CgoJaWYoIHN0YXJ0c3dpdGgoJGZpZWxkc1swXSwnI0ZJRUxEREVGJykpIHsKCSAgLy8gZmllbGRkZWYgcnVsZQoJICBpZiggaXNzZXQoJHRoaXMtPl9ydWxlc1snZmllbGRkZWYnXSkgJiYgJGFkZCApIHsKCQkvLyB0aGlzIGlzIGJhZC4KCQkkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZScsJ0ZJRUxEREVGJywkdGhpcy0+X2xpbmVudW0pKTsKCQlyZXR1cm4gVFJVRTsKCSAgfQoKCSAgaWYoICRhZGQgKSB7CgkJJHRtcCA9IGV4cGxvZGUoJz0nLCRmaWVsZHNbMF0sMik7CgkJJGlkZW50aWZpZXIgPSAkdG1wWzFdOwoKCQkkdGhpcy0+X3J1bGVzWydmaWVsZGRlZiddID0gYXJyYXkoKTsKCQkkdGhpcy0+X3J1bGVzWydmaWVsZGRlZiddWydydWxlJ10gPSAkbGluZTsKCQkkdGhpcy0+X3J1bGVzWydmaWVsZGRlZiddWydpZGVudGlmaWVyJ10gPSAkaWRlbnRpZmllcjsKCQkkdGhpcy0+X3J1bGVzWydmaWVsZGRlZiddWydmbGRzJ10gPSAkZmllbGRzOwoJICB9CgkgIHJldHVybiBUUlVFOwoJfQoKCWlmKCBzdGFydHN3aXRoKCRmaWVsZHNbMF0sJyNDQVRFR09SWScpKSB7CgkgIC8vIGNhdGVnb3J5IHJ1bGUKCSAgaWYoIGlzc2V0KCR0aGlzLT5fcnVsZXNbJ2NhdGVnb3J5J10pICYmICRhZGQgKSB7CgkJLy8gdGhpcyBpcyBiYWQuCgkJJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGUnLCdDQVRFR09SWScsJHRoaXMtPl9saW5lbnVtKSk7CgkJcmV0dXJuIFRSVUU7CgkgIH0KCgkgIGlmKCAkYWRkICkgewoJCSR0bXAgPSBleHBsb2RlKCc9JywkZmllbGRzWzBdLDIpOwoJCSRpZGVudGlmaWVyID0gJHRtcFsxXTsKCgkJJHRoaXMtPl9ydWxlc1snY2F0ZWdvcnknXSA9IGFycmF5KCk7CgkJJHRoaXMtPl9ydWxlc1snY2F0ZWdvcnknXVsncnVsZSddID0gJGxpbmU7CgkJJHRoaXMtPl9ydWxlc1snY2F0ZWdvcnknXVsnaWRlbnRpZmllciddID0gJGlkZW50aWZpZXI7CgkJJHRoaXMtPl9ydWxlc1snY2F0ZWdvcnknXVsnZmxkcyddID0gJGZpZWxkczsKCSAgfQoJICByZXR1cm4gVFJVRTsKCX0KCQoJaWYoIHN0YXJ0c3dpdGgoJGZpZWxkc1swXSwnI0hJRVJBUkNIWScpKSB7CgkgIC8vIGhpZXJhcmNoeSBydWxlCgkgIGlmKCBpc3NldCgkdGhpcy0+X3J1bGVzWydoaWVyYXJjaHknXSkgJiYgJGFkZCApIHsKCQkvLyB0aGlzIGlzIGJhZC4KCQkkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZScsJ0hJRVJBUkNIWScsJHRoaXMtPl9saW5lbnVtKSk7CgkJcmV0dXJuIFRSVUU7CgkgIH0KCgkgIGlmKCAkYWRkICkgewoJCSR0bXAgPSBleHBsb2RlKCc9JywkZmllbGRzWzBdLDIpOwoJCSRpZGVudGlmaWVyID0gJHRtcFsxXTsKCgkJJHRoaXMtPl9ydWxlc1snaGllcmFyY2h5J10gPSBhcnJheSgpOwoJCSR0aGlzLT5fcnVsZXNbJ2hpZXJhcmNoeSddWydydWxlJ10gPSAkbGluZTsKCQkkdGhpcy0+X3J1bGVzWydoaWVyYXJjaHknXVsnaWRlbnRpZmllciddID0gJGlkZW50aWZpZXI7CgkJJHRoaXMtPl9ydWxlc1snaGllcmFyY2h5J11bJ2ZsZHMnXSA9ICRmaWVsZHM7CgkgIH0KCSAgcmV0dXJuIFRSVUU7Cgl9CgoJaWYoIHN0YXJ0c3dpdGgoJGxpbmUsJyMnKSApIHsKCSAgLy8gZG9uJ3Qga25vdyB0aGlzIG9uZS4KCSAgJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfaW1wb3J0X3Vua25vd25ydWxlJywkdGhpcy0+X2xpbmVudW0pKTsKCSAgcmV0dXJuIFRSVUU7Cgl9CgoJcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfaXNfcmVjb3JkKCRsaW5lKQogIHsKCWlmKCAkdGhpcy0+X2lzX2hlYWRlcigkbGluZSxUUlVFKSApIHJldHVybiBUUlVFOwoKCSRmaWVsZHMgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGxpbmUsJHRoaXMtPl9kZWxpbWl0ZXIpOwoJaWYoICFpc19hcnJheSgkZmllbGRzKSB8fCBjb3VudCgkZmllbGRzKSA9PSAwICkgcmV0dXJuIEZBTFNFOwoJZm9yZWFjaCggJGZpZWxkcyBhcyAmJGZsZCApICRmbGQgPSB0cmltKCRmbGQpOwoJJGtleSA9ICRmaWVsZHNbMF07CgoJZm9yZWFjaCggJHRoaXMtPl9ydWxlcyBhcyAkbmFtZSA9PiAkZGF0YSApIHsKCSAgaWYoICRrZXkgPT0gJHRoaXMtPl9ydWxlc1skbmFtZV1bJ2lkZW50aWZpZXInXSApIHJldHVybiBUUlVFOwoJfQoKCS8vIGRvZXNuJ3QgbWF0Y2ggYSBydWxlICh5ZXQpCglyZXR1cm4gRkFMU0U7CiAgfQoKICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRsaW5lKCRmaCkKICB7CgkkaW5fcmVjID0gRkFMU0U7Cgkkb3V0ID0gJyc7Cgl3aGlsZSggIWZlb2YoJGZoKSApIHsKCSAgJHBvcyA9IGZ0ZWxsKCRmaCk7CgkgICRsaW5lID0gZmdldHMoJGZoKTsKCSAgJHRoaXMtPl9saW5lbnVtKys7CgkgICRsaW5lID0gdHJpbSgkbGluZSk7CgkgIGlmKCAkbGluZSA9PSAnJyApIGNvbnRpbnVlOwoKCSAgaWYoICR0aGlzLT5faXNfcmVjb3JkKCRsaW5lKSApIHsKCQkvLyBzdGFydCBvZiBhIG5ldyByZWNvcmQKCQlpZiggJGluX3JlYyApIHsKCQkgIC8vIHJld2luZCBhIGJpdC4KCQkgIGZzZWVrKCRmaCwkcG9zKTsKCQkgICR0aGlzLT5fbGluZW51bS0tOwoJCSAgJGluX3JjYyA9IEZBTFNFOwoJCSAgLy8gZG9uZS4KCQkgIGJyZWFrOwoJCX0KCQllbHNlIHsKCQkgICRpbl9yZWMgPSBUUlVFOwoJCSAgJG91dCAuPSAkbGluZTsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJJG91dCAuPSAkbGluZTsKCSAgfQoJfQoJcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gaW1wb3J0X2ZpbGUoJGZpbGVuYW1lKQogIHsKICAgICR0aGlzLT5fbGluZW51bSA9IDA7CiAgICAkZmggPSBmb3BlbigkZmlsZW5hbWUsJ3InKTsKICAgIGlmKCAhJGZoICkgewoJICAkdGhpcy0+c2V0X2Vycm9yKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9iYWR1cGxvYWQnKSk7CgkgIHJldHVybiBGQUxTRTsKCX0KICAgIHdoaWxlKCAhZmVvZigkZmgpICkgewoJICAkbGluZSA9ICR0aGlzLT5fZ2V0bGluZSgkZmgpOwoJCQoJICAvLyBzdHJpcCBvZmYgZXh0cmEgd2hpdGVzcGFjZQoJICAkbGluZSA9IHRyaW0oJGxpbmUpOwoJICAKCSAgLy8gc2tpcCBlbXB0eSBsaW5lcwoJICBpZiAoJGxpbmUgPT0gJycpIHsKCQljb250aW51ZTsKCSAgfQoKCSAgLy8KCSAgLy8gaGFuZGxlIGRlZmluaXRpb24gbGluZXMKCSAgLy8KCSAgJGZpZWxkcyA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkbGluZSwkdGhpcy0+X2RlbGltaXRlcik7CgoJICAvLwoJICAvLyBkbyByZWFsIGltcG9ydGluZwoJICAvLwoJICAvLyBtYWtlIHN1cmUgaXQncyBub3QgYSBoZWFkZXIgbGluZS4KCSAgaWYoICR0aGlzLT5faXNfaGVhZGVyKCRsaW5lKSApIGNvbnRpbnVlOwoKCSAgJHJvd3R5cGUgPSAnJzsKCSAgZm9yZWFjaCggJHRoaXMtPl9ydWxlcyBhcyAkbmFtZSA9PiAkZGF0YSApIHsKCSAgICBpZiggJGZpZWxkc1swXSA9PSAkdGhpcy0+X3J1bGVzWyRuYW1lXVsnaWRlbnRpZmllciddICkgewoJCSAgJHJvd3R5cGUgPSAkbmFtZTsKCQkgIGJyZWFrOwoJCX0KCSAgfQoJICBpZiggZW1wdHkoJHJvd3R5cGUpICkgewoJCWRlYnVnX2Rpc3BsYXkoJGxpbmUsJ2Vycm9yIGF0ICcuJHRoaXMtPl9saW5lbnVtKTsgZGllKCk7CgkgICAgJHRoaXMtPnNldF9lcnJvcigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfaW1wb3J0X3Vua25vd25yb3cnLCR0aGlzLT5fbGluZW51bSwkZmllbGRzWzBdKSk7CgkgICAgY29udGludWU7CgkgIH0KCgkgICRyZXQgPSAnJzsKCSAgc3dpdGNoKCAkcm93dHlwZSApIHsKCSAgY2FzZSAnY29tcGFueSc6CgkgICAgaWYoICgkdGhpcy0+X21heF9yZWNvcmRzID4gMCAmJiAkdGhpcy0+X251bV9jb21wYW5pZXMgPCAkdGhpcy0+X21heF9yZWNvcmRzKQoJCQl8fCAkdGhpcy0+X21heF9yZWNvcmRzID09IDAgKSB7CgkJICAkcmV0ID0gJHRoaXMtPnByb2Nlc3NfY29tcGFueSgkZmllbGRzLCR0aGlzLT5fcnVsZXNbJ2NvbXBhbnknXSk7CgkJICBpZiggJHJldCA9PT0gVFJVRSApICR0aGlzLT5fbnVtX2NvbXBhbmllcysrOwoJCX0KCSAgICBjb250aW51ZTsKCgkgIGNhc2UgJ2NhdGVnb3J5JzoKCSAgICBpZiggJHRoaXMtPl9kb19jYXRlZ29yeWRlZnMgKSB7CgkJICAkcmV0ID0gJHRoaXMtPnByb2Nlc3NfY2F0ZWdvcnkoJGxpbmUsJHRoaXMtPl9ydWxlc1snY2F0ZWdvcnknXSk7CgkJICBpZiggJHJldCA9PT0gVFJVRSApICR0aGlzLT5fbnVtX2NhdGVnb3JpZXMrKzsKCQl9CgkgICAgY29udGludWU7CgkgICAgYnJlYWs7CgoJICBjYXNlICdmaWVsZGRlZic6CgkgICAgaWYoICR0aGlzLT5fZG9fZmllbGRkZWZzICkgewoJCSAgJHJldCA9ICR0aGlzLT5wcm9jZXNzX2ZpZWxkZGVmKCRsaW5lLCR0aGlzLT5fcnVsZXNbJ2ZpZWxkZGVmJ10pOwoJCSAgaWYoICRyZXQgPT09IFRSVUUgKSAkdGhpcy0+X251bV9maWVsZGRlZnMrKzsKCQl9CgkgICAgY29udGludWU7CgkgICAgYnJlYWs7CgoJICBjYXNlICdoaWVyYXJjaHknOgoJICAgIGlmKCAkdGhpcy0+X2RvX2hpZXJkZWZzICkgewoJCSAgJHJldCA9ICR0aGlzLT5wcm9jZXNzX2hpZXJhcmNoeSgkbGluZSwkdGhpcy0+X3J1bGVzWydoaWVyYXJjaHknXSk7CgkJICBpZiggJHJldCA9PT0gVFJVRSApICR0aGlzLT5fbnVtX2hpZXIrKzsKCQl9CgkgICAgY29udGludWU7CgkgICAgYnJlYWs7CgoJICBkZWZhdWx0OgoJCWlmKCAkcm93dHlwZSAhPSAnJyApIHsKCQkgICR0aGlzLT5zZXRfZXJyb3IoJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2ltcG9ydF91bmtub3ducm93JywkdGhpcy0+X2xpbmVudW0sJGZpZWxkc1swXSkpOwoJCX0KCSAgICBjb250aW51ZTsKCSAgICBicmVhazsKCSAgfQoJfQogICAgJHRoaXMtPl9udW1fbGluZXMgPSAkdGhpcy0+X2xpbmVudW07CiAgICByZXR1cm4gVFJVRTsKICB9Cgp9CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2IC0gMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2RfY29tcGFueQp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9yd2tleXMgPSBhcnJheSgnY29tcGFueV9uYW1lJywnYWRkcmVzcycsJ3RlbGVwaG9uZScsJ2ZheCcsJ2NvbnRhY3RfZW1haWwnLCd3ZWJzaXRlJywnZGV0YWlscycsJ3BpY3R1cmVfbG9jYXRpb24nLAoJCQkJICAnbG9nb19sb2NhdGlvbicsJ2xhdGl0dWRlJywnbG9uZ2l0dWRlJywnaGllcl9pZCcsJ3N0YXR1cycsJ3VybCcsJ293bmVyX2lkJyk7CiAgcHJpdmF0ZSBzdGF0aWMgJF9yb2tleXMgPSBhcnJheSgnaWQnLCdsb2dvX3BhdGgnLCdvd25lcl9pZCcsJ2NyZWF0ZV9kYXRlJywnbW9kaWZpZWRfZGF0ZScpOwogIHByaXZhdGUgc3RhdGljICRfbWV0YWtleXMgPSBhcnJheSgncGljdHVyZV9wYXRoJywncGljdHVyZV9kaXInLCdsb2dvX3BhdGgnLCdsb2dvX2RpcicsJ2ZpZWxkcycsJ2NhdGVnb3JpZXMnLCdpbWFnZV9sb2NhdGlvbicpOwogIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoJ3N0YXR1cyc9PidkcmFmdCcpOwogIHByaXZhdGUgJF9maWVsZHMgPSBhcnJheSgpOwogIHByaXZhdGUgJF9jYXRzID0gYXJyYXkoKTsKICBwcml2YXRlICRfZGlydHk7CiAgcHJpdmF0ZSAkX2RlZXA7CiAgcHJpdmF0ZSAkX3JvOwoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3JlYWRvbmx5KCRmbGFnID0gVFJVRSkKICB7CgkvLyBjYW5ub3QgYmUgdW5kb25lLi4uCgkkdGhpcy0+X3JvID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICB7CgkkcmV0ID0gbnVsbDsKICAgICRrZXkgPSBzdHJ0b2xvd2VyKCRrZXkpOwogICAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9yb2tleXMpICkgewoJICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gJHJldDsKCSAgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKCX0KICAgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcndrZXlzKSApIHsKCSAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuICRyZXQ7CgkgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07Cgl9CiAgICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX21ldGFrZXlzKSApIHsKCSAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJICBzd2l0Y2goICRrZXkgKSB7CgkgIGNhc2UgJ2ZpZWxkcyc6CgkJZGllKCdub3QgZG9uZScpOwoJCWJyZWFrOwoKCSAgY2FzZSAnY2F0ZWdvcmllcyc6CgkJZGllKCdub3QgZG9uZScpOwoJCWJyZWFrOwoKCSAgY2FzZSAnaW1hZ2VfbG9jYXRpb24nOiAvLyBhbGlhcyBmb3IgcGljdHVyZSBsb2NhdGlvbgoJCWlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ10pICkgcmV0dXJuICRyZXQ7CgkJcmV0dXJuICR0aGlzLT5fZGF0YVsncGljdHVyZV9sb2NhdGlvbiddOwoKCSAgY2FzZSAncGljdHVyZV9wYXRoJzoKCQlpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ3BpY3R1cmVfbG9jYXRpb24nXSkgJiYgJHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ10gIT0gJycgKSB7CgkJICByZXR1cm4gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL3VwbG9hZHMvY29tcGFueWRpcmVjdG9yeS9pZCcuJHRoaXMtPl9kYXRhWydpZCddLicvJy4kdGhpcy0+X2RhdGFbJ3BpY3R1cmVfbG9jYXRpb24nXTsKCQl9CgkJYnJlYWs7CgoJICBjYXNlICdsb2dvX3BhdGgnOgoJCWlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmIGlzc2V0KCR0aGlzLT5fZGF0YVsnbG9nb19sb2NhdGlvbiddKSAmJiAkdGhpcy0+X2RhdGFbJ2xvZ29fbG9jYXRpb24nXSAhPSAnJyApIHsKCQkgIHJldHVybiAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvdXBsb2Fkcy9jb21wYW55ZGlyZWN0b3J5L2lkJy4kdGhpcy0+X2RhdGFbJ2lkJ10uJy8nLiR0aGlzLT5fZGF0YVsnbG9nb19sb2NhdGlvbiddOwoJCX0KCQlicmVhazsKCgkgIGNhc2UgJ3BpY3R1cmVfZGlyJzoKCSAgY2FzZSAnbG9nb19kaXInOgoJCWlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICkgewoJCSAgcmV0dXJuIGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnkvaWQnLiR0aGlzLT5fZGF0YVsnaWQnXSk7CgkJfQoJCWJyZWFrOwoJICB9Cgl9CiAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byByZXRyaWV2ZSBpbnZhbGlkIHZhbHVlIGZyb20gYSBDb21wYW55IHJlY29yZDogJy4ka2V5KTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwkdmFsdWUpCiAgewoJaWYoICR0aGlzLT5fcm8gKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBtb2RpZnkgYSBjb21wYW55IHJlY29yZCBpbiByZWFkb25seSBtb2RlLicpOwogICAgJGtleSA9IHN0cnRvbG93ZXIoJGtleSk7CiAgICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX3J3a2V5cykgKSB7CgkgIHN3aXRjaCggJGtleSApIHsKCSAgY2FzZSAnY29tcGFueV9uYW1lJzoKCSAgY2FzZSAnYWRkcmVzcyc6CgkgIGNhc2UgJ3RlbGVwaG9uZSc6CgkgIGNhc2UgJ2ZheCc6CgkJaWYoIGVtcHR5KCR2YWx1ZSkgKSB7CgkJICB1bnNldCgkdGhpcy0+X2RhdGFbJGtleV0pOwoJCX0KCQllbHNlIHsKCQkgICR4ID0gJHZhbHVlOwoJCSAgaWYoIGNtc21zKCktPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApICR4ID0gZmlsdGVyX3Zhcih0cmltKCR2YWx1ZSksRklMVEVSX1NBTklUSVpFX1NUUklORyk7CgkJICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkeDsKCQl9CgkJJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CgkJcmV0dXJuOwoKCSAgY2FzZSAnZGV0YWlscyc6CgkJJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwoJCSR0aGlzLT5fZGlydHkgPSBUUlVFOwoJCXJldHVybjsKCgkgIGNhc2UgJ3VybCc6CgkgIGNhc2UgJ3dlYnNpdGUnOgoJCWlmKCBlbXB0eSgkdmFsdWUpICkgewoJCSAgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKCQl9CgkJZWxzZSB7CgkJICAkdGhpcy0+X2RhdGFbJGtleV0gPSBmaWx0ZXJfdmFyKHRyaW0oJHZhbHVlKSxGSUxURVJfU0FOSVRJWkVfU1RSSU5HKTsKCQl9CgkJJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CgkJcmV0dXJuOwoKCSAgY2FzZSAnY29udGFjdF9lbWFpbCc6CgkJaWYoIGVtcHR5KCR2YWx1ZSkgKSB7CgkJICB1bnNldCgkdGhpcy0+X2RhdGFbJGtleV0pOwoJCX0KCQllbHNlIHsKCQkgIGlmKCAhaXNfZW1haWwoJHZhbHVlKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCd2YWx1ZSBmb3IgZmllbGQgJy4ka2V5LicgaXMgaW52YWxpZCcpOwoJCSAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwoJCX0KCQkkdGhpcy0+X2RpcnR5ID0gVFJVRTsKCQlyZXR1cm47CgoJICBjYXNlICdwaWN0dXJlX2xvY2F0aW9uJzoKCSAgY2FzZSAnbG9nb19sb2NhdGlvbic6CgkJLy8gZ2V0IHRoZSBwaWN0dXJlIGZpbGUgbG9jYXRpb24KCQkvLyBzZWUgaWYgaXQgaXMgdGhlcmUuCgkJJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwoJCSR0aGlzLT5fZGlydHkgPSBUUlVFOwoJCXJldHVybjsKCgkgIGNhc2UgJ2xhdGl0dWRlJzoKCSAgY2FzZSAnbG9uZ2l0dWRlJzoKCQlpZiggZW1wdHkoJHZhbHVlKSApIHsKCQkgIHVuc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CgkJfQoJCWVsc2UgewoJCSAgaWYoICFpc19udW1lcmljKCR2YWx1ZSkgKQl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigndmFsdWUgZm9yIGZpZWxkICcuJGtleS4nIGlzIGludmFsaWQnKTsKCQkgIGlmKCAkdmFsdWUgPCAtMTgwIHx8ICR2YWx1ZSA+IDE4MCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCd2YWx1ZSBmb3IgZmllbGQgJy4ka2V5LicgaXMgaW52YWxpZCcpOwoJCSAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJCX0KCQkkdGhpcy0+X2RpcnR5ID0gVFJVRTsKCQlyZXR1cm47CgoJICBjYXNlICdzdGF0dXMnOgoJCSR2YWx1ZSA9IHN0cnRvbG93ZXIodHJpbSgkdmFsdWUpKTsKCQlpZiggIWluX2FycmF5KCR2YWx1ZSxhcnJheSgnZHJhZnQnLCdwdWJsaXNoZWQnLCdkaXNhYmxlZCcpKSApCgkJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigndmFsdWUgJy4kdmFsdWUuJyBmb3IgZmllbGQgJy4ka2V5LicgaXMgaW52YWxpZCcpOwoJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQkkdGhpcy0+X2RpcnR5ID0gVFJVRTsKCQlyZXR1cm47CgoJICBjYXNlICdoaWVyX2lkJzoKCSAgY2FzZSAnb3duZXJfaWQnOgoJCWlmKCAhaXNfbnVtZXJpYygkdmFsdWUpICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ3ZhbHVlOiAnLiR2YWx1ZS4nIGZvciBmaWVsZCAnLiRrZXkuJyBpcyBpbnZhbGlkJyk7CgkJJHZhbHVlID0gKGludCl0cmltKCR2YWx1ZSk7CgkJJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJCSR0aGlzLT5fZGlydHkgPSBUUlVFOwoJCXJldHVybjsKCgkgIGRlZmF1bHQ6CgkJLy8gc2hvdWxkIG5ldmVyIGdldCBoZXJlLgoJICB9Cgl9CgogICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGludmFsaWQgdmFsdWUgJy4ka2V5LicgaW50byBhIGNvbXBhbnkgcmVjb3JkJyk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNldHVwX2ZpZWxkc19hbmRfY2F0cygpCiAgewoJaWYoICR0aGlzLT5fZGVlcCB8fCAoaXNfYXJyYXkoJHRoaXMtPl9maWVsZHMpICYmIGNvdW50KCR0aGlzLT5fZmllbGRzKSkgKSByZXR1cm47CgoJJHRtcCA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzKFRSVUUsVFJVRSk7CglpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CgkgICR0aGlzLT5fZmllbGRzID0gYXJyYXkoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkJJHRoaXMtPl9maWVsZHNbXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCR0bXBbJGldKTsKCSAgfQoJfQoKCSRjYXRzID0gY2RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKCk7CglpZiggaXNfYXJyYXkoJGNhdHMpICYmIGNvdW50KCRjYXRzKSApIHsKCSAgJHRoaXMtPl9jYXRzID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGNhdHMgYXMgJG9uZSApIHsKCQkkb25lLT52YWx1ZSA9IGZhbHNlOwoJCSR0aGlzLT5fY2F0c1tdID0gJG9uZTsKCSAgfQoJfQoKCSR0aGlzLT5fZGVlcCA9IHRydWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkKCRrZXkpCiAgewogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCglpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZHMpICYmIGNvdW50KCR0aGlzLT5fZmllbGRzKSApIHsKCSAgaWYoIGlzX251bWVyaWMoJGtleSkgKSB7CgkJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJHJlYyApIHsKCQkgIGlmKCAkcmVjLT5pZCA9PSAka2V5ICkgcmV0dXJuICRyZWM7CgkJfQoJICB9CgkgIGVsc2UgewoJCWZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRyZWMgKSB7CgkJICBpZiggJHJlYy0+bmFtZSA9PSAka2V5ICkgcmV0dXJuICRyZWM7CgkJfQoJICB9CgoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byByZXRyaWV2ZSB2YWx1ZSBmcm9tIHVua25vd24gZmllbGQgJy4ka2V5KTsKCX0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gbGlzdF9maWVsZHMoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9kZWVwICYmIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApICR0aGlzLT5fbG9hZF9kZWVwKCk7CgkKCSRvdXQgPSBhcnJheSgpOwoJaWYoIGlzX2FycmF5KCR0aGlzLT5fZmllbGRzKSAmJiBjb3VudCgkdGhpcy0+X2ZpZWxkcykgKSB7CgkgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRyZWMgKSB7CgkJJG91dFtdID0gJHJlYy0+bmFtZTsKCSAgfQoJfQoJcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgewogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCBpc19hcnJheSgkdGhpcy0+X2ZpZWxkcykgJiYgY291bnQoJHRoaXMtPl9maWVsZHMpICkgcmV0dXJuICR0aGlzLT5fZmllbGRzOwogIH0KCiAgLyoKICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2ZpZWxkKCRrZXksJGRlbGV0ZV9maWxlcyA9IFRSVUUpCiAgewoJaWYoICR0aGlzLT5fcm8gKSB7CgkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7Cgl9CgogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApIHsKCSAgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCX0KCglpZiggY291bnQoJHRoaXMtPl9maWVsZHMpID09IDAgKQoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdmFsdWUgZm9yIGEgZmllbGQgJy4ka2V5LicgdGhhdCBkb2VzIG5vdCBleGlzdCcpOwoKCWZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRma2V5ID0+ICYkZnJlYyApIHsKCSAgaWYoIGlzX251bWVyaWMoJGtleSkgKSB7CgkJaWYoICRmcmVjLT5pZCA9PSAka2V5ICkgewoJCSAgLy8gaWYgaXQncyBhIGZpbGUgZmllbGQgdW5saW5rIHRoZSBmaWxlKHMpCgkJICBpZiggJGZyZWMtPnR5cGUgPT0gJ2ZpbGUnIHx8ICRmcmVjLT50eXBlID09ICdpbWFnZScgKSB7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJ3ByZXZpZXdfJy4kZnJlYy0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCR0aGlzLT5sb2dvX2RpciwndGh1bWJfJy4kZnJlYy0+dmFsdWUpKTsKCQkJQHVubGluayhjbXNfam9pbl9wYXRoKCR0aGlzLT5sb2dvX2RpciwkZnJlYy0+dmFsdWUpKTsKCQkgIH0KCQkgIC8vIGVyYXNlIHRoZSByZWNvcmQKCQkgIHVuc2V0KCR0aGlzLT5fZmllbGRzWyRma2V5XSk7CgkJICAkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIHJldHVybjsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRmcmVjLT5uYW1lID09ICRrZXkgKSB7CgkJICAvLyBpZiBpdHMgYSBmaWxlIGZpZWxkIHVubGluayB0aGUgZmlsZShzKQoJCSAgaWYoICRmcmVjLT50eXBlID09ICdmaWxlJyB8fCAkZnJlYy0+dHlwZSA9PSAnaW1hZ2UnICkgewoJCQlAdW5saW5rKGNtc19qb2luX3BhdGgoJHRoaXMtPmxvZ29fZGlyLCdwcmV2aWV3XycuJGZyZWMtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJ3RodW1iXycuJGZyZWMtPnZhbHVlKSk7CgkJCUB1bmxpbmsoY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJGZyZWMtPnZhbHVlKSk7CgkJICB9CgkJICAvLyBlcmFzZSB0aGUgcmVjb3JkCgkJICB1bnNldCgkdGhpcy0+X2ZpZWxkc1skZmtleV0pOwoJCSAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CgkJICByZXR1cm47CgkJfQoJICB9Cgl9CgoJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IHZhbHVlIGZvciBhIGZpZWxkICcuJGtleS4nIHRoYXQgZG9lcyBub3QgZXhpc3QnKTsKICB9CiAgKi8KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmlsZV9maWVsZCgkZmxka2V5LCR2YWx1ZSwkdG1wX2ZzKQogIHsKCWlmKCAkdGhpcy0+X3JvICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gbW9kaWZ5IGEgY29tcGFueSByZWNvcmQgaW4gcmVhZG9ubHkgbW9kZS4nKTsKCWlmKCAhJHRoaXMtPmlkICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGEgZmlsZSBmaWVsZCBpbiBhIGNvbXBhbnkgd2l0aG91dCBhbiBpZC4nKTsKCglpZiggIWZpbGVfZXhpc3RzKCR0bXBfZnMpICkgewoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdmFsdWUgZm9yIGEgZmlsZSBmaWVsZCAnLiRrZXkuJyBhbmQgZmlsZSBkb2VzIG5vdCBleGlzdCcpOwoJfQoKICAgIGlmKCAhJHRoaXMtPl9kZWVwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCBjb3VudCgkdGhpcy0+X2ZpZWxkcykgPT0gMCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCB2YWx1ZSBmb3IgYSBmaWVsZCAnLiRrZXkuJyB0aGF0IGRvZXMgbm90IGV4aXN0Jyk7CgoJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJGZrZXkgPT4gJiRmcmVjICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIHsKCQlpZiggJGZyZWMtPmlkID09ICRrZXkgKSB7CgkJICBpZiggZmlsZV9leGlzdHMoJHRtcF9mcykgKSB7CgkJCS8vIG1vdmUgdGhlIGZpbGUgdG8gaXRzIHBlcm0gbG9jYXRpb24KCQkJLy8gc2hvdWxkIHdlIHBsYXkgd2l0aCBleHRlbnNpb25zIGhlcmU/CgkJCUBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCR0bXBfZnMsY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJHZhbHVlKSk7CgkJCS8vIGdlbmVyYXRlIHRodW1icyBhbmQgY3JhcD8KCQkJJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCQkkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIH0KCQkgIHJldHVybjsKCQl9CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRmcmVjLT5uYW1lID09ICRrZXkgKSB7CgkJICBpZiggZmlsZV9leGlzdHMoJHRtcF9mcykgKSB7CgkJCS8vIG1vdmUgdGhlIGZpbGUgdG8gaXRzIHBlcm0gbG9jYXRpb24KCQkJLy8gc2hvdWxkIHdlIHBsYXkgd2l0aCBleHRlbnNpb25zIGhlcmU/CgkJCUBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCR0bXBfZnMsY21zX2pvaW5fcGF0aCgkdGhpcy0+bG9nb19kaXIsJHZhbHVlKSk7CgkJCS8vIGdlbmVyYXRlIHRodW1icyBhbmQgY3JhcD8KCQkJJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCQkkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKCQkgIH0KCQkgIHJldHVybjsKCQl9CgkgIH0KCX0KCgl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdmFsdWUgZm9yIGEgZmllbGQgJy4ka2V5LicgdGhhdCBkb2VzIG5vdCBleGlzdCcpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCgka2V5LCR2YWx1ZSkKICB7CglpZiggJHRoaXMtPl9ybyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICBpZiggISR0aGlzLT5fZGVlcCAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSAkdGhpcy0+X2xvYWRfZGVlcCgpOwoJaWYoIGNvdW50KCR0aGlzLT5fZmllbGRzKSA9PSAwICkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCB2YWx1ZSBmb3IgYSBmaWVsZCAnLiRrZXkuJyB0aGF0IGRvZXMgbm90IGV4aXN0Jyk7CgoJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJGZrZXkgPT4gJiRmcmVjICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIHsKCQlpZiggJGZyZWMtPmlkID09ICRrZXkgKSB7CgkJICBpZiggaXNfYXJyYXkoJHZhbHVlKSApIHsKCQkJaWYoICRmcmVjLT50eXBlICE9ICdtdWx0aXNlbGVjdCcgJiYgJGZyZWMtPnR5cGUgIT0gJ2FjdGl2aXR5JyApIHsKCQkJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VjcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGFuIGFycmF5IHZhbHVlIGludG8gYW4gaW1wcm9wZXIgZmllbGQnKTsKCQkJfQoJCQkkdmFsdWUgPSBpbXBsb2RlKCd+ficsJHZhbHVlKTsKCQkgIH0KCQkgICRmcmVjLT52YWx1ZSA9ICR2YWx1ZTsKCQkgICR0aGlzLT5fZGlydHkgPSB0cnVlOwoJCSAgcmV0dXJuOwoJCX0KCSAgfQoJICBlbHNlIHsKCQlpZiggJGZyZWMtPm5hbWUgPT0gJGtleSApIHsKCQkgIGlmKCBpc19hcnJheSgkdmFsdWUpICkgewoJCQlpZiggJGZyZWMtPnR5cGUgIT0gJ211bHRpc2VsZWN0JyAmJiAkZnJlYy0+dHlwZSAhPSAnYWN0aXZpdHknICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlY3B0aW9uKCdBdHRlbXB0IHRvIHNldCBhbiBhcnJheSB2YWx1ZSBpbnRvIGFuIGltcHJvcGVyIGZpZWxkJyk7CgkJCSR2YWx1ZSA9IGltcGxvZGUoJ35+JywkdmFsdWUpOwoJCSAgfQoJCSAgJGZyZWMtPnZhbHVlID0gJHZhbHVlOwoJCSAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CgkJICByZXR1cm47CgkJfQoJICB9Cgl9CgoJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IHZhbHVlIGZvciBhIGZpZWxkICcuJGtleS4nIHRoYXQgZG9lcyBub3QgZXhpc3QnKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5KCRrZXkpCiAgewogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCBjb3VudCgkdGhpcy0+X2NhdHMpID09IDAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignQXR0ZW1wdDEgdG8gZ2V0IHZhbHVlIGZvciBpbnZhbGlkIGNhdGVnb3J5ICcuJGtleSk7CgoJZm9yZWFjaCggJHRoaXMtPl9jYXRzIGFzICRvbmUgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgewoJCWlmKCAkb25lLT5pZCA9PSAka2V5ICkgcmV0dXJuICRvbmU7CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRvbmUtPm5hbWUgPT0gJGtleSApIHJldHVybiAkb25lOwoJICB9Cgl9CgoJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IHZhbHVlIGZvciBpbnZhbGlkIGNhdGVnb3J5ICcuJGtleSk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGxpc3RfY2F0ZWdvcmllcygkbmFtZXMgPSBUUlVFKQogIHsKICAgIGlmKCAhJHRoaXMtPl9kZWVwICYmIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddID4gMCApICR0aGlzLT5fbG9hZF9kZWVwKCk7CgoJJG91dCA9IGFycmF5KCk7CglpZiggaXNfYXJyYXkoJHRoaXMtPl9jYXRzKSAmJiBjb3VudCgkdGhpcy0+X2NhdHMpICkgewoJICBmb3JlYWNoKCAkdGhpcy0+X2NhdHMgYXMgJHJlYyApIHsKCQlpZiggISRyZWMtPnZhbHVlICkgY29udGludWU7CgkJaWYoICRuYW1lcyApIHsKCQkgICRvdXRbXSA9ICRyZWMtPm5hbWU7CgkJfQoJCWVsc2UgewoJCSAgJG91dFtdID0gJHJlYy0+aWQ7CgkJfQoJICB9Cgl9CglyZXR1cm4gJG91dDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiByZXNldF9jYXRlZ29yaWVzKCkKICB7CglpZiggJHRoaXMtPl9ybyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICBpZiggISR0aGlzLT5fZGVlcCAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSAkdGhpcy0+X2xvYWRfZGVlcCgpOwoJaWYoICFjb3VudCgkdGhpcy0+X2NhdHMpICkgcmV0dXJuOwoKCWZvcmVhY2goICR0aGlzLT5fY2F0cyBhcyAmJG9uZWNhdCApIHsKCSAgJG9uZWNhdC0+dmFsdWUgPSAwOwoJfQoJJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNldF9jYXRlZ29yeSgka2V5LCR2YWx1ZSA9IDEsJGV4dHJhMSA9ICcnLCRleHRyYTIgPSAnJywkZXh0cmEzID0gJycpCiAgewoJaWYoICR0aGlzLT5fcm8gKSB7CgkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7Cgl9CgogICAgaWYoICEkdGhpcy0+X2RlZXAgJiYgaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgJHRoaXMtPl9sb2FkX2RlZXAoKTsKCWlmKCAhY291bnQoJHRoaXMtPl9jYXRzKSApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCB2YWx1ZSBmb3IgaW52YWxpZCBjYXRlZ29yeSAnLiRrZXkpOwoKCSR2YWx1ZSA9ICgkdmFsdWUpPzE6MDsKCWZvcmVhY2goICR0aGlzLT5fY2F0cyBhcyAmJHJlYyApIHsKCSAgaWYoIGlzX251bWVyaWMoJGtleSkgKSB7CgkJaWYoICRyZWMtPmlkID09ICRrZXkgKSB7CgkJICAkcmVjLT52YWx1ZSA9ICR2YWx1ZTsKCQkgICRyZWMtPmV4dHJhMSA9ICRleHRyYTE7CgkJICAkcmVjLT5leHRyYTIgPSAkZXh0cmEyOwoJCSAgJHJlYy0+ZXh0cmEzID0gJGV4dHJhMzsKCQkgICR0aGlzLT5fZGlydHkgPSB0cnVlOwoJCSAgcmV0dXJuOwoJCX0KCSAgfQoJICBlbHNlIHsKCQlpZiggJHJlYy0+aWQgPT0gJGtleSApIHsKCQkgICRyZWMtPnZhbHVlID0gJHZhbHVlOwoJCSAgJHJlYy0+ZXh0cmExID0gJGV4dHJhMTsKCQkgICRyZWMtPmV4dHJhMiA9ICRleHRyYTI7CgkJICAkcmVjLT5leHRyYTMgPSAkZXh0cmEzOwoJCSAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CgkJICByZXR1cm47CgkJfQoJICB9Cgl9CgkKCXRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCB2YWx1ZSBmb3IgaW52YWxpZCBjYXRlZ29yeSAnLiRrZXkpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfa2V5KCRrZXksJHR5cGUgPSAnYW55JykKICB7CiAgICAkdHlwZSA9IHN0cnRvbG93ZXIoJHR5cGUpOwogICAgaWYoICR0eXBlID09ICdhbnknICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX3J3a2V5cykgKSByZXR1cm4gVFJVRTsKCSAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9yb2tleXMpICkgcmV0dXJuIFRSVUU7CgkgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfbWV0YWtleXMpICkgcmV0dXJuIFRSVUU7Cgl9CiAgICBlbHNlIGlmKCAkdHlwZSA9PSAncncnICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX3J3a2V5cykgKSByZXR1cm4gVFJVRTsKCX0KICAgIGVsc2UgaWYoICR0eXBlID09ICdybycgKSB7CgkgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcm9rZXlzKSApIHJldHVybiBUUlVFOwoJfQogICAgZWxzZSBpZiggJHR5cGUgPT0gJ21ldGEnICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX21ldGFrZXlzKSApIHJldHVybiBUUlVFOwoJfQogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfZmllbGQoJGtleSkKICB7CgkkZmllbGRzID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKCWlmKCAhaXNfYXJyYXkoJGZpZWxkcykgKSByZXR1cm4gRkFMU0U7CgoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkcyk7ICRpKysgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgewoJCWlmKCAkZmllbGRzWyRpaV0tPmlkID09ICRrZXkgKSByZXR1cm4gVFJVRTsKCSAgfQoJICBlbHNlIHsKCQlpZiggJGZpZWxkc1skaV0tPm5hbWUgPT0gJGtrZXkgKSByZXR1cm4gVFJVRTsKCSAgfQoJfQoJcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfY2F0ZWdvcnkoJGtleSkKICB7CgkkY2F0cyA9IGNkX3V0aWxzOjpnZXRfY2F0ZWdvcmllcygpOwoJaWYoICFpc19hcnJheSgkY2F0cykgfHwgY291bnQoJGNhdHMpID09IDAgKSByZXR1cm4gRkFMU0U7CgoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGNhdHMpOyAkaSsrICkgewoJICBpZiggaXNfbnVtZXJpYygka2V5KSApIHsKCQlpZiggJGNhdHNbJGldLT5pZCA9PSAka2V5ICkgcmV0dXJuIFRSVUU7CgkgIH0KCSAgZWxzZSB7CgkJaWYoICRjYXRzWyRpXS0+bmFtZSA9PSAka2V5ICkgcmV0dXJuIFRSVUU7CgkgIH0KCX0KCXJldHVybiBGQUxTRTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZSgkY29tcGlkKQogIHsKCWlmKCAkY29tcGlkIDw9IDAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCBDb21wYW55IGlkIHNwZWNpZmllZCcpOwoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkvLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JzsKCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCWlmKCAhaXNfYXJyYXkoJHJvdykgfHwgY291bnQoJHJvdykgPT0gMCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIENvbXBhbnkgaWQgc3BlY2lmaWVkJyk7CgoJLy8gc2VuZCBhbiBldmVudAoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkY2Rtb2QtPlNlbmRFdmVudCgnT25EZWxldGVDb21wYW55JyxhcnJheSgnd2hvJz0+Z2V0X3VzZXJpZChGQUxTRSksJ2NpZCc9PiRjb21waWQpKTsKCgkvL05vdyByZW1vdmUgdGhlIGNvbXBhbnkKCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyI7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY29tcGlkKSk7CgoJLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGVudHJpZXMKCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIFdIRVJFIGNvbXBhbnlfaWQgPSA/IjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCQoJLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGNhdGVnb3JpZXMKCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIFdIRVJFIGNvbXBhbnlfaWQgPSA/IjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCgkvLyBSZW1vdmUgdGhlIGZpbGVzCgkkZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnY29tcGFueWRpcmVjdG9yeScsJ2lkJy4kY29tcGlkKTsKCWNnZV9kaXI6OnJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRkaXIpOwoKCS8vVXBkYXRlIHNlYXJjaCBpbmRleAoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkbW9kdWxlID0gJGNkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CglpZiggaXNfb2JqZWN0KCRtb2R1bGUpICkgJG1vZHVsZS0+RGVsZXRlV29yZHMoJGNkbW9kLT5HZXROYW1lKCksICRjb21waWQsICdjb21wYW55Jyk7CgoJYXVkaXQoJGNvbXBpZCwkY2Rtb2QtPkdldE5hbWUoKSwnRGVsZXRlZCBDb21wYW55Jyk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmbG9hZF9ieV9pZCgkaWQsJGRlZXAgPSBGQUxTRSkKICB7CglpZiggJGlkIDw9IDAgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCBDb21wYW55IGlkIHNwZWNpZmllZCcpOwoKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIGlkID0gPyc7CgkkZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgoaW50KSRpZCkpOwoJaWYoICFpc19hcnJheSgkZGF0YSkgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCBDb21wYW55IGlkIHNwZWNpZmllZCcpOwoKCXJldHVybiBzZWxmOjpsb2FkX2Zyb21fZGF0YSgkZGF0YSwkZGVlcCk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmbG9hZF9mcm9tX2RhdGEoJGRhdGEsJGRlZXAgPSBGQUxTRSkgCiAgewoJJG9iaiA9IG5ldyBjZF9jb21wYW55OwoJZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcndrZXlzKSB8fCBpbl9hcnJheSgka2V5LHNlbGY6OiRfcm9rZXlzKSApICRvYmotPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJfQoKCWlmKCAkZGVlcCApICRvYmotPl9sb2FkX2RlZXAoKTsKCXJldHVybiAkb2JqOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgkZGVlcCA9IFRSVUUpCiAgewoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ293bmVyX2lkJ10pICkgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9ub293bmVyJykpOwoKCWlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSkgfHwgJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSA9PSAnJyApCgkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCRjZG1vZC0+TGFuZygnbm9jb21wYW55bmFtZWdpdmVuJykpOwoJCglpZiggKCFpc3NldCgkdGhpcy0+X2RhdGFbJ3VybCddKSB8fCAkdGhpcy0+X2RhdGFbJ3VybCddID09ICcnKSAmJiAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcsMCkgKQoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkY2Rtb2QtPkxhbmcoJ2Vycm9yX3VybHJlcXVpcmVkJykpOwoJCglpZiggKCFpc3NldCgkdGhpcy0+X2RhdGFbJ3VybCddKSB8fCAkdGhpcy0+X2RhdGFbJ3VybCddID09ICcnKSAmJiAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9hdXRvY3JlYXRlJywwKSApIHsKCSAgJHVybCA9IGNkX3V0aWxzOjpnZW5lcmF0ZV91cmwoJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSk7CgkgIGlmKCAhJHVybCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCRjZG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKSk7Cgl9CgoJaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddKSAmJiAkdGhpcy0+X2RhdGFbJ3dlYnNpdGUnXSAhPSAnJyAmJiAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ3ByZXBlbmRfd2Vic2l0ZV9odHRwJykgKSB7CgkgIGlmKCAhc3RhcnRzd2l0aCgkdGhpcy0+X2RhdGFbJ3dlYnNpdGUnXSwnaHR0cCcpICYmICFzdGFydHN3aXRoKCR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddLCdmdHAnKSApIHsKCQkkdGhpcy0+X2RhdGFbJ3dlYnNpdGUnXSA9ICdodHRwOi8vJy4kdGhpcy0+X2RhdGFbJ3dlYnNpdGUnXTsKCSAgfQoJfQoKCWlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSB7CgkgIC8vIHZhbGlkYXRlIGV4aXN0aW5nIHJlY29yZC4KCSAgaWYoIGNkX3V0aWxzOjpjb21wYW55X25hbWVfZXhpc3RzKCR0aGlzLT5fZGF0YVsnY29tcGFueV9uYW1lJ10sJHRoaXMtPl9kYXRhWydpZCddKSApCgkJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY29tcGFueScsJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSkpOwoKCSAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsndXJsJ10pICYmICR0aGlzLT5fZGF0YVsndXJsJ10gKSB7CgkJaWYoICFjZF91dGlsczo6dmFsaWRhdGVfdXJsKCR0aGlzLT5fZGF0YVsndXJsJ10sVFJVRSwkdGhpcy0+X2RhdGFbJ2lkJ10pICkgewoJCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJykpOwoJCX0KCSAgfQoJfQoJZWxzZSB7CgkgIC8vIHZhbGlkYXRlIG5ldyByZWNvcmQuCgkgIGlmKCBjZF91dGlsczo6Y29tcGFueV9uYW1lX2V4aXN0cygkdGhpcy0+X2RhdGFbJ2NvbXBhbnlfbmFtZSddKSApCgkJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJGNkbW9kLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVfY29tcGFueScsJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSkpOwoKCSAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsndXJsJ10pICYmICR0aGlzLT5fZGF0YVsndXJsJ10gKSB7CgkJaWYoICFjZF91dGlsczo6dmFsaWRhdGVfdXJsKCR0aGlzLT5fZGF0YVsndXJsJ10sVFJVRSkgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbigkY2Rtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWR1cmwnKSk7CgkgIH0KCX0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzYXZlKCRkZWVwID0gVFJVRSkKICB7CglpZiggJHRoaXMtPl9ybyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICBpZiggISR0aGlzLT5fZGlydHkgKSByZXR1cm47CglpZiggISR0aGlzLT5fZGVlcCApICRkZWVwID0gRkFMU0U7CgkkdGhpcy0+dmFsaWRhdGUoJGRlZXApOwoKCSRpc19pbnNlcnQgPSBGQUxTRTsKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSB7CgkgICR0aGlzLT5fdXBkYXRlKCRkZWVwKTsKCX0KCWVsc2UgewoJICAkdGhpcy0+X2luc2VydCgkZGVlcCk7CgkgICRpc19pbnNlcnQgPSBUUlVFOwoJfQoJaWYoICR0aGlzLT5fZGVlcCApIHsKCSAgJHRoaXMtPl9zYXZlX2RlZXAoKTsKCgkgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJICAkdGhpcy0+c2V0X3JlYWRvbmx5KCk7CgkgIGlmKCAkaXNfaW5zZXJ0ICkgewoJCSRjZG1vZC0+U2VuZEV2ZW50KCdPbkFkZENvbXBhbnknLGFycmF5KCd3aG8nPT5nZXRfdXNlcmlkKEZBTFNFKSwnb2JqZWN0Jz0+JHRoaXMpKTsKCSAgfQoJICBlbHNlIHsKCQkkY2Rtb2QtPlNlbmRFdmVudCgnT25FZGl0Q29tcGFueScsYXJyYXkoJ3dobyc9PmdldF91c2VyaWQoRkFMU0UpLCdvYmplY3QnPT4kdGhpcykpOwoJICB9CgkgICR0aGlzLT5zZXRfcmVhZG9ubHkoRkFMU0UpOwoJfQoKCSR0aGlzLT5fZGlydHkgPSBGQUxTRTsKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2luc2VydCgkZGVlcCA9IFRSVUUpCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgKGNvbXBhbnlfbmFtZSxhZGRyZXNzLHRlbGVwaG9uZSxmYXgsY29udGFjdF9lbWFpbCx3ZWJzaXRlLGRldGFpbHMscGljdHVyZV9sb2NhdGlvbiwKICAgICAgICAgICAgICAgbG9nb19sb2NhdGlvbixjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlLHN0YXR1cyxsYXRpdHVkZSxsb25naXR1ZGUsb3duZXJfaWQsaGllcl9pZCx1cmwpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSw/LD8sPyw/LD8sPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydjb21wYW55X25hbWUnXSwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2FkZHJlc3MnXSkpPyR0aGlzLT5fZGF0YVsnYWRkcmVzcyddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsndGVsZXBob25lJ10pKT8kdGhpcy0+X2RhdGFbJ3RlbGVwaG9uZSddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnZmF4J10pKT8kdGhpcy0+X2RhdGFbJ2ZheCddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnY29udGFjdF9lbWFpbCddKSk/JHRoaXMtPl9kYXRhWydjb250YWN0X2VtYWlsJ106JycsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWyd3ZWJzaXRlJ10pKT8kdGhpcy0+X2RhdGFbJ3dlYnNpdGUnXTonJywKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2RldGFpbHMnXSkpPyR0aGlzLT5fZGF0YVsnZGV0YWlscyddOicnLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsncGljdHVyZV9sb2NhdGlvbiddKSk/JHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ106JycsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydsb2dvX2xvY2F0aW9uJ10pKT8kdGhpcy0+X2RhdGFbJ2xvZ29fbG9jYXRpb24nXTonJywKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3N0YXR1cyddKSk/JHRoaXMtPl9kYXRhWydzdGF0dXMnXTonJywKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2xhdGl0dWRlJ10pKT8kdGhpcy0+X2RhdGFbJ2xhdGl0dWRlJ106JycsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydsb25naXR1ZGUnXSkpPyR0aGlzLT5fZGF0YVsnbG9uZ2l0dWRlJ106JycsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydvd25lcl9pZCddKSk/JHRoaXMtPl9kYXRhWydvd25lcl9pZCddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydoaWVyX2lkJ10pKT8kdGhpcy0+X2RhdGFbJ2hpZXJfaWQnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsndXJsJ10pKT8kdGhpcy0+X2RhdGFbJ3VybCddOicnKSk7CglpZiggISRkYnIgKSB7CgkgIGRlYnVnX2Rpc3BsYXkoJGRiLT5zcWwpOyBkZWJ1Z19kaXNwbGF5KCRkYi0+RXJyb3JNc2coKSk7IGRpZSgpOwoJICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignRXJyb3IgSW5zZXJ0aW5nIGNvbXBhbnkgZGF0YSAnLiRkYi0+c3FsLicgLS0tICcuJGRiLT5FcnJvck1zZygpKTsKCX0KCQoJJHRoaXMtPl9kYXRhWydpZCddID0gJGRiLT5JbnNlcnRfSUQoKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdXBkYXRlKCRkZWVwID0gVFJVRSkKICB7CgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMKICAgICAgICAgICAgICBTRVQgY29tcGFueV9uYW1lID0gPywgYWRkcmVzcyA9ID8sIHRlbGVwaG9uZSA9ID8sIGZheCA9ID8sIGNvbnRhY3RfZW1haWwgPSA/LCAKICAgICAgICAgICAgICB3ZWJzaXRlID0gPywgZGV0YWlscyA9ID8sIHBpY3R1cmVfbG9jYXRpb24gPSA/LAogICAgICAgICAgICAgIGxvZ29fbG9jYXRpb24gPSA/LCBzdGF0dXMgPSA/LCBsYXRpdHVkZSA9ID8sIGxvbmdpdHVkZSA9ID8sIG93bmVyX2lkID0gPywKICAgICAgICAgICAgICBoaWVyX2lkID0gPywgdXJsID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIGlkID0gPyc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2NvbXBhbnlfbmFtZSddLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnYWRkcmVzcyddKSk/JHRoaXMtPl9kYXRhWydhZGRyZXNzJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3RlbGVwaG9uZSddKSk/JHRoaXMtPl9kYXRhWyd0ZWxlcGhvbmUnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnZmF4J10pKT8kdGhpcy0+X2RhdGFbJ2ZheCddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydjb250YWN0X2VtYWlsJ10pKT8kdGhpcy0+X2RhdGFbJ2NvbnRhY3RfZW1haWwnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnd2Vic2l0ZSddKSk/JHRoaXMtPl9kYXRhWyd3ZWJzaXRlJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ2RldGFpbHMnXSkpPyR0aGlzLT5fZGF0YVsnZGV0YWlscyddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydwaWN0dXJlX2xvY2F0aW9uJ10pKT8kdGhpcy0+X2RhdGFbJ3BpY3R1cmVfbG9jYXRpb24nXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnbG9nb19sb2NhdGlvbiddKSk/JHRoaXMtPl9kYXRhWydsb2dvX2xvY2F0aW9uJ106bnVsbCwKCQkJCQkJCQkJIChpc3NldCgkdGhpcy0+X2RhdGFbJ3N0YXR1cyddKSk/JHRoaXMtPl9kYXRhWydzdGF0dXMnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnbGF0aXR1ZGUnXSkpPyR0aGlzLT5fZGF0YVsnbGF0aXR1ZGUnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsnbG9uZ2l0dWRlJ10pKT8kdGhpcy0+X2RhdGFbJ2xvbmdpdHVkZSddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydvd25lcl9pZCddKSk/JHRoaXMtPl9kYXRhWydvd25lcl9pZCddOm51bGwsCgkJCQkJCQkJCSAoaXNzZXQoJHRoaXMtPl9kYXRhWydoaWVyX2lkJ10pKT8kdGhpcy0+X2RhdGFbJ2hpZXJfaWQnXTpudWxsLAoJCQkJCQkJCQkgKGlzc2V0KCR0aGlzLT5fZGF0YVsndXJsJ10pKT8kdGhpcy0+X2RhdGFbJ3VybCddOm51bGwsCgkJCQkJCQkJCSAkdGhpcy0+X2RhdGFbJ2lkJ10pKTsKCglpZiggISRkYnIgKSB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignRXJyb3IgdXBkYXRpbmcgY29tcGFueSBkYXRhICcuJGRiLT5zcWwuJyAtLS0gJy4kZGItPkVycm9yTXNnKCkpOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfbG9hZF9kZWVwKCkKICB7CglpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgfHwgJHRoaXMtPl9kYXRhWydpZCddIDw9IDAgKSByZXR1cm47CgoJJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkdGhpcy0+X2ZpZWxkcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2Zvcl9jb21wYW55KCR0aGlzLT5fZGF0YVsnaWQnXSx0cnVlLHRydWUpOwoJJHRoaXMtPl9jYXRzID0gJGNkbW9kLT5HZXRDYXRlZ29yaWVzRm9yQ29tcGFueSgkdGhpcy0+X2RhdGFbJ2lkJ10pOwoJJHRoaXMtPl9kZWVwID0gVFJVRTsKICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX3NhdmVfZGVlcCgpCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCWlmKCBjb3VudCgkdGhpcy0+X2ZpZWxkcykgKSB7CgkgIC8vIGNsZWFyIGZpZWxkIGRhdGEKCSAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMKICAgICAgICAgICAgICAgIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydpZCddKSk7CgkgIC8vIGlnbm9yZSB0aGlzIGVycm9yLi4uIGFzIHRoZXJlIG1heSBiZSBubyBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHlldC4KCgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzCiAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxmaWVsZGRlZl9pZCx2YWx1ZSxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyxOT1coKSxOT1coKSknOwoJICBmb3JlYWNoKCAkdGhpcy0+X2ZpZWxkcyBhcyAkcmVjICkgewoJCWlmKCAhaXNzZXQoJHJlYy0+dmFsdWUpIHx8IGVtcHR5KCRyZWMtPnZhbHVlKSApIGNvbnRpbnVlOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsnaWQnXSwkcmVjLT5pZCwkcmVjLT52YWx1ZSkpOwoJCWlmKCAhJGRiciApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdFcnJvciB3cml0aW5nIGN1c3RvbSBmaWVsZCBkYXRhJyk7CgkgIH0KCX0KCglpZiggY291bnQoJHRoaXMtPl9jYXRzKSApIHsKCSAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydpZCddKSk7CgkgIC8vIGlnbm9yZSB0aGlzIGVycm9yLi4uIGFzIHRoZXJlIG1heSBiZSBubyBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHlldC4KCgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAoY29tcGFueV9pZCxjYXRlZ29yeV9pZCxleHRyYTEsZXh0cmEyLGV4dHJhMyxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sTk9XKCksTk9XKCkpJzsKCSAgZm9yZWFjaCggJHRoaXMtPl9jYXRzIGFzICRyZWMgKSB7CgkJaWYoICEkcmVjLT52YWx1ZSApIGNvbnRpbnVlOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsnaWQnXSwKCQkJCQkJCQkJCSAkcmVjLT5pZCwKCQkJCQkJCQkJCSAkcmVjLT5leHRyYTEsCgkJCQkJCQkJCQkgJHJlYy0+ZXh0cmEyLAoJCQkJCQkJCQkJICRyZWMtPmV4dHJhMykpOwoJCWlmKCAhJGRiciApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdFcnJvciB3cml0aW5nIGN1c3RvbSBmaWVsZCBkYXRhJyk7CgkgIH0KCX0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2VhcmNoX3dvcmRzKCRwYXJtcyA9IGFycmF5KCkpCiAgewoJJHRlcm1zID0gYXJyYXkoKTsKCSR0ZXJtc1tdID0gJHRoaXMtPmNvbXBhbnlfbmFtZTsKCSR0ZXJtc1tdID0gJHRoaXMtPmNvbXBhbnlfbmFtZTsgLy8geWVzLCB0d2ljZSAuLi4gaW5jcmVhc2VkIHNjb3JlLgoJJHRlcm1zW10gPSAkdGhpcy0+YWRkcmVzczsKCSR0ZXJtc1tdID0gJHRoaXMtPnRlbGVwaG9uZTsKCSR0ZXJtc1tdID0gJHRoaXMtPmZheDsKCSR0ZXJtc1tdID0gJHRoaXMtPmRldGFpbHM7CgkkdGVybXNbXSA9ICR0aGlzLT5mYXg7CgkKCWlmKCAhaXNzZXQoJHBhcm1zWydleGNsdWRlX2ZpZWxkcyddKSApIHsKCSAgJGZpZWxkcyA9IGNkX3V0aWxzOjpnZXRfZmllbGRkZWZzX2J5X25hbWUoVFJVRSxUUlVFKTsKCSAgaWYoIGlzX2FycmF5KCRmaWVsZHMpICYmIGNvdW50KCRmaWVsZHMpICkgewoJCWZvcmVhY2goICRmaWVsZHMgYXMgJGtleSA9PiAkZmxkICkgewoJCSAgaWYoICgkZmxkWyd0eXBlJ10gPT0gJ3RleHRib3gnIHx8ICRmbGRbJ3R5cGUnXSA9PSAndGV4dGFyZWEnKSAmJiAkZmxkWydwdWJsaWMnXSA9PSAxICYmICRmbGRbJ2FkbWluX29ubHknXSA9PSAwICkgewoJCQkkdG1wID0gJHRoaXMtPmdldF9maWVsZCgkZmxkWydpZCddKTsKCQkJaWYoIGlzX29iamVjdCgkdG1wKSAmJiBpc3NldCgkdG1wLT52YWx1ZSkgJiYgJHRtcC0+dmFsdWUgKSAkdGVybXNbXSA9ICR0bXAtPnZhbHVlOwoJCSAgfQoJCX0KCSAgfQoJfQoKCWlmKCAhaXNzZXQoJHBhcm1zWydleGNsdWRlX2NhdGVnb3J5X2V4dHJhJ10pICkgewoJICAkY2F0cyA9ICR0aGlzLT5saXN0X2NhdGVnb3JpZXMoKTsKCSAgaWYoIGlzX2FycmF5KCRjYXRzKSAmJiBjb3VudCgkY2F0cykgKSB7CgkJZm9yZWFjaCggJGNhdHMgYXMgJG9uZWNhdCApIHsKCQkgICRvYmogPSAkdGhpcy0+Z2V0X2NhdGVnb3J5KCRvbmVjYXQpOwoJCSAgaWYoICFpc19vYmplY3QoJG9iaikgKSBjb250aW51ZTsKCQkgICR0ZXJtc1tdID0gJG9iai0+ZXh0cmExOwoJCSAgJHRlcm1zW10gPSAkb2JqLT5leHRyYTI7CgkJICAkdGVybXNbXSA9ICRvYmotPmV4dHJhMzsKCQl9CgkgIH0KCX0KCgkkb3V0ID0gJyc7Cglmb3JlYWNoKCAkdGVybXMgYXMgJG9uZSApIHsKCSAgJG91dCAuPSAkb25lLicgJzsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9hbGJ1bV9maWxlKCRmZGlkLCRmaWxlbmFtZSkKICB7CglpZiggJHRoaXMtPl9ybyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdBdHRlbXB0IHRvIG1vZGlmeSBhIGNvbXBhbnkgcmVjb3JkIGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICBpZiggISR0aGlzLT5fZGVlcCAmJiBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA+IDAgKSAkdGhpcy0+X2xvYWRfZGVlcCgpOwoJaWYoICFpc19hcnJheSgkdGhpcy0+X2ZpZWxkcykgfHwgY291bnQoJHRoaXMtPl9maWVsZHMpID09IDAgKSByZXR1cm4gRkFMU0U7CgoJZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJHJlYyApIHsKCSAgaWYoICRyZWMtPmlkID09ICRmZGlkICYmICRyZWMtPnR5cGUgPT0gJ2FsYnVtJyApIHsKCQlpZiggaXNzZXQoJHJlYy0+dmFsdWUpICYmICRyZWMtPnZhbHVlICkgewoJCSAgJGZpbGVzID0gdW5zZXJpYWxpemUoJHJlYy0+dmFsdWUpOwoJCSAgaWYoIGluX2FycmF5KCRmaWxlbmFtZSwkZmlsZXMpICkgewoJCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJCSRmbiA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJHRoaXMtPmlkLCdhbGJ1bV8nLiRmZGlkLCRmaWxlbmFtZSk7CgkJCWlmKCAhZmlsZV9leGlzdHMoJGZuKSApIGF1ZGl0KCR0aGlzLT5pZCwnQ29tcGFueURpcmVjdG9yeScsJ0ZpbGUgJy4kZmlsZW5hbWUuJyBkb2VzIG5vdCBleGlzdCBmb3IgYWxidW0nKTsKCQkJQHVubGluaygkZm4pOwoKCQkJJHQgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCAkZmlsZXMgYXMgJG8gKSB7CgkJCSAgaWYoICRvICE9ICRmaWxlbmFtZSApICR0W10gPSAkbzsKCQkJfQkJCQkJCQkJCQoJCQkkcmVjLT52YWx1ZSA9ICcnOwoJCQlpZiggY291bnQoJHQpICkgJHJlYy0+dmFsdWUgPSBzZXJpYWxpemUoJHQpOwoJCQkkdGhpcy0+c2V0X2ZpZWxkKCRmZGlkLCRyZWMtPnZhbHVlKTsKCQkJcmV0dXJuIFRSVUU7CgkJICB9CgkJfQoJCWJyZWFrOwoJICB9Cgl9CglyZXR1cm4gRkFMU0U7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company_filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9jb21wYW55X2ZpbHRlciBpbXBsZW1lbnRzIEFycmF5QWNjZXNzCnsKICBwcml2YXRlICRfb3JpZ3BhcmFtczsKICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCk7CiAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ3JldHVybmlkJywnbmFtZScsJ3NvcnRieScsJ3NvcnRvcmRlcicsJ2NhdGVnb3J5JywnY2F0ZWdvcnkyJywnY2F0ZWdvcnkzJywnY2F0ZWdvcnlpZCcsJ2hpZXInLCdoaWVyX2NoaWxkcmVuJywncGFnZScsJ3BhZ2VsaW1pdCcsJ2V4cGlyZWRvd25lcnMnLCdkZWVwJywnb25seWNvdW50JywnaW5saW5lJywnZGV0YWlscGFnZScsJ2RldGFpbHRlbXBsYXRlJywnc2hvd2FsbCcsJ21hdGNoYWxsJywnYWRkcmVzcycsJ2FkZHJlc3MyJywnbGF0JywnbG9uZycsJ3JhZGl1cycsJ2lkJywnc3RhdHVzJywnc29ydGJvb2wnLCdvd25lcl9pZCcsJ21vZGlmaWVkX3NpbmNlJywnaWRsaXN0Jywnb3duZXJsaXN0JywnYWN0aXZpdHlpZCcsJ2FjdGl2aXR5Y2hpbGRyZW4nLCdub3ByZXR0eScpOwogIHByaXZhdGUgJF9zb3J0YnlfZmxkID0gbnVsbDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYXRhID0gYXJyYXkoKSkKICB7CgkkdGhpcy0+X29yaWdwYXJhbXMgPSAkZGF0YTsKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJJHRoaXMtPl9kYXRhWydpZCddID0gJ2NkJzsgLy8gdXNlZCBpbiBsaW5rcy4KICAgICR0aGlzLT5fZGF0YVsnc29ydGJ5J10gPSAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ3NvcnRieScsJ2NvbXBhbnlfbmFtZScpOwogICAgJHRoaXMtPl9kYXRhWydzb3J0b3JkZXInXSA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CiAgICAkdGhpcy0+X2RhdGFbJ3BhZ2VsaW1pdCddID0gMjUwOwogICAgJHRoaXMtPl9kYXRhWydwYWdlJ10gPSAxOwogICAgJHRoaXMtPl9kYXRhWydleHBpcmVkb3duZXJzJ10gPSAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX3Nob3dleHBpcmVkJywwKTsKICAgICR0aGlzLT5fZGF0YVsnZGVlcCddID0gMTsKICAgICR0aGlzLT5fZGF0YVsnb25seWNvdW50J10gPSAwOwoJJHRoaXMtPl9kYXRhWydpbmxpbmUnXSA9IDA7CgkkdGhpcy0+X2RhdGFbJ3Nob3dhbGwnXSA9IDA7CgkkdGhpcy0+X2RhdGFbJ21hdGNoYWxsJ10gPSAxOwoJJHRoaXMtPl9kYXRhWydzdGF0dXMnXSA9IC0xOwoKICAgIGZvcmVhY2goICRkYXRhIGFzICRrZXkgPT4gJHZhbHVlICkgewoJICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgJHRoaXNbJGtleV0gPSAkdmFsdWU7Cgl9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0dldCBpbnZhbGlkIGtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIGNkX2NvbXBhbnlfZmlsdGVyJyk7CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwoKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoJc3dpdGNoKCAka2V5ICkgewoJY2FzZSAnZGV0YWlscGFnZSc6CgkgICR4ID0gJGNkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJyk7CgkgIGlmKCAkeCA8IDEgKSAkeCA9IGNtc191dGlsczo6Z2V0X2N1cnJlbnRfcGFnZWlkKCk7CgkgIHJldHVybiAkeDsKCX0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrZXksJHZhbHVlKQogIHsKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ1NldDogSW52YWxpZCBLZXkgJy4ka2V5LicgIHNwZWNpZmllZCBmb3IgY2RfY29tcGFueV9maWx0ZXInKTsKCiAgICAvLyB2YWxpZGF0ZSBkYXRhLgogICAgc3dpdGNoKCAka2V5ICkgewoJY2FzZSAnc3RhdHVzJzoKCSAgJHZhbHVlID0gdHJpbShzdHJ0b2xvd2VyKCR2YWx1ZSkpOwoJICBicmVhazsKCgljYXNlICdzb3J0YnknOgoJICAkdjIgPSBzdHJ0b2xvd2VyKHRyaW0oJHZhbHVlKSk7CgkgIHN3aXRjaCggJHYyICkgewoJICBjYXNlICduYW1lJzoKCQkkdmFsdWUgPSAnY29tcGFueV9uYW1lJzsKCQlicmVhazsKCgkgIGNhc2UgJ2Rpc3RhbmNlJzoKCQlpZiggISR0aGlzLT5oYXZlX2Nvb3JkcygpICkKCQkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIHNvcnRieSBmb3IgY2RfY29tcGFueV9maWx0ZXIgKG5vIGNvb3JkaW5hdGVzIHNldCknKTsKCQkkdmFsdWUgPSAnZGlzdGFuY2UnOwoJCWJyZWFrOwoKCSAgY2FzZSAnaWQnOgoJICBjYXNlICdhZGRyZXNzJzoKCSAgY2FzZSAnb3duZXInOgoJICBjYXNlICdjb21wYW55X25hbWUnOgoJICBjYXNlICdwaG9uZSc6CgkgIGNhc2UgJ2ZheCc6CgkgIGNhc2UgJ2VtYWlsJzoKCSAgY2FzZSAnd2Vic2l0ZSc6CgkgIGNhc2UgJ2NyZWF0ZWQnOgoJICBjYXNlICdtb2RpZmllZCc6CgkgIGNhc2UgJ3JhbmRvbSc6CgkgIGNhc2UgJ2Rpc3RhbmNlJzoKCQlicmVhazsKCgkgIGNhc2UgJ21vc3RjaGVja2lucyc6CgkgIGNhc2UgJ21vc3RmYXZvcml0ZSc6CgkgIGNhc2UgJ21vc3RmYXZvcml0ZXMnOgoJCSRjZ3NvYyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTT0NJQUxBUFApOwoJCWlmKCAhaXNfb2JqZWN0KCRjZ3NvYykgKQoJCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0ludmFsaWQgc29ydGJ5IGZvciBjZF9jb21wYW55X2ZpbHRlciAobm8gY2dzb2NpYWxhcHAgbW9kdWxlKScpOwoJCWJyZWFrOwoKCSAgZGVmYXVsdDoKCQkkZ29vZCA9IGZhbHNlOwoJCWlmKCBzdGFydHN3aXRoKCR2YWx1ZSwnZjonKSApIHsKCQkgIGxpc3QoJGp1bmssJGZuYW1lLCRmdHlwZSkgPSBAZXhwbG9kZSgnOicsJHZhbHVlLic6Ojo6JywzKTsKCQkgICRmaWVsZGRlZnMgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmcygpOwoJCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkZGVmcyk7ICRpKysgKSB7CgkJCWlmKCAkZmllbGRkZWZzWyRpXVsnbmFtZSddID09ICRmbmFtZSApIHsKCQkJICAkdGhpcy0+X3NvcnRieV9mbGQgPSAkZmllbGRkZWZzWyRpXTsKCQkJICBpZiggJGZpZWxkZGVmc1skaV1bJ3R5cGUnXSA9PSAnY2hlY2tib3gnICkgJHRoaXMtPl9kYXRhWydzb3J0Ym9vbCddID0gMTsKCQkJICAkZ29vZCA9IHRydWU7CgkJCSAgYnJlYWs7CgkJCX0KCQkgIH0KCQkgIGlmKCAkZnR5cGVbMF0gPT0gJzonICkgJGZ0eXBlID0gJyc7CgkJICBpZiggJGdvb2QgJiYgJGZ0eXBlICE9ICcnICYmICRmdHlwZSAhPSAnaScgJiYgJGZ0eXBlICE9ICdmJykgJGdvb2QgPSBmYWxzZTsKCQl9CgkJaWYoICEkZ29vZCApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIFNvcnRieSBGaWVsZCcpOwoJCWJyZWFrOwoJICB9CgkgIGJyZWFrOwoKCWNhc2UgJ3NvcnRvcmRlcic6CgkgICR2YWx1ZSA9IHN0cnRvbG93ZXIodHJpbSgkdmFsdWUpKTsKCSAgaWYoICR2YWx1ZSA9PSAnJyApICR2YWx1ZSA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CgkgIGlmKCAkdmFsdWUgIT0gJ2FzYycgJiYgJHZhbHVlICE9ICdkZXNjJyApIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdJbnZhbGlkIFNvcnRieSBWYWx1ZTogJy4kdmFsdWUpOwoJICBicmVhazsKCgljYXNlICdjYXRlZ29yeSc6CgljYXNlICdjYXRlZ29yeTInOgoJY2FzZSAnY2F0ZWdvcnkzJzoKCSAgLy8gdG9kbzogY2hlY2sgaWYgaXQncyBhIHZhbGlkIGNhdGVnb3J5LgoJICBicmVhazsKCgljYXNlICdjYXRlZ29yeWlkJzoKCSAgLy8gdG9kbzogY2hlY2sgaWYgaXRzIGEgdmFsaWQgY2F0ZWdvcnkgaWQuCgkgIGJyZWFrOwoKCWNhc2UgJ2FjdGl2aXR5aWQnOgoJY2FzZSAnYWN0aXZpdHljaGlsZHJlbic6CgkgICRjZ3NvYyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTT0NJQUxBUFApOwoJICBpZiggIWlzX29iamVjdCgkY2dzb2MpICkKCQl0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSW52YWxpZCBzb3J0YnkgZm9yIGNkX2NvbXBhbnlfZmlsdGVyIChubyBjZ3NvY2lhbGFwcCBtb2R1bGUpJyk7CgkgIGJyZWFrOwoKCWNhc2UgJ2hpZXInOgoJICAvLyB0b2RvOiBjaGVjayBpZiBpdCdzIGEgdmFsaWQgaGllcmFyY2h5CgkgIGJyZWFrOwoKCWNhc2UgJ2hpZXJfY2hpbGRyZW4nOgoJICAkdmFsdWUgPSBjbXNfdG9fYm9vbCgkdmFsdWUpOwoJICBicmVhazsKCgljYXNlICdhZGRyZXNzJzoKCWNhc2UgJ2FkZHJlc3MyJzoKCWNhc2UgJ2lkJzoKCSAgJHZhbHVlID0gdHJpbSgkdmFsdWUpOwoJICBicmVhazsKCgljYXNlICduYW1lJzoKCSAgLy8gbmFtZS4uCgkgIGJyZWFrOwoKCWNhc2UgJ2xhdCc6CgljYXNlICdsb25nJzoKCWNhc2UgJ3JhZGl1cyc6CgkgIC8vIHZhbGlkYXRpb24gc2hvdWxkIGhhbmRsZSB0aGlzLgoJICAkdmFsdWUgPSAoZmxvYXQpJHZhbHVlOwoJICBicmVhazsKCgljYXNlICdkZXRhaWx0ZW1wbGF0ZSc6CgkgIC8vIGRvbid0IGJvdGhlciBjaGVja2luZyBpdAoJICBicmVhazsKCgljYXNlICdkZXRhaWxwYWdlJzoKCSAgaWYoICFpc19udW1lcmljKCR2YWx1ZSkgKSB7CgkJLy8gcmVzb2x2ZSB0aGUgdmFsdWUgdG8gYSBwYWdlIGlkLi4uIG9yIHVzZSAtMQoJCSR2YWx1ZSA9ICRjZG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUpOwoJCWlmKCAhJHZhbHVlICkgJHZhbHVlID0gLTE7CgkgIH0KCSAgYnJlYWs7CgoJY2FzZSAnc2hvd2FsbCc6CgljYXNlICdyZXR1cm5pZCc6CgljYXNlICdpbmxpbmUnOgoJY2FzZSAnb25seWNvdW50JzoKCWNhc2UgJ2RlZXAnOgoJY2FzZSAnZXhwaXJlZG93bmVycyc6CgljYXNlICdtYXRjaGFsbCc6CgljYXNlICdvd25lcl9pZCc6CgljYXNlICdtb2RpZmllZF9zaW5jZSc6CgkgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwoJICBicmVhazsKCgljYXNlICdwYWdlJzoKCWNhc2UgJ3BhZ2VsaW1pdCc6CgkgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwoJICAkdmFsdWUgPSBtYXgoMSwkdmFsdWUpOwoJICBicmVhazsKCgljYXNlICdpZGxpc3QnOgoJICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBleHBsb2RlKCcsJywkdmFsdWUpOwoJICAkdG1wID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJHZhbHVlIGFzICRvbmUgKSB7CgkJJHRtcDIgPSAoaW50KSRvbmU7CgkJaWYoICR0bXAyIDw9IDAgKSBjb250aW51ZTsKCQkkdG1wW10gPSAkdG1wMjsKCSAgfQoJICAkdmFsdWUgPSBhcnJheV91bmlxdWUoJHZhbHVlKTsKCSAgYnJlYWs7CgoJY2FzZSAnb3duZXJsaXN0JzoKCSAgaWYoICFpc19hcnJheSgkdmFsdWUpICkgJHZhbHVlID0gZXhwbG9kZSgnLCcsJHZhbHVlKTsKCSAgJHRtcCA9IGFycmF5KCk7CgkgIGZvcmVhY2goICR2YWx1ZSBhcyAkb25lICkgewoJCSR0bXAyID0gKGludCkkb25lOwoJCWlmKCAkdG1wMiA8PSAwICkgY29udGludWU7CgkJJHRtcFtdID0gJHRtcDI7CgkgIH0KCSAgJHZhbHVlID0gYXJyYXlfdW5pcXVlKCR2YWx1ZSk7CgkgIGJyZWFrOwoKCWNhc2UgJ25vcHJldHR5JzoKCSAgJHZhbHVlID0gY21zX3RvX2Jvb2woJHZhbHVlKTsKCSAgYnJlYWs7CgoJZGVmYXVsdDoKCSAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnZjonKSApIHsKCQlsaXN0KCRmbiwkZnYsJGV4cHIpID0gZXhwbG9kZSgnOicsc3Vic3RyKCRrZXksMikpOwoJCSR0aGlzLT5hZGRfZmllbGRfZXhwcigkZm4sJGZ2LCRleHByKTsKCSAgfQoJICBicmVhazsKCX0KCiAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cygka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0V4aXN0czogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBjZF9jb21wYW55X2ZpbHRlcicpOwogICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFVuc2V0KCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignVW5zZXQ6IEludmFsaWQgS2V5ICcuJGtleS4nIHNwZWNpZmllZCBmb3IgY2RfY29tcGFueV9maWx0ZXInKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoKQogIHsKCS8vIGNoZWNrIHNvcnRieSBhZ2FpbnN0IGNvb3JkcwoJaWYoICR0aGlzLT5fZGF0YVsnc29ydGJ5J10gPT0gJ2Rpc3RhbmNlJyAmJiAhJHRoaXMtPmhhdmVfY29vcmRzKCkgKSB7CgkgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdDYW5ub3Qgc29ydGJ5IGRpc3RhbmNlIHdpdGhvdXQgc3BlY2lmeWluZyBjb29yZGluYXRlcycpOwoJfQoKCS8vIHRvZG86IGhlcmUgd2Ugc2hvdWxkIHZhbGlkYXRlIGhpZXJhcmNoeSwgYW5kIGNhdGVnb3JpZShzKQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiAmZ2V0X3NvcnRfZmxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9zb3J0YnlfZmxkOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc29ydGJ5KCkKICB7CiAgICBzd2l0Y2goICR0aGlzLT5fZGF0YVsnc29ydGJ5J10gKSB7CgljYXNlICdlbWFpbCc6CgkgIHJldHVybiAnY29udGFjdF9lbWFpbCc7CgljYXNlICdwaG9uZSc6CgkgIHJldHVybiAndGVsZXBob25lJzsKCWNhc2UgJ2NyZWF0ZWQnOgoJICByZXR1cm4gJ2NyZWF0ZV9kYXRlJzsKCWNhc2UgJ21vZGlmaWVkJzoKCSAgcmV0dXJuICdtb2RpZmllZF9kYXRlJzsKCWNhc2UgJ3JhbmRvbSc6CgkgIHJldHVybiAnUkFORCgpJzsKCWNhc2UgJ2lkJzoKCWNhc2UgJ2NvbXBhbnlfbmFtZSc6CgljYXNlICdmYXgnOgoJY2FzZSAnd2Vic2l0ZSc6CgljYXNlICdzdGF0dXMnOgoJY2FzZSAnZGlzdGFuY2UnOgoJZGVmYXVsdDoKCSAgcmV0dXJuICR0aGlzLT5fZGF0YVsnc29ydGJ5J107Cgl9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zb3J0b3JkZXIoKQogIHsKICAgIGlmKCAkdGhpcy0+X2RhdGFbJ3NvcnRieSddID09ICdyYW5kb20nICkgcmV0dXJuICcnOwogICAgcmV0dXJuICR0aGlzLT5fZGF0YVsnc29ydG9yZGVyJ107CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYXJhbXMoKQogIHsKCSRvdXQgPSBhcnJheSgpOwoJZm9yZWFjaCggJHRoaXMtPl9vcmlncGFyYW1zIGFzICRrZXkgPT4gJHZhbCApIHsKCSAgaWYoIGlzX2FycmF5KCR2YWwpICkgewoJCSR2YWwgPSBpbXBsb2RlKCcsJywkdmFsKTsKCSAgfQoJICAkb3V0WyRrZXldID0gJHZhbDsKCX0KCXJldHVybiAkb3V0OwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBoYXZlX2Nvb3JkcygpCiAgewoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2xhdCddKSB8fCAhaXNzZXQoJHRoaXMtPl9kYXRhWydsb25nJ10pICkgcmV0dXJuIEZBTFNFOwoJaWYoICFpc19udW1lcmljKCR0aGlzLT5fZGF0YVsnbGF0J10pIHx8ICFpc19udW1lcmljKCR0aGlzLT5fZGF0YVsnbG9uZyddKSApIHJldHVybiBGQUxTRTsKCglyZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3JhZGl1c19taWxlcygpCiAgewoJJHRtcCA9ICcnOwoJJHZhbCA9IDE7Cgkkc3VmZml4ID0gJ21pJzsKCSRzdHIgPSAkdGhpcy0+X2RhdGFbJ3JhZGl1cyddOwoKCWlmKCBwcmVnX21hdGNoKCcvXihbMC05XC5cLF0rKSguKikkLycsJHN0ciwkdG1wKSApIHsKCSAgJHZhbCA9IChmbG9hdCkkdG1wWzFdOwoJICBpZiggJHRtcFsyXSApICRzdWZmaXggPSB0cmltKCR0bXBbMl0pOwoJfQoKCSRzdWZmaXggPSBzdHJ0b2xvd2VyKCRzdWZmaXgpOwoJc3dpdGNoKCAkc3VmZml4ICkgewoJY2FzZSAnbWknOgoJY2FzZSAnbWlsZSc6CgljYXNlICdtaWxlcyc6CgkgIGJyZWFrOwoKCWNhc2UgJ2ttJzoKCWNhc2UgJ2snOgoJICAkdmFsID0gKGZsb2F0KSR2YWwgKiAwLjYyMTM3MTE5MjsKCSAgYnJlYWs7CgoJZGVmYXVsdDoKCSAgaWYoICRzdWZmaXggKSB7CgkJdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgc3BlY2lmaWVkIGZvciBjb21wYW55IHNlYXJjaCByYWRpdXMgJy4kdGhpcy0+X2RhdGFbJ3JhZGl1cyddLiIgOiAkc3VmZml4Iik7CgkgIH0KCX0KCglyZXR1cm4gJHZhbDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Nvb3JkcygpCiAgewoJJHJlcyA9IGFycmF5KCk7CgkkcmVzWydsYXQnXSA9IGZsb2F0dmFsKCR0aGlzLT5fZGF0YVsnbGF0J10pOwoJJHJlc1snbG9uZyddID0gZmxvYXR2YWwoJHRoaXMtPl9kYXRhWydsb25nJ10pOwoKCXJldHVybiAkcmVzOwogIH0KCiAKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2ZpZWxkX2V4cHIoJGZpZWxkbmFtZSwkZmllbGR2YWwsJGV4cHIgPSAnQVVUTycpCiAgewoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ19fZmllbGRfZXhwcl9fJ10pICkgJHRoaXMtPl9kYXRhWydfX2ZpZWxkX2V4cHJfXyddID0gYXJyYXkoKTsKCQoJaWYoICEkZmllbGRuYW1lIHx8ICEkZmllbGR2YWwgKSByZXR1cm47CgkkdGhpcy0+X2RhdGFbJ19fZmllbGRfZXhwcl9fJ11bXSA9IAoJICBhcnJheSgnZmxkbmFtZSc9PiRmaWVsZG5hbWUsJ2ZsZHZhbCc9PiRmaWVsZHZhbCwnZXhwcic9PiRleHByKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX2V4cHJzKCkKICB7CglpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnX19maWVsZF9leHByX18nXSkgKSByZXR1cm47CglyZXR1cm4gJHRoaXMtPl9kYXRhWydfX2ZpZWxkX2V4cHJfXyddOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBjbGVhcl9maWVsZF9leHBycygpCiAgewoJaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ19fZmllbGRfZXhwcl9fJ10pICkgcmV0dXJuOwoJdW5zZXQoJHRoaXMtPl9kYXRhWydfX2ZpZWxkX2V4cHJfXyddKTsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZF9jb21wYW55X3F1ZXJ5CnsKICBwcml2YXRlICRfZmlsdGVyOwogIHByaXZhdGUgJF9xdWVyaWVkOwogIHByaXZhdGUgJF9jb3VudDsKICBwcml2YXRlICRfcmVzdWx0c2V0OwoKICBjb25zdCBSRVNVTFRTX0NEX0NPTVBBTlkgPSAxOwogIGNvbnN0IFJFU1VMVFNfU1REQ0xBU1MgICA9IDI7CiAgY29uc3QgUkVTVUxUU19BUlJBWSAgICAgID0gMzsKCiAgcHJpdmF0ZSBzdGF0aWMgJF9ub3ByZXR0eSA9IDA7CiAgcHJpdmF0ZSBzdGF0aWMgJF9yZXN1bHRfbW9kZSA9IHNlbGY6OlJFU1VMVFNfU1REQ0xBU1M7CiAgcHJpdmF0ZSBzdGF0aWMgJF9jYXRlZ29yeW5hbWVzdG9pZHM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChjZF9jb21wYW55X2ZpbHRlciAkZmlsdGVyKQogIHsKICAgICR0aGlzLT5fZmlsdGVyID0gJGZpbHRlcjsKCWlmKCAkZmlsdGVyWydub3ByZXR0eSddICkgc2VsZjo6JF9ub3ByZXR0eSA9IDE7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9ub3ByZXR0eSgkZmxhZykKICB7CglzZWxmOjokX25vcHJldHR5ID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9yZXN1bHRfbW9kZSgkbW9kZSkKICB7Cglzd2l0Y2goICRtb2RlICkgewoJY2FzZSBzZWxmOjpSRVNVTFRTX0NEX0NPTVBBTlk6CgljYXNlIHNlbGY6OlJFU1VMVFNfU1REQ0xBU1M6CgljYXNlIHNlbGY6OlJFU1VMVFNfQVJSQVk6CgkgIHNlbGY6OiRfcmVzdWx0X21vZGUgPSAkbW9kZTsKCX0KICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2lkcygkbmFtZXMpCiAgewoJaWYoICFpc19hcnJheSgkbmFtZXMpICkJJG5hbWVzID0gZXhwbG9kZSgnLCcsJG5hbWVzKTsKCWlmKCAhaXNfYXJyYXkoJG5hbWVzKSB8fCBjb3VudCgkbmFtZXMpID09IDAgKSByZXR1cm47CgoJaWYoICFpc19hcnJheShzZWxmOjokX2NhdGVnb3J5bmFtZXN0b2lkcykgKSB7CgkgIHNlbGY6OiRfY2F0ZWdvcnluYW1lc3RvaWRzID0gYXJyYXkoKTsKCSAgJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkgICRhbGxjYXRlZ29yaWVzID0gJGNkbW9kLT5HZXRDYXRlZ29yaWVzKCk7IC8vIHVzZXMgY2FjaGluZy4uCgkgICR0bXBoYXNoID0gYXJyYXkoKTsKCSAgZm9yKCAkaiA9IDA7ICRqIDwgY291bnQoJGFsbGNhdGVnb3JpZXMpOyAkaisrICkgewoJCXNlbGY6OiRfY2F0ZWdvcnluYW1lc3RvaWRzWyRhbGxjYXRlZ29yaWVzWyRqXS0+bmFtZV0gPSAoaW50KSRhbGxjYXRlZ29yaWVzWyRqXS0+aWQ7CgkgIH0KCX0KCWlmKCAhaXNfYXJyYXkoc2VsZjo6JF9jYXRlZ29yeW5hbWVzdG9pZHMpIHx8IGNvdW50KHNlbGY6OiRfY2F0ZWdvcnluYW1lc3RvaWRzKSA9PSAwICkgcmV0dXJuOwoKCSRyZXN1bHQgPSBhcnJheSgpOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJG5hbWVzKTsgJGkrKyApIHsKCSAgJG5hbWUgPSB0cmltKCRuYW1lc1skaV0pOwoJICBpZiggJG5hbWUgPT09ICcnIHx8IChpbnQpJG5hbWUgPCAwICkgY29udGludWU7CgkKCSAgaWYoIGlzX251bWVyaWMoJG5hbWUpICYmIChpbnQpJG5hbWUgPT0gJG5hbWUgKSB7CgkJJHJlc3VsdFtdID0gJG5hbWU7CgkgIH0KCSAgZWxzZSBpZiggaXNzZXQoc2VsZjo6JF9jYXRlZ29yeW5hbWVzdG9pZHNbJG5hbWVdKSApIHsKCQkkcmVzdWx0W10gPSBzZWxmOjokX2NhdGVnb3J5bmFtZXN0b2lkc1skbmFtZV07CgkgIH0KCSAgZWxzZSBpZiggc3RycG9zKCRuYW1lLCcqJykgIT09IEZBTFNFICYmIGZ1bmN0aW9uX2V4aXN0cygnZm5tYXRjaCcpICkgewoJCS8vIHdpbGRjYXJkIG1hdGNoaW5nLi4uCgkJZm9yZWFjaCggc2VsZjo6JF9jYXRlZ29yeW5hbWVzdG9pZHMgYXMgJGNuYW1lID0+ICRpZCApIHsKCQkgIC8vIHNvcnJ5LHdvbid0IHdvcmsgb24gd2luZG96ZQoJCSAgaWYoIGZubWF0Y2goJG5hbWUsJGNuYW1lKSApIHsKCQkJJHJlc3VsdFtdID0gJGlkOwoJCSAgfQoJCX0KCSAgfQoJfQoJJHJlc3VsdCA9IGFycmF5X3VuaXF1ZSgkcmVzdWx0KTsKCWlmKCBjb3VudCgkcmVzdWx0KSApIHJldHVybiAkcmVzdWx0OwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcXVlcnkoKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEMnOwogICAgJHF1ZXJ5MiA9ICdGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgQyc7CgoJJHRoaXMtPl9maWx0ZXItPnZhbGlkYXRlKCk7CgoJJHJlcV93aGVyZSA9IGFycmF5KCk7CgkkY29sdW1ucyA9IGFycmF5KCdDLionKTsKICAgICR3aGVyZSA9IGFycmF5KCk7CgkkaGF2aW5nID0gYXJyYXkoKTsKCSRoY29sdW1ucyA9IGFycmF5KCk7CiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgJHNvcnRieSA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfc29ydGJ5KCk7CiAgICAkc29ydG9yZGVyID0gJHRoaXMtPl9maWx0ZXItPmdldF9zb3J0b3JkZXIoKTsKCWdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CgoJaWYoICR0aGlzLT5fZmlsdGVyWydzaG93YWxsJ10gKSB7CgkgIGdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CgkgIGlmKCAhaXNzZXQoJENNU19BRE1JTl9QQUdFKSApIHsKCQkkcmVxX3doZXJlW10gPSAnQy5zdGF0dXMgIT0gPyc7CgkJJHBhcm1zW10gPSAnZGlzYWJsZWQnOwoJICB9Cgl9CgllbHNlIHsKCSAgaWYoIGlzc2V0KCRDTVNfQURNSU5fUEFHRSkgKSB7CgkJLy8gYWRtaW4gb25seSwgeW91IGNhbiBmaWx0ZXIgYnkgd2hhdGV2ZXIgc3RhdHVzLgoJCWlmKCAkdGhpcy0+X2ZpbHRlclsnc3RhdHVzJ10gIT0gLTEgKSB7CgkJICAkcmVxX3doZXJlW10gPSAnQy5zdGF0dXMgPSA/JzsKCQkgICRwYXJtc1tdID0gJHRoaXMtPl9maWx0ZXJbJ3N0YXR1cyddOwoJCX0KCSAgfQoJICBlbHNlIHsKCQkvLyBmcm9udGVuZCwgeW91IGNhbiBvbmx5IHNob3cgZHJhZnQsIG9yIGFueXRoaW5nIGJ1dCBkaXNhYmxlZC4KCQlpZiggJHRoaXMtPl9maWx0ZXJbJ3N0YXR1cyddID09ICdkcmFmdCcgKSB7CgkJICAkcmVxX3doZXJlW10gPSAnQy5zdGF0dXMgPSA/JzsKCQkgICRwYXJtc1tdID0gJ2RyYWZ0JzsKCQl9CgkJZWxzZSB7CgkJICAkcmVxX3doZXJlW10gPSAnQy5zdGF0dXMgPSA/JzsKCQkgICRwYXJtc1tdID0gJ3B1Ymxpc2hlZCc7CgkJfQoJICB9Cgl9CgoJaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydpZGxpc3QnXSkgKSB7CgkgICR0bXAgPSAkdGhpcy0+X2ZpbHRlclsnaWRsaXN0J107CgkgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CgkgICRvdXQgPSBhcnJheSgpOwoJICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKCQkkbiA9IChpbnQpJHRtcFskaV07CgkJaWYoICRuIDwgMSApIGNvbnRpbnVlOwoJICAgIGlmKCAhaW5fYXJyYXkoJG4sJG91dCkgKSAkb3V0W10gPSAkbjsKCSAgfQoJICAkcmVxX3doZXJlW10gPSAnQy5pZCBJTiAoJy5pbXBsb2RlKCcsJywkb3V0KS4nKSc7Cgl9CgoJaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydvd25lcmxpc3QnXSkgKSB7CgkgICR0bXAgPSAkdGhpcy0+X2ZpbHRlclsnb3duZXJsaXN0J107CgkgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CgkgICRvdXQgPSBhcnJheSgpOwoJICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKCQkkbiA9IChpbnQpJHRtcFskaV07CgkJaWYoICRuIDwgMSApIGNvbnRpbnVlOwoJICAgIGlmKCAhaW5fYXJyYXkoJG4sJG91dCkgKSAkb3V0W10gPSAkbjsKCSAgfQoJICAkcmVxX3doZXJlW10gPSAnQy5vd25lcl9pZCBJTiAoJy5pbXBsb2RlKCcsJywkb3V0KS4nKSc7Cgl9CgllbHNlIGlmKCAkdGhpcy0+X2ZpbHRlclsnb3duZXJfaWQnXSApIHsKCSAgJHJlcV93aGVyZVtdID0gJ0Mub3duZXJfaWQgPSA/JzsKCSAgJHBhcm1zW10gPSAoaW50KSR0aGlzLT5fZmlsdGVyWydvd25lcl9pZCddOwoJfQoKCWlmKCAkdGhpcy0+X2ZpbHRlclsnbW9kaWZpZWRfc2luY2UnXSApIHsKCSAgJHJlcV93aGVyZVtdID0gJ0MubW9kaWZpZWRfZGF0ZSA+PSAnLiRkYi0+RGJUaW1lU3RhbXAoJHRoaXMtPl9maWx0ZXJbJ21vZGlmaWVkX3NpbmNlJ10pOwoJfQoKICAgIGlmKCAhJHRoaXMtPl9maWx0ZXJbJ2V4cGlyZWRvd25lcnMnXSApIHsKCSAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwoJICBpZiggJGZldSApIHsKCQkkc3RyID0gJyBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIGZ1IE9OIGZ1LmlkID0gQy5vd25lcl9pZCc7CgkJJHF1ZXJ5IC49ICAkc3RyOwoJCSRxdWVyeTIgLj0gJHN0cjsKCQkkc3RyID0gJyc7CgkJJHJlcV93aGVyZVtdID0gJyhDT0FMRVNDRShDLm93bmVyX2lkLC0xKSA8IDAgT1IgZnUuZXhwaXJlcyA+IE5PVygpKSc7CgkgIH0KCX0KCglpZiggJHRoaXMtPl9maWx0ZXItPmhhdmVfY29vcmRzKCkgKSB7CgkgICRyYWQgPSAkdGhpcy0+X2ZpbHRlci0+Z2V0X3JhZGl1c19taWxlcygpOwoJICAkY29vcmRzID0gJHRoaXMtPl9maWx0ZXItPmdldF9jb29yZHMoKTsKCgkgICRzdHIgPSAnKFNFTEVDVCAzOTU5ICogYWNvcyhjb3MocmFkaWFucygnLiRjb29yZHNbJ2xhdCddLicpKSAKICAgICAgICAgICAgICAgICAqIGNvcyhyYWRpYW5zKEMubGF0aXR1ZGUpKSAKICAgICAgICAgICAgICAgICAqIGNvcyhyYWRpYW5zKEMubG9uZ2l0dWRlKSAtIHJhZGlhbnMoJy4kY29vcmRzWydsb25nJ10uJykpIAogICAgICAgICAgICAgICAgICsgc2luKHJhZGlhbnMoJy4kY29vcmRzWydsYXQnXS4nKSkKICAgICAgICAgICAgICAgICAqIHNpbihyYWRpYW5zKEMubGF0aXR1ZGUpKSkpIEFTIGRpc3RhbmNlJzsKCSAgJGNvbHVtbnNbXSA9ICRzdHI7CgkgICRoY29sdW1uc1tdID0gJHN0cjsKCSAgJGhhdmluZ1tdID0gJ2Rpc3RhbmNlIDw9ICcuKGludCkkcmFkOwoJfQoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnbmFtZSddKSAmJiAkdGhpcy0+X2ZpbHRlclsnbmFtZSddICE9ICcnKSB7CgkgICRzdHIgPSAkdGhpcy0+X2ZpbHRlclsnbmFtZSddOwoJICBpZiggc3RhcnRzd2l0aCgkc3RyLCc6OicpICkgewoJCSRzdHIgPSBzdWJzdHIoJHN0ciwyKTsKCQkkc3RyID0gc3RyX3JlcGxhY2UoJyonLCclJywkc3RyKTsKCQkkd2hlcmVbXSA9ICdDLmNvbXBhbnlfbmFtZSBMSUtFID8nOwoJICB9CgkgIGVsc2UgewoJCS8vIGVycm9yIGhlcmU/CgkJJHN0ciA9IHN1YnN0cigkc3RyLDIpOwoJCSR3aGVyZVtdID0gJ0MuY29tcGFueV9uYW1lIFJFR0VYUCA/JzsKCSAgfQoJICAkcGFybXNbXSA9ICRzdHI7Cgl9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydhZGRyZXNzJ10pICYmICR0aGlzLT5fZmlsdGVyWydhZGRyZXNzJ10gIT0gJycpIHsKCSAgJHN0ciA9ICR0aGlzLT5fZmlsdGVyWydhZGRyZXNzJ107CgkgICRzdHIgPSBzdHJfcmVwbGFjZSgnKicsJyUnLCRzdHIpOwoJICAkd2hlcmVbXSA9ICdDLmFkZHJlc3MgTElLRSA/JzsKCSAgJHBhcm1zW10gPSAkc3RyOwoJfQoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnYWRkcmVzczInXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2FkZHJlc3MyJ10gIT0gJycpIHsKCSAgJHN0ciA9ICR0aGlzLT5fZmlsdGVyWydhZGRyZXNzMiddOwoJICAkc3RyID0gc3RyX3JlcGxhY2UoJyonLCclJywkc3RyKTsKCSAgJHdoZXJlW10gPSAnQy5hZGRyZXNzIExJS0UgPyc7CgkgICRwYXJtc1tdID0gJHN0cjsKCX0KCiAgICAkZmxkID0gJHRoaXMtPl9maWx0ZXItPmdldF9zb3J0X2ZsZCgpOwogICAgaWYoIGlzX2FycmF5KCRmbGQpICkgewoJICAvLyBzb3J0IGJ5IGN1c3RvbSBmaWVsZC4KCSAgJHN0ciA9ICcgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgRlZBIE9OIEMuaWQgPSBGVkEuY29tcGFueV9pZCBBTkQgRlZBLmZpZWxkZGVmX2lkID0gJy4kZGItPnFzdHIoJGZsZFsnaWQnXSk7CgkgICRxdWVyeSAuPSAkc3RyOwoJICAkcXVlcnkyIC49ICRzdHI7CgkgICRzb3J0YnkgPSAnRlZBLnZhbHVlJzsKCX0KCiAgICBpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2hpZXInXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2hpZXInXSAhPSAnJyApIHsKCSAgJGhpZXJhcmNoeSA9ICR0aGlzLT5fZmlsdGVyWydoaWVyJ107CgkgIGlmKCBpc19udW1lcmljKCRoaWVyYXJjaHkpICYmICRoaWVyYXJjaHkgPiAwICkgewoJCS8vIG51bWVyaWMsIGRvIGFuIGV4YWN0IHNlYXJjaC4KCQlpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2hpZXJfY2hpbGRyZW4nXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2hpZXJfY2hpbGRyZW4nXSApIHsKCQkgIC8vSU5ORVIgSk9JTiAoU0VMRUNUIGlkIEZST00gY21zX21vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgaGllcmFyY2h5IExJS0UgKFNFTEVDVCBDT05DQVQoaGllcmFyY2h5LCclJykgRlJPTSBjbXNfbW9kdWxlX2NvbXBkaXJfaGllciBXSEVSRSBpZCA9IDIpKSBTUyBPTiBDLmhpZXJfaWQgPSBTUy5pZDsKCQkgICRzdHIgPSAnIElOTkVSIEpPSU4gKFNFTEVDVCBpZCBGUk9NIHsqREJQUkVGSVgqfW1vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgaGllcmFyY2h5IExJS0UgKFNFTEVDVCBjb25jYXQoaGllcmFyY2h5LFwnJVwnKSBGUk9NIHsqREJQUkVGSVgqfW1vZHVsZV9jb21wZGlyX2hpZXIgV0hFUkUgaWQgPSAnLihpbnQpJGhpZXJhcmNoeS4nKSkgU1NoIE9OIEMuaGllcl9pZCA9IFNTaC5pZCc7CgkJICAkc3RyID0gc3RyX3JlcGxhY2UoJ3sqREJQUkVGSVgqfScsY21zX2RiX3ByZWZpeCgpLCRzdHIpOwoJCSAgJHF1ZXJ5IC49ICRzdHI7CgkJICAkcXVlcnkyIC49ICRzdHI7CgkJfQoJCWVsc2UgewoJCSAgJHdoZXJlW10gPSAnQy5oaWVyX2lkID0gPyc7CgkJICAkcGFybXNbXSA9IChpbnQpJGhpZXJhcmNoeTsKCQl9CgkgIH0KCSAgZWxzZSBpZiggJGhpZXJhcmNoeSAhPSAnLTEnICYmICRoaWVyYXJjaHkgIT0gJycgKSB7CgkJLy8gaXQncyBhIHN0cmluZy4uLiBkbyBhIG1hdGNoaW5nIHNlYXJjaCwgYW5kIGEgd2lsZGNhcmQgc2VhcmNoCgkJJHN0ciA9ICcgTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9oaWVyIENIIE9OIENILmlkID0gQy5oaWVyX2lkJzsKCQkkcXVlcnkgLj0gJHN0cjsKCQkkcXVlcnkyIC49ICRzdHI7CgkJJGhpZXJhcmNoeSA9IHRyaW0oJHRoaXMtPl9maWx0ZXJbJ2hpZXInXSk7CgkJZm9yKCAkaSA9IDA7ICRpIDwgMTA7ICRpKysgKSB7CgkJICAkdG1wID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkaGllcmFyY2h5KTsKCQkgIGlmKCAkdG1wID09ICRoaWVyYXJjaHkgKSBicmVhazsKCQkgICRoaWVyYXJjaHkgPSAkdG1wOwoJCX0KCQlpZiAoc3RycG9zKCRoaWVyYXJjaHksICd8JykgIT09IEZBTFNFIHx8IHN0cnBvcygkaGllcmFyY2h5LCAnKicpICE9PSBGQUxTRSkgewoJCSAgLy8gd2lsZGNhcmQgY2F0ZWdvcnkKCQkgICRoaWVyYXJjaHkgPSB0cmltKHN0cl9yZXBsYWNlKCcqJywnJScsJGhpZXJhcmNoeSkpOwoJCSAgJHdoZXJlW10gPSAidXBwZXIoQ0gubG9uZ19uYW1lKSBMSUtFIHVwcGVyKD8pIjsKCQl9CgkJZWxzZSBpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2hpZXJfY2hpbGRyZW4nXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2hpZXJfY2hpbGRyZW4nXSApIHsKCQkgICRoaWVyYXJjaHkgPSB0cmltKCRoaWVyYXJjaHkpLiclJzsKCQkgICR3aGVyZVtdID0gInVwcGVyKENILmxvbmdfbmFtZSkgTElLRSB1cHBwZXIoPykiOwoJCX0KCQllbHNlIHsKCQkgIC8vIGhhcmQgY29kZWQgY2F0ZWdvcnkgbmFtZQoJCSAgJHdoZXJlW10gPSAnQ0gubmFtZSA9ID8nOwoJCX0KCQkkcGFybXNbXSA9ICRoaWVyYXJjaHk7CgkgIH0KCX0KCglpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2FjdGl2aXR5aWQnXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2FjdGl2aXR5aWQnXSA+IDAgKSB7CgkgICRjZ3NvYyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTT0NJQUxBUFApOwoJICBpZiggaXNfb2JqZWN0KCRjZ3NvYykgKSB7CgkJJHN0ciA9ICcgTEVGVCBKT0lOICcuQ0dTT0NJQUxfVEFCTEVfQ0hFQ0tJTlMuJyBjZ2MgT04gQy5pZCA9IGNnYy5sb2NhdGlvbic7CgkJJHF1ZXJ5IC49ICRzdHI7CgkJJHF1ZXJ5MiAuPSAkc3RyOwoJCWlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnYWN0aXZpdHljaGlsZHJlbiddKSAmJiAkdGhpcy0+X2ZpbHRlclsnYWN0aXZpdHljaGlsZHJlbiddICkgewoJCSAgJHRtcCA9ICdTRUxFQ1QgaGllcmFyY2h5IEZST00gJy5DR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTLicgV0hFUkUgaWQgPSA/JzsKCQkgICR0bXAgPSAkZGItPkdldE9uZSgkdG1wLGFycmF5KChpbnQpJHRoaXMtPl9maWx0ZXJbJ2FjdGl2aXR5aWQnXSkpOwoJCSAgaWYoICR0bXAgKSB7CgkJCSR0bXAyID0gJ1NFTEVDVCBpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQUNUSVZJVElFUy4nIFdIRVJFIGhpZXJhcmNoeSBMSUtFID8nOwoJCQkkY29sID0gJGRiLT5HZXRDb2woJHRtcDIsYXJyYXkoJHRtcC4nJScpKTsKCQkJaWYoIGlzX2FycmF5KCRjb2wpICYmIGNvdW50KCRjb2wpICkgJHdoZXJlW10gPSAnY2djLmFjdGl2aXR5IElOICgnLmltcGxvZGUoJywnLCRjb2wpLicpJzsKCQkgIH0KCQl9CgkJZWxzZSB7CgkJICAkd2hlcmVbXSA9ICdjZ2MuYWN0aXZpdHkgPSA/JzsKCQkgICRwYXJtc1tdID0gKGludCkkdGhpcy0+X2ZpbHRlclsnYWN0aXZpdHlpZCddOwoJCX0KCSAgfQoJfQoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnlpZCddKSAmJiAkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnlpZCddID4gMCApIHsKCSAgJHN0ciA9ICcgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIENDIE9OIENDLmNvbXBhbnlfaWQgPSBDLmlkJzsKCSAgJHF1ZXJ5IC49ICRzdHI7CgkgICRxdWVyeTIgLj0gJHN0cjsKCSAgJHdoZXJlW10gPSAnQ0MuY2F0ZWdvcnlfaWQgPSA/JzsgLy8gdGhpcyBBTkQgY291bGQgZ28gaW4gdGhlIGpvaW4/CgkgICRwYXJtc1tdID0gKGludCkkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnlpZCddOwoJfQogICAgZWxzZSBpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5J10pICYmICR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeSddICE9ICcnICkgewoJICAvLyBnZXQgdGhlIGxpc3Qgb2YgY2F0ZWdvcmllcy4KCSAgJGlkcyA9IHNlbGY6OmdldF9jYXRlZ29yeV9pZHMoJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5J10pOwoJICBpZiggaXNfYXJyYXkoJGlkcykgJiYgY291bnQoJGlkcykgKSB7CgkJJHN0ciA9ICcgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIENDIE9OIENDLmNvbXBhbnlfaWQgPSBDLmlkIEFORCBDQy5jYXRlZ29yeV9pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWRzKS4nKSc7CgkJJHF1ZXJ5IC49ICRzdHI7CgkJJHF1ZXJ5MiAuPSAkc3RyOwoKCQlpZiggaXNzZXQoJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5MiddKSAmJiAkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnkyJ10gIT0gJycgKSB7CgkJICAvLyBzcGVjaWZ5IGFuIGFuZCBvcGVyYXRpb24gZm9yIGNhdGVnb3JpZXMuCgkJICAkaWRzMiA9IHNlbGY6OmdldF9jYXRlZ29yeV9pZHMoJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5MiddKTsKCQkgIGlmKCBpc19hcnJheSgkaWRzMikgJiYgY291bnQoJGlkczIpICkgewoJCQkkc3RyID0gJyBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQ0MyIE9OIENDMi5jb21wYW55X2lkID0gQy5pZCBBTkQgQ0MyLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRpZHMyKS4nKSc7CgkJCSRxdWVyeSAuPSAkc3RyOwoJCQkkcXVlcnkyIC49ICRzdHI7CgkJICB9CgoJCSAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsdGVyWydjYXRlZ29yeTMnXSkgJiYgJHRoaXMtPl9maWx0ZXJbJ2NhdGVnb3J5MyddICE9ICcnICkgewoJCQkvLyBhbiBhbmQgb24gbW9yZSBjYXRlZ29yaWVzCgkJCSRpZHMzID0gc2VsZjo6Z2V0X2NhdGVnb3J5X2lkcygkdGhpcy0+X2ZpbHRlclsnY2F0ZWdvcnkzJ10pOwoJCQlpZiggaXNfYXJyYXkoJGlkczMpICYmIGNvdW50KCRpZHMzKSApIHsKCQkJICAkc3RyID0gJyBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQ0MzIE9OIENDMy5jb21wYW55X2lkID0gQy5pZCBBTkQgQ0MzLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRpZHMzKS4nKSc7CgkJCSAgJHF1ZXJ5IC49ICRzdHI7CgkJCSAgJHF1ZXJ5MiAuPSAkc3RyOwoJCQl9CgkJICB9CgkJfQoJICB9Cgl9CgoJLy8gb3RoZXIgc29ydGluZ3MgdGhhdCByZXF1aXJlIGFkZGl0aW9uYWwgam9pbnMuCglpZiggJHNvcnRieSA9PSAnbW9zdGNoZWNraW5zJyApIHsKCSAgJGNnc29jID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR1NPQ0lBTEFQUCk7CgkgIGlmKCBpc19vYmplY3QoJGNnc29jKSApIHsKICAJICAgICRzdHIgPSAnIExFRlQgSk9JTiAoU0VMRUNUIGxvY2F0aW9uLENPVU5UKGlkKSBBUyBjbnQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0NIRUNLSU5TLicgR1JPVVAgQlkgbG9jYXRpb24pIGNnYyBPTiBDLmlkID0gY2djLmxvY2F0aW9uJzsKCQkkcXVlcnkgLj0gJHN0cjsKCQkkcXVlcnkyIC49ICRzdHI7CgkJJGNvbHVtbnNbXSA9ICdjZ2MuY250IEFTIGNoZWNraW5zJzsKCQkkc29ydGJ5ID0gJ2NnYy5jbnQnOwoJICB9Cgl9CgllbHNlIGlmKCAkc29ydGJ5ID09ICdtb3N0ZmF2b3JpdGUnIHx8ICRzb3J0YnkgPT0gJ21vc3RmYXZvcml0ZXMnICkgewoJICAkY2dzb2MgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHU09DSUFMQVBQKTsKCSAgaWYoIGlzX29iamVjdCgkY2dzb2MpICkgewogIAkgICAgJHN0ciA9ICcgTEVGVCBKT0lOIChTRUxFQ1QgbG9jYXRpb24sQ09VTlQoZnVpZCkgQVMgY250IEZST00gJy5DR1NPQ0lBTF9UQUJMRV9GQVZPUklURVMuJyBHUk9VUCBCWSBsb2NhdGlvbikgY2dmIE9OIEMuaWQgPSBjZ2YubG9jYXRpb24nOwoJCSRzb3J0YnkgPSAnY2dmLmNudCc7CgkJJGNvbHVtbnNbXSA9ICdjZ2YuY250IEFTIGZhdm9yaXRlcyc7CgkJJHF1ZXJ5IC49ICRzdHI7CgkJJHF1ZXJ5MiAuPSAkc3RyOwoJICB9Cgl9CgoJLy8gZmllbGQgZXhwcmVzc2lvbnMgc2hvdWxkIGdvIGFzIGxhdGUgYXMgcG9zc2libGUuLi4gdG8gYWxsb3cgZm9yIGJldHRlciB1c2Ugb2YgaW5kZXhlcy4KCSRmaWVsZF9leHBycyA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfZmllbGRfZXhwcnMoKTsKCWlmKCBpc19hcnJheSgkZmllbGRfZXhwcnMpICYmIGNvdW50KCRmaWVsZF9leHBycykgKSB7CgkgICRmaWVsZGRlZnMgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhUUlVFLFRSVUUpOwoJICBpZiggaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgY291bnQoJGZpZWxkZGVmcykgKSB7CgkJJGZpZWxkZGVmc2J5bmFtZSA9IGNnZV9hcnJheTo6dG9faGFzaCgkZmllbGRkZWZzLCduYW1lJyk7CgkJJHNmeCA9IDE7CgkJJHRuYW1lID0gJ0ZWJy4kc2Z4OwoKCQlmb3JlYWNoKCAkZmllbGRfZXhwcnMgYXMgJG9uZV9leHByICkgewoJCSAgLy8gZ2V0IHRoZSBmaWVsZGRlZiBpZC4KCQkgIGlmKCAhaXNzZXQoJGZpZWxkZGVmc2J5bmFtZVskb25lX2V4cHJbJ2ZsZG5hbWUnXV0pICkgewoJCQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbnZhbGlkIGN1c3RvbSBmaWVsZCBuYW1lICcuJG9uZV9leHByWydmbGRuYW1lJ10uJyBzcGVjaWZpZWQgaW4gcXVlcnknKTsKCQkJY29udGludWU7CgkJICB9CgoJCSAgJGZpZCA9IChpbnQpJGZpZWxkZGVmc2J5bmFtZVskb25lX2V4cHJbJ2ZsZG5hbWUnXV1bJ2lkJ107CgkJICAkZnR5cGUgPSAkZmllbGRkZWZzYnluYW1lWyRvbmVfZXhwclsnZmxkbmFtZSddXVsndHlwZSddOwoJCSAgCgkJICAkZ29vZCA9IEZBTFNFOwoJCSAgaWYoIHN0cnRvdXBwZXIoJG9uZV9leHByWydleHByJ10pID09ICdBVVRPJyAmJiAhaXNfYXJyYXkoJG9uZV9leHByWydmbGR2YWwnXSkpIHsKCQkJc3dpdGNoKCAkZnR5cGUgKSB7CgkJCWNhc2UgJ2FjdGl2aXR5JzoKCQkJY2FzZSAnbXVsdGlzZWxlY3QnOgoJCQljYXNlICdpbWFnZSc6CgkJCWNhc2UgJ2ZpbGUnOgoJCQkgICRvbmVfZXhwclsnZmxkdmFsJ10gPSAnJScuJG9uZV9leHByWydmbGR2YWwnXS4nJSc7CgkJCSAgJG9uZV9leHByWydleHByJ10gPSAnTElLRSc7CgkJCSAgYnJlYWs7CgkJCWRlZmF1bHQ6CgkJCSAgJG9uZV9leHByWydleHByJ10gPSAnZXEnOwoJCQkgIGJyZWFrOwoJCQl9CgkJICB9CgkJICAKCQkgIGlmKCBpc19hcnJheSgkb25lX2V4cHJbJ2ZsZHZhbCddKSApIHsKCQkJLy8gYW4gYXJyYXkKCQkJJHRtcCA9IGFycmF5KCk7CgkJCWZvcmVhY2goICRvbmVfZXhwclsnZmxkdmFsJ10gYXMgJG9uZSApIHsKCQkJICAkdG1wW10gPSAkdG5hbWUuJy52YWx1ZSBMSUtFICcuJGRiLT5xc3RyKCclJy4kb25lLiclJyk7CgkJCX0KCQkJJGdvb2QgPSB0cnVlOwoJCQkkd2hlcmVbXSA9ICcoJy5pbXBsb2RlKCcgT1IgJywkdG1wKS4nKSc7IAoJCSAgfQoJCSAgZWxzZSB7CgkJCXN3aXRjaCggc3RydG91cHBlcigkb25lX2V4cHJbJ2V4cHInXSkgKSB7CgkJCWNhc2UgJ0xJS0UnOgoJCQkgICRnb29kID0gVFJVRTsKCQkJICAkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlIExJS0UgPyc7CgkJCSAgJHBhcm1zW10gPSAkb25lX2V4cHJbJ2ZsZHZhbCddOwoJCQkgIGJyZWFrOwoJCQljYXNlICc8JzoKCQkJY2FzZSAnbHQnOgoJCQkgICR3aGVyZVtdID0gJHRuYW1lLicudmFsdWUgPCA/JzsKCQkJICAkcGFybXNbXSA9ICRvbmVfZXhwclsnZmxkdmFsJ107CgkJCSAgJGdvb2QgPSBUUlVFOwoJCQkgIGJyZWFrOwoJCQljYXNlICc+JzoKCQkJY2FzZSAnZ3QnOgoJCQkgICRnb29kID0gVFJVRTsKCQkJICAkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlID4gPyc7CgkJCSAgJHBhcm1zW10gPSAkb25lX2V4cHJbJ2ZsZHZhbCddOwoJCQkgIGJyZWFrOwoJCQljYXNlICc8PSc6CgkJCWNhc2UgJ2xlJzoKCQkJICAkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlIDw9ID8nOwoJCQkgICRwYXJtc1tdID0gJG9uZV9leHByWydmbGR2YWwnXTsKCQkJICAkZ29vZCA9IFRSVUU7CgkJCSAgYnJlYWs7CgkJCWNhc2UgJz49JzoKCQkJY2FzZSAnZ2UnOgoJCQkgICRnb29kID0gVFJVRTsKCQkJICAkd2hlcmVbXSA9ICR0bmFtZS4nLnZhbHVlID49ID8nOwoJCQkgICRwYXJtc1tdID0gJG9uZV9leHByWydmbGR2YWwnXTsKCQkJICBicmVhazsKCQkJY2FzZSAnPSc6CgkJCWNhc2UgJ2VxJzoKCQkJICAkZ29vZCA9IFRSVUU7CgkJCSAgJHdoZXJlW10gPSAkdG5hbWUuJy52YWx1ZSA9ID8nOwoJCQkgICRwYXJtc1tdID0gJG9uZV9leHByWydmbGR2YWwnXTsKCQkJICBicmVhazsKCQkJY2FzZSAnIT0nOgoJCQljYXNlICduZSc6CgkJCSAgJGdvb2QgPSBUUlVFOwoJCQkgICR3aGVyZVtdID0gJHRuYW1lLicudmFsdWUgIT0gPyc7CgkJCSAgJHBhcm1zW10gPSAkb25lX2V4cHJbJ2ZsZHZhbCddOwoJCQkgIGJyZWFrOwoJCQl9CgkJICB9CgkJCQoJCSAgaWYoICRnb29kICkgewoJCQkkc3RyID0gJyBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyAnLiR0bmFtZS4nIE9OIEMuaWQgPSAnLiR0bmFtZS4nLmNvbXBhbnlfaWQgCiAgICAgICAgICAgICAgICAgICBBTkQgJy4kdG5hbWUuJy5maWVsZGRlZl9pZCA9ICcuJGRiLT5xc3RyKCRmaWQpOwoJCQkkcXVlcnkgLj0gJHN0cjsKCQkJJHF1ZXJ5MiAuPSAkc3RyOwoJCSAgfQoJCSAgJHNmeCsrOwoJCX0KCSAgfQoJfQoJCQoJLy8gYnVpbGQgdGhlIHF1ZXJ5CgkkcXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUICcuaW1wbG9kZSgnLCcsJGNvbHVtbnMpLicgJy4kcXVlcnk7CgkkcTIgPSAnU0VMRUNUIENPVU5UKCopIEFTIGNvdW50JzsKCWlmKCBjb3VudCgkaGNvbHVtbnMpICkgJHEyIC4tICcsJy5pbXBsb2RlKCcsJywkaGNvbHVtbnMpOwoJJHF1ZXJ5MiA9ICRxMi4nICcuJHF1ZXJ5MjsKCS8vJHF1ZXJ5MiA9ICdTRUxFQ1QgQ09VTlQoKikgQVMgY291bnQsJy5pbXBsb2RlKCcsJywkaGNvbHVtbnMpLicgJy4kcXVlcnkyOwoKCS8vIGJ1aWxkIHRoZSBwb3N0IGZpbHRlciBjb25kaXRpb25zLgoJaWYoIGNvdW50KCRyZXFfd2hlcmUpIHx8IGNvdW50KCR3aGVyZSkgKSB7CgkgICRxdWVyeSA9ICRxdWVyeSAuICcgV0hFUkUgJzsKCSAgJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnIFdIRVJFICc7CgoJICBpZiggY291bnQoJHJlcV93aGVyZSkgKSB7CgkJJHF1ZXJ5ID0gJHF1ZXJ5IC4gJygnLmltcGxvZGUoJyBBTkQgJywkcmVxX3doZXJlKS4nKSc7CgkJJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnKCcuIGltcGxvZGUoJyBBTkQgJywkcmVxX3doZXJlKS4nKSc7CgkgIH0KCgkgIGlmKCBjb3VudCgkd2hlcmUpICkgewoJCWlmKCBjb3VudCgkcmVxX3doZXJlKSApIHsKCQkgICRxdWVyeSA9ICRxdWVyeSAuICcgQU5EICc7CgkJICAkcXVlcnkyID0gJHF1ZXJ5MiAuICcgQU5EICc7CgkJfQoJCSRleHByID0gJyBBTkQgJzsKCQlpZiggISR0aGlzLT5fZmlsdGVyWydtYXRjaGFsbCddICkgJGV4cHIgPSAnIE9SICc7CgkJJHF1ZXJ5ID0gJHF1ZXJ5IC4gJygnLmltcGxvZGUoJGV4cHIsJHdoZXJlKS4nKSc7CgkJJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnKCcgLiBpbXBsb2RlKCRleHByLCR3aGVyZSkuJyknOwoJICB9Cgl9CgoJLy8gbm93IGRvIGhhdmluZyBzdHVmZi4uCglpZiggY291bnQoJGhhdmluZykgKSB7CgkgICRxdWVyeSAuPSAnIEhBVklORyAnLmltcGxvZGUoJyBBTkQgJywkaGF2aW5nKTsKCSAgJHF1ZXJ5MiAuPSAnIEhBVklORyAnLmltcGxvZGUoJyBBTkQgJywkaGF2aW5nKTsKCX0KCiAgICAvLyBub3cgZG8gc29ydGluZyBzdHVmZi4KICAgICRjYXN0ID0gJyc7CiAgICBpZiggaXNfb2JqZWN0KCRmbGQpICkgewoJICBsaXN0KCRqdW5rLCRmaWVsZCwkc29ydF90eXBlKSA9IGV4cGxvZGUoJzonLCRzb3J0YnkpOwoJICBpZiggJHNvcnRfdHlwZSA9PSAnaScgKSB7CgkJJGNhc3QgPSAnU0lHTkVEIElOVEVHRVInOwoJICB9CgkgIGVsc2UgaWYoICRzb3J0X3R5cGUgPT0gJ2YnICkgewoJCSRjYXN0ID0gJ0RFQ0lNQUwnOwoJICB9Cgl9CgogICAgaWYoICRjYXN0ICkgewoJICAkcXVlcnkgLj0gIiBPUkRFUiBCWSBDQVNUKHskc29ydGJ5fSBBUyB7JGNhc3R9ICRzb3J0b3JkZXIiOwoJfQogICAgZWxzZSB7CgkgICRzb3J0aW5nID0gIiRzb3J0YnkgJHNvcnRvcmRlciI7CgkgIGlmKCAkc29ydGJ5ICE9ICdjb21wYW55X25hbWUnICkgewoJCWlmKCAkdGhpcy0+X2ZpbHRlclsnc29ydGJvb2wnXSApIHsKCQkgICRzb3J0aW5nID0gIiRzb3J0YnkgREVTQyxjb21wYW55X25hbWUiOwoJCX0KCQllbHNlIHsKCQkgICRzb3J0aW5nID0gIiRzb3J0YnkgJHNvcnRvcmRlcixjb21wYW55X25hbWUgQVNDIjsKCQl9CgkgIH0KCSAgJHF1ZXJ5IC49ICIgT1JERVIgQlkgJHNvcnRpbmciOwoJfQoKCSR0bXAgPSAkZGItPkdldFJvdygkcXVlcnkyLCRwYXJtcyk7CglpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgJiYgaXNzZXQoJHRtcFsnY291bnQnXSkgKSAkdGhpcy0+X2NvdW50ID0gKGludCkkdG1wWydjb3VudCddOwogICAgJHRoaXMtPl9xdWVyaWVkID0gVFJVRTsKICAgIGlmKCAhJHRoaXMtPl9maWx0ZXJbJ29ubHljb3VudCddICkgewoJICAkb2Zmc2V0ID0gKCR0aGlzLT5fZmlsdGVyWydwYWdlJ10tMSkqJHRoaXMtPl9maWx0ZXJbJ3BhZ2VsaW1pdCddOwoJICAkdGhpcy0+X3Jlc3VsdHNldCA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCAkdGhpcy0+X2ZpbHRlclsncGFnZWxpbWl0J10sICRvZmZzZXQsICRwYXJtcyk7Cgl9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gUmVjb3JkQ291bnQoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9xdWVyaWVkICkgJHRoaXMtPl9xdWVyeSgpOwoJaWYoICR0aGlzLT5fcmVzdWx0c2V0ICkgcmV0dXJuICR0aGlzLT5fcmVzdWx0c2V0LT5SZWNvcmRDb3VudCgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIE1vdmVOZXh0KCkKICB7CiAgICBpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKCWlmKCAkdGhpcy0+X3Jlc3VsdHNldCApIHJldHVybiAkdGhpcy0+X3Jlc3VsdHNldC0+TW92ZU5leHQoKTsKCXJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBNb3ZlRmlyc3QoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9xdWVyaWVkICkgJHRoaXMtPl9xdWVyeSgpOwoJaWYoICR0aGlzLT5fcmVzdWx0c2V0ICkgcmV0dXJuICR0aGlzLT5fcmVzdWx0c2V0LT5Nb3ZlRmlyc3QoKTsKCXJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBSZXdpbmQoKQogIHsKCXJldHVybiAkdGhpcy0+TW92ZUZpcnN0KCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gTW92ZUxhc3QoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9xdWVyaWVkICkgJHRoaXMtPl9xdWVyeSgpOwoJaWYoICR0aGlzLT5fcmVzdWx0c2V0ICkgcmV0dXJuICR0aGlzLT5fcmVzdWx0c2V0LT5Nb3ZlTGFzdCgpOwoJcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEVPRigpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CglpZiggJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPkVPRigpOwoJcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gQ2xvc2UoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9xdWVyaWVkICkgJHRoaXMtPl9xdWVyeSgpOwoJaWYoICR0aGlzLT5fcmVzdWx0c2V0ICkgcmV0dXJuICR0aGlzLT5fcmVzdWx0c2V0LT5DbG9zZSgpOwoJcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICB7CglpZiggJGtleSA9PSAnRU9GJyApIHJldHVybiAkdGhpcy0+RU9GKCk7CglpZiggJGtleSA9PSAnZmllbGRzJyAmJiAkdGhpcy0+X3Jlc3VsdHNldCAmJiAhJHRoaXMtPl9yZXN1bHRzZXQtPkVPRigpICkgewoJICByZXR1cm4gJHRoaXMtPl9yZXN1bHRzZXQtPmZpZWxkczsKCX0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdG90YWxfbWF0Y2hlcygpCiAgewogICAgaWYoICEkdGhpcy0+X3F1ZXJpZWQgKSAkdGhpcy0+X3F1ZXJ5KCk7CiAgICByZXR1cm4gJHRoaXMtPl9jb3VudDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLCRkZWVwID0gRkFMU0UsJHN1bW1hcnlwYWdlID0gJycpCiAgewoJc3dpdGNoKCBzZWxmOjokX3Jlc3VsdF9tb2RlICkgewoJY2FzZSBzZWxmOjpSRVNVTFRTX0NEX0NPTVBBTlk6CgkgIHJldHVybiBzZWxmOjpnZXRfY2RfY29tcGFueSgkZGF0YSwkcXVlcnkpOwoJY2FzZSBzZWxmOjpSRVNVTFRTX1NURENMQVNTOgoJICByZXR1cm4gc2VsZjo6Z2V0X3N0ZGNsYXNzX2NvbXBhbnkoJGRhdGEsJGRldGFpbHBhZ2UsJGRlZXAsJHN1bW1hcnlwYWdlKTsKCWNhc2Ugc2VsZjo6UkVTVUxUU19BUlJBWToKCSAgJHIgPSBzZWxmOjpnZXRfYXJyYXlfY29tcGFueSgkZGF0YSwkcXVlcnkpOwoJICByZXR1cm4gJHI7Cgl9CiAgfQoKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X2NkX2NvbXBhbnkoJGRhdGEsJGRlZXAgPSBGQUxTRSkKICB7CglyZXR1cm4gY2RfY29tcGFueTo6bG9hZF9mcm9tX2RhdGEoJGRhdGEsJGRlZXApOwogIH0KCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZ2V0X2FycmF5X2NvbXBhbnkoJGRhdGEsJGRldGFpbHBhZ2UsJGRlZXAgPSBGQUxTRSwkc3VtbWFyeXBhZ2UgPSAnJykKICB7Cgkkb2JqID0gc2VsZjo6Z2V0X3N0ZGNsYXNzX2NvbXBhbnkoJGRhdGEsJGRldGFpbHBhZ2UsJGRlZXAsJHN1bW1hcnlwYWdlKTsKCSRuZGF0YSA9IGdldF9vYmplY3RfdmFycygkb2JqKTsKCXJldHVybiAkbmRhdGE7CiAgfQoKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X3N0ZGNsYXNzX2NvbXBhbnkoJGRhdGEsJGRldGFpbHBhZ2UsJGRlZXAgPSBGQUxTRSwkc3VtbWFyeXBhZ2UgPSAnJykKICB7CgkvLyB0b2RvOiBpdCdkIGJlIG5pY2UgaWYgdGhpcyB3YXMgYSBjZF9jb21wYW55IC4uLiBzb21ldGltZXMKCS8vIGJ1dCBub3QgZm9yIHRoZSBkZWZhdWx0IG9yIGRldGFpbCB2aWV3cy4KCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoKCWlmKCAkc3VtbWFyeXBhZ2UgPD0gMCApICRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKCgkkcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGRhdGEpOwoJJGltYWdlZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4nL2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJHJvdy0+aWQpOwoJJGltYWdldXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2NvbXBhbnlkaXJlY3RvcnkvaWR7JHJvdy0+aWR9IjsKCSRwYXJtcyA9IGFycmF5KCk7CgkkcGFybXNbJ2NvbXBhbnlpZCddID0gJHJvdy0+aWQ7CgljZ2VfdG1wZGF0YTo6c2V0KCdjb21wYW55ZGlyXycuJHJvdy0+aWQsJGRhdGEpOwoJaWYoICRkZXRhaWxwYWdlID4gMCApIHsKCSAgJHJvdy0+Y2Fub25pY2FsID0gJHJvdy0+ZGV0YWlsX3VybCA9ICRjZG1vZC0+Y3JlYXRlX3VybCgnY2RfJywnZGV0YWlscycsJGRldGFpbHBhZ2UsJHBhcm1zKTsKCX0KCSRyb3ctPnBpY3R1cmVfcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy9jb21wYW55ZGlyZWN0b3J5L2lkJy4kcm93LT5pZC4nLycuJHJvdy0+cGljdHVyZV9sb2NhdGlvbjsKCSRyb3ctPmxvZ29fcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy9jb21wYW55ZGlyZWN0b3J5L2lkJy4kcm93LT5pZC4nLycuJHJvdy0+bG9nb19sb2NhdGlvbjsKCWlmKCAhJGRlZXAgKSByZXR1cm4gJHJvdzsKCgkkZmllbGRkZWZzID0gY2RfdXRpbHM6OmdldF9maWVsZGRlZnNfZm9yX2NvbXBhbnkoJHJvdy0+aWQsRkFMU0UsVFJVRSk7CglpZiggaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgY291bnQoJGZpZWxkZGVmcykgKSB7CgkgICRmZGFycmF5ID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkZmlkID0+ICRvbmVkZWYgKSB7CgkJaWYoIGlzc2V0KCRvbmVkZWYtPnZhbHVlKSAmJiAkb25lZGVmLT52YWx1ZSApIHsKCQkgICR2YWx1ZSA9ICRvbmVkZWYtPnZhbHVlOwoJCSAgaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2ltYWdlJyApIHsKCQkJJHRtcCA9IGFycmF5KCd0aHVtYl8nLCdwcmV2aWV3XycsJycpOwoJCQlmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CgkJCSAgJGZuID0gY21zX2pvaW5fcGF0aCgkaW1hZ2VkaXIsJG9uZS4kdmFsdWUpOwoJCQkgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgewoJCQkJJHh4ID0gJG9uZS4ndXJsJzsKCQkJCSRvbmVkZWYtPiR4eCA9ICRpbWFnZXVybC4nLycuJG9uZS4kdmFsdWU7CgkJCSAgfQoJCQl9CgkJICB9CgkJICBlbHNlaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2ZpbGUnICkgewoJCQkkZm4gPSBjbXNfam9pbl9wYXRoKCRpbWFnZWRpciwkdmFsdWUpOwoJCQlpZiggZmlsZV9leGlzdHMoJGZuKSApICRvbmVkZWYtPmZpbGVfdXJsID0gJGltYWdldXJsLicvJy4kdmFsdWU7CgkJICB9CgkJICBlbHNlaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2Ryb3Bkb3duJyApIHsKCQkJJG9uZWRlZi0+ZHJvcGRvd25fdmFsdWUgPSAkb25lZGVmLT5vcHRpb25zWyRvbmVkZWYtPnZhbHVlXTsKCQkgIH0KCQkgIGVsc2VpZiggJG9uZWRlZi0+dHlwZSA9PSAnbXVsdGlzZWxlY3QnICkgewoJCQkkdmFscyA9IGV4cGxvZGUoJ35+Jywkb25lZGVmLT52YWx1ZSk7CgkJCWlmKCBpc19hcnJheSgkdmFscykgJiYgY291bnQoJHZhbHMpICkgewoJCQkgICR0bXAgPSBhcnJheSgpOwoJCQkgIGZvcmVhY2goICR2YWxzIGFzICRvbmUgKSB7CgkJCQkkdG1wWyRvbmVdID0gJG9uZWRlZi0+b3B0aW9uc1skb25lXTsKCQkJICB9CgkJCSAgJG9uZWRlZi0+cHJpbnRhYmxlID0gaW1wbG9kZSgnLCAnLGFycmF5X3ZhbHVlcygkdG1wKSk7CgkJCSAgJG9uZWRlZi0+c2VsZWN0ZWQgPSAkdG1wOwoJCQl9CgkJICB9CgkJICBlbHNlaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2FsYnVtJyApIHsKCQkJaWYoIGlzc2V0KCRvbmVkZWYtPnZhbHVlKSAmJiAkb25lZGVmLT52YWx1ZSApIHsKCQkJICAkb25lZGVmLT52YWx1ZSA9IHVuc2VyaWFsaXplKCRvbmVkZWYtPnZhbHVlKTsKCQkJICAkb25lZGVmLT5waWN0dXJlX3BhdGggPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvY29tcGFueWRpcmVjdG9yeS9pZCcuJHJvdy0+aWQuJy9hbGJ1bV8nLiRvbmVkZWYtPmlkLicvJzsKCQkJfQoJCSAgfQoJCSAgZWxzZWlmKCAkb25lZGVmLT50eXBlID09ICdpY29uJyApIHsKCQkJJGljb25zID0gY2RfdXRpbHM6OmdldF9pY29uc19mdWxsKCk7CgkJCWlmKCBpc19hcnJheSgkaWNvbnMpICYmIGlzc2V0KCRpY29uc1skb25lZGVmLT52YWx1ZV0pICkgJG9uZWRlZi0+dXJsID0gJGljb25zWyRvbmVkZWYtPnZhbHVlXVsndXJsJ107CgkJICB9CgkJICAkZmRhcnJheVskb25lZGVmLT5uYW1lXSA9ICRvbmVkZWY7CgkJfQoJICB9CgkgICRyb3ctPmZpZWxkcyA9ICRmZGFycmF5OwoJfQoKCS8vIGdldCB0aGUgY2F0ZWdvcmllcy4KCSRjYXRlZ29yaWVzID0gJGNkbW9kLT5HZXRDYXRlZ29yaWVzRm9yQ29tcGFueSgkcm93LT5pZCk7CglpZiggY291bnQoJGNhdGVnb3JpZXMpID4gMCApIHsKCSAgJHJlcyA9IGFycmF5KCk7CgkgIGZvcmVhY2goICRjYXRlZ29yaWVzIGFzICRvbmVjYXQgKSB7CgkJaWYoICEkb25lY2F0LT52YWx1ZSApIGNvbnRpbnVlOwoKCQkkcGFybXMgPSBhcnJheSgpOwoJCSRwYXJtc1snY2F0ZWdvcnlpZCddID0gJG9uZWNhdC0+aWQ7CgkJaWYoIHNlbGY6OiRfbm9wcmV0dHkgKSAkcGFybXNbJ25vcHJldHR5J10gPSAxOwoJCSRvbmVjYXQtPnVybCA9ICRjZG1vZC0+Y3JlYXRlX3VybCgnY250bnQwMScsJ2RlZmF1bHQnLCRzdW1tYXJ5cGFnZSwkcGFybXMpOwoJCSRyZXNbJG9uZWNhdC0+bmFtZV0gPSAkb25lY2F0OwoJICB9CgkgIGlmKCBjb3VudCgkcmVzKSApICRyb3ctPmNhdGVnb3JpZXMgPSAkcmVzOwoJfQoJcmV0dXJuICRyb3c7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jlc3VsdHMoJGlkID0gJ2NkXycsJHN1bW1hcnlwYWdlID0gJycsJGRldGFpbHBhZ2UgPSAnJykKICB7CiAgICBpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKICAgIGlmKCBpc19udWxsKCR0aGlzLT5fcmVzdWx0c2V0KSApIHRocm93IG5ldyBFeGNlcHRpb24oJ1Jlc3VsdCBzZXQgZG9lcyBub3QgZXhpc3QnKTsKCgkkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCWlmKCAoaW50KSRzdW1tYXJ5cGFnZSA8IDEgKSB7CgkgIGlmKCBpc3NldCgkdGhpcy0+X2ZpbHRlclsncmV0dXJuaWQnXSkgKSB7CgkJJHN1bW1hcnlwYWdlID0gKGludCkkdGhpcy0+X2ZpbHRlclsncmV0dXJuaWQnXTsKCSAgfQoJICBlbHNlIHsKCQkkc3VtbWFyeXBhZ2UgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwoJICB9Cgl9CgoJZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKCWlmKCAoaW50KSRkZXRhaWxwYWdlIDwgMSAmJiAhaXNzZXQoJENNU19BRE1JTl9QQUdFKSApIHsKCSAgaWYoICR0aGlzLT5fZmlsdGVyWydkZXRhaWxwYWdlJ10gPiAwICkgewoJCSRkZXRhaWxwYWdlID0gKGludCkkdGhpcy0+X2ZpbHRlclsnZGV0YWlscGFnZSddOwoJICB9CgkgIGVsc2UgewoJCSR0bXAgPSAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKCQlpZiggJHRtcCA+IDApIAoJCSAgJGRldGFpbHBhZ2UgPSAkdG1wOwoJCWVsc2UKCQkgICRkZXRhaWxwYWdlID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKCSAgfQoJfQoKCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSRyZXN1bHQgPSBhcnJheSgpOwoJaWYoICEkdGhpcy0+X3Jlc3VsdHNldCApIHsKCSAgYXVkaXQoJycsJ0NvbXBhbnlEaXJlY3RvcnknLCdXQVJOSU5HOiBDRCBRdWVyeSByZXR1cm5lZCBubyByZXN1bHRzJyk7CgkgIHJldHVybiAkcmVzdWx0OwoJfQoKCWlmKCAhJHRoaXMtPl9maWx0ZXJbJ2RlZXAnXSApIHsKCSAgd2hpbGUoICR0aGlzLT5fcmVzdWx0c2V0ICYmICEkdGhpcy0+X3Jlc3VsdHNldC0+RU9GICkgewoJCSRkYXRhID0gJHRoaXMtPl9yZXN1bHRzZXQtPmZpZWxkczsKCQkkcmVzdWx0WyRkYXRhWydpZCddXSA9IHNlbGY6OmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLEZBTFNFLCRzdW1tYXJ5cGFnZSk7CgkJJHRoaXMtPl9yZXN1bHRzZXQtPk1vdmVOZXh0KCk7CgkgIH0KCX0KCWVsc2UgewoJICAkaWRzID0gYXJyYXkoKTsKCSAgd2hpbGUoICR0aGlzLT5fcmVzdWx0c2V0ICYmICEkdGhpcy0+X3Jlc3VsdHNldC0+RU9GICkgewoJCSRkYXRhID0gJHRoaXMtPl9yZXN1bHRzZXQtPmZpZWxkczsKCQkkaWRzW10gPSAkZGF0YVsnaWQnXTsKCQkkdGhpcy0+X3Jlc3VsdHNldC0+TW92ZU5leHQoKTsKCSAgfQoJICAkdGhpcy0+X3Jlc3VsdHNldC0+TW92ZUZpcnN0KCk7CgoJICBpZiggY291bnQoJGlkcykgKSB7CgkJY2RfdXRpbHM6OnByZWxvYWRGaWVsZERhdGEoJGlkcyk7CgkJJGNkbW9kLT5wcmVsb2FkQ2F0ZWdvcnlEYXRhKCRpZHMpOwoKCQl3aGlsZSggISR0aGlzLT5fcmVzdWx0c2V0LT5FT0YgKSB7CgkJICAkZGF0YSA9ICR0aGlzLT5fcmVzdWx0c2V0LT5maWVsZHM7CgkJICAkcmVzdWx0WyRkYXRhWydpZCddXSA9IHNlbGY6OmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLFRSVUUsJHN1bW1hcnlwYWdlKTsKCQkgICR0aGlzLT5fcmVzdWx0c2V0LT5Nb3ZlTmV4dCgpOwoJCX0KCSAgfQoJfQoKICAgIHJldHVybiAkcmVzdWx0OwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcmVzdWx0X2NvdW50KCkKICB7CglpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKCWlmKCAhJHRoaXMtPl9yZXN1bHRzZXQgKSByZXR1cm4gMDsKCXJldHVybiAkdGhpcy0+X3Jlc3VsdHNldC0+UmVjb3JkQ291bnQoKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gJmdldF9wYWdpbmF0aW9uKCkKICB7CglpZiggISR0aGlzLT5fcXVlcmllZCApICR0aGlzLT5fcXVlcnkoKTsKCQoJJHBhZ2luYXRpb24gPSBuZXcgY2Rfc3VtbWFyeV9wYWdpbmF0aW9uKCR0aGlzLT5fZmlsdGVyLCR0aGlzKTsKCXJldHVybiAkcGFnaW5hdGlvbjsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_company_validator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2IC0gMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2RfY29tcGFueV92YWxpZGF0b3IKewogIHByaXZhdGUgc3RhdGljICRfa2V5cygnY29tcGFueV9uYW1lJywnbG9jYXRpb24nLCdhZGRyZXNzJywndGVsZXBob25lJywnZmF4JywnY29udGFjdF9lbWFpbCcsJ3dlYnNpdGUnLCdkZXRhaWxzJywncGljdHVyZV9sb2NhdGlvbicsCgkJCSdsb2dvX2xvY2F0aW9uJywnbGF0bG9uZycsJ2hpZXJfaWQnLCdzdGF0dXMnLCd1cmwnKTsKICBwcml2YXRlICRfY287CiAgcHJpdmF0ZSAkX3JlcXVpcmVkID0gYXJyYXkoJ2NvbXBhbnlfbmFtZScsJ2xvY2F0aW9uJyk7CiAgcHJpdmF0ZSAkX3ZhbGlkYXRlX3VybCA9IFRSVUU7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChjZF9jb21wYW55JiAkY29tcGFueSkKICB7CiAgICAkdGhpcy0+X2NvID0gJGNvbXBhbnk7CiAgICAkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKICAgIGlmKCAkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcpICkKICAgICAgewoJJHRoaXMtPl9yZXF1aXJlZFtdID0gJ3VybCc7CiAgICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcmVxdWlyZWQoJGtleSwkZmxhZyA9IFRSVUUpCiAgewogICAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCiAgICAgIHsKCWlmKCAkZmxhZyAmJiAhaW5fYXJyYXkoJGtleSwkdGhpcy0+X3JlcXVpcmVkKSApCgkgICR0aGlzLT5fcmVxdWlyZWRbXSA9ICRrZXk7CgllbHNlaWYoICEkZmxhZyAmJiBpbl9hcnJheSgka2V5LCR0aGlzLT5fcmVxdWlyZWQpICkKCSAgewoJICAgICRpZHggPSBhcnJheV9zZWFyY2goJGtleSwkdGhpcy0+X3JlcXVpcmVkKTsKCSAgICBpZiggJGlkeCAhPT0gRkFMU0UgKQoJICAgICAgewoJCXVuc2V0KCR0aGlzLT5fcmVxdWlyZWRbJGlkeF0pOwoJICAgICAgfQoJICB9CiAgICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X3ZhbGlkKCkKICB7CiAgICBpZiggaW5fYXJyYXkoJ2NvbXBhbnlfbmFtZScsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snY29tcGFueV9uYW1lJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignY29tcGFueV9uYW1lIGlzIGVtcHR5Jyk7CgogICAgaWYoIGluX2FycmF5KCdsb2NhdGlvbicsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snYWRkcmVzcyddID09ICcnICYmICgkdGhpcy0+X2NvWydsYXRpdHVkZSddID09ICcnIHx8ICR0aGlzLT5fY29bJ2xvbmdpdHVkZSddID09ICcnKSApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdObyBsb2NhdGlvbiBpbmZvcm1hdGlvbiBzdXBwbGllZC4nKTsKCiAgICBpZiggaW5fYXJyYXkoJ2FkZHJlc3MnLCR0aGlzLT5fcmVxdWlyZWQpICYmICR0aGlzLT5fY29bJ2FkZHJlc3MnXSA9PSAnJyApCiAgICAgIHRocm93IG5ldyBDb21wYW55RGlyZWN0b3J5RXhjZXB0aW9uKCdObyBhZGRyZXNzIHNwZWNpZmllZC4nKTsKICAgICAgCiAgICBpZiggaW5fYXJyYXkoJ3RlbGVwaG9uZScsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1sndGVsZXBob25lJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gdGVsZXBob25lIG51bWJlciBzcGVjaWZpZWQuJyk7CgogICAgaWYoIGluX2FycmF5KCdmYXgnLCR0aGlzLT5fcmVxdWlyZWQpICYmICR0aGlzLT5fY29bJ2ZheCddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIGZheCBudW1iZXIgc3BlY2lmaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgnY29udGFjdF9lbWFpbCcsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snY29udGFjdF9lbWFpbCddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIGNvbnRhY3QgZW1haWwgc3BlY2lmaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgnd2Vic2l0ZScsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snd2Vic2l0ZSddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIHdlYnNpdGUgc3BlY2lmaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgnZGV0YWlscycsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snZGV0YWlscyddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIGRldGFpbHMgc3BlY2lmaWVkLicpOwogICAgICAKICAgIGlmKCBpbl9hcnJheSgncGljdHVyZV9sb2NhdGlvbicsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1sncGljdHVyZV9sb2NhdGlvbiddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIHBpY3R1cmUgc3BlY2lmaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgnbG9nb19sb2NhdGlvbicsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snbG9nb19sb2NhdGlvbiddID09ICcnICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ05vIGxvZ28gc3BlY2lmaWVkLicpOwoKICAgIGlmKCBpbl9hcnJheSgnbGF0bG9uZycsJHRoaXMtPl9yZXF1aXJlZCkgJiYgKCR0aGlzLT5fY29bJ2xhdGl0dWRlJ10gPT0gJycgfHwgJHRoaXMtPl9jb1snbG9uZ2l0dWRlJ10gPT0gJycpICkKICAgICAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ0xhdGl0dWRlIGFuZC9vciBMb25naXR1ZGUgYXJlIGludmFsaWQuJyk7CgogICAgaWYoIGluX2FycmF5KCdoaWVyX2lkJywkdGhpcy0+cmVxdWlyZWQpICYmICgkdGhpcy0+X2NvWydoaWVyX2lkJ10gPT0gJycgfHwgJHRoaXMtPl9jb1snaGllcl9pZCddIDwgMCkgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignSGllcmFyY2h5IGlzIG5vdCBzcGVjaWZpZWQnKTsKICAgICAgCiAgICBpZiggaW5fYXJyYXkoJ3N0YXR1cycsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1snc3RhdHVzJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gc3RhdHVzIHNwZWNpZmllZC4nKTsKCiAgICBpZiggaW5fYXJyYXkoJ3VybCcsJHRoaXMtPl9yZXF1aXJlZCkgJiYgJHRoaXMtPl9jb1sndXJsJ10gPT0gJycgKQogICAgICB0aHJvdyBuZXcgQ29tcGFueURpcmVjdG9yeUV4Y2VwdGlvbignTm8gdXJsIHNwZWNpZmllZC4nKTsKCiAgICAvLyBjaGVjayB0aGUgdXJsLgogICAgaWYoICR0aGlzLT5fY29bJ3VybCddICYmICR0aGlzLT5fdmFsaWRhdGVfdXJsICkKICAgICAgewoJaWYoICFjZF91dGlsczo6dmFsaWRhdGVfdXJsKCR0aGlzLT5fY29bJ3VybCddLFRSVUUpICkKCSAgdGhyb3cgbmV3IENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24oJ1VSTCBzcGVjaWZpZWQgaXMgaW52YWxpZCBvciBpbiB1c2UuJyk7CiAgICAgIH0KICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_jquery_upload_handler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICogalF1ZXJ5IEZpbGUgVXBsb2FkIFBsdWdpbiBQSFAgRXhhbXBsZSA1LjUKICogaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvalF1ZXJ5LUZpbGUtVXBsb2FkCiAqCiAqIENvcHlyaWdodCAyMDEwLCBTZWJhc3RpYW4gVHNjaGFuCiAqIGh0dHBzOi8vYmx1ZWltcC5uZXQKICoKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOgogKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAogKi8KCmFic3RyYWN0IGNsYXNzIGNkX2pxdWVyeV91cGxvYWRfaGFuZGxlcgp7CiAgICBwcm90ZWN0ZWQgJG9wdGlvbnM7CiAgICAKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcHRpb25zPW51bGwpIHsKICAgICAgICAkdGhpcy0+b3B0aW9ucyA9IGFycmF5KAogICAgICAgICAgICAnc2NyaXB0X3VybCcgPT4gJHRoaXMtPmdldEZ1bGxVcmwoKS4nLycuYmFzZW5hbWUoX19GSUxFX18pLAogICAgICAgICAgICAndXBsb2FkX2RpcicgPT4gZGlybmFtZShfX0ZJTEVfXykuJy9maWxlcy8nLAogICAgICAgICAgICAndXBsb2FkX3VybCcgPT4gJHRoaXMtPmdldEZ1bGxVcmwoKS4nL2ZpbGVzLycsCiAgICAgICAgICAgICdwYXJhbV9uYW1lJyA9PiAnZmlsZXMnLAogICAgICAgICAgICAvLyBUaGUgcGhwLmluaSBzZXR0aW5ncyB1cGxvYWRfbWF4X2ZpbGVzaXplIGFuZCBwb3N0X21heF9zaXplCiAgICAgICAgICAgIC8vIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBmb2xsb3dpbmcgbWF4X2ZpbGVfc2l6ZSBzZXR0aW5nOgogICAgICAgICAgICAnbWF4X2ZpbGVfc2l6ZScgPT4gbnVsbCwKICAgICAgICAgICAgJ21pbl9maWxlX3NpemUnID0+IDEsCiAgICAgICAgICAgICdhY2NlcHRfZmlsZV90eXBlcycgPT4gJy8uKyQvaScsCiAgICAgICAgICAgICdtYXhfbnVtYmVyX29mX2ZpbGVzJyA9PiBudWxsLAogICAgICAgICAgICAvLyBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gZmFsc2UgdG8gZW5hYmxlIG5vbi1tdWx0aXBhcnQgdXBsb2FkczoKICAgICAgICAgICAgJ2Rpc2NhcmRfYWJvcnRlZF91cGxvYWRzJyA9PiBmYWxzZQogICAgICAgICk7CiAgICAgICAgaWYgKGlzX2FycmF5KCRvcHRpb25zKSAmJiBjb3VudCgkb3B0aW9ucykpIHsKCSAgZm9yZWFjaCggJG9wdGlvbnMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkgICAgJHRoaXMtPm9wdGlvbnNbJGtleV0gPSAkdmFsdWU7CgkgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0RnVsbFVybCgpIHsKICAgICAgCXJldHVybgogICAgICAgIAkJKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSA/ICdodHRwczovLycgOiAnaHR0cDovLycpLgogICAgICAgIAkJKGlzc2V0KCRfU0VSVkVSWydSRU1PVEVfVVNFUiddKSA/ICRfU0VSVkVSWydSRU1PVEVfVVNFUiddLidAJyA6ICcnKS4KICAgICAgICAJCShpc3NldCgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pID8gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIDogKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddLgogICAgICAgIAkJKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSA9PT0gNDQzIHx8CiAgICAgICAgCQkkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSA9PT0gODAgPyAnJyA6ICc6Jy4kX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSkpKS4KICAgICAgICAJCXN1YnN0cigkX1NFUlZFUlsnU0NSSVBUX05BTUUnXSwwLCBzdHJycG9zKCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddLCAnLycpKTsKICAgIH0KICAgIAogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRfZmlsZV9vYmplY3QoJGZpbGVfbmFtZSkgewogICAgICAgICRmaWxlX3BhdGggPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX2RpciddLiRmaWxlX25hbWU7CiAgICAgICAgaWYgKGlzX2ZpbGUoJGZpbGVfcGF0aCkgJiYgJGZpbGVfbmFtZVswXSAhPT0gJy4nKSB7CiAgICAgICAgICAgICRmaWxlID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRmaWxlLT5uYW1lID0gJGZpbGVfbmFtZTsKICAgICAgICAgICAgJGZpbGUtPnNpemUgPSBmaWxlc2l6ZSgkZmlsZV9wYXRoKTsKICAgICAgICAgICAgJGZpbGUtPnVybCA9ICR0aGlzLT5vcHRpb25zWyd1cGxvYWRfdXJsJ10ucmF3dXJsZW5jb2RlKCRmaWxlLT5uYW1lKTsKICAgICAgICAgICAgJGZpbGUtPmRlbGV0ZV91cmwgPSAkdGhpcy0+b3B0aW9uc1snc2NyaXB0X3VybCddCiAgICAgICAgICAgICAgICAuJz9maWxlPScucmF3dXJsZW5jb2RlKCRmaWxlLT5uYW1lKTsKICAgICAgICAgICAgJGZpbGUtPmRlbGV0ZV90eXBlID0gJ0RFTEVURSc7CiAgICAgICAgICAgIHJldHVybiAkZmlsZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICAKICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0X2ZpbGVfb2JqZWN0cygpIHsKICAgICAgICByZXR1cm4gYXJyYXlfdmFsdWVzKGFycmF5X2ZpbHRlcihhcnJheV9tYXAoCiAgICAgICAgICAgIGFycmF5KCR0aGlzLCAnZ2V0X2ZpbGVfb2JqZWN0JyksCiAgICAgICAgICAgIHNjYW5kaXIoJHRoaXMtPm9wdGlvbnNbJ3VwbG9hZF9kaXInXSkKICAgICAgICApKSk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBoYXNfZXJyb3IoJHVwbG9hZGVkX2ZpbGUsICRmaWxlLCAkZXJyb3IpIHsKICAgICAgICBpZiAoJGVycm9yKSB7CiAgICAgICAgICAgIHJldHVybiAkZXJyb3I7CiAgICAgICAgfQogICAgICAgIGlmICghcHJlZ19tYXRjaCgkdGhpcy0+b3B0aW9uc1snYWNjZXB0X2ZpbGVfdHlwZXMnXSwgJGZpbGUtPm5hbWUpKSB7CgkgIHJldHVybiAnYWNjZXB0RmlsZVR5cGVzJzsKICAgICAgICB9CiAgICAgICAgaWYgKCR1cGxvYWRlZF9maWxlICYmIGlzX3VwbG9hZGVkX2ZpbGUoJHVwbG9hZGVkX2ZpbGUpKSB7CiAgICAgICAgICAgICRmaWxlX3NpemUgPSBmaWxlc2l6ZSgkdXBsb2FkZWRfZmlsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGZpbGVfc2l6ZSA9ICRfU0VSVkVSWydDT05URU5UX0xFTkdUSCddOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ21heF9maWxlX3NpemUnXSAmJiAoCiAgICAgICAgICAgICAgICAkZmlsZV9zaXplID4gJHRoaXMtPm9wdGlvbnNbJ21heF9maWxlX3NpemUnXSB8fAogICAgICAgICAgICAgICAgJGZpbGUtPnNpemUgPiAkdGhpcy0+b3B0aW9uc1snbWF4X2ZpbGVfc2l6ZSddKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgcmV0dXJuICdtYXhGaWxlU2l6ZSc7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1snbWluX2ZpbGVfc2l6ZSddICYmCiAgICAgICAgICAgICRmaWxlX3NpemUgPCAkdGhpcy0+b3B0aW9uc1snbWluX2ZpbGVfc2l6ZSddKSB7CiAgICAgICAgICAgIHJldHVybiAnbWluRmlsZVNpemUnOwogICAgICAgIH0KICAgICAgICBpZiAoaXNfaW50KCR0aGlzLT5vcHRpb25zWydtYXhfbnVtYmVyX29mX2ZpbGVzJ10pICYmICgKICAgICAgICAgICAgICAgIGNvdW50KCR0aGlzLT5nZXRfZmlsZV9vYmplY3RzKCkpID49ICR0aGlzLT5vcHRpb25zWydtYXhfbnVtYmVyX29mX2ZpbGVzJ10pCiAgICAgICAgICAgICkgewogICAgICAgICAgICByZXR1cm4gJ21heE51bWJlck9mRmlsZXMnOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGVycm9yOwogICAgfQogICAgCiAgICBwcml2YXRlIGZ1bmN0aW9uIHRyaW1fZmlsZV9uYW1lKCRuYW1lLCAkdHlwZSkgewogICAgICAgIC8vIFJlbW92ZSBwYXRoIGluZm9ybWF0aW9uIGFuZCBkb3RzIGFyb3VuZCB0aGUgZmlsZW5hbWUsIHRvIHByZXZlbnQgdXBsb2FkaW5nCiAgICAgICAgLy8gaW50byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMgb3IgcmVwbGFjaW5nIGhpZGRlbiBzeXN0ZW0gZmlsZXMuCiAgICAgICAgLy8gQWxzbyByZW1vdmUgY29udHJvbCBjaGFyYWN0ZXJzIGFuZCBzcGFjZXMgKFx4MDAuLlx4MjApIGFyb3VuZCB0aGUgZmlsZW5hbWU6CiAgICAgICAgJGZpbGVfbmFtZSA9IHRyaW0oYmFzZW5hbWUoc3RyaXBzbGFzaGVzKCRuYW1lKSksICIuXHgwMC4uXHgyMCIpOwogICAgICAgIC8vIEFkZCBtaXNzaW5nIGZpbGUgZXh0ZW5zaW9uIGZvciBrbm93biBpbWFnZSB0eXBlczoKICAgICAgICBpZiAoc3RycG9zKCRmaWxlX25hbWUsICcuJykgPT09IGZhbHNlICYmCiAgICAgICAgICAgIHByZWdfbWF0Y2goJy9eaW1hZ2VcLyhnaWZ8anBlP2d8cG5nKS8nLCAkdHlwZSwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICRmaWxlX25hbWUgLj0gJy4nLiRtYXRjaGVzWzFdOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGZpbGVfbmFtZTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWZ0ZXJfdXBsb2FkZWRfZmlsZSgkZmlsZW9iamVjdCkge30KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWZ0ZXJfdXBsb2FkZWRfZmlsZXMoJGZpbGVvYmplY3RzX2FycmF5KSB7fQoKICAgIHByaXZhdGUgZnVuY3Rpb24gaGFuZGxlX2ZpbGVfdXBsb2FkKCR1cGxvYWRlZF9maWxlLCAkbmFtZSwgJHNpemUsICR0eXBlLCAkZXJyb3IpIHsKICAgICAgJGZpbGUgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJGZpbGUtPm5hbWUgPSAkdGhpcy0+dHJpbV9maWxlX25hbWUoJG5hbWUsICR0eXBlKTsKICAgICAgJGZpbGUtPnNpemUgPSBpbnR2YWwoJHNpemUpOwogICAgICAkZmlsZS0+dHlwZSA9ICR0eXBlOwogICAgICAkZXJyb3IgPSAkdGhpcy0+aGFzX2Vycm9yKCR1cGxvYWRlZF9maWxlLCAkZmlsZSwgJGVycm9yKTsKICAgICAgaWYgKCEkZXJyb3IgJiYgJGZpbGUtPm5hbWUpIHsKCSRmaWxlX3BhdGggPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX2RpciddLiRmaWxlLT5uYW1lOwoJQG1rZGlyKCR0aGlzLT5vcHRpb25zWyd1cGxvYWRfZGlyJ10sMDc3NyxUUlVFKTsKCSR0bXAgPSAoaXNfZmlsZSgkZmlsZV9wYXRoKSk/ZmlsZXNpemUoJGZpbGVfcGF0aCk6MDsKCSRhcHBlbmRfZmlsZSA9ICEkdGhpcy0+b3B0aW9uc1snZGlzY2FyZF9hYm9ydGVkX3VwbG9hZHMnXSAmJgoJICBpc19maWxlKCRmaWxlX3BhdGgpICYmICRmaWxlLT5zaXplID4gZmlsZXNpemUoJGZpbGVfcGF0aCk7CgljbGVhcnN0YXRjYWNoZSgpOwoJaWYgKCR1cGxvYWRlZF9maWxlICYmIGlzX3VwbG9hZGVkX2ZpbGUoJHVwbG9hZGVkX2ZpbGUpKSB7CgkgIC8vIG11bHRpcGFydC9mb3JtZGF0YSB1cGxvYWRzIChQT1NUIG1ldGhvZCB1cGxvYWRzKQoJICBpZiAoJGFwcGVuZF9maWxlKSB7CgkgICAgZmlsZV9wdXRfY29udGVudHMoCgkJCSAgICAgICRmaWxlX3BhdGgsCgkJCSAgICAgIGZvcGVuKCR1cGxvYWRlZF9maWxlLCAncicpLAoJCQkgICAgICBGSUxFX0FQUEVORAoJCQkgICAgICApOwoJICB9IGVsc2UgewoJICAgIG1vdmVfdXBsb2FkZWRfZmlsZSgkdXBsb2FkZWRfZmlsZSwgJGZpbGVfcGF0aCk7CgkgIH0KCX0gZWxzZSB7CgkgIC8vIE5vbi1tdWx0aXBhcnQgdXBsb2FkcyAoUFVUIG1ldGhvZCBzdXBwb3J0KQoJICBmaWxlX3B1dF9jb250ZW50cygKCQkJICAgICRmaWxlX3BhdGgsCgkJCSAgICBmb3BlbigncGhwOi8vaW5wdXQnLCAncicpLAoJCQkgICAgJGFwcGVuZF9maWxlID8gRklMRV9BUFBFTkQgOiAwCgkJCSAgICApOwoJfQoJJGZpbGVfc2l6ZSA9IGZpbGVzaXplKCRmaWxlX3BhdGgpOwoJaWYgKCRmaWxlX3NpemUgPT09ICRmaWxlLT5zaXplKSB7CgkgICRmaWxlLT51cmwgPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX3VybCddLnJhd3VybGVuY29kZSgkZmlsZS0+bmFtZSk7Cgl9IGVsc2UgaWYgKCR0aGlzLT5vcHRpb25zWydkaXNjYXJkX2Fib3J0ZWRfdXBsb2FkcyddKSB7CgkgIHVubGluaygkZmlsZV9wYXRoKTsKCSAgJGZpbGUtPmVycm9yID0gJ2Fib3J0JzsKCX0KCSRmaWxlLT5zaXplID0gJGZpbGVfc2l6ZTsKCSRmaWxlLT5kZWxldGVfdXJsID0gJHRoaXMtPm9wdGlvbnNbJ3NjcmlwdF91cmwnXQoJICAuJz9maWxlPScucmF3dXJsZW5jb2RlKCRmaWxlLT5uYW1lKTsKCSRmaWxlLT5kZWxldGVfdHlwZSA9ICdERUxFVEUnOwogICAgICB9IGVsc2UgewoJJGZpbGUtPmVycm9yID0gJGVycm9yOwogICAgICB9CiAgICAgIHJldHVybiAkZmlsZTsKICAgIH0KICAgIAogICAgcHVibGljIGZ1bmN0aW9uIGdldCgpIHsKICAgICAgICAkZmlsZV9uYW1lID0gaXNzZXQoJF9SRVFVRVNUWydmaWxlJ10pID8KICAgICAgICAgICAgYmFzZW5hbWUoc3RyaXBzbGFzaGVzKCRfUkVRVUVTVFsnZmlsZSddKSkgOiBudWxsOwogICAgICAgIGlmICgkZmlsZV9uYW1lKSB7CiAgICAgICAgICAgICRpbmZvID0gJHRoaXMtPmdldF9maWxlX29iamVjdCgkZmlsZV9uYW1lKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkaW5mbyA9ICR0aGlzLT5nZXRfZmlsZV9vYmplY3RzKCk7CiAgICAgICAgfQogICAgICAgIGhlYWRlcignQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CiAgICAgICAgZWNobyBqc29uX2VuY29kZSgkaW5mbyk7CiAgICB9CiAgICAKICAgIHB1YmxpYyBmdW5jdGlvbiBwb3N0KCkgewogICAgICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ19tZXRob2QnXSkgJiYgJF9SRVFVRVNUWydfbWV0aG9kJ10gPT09ICdERUxFVEUnKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZGVsZXRlKCk7CiAgICAgICAgfQogICAgICAgICR1cGxvYWQgPSBpc3NldCgkX0ZJTEVTWyR0aGlzLT5vcHRpb25zWydwYXJhbV9uYW1lJ11dKSA/CiAgICAgICAgICAgICRfRklMRVNbJHRoaXMtPm9wdGlvbnNbJ3BhcmFtX25hbWUnXV0gOiBudWxsOwogICAgICAgICRpbmZvID0gYXJyYXkoKTsKICAgICAgICBpZiAoJHVwbG9hZCAmJiBpc19hcnJheSgkdXBsb2FkWyd0bXBfbmFtZSddKSkgewogICAgICAgICAgICBmb3JlYWNoICgkdXBsb2FkWyd0bXBfbmFtZSddIGFzICRpbmRleCA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+aGFuZGxlX2ZpbGVfdXBsb2FkKAogICAgICAgICAgICAgICAgICAgICR1cGxvYWRbJ3RtcF9uYW1lJ11bJGluZGV4XSwKICAgICAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddKSA/CiAgICAgICAgICAgICAgICAgICAgICAgICRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10gOiAkdXBsb2FkWyduYW1lJ11bJGluZGV4XSwKICAgICAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfU0laRSddKSA/CiAgICAgICAgICAgICAgICAgICAgICAgICRfU0VSVkVSWydIVFRQX1hfRklMRV9TSVpFJ10gOiAkdXBsb2FkWydzaXplJ11bJGluZGV4XSwKICAgICAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfVFlQRSddKSA/CiAgICAgICAgICAgICAgICAgICAgICAgICRfU0VSVkVSWydIVFRQX1hfRklMRV9UWVBFJ10gOiAkdXBsb2FkWyd0eXBlJ11bJGluZGV4XSwKICAgICAgICAgICAgICAgICAgICAkdXBsb2FkWydlcnJvciddWyRpbmRleF0KICAgICAgICAgICAgICAgICk7CgkJJHRoaXMtPmFmdGVyX3VwbG9hZGVkX2ZpbGUoJHJlcyk7CgkJJGluZm9bXSA9ICRyZXM7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2VpZiAoJHVwbG9hZCB8fCBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddKSkgewogICAgICAgICAgICAkcmVzID0gJHRoaXMtPmhhbmRsZV9maWxlX3VwbG9hZCgKICAgICAgICAgICAgICAgIGlzc2V0KCR1cGxvYWRbJ3RtcF9uYW1lJ10pID8gJHVwbG9hZFsndG1wX25hbWUnXSA6IG51bGwsCiAgICAgICAgICAgICAgICAvL2lzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10pID8gJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX05BTUUnXSA6IChpc3NldCgkdXBsb2FkWyduYW1lJ10pID8gaXNzZXQoJHVwbG9hZFsnbmFtZSddKSA6IG51bGwpLAogICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX05BTUUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddIDogJHVwbG9hZFsnbmFtZSddLAogICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1NJWkUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfU0laRSddIDogJHVwbG9hZFsnc2l6ZSddLAogICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1RZUEUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfVFlQRSddIDogJHVwbG9hZFsndHlwZSddLAogICAgICAgICAgICAgICAgaXNzZXQoJHVwbG9hZFsnZXJyb3InXSkgPyAkdXBsb2FkWydlcnJvciddIDogbnVsbAogICAgICAgICAgICApOwoJICAgICR0aGlzLT5hZnRlcl91cGxvYWRlZF9maWxlKCRyZXMpOwoJICAgICRpbmZvW10gPSAkcmVzOwogICAgICAgIH0KCiAgICAgICAgaGVhZGVyKCdWYXJ5OiBBY2NlcHQnKTsKICAgICAgICAkanNvbiA9IGpzb25fZW5jb2RlKCRpbmZvKTsKICAgICAgICAkcmVkaXJlY3QgPSBpc3NldCgkX1JFUVVFU1RbJ3JlZGlyZWN0J10pID8KICAgICAgICAgICAgc3RyaXBzbGFzaGVzKCRfUkVRVUVTVFsncmVkaXJlY3QnXSkgOiBudWxsOwogICAgICAgIGlmICgkcmVkaXJlY3QpIHsKICAgICAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJy5zcHJpbnRmKCRyZWRpcmVjdCwgcmF3dXJsZW5jb2RlKCRqc29uKSkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgJiYKICAgICAgICAgICAgKHN0cnBvcygkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSwgJ2FwcGxpY2F0aW9uL2pzb24nKSAhPT0gZmFsc2UpKSB7CiAgICAgICAgICAgIGhlYWRlcignQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGVhZGVyKCdDb250ZW50LXR5cGU6IHRleHQvcGxhaW4nKTsKICAgICAgICB9CiAgICAgICAgZWNobyAkanNvbjsKICAgIH0KICAgIAogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgpIHsKICAgICAgICAkZmlsZV9uYW1lID0gaXNzZXQoJF9SRVFVRVNUWydmaWxlJ10pID8KICAgICAgICAgICAgYmFzZW5hbWUoc3RyaXBzbGFzaGVzKCRfUkVRVUVTVFsnZmlsZSddKSkgOiBudWxsOwogICAgICAgICRmaWxlX3BhdGggPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX2RpciddLiRmaWxlX25hbWU7CiAgICAgICAgJHN1Y2Nlc3MgPSBpc19maWxlKCRmaWxlX3BhdGgpICYmICRmaWxlX25hbWVbMF0gIT09ICcuJyAmJiB1bmxpbmsoJGZpbGVfcGF0aCk7CiAgICAgICAgaGVhZGVyKCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRzdWNjZXNzKTsKICAgIH0KCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_summary_pagination.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LTIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IG1hbmFnZW1lbnQgb2YgYW5kIHZhcmlvdXMgd2F5cyB0byBkaXNwbGF5CiMgIGNvbXBhbnkgaW5mb3JtYXRpb24gZm9yIHVzZSBpbiBkaXJlY3RvcmllcyBldGMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNkX3N1bW1hcnlfcGFnaW5hdGlvbgp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ3BhZ2Vjb3VudCcsJ3BhZ2UnLCdwYWdlbGltaXQnKTsKICBwcml2YXRlICRfaW5saW5lX2xpbmtzID0gMDsKICBwcml2YXRlICRfaWQgPSAnY2RfJzsKICBwcml2YXRlICRfYWN0aW9uID0gJ2RlZmF1bHQnOwogIHByaXZhdGUgJF9yZXR1cm5pZDsKICBwcml2YXRlICRfZmlsdGVyOwogIHByaXZhdGUgJF9xdWVyeTsKICBwcml2YXRlICRfbnBhZ2VzOwogIHByaXZhdGUgJF9jYjsKICBwcml2YXRlICRfZXh0cmFwYXJtczsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGNkX2NvbXBhbnlfZmlsdGVyICRmaWx0ZXIsIGNkX2NvbXBhbnlfcXVlcnkgJHF1ZXJ5KQogIHsKCSR0aGlzLT5faWQgPSAkZmlsdGVyWydpZCddOwoJZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKCWlmKCAhaXNzZXQoJENNU19BRE1JTl9QQUdFKSApIHsKCSAgJHRoaXMtPl9yZXR1cm5pZCA9IChpbnQpJGZpbHRlclsncmV0dXJuaWQnXTsKCX0KCWVsc2UgewoJICAkdGhpcy0+X2lkID0gJ20xXyc7Cgl9CiAgICAkdGhpcy0+X2ZpbHRlciAgID0gJGZpbHRlcjsKICAgICR0aGlzLT5fcXVlcnkgICAgPSAkcXVlcnk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FjdGlvbigkYWN0aW9uKQogIHsKCWlmKCAkYWN0aW9uICkgJHRoaXMtPl9hY3Rpb24gPSAkYWN0aW9uOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9leHRyYXBhcmFtcygkcGFyYW1zKQogIHsKCWlmKCAhaXNfYXJyYXkoJHBhcmFtcykgKSByZXR1cm47CgoJaWYoICFpc19hcnJheSgkdGhpcy0+X2V4dHJhcGFybXMpICkgJHRoaXMtPl9leHRyYXBhcm1zID0gYXJyYXkoKTsKCWZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkgIGlmKCBpc19udW1lcmljKCRrZXkpICkgY29udGludWU7CgkgIGlmKCBpc19vYmplY3QoJHZhbHVlKSB8fCBpc19hcnJheSgkdmFsdWUpICkgY29udGludWU7CgkgICR0aGlzLT5fZXh0cmFwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCX0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiByZXNldF9leHRyYXBhcmFtcygpCiAgewoJJHRoaXMtPl9leHRyYXBhcm1zID0gbnVsbDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfaW5saW5lX2xpbmtzKCRmbGFnID0gVFJVRSkKICB7CgkkdGhpcy0+X2lubGluZV9saW5rcyA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYWdlX2NvdW50KCkKICB7CiAgICBpZiggaXNfbnVsbCgkdGhpcy0+X25wYWdlcykgKSB7CgkgICRuaXRlbXMgPSAkdGhpcy0+X3F1ZXJ5LT5nZXRfdG90YWxfbWF0Y2hlcygpOwoJICAkbGltaXQgPSAkdGhpcy0+X2ZpbHRlclsncGFnZWxpbWl0J107CgoJICAkbnBhZ2VzID0gKGludCkoJG5pdGVtcyAvICRsaW1pdCk7CgkgIGlmKCAkbml0ZW1zICUgJGxpbWl0ICkgJG5wYWdlcysrOwoKCSAgJHRoaXMtPl9ucGFnZXMgPSAkbnBhZ2VzOwoJfQogICAgcmV0dXJuICR0aGlzLT5fbnBhZ2VzOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X3BhZ2UoKQogIHsKICAgIHJldHVybiAoaW50KSgkdGhpcy0+X2ZpbHRlclsncGFnZSddKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGFnZWxpbWl0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9maWx0ZXJbJ3BhZ2VsaW1pdCddOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9maXJzdHBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgxKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJldnBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgkdGhpcy0+Z2V0X2N1cnJlbnRfcGFnZSgpLTEpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uZXh0cGFnZV91cmwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Z2V0X3BhZ2VfdXJsKCR0aGlzLT5nZXRfY3VycmVudF9wYWdlKCkrMSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhc3RwYWdlX3VybCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5nZXRfcGFnZV91cmwoJHRoaXMtPmdldF9wYWdlX2NvdW50KCkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYWdlX3VybCgkcGFnZW51bSkKICB7CiAgICAkcGFnZW51bSA9IChpbnQpJHBhZ2VudW07CiAgICAkcGFnZW51bSA9IG1heCgxLCRwYWdlbnVtKTsKICAgICRwYWdlbnVtID0gbWluKCRwYWdlbnVtLCR0aGlzLT5nZXRfcGFnZV9jb3VudCgpKTsKICAgICRwYXJtcyA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfcGFyYW1zKCk7CiAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlbnVtOwoKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCSRtb2QtPm5vcHJldHR5dXJsID0gMTsKICAgICR1cmwgPSAkbW9kLT5jcmVhdGVfdXJsKCR0aGlzLT5faWQsJHRoaXMtPl9hY3Rpb24sJHRoaXMtPl9yZXR1cm5pZCwkcGFybXMsJHRoaXMtPl9pbmxpbmVfbGlua3MpOwoJJG1vZC0+bm9wcmV0dHl1cmwgPSAwOwogICAgcmV0dXJuICR1cmw7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhZ2VfbGluaygkcGFnZW51bSwkdGV4dCkKICB7CiAgICAkcGFnZW51bSA9IChpbnQpJHBhZ2VudW07CiAgICAkcGFnZW51bSA9IG1heCgxLCRwYWdlbnVtKTsKICAgICRwYWdlbnVtID0gbWluKCRwYWdlbnVtLCR0aGlzLT5nZXRfcGFnZV9jb3VudCgpKTsKICAgICRwYXJtcyA9ICR0aGlzLT5fZmlsdGVyLT5nZXRfcGFyYW1zKCk7CglpZiggaXNfYXJyYXkoJHRoaXMtPl9leHRyYXBhcm1zKSApICRwYXJtcyA9IGFycmF5X21lcmdlKCR0aGlzLT5fZXh0cmFwYXJtcywkcGFybXMpOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZW51bTsKCSRwYXJtc1snbm9wcmV0dHknXSAgPSAxOwogICAgCiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkkbW9kLT5ub3ByZXR0eXVybCA9IDE7CgkkbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJHRoaXMtPl9pZCwkdGhpcy0+X2FjdGlvbiwkdGhpcy0+X3JldHVybmlkLCR0ZXh0LCRwYXJtcywnJyxmYWxzZSwkdGhpcy0+X2lubGluZV9saW5rcyk7CgkkbW9kLT5ub3ByZXR0eXVybCA9IDA7CglyZXR1cm4gJGxpbms7CiAgfQoKfSAvLyBzdW1tYXJ5IHBhZ2luYXRpb24KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_upload_handler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2IC0gMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2RfdXBsb2FkX2hhbmRsZXIgZXh0ZW5kcyBjZ2VfdXBsb2FkZXIKewogIHByaXZhdGUgJF9jdXJyZW50X3ZhbHVlOwogIHByaXZhdGUgJF9oYW5kbGVfdGh1bWJzID0gMTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwcmVmaXgsJGRlc3RkaXIgPSAnJykgCiAgewogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkcHJlZml4LCRkZXN0ZGlyKTsKCQogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X2NnZSgpOwogICAgJHRoaXMtPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZHVwbG9hZGZpbGVzJykpOwogICAgJHRoaXMtPnNldF9hY2NlcHRlZF9pbWFnZXR5cGVzKCRtb2QtPkdldFByZWZlcmVuY2UoJ2ltYWdlZXh0ZW5zaW9ucycpKTsKICAgICR0aGlzLT5zZXRfcHJldmlldygkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19yZXNpemluZycsMCkpOwogICAgJHRoaXMtPnNldF9wcmV2aWV3X3NpemUoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVzaXplaW1hZ2UnLDApKTsKICAgICR0aGlzLT5zZXRfd2F0ZXJtYXJrKCRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93X3dhdGVybWFya2luZycsMCkpOwogICAgJHRoaXMtPnNldF90aHVtYm5haWwoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfdGh1bWJuYWlsaW5nJywwKSk7CiAgICAkdGhpcy0+c2V0X3RodW1ibmFpbF9zaXplKCRtb2QtPkdldFByZWZlcmVuY2UoJ3RodW1ibmFpbHNpemUnKSk7CiAgICAkdGhpcy0+c2V0X2RlbGV0ZV9vcmlnKCRtb2QtPkdldFByZWZlcmVuY2UoJ2RlbGV0ZV9vcmlnX2ltYWdlJykpOwogICAgJHRoaXMtPnNldF9hY2NlcHRlZF9maWxldHlwZXMoKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCRkYXQgPSBudWxsKSAKICB7CiAgICBpZiggaXNfbnVsbCgkZGF0KSApIHsKICAgICAgJGNnZXggPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRXh0ZW5zaW9ucycpOwogICAgICBwYXJlbnQ6OnNldF9hY2NlcHRlZF9maWxldHlwZXMoJGNnZXgtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWR1cGxvYWRmaWxlcycpKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgcGFyZW50OjpzZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCRkYXQpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9jdXJyZW50X3ZhbHVlKCRuYW1lID0gbnVsbCkKICB7CgkkdGhpcy0+X2N1cnJlbnRfdmFsdWUgPSAkbmFtZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfdGh1bWJzKCRmbGFnID0gVFJVRSkKICB7CgkkdGhpcy0+X2hhbmRsZV90aHVtYnMgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfdXBsb2FkcygpCiAgewoJaWYoICR0aGlzLT5fY3VycmVudF92YWx1ZSApIHsKCSAgJHRtcCA9IGFycmF5KCk7CgkgICR0bXBbXSA9IGNtc19qb2luX3BhdGgoJHRoaXMtPmdldF9kZXN0X2RpcigpLCd0aHVtYl8nLiR0aGlzLT5fY3VycmVudF92YWx1ZSk7CgkgICR0bXBbXSA9IGNtc19qb2luX3BhdGgoJHRoaXMtPmdldF9kZXN0X2RpcigpLCdwcmV2aWV3XycuJHRoaXMtPl9jdXJyZW50X3ZhbHVlKTsKCSAgJHRtcFtdID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+Z2V0X2Rlc3RfZGlyKCksJHRoaXMtPl9jdXJyZW50X3ZhbHVlKTsKCSAgZm9yZWFjaCggJHRtcCBhcyAkZm4gKSB7CgkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkJICBAdW5saW5rKCRmbik7CgkJfQoJICB9Cgl9CgkvLyB0b2RvLCByZXR1cm4gc29tZXRoaW5nLgogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV91cGxvYWQoJG5hbWUsJGRlc3RmaWxlbmFtZSA9ICcnLCRzdWJmaWVsZCA9IGZhbHNlKQogIHsKCS8vIGlmIHRoZSBmaWxlIGlzIHNldAoJJHJlcyA9ICR0aGlzLT5jaGVja191cGxvYWQoJG5hbWUpOwoJaWYoICRyZXMgKSB7CgkgICR0aGlzLT5kZWxldGVfdXBsb2FkcygpOwoKCSAgLy8gaGFuZGxlIHVwbG9hZC4uLgoJICByZXR1cm4gcGFyZW50OjpoYW5kbGVfdXBsb2FkKCRuYW1lLCRkZXN0ZmlsZW5hbWUsJHN1YmZpZWxkKTsKCX0KCXJldHVybiBmYWxzZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiByZXNldCgpCiAgewoJcGFyZW50OjpyZXNldF9lcnJvcnMoKTsKCSR0aGlzLT5fY3VycmVudF92YWx1ZSA9IG51bGw7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZF91dGlscwp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9yb3V0ZXNfbG9hZGVkID0gRkFMU0U7CiAgcHJpdmF0ZSBzdGF0aWMgJF9jYXRlZ29yaWVzOwogIHByaXZhdGUgc3RhdGljICRfZmllbGRkZWZzOwogIHByaXZhdGUgc3RhdGljICRfZmllbGRpbmZvX3ByZWxvYWQ7CiAgcHJpdmF0ZSBzdGF0aWMgJF9nZW9sb2NhdG9yOwogIHByaXZhdGUgc3RhdGljICRfaGllcmFyY2h5OwoKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gbG9hZF9yb3V0ZXMoKQogIHsKCWlmKCBzZWxmOjokX3JvdXRlc19sb2FkZWQgKSByZXR1cm47CgoJY21zX3JvdXRlX21hbmFnZXI6OmxvYWRfcm91dGVzKCk7CglzZWxmOjokX3JvdXRlc19sb2FkZWQgPSBUUlVFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY29tcGFueV9uYW1lX2V4aXN0cygkbmFtZSwkaWQgPSBudWxsKQogIHsKCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCWlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzJywxKSApIHJldHVybiBGQUxTRTsKCgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgY29tcGFueV9uYW1lID0gPyc7CgkkcGFybXMgPSBhcnJheSgkbmFtZSk7CglpZiggJGlkICkgewoJICAkcXVlcnkgLj0gJyBBTkQgaWQgIT0gPyc7CgkgICRwYXJtc1tdID0gJGlkOwoJfQoJJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSwkcGFybXMpOwoJaWYoICR0bXAgKSByZXR1cm4gVFJVRTsKCXJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VuZXJhdGVfdXJsKCR0bmFtZSkKICB7CgkkdHVybCA9ICcnOwoJaWYoICR0bmFtZSA9PSAnJyApIHJldHVybiAkdHVybDsKCgkkc3VmZml4ID0gJyc7CgkkY291bnQgPSAxOwoJc2VsZjo6bG9hZF9yb3V0ZXMoKTsKCSR0bmFtZSA9IG11bmdlX3N0cmluZ190b191cmwoJHRuYW1lLGZhbHNlLHRydWUpOwoJd2hpbGUoICR0dXJsID09ICcnICYmICRjb3VudCA8IDEwMCApIHsKCSAgJHRtcCA9IHN0cnRvbG93ZXIoJHRuYW1lKTsKCSAgJHRtcCAuPSAkc3VmZml4OwoJICAkdG1wID0gdHJpbSgkdG1wLCIgL1x0XHJcblwwXHgwOCIpOwoKCSAgLy8gbWFrZSBzdXJlIHRoaXMgdXJsIGlzbid0IHRha2VuLgoJICAkcm91dGUgPSBjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkdG1wKTsKCSAgaWYoICRyb3V0ZSApIHsKCQkkY291bnQrKzsKCQkkc3VmZml4ID0gJy0nLiRjb3VudDsKCSAgfQoJICBlbHNlIHsKCQkvLyBmb3VuZCBvbmUuCgkJJHR1cmwgPSAkdG1wOwoJCWJyZWFrOwoJICB9Cgl9CgoJcmV0dXJuICR0dXJsOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfdXJsKCR0dXJsLCRjaGVja19leGlzdHMgPSBmYWxzZSwkY29tcGFueV9pZCA9IEZBTFNFKQogIHsKCS8vIGNoZWNrIHRoZSBwcm92aWRlZC9nZW5lcmF0ZWQgdXJsLgoJJHR1cmwgPSB0cmltKCR0dXJsLCIgL1x0XHJcblwwXHgwOCIpOwoJaWYoIGVtcHR5KCR0dXJsKSB8fCBzdGFydHN3aXRoKCR0dXJsLCcvJykgfHwgZW5kc3dpdGgoJHR1cmwsJy8nKSApIHJldHVybiBGQUxTRTsKCgkvLyBjaGVjayBmb3IgaW52YWxpZCBjaGFycy4KCSR0cmFuc2xhdGVkID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdHVybCxmYWxzZSx0cnVlKTsKCWlmKCBzdHJ0b2xvd2VyKCR0cmFuc2xhdGVkKSAhPSBzdHJ0b2xvd2VyKCR0dXJsKSApIHJldHVybiBGQUxTRTsKCglpZiggJGNoZWNrX2V4aXN0cyApIHsKCSAgJHJvdXRlID0gY21zX3JvdXRlX21hbmFnZXI6OmZpbmRfbWF0Y2goJHR1cmwsVFJVRSk7CgkgIGlmKCBpc19vYmplY3QoJHJvdXRlKSAmJiAkY29tcGFueV9pZCApIHsKCQkvLyBmb3VuZCBhIG1hdGNoaW5nIHVybCwganVzdCBnb3R0YSBjb25maXJtIHRoYXQgdGhlIHJvdXRlIGRvZXNuJ3QgbWF0Y2ggdGhpcyBjb21wYW55CgkJJGRlZiA9ICRyb3V0ZS0+Z2V0X2RlZmF1bHRzKCk7CgkJaWYoICRyb3V0ZS0+Z2V0X2Rlc3QoKSAhPSAnQ29tcGFueURpcmVjdG9yeScgfHwgIWlzc2V0KCRkZWZbJ2NvbXBhbnlpZCddKSB8fCAkZGVmWydjb21wYW55aWQnXSAhPSAkY29tcGFueV9pZCApIHJldHVybiBGQUxTRTsKCSAgfQoJfQoJcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZGVjb2RlX2Ryb3Bkb3duX2RhdGEoJHN0cikKICB7CglpZiggIWlzX2FycmF5KCRzdHIpICkgewoJICAkdG1wID0gZXhwbG9kZSgiXG4iLCRzdHIpOwoJfQoJZWxzZSB7CgkgIHJldHVybiAkc3RyOwoJfQoKCSR0bXAyID0gYXJyYXkoKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJICBpZiggc3RycG9zKCR0bXBbJGldLCc9JykgPT09IEZBTFNFICkgewoJCSR0bXAyW3RyaW0oJHRtcFskaV0pXSA9IHRyaW0oJHRtcFskaV0pOwoJICB9CgkgIGVsc2UgewoJCWxpc3QoJG9rZXksJG92YWx1ZSkgPSBleHBsb2RlKCc9JywkdG1wWyRpXSwyKTsKCQkkdG1wMlt0cmltKCRva2V5KV0gPSB0cmltKCRvdmFsdWUpOwoJICB9Cgl9CglhcnJheV9mbGlwKCR0bXAyKTsKCXJldHVybiAkdG1wMjsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9oaWVyYXJjaHkoJGFzX3RyZWUgPSBGQUxTRSwkcGFyZW50X2lkID0gLTEsJGRlcHRoID0gMSkKICB7CgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKCWlmKCAhaXNfYXJyYXkoc2VsZjo6JF9oaWVyYXJjaHkpICkgewoJICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBPUkRFUiBCWSBoaWVyYXJjaHknOwoJICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJICBzZWxmOjokX2hpZXJhcmNoeSA9ICR0bXA7Cgl9CgoJaWYoICEkYXNfdHJlZSApIHJldHVybiBzZWxmOjokX2hpZXJhcmNoeTsKCWlmKCAhaXNfYXJyYXkoc2VsZjo6JF9oaWVyYXJjaHkpIHx8IGNvdW50KHNlbGY6OiRfaGllcmFyY2h5KSA9PSAwICkgcmV0dXJuOwoKCSRkYXRhID0gYXJyYXkoKTsKCSRoaWVyID0gc2VsZjo6JF9oaWVyYXJjaHk7CgkkZ2V0X3RyZWUgPSBmdW5jdGlvbigkcGFyZW50X2lkID0gLTEsJGRlcHRoID0gMCkgdXNlICgkaGllciwmJGRhdGEsJiRnZXRfdHJlZSkgewoJICAkb3V0ID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGhpZXIgYXMgJG9uZSApIHsKCQlpZiggJG9uZVsncGFyZW50X2lkJ10gIT0gJHBhcmVudF9pZCApIGNvbnRpbnVlOwoKCQkkdG1wID0gJGdldF90cmVlKCRvbmVbJ2lkJ10sJGRlcHRoKzEpOwoJCWlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCQkgICRvbmVbJ2NoaWxkcmVuJ10gPSAkdG1wOwoJCX0KCQkkb25lWydkZXB0aCddID0gJGRlcHRoOwoJCSRvdXRbXSA9ICRvbmU7CgkgIH0KCSAgcmV0dXJuICRvdXQ7Cgl9OwoJJHRyZWUgPSAkZ2V0X3RyZWUoKTsKCXJldHVybiAkdHJlZTsKICB9CgoKICAvKioKICAgKiBUZXN0IGlmIGhpZXJhcmNoeSBpZCBBIGV4aXN0cyBpbiB0aGUgdHJlZSBhbmQgaXMgZXF1YWwgdG8gb3IgYSBjaGlsZCBvZiBpdGVtIEIKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhpZXJhcmNoeV9tYXRjaF9wYXJlbnQoJEEsJEIpCiAgewoJaWYoICRBID09IC0xICkgcmV0dXJuIEZBTFNFOwoJaWYoICRBID09ICRCICkgcmV0dXJuIFRSVUU7CgoJJGxpc3QgPSBzZWxmOjpnZXRfaGllcmFyY2h5KCk7CglpZiggIWlzX2FycmF5KCRsaXN0KSB8fCBjb3VudCgkbGlzdCkgPT0gMCApIHJldHVybiBGQUxTRTsKCgkkY3VyID0gJEE7CgkkbiA9IDA7Cgl3aGlsZSggJGN1ciAhPSAtMSAmJiAkbiA8IDEwMCApIHsKCSAgJG4rKzsKCSAgZm9yZWFjaCggJGxpc3QgYXMgJGl0ZW0gKSB7CgkJaWYoICRpdGVtWydpZCddID09ICRjdXIgKSB7CgkJICAkY3VyID0gJGl0ZW1bJ3BhcmVudF9pZCddOwoJCSAgYnJlYWs7CgkJfQoJICB9CgkgIGlmKCAkY3VyID09ICRCICkgcmV0dXJuIFRSVUU7Cgl9CglyZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jb21wYW55KCRjb21wYW55X2lkLCRkZXRhaWxwYWdlID0gJycsJGRlZXAgPSBGQUxTRSwkYXNfc3RkY2xhc3MgPSBUUlVFKQogIHsKCSRjb21wYW55X2lkID0gKGludCkkY29tcGFueV9pZDsKCWlmKCAkY29tcGFueV9pZCA8PSAwICkgcmV0dXJuOwoJCgkkZGF0YSA9IG51bGw7CglpZiggY2dlX3RtcGRhdGE6OmV4aXN0cygnY29tcGFueWRpcl8nLiRjb21wYW55X2lkKSApIHsKCSAgJGRhdGEgPSBjZ2VfdG1wZGF0YTo6Z2V0KCdjb21wYW55ZGlyXycuJGNvbXBhbnlfaWQpOwoJfQoJZWxzZSB7CgkgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgkgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgV0hFUkUgaWQgPSA/JzsKCSAgJGRhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNvbXBhbnlfaWQpKTsKCSAgY2dlX3RtcGRhdGE6OnNldCgnY29tcGFueWRpcl8nLiRjb21wYW55X2lkLCRkYXRhKTsKCX0KCglpZiggaXNfYXJyYXkoJGRhdGEpICYmIGNvdW50KCRkYXRhKSApIHsKCSAgaWYoICEkYXNfc3RkY2xhc3MgKSBjZF9jb21wYW55X3F1ZXJ5OjpzZXRfcmVzdWx0X21vZGUoY2RfY29tcGFueV9xdWVyeTo6UkVTVUxUU19DRF9DT01QQU5ZKTsKCSAgJG9iaiA9IGNkX2NvbXBhbnlfcXVlcnk6OmdldF9jb21wYW55KCRkYXRhLCRkZXRhaWxwYWdlLCRkZWVwKTsKCSAgaWYoICEkYXNfc3RkY2xhc3MgKSBjZF9jb21wYW55X3F1ZXJ5OjpzZXRfcmVzdWx0X21vZGUoY2RfY29tcGFueV9xdWVyeTo6UkVTVUxUU19TVERDTEFTUyk7CgkJCgkgIHJldHVybiAkb2JqOwoJfQogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hpZXJhcmNoeV9saXN0KCRoaWVyaWQgPSAtMSwkbm9uZSA9IFRSVUUpCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoKCSRpdGVtcyA9IGFycmF5KCk7CglpZiggJG5vbmUgKSAkaXRlbXNbJygnLiRjZG1vZC0+TGFuZygnbm9uZScpLicpJ10gPSAnLTEnOwoKCSRoaWVyID0gc2VsZjo6Z2V0X2hpZXJhcmNoeSgpOwoJaWYoIGlzX2FycmF5KCRoaWVyKSAmJiBjb3VudCgkaGllcikgPiAwICkgewoJICAkbG9uZ25hbWUgPSBudWxsOwoJICBpZiggJGhpZXJpZCA+IDAgKSB7CgkJLy8gZG9uJ3Qgd2FudCB0aGlzIGl0ZW0sIG9yIGFueSBvZiBpdHMgY2hpbGRyZW4uCgkJZm9yZWFjaCggJGhpZXIgYXMgJG9uZSApIHsKCQkgIGlmKCAkb25lWydpZCddID09ICRoaWVyaWQgKSB7CgkJCSRsb25nbmFtZSA9ICRvbmVbJ2xvbmdfbmFtZSddOwoJCQlicmVhazsKCQkgIH0KCQl9CgkgIH0KCgkgIGZvcmVhY2goICRoaWVyIGFzICRvbmUgKSB7CgkJaWYoICRsb25nbmFtZSAmJiBzdGFydHN3aXRoKCRvbmVbJ2xvbmdfbmFtZSddLCRsb25nbmFtZSkgKSBjb250aW51ZTsKCQkkaXRlbXNbJG9uZVsnbG9uZ19uYW1lJ11dID0gJG9uZVsnaWQnXTsKCSAgfQoJfQoKCXJldHVybiAkaXRlbXM7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcmllcygkYXNIYXNoID0gRkFMU0UsJGJ5TmFtZSA9IEZBTFNFKQogIHsKCWlmKCAhc2VsZjo6JF9jYXRlZ29yaWVzICkgewoJICAkZW50cnlhcnJheSA9IGFycmF5KCk7CgkgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgkgIAoJICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBPUkRFUiBCWSBpb3JkZXIgQVNDJzsKCSAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkgIHdoaWxlKCAhJGRicmVzdWx0LT5FT0YgKSB7CgkJJG9uZXJvdyA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRkYnJlc3VsdC0+ZmllbGRzKTsKCQkkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKCQkkZGJyZXN1bHQtPk1vdmVOZXh0KCk7CgkgIH0KCSAgCgkgIHNlbGY6OiRfY2F0ZWdvcmllcyA9ICRlbnRyeWFycmF5OwoJfQoJCglpZiggJGFzSGFzaCApIHsKCSAgJHRtcCA9IGFycmF5KCk7CgkgIGZvcmVhY2goIHNlbGY6OiRfY2F0ZWdvcmllcyBhcyAkb25lICkgewoJCWlmKCAkYnlOYW1lICkgewoJCSAgJHRtcFskb25lLT5uYW1lXSA9ICRvbmU7CgkJfQoJCWVsc2UgewoJCSAgJHRtcFskb25lLT5pZF0gPSAkb25lOwoJCX0KCSAgfQoJICByZXR1cm4gJHRtcDsKCX0KCglyZXR1cm4gc2VsZjo6JF9jYXRlZ29yaWVzOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkZGVmc19ieV9pZCgkYWRtaW4gPSBGQUxTRSwkcHVibGljID0gVFJVRSkKICB7CgkkdG1wID0gc2VsZjo6Z2V0X2ZpZWxkZGVmcygkYWRtaW4sJHB1YmxpYyk7CglpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CgkgICRkYXRhID0gYXJyYXkoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkJJHJvdyA9ICR0bXBbJGldOwoJCSRkYXRhWyRyb3dbJ2lkJ11dID0gJHJvdzsKCSAgfQoJICByZXR1cm4gJGRhdGE7Cgl9CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzX2J5X25hbWUoJGFkbWluID0gRkFMU0UsJHB1YmxpYyA9IFRSVUUpCiAgewoJJHRtcCA9IHNlbGY6OmdldF9maWVsZGRlZnMoJGFkbWluLCRwdWJsaWMpOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJICAkZGF0YSA9IGFycmF5KCk7CgkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewoJCSRyb3cgPSAkdG1wWyRpXTsKCQkkZGF0YVskcm93WyduYW1lJ11dID0gJHJvdzsKCSAgfQoJICByZXR1cm4gJGRhdGE7Cgl9CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzKCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlLCRhc19vYmplY3QgPSBGQUxTRSkKICB7CglpZiggIWlzX2FycmF5KHNlbGY6OiRfZmllbGRkZWZzKSApIHsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSAgCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKCQkkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJCWlmKCBpc19hcnJheSgkZGJyKSApIHsKCQkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRkYnIpOyAkaSsrICkgewoJCQlzd2l0Y2goICRkYnJbJGldWyd0eXBlJ10gKSB7CgkJCWNhc2UgJ2Ryb3Bkb3duJzoKCQkJY2FzZSAnbXVsdGlzZWxlY3QnOgoJCQkgIGlmKCBpc3NldCgkZGJyWyRpXVsnZHJvcGRvd25fZGF0YSddKSAmJiAkZGJyWyRpXVsnZHJvcGRvd25fZGF0YSddICkgewoJCQkJJGRiclskaV1bJ29wdGlvbnMnXSA9IGNkX3V0aWxzOjpkZWNvZGVfZHJvcGRvd25fZGF0YSgkZGJyWyRpXVsnZHJvcGRvd25fZGF0YSddKTsKCQkJICB9CgkJCSAgYnJlYWs7CgkJCWNhc2UgJ2ljb24nOgoJCQkgIGlmKCBzZWxmOjpjYW5fZ2VvbG9jYXRlKCkgKSAkZGJyWyRpXVsnb3B0aW9ucyddID0gc2VsZjo6Z2V0X2ljb25fbGlzdCgpOwoJCQkgIGJyZWFrOwoJCQl9CgkJICB9CgkJICBzZWxmOjokX2ZpZWxkZGVmcyA9ICRkYnI7CgkJfQoJfQoKCWlmKCAkYWRtaW4gPT0gdHJ1ZSAmJiAkcHVibGljID09IHRydWUgKSByZXR1cm4gc2VsZjo6JF9maWVsZGRlZnM7IC8vIGFsbCBmaWVsZHMuCgoJJHJlc3VsdCA9IGFycmF5KCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2ZpZWxkZGVmcyk7ICRpKysgKSB7CgkgICRyb3cgPSBzZWxmOjokX2ZpZWxkZGVmc1skaV07CgkgIGlmKCAkcHVibGljID09IFRSVUUgJiYgJHJvd1sncHVibGljJ10gPiAwICkgewoJCS8vIHB1YmxpY2x5IHZpZXdhYmxlCgkJJHJlc3VsdFtdID0gJHJvdzsKCSAgfQoJICBlbHNlIGlmKCAkYWRtaW4gPT0gVFJVRSAmJiAkcm93WydhZG1pbl9vbmx5J10gPiAwICkgewoJCS8vIG9ubHkgYW4gYWRtaW5pc3RyYXRvciAobm90IG93bmVyIGNhbiBtb2RpZnkgdGhlc2UgZmllbGRzKQoJCSRyZXN1bHRbXSA9ICRyb3c7CgkgIH0KCSAgZWxzZSBpZiggJHB1YmxpYyA9PSBGQUxTRSAmJiAkcm93WydwdWJsaWMnXSA8PSAwICYmICRhZG1pbiA9PSBGQUxTRSAmJiAkcm93WydhZG1pbl9vbmx5J10gPD0gMCApIHsKCQkvLyBhZG1pbmlzdHJhdG9yIG9yIG93bmVyIGNhbiBtb2RpZnkgdGhlc2UgZmllbGRzLCBidXQgbm90IHB1YmxpY2x5IHZpZXdhYmxlCgkJJHJlc3VsdFtdID0gJHJvdzsKCSAgfQoJfQoJcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZGRlZnNfZm9yX2NvbXBhbnkoJGlkLCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlKQogIHsKCSRmaWVsZGRlZnMgPSBzZWxmOjpnZXRfZmllbGRkZWZzKCRhZG1pbiwkcHVibGljKTsKCWlmKCBjb3VudCgkZmllbGRkZWZzKSA9PSAwICkgcmV0dXJuOwoJc2VsZjo6cHJlbG9hZEZpZWxkRGF0YSgkaWQpOwoJaWYoICFpc3NldChzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRpZF0pICkgcmV0dXJuOwoKCSR0bXAgPSBzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRpZF07Cgkkb3V0ID0gYXJyYXkoKTsKCgkvLyBkbyBhIGNyb3NzIHJlZmVyZW5jZS4uLiBvbmx5IHJldHVybiB0aGUgZmllbGRkZWZzIHRoYXQgbWF0Y2ggdGhlIGNyaXRlcmlhLgoJJHRtcDIgPSBhcnJheV9rZXlzKCR0bXApOwoJZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkazEgPT4gJHJlYzEgKSB7CgkgIGlmKCBpbl9hcnJheSgkcmVjMVsnaWQnXSwkdG1wMikgKSAkb3V0WyRyZWMxWydpZCddXSA9ICR0bXBbJHJlYzFbJ2lkJ11dOwoJfQoJcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHByZWxvYWRGaWVsZERhdGEoJGlkcykKICB7CglpZiggIWlzX2FycmF5KCRpZHMpICYmIGlzX251bWVyaWMoJGlkcykgKSAkaWRzID0gYXJyYXkoJGlkcyk7CgkkdG1wID0gYXJyYXkoKTsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRpZHMpOyAkaSsrICkgewoJICAkbiA9IChpbnQpJGlkc1skaV07CgkgIGlmKCAkbiA8IDAgKSBjb250aW51ZTsKCSAgaWYoIGlzX2FycmF5KHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWQpICYmIGlzc2V0KHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJG5dKSApIGNvbnRpbnVlOyAKCSAgJHRtcFtdID0gJG47Cgl9CglpZiggIWlzX2FycmF5KCR0bXApIHx8ICFjb3VudCgkdG1wKSApIHJldHVybjsKCXNvcnQoJHRtcCk7CgkkaWRsaXN0ID0gYXJyYXlfdW5pcXVlKCR0bXApOwoKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIGZ2LiogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIGZ2IFdIRVJFIGZ2LmNvbXBhbnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkbGlzdCkuJykgT1JERVIgQlkgZnYuY29tcGFueV9pZCxmdi5maWVsZGRlZl9pZCc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CglpZiggISRkYnIgKSByZXR1cm47CgoJaWYoICFpc19hcnJheShzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkKSApIHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWQgPSBhcnJheSgpOwoJJGZpZWxkZGVmcyA9IHNlbGY6OmdldF9maWVsZGRlZnModHJ1ZSx0cnVlKTsKCSAgCgkvLyBpbml0aWFsaXphdGlvbgoJZm9yZWFjaCggJGlkbGlzdCBhcyAkY29tcGlkICkgewoJICBpZiggaXNzZXQoc2VsZjo6JF9maWVsZGluZm9fcHJlbG9hZFskY29tcGlkXSkgKSBjb250aW51ZTsKCSAgCgkgIHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJGNvbXBpZF0gPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmaWVsZCApIHsKCQkkb25lID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJGZpZWxkKTsKCQkkb25lLT5maWVsZGRlZl9pZCA9ICRmaWVsZFsnaWQnXTsKCQlzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRjb21waWRdWyRmaWVsZFsnaWQnXV0gPSAkb25lOwoJICB9Cgl9CgoJLy8gZmlsbCB3aXRoIHZhbHVlcy4KCXdoaWxlKCAhJGRici0+RU9GICkgewoJICAkY29tcGlkID0gJGRici0+ZmllbGRzWydjb21wYW55X2lkJ107CgkgICRmbGRkZWZpZCA9ICRkYnItPmZpZWxkc1snZmllbGRkZWZfaWQnXTsKCSAgJHZhbHVlID0gJGRici0+ZmllbGRzWyd2YWx1ZSddOwoJICAKCSAgaWYoIHNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJGNvbXBpZF1bJGZsZGRlZmlkXS0+dHlwZSA9PSAnbXVsdGlzZWxlY3QnICkgewoJCXNlbGY6OiRfZmllbGRpbmZvX3ByZWxvYWRbJGNvbXBpZF1bJGZsZGRlZmlkXS0+c2VsZWN0ZWQgPSBleHBsb2RlKCd+ficsJHZhbHVlKTsKCSAgfQoJICBzZWxmOjokX2ZpZWxkaW5mb19wcmVsb2FkWyRjb21waWRdWyRmbGRkZWZpZF0tPnZhbHVlID0gJHZhbHVlOwoJICAkZGJyLT5Nb3ZlTmV4dCgpOwoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfc2VsY2F0ZWdvcnkoJHBhcmFtcywkc21hcnR5KQogIHsKCSRwcmVmaXggPSAnJzsKCSRpZCA9ICcnOwoJJG5hbWUgPSAnY2Rfc2VsY2F0ZWdvcnknOwogICAgJGNsYXNzID0gJ2NkX3NlbGNhdGVnb3J5JzsKCSRtdWx0aXBsZSA9ICcnOwoJJHNpemUgPSAnJzsKCSRzZWxlY3RlZCA9IGFycmF5KCk7CgoJaWYoIGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSApICRwcmVmaXggPSB0cmltKCRwYXJhbXNbJ3ByZWZpeCddKTsKCWlmKCBpc3NldCgkcGFyYW1zWydpZCddKSApICRpZCA9IHRyaW0oJHBhcmFtc1snaWQnXSk7CglpZiggaXNzZXQoJHBhcmFtc1snbmFtZSddKSApICRuYW1lID0gdHJpbSgkcGFyYW1zWyduYW1lJ10pOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ3NlbGVjdGVkJ10pICkgewoJICAkZGF0ID0gJHBhcmFtc1snc2VsZWN0ZWQnXTsKCSAgaWYoICFpc19hcnJheSgkZGF0KSApICRkYXQgPSBleHBsb2RlKCcsJywkZGF0KTsKCSAgJGRhdDIgPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkZGF0IGFzICRvbmUgKSB7CgkJJG9uZSA9IChpbnQpJG9uZTsKCQlpZiggJG9uZSA+IDAgKSAkZGF0MltdID0gJG9uZTsKCSAgfQoJICAkc2VsZWN0ZWQgPSAkZGF0MjsKCX0KCWlmKCBpc3NldCgkcGFyYW1zWydjbGFzcyddKSApICRjbGFzcyAuPSAnICcudHJpbSgkcGFyYW1zWydjbGFzcyddKTsKCWlmKCBpc3NldCgkcGFyYW1zWydtdWx0aXBsZSddKSApIHsKCSAgJG11bHRpcGxlID0gJ211bHRpcGxlJzsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NpemUnXSkgKSB7CgkJJHNpemUgPSAoaW50KXRyaW0oJHBhcmFtc1snc2l6ZSddKTsKCQlpZiggJHNpemUgPD0gMCApICRzaXplID0gJyc7CgkgIH0KCX0KCQoJLy8gZ2V0IHRoZSBjYXRlZ29yaWVzLgoJJGNhdHMgPSBzZWxmOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKCWlmKCAhaXNfYXJyYXkoJGNhdHMpIHx8IGNvdW50KCRjYXRzKSA9PSAwICkgcmV0dXJuOwoKCS8vIGFkanVzdG1lbnRzCglpZiggJHNpemUgIT0gJycgKSAkc2l6ZSA9IG1pbigkc2l6ZSxjb3VudCgkY2F0cykpOwoKCSRvdXRuYW1lID0gJHByZWZpeC4kbmFtZTsKCWlmKCAkbXVsdGlwbGUgIT0gJycgKSAkb3V0bmFtZSAuPSAnW10nOwoKCS8vIGJ1aWxkIHRoZSBvdXRwdXQuCgkkb3V0ID0gJzxzZWxlY3QgbmFtZT0iJy4kb3V0bmFtZS4nIic7CiAgICBpZiggJGNsYXNzICkgJG91dCAuPSAnIGNsYXNzPSInLiRjbGFzcy4nIic7CiAgICBpZiggJGlkICkgJG91dCAuPSAnIGlkPSInLiRpZC4nIic7CiAgICBpZiggJG11bHRpcGxlICE9ICcnICkgewoJICAkb3V0IC49ICcgbXVsdGlwbGU9Im11bHRpcGxlIic7CgkgIGlmKCAkc2l6ZSApICRvdXQgLj0gJyBzaXplPSInLiRzaXplLiciJzsKCX0KCSRvdXQgLj0gJz4nOwogICAgZm9yZWFjaCggJGNhdHMgYXMgJGlkID0+ICRyZWMgKSB7CgkgICRvdXQgLj0gJzxvcHRpb24gdmFsdWU9IicuJGlkLiciJzsKICAgICAgaWYoIGluX2FycmF5KCRpZCwkc2VsZWN0ZWQpICkgJG91dCAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOwogICAgICAkb3V0IC49ICc+Jy4kcmVjLT5uYW1lLic8L29wdGlvbj4nOwoJfQogICAgJG91dCAuPSAnPC9zZWxlY3Q+JzsKCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG91dCk7CgkgIHJldHVybjsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfc2VsaGllcmFyY2h5KCRwYXJhbXMsJHNtYXJ0eSkKICB7CgkkcHJlZml4ID0gJyc7CgkkaWQgPSAnJzsKCSRuYW1lID0gJ2NkX3NlbGhpZXJhcmNoeSc7CgkkY2xhc3MgPSAnY2Rfc2VsaGllcmFyY2h5JzsKCSRzZWxlY3RlZCA9ICcnOwoJJG5vbmUgPSAxOwoKCWlmKCBpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkgKSAkcHJlZml4ID0gdHJpbSgkcGFyYW1zWydwcmVmaXgnXSk7CglpZiggaXNzZXQoJHBhcmFtc1snaWQnXSkgKSAkaWQgPSB0cmltKCRwYXJhbXNbJ2lkJ10pOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgKSAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKCWlmKCBpc3NldCgkcGFyYW1zWydzZWxlY3RlZCddKSApICRzZWxlY3RlZCA9IHRyaW0oJHBhcmFtc1snc2VsZWN0ZWQnXSk7CglpZiggaXNzZXQoJHBhcmFtc1snbm9uZSddKSApICRub25lID0gKGludCkkcGFyYW1zWydub25lJ107CgoJLy8gZ2V0IHRoZSBoaWVyYXJjaHkgYXMgYSBmbGF0IGxpc3QuCgkkaXRlbXMgPSBzZWxmOjpnZXRfaGllcmFyY2h5X2xpc3QoLTEsJG5vbmUpOwoJaWYoICFpc19hcnJheSgkaXRlbXMpIHx8IGNvdW50KCRpdGVtcykgPT0gMCApIHJldHVybjsKCSRpdGVtcyA9IGFycmF5X2ZsaXAoJGl0ZW1zKTsKCgkvLyBidWlsZCB0aGUgb3V0cHV0LgoJJG91dCA9ICc8c2VsZWN0IG5hbWU9IicuJHByZWZpeC4kbmFtZS4nIic7CiAgICBpZiggJGNsYXNzICkgJG91dCAuPSAnIGNsYXNzPSInLiRjbGFzcy4nIic7CiAgICBpZiggJGlkICkgJG91dCAuPSAnIGlkPSInLiRpZC4nIic7Cgkkb3V0IC49ICc+JzsKCWZvcmVhY2goICRpdGVtcyBhcyAkaWQgPT4gJGxhYmVsICkgewoJICAkb3V0IC49ICc8b3B0aW9uIHZhbHVlPSInLiRpZC4nIic7CgkgIGlmKCAkaWQgPT0gJHNlbGVjdGVkICkgJG91dCAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOwoJICAkb3V0IC49ICc+Jy4kbGFiZWwuJzwvb3B0aW9uPic7Cgl9Cgkkb3V0IC49ICc8L3NlbGVjdD4nOwoKCWlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CgkgICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkb3V0KTsKCSAgcmV0dXJuOwoJfQoJcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNtYXJ0eV9pbml0anMoJHBhcmFtcywkc21hcnR5KQogIHsKCXN0YXRpYyAkY250ID0gMDsKCglpZiggJGNudCA9PSAwICkgewoJICAkY250Kys7CgkgICRjb21wZGlyID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CgkgICRzY3JpcHR1cmwgPSAkY29tcGRpci0+R2V0TW9kdWxlVVJMUGF0aCgpLicvbGliL2pxdWVyeS5jb21wZGlyLmpzJzsKCSAgJGFqYXhfdXJsID0gJGNvbXBkaXItPmNyZWF0ZV91cmwoJ2NudG50MDEnLCdhamF4X3NlbGNvbXBhbnknKS4nJmFtcDtzaG93dGVtcGxhdGU9ZmFsc2UnOwoJICAkYWpheF91cmwgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkYWpheF91cmwpOwoKCSAgJHR4dCA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGNvbXBkaXJfY2hvb3NlY29tcGFueV9hamF4X3VybCA9ICInLiRhamF4X3VybC4nIjs8L3NjcmlwdD4nLiJcbiI7CgkgICR0eHQgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicuJHNjcmlwdHVybC4nIj48L3NjcmlwdD4nLiJcbiI7CgoJICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJCSRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkdHh0KTsKCQlyZXR1cm47CgkgIH0KCSAgcmV0dXJuICR0eHQ7Cgl9CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNtYXJ0eV9nZXRjb21wYW55KCRwYXJhbXMsJHNtYXJ0eSkKICB7CglpZiggIWlzc2V0KCRwYXJhbXNbJ2lkJ10pICkgcmV0dXJuOwoKCSRjb21wYW55ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KChpbnQpJHBhcmFtc1snaWQnXSwtMSxUUlVFKTsKCWlmKCBpc19vYmplY3QoJGNvbXBhbnkpICkgewoJICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJCSRzbWFydHktPmFzc2lnbih0cmltKCRwYXJhbXNbJ2Fzc2lnbiddKSwkY29tcGFueSk7CgkJcmV0dXJuOwoJICB9CgkgIHJldHVybiAkY29tcGFueTsKCX0KICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc21hcnR5X2hpZXJicmVhZGNydW1iKCRwYXJhbXMsJHNtYXJ0eSkKICB7CgkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DT01QQU5ZRElSRUNUT1JZKTsKCSRkZWxpbWl0ZXIgPSAnIHwgJzsKCSRyYXcgPSAwOwkKCSRoaWVyID0gLTE7CgkkcGFnZSA9ICRzbWFydHktPmdldF90ZW1wbGF0ZV92YXJzKCdwYWdlX2lkJyk7CgkkY2xhc3MgPSBudWxsOwoJJGFzc2lnbiA9IG51bGw7CgkkdXJscGFybXMgPSBhcnJheSgpOwoJCglmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewoJICBzd2l0Y2goICRrZXkgKSB7CgkgIGNhc2UgJ3Jhdyc6CgkJJHJhdyA9IGNtc190b19ib29sKCR2YWx1ZSk7CgkJYnJlYWs7CgkgIGNhc2UgJ2hpZXInOgoJCSRoaWVyID0gKGludCkkdmFsdWU7CgkJYnJlYWs7CgkgIGNhc2UgJ2RlbGltJzoKCQkkZGVsaW1pdGVyID0gJHZhbHVlOwoJCWJyZWFrOwoJICBjYXNlICdjbGFzcyc6CgkJJGNsYXNzID0gJHZhbHVlOwoJCWJyZWFrOwoJICBjYXNlICdhc3NpZ24nOgoJCSRhc3NpZ24gPSAkdmFsdWU7CgkJYnJlYWs7CgkgIGNhc2UgJ3BhZ2UnOgoJCSRwYWdlID0gdHJpbSgkdmFsdWUpOwoJCWJyZWFrOwoJICBkZWZhdWx0OgoJCSR1cmxwYXJtc1ska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKCSAgfQoJfQoKCWlmKCAkaGllciA8IDEgKSByZXR1cm47CgoJJHBhZ2UgPSAoaW50KSRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhZ2UpOwoJaWYoICRwYWdlIDwgMSApIHJldHVybjsgLy8gbm90aGluZyB0byBsaW5rIHRvLgoKCS8vIGdldCB0aGUgY29tcGxldGUgcGF0aCB0byB0aGlzIGhpZXJhcmNoeS4KCSRoaWVyZGF0YSA9IGNkX3V0aWxzOjpnZXRfaGllcmFyY2h5KCk7CglpZiggIWlzX2FycmF5KCRoaWVyZGF0YSkgfHwgY291bnQoJGhpZXJkYXRhKSA9PSAwICkgcmV0dXJuOwoKCSRkYXRhID0gYXJyYXkoKTsKCSRmbiA9IGZ1bmN0aW9uKCRpZCkgdXNlICgkaGllcmRhdGEsJiRkYXRhLCYkZm4sJiRtb2QsJHBhZ2UsJHVybHBhcm1zKSB7CgkgIGZvcmVhY2goICRoaWVyZGF0YSBhcyAkb25lICkgewoJCWlmKCAkb25lWydpZCddID09ICRpZCApIHsKCQkgIC8vIGZvdW5kIHRoZSBpdGVtLi4gYnVpbGQgdGhlIHVybAoJCSAgJHVybHBhcm1zWydoaWVyJ10gPSAkaWQ7CgkJICAkb25lWyd1cmwnXSA9ICRtb2QtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCdkZWZhdWx0JywkcGFnZSwkdXJscGFybXMpOwoJCSAgYXJyYXlfdW5zaGlmdCgkZGF0YSwkb25lKTsgLy8gcHVzaCB0aGlzIGl0ZW0gdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LgoJCSAgaWYoICRvbmVbJ3BhcmVudF9pZCddICE9IC0xICkgJGZuKCRvbmVbJ3BhcmVudF9pZCddKTsKCQl9CgkgIH0KCX07CgkkZm4oJGhpZXIpOwoKCWlmKCBjb3VudCgkZGF0YSkgPT0gMCApIHJldHVybjsKCQoJLy8gbm93IGhhdmUgdG8gZGVjaWRlIG9uIG91dHB1dCBmb3JtYXQuCgkkb3V0ID0gbnVsbDsKCWlmKCAkcmF3ID09IEZBTFNFICkgewoJICAvLyBoYXZlIHRvIGJ1aWxkIGxpbmtzLgoJICAkYWRkdGV4dCA9ICcnOwoJICBpZiggJGNsYXNzICkgJGFkZHRleHQ9JyBjbGFzcz0iJy4kY2xhc3MuJyInOwoJICAkdG1wID0gYXJyYXkoKTsKCSAgZm9yZWFjaCggJGRhdGEgYXMgJG9uZSApIHsKCQkkdG1wW10gPSAnPGEgaHJlZj0iJy4kb25lWyd1cmwnXS4nIicuJGFkZHRleHQuJz4nLiRvbmVbJ25hbWUnXS4nPC9hPic7CgkgIH0KCSAgJG91dCA9IGltcGxvZGUoJGRlbGltaXRlciwkdG1wKTsKCX0KCWVsc2UgewoJICAkb3V0ID0gJGRhdGE7Cgl9CgoJaWYoICRhc3NpZ24gKSB7CgkgICRzbWFydHktPmFzc2lnbigkYXNzaWduLCRvdXQpOwoJICByZXR1cm47Cgl9CglyZXR1cm4gJG91dDsKICB9CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9nZW9sb2NhdG9yKCkKICB7CglpZiggc2VsZjo6JF9nZW9sb2NhdG9yICE9IG51bGwgKSByZXR1cm4gc2VsZjo6JF9nZW9sb2NhdG9yOwoKCSRtb2R1bGVfbGlzdCA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9tb2R1bGVzX3dpdGhfY2FwYWJpbGl0eSgnZ2VvbG9jYXRlJyk7CglpZiggaXNfYXJyYXkoJG1vZHVsZV9saXN0KSAmJiBjb3VudCgkbW9kdWxlX2xpc3QpICkgewoJICBmb3JlYWNoKCAkbW9kdWxlX2xpc3QgYXMgJG1uYW1lICkgewoJCSRyZXMgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1uYW1lKTsKCQlpZiggaXNfb2JqZWN0KCRyZXMpICYmIG1ldGhvZF9leGlzdHMoJHJlcywnR2V0SWNvbkxpc3QnKSAmJiBtZXRob2RfZXhpc3RzKCRyZXMsJ0dldEljb25zRnVsbCcpICkgewoJCSAgc2VsZjo6JF9nZW9sb2NhdG9yID0gJHJlczsKCQkgIHJldHVybiAkcmVzOwoJCX0KCSAgfQoJfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5fZ2VvbG9jYXRlKCkKICB7Cgkkb2JqID0gc2VsZjo6Z2V0X2dlb2xvY2F0b3IoKTsKCXJldHVybiBpc19vYmplY3QoJG9iaik7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9pY29uX2xpc3QoKQogIHsKCSRvYmogPSBzZWxmOjpnZXRfZ2VvbG9jYXRvcigpOwoJaWYoICFpc19vYmplY3QoJG9iaikgKSByZXR1cm47CgoJcmV0dXJuICRvYmotPkdldEljb25MaXN0KCk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9pY29uc19mdWxsKCkKICB7Cgkkb2JqID0gc2VsZjo6Z2V0X2dlb2xvY2F0b3IoKTsKCWlmKCAhaXNfb2JqZWN0KCRvYmopICkgcmV0dXJuOwoKCXJldHVybiAkb2JqLT5HZXRJY29uc0Z1bGwoKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VvbG9jYXRlKCRhZGRyZXNzKQogIHsKCWlmKCAhJGFkZHJlc3MgKSByZXR1cm47Cgkkb2JqID0gc2VsZjo6Z2V0X2dlb2xvY2F0b3IoKTsKCWlmKCAhaXNfb2JqZWN0KCRvYmopICkgcmV0dXJuOwoKCXJldHVybiAkb2JqLT5HZXRDb29yZHNGcm9tQWRkcmVzcygkYWRkcmVzcyk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCkKICB7CglzZWxmOjokX2hpZXJhcmNoeSA9IG51bGw7CgkkZGIgPSBjbXNfdXRpbHM6OmdldF9kYigpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxpb3JkZXIscGFyZW50X2lkLG5hbWUsaW9yZGVyIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgT1JERVIgQlkgcGFyZW50X2lkLGlvcmRlcic7CgkkaGllciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCQoJJHVwZGF0ZV9oaWVyID0gZnVuY3Rpb24oJiRoaWVyLCRwYXJlbnRfaWQgPSAtMSwkbG9uZ25hbWUgPSAnJywkaGllcmFyY2h5ID0gJycpIHVzZSAoJiR1cGRhdGVfaGllcikgewoJICBmb3JlYWNoKCAkaGllciBhcyAmJHJvdyApIHsKCQlpZiggJHJvd1sncGFyZW50X2lkJ10gPT0gJHBhcmVudF9pZCApIHsKCQkgICRyb3dbJ2xvbmduYW1lJ10gPSAoJGxvbmduYW1lKSA/ICRsb25nbmFtZS4nIHwgJy4kcm93WyduYW1lJ10gOiAkcm93WyduYW1lJ107CgkJICAkdG1wID0gc3RyX3BhZCgkcm93Wydpb3JkZXInXSw1LCcwJyxTVFJfUEFEX0xFRlQpOwoJCSAgJHJvd1snaGllcmFyY2h5J10gPSAoJGhpZXJhcmNoeSkgPyAkaGllcmFyY2h5LicuJy4kdG1wIDogJHRtcDsKCQkgICR1cGRhdGVfaGllcigkaGllciwkcm93WydpZCddLCRyb3dbJ2xvbmduYW1lJ10sJHJvd1snaGllcmFyY2h5J10pOwoJCX0KCSAgfQoJfTsKCSR1cGRhdGVfaGllcigkaGllcik7CgoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBTRVQgaGllcmFyY2h5ID0gPywgbG9uZ19uYW1lID0gPyBXSEVSRSBpZCA9ID8nOwoJZm9yZWFjaCggJGhpZXIgYXMgJHJvdyApIHsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJvd1snaGllcmFyY2h5J10sJHJvd1snbG9uZ25hbWUnXSwoaW50KSRyb3dbJ2lkJ10pKTsKCX0KICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyDirectoryJQueryUploadHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgtMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBhbmQgdmFyaW91cyB3YXlzIHRvIGRpc3BsYXkKIyAgY29tcGFueSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIGRpcmVjdG9yaWVzIGV0Yy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ29tcGFueURpcmVjdG9yeUpRdWVyeVVwbG9hZEhhbmRsZXIgZXh0ZW5kcyBjZF9qcXVlcnlfdXBsb2FkX2hhbmRsZXIgCnsKICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkb3B0aW9ucz1udWxsKSAKICB7CiAgICBpZiggIWlzX2FycmF5KCRvcHRpb25zKSApIHsKICAgICAgJG9wdGlvbnMgPSBhcnJheSgpOwogICAgfQoJaWYoICFpc3NldCgkb3B0aW9uc1snYWNjZXB0X2ZpbGVfdHlwZXMnXSkgJiYgaXNzZXQoJG9wdGlvbnNbJ2ZkaWQnXSkgKSB7CgkgICRmaWVsZGRlZnMgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmc19ieV9pZChUUlVFLFRSVUUpOwoJICBpZiggaXNzZXQoJGZpZWxkZGVmc1skb3B0aW9uc1snZmRpZCddXSkgKSB7CgkJJGRhdGEgPSAkZmllbGRkZWZzWyRvcHRpb25zWydmZGlkJ11dWydkYXRhJ107CgkJaWYoICRkYXRhICkgewoJCSAgJGV4dHMgPSBleHBsb2RlKCcsJywkZGF0YSk7CgkJICAkc3RyID0gJy9cLignLmltcGxvZGUoJ3wnLCRleHRzKS4nKSQvaSc7CgkJICAkb3B0aW9uc1snYWNjZXB0X2ZpbGVfdHlwZXMnXSA9ICRzdHI7CgkJfQoJICB9Cgl9CiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRvcHRpb25zKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBhZnRlcl91cGxvYWRlZF9maWxlKCYkZmlsZW9iamVjdCkKICB7CglpZiggIWlzc2V0KCRmaWxlb2JqZWN0LT5lcnJvcikgfHwgJGZpbGVvYmplY3QtPmVycm9yID09ICcnICkgewoJICAkdGhlX2NvbXBhbnkgPSBudWxsOwoJICBpZiggaXNzZXQoJHRoaXMtPm9wdGlvbnNbJ2NvbXBhbnknXSkgJiYgaXNfb2JqZWN0KCR0aGlzLT5vcHRpb25zWydjb21wYW55J10pICkgewoJCSR0aGVfY29tcGFueSA9JiAkdGhpcy0+b3B0aW9uc1snY29tcGFueSddOwoJICB9CgkgIGVsc2UgewoJCSR0aGVfY29tcGFueSA9IGNkX2NvbXBhbnk6OmxvYWRfYnlfaWQoJHRoaXMtPm9wdGlvbnNbJ2NvbXBpZCddLFRSVUUpOwoJICB9CgkgIGlmKCAhaXNfb2JqZWN0KCR0aGVfY29tcGFueSkgKSByZXR1cm47CgoJICAkdGhlX2NvbXBhbnktPnNldHVwX2ZpZWxkc19hbmRfY2F0cygpOwoJICAkZmllbGQgPSAkdGhlX2NvbXBhbnktPmdldF9maWVsZCgkdGhpcy0+b3B0aW9uc1snZmRpZCddKTsKCSAgJGZpbGVzID0gYXJyYXkoKTsKCSAgaWYoIGlzX29iamVjdCgkZmllbGQpICYmIGlzc2V0KCRmaWVsZC0+dmFsdWUpICYmICRmaWVsZC0+dmFsdWUgKSB7CgkJJGZpbGVzID0gdW5zZXJpYWxpemUoJGZpZWxkLT52YWx1ZSk7CSAgCgkgIH0KCgkgIGlmKCAhaW5fYXJyYXkoJGZpbGVvYmplY3QtPm5hbWUsJGZpbGVzKSApIHsKCQkkZmlsZXNbXSA9ICRmaWxlb2JqZWN0LT5uYW1lOwoJCSR0aGVfY29tcGFueS0+c2V0X2ZpZWxkKCR0aGlzLT5vcHRpb25zWydmZGlkJ10sc2VyaWFsaXplKCRmaWxlcykpOwoJCWlmKCAhaXNzZXQoJHRoaXMtPm9wdGlvbnNbJ25vc2F2ZSddKSApIHsKCQkgICR0aGVfY29tcGFueS0+c2F2ZSgpOwoJCX0KCSAgfQoJfQogICAgdW5zZXQoJGZpbGVvYmplY3QtPmRlbGV0ZV91cmwpOwogICAgdW5zZXQoJGZpbGVvYmplY3QtPmRlbGV0ZV90eXBlKTsKICB9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.compdir.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gZW5jYXBzdWxhdGUgdGhlIGpxdWVyeSB1aSBhdXRvY29tcGxldGUgc3R1ZmYuCihmdW5jdGlvbigkKSB7CiAgJC5mbi5jb21wZGlyX2Nob29zZWNvbXBhbnkgPSBmdW5jdGlvbihvcHRpb25zKSB7CiAgICB2YXIgb3B0cyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmNvbXBkaXJfY2hvb3NlY29tcGFueS5kZWZhdWx0cywgb3B0aW9ucyk7CgogICAgdmFyIGNudCA9IDE7CiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkdGhpcyA9ICQodGhpcyk7CgogICAgICBpZiggJHRoaXMuaXMoJ2lucHV0JykgJiYgJHRoaXMuYXR0cigndHlwZScpID09ICd0ZXh0JyApIHsKICAgICAgICAvLyBjcmVhdGUgYSBoaWRkZW4gZG9tIGVsZW1lbnQuLi4KICAgICAgICAvLyBtb3ZlcyB0aGUgbmFtZSBmcm9tIHRoZSBzZWxlY3RlZCBlbGVtZW50CiAgICAgICAgLy8gdXNlcyB0aGUgdmFsdWUgZnJvbSB0aGUgc2VsZWN0ZWQgZWxlbWVudC4KICAgICAgICB2YXIgbmFtZSA9ICR0aGlzLmF0dHIoJ25hbWUnKTsKICAgICAgICBpZCA9ICdjZF9zZWxjb21wYW55JytjbnQ7CiAgICAgICAgY250Kys7CiAgICAgICAgdmFyIHZhbCA9ICR0aGlzLnZhbCgpOwoJdmFyIHN0ciA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iJyt2YWwrJyInOwoJaWYoIG5hbWUubGVuZ3RoID4gMCApIHN0ciArPSAnIG5hbWU9IicrbmFtZSsnIic7CglpZiggaWQubGVuZ3RoID4gMCApIHN0ciArPSAnIGlkPSInK2lkKyciJzsKICAgICAgICBzdHIgKz0gJy8+JzsKCgl2YXIgYmVmID0gJHRoaXMuYmVmb3JlKHN0cik7CgkkdGhpcy5yZW1vdmVBdHRyKCduYW1lJyk7CiAgICAgIAoJLy8gZG8gYW4gYWpheCByZXF1ZXN0IHRvIGdldCB0aGUgY29tcGFueSAnbmFtZScgZ2l2ZW4gdGhlIGlkCglpZiggdmFsLmxlbmd0aCA+IDAgKSB7CiAgCSAgJC5hamF4KHsKICAgICAgICAgICAgdHlwZTogJ1BPU1QnLAogICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLAogICAgICAgICAgICB1cmw6IG9wdHMuYWpheF91cmwsCiAgICAgICAgICAgIGRhdGE6IHsKCSAgICAgIGNvbXBpZDogdmFsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAkdGhpcy52YWwoZGF0YSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gLy8gdGhlcmUgaXMgYSB2YWx1ZS4KCgkvLyBlbmFibGUganF1ZXJ5IHVpIGF1dG9jb21wbGV0ZQogICAgICAgICR0aGlzLmF1dG9jb21wbGV0ZSh7CiAgICAgICAgICBzZWxlY3Q6IGZ1bmN0aW9uKGV2ZW50LHVpKSB7CgkgICAgICAkdGhpcy5wcmV2KCkudmFsKHVpLml0ZW0udmFsdWUpOwogICAgICAgICAgICAgICR0aGlzLnZhbCh1aS5pdGVtLmxhYmVsKTsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9LAoJICBzb3VyY2U6IGZ1bmN0aW9uKHJlcSxyZXNwb25zZSkgewogICAgICAgICAgICAkLmFqYXgoewoJICAgICAgdHlwZTogJ1BPU1QnLAogICAgICAgICAgICAgIGRhdGFUeXBlOiAnanNvbicsCiAgICAgICAgICAgICAgdXJsOiBvcHRzLmFqYXhfdXJsLAogICAgICAgICAgICAgIGRhdGE6IHsKICAgICAgICAgICAgICAgIHRlcm06IHJlcS50ZXJtLAogICAgICAgICAgICAgICAgbW9kZTogb3B0cy5tb2RlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICByZXNwb25zZShkYXRhKTsKCSAgICAgIH0sCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0pOyAvLyBhdXRvY29tcGxldGUKCiAgICAgIH0gLy8gZm9yIG9ubHkgdGV4dCBpbnB1dCBmaWVsZHMuCiAgICB9KTsgLy8gZWFjaAogIH0KCiAgLy8gcGx1Z2luIGRlZmF1bHRzCiAgJC5mbi5jb21wZGlyX2Nob29zZWNvbXBhbnkuZGVmYXVsdHMgPSB7CiAgICBhamF4X3VybDogY29tcGRpcl9jaG9vc2Vjb21wYW55X2FqYXhfdXJsLAogICAgbW9kZTogICAgICdhbnknCiAgfTsKCn0pKGpRdWVyeSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0gJGNtc21zKCktPkdldERiKCk7CgokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCWNvbXBhbnlfbmFtZSBDKDI1NSkgTk9UIE5VTEwsCglhZGRyZXNzIFgsCgl0ZWxlcGhvbmUgQyg1MCksCglmYXggQyg1MCksCgljb250YWN0X2VtYWlsIEMoMjU1KSwKCXdlYnNpdGUgQygyNTUpLAoJZGV0YWlscyBYLAoJcGljdHVyZV9sb2NhdGlvbiBDKDI1NSksCglsb2dvX2xvY2F0aW9uIEMoMjU1KSwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKICAgIHN0YXR1cyBDKDUwKSwKICAgIGxhdGl0dWRlIEYsCiAgICBsb25naXR1ZGUgRiwKICAgIG93bmVyX2lkIEksCiAgICBoaWVyX2lkIEksCiAgICB1cmwgQygyNTUpCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPLAoJbmFtZSBDKDI1NSkgTk9UIE5VTEwsCiAgICBpbWFnZSAgQygyNTUpLAogICAgZGVzY3JpcHRpb24gWCwKICAgIGlvcmRlciBJLAogICAgZXh0cmExICBDKDI1NSksCiAgICBleHRyYTIgIEMoMjU1KSwKICAgIGV4dHJhMyAgQygyNTUpLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIiwkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiCgljb21wYW55X2lkIEkgS0VZIE5PVCBOVUxMLAoJY2F0ZWdvcnlfaWQgSSBLRVkgTk9UIE5VTEwsCiAgICBleHRyYTEgQygyNTUpLAogICAgZXh0cmEyIEMoMjU1KSwKICAgIGV4dHJhMyBDKDI1NSksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSBOT1QgTlVMTCwKCXR5cGUgQyg1MCksCgltYXhfbGVuZ3RoIEksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCiAgICBpdGVtX29yZGVyIEksCiAgICBhZG1pbl9vbmx5IEksCiAgICBwdWJsaWMgSSwKICAgIGRyb3Bkb3duX2RhdGEgWCwKICAgIGRhdGEgWAoiOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJY29tcGFueV9pZCBJIEtFWSBOT1QgTlVMTCwKCWZpZWxkZGVmX2lkIEkgS0VZIE5PVCBOVUxMLAoJdmFsdWUgWCwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIgoiOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWNvbXBhbnlfaWQgSSBLRVkgTk9UIE5VTEwsCglkYXRlX3NlYXJjaGVkICIuQ01TX0FET0RCX0RULiIgTk9UIE5VTEwsCiAgICBwb3N0Y29kZSBDKDIwKQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0cyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSwKCXBhcmVudF9pZCBJLAogICAgaW9yZGVyIEksCgloaWVyYXJjaHkgQygyNTUpLAoJbG9uZ19uYW1lIFgKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfaGllciIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojIEluZGV4ZXMKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NvbXBfbmFtZScsIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnY29tcGFueV9uYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jYXRnX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsJ25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NhdGdfaW9yZGVyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMnLCdpb3JkZXInKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NvbXBjYXQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzJywnY2F0ZWdvcnlfaWQsY29tcGFueV9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NvbXBkaXJfZmllbGRkZWYnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJywnbmFtZSxpZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX3N0YXR1cycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdzdGF0dXMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX3VybCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCd1cmwnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX3VybDInLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnc3RhdHVzLHVybCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2NvbXBfaGllcicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdoaWVyX2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJywnbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2ZsZF9vcmRlcicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCdpdGVtX29yZGVyJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX3B1YmxpYycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCdwdWJsaWMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKIwojIFRlbXBsYXRlcwojCgoKIyBTZXR1cCBzdW1tYXJ5IHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3N1bW1hcnlfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCiMgU2V0dXAgZGV0YWlsIHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKIyBTZXR1cCBkZWZhdWx0IGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhdGVnb3J5bGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRlZmF1bHQgaGllcmFyY2h5IGxpc3QgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19oaWVybGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0hJRVJMSVNUX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdoaWVybGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRISUVSTElTVF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCiMgU2V0dXAgZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3NlYXJjaGZvcm1fdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdTRUFSQ0hGT1JNX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdzZWFyY2hmb3JtX1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNFQVJDSEZPUk1fVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRlZmF1bHQgZnJvbnQgZW5kIGZvcm0gdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGZvcm1fdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVOREZPUk1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Zyb250ZW5kZm9ybV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREZPUk1fVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRlZmF1bHQgZnJvbnQgZW5kIGxpc3QgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGxpc3RfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdGUk9OVEVORExJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Zyb250ZW5kbGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVORExJU1RfVEVNUExBVEUsJ1NhbXBsZScpOwp9CgojIFNldHVwIGRlZmF1bHQgZnJvbnQgZW5kIGZvcm0gdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19mcm9udGVuZGFsYnVtX3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfTkVXRlJPTlRFTkRBTEJVTV9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRhbGJ1bV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX0RGTFRGUk9OVEVOREFMQlVNX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKIyBTZXR1cCBkZWZhdWx0IGZyb250ZW5kIGltcG9ydCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwkdGVtcGxhdGUpOwp9CgokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX25ld3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9TRUFSQ0hGT1JNX1NZREZMVFRFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCduZXdzZWFyY2hfU2FtcGxlJywkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfU0VBUkNIRk9STV9ERkxUVEVNUExBVEVOQU1FLCdTYW1wbGUnKTsKfQoKCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlLnRwbCc7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkgewogICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3RlbXBsYXRlJywkdGVtcGxhdGUpOwp9CgojU2V0IFBlcm1pc3Npb24KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScsICdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKTsKCiMgUHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9kZWxpbWV0ZXInLCd8Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfZmllbGRkZWZzJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZHZhbHMnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5ZGVmcycsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnl2YWxzJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9sb29rdXBsYXRsb25nJywwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jaGVja2R1cGxpY2F0ZXMnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fZmVlZGl0X2VtYWlsX3N1YmplY3QnLCR0aGlzLT5MYW5nKCdmZWVkaXRfZW1haWxfc3ViamVjdCcpKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX2ZlZWRpdF9lbWFpbF9pc2h0bWwnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZWRpdG9yMicsMSk7CgojIEV2ZW50cwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uQWRkQ29tcGFueScpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uRGVsZXRlQ29tcGFueScpOwokdGhpcy0+Q3JlYXRlRVZlbnQoJ09uRWRpdENvbXBhbnknKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpOwoKJHRoaXMtPlJlbW92ZUV2ZW50KCdPbkFkZENvbXBhbnknKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdPbkVkaXRDb21wYW55Jyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnT25EZWxldGVDb21wYW55Jyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBDb21wYW55RGlyZWN0b3J5IChjKSAyMDA0LTYgYnkgVGVkIEt1bHAgKHRlZEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgCiMgIENvcHlyaWdodCAyMDA2LDIwMDgsMjAwOSwyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0gJHRoaXMtPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoKc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pCnsKIGNhc2UgIjEuMC40IjoKICAgewogICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMiLCAiaXRlbV9vcmRlciBJIik7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgIAogICAgICRjb3VudCA9IDA7CiAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJyk7CiAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICAgewoJICRkYi0+RXhlY3V0ZSgnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gPyBXSEVSRSBpZCA9ID8nLCBhcnJheSgkY291bnQsICRyb3dbJ2lkJ10pKTsKCSAkY291bnQrKzsKICAgICAgIH0KICAgfQogICAKIGNhc2UgIjEuMC41IjoKICAgewogICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMiLCAidXNlcl9lZGl0YWJsZSBJLCB1c2VyX3ZpZXdhYmxlIEkiKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyIsICJzdGF0dXMgQyg1MCkiKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgJGRiLT5FeGVjdXRlKCAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgU0VUIGFkbWluX29ubHkgPSAxLCBwdWJsaWMgPSAxJyApOwogICAKICAgICAvLyBjb252ZXJ0IGRpc3BsYXlzdW1tYXJ5IHRvIHN1bW1hcnlfYmxhaCBhbmQgbWFyayBpdCBhcyBkZWZhdWx0CiAgICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCdkaXNwbGF5c3VtbWFyeScpOwogICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc3VtbWFyeV9fZGZsdCcsJHRlbXBsYXRlKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUsJ19kZmx0Jyk7CiAgICAgJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCdkaXNwbGF5c3VtbWFyeScpOwogICAKICAgICAvLyBjb252ZXJ0IGRpc3BsYXlkZXRhaWwgdG8gZGV0YWlsX2JsYWggYW5kIG1hcmsgaXQgYXMgZGVmYXVsdAogICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgnZGlzcGxheWRldGFpbCcpOwogICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZGV0YWlsX19kZmx0JywkdGVtcGxhdGUpOwogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCdfZGZsdCcpOwogICAgICR0aGlzLT5EZWxldGVUZW1wbGF0ZSgnZGlzcGxheWRldGFpbCcpOwogICAKICAgICAvLyBTZXR1cCBkZWZhdWx0IGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgIHsKCSAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwoJICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKCSAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwnU2FtcGxlJyk7CiAgICAgICB9CiAgIAogICAgIC8vIFNldHVwIGRlZmF1bHQgZnJvbnQgZW5kIGZvcm0gdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kZm9ybV90ZW1wbGF0ZS50cGwnKTsKICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgIHsKCSAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ERk9STV9URU1QTEFURSwkdGVtcGxhdGUpOwoJICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRmb3JtX1NhbXBsZScsJHRlbXBsYXRlKTsKCSAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ERk9STV9URU1QTEFURSwnU2FtcGxlJyk7CiAgICAgICB9CiAgIH0KCiBjYXNlICcxLjEuNic6CiAgIHsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJywnZHJvcGRvd25fZGF0YSBYJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jb21wX25hbWUnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywKCQkJCSAgICAgICAnY29tcGFueV9uYW1lJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jYXRnX25hbWUnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsCgkJCQkgICAgICAgJ25hbWUnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NvbXBjYXQnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzJywKCQkJCSAgICAgICAnY2F0ZWdvcnlfaWQsY29tcGFueV9pZCcpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NvbXBkaXJfZmllbGRkZWYnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9maWVsZGRlZnMnLAoJCQkJICAgICAgICduYW1lLGlkJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICB9CgogY2FzZSAnMS4xLjcnOgogICB7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9zdGF0dXMnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywKCQkJCSAgICAgICAnc3RhdHVzJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2ZsZF9uYW1lJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsCgkJCQkgICAgICAgJ25hbWUnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgIAogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX29yZGVyJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsCgkJCQkgICAgICAgJ2l0ZW1fb3JkZXInKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgIAogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX3B1YmxpYycsCgkJCQkgICAgICAgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLAoJCQkJICAgICAgICdwdWJsaWMnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgIH0KCiBjYXNlICcxLjEuNyc6CiBjYXNlICcxLjEuOCc6CiAgIHsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnbGF0aXR1ZGUgRiwgbG9uZ2l0dWRlIEYsb3duZXJfaWQgSScpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfY29vcmRzJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsCgkJCQkgICAgICAgJ2xhdGl0dWRlLCBsb25naXR1ZGUnKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX293bmVyJywKCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsCgkJCQkgICAgICAgJ293bmVyX2lkJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltZXRlcicsJ3wnKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ZpZWxkZGVmcycsMSk7CiAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZHZhbHMnLDEpOwogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnlkZWZzJywxKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5dmFscycsMSk7CiAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9sb29rdXBsYXRsb25nJywwKTsKICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NoZWNrZHVwbGljYXRlcycsMSk7CgogICAgIC8vIFNldHVwIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3NlYXJjaGZvcm1fdGVtcGxhdGUudHBsJyk7CiAgICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgICB7CgkgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJICR0aGlzLT5TZXRQcmVmZXJlbmNlKENPTVBBTllESVJfUFJFRl9ORVdTRUFSQ0hGT1JNX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkgJHRoaXMtPlNldFRlbXBsYXRlKCdzZWFyY2hmb3JtX1NhbXBsZScsJHRlbXBsYXRlKTsKCSAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVFNFQVJDSEZPUk1fVEVNUExBVEUsJ1NhbXBsZScpOwogICAgICAgfQogICB9CgogY2FzZSAnMS4yJzoKICAgewogICAgICRmbGRzID0gIgoJY29tcGFueV9pZCBJIEtFWSBOT1QgTlVMTCwKCWRhdGVfc2VhcmNoZWQgIi5DTVNfQURPREJfRFQuIiBOT1QgTlVMTCwKICAgICAgICBwb3N0Y29kZSBDKDIwKSI7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHMiLCAKCQkJCSAgICAgICAkZmxkcywgJHRhYm9wdGFycmF5KTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgIH0KCiBjYXNlICcxLjQuMSc6CiAgIHsKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kbGlzdF90ZW1wbGF0ZS50cGwnKTsKICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgIHsKCSAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5ETElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwoJICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKCSAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5ETElTVF9URU1QTEFURSwnU2FtcGxlJyk7CiAgICAgICB9CgogICAgICRmbGRzID0gIgogIAkgICBpZCBJIEtFWSBBVVRPLAoJICAgbmFtZSBDKDI1NSksCiAgCSAgIHBhcmVudF9pZCBJLAoJICAgaGllcmFyY2h5IEMoMjU1KSwKCSAgIGxvbmdfbmFtZSBYCiAgICAgIjsKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY29tcGRpcl9oaWVyIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnaGllcl9pZCBJJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgfQoKIGNhc2UgJzEuNSc6CiAgIHsKICAgICAjIFNldHVwIGRlZmF1bHQgaGllcmFyY2h5IGxpc3QgdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2hpZXJsaXN0X3RlbXBsYXRlLnRwbCcpOwogICAgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogICAgICAgewoJICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCSAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfTkVXSElFUkxJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKCSAkdGhpcy0+U2V0VGVtcGxhdGUoJ2hpZXJsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKCSAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEhJRVJMSVNUX1RFTVBMQVRFLCdTYW1wbGUnKTsKICAgICAgIH0KICAgfQoKIGNhc2UgJzEuNS4xJzoKICAgewogICAgICMgU2V0dXAgZGVmYXVsdCBmcm9udGVuZCBpbXBvcnQgdGVtcGxhdGUKICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Zyb250ZW5kaW1wb3J0X3RlbXBsYXRlLnRwbCcpOwogICAgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogICAgICAgewoJICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCSAkdGhpcy0+U2V0VGVtcGxhdGUoQ09NUEFOWURJUl9GUk9OVEVORElNUE9SVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgICAgfQogICB9CgogY2FzZSAnMS41LjInOgogY2FzZSAnMS41LjMnOgogY2FzZSAnMS41LjQnOgogY2FzZSAnMS41LjUnOgogY2FzZSAnMS41LjYnOgogY2FzZSAnMS41LjcnOgogY2FzZSAnMS41LjgnOgogY2FzZSAnMS42JzoKICAgewogICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywKCQkJCSAgICAgJ2V4dHJhMSBDKDI1NSksIGV4dHJhMiBDKDI1NSksIGV4dHJhMyBDKDI1NSknKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgIH0KCiBjYXNlICcxLjYuMSc6CiBjYXNlICcxLjYuMic6CiBjYXNlICcxLjYuMyc6CiBjYXNlICcxLjYuNCc6CiBjYXNlICcxLjcnOgogY2FzZSAnMS43LjEnOgogY2FzZSAnMS43LjInOgogICB7CiAgICAgLy8gY29waWVkIGZyb20gYWJvdmUgdG8gc29sdmUgYW4gaXNzdWUuLi4gc2hvdWxkIHNpbGVudGx5IGZhaWwgaWYgZmllbGRzIGFscmVhZHkgZXhpc3QnOwogICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdsYXRpdHVkZSBGLCBsb25naXR1ZGUgRixvd25lcl9pZCBJLGhpZXJfaWQgSScpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgICAKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2ZsZF9jb29yZHMnLAoJCQkJICAgICAgIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywKCQkJCSAgICAgICAnbGF0aXR1ZGUsIGxvbmdpdHVkZScpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgICAKICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2ZsZF9vd25lcicsCgkJCQkgICAgICAgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLAoJCQkJICAgICAgICdvd25lcl9pZCcpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgLy8gbmV3IHN0dWZmLi4uLgogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfc3ViamVjdCcsJHRoaXMtPkxhbmcoJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0JykpOwogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9mZWVkaXRfZW1haWxfaXNodG1sJywxKTsKCiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcycsCgkJCQkgICAgICdleHRyYTEgQygyNTUpLCBleHRyYTIgQygyNTUpLCBleHRyYTMgQygyNTUpJyk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9vcmlnX2FkbWluX2ZlZWRpdF9lbWFpbF90ZW1wbGF0ZS50cGwnOwogICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgewoJICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2FkbWluX2ZlZWRpdF9lbWFpbF90ZW1wbGF0ZScsJHRlbXBsYXRlKTsKCSB9CgogICB9CgogY2FzZSAnMS43LjMnOgogewogICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywndXJsIEMoMjU1KScpOwogICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUIHVybCA9ID8nOwogICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCcnKSk7CiB9CiB9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjEyJykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywnaW1hZ2UgQygyNTUpLGRlc2NyaXB0aW9uIFgnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMTMnKSA8IDAgKSB7CiAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsJ2RhdGEgWCcpOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4xNCcpIDwgMCApIHsKICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ09uQWRkQ29tcGFueScpOwogICR0aGlzLT5DcmVhdGVFdmVudCgnT25EZWxldGVDb21wYW55Jyk7CiAgJHRoaXMtPkNyZWF0ZUVWZW50KCdPbkVkaXRDb21wYW55Jyk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMTUnKSA8IDAgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9vbGRzZWFyY2gnLDEpOyAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBzdHVmZi4KCiAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19uZXdzZWFyY2hfdGVtcGxhdGUudHBsJyk7CiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKCSR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZShDT01QQU5ZRElSX1NFQVJDSEZPUk1fU1lTREZMVFRFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ25ld3NlYXJjaF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1NFQVJDSEZPUk1fREZMVFRFTVBMQVRFTkFNRSwnU2FtcGxlJyk7CiAgfQp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE3JykgPCAwICkgewogICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZS50cGwnKTsKICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ09NUEFOWURJUl9QUkVGX05FV0ZST05URU5EQUxCVU1fVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZnJvbnRlbmRhbGJ1bV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDT01QQU5ZRElSX1BSRUZfREZMVEZST05URU5EQUxCVU1fVEVNUExBVEUsJ1NhbXBsZScpOwogIH0KfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4xOScpIDwgMCApIHsKICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsJ2lvcmRlciBJJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkY2F0X2lvcmRlcicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywnaW9yZGVyJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllcicsJ2lvcmRlciBJJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkaGllcl9oaWVyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXInLCdoaWVyYXJjaHknKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgCiAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIE9SREVSIEJZIGNyZWF0ZV9kYXRlIEFTQyc7CiAgJGlkbGlzdCA9ICRkYi0+R2V0Q29sKCRxdWVyeSk7CiAgaWYoIGlzX2FycmF5KCRpZGxpc3QpICYmIGNvdW50KCRpZGxpc3QpICkgewoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyBTRVQgaW9yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwoJJGkgPSAxOwoJZm9yZWFjaCggJGlkbGlzdCBhcyAkb25lICkgewoJICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpKyssKGludCkkb25lKSk7Cgl9CiAgfQoKICAvL2RlYnVnX2Rpc3BsYXkoJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CgogICRxdWVyeSA9ICdTRUxFQ1QgaWQsbmFtZSxwYXJlbnRfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBPUkRFUiBCWSBoaWVyYXJjaHknOwogICRoaWVyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogIGlmKCBpc19hcnJheSgkaGllcikgJiYgY291bnQoJGhpZXIpICkgewogICAgJHVwZGF0ZV9oaWVyb3JkZXIgPSBmdW5jdGlvbigkcGFyZW50X2lkID0gLTEpIHVzZSAoJiR1cGRhdGVfaGllcm9yZGVyLCYkaGllcikgewogICAgICAkaW9yZGVyID0gMTsKICAgICAgZm9yZWFjaCggJGhpZXIgYXMgJiRyb3cgKSB7CiAgICAgICAgaWYoICRyb3dbJ3BhcmVudF9pZCddID09ICRwYXJlbnRfaWQgKSB7CgkJICAkcm93Wydpb3JkZXInXSA9ICRpb3JkZXIrKzsKCQkgICR1cGRhdGVfaGllcm9yZGVyKCRyb3dbJ2lkJ10pOwoJCX0KCSAgfQogICAgfTsKCSR1cGRhdGVfaGllcm9yZGVyKCk7CgoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfaGllciBTRVQgaW9yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwoJZm9yZWFjaCggJGhpZXIgYXMgJHJvdyApIHsKCSAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJvd1snaW9yZGVyJ10sJHJvd1snaWQnXSkpOwoJfQoJY2RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgfQp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE5LjInKSA8IDAgKSB7CiAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX2hpZXInLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnaGllcl9pZCcpOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX3VybCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCd1cmwnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF91cmwyJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsJ3N0YXR1cyx1cmwnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jYXRnX2lvcmRlcicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywnaW9yZGVyJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAvLyBjaGFuZ2VzIHRoZSBoaWVyYXJjaHkgZmllbGQgdG8gdXNlIGl0ZW0gb3JkZXJzLCBpbnN0ZWFkIG9mIGlkJ3MuCiAgY2RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7Cn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_email_template_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWRtaW4gZW1haWwgZm9ybSAqfQp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWxfc3ViamVjdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZW1haWxfc3ViamVjdCIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRlbWFpbF9zdWJqZWN0fSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2lzaHRtbCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsX2lzaHRtbCIgdmFsdWU9IjAiLz4KICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1lbWFpbF9pc2h0bWwiIHZhbHVlPSIxIiB7aWYgJGVtYWlsX2lzaHRtbH1jaGVja2VkPSJjaGVja2VkInsvaWZ9Lz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9ZW1haWxfdGVtcGxhdGUiPnskZW1haWxfdGVtcGxhdGV9PC90ZXh0YXJlYT4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RvX2ZhY3RvcnknKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_urlstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsX3JlcXVpcmVkJyl9PHA+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd1cmxfcmVxdWlyZWQnIHNlbGVjdGVkPSR1cmxfcmVxdWlyZWR9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdXJsX3JlcXVpcmVkJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd1cmxfYXV0b2NyZWF0ZScpfTxwPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0ndXJsX2F1dG9jcmVhdGUnIHNlbGVjdGVkPSR1cmxfYXV0b2NyZWF0ZX0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb191cmxfYXV0b2NyZWF0ZScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsX2NyZWF0ZW9uY29weScpfTxwPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0ndXJsX2NyZWF0ZW9uY29weScgc2VsZWN0ZWQ9JHVybF9jcmVhdGVvbmNvcHl9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdXJsX2NyZWF0ZW9uY29weScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndXJsX3JlZGlyZWN0b2xkJyl9PHA+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd1cmxfcmVkaXJlY3RvbGQnIHNlbGVjdGVkPSR1cmxfcmVkaXJlY3RvbGR9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdXJsX3JlZGlyZWN0b2xkJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGV1cmxzIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NyZWF0ZXVybHMnKX0iIG9uY2xpY2s9InJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnY29uZmlybV9hdXRvY3JlYXRlX3VybCcpfScpOyIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiAhaXNzZXQoJGFqYXgpfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgdmFyIHJlb3JkZXJfY2F0ZWdvcnlfbW9kZSA9IDA7CiAgJCgnYS5kZWxldGVfY2F0ZWdvcnknKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICByZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2FyZXlvdXN1cmUnKX0nKTsKICB9KTsKICAkKCcjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX2luZm8nKS5oaWRlKCk7CiAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9zdWJtaXQnKS5oaWRlKCk7CiAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9jYW5jZWwnKS5oaWRlKCk7CgogICQoJ2EjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX2NhbmNlbCcpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfaW5mbycpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZScpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9zdWJtaXQnKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfY2FuY2VsJykudG9nZ2xlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0ID4gdGFibGUgaW1nJykuc2hvdygpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCA+IHRhYmxlID4gdGJvZHknKS5zb3J0YWJsZSgnZGVzdHJveScpOwoKICAgIHZhciB1cmwgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fY2F0ZWdvcmllc190YWIgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3QnKS5sb2FkKHVybCk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CgogICQoJ2EjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX3N1Ym1pdCcpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfaW5mbycpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZScpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9zdWJtaXQnKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfY2FuY2VsJykudG9nZ2xlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0ID4gdGFibGUgaW1nJykuc2hvdygpOwogCiAgICAvLyBhamF4IGNhbGwgdG8gdXBkYXRlIHRoZSBpdGVtIG9yZGVyCiAgICB2YXIgbGlzdCA9ICQoJ2RpdiNjYXRlZ29yeWxpc3QgPiB0YWJsZSA+IHRib2R5Jykuc29ydGFibGUoJ3NlcmlhbGl6ZScpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCA+IHRhYmxlID4gdGJvZHknKS5zb3J0YWJsZSgnZGVzdHJveScpOwogICAgdmFyIHVybCA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1hZG1pbl9hamF4X2NhdGVnb3J5b3JkZXIgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICQucG9zdCh1cmwsbGlzdCwKICAgICAgICBmdW5jdGlvbihkYXRhLHRleHRTdGF0dXMsanFYSFIpIHsKICAgICAgICAgIC8vIGFqYXggY2FsbCB0byB1cGRhdGUgb3VyIGRpc3BsYXkuCgkgIHZhciB1cmwgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fY2F0ZWdvcmllc190YWIgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJzsKCSAgJCgnZGl2I2NhdGVnb3J5bGlzdCcpLmxvYWQodXJsKTsKICAgICAgICB9KTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnYSNyZW9yZGVyX2NhdGVnb3J5X21vZGUnKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAkKCcjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX2luZm8nKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGUnKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfc3VibWl0JykudG9nZ2xlKCk7CiAgICAkKCcjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX2NhbmNlbCcpLnRvZ2dsZSgpOwoKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3QgPiB0YWJsZSBpbWcnKS5oaWRlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0ID4gdGFibGUgPiB0Ym9keScpLnNvcnRhYmxlKCk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7Cn0pOwo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBpZD0icmVvcmRlcl9jYXRlZ29yeV9tb2RlX2luZm8iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCdyZW9yZGVyX21vZGUnKX08L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGlkPSJyZW9yZGVyX2NhdGVnb3J5X21vZGVfY2FuY2VsIiBocmVmPSIjIj57Y2dpbWFnZSBjbGFzcz0ic3lzdGVtaWNvbiIgaW1hZ2U9J2ZhbHNlLmdpZicgYWx0PSRtb2QtPkxhbmcoJ2NhbmNlbCcpfSB7JG1vZC0+TGFuZygnY2FuY2VsJyl9PC9hPiZuYnNwOwogIDxhIGlkPSJyZW9yZGVyX2NhdGVnb3J5X21vZGVfc3VibWl0IiBocmVmPSIjIj57Y2dpbWFnZSBjbGFzcz0ic3lzdGVtaWNvbiIgaW1hZ2U9J3RydWUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnc3VibWl0Jyl9IHskbW9kLT5MYW5nKCdzdWJtaXQnKX08L2E+CjwvZGl2Pgp7L2lmfQoKPGRpdiBpZD0iY2F0ZWdvcnlsaXN0Ij4Ke2lmIGlzc2V0KCRpdGVtcyl9CiAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICAgIDx0aGVhZD4KICAgICAgPHRyPgogICAgICAgIDx0aD57JGNhdGVnb3J5dGV4dH08L3RoPgogICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgICA8dHIgaWQ9InskYWN0aW9uaWR9Y2F0X3skZW50cnktPmlkfSIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgICAgIDx0ZD48YSBocmVmPSJ7JGVudHJ5LT5lZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRlbnRyeS0+bmFtZX08L2E+PC90ZD4KICAgICAgICA8dGQ+PGEgaHJlZj0ieyRlbnRyeS0+ZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZWRpdC5naWYnIGFsdD0kbW9kLT5sYW5nKCdlZGl0Jyl9PC9hPjwvdGQ+CiAgICAgICAgPHRkPjxhIGhyZWY9InskZW50cnktPmRlbGV0ZV91cmx9IiBjbGFzcz0iZGVsZXRlX2NhdGVnb3J5Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGFsdD0kbW9kLT5sYW5nKCdkZWxldGUnKX08L2E+PC90ZD4KICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4Key9pZn0KPC9kaXY+Cgp7aWYgIWlzc2V0KCRhamF4KX0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGhyZWY9InskdXJsX2FkZF9jYXRlZ29yeX0iPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0naWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnIGFsdD0kbW9kLT5MYW5nKCdhZGRjYXRlZ29yeScpfSB7JG1vZC0+TGFuZygnYWRkY2F0ZWdvcnknKX08L2E+CiAgJm5ic3A7CiAge2lmIGlzc2V0KCRpdGVtcyl9CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZSIgaHJlZj0iIyI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnIGFsdD0kbW9kLT5MYW5nKCdyZW9yZGVyJyl9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgogIHsvaWZ9CjwvZGl2Pgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/companylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcjc2VsX2FsbCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgdiA9ICQodGhpcykuYXR0cignY2hlY2tlZCcpOwogICAgaWYoIHYgPT0gdW5kZWZpbmVkICkgewogICAgICAkKCcuYnVsaycpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTsKICAgIH0gZWxzZSB7CiAgICAgICQoJy5idWxrJykuYXR0cignY2hlY2tlZCcsdik7CiAgICB9CiAgfSk7CiAgJCgnLmJ1bGsnKS5jbGljayhmdW5jdGlvbigpewogICAgJCgnI3NlbF9hbGwnKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7CiAgfSk7Cn0pOwp7L2xpdGVyYWx9PC9zY3JpcHQ+Cgo8ZmllbGRzZXQgaWQ9ImNvbXBhbnlmaWx0ZXJzIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8bGVnZW5kPnskbW9kLT5MYW5nKCdmaWx0ZXInKX06PC9sZWdlbmQ+CnskZmlsdGVyX2Zvcm1zdGFydH0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6IG5vbmU7Ij4KPHRyPgogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyX25hbWUiIHNpemU9IjQwIiB2YWx1ZT0ieyRmaWx0ZXIubmFtZX0iLz4KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fZmlsdGVyX25hbWUnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8L3RkPgoKICA8dGQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9zdGF0dXMiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kc3RhdHVzZXMgc2VsZWN0ZWQ9JGZpbHRlci5zdGF0dXN9CiAgICAgIDxzZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPHRkPgo8L3RyPgo8dHI+CiAgPHRkPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdhZGRyZXNzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfYWRkcmVzcyIgc2l6ZT0iNDAiIHZhbHVlPSJ7JGZpbHRlci5hZGRyZXNzfSIvPgogICAgICA8YnIvPgogICAgICB7JG1vZC0+TGFuZygnaW5mb19maWx0ZXJfYWRkcmVzcycpfQogICAgPC9wPgogIDwvZGl2PgogIDwvdGQ+CgogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncGFnZWxpbWl0Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyX3BhZ2VsaW1pdCI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwYWdlbGltaXRzIHNlbGVjdGVkPSRmaWx0ZXIucGFnZWxpbWl0fQogICAgICA8c2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDx0ZD4KPC90cj4KCjx0cj4KICB7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfY2F0ZWdvcnlpZCI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yaWVzIHNlbGVjdGVkPSRmaWx0ZXIuY2F0ZWdvcnlpZH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPC90ZD4KICB7L2lmfQoKICA8dGQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NvcnRieScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9zb3J0YnkiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kc29ydGluZ3Mgc2VsZWN0ZWQ9JGZpbHRlci5zb3J0Ynl9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDwvdGQ+CgogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc29ydG9yZGVyJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyX3NvcnRvcmRlciI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzb3J0b3JkZXJzIHNlbGVjdGVkPSRmaWx0ZXIuc29ydG9yZGVyfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8L3RkPgo8L3RyPgoKPHRyPgogIDx0ZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfaGllcmFyY2h5IiBzaXplPSI0MCIgdmFsdWU9InskZmlsdGVyLmhpZXJ9Ii8+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2ZpbHRlcl9oaWVyYXJjaHknKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8L3RkPgoKICA8dGQ+CiAgPC90ZD4KPC90cj4KCjx0cj4KICA8dGQgY29sc3Bhbj0iMiI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfcmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXQnKX0iLz4KICAgIDwvcD4KICA8L2Rpdj4KICA8L3RkPgo8L3RyPgoKPC90YWJsZT4KeyRmaWx0ZXJfZm9ybWVuZH0KPC9maWVsZHNldD4KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InRvZ2dsZV9maWx0ZXIiIHZhbHVlPSIxIiBvbmNsaWNrPSIkKCcjY29tcGFueWZpbHRlcnMnKS50b2dnbGUoKSIvPjxsYWJlbCBmb3I9InRvZ2dsZV9maWx0ZXIiPnskbW9kLT5MYW5nKCdlZGl0X2ZpbHRlcicpfXtpZiBpc3NldCgkZmlsdGVyLmFwcGxpZWQpfSZuYnNwOyh7JG1vZC0+TGFuZygnaW51c2UnKX0pey9pZn08L2xhYmVsPiZuYnNwOwogIHskYWRkbGlua317aWYgaXNzZXQoJGV4cG9ydGNzdil9Jm5ic3A7Jm5ic3A7eyRleHBvcnRjc3Z9ey9pZn0mbmJzcDsmbmJzcDt7JGltcG9ydGNzdn0mbmJzcDsmbmJzcDt7JGltcG9ydGttbH0KICB7aWYgaXNzZXQoJG5hdil9CiAgPHNwYW4gc3R5bGU9ImZsb2F0OiByaWdodDsiPgogICAge2lmICRuYXYtPmdldF9jdXJyZW50X3BhZ2UoKSA+IDF9CiAgICA8YSBocmVmPSJ7JG5hdi0+Z2V0X2ZpcnN0cGFnZV91cmwoKX0iPnskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX08L2E+Jm5ic3A7CiAgICA8YSBocmVmPSJ7JG5hdi0+Z2V0X3ByZXZwYWdlX3VybCgpfSI+eyRtb2QtPkxhbmcoJ3ByZXZwYWdlJyl9PC9hPiZuYnNwOwogICAgey9pZn0KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57JG1vZC0+TGFuZygncGFnZScpfSB7JG5hdi0+Z2V0X2N1cnJlbnRfcGFnZSgpfSB7JG1vZC0+TGFuZygnb2YnKX0geyRuYXYtPmdldF9wYWdlX2NvdW50KCl9PHNwYW4+CiAgICB7aWYgJG5hdi0+Z2V0X2N1cnJlbnRfcGFnZSgpIDwgJG5hdi0+Z2V0X3BhZ2VfY291bnQoKX0KICAgIDxhIGhyZWY9InskbmF2LT5nZXRfbmV4dHBhZ2VfdXJsKCl9Ij57JG1vZC0+TGFuZygnbmV4dHBhZ2UnKX08L2E+Jm5ic3A7CiAgICA8YSBocmVmPSJ7JG5hdi0+Z2V0X2xhc3RwYWdlX3VybCgpfSI+eyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPiZuYnNwOwogICAgey9pZn0KICA8L3NwYW4+CiAgey9pZn0KPC9wPjwvZGl2PgoKe2lmICRpdGVtY291bnQgPiAwfQp7JGJ1bGtfZm9ybXN0YXJ0fQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgY21zX3NvcnRhYmxlIHRhYmxlc29ydGVyIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JGlkdGV4dH08L3RoPgoJCQk8dGg+eyRjb21wYW55dGV4dH08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ293bmVyJyl9PC90aD4KCQkJPHRoPnskd2Vic2l0ZXRleHR9PC90aD4KCQkJPHRoPnskbW9kLT5MYW5nKCd1cmwnKX08L3RoPgoJCQk8dGg+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InNlbF9hbGwiIHZhbHVlPSItMSIgdGl0bGU9InskbW9kLT5MYW5nKCdzZWxlY3RfYWxsJyl9Ii8+PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CgkJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4KCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5jb21wYW55X25hbWV9PC90ZD4KCSAgICAgICAgICAgICAgICA8dGQ+e2lmIGlzc2V0KCRlbnRyeS0+b3duZXIpfXskZW50cnktPm93bmVyfXsvaWZ9PC90ZD4KCQkJPHRkPnskZW50cnktPndlYnNpdGV9PC90ZD4KCQkJPHRkPnskZW50cnktPnVybH08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyRtb2QtPkxhbmcoJGVudHJ5LT5zdGF0dXMpfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5jb3B5bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1idWxrW10iIHZhbHVlPSJ7JGVudHJ5LT5pZH0iIGNsYXNzPSJidWxrIi8+PC90ZD4KCQk8L3RyPgp7L2ZvcmVhY2h9Cgk8L3Rib2R5Pgo8L3RhYmxlPgo8ZGl2IGNsYXNzPSJwYWdlY29udGFpbmVyIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij4KeyRtb2QtPkxhbmcoJ3dpdGhfc2VsZWN0ZWQnKX06CjxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1idWxrYWN0aW9uIj4KICA8b3B0aW9uIHZhbHVlPSJkZWxldGUiPnskbW9kLT5MYW5nKCdkZWxldGUnKX08L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJkaXNhYmxlIj57JG1vZC0+TGFuZygnZGlzYWJsZScpfTwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9InB1Ymxpc2giPnskbW9kLT5MYW5nKCdwdWJsaXNoJyl9PC9vcHRpb24+Cjwvc2VsZWN0Pgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWJ1bGtfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgo8L2Rpdj4KeyRidWxrX2Zvcm1lbmR9CntlbHNlfQo8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPgp7JG1vZC0+TGFuZygnZXJyb3Jfbm9maWx0ZXJtYXRjaGVzJyl9CjwvZGl2Pgp7L2lmfQoKe2lmICRpdGVtY291bnQgPiAxMCBvciBpc3NldCgkbmF2KX0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgeyRhZGRsaW5rfXtpZiBpc3NldCgkZXhwb3J0Y3N2KX0mbmJzcDsmbmJzcDt7JGV4cG9ydGNzdn17L2lmfSZuYnNwOyZuYnNwO3skaW1wb3J0Y3N2fSZuYnNwOyZuYnNwO3skaW1wb3J0a21sfQo8L3A+PC9kaXY+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHAgY2xhc3M9Indhcm5pbmciPnskaW5mb19kZmx0X3RlbXBsYXRlfTwvcD4Ke2ZvcmVhY2ggZnJvbT0kZGZsdF90cGxfcGFydHMgaXRlbT0ncGFydCd9CiB7JHBhcnR9CnsvZm9yZWFjaH0K]]></data>
	</file>
	<file>
	  <filename>/templates/do_importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCd0aXRsZV9pbXBvcnRfcmVwb3J0Jyl9PC9oMz4KCgp7aWYgaXNzZXQoJGVycm9ycyl9CiAgPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KICA8dWw+CiAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J29uZSd9CiAgICA8bGk+eyRvbmV9PC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4KICA8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGJvcmRlcj0iMCI+CiAgICA8dHI+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCcpfTo8L3RkPgogICAgICA8dGQgYWxpZ249ImxlZnQiPnskbnVtX2NvbXBhbmllc308L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJyl9OjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+eyRudW1fZmllbGRkZWZzfTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJyl9OjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+eyRudW1fY2F0ZWdvcmllc308L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPnskbW9kLT5MYW5nKCdwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnKX06PC90ZD4KICAgICAgPHRkIGFsaWduPSJsZWZ0Ij57JG51bV9oaWVyfTwvdGQ+CiAgICA8L3RyPgogIDwvdGFibGU+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxhIGhyZWY9InskcmV0dXJuX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygncmV0dXJuJyl9Ij57JG1vZC0+TGFuZygncmV0dXJuJyl9PC9hPgogIDwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxoND57JG1vZC0+TGFuZygnYWRkX2VkaXRfY2F0ZWdvcnknKX08L2g0Pgp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRuYW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRuYW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICAgIHtjZ2VfdGV4dGFyZWEgd3lzaXd5Zz0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nZGVzY3JpcHRpb24nIGNvbnRlbnQ9JGRlc2NyaXB0aW9ufQogICAgICAgICAgICAgICAgPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ltYWdldGV4dCcpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWltYWdlIiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgICAgICAgICAgICAge2lmICRpbWFnZSAhPSAnJ30gCiAgICAgICAgICAgICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06IHskaW1hZ2V9CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIG5hbWU9InskYWN0aW9uaWR9ZGVsaW1hZ2UiPiZuYnNwO3skbW9kLT5MYW5nKCdkZWxldGUnKX0KICAgICAgICAgICAgICAgICAgey9pZn0KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTEnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRleHRyYTF9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGV4dHJhMn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXh0cmEzJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZXh0cmEzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH08L3A+Cgk8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/editcompany.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy92YXIgY29tcGlkID0gJ3skY29tcGlkfGRlZmF1bHQ6Jyd9JzsKdmFyIGFjdGlvbmlkID0gJ3skYWN0aW9uaWR9JzsKdmFyIGdlb2NvZGV1cmwgID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDb21wYW55RGlyZWN0b3J5JyBhY3Rpb249J2dlb2xvY2F0ZScgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0nICsgJyZzdXBwcmVzc291dHB1dD1mYWxzZSc7CnZhciBjaGVja3VybCA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPSdjaGVja3VybCcgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0nICsgJyZzaG93dGVtcGxhdGU9ZmFsc2UnOwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcuZXhwYW5kaXQnKS5jbGljayhmdW5jdGlvbigpewogICAgJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCcuZXhwYW5kYWJsZScpLnNsaWRlVG9nZ2xlKDEwMDApOwogIH0pOwogICQoJyNidG5fbG9va3VwJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgdG1wID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoYWN0aW9uaWQrJ2FkZHJlc3MnKTsKICAgIHZhciBhZGRyZXNzID0gdG1wWzBdLnZhbHVlOwoKICAgIHZhciBsYXQgPSAwOwogICAgdmFyIGxvbmcgPSAwOyAKICAgIGpRdWVyeS5wb3N0KGdlb2NvZGV1cmwsICd7JGFjdGlvbmlkfWFkZHJlc3M9JythZGRyZXNzLAogIAlmdW5jdGlvbihkYXRhKSB7IAogICAgICAgICAgICBpZiggZGF0YS5zdGF0dXMgPT0gJ3N1Y2Nlc3MnICkgewogICAgICAgICAgICAgIGxhdCA9IGRhdGEubGF0OyBsb25nPWRhdGEubG9uOwogICAgICAgICAKICAgICAgICAgICAgICB2YXIgbGF0ZmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShhY3Rpb25pZCsnbGF0aXR1ZGUnKVswXTsKICAgICAgICAgICAgICB2YXIgbG9uZ2ZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoYWN0aW9uaWQrJ2xvbmdpdHVkZScpWzBdOwkKICAJICAgICAgbGF0ZmllbGQudmFsdWUgPSBsYXQ7CgkgICAgICBsb25nZmllbGQudmFsdWUgPSBsb25nOwogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoJfSwnanNvbicpOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwoKICAkKCdbbmFtZT1idG5fZ2V0dXJsXScpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoJCgnI25hbWV0ZXh0JykudmFsKCkpOwogICAgdmFyIHR1cmwgPSBlbmNvZGVVUklDb21wb25lbnQoJCgnI3VybHRleHQnKS52YWwoKSk7CiAgICBpZiggdHVybCAhPSAnJyApIHsKICAgICAgYWxlcnQoJ3skbW9kLT5MYW5nKCdlcnJvcl91cmxub3RlbXB0eScpfScpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgdmFyIHVybCA9IGNoZWNrdXJsLnJlcGxhY2UoL2FtcDsvZywnJyk7CiAgICBqUXVlcnkucG9zdCh1cmwsJ20xX2NkX25hbWU9JytuYW1lLAogICAgCSAgZnVuY3Rpb24oZGF0YSkgewoJICAgIGlmKCBkYXRhLnN0YXR1cyA9PSAnT0snICkgewogICAgICAgICAgICAgICQoJyN1cmx0ZXh0JykudmFsKGRhdGEudXJsKTsKCSAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgJ2pzb24nICk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CgogICQoJ1tuYW1lPWJ0bl9jaGVja3VybF0nKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGpRdWVyeSgnI25hbWV0ZXh0JykudmFsKCkpOwogICAgdmFyIHR1cmwgPSBlbmNvZGVVUklDb21wb25lbnQoalF1ZXJ5KCcjdXJsdGV4dCcpLnZhbCgpKTsKICAgIGlmKCB0dXJsID09ICcnICkgcmV0dXJuOwoKICAgIHZhciB1cmwgPSBjaGVja3VybC5yZXBsYWNlKC9hbXA7L2csJycpOwogICAgalF1ZXJ5LnBvc3QodXJsLCdtMV9jZF9uYW1lPScrbmFtZSsnJm0xX2NkX3VybD0nK3R1cmwsCglmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICBhbGVydCgnc3RhdHVzICcrZGF0YS5zdGF0dXMpOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0sICdqc29uJyApOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwoKICAvKiBqUXVlcnkoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOyAqLwp9KTsKPC9zY3JpcHQ+Cgp7JHN0YXJ0Zm9ybX0KPGgzPgp7aWYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KICB7JG1vZC0+TGFuZygncHJvbXB0X2VkaXRjb21wYW55Jyl9OiB7JGNvbXBhbnlfbmFtZX0gKHskY29tcGlkfSkKe2Vsc2V9CiAgeyRtb2QtPkxhbmcoJ3Byb21wdF9hZGRjb21wYW55Jyl9CnsvaWZ9CjwvaDM+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXtpZiBpc3NldCgkY2FuY2VsKX17JGNhbmNlbH17L2lmfTwvcD4KPC9kaXY+Cgp7JG1vZC0+U3RhcnRUYWJIZWFkZXJzKCl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2NvbXBhbnknLCRtb2QtPkxhbmcoJ2NvbXBhbnknKSl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJG1vZC0+TGFuZygnZmllbGRzJykpfQp7aWYgaXNzZXQoJGFsYnVtX2ZpZWxkX2V4aXN0cykgJiYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KeyRtb2QtPlNldFRhYkhlYWRlcignYWxidW0nLCRtb2QtPkxhbmcoJ2FsYnVtJykpfQp7L2lmfQp7JG1vZC0+U2V0VGFiSGVhZGVyKCdvcmdhbml6YXRpb24nLCRtb2QtPkxhbmcoJ29yZ2FuaXphdGlvbicpKX0KeyRtb2QtPkVuZFRhYkhlYWRlcnMoKX0KCnskbW9kLT5TdGFydFRhYkNvbnRlbnQoKX0KeyRtb2QtPlN0YXJ0VGFiKCdjb21wYW55Jyl9CntpZiBpc3NldCgkZmV1X3VzZXJzKX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnb3duZXInKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9b3duZXJfaWQiPgogICAgICAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZldV91c2VycyBzZWxlY3RlZD0kb3duZXJfaWR9CiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgPC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbmFtZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJuYW1ldGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leF9jb21wYW55X25hbWUiIHZhbHVlPSJ7JGNvbXBhbnlfbmFtZX0iIHNpemU9IjMwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgICAgICAgICAgICAgPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+e2lmICR1cmxfcmVxdWlyZWR9KnsvaWZ9eyRtb2QtPkxhbmcoJ3VybCcpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idXJsdGV4dCIgbmFtZT0ieyRhY3Rpb25pZH11cmwiIHZhbHVlPSJ7JHVybH0iIHNpemU9IjMwIiBtYXhsZW5ndGg9IjI1NSI+Jm5ic3A7CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImJ0bl9nZXR1cmwiIGlkPSJidG5fZ2V0dXJsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2dldHVybCcpfSIvPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidG5fY2hlY2t1cmwiIGlkPSJidG5fY2hlY2t1cmwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2hlY2snKX0iLz4KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYWRkcmVzc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0YWRkcmVzc30mbmJzcDsKICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCRjYW5fZ2VvY29kZSl9CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImJ0bl9sb29rdXAiIGlkPSJidG5fbG9va3VwIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2xvb2t1cCcpfSIvPgogICAgICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICAgICAgPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2xhdGl0dWRlJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bGF0aXR1ZGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGxvbmdpdHVkZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRlbGVwaG9uZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dGVsZXBob25lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmF4dGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRmYXh9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRlbWFpbHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZW1haWx9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR3ZWJzaXRldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXR3ZWJzaXRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskc3RhdHVzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRzdGF0dXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZXRhaWxzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaW1hZ2V0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbWFnZXVwbG9hZH0ge2lmICRpbWFnZWN1cnJlbnQgbmUgJyd9eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06IHskaW1hZ2VjdXJyZW50fXskaW1hZ2VjdXJyZW50aGlkZGVufXsvaWZ9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsb2dvdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbG9nb3VwbG9hZH0ge2lmICRsb2dvY3VycmVudCBuZSAnJ317JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTogeyRsb2dvY3VycmVudH17JGxvZ29jdXJyZW50aGlkZGVufXsvaWZ9PC9wPgoJPC9kaXY+CnskbW9kLT5FbmRUYWIoKX17KiBjb21wYW55ICp9Cgp7JG1vZC0+U3RhcnRUYWIoJ2ZpZWxkcycpfQoJe2lmICRjdXN0b21maWVsZHNjb3VudCBndCAwfQoJCXtmb3JlYWNoIGZyb209JGN1c3RvbWZpZWxkcyBpdGVtPWN1c3RvbWZpZWxkfQogICAgICAgICAgICAgICAge2lmICRjdXN0b21maWVsZC0+dHlwZSAhPSAnYWxidW0nfQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGN1c3RvbWZpZWxkLT5uYW1lfSAoeyRjdXN0b21maWVsZC0+dHlwZX0pOjwvcD4KCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY3VzdG9tZmllbGQtPmlucHV0X2JveH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT50aHVtYl91cmwpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+PGEgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSJ7JGN1c3RvbWZpZWxkLT5pbWFnZV91cmx9Ij48aW1nIHNyYz0ieyRjdXN0b21maWVsZC0+dGh1bWJfdXJsfSI+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoJCQk8L2Rpdj4KICAgICAgICAgICAgICAgIHsvaWZ9CgkJey9mb3JlYWNofQogICAgICAgIHtlbHNlfQogICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6IHJlZDsiPnskbW9kLT5MYW5nKCdpbmZvX25vZmllbGRzJyl9PC9wPgoJey9pZn0KeyRtb2QtPkVuZFRhYigpfXsqIGZpZWxkcyAqfQoKeyogYmVnaW4gYWxidW0gdGFiICp9CntpZiBpc3NldCgkYWxidW1fZmllbGRfZXhpc3RzKSAmJiBpc3NldCgkY29tcGlkKSAmJiAkY29tcGlkfQp7JG1vZC0+U3RhcnRUYWIoJ2FsYnVtJyl9CntpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpDb21wYW55RGlyZWN0b3J5O2VkaXRjb21wYW55X2FsYnVtLnRwbCd9CnskbW9kLT5FbmRUYWIoKX0Key9pZn0KeyogZW5kIGFsYnVtIHRhYiAqfQoKeyRtb2QtPlN0YXJ0VGFiKCdvcmdhbml6YXRpb24nKX0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvcD4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRoaWVycG9zfTwvcD4KICAgICAgICA8L2Rpdj4KCXtpZiAkY2F0ZWdvcmllc2NvdW50IGd0IDB9CiAgICAgICAgPGZpZWxkc2V0PgogICAgICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9sZWdlbmQ+CgkJe2ZvcmVhY2ggZnJvbT0kY2F0ZWdvcmllcyBpdGVtPWNhdGVnb3J5fQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNhdGVnb3J5LT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNhdGVnb3J5LT5jaGVja2JveH0mbmJzcDt7Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2V4cGFuZC5naWYnIGFsdD0nZXhwYW5kJyBjbGFzcz0nZXhwYW5kaXQnIHdpZHRoPScxNicgaGVpZ2h0PScxNid9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQgZXhwYW5kYWJsZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGNhdGVnb3J5LT5leHRyYTEpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7eyRtb2QtPkxhbmcoJ2V4dHJhMScpfTogeyRjYXRlZ29yeS0+ZXh0cmExfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCRjYXRlZ29yeS0+ZXh0cmEyKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPiZuYnNwOyZuYnNwOyZuYnNwO3skbW9kLT5MYW5nKCdleHRyYTInKX06IHskY2F0ZWdvcnktPmV4dHJhMn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiBpc3NldCgkY2F0ZWdvcnktPmV4dHJhMyl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDt7JG1vZC0+TGFuZygnZXh0cmEzJyl9OiB7JGNhdGVnb3J5LT5leHRyYTN9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CgkJCTwvZGl2PgoJCXsvZm9yZWFjaH0KICAgICAgICA8L2ZpZWxkc2V0PgoJey9pZn0KeyRtb2QtPkVuZFRhYigpfQp7JG1vZC0+RW5kVGFiQ29udGVudCgpfQp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editcompany_album.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQovLzwhW0NEQVRBWwp2YXIgdXBsb2FkX3VybCA9ICd7L2xpdGVyYWx9e21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWpheF91cGxvYWQgY29tcGlkPSRjb21waWQgZmRpZD0kYWxidW1fZmllbGRfZXhpc3RzIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9e2xpdGVyYWx9JzsKdmFyIGdhbGxlcnlfdXJsID0gJ3svbGl0ZXJhbH17bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1hamF4X2dhbGxlcnkgY29tcGlkPSRjb21waWQgZmRpZD0kYWxidW1fZmllbGRfZXhpc3RzIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9e2xpdGVyYWx9JzsKdmFyIGRlbGV0ZV91cmwgPSAney9saXRlcmFsfXttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFqYXhfZGVsZXRlIGNvbXBpZD0kY29tcGlkIGZkaWQ9JGFsYnVtX2ZpZWxkX2V4aXN0cyB1cmxvbmx5PTEganNmcmllbmRseT0xfXtsaXRlcmFsfSc7CnZhciBzb3J0X3VybCA9ICd7L2xpdGVyYWx9e21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWpheF9zb3J0IGNvbXBpZD0kY29tcGlkIGZkaWQ9JGFsYnVtX2ZpZWxkX2V4aXN0cyB1cmxvbmx5PTEganNmcmllbmRseT0xfXtsaXRlcmFsfSc7CgpmdW5jdGlvbiBfcmVmcmVzaF9nYWxsZXJ5KCkgewogICQoJyNlZGl0Y29tcGFueV9nYWxsZXJ5JykubG9hZChnYWxsZXJ5X3VybCsnJnNob3d0ZW1wbGF0ZT1mYWxzZScsZnVuY3Rpb24oKXsKICAgIGlmKCBqUXVlcnkoKS5mYW5jeWJveCApIHsKICAgICAgJCgnYS5mYW5jeWJveCcpLmZhbmN5Ym94KCk7CiAgICB9CgogICAgLy8gdGhlIHNvcnRhYmxlIHN0dWZmCiAgICAvLyQoJyNmaWxlX2xpc3QgdGJvZHknKS5zb3J0YWJsZSgpLmRpc2FibGVTZWxlY3Rpb24oKTsKICAgICQoJyNmaWxlX2xpc3QgdGJvZHknKS5zb3J0YWJsZSh7CiAgICAgIGN1cnNvcjogJ2Nyb3NzaGFpcicsCiAgICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9yZGVyID0gW107CiAgICAgICAgJCgnI2ZpbGVfbGlzdCB0Ym9keScpLmNoaWxkcmVuKCd0cicpLmVhY2goZnVuY3Rpb24oaWR4LGVsbSl7CiAgICAgICAgICBvcmRlci5wdXNoKGVsbS5pZC5zcGxpdCgnXycsMilbMV0pOwogICAgICAgIH0pOwogICAgICAgICQuYWpheCh7CiAgICAgICAgICB1cmw6IHNvcnRfdXJsKycmc2hvd3RlbXBsYXRlPWZhbHNlJywKICAgICAgICAgIHR5cGU6ICdQT1NUJywKICAgICAgICAgIGRhdGE6IHttMV9vcmRlcjogb3JkZXJ9LAogICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSx0ZXh0U3RhdHVzLGpxWEhSKSB7CiAgICAgICAgICAgX3JlZnJlc2hfZ2FsbGVyeSgpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9KTsKICB9KTsKfQoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKIGlmKCAxICkgewogICAkKGRvY3VtZW50KS5iaW5kKCdkcm9wIGRyYWdvdmVyJywgZnVuY3Rpb24oZSkgewogICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgfSk7CgogICAvLyBkcmFnIGRyb3AgdXBsb2FkIHN0dWZmCiAgICQoJyNpbWFnZV91cGxvYWQnKS5maWxldXBsb2FkKHsKICAgICBkYXRhVHlwZTogJ2pzb24nLAogICAgIGRyb3B6b25lOiAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKSwKICAgICB1cmw6IHVwbG9hZF91cmwucmVwbGFjZSgvYW1wOy9nLCcnKSsnJnNob3d0ZW1wbGF0ZT1mYWxzZScsCiAgICAgZm9ybTogbnVsbCwKICAgICBmb3JtRGF0YToge20xX2ZvbzonYmFyJ30sCiAgICAgbWF4Q2h1bmtTaXplOiB7L2xpdGVyYWx9eyRtYXhfY2h1bmtzaXplfXtsaXRlcmFsfSwKCiAgICAgcHJvZ3Jlc3NhbGw6IGZ1bmN0aW9uKGUsZGF0YSkgewogICAgICAgdmFyIHRvdGFsID0gKGRhdGEubG9hZGVkIC8gZGF0YS50b3RhbCAqIDEwMCkudG9GaXhlZCgwKTsKICAgICAgICQoJyNjZF9hbGJ1bV9kcm9wem9uZScpLnByb2dyZXNzYmFyKHsgdmFsdWU6IHBhcnNlSW50KHRvdGFsKSB9KTsKICAgICAgICQoJy51aS1wcm9ncmVzc2Jhci12YWx1ZScpLmh0bWwodG90YWwrJyUnKTsKICAgICB9LAogICAgCiAgICAgc3RvcDogZnVuY3Rpb24oZSxkYXRhKSB7CiAgICAgICAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKS5wcm9ncmVzc2JhcignZGVzdHJveScpOwogICAgIH0sCiAgICAgCiAgICAgZG9uZTogZnVuY3Rpb24oZSxkYXRhKSB7CiAgICAgICBfcmVmcmVzaF9nYWxsZXJ5KCk7CiAgICAgfQogICB9KTsKIH0KCiAvLyB0aGUgZGVsZXRlIGFqYXggc3R1ZmYKICQoJyNlZGl0Y29tcGFueV9nYWxsZXJ5IC5kZWxldGUnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oZSl7CiAgIGUucHJldmVudERlZmF1bHQoKTsKICAgdmFyIGZpbGVuYW1lID0gJCh0aGlzKS5hdHRyKCdocmVmJyk7CiAgICQuYWpheCh7CiAgICAgdXJsOiBkZWxldGVfdXJsKycmc2hvd3RlbXBsYXRlPWZhbHNlJywKICAgICB0eXBlOiAnUE9TVCcsCiAgICAgZGF0YToge20xX2ZpbGVuYW1lOiBmaWxlbmFtZX0sCiAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSx0ZXh0U3RhdHVzLGpxWEhSKSB7CiAgICAgICBfcmVmcmVzaF9nYWxsZXJ5KCk7CiAgICAgfQogICB9KTsKIH0pOwoKIC8vIGFuZCBsb2FkIHRoZSBnYWxsZXJ5LgogX3JlZnJlc2hfZ2FsbGVyeSgpOwp9KTsgCnsvbGl0ZXJhbH08L3NjcmlwdD4KCjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2RyYWdfZHJvcF91cGxvYWQnKX08L2xlZ2VuZD4KPHRhYmxlIHdpZHRoPSIxMDAlIj4KICA8dHI+PHRkPnskbW9kLT5MYW5nKCdpbmZvX2RyYWdfZHJvcCcpfTwvdGQ+CiAgPHRkIHZhbGlnbj0idG9wIj4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJpbWFnZV91cGxvYWQiIG11bHRpcGxlPSJtdWx0aXBsZSIgaWQ9ImltYWdlX3VwbG9hZCIgc3R5bGU9IndpZHRoOiAyNGVtOyI+CiAgICB7Y2dlX2lzaWUgYXNzaWduPSdpZSd9e2lmICEkaWV9CiAgICA8YnIvPjxici8+CiAgICA8ZGl2IGFsaWduPSJjZW50ZXIiIGlkPSJjZF9hbGJ1bV9kcm9wem9uZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsgYm9yZGVyOiAxcHggZGFzaGVkIGJyb3duOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDAuNWVtOyB3aWR0aDogMjhlbTsiPgogICAgeyRtb2QtPkxhbmcoJ2Ryb3BfaGVyZScpfQogICAgPC9kaXY+CiAgICB7L2lmfQogIDwvdGQ+CjwvdGFibGU+CjwvZmllbGRzZXQ+Cgo8ZGl2IGlkPSdlZGl0Y29tcGFueV9nYWxsZXJ5Jz4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editcompany_gallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRmaWxlcyl9Cjx0YWJsZSBpZD0iZmlsZV9saXN0IiBjbGFzcz0icGFnZXRhYmxlIiBjZWxsc3BhY2luZz0iMCI+CiAgPHRoZWFkPgogICA8dHI+CiAgICAgPHRoIHN0eWxlPSJ3aWR0aDogOTBweDsiPnskbW9kLT5MYW5nKCd0aHVtYm5haWwnKX08L3RoPgogICAgIDx0aCBhbGlnbj0ibGVmdCI+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kZmlsZXMgaXRlbT0nb25lZmlsZScgbmFtZT0nZmlsZXMnfQogIDx0ciBpZD0iZmlsZV97JHNtYXJ0eS5mb3JlYWNoLmZpbGVzLmluZGV4fSI+CiAgICA8dGQgdmFsaWduPSJjZW50ZXIiID48YSBzdHlsZT0iYm9yZGVSOiAxcHggc29saWQgYmxhY2s7IiBjbGFzcz0iZmFuY3lib3giIGhyZWY9IntDR1NtYXJ0SW1hZ2Ugc3JjMT0kYmFzZV9kaXIgc3JjMj0kb25lZmlsZSBub2VtYmVkPTEgd2lkdGg9NTAwIGhlaWdodD01MDAgbm90YWc9MX0iPntDR1NtYXJ0SW1hZ2Ugc3JjMT0kYmFzZV9kaXIgc3JjMj0kb25lZmlsZSB3aWR0aD04MCBoZWlnaHQ9ODAgbm9lbWJlZD0xfTwvYT48L3RkPgogICAgPHRkPnskb25lZmlsZX08L3RkPgogICAgPHRkPjxhIGNsYXNzPSJkZWxldGUiIGhyZWY9Inskb25lZmlsZX0iPjxpbWcgc3JjPSJ7JHRyYXNoY2FufSIgYWx0PSIiLz48L2E+PC90ZD4KICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgp7ZWxzZX0KPHA+Tm8gZmlsZXMgZm91bmQ8L3A+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovKjwhW0NEQVRBWyovCmZ1bmN0aW9uIG9uY2hhbmdlX2ZsZHR5cGUoZWxlbSkgewogIHZhciBpZHggPSBlbGVtLnNlbGVjdGVkSW5kZXg7CiAgdmFyIHZhbCA9IGVsZW1baWR4XS52YWx1ZTsKICAKICB2YXIgbWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWF4bGVuZ3RoJyk7CiAgdmFyIG9wdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcGRvd25fb3B0aW9ucycpOwogIHZhciBleHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGVfZXh0ZW5zaW9ucycpOwogIHZhciBhbGIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxidW1faW5mbycpOwogIGlmKCB2YWwgPT0gJ3RleHRib3gnICkgewogICAgbWwuc3R5bGUuZGlzcGxheSAgID0gJ2Jsb2NrJzsKICAgIG9wdHMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGV4dHMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGFsYi5zdHlsZS5kaXNwbGF5ICA9ICdub25lJzsKICB9CiAgZWxzZSBpZiggdmFsID09ICdkcm9wZG93bicgfHwgdmFsID09ICdtdWx0aXNlbGVjdCcgKSB7CiAgICBtbC5zdHlsZS5kaXNwbGF5ICAgPSAnbm9uZSc7CiAgICBvcHRzLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgZXh0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgYWxiLnN0eWxlLmRpc3BsYXkgID0gJ25vbmUnOwogIH0KICBlbHNlIGlmKCB2YWwgPT0gJ2ZpbGUnIHx8IHZhbCA9PSAnaW1hZ2UnICkgewogICAgbWwuc3R5bGUuZGlzcGxheSAgID0gJ25vbmUnOwogICAgb3B0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgZXh0cy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIGFsYi5zdHlsZS5kaXNwbGF5ICA9ICdub25lJzsKICB9CiAgZWxzZSBpZiggdmFsID09ICdhbGJ1bScgKSB7CiAgICBtbC5zdHlsZS5kaXNwbGF5ICAgPSAnbm9uZSc7CiAgICBvcHRzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBleHRzLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgYWxiLnN0eWxlLmRpc3BsYXkgID0gJ2lubGluZSc7CiAgfQogIGVsc2UgewogICAgbWwuc3R5bGUuZGlzcGxheSAgID0gJ25vbmUnOwogICAgb3B0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgZXh0cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgYWxiLnN0eWxlLmRpc3BsYXkgID0gJ25vbmUnOwogIH0KfQoKJCgnI2ZsZHR5cGUnKS5yZWFkeShmdW5jdGlvbigkKSB7CiAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxkdHlwZScpOwogIG9uY2hhbmdlX2ZsZHR5cGUoZSk7Cn0pOwovKl1dPiAqLwo8L3NjcmlwdD4KCjxoMz57JG1vZC0+TGFuZygncHJvbXB0X2FkZGVkaXRmaWVsZCcpfTwvaDM+Cgp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyR0eXBldGV4dH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBpZD0nZmxkdHlwZScgbmFtZT0ieyRhY3Rpb25pZH10eXBlIiBvbmNoYW5nZT0ib25jaGFuZ2VfZmxkdHlwZSh0aGlzKTsiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkdHlwZXMgc2VsZWN0ZWQ9JGZsZHR5cGV9CiAgICA8L3NlbGVjdD4KICAgIDxzcGFuIGlkPSJhbGJ1bV9pbmZvIiBzdHlsZT0iZGlzcGxheV9ub25lIj48YnIvPnskbW9kLT5MYW5nKCdpbmZvX2FsYnVtX2ZpZWxkdHlwZScpfTwvc3Bhbj4KICA8L3A+CjwvZGl2PgoKPGRpdiBpZD0ibWF4bGVuZ3RoIiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbWF4bGVuZ3RodGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG1heGxlbmd0aH08L3A+CjwvZGl2Pgo8ZGl2IGlkPSJkcm9wZG93bl9vcHRpb25zIiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdwcm9tcHRfZHJvcGRvd25fb3B0aW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1kcm9wZG93bl9vcHRpb25zIj57JGRyb3Bkb3duX2RhdGF9PC90ZXh0YXJlYT4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19kcm9wZG93bl9vcHRpb25zJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBpZD0iZmlsZV9leHRlbnNpb25zIiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdwcm9tcHRfZXh0ZW5zaW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjgwIiBuYW1lPSJ7JGFjdGlvbmlkfWV4dGVuc2lvbnMiIHZhbHVlPSJ7JGV4dGVuc2lvbnN8ZGVmYXVsdDonJ30iIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgPGJyLz4KICAgICB7JG1vZC0+TGFuZygnaW5mb19leHRlbnNpb25zJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskdXNlcmVkaXR0ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VzZXJlZGl0fTxici8+eyRtb2QtPkxhbmcoJ2luZm9fdXNlcmVkaXQnKX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyR1c2Vydmlld3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXNlcnZpZXd9PGJyLz4KICAgICAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3VzZXJ2aWV3Jyl9CiAgICAgICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edithier.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRlZGl0X2hpZXJhcmNoeScpfTwvaDM+Cgp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRuYW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRuYW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcGFyZW50dGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcGFyZW50ZHJvcGRvd259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/fielddeflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JGZpZWxkZGVmdGV4dH08L3RoPgoJCQk8dGg+eyR0eXBldGV4dH08L3RoPgoJCQk8dGggY2xhc3M9Im1vdmUiPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQoJCTx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCTx0ZD57Y2FwdHVyZSBhc3NpZ249J3RtcCd9ZmllbGRfeyRlbnRyeS0+dHlwZX17L2NhcHR1cmV9eyRtb2QtPkxhbmcoJHRtcCl9PC90ZD4KCQkJPHRkPnskZW50cnktPnVwbGlua30geyRlbnRyeS0+ZG93bmxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJPC90cj4Key9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua308L3A+PC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/frontendimport_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRpZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfdGVtcGxhdGUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1mZWltcG9ydF90ZW1wbGF0ZSI+eyRmZWltcG9ydF90ZW1wbGF0ZX08L3RleHRhcmVhPgogICAgPGJyLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmVpbXBvcnRfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1mZWltcG9ydF9yZXNldCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldHRvZmFjdG9yeScpfSIvPgogIDwvcD4KPC9kaXY+CnskaWZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/hierlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc3NldCgkYWpheCl9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICB2YXIgcmVvcmRlcl9oaWVyYXJjaHlfbW9kZSA9IDA7CiAgJCgnYS5kZWxldGVfaGllcmFyY2h5JykuY2xpY2soZnVuY3Rpb24oZSkgewogICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhcmV5b3VzdXJlJyl9Jyk7CiAgfSk7CiAgJCgnI3Jlb3JkZXJfaGllcmFyY2h5X21vZGVfaW5mbycpLmhpZGUoKTsKICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9jYW5jZWwnKS5oaWRlKCk7CiAgJCgnI3Jlb3JkZXJfaGllcmFyY2h5X21vZGVfc3VibWl0JykuaGlkZSgpOwoKICAkKCdhI3Jlb3JkZXJfaGllcmFyY2h5X21vZGVfY2FuY2VsJykuY2xpY2soZnVuY3Rpb24oZSkgewogICAgJCgnI3Jlb3JkZXJfaGllcmFyY2h5X21vZGUnKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX3N1Ym1pdCcpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfaGllcmFyY2h5X21vZGVfY2FuY2VsJykudG9nZ2xlKCk7CiAgICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9pbmZvJykudG9nZ2xlKCk7CgogICAgJCgnZGl2I2hpZXJsaXN0IHNwYW4ucmVwZWF0ZWQnKS5zaG93KCk7CiAgICAkKCdkaXYjaGllcmxpc3QgZGl2LmhpZXJpY29uJykuc2hvdygpOwogICAgJCgnZGl2I2hpZXJsaXN0IHVsJykuYWRkQ2xhc3MoJ25vaW5kZW50Jyk7CiAgICAkKCdkaXYjaGllcmxpc3QgPiB1bCcpLm5lc3RlZFNvcnRhYmxlKCdkZXN0cm95Jyk7CiAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2hpZXJ0YWIgdXJsb25seT0xIGpzZnJpZW5kbHk9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICQoJyNoaWVybGlzdF9jb250JykubG9hZCh1cmwpOwogICAgcmV0dXJuIGZhbHNlOwogfSk7CgogICQoJ2EjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9zdWJtaXQnKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZScpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfaGllcmFyY2h5X21vZGVfc3VibWl0JykudG9nZ2xlKCk7CiAgICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9jYW5jZWwnKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2luZm8nKS50b2dnbGUoKTsKCiAgICAkKCdkaXYjaGllcmxpc3Qgc3Bhbi5yZXBlYXRlZCcpLnNob3coKTsKICAgICQoJ2RpdiNoaWVybGlzdCBkaXYuaGllcmljb24nKS5zaG93KCk7CiAgICAkKCdkaXYjaGllcmxpc3QgdWwnKS5hZGRDbGFzcygnbm9pbmRlbnQnKTsKICAgIHZhciBsaXN0ID0gJCgnZGl2I2hpZXJsaXN0ID4gdWwnKS5uZXN0ZWRTb3J0YWJsZSgnc2VyaWFsaXplJyk7CiAgICAkKCdkaXYjaGllcmxpc3QgPiB1bCcpLm5lc3RlZFNvcnRhYmxlKCdkZXN0cm95Jyk7CiAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2FqYXhfaGllcm9yZGVyIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAkLnBvc3QodXJsLGxpc3QsCiAgICAgIGZ1bmN0aW9uKGRhdGEsdGV4dFN0YXR1cyxqcVhIUikgewoJdmFyIHVybCA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1hZG1pbl9oaWVydGFiIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAgICAgJCgnI2hpZXJsaXN0X2NvbnQnKS5sb2FkKHVybCk7CiAgICAgIH0pOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwoKICAkKCdhI3Jlb3JkZXJfaGllcmFyY2h5X21vZGUnKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZScpLnRvZ2dsZSgpOwogICAgJCgnI3Jlb3JkZXJfaGllcmFyY2h5X21vZGVfc3VibWl0JykudG9nZ2xlKCk7CiAgICAkKCcjcmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9jYW5jZWwnKS50b2dnbGUoKTsKICAgICQoJyNyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2luZm8nKS50b2dnbGUoKTsKCiAgICAkKCdkaXYjaGllcmxpc3Qgc3Bhbi5yZXBlYXRlZCcpLmhpZGUoKTsKICAgICQoJ2RpdiNoaWVybGlzdCBkaXYuaGllcmljb24nKS5oaWRlKCk7CiAgICAkKCdkaXYjaGllcmxpc3QgdWwnKS5yZW1vdmVDbGFzcygnbm9pbmRlbnQnKTsKICAgICQoJ2RpdiNoaWVybGlzdCA+IHVsJykubmVzdGVkU29ydGFibGUoewkKICAgICAgZGlzYWJsZU5lc3Rpbmc6ICduby1uZXN0JywKICAgICAgZm9yY2VQbGFjZWhvbGRlclNpemU6IHRydWUsCiAgICAgIGhhbmRsZTogJ2RpdicsCiAgICAgIGl0ZW1zOiAnbGknLAogICAgICBvcGFjaXR5OiAuNiwKICAgICAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsCiAgICAgIHRhYlNpemU6IDIwLAogICAgICB0b2xlcmFuY2U6ICdwb2ludGVyJywKICAgICAgbGlzdFR5cGU6ICd1bCcsCiAgICAgIHRvbGVyYW5jZUVsZW1lbnQ6ICc+IGRpdicKICAgIH0pOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwoKfSk7Cjwvc2NyaXB0PgoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIGlkPSJyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2luZm8iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCdyZW9yZGVyX21vZGUnKX08L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGlkPSJyZW9yZGVyX2hpZXJhcmNoeV9tb2RlX2NhbmNlbCIgaHJlZj0iIyI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdmYWxzZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdjYW5jZWwnKX0geyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYT4mbmJzcDsKICA8YSBpZD0icmVvcmRlcl9oaWVyYXJjaHlfbW9kZV9zdWJtaXQiIGhyZWY9IiMiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0ndHJ1ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdzdWJtaXQnKX0geyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYT4KPC9kaXY+Cgo8ZGl2IGlkPSJoaWVybGlzdF9jb250Ij4Key9pZn17KiAhYWpheCAqfQoKe2lmIGlzc2V0KCRoaWVyKX0Ke2Z1bmN0aW9uIGRvaGllcn0KPHVsIGNsYXNzPSJub2luZGVudCI+CiAge2ZvcmVhY2ggJGxpc3QgYXMgJG5vZGV9CiAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fZWRpdGhpZXIgY2F0aWQ9JG5vZGUuaWQgdXJsb25seT0xIGFzc2lnbj0nZWRpdF91cmwnfQogIHttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2RlbGhpZXIgY2F0aWQ9JG5vZGUuaWQgdXJsb25seT0xIGFzc2lnbj0nZGVsZXRlX3VybCd9CiAgPGxpIGlkPSJ7JGFjdGlvbmlkfWhpZXJfeyRub2RlLmlkfSI+CiAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgPGRpdiBjbGFzcz0ibGFiZWwgaGllcm5vZGUgeyRyb3djbGFzc30iPgogICAgICA8ZGl2IGNsYXNzPSJoaWVybmFtZSI+CiAgICAgICAgPHNwYW4gY2xhc3M9InJlcGVhdGVkIj57cmVwZWF0IHN0cmluZz0nJm5ic3A7Jmd0OyZuYnNwOycgdGltZXM9JG5vZGUuZGVwdGh9PC9zcGFuPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskbm9kZS5uYW1lfTwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImhpZXJpY29uIj4KICAgICAgICA8YSBocmVmPSJ7JGRlbGV0ZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlJyl9PC9hPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaGllcmljb24iPgogICAgICAgIDxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZWRpdC5naWYnIGFsdD0kbW9kLT5MYW5nKCdlZGl0Jyl9PC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAge2lmIGlzc2V0KCRub2RlLmNoaWxkcmVuKX17ZG9oaWVyIGxpc3Q9JG5vZGUuY2hpbGRyZW59ey9pZn0gICAgICAKICA8L2xpPgogIHsvZm9yZWFjaH0KPC91bD4Key9mdW5jdGlvbn0KCjxkaXYgaWQ9ImhpZXJsaXN0IiBjbGFzcz0iY2YiPgogIDxkaXYgaWQ9ImhpZXJsaXN0X2hlYWRlciI+CiAgSGllcmFyY2h5CiAgPC9kaXY+CiAge2RvaGllciBsaXN0PSRoaWVyfQo8L2Rpdj4Key9pZn0KCntpZiAhaXNzZXQoJGFqYXgpfQo8L2Rpdj57KiAjaGllcmxpc3RfY29udCAqfQoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgICA8YSBocmVmPSJ7JGFkZF91cmx9IiBjbGFzcz0icGFnZW9wdGlvbnMiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0iaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYiIGFsdD0ieyRtb2QtPkxhbmcoJ2FkZGhpZXInKX0ifSB7JG1vZC0+TGFuZygnYWRkaGllcicpfTwvYT4KICAgIHtpZiBpc3NldCgkaGllcil9CiAgICA8YSBpZD0icmVvcmRlcl9oaWVyYXJjaHlfbW9kZSIgaHJlZj0iIyI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnIGFsdD0kbW9kLT5MYW5nKCdyZW9yZGVyJyl9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgogICAgey9pZn0KICA8L3A+CjwvZGl2Pgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRjc3YnKX08L2gzPgoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2RlbGltZXRlcicpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZGVsaW1ldGVyIiB2YWx1ZT0ieyRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9kZWxpbWV0ZXInKX0iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNoZWNrX2R1cGxpY2F0ZXMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGR1cGxpY2F0ZV9vcHRzIHNlbGVjdGVkPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jaGVja2R1cGxpY2F0ZXMnKX0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWRvX2ZpZWxkZGVmcyI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0keWVzbm9vcHRzIHNlbGVjdGVkPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9maWVsZGRlZnMnKX0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kb19maWVsZHZhbHMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vb3B0cyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZmllbGR2YWxzJyl9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2NhdGVnb3J5ZGVmcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kb19jYXRlZ29yeWRlZnMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vb3B0cyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnlkZWZzJyl9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZG9fY2F0ZWdvcnl2YWxzIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNub29wdHMgc2VsZWN0ZWQ9JG1vZC0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NhdGVnb3J5dmFscycpfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NhdGVnb3J5Y29sdW1uJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhdGVnb3J5Y29sdW1uIiBzaXplPSIyMCIgdmFsdWU9InskbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2F0ZWdvcnljb2x1bW4nKX0iLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jYXRlZ29yeWNvbHVtbicpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZG9faGllcmFyY2h5ZGVmcyI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0keWVzbm9vcHRzIHNlbGVjdGVkPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9oaWVyYXJjaHlkZWZzJyl9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeXZhbHMnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZG9faGllcmFyY2h5dmFscyI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0keWVzbm9vcHRzIHNlbGVjdGVkPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9oaWVyYXJjaHl2YWxzJyl9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKe2lmICRjYW5fbG9va3VwfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfbG9va3VwbGF0bG9uZycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kb19sb29rdXAiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vb3B0cyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfbG9va3VwbGF0bG9uZycpfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4Key9pZn0KCntpZiAkdXJsX29wdGlvbmFsfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jcmVhdGVfdXJsJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNyZWF0ZV91cmwiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vb3B0cyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlX3VybCcpfQogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY3JlYXRlX3VybCcpfQogIDwvcD4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZScpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWNzdmZpbGUiIHNpemU9IjQwIi8+CiAgPC9wPgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/importkml.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfa21sJyl9PC9oMz4KCntpZiBpc3NldCgkZmluaXNoZWQpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIHR5cGU9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X251bWltcG9ydGVkJyl9OjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPnskaW1wb3J0ZWR9PC9wPgo8L2Rpdj4Ke2lmIGlzc2V0KCRlcnJvcmNvdW50KX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCB0eXBlPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9udW1lcnJvcnMnKX06PC9wPgogIDxwIHR5cGU9InBhZ2VpbnB1dCI+eyRlcnJvcmNvdW50fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZXJyb3JzJyl9OjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPgogICAgPHVsPgogICAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J29uZSd9CiAgICAgIDxsaT57JG9uZX08L2xpPgogICAgey9mb3JlYWNofQogICAgPC91bD4KICA8L3A+CjwvZGl2Pgp7L2lmfQp7L2lmfQoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfa21sZmlsZScpfTo8L3A+CiAgPHAgdHlwZT0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWttbGZpbGUiIHNpemU9IjUwIi8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaWdub3JlX2FkZHJlc3MnKX06PC9wPgogIDxwIHR5cGU9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9aWdub3JlX2FkZHJlc3MiIHZhbHVlPSIxIi8+CiAgPC9wPgo8L2Rpdj4KCntpZiAkY2FuX2RvX2xvb2t1cHMgPT0gMX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCB0eXBlPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jb252ZXJ0X2FkZHJlc3MnKX06PC9wPgogIDxwIHR5cGU9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9ZG9fY29udmVydF9hZGRyZXNzIiB2YWx1ZT0iMSIvPgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIHR5cGU9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJyl9OjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNoZWNrX2R1cGxpY2F0ZV9uYW1lIiB2YWx1ZT0iMSIvPgogIDwvcD4KPC9kaXY+Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhdGVnb3J5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yeSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNhdGVnb3JpZXN9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgp7L2lmfQoKe2lmIGlzc2V0KCRoaWVyYXJjaGllcyl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1oaWVyYXJjaHkiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllc30KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIHR5cGU9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3N0YXR1cycpfTwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPnskaW5wdXRzdGF0dXN9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgdHlwZT0icGFnZXRleHQiPjwvcD4KICA8cCB0eXBlPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_admin_feedit_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZW1haWwgc2VudCB0byBhbiBhZG1pbmlzdHJhdG9yIHdoZW4gYW4gRkVVIGFkZHMgb3IgY2hhbmdlcyBhIHJlY29yZCAqfQoKPGgzPkNvbXBhbnkgaW5mb3JtYXRpb24gaGFzIGJlZW4gY2hhbmdlZDwvaDM+Cgo8dGFibGU+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygnY29tcGFueW5hbWUnKX06PC90ZD4KIDx0ZD57JGNvbXBhbnlfbmFtZX08L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ3dlYnNpdGUnKX06PC90ZD4KIDx0ZD48YSBocmVmPSJ7JHdlYnNpdGV9Ij57JHdlYnNpdGV9PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygnY29udGFjdGVtYWlsJyl9OjwvdGQ+CiA8dGQ+eyRjb250YWN0ZW1haWx9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdvd25lcicpfTo8L3RkPgogPHRkPnskdWluZm8udXNlcm5hbWV9Jm5ic3A7KHskbW9kLT5MYW5nKCdleHBpcmVzJyl9IHskdWluZm8uZXhwaXJlc3xjbXNfZGF0ZV9mb3JtYXR9KTwvdGQ+CjwvdHI+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygndGVsZXBob25lJyl9OjwvdGQ+CiA8dGQ+eyR0ZWxlcGhvbmV9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdmYXgnKX06PC90ZD4KIDx0ZD57JGZheH08L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ2FkZHJlc3MnKX06PC90ZD4KIDx0ZD57JGFkZHJlc3N9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdsYXRpdHVkZScpfTo8L3RkPgogPHRkPnskbGF0aXR1ZGV9PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdsb25naXR1ZGUnKX06PC90ZD4KIDx0ZD57JGxvbmdpdHVkZX08L3RkPgo8L3RyPgp7aWYgaXNzZXQoJGZpZWxkZGVmcyl9Cntmb3JlYWNoIGZyb209JGZpZWxkZGVmcyBpdGVtPSdvbmUnfQo8dHI+CiA8dGQ+eyRmaWVsZGRlZi0+bmFtZX06PC90ZD4KIDx0ZD57JGZpZWxkZGVmLT52YWx1ZX08L3RkPgo8L3RyPgp7L2ZvcmVhY2h9CnsvaWZ9Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQo8dHI+CiAgPHRkPnskbW9kLT5MYW5nKCdjYXRlZ29yaWVzJyl9OjwvdGQ+CiAgPHRkPnsnLCAnfGltcGxvZGU6JGNhdGVnb3JpZXN9PC90ZD4KPC90cj4Key9pZn0KPC90YWJsZT4KCjxwcmU+Cjxjb2RlPgp7JHRlc3R8QHByaW50X3J9CjwvY29kZT4KPC9wcmU+Cgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kY2F0ZWdvcnlsaXN0IGl0ZW09J29iaid9CiAgPGRpdiBjbGFzcz0iQ29tcGFueURpcmVjdG9yeUNhdGVnb3J5Ij4KICB7aWYgaXNzZXQoJG9iai0+Y291bnQpICYmICRvYmotPmNvdW50IGd0IDB9CiAgICA8YSBocmVmPSJ7JG9iai0+c3VtbWFyeV91cmx9Ij57JG9iai0+bmFtZX08L2E+KHskb2JqLT5jb3VudH0pCiAge2Vsc2V9CiAgICB7JG9iai0+bmFtZX0gKDApCiAgey9pZn0KICA8L2Rpdj4Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogQ29tcGFueURpcmVjdG9yeSBEZXRhaWwgVGVtcGxhdGUgKn0Ke3N0cmlwfQo8YXJ0aWNsZSBjbGFzcz0iQ29tcGFueURpcmVjdG9yeUl0ZW0iPgogIHtpZiBpc3NldCgkZW50cnktPmNhbm9uaWNhbCl9eyRjYW5vbmljYWw9JGVudHJ5LT5jYW5vbmljYWx9ey9pZn0KICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgIDxkaXYgY2xhc3M9InNwYW4yIj4KICAgICAgIHtpZiAkZW50cnktPmxvZ29fbG9jYXRpb24gbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgIHtDR1NtYXJ0SW1hZ2Ugc3JjPSRlbnRyeS0+bG9nb19wYXRoIG1heF93aWR0aD0xNTAgbWF4X2hlaWdodD0xNTB9CiAgICAgICAgIDwvZGl2PgogICAgICAgey9pZn0KCiAgICAgICB7aWYgJGVudHJ5LT5waWN0dXJlX2xvY2F0aW9uIG5lICcnfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICB7Q0dTbWFydEltYWdlIHNyYz0kZW50cnktPnBpY3R1cmVfcGF0aCBtYXhfd2lkdGg9ODAwIG1heF9oZWlnaHQ9NjAwIG5vdGFnPTEgbm9lbWJlZD0xIGFzc2lnbj0ncGljdHVyZV91cmwnfQogICAgICAgICA8YSBjbGFzcz0iZmFuY3lib3giIGhyZWY9InskcGljdHVyZV91cmx9Ij57Q0dTbWFydEltYWdlIHNyYz0kZW50cnktPnBpY3R1cmVfcGF0aCBtYXhfd2lkdGg9MTUwIG1heF9oZWlnaHQ9MTUwfTwvYT4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQogICAgIDwvZGl2PgoKICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAiPiAgICAgICAKICAgICAgIDxoND57aWYgJGVudHJ5LT53ZWJzaXRlICE9Jyd9PGEgY2xhc3M9ImV4dGVybmFsIiBocmVmPSJ7JGVudHJ5LT53ZWJzaXRlfSIgdGl0bGU9InskQ29tcGFueURpcmVjdG9yeS0+TGFuZygndmlld193ZWJzaXRlJyl9Ij57JGVudHJ5LT5jb21wYW55X25hbWV9PC9hPntlbHNlfXskZW50cnktPmNvbXBhbnlfbmFtZX17L2lmfTwvaDQ+CiAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICB7JGVudHJ5LT5hZGRyZXNzfQogICAgICAgPC9kaXY+CiAgICAgICB7aWYgJGVudHJ5LT50ZWxlcGhvbmUgbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgeyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCd0ZWxlcGhvbmUnKX06IHskZW50cnktPnRlbGVwaG9uZX0KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQogICAgICAge2lmICRlbnRyeS0+ZmF4IG5lICcnfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgIHskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnZmF4Jyl9OiB7JGVudHJ5LT5mYXh9CiAgICAgICAgIDwvZGl2PgogICAgICAgey9pZn0KICAgICAgIHtpZiAkZW50cnktPmNvbnRhY3RfZW1haWwgbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgeyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjb250YWN0ZW1haWwnKX06IDxhIGhyZWY9Im1haWx0bzp7JGVudHJ5LT5jb250YWN0X2VtYWlsfSI+eyRlbnRyeS0+Y29udGFjdF9lbWFpbH08L2E+CiAgICAgICAgIDwvZGl2PgogICAgICAgey9pZn0KCiAgICAgICB7aWYgJGVudHJ5LT5oaWVyX2lkID4gMH0KICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2hpZXJhcmNoeScpfToge2NkX2hpZXJicmVhZGNydW1iIGhpZXI9JGVudHJ5LT5oaWVyX2lkIGhpZXJfY2hpbGRyZW49MX0KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiBpc3NldCgkY2F0ZWdvcmllcyl9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgIHskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnY2F0ZWdvcmllcycpfTombmJzcDsKICAgICAgICAge2ZvcmVhY2ggJGNhdGVnb3JpZXMgYXMgJGNhdG5hbWUgPT4gJHJlY30KICAgICAgICAgICA8YSBocmVmPSJ7JHJlYy0+dXJsfSIgdGl0bGU9InskcmVjLT5kZXNjcmlwdGlvbnxzdHJpcF90YWdzfHN1bW1hcml6ZTo0MH0iPnskY2F0bmFtZX08L2E+CiAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiAkZW50cnktPmRldGFpbHMgbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCIgc3R5bGU9ImJvcmRlci10b3A6IDFweCBzb2xpZCBzaWx2ZXI7IG1hcmdpbi10b3A6IDAuNWVtOyI+eyRlbnRyeS0+ZGV0YWlsc308L2Rpdj4KICAgICAgIHsvaWZ9CgogICAgICAge2lmIGlzc2V0KCRlbnRyeS0+ZmllbGRzKSB9CiAgICAgICAgIHsqIGhhbmRsZSBldmVyeXRoaW5nIGJ1dCBpbWFnZXMgKn0KICAgICAgICAgeyRoYXZlX2ltYWdlcz0wfQogICAgICAgICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+ZmllbGRzIGtleT0nZmllbGRfbmFtZScgaXRlbT1jdXN0b21maWVsZH0KICAgICAgICAgICB7aWYgJGN1c3RvbWZpZWxkLT50eXBlID09ICdpbWFnZSd9CiAgICAgICAgICAgICB7JGhhdmVfaW1hZ2VzPTF9CiAgICAgICAgICAge2Vsc2V9CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICB7JGN1c3RvbWZpZWxkLT5uYW1lfTombmJzcDsKICAgICAgICAgICAgICAge2lmICRjdXN0b21maWVsZC0+dHlwZSA9PSAnZmlsZSd9CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InskY3VzdG9tZmllbGQtPmZpbGVfdXJsfSI+eyRjdXN0b21maWVsZC0+dmFsdWV9PC9hPgogICAgICAgICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgICAgICB7JGN1c3RvbWZpZWxkLT5uYW1lfTogeyRjdXN0b21maWVsZC0+dmFsdWV9CiAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICB7L2lmfQogICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgCiAgICAgICAgIHsqIG5vdyBoYW5kbGUgaW1hZ2VzICp9CiAgICAgICAgIHtpZiAkaGF2ZV9pbWFnZXN9CiAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+ZmllbGRzIGtleT0nZmllbGRfbmFtZScgaXRlbT1jdXN0b21maWVsZH0KICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW4yIj4KICAgICAgICAgICAgICAge0NHU21hcnRJbWFnZSBzcmM9JGN1c3RvbWZpZWxkLT51cmwgbWF4X3dpZHRoPTgwMCBtYXhfaGVpZ2h0PTYwMCBub3RhZz0xIG5vZW1iZWQ9MSBhc3NpZ249J2ltZyd9CiAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmYW5jeWJveCIgaHJlZj0ieyRpbWd9IiByZWw9ImltZ19hbGJ1bSI+e0NHU21hcnRJbWFnZSBzcmM9JGN1c3RvbWZpZWxkLT51cmwgd2lkdGg9MTUwIGhlaWdodD0xNTB9PC9hPgogICAgICAgICAgICAgPC9kaXY+IAogICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgey9pZn0KICAgICAgIHsvaWZ9CgogICAgIDwvZGl2PnsqIHNwYW4xMCAqfQogIDwvZGl2PnsqIHRvcCByb3cgKn0KPC9hcnRpY2xlPgp7L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_fe_gallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZnJvbnRlbmQgZ2FsbGVyeSB0ZW1wbGF0ZSAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendalbum_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogCiAqKiBmcm9udGVuZCBlZGl0IGFsYnVtIHRlbXBsYXRlICoqCiBUaGlzIGlzIGEgc2FtcGxlIHRlbXBsYXRlLi4uIGlsbHVzdHJhdGluZyBob3cgdG8gZW5hYmxlIGVkaXRpbmcgdXNpbmcgdGhlIGZlX2VkaXRfZ2FsbGVyeSBhY3Rpb24KIExpa2UgYWxsIG90aGVyIG1vZHVsZSB0ZW1wbGF0ZXMsIHRoaXMgaXMgbm90IGludGVuZGVkIHRvIGJlIGEgY29tcGxldGUgd29ya2luZyBzb2x1dGlvbiBmb3IgYWxsIHdlYnNpdGVzLiAgSXQgaXMgc2ltcGx5IGEgc3RhcnRpbmcgcG9pbnQuCgogVGhpcyB0ZW1wbGF0ZSBwcm92aWRlcyBzb3J0aW5nLCBkcmFnIGFuZCBkcm9wIHVwbG9hZCAoZm9yIG1vc3Qgbm9uIElFIGJyb3dzZXJzKSBhbmQgZHJhZyB0byBkZWxldGUgZnVuY3Rpb25hbGl0eS4gIGJ1dCBpdCdzIHN0eWxpbmcgaXMgY3J1ZGUuCiAgCiBUaGlzIHRlbXBsYXRlIHVzZXMgdGhlIEpRdWVyeVVJIHByb2dyZWVzIGJhciwgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgY2xhc3NlcywgYXMgd2VsbCBhcyB0aGUgYmx1aW1wIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcy4KIFRoZXNlIGphdmFzY3JpcHQgbGlicmFyaWVzIG11c3QgYmUgaW5jbHVkZWQgaW4gdGhlIHBhZ2UgYmVmb3JlIHRoaXMgdGVtcGxhdGUgY2FuIGJlICB1c2VkIHN1Y2Nlc3NmdWxseS4KCiBUaGUgZmlsZSBmaWVsZCBuYW1lZCAnaW1hZ2VfdXBsb2FkJyBpcyBpbXBvcnRhbnQgYW5kIG11c3QgYmUgcmV0YWluZWQuCiBUaGUgZmVfZWRpdF9hbGJ1bSBhY3Rpb24gYWNjZXB0cyB0aGVzZSBwYXJhbWV0ZXJzOgogICBjb21wYW55aWQgICAgPSB0aGUgY29tcGFueSBpZAogICBjZF9mbGRpZCAgICAgPSB0aGUgZmllbGQgaWQgKG11c3QgYmUgYSBmaWVsZCBvZiB0eXBlIGFsYnVtLCBhbmQgbXVzdCBiZSBwdWJsaWMpCiAgIGNkX3N1YmFjdGlvbiA9IG5vbmUgKG91dHB1dHMgd2hvbGUgdGVtcGxhdGUpLCBnYWxsZXJ5LCBkZWxldGUsIHNvcnQsIG9yIHVwbG9hZAogICBjZF9vcmRlciAgICAgPSBhcnJheSBvZiBpbnRlZ2VycyByZXByZXNlbnRpbmcgdGhlIG5ldyBvcmRlciAoZm9yIHRoZSBzb3J0IHN1YmFjdGlvbikKICAgY2RfaWR4ICAgICAgID0gaW50ZWdlciBpbmRleCBvZiB0aGUgaXRlbSB0byBkZWxldGUgKGZvciB0aGUgZGVsZXRlIHN1YmFjdGlvbikKKn0KCntpZiAkc3ViYWN0aW9uICE9ICdnYWxsZXJ5J30KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwpmdW5jdGlvbiBfcmVmcmVzaF9nYWxsZXJ5KCkgewogJCgnI2NkX2VkaXRfZ2FsbGVyeScpLmxvYWQoJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDb21wYW55RGlyZWN0b3J5JyBhY3Rpb249JGFjdGlvbnBhcmFtcy5hY3Rpb24gY29tcGFueWlkPSRjb21wYW55aWQgY2RfZmxkaWQ9JGFjdGlvbnBhcmFtcy5jZF9mbGRpZCBjZF9zdWJhY3Rpb249Z2FsbGVyeSB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLGZ1bmN0aW9uKCl7CiAgIC8vIGZhbmN5Ym94ZXMgZm9yIGltYWdlcwogICBpZiggJC5mYW5jeWJveCApIHsKICAgICAkKCdhLmZhbmN5Ym94JykuZmFuY3lib3goKTsKICAgfQoKICAgJCgnI2NkX2VkaXRfZ2FsbGVyeV9maWxlcyBsaScpLmRyYWdnYWJsZSh7CiAgICAgcmV2ZXJ0OiAnaW52YWxpZCcKICAgfSk7CgogICAvLyBtYWtlIHNvcnRhYmxlIHN0dWZmCiAgICQoJyNjZF9lZGl0X2dhbGxlcnlfZmlsZXMnKS5zb3J0YWJsZSh7CiAgICAgY3Vyc29yOiAnY3Jvc3NoYWlyJywKICAgICB1cGRhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgdmFyIG9yZGVyID0gW107CiAgICAgICAkKCcjY2RfZWRpdF9nYWxsZXJ5X2ZpbGVzIGxpJykuZWFjaChmdW5jdGlvbihpZHgsZWxtKXsKICAgICAgICAgYWxlcnQoZWxtLmlkKycgJytlbG0uaWQuc3BsaXQoJ18nLDMpWzJdKTsKICAgICAgICAgb3JkZXIucHVzaChlbG0uaWQuc3BsaXQoJ18nLDMpWzJdKTsKICAgICAgIH0pOwogICAgICAgJC5hamF4KHsKICAgICAgICAgdXJsOiAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NvbXBhbnlEaXJlY3RvcnknIGFjdGlvbj0kYWN0aW9ucGFyYW1zLmFjdGlvbiBjb21wYW55aWQ9JGNvbXBhbnlpZCBjZF9mbGRpZD0kYWN0aW9ucGFyYW1zLmNkX2ZsZGlkIGNkX3N1YmFjdGlvbj1zb3J0IHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZScsCgkgdHlwZTogJ1BPU1QnLAogICAgICAgICBkYXRhOiB7IGNudG50MDFjZF9vcmRlcjogb3JkZXIgfSwKICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSx0ZXh0U3RhdHVzLGpxWEhSKSB7CiAgICAgICAgICAgX3JlZnJlc2hfZ2FsbGVyeSgpOwogICAgICAgICB9CiAgICAgICB9KTsgICAKICAgICB9CiAgIH0pOwogfSk7Cn0KCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgX3JlZnJlc2hfZ2FsbGVyeSgpOwoKICBpZiggJC5maWxldXBsb2FkICkgewogICAgJChkb2N1bWVudCkuYmluZCgnZHJvcCBkcmFnb3ZlcicsIGZ1bmN0aW9uKGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgfQoKICAvLyBkcmFnL2Ryb3AgdXBsb2FkIHN0dWZmCiAgJCgnI2ltYWdlX3VwbG9hZCcpLmZpbGV1cGxvYWQoewogICAgZGF0YVR5cGU6ICdqc29uJywKICAgIGRyb3B6b25lOiAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKSwKICAgIHVybDogJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPSRhY3Rpb25wYXJhbXMuYWN0aW9uIGNvbXBhbnlpZD0kY29tcGFueWlkIGNkX2ZsZGlkPSRhY3Rpb25wYXJhbXMuY2RfZmxkaWQgY2Rfc3ViYWN0aW9uPXVwbG9hZCB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgZm9ybTogbnVsbCwKICAgIGZvcm1EYXRhOiB7IGNudG50MDFfZm9vOiAnYmFyJyB9LAogICAgbWF4Q2h1bmtTaXplOiA1MDAqMTAyNCwKICAgCiAgICBwcm9ncmVzc2FsbDogZnVuY3Rpb24oZSxkYXRhKSB7CiAgICAgIC8vIGNyZWF0ZSBhIHByb2dyZXNzIGJhciAocmVxdWlyZXMganF1ZXJ5IFVJKQogICAgICBpZiggJC5wcm9ncmVzc2JhcigpICkgewogICAgICAgIHZhciB0b3RhbCA9IChkYXRhLmxvYWRlZCAvIGRhdGEudG90YWwgKiAxMDApLnRvRml4ZWQoMCk7CiAgICAgICAgJCgnI2NkX2FsYnVtX2Ryb3B6b25lJykucHJvZ3Jlc3NiYXIoeyB2YWx1ZTogcGFyc2VJbnQodG90YWwpIH0pOwogICAgICAgICQoJy51aS1wcm9ncmVzc2Jhci12YWx1ZScpLmh0bWwodG90YWwrJyUnKTsKICAgICAgfQogICAgfSwKICAgIAogICAgc3RvcDogZnVuY3Rpb24oZSxkYXRhKSB7CiAgICAgIC8vIGhpZGUgdGhlIHByb2dyZXNzIGJhciAocmVxdWlyZXMganF1ZXJ5IFVJKQogICAgICBpZiggJC5wcm9ncmVzc2JhcigpICkgewogICAgICAgICQoJyNjZF9hbGJ1bV9kcm9wem9uZScpLnByb2dyZXNzYmFyKCdkZXN0cm95Jyk7CiAgICAgIH0KICAgIH0sCgogICAgZG9uZTogZnVuY3Rpb24oZSxkYXRhKSB7CiAgICAgIGlmKCBkYXRhLnJlc3VsdCApIHsKICAgICAgICBmb3IoIHZhciBrZXkgaW4gZGF0YS5yZXN1bHQgKSB7CiAgICAgICAgICBpZiggZGF0YS5yZXN1bHRba2V5XS5lcnJvciApIHsKICAgICAgICAgICAgYWxlcnQoZGF0YS5yZXN1bHRba2V5XS5uYW1lKycgZmFpbGVkOiAnK2RhdGEucmVzdWx0W2tleV0uZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBfcmVmcmVzaF9nYWxsZXJ5KCk7CiAgICB9IAogIH0pOwoKICAkKCcjY2RfYWxidW1fZHJvcHpvbmUnKS5kcm9wcGFibGUoewogICAgIGRyb3A6IGZ1bmN0aW9uKGV2ZW50LHVpKSB7CiAgICAgICB1aS5kcmFnZ2FibGUuZmFkZU91dCgnc2xvdycpOwogICAgICAgdmFyIHggPSB1aS5kcmFnZ2FibGUuYXR0cignaWQnKTsKICAgICAgIHZhciBpZHggPSB4LnNwbGl0KCdfJywzKVsyXTsKCiAgICAgICAkLmFqYXgoewogICAgICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPSRhY3Rpb25wYXJhbXMuYWN0aW9uIGNvbXBhbnlpZD0kY29tcGFueWlkIGNkX2ZsZGlkPSRhY3Rpb25wYXJhbXMuY2RfZmxkaWQgY2Rfc3ViYWN0aW9uPWRlbGV0ZSB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgICAgICB0eXBlOiAnUE9TVCcsCiAgICAgICAgIGRhdGE6IHsgY250bnQwMWNkX2lkeDogaWR4IH0sCgkgZXJyb3I6IGZ1bmN0aW9uIChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsKICAgICAgICAgICBhbGVydCgndXBsb2FkIGZhaWxlZDogJy5lcnJvclRocm93bik7CiAgICAgICAgIH0sCiAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKCBkYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUiApIHsKICAgICAgICAgICBfcmVmcmVzaF9nYWxsZXJ5KCk7CiAgICAgICAgIH0KICAgICAgIH0pOwoKICAgICB9CiAgfSk7Cn0pOwovL11dPgo8L3NjcmlwdD4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNjZF9lZGl0X2dhbGxlcnlfZmlsZXMgbGkgeyAKICBtYXJnaW46IDNweCAzcHggM3B4IDA7IHBhZGRpbmc6IDFweDsgCiAgZmxvYXQ6IGxlZnQ7IAogIHdpZHRoOiAxMDBweDsgCiAgaGVpZ2h0OiA5MHB4OyAKICBmb250LXNpemU6IDRlbTsgCiAgdGV4dC1hbGlnbjogY2VudGVyOyAKICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKfQojY2RfYWxidW1fZHJvcHpvbmUgewogIGhlaWdodDogNjRweDsKICB3aWR0aDogNjRweDsKICBmbG9hdDogbGVmdDsKICBib3JkZVI6IDFweCBzb2xpZCByZWQ7CiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7cm9vdF91cmx9L21vZHVsZXMvQ29tcGFueURpcmVjdG9yeS9pY29ucy91cGxvYWRfc20ucG5nJyk7Cn0KI2NkX2FsYnVtX2RlbHpvbmUgewogIGhlaWdodDogNjRweDsKICB3aWR0aDogNjRweDsKICBmbG9hdDogbGVmdDsKICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3tyb290X3VybH0vbW9kdWxlcy9Db21wYW55RGlyZWN0b3J5L2ljb25zL3JlY3ljbGVfc20ucG5nJyk7Cn0KPC9zdHlsZT4KCntjZ2VfaXNpZSBhc3NpZ249J2llJ30KPGZpZWxkc2V0Pgo8bGVnZW5kPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygndXBsb2FkJyl9OjwvbGVnZW5kPgogIDxkaXYgc3R5bGU9IndpZHRoOiA0OSU7IGZsb2F0OiBsZWZ0OyI+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iaW1hZ2VfdXBsb2FkIiBpZD0iaW1hZ2VfdXBsb2FkIiBtdWx0aXBsZS8+CiAgPC9kaXY+CiAge2lmICEkaWV9CiAgPGRpdiBzdHlsZT0id2lkdGg6IDQ5JTsgZmxvYXQ6IGxlZnQ7Ij4KICAgIDxkaXYgaWQ9ImNkX2FsYnVtX2Ryb3B6b25lIiB0aXRsZT0ieyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdkcm9wX2hlcmUnKX0iPjwvZGl2PgogICAgPGRpdiBpZD0iY2RfYWxidW1fZGVsem9uZSIgdGl0bGU9InskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnZHJvcF9oZXJlX3RvX2RlbGV0ZScpfSI+PC9kaXY+CiAgPC9kaXY+CiAgey9pZn0KICA8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsiPjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGRpdiBpZD0iY2RfZWRpdF9nYWxsZXJ5Ij4Key9pZn0KCiAge2lmIGlzc2V0KCRmaWxlcyl9CiAgICA8dWwgaWQ9ImNkX2VkaXRfZ2FsbGVyeV9maWxlcyIgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7Ij4KICAgIHtmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09J29uZV9maWxlJ30KICAgICAgPGxpIGlkPSJmaWxlX2lkeF97JG9uZV9maWxlQGluZGV4fSI+PGEgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSJ7Q0dTbWFydEltYWdlIHNyYzE9JGJhc2VfdXJsIHNyYzI9JG9uZV9maWxlIG5vZW1iZWQ9MSB3aWR0aD01MDAgd2lkdGg9NTAwIG5vdGFnPTF9Ij57Q0dTbWFydEltYWdlIHNyYzE9JGJhc2VfZGlyIHNyYzI9JG9uZV9maWxlIHdpZHRoPTgwIGhlaWdodD04MH08L2E+PC9saT4KICAgIHsvZm9yZWFjaH0KICAgIDwvdWw+CiAgey9pZn0KCntpZiAkc3ViYWN0aW9uICE9ICdnYWxsZXJ5J30KPC9kaXY+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnZV9oYXZlX21vZHVsZSBtPSdDR0dvb2dsZU1hcHMnIGFzc2lnbj0ndG1wJ30KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntqc21pbn0KdmFyIGdlb2NvZGV1cmwgID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDR0dvb2dsZU1hcHMnIGFjdGlvbj0nZ2V0Z2VvY29kZScgdXJsb25seT0xfScgKyAnJnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CntpZiAkdG1wfQogJCgnI2xvb2t1cGdvZXNoZXJlJykuaHRtbCgnPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9Imxvb2t1cCIgbmFtZT0ibG9va3VwIiB2YWx1ZT0ieyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdsb29rdXAnKX0iLz4nKTsKICQoJyNsb29rdXAnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oZSl7CiAgdmFyIGFkZHJlc3MgPSAkKCcjYWRkcmVzcycpLnZhbCgpOwogIGlmKCBhZGRyZXNzICE9ICcnICkgewogICAgdmFyIHVybCA9IGdlb2NvZGV1cmwucmVwbGFjZSgvYW1wOy9nLCcnKTsKICAgIHZhciBsYXQgPSAwOwogICAgdmFyIGxvbmcgPSAwOwogICAgJC5wb3N0KHVybCwgJ2NudG50MDFhZGRyZXNzPScrYWRkcmVzcywKICAgICAgZnVuY3Rpb24oZGF0YSkgeyAKICAgICAgICBpZiggZGF0YS5zdGF0dXMgPT0gJ3N1Y2Nlc3MnICkgewogICAgICAgICAgbGF0ID0gZGF0YS5sYXQ7IGxvbmc9ZGF0YS5sb247CiAgICAgICAgICAkKCcjbGF0aXR1ZGUnKS52YWwobGF0KTsKICAgICAgICAgICQoJyNsb25naXR1ZGUnKS52YWwobG9uZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgICwgImpzb24iICk7CiAgfQogIHJldHVybiBmYWxzZTsKIH0pOwp7L2lmfQoKICQoJyNjYW5jZWwnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgdmFyIHVybCA9ICd7Y21zX3NlbGZsaW5rIGhyZWY9JHBhZ2VfYWxpYXN9JzsKICAgbG9jYXRpb24ucmVwbGFjZSh1cmwpOwogICByZXR1cm4gZmFsc2U7CiB9KTsKICQoJyNlZGl0X2FsYnVtJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKGUpewogICByZXR1cm4gY29uZmlybSgneyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjb25maXJtX2VkaXRfYWxidW0nKX0nKTsKIH0pOwp9KTsKey9qc21pbn08L3NjcmlwdD4KCjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CntpZiAkdGhlX2NvbXBhbnktPmlkID4gMX0KPGg0PnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnZWRpdGNvbXBhbnknKX08L2g0Pgp7ZWxzZX0KPGg0PnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnYWRkY29tcGFueScpfTwvaDQ+CnsvaWZ9CjwvZGl2PgoKe2lmIGlzc2V0KCRtZXNzYWdlKX0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZXJyb3IiPnskbWVzc2FnZX08L2Rpdj4Key9pZn0KCnskc3RhcnRmb3JtfQo8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2NvbXBhbnluYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0ic3BhbjkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfY29tcGFueV9uYW1lIiB2YWx1ZT0ieyR0aGVfY29tcGFueS0+Y29tcGFueV9uYW1lfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc3RhdHVzZXMpfQo8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3N0YXR1cycpfTo8L3A+CiAgPHAgY2xhc3M9InNwYW45Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9zdGF0dXMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHN0YXR1c2VzIHNlbGVjdGVkPSR0aGVfY29tcGFueS0+c3RhdHVzfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4Key9pZn0KPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICA8cCBjbGFzcz0ic3BhbjMgdGV4dC1yaWdodCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdhZGRyZXNzJyl9OjwvcD4KICA8cCBjbGFzcz0ic3BhbjkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2FkZHJlc3MiIHZhbHVlPSJ7JHRoZV9jb21wYW55LT5hZGRyZXNzfSIgc2l6ZT0iMzAiLz4KICAgICZuYnNwOzxzcGFuIGlkPSJsb29rdXBnb2VzaGVyZSI+PC9zcGFuPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgPHAgY2xhc3M9InNwYW4zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnbGF0aXR1ZGUnKX06PC9wPgogIDxwIGNsYXNzPSJzcGFuOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9sYXRpdHVkZSIgaWQ9ImxhdGl0dWRlIiB2YWx1ZT0ieyR0aGVfY29tcGFueS0+bGF0aXR1ZGV9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgPHAgY2xhc3M9InNwYW4zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnbG9uZ2l0dWRlJyl9OjwvcD4KICA8cCBjbGFzcz0ic3BhbjkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9uZ2l0dWRlIiBpZD0ibG9uZ2l0dWRlIiB2YWx1ZT0ieyR0aGVfY29tcGFueS0+bG9uZ2l0dWRlfSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ3RlbGVwaG9uZScpfTo8L3A+CiAgPHAgY2xhc3M9InNwYW45Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3RlbGVwaG9uZSIgdmFsdWU9InskdGhlX2NvbXBhbnktPnRlbGVwaG9uZX0iIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIi8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICA8cCBjbGFzcz0ic3BhbjMgdGV4dC1yaWdodCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdmYXgnKX06PC9wPgogIDxwIGNsYXNzPSJzcGFuOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF90ZWxlcGhvbmUiIHZhbHVlPSJ7JHRoZV9jb21wYW55LT50ZWxlcGhvbmV9IiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgPHAgY2xhc3M9InNwYW4zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnY29udGFjdGVtYWlsJyl9OjwvcD4KICA8cCBjbGFzcz0ic3BhbjkiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfY29udGFjdF9lbWFpbCIgdmFsdWU9InskdGhlX2NvbXBhbnktPmNvbnRhY3RfZW1haWx9IiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgPHAgY2xhc3M9InNwYW4zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnd2Vic2l0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InNwYW45Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3dlYnNpdGUiIHZhbHVlPSJ7JHRoZV9jb21wYW55LT53ZWJzaXRlfSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2RldGFpbHMnKX06PC9wPgogIDxwIGNsYXNzPSJzcGFuOSI+CiAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jZF9kZXRhaWxzIHd5c2l3eWc9dHJ1ZSBjb250ZW50PSR0aGVfY29tcGFueS0+ZGV0YWlsc30KICA8L3A+CjwvZGl2PgoKeyogaW1hZ2UsIGFuZCBsb2dvIGFyZSBkZXByZWNhdGVkICp9Cgo8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2ltYWdldGV4dCcpfTo8L3A+CiAgPHAgY2xhc3M9InNwYW45Ij4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ltYWdlIiBzaXplPSI1MCIgYWNjZXB0PSJpbWFnZS8qIi8+CiAgICB7aWYgJHRoZV9jb21wYW55LT5pbWFnZV9sb2NhdGlvbn0KICAgIDxici8+CiAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyR0aGVfY29tcGFueS0+aW1hZ2VfbG9jYXRpb259PGJyLz4KICAgIDxsYWJlbCBmb3I9ImNkX2RlbGV0ZWltYWdlIj57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2RlbGV0ZScpfSZuYnNwOzwvbGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2RlbGV0ZWltYWdlIiB2YWx1ZT0iMSIgaWQ9ImNkX2RlbGV0ZWltYWdlIi8+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2xvZ290ZXh0Jyl9OjwvcD4KICA8cCBjbGFzcz0ic3BhbjkiPgogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9nbyIgc2l6ZT0iNTAiIGFjY2VwdD0iaW1hZ2UvKiIvPgogICAge2lmICR0aGVfY29tcGFueS0+bG9nb19sb2NhdGlvbn0KICAgIDxici8+CiAgICB7JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyR0aGVfY29tcGFueS0+bG9nb19sb2NhdGlvbn08YnIvPgogICAgPGxhYmVsIGZvcj0iY2RfZGVsZXRlbG9nbyI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdkZWxldGUnKX0mbmJzcDs8L2xhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9kZWxldGVsb2dvIiB2YWx1ZT0iMSIgaWQ9ImNkX2RlbGV0ZWxvZ28iLz4KICAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkZmllbGRkZWZzKX0KIHtmb3JlYWNoIGZyb209JGZpZWxkZGVmcyBrZXk9J2ZsZG5hbWUnIGl0ZW09J29uZWZpZWxkJ30KIHthc3NpZ24gdmFyPSdmbGQnIHZhbHVlPSR0aGVfY29tcGFueS0+Z2V0X2ZpZWxkKCRvbmVmaWVsZC0+aWQpfQogPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgPHAgY2xhc3M9InNwYW4zIHRleHQtcmlnaHQiPnskb25lZmllbGQtPm5hbWV9OjwvcD4KICAgPHAgY2xhc3M9InNwYW45Ij4KICAgICB7aWYgJG9uZWZpZWxkLT50eXBlID09ICdmaWxlJyB8fCAkb25lZmllbGQtPnR5cGUgPT0gJ2ltYWdlJ30KICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ZpZWxkX3skb25lZmllbGQtPmlkfSIgc2l6ZT0iNTAiLz4KICAgICAgIHtpZiBpc3NldCgkZmxkLT52YWx1ZSkgJiYgJGZsZC0+dmFsdWV9CiAgICAgICA8YnIvPgogICAgICAgeyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjdXJyZW50X3ZhbHVlJyl9OiZuYnNwO3skZmxkLT52YWx1ZXxkZWZhdWx0OicnfQogICAgICAgPGJyLz4KICAgICAgIDxsYWJlbCBmb3I9ImNkX2ZpZWxkX3skb25lZmllbGQtPmlkfSI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdkZWxldGUnKX0mbmJzcDs8L2xhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNkX2ZpZWxkX3skb25lZmllbGQtPmlkfSIgbmFtZT0ieyRhY3Rpb25pZH1jZF9kZWxldGVmaWVsZF97JG9uZWZpZWxkLT5pZH0iIHZhbHVlPSIxIi8+CiAgICAgICAgey9pZn0KICAgICB7ZWxzZWlmICRvbmVmaWVsZC0+dHlwZSA9PSAnY2hlY2tib3gnfQogICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ZpZWxkX3skb25lZmllbGQtPmlkfSIgdmFsdWU9IjEiIHtpZiAkZmxkLT52YWx1ZX1jaGVja2VkPSJjaGVja2VkInsvaWZ9Lz4KICAgICB7ZWxzZWlmICRvbmVmaWVsZC0+dHlwZSA9PSAndGV4dGJveCd9CiAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZF97JG9uZWZpZWxkLT5pZH0iIHZhbHVlPSJ7JGZsZC0+dmFsdWV8ZGVmYXVsdDonJ30iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgIHtlbHNlaWYgJG9uZWZpZWxkLT50eXBlID09ICd0ZXh0YXJlYSd9CiAgICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZF97JG9uZWZpZWxkLT5pZH0iIHJvd3M9IjUiIGNvbHM9IjUwIj57JGZsZC0+dmFsdWV8ZGVmYXVsdDonJ308L3RleHRhcmVhPgogICAgIHtlbHNlaWYgJG9uZWZpZWxkLT50eXBlID09ICdkcm9wZG93bicgfHwgJG9uZWZpZWxkLT50eXBlID09ICdpY29uJ30KICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZF97JG9uZWZpZWxkLT5pZH0iPgogICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvbmVmaWVsZC0+b3B0aW9ucyBzZWxlY3RlZD0kZmxkLT52YWx1ZXxkZWZhdWx0OicnfQogICAgICAgPC9zZWxlY3Q+CiAgICAge2Vsc2VpZiAkb25lZmllbGQtPnR5cGUgPT0gJ211bHRpc2VsZWN0J30KICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZF97JG9uZWZpZWxkLT5pZH1bXSIgc2l6ZT0iMyIgbXVsdGlwbGU9Im11bHRpcGxlIj4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb25lZmllbGQtPm9wdGlvbnMgc2VsZWN0ZWQ9JGZsZC0+c2VsZWN0ZWR8ZGVmYXVsdDonJ30KICAgICAgIDwvc2VsZWN0PgogICAgIHsvaWZ9CiAgIDwvcD4KIDwvZGl2Pgogey9mb3JlYWNofQp7L2lmfQoKPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KIDxwIGNsYXNzPSJzcGFuMyB0ZXh0LXJpZ2h0Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiA8cCBjbGFzcz0ic3BhbjkiPgogICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfaGllcl9pZCI+CiAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaHlfbGlzdCBzZWxlY3RlZD0kdGhlX2NvbXBhbnktPmhpZXJfaWR9CiAgIDwvc2VsZWN0PgogPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkY2F0ZWdvcmllcyl9CjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgPHAgY2xhc3M9InNwYW4zIHRleHQtcmlnaHQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnY2F0ZWdvcmllcycpfTo8L3A+CiAgPHAgY2xhc3M9InNwYW45Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9jYXRlZ29yaWVzW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgc2l6ZT0iNSI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY2F0bmFtZXMgc2VsZWN0ZWQ9JHNlbF9jYXRlZ29yaWVzfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgPHAgY2xhc3M9InNwYW4zIj48L3A+CiAgPHAgY2xhc3M9InNwYW45Ij4KICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3N1Ym1pdCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdzdWJtaXQnKX08L2J1dHRvbj4KICAgIDxidXR0b24gaWQ9ImNhbmNlbCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdjYW5jZWwnKX08L2J1dHRvbj4KICAgIHtpZiBpc3NldCgkYWxidW1faWQpfSAmJiAgJGFsYnVtX2lkfQogICAgICA8YSBpZD0iZWRpdF9hYnVtIiBocmVmPSJ7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1mZV9lZGl0X2FsYnVtIGNvbXBhbnlpZD0kdGhlX2NvbXBhbnktPmlkIGNkX2ZsZGlkPSRhbGJ1bV9pZCB1cmxvbmx5PTF9Ij57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2VkaXRfYWxidW0nKX08L2E+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+CnskZW5kZm9ybX0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendimport_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZnJvbnRlbmQgY3N2IGltcG9ydCB0ZW1wbGF0ZSAqfQp7aWYgaXNzZXQoJG1lc3NhZ2UpfQo8cD48c3Ryb25nPnskbWVzc2FnZX08L3N0cm9uZz48L3A+Cjxoci8+CnsvaWZ9CntpZiBpc3NldCgkZXJyb3JzKX0KPGRpdiBjbGFzcz0iZXJyb3IiPgo8dWw+CiAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J2Vycm9yJ30KICAgIDxsaT57JGVycm9yfTwvbGk+CiAgey9mb3JlYWNofQo8L3VsPgo8L2Rpdj4Key9pZn0KCnskZm9ybXN0YXJ0fQo8cD57JG1vZC0+TGFuZygnaW5mb19jc3ZmaWxlJyl9PC9wPgp7aWYgJG1heHJlY29yZHMgPiAwfTxwPnskbW9kLT5MYW5nKCdtc2dfc2xvdHN1c2VkJywkbnVtcmVjb3JkcywkbWF4cmVjb3Jkcyl9PC9wPnsvaWZ9CjxkaXYgY2xhc3M9InBhZ2Vyb3ciPgogIDxwIGNsYXNzPSJmb3JtcHJvbXB0Ij57JG1vZC0+TGFuZygnZGVsaW1pdGVyJyl9PC9wPgogIDxwIGNsYXNzPSJmb3JtaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfZGVsaW1pdGVyIiBzaXplPSIzIiBtYXhsZW5ndGg9IjMiIHZhbHVlPSIsIi8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZXJvdyI+CiAgPHAgY2xhc3M9ImZvcm1wcm9tcHQiPnskbW9kLT5MYW5nKCdpbXBvcnRfZmlsZW5hbWUnKX08L3A+CiAgPHAgY2xhc3M9ImZvcm1pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1jZF9jc3ZmaWxlIiBzaXplPSI1MCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2Vyb3ciPgogIDxwIGNsYXNzPSJmb3JtcHJvbXB0Ij48L3A+CiAgPHAgY2xhc3M9ImZvcm1pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2PgoKeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendlist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGVtcGxhdGUgdG8gbGlzdCBhIHBhcnRpY3VsYXIgdXNlcnMgY29tcGFuaWVzIGFuZCBvcHRpb25hbGx5IGFsbG93IGVkaXRpbmcgKn0KPGRpdiBpZD0iY29tcGRpcl9mcm9udGVuZF9saXN0Ij4Ke2lmIGlzc2V0KCRyZWNvcmRzKX0KICA8dGFibGUgY2xhc3M9InRhYmxlIj4KICAgIDx0aGVhZD4KICAgICAgPHRyPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnaWQnKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdzdGF0dXMnKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnY3JlYXRlZCcpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdtb2RpZmllZCcpfTwvdGg+CiAgICAgICAge2lmICRoYXZlX2FsYnVtfTx0aCBjbGFzcz0iaWNvbiI+PC90aD57L2lmfQogICAgICAgIDx0aCBjbGFzcz0iaWNvbiI+PC90aD4KICAgICAgICB7aWYgJGZyb250ZW5kX2RlbGV0ZX08dGggY2xhc3M9Imljb24iPjwvdGg+ey9pZn0KICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICB7Zm9yZWFjaCBmcm9tPSRyZWNvcmRzIGl0ZW09J29uZXJlY29yZCd9CiAgICAgIDx0cj4KICAgICAgICA8dGQ+eyRvbmVyZWNvcmQuaWR9PC90ZD4KICAgICAgICA8dGQ+eyRvbmVyZWNvcmQuY29tcGFueV9uYW1lfTwvdGQ+CiAgICAgICAgPHRkPnskbW9kLT5MYW5nKCRvbmVyZWNvcmQuc3RhdHVzKX08L3RkPgogICAgICAgIDx0ZD57JG9uZXJlY29yZC5jcmVhdGVfZGF0ZXxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KICAgICAgICA8dGQ+eyRvbmVyZWNvcmQubW9kaWZpZWRfZGF0ZXxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KICAgICAgICB7aWYgJGhhdmVfYWxidW19PHRkPjxhIGhyZWY9Inskb25lcmVjb3JkLmdhbGxlcnlfdXJsfSI+eyRtb2QtPkxhbmcoJ2FsYnVtJyl9PC9hPjwvdGQ+ey9pZn0KICAgICAgICA8dGQ+PGEgaHJlZj0ieyRvbmVyZWNvcmQuZWRpdF91cmx9Ij57JG1vZC0+TGFuZygnZWRpdCcpfTwvYT48L3RkPgogICAgICAgIHtpZiAkZnJvbnRlbmRfZGVsZXRlfTx0ZD48YSBocmVmPSJ7JG9uZXJlY29yZC5kZWxldGVfdXJsfSI+eyRtb2QtPkxhbmcoJ2RlbGV0ZScpfTwvYT48L3RkPnsvaWZ9CiAgICAgIDwvdHI+CiAgICB7L2ZvcmVhY2h9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CnsvaWZ9Cgp7aWYgaXNzZXQoJGZlX2FkZF91cmwpfQogIDxkaXYgY2xhc3M9InJvd19mbHVpZCI+CiAgICA8YSBjbGFzcz0ibGluayIgaHJlZj0ieyRmZV9hZGRfdXJsfSI+QWRkIE5ldyBSZWNvcmQ8L2E+CiAgICB7aWYgaXNzZXQoJGZlX2ltcG9ydF91cmwpfQogICAgICAmbmJzcDs8YSBjbGFzcz0ibGluayIgaHJlZj0ieyRmZV9pbXBvcnRfdXJsfSI+SW1wb3J0IEZyb20gQVNDSUk8L2E+CiAgICB7L2lmfQogIDwvZGl2Pgp7L2lmfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_hierlist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc3NldCgkZGF0YWtleSl9CiAge2Fzc2lnbiB2YXI9J2RhdGFrZXknIHZhbHVlPSdub2RlJ30Key9pZn0Ke2lmICFpc3NldCgkaGRlcHRoKX17YXNzaWduIHZhcj0naGRlcHRoJyB2YWx1ZT0xfXsvaWZ9Cntmb3JlYWNoIGZyb209JGhpZXJkYXRhIGtleT0na2V5JyBpdGVtPSdpdGVtJ30KICA8dWwgY2xhc3M9ImNkX2hpZXIteyRoZGVwdGh9Ij4KICB7aWYgJGtleSA9PSAkZGF0YWtleX0KICAgIHsqIGl0J3MgYSBub2RlLCB3ZSBkaXNwbGF5IGl0ICp9CiAgICA8bGk+e2lmICRpdGVtLmNvdW50IGd0IDB9CiAgICAgICAgIDxhIGhyZWY9InskaXRlbS51cmx9Ij57JGl0ZW0ubmFtZX0gKHskaXRlbS5jb3VudH0pPC9hPgogICAgICAgIHtlbHNlfQogICAgICAgICB7JGl0ZW0ubmFtZX0gKHskaXRlbS5jb3VudH0pCiAgICAgICAgey9pZn0KICAgIDwvbGk+CiAge2Vsc2V9CiAgICB7KiBpdCdzIGEgY2hpbGQgLS0gY2FsbCB0aGlzIHRlbXBsYXRlIGFnYWluIHdpdGggdGhlIG5vZGUgKn0KICAgIHtpbmNsdWRlIGZpbGU9JHNtYXJ0eS50ZW1wbGF0ZSBoaWVyZGF0YT0kaXRlbSBkYXRha2V5PSdub2RlJyBoZGVwdGg9JGhkZXB0aCsxfQogIHsvaWZ9CiAgPC91bD4Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_newsearch_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbmV3IHNlYXJjaCB0ZW1wbGF0ZSAqfQogIG1pc2MgcGFyYW1ldGVyczoKICB7JGFjdGlvbmlkfWNkX3Jlc3VsdHBhZ2UgLSAoc3RyaW5nL2ludGVnZXIpIHBhZ2UgaWQgZm9yIHN1bW1hcnkgcmVzdWx0cyAoc2VlIHRoZSBoZWxwIGZvciB0aGlzIHBhcmFtZXRlcikKICB7JGFjdGlvbmlkfWNkX3N1bW1hcnl0ZW1wbGF0ZSAtIChzdHJpbmcpIHNlZSB0aGUgaGVscCBmb3IgdGhpcyBwYXJhbWV0ZXIKICB7JGFjdGlvbmlkfWNkX2RldGFpbHBhZ2UgLSAoc3RyaW5nL2ludGVnZXIpIHBhZ2UgaWQgZm9yIGRldGFpbCByZXN1bHRzIChzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyKQogIHskYWN0aW9uaWR9Y2RfZGV0YWlsdGVtcGxhdGUgLSAoc3RyaW5nL2ludGVnZXIpIHBhZ2UgaWQgZm9yIGRldGFpbCByZXN1bHRzIChzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyKQogIAogIHZhbGlkIGZpZWxkcyBhcmU6CiAgeyRhY3Rpb25pZH1jZF9zdWJtaXQgLSAoc3RyaW5nKSBmb3IgYSBzdWJtaXQgYnV0dG9uCiAgeyRhY3Rpb25pZH1jZF9sYXQgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxhdGl0dWRlIGZvciBhIHJhZGl1cyBzZWFyY2gKICB7JGFjdGlvbmlkfWNkX2xvbmcgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxvbmdpdHVkZSBmb3IgYSByYWRpdXMgc2VhcmNoCiAgeyRhY3Rpb25pZH1jZF9hZGRyZXNzIC0gKHN0cmluZykgZm9yIGFuIGFkZHJlc3MKICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfcmFkaXVzIC0gKGludCkgZm9yIGEgZGlzdGFuY2Ugc2VhcmNoICh2YWxpZCBvbmx5IGZvciBwb3N0Y29kZSBvciBsYXQvbG9uZyBzZWFyY2hlcykpICAgCiAgICAgKGRlZmF1bHQgPSA1MCkKICB7JGFjdGlvbmlkfWNkX3VuaXRzICAtIChzdHJpbmcpIGZvciBhIGRpc3RhbmNlIHNlYXJjaCAodmFsaWQgb25seSBmb3IgcG9zdGNvZGUgb3IgbGF0L2xvbmcgc2VhcmNoZXMpICgia20iIG9yICJtaWxlcyIpCiAgICAgKGRlZmF1bHQgPSBtaWxlcykKICB7JGFjdGlvbmlkfWNkX25hbWUgICAtIChzdHJpbmcpIGZvciBhIGNvbXBhbnkgbmFtZQogICAgIChkZWZhdWx0ID0gRU1QVFkpCiAgeyRhY3Rpb25pZH1jZF9uYW1lX3R5cGUgLSAoc3RyaW5nKSBjb250cm9scyBob3cgdGhlIG5hbWUgaXMgdXNlZCAoImV4YWN0IiBvciAibGlrZSIpCiAgICAgKGRlZmF1bHQgPSBleGFjdCkKICB7JGFjdGlvbmlkfWNkX2FkZHJlc3NfdHlwZSAtIChzdHJpbmcpIGNvbnRyb2xzIGhvdyB0aGUgYWRkcmVzcyBmaWVsZCBpcyB1c2VkICgic3Vic3RyIiBvciAibG9va3VwIikKICAgICAoZGVmYXVsdCA9IHN1YnN0cikKICB7JGFjdGlvbmlkfWNkX2NhdGVnb3J5W10gLSAoYXJyYXkgb2YgaW50ZWdlcnMpLCBvciBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VycywgdG8gZmlsdGVyIG9uIGNhdGVnb3JpZXMuICBVc2UgdGhlIHskY2F0ZWdvcmllc30gYXJyYXkgdG8gYnVpbGQgY2hlY2tib3hlcy4KICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfaGllciAgIC0gKGludCkgdG8gc3BlY2lmeSBhIGhpZXJhcmNoeSBpZCB0aGF0IHJlc3VsdHMgbXVzdCBiZWxvbmcgaW4uCiAgeyRhY3Rpb25pZH1jZF9oaWVyX2NoaWxkcmVuIC0gKGludCkgc3BlY2lmeSBhIG5vbiB6ZXJvIHZhbHVlIHRvIGluZGljYXRlIHRoYXQgY2hpbGQgaGllcmFyY2hpZXMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBzZWFyY2guCnskYWN0aW9uaWR9Y2RfZmllbGRfZXhwcltdIC0gYXJyYXkgb2YgY3VzdG9tIGZpZWxkIGV4cHJlc3Npb25zLCBlYWNoIGVsZW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHRocmVlIG1vcmUgZWxlbWVudHMgaW5kaWNhdGluZyB0aGUgZmllbGQgbmFtZSwgdGhlIGZpbHRlciB2YWx1ZSwgYW5kIGFuIChvcHRpb25hbCkgZXhwcmVzc2lvbiB0eXBlLiBpLmU6CiAgeyRhY3Rpb25pZH1jZF9zb3J0YnkgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyCiAgeyRhY3Rpb25pZH1jZF9zb3J0b3JkZXIgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyCgogIFBvc3RhbCBDb2RlIFNlYXJjaGVzCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTm90ZXM6ICBJZiBhIHBvc3RhbC96aXAgY29kZSBpcyBzcGVjaWZpZWQsIGFuZCB0aGUgUG9zdGNvZGUgbW9kdWxlLCBhbmQgQ0dHb29nbGVNYXBzIG1vZHVsZXMgYXJlIGluc3RhbGxlZCwgdGhlbiB0aGUgcG90YWwvemlwIGNvZGUgd2lsbCBiZSB1c2VkIGZpcnN0IHRvIGNhbGN1bGF0ZSBhIGdlb2dyYXBoaWMgc2VhcmNoIGFyZWEuCiAgeyRhY3Rpb25pZH1jZF9wb3N0YWwgIC0gKHN0cmluZykgZm9yIGEgcG9zdGFsIGNvZGUgKHZhbGlkIG9ubHkgaWYgdGhlIFBvc3Rjb2RlcyBtb2R1bGUgaXMgaW5zdGFsbGVkKSAKICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfcG9zdGFsY2hhcnMgIC0gKGludGVnZXIpIGZvciBhIHBvc3RhbCBjb2RlICh2YWxpZCBvbmx5IGlmIHRoZSBQb3N0Y29kZXMgbW9kdWxlIGlzIGluc3RhbGxlZCkgCiAgICAgVXNlZCB0byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYWNjdXJhdGUgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRvIGEgcG9zdGFsIGNvZGUgLT4gbGF0IGxvbmcgbG9va3VwLgogICAgIFNvbWUgcG9zdGFsIGNvZGUgZGF0YWJhc2VzIGFyZSBvbmx5IGFjY3VyYXRlIHRvIHRoZSBmaXJzdCBOIGNoYXJhY3RlcnMuCiAgICAoZGVmYXVsdCA9IDAgPT0gdXNlIGFsbCBjaGFycyBvZiBzdXBwbGllZCBwb3N0YWwgY29kZSkKICB7JGFjdGlvbmlkfWNkX2NvdW50cnkgLSAoc3RyaW5nKSBmb3IgYSBwb3N0YWwgY29kZSAodmFsaWQgb25seSBpZiB0aGUgUG9zdGNvZGVzIG1vZHVsZSBpcyBpbnN0YWxsZWQpICh1c2UgdHdvIGxldHRlciBjb3VudHJ5IGNvZGUpCiAgICAgKGRlZmF1bHQgPSBVUykKICB7JGFjdGlvbmlkfWNkX3NlYXJjaGFkZHJlc3MgLSAoaW50KSB0byBzcGVjaWZ5IHRoYXQsIHdoZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2ggdGhhdCB0aGUgYWRkcmVzcyBmaWVsZCBzaG91bGQgYmUgc2VhcmNoZWQgYXMgd2VsbC4KICAgICAoZGVmYXVsdCAwKSAgIAoqfQoKeyogdXNlIHNvbWUganF1ZXJ5LCBhbmQgYnJvd3NlciBsb2NhdGlvbiBpbmZvcm1hdGlvbiB0byBmaWxsIHRoZSBsYXQvbG9uZyBmaWVsZHMKICAgIHRoaXMgaXMgZ3JlYXQgZm9yIG1vYmlsZSBzaXRlcyAqfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+e2xpdGVyYWx9Ly88IVtDREFUQVsKaWYoIHR5cGVvZihqUXVlcnkpICE9ICd1bmRlZmluZWQnICl7CiAgaWYobmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7CiAgICBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHBvc2l0aW9uKXsKICAgICAgLy8gVHJ5IFczQyBHZW9sb2NhdGlvbiAoUHJlZmVycmVkKQogICAgICAkKCcjbGF0aXR1ZGUnKS52YWwocG9zaXRpb24uY29vcmRzLmxhdGl0dWRlKTsKICAgICAgJCgnI2xvbmdpdHVkZScpLnZhbChwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlKTsKICAgIH0pOwogIH0KfQovL11dPgp7L2xpdGVyYWx9PC9zY3JpcHQ+Cgp7c3RyaXB9CjxkaXYgaWQ9ImNkX3NlYXJjaGZvcm0iPnskZm9ybXN0YXJ0fQogIHsqIGRpc3BsYXkgYW55IGVycm9ycyAqfQogIHtpZiBpc3NldCgkZXJyb3JzKX0KICA8cCBjbGFzcz0iZXJyb3JzIj4KICAgIHsnPGJyLz4nfGltcGxvZGU6JGVycm9yc30KICA8L3A+CiAgey9pZn0KCiAgeyogbmFtZSBzdWJzdHJpbmcgc2VhcmNoICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3A+CiAgICA8cCBjbGFzcz0iY29sNzAiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9uYW1lIiBzaXplPSI0MCIvPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX25hbWVfdHlwZSIgdmFsdWU9IkxJS0UiLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgeyogYWRkcmVzcyBzdWJzdHJpbmcgc2VhcmNoICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2FkZHJlc3MnKX08L3A+CiAgICA8cCBjbGFzcz0iY29sNzAiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9hZGRyZXNzIiBzaXplPSI0MCIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7KiBmb3IgbGF0L2xvbmcgcmFkaXVzIHNlYXJjaGVzICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2Nvb3JkaW5hdGVzJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICAgeyogbm90ZSwgaWYgdmFsdWVzIGFyZSBzdXBwbGllZCBmb3IgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB0aGVuIHBvc3RhbCBjb2RlIGlzIGlnbm9yZWQgKn0KICAgICAgeyRtb2QtPkxhbmcoJ2xhdGl0dWRlJyl9OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9sYXQiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8+PGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9uZyIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiLz48YnIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7KiBmb3IgcG9zdGFsIGNvZGUgcmFkaXVzIHNlYXJjaGVzICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ3Bvc3RhbF9jb2RlJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfcG9zdGFsIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPgogICAgICB7KiB5b3UgY291bGQgYWxzbyB1c2UgdGhlIHskaW5wdXRfY291bnRyeX0gdmFyaWFibGUgdG8gZGlzcGxheSBhIGNvdW50cnkgZHJvcGRvd24gKn0KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9jb3VudHJ5IiB2YWx1ZT0iQ0EiLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wb3N0YWxjaGFycyIgdmFsdWU9IjMiLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9zZWFyY2hhZGRyZXNzIiB2YWx1ZT0iMSIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7KiBmb3IgYWxsIHJhZGl1cyBzZWFyY2hlcyAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sMzAiPnskbW9kLT5MYW5nKCdyYWRpdXMnKX08L3A+CiAgICA8cCBjbGFzcz0iY29sNzAiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfcmFkaXVzIj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSI1MCI+NTA8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDAiPjEwMDwvb3B0aW9uPgogICAgICA8L3NlbGVjdD4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF91bml0cyIgdmFsdWU9Im1pbGVzIi8+CiAgICA8L3A+CiAgPC9kaXY+CgogeyogYWR2YW5jZWQgZmlsdGVyaW5nIG9uIGhpZXJhcmNoaWVzICp9CiB7aWYgaXNzZXQoJGhpZXJhcmNoaWVzKX0KIDxkaXYgY2xhc3M9InJvdyI+CiAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiAgIDxwIGNsYXNzPSJjb2w3MCI+CiAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX2hpZXIiPgogICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllc30KICAgICA8L3NlbGVjdD4KICAgICAmbmJzcDsKICAgICB7JG1vZC0+TGFuZygnbGFiZWxfaW5jbHVkZWNoaWxkcmVuJyl9OiZuYnNwOwogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2RfaGllcl9jaGlsZHJlbiIgdmFsdWU9IjAiLz4gCiAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2hpZXJfY2hpbGRyZW4iIHZhbHVlPSIxIi8+CiAgIDwvcD4KIDwvZGl2Pgogey9pZn0KCiB7KiBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gY2F0ZWdvcmllcyAqfQoge2lmIGlzc2V0KCRjYXRlZ29yaWVzKX0KIDxkaXYgY2xhc3M9InJvdyI+CiAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9wPgogICA8cCBjbGFzcz0iY29sNzAiPgogICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9Y2RfdXNlX2NhdGVnb3JpZXN7L2NhcHR1cmV9CiAgICB7aHRtbF9jaGVja2JveGVzIG5hbWU9JHRtcCBvcHRpb25zPSRjYXRlZ29yaWVzIHNlcGFyYXRvcj0nPGJyLz4nfQogIDwvcD4KIDwvZGl2Pgogey9pZn0KCiB7KiBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gYSBzcGVjaWZpYyBjdXN0b20gZmllbGQqfQogPGRpdiBjbGFzcz0icm93Ij4KICAgPHAgY2xhc3M9ImNvbDMwIj5NeUZpZWxkIHN1YnN0cmluZyBUZXN0OjwvcD4KICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ZpZWxkWzBdWydmbGRuYW1lJ10iIHZhbHVlPSJteWZpZWxkIi8+eyogaGlkZGVuIGlucHV0IGZvciBjdXN0b20gZmllbGQgbmFtZSAqfQogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2ZpZWxkWzBdWydmbGR2YWx1ZSddIiB2YWx1ZT0iIi8gc2l6ZT0iMTAiPnsqIHRleHQgaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCB2YWx1ZSAqfQogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2RfZmllbGRbMF1bJ2V4cHInXSIgdmFsdWU9IkxJS0UiLz57KiBoaWRkZW4gaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCBleHByZXNzaW9uICp9CiAgIDwvcD4KIDwvZGl2PgogPGRpdiBjbGFzcz0icm93Ij4KICAgPHAgY2xhc3M9ImNvbDMwIj5DdXN0b20gRmllbGQgdmFsdWUgdGVzdDo8L3A+CiAgIDxwIGNsYXNzPSJjb2w3MCI+CiAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZFswXVsnZmxkbmFtZSddIiB2YWx1ZT0ibXlpbnRmaWVsZCIvPnsqIGhpZGRlbiBpbnB1dCBmb3IgY3VzdG9tIGZpZWxkIG5hbWUgKn0KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9maWVsZFswXVsnZmxkdmFsdWUnXSIgdmFsdWU9IiIvIHNpemU9IjMiPnsqIHRleHQgaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCB2YWx1ZSAqfQogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2RfZmllbGRbMF1bJ2V4cHInXSIgdmFsdWU9Imx0Ii8+eyogaGlkZGVuIGlucHV0IGZvciBjdXN0b20gZmllbGQgZXhwcmVzc2lvbiAqfQogICA8L3A+CiA8L2Rpdj4KCnskZm9ybWVuZH08L2Rpdj57KiAjY2Rfc2VhcmNoZm9ybSAqfQp7L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_newsearch_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbmV3IHNlYXJjaCB0ZW1wbGF0ZQogIG1pc2MgcGFyYW1ldGVyczoKICB7JGFjdGlvbmlkfWNkX3Jlc3VsdHBhZ2UgLSAoc3RyaW5nL2ludGVnZXIpIHBhZ2UgaWQgZm9yIHN1bW1hcnkgcmVzdWx0cyAoc2VlIHRoZSBoZWxwIGZvciB0aGUgcmVzdWx0cGFnZSBwYXJhbWV0ZXIpCiAgeyRhY3Rpb25pZH1jZF9zdW1tYXJ5dGVtcGxhdGUgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoZSBzdW1tYXJ5dGVtcGxhdGUgcGFyYW1ldGVyCiAgeyRhY3Rpb25pZH1jZF9kZXRhaWxwYWdlIC0gKHN0cmluZy9pbnRlZ2VyKSBwYWdlIGlkIGZvciBkZXRhaWwgcmVzdWx0cyAoc2VlIHRoZSBoZWxwIGZvciB0aGUgZGV0YWlscGFnZSBwYXJhbWV0ZXIpCiAgeyRhY3Rpb25pZH1jZF9kZXRhaWx0ZW1wbGF0ZSAtIChzdHJpbmcvaW50ZWdlcikgcGFnZSBpZCBmb3IgZGV0YWlsIHJlc3VsdHMgKHNlZSB0aGUgaGVscCBmb3IgdGhlIGRldGFpbHRlbXBsYXRlIHBhcmFtZXRlcikKICB7JGFjdGlvbmlkfWNkX3BhZ2VsaW1pdCAtIChpbnRlZ2VyKSBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuICBTZWUgdGhlIGhlbHAgZm9yIHRoZSBwYWdlbGltaXQgcGFyYW1ldGVyLgogIHskYWN0aW9uaWR9Y2RfcGFnZSAtIChpbnRlZ2VyKSBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuICBTZWUgdGhlIGhlbHAgZm9yIHRoZSBwYWdlIHBhcmFtZXRlci4KICB7JGFjdGlvbmlkfWNkX3NvcnRieSAtIChzdHJpbmcpIFNvcnRpbmcKICB7JGFjdGlvbmlkfWNkX3NvcnRvcmRlciAtIChzdHJpbmcpIFNvcnQgb3JkZXIgKGFzY2VuZGluZyBvciBkZXNjZW5kaW5nKQogIAogIHZhbGlkIGZpZWxkcyBhcmU6CiAgeyRhY3Rpb25pZH1jZF9zdWJtaXQgLSAoc3RyaW5nKSBmb3IgYSBzdWJtaXQgYnV0dG9uCiAgeyRhY3Rpb25pZH1jZF9sYXQgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxhdGl0dWRlIGZvciBhIHJhZGl1cyBzZWFyY2gKICB7JGFjdGlvbmlkfWNkX2xvbmcgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxvbmdpdHVkZSBmb3IgYSByYWRpdXMgc2VhcmNoCiAgeyRhY3Rpb25pZH1jZF9hZGRyZXNzIC0gKHN0cmluZykgZm9yIGFuIGFkZHJlc3MKICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfcmFkaXVzIC0gKGludCkgZm9yIGEgZGlzdGFuY2Ugc2VhcmNoICh2YWxpZCBvbmx5IGZvciBwb3N0Y29kZSBvciBsYXQvbG9uZyBzZWFyY2hlcykpICAgCiAgICAgKGRlZmF1bHQgPSA1MCkKICB7JGFjdGlvbmlkfWNkX3VuaXRzICAtIChzdHJpbmcpIGZvciBhIGRpc3RhbmNlIHNlYXJjaCAodmFsaWQgb25seSBmb3IgcG9zdGNvZGUgb3IgbGF0L2xvbmcgc2VhcmNoZXMpICgia20iIG9yICJtaWxlcyIpCiAgICAgKGRlZmF1bHQgPSBtaWxlcykKICB7JGFjdGlvbmlkfWNkX25hbWUgICAtIChzdHJpbmcpIGZvciBhIGNvbXBhbnkgbmFtZQogICAgIChkZWZhdWx0ID0gRU1QVFkpCiAgeyRhY3Rpb25pZH1jZF9uYW1lX3R5cGUgLSAoc3RyaW5nKSBjb250cm9scyBob3cgdGhlIG5hbWUgaXMgdXNlZCAoImV4YWN0IiBvciAibGlrZSIpCiAgICAgKGRlZmF1bHQgPSBleGFjdCkKICB7JGFjdGlvbmlkfWNkX2FkZHJlc3NfdHlwZSAtIChzdHJpbmcpIGNvbnRyb2xzIGhvdyB0aGUgYWRkcmVzcyBmaWVsZCBpcyB1c2VkICgic3Vic3RyIiBvciAibG9va3VwIikKICAgICAoZGVmYXVsdCA9IHN1YnN0cikKICB7JGFjdGlvbmlkfWNkX2NhdGVnb3J5W10gLSAoYXJyYXkgb2YgaW50ZWdlcnMpLCBvciBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VycywgdG8gZmlsdGVyIG9uIGNhdGVnb3JpZXMuICBVc2UgdGhlIHskY2F0ZWdvcmllc30gYXJyYXkgdG8gYnVpbGQgY2hlY2tib3hlcy4KICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfaGllciAgIC0gKGludCkgdG8gc3BlY2lmeSBhIGhpZXJhcmNoeSBpZCB0aGF0IHJlc3VsdHMgbXVzdCBiZWxvbmcgaW4uCiAgeyRhY3Rpb25pZH1jZF9oaWVyX2NoaWxkcmVuIC0gKGludCkgc3BlY2lmeSBhIG5vbiB6ZXJvIHZhbHVlIHRvIGluZGljYXRlIHRoYXQgY2hpbGQgaGllcmFyY2hpZXMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBzZWFyY2guCnskYWN0aW9uaWR9Y2RfZmllbGRfZXhwcltdIC0gYXJyYXkgb2YgY3VzdG9tIGZpZWxkIGV4cHJlc3Npb25zLCBlYWNoIGVsZW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHRocmVlIG1vcmUgZWxlbWVudHMgaW5kaWNhdGluZyB0aGUgZmllbGQgbmFtZSwgdGhlIGZpbHRlciB2YWx1ZSwgYW5kIGFuIChvcHRpb25hbCkgZXhwcmVzc2lvbiB0eXBlLiBpLmU6CiAgeyRhY3Rpb25pZH1jZF9zb3J0YnkgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyCiAgeyRhY3Rpb25pZH1jZF9zb3J0b3JkZXIgLSAoc3RyaW5nKSBzZWUgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyCgogIFBvc3RhbCBDb2RlIFNlYXJjaGVzCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTm90ZXM6ICBJZiBhIHBvc3RhbC96aXAgY29kZSBpcyBzcGVjaWZpZWQsIGFuZCB0aGUgUG9zdGNvZGUgbW9kdWxlLCBhbmQgQ0dHb29nbGVNYXBzIG1vZHVsZXMgYXJlIGluc3RhbGxlZCwgdGhlbiB0aGUgcG90YWwvemlwIGNvZGUgd2lsbCBiZSB1c2VkIGZpcnN0IHRvIGNhbGN1bGF0ZSBhIGdlb2dyYXBoaWMgc2VhcmNoIGFyZWEuCiAgeyRhY3Rpb25pZH1jZF9wb3N0YWwgIC0gKHN0cmluZykgZm9yIGEgcG9zdGFsIGNvZGUgKHZhbGlkIG9ubHkgaWYgdGhlIFBvc3Rjb2RlcyBtb2R1bGUgaXMgaW5zdGFsbGVkKSAKICAgICAoZGVmYXVsdCA9IEVNUFRZKQogIHskYWN0aW9uaWR9Y2RfcG9zdGFsY2hhcnMgIC0gKGludGVnZXIpIGZvciBhIHBvc3RhbCBjb2RlICh2YWxpZCBvbmx5IGlmIHRoZSBQb3N0Y29kZXMgbW9kdWxlIGlzIGluc3RhbGxlZCkgCiAgICAgVXNlZCB0byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYWNjdXJhdGUgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRvIGEgcG9zdGFsIGNvZGUgLT4gbGF0IGxvbmcgbG9va3VwLgogICAgIFNvbWUgcG9zdGFsIGNvZGUgZGF0YWJhc2VzIGFyZSBvbmx5IGFjY3VyYXRlIHRvIHRoZSBmaXJzdCBOIGNoYXJhY3RlcnMuCiAgICAoZGVmYXVsdCA9IDAgPT0gdXNlIGFsbCBjaGFycyBvZiBzdXBwbGllZCBwb3N0YWwgY29kZSkKICB7JGFjdGlvbmlkfWNkX2NvdW50cnkgLSAoc3RyaW5nKSBmb3IgYSBwb3N0YWwgY29kZSAodmFsaWQgb25seSBpZiB0aGUgUG9zdGNvZGVzIG1vZHVsZSBpcyBpbnN0YWxsZWQpICh1c2UgdHdvIGxldHRlciBjb3VudHJ5IGNvZGUpCiAgICAgKGRlZmF1bHQgPSBVUykKICB7JGFjdGlvbmlkfWNkX3NlYXJjaGFkZHJlc3MgLSAoaW50KSB0byBzcGVjaWZ5IHRoYXQsIHdoZW4gZG9pbmcgYSBwb3N0YWwgY29kZSBzZWFyY2ggdGhhdCB0aGUgYWRkcmVzcyBmaWVsZCBzaG91bGQgYmUgc2VhcmNoZWQgYXMgd2VsbC4KICAgICAoZGVmYXVsdCAwKSAgIAoKICBTdXBwbHlpbmcgUGFyYW1ldGVycwogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSXQgaXMgcG9zc2libGUgdG8gcHV0IG1hbnkgb2YgdGhlIGFib3ZlIGRlc2NyaWJlZCBwYXJhbWV0ZXJzIGRpcmVjdGx5IGludG8gdGhlIGZvcm0gKGJldHdlZW4gdGhlIGZvcm1zdGFydCBhbmQgZm9ybWVuZCB0YWdzKS4gIEFkZGl0aW9uYWxseSwKICBmb3IgdGhlIHNlY3VyaXR5IG1pbmRlZCBtYW55IHBhcmFtZXRlcnMgY2FuIGJlIHN1cHBsaWVkIGluIHRoZSB0YWcgdG8gdGhlIG1vZHVsZS4uLiBvciBvbiB0aGUgcmVsZXZlbnQgc3VtbWFyeSBhbmQgZGV0YWlsIHBhZ2VzIHVzaW5nIHRoZQogIHtjZ2VfbW9kdWxlX2hpbnR9IHRhZyB0aGF0IGlzIHN1cHBsaWVkIHdpdGggbGF0ZXIgdmVyc2lvbnMgb2YgQ29tcGFueURpcmVjdG9yeS4KKn0KCnsqIHVzZSBzb21lIGpxdWVyeSwgYW5kIGJyb3dzZXIgbG9jYXRpb24gaW5mb3JtYXRpb24gdG8gZmlsbCB0aGUgbGF0L2xvbmcgZmllbGRzCiAgICB0aGlzIGlzIGdyZWF0IGZvciBtb2JpbGUgc2l0ZXMgKn0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfS8vPCFbQ0RBVEFbCmlmKCB0eXBlb2YoalF1ZXJ5KSAhPSAndW5kZWZpbmVkJyApewogIGlmKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewogICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbil7CiAgICAgIC8vIFRyeSBXM0MgR2VvbG9jYXRpb24gKFByZWZlcnJlZCkKICAgICAgJCgnI2xhdGl0dWRlJykudmFsKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSk7CiAgICAgICQoJyNsb25naXR1ZGUnKS52YWwocG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSk7CiAgICB9KTsKICB9Cn0KLy9dXT4Key9saXRlcmFsfTwvc2NyaXB0PgoKe3N0cmlwfQo8ZGl2IGlkPSJjZF9zZWFyY2hmb3JtIj57JGZvcm1zdGFydH0KICB7KiBkaXNwbGF5IGFueSBlcnJvcnMgKn0KICB7aWYgaXNzZXQoJGVycm9ycyl9CiAgPHAgY2xhc3M9ImVycm9ycyI+CiAgICB7Jzxici8+J3xpbXBsb2RlOiRlcnJvcnN9CiAgPC9wPgogIHsvaWZ9CgogIHsqIG5hbWUgc3Vic3RyaW5nIHNlYXJjaCAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sMzAiPnskbW9kLT5MYW5nKCduYW1lJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfbmFtZSIgc2l6ZT0iNDAiLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9uYW1lX3R5cGUiIHZhbHVlPSJMSUtFIi8+CiAgICA8L3A+CiAgPC9kaXY+CgogIHsqIGFkZHJlc3Mgc3Vic3RyaW5nIHNlYXJjaCAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sMzAiPnskbW9kLT5MYW5nKCdhZGRyZXNzJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfYWRkcmVzcyIgc2l6ZT0iNDAiLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgeyogZm9yIGxhdC9sb25nIHJhZGl1cyBzZWFyY2hlcyAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sMzAiPnskbW9kLT5MYW5nKCdjb29yZGluYXRlcycpfTwvcD4KICAgIDxwIGNsYXNzPSJjb2w3MCI+CiAgICAgIHsqIG5vdGUsIGlmIHZhbHVlcyBhcmUgc3VwcGxpZWQgZm9yIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgdGhlbiBwb3N0YWwgY29kZSBpcyBpZ25vcmVkICp9CiAgICAgIHskbW9kLT5MYW5nKCdsYXRpdHVkZScpfTogPGlucHV0IGlkPSJsYXRpdHVkZSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9sYXQiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8+PGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfTogPGlucHV0IGlkPSJsb25naXR1ZGUiIHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9uZyIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiLz48YnIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7KiBmb3IgcG9zdGFsIGNvZGUgcmFkaXVzIHNlYXJjaGVzICp9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ3Bvc3RhbF9jb2RlJyl9PC9wPgogICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfcG9zdGFsIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCIvPgogICAgICB7KiB5b3UgY291bGQgYWxzbyB1c2UgdGhlIHskaW5wdXRfY291bnRyeX0gdmFyaWFibGUgdG8gZGlzcGxheSBhIGNvdW50cnkgZHJvcGRvd24gKn0KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9jb3VudHJ5IiB2YWx1ZT0iQ0EiLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wb3N0YWxjaGFycyIgdmFsdWU9IjMiLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9zZWFyY2hhZGRyZXNzIiB2YWx1ZT0iMSIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7KiBmb3IgYWxsIHJhZGl1cyBzZWFyY2hlcyAqfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sMzAiPnskbW9kLT5MYW5nKCdyYWRpdXMnKX08L3A+CiAgICA8cCBjbGFzcz0iY29sNzAiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfcmFkaXVzIj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSI1MCI+NTA8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDAiPjEwMDwvb3B0aW9uPgogICAgICA8L3NlbGVjdD4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF91bml0cyIgdmFsdWU9Im1pbGVzIi8+CiAgICA8L3A+CiAgPC9kaXY+CgogeyogYWR2YW5jZWQgZmlsdGVyaW5nIG9uIGhpZXJhcmNoaWVzICp9CiB7aWYgaXNzZXQoJGhpZXJhcmNoaWVzKX0KIDxkaXYgY2xhc3M9InJvdyI+CiAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiAgIDxwIGNsYXNzPSJjb2w3MCI+CiAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX2hpZXIiPgogICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllc30KICAgICA8L3NlbGVjdD4KICAgICAmbmJzcDsKICAgICB7JG1vZC0+TGFuZygnbGFiZWxfaW5jbHVkZWNoaWxkcmVuJyl9OiZuYnNwOwogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2RfaGllcl9jaGlsZHJlbiIgdmFsdWU9IjAiLz4gCiAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2hpZXJfY2hpbGRyZW4iIHZhbHVlPSIxIi8+CiAgIDwvcD4KIDwvZGl2Pgogey9pZn0KCiB7KiBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gY2F0ZWdvcmllcyAqfQoge2lmIGlzc2V0KCRjYXRlZ29yaWVzKX0KIDxkaXYgY2xhc3M9InJvdyI+CiAgIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9wPgogICA8cCBjbGFzcz0iY29sNzAiPgogICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9Y2RfY2F0ZWdvcnl7L2NhcHR1cmV9CiAgICB7aHRtbF9jaGVja2JveGVzIG5hbWU9JHRtcCBvcHRpb25zPSRjYXRlZ29yaWVzIHNlcGFyYXRvcj0nPGJyLz4nfQogIDwvcD4KIDwvZGl2Pgogey9pZn0KCiB7KiBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gYSBzcGVjaWZpYyBjdXN0b20gZmllbGQqfQogPGRpdiBjbGFzcz0icm93Ij4KICAgPHAgY2xhc3M9ImNvbDMwIj5NeUZpZWxkIHN1YnN0cmluZyBUZXN0OjwvcD4KICAgPHAgY2xhc3M9ImNvbDcwIj4KICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkeF9maWVsZFswXVtmbGRuYW1lXSIgdmFsdWU9Im15ZmllbGQiLz57KiBoaWRkZW4gaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCBuYW1lICp9CiAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzBdW2ZsZHZhbF0iIHZhbHVlPSIiLyBzaXplPSIxMCI+eyogdGV4dCBpbnB1dCBmb3IgY3VzdG9tIGZpZWxkIHZhbHVlICp9CiAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZHhfZmllbGRbMF1bZXhwcl0iIHZhbHVlPSJMSUtFIi8+eyogaGlkZGVuIGlucHV0IGZvciBjdXN0b20gZmllbGQgZXhwcmVzc2lvbiAqfQogICA8L3A+CiA8L2Rpdj4KIDxkaXYgY2xhc3M9InJvdyI+CiAgIDxwIGNsYXNzPSJjb2wzMCI+Q3VzdG9tIEZpZWxkIHZhbHVlIHRlc3Q6PC9wPgogICA8cCBjbGFzcz0iY29sNzAiPgogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzFdW2ZsZG5hbWVdIiB2YWx1ZT0ibXlpbnRmaWVsZCIvPnsqIGhpZGRlbiBpbnB1dCBmb3IgY3VzdG9tIGZpZWxkIG5hbWUgKn0KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZHhfZmllbGRbMV1bZmxkdmFsXSIgdmFsdWU9IiIvIHNpemU9IjMiPnsqIHRleHQgaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCB2YWx1ZSAqfQogICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2R4X2ZpZWxkWzFdW2V4cHJdIiB2YWx1ZT0ibHQiLz57KiBoaWRkZW4gaW5wdXQgZm9yIGN1c3RvbSBmaWVsZCBleHByZXNzaW9uICp9CiAgIDwvcD4KIDwvZGl2PgoKIDxkaXYgY2xhc3M9InJvdyI+CiAgIDxwIGNsYXNzPSJjb2wzMCI+PC9wPgogICA8cCBjbGFzcz0iY29sNzAiPgogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2Rfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICA8L3A+CiA8L2Rpdj4KCnskZm9ybWVuZH08L2Rpdj57KiAjY2Rfc2VhcmNoZm9ybSAqfQp7L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_searchform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIGZvcm0gdGVtcGxhdGUgKn0KeyogdmFsaWQgZmllbGRzIGFyZToKICAgeyRhY3Rpb25pZH1jZF9zdWJtaXQgLSAoc3RyaW5nKSBmb3IgYSBzdWJtaXQgYnV0dG9uCiAgIHskYWN0aW9uaWR9Y2RfbGF0IC0gKGZsb2F0KSAtIHNwZWNpZnkgYSBsb25naXR1ZGUgYW5kIGxvbmdpdHVkZQogICB7JGFjdGlvbmlkfWNkX2xvbmcgLSAoZmxvYXQpIC0gc3BlY2lmeSBhIGxvbmdpdHVkZSBhbmQgbG9uZ2l0dWRlCiAgIHskYWN0aW9uaWR9Y2RfY291bnRyeSAtIChzdHJpbmcpIGZvciBhIHBvc3RhbCBjb2RlICh2YWxpZCBvbmx5IGlmIHRoZSBQb3N0Y29kZXMgbW9kdWxlIGlzIGluc3RhbGxlZCkgKHVzZSB0d28gbGV0dGVyIGNvdW50cnkgY29kZSkKICAgICAgKGRlZmF1bHQgPSBVUykKICAgeyRhY3Rpb25pZH1jZF9wb3N0YWwgIC0gKHN0cmluZykgZm9yIGEgcG9zdGFsIGNvZGUgKHZhbGlkIG9ubHkgaWYgdGhlIFBvc3Rjb2RlcyBtb2R1bGUgaXMgaW5zdGFsbGVkKSAgIAogICB7JGFjdGlvbmlkfWNkX2FkZHJlc3MgLSAoc3RyaW5nKSBmb3IgYW4gYWRkcmVzcwogICAgICAoZGVmYXVsdCA9IEVNUFRZKQogICB7JGFjdGlvbmlkfWNkX3JhZGl1cyAtIChpbnQpIGZvciBhIGRpc3RhbmNlIHNlYXJjaCAodmFsaWQgb25seSBmb3IgcG9zdGNvZGUgb3IgbGF0L2xvbmcgc2VhcmNoZXMpKSAgIAogICAgICAoZGVmYXVsdCA9IDUwKQogICB7JGFjdGlvbmlkfWNkX3VuaXRzICAtIChzdHJpbmcpIGZvciBhIGRpc3RhbmNlIHNlYXJjaCAodmFsaWQgb25seSBmb3IgcG9zdGNvZGUgb3IgbGF0L2xvbmcgc2VhcmNoZXMpICgia20iIG9yICJtaWxlcyIpCiAgICAgIChkZWZhdWx0ID0gbWlsZXMpCiAgIHskYWN0aW9uaWR9Y2RfbmFtZSAgIC0gKHN0cmluZykgZm9yIGEgY29tcGFueSBuYW1lCiAgICAgIChkZWZhdWx0ID0gRU1QVFkpCiAgIHskYWN0aW9uaWR9Y2RfbmFtZV90eXBlIC0gKHN0cmluZykgY29udHJvbHMgaG93IHRoZSBuYW1lIGlzIHVzZWQgKCJleGFjdCIgb3IgImxpa2UiKQogICAgICAoZGVmYXVsdCA9IGV4YWN0KQogICB7JGFjdGlvbmlkfWNkX3VzZV9jYXRlZ29yaWVzW10gLSAoYXJyYXkgb2YgaW50ZWdlcnMpIHRvIGZpbHRlciBvbiBjYXRlZ29yaWVzLiAgVXNlIHRoZSB7JGNhdGVnb3JpZXN9IGFycmF5IHRvIGJ1aWxkIGNoZWNrYm94ZXMuCiAgICAgIChkZWZhdWx0ID0gRU1QVFkpCiAgIHskYWN0aW9uaWR9Y2RfaW5saW5lIC0gKGludCkgdG8gc3BlY2lmeSB0aGF0IHRoZSBkZXRhaWwgbGlua3Mgb24gcmVzdWx0cyBzaG91bGQgYmUgY3JlYXRlZCBpbmxpbmUgCiAgICAgIChkZWZhdWx0ID0gMCkKICAgeyRhY3Rpb25pZH1jZF9oaWVyICAgLSAoaW50KSB0byBzcGVjaWZ5IGEgaGllcmFyY2h5IGlkIHRoYXQgcmVzdWx0cyBtdXN0IGJlbG9uZyBpbi4KICAgeyRhY3Rpb25pZH1jZF9oaWVyX2NoaWxkcmVuIC0gKGludCkgc3BlY2lmeSBhIG5vbiB6ZXJvIHZhbHVlIHRvIGluZGljYXRlIHRoYXQgY2hpbGQgaGllcmFyY2hpZXMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBzZWFyY2guCiAgIE5vdGVzOiAgSWYgYSBwb3N0YWwvemlwIGNvZGUgaXMgc3BlY2lmaWVkLCBhbmQgdGhlIFBvc3Rjb2RlIG1vZHVsZSwgYW5kIENHR29vZ2xlTWFwcyBtb2R1bGVzIGFyZSBpbnN0YWxsZWQsIHRoZW4gdGhlIHBvdGFsL3ppcCBjb2RlIHdpbGwgYmUgdXNlZCBmaXJzdCB0byBjYWxjdWxhdGUgYSBnZW9ncmFwaGljIHNlYXJjaCBhcmVhLgoqfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfS8vPCFbQ0RBVEFbCmlmKCB0eXBlb2YoalF1ZXJ5KSAhPSAndW5kZWZpbmVkJyApewogIGlmKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewogICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbil7CiAgICAgIC8vIFRyeSBXM0MgR2VvbG9jYXRpb24gKFByZWZlcnJlZCkKICAgICAgJCgnI2xhdGl0dWRlJykudmFsKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSk7CiAgICAgICQoJyNsb25naXR1ZGUnKS52YWwocG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSk7CiAgICB9KTsKICB9Cn0KLy9dXT4Key9saXRlcmFsfTwvc2NyaXB0PgoKCjxkaXYgaWQ9ImNkX3NlYXJjaGZvcm0iPgp7JGZvcm1zdGFydH0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbDMwIj57JG1vZC0+TGFuZygncG9zdGFsX2NvZGUnKX08L3A+CiAgPHAgY2xhc3M9ImNvbDcwIj4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Bvc3RhbCIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAiLz4KICAgIHsqIHlvdSBjb3VsZCBhbHNvIHVzZSB0aGUgeyRpbnB1dF9jb3VudHJ5fSB2YXJpYWJsZSB0byBkaXNwbGF5IGEgY291bnRyeSBkcm9wZG93biAqfQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9jb3VudHJ5IiB2YWx1ZT0iVVMiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0iY29sMzAiPnskbW9kLT5MYW5nKCdjb29yZGluYXRlcycpfTwvcD4KICA8cCBjbGFzcz0iY29sNzAiPgogICAgeyogbm90ZSwgaWYgdmFsdWVzIGFyZSBzdXBwbGllZCBmb3IgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB0aGVuIHBvc3RhbCBjb2RlIGlzIGlnbm9yZWQgKn0KICAgIHskbW9kLT5MYW5nKCdsYXRpdHVkZScpfTogPGlucHV0IHR5cGU9InRleHQiIGlkPSJsYXRpdHVkZSIgbmFtZT0ieyRhY3Rpb25pZH1jZF9sYXRpdHVkZSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiLz48YnIvPgogICAgeyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfTogPGlucHV0IHR5cGU9InRleHQiIGlkLSJsb25naXR1ZGUiIG5hbWU9InskYWN0aW9uaWR9Y2RfbG9uZ2l0dWRlIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIvPjxici8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbDMwIj57JG1vZC0+TGFuZygncmFkaXVzJyl9PC9wPgogIDxwIGNsYXNzPSJjb2w3MCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfcmFkaXVzIj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjI1Ij4yNTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSI1MCI+NTA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwIj4xMDA8L29wdGlvbj4KICAgIDwvc2VsZWN0PgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF91bml0cyIgdmFsdWU9Im1pbGVzIi8+CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkaGllcmFyY2hpZXMpfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiAgPHAgY2xhc3M9ImNvbDcwIj4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9oaWVyIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllc30KICAgIDwvc2VsZWN0PgogICAgJm5ic3A7CiAgICB7JG1vZC0+TGFuZygnbGFiZWxfaW5jbHVkZWNoaWxkcmVuJyl9OiZuYnNwOwogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jZF9oaWVyX2NoaWxkcmVuIiB2YWx1ZT0iMCIvPiAKICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9oaWVyX2NoaWxkcmVuIiB2YWx1ZT0iMSIvPgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJjb2wzMCI+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9wPgogIDxwIGNsYXNzPSJjb2w3MCI+CiAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1jZF91c2VfY2F0ZWdvcmllc3svY2FwdHVyZX0KICAgIHtodG1sX2NoZWNrYm94ZXMgbmFtZT0kdG1wIG9wdGlvbnM9JGNhdGVnb3JpZXMgc2VwYXJhdG9yPSc8YnIvPid9CiAgPC9wPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbDMwIj48L3A+CiAgPHAgY2xhc3M9ImNvbDcwIj4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2Rfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogQ29tcGFueURpcmVjdG9yeSBTdW1tYXJ5IFRlbXBsYXRlICp9CntpZiBpc3NldCgkbWVzc2FnZXMpfQo8ZGl2IGNsYXNzPSJDb21wYW55RGlyZWN0b3J5TWVzc2FnZSI+CiA8dWw+CiAgIHtmb3JlYWNoIGZyb209JG1lc3NhZ2VzIGl0ZW09J29uZSd9CiAgICAgPGxpPnskb25lfTwvbGk+CiAgIHsvZm9yZWFjaH0KIDwvdWw+CjwvZGl2Pgp7L2lmfQoKe2lmIGlzc2V0KCRlcnJvcnMpfQo8ZGl2IGNsYXNzPSJDb21wYW55RGlyZWN0b3J5RXJyb3IiPgogPHVsPgogICB7Zm9yZWFjaCBmcm9tPSRlcnJvcnMgaXRlbT0nb25lJ30KICAgICA8bGk+eyRvbmV9PC9saT4KICAgey9mb3JlYWNofQogPC91bD4KPC9kaXY+CnsvaWZ9Cgp7aWYgaXNzZXQoJGl0ZW1zKX0KICB7aWYgaXNzZXQoJGZpcnN0bGluaykgfHwgaXNzZXQoJG5leHRsaW5rKX0KICAgIDxkaXY+CiAgICAgIHtpZiBpc3NldCgkZmlyc3RsaW5rKX17JGZpcnN0bGlua30mbmJzcDt7JHByZXZsaW5rfSZuYnNwOyZuYnNwO3svaWZ9CiAgICAgIHskcGFnZXRleHR9IHskY3VycGFnZX0geyRvZnRleHR9IHskcGFnZWNvdW50fQogICAgICB7aWYgaXNzZXQoJG5leHRsaW5rKX0mbmJzcDsmbmJzcDt7JG5leHRsaW5rfSZuYnNwO3skbGFzdGxpbmt9ey9pZn0KICAgIDwvZGl2PgogIHsvaWZ9CgogIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CiAgPGFydGljbGUgY2xhc3M9IkNvbXBhbnlEaXJlY3RvcnlJdGVtIiBzdHlsZT0icGFkZGluZy1ib3R0b206IDJlbTsiPgogICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgPGRpdiBjbGFzcz0ic3BhbjIiPgogICAgICB7aWYgJGVudHJ5LT5waWN0dXJlX2xvY2F0aW9uIG5lICcnfQogICAgICAgIHtDR1NtYXJ0SW1hZ2Ugc3JjPSRlbnRyeS0+cGljdHVyZV9wYXRoIGhlaWdodD0xNTAgd2lkdGg9MTUwfQogICAgICB7L2lmfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3BhbjEwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIHskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnbmFtZScpfTombmJzcDs8YSBocmVmPSJ7JGVudHJ5LT5kZXRhaWxfdXJsfSI+eyRlbnRyeS0+Y29tcGFueV9uYW1lfTwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NHU29jaWFsQXBwJyBhY3Rpb249J2FkZGNoZWNraW4nIGxvY2F0aW9uPSRlbnRyeS0+aWQgdGV4dD0nQ2hlY2tpbiBIZXJlJ30KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAge2Nnc2FfdG9nZ2xlZmF2b3JpdGVfbGluayBsb2NhdGlvbj0kZW50cnktPmlkIHJlZGlyZWN0Y29udGVudD0xfQogICAgICAgIDwvZGl2PgogICAgICAgIHtpZiAkZW50cnktPmFkZHJlc3MgbmUgJyd9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnYWRkcmVzcycpfTombmJzcDt7JGVudHJ5LT5hZGRyZXNzfTwvZGl2PgogICAgICAgIHsvaWZ9CiAgICAgICAge2lmICRlbnRyeS0+d2Vic2l0ZSBuZSAnJ30KICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCd3ZWJzaXRlJyl9OiZuYnNwOzxhIGhyZWY9Imh0dHA6Ly97JGVudHJ5LT53ZWJzaXRlfSI+eyRlbnRyeS0+d2Vic2l0ZX08L2E+PC9kaXY+CiAgICAgICAgey9pZn0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICB7KiBzYW1wbGUgb2YgYWRkcmVzc2luZyBhIGN1c3RvbSBmaWVsZCBkaXJlY3RseSAqfQp7c3RyaXB9CiAgICB7aWYgaXNzZXQoJGVudHJ5LT5maWVsZHMpfQogICAgICB7aWYgaXNzZXQoJGVudHJ5LT5maWVsZHMuZm9vKSAmJiAkZW50cnktPmZpZWxkcy5mb28tPnZhbHVlICE9ICcnfQogICAgICAgIEZvbzogeyRlbnRyeS0+ZmllbGRzLmZvby0+dmFsdWV9PGJyLz4KICAgICAgey9pZn0KCiAgICAgIHsqIHNhbXBsZSBvZiBhZGRyZXNzaW5nIGEgZmllbGQgd2l0aCBzcGFjZXMgb3Igb3RoZXIgY2hhcnMgaW4gdGhlIG5hbWUKICAgICAgU3BlY2lhbCBGaWVsZDoge2Fzc2lnbiB2YXI9J3RtcCcgdmFsdWU9J1RoZSBGaWVsZCBOYW1lJ317JGVudHJ5LT5maWVsZHMuJHRtcC0+dmFsdWV9PGJyLz4KICAgICp9CiAgCiAgICB7KiBzYW1wbGUgb2YgYWRkcmVzc2luZyB0aGUgdmFsdWUgb2YgYSBkcm9wZG93biBmaWVsZDogKn0KICAgIHtpZiBpc3NldCgkZW50cnktPmZpZWxkcy5teWRyb3Bkb3duKSAmJiAkZW50cnktPmZpZWxkcy5teWRyb3Bkb3duLT5kcm9wZG93bl92YWx1ZSAhPSAnJ30KICAgICAgU2FtcGxlIERyb3Bkb3duOiB7JGVudHJ5LT5maWVsZHMubXlkcm9wZG93bi0+ZHJvcGRvd25fdmFsdWV9PGJyLz4KICAgIHsvaWZ9CgogICAgeyogc2FtcGxlIG9mIGxvb3BpbmcgdGhyb3VnaCB0aGUgZmllbGRzIGFzc29jaWF0aXZlIGFycmF5CiAgICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+ZmllbGRzIGtleT0nZmllbGRuYW1lJyBpdGVtPSdmaWVsZCd9CiAgICAgIHtpZiBpc3NldCgkZmllbGQtPnZhbHVlKSAmJiAkZmllbGQtPnZhbHVlICE9ICcnfQogICAgICAgIHskZmllbGQtPm5hbWV9IDxlbT4oeyRmaWVsZC0+dHlwZX0pPC9lbT46IHskZmllbGQtPnZhbHVlfTxici8+CiAgICAgIHsvaWZ9CiAgICB7L2ZvcmVhY2h9CiAgICAqfQogIHsvaWZ9Cnsvc3RyaXB9CgogIDwvYXJ0aWNsZT4KICB7Zm9yZWFjaGVsc2V9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1lcnJvciI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdlcnJvcl9ub2NvbXBhbmllc21hdGNoJyl9PC9kaXY+CiAgey9mb3JlYWNofQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJwcmVwZW5kX3dlYnNpdGVfaHR0cCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wcmVwZW5kX3dlYnNpdGVfaHR0cCcpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJwcmVwZW5kX3dlYnNpdGVfaHR0cCIgbmFtZT0ieyRhY3Rpb25pZH1wcmVwZW5kX3dlYnNpdGVfaHR0cCI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRwcmVwZW5kX3dlYnNpdGVfaHR0cH0KICAgICAgPC9zZWxlY3Q+CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fcHJlcGVuZF93ZWJzaXRlX2h0dHAnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzIj57JG1vZC0+TGFuZygncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImFsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMiIG5hbWU9ImFsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lc30KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iY29sbGVjdHN0YXRzIj57JG1vZC0+TGFuZygncHJvbXB0X2NvbGxlY3RzdGF0cycpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJjb2xsZWN0c3RhdHMiIG5hbWU9InskYWN0aW9uaWR9Y29sbGVjdHN0YXRzIj4KICAgICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JGNvbGxlY3RzdGF0c30KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZGV0YWlscGFnZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXRhaWxwYWdlfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJzb3J0b3JkZXIiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcicpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJzb3J0b3JkZXIiIG5hbWU9InskYWN0aW9uaWR9c29ydG9yZGVyIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHNvcnRvcmRlcnMgc2VsZWN0ZWQ9JHNvcnRvcmRlcn0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0ic29ydGJ5Ij57JG1vZC0+TGFuZygncHJvbXB0X3N1bW1hcnlzb3J0aW5nJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9InNvcnRieSIgbmFtZT0ieyRhY3Rpb25pZH1zb3J0YnkiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kc29ydGluZ3Mgc2VsZWN0ZWQ9JHNvcnRieX0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF91c2Vfb2xkc2VhcmNoJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd1c2Vfb2xkc2VhcmNoJyBzZWxlY3RlZD0kdXNlX29sZHNlYXJjaH0KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCntpZiBpc3NldCgkZnJvbnRlbmRjcmVhdGUpfQo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9lZGl0X3NldHRpbmdzJyl9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kX2VkaXRvcjIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZWRpdG9yMicpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZF9lZGl0b3IyIiBuYW1lPSJ7JGFjdGlvbmlkfWZyb250ZW5kX2VkaXRvcjIiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRfZWRpdG9yMn0KICAgICAgPC9zZWxlY3Q+PGJyLz57JG1vZC0+TGFuZygnaW5mb19lZGl0b3IyJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRjcmVhdGUiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2NyZWF0ZScpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZGNyZWF0ZSIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZGNyZWF0ZSI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRmcm9udGVuZGNyZWF0ZX0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRkZWxldGUiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2RlbGV0ZScpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZGRlbGV0ZSIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZGRlbGV0ZSI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRmcm9udGVuZGRlbGV0ZX0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mZXVfbmV3X3N0YXR1cycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRuZXdzdGF0dXMiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRuZXdzdGF0dXMiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kc3RhdHVzZXMgc2VsZWN0ZWQ9JGZyb250ZW5kbmV3c3RhdHVzfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9jaGFuZ2Vfc3RhdHVzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZGNoYW5nZXN0YXR1cyIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZGNoYW5nZXN0YXR1cyI+CiAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRmcm9udGVuZGNoYW5nZXN0YXR1c30KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iZnJvbnRlbmRudW1yZWNvcmRzIj57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9udW1yZWNvcmRzJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImZyb250ZW5kbnVtcmVjb3JkcyIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZG51bXJlY29yZHMiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kbnVtIHNlbGVjdGVkPSRmcm9udGVuZG51bXJlY29yZHN9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kaW1wb3J0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9pbXBvcnQnKX06PC9sYWJlbD48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRpbXBvcnQiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRpbXBvcnQiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRpbXBvcnR9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kX2VtYWlsb25hZGQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2VtYWlsb25hZGQnKX06PC9sYWJlbD48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRfZW1haWxvbmFkZCIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZF9lbWFpbG9uYWRkIj4KICAgICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JGZyb250ZW5kX2VtYWlsb25hZGR9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kX2VtYWlsb25lZGl0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCcpfTo8L2xhYmVsPjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IGlkPSJmcm9udGVuZF9lbWFpbG9uZWRpdCI+IG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRfZW1haWxvbmVkaXQiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZnJvbnRlbmRfZW1haWxvbmVkaXR9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kX2VtYWlsZ3JvdXAiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1X2VtYWlsZ3JvdXAnKX06PC9sYWJlbD48L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBpZD0iZnJvbnRlbmRfZW1haWxncm91cCIgbmFtZT0ieyRhY3Rpb25pZH1mcm9udGVuZF9lbWFpbGdyb3VwIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGdyb3VwbGlzdCBzZWxlY3RlZD0kZnJvbnRlbmRfZW1haWxncm91cH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJyl9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImZyb250ZW5kX3Nob3dleHBpcmVkIj57JG1vZC0+TGFuZygncHJvbXB0X2Zyb250ZW5kX3Nob3dleHBpcmVkJyl9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgaWQ9ImZyb250ZW5kX3Nob3dleHBpcmVkIiBuYW1lPSJ7JGFjdGlvbmlkfWZyb250ZW5kX3Nob3dleHBpcmVkIj4KICAgICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JGZyb250ZW5kX3Nob3dleHBpcmVkfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2PgoKeyRlbmRmb3JtfQ==]]></data>
	</file>
</module>
